Changes between Version 67 and Version 68 of Writing Rules/Tlmt


Ignore:
Timestamp:
Nov 15, 2008, 6:12:57 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Writing Rules/Tlmt

    v67 v68  
    1515compliant with the new TLM2.0 OSCI standard.
    1616These rules enforce the PDES (Parallel Discrete Event Simulation) principles. In the TLM-T approach,
    17 we don't use anymore the SystemC global time, as each PDES process involved in
     17we don't use the SystemC global time, as each PDES process involved in
    1818the simulation has its own local time. PDES processes (implemented as SC_THREADS) synchronize through
    1919messages piggybacked with time information.
     
    4444= C) TLM-T VCI Transaction =
    4545
    46 The TLM2.0 standard allows the user to redefine both the payload and the phases of a transaction.
    47 Two classes are defined in '''soclib_vci_types''' :  a '''tlmt_vci_transaction''' and a '''tlmt_phase".
    48 
    49 A payload of type '''soclib_vci_types::tlm_payload_type''' corresponds to a '''tlmt_vci_transaction'''.
    50 It contains three groups of information:
    51  * TLM2.0 related fields
    52  * TLM-T related fields
    53  * VCI related fields
     46The TLM2.0 standard allows the user to redefine both the payload and the phases of the transaction.
     47Two classes have been defined in '''soclib_vci_types''' :  a '''tlmt_vci_transaction''' and a '''tlmt_phase".
     48
     49The payload of a '''tlmt_vci_transaction''' contains three groups of information:
     50 * TLM2.0 generic fields
     51 * TLM-T specific fields
     52 * VCI specific fields
    5453{{{
    5554class tlmt_vci_transaction
     
    5756        ...
    5857private:
     58
    5959  // TLM2.0 related fields and common structure
    6060
    6161  sc_dt::uint64        m_address;               // address
    62   unsigned char*       m_data;                  // buf
    63   unsigned int         m_length;                // nword
     62  unsigned char*       m_data;                  // data buffer
     63  unsigned int         m_length;                // number of bytes
    6464  tlmt_response_status m_response_status;       // rerror
    65   bool                 m_dmi;                   // nothing
    66   unsigned char*       m_byte_enable;           // be
    67   unsigned int         m_byte_enable_length;
     65  unsigned char*       m_byte_enable;           // be buffer
    6866  unsigned int         m_streaming_width;       //
    6967
     
    8179}}}
    8280
    83 The TLM2.0 compliant accessors allow to set the TLM2.0 related fields, such as the transaction address, the byte enable
    84 array pointer and its associated size in bytes, and the data array pointer and its associated size in bytes. The byte
    85 enable array allows to build versatile packets thanks to a powerful but slow data masking scheme. Further experiments are
    86 currently done to evaluate the performance degradation incurred by the byte formatting.
     81The TLM2.0 compliant accessors allow to set the TLM2.0 related fields, such as the transaction address, the data & byte enable
     82arrays pointers and its associated size in bytes.
     83
     84NB : The byte array approach defined by TLM2.0 can degrade the simulation speed,
     85as the existing SoCLib models use uint32_t arrays to model both the embedded memory and the caches...
     86Experiments are currently in progress to evaluate the performance degradation incurred by this byte formatting.
    8787It is therefore  possible that the types of the '''m_data''' and '''m_byte_enable''' of the '''tlmt_vci_transaction'''
    8888will be changed to '''uint32*''' in a near future.