Skip to content

Commit 5253008

Browse files
Merge pull request #65 from muhammadhamza15/mhamza_dev
Modified MIPI testbenches
2 parents 53d8671 + aeefa2f commit 5253008

File tree

2 files changed

+66
-4
lines changed

2 files changed

+66
-4
lines changed

models_internal/verilog/tb/MIPI_RX_tb.v

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ module MIPI_RX_tb;
2929
wire LP_RX_DN;
3030

3131
real delay;
32+
integer error=0;
3233

3334
MIPI_RX # (
3435
.WIDTH(WIDTH),
@@ -153,6 +154,22 @@ module MIPI_RX_tb;
153154
end
154155
end
155156
join_any
157+
repeat(17)@(posedge CLK_IN);
158+
if(HS_RX_DATA!=='ha)
159+
error=error+1;
160+
@(posedge CLK_IN);
161+
if(HS_RX_DATA!=='hc)
162+
error=error+1;
163+
@(posedge CLK_IN);
164+
if(HS_RX_DATA!=='hd)
165+
error=error+1;
166+
167+
#2;
168+
if(error===0)
169+
$display("Test Passed");
170+
else
171+
$display("Test Failed");
172+
156173
#1000;
157174
$finish;
158175

models_internal/verilog/tb/MIPI_TX_tb.v

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ module MIPI_TX_tb;
2828
reg CHANNEL_BOND_SYNC_IN;
2929
wire CHANNEL_BOND_SYNC_OUT;
3030

31+
reg [WIDTH-1:0] HS_TX_DATA1=0;
32+
reg [WIDTH-1:0] HS_TX_DATA2=0;
33+
reg [WIDTH-1:0] HS_TX_DATA3=0;
34+
reg [WIDTH-1:0] comp_data=0;
35+
integer error=0;
36+
37+
3138
MIPI_TX # (
3239
.WIDTH(WIDTH),
3340
.EN_ODLY(EN_ODLY),
@@ -82,16 +89,54 @@ module MIPI_TX_tb;
8289
PLL_LOCK=1;
8390
repeat(260)@(posedge RX_CLK);
8491
HS_TX_DATA=4'b0101;
92+
HS_TX_DATA1=HS_TX_DATA;
8593
@(negedge CLK_IN);
8694
HS_TX_DATA=$urandom();
95+
HS_TX_DATA2=HS_TX_DATA;
8796
@(negedge CLK_IN);
8897
HS_TX_DATA=$urandom();
89-
#1000;
98+
HS_TX_DATA3=HS_TX_DATA;
99+
@(negedge MIPI_TX_inst.O_SERDES_inst.word_load_en_sync);
100+
repeat(4)@(RX_CLK)
101+
begin
102+
comp_data={comp_data[WIDTH-2:0],TX_DP};
103+
end
104+
if(comp_data!==HS_TX_DATA1)
105+
error=error+1;
106+
107+
@(negedge MIPI_TX_inst.O_SERDES_inst.word_load_en_sync);
108+
repeat(4)@(RX_CLK)
109+
begin
110+
comp_data={comp_data[WIDTH-2:0],TX_DP};
111+
end
112+
if(comp_data!==HS_TX_DATA2)
113+
error=error+1;
114+
115+
@(negedge MIPI_TX_inst.O_SERDES_inst.word_load_en_sync);
116+
repeat(4)@(RX_CLK)
117+
begin
118+
comp_data={comp_data[WIDTH-2:0],TX_DP};
119+
end
120+
if(comp_data!==HS_TX_DATA3)
121+
error=error+1;
122+
123+
#1000;
90124
HS_EN=0;
91125
LP_EN=1;
92-
@(negedge CLK_IN);
93-
TX_LP_DN=$urandom();
94-
TX_LP_DP=$urandom();
126+
repeat(50)@(negedge CLK_IN)
127+
begin
128+
TX_LP_DP=$urandom();
129+
TX_LP_DN=~TX_LP_DP;
130+
#1;
131+
if(TX_LP_DP!==TX_DP || TX_LP_DN!==TX_DN)
132+
error=error+1;
133+
end
134+
#2;
135+
if(error===0)
136+
$display("Test Passed");
137+
else
138+
$display("Test Failed");
139+
95140
#1000;
96141
TX_ODT_EN=1;
97142
#100;

0 commit comments

Comments
 (0)