Changes between Version 12 and Version 13 of Writing Rules/Tlmt


Ignore:
Timestamp:
Dec 26, 2007, 1:31:38 PM (16 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Writing Rules/Tlmt

    v12 v13  
    7979}}}
    8080The actions executed by the call-back function depend on the transaction type ('''cmd'''  field), as well as the '''pktid''' and '''trdid''' fields. In the proposed example :
    81  * In case of of a blocking read , the call-back function updates the local time, and activates the suspended threadwith the by the '''notify()''' method.
     81 * In case of of a blocking read , the call-back function updates the local time, and activates the suspended thread.
    8282 * In case of a non-blocking write, the call-back function does nothing.
    8383 
     
    242242= E) VCI Interconnect =
    243243
    244 The VCI interconnect used for the TLM-T simulation is a generic simulation model, named '''VciVgmn'''. The two main parameters are the number of initiators, and the number of targets.
     244The VCI interconnect used for the TLM-T simulation is a generic simulation model, named '''VciVgmn'''.
     245The two main parameters are the number of initiators, and the number of targets. In TLM-T simulation,
     246we don't want to reproduce the cycle-accurate behavior of a particular interconnect. We only want to simulate the contention when several VCI intitiators try to reach the same VCI target.
     247Therefore, the network is actually modeled as a cross-bar : In a physical network such as the multi-stage network described in Figure 2.a, conflicts can appear at any intermediate switch. In the '''VciVgmn''' network described in Figure 2.b, conflicts can only happen at the output ports. It is possible to model to specify a specific latency for each input/output couple. As in most physical interconnects, the general arbitration policy is round-robin.
     248
     249
     250
     251
     252
     253 
    245254
    246255== E.1) Generic network modeling ==
    247256
    248 == E.2) Target local time ==
     257 A in most physical network on chip, there is actually two fully independent networks for command packets and response packets. There is a routing function for each input port, and an arbitration function for each output port, but the two networks are not symmetrical :
     258 * For the command network, the arbitration policy is distributed: there is one arbitration thread for each output port (i.e. one arbitration thread for each VCI target). Each arbitration thread is modeled by a SC_THREAD, and contain a local clock.
     259 * For the response network, there is no conflicts, and there is no need for arbitration. Therefore, there is no thread (and no local time) in the response network that is implemented by simple function calls.
     260
     261This is illustrated in Figure 3 for a network with 2 initiators and three targets : 
     262As there is generally no thread attached to a in the physical interconnects, there
     263
     264
     265== E.2) VCI initiators and targets synchronisations ==
     266
     267As described in sections B & C, each VCI initiator TLM-T module contains a thread and a local clock. But, in order to increase the TLM-T simulation speed,  the VCI targets are generally described by reactive call-back functions. Therefore, there is no thread, and no local clock in the TLM-T module describing a VCI target. For a VCI target, the local clock is actually the clock associated to the corresponding arbitration thread contained in the '''VciVgmn''' module.
     268
     269As described in Figure 4, when a VCI command packet - sent by the corresponding arbitration thread - is received by a VCI target, two synchronization mechanisms are activated :
     270 * A VCI response packet with a date is sent to the source initiator, through the '''VciVgmn''' response network. The corresponding date can be used to update the initiator local clock.
     271 * The '''cmdReceived()''' call-back function returns a date to the arbitration thread. This date is used to update the arbitration thread local time. 
    249272
    250273= F) Interrupt modeling =
    251274
    252275Interrupts are asynchronous events that are not transported by the VCI network.
    253 Each interrupt line is modeled by a specific point to point, uni-directional channel.
    254 It use two ports of type ''!'IrqOutPort''' and '''!IrqinPort''' that must be declared as member variables of the
    255 source ans destination modules respectively.
     276As illustrated in Figure 5, each interrupt line is modeled by a specific point to point, uni-directional channel. It use two ports of type ''!'IrqOutPort''' and '''!IrqinPort''' that must be declared as member variables of the source and destination modules respectively.
    256277
    257278