135 | | The processor ISS is wrapped in the generic CABA wrapper, implemented by the class '''!IssWrapper'''. |
136 | | This class inherit the class '''!Caba::ModuleBase''', that is the basis for all CABA modules. |
137 | | The class '''!IssWrapper''' contains the member variable '''iss''' representing the processor ISS. The type of the '''iss''' variable - defining the type of theprocessor - is specified by the template parameter '''iss_t'''. |
| 135 | The processor ISS is wrapped in the generic CABA wrapper, implemented by the class '''!IssWrapper'''.. |
| 136 | The class '''!IssWrapper''' contains the member variable '''m_iss''' representing the processor ISS. The type of the '''m_iss''' variable - defining the type of the processor - is specified by the template parameter '''iss_t'''. |
141 | | To communicate with the '''!VciXcache''', the '''!IssWrapper''' class contains two member variables '''p_icache''', of type '''!IcacheProcessorPort''' and '''p_dcache''', of type '''!DcacheProcessorPort'''. |
142 | | |
143 | | This class contains also N member variables '''p_irq[i]''', of type '''sc_in<bool>''', representing the interrupt ports. The number N of interrupt ports depends on the wrapped ISS, an is defined by the '''n_irq''' member variable of the '''iss''' object. |
144 | | |
145 | | The CABA wrapper is presented below : |
| 140 | To communicate with the '''!VciXcache''', the '''!IssWrapper''' class contains two member variables '''p_icache''', of type '''!IcacheProcessorPort''' and '''p_dcache''', of type '''!DcacheProcessorPort'''. It contains also N member variables '''p_irq[i]''', of type '''sc_in<bool>''', representing the interrupt ports. The number N of interrupt ports depends on the wrapped ISS, an is defined by the '''n_irq''' member variable of the '''iss''' object. |
| 141 | |
| 142 | The SystemC code for the generic CABA wrapper is presented below : |
244 | | The TLM-T modeling for a complete CPU (processor + cache) is presented in figure 4. |
245 | | To increase the simulation speed, the TLM-T wrapper is the cache controler itself, and it is implemented as the class ‘’’ !VciXcache’’’. This class contains the SC_THREAD ‘’’execLoop()’’’’ implementing the PDES process, and the ‘’’m_time’’’ member variable implementing the associated local clock. The class ‘’’ !VciXcache’’’ inherit the class ‘’’ !Tlmt::ModuleBase’’’, that is the basis for all TLM-T modules. |
| 237 | The TLM-T modeling for a complete CPU (processor + cache) is presented in figure 3. |
| 238 | To increase the simulation speed, the TLM-T wrapper is the cache controler itself, and it is implemented as the class ''' !VciXcache'''. This class contains the SC_THREAD '''execLoop()''' implementing the PDES process, and the '''m_time''' member variable implementing the associated local clock. The class '''!VciXcache''' inherit the class '''!Tlmt::ModuleBase''', that is the basis for all TLM-T modules. |