Changes between Version 28 and Version 29 of Writing Rules/Tlmt
- Timestamp:
- Jan 7, 2008, 8:38:27 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Writing Rules/Tlmt
v28 v29 38 38 == C.1) Sending a VCI command packet == 39 39 40 To send a VCI command packet, the '''execLoop()''' method must use the ''' cmdSend()''' method, that is a member function of the '''p_vci''' port. The prototype is the following:41 {{{ 42 void cmdSend(vci_cmd_t *cmd, // VCI command packet40 To send a VCI command packet, the '''execLoop()''' method must use the '''send()''' method, that is a member function of the '''p_vci''' port. The prototype is the following: 41 {{{ 42 void send(vci_cmd_t *cmd, // VCI command packet 43 43 uint32_t time); // initiator local time 44 44 }}} … … 64 64 The '''contig''' field can be used for optimisation. 65 65 66 The ''' cmdSend()''' function is non-blocking. To implement a blocking transaction (such as a cache line read, where the processor is ''frozen'' during the VCI transaction), the model designer must use the '''wait()''' method, that is a member function of the '''!VciInitiatorPort''' class. The '''execLoop()''' thread is suspended. It will be activated when the response packet is received by the '''notify()''' method, that is also a member function of the '''!VciInitiatorPort'''.66 The '''send()''' function is non-blocking. To implement a blocking transaction (such as a cache line read, where the processor is ''frozen'' during the VCI transaction), the model designer must use the '''wait()''' primitive : the '''execLoop()''' thread is suspended, and will be activated when the response packet is received. 67 67 68 68 == C.2) Receiving a VCI response packet ==