forked from steveicarus/ivtest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvpi_regress.list
167 lines (155 loc) · 7.74 KB
/
vpi_regress.list
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
#==========
# This file controls how the individual VPI tests are run. The verilog
# file must be named <test_name>.v. The output log file is named
# <test_name>.log. The verilog and C/C++ files are located in the
# "vpi" directory and the gold files are located in the "vpi_gold"
# directory. The NI (Not Implemented) type is only available for
# version specific tests. It is ignored by the default case!
#
# The basic steps for each test are:
# iverilog-vpi --name <test_name> <compiler_options> <C/C++_file>
# iverilog -o sim_file <test_name>.v
# vvp -M . -m <test_name> sim_file
# diff <the output from the above commands> <gold log file>
# remove temporary files.
#
# The following are the recognized fields:
#
#ver:test name type C/C++ file gold log file compiler options
#
# The compiler option field is optional and when present will contain
# all subsequent fields.
#==========
#==========
# For testing with other simulators
#==========
# This test uses an Icarus language extension ($simparam).
vstd:check_version NI check_version.c check_version.gold
# This test uses an Icarus language extension (wire real).
vstd:pr2966059 NI pr2966059.c pr2966059.gold
# Icarus returns vpiReg instead of vpiTimeVar.
vstd:by_name normal by_name.c by_name-std.log
# Icarus generates spurious value change callback triggers at T=0.
vstd:memwide normal memwide.cc memwide-std.log
vstd:nulls1 normal nulls1.c nulls1-std.log
# Icarus outputs warning messages.
vstd:pr723 normal pr723.c pr723-std.log
# This test has a non-deterministic output order. The gold file needs
# to be adjusted to match the simulator being used.
vstd:scopes normal scopes.c scopes-std.log
#==========
# For version 0.8 do these instead of the default case.
#
# Version 0.8 defines some VPI calls differently than the standard.
# The IVERILOG_V0_8 define is used to accommodate these differences.
#
# Specifically the calltf, compieltf and sizetf routines take a
# (char *) argument not a (PLI_BYTE8 *). This difference only
# produces a warning for C code, but is fatal for C++ code.
#
#==========
v0.8:hello_vpi normal hello_vpi.c hello.log -DIVERILOG_V0_8
v0.8:hello_tf normal hello_tf.c hello_tf.log -DIVERILOG_V0_8
v0.8:hello_poke normal hello_poke.c hello_poke.log -DIVERILOG_V0_8
# V0.8 does not trigger a to X event at T=0.
v0.8:nulls1 normal nulls1.c nulls1-v0.8.log -DIVERILOG_V0_8
v0.8:scanmem normal scanmem.cc scanmem.log -DIVERILOG_V0_8
v0.8:scanmem2 normal scanmem2.cc scanmem2.log -DIVERILOG_V0_8
# V0.8 incorrectly uses 0 bits outside the vector range to determine
# if X is printed.
v0.8:scanmem3 normal scanmem3.cc scanmem3-v0.8.log -DIVERILOG_V0_8
v0.8:event1 normal event1.c event1.log -DIVERILOG_V0_8
v0.8:pokereg normal pokereg.cc pokereg.log -DIVERILOG_V0_8
# This test has both the T=0 and X differences noted above.
v0.8:memwide normal memwide.cc memwide-v0.8.log
# V0.8 and V0.9 have a different order than later versions.
v0.8:scopes normal scopes.c scopes-v0.9.log -DIVERILOG_V0_8
v0.9:scopes normal scopes.c scopes-v0.9.log
v0.8:by_name normal by_name.c by_name.log -DIVERILOG_V0_8
v0.8:realcb normal realcb.c realcb.log -DIVERILOG_V0_8
v0.8:pr686 normal pr686.c pr686.log -DIVERILOG_V0_8
v0.8:pr723 normal pr723.c pr723-v0.8.log -DIVERILOG_V0_8
# V0.8 has some 32 bit time problems so this test fails.
v0.8:realtime normal realtime.c realtime.log -DIVERILOG_V0_8
v0.8:realtime2 normal realtime2.c realtime2.log -DIVERILOG_V0_8
# V0.8 does not support whole array callbacks so this test fails.
v0.8:memmon NI memmon.c memmon.log
# From a VPI standpoint, parameters are not handled very well in V0.8.
v0.8:listparams normal listparams.c listparams-v0.8.log -DIVERILOG_V0_8
v0.8:pr1693971 normal pr1693971.c pr1693971.log -DIVERILOG_V0_8
# V0.8 does not support vpiModPath!
v0.8:spec_delays NI spec_delays.c spec_delays.log
# V0.9 has different T0 values for nets z vs x.
v0.9:spec_delays normal,-gspecify spec_delays.c spec_delays-v0.9.log
# V0.8 does not support a callback using vpiScaledRealTime
v0.8:pr2048463 NI pr2048463.c pr2048463.log
# V0.9 starts at Z so has a to X transition.
v0.9:pr2048463 normal pr2048463.c pr2048463-v0.9.log
v0.8:pr2314742 normal pr2314742.c pr2314742.gold -DIVERILOG_V0_8
# V0.8, V0.9 do not support vpiCellInstance
v0.8:celldefine NI celldefine.c celldefine.gold
v0.9:celldefine NI celldefine.c celldefine.gold
# V0.8 does not support a callback using vpiAtStartOfSimTime
v0.8:start_of_simtime1 NI start_of_simtime1.c start_of_simtime1.log
v0.8:check_version NI check_version.c check_version.gold
v0.8:pr2966059 NI pr2966059.c pr2966059.gold
v0.8:pr2971220 NI pr2971220.c pr2971220.gold
# V0.8, V0.9 do not support vpi_get_systf_info(), etc.
v0.8:pr2971220 NI pr2971220.c pr2971220.gold
v0.9:pr2971220 NI pr2971220.c pr2971220.gold
# V0.8 does not have the updated definition for getlongsimtime().
v0.8:timescale normal timescale.c timescale-v0.8.log
# V0.8, V0.9 do not support final blocks.
v0.8:final NI final.c final.gold
v0.9:final NI final.c final.gold
# V0.8, V0.9 do not support getting port properties.
v0.8:ports_params NI ports_params.c ports_params.gold
v0.9:ports_params NI ports_params.c ports_params.gold
# Add v0.8/v0.9 overrides here.
#==========
# The default case.
#==========
hello_vpi normal hello_vpi.c hello.log
hello_tf normal hello_tf.c hello_tf.log
hello_poke normal hello_poke.c hello_poke.log
callback1 normal callback1.c callback1.log
nulls1 normal nulls1.c nulls1.log
scanmem normal scanmem.cc scanmem.log
scanmem2 normal scanmem2.cc scanmem2.log
scanmem3 normal scanmem3.cc scanmem3.log
event1 normal event1.c event1.log
event2 normal event2.c event2.log
pokevent normal pokevent.cc pokevent.log
pokereg normal pokereg.cc pokereg.log
memwide normal memwide.cc memwide.log
scopes normal scopes.c scopes.log
by_name normal by_name.c by_name.log
realcb normal realcb.c realcb.log
pr521 normal pr521.c pr521.log
pr686 normal pr686.c pr686.log
pr723 normal pr723.c pr723.log
realtime normal realtime.c realtime.log
realtime2 normal realtime2.c realtime2.log
putvalue normal putvalue.c putvalue.log
timescale normal timescale.c timescale.log
getp normal getp.c getp.log
putp normal putp.c putp.log
putp2 normal putp2.c putp2.log
mipname normal mipname.c mipname.log
memmon normal,-g1995 memmon.c memmon.log
listparams normal listparams.c listparams.log
pr1693971 normal pr1693971.c pr1693971.log
spec_delays normal,-gspecify spec_delays.c spec_delays.log
pr2048463 normal pr2048463.c pr2048463.log
pr2314742 normal pr2314742.c pr2314742.gold
celldefine normal celldefine.c celldefine.gold
start_of_simtime1 normal start_of_simtime1.c start_of_simtime1.log
check_version normal check_version.c check_version.gold
pr2966059 normal,-gno-xtypes pr2966059.c pr2966059.gold
pr2971220 normal pr2971220.c pr2971220.gold
final normal,-g2009 final.c final.gold
ports_params normal ports_params.c ports_params.gold
# Add new tests here. If the test needs a compile option or a
# different log file to run with an older versions or if it uses
# something not implemented (NI) by other versions of the program
# it will also need a version specific line(s) above.