Files
eb001/tb/backSys_tb.v

202 lines
4.1 KiB
Coq
Raw Normal View History

`timescale 1 ns / 1 ps
module backSys_TB (
);
reg clock;
reg reset;
reg overCLK;
2024-10-29 11:21:04 +08:00
wire [3:0] io_uDat;
wire [3:0] io_dDat;
2024-10-29 11:21:04 +08:00
wire [3:0] isLast;
2024-10-29 11:21:04 +08:00
BackSys s_Mst(
.clock(clock),
.reset(reset),
.io_overCLK(overCLK),
.io_uDatIn(io_uDat[0]),
.io_uDatOut(),
.io_dDatIn(1'b0),
.io_dDatOut(io_dDat[0]),
.io_out(),
.io_in(32'b0),
.io_isOnline(),
.io_isLast(isLast[0]),
.io_DCIn(1'b0)
);
BackSys s_Slv0(
.clock(clock),
.reset(reset),
.io_overCLK(overCLK),
.io_uDatIn(io_uDat[1]),
.io_uDatOut(io_uDat[0]),
.io_dDatIn(io_dDat[0]),
.io_dDatOut(io_dDat[1]),
.io_out(),
.io_in(32'b0),
.io_isOnline(isLast[0]),
.io_isLast(isLast[1]),
.io_DCIn(1'b0)
);
BackSys s_Slv1(
.clock(clock),
.reset(reset),
.io_overCLK(overCLK),
.io_uDatIn(io_uDat[2]),
.io_uDatOut(io_uDat[1]),
.io_dDatIn(io_dDat[1]),
.io_dDatOut(io_dDat[2]),
.io_out(),
.io_in(32'b0),
.io_isOnline(isLast[1]),
.io_isLast(isLast[2]),
.io_DCIn(1'b0)
);
BackSys s_Slv2(
.clock(clock),
.reset(reset),
.io_overCLK(overCLK),
2024-10-29 11:21:04 +08:00
.io_uDatIn(io_uDat[3]),
.io_uDatOut(io_uDat[2]),
.io_dDatIn(io_dDat[2]),
.io_dDatOut(io_dDat[3]),
.io_out(),
.io_in(32'b0),
.io_isOnline(isLast[2]),
.io_isLast(isLast[3]),
.io_DCIn(1'b0)
);
2024-10-29 11:21:04 +08:00
BackSys s_Slv3(
.clock(clock),
.reset(reset),
.io_overCLK(overCLK),
.io_uDatIn(1'b0),
.io_uDatOut(io_uDat[3]),
.io_dDatIn(io_dDat[3]),
.io_dDatOut(),
.io_out(),
.io_in(32'b0),
.io_isOnline(isLast[3]),
.io_isLast(1'b1),
.io_DCIn(1'b0)
);
initial begin
clock = 0;
reset = 1;
2024-10-29 09:33:29 +08:00
overCLK = 0;
#200
reset <= 0;
#160000
$display("Time Out !!!");
$stop;
end
initial begin
forever begin #40 clock <= ~clock; end
end
initial begin
forever begin #10 overCLK <= ~overCLK; end
end
2024-10-29 11:21:04 +08:00
`define SRAM0 s_Mst.sram.mem_0
`define SRAM1 s_Mst.sram.mem_1
`define SRAM2 s_Mst.sram.mem_2
`define SRAM3 s_Mst.sram.mem_3
localparam DP = 2**14;
2024-10-29 11:21:04 +08:00
integer i;
reg [7:0] mem [0:200000];
initial begin
2024-10-29 11:21:04 +08:00
$readmemh("./tb/sw/build/mstTest.verilog", mem);
for ( i = 0; i < DP; i = i + 1 ) begin
`SRAM0[i] = | mem[i*4+0] ? mem[i*4+0]: 8'h0;
`SRAM1[i] = | mem[i*4+1] ? mem[i*4+1]: 8'h0;
`SRAM2[i] = | mem[i*4+2] ? mem[i*4+2]: 8'h0;
`SRAM3[i] = | mem[i*4+3] ? mem[i*4+3]: 8'h0;
// $display("ITCM %h: %h,%h", i*4,`SRAM_ODD.ram[i],`SRAM_EVE.ram[i]);
end
2024-10-29 11:21:04 +08:00
end
2024-10-29 11:21:04 +08:00
`define SLV0_SRAM0 s_Slv0.sram.mem_0
`define SLV0_SRAM1 s_Slv0.sram.mem_1
`define SLV0_SRAM2 s_Slv0.sram.mem_2
`define SLV0_SRAM3 s_Slv0.sram.mem_3
`define SLV1_SRAM0 s_Slv1.sram.mem_0
`define SLV1_SRAM1 s_Slv1.sram.mem_1
`define SLV1_SRAM2 s_Slv1.sram.mem_2
`define SLV1_SRAM3 s_Slv1.sram.mem_3
`define SLV2_SRAM0 s_Slv2.sram.mem_0
`define SLV2_SRAM1 s_Slv2.sram.mem_1
`define SLV2_SRAM2 s_Slv2.sram.mem_2
`define SLV2_SRAM3 s_Slv2.sram.mem_3
`define SLV3_SRAM0 s_Slv3.sram.mem_0
`define SLV3_SRAM1 s_Slv3.sram.mem_1
`define SLV3_SRAM2 s_Slv3.sram.mem_2
`define SLV3_SRAM3 s_Slv3.sram.mem_3
localparam DPS = 2**14;
reg [7:0] mem1 [0:200000];
initial begin
$readmemh("./tb/sw/build/slvTest.verilog", mem);
for ( i = 0; i < DP; i = i + 1 ) begin
`SLV0_SRAM0[i] = | mem[i*4+0] ? mem[i*4+0]: 8'h0;
`SLV0_SRAM1[i] = | mem[i*4+1] ? mem[i*4+1]: 8'h0;
`SLV0_SRAM2[i] = | mem[i*4+2] ? mem[i*4+2]: 8'h0;
`SLV0_SRAM3[i] = | mem[i*4+3] ? mem[i*4+3]: 8'h0;
`SLV1_SRAM0[i] = | mem[i*4+0] ? mem[i*4+0]: 8'h0;
`SLV1_SRAM1[i] = | mem[i*4+1] ? mem[i*4+1]: 8'h0;
`SLV1_SRAM2[i] = | mem[i*4+2] ? mem[i*4+2]: 8'h0;
`SLV1_SRAM3[i] = | mem[i*4+3] ? mem[i*4+3]: 8'h0;
`SLV2_SRAM0[i] = | mem[i*4+0] ? mem[i*4+0]: 8'h0;
`SLV2_SRAM1[i] = | mem[i*4+1] ? mem[i*4+1]: 8'h0;
`SLV2_SRAM2[i] = | mem[i*4+2] ? mem[i*4+2]: 8'h0;
`SLV2_SRAM3[i] = | mem[i*4+3] ? mem[i*4+3]: 8'h0;
`SLV3_SRAM0[i] = | mem[i*4+0] ? mem[i*4+0]: 8'h0;
`SLV3_SRAM1[i] = | mem[i*4+1] ? mem[i*4+1]: 8'h0;
`SLV3_SRAM2[i] = | mem[i*4+2] ? mem[i*4+2]: 8'h0;
`SLV3_SRAM3[i] = | mem[i*4+3] ? mem[i*4+3]: 8'h0;
// $display("ITCM %h: %h,%h", i*4,`SRAM_ODD.ram[i],`SRAM_EVE.ram[i]);
end
end
2024-10-29 11:21:04 +08:00
initial
begin
$dumpfile("./build/wave.vcd"); //生成的vcd文件名称
$dumpvars(0, backSys_TB);//tb模块名称
end
endmodule