1 |
3 |
robfinch |
module Raptor64_tb();
|
2 |
6 |
robfinch |
parameter IDLE = 8'd1;
|
3 |
|
|
parameter DOCMD = 8'd2;
|
4 |
3 |
robfinch |
|
5 |
|
|
reg clk;
|
6 |
|
|
reg rst;
|
7 |
14 |
robfinch |
reg nmi;
|
8 |
3 |
robfinch |
wire sys_cyc;
|
9 |
|
|
wire sys_stb;
|
10 |
|
|
wire sys_we;
|
11 |
|
|
wire [7:0] sys_sel;
|
12 |
14 |
robfinch |
wire [63:0] sys_adr;
|
13 |
|
|
wire [63:0] sys_dbo;
|
14 |
|
|
wire [63:0] sys_dbi;
|
15 |
3 |
robfinch |
wire sys_ack;
|
16 |
6 |
robfinch |
reg [7:0] cnt;
|
17 |
12 |
robfinch |
wire wr_empty = 1'b1;
|
18 |
|
|
wire wr_full;
|
19 |
14 |
robfinch |
reg [63:0] iromout;
|
20 |
3 |
robfinch |
|
21 |
|
|
assign sys_ack = sys_stb;
|
22 |
|
|
|
23 |
|
|
initial begin
|
24 |
|
|
clk = 1;
|
25 |
|
|
rst = 0;
|
26 |
14 |
robfinch |
nmi = 0;
|
27 |
3 |
robfinch |
#100 rst = 1;
|
28 |
|
|
#100 rst = 0;
|
29 |
14 |
robfinch |
#1300 nmi = 1;
|
30 |
|
|
#100 nmi = 0;
|
31 |
3 |
robfinch |
end
|
32 |
|
|
|
33 |
|
|
always #10 clk = ~clk; // 50 MHz
|
34 |
|
|
|
35 |
12 |
robfinch |
always @(sys_adr)
|
36 |
14 |
robfinch |
case(sys_adr)// | 64'hFFFF_FFFF_FFFF_0000)
|
37 |
20 |
robfinch |
64'hFFFFFFFFFFFFF000: iromout <= 64'h00001CA1FFD00000;
|
38 |
|
|
64'hFFFFFFFFFFFFF008: iromout <= 64'h0A30000002028800;
|
39 |
|
|
64'hFFFFFFFFFFFFF010: iromout <= 64'h0000099046000000;
|
40 |
|
|
64'hFFFFFFFFFFFFF018: iromout <= 64'h038840000010A108;
|
41 |
|
|
64'hFFFFFFFFFFFFF020: iromout <= 64'h002AA2F881FFFF89;
|
42 |
|
|
64'hFFFFFFFFFFFFF028: iromout <= 64'h2F8400001A902008;
|
43 |
|
|
64'hFFFFFFFFFFFFF030: iromout <= 64'h0022A4A176543210;
|
44 |
|
|
64'hFFFFFFFFFFFFF038: iromout <= 64'h008400009A902100;
|
45 |
|
|
64'hFFFFFFFFFFFFF040: iromout <= 64'h0024A4A1FEDCBA98;
|
46 |
|
|
64'hFFFFFFFFFFFFF048: iromout <= 64'h00840000A2902100;
|
47 |
|
|
64'hFFFFFFFFFFFFF050: iromout <= 64'h004FF6F800000028;
|
48 |
|
|
64'hFFFFFFFFFFFFF058: iromout <= 64'h0580400042B16008;
|
49 |
|
|
64'hFFFFFFFFFFFFF060: iromout <= 64'hFFFFFC1044500018;
|
50 |
|
|
64'hFFFFFFFFFFFFF068: iromout <= 64'h05803D00000FFFFF;
|
51 |
|
|
64'hFFFFFFFFFFFFF070: iromout <= 64'h0000505804000032;
|
52 |
|
|
64'hFFFFFFFFFFFFF078: iromout <= 64'h1884400000016018;
|
53 |
|
|
64'hFFFFFFFFFFFFF080: iromout <= 64'h0000042842000002;
|
54 |
|
|
64'hFFFFFFFFFFFFF088: iromout <= 64'h2F8C1FFFFC90C318;
|
55 |
|
|
64'hFFFFFFFFFFFFF090: iromout <= 64'h000000C7FFFFFC2C;
|
56 |
|
|
64'hFFFFFFFFFFFFF098: iromout <= 64'h37800000000DE000;
|
57 |
|
|
64'hFFFFFFFFFFFFF0B0: iromout <= 64'h700003FFFFFFFFFF;
|
58 |
|
|
64'hFFFFFFFFFFFFF0B8: iromout <= 64'h100440000001600F;
|
59 |
|
|
64'hFFFFFFFFFFFFF0C0: iromout <= 64'h000006F881FFFFC1;
|
60 |
|
|
64'hFFFFFFFFFFFFF0C8: iromout <= 64'h0D83E00000040100;
|
61 |
|
|
64'hFFFFFFFFFFFFF0D0: iromout <= 64'hAAAB541000800009;
|
62 |
|
|
64'hFFFFFFFFFFFFF0D8: iromout <= 64'h05802AA5555F5554;
|
63 |
|
|
64'hFFFFFFFFFFFFF0E0: iromout <= 64'h0000019A02000000;
|
64 |
|
|
64'hFFFFFFFFFFFFF0E8: iromout <= 64'h0104430000646810;
|
65 |
|
|
64'hFFFFFFFFFFFFF0F0: iromout <= 64'h000022F8C00000A9;
|
66 |
|
|
64'hFFFFFFFFFFFFF0F8: iromout <= 64'h042060000000A840;
|
67 |
|
|
64'hFFFFFFFFFFFFF100: iromout <= 64'h800026F8C1FFFF00;
|
68 |
|
|
64'hFFFFFFFFFFFFF108: iromout <= 64'h0100080000904802;
|
69 |
|
|
64'hFFFFFFFFFFFFF110: iromout <= 64'hA955551A04000000;
|
70 |
|
|
64'hFFFFFFFFFFFFF118: iromout <= 64'h2F8C00001091021A;
|
71 |
|
|
64'hFFFFFFFFFFFFF120: iromout <= 64'h0000002210000008;
|
72 |
|
|
64'hFFFFFFFFFFFFF128: iromout <= 64'h2F8C1FFFF801081C;
|
73 |
|
|
64'hFFFFFFFFFFFFF130: iromout <= 64'h000026FA14000329;
|
74 |
|
|
64'hFFFFFFFFFFFFF138: iromout <= 64'h3AAAAD5552A04002;
|
75 |
|
|
64'hFFFFFFFFFFFFF140: iromout <= 64'h000000580355AAAA;
|
76 |
|
|
64'hFFFFFFFFFFFFF148: iromout <= 64'h11A0400000066808;
|
77 |
|
|
64'hFFFFFFFFFFFFF150: iromout <= 64'h0003241044300006;
|
78 |
|
|
64'hFFFFFFFFFFFFF158: iromout <= 64'h02210000008BE300;
|
79 |
|
|
64'hFFFFFFFFFFFFF160: iromout <= 64'hFFFC804207000000;
|
80 |
|
|
64'hFFFFFFFFFFFFF168: iromout <= 64'h01200B00009BE307;
|
81 |
|
|
64'hFFFFFFFFFFFFF170: iromout <= 64'h0000001000800009;
|
82 |
|
|
64'hFFFFFFFFFFFFF178: iromout <= 64'h0408755AAAA46810;
|
83 |
|
|
64'hFFFFFFFFFFFFF180: iromout <= 64'h000022F8C00000A9;
|
84 |
|
|
64'hFFFFFFFFFFFFF188: iromout <= 64'h0420700000008840;
|
85 |
|
|
64'hFFFFFFFFFFFFF190: iromout <= 64'h000222F8C1FFFF20;
|
86 |
|
|
64'hFFFFFFFFFFFFF198: iromout <= 64'h01216800014BE858;
|
87 |
|
|
64'hFFFFFFFFFFFFF1A0: iromout <= 64'h000052FA14000048;
|
88 |
|
|
64'hFFFFFFFFFFFFF1A8: iromout <= 64'h1981000040004852;
|
89 |
|
|
64'hFFFFFFFFFFFFF1B0: iromout <= 64'h000080D83E000000;
|
90 |
|
|
64'hFFFFFFFFFFFFF1B8: iromout <= 64'h19803FF000000000;
|
91 |
|
|
64'hFFFFFFFFFFFFF1C0: iromout <= 64'h0000D19805FF0008;
|
92 |
|
|
64'hFFFFFFFFFFFFF1C8: iromout <= 64'h2F84000002902008;
|
93 |
|
|
64'hFFFFFFFFFFFFF1D0: iromout <= 64'h0010A00802000228;
|
94 |
|
|
64'hFFFFFFFFFFFFF1D8: iromout <= 64'h008800005A902010;
|
95 |
|
|
64'hFFFFFFFFFFFFF1E0: iromout <= 64'h40000C1884680001;
|
96 |
|
|
64'hFFFFFFFFFFFFF1E8: iromout <= 64'h1184400000004110;
|
97 |
|
|
64'hFFFFFFFFFFFFF1F0: iromout <= 64'h0000200880000529;
|
98 |
|
|
64'hFFFFFFFFFFFFF1F8: iromout <= 64'h008800005A946110;
|
99 |
|
|
64'hFFFFFFFFFFFFF200: iromout <= 64'h0000D40800000034;
|
100 |
|
|
64'hFFFFFFFFFFFFF208: iromout <= 64'h11803FF000002000;
|
101 |
|
|
64'hFFFFFFFFFFFFF210: iromout <= 64'h0000811805FF0008;
|
102 |
|
|
64'hFFFFFFFFFFFFF218: iromout <= 64'h3780000000000000;
|
103 |
|
|
64'hFFFFFFFFFFFFFFB0: iromout <= 64'h000000CFFFFFFC6E;
|
104 |
14 |
robfinch |
64'hFFFFFFFFFFFFFFB8: iromout <= 64'h37800000000DE000;
|
105 |
20 |
robfinch |
64'hFFFFFFFFFFFFFFC0: iromout <= 64'h000000CFFFFFFC6E;
|
106 |
14 |
robfinch |
64'hFFFFFFFFFFFFFFC8: iromout <= 64'h37800000000DE000;
|
107 |
|
|
64'hFFFFFFFFFFFFFFD0: iromout <= 64'h0000037800000000;
|
108 |
|
|
64'hFFFFFFFFFFFFFFD8: iromout <= 64'h37800000000DE000;
|
109 |
20 |
robfinch |
64'hFFFFFFFFFFFFFFE0: iromout <= 64'h000000CFFFFFFC6D;
|
110 |
14 |
robfinch |
64'hFFFFFFFFFFFFFFE8: iromout <= 64'h37800000000DE000;
|
111 |
|
|
64'hFFFFFFFFFFFFFFF0: iromout <= 64'h000000CFFFFFFC00;
|
112 |
|
|
64'hFFFFFFFFFFFFFFF8: iromout <= 64'h0000000000000000;
|
113 |
|
|
|
114 |
12 |
robfinch |
endcase
|
115 |
|
|
assign sys_dbi = iromout;
|
116 |
3 |
robfinch |
|
117 |
|
|
|
118 |
14 |
robfinch |
Raptor64sc u1
|
119 |
3 |
robfinch |
(
|
120 |
|
|
.rst_i(rst),
|
121 |
|
|
.clk_i(clk),
|
122 |
14 |
robfinch |
.nmi_i(nmi),
|
123 |
3 |
robfinch |
.irq_i(1'b0),
|
124 |
|
|
.bte_o(),
|
125 |
|
|
.cti_o(),
|
126 |
|
|
.cyc_o(sys_cyc),
|
127 |
|
|
.stb_o(sys_stb),
|
128 |
|
|
.ack_i(sys_ack),
|
129 |
|
|
.we_o(sys_we),
|
130 |
|
|
.sel_o(sys_sel),
|
131 |
|
|
.adr_o(sys_adr),
|
132 |
|
|
.dat_i(sys_dbi),
|
133 |
|
|
.dat_o(sys_dbo),
|
134 |
6 |
robfinch |
|
135 |
3 |
robfinch |
.sys_adv(1'b0),
|
136 |
|
|
.sys_adr(59'd0)
|
137 |
|
|
);
|
138 |
|
|
endmodule
|