Design Space Exploration

If it was practical to use as many hardware resources as operations to synthesize a given behavior, then each operation could be implemented by a dedicated hardware resource. In this case, hardware sharing dependencies would not exist and the operation execution order would only be constrained by data dependencies and synchronizations. However, the assumption of dedicated hardware resources is often not appropriate for large-scale designs for two reasons. First, the size of the dedicated implementation would typically make it impractical. Second, the interconnection delays would probably not be negligible, and therefore the resulting hardware would not be the fastest achievable implementation in practice.