Skip to content

Commit 24fb40f

Browse files
committed
DLY_SEL_DECODER tb updated
1 parent bf0c314 commit 24fb40f

File tree

2 files changed

+352
-94
lines changed

2 files changed

+352
-94
lines changed

sim_models/tb/DLY_SEL_DECODER_tb.v

Lines changed: 176 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,62 +4,191 @@ module DLY_SEL_DECODER_tb;
44
// Parameters
55

66
//Ports
7-
reg DLY_LOAD;
8-
reg DLY_ADJ;
9-
reg DLY_INCDEC;
7+
reg DLY_LOAD;
8+
reg DLY_ADJ;
9+
reg DLY_INCDEC;
1010
reg [4:0] DLY_ADDR;
11-
wire [2:0] DLY_CNTRL[31:0];
11+
wire [2:0] DLY0_CNTRL;
12+
wire [2:0] DLY1_CNTRL;
13+
wire [2:0] DLY2_CNTRL;
14+
wire [2:0] DLY3_CNTRL;
15+
wire [2:0] DLY4_CNTRL;
16+
wire [2:0] DLY5_CNTRL;
17+
wire [2:0] DLY6_CNTRL;
18+
wire [2:0] DLY7_CNTRL;
19+
wire [2:0] DLY8_CNTRL;
20+
wire [2:0] DLY9_CNTRL;
21+
wire [2:0] DLY10_CNTRL;
22+
wire [2:0] DLY11_CNTRL;
23+
wire [2:0] DLY12_CNTRL;
24+
wire [2:0] DLY13_CNTRL;
25+
wire [2:0] DLY14_CNTRL;
26+
wire [2:0] DLY15_CNTRL;
27+
wire [2:0] DLY16_CNTRL;
28+
wire [2:0] DLY17_CNTRL;
29+
wire [2:0] DLY18_CNTRL;
30+
wire [2:0] DLY19_CNTRL;
31+
32+
integer error=0;
1233

1334
DLY_SEL_DECODER DLY_SEL_DECODER_inst (
1435
.DLY_LOAD(DLY_LOAD),
1536
.DLY_ADJ(DLY_ADJ),
1637
.DLY_INCDEC(DLY_INCDEC),
1738
.DLY_ADDR(DLY_ADDR),
18-
.DLY_CNTRL(DLY_CNTRL)
39+
.DLY0_CNTRL(DLY0_CNTRL),
40+
.DLY1_CNTRL(DLY1_CNTRL),
41+
.DLY2_CNTRL(DLY2_CNTRL),
42+
.DLY3_CNTRL(DLY3_CNTRL),
43+
.DLY4_CNTRL(DLY4_CNTRL),
44+
.DLY5_CNTRL(DLY5_CNTRL),
45+
.DLY6_CNTRL(DLY6_CNTRL),
46+
.DLY7_CNTRL(DLY7_CNTRL),
47+
.DLY8_CNTRL(DLY8_CNTRL),
48+
.DLY9_CNTRL(DLY9_CNTRL),
49+
.DLY10_CNTRL(DLY10_CNTRL),
50+
.DLY11_CNTRL(DLY11_CNTRL),
51+
.DLY12_CNTRL(DLY12_CNTRL),
52+
.DLY13_CNTRL(DLY13_CNTRL),
53+
.DLY14_CNTRL(DLY14_CNTRL),
54+
.DLY15_CNTRL(DLY15_CNTRL),
55+
.DLY16_CNTRL(DLY16_CNTRL),
56+
.DLY17_CNTRL(DLY17_CNTRL),
57+
.DLY18_CNTRL(DLY18_CNTRL),
58+
.DLY19_CNTRL(DLY19_CNTRL)
1959
);
2060

2161

