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

Subversion Repositories rf6809

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

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 21 robfinch
// The following adds support for many 6309 instructions.
13
//`define SUPPORT_6309
14
 
15 2 robfinch
// The following allows asynchronous reads for icache updating.
16
// It increases the size of the core.
17
//`define SUPPORT_AREAD 1
18
 
19
// The following includes an instruction buffer when icache is
20
// not used.
21
//`define SUPPORT_IBUF  1
22
 
23
// The following enables support for the checkpoint interrupt.
24
//`define SUPPORT_CHECKPOINT
25
 
26
//`define EIGHTBIT      1
27
`define TWELVEBIT       2
28
 
29
`ifdef EIGHTBIT
30
`define LOBYTE  7:0
31
`define HIBYTE  15:8
32
`define DBLBYTE 15:0
33
`define TRPBYTE         23:0
34
`define BYTE1           7:0
35
`define BYTE2           15:8
36
`define BYTE3           23:16
37
`define BYTE4           31:24
38
`define BYTE5           39:32
39
`define QUINBYTE        47:0
40
`define HEXBYTE         55:0
41
`define DBLBYTEP1       16:0
42
`define LOBYTEP1        8:0
43
`define HCBIT           3
44
`endif
45
 
46
`ifdef TWELVEBIT
47
`define LOBYTE  11:0
48
`define HIBYTE  23:12
49
`define DBLBYTE 23:0
50
`define TRPBYTE         35:0
51
`define BYTE1           11:0
52
`define BYTE2           23:12
53
`define BYTE3           35:24
54
`define BYTE4           47:36
55
`define BYTE5           59:48
56
`define QUINBYTE        59:0
57
`define HEXBYTE         71:0
58
`define DBLBYTEP1       24:0
59
`define LOBYTEP1        12:0
60
`define HCBIT           3
61
`endif
62
 
63
`define TRUE            1'b1
64
`define FALSE           1'b0
65
 
66
`define RST_VECT        24'hFFFFFE
67
`define NMI_VECT        24'hFFFFFC
68
`define SWI_VECT        24'hFFFFFA
69
`define IRQ_VECT        24'hFFFFF8
70
`define FIRQ_VECT       24'hFFFFF6
71
`define SWI2_VECT       24'hFFFFF4
72
`define SWI3_VECT       24'hFFFFF2
73
`define RESV_VECT       24'hFFFFF0
74
 
75
`define NEG_DP          12'h000
76
`define OIM_DP          12'h001
77
`define AIM_DP          12'h002
78
`define COM_DP          12'h003
79
`define LSR_DP          12'h004
80
`define EIM_DP          12'h005
81
`define ROR_DP          12'h006
82
`define ASR_DP          12'h007
83
`define ASL_DP          12'h008
84
`define ROL_DP          12'h009
85
`define DEC_DP          12'h00A
86
`define TIM_DP          12'h00B
87
`define INC_DP          12'h00C
88
`define TST_DP          12'h00D
89
`define JMP_DP          12'h00E
90
`define CLR_DP          12'h00F
91
 
92
`define PG2                     12'h010
93
`define PG3                     12'h011
94
`define NOP                     12'h012
95
`define SYNC            12'h013
96
`define SEXW            12'h014
97
`define FAR                     12'h015
98
`define LBRA            12'h016
99
`define LBSR            12'h017
100
`define DAA                     12'h019
101
`define ORCC            12'h01A
102
`define OUTER           12'h01B
103
`define ANDCC           12'h01C
104
`define SEX                     12'h01D
105
`define EXG                     12'h01E
106
`define TFR                     12'h01F
107
 
108
`define BRA                     12'h020
109
`define BRN                     12'h021
110
`define BHI                     12'h022
111
`define BLS                     12'h023
112
`define BHS                     12'h024
113
`define BLO                     12'h025
114
`define BNE                     12'h026
115
`define BEQ                     12'h027
116
`define BVC                     12'h028
117
`define BVS                     12'h029
118
`define BPL                     12'h02A
119
`define BMI                     12'h02B
120
`define BGE                     12'h02C
121
`define BLT                     12'h02D
122
`define BGT                     12'h02E
123
`define BLE                     12'h02F
124
 
