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

Subversion Repositories rf6809

[/] [rf6809/] [trunk/] [rtl/] [cpu/] [rf6809_pkg.sv] - Blame information for rev 5

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 robfinch
 
2
package rf6809_pkg;
3
 
4
typedef logic [23:0] Address;
5
typedef logic [11:0] Data;
6
 
7
parameter bitsPerByte = $bits(Data);
8
parameter BPB = bitsPerByte;
9
parameter BPBM1 =       BPB-1;
10
parameter BPBX2M1 =     BPB*2-1;
11
 
12
// The following allows asynchronous reads for icache updating.
13
// It increases the size of the core.
14
//`define SUPPORT_AREAD 1
15
 
16
// The following includes an instruction buffer when icache is
17
// not used.
18
//`define SUPPORT_IBUF  1
19
 
20
// The following enables support for the checkpoint interrupt.
21
//`define SUPPORT_CHECKPOINT
22
 
23
//`define EIGHTBIT      1
24
`define TWELVEBIT       2
25
 
26
`ifdef EIGHTBIT
27
`define LOBYTE  7:0
28
`define HIBYTE  15:8
29
`define DBLBYTE 15:0
30
`define TRPBYTE         23:0
31
`define BYTE1           7:0
32
`define BYTE2           15:8
33
`define BYTE3           23:16
34
`define BYTE4           31:24
35
`define BYTE5           39:32
36
`define QUINBYTE        47:0
37
`define HEXBYTE         55:0
38
`define DBLBYTEP1       16:0
39
`define LOBYTEP1        8:0
40
`define HCBIT           3
41
`endif
42
 
43
`ifdef TWELVEBIT
44
`define LOBYTE  11:0
45
`define HIBYTE  23:12
46
`define DBLBYTE 23:0
47
`define TRPBYTE         35:0
48
`define BYTE1           11:0
49
`define BYTE2           23:12
50
`define BYTE3           35:24
51
`define BYTE4           47:36
52
`define BYTE5           59:48
53
`define QUINBYTE        59:0
54
`define HEXBYTE         71:0
55
`define DBLBYTEP1       24:0
56
`define LOBYTEP1        12:0
57
`define HCBIT           3
58
`endif
59
 
60
`define TRUE            1'b1
61
`define FALSE           1'b0
62
 
63
`define RST_VECT        24'hFFFFFE
64
`define NMI_VECT        24'hFFFFFC
65
`define SWI_VECT        24'hFFFFFA
66
`define IRQ_VECT        24'hFFFFF8
67
`define FIRQ_VECT       24'hFFFFF6
68
`define SWI2_VECT       24'hFFFFF4
69
`define SWI3_VECT       24'hFFFFF2
70
`define RESV_VECT       24'hFFFFF0
71
 
72
`define NEG_DP          12'h000
73
`define OIM_DP          12'h001
74
`define AIM_DP          12'h002
75
`define COM_DP          12'h003
76
`define LSR_DP          12'h004
77
`define EIM_DP          12'h005
78
`define ROR_DP          12'h006
79
`define ASR_DP          12'h007
80
`define ASL_DP          12'h008
81
`define ROL_DP          12'h009
82
`define DEC_DP          12'h00A
83
`define TIM_DP          12'h00B
84
`define INC_DP          12'h00C
85
`define TST_DP          12'h00D
86
`define JMP_DP          12'h00E
87
`define CLR_DP          12'h00F
88
 
89
`define PG2                     12'h010
90
`define PG3                     12'h011
91
`define NOP                     12'h012
92
`define SYNC            12'h013
93
`define SEXW            12'h014
94
`define FAR                     12'h015
95
`define LBRA            12'h016
96
`define LBSR            12'h017
97
`define DAA                     12'h019
98
`define ORCC            12'h01A
99
`define OUTER           12'h01B
100
`define ANDCC           12'h01C
101
`define SEX                     12'h01D
102
`define EXG                     12'h01E
103
`define TFR                     12'h01F
104
 