22-
initial
23-
begin
24-
DLY_LOAD=0;
25-
DLY_ADJ=0;
26-
DLY_INCDEC=0;
27-
DLY_ADDR=0;
28-
#5;
29-
repeat(5)
30-
begin
31-
DLY_LOAD=$urandom;
32-
DLY_ADJ=$urandom;
33-
DLY_INCDEC=$urandom;
34-
DLY_ADDR=$urandom;
35-
#10;
36-
// $display("Bus Array Content:");
37-
// for (integer i = 0; i < 32; i = i + 1) begin
38-
// $display("DLY_CNTRL[%0d] = %b", i, DLY_CNTRL[i]);
39-
// #2;
40-
// end
41-
if(DLY_ADDR<20)
42-
begin
43-
if(DLY_CNTRL[DLY_ADDR]==={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
44-
$display("Test Passed");
45-
else
46-
$display("Test Failed");
47-
end
48-
else
49-
begin
50-
if(DLY_CNTRL[DLY_ADDR]===3'b000)
51-
$display("Test Passed");
52-
else
53-
$display("Test Failed");
54-
end
55-
#100;
56-
end
57-
#1000;
58-
$finish;
59-
end
60-
initial
61-
begin
62+
63+
initial
64+
begin
65+
DLY_LOAD=0;
66+
DLY_ADJ=0;
67+
DLY_INCDEC=0;
68+
DLY_ADDR=0;
69+
#5;
70+
repeat(100)
71+
begin
72+
DLY_LOAD=$urandom;
73+
DLY_ADJ=$urandom;
74+
DLY_INCDEC=$urandom;
75+
DLY_ADDR=$urandom;
76+
#10;
77+
if(DLY_ADDR===0)
78+
begin
79+
if(DLY0_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
80+
error++;
81+
end
82+
83+
if(DLY_ADDR===1)
84+
begin
85+
if(DLY1_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
86+
error++;
87+
end
88+
89+
if(DLY_ADDR===2)
90+
begin
91+
if(DLY2_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
92+
error++;
93+
end
94+
if(DLY_ADDR===3)
95+
begin
96+
if(DLY3_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
97+
error++;
98+
end
99+
if(DLY_ADDR===4)
100+
begin
101+
if(DLY4_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
102+
error++;
103+
end
104+
if(DLY_ADDR===5)
105+
begin
106+
if(DLY5_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
107+
error++;
108+
end
109+
if(DLY_ADDR===6)
110+
begin
111+
if(DLY6_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
112+
error++;
113+
end
114+
if(DLY_ADDR===7)
115+
begin
116+
if(DLY7_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
117+
error++;
118+
end
119+
if(DLY_ADDR===8)
120+
begin
121+
if(DLY8_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
122+
error++;
123+
end
124+
if(DLY_ADDR===9)
125+
begin
126+
if(DLY9_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
127+
error++;
128+
end
129+
if(DLY_ADDR===10)
130+
begin
131+
if(DLY10_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
132+
error++;
133+
end
134+
if(DLY_ADDR===11)
135+
begin
136+
if(DLY11_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
137+
error++;
138+
end
139+
if(DLY_ADDR===12)
140+
begin
141+
if(DLY12_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
142+
error++;
143+
end
144+
if(DLY_ADDR===13)
145+
begin
146+
if(DLY13_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
147+
error++;
148+
end
149+
if(DLY_ADDR===14)
150+
begin
151+
if(DLY14_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
152+
error++;
153+
end
154+
if(DLY_ADDR===15)
155+
begin
156+
if(DLY15_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
157+
error++;
158+
end
159+
if(DLY_ADDR===16)
160+
begin
161+
if(DLY16_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
162+
error++;
163+
end
164+
if(DLY_ADDR===17)
165+
begin
166+
if(DLY17_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
167+
error++;
168+
end
169+
if(DLY_ADDR===18)
170+
begin
171+
if(DLY18_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
172+
error++;
173+
end
174+
if(DLY_ADDR===19)
175+
begin
176+
if(DLY19_CNTRL!=={DLY_LOAD, DLY_ADJ, DLY_INCDEC})
177+
error++;
178+
end
179+
180+
#100;
181+
end
182+
if(error===0)
183+
$display("Test Passed");
184+
else
185+
$display("Test Failed");
186+
#1000;
187+
$finish;
188+
end
189+
initial
190+
begin
62191
$dumpfile("waves.vcd");
63192
$dumpvars;
64-
end
65-
endmodule
193+
end
194+
endmodule

0 commit comments

Comments
 (0)