Design space exploration

Design Space Exploration (DSE) refers to systematic analysis and pruning of unwanted design points based on parameters of interest. While the term DSE can apply to any kind of system, we refer to electronic and embedded system design in this article.
Given the complex specification of electronic systems and the plethora of design choices ranging from the choice of components, number of components, operating modes of each of the components, connections between the components, choice of algorithm, etc.; design decisions need to be based on a systematic exploration process. However, the exploration process is complex because of a variety of ways in which the same functionality can be implemented. A tradeoff analysis between each of the implementation option based on a certain parameter of interest forms the basis of DSE. The parameter of interest could vary across systems, but the commonly used parameters are power, performance, and cost. Additional factors like size, shape, weight, etc. can be important for some handheld systems like cellphone and tablets. With growing usage of mobile devices, energy is also becoming a mainstream optimization parameter along with power and performance.
Owing to the complexity of the exploration process, researchers have proposed automated DSE where the exploration software is able to take decisions and comes up with the optimal solution. However, it is not possible to have an automated DSE for all kind of systems and hence there are semi-automated methods of DSE where the designer has to steer the tool after every iteration towards convergence. Since the exploration is a complex process which takes large computational time, researchers have developed exploration tools which can give an approximate analysis of the system behavior in a fraction of time compared to accurate analysis. Such tools are very important for quick comparison of design decisions and are becoming more important with increasing complexity of designs.
To simplify the complexity of DSE, researchers have been continuously striving to raise the abstractions of component and system definition to be able to cater to larger and complex systems. For example, instead of modeling a digital system at transistor or gate level, there have been attempts to use RTL or behavioral modeling. Further higher abstractions like SystemC or block diagram based modeling are also used depending on the system requirements. Modeling at higher abstractions allows fast exploration of various design choices for the lower level implementation.
The ability to operate on the space of design candidates makes DSE useful for many engineering tasks, such as rapid prototyping, optimization, and system integration.