105
`define BRA                     12'h020
106
`define BRN                     12'h021
107
`define BHI                     12'h022
108
`define BLS                     12'h023
109
`define BHS                     12'h024
110
`define BLO                     12'h025
111
`define BNE                     12'h026
112
`define BEQ                     12'h027
113
`define BVC                     12'h028
114
`define BVS                     12'h029
115
`define BPL                     12'h02A
116
`define BMI                     12'h02B
117
`define BGE                     12'h02C
118
`define BLT                     12'h02D
119
`define BGT                     12'h02E
120
`define BLE                     12'h02F
121
 
122
`define LEAX_NDX        12'h030
123
`define LEAY_NDX        12'h031
124
`define LEAS_NDX        12'h032
125
`define LEAU_NDX        12'h033
126
`define PSHS            12'h034
127
`define PULS            12'h035
128
`define PSHU            12'h036
129
`define PULU            12'h037
130
`define RTF                     12'h038
131
`define RTS                     12'h039
132
`define ABX                     12'h03A
133
`define RTI                     12'h03B
134
`define CWAI            12'h03C
135
`define MUL                     12'h03D
136
`define SWI                     12'h03F
137
 
138
`define NEGA            12'h040
139
`define COMA            12'h043
140
`define LSRA            12'h044
141
`define RORA            12'h046
142
`define ASRA            12'h047
143
`define ASLA            12'h048
144
`define ROLA            12'h049
145
`define DECA            12'h04A
146
`define INCA            12'h04C
147
`define TSTA            12'h04D
148
`define CLRA            12'h04F
149
 
150
`define NEGB            12'h050
151
`define COMB            12'h053
152
`define LSRB            12'h054
153
`define RORB            12'h056
154
`define ASRB            12'h057
155
`define ASLB            12'h058
156
`define ROLB            12'h059
157
`define DECB            12'h05A
158
`define INCB            12'h05C
159
`define TSTB            12'h05D
160
`define CLRB            12'h05F
161
 
162
`define NEG_NDX         12'h060
163
`define OIM_NDX         12'h061
164
`define AIM_NDX         12'h062
165
`define COM_NDX         12'h063
166
`define LSR_NDX         12'h064
167
`define EIM_NDX         12'h065
168
`define ROR_NDX         12'h066
169
`define ASR_NDX         12'h067
170
`define ASL_NDX         12'h068
171
`define ROL_NDX         12'h069
172
`define DEC_NDX         12'h06A
173
`define TIM_NDX         12'h06B
174
`define INC_NDX         12'h06C
175
`define TST_NDX         12'h06D
176
`define JMP_NDX         12'h06E
177
`define CLR_NDX         12'h06F
178
 
179
`define NEG_EXT         12'h070
180
`define OIM_EXT         12'h071
181
`define AIM_EXT         12'h072
182
`define COM_EXT         12'h073
183
`define LSR_EXT         12'h074
184
`define EIM_EXT         12'h075
185
`define ROR_EXT         12'h076
186
`define ASR_EXT         12'h077
187
`define ASL_EXT         12'h078
188
`define ROL_EXT         12'h079
189
`define DEC_EXT         12'h07A
190
`define TIM_EXT         12'h07B
191
`define INC_EXT         12'h07C
192
`define TST_EXT         12'h07D
193
`define JMP_EXT         12'h07E
194
`define CLR_EXT         12'h07F
195
 
196
`define SUBA_IMM        12'h080
197
`define CMPA_IMM        12'h081
198
`define SBCA_IMM        12'h082
199
`define SUBD_IMM        12'h083
200
`define ANDA_IMM        12'h084
201
`define BITA_IMM        12'h085
202
`define LDA_IMM         12'h086
203
`define EORA_IMM        12'h088
204
`define ADCA_IMM        12'h089
205
`define ORA_IMM         12'h08A
206
`define ADDA_IMM        12'h08B
207
`define CMPX_IMM        12'h08C
208
`define BSR                     12'h08D
209
`define LDX_IMM         12'h08E
210
`define JMP_FAR         12'h08F
211
 
