Repository navigation
Expand file tree
/
Copy pathtb_model.sv
More file actions
88 lines (64 loc) · 3.17 KB
/
Copy pathtb_model.sv
File metadata and controls
88 lines (64 loc) · 3.17 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
Description
### Author : name (email)
*/
module tb_model;
//`define ENABLE_DUMPFILE
//////////////////////////////////////////////////////////////////////////////////////////////////
//-IMPORTS
//////////////////////////////////////////////////////////////////////////////////////////////////
// bring in the testbench essentials functions and macros
`include "vip/tb_ess.sv"
//////////////////////////////////////////////////////////////////////////////////////////////////
//-LOCALPARAMS
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-TYPEDEFS
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-SIGNALS
//////////////////////////////////////////////////////////////////////////////////////////////////
// generates static task start_clk_i with tHigh:4ns tLow:6ns
`CREATE_CLK(clk_i, 4ns, 6ns)
logic arst_ni = 1;
//////////////////////////////////////////////////////////////////////////////////////////////////
//-VARIABLES
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-INTERFACES
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-CLASSES
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-ASSIGNMENTS
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-RTLS
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-METHODS
//////////////////////////////////////////////////////////////////////////////////////////////////
task static apply_reset();
#100ns;
arst_ni <= 0;
#100ns;
arst_ni <= 1;
#100ns;
endtask
//////////////////////////////////////////////////////////////////////////////////////////////////
//-SEQUENTIALS
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//-PROCEDURALS
//////////////////////////////////////////////////////////////////////////////////////////////////
initial begin // main initial
apply_reset();
start_clk_i();
@(posedge clk_i);
result_print(1, "This is a PASS");
@(posedge clk_i);
result_print(0, "And this is a FAIL");
$finish;
end
endmodule