-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFIFO_tb.sv
67 lines (55 loc) · 1.25 KB
/
FIFO_tb.sv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import shared_pkg::*;
import transaction::*;
module FIFO_tb(FIFO_if.TEST fifo_if);
FIFO_transaction tr;
initial begin
tr=new();
fifo_if.data_in=0;
fifo_if.wr_en=0;
fifo_if.rd_en=0;
fifo_if.rst_n=1;
tr.constraint_mode(0);
repeat(100000)begin
@(negedge fifo_if.clk);
assert(tr.randomize())
fifo_if.data_in=tr.data_in;
fifo_if.wr_en=tr.wr_en;
fifo_if.rd_en=tr.rd_en;
fifo_if.rst_n=tr.rst_n;
end
tr.constraint_mode(1);
repeat(100000)begin
@(negedge fifo_if.clk);
assert(tr.randomize())
fifo_if.data_in=tr.data_in;
fifo_if.wr_en=tr.wr_en;
fifo_if.rd_en=tr.rd_en;
fifo_if.rst_n=tr.rst_n;
end
repeat(100000)begin
@(negedge fifo_if.clk);
assert(tr.randomize())
fifo_if.data_in=tr.data_in;
fifo_if.wr_en=1;
fifo_if.rd_en=tr.rd_en;
fifo_if.rst_n=1;
end
repeat(100000)begin
@(negedge fifo_if.clk);
assert(tr.randomize())
fifo_if.data_in=tr.data_in;
fifo_if.wr_en=tr.wr_en;
fifo_if.rd_en=tr.rd_en;
fifo_if.rst_n=tr.rst_n;
end
repeat(100000)begin
@(negedge fifo_if.clk);
assert(tr.randomize())
fifo_if.data_in=tr.data_in;
fifo_if.wr_en=tr.wr_en;
fifo_if.rd_en=1;
fifo_if.rst_n=1;
end
test_finished=1;
end
endmodule : FIFO_tb