Joachim Schlosser: Development and Verification of fast C/C++ Simulation Models for the Star12 Microcontroller
The main scopes for this diploma thesis are models that fall in the class of high-level abstraction, although allowing low-level implementation, too. Detailed information will be given in section 2.4 on page 138 where the actual platform is described and analyzed.
High-level models or logic models are needed within the design process to check the specification for insufficiencies in detail or logical problems, or to ensure that different components can work together. So one could think of taking a common micro processor of one vendor together with some peripherals that the processor supports, and adding an own peripheral to provide special capabilities, e. g. a network protocol. Of course, the customer wants to verify that his peripheral will fit into the system, and maybe wants to test if the system fits into his application.
But from the need to combine models from different designers a new problem arises: Different designers use different modeling languages, such as VHDL, Verilog and C. They will implement their models using different techniques. And much more they will use totally different simulators, software-oriented ones and hardware-oriented ones. For testing the system integration, the ideal thing could be a simulator within a debugger where software can be tested. A hardware design engineer will use a simulator allowing detailed monitoring of signal timings. So you have some languages, even more techniques and a vast array of simulators, resulting in a big number of possible combinations.
For enabling models to cooperate with each other, it is a bad idea to simply exchange sources of the models and let everyone adopt them to the own style. Protection of intellectual property without any doubt is a primary postulation when talking about interoperability, so this open-source solution is not available. The only way to bring together model vendors among each other and simulator vendors is to offer a programming interface.
To aid in increasing the availability of logic models, the Open Model Forum (OMF) was founded. The group recognized the lack of standardized interfaces by defining a programming interface between simulators and models. The interface, being language independent, was called Open Model Interface (OMI) and allowed the interaction of models and simulators supporting different languages. To be a basis for a standard for hardware description models, the OMF transferred the OMI specification to a working group of the IEEE, which finally resulted in the IEEE Std 1499-1998 with the title “IEEE Standard Interface for Hardware Description Models of Electronic Components” [IEE99].
The purpose of the OMI standard is to permit the usage of any OMI-compiled model with any OMI-compliant application supporting that class of OMI model. This shall work regardless of the programming language of the model. Before working with the standard in later sections, there will be a brief overview of the concepts and definitions the IEEE Std 1499 describes in [IEE99].