If you are an IP designer, you are probably under increasing pressure to supply high-level models of your IP. Why? Well, because if you are a software developer, you are probably under increasing pressure to help differentiate your company's products by developing software that maximizes the benefits from the latest advancements in homogeneous and heterogeneous multicore systems. Which means you cannot delay software development until RTL models are available. And, as both semiconductor and electronic systems companies turn more and more to virtual prototyping for early software development, SystemC models are in high demand. This brings us back to you, the IP designer.
With an early start and high-level view into the complex hardware that IP designers create, software development tasks like OS porting and driver development are greatly eased and accelerated. However, the requirements for these types of models are tough to meet. Designers must enable high simulation speeds, full visibility and controllability while providing an accurate programmer's view of the actual IP. And, of course, all this needs to be available long before the RTL is ready.
The modeling effort is not small; however, it is not impossible to meet these requirements. Designers achieve higher ROI, not only from a software development perspective, but also from an IP block design view. There is a modeling methodology to write SystemC models while reducing the overall IP development time and effort.
Depending on the use case (e.g., software development, software performance analysis, architectural analysis or hardware verification), the model may need a different coding style and level of abstraction. For example, TLM-2.0 Loosely Timed (LT) is the preferred coding style for software development when using virtual prototypes. Combined with a coding style that promotes the separation of communication, behavior and timing, the SystemC Modeling Library (SCML) eases the creation of SystemC TLM-2.0 LT peripheral models. When developing a model of an IP block, it is important to create the model so that the communication, behavior and timing aspects are all independent elements, or in other words, so that the model is decomposed into orthogonal properties. Figure 1 below illustrates this coding style. Each element in the figure represents a modeling object or a piece of user code for a target component model. The benefit of SCML is that it adds modeling objects that provide an implementation of the key TLM-2.0 semantics and takes care of handling the speed and visibility requirements of the software development use case.