annotate core/sim/bdir_dut/InstCacheBlocking.bi @ 3:5e0595db14f6 pygar svn.4

[svn r4] added bluespec manual to documents
author rlm
date Tue, 20 Apr 2010 20:09:46 -0400
parents 91a1f76ddd62
children
rev   line source
punk@1 1 signature InstCacheBlocking 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 ¶RWire®¶;
punk@1 25
punk@1 26 import ¶RegFile®¶;
punk@1 27
punk@1 28 import ¶Vector®¶;
punk@1 29
punk@1 30 import ¶Connectable®¶;
punk@1 31
punk@1 32 import ¶GetPut®¶;
punk@1 33
punk@1 34 import ¶ClientServer®¶;
punk@1 35
punk@1 36 import Trace;
punk@1 37
punk@1 38 import MemTypes;
punk@1 39
punk@1 40 import ProcTypes;
punk@1 41
punk@1 42 interface (InstCacheBlocking.ICacheStats :: *) = {
punk@1 43 InstCacheBlocking.num_accesses :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat;
punk@1 44 InstCacheBlocking.num_misses :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat;
punk@1 45 InstCacheBlocking.num_evictions :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat
punk@1 46 };
punk@1 47
punk@1 48 instance InstCacheBlocking ¶Prelude®¶.¶PrimMakeUndefined®¶ InstCacheBlocking.ICacheStats;
punk@1 49
punk@1 50 instance InstCacheBlocking ¶Prelude®¶.¶PrimDeepSeqCond®¶ InstCacheBlocking.ICacheStats;
punk@1 51
punk@1 52 instance InstCacheBlocking ¶Prelude®¶.¶PrimMakeUninitialized®¶ InstCacheBlocking.ICacheStats;
punk@1 53
punk@1 54 interface (InstCacheBlocking.ICache :: * -> * -> *) req_t resp_t = {
punk@1 55 InstCacheBlocking.proc_server :: ¶ClientServer®¶.¶Server®¶ req_t resp_t;
punk@1 56 InstCacheBlocking.mmem_client :: ¶ClientServer®¶.¶Client®¶ MemTypes.MainMemReq MemTypes.MainMemResp;
punk@1 57 InstCacheBlocking.statsEn_put :: ¶GetPut®¶.¶Put®¶ ¶Prelude®¶.¶Bool®¶;
punk@1 58 InstCacheBlocking.stats :: InstCacheBlocking.ICacheStats
punk@1 59 };
punk@1 60
punk@1 61 instance InstCacheBlocking (¶Prelude®¶.¶PrimMakeUndefined®¶ resp_t) =>
punk@1 62 ¶Prelude®¶.¶PrimMakeUndefined®¶ (InstCacheBlocking.ICache req_t resp_t);
punk@1 63
punk@1 64 instance InstCacheBlocking (¶Prelude®¶.¶PrimDeepSeqCond®¶ resp_t) =>
punk@1 65 ¶Prelude®¶.¶PrimDeepSeqCond®¶ (InstCacheBlocking.ICache req_t resp_t);
punk@1 66
punk@1 67 instance InstCacheBlocking ¶Prelude®¶.¶PrimMakeUninitialized®¶
punk@1 68 (InstCacheBlocking.ICache req_t resp_t);
punk@1 69
punk@1 70 type (InstCacheBlocking.CacheLineIndexSz :: #) = 10;
punk@1 71
punk@1 72 type (InstCacheBlocking.CacheLineTagSz :: #) = 20;
punk@1 73
punk@1 74 type (InstCacheBlocking.CacheLineSz :: #) = 32;
punk@1 75
punk@1 76 type (InstCacheBlocking.CacheLineIndex :: *) = ¶Prelude®¶.¶Bit®¶ InstCacheBlocking.CacheLineIndexSz;
punk@1 77
punk@1 78 type (InstCacheBlocking.CacheLineTag :: *) = ¶Prelude®¶.¶Bit®¶ InstCacheBlocking.CacheLineTagSz;
punk@1 79
punk@1 80 type (InstCacheBlocking.CacheLine :: *) = ¶Prelude®¶.¶Bit®¶ InstCacheBlocking.CacheLineSz;
punk@1 81
punk@1 82 data (InstCacheBlocking.CacheStage :: *) =
punk@1 83 InstCacheBlocking.Init () |
punk@1 84 InstCacheBlocking.Access () |
punk@1 85 InstCacheBlocking.Evict () |
punk@1 86 InstCacheBlocking.RefillReq () |
punk@1 87 InstCacheBlocking.RefillResp ();
punk@1 88
punk@1 89 instance InstCacheBlocking ¶Prelude®¶.¶PrimMakeUndefined®¶ InstCacheBlocking.CacheStage;
punk@1 90
punk@1 91 instance InstCacheBlocking ¶Prelude®¶.¶PrimDeepSeqCond®¶ InstCacheBlocking.CacheStage;
punk@1 92
punk@1 93 instance InstCacheBlocking ¶Prelude®¶.¶PrimMakeUninitialized®¶ InstCacheBlocking.CacheStage;
punk@1 94
punk@1 95 instance InstCacheBlocking ¶Prelude®¶.¶Eq®¶ InstCacheBlocking.CacheStage;
punk@1 96
punk@1 97 instance InstCacheBlocking ¶Prelude®¶.¶Bits®¶ InstCacheBlocking.CacheStage 3;
punk@1 98
punk@1 99 InstCacheBlocking.getAddr :: MemTypes.InstReq -> ¶Prelude®¶.¶Bit®¶ MemTypes.AddrSz;
punk@1 100
punk@1 101 InstCacheBlocking.getCacheLineIndex :: MemTypes.InstReq -> InstCacheBlocking.CacheLineIndex;
punk@1 102
punk@1 103 InstCacheBlocking.getCacheLineTag :: MemTypes.InstReq -> InstCacheBlocking.CacheLineTag;
punk@1 104
punk@1 105 InstCacheBlocking.getCacheLineAddr :: MemTypes.InstReq -> ¶Prelude®¶.¶Bit®¶ MemTypes.AddrSz;
punk@1 106
punk@1 107 InstCacheBlocking.mkInstCache :: (¶Prelude®¶.¶IsModule®¶ _m__ _c__) =>
punk@1 108 _m__ (InstCacheBlocking.ICache MemTypes.InstReq MemTypes.InstResp)
punk@1 109 }