Ignore:
Timestamp:
Aug 8, 2012, 12:03:25 PM (12 years ago)
Author:
cfuguet
Message:

Introducing new CLEANUP transaction address specification in the components:

  • vci_cc_vcache_wrapper_v4
  • vci_mem_cache_v4

The new specification uses the VCI WDATA and the VCI BE to send the cleanup
nline. The VCI ADDRESS is like follows:

  • NLINE MSb | Memory Cache local ID | 00....00

The platforms:

  • tsarv4_mono_mmu
  • tsarv4_generic_mmu

has been modified to use the modified components and the mapping table for the coherence
address space has been updated.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsarv4_mono_mmu/top.cpp

    r207 r247  
    5454#define    MEMC_SIZE    0x02000000
    5555
    56 //  segments definition in coherence space
    57 
    58 #define    C_L1_BASE    0x10000000
    59 #define    C_L1_SIZE    0x00000010
    60 
    61 #define    C_MC_BASE    0x00000000
    62 #define    C_MC_SIZE    0x02000010
    63 
    64 #define    C_BR_BASE    0xbfc00000
    65 #define    C_BR_SIZE    0x00040000
    66 
    6756/////////////////////////////////
    6857int _main(int argc, char *argv[])
     
    8473    size_t      from_cycle      = 0;            // debug start cycle
    8574    size_t      max_frozen      = 1000;         // max number of frozen cycles
     75    size_t      nprocs          = 1;   
    8676
    8777    /////////////// command line arguments ////////////////
     
    146136
    147137    // Mapping table for coherence network
    148     soclib::common::MappingTable maptabc(32, IntTab(6), IntTab(6), 0xF0000000);
    149     maptabc.add(Segment("proc_c" , C_L1_BASE , C_L1_SIZE , IntTab(0), false, true, IntTab(0)));
    150     maptabc.add(Segment("memc_c" , C_MC_BASE , C_MC_SIZE , IntTab(1), false ));
    151     maptabc.add(Segment("brom_c" , C_BR_BASE , C_BR_SIZE , IntTab(1), false ));
     138    soclib::common::MappingTable maptabc(32, IntTab(srcid_width), IntTab(srcid_width), 0xF0000000);
     139    maptabc.add(
     140        Segment( "proc_c"
     141                , 0x0000000
     142                , 0x10
     143                , IntTab(0)
     144                , false
     145        )
     146    );
     147
     148    maptabc.add(
     149        Segment( "memc_c"
     150                , nprocs << (address_width - srcid_width)
     151                , 0x10
     152                , IntTab(nprocs)
     153                , false
     154        )
     155    );
    152156    std::cout << maptabc << std::endl;
    153157       
    154158    // Signals
    155159
    156     sc_clock    signal_clk                      ("signal_clk");
     160    sc_clock        signal_clk                  ("signal_clk");
    157161    sc_signal<bool> signal_resetn               ("isgnal_resetn");
    158162   
     
    201205         4,64,16,               // dcache size
    202206         4, 4,                  // wbuf size
     207         0, 0,                  // x, y Width
     208         nprocs,                // memory cache local id
    203209         max_frozen,            // max frozen cycles
    204210         from_cycle, trace_ok);
Note: See TracChangeset for help on using the changeset viewer.