212
`define SUBA_DP         12'h090
213
`define CMPA_DP         12'h091
214
`define SBCA_DP         12'h092
215
`define SUBD_DP         12'h093
216
`define ANDA_DP         12'h094
217
`define BITA_DP         12'h095
218
`define LDA_DP          12'h096
219
`define STA_DP          12'h097
220
`define EORA_DP         12'h098
221
`define ADCA_DP         12'h099
222
`define ORA_DP          12'h09A
223
`define ADDA_DP         12'h09B
224
`define CMPX_DP         12'h09C
225
`define JSR_DP          12'h09D
226
`define LDX_DP          12'h09E
227
`define STX_DP          12'h09F
228
 
229
`define SUBA_NDX        12'h0A0
230
`define CMPA_NDX        12'h0A1
231
`define SBCA_NDX        12'h0A2
232
`define SUBD_NDX        12'h0A3
233
`define ANDA_NDX        12'h0A4
234
`define BITA_NDX        12'h0A5
235
`define LDA_NDX         12'h0A6
236
`define STA_NDX         12'h0A7
237
`define EORA_NDX        12'h0A8
238
`define ADCA_NDX        12'h0A9
239
`define ORA_NDX         12'h0AA
240
`define ADDA_NDX        12'h0AB
241
`define CMPX_NDX        12'h0AC
242
`define JSR_NDX         12'h0AD
243
`define LDX_NDX         12'h0AE
244
`define STX_NDX         12'h0AF
245
 
246
`define SUBA_EXT        12'h0B0
247
`define CMPA_EXT        12'h0B1
248
`define SBCA_EXT        12'h0B2
249
`define SUBD_EXT        12'h0B3
250
`define ANDA_EXT        12'h0B4
251
`define BITA_EXT        12'h0B5
252
`define LDA_EXT         12'h0B6
253
`define STA_EXT         12'h0B7
254
`define EORA_EXT        12'h0B8
255
`define ADCA_EXT        12'h0B9
256
`define ORA_EXT         12'h0BA
257
`define ADDA_EXT        12'h0BB
258
`define CMPX_EXT        12'h0BC
259
`define JSR_EXT         12'h0BD
260
`define LDX_EXT         12'h0BE
261
`define STX_EXT         12'h0BF
262
 
