annotate core/sim/bdir_dut/MemTypes.bi @ 39:5a30f173bbac pygar svn.40

[svn r40] no longer cpu terminating dependent
author punk
date Tue, 04 May 2010 19:32:25 -0400
parents 91a1f76ddd62
children
rev   line source
punk@1 1 signature MemTypes where {
punk@1 2 import ¶Counter®¶;
punk@1 3
punk@1 4 import ¶FIFOF_®¶;
punk@1 5
punk@1 6 import ¶FIFOF®¶;
punk@1 7
punk@1 8 import ¶FIFO®¶;
punk@1 9
punk@1 10 import ¶Inout®¶;
punk@1 11
punk@1 12 import ¶List®¶;
punk@1 13
punk@1 14 import ¶Clocks®¶;
punk@1 15
punk@1 16 import ¶ListN®¶;
punk@1 17
punk@1 18 import ¶PrimArray®¶;
punk@1 19
punk@1 20 import ¶Vector®¶;
punk@1 21
punk@1 22 import ¶Connectable®¶;
punk@1 23
punk@1 24 import ¶GetPut®¶;
punk@1 25
punk@1 26 import ¶ClientServer®¶;
punk@1 27
punk@1 28 import Trace;
punk@1 29
punk@1 30 data (MemTypes.MemReq :: # -> # -> # -> *) addrSz tagSz dataSz =
punk@1 31 MemTypes.LoadReq (MemTypes.¶MemReq_$LoadReq¶ addrSz tagSz dataSz) |
punk@1 32 MemTypes.StoreReq (MemTypes.¶MemReq_$StoreReq¶ addrSz tagSz dataSz);
punk@1 33
punk@1 34 instance MemTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ (MemTypes.MemReq addrSz tagSz dataSz);
punk@1 35
punk@1 36 instance MemTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ (MemTypes.MemReq addrSz tagSz dataSz);
punk@1 37
punk@1 38 instance MemTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ (MemTypes.MemReq addrSz tagSz dataSz);
punk@1 39
punk@1 40 instance MemTypes ¶Prelude®¶.¶Eq®¶ (MemTypes.MemReq addrSz tagSz dataSz);
punk@1 41
punk@1 42 instance MemTypes (¶Prelude®¶.¶Add®¶ 1 _v103 _v100,
punk@1 43 ¶Prelude®¶.¶Max®¶ _v101 _v104 _v103,
punk@1 44 ¶Prelude®¶.¶Add®¶ _v105 _v104 _v103,
punk@1 45 ¶Prelude®¶.¶Add®¶ _v102 _v101 _v103,
punk@1 46 ¶Prelude®¶.¶Add®¶ addrSz _v106 _v104,
punk@1 47 ¶Prelude®¶.¶Add®¶ tagSz dataSz _v106,
punk@1 48 ¶Prelude®¶.¶Add®¶ addrSz tagSz _v101) =>
punk@1 49 ¶Prelude®¶.¶Bits®¶ (MemTypes.MemReq addrSz tagSz dataSz) _v100;
punk@1 50
punk@1 51 struct (MemTypes.¶MemReq_$LoadReq¶ :: # -> # -> # -> *) addrSz tagSz dataSz = {
punk@1 52 MemTypes.addr :: ¶Prelude®¶.¶Bit®¶ addrSz;
punk@1 53 MemTypes.tag :: ¶Prelude®¶.¶Bit®¶ tagSz
punk@1 54 };
punk@1 55
punk@1 56 instance MemTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ (MemTypes.¶MemReq_$LoadReq¶ addrSz tagSz dataSz);
punk@1 57
punk@1 58 instance MemTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ (MemTypes.¶MemReq_$LoadReq¶ addrSz tagSz dataSz);
punk@1 59
punk@1 60 instance MemTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶
punk@1 61 (MemTypes.¶MemReq_$LoadReq¶ addrSz tagSz dataSz);
punk@1 62
punk@1 63 instance MemTypes ¶Prelude®¶.¶Eq®¶ (MemTypes.¶MemReq_$LoadReq¶ addrSz tagSz dataSz);
punk@1 64
punk@1 65 instance MemTypes (¶Prelude®¶.¶Add®¶ _v101 _v104 _v100) =>
punk@1 66 ¶Prelude®¶.¶Bits®¶ (MemTypes.¶MemReq_$LoadReq¶ _v101 _v104 dataSz) _v100;
punk@1 67
punk@1 68 struct (MemTypes.¶MemReq_$StoreReq¶ :: # -> # -> # -> *) addrSz tagSz dataSz = {
punk@1 69 MemTypes.addr :: ¶Prelude®¶.¶Bit®¶ addrSz;
punk@1 70 MemTypes.tag :: ¶Prelude®¶.¶Bit®¶ tagSz;
punk@1 71 MemTypes.¡data¡ :: ¶Prelude®¶.¶Bit®¶ dataSz
punk@1 72 };
punk@1 73
punk@1 74 instance MemTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ (MemTypes.¶MemReq_$StoreReq¶ addrSz tagSz dataSz);
punk@1 75
punk@1 76 instance MemTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ (MemTypes.¶MemReq_$StoreReq¶ addrSz tagSz dataSz);
punk@1 77
punk@1 78 instance MemTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶
punk@1 79 (MemTypes.¶MemReq_$StoreReq¶ addrSz tagSz dataSz);
punk@1 80
punk@1 81 instance MemTypes ¶Prelude®¶.¶Eq®¶ (MemTypes.¶MemReq_$StoreReq¶ addrSz tagSz dataSz);
punk@1 82
punk@1 83 instance MemTypes (¶Prelude®¶.¶Add®¶ _v101 _v100 _v103, ¶Prelude®¶.¶Add®¶ _v104 _v107 _v100) =>
punk@1 84 ¶Prelude®¶.¶Bits®¶ (MemTypes.¶MemReq_$StoreReq¶ _v101 _v104 _v107) _v103;
punk@1 85
punk@1 86 data (MemTypes.MemResp :: # -> # -> *) tagSz dataSz =
punk@1 87 MemTypes.LoadResp (MemTypes.¶MemResp_$LoadResp¶ tagSz dataSz) |
punk@1 88 MemTypes.StoreResp (MemTypes.¶MemResp_$StoreResp¶ tagSz dataSz);
punk@1 89
punk@1 90 instance MemTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ (MemTypes.MemResp tagSz dataSz);
punk@1 91
punk@1 92 instance MemTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ (MemTypes.MemResp tagSz dataSz);
punk@1 93
punk@1 94 instance MemTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ (MemTypes.MemResp tagSz dataSz);
punk@1 95
punk@1 96 instance MemTypes ¶Prelude®¶.¶Eq®¶ (MemTypes.MemResp tagSz dataSz);
punk@1 97
punk@1 98 instance MemTypes (¶Prelude®¶.¶Add®¶ 1 _v103 _v100,
punk@1 99 ¶Prelude®¶.¶Max®¶ _v101 _v104 _v103,
punk@1 100 ¶Prelude®¶.¶Add®¶ _v105 _v104 _v103,
punk@1 101 ¶Prelude®¶.¶Add®¶ _v102 _v101 _v103,
punk@1 102 ¶Prelude®¶.¶Add®¶ _v104 dataSz _v101) =>
punk@1 103 ¶Prelude®¶.¶Bits®¶ (MemTypes.MemResp _v104 dataSz) _v100;
punk@1 104
punk@1 105 struct (MemTypes.¶MemResp_$LoadResp¶ :: # -> # -> *) tagSz dataSz = {
punk@1 106 MemTypes.tag :: ¶Prelude®¶.¶Bit®¶ tagSz;
punk@1 107 MemTypes.¡data¡ :: ¶Prelude®¶.¶Bit®¶ dataSz
punk@1 108 };
punk@1 109
punk@1 110 instance MemTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ (MemTypes.¶MemResp_$LoadResp¶ tagSz dataSz);
punk@1 111
punk@1 112 instance MemTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ (MemTypes.¶MemResp_$LoadResp¶ tagSz dataSz);
punk@1 113
punk@1 114 instance MemTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ (MemTypes.¶MemResp_$LoadResp¶ tagSz dataSz);
punk@1 115
punk@1 116 instance MemTypes ¶Prelude®¶.¶Eq®¶ (MemTypes.¶MemResp_$LoadResp¶ tagSz dataSz);
punk@1 117
punk@1 118 instance MemTypes (¶Prelude®¶.¶Add®¶ _v101 _v104 _v100) =>
punk@1 119 ¶Prelude®¶.¶Bits®¶ (MemTypes.¶MemResp_$LoadResp¶ _v101 _v104) _v100;
punk@1 120
punk@1 121 struct (MemTypes.¶MemResp_$StoreResp¶ :: # -> # -> *) tagSz dataSz = {
punk@1 122 MemTypes.tag :: ¶Prelude®¶.¶Bit®¶ tagSz
punk@1 123 };
punk@1 124
punk@1 125 instance MemTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ (MemTypes.¶MemResp_$StoreResp¶ tagSz dataSz);
punk@1 126
punk@1 127 instance MemTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ (MemTypes.¶MemResp_$StoreResp¶ tagSz dataSz);
punk@1 128
punk@1 129 instance MemTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ (MemTypes.¶MemResp_$StoreResp¶ tagSz dataSz);
punk@1 130
punk@1 131 instance MemTypes ¶Prelude®¶.¶Eq®¶ (MemTypes.¶MemResp_$StoreResp¶ tagSz dataSz);
punk@1 132
punk@1 133 instance MemTypes ¶Prelude®¶.¶Bits®¶ (MemTypes.¶MemResp_$StoreResp¶ _v101 dataSz) _v101;
punk@1 134
punk@1 135 type (MemTypes.AddrSz :: #) = 32;
punk@1 136
punk@1 137 type (MemTypes.TagSz :: #) = 8;
punk@1 138
punk@1 139 type (MemTypes.DataSz :: #) = 32;
punk@1 140
punk@1 141 type (MemTypes.InstSz :: #) = 32;
punk@1 142
punk@1 143 type (MemTypes.HostDataSz :: #) = 32;
punk@1 144
punk@1 145 type (MemTypes.InstReq :: *) = MemTypes.MemReq MemTypes.AddrSz MemTypes.TagSz 0;
punk@1 146
punk@1 147 type (MemTypes.InstResp :: *) = MemTypes.MemResp MemTypes.TagSz MemTypes.InstSz;
punk@1 148
punk@1 149 type (MemTypes.DataReq :: *) = MemTypes.MemReq MemTypes.AddrSz MemTypes.TagSz MemTypes.DataSz;
punk@1 150
punk@1 151 type (MemTypes.DataResp :: *) = MemTypes.MemResp MemTypes.TagSz MemTypes.DataSz;
punk@1 152
punk@1 153 type (MemTypes.HostReq :: *) = MemTypes.MemReq MemTypes.AddrSz MemTypes.TagSz MemTypes.HostDataSz;
punk@1 154
punk@1 155 type (MemTypes.HostResp :: *) = MemTypes.MemResp MemTypes.TagSz MemTypes.HostDataSz;
punk@1 156
punk@1 157 type (MemTypes.MainMemAddrSz :: #) = 32;
punk@1 158
punk@1 159 type (MemTypes.MainMemTagSz :: #) = 8;
punk@1 160
punk@1 161 type (MemTypes.MainMemDataSz :: #) = 32;
punk@1 162
punk@1 163 type (MemTypes.MainMemReq :: *) =
punk@1 164 MemTypes.MemReq MemTypes.MainMemAddrSz MemTypes.MainMemTagSz MemTypes.MainMemDataSz;
punk@1 165
punk@1 166 type (MemTypes.MainMemResp :: *) = MemTypes.MemResp MemTypes.MainMemTagSz MemTypes.MainMemDataSz;
punk@1 167
punk@1 168 instance MemTypes Trace.Traceable (MemTypes.MemReq a b c);
punk@1 169
punk@1 170 instance MemTypes Trace.Traceable (MemTypes.MemResp a b)
punk@1 171 }