125
`define LEAX_NDX        12'h030
126
`define LEAY_NDX        12'h031
127
`define LEAS_NDX        12'h032
128
`define LEAU_NDX        12'h033
129
`define PSHS            12'h034
130
`define PULS            12'h035
131
`define PSHU            12'h036
132
`define PULU            12'h037
133
`define RTF                     12'h038
134
`define RTS                     12'h039
135
`define ABX                     12'h03A
136
`define RTI                     12'h03B
137
`define CWAI            12'h03C
138
`define MUL                     12'h03D
139
`define SWI                     12'h03F
140
 
141
`define NEGA            12'h040
142
`define COMA            12'h043
143
`define LSRA            12'h044
144
`define RORA            12'h046
145
`define ASRA            12'h047
146
`define ASLA            12'h048
147
`define ROLA            12'h049
148
`define DECA            12'h04A
149
`define INCA            12'h04C
150
`define TSTA            12'h04D
151
`define CLRA            12'h04F
152
 
153
`define NEGB            12'h050
154
`define COMB            12'h053
155
`define LSRB            12'h054
156
`define RORB            12'h056
157
`define ASRB            12'h057
158
`define ASLB            12'h058
159
`define ROLB            12'h059
160
`define DECB            12'h05A
161
`define INCB            12'h05C
162
`define TSTB            12'h05D
163
`define CLRB            12'h05F
164
 
165
`define NEG_NDX         12'h060
166
`define OIM_NDX         12'h061
167
`define AIM_NDX         12'h062
168
`define COM_NDX         12'h063
169
`define LSR_NDX         12'h064
170
`define EIM_NDX         12'h065
171
`define ROR_NDX         12'h066
172
`define ASR_NDX         12'h067
173
`define ASL_NDX         12'h068
174
`define ROL_NDX         12'h069
175
`define DEC_NDX         12'h06A
176
`define TIM_NDX         12'h06B
177
`define INC_NDX         12'h06C
178
`define TST_NDX         12'h06D
179
`define JMP_NDX         12'h06E
180
`define CLR_NDX         12'h06F
181
 
182
`define NEG_EXT         12'h070
183
`define OIM_EXT         12'h071
184
`define AIM_EXT         12'h072
185
`define COM_EXT         12'h073
186
`define LSR_EXT         12'h074
187
`define EIM_EXT         12'h075
188
`define ROR_EXT         12'h076
189
`define ASR_EXT         12'h077
190
`define ASL_EXT         12'h078
191
`define ROL_EXT         12'h079
192
`define DEC_EXT         12'h07A
193
`define TIM_EXT         12'h07B
194
`define INC_EXT         12'h07C
195
`define TST_EXT         12'h07D
196
`define JMP_EXT         12'h07E
197
`define CLR_EXT         12'h07F
198
 
199
`define SUBA_IMM        12'h080
200
`define CMPA_IMM        12'h081
201
`define SBCA_IMM        12'h082
202
`define SUBD_IMM        12'h083
203
`define ANDA_IMM        12'h084
204
`define BITA_IMM        12'h085
205
`define LDA_IMM         12'h086
206
`define EORA_IMM        12'h088
207
`define ADCA_IMM        12'h089
208
`define ORA_IMM         12'h08A
209
`define ADDA_IMM        12'h08B
210
`define CMPX_IMM        12'h08C
211
`define BSR                     12'h08D
212
`define LDX_IMM         12'h08E
213
`define JMP_FAR         12'h08F
214
 
215
`define SUBA_DP         12'h090
216
`define CMPA_DP         12'h091
217
`define SBCA_DP         12'h092
218
`define SUBD_DP         12'h093
219
`define ANDA_DP         12'h094
220
`define BITA_DP         12'h095
221
`define LDA_DP          12'h096
222
`define STA_DP          12'h097
223
`define EORA_DP         12'h098
224
`define ADCA_DP         12'h099
225
`define ORA_DP          12'h09A
226
`define ADDA_DP         12'h09B
227
`define CMPX_DP         12'h09C
228
`define JSR_DP          12'h09D
229
`define LDX_DP          12'h09E
230
`define STX_DP          12'h09F
231
 
