| SPP Tool Chain | ![]() |
| 5 Design Space Exploration Tool |
DESERT is a meta-programmable tool for navigation and pruning of large design spaces using constraints. It provides a generic structured representation of design-spaces based on the concept of alternatives and parameters. DESERT has been used to represent design spaces in a rich variety of problem domains - product-line architectures, hardware-software co-design, automated model-compilation among others. An expressive constraint language based on a subset of OCL allows expression of compositional, resources, and performance (time, energy, size, weight, cost) constraints. Internally, DESERT employs a powerful and highly scalable symbolic representation based on Ordered Binary Decision Diagrams, that allows for rapid, and efficient manipulation of very large design spaces with constraints. In order to solve constraints that involve complex mathematical operations, DESERT interfaces with Mozart, a powerful environment for constraint logic programming based on the Oz constraint language. An XML based input and output interfaces accompanied with a programmatic API, allows easy and semantically correct integration of DESERT with custom Domain-Specific Modeling Languages.
The DESERT defines two APIs, one for submitting the data into DESERT, the Input Interface, and another one for dumping the output, the pruned Design Space, the Output or Back Interface. These interfaces and APIs are provided by the UDM Framework. The DESERT expects an input data network based on the input interface model, and outputs an output data network based on the output interface model. The input and the output data networks may persist on any of the supported UDM backends. Both the input and the output interface are defined in form of UML class diagrams.
Next Up: 5.1 Input Interface model