The Model-based Integrated simuLAtioN (MILAN) framework is an extensible environment that
facilitates rapid evaluation of different performance metrics, such as power, latency, and throughput, at
multiple levels of granularity, of a large class of embedded systems by seamlessly integrating different
widely-used simulators into a unified environment. The MILAN framework is aimed at the design of
embedded high-performance computing platforms, of System-on-Chip (SoC) architectures for embedded
systems, and for the hardware/software co-design of heterogeneous systems.
MILAN is based-on model-integrated
technology. The hardware architecture and the application design are captured in the form of models along
with a set of explicit formal constraints that represent requirements. The Generic Modeling
Environment (GME 2000),
a configurable modeling and program synthesis environment, provides the user interface to MILAN.
The application models take the form of a hierarchical dataflow representation. As opposed to a
point solution, the models capture the design space of the application by allowing the user to specify
explicit implementation alternatives at any location in the hierarchy. The architectural options are also
described in a similar manner. Requirements related to performance, timing, power consumption, cost,
etc. are specified by explicit constraints. Resource and mapping constraints are also captured this way.
The potentially huge design space can be explored and pruned by symbolic constraint satisfaction.
This is usually an iterative and interactive process that requires the user to modify the system models by
relaxing various existing constraints or adding new ones. The goal is to get to a handful of candidate
solutions that satisfy all of the constraints. These candidates are then subjected to further, more detailed,
analysis via the integrated simulators. Model interpreters are used to translate model data for use in
driving the various functional and performance simulation engines. Functional simulation can be
performed by MATLAB or SystemC. The high-level power and performance simulator provides an initial
estimate of the application performance. Bottlenecks can be identified and the selected components can
be simulated with a lower level (i.e. more accurate, but slower) simulator, such as SimpleScalar or
Trimaran.
Results from the different simulations need to be integrated back into the models in the form of
performance attributes or architectural parameters. For certain simulators this can be automated, for
others this will be a human-in-the-loop process.
For the list of currently integrated tools and the public release schedule visit the
status page.