232
`define SUBA_NDX        12'h0A0
233
`define CMPA_NDX        12'h0A1
234
`define SBCA_NDX        12'h0A2
235
`define SUBD_NDX        12'h0A3
236
`define ANDA_NDX        12'h0A4
237
`define BITA_NDX        12'h0A5
238
`define LDA_NDX         12'h0A6
239
`define STA_NDX         12'h0A7
240
`define EORA_NDX        12'h0A8
241
`define ADCA_NDX        12'h0A9
242
`define ORA_NDX         12'h0AA
243
`define ADDA_NDX        12'h0AB
244
`define CMPX_NDX        12'h0AC
245
`define JSR_NDX         12'h0AD
246
`define LDX_NDX         12'h0AE
247
`define STX_NDX         12'h0AF
248
 
249
`define SUBA_EXT        12'h0B0
250
`define CMPA_EXT        12'h0B1
251
`define SBCA_EXT        12'h0B2
252
`define SUBD_EXT        12'h0B3
253
`define ANDA_EXT        12'h0B4
254
`define BITA_EXT        12'h0B5
255
`define LDA_EXT         12'h0B6
256
`define STA_EXT         12'h0B7
257
`define EORA_EXT        12'h0B8
258
`define ADCA_EXT        12'h0B9
259
`define ORA_EXT         12'h0BA
260
`define ADDA_EXT        12'h0BB
261
`define CMPX_EXT        12'h0BC
262
`define JSR_EXT         12'h0BD
263
`define LDX_EXT         12'h0BE
264
`define STX_EXT         12'h0BF
265
 
266
`define SUBB_IMM        12'h0C0
267
`define CMPB_IMM        12'h0C1
268
`define SBCB_IMM        12'h0C2
269
`define ADDD_IMM        12'h0C3
270
`define ANDB_IMM        12'h0C4
271
`define BITB_IMM        12'h0C5
272
`define LDB_IMM         12'h0C6
273
`define EORB_IMM        12'h0C8
274
`define ADCB_IMM        12'h0C9
275
`define ORB_IMM         12'h0CA
276
`define ADDB_IMM        12'h0CB
277
`define LDD_IMM         12'h0CC
278
`define LDQ_IMM         12'h0CD
279
`define LDU_IMM         12'h0CE
280
`define JSR_FAR         12'h0CF
281
 
282
`define SUBB_DP         12'h0D0
283
`define CMPB_DP         12'h0D1
284
`define SBCB_DP         12'h0D2
285
`define ADDD_DP         12'h0D3
286
`define ANDB_DP         12'h0D4
287
`define BITB_DP         12'h0D5
288
`define LDB_DP          12'h0D6
289
`define STB_DP          12'h0D7
290
`define EORB_DP         12'h0D8
291
`define ADCB_DP         12'h0D9
292
`define ORB_DP          12'h0DA
293
`define ADDB_DP         12'h0DB
294
`define LDD_DP          12'h0DC
295
`define STD_DP          12'h0DD
296
`define LDU_DP          12'h0DE
297
`define STU_DP          12'h0DF
298
 
299
`define SUBB_NDX        12'h0E0
300
`define CMPB_NDX        12'h0E1
301
`define SBCB_NDX        12'h0E2
302
`define ADDD_NDX        12'h0E3
303
`define ANDB_NDX        12'h0E4
304
`define BITB_NDX        12'h0E5
305
`define LDB_NDX         12'h0E6
306
`define STB_NDX         12'h0E7
307
`define EORB_NDX        12'h0E8
308
`define ADCB_NDX        12'h0E9
309
`define ORB_NDX         12'h0EA
310
`define ADDB_NDX        12'h0EB
311
`define LDD_NDX         12'h0EC
312
`define STD_NDX         12'h0ED
313
`define LDU_NDX         12'h0EE
314
`define STU_NDX         12'h0EF
315
 
316
`define SUBB_EXT        12'h0F0
317
`define CMPB_EXT        12'h0F1
318
`define SBCB_EXT        12'h0F2
319
`define ADDD_EXT        12'h0F3
320
`define ANDB_EXT        12'h0F4
321
`define BITB_EXT        12'h0F5
322
`define LDB_EXT         12'h0F6
323
`define STB_EXT         12'h0F7
324
`define EORB_EXT        12'h0F8
325
`define ADCB_EXT        12'h0F9
326
`define ORB_EXT         12'h0FA
327
`define ADDB_EXT        12'h0FB
328
`define LDD_EXT         12'h0FC
329
`define STD_EXT         12'h0FD
330
`define LDU_EXT         12'h0FE
331
`define STU_EXT         12'h0FF
332
 
333
`define TFS                     12'h11E
334
`define TTS                     12'h11F
335
 
336
`define LBRN            12'h121
337
`define LBHI            12'h122
338
`define LBLS            12'h123
339
`define LBHS            12'h124
340
`define LBLO            12'h125
341
`define LBNE            12'h126
342
`define LBEQ            12'h127
343
`define LBVC            12'h128
344
`define LBVS            12'h129
345
`define LBPL            12'h12A
346
`define LBMI            12'h12B
347
`define LBGE            12'h12C
348
`define LBLT            12'h12D
349
`define LBGT            12'h12E
350
`define LBLE            12'h12F
351
 
