`timescale 1 ns / 1 ps module backSys_TB ( ); reg clock; reg reset; reg overCLK; wire [3:0] io_uDat; wire [3:0] io_dDat; wire [3:0] isLast; 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), .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) ); 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; overCLK = 0; #200 reset <= 0; # 1000000 $display("Time Out !!!"); $stop; end initial begin forever begin #40 clock <= ~clock; end end initial begin forever begin #10 overCLK <= ~overCLK; end end `define SRAM0 s_Mst.sram.mem_0.mem_0_ext.ram `define SRAM1 s_Mst.sram.mem_1.mem_0_ext.ram `define SRAM2 s_Mst.sram.mem_2.mem_0_ext.ram `define SRAM3 s_Mst.sram.mem_3.mem_0_ext.ram localparam DP = 2**14; integer i; reg [7:0] mem [0:200000]; initial begin $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 end `define SLV0_SRAM0 s_Slv0.sram.mem_0.mem_0_ext.ram `define SLV0_SRAM1 s_Slv0.sram.mem_1.mem_0_ext.ram `define SLV0_SRAM2 s_Slv0.sram.mem_2.mem_0_ext.ram `define SLV0_SRAM3 s_Slv0.sram.mem_3.mem_0_ext.ram `define SLV1_SRAM0 s_Slv1.sram.mem_0.mem_0_ext.ram `define SLV1_SRAM1 s_Slv1.sram.mem_1.mem_0_ext.ram `define SLV1_SRAM2 s_Slv1.sram.mem_2.mem_0_ext.ram `define SLV1_SRAM3 s_Slv1.sram.mem_3.mem_0_ext.ram `define SLV2_SRAM0 s_Slv2.sram.mem_0.mem_0_ext.ram `define SLV2_SRAM1 s_Slv2.sram.mem_1.mem_0_ext.ram `define SLV2_SRAM2 s_Slv2.sram.mem_2.mem_0_ext.ram `define SLV2_SRAM3 s_Slv2.sram.mem_3.mem_0_ext.ram `define SLV3_SRAM0 s_Slv3.sram.mem_0.mem_0_ext.ram `define SLV3_SRAM1 s_Slv3.sram.mem_1.mem_0_ext.ram `define SLV3_SRAM2 s_Slv3.sram.mem_2.mem_0_ext.ram `define SLV3_SRAM3 s_Slv3.sram.mem_3.mem_0_ext.ram 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 initial begin $dumpfile("./build/wave.vcd"); //生成的vcd文件名称 $dumpvars(0, backSys_TB);//tb模块名称 end endmodule