annotate core/sim/bdir_dut/DataCacheBlocking.bi @ 74:31fef269ae58 pygar svn.75

[svn r75] presentation for wednesdaty
author rlm
date Wed, 12 May 2010 02:25:34 -0400
parents 91a1f76ddd62
children
rev   line source
punk@1 1 signature DataCacheBlocking where {
punk@1 2 import ¶Assert®¶;
punk@1 3
punk@1 4 import ¶Counter®¶;
punk@1 5
punk@1 6 import ¶FIFOF_®¶;
punk@1 7
punk@1 8 import ¶FIFOF®¶;
punk@1 9
punk@1 10 import ¶FIFO®¶;
punk@1 11
punk@1 12 import ¶Inout®¶;
punk@1 13
punk@1 14 import ¶List®¶;
punk@1 15
punk@1 16 import BFIFO;
punk@1 17
punk@1 18 import ¶Clocks®¶;
punk@1 19
punk@1 20 import ¶ListN®¶;
punk@1 21
punk@1 22 import ¶PrimArray®¶;
punk@1 23
punk@1 24 import ¶RegFile®¶;
punk@1 25
punk@1 26 import ¶Vector®¶;
punk@1 27
punk@1 28 import ¶Connectable®¶;
punk@1 29
punk@1 30 import ¶GetPut®¶;
punk@1 31
punk@1 32 import ¶ClientServer®¶;
punk@1 33
punk@1 34 import Trace;
punk@1 35
punk@1 36 import MemTypes;
punk@1 37
punk@1 38 import ProcTypes;
punk@1 39
punk@1 40 interface (DataCacheBlocking.DCacheStats :: *) = {
punk@1 41 DataCacheBlocking.num_accesses :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat;
punk@1 42 DataCacheBlocking.num_misses :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat;
punk@1 43 DataCacheBlocking.num_writebacks :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat
punk@1 44 };
punk@1 45
punk@1 46 instance DataCacheBlocking ¶Prelude®¶.¶PrimMakeUndefined®¶ DataCacheBlocking.DCacheStats;
punk@1 47
punk@1 48 instance DataCacheBlocking ¶Prelude®¶.¶PrimDeepSeqCond®¶ DataCacheBlocking.DCacheStats;
punk@1 49
punk@1 50 instance DataCacheBlocking ¶Prelude®¶.¶PrimMakeUninitialized®¶ DataCacheBlocking.DCacheStats;
punk@1 51
punk@1 52 interface (DataCacheBlocking.DCache :: * -> * -> *) req_t resp_t = {
punk@1 53 DataCacheBlocking.proc_server :: ¶ClientServer®¶.¶Server®¶ req_t resp_t;
punk@1 54 DataCacheBlocking.mmem_client :: ¶ClientServer®¶.¶Client®¶ MemTypes.MainMemReq MemTypes.MainMemResp;
punk@1 55 DataCacheBlocking.statsEn_put :: ¶GetPut®¶.¶Put®¶ ¶Prelude®¶.¶Bool®¶;
punk@1 56 DataCacheBlocking.stats :: DataCacheBlocking.DCacheStats
punk@1 57 };
punk@1 58
punk@1 59 instance DataCacheBlocking (¶Prelude®¶.¶PrimMakeUndefined®¶ resp_t) =>
punk@1 60 ¶Prelude®¶.¶PrimMakeUndefined®¶ (DataCacheBlocking.DCache req_t resp_t);
punk@1 61
punk@1 62 instance DataCacheBlocking (¶Prelude®¶.¶PrimDeepSeqCond®¶ resp_t) =>
punk@1 63 ¶Prelude®¶.¶PrimDeepSeqCond®¶ (DataCacheBlocking.DCache req_t resp_t);
punk@1 64
punk@1 65 instance DataCacheBlocking ¶Prelude®¶.¶PrimMakeUninitialized®¶
punk@1 66 (DataCacheBlocking.DCache req_t resp_t);
punk@1 67
punk@1 68 type (DataCacheBlocking.CacheLineIndexSz :: #) = 10;
punk@1 69
punk@1 70 type (DataCacheBlocking.CacheLineTagSz :: #) = 20;
punk@1 71
punk@1 72 type (DataCacheBlocking.CacheLineSz :: #) = 32;
punk@1 73
punk@1 74 type (DataCacheBlocking.CacheLineIndex :: *) = ¶Prelude®¶.¶Bit®¶ DataCacheBlocking.CacheLineIndexSz;
punk@1 75
punk@1 76 type (DataCacheBlocking.CacheLineTag :: *) = ¶Prelude®¶.¶Bit®¶ DataCacheBlocking.CacheLineTagSz;
punk@1 77
punk@1 78 type (DataCacheBlocking.CacheLine :: *) = ¶Prelude®¶.¶Bit®¶ DataCacheBlocking.CacheLineSz;
punk@1 79
punk@1 80 data (DataCacheBlocking.CacheStage :: *) =
punk@1 81 DataCacheBlocking.Init () |
punk@1 82 DataCacheBlocking.Access () |
punk@1 83 DataCacheBlocking.RefillReq () |
punk@1 84 DataCacheBlocking.RefillResp ();
punk@1 85
punk@1 86 instance DataCacheBlocking ¶Prelude®¶.¶PrimMakeUndefined®¶ DataCacheBlocking.CacheStage;
punk@1 87
punk@1 88 instance DataCacheBlocking ¶Prelude®¶.¶PrimDeepSeqCond®¶ DataCacheBlocking.CacheStage;
punk@1 89
punk@1 90 instance DataCacheBlocking ¶Prelude®¶.¶PrimMakeUninitialized®¶ DataCacheBlocking.CacheStage;
punk@1 91
punk@1 92 instance DataCacheBlocking ¶Prelude®¶.¶Eq®¶ DataCacheBlocking.CacheStage;
punk@1 93
punk@1 94 instance DataCacheBlocking ¶Prelude®¶.¶Bits®¶ DataCacheBlocking.CacheStage 2;
punk@1 95
punk@1 96 DataCacheBlocking.getAddr :: MemTypes.DataReq -> ¶Prelude®¶.¶Bit®¶ MemTypes.AddrSz;
punk@1 97
punk@1 98 DataCacheBlocking.getCacheLineIndex :: MemTypes.DataReq -> DataCacheBlocking.CacheLineIndex;
punk@1 99
punk@1 100 DataCacheBlocking.getCacheLineTag :: MemTypes.DataReq -> DataCacheBlocking.CacheLineTag;
punk@1 101
punk@1 102 DataCacheBlocking.getCacheLineAddr :: MemTypes.DataReq -> ¶Prelude®¶.¶Bit®¶ MemTypes.AddrSz;
punk@1 103
punk@1 104 DataCacheBlocking.mkDataCache :: (¶Prelude®¶.¶IsModule®¶ _m__ _c__) =>
punk@1 105 _m__ (DataCacheBlocking.DCache MemTypes.DataReq MemTypes.DataResp)
punk@1 106 }