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

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [rtl/] [verilog/] [Raptor64_tb.v] - Blame information for rev 6

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

Line No. Rev Author Line
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
wire sys_cyc;
8
wire sys_stb;
9
wire sys_we;
10
wire [7:0] sys_sel;
11
wire [63:0] sys_adr;
12
wire [63:0] sys_dbo;
13
wire [63:0] sys_dbi;
14 6 robfinch
reg [31:0] rd_data;
15 3 robfinch
wire sys_ack;
16 6 robfinch
wire cmd_en;
17
wire [2:0] cmd_instr;
18
wire [5:0] cmd_bl;
19
wire [29:0] cmd_byte_addr;
20
reg cmd_full;
21
reg [5:0] tb_cmd_bl;
22
reg [2:0] tb_cmd_instr;
23
reg [29:0] tb_cmd_byte_addr;
24
wire rd_en;
25
reg rd_empty;
26
reg [7:0] cnt;
27 3 robfinch
 
28
assign sys_ack = sys_stb;
29
 
30
initial begin
31
        clk = 1;
32
        rst = 0;
33
        #100 rst = 1;
34
        #100 rst = 0;
35
end
36
 
37
always #10 clk = ~clk;  //  50 MHz
38
 
39 6 robfinch
//always @(sys_adr)
40
//case(sys_adr)
41
//64'h0:        rd_data <= 64'h00002378 00000000;
42
//64'h8:        rd_data <= 64'h37800000 00030000;
43
//64'h10:       rd_data <= 64'h00000378 00000000;
44
//64'h18:       rd_data <= 64'h37800000 000DE000;
45
//64'h20:       rd_data <= 64'h700003FF FFFFFFFF;
46
//64'h28:       rd_data <= 64'h0D83E000 0001200F;
47
//
48
//endcase
49
//assign sys_dbi = rd_data;
50 3 robfinch
 
51 6 robfinch
reg [7:0] state;
52
always @(posedge clk)
53
if (rst) begin
54
        state <= IDLE;
55
        cmd_full <= 1'b0;
56
        rd_empty <= 1'b1;
57
end
58
else begin
59
case(state)
60
IDLE:
61
        if (cmd_en) begin
62
                tb_cmd_instr <= cmd_instr;
63
                tb_cmd_bl <= cmd_bl;
64
                tb_cmd_byte_addr <= cmd_byte_addr;
65
                cmd_full <= 1'b1;
66
                rd_empty <= 1'b1;
67
                cnt <= 8'd0;
68
                state <= DOCMD;
69
        end
70
DOCMD:
71
        case(tb_cmd_instr)
72
        3'b000: ;
73
        2'b001:
74
                begin
75
                        cmd_full <= 1'b0;
76
                        state <= IDLE;
77
                end
78
        endcase
79
default:        state <= IDLE;
80 3 robfinch
endcase
81 6 robfinch
        if (rd_en) begin
82
                if (cnt>=3) begin
83
                        rd_empty <= 1'b0;
