Services and Modeling for Embedded Software Development
Embecosm divider strip
Prev  Next

Chapter 9.  Adding Temporal Decoupling to the Model

9.1. What is Temporal Decoupling
9.1.1. Timing Concepts
9.1.2. The Global Quantum Class, tlm_global_quantum
9.1.3. TLM 2.0 Quantum Keepers
9.1.4. Other Styles of Temporal Decoupling
9.2. Guidelines for Using TLM 2.0 Temporal Decoupling
9.3. Overall Design of the Temporally Decoupled SoC Model
9.3.1. Class Structure
9.3.2. Behavioral Diagrams
9.4. Temporal Decoupling the Or1ksim Wrapper Class
9.4.1. Adding a Function to the Or1ksim Library to Support Temporal Decoupling
9.4.2. Or1ksimDecoupSC Module Class Definition
9.4.3. Or1ksimDecoupSC Module Class Implementation
9.5. Modifying the UART to Support Temporal Decoupling
9.5.1. uartDecoupSC Module Class Definition
9.5.2. uartDecoupSC Module Class Implementation
9.6. Main Program for Temporal Decoupling
9.7. Compiling and Running the Decoupled Model

In this case study temporal decoupling is added to the TLM 2.0 model of a SoC. The SoC model with arbiter from the previous example is reused.

The code for the decoupled Or1ksim ISS wrapper (Or1ksimDecoupSC.cpp and Or1ksimDecoupSC.h), the code for the decoupled UART module (UartDecoupSC.cpp and UartDecoupSC.h) and the main program for the complete model (decoupSocMainSC.cpp) may be founded in the sysc-models/decoup-soc directory of the distribution.

Embecosm divider strip