352 21 robfinch
`define ADDR            12'h130
353
`define ADCR            12'h131
354
`define SUBR            12'h132
355
`define SBCR            12'h133
356
`define ANDR            12'h134
357
`define ORR                     12'h135
358
`define EORR            12'h136
359
`define CMPR            12'h137
360 2 robfinch
`define SWI2            12'h13F
361 21 robfinch
`define NEGD            12'h140
362
`define COMD            12'h143
363
`define LSRD            12'h144
364
`define RORD            12'h146
365
`define ASRD            12'h147
366 2 robfinch
`define ASLD            12'h148
367 21 robfinch
`define ROLD            12'h149
368
`define DECD            12'h14A
369
`define INCD            12'h14C
370 2 robfinch
`define TSTD            12'h14D
371 21 robfinch
`define CLRD            12'h14F
372
`define COMW            12'h153
373
`define LSRW            12'h154
374
`define RORW            12'h156
375
`define ROLW            12'h159
376
`define DECW            12'h15A
377
`define INCW            12'h15C
378
`define TSTW            12'h15D
379
`define CLRW            12'h15F
380
`define SUBW_IMM        12'h180
381
`define CMPW_IMM        12'h181
382 2 robfinch
`define SBCD_IMM        12'h182
383
`define CMPD_IMM        12'h183
384
`define ANDD_IMM        12'h184
385 21 robfinch
`define BITD_IMM        12'h185
386
`define LDW_IMM         12'h186
387
`define EORD_IMM        12'h188
388 2 robfinch
`define ADCD_IMM        12'h189
389 21 robfinch
`define ORD_IMM         12'h18A
390
`define ADDW_IMM        12'h18B
391 2 robfinch
`define CMPY_IMM        12'h18C
392
`define LDY_IMM         12'h18E
393 21 robfinch
`define SUBW_DP         12'h190
394
`define CMPW_DP         12'h191
395 2 robfinch
`define SBCD_DP         12'h192
396
`define CMPD_DP         12'h193
397
`define ANDD_DP         12'h194
398 21 robfinch
`define BITD_DP         12'h195
399
`define LDW_DP          12'h196
400
`define STW_DP          12'h197
401
`define EORD_DP         12'h198
402 2 robfinch
`define ADCD_DP         12'h199
403 21 robfinch
`define ORD_DP          12'h19A
404
`define ADDW_DP         12'h19B
405 2 robfinch
`define CMPY_DP         12'h19C
406
`define LDY_DP          12'h19E
407
`define STY_DP          12'h19F
408 21 robfinch
`define SUBW_NDX        12'h1A0
409
`define CMPW_NDX        12'h1A1
410 2 robfinch
`define SBCD_NDX        12'h1A2
411
`define CMPD_NDX        12'h1A3
412
`define ANDD_NDX        12'h1A4
413 21 robfinch
`define BITD_NDX        12'h1A5
414
`define LDW_NDX         12'h1A6
415
`define STW_NDX         12'h1A7
416
`define EORD_NDX        12'h1A8
417 2 robfinch
`define ADCD_NDX        12'h1A9
418 21 robfinch
`define ORD_NDX         12'h1AA
419
`define ADDW_NDX        12'h1AB
420 2 robfinch
`define CMPY_NDX        12'h1AC
421
`define LDY_NDX         12'h1AE
422
`define STY_NDX         12'h1AF
423 21 robfinch
`define SUBW_EXT        12'h1B0
424
`define CMPW_EXT        12'h1B1
425 2 robfinch
`define SBCD_EXT        12'h1B2
426
`define CMPD_EXT        12'h1B3
427
`define ANDD_EXT        12'h1B4
428 21 robfinch
`define BITD_EXT        12'h1B5
429
`define LDW_EXT         12'h1B6
430
`define STW_EXT         12'h1B7
431
`define EORD_EXT        12'h1B8
432 2 robfinch
`define ADCD_EXT        12'h1B9
433 21 robfinch
`define ORD_EXT         12'h1BA
434
`define ADDW_EXT        12'h1BB
435 2 robfinch
`define CMPY_EXT        12'h1BC
436
`define LDY_EXT         12'h1BE
437
`define STY_EXT         12'h1BF
438
`define LDS_IMM         12'h1CE
439
`define LDQ_DP          12'h1DC
440
`define STQ_DP          12'h1DD
441
`define LDS_DP          12'h1DE
442
`define STS_DP          12'h1DF
443
`define LDQ_NDX         12'h1EC
444
`define STQ_NDX         12'h1ED
445
`define LDS_NDX         12'h1EE
446
`define STS_NDX         12'h1EF
447
`define LDQ_EXT         12'h1FC
448
`define STQ_EXT         12'h1FD
449
`define LDS_EXT         12'h1FE
450
`define STS_EXT         12'h1FF
451
`define LDMD            12'h23D
452
`define SWI3            12'h23F
453 21 robfinch
`define COME            12'h243
454
`define DECE            12'h24A
455
`define INCE            12'h24C
456
`define TSTE            12'h24D
457
`define CLRE            12'h24F
458
`define COMF            12'h253
459
`define DECF            12'h25A
460
`define INCF            12'h25C
461
`define TSTF            12'h25D
462
`define CLRF            12'h25F
463
`define SUBE_IMM        12'h280
464 2 robfinch
`define CMPU_IMM        12'h283
465 21 robfinch
`define LDE_IMM         12'h286
466
`define ADDE_IMM        12'h28B
467
`define DIVD_IMM        12'h28D
468
`define SUBE_DP         12'h290
469
`define LDE_DP          12'h296
470
`define ADDE_DP         12'h29B
471
`define DIVD_DP         12'h29D
472
`define SUBE_NDX        12'h2A0
473
`define LDE_NDX         12'h2A6
474
`define ADDE_NDX        12'h2AB
475
`define DIVD_NDX        12'h2AD
476
`define SUBE_EXT        12'h2B0
477
`define LDE_EXT         12'h2B6
478
`define ADDE_EXT        12'h2BB
479
`define DIVD_EXT        12'h2BD
480
`define SUBF_IMM        12'h2C0
481
`define LDF_IMM         12'h2C6
482
`define ADDF_IMM        12'h2CB
483
`define SUBF_DP         12'h2D0
484
`define LDF_DP          12'h2D6
485
`define ADDF_DP         12'h2DB
486
`define SUBF_NDX        12'h2E0
487
`define LDF_NDX         12'h2E6
488
`define ADDF_NDX        12'h2EB
489
`define SUBF_EXT        12'h2F0
490
`define LDF_EXT         12'h2F6
491
`define ADDF_EXT        12'h2FB
492
`define CMPE_IMM        12'h281
493
`define CMPE_DP         12'h291
494
`define STE_DP          12'h297
495
`define STE_NDX         12'h2A7
496
`define STE_EXT         12'h2B7
497
`define STF_DP          12'h2D7
498
`define STF_NDX         12'h2E7
499
`define STF_EXT         12'h2F7
500
`define CMPE_NDX        12'h2A1
501
`define CMPE_EXT        12'h2B1
502
`define CMPF_IMM        12'h2C1
503
`define CMPF_DP         12'h2D1
504
`define CMPF_NDX        12'h2E1
505
`define CMPF_EXT        12'h2F1
506 2 robfinch
`define CMPS_IMM        12'h28C
507
`define CMPU_DP         12'h293
508
`define CMPS_DP         12'h29C
509
`define CMPU_NDX        12'h2A3
510
`define CMPS_NDX        12'h2AC
511
`define CMPU_EXT        12'h2B3
512
`define CMPS_EXT        12'h2BC
513
 
514
// Unused opcode
515
`define INT                     12'h33E
516
 
