OpenCores
URL https://opencores.org/ocsvn/lwrisc/lwrisc/trunk

Subversion Repositories lwrisc

[/] [lwrisc/] [trunk/] [RTL/] [sim_rom.v] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 mcupro
//This file was created by a tool wrietten with C.
2
module sim_rom (
3
    address,
4
    clock,
5
    q);
6
    input    [10:0]  address;
7
    input      clock;
8
    output    [11:0]  q;
9
 
10
reg [10:0]    address_latched;
11
// Instantiate the memory array itself.
12
reg [11:0]    mem[0:2048-1];
13
initial begin
14
mem[0000] = 12'b101001100101;
15
mem[0001] = 12'b101000000011;
16
mem[0002] = 12'b101000011010;
17
mem[0003] = 12'b001000001110;
18
mem[0004] = 12'b000001101001;
19
mem[0005] = 12'b000010001101;
20
mem[0006] = 12'b011000000011;
21
mem[0007] = 12'b101000001011;
22
mem[0008] = 12'b001000001101;
23
mem[0009] = 12'b000000101000;
24
mem[0010] = 12'b101000010111;
25
mem[0011] = 12'b000001101000;
26
mem[0012] = 12'b110000001000;
27
mem[0013] = 12'b000000101111;
28
mem[0014] = 12'b001101101101;
29
mem[0015] = 12'b001101101000;
30
mem[0016] = 12'b001000001110;
31
mem[0017] = 12'b000010001000;
32
mem[0018] = 12'b011000000011;
33
mem[0019] = 12'b000000101000;
34
mem[0020] = 12'b001101101001;
35
mem[0021] = 12'b001011101111;
36
mem[0022] = 12'b101000001110;
37
mem[0023] = 12'b010010100011;
38
mem[0024] = 12'b010011000011;
39
mem[0025] = 12'b101001101110;
40
mem[0026] = 12'b001000001101;
41
mem[0027] = 12'b000000101000;
42
mem[0028] = 12'b001000101000;
43
mem[0029] = 12'b011001000011;
44
mem[0030] = 12'b101001000100;
45
mem[0031] = 12'b110000000001;
46
mem[0032] = 12'b000010001000;
47
mem[0033] = 12'b011001000011;
48
mem[0034] = 12'b101001000111;
49
mem[0035] = 12'b110000000010;
50
mem[0036] = 12'b000010001000;
51
mem[0037] = 12'b011001000011;
52
mem[0038] = 12'b101001001010;
53
mem[0039] = 12'b110000000011;
54
mem[0040] = 12'b000010001000;
55
mem[0041] = 12'b011001000011;
56
mem[0042] = 12'b101001001101;
57
mem[0043] = 12'b110000000100;
58
mem[0044] = 12'b000010001000;
59
mem[0045] = 12'b011001000011;
60
mem[0046] = 12'b101001010000;
61
mem[0047] = 12'b110000000101;
62
mem[0048] = 12'b000010001000;
63
mem[0049] = 12'b011001000011;
64
mem[0050] = 12'b101001010011;
65
mem[0051] = 12'b110000000110;
66
mem[0052] = 12'b000010001000;
67
mem[0053] = 12'b011001000011;
68
mem[0054] = 12'b101001010110;
69
mem[0055] = 12'b110000000111;
70
mem[0056] = 12'b000010001000;
71
mem[0057] = 12'b011001000011;
72
mem[0058] = 12'b101001011001;
73
mem[0059] = 12'b110000001000;
74
mem[0060] = 12'b000010001000;
75
mem[0061] = 12'b011001000011;
76
mem[0062] = 12'b101001011100;
77
mem[0063] = 12'b110000001001;
78
mem[0064] = 12'b000010001000;
79
mem[0065] = 12'b011001000011;
80
mem[0066] = 12'b101001011111;
81
mem[0067] = 12'b101001100010;
82
mem[0068] = 12'b110000110000;
83
mem[0069] = 12'b000000111111;
84
mem[0070] = 12'b101001100010;
85
mem[0071] = 12'b110000110001;
86
mem[0072] = 12'b000000111111;
87
mem[0073] = 12'b101001100010;
88
mem[0074] = 12'b110000110010;
89
mem[0075] = 12'b000000111111;
90
mem[0076] = 12'b101001100010;
91
mem[0077] = 12'b110000110011;
92
mem[0078] = 12'b000000111111;
93
mem[0079] = 12'b101001100010;
94
mem[0080] = 12'b110000110100;
95
mem[0081] = 12'b000000111111;
96
mem[0082] = 12'b101001100010;
97
mem[0083] = 12'b110000110101;
98
mem[0084] = 12'b000000111111;
99
mem[0085] = 12'b101001100010;
100
mem[0086] = 12'b110000110110;
101
mem[0087] = 12'b000000111111;
102
mem[0088] = 12'b101001100010;
103
mem[0089] = 12'b110000110111;
104
mem[0090] = 12'b000000111111;
105
mem[0091] = 12'b101001100010;
106
mem[0092] = 12'b110000111000;
107
mem[0093] = 12'b000000111111;
108
mem[0094] = 12'b101001100010;
109
mem[0095] = 12'b110000111001;
110
mem[0096] = 12'b000000111111;
111
mem[0097] = 12'b101001100010;
112
mem[0098] = 12'b010010100011;
113
mem[0099] = 12'b010011000011;
114
mem[0100] = 12'b101001110011;
115
mem[0101] = 12'b000001100100;
116
mem[0102] = 12'b000001101011;
117
mem[0103] = 12'b000001101100;
118
mem[0104] = 12'b001010101011;
119
mem[0105] = 12'b001000001011;
120
mem[0106] = 12'b000000101101;
121
mem[0107] = 12'b110000001010;
122
mem[0108] = 12'b000000101110;
123
mem[0109] = 12'b101000000001;
124
mem[0110] = 12'b001000001000;
125
mem[0111] = 12'b000000101011;
126
mem[0112] = 12'b001000001011;
127
mem[0113] = 12'b000000101101;
128
mem[0114] = 12'b101000000010;
129
mem[0115] = 12'b101001101000;
130
mem[0116] = 12'b000000000011;
131
mem[2047] = 12'b101000000000;
132
end
133
// Latch address
134
always @(posedge clock)
135
   address_latched <= address;
