Joachim Schlosser: Development and Verification of fast C/C++ Simulation Models for the Star12 Microcontroller
After all the theory stuff it is now time to go into practical experience. In the previous sections many things about simulation and modeling theory were discussed. In section 2.2 on page 67 the concept of model managers, directing a set of models of several hardware components, was invented. Octopus is Motorola’s implementation of such a model manager, being the interface layer between a simulation application and the simulation models. The intents of Octopus is to allow rapid virtual prototyping of micro controllers with all their peripherals in different simulation environments. The usage in various simulation environments is important to benefit from being able to reuse models throughout the design flow. The particular models are completely independent of the simulator, all they know is the Octopus interface.
The main debugging features of Octopus – all explained in detail in subsequent paragraphs – cover all requirements for full-chip simulation. The user can activate multiple, model specific debug levels to be used in model developing as well as model assembling. The model manager commands, as mentioned in section 2.2 on page 67, enable the user to inspect and manipulate the models’ status during the simulation. An interface to generate and reuse Value Change Dump (VCD) files according to IEEE Std 1364-1995, chapter 15 [IEE95]. In order to test and validate single models in stand-alone mode there is also a test shell available named Octopussy. Octopus itself as well as all models is written in C/C++.