84
                case(tb_cmd_byte_addr | 64'hFFFF_FFFF_FFFF_0000)
85
64'hFFFFFFFFFFFFF000:   rd_data <= 32'h020013FD;
86
64'hFFFFFFFFFFFFF004:   rd_data <= 32'h00006048;
87
64'hFFFFFFFFFFFFF008:   rd_data <= 32'h01802120;
88
64'hFFFFFFFFFFFFF00C:   rd_data <= 32'h00848000;
89
64'hFFFFFFFFFFFFF010:   rd_data <= 32'h0400042B;
90
64'hFFFFFFFFFFFFF014:   rd_data <= 32'h40006048;
91
64'hFFFFFFFFFFFFF018:   rd_data <= 32'h00004111;
92
64'hFFFFFFFFFFFFF01C:   rd_data <= 32'h04803D00;
93
64'hFFFFFFFFFFFFF020:   rd_data <= 32'h04000032;
94
64'hFFFFFFFFFFFFF024:   rd_data <= 32'h00193048;
95
64'hFFFFFFFFFFFFF028:   rd_data <= 32'h00012018;
96
64'hFFFFFFFFFFFFF02C:   rd_data <= 32'h18844000;
97
64'hFFFFFFFFFFFFF030:   rd_data <= 32'h42000002;
98
64'hFFFFFFFFFFFFF034:   rd_data <= 32'h00000420;
99
64'hFFFFFFFFFFFFF038:   rd_data <= 32'hFFE0A318;
100
64'hFFFFFFFFFFFFF03C:   rd_data <= 32'h288C1FFF;
101
64'hFFFFFFFFFFFFF040:   rd_data <= 32'hFFFFFC16;
102
64'hFFFFFFFFFFFFF044:   rd_data <= 32'h000000C7;
103
64'hFFFFFFFFFFFFF048:   rd_data <= 32'h000DE000;
104
64'hFFFFFFFFFFFFF04C:   rd_data <= 32'h37800000;
105
64'hFFFFFFFFFFFFF050:   rd_data <= 32'h00000000;
106
64'hFFFFFFFFFFFFF054:   rd_data <= 32'h00000378;
107
64'hFFFFFFFFFFFFF058:   rd_data <= 32'h000DE000;
108
64'hFFFFFFFFFFFFF05C:   rd_data <= 32'h04803DC0;
109
64'hFFFFFFFFFFFFF060:   rd_data <= 32'h44000000;
110
64'hFFFFFFFFFFFFF064:   rd_data <= 32'h00000100;
111
64'hFFFFFFFFFFFFF068:   rd_data <= 32'h001AA200;
112
64'hFFFFFFFFFFFFF06C:   rd_data <= 32'h10040000;
113
64'hFFFFFFFFFFFFF070:   rd_data <= 32'h3E000000;
114
64'hFFFFFFFFFFFFF074:   rd_data <= 32'h000024D8;
115
64'hFFFFFFFFFFFFF078:   rd_data <= 32'hAD504002;
116
64'hFFFFFFFFFFFFF07C:   rd_data <= 32'h3D5552AA;
117
64'hFFFFFFFFFFFFF080:   rd_data <= 32'h02AA5555;
118
64'hFFFFFFFFFFFFF084:   rd_data <= 32'h00000048;
119
64'hFFFFFFFFFFFFF088:   rd_data <= 32'h00066808;
120
64'hFFFFFFFFFFFFF08C:   rd_data <= 32'h11A04000;
121
64'hFFFFFFFFFFFFF090:   rd_data <= 32'h44300006;
122
64'hFFFFFFFFFFFFF094:   rd_data <= 32'h00002010;
123
64'hFFFFFFFFFFFFF098:   rd_data <= 32'h00820308;
124
64'hFFFFFFFFFFFFF09C:   rd_data <= 32'h02210000;
125
64'hFFFFFFFFFFFFF0A0:   rd_data <= 32'h00000000;
126
64'hFFFFFFFFFFFFF0A4:   rd_data <= 32'h00000380;
127
64'hFFFFFFFFFFFFF0A8:   rd_data <= 32'hFF90C81C;
128
64'hFFFFFFFFFFFFF0AC:   rd_data <= 32'h080C5FFF;
129
64'hFFFFFFFFFFFFF0B0:   rd_data <= 32'h00A00009;
130
64'hFFFFFFFFFFFFF0B4:   rd_data <= 32'h00002412;
131
64'hFFFFFFFFFFFFF0B8:   rd_data <= 32'h00004002;
132
64'hFFFFFFFFFFFFF0BC:   rd_data <= 32'h11A04000;
133
64'hFFFFFFFFFFFFF0C0:   rd_data <= 32'h552AAAD5;
134
64'hFFFFFFFFFFFFF0C4:   rd_data <= 32'hA95557D5;
135
64'hFFFFFFFFFFFFF0C8:   rd_data <= 32'h0090C21A;
136
64'hFFFFFFFFFFFFF0CC:   rd_data <= 32'h080C2000;
137
64'hFFFFFFFFFFFFF0D0:   rd_data <= 32'h10000008;
138
64'hFFFFFFFFFFFFF0D4:   rd_data <= 32'h00000022;
139
64'hFFFFFFFFFFFFF0D8:   rd_data <= 32'h000E0000;
140
64'hFFFFFFFFFFFFF0DC:   rd_data <= 32'h03207000;
141
64'hFFFFFFFFFFFFF0E0:   rd_data <= 32'hC5FFFFF6;
142
64'hFFFFFFFFFFFFF0E4:   rd_data <= 32'h00007880;
143
64'hFFFFFFFFFFFFF0E8:   rd_data <= 32'h009A2850;
144
64'hFFFFFFFFFFFFF0EC:   rd_data <= 32'h01000800;
145
64'hFFFFFFFFFFFFF0F0:   rd_data <= 32'hAAD5552A;
146
64'hFFFFFFFFFFFFF0F4:   rd_data <= 32'h56AAABAA;
147
64'hFFFFFFFFFFFFF0F8:   rd_data <= 32'h0001200D;
148
64'hFFFFFFFFFFFFF0FC:   rd_data <= 32'h19A02000;
149
64'hFFFFFFFFFFFFF100:   rd_data <= 32'h04000000;
150
64'hFFFFFFFFFFFFF104:   rd_data <= 32'hC000191A;
151
64'hFFFFFFFFFFFFF108:   rd_data <= 32'h00904110;
152
64'hFFFFFFFFFFFFF10C:   rd_data <= 32'h080C2000;
153
64'hFFFFFFFFFFFFF110:   rd_data <= 32'h10000008;
154
64'hFFFFFFFFFFFFF114:   rd_data <= 32'h00000022;
155
64'hFFFFFFFFFFFFF118:   rd_data <= 32'h000E0000;
156
64'hFFFFFFFFFFFFF11C:   rd_data <= 32'h03207000;
157
64'hFFFFFFFFFFFFF120:   rd_data <= 32'hC5FFFFF6;
158
64'hFFFFFFFFFFFFF124:   rd_data <= 32'hC0002480;
159
64'hFFFFFFFFFFFFF128:   rd_data <= 32'h00904802;
160
64'hFFFFFFFFFFFFF12C:   rd_data <= 32'h01000800;
161
64'hFFFFFFFFFFFFF130:   rd_data <= 32'h04000000;
162
64'hFFFFFFFFFFFFF134:   rd_data <= 32'h5554A91A;
163
64'hFFFFFFFFFFFFF138:   rd_data <= 32'hAAAEAAAB;
164
64'hFFFFFFFFFFFFF13C:   rd_data <= 32'h0308755A;
165
64'hFFFFFFFFFFFFF140:   rd_data <= 32'hC2000006;
166
64'hFFFFFFFFFFFFF144:   rd_data <= 32'h00002080;
167
64'hFFFFFFFFFFFFF148:   rd_data <= 32'h00008840;
168
64'hFFFFFFFFFFFFF14C:   rd_data <= 32'h38000000;
169
64'hFFFFFFFFFFFFF150:   rd_data <= 32'h07000000;
170
64'hFFFFFFFFFFFFF154:   rd_data <= 32'hFFFFE032;
171
64'hFFFFFFFFFFFFF158:   rd_data <= 32'h00520317;
172
64'hFFFFFFFFFFFFF15C:   rd_data <= 32'h28216000;
173
64'hFFFFFFFFFFFFF160:   rd_data <= 32'h16800014;
174
64'hFFFFFFFFFFFFF164:   rd_data <= 32'h00001012;
175
64'hFFFFFFFFFFFFF168:   rd_data <= 32'h014A0850;
176
 
177
64'hFFFFFFFFFFFFFFC0:   rd_data <= 32'h00000000;
178
64'hFFFFFFFFFFFFFFC4:   rd_data <= 32'h00000378;
179
64'hFFFFFFFFFFFFFFC8:   rd_data <= 32'h000DE000;
180
64'hFFFFFFFFFFFFFFCC:   rd_data <= 32'h37800000;
181
 
182
64'hFFFFFFFFFFFFFFD0:   rd_data <= 32'h00000000;
183
64'hFFFFFFFFFFFFFFD4:   rd_data <= 32'h00000378;
184
64'hFFFFFFFFFFFFFFD8:   rd_data <= 32'h000DE000;
185
64'hFFFFFFFFFFFFFFDC:   rd_data <= 32'h37800000;
186
 
187
64'hFFFFFFFFFFFFFFE0:   rd_data <= 32'h00000000;
188
64'hFFFFFFFFFFFFFFE4:   rd_data <= 32'h00000378;
189
64'hFFFFFFFFFFFFFFE8:   rd_data <= 32'h000DE000;
190
64'hFFFFFFFFFFFFFFEC:   rd_data <= 32'h37800000;
191
 
192
64'hFFFFFFFFFFFFFFF0:   rd_data <= 32'hFFFFFC00;
193
64'hFFFFFFFFFFFFFFF4:   rd_data <= 32'h000000CF;
194
64'hFFFFFFFFFFFFFFF8:   rd_data <= 32'h00000000;
195
64'hFFFFFFFFFFFFFFFC:   rd_data <= 32'h00000000;
196 3 robfinch
 
197 6 robfinch
//              30'h0:  rd_data <= 32'h00000000;
198
//              30'h4:  rd_data <= 32'h00002378;
199
//              30'h8:  rd_data <= 32'h00030000;
200
//              30'hC:  rd_data <= 32'h37800000;
201
//              30'h10: rd_data <= 32'h00000000;
202
//              30'h14: rd_data <= 32'h00000378;
203
//              30'h18: rd_data <= 32'h000DE000;
204
//              30'h1C: rd_data <= 32'h37800000;
205
//              30'h20: rd_data <= 32'hFFFFFFFF;
206
//              30'h24: rd_data <= 32'h700003FF;
207
//              30'h28: rd_data <= 32'h0001200F;
208
//              30'h2C: rd_data <= 32'h0D83E000;
209
                endcase
210
                tb_cmd_byte_addr <= tb_cmd_byte_addr + 30'd4;
211
                tb_cmd_bl <= tb_cmd_bl - 6'd1;
212
                if (tb_cmd_bl==6'h0) rd_empty <= 1'b1;
213
                end
214
                else
215
                        cnt <= cnt + 1;
216
        end
217
end
218
 
219 3 robfinch
Raptor64 u1
220
(
221
        .rst_i(rst),
222
        .clk_i(clk),
223
        .nmi_i(1'b0),
224
        .irq_i(1'b0),
225
        .bte_o(),
226
        .cti_o(),
227
        .cyc_o(sys_cyc),
228
        .stb_o(sys_stb),
229
        .ack_i(sys_ack),
230
        .we_o(sys_we),
231
        .sel_o(sys_sel),
232
        .adr_o(sys_adr),
233
        .dat_i(sys_dbi),
234
        .dat_o(sys_dbo),
235 6 robfinch
 
236
        .cmd_en(cmd_en),
237
        .cmd_instr(cmd_instr),
238
        .cmd_bl(cmd_bl),
239
        .cmd_byte_addr(cmd_byte_addr),
240
        .cmd_full(cmd_full),
241
 
242
        .rd_en(rd_en),
243
        .rd_data(rd_data),
244
        .rd_empty(rd_empty),
245
 
246 3 robfinch
        .sys_adv(1'b0),
247
        .sys_adr(59'd0)
248
);
249
endmodule

powered by: WebSVN 2.1.0

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