136
 
137
// READ
138
assign q = mem[address_latched];
139
 
140
endmodule
141
 
142
/*
143
0000: GOTO 101
144
0001: GOTO 3
145
0002: GOTO 26
146
0003: MOVFW 0x0e
147
0004: CLRF 0x09
148
0005: SUBWFW 0x0d
149
0006: BTFSC STATUS  [0]
150
0007: GOTO 11
151
0008: MOVFW 0x0d
152
0009: MOVWF 0x08
153
0010: GOTO 23
154
0011: CLRF 0x08
155
0012: MOVLW 8
156
0013: MOVWF 0x0f
157
0014: RLFF 0x0d
158
0015: RLFF 0x08
159
0016: MOVFW 0x0e
160
0017: SUBWFW 0x08
161
0018: BTFSC STATUS  [0]
162
0019: MOVWF 0x08
163
0020: RLFF 0x09
164
0021: DECFSZF 0x0f  [7]
165
0022: GOTO 14
166
0023: BCF STATUS  [5]
167
0024: BCF STATUS  [6]
168
0025: GOTO 110
169
0026: MOVFW 0x0d
170
0027: MOVWF 0x08
171
0028: MOVFF 0x08
172
0029: BTFSC STATUS  [2]
173
0030: GOTO 68
174
0031: MOVLW 1
175
0032: SUBWFW 0x08
176
0033: BTFSC STATUS  [2]
177
0034: GOTO 71
178
0035: MOVLW 2
179
0036: SUBWFW 0x08
180
0037: BTFSC STATUS  [2]
181
0038: GOTO 74
182
0039: MOVLW 3
183
0040: SUBWFW 0x08
184
0041: BTFSC STATUS  [2]
185
0042: GOTO 77
186
0043: MOVLW 4
187
0044: SUBWFW 0x08
188
0045: BTFSC STATUS  [2]
189
0046: GOTO 80
190
0047: MOVLW 5
191
0048: SUBWFW 0x08
192
0049: BTFSC STATUS  [2]
193
0050: GOTO 83
194
0051: MOVLW 6
195
0052: SUBWFW 0x08
196
0053: BTFSC STATUS  [2]
197
0054: GOTO 86
198
0055: MOVLW 7
199
0056: SUBWFW 0x08
200
0057: BTFSC STATUS  [2]
201
0058: GOTO 89
202
0059: MOVLW 8
203
0060: SUBWFW 0x08
204
0061: BTFSC STATUS  [2]
205
0062: GOTO 92
206
0063: MOVLW 9
207
0064: SUBWFW 0x08
208
0065: BTFSC STATUS  [2]
209
0066: GOTO 95
210
0067: GOTO 98
211
0068: MOVLW 48
212
0069: MOVWF 0x1f
213
0070: GOTO 98
214
0071: MOVLW 49
215
0072: MOVWF 0x1f
216
0073: GOTO 98
217
0074: MOVLW 50
218
0075: MOVWF 0x1f
219
0076: GOTO 98
220
0077: MOVLW 51
221
0078: MOVWF 0x1f
222
0079: GOTO 98
223
0080: MOVLW 52
224
0081: MOVWF 0x1f
225
0082: GOTO 98
226
0083: MOVLW 53
227
0084: MOVWF 0x1f
228
0085: GOTO 98
229
0086: MOVLW 54
230
0087: MOVWF 0x1f
231
0088: GOTO 98
232
0089: MOVLW 55
233
0090: MOVWF 0x1f
234
0091: GOTO 98
235
0092: MOVLW 56
236
0093: MOVWF 0x1f
237
0094: GOTO 98
238
0095: MOVLW 57
239
0096: MOVWF 0x1f
240
0097: GOTO 98
241
0098: BCF STATUS  [5]
242
0099: BCF STATUS  [6]
243
0100: GOTO 115
244
0101: CLRF FSR
245
0102: CLRF 0x0b
246
0103: CLRF 0x0c
247
0104: INCFF 0x0b
248
0105: MOVFW 0x0b
249
0106: MOVWF 0x0d
250
0107: MOVLW 10
251
0108: MOVWF 0x0e
252
0109: GOTO 1
253
0110: MOVFW 0x08
254
0111: MOVWF 0x0b
255
0112: MOVFW 0x0b
256
0113: MOVWF 0x0d
257
0114: GOTO 2
258
0115: GOTO 104
259
0116: NOP
260
2047: GOTO 0
261
*/
262
/*
263
covered instructions:
264
 
265
GOTO
266
MOVFW
267
CLRF
268
SUBWFW
269
BTFSC
270
MOVWF
271
MOVLW
272
RLFF
273
DECFSZF
274
BCF
275
MOVFF
276
INCFF
277
NOP
278
*/

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.