517
`define LW_CCR          6'd0
518
`define LW_ACCA         6'd1
519
`define LW_ACCB         6'd2
520
`define LW_DPR          6'd3
521
`define LW_XH           6'd4
522
`define LW_XL           6'd5
523
`define LW_YH           6'd6
524
`define LW_YL           6'd7
525
`define LW_USPH         6'd8
526
`define LW_USPL         6'd9
527
`define LW_SSPH         6'd10
528
`define LW_SSPL         6'd11
529
`define LW_PCH          6'd12
530
`define LW_PCL          6'd13
531
`define LW_BL           6'd14
532
`define LW_BH           6'd15
533
`define LW_IAL          6'd16
534
`define LW_IAH          6'd17
535
`define LW_PC3124       6'd18
536
`define LW_PC2316       6'd19
537
`define LW_IA3124       6'd20
538
`define LW_IA2316       6'd21
539
`define LW_B3124        6'd22
540
`define LW_B2316        6'd23
541
`define LW_X3124        6'd24
542
`define LW_X2316        6'd25
543
`define LW_Y3124        6'd26
544
`define LW_Y2316        6'd27
545
`define LW_USP3124      6'd28
546
`define LW_USP2316      6'd29
547
`define LW_SSP3124      6'd30
548
`define LW_SSP2316      6'd31
549 21 robfinch
`define LW_ACCE                 6'd32
550
`define LW_ACCF                 6'd33
551 2 robfinch
`define LW_NOTHING      6'd63
552
 
553
`define SW_ACCDH        6'd0
554
`define SW_ACCDL        6'd1
555
`define SW_ACCA         6'd2
556
`define SW_ACCB         6'd3
557
`define SW_DPR          6'd4
558
`define SW_XL           6'd5
559
`define SW_XH           6'd6
560
`define SW_YL           6'd7
561
`define SW_YH           6'd8
562
`define SW_USPL         6'd9
563
`define SW_USPH         6'd10
564
`define SW_SSPL         6'd11
565
`define SW_SSPH         6'd12
566
`define SW_PCH          6'd13
567
`define SW_PCL          6'd14
568
`define SW_CCR          6'd15
569
`define SW_RES8         6'd16
570
`define SW_RES16L       6'd17
571
`define SW_RES16H       6'd18
572
`define SW_DEF8         6'd19
573
`define SW_PC3124       6'd20
574
`define SW_PC2316       6'd21
575
`define SW_ACCQ3124     6'd22
576
`define SW_ACCQ2316     6'd23
577
`define SW_ACCQ158      6'd24
578
`define SW_ACCQ70       6'd25
579
`define SW_X3124        6'd26
580
`define SW_X2316        6'd27
581
`define SW_Y3124        6'd28
582
`define SW_Y2316        6'd29
583
`define SW_USP3124      6'd30
584
`define SW_USP2316      6'd31
585
`define SW_SSP3124      6'd32
586
`define SW_SSP2316      6'd33
587
`define SW_ACCA3124 6'd34
588
`define SW_ACCA2316 6'd35
589
`define SW_ACCA158      6'd36
590
`define SW_ACCA70       6'd37
591
`define SW_ACCB3124 6'd38
592
`define SW_ACCB2316 6'd39
593
`define SW_ACCB158      6'd40
594
`define SW_ACCB70       6'd41
595 21 robfinch
`define SW_ACCE         6'd42
596
`define SW_ACCF         6'd43
597
`define SW_ACCWH        6'd44
598
`define SW_ACCWL        6'd45
599 2 robfinch
`define SW_NOTHING      6'd63
600
 
601
endpackage

powered by: WebSVN 2.1.0

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