263
`define SUBB_IMM        12'h0C0
264
`define CMPB_IMM        12'h0C1
265
`define SBCB_IMM        12'h0C2
266
`define ADDD_IMM        12'h0C3
267
`define ANDB_IMM        12'h0C4
268
`define BITB_IMM        12'h0C5
269
`define LDB_IMM         12'h0C6
270
`define EORB_IMM        12'h0C8
271
`define ADCB_IMM        12'h0C9
272
`define ORB_IMM         12'h0CA
273
`define ADDB_IMM        12'h0CB
274
`define LDD_IMM         12'h0CC
275
`define LDQ_IMM         12'h0CD
276
`define LDU_IMM         12'h0CE
277
`define JSR_FAR         12'h0CF
278
 
279
`define SUBB_DP         12'h0D0
280
`define CMPB_DP         12'h0D1
281
`define SBCB_DP         12'h0D2
282
`define ADDD_DP         12'h0D3
283
`define ANDB_DP         12'h0D4
284
`define BITB_DP         12'h0D5
285
`define LDB_DP          12'h0D6
286
`define STB_DP          12'h0D7
287
`define EORB_DP         12'h0D8
288
`define ADCB_DP         12'h0D9
289
`define ORB_DP          12'h0DA
290
`define ADDB_DP         12'h0DB
291
`define LDD_DP          12'h0DC
292
`define STD_DP          12'h0DD
293
`define LDU_DP          12'h0DE
294
`define STU_DP          12'h0DF
295
 
296
`define SUBB_NDX        12'h0E0
297
`define CMPB_NDX        12'h0E1
298
`define SBCB_NDX        12'h0E2
299
`define ADDD_NDX        12'h0E3
300
`define ANDB_NDX        12'h0E4
301
`define BITB_NDX        12'h0E5
302
`define LDB_NDX         12'h0E6
303
`define STB_NDX         12'h0E7
304
`define EORB_NDX        12'h0E8
305
`define ADCB_NDX        12'h0E9
306
`define ORB_NDX         12'h0EA
307
`define ADDB_NDX        12'h0EB
308
`define LDD_NDX         12'h0EC
309
`define STD_NDX         12'h0ED
310
`define LDU_NDX         12'h0EE
311
`define STU_NDX         12'h0EF
312
 
313
`define SUBB_EXT        12'h0F0
314
`define CMPB_EXT        12'h0F1
315
`define SBCB_EXT        12'h0F2
316
`define ADDD_EXT        12'h0F3
317
`define ANDB_EXT        12'h0F4
318
`define BITB_EXT        12'h0F5
319
`define LDB_EXT         12'h0F6
320
`define STB_EXT         12'h0F7
321
`define EORB_EXT        12'h0F8
322
`define ADCB_EXT        12'h0F9
323
`define ORB_EXT         12'h0FA
324
`define ADDB_EXT        12'h0FB
325
`define LDD_EXT         12'h0FC
326
`define STD_EXT         12'h0FD
327
`define LDU_EXT         12'h0FE
328
`define STU_EXT         12'h0FF
329
 
330
`define TFS                     12'h11E
331
`define TTS                     12'h11F
332
 
333
`define LBRN            12'h121
334
`define LBHI            12'h122
335
`define LBLS            12'h123
336
`define LBHS            12'h124
337
`define LBLO            12'h125
338
`define LBNE            12'h126
339
`define LBEQ            12'h127
340
`define LBVC            12'h128
341
`define LBVS            12'h129
342
`define LBPL            12'h12A
343
`define LBMI            12'h12B
344
`define LBGE            12'h12C
345
`define LBLT            12'h12D
346
`define LBGT            12'h12E
347
`define LBLE            12'h12F
348
 
349
`define SWI2            12'h13F
350
`define ASLD            12'h148
351
`define TSTD            12'h14D
352
`define SBCD_IMM        12'h182
353
`define CMPD_IMM        12'h183
354
`define ANDD_IMM        12'h184
355
`define ADCD_IMM        12'h189
356
`define CMPY_IMM        12'h18C
357
`define LDY_IMM         12'h18E
358
`define SBCD_DP         12'h192
359
`define CMPD_DP         12'h193
360
`define ANDD_DP         12'h194
361
`define ADCD_DP         12'h199
362
`define CMPY_DP         12'h19C
363
`define LDY_DP          12'h19E
364
`define STY_DP          12'h19F
365
`define SBCD_NDX        12'h1A2
366
`define CMPD_NDX        12'h1A3
367
`define ANDD_NDX        12'h1A4
368
`define ADCD_NDX        12'h1A9
369
`define CMPY_NDX        12'h1AC
370
`define LDY_NDX         12'h1AE
371
`define STY_NDX         12'h1AF
372
`define SBCD_EXT        12'h1B2
373
`define CMPD_EXT        12'h1B3
374
`define ANDD_EXT        12'h1B4
375
`define ADCD_EXT        12'h1B9
376
`define CMPY_EXT        12'h1BC
377
`define LDY_EXT         12'h1BE
378
`define STY_EXT         12'h1BF
379
`define LDS_IMM         12'h1CE
380
`define LDQ_DP          12'h1DC
381
`define STQ_DP          12'h1DD
382
`define LDS_DP          12'h1DE
383
`define STS_DP          12'h1DF
384
`define LDQ_NDX         12'h1EC
385
`define STQ_NDX         12'h1ED
386
`define LDS_NDX         12'h1EE
387
`define STS_NDX         12'h1EF
388
`define LDQ_EXT         12'h1FC
389
`define STQ_EXT         12'h1FD
390
`define LDS_EXT         12'h1FE
391
`define STS_EXT         12'h1FF
392
`define LDMD            12'h23D
393
`define SWI3            12'h23F
394
`define CMPU_IMM        12'h283
395
`define CMPS_IMM        12'h28C
396
`define CMPU_DP         12'h293
397
`define CMPS_DP         12'h29C
398
`define CMPU_NDX        12'h2A3
399
`define CMPS_NDX        12'h2AC
400
`define CMPU_EXT        12'h2B3
401
`define CMPS_EXT        12'h2BC
402
 
403
// Unused opcode
404
`define INT                     12'h33E
405
 
406
`define LW_CCR          6'd0
407
`define LW_ACCA         6'd1
408
`define LW_ACCB         6'd2
409
`define LW_DPR          6'd3
410
`define LW_XH           6'd4
411
`define LW_XL           6'd5
412
`define LW_YH           6'd6
413
`define LW_YL           6'd7
414
`define LW_USPH         6'd8
415
`define LW_USPL         6'd9
416
`define LW_SSPH         6'd10
417
`define LW_SSPL         6'd11
418
`define LW_PCH          6'd12
419
`define LW_PCL          6'd13
420
`define LW_BL           6'd14
421
`define LW_BH           6'd15
422
`define LW_IAL          6'd16
423
`define LW_IAH          6'd17
424
`define LW_PC3124       6'd18
425
`define LW_PC2316       6'd19
426
`define LW_IA3124       6'd20
427
`define LW_IA2316       6'd21
428
`define LW_B3124        6'd22
429
`define LW_B2316        6'd23
430
`define LW_X3124        6'd24
431
`define LW_X2316        6'd25
432
`define LW_Y3124        6'd26
433
`define LW_Y2316        6'd27
434
`define LW_USP3124      6'd28
435
`define LW_USP2316      6'd29
436
`define LW_SSP3124      6'd30
437
`define LW_SSP2316      6'd31
438
`define LW_NOTHING      6'd63
439
 
440
`define SW_ACCDH        6'd0
441
`define SW_ACCDL        6'd1
442
`define SW_ACCA         6'd2
443
`define SW_ACCB         6'd3
444
`define SW_DPR          6'd4
445
`define SW_XL           6'd5
446
`define SW_XH           6'd6
447
`define SW_YL           6'd7
448
`define SW_YH           6'd8
449
`define SW_USPL         6'd9
450
`define SW_USPH         6'd10
451
`define SW_SSPL         6'd11
452
`define SW_SSPH         6'd12
453
`define SW_PCH          6'd13
454
`define SW_PCL          6'd14
455
`define SW_CCR          6'd15
456
`define SW_RES8         6'd16
457
`define SW_RES16L       6'd17
458
`define SW_RES16H       6'd18
459
`define SW_DEF8         6'd19
460
`define SW_PC3124       6'd20
461
`define SW_PC2316       6'd21
462
`define SW_ACCQ3124     6'd22
463
`define SW_ACCQ2316     6'd23
464
`define SW_ACCQ158      6'd24
465
`define SW_ACCQ70       6'd25
466
`define SW_X3124        6'd26
467
`define SW_X2316        6'd27
468
`define SW_Y3124        6'd28
469
`define SW_Y2316        6'd29
470
`define SW_USP3124      6'd30
471
`define SW_USP2316      6'd31
472
`define SW_SSP3124      6'd32
473
`define SW_SSP2316      6'd33
474
`define SW_ACCA3124 6'd34
475
`define SW_ACCA2316 6'd35
476
`define SW_ACCA158      6'd36
477
`define SW_ACCA70       6'd37
478
`define SW_ACCB3124 6'd38
479
`define SW_ACCB2316 6'd39
480
`define SW_ACCB158      6'd40
481
`define SW_ACCB70       6'd41
482
`define SW_NOTHING      6'd63
483
 
484
endpackage

powered by: WebSVN 2.1.0

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