尝试加入cdr模块,主站上行rsp, tlast还有亚稳态
This commit is contained in:
@@ -7,23 +7,12 @@ module ShinTopTb(
|
||||
|
||||
reg clock;
|
||||
reg reset;
|
||||
reg clk8x;
|
||||
|
||||
wire [3:0] dDat_w;
|
||||
wire [3:0] uDat_w;
|
||||
|
||||
|
||||
wire [3:0] io_down_ready;
|
||||
wire [3:0] io_down_valid;
|
||||
wire [31:0] io_down_bits_tdata;
|
||||
wire [3:0] io_down_bits_tlast;
|
||||
wire [3:0] io_down_bits_tuser;
|
||||
|
||||
|
||||
|
||||
wire [3:0] io_up_ready;
|
||||
wire [3:0] io_up_valid;
|
||||
wire [31:0] io_up_bits_tdata;
|
||||
wire [3:0] io_up_bits_tlast;
|
||||
wire [3:0] io_up_bits_tuser;
|
||||
|
||||
|
||||
reg [63:0] timeStamp = 0;
|
||||
|
||||
@@ -41,26 +30,11 @@ ShinTop s_ShinTop_Mst(
|
||||
.clock(clock),
|
||||
.reset(reset),
|
||||
|
||||
.io_downIn_ready (),
|
||||
.io_downIn_valid (1'b0),
|
||||
.io_downIn_bits_tdata (8'd0),
|
||||
.io_downIn_bits_tlast (1'b0),
|
||||
.io_downIn_bits_tuser (1'b0),
|
||||
.io_downOut_ready (io_down_ready[0]),
|
||||
.io_downOut_valid (io_down_valid[0]),
|
||||
.io_downOut_bits_tdata(io_down_bits_tdata[7:0]),
|
||||
.io_downOut_bits_tlast(io_down_bits_tlast[0]),
|
||||
.io_downOut_bits_tuser(io_down_bits_tuser[0]),
|
||||
.io_upIn_ready (io_up_ready[0]),
|
||||
.io_upIn_valid (io_up_valid[0]),
|
||||
.io_upIn_bits_tdata (io_up_bits_tdata[7:0]),
|
||||
.io_upIn_bits_tlast (io_up_bits_tlast[0]),
|
||||
.io_upIn_bits_tuser (io_up_bits_tuser[0]),
|
||||
.io_upOut_ready (1'b1),
|
||||
.io_upOut_valid (),
|
||||
.io_upOut_bits_tdata (),
|
||||
.io_upOut_bits_tlast (),
|
||||
.io_upOut_bits_tuser (),
|
||||
.io_clk8x(clk8x),
|
||||
.io_dDatIn(1'b0),
|
||||
.io_dDatOut(dDat_w[0]),
|
||||
.io_uDatIn(uDat_w[0]),
|
||||
.io_uDatOut(),
|
||||
|
||||
.io_timeStamp(timeStamp),
|
||||
|
||||
@@ -114,26 +88,11 @@ ShinTop s_ShinTop_slv0(
|
||||
.clock(clock),
|
||||
.reset(reset),
|
||||
|
||||
.io_downIn_ready (io_down_ready[0]),
|
||||
.io_downIn_valid (io_down_valid[0]),
|
||||
.io_downIn_bits_tdata (io_down_bits_tdata[7:0]),
|
||||
.io_downIn_bits_tlast (io_down_bits_tlast[0]),
|
||||
.io_downIn_bits_tuser (io_down_bits_tuser[0]),
|
||||
.io_downOut_ready (io_down_ready[1]),
|
||||
.io_downOut_valid (io_down_valid[1]),
|
||||
.io_downOut_bits_tdata(io_down_bits_tdata[15:8]),
|
||||
.io_downOut_bits_tlast(io_down_bits_tlast[1]),
|
||||
.io_downOut_bits_tuser(io_down_bits_tuser[1]),
|
||||
.io_upIn_ready (io_up_ready[1]),
|
||||
.io_upIn_valid (io_up_valid[1]),
|
||||
.io_upIn_bits_tdata (io_up_bits_tdata[15:8]),
|
||||
.io_upIn_bits_tlast (io_up_bits_tlast[1]),
|
||||
.io_upIn_bits_tuser (io_up_bits_tuser[1]),
|
||||
.io_upOut_ready (io_up_ready[0]),
|
||||
.io_upOut_valid (io_up_valid[0]),
|
||||
.io_upOut_bits_tdata (io_up_bits_tdata[7:0]),
|
||||
.io_upOut_bits_tlast (io_up_bits_tlast[0]),
|
||||
.io_upOut_bits_tuser (io_up_bits_tuser[0]),
|
||||
.io_clk8x(clk8x),
|
||||
.io_dDatIn(dDat_w[0]),
|
||||
.io_dDatOut(dDat_w[1]),
|
||||
.io_uDatIn(uDat_w[1]),
|
||||
.io_uDatOut(uDat_w[0]),
|
||||
|
||||
.io_timeStamp(timeStamp),
|
||||
|
||||
@@ -186,26 +145,11 @@ ShinTop s_ShinTop_slv1(
|
||||
.clock(clock),
|
||||
.reset(reset),
|
||||
|
||||
.io_downIn_ready (io_down_ready[1]),
|
||||
.io_downIn_valid (io_down_valid[1]),
|
||||
.io_downIn_bits_tdata (io_down_bits_tdata[15:8]),
|
||||
.io_downIn_bits_tlast (io_down_bits_tlast[1]),
|
||||
.io_downIn_bits_tuser (io_down_bits_tuser[1]),
|
||||
.io_downOut_ready (io_down_ready[2]),
|
||||
.io_downOut_valid (io_down_valid[2]),
|
||||
.io_downOut_bits_tdata(io_down_bits_tdata[23:16]),
|
||||
.io_downOut_bits_tlast(io_down_bits_tlast[2]),
|
||||
.io_downOut_bits_tuser(io_down_bits_tuser[2]),
|
||||
.io_upIn_ready (io_up_ready[2]),
|
||||
.io_upIn_valid (io_up_valid[2]),
|
||||
.io_upIn_bits_tdata (io_up_bits_tdata[23:16]),
|
||||
.io_upIn_bits_tlast (io_up_bits_tlast[2]),
|
||||
.io_upIn_bits_tuser (io_up_bits_tuser[2]),
|
||||
.io_upOut_ready (io_up_ready[1]),
|
||||
.io_upOut_valid (io_up_valid[1]),
|
||||
.io_upOut_bits_tdata (io_up_bits_tdata[15:8]),
|
||||
.io_upOut_bits_tlast (io_up_bits_tlast[1]),
|
||||
.io_upOut_bits_tuser (io_up_bits_tuser[1]),
|
||||
.io_clk8x(clk8x),
|
||||
.io_dDatIn(dDat_w[1]),
|
||||
.io_dDatOut(dDat_w[2]),
|
||||
.io_uDatIn(uDat_w[2]),
|
||||
.io_uDatOut(uDat_w[1]),
|
||||
|
||||
.io_timeStamp(timeStamp),
|
||||
|
||||
@@ -258,26 +202,11 @@ ShinTop s_ShinTop_slv2(
|
||||
.clock(clock),
|
||||
.reset(reset),
|
||||
|
||||
.io_downIn_ready (io_down_ready[2]),
|
||||
.io_downIn_valid (io_down_valid[2]),
|
||||
.io_downIn_bits_tdata (io_down_bits_tdata[23:16]),
|
||||
.io_downIn_bits_tlast (io_down_bits_tlast[2]),
|
||||
.io_downIn_bits_tuser (io_down_bits_tuser[2]),
|
||||
.io_downOut_ready (io_down_ready[3]),
|
||||
.io_downOut_valid (io_down_valid[3]),
|
||||
.io_downOut_bits_tdata(io_down_bits_tdata[31:24]),
|
||||
.io_downOut_bits_tlast(io_down_bits_tlast[3]),
|
||||
.io_downOut_bits_tuser(io_down_bits_tuser[3]),
|
||||
.io_upIn_ready (io_up_ready[3]),
|
||||
.io_upIn_valid (io_up_valid[3]),
|
||||
.io_upIn_bits_tdata (io_up_bits_tdata[31:24]),
|
||||
.io_upIn_bits_tlast (io_up_bits_tlast[3]),
|
||||
.io_upIn_bits_tuser (io_up_bits_tuser[3]),
|
||||
.io_upOut_ready (io_up_ready[2]),
|
||||
.io_upOut_valid (io_up_valid[2]),
|
||||
.io_upOut_bits_tdata (io_up_bits_tdata[23:16]),
|
||||
.io_upOut_bits_tlast (io_up_bits_tlast[2]),
|
||||
.io_upOut_bits_tuser (io_up_bits_tuser[2]),
|
||||
.io_clk8x(clk8x),
|
||||
.io_dDatIn(dDat_w[2]),
|
||||
.io_dDatOut(dDat_w[3]),
|
||||
.io_uDatIn(uDat_w[3]),
|
||||
.io_uDatOut(uDat_w[2]),
|
||||
|
||||
.io_timeStamp(timeStamp),
|
||||
|
||||
@@ -330,26 +259,11 @@ ShinTop s_ShinTop_slv3(
|
||||
.clock(clock),
|
||||
.reset(reset),
|
||||
|
||||
.io_downIn_ready (io_down_ready[3]),
|
||||
.io_downIn_valid (io_down_valid[3]),
|
||||
.io_downIn_bits_tdata (io_down_bits_tdata[31:24]),
|
||||
.io_downIn_bits_tlast (io_down_bits_tlast[3]),
|
||||
.io_downIn_bits_tuser (io_down_bits_tuser[3]),
|
||||
.io_downOut_ready (1'b1),
|
||||
.io_downOut_valid (),
|
||||
.io_downOut_bits_tdata(),
|
||||
.io_downOut_bits_tlast(),
|
||||
.io_downOut_bits_tuser(),
|
||||
.io_upIn_ready (),
|
||||
.io_upIn_valid (1'b0),
|
||||
.io_upIn_bits_tdata (8'd0),
|
||||
.io_upIn_bits_tlast (1'b0),
|
||||
.io_upIn_bits_tuser (1'b0),
|
||||
.io_upOut_ready (io_up_ready[3]),
|
||||
.io_upOut_valid (io_up_valid[3]),
|
||||
.io_upOut_bits_tdata (io_up_bits_tdata[31:24]),
|
||||
.io_upOut_bits_tlast (io_up_bits_tlast[3]),
|
||||
.io_upOut_bits_tuser (io_up_bits_tuser[3]),
|
||||
.io_clk8x(clk8x),
|
||||
.io_dDatIn(dDat_w[3]),
|
||||
.io_dDatOut(),
|
||||
.io_uDatIn(1'b0),
|
||||
.io_uDatOut(uDat_w[3]),
|
||||
|
||||
.io_timeStamp(timeStamp),
|
||||
|
||||
@@ -412,21 +326,26 @@ end
|
||||
|
||||
initial begin
|
||||
clock = 0;
|
||||
clk8x = 0;
|
||||
reset = 0;
|
||||
|
||||
#100
|
||||
reset <= 1;
|
||||
|
||||
#100
|
||||
#240
|
||||
reset <= 0;
|
||||
|
||||
#1000000
|
||||
#3000000
|
||||
$display("Time Out !!!");
|
||||
$stop;
|
||||
end
|
||||
|
||||
initial begin
|
||||
forever begin #10 clock <= ~clock; end
|
||||
forever begin #10 clk8x <= ~clk8x; end
|
||||
end
|
||||
|
||||
initial begin
|
||||
forever begin #80 clock <= ~clock; end
|
||||
end
|
||||
|
||||
initial
|
||||
@@ -486,7 +405,7 @@ end
|
||||
initial begin
|
||||
|
||||
//嗅探
|
||||
#1000
|
||||
#10000
|
||||
|
||||
begin
|
||||
dataBuf[0] = 8'h00;
|
||||
@@ -534,7 +453,7 @@ initial begin
|
||||
|
||||
|
||||
// 顺序索引
|
||||
#10000
|
||||
#100000
|
||||
|
||||
begin
|
||||
|
||||
@@ -589,7 +508,7 @@ initial begin
|
||||
|
||||
|
||||
//读写
|
||||
#10000
|
||||
#100000
|
||||
begin
|
||||
|
||||
dataBuf[0] = 8'h20;
|
||||
@@ -703,7 +622,7 @@ initial begin
|
||||
|
||||
|
||||
// 同步
|
||||
#20000
|
||||
#200000
|
||||
|
||||
begin
|
||||
|
||||
|
||||
Reference in New Issue
Block a user