ParaNut SystemC Model
A SystemC Model of the ParaNut architecture
Classes | Macros | Typedefs | Enumerations
memu.h File Reference
#include "base.h"
#include "paranut-config.h"
#include <systemc.h>
#include "ptw.h"
#include "tlb.h"
Include dependency graph for memu.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SSelectorIO< DWIDTH, SEL_MAX >
 
struct  MSelectorPass< DWIDTH, SEL_MAX >
 
struct  MSelector< DWIDTH, SEL_MAX >
 
struct  SCacheTag
 
struct  STag
 
struct  STagEntry
 
class  MTagRam
 
class  MBankRam
 
struct  SBusIfRegs
 
struct  SBusIfMmuRegs
 
class  MBusIf
 
class  MReadPort
 
class  MWritePort
 
class  MArbiter
 
class  MMemu
 

Macros

#define MASTER_NO   2
 
#define TR_PORTS   CFG_NUT_CPU_CORES
 
#define bioNothing   0
 
#define bioWriteback   1
 
#define bioInvalidate   2
 
#define bioFlush   3
 
#define bioWritebackAll   5
 
#define bioInvalidateAll   6
 
#define bioFlushAll   7
 
#define bioDirectRead   8
 
#define bioDirectWrite   9
 
#define bioReplace   10
 
#define BUSIF_DATA_REG_NUM   (CFG_MEMU_CACHE_BANKS/(CFG_MEMU_BUSIF_WIDTH/32))
 
#define BUSIF_DATA_REG_NUM_LD   (CFG_MEMU_CACHE_BANKS_LD-(CFG_MEMU_BUSIF_WIDTH/64))
 

Typedefs

typedef sc_uint< 4 > EBusIfOperation
 

Enumerations

enum  EBusIfState {
  BifIdle = 0 , BifDirectRead1 , BifDirectRead2 , BifDirectWrite ,
  BifCacheRequestLLWait , BifCacheRequestRTWait , BifCacheReadTag , BifCacheReplaceReadIdata ,
  BifCacheReadDirtyBanks , BifCacheReplaceInvalidateTag , BifCacheReplaceWriteBanks , BifCacheWriteTag ,
  BifCacheWriteBackVictim , BifCacheAck , BifCacheAll , BifCacheFillIdataPageFault
}
 
enum  EBusIfMmuState {
  BifMmuIdle = 0 , BifMmuReq , BifMmuAwaitResponse , BifMmuLoadPageEntry ,
  BifMmuPteSuccess , BifMmuDone
}
 
enum  EReadportState {
  s_rp_init = 0 , s_rp_direct_wait_busif = 1 , s_rp_request_tag_only = 2 , s_rp_read_tag = 3 ,
  s_rp_read_bank = 4 , s_rp_miss_wait_busif = 5 , s_rp_miss_request_tag = 6 , s_rp_miss_read_tag = 7 ,
  s_rp_miss_replace = 8
}
 
enum  EWritePortState {
  s_wp_init = 0 , s_wp_direct , s_wp_request_linelock_only , s_wp_read_tag ,
  s_wp_write_tag1_and_bank , s_wp_write_tag1 , s_wp_write_bank , s_wp_miss ,
  s_wp_request_busif_only , s_wp_recheck , s_wp_recheck_read_tag , s_wp_replace ,
  s_wp_replace_wait_busif , s_wp_special_request_busif_only , s_wp_special , s_wp_special_wait_complete ,
  s_wp_page_fault
}
 

Macro Definition Documentation

◆ bioDirectRead

#define bioDirectRead   8

◆ bioDirectWrite

#define bioDirectWrite   9

◆ bioFlush

#define bioFlush   3

◆ bioFlushAll

#define bioFlushAll   7

◆ bioInvalidate

#define bioInvalidate   2

◆ bioInvalidateAll

#define bioInvalidateAll   6

◆ bioNothing

#define bioNothing   0

◆ bioReplace

#define bioReplace   10

◆ bioWriteback

#define bioWriteback   1

◆ bioWritebackAll

#define bioWritebackAll   5

◆ BUSIF_DATA_REG_NUM

#define BUSIF_DATA_REG_NUM   (CFG_MEMU_CACHE_BANKS/(CFG_MEMU_BUSIF_WIDTH/32))

◆ BUSIF_DATA_REG_NUM_LD

#define BUSIF_DATA_REG_NUM_LD   (CFG_MEMU_CACHE_BANKS_LD-(CFG_MEMU_BUSIF_WIDTH/64))

◆ MASTER_NO

#define MASTER_NO   2

◆ TR_PORTS

#define TR_PORTS   CFG_NUT_CPU_CORES

Typedef Documentation

◆ EBusIfOperation

typedef sc_uint<4> EBusIfOperation

Enumeration Type Documentation

◆ EBusIfMmuState

Enumerator
BifMmuIdle 
BifMmuReq 
BifMmuAwaitResponse 
BifMmuLoadPageEntry 
BifMmuPteSuccess 
BifMmuDone 

◆ EBusIfState

Enumerator
BifIdle 
BifDirectRead1 
BifDirectRead2 
BifDirectWrite 
BifCacheRequestLLWait 
BifCacheRequestRTWait 
BifCacheReadTag 
BifCacheReplaceReadIdata 
BifCacheReadDirtyBanks 
BifCacheReplaceInvalidateTag 
BifCacheReplaceWriteBanks 
BifCacheWriteTag 
BifCacheWriteBackVictim 
BifCacheAck 
BifCacheAll 
BifCacheFillIdataPageFault 

◆ EReadportState

Enumerator
s_rp_init 
s_rp_direct_wait_busif 
s_rp_request_tag_only 
s_rp_read_tag 
s_rp_read_bank 
s_rp_miss_wait_busif 
s_rp_miss_request_tag 
s_rp_miss_read_tag 
s_rp_miss_replace 

◆ EWritePortState

Enumerator
s_wp_init 
s_wp_direct 
s_wp_request_linelock_only 
s_wp_read_tag 
s_wp_write_tag1_and_bank 
s_wp_write_tag1 
s_wp_write_bank 
s_wp_miss 
s_wp_request_busif_only 
s_wp_recheck 
s_wp_recheck_read_tag 
s_wp_replace 
s_wp_replace_wait_busif 
s_wp_special_request_busif_only 
s_wp_special 
s_wp_special_wait_complete 
s_wp_page_fault