开始调试,数据恢复不成功

This commit is contained in:
Ruige Lee
2025-07-22 11:24:47 +08:00
parent d4163a595a
commit acf09cf118
2 changed files with 84 additions and 7 deletions

View File

@@ -79,10 +79,12 @@ abstract class ShinTopBase extends Module{
val multiCLK = IO(Input(Vec(isMultiCLK, Bool()))) val multiCLK = IO(Input(Vec(isMultiCLK, Bool())))
val down = Module(new CDRIn with CDRInMultiSample) val down = Module(new CDRIn with CDRInMultiSample)
val up = Module(new CDRIn with CDRInMultiSample) val up = Module(new CDRIn with CDRInMultiSample)
down.multiCLK := multiCLK
up.multiCLK := multiCLK
require( isMultiCLK == down.clkNum ) require( isMultiCLK == down.clkNum )
require( isMultiCLK == up.clkNum ) require( isMultiCLK == up.clkNum )
down.multiCLK := multiCLK
up.multiCLK := multiCLK
(down, up) (down, up)
} }

View File

@@ -39,6 +39,8 @@ module ShinTopSpiTb(
reg reset; reg reset;
reg clk8x; reg clk8x;
reg [7:0] multiCLK;
wire [3:0] dDat_w; wire [3:0] dDat_w;
wire [3:0] uDat_w; wire [3:0] uDat_w;
@@ -66,11 +68,24 @@ module ShinTopSpiTb(
wire [4:0] io_int_sig; wire [4:0] io_int_sig;
`define MULTICLK
ShinTop s_ShinTop_Mst( ShinTop s_ShinTop_Mst(
.clock(clock), .clock(clock),
.reset(reset | isSoftReset[0]), .reset(reset | isSoftReset[0]),
.io_clk8x(clk8x), `ifdef MULTICLK
.multiCLK_0(multiCLK[0]),
.multiCLK_1(multiCLK[1]),
.multiCLK_2(multiCLK[2]),
.multiCLK_3(multiCLK[3]),
.multiCLK_4(multiCLK[4]),
.multiCLK_5(multiCLK[5]),
.multiCLK_6(multiCLK[6]),
.multiCLK_7(multiCLK[7]),
`else
.clk8x(clk8x),
`endif
.io_dDatIn(1'b0), .io_dDatIn(1'b0),
.io_dDatOut(dDat_w[0]), .io_dDatOut(dDat_w[0]),
.io_uDatIn(uDat_w[0]), .io_uDatIn(uDat_w[0]),
@@ -104,7 +119,18 @@ ShinTop s_ShinTop_slv0(
.clock(clock), .clock(clock),
.reset(reset | isSoftReset[1]), .reset(reset | isSoftReset[1]),
.io_clk8x(clk8x), `ifdef MULTICLK
.multiCLK_0(multiCLK[0]),
.multiCLK_1(multiCLK[1]),
.multiCLK_2(multiCLK[2]),
.multiCLK_3(multiCLK[3]),
.multiCLK_4(multiCLK[4]),
.multiCLK_5(multiCLK[5]),
.multiCLK_6(multiCLK[6]),
.multiCLK_7(multiCLK[7]),
`else
.clk8x(clk8x),
`endif
.io_dDatIn(dDat_w[0]), .io_dDatIn(dDat_w[0]),
.io_dDatOut(dDat_w[1]), .io_dDatOut(dDat_w[1]),
.io_uDatIn(uDat_w[1]), .io_uDatIn(uDat_w[1]),
@@ -137,7 +163,18 @@ ShinTop s_ShinTop_slv1(
.clock(clock), .clock(clock),
.reset(reset | isSoftReset[2]), .reset(reset | isSoftReset[2]),
.io_clk8x(clk8x), `ifdef MULTICLK
.multiCLK_0(multiCLK[0]),
.multiCLK_1(multiCLK[1]),
.multiCLK_2(multiCLK[2]),
.multiCLK_3(multiCLK[3]),
.multiCLK_4(multiCLK[4]),
.multiCLK_5(multiCLK[5]),
.multiCLK_6(multiCLK[6]),
.multiCLK_7(multiCLK[7]),
`else
.clk8x(clk8x),
`endif
.io_dDatIn(dDat_w[1]), .io_dDatIn(dDat_w[1]),
.io_dDatOut(dDat_w[2]), .io_dDatOut(dDat_w[2]),
.io_uDatIn(uDat_w[2]), .io_uDatIn(uDat_w[2]),
@@ -170,7 +207,18 @@ ShinTop s_ShinTop_slv2(
.clock(clock), .clock(clock),
.reset(reset | isSoftReset[3]), .reset(reset | isSoftReset[3]),
.io_clk8x(clk8x), `ifdef MULTICLK
.multiCLK_0(multiCLK[0]),
.multiCLK_1(multiCLK[1]),
.multiCLK_2(multiCLK[2]),
.multiCLK_3(multiCLK[3]),
.multiCLK_4(multiCLK[4]),
.multiCLK_5(multiCLK[5]),
.multiCLK_6(multiCLK[6]),
.multiCLK_7(multiCLK[7]),
`else
.clk8x(clk8x),
`endif
.io_dDatIn(dDat_w[2]), .io_dDatIn(dDat_w[2]),
.io_dDatOut(dDat_w[3]), .io_dDatOut(dDat_w[3]),
.io_uDatIn(uDat_w[3]), .io_uDatIn(uDat_w[3]),
@@ -203,7 +251,18 @@ ShinTop s_ShinTop_slv3(
.clock(clock), .clock(clock),
.reset(reset | isSoftReset[4]), .reset(reset | isSoftReset[4]),
.io_clk8x(clk8x), `ifdef MULTICLK
.multiCLK_0(multiCLK[0]),
.multiCLK_1(multiCLK[1]),
.multiCLK_2(multiCLK[2]),
.multiCLK_3(multiCLK[3]),
.multiCLK_4(multiCLK[4]),
.multiCLK_5(multiCLK[5]),
.multiCLK_6(multiCLK[6]),
.multiCLK_7(multiCLK[7]),
`else
.clk8x(clk8x),
`endif
.io_dDatIn(dDat_w[3]), .io_dDatIn(dDat_w[3]),
.io_dDatOut(), .io_dDatOut(),
.io_uDatIn(1'b0), .io_uDatIn(1'b0),
@@ -274,6 +333,22 @@ initial begin
forever begin #80 clock <= ~clock; end forever begin #80 clock <= ~clock; end
end end
generate
for( genvar i = 0; i < 8; i = i + 1 ) begin
initial begin
multiCLK[i] = 0;
for( integer j = i; j < 8; j = j + 1 ) begin
#20
;
end
forever begin #80 multiCLK[i] <= ~multiCLK[i]; end
end
end
endgenerate
initial initial
begin begin
spidata_file = $fopen("spi_trans_data.txt", "w"); spidata_file = $fopen("spi_trans_data.txt", "w");