Ignore:
Timestamp:
May 1, 2013, 4:13:23 PM (11 years ago)
Author:
alain
Message:

VCI port to XRAM switched to DATA == 64 bits
=> two template parameters vci_param_int & vci_param_ext
This has been validated in tsar_generic_xbar platform...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h

    r362 r385  
    5858  using namespace sc_core;
    5959
    60   template<typename vci_param>
     60  template<typename vci_param_int,
     61           typename vci_param_ext,
     62           size_t   dspin_in_width,
     63           size_t   dspin_out_width>
    6164    class VciMemCache
    6265    : public soclib::caba::BaseModule
    6366    {
    64       typedef sc_dt::sc_uint<40> addr_t;
    65       typedef typename vci_param::fast_addr_t vci_addr_t;
     67      typedef typename vci_param_int::fast_addr_t  addr_t;
     68
     69      typedef typename sc_dt::sc_uint<64>          wide_data_t;
     70
    6671      typedef uint32_t data_t;
    6772      typedef uint32_t tag_t;
    68       typedef uint32_t size_t;
    6973      typedef uint32_t be_t;
    7074      typedef uint32_t copy_t;
     
    343347
    344348      bool         m_monitor_ok;
    345       vci_addr_t   m_monitor_base;
    346       vci_addr_t   m_monitor_length;
     349      addr_t       m_monitor_base;
     350      addr_t       m_monitor_length;
    347351
    348352      // instrumentation counters
     
    373377
    374378      public:
    375       sc_in<bool>                           p_clk;
    376       sc_in<bool>                           p_resetn;
    377       soclib::caba::VciTarget<vci_param>    p_vci_tgt;
    378       soclib::caba::VciInitiator<vci_param> p_vci_ixr;
    379       soclib::caba::DspinInput<33>          p_dspin_in;
    380       soclib::caba::DspinOutput<40>         p_dspin_out;
     379      sc_in<bool>                                 p_clk;
     380      sc_in<bool>                                 p_resetn;
     381      soclib::caba::VciTarget<vci_param_int>      p_vci_tgt;
     382      soclib::caba::VciInitiator<vci_param_ext>  p_vci_ixr;
     383      soclib::caba::DspinInput<dspin_in_width>    p_dspin_in;
     384      soclib::caba::DspinOutput<dspin_out_width>  p_dspin_out;
    381385
    382386      VciMemCache(
     
    401405      void print_stats();
    402406      void print_trace();
    403       void copies_monitor(vci_addr_t addr);
    404       void start_monitor(vci_addr_t addr, vci_addr_t length);
     407      void copies_monitor(addr_t addr);
     408      void start_monitor(addr_t addr, addr_t length);
    405409      void stop_monitor();
    406410
     
    409413      void transition();
    410414      void genMoore();
    411       void check_monitor( const char *buf, vci_addr_t addr, data_t data);
    412       void check_monitor_read( const char *buf, vci_addr_t addr);
     415      void check_monitor( const char *buf, addr_t addr, data_t data, bool read);
    413416
    414417      // Component attributes
     
    436439      < 32  ,                              // number of slots
    437440        4096,                              // number of processors in the system
    438         8000,                              // registratioçn life span (in # of LL operations)
    439         typename vci_param::fast_addr_t >  // address type
    440                                          m_llsc_table;       // ll/sc global registration table
     441        8000,                              // registration life (# of LL operations)
     442        addr_t >  m_llsc_table;            // ll/sc global registration table
    441443
    442444      // adress masks
    443       const soclib::common::AddressMaskingTable<vci_addr_t>   m_x;
    444       const soclib::common::AddressMaskingTable<vci_addr_t>   m_y;
    445       const soclib::common::AddressMaskingTable<vci_addr_t>   m_z;
    446       const soclib::common::AddressMaskingTable<vci_addr_t>   m_nline;
     445      const soclib::common::AddressMaskingTable<addr_t>   m_x;
     446      const soclib::common::AddressMaskingTable<addr_t>   m_y;
     447      const soclib::common::AddressMaskingTable<addr_t>   m_z;
     448      const soclib::common::AddressMaskingTable<addr_t>   m_nline;
    447449
    448450      // broadcast address
     
    454456
    455457      // Fifo between TGT_CMD fsm and READ fsm
    456       GenericFifo<uint64_t>  m_cmd_read_addr_fifo;
     458      GenericFifo<addr_t>    m_cmd_read_addr_fifo;
    457459      GenericFifo<size_t>    m_cmd_read_length_fifo;
    458460      GenericFifo<size_t>    m_cmd_read_srcid_fifo;
     
    461463
    462464      // Fifo between TGT_CMD fsm and WRITE fsm
    463       GenericFifo<uint64_t>  m_cmd_write_addr_fifo;
     465      GenericFifo<addr_t>    m_cmd_write_addr_fifo;
    464466      GenericFifo<bool>      m_cmd_write_eop_fifo;
    465467      GenericFifo<size_t>    m_cmd_write_srcid_fifo;
     
    470472
    471473      // Fifo between TGT_CMD fsm and CAS fsm
    472       GenericFifo<uint64_t>  m_cmd_cas_addr_fifo;
     474      GenericFifo<addr_t>    m_cmd_cas_addr_fifo;
    473475      GenericFifo<bool>      m_cmd_cas_eop_fifo;
    474476      GenericFifo<size_t>    m_cmd_cas_srcid_fifo;
     
    504506      sc_signal<size_t>   r_read_next_ptr;   // Next entry to point to
    505507      sc_signal<bool>     r_read_last_free;  // Last free entry
    506       sc_signal<typename vci_param::fast_addr_t>
    507                           r_read_ll_key;     // LL key returned by the llsc_global_table
     508      sc_signal<addr_t>   r_read_ll_key;     // LL key from the llsc_global_table
    508509
    509510      // Buffer between READ fsm and IXR_CMD fsm (ask a missing cache line to XRAM)
     
    520521      sc_signal<size_t>   r_read_to_tgt_rsp_word;   // first word of the response
    521522      sc_signal<size_t>   r_read_to_tgt_rsp_length; // length of the response
    522       sc_signal<typename vci_param::fast_addr_t>
    523                           r_read_to_tgt_rsp_ll_key; // LL key returned by the llsc_global_table
     523      sc_signal<addr_t>   r_read_to_tgt_rsp_ll_key; // LL key from the llsc_global_table
    524524
    525525      ///////////////////////////////////////////////////////////////
     
    578578      GenericFifo<bool>   m_write_to_cc_send_inst_fifo;     // fifo for the L1 type
    579579      GenericFifo<size_t> m_write_to_cc_send_srcid_fifo;    // fifo for srcids
     580
    580581#if L1_MULTI_CACHE
    581582      GenericFifo<size_t> m_write_to_cc_send_cache_id_fifo; // fifo for srcids
     
    703704      GenericFifo<bool>   m_cas_to_cc_send_inst_fifo;     // fifo for the L1 type
    704705      GenericFifo<size_t> m_cas_to_cc_send_srcid_fifo;    // fifo for srcids
     706
    705707#if L1_MULTI_CACHE
    706708      GenericFifo<size_t> m_cas_to_cc_send_cache_id_fifo; // fifo for srcids
     
    749751      sc_signal<size_t>   r_xram_rsp_to_tgt_rsp_length; // length of the response
    750752      sc_signal<bool>     r_xram_rsp_to_tgt_rsp_rerror; // send error to requester
    751       sc_signal<typename vci_param::fast_addr_t>
    752                           r_xram_rsp_to_tgt_rsp_ll_key; // LL key returned by the llsc_global_table
     753      sc_signal<addr_t>   r_xram_rsp_to_tgt_rsp_ll_key; // LL key from llsc_global_table
    753754
    754755      // Buffer between XRAM_RSP fsm and CC_SEND fsm (Inval L1 Caches)
     
    759760      GenericFifo<bool>   m_xram_rsp_to_cc_send_inst_fifo;     // fifo for the L1 type
    760761      GenericFifo<size_t> m_xram_rsp_to_cc_send_srcid_fifo;    // fifo for srcids
     762
    761763#if L1_MULTI_CACHE
    762764      GenericFifo<size_t> m_xram_rsp_to_cc_send_cache_id_fifo; // fifo for srcids
Note: See TracChangeset for help on using the changeset viewer.