-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathactivate_tb
More file actions
172 lines (172 loc) · 5.51 KB
/
activate_tb
File metadata and controls
172 lines (172 loc) · 5.51 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#! /usr/bin/vvp
:ivl_version "11.0 (stable)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision - 12;
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2009.vpi";
S_0x62bee8f60900 .scope package, "$unit" "$unit" 2 1;
.timescale 0 0;
S_0x62bee8f60a90 .scope module, "activate_tb" "activate_tb" 3 3;
.timescale -12 -12;
v0x62bee8f7b980_0 .var "clk", 0 0;
v0x62bee8f7ba40_0 .var/s "in", 17 0;
v0x62bee8f7bae0_0 .net/s "out", 17 0, L_0x62bee8f7be60; 1 drivers
v0x62bee8f7bbe0_0 .var "rst_n", 0 0;
v0x62bee8f7bcb0_0 .var/i "tests_passed", 31 0;
v0x62bee8f7bda0_0 .var/i "total_tests", 31 0;
S_0x62bee8f24cf0 .scope module, "dut" "activate" 3 16, 4 27 0, S_0x62bee8f60a90;
.timescale -12 -12;
.port_info 0 /INPUT 1 "clk";
.port_info 1 /INPUT 1 "rst_n";
.port_info 2 /INPUT 18 "in";
.port_info 3 /OUTPUT 18 "out";
L_0x62bee8f7be60 .functor BUFZ 18, v0x62bee8f7b460_0, C4<000000000000000000>, C4<000000000000000000>, C4<000000000000000000>;
v0x62bee8f267b0_0 .net "clk", 0 0, v0x62bee8f7b980_0; 1 drivers
v0x62bee8f7b0d0_0 .net/s "in", 17 0, v0x62bee8f7ba40_0; 1 drivers
v0x62bee8f7b1b0_0 .var/s "in_ext", 17 0;
v0x62bee8f7b270_0 .net/s "out", 17 0, L_0x62bee8f7be60; alias, 1 drivers
v0x62bee8f7b350_0 .net "rst_n", 0 0, v0x62bee8f7bbe0_0; 1 drivers
v0x62bee8f7b460_0 .var/s "temp", 17 0;
E_0x62bee8f5eb00 .event posedge, v0x62bee8f267b0_0;
S_0x62bee8f7b5c0 .scope task, "test" "test" 3 30, 3 30 0, S_0x62bee8f60a90;
.timescale -12 -12;
v0x62bee8f7b7c0_0 .var/s "a", 17 0;
v0x62bee8f7b8a0_0 .var/s "expected", 17 0;
TD_activate_tb.test ;
; show_stmt_assign_vector: Get l-value for compressed += operand
%load/vec4 v0x62bee8f7bda0_0;
%pushi/vec4 1, 0, 32;
%add;
%store/vec4 v0x62bee8f7bda0_0, 0, 32;
%load/vec4 v0x62bee8f7b7c0_0;
%parti/s 1, 16, 6;
%flag_set/vec4 8;
%jmp/0xz T_0.0, 8;
%pushi/vec4 0, 0, 18;
%store/vec4 v0x62bee8f7b8a0_0, 0, 18;
%jmp T_0.1;
T_0.0 ;
%load/vec4 v0x62bee8f7b7c0_0;
%store/vec4 v0x62bee8f7b8a0_0, 0, 18;
T_0.1 ;
%load/vec4 v0x62bee8f7b7c0_0;
%store/vec4 v0x62bee8f7ba40_0, 0, 18;
%wait E_0x62bee8f5eb00;
%delay 1, 0;
%load/vec4 v0x62bee8f7bae0_0;
%load/vec4 v0x62bee8f7b8a0_0;
%cmp/e;
%jmp/0xz T_0.2, 6;
%vpi_call/w 3 52 "$display", " [PASS] in=%0d out=%0d", v0x62bee8f7b7c0_0, v0x62bee8f7bae0_0 {0 0 0};
; show_stmt_assign_vector: Get l-value for compressed += operand
%load/vec4 v0x62bee8f7bcb0_0;
%pushi/vec4 1, 0, 32;
%add;
%store/vec4 v0x62bee8f7bcb0_0, 0, 32;
%jmp T_0.3;
T_0.2 ;
%vpi_call/w 3 55 "$display", " [FAIL] in=%0d out=%0d (expected %0d)", v0x62bee8f7b7c0_0, v0x62bee8f7bae0_0, v0x62bee8f7b8a0_0 {0 0 0};
T_0.3 ;
%end;
.scope S_0x62bee8f24cf0;
T_1 ;
%load/vec4 v0x62bee8f7b0d0_0;
%store/vec4 v0x62bee8f7b1b0_0, 0, 18;
%end;
.thread T_1, $init;
.scope S_0x62bee8f24cf0;
T_2 ;
%wait E_0x62bee8f5eb00;
%load/vec4 v0x62bee8f7b350_0;
%nor/r;
%flag_set/vec4 8;
%jmp/0xz T_2.0, 8;
%pushi/vec4 0, 0, 18;
%assign/vec4 v0x62bee8f7b460_0, 0;
%jmp T_2.1;
T_2.0 ;
%load/vec4 v0x62bee8f7b0d0_0;
%parti/s 1, 17, 6;
%flag_set/vec4 8;
%jmp/0xz T_2.2, 8;
%pushi/vec4 0, 0, 18;
%assign/vec4 v0x62bee8f7b460_0, 0;
%jmp T_2.3;
T_2.2 ;
%load/vec4 v0x62bee8f7b0d0_0;
%assign/vec4 v0x62bee8f7b460_0, 0;
T_2.3 ;
T_2.1 ;
%jmp T_2;
.thread T_2;
.scope S_0x62bee8f60a90;
T_3 ;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x62bee8f7bda0_0, 0, 32;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x62bee8f7bcb0_0, 0, 32;
%end;
.thread T_3, $init;
.scope S_0x62bee8f60a90;
T_4 ;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x62bee8f7b980_0, 0, 1;
T_4.0 ;
%delay 50, 0;
%load/vec4 v0x62bee8f7b980_0;
%inv;
%store/vec4 v0x62bee8f7b980_0, 0, 1;
%jmp T_4.0;
%end;
.thread T_4;
.scope S_0x62bee8f60a90;
T_5 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x62bee8f7bbe0_0, 0, 1;
%pushi/vec4 0, 0, 18;
%store/vec4 v0x62bee8f7ba40_0, 0, 18;
%delay 20, 0;
%vpi_call/w 3 67 "$display", "\012Starting ReLU tests..." {0 0 0};
%pushi/vec4 0, 0, 18;
%store/vec4 v0x62bee8f7b7c0_0, 0, 18;
%fork TD_activate_tb.test, S_0x62bee8f7b5c0;
%join;
%pushi/vec4 12345, 0, 18;
%store/vec4 v0x62bee8f7b7c0_0, 0, 18;
%fork TD_activate_tb.test, S_0x62bee8f7b5c0;
%join;
%pushi/vec4 262143, 0, 18;
%store/vec4 v0x62bee8f7b7c0_0, 0, 18;
%fork TD_activate_tb.test, S_0x62bee8f7b5c0;
%join;
%pushi/vec4 229376, 0, 18;
%store/vec4 v0x62bee8f7b7c0_0, 0, 18;
%fork TD_activate_tb.test, S_0x62bee8f7b5c0;
%join;
%pushi/vec4 32767, 0, 18;
%store/vec4 v0x62bee8f7b7c0_0, 0, 18;
%fork TD_activate_tb.test, S_0x62bee8f7b5c0;
%join;
%vpi_call/w 3 75 "$display", "\012Test summary: %0d/%0d passed", v0x62bee8f7bcb0_0, v0x62bee8f7bda0_0 {0 0 0};
%load/vec4 v0x62bee8f7bcb0_0;
%load/vec4 v0x62bee8f7bda0_0;
%cmp/ne;
%jmp/0xz T_5.0, 4;
%vpi_call/w 3 77 "$display", "Some tests failed." {0 0 0};
%jmp T_5.1;
T_5.0 ;
%vpi_call/w 3 79 "$finish" {0 0 0};
T_5.1 ;
%end;
.thread T_5;
# The file index is used to find the file name in the following table.
:file_names 5;
"N/A";
"<interactive>";
"-";
"functional/activate_tb.sv";
"src/activate.sv";