Add preliminary support for Python vlog95 testing

This commit is contained in:
Cary R 2025-12-30 19:40:47 -08:00
parent aad14df3d7
commit e5943047da
119 changed files with 550 additions and 297 deletions

View File

@ -0,0 +1 @@
work/vlog95.v:11: $finish(1) called at 0 (1s)

View File

@ -0,0 +1,2 @@
VCD info: dumpfile foo.vcd opened for output.
work/vlog95.v:19: $finish called at 30 (1s)

View File

@ -1,2 +1,2 @@
WARNING: work/a.out.v:11: a single % at the end of format string $display<%> will be displayed as '%'.
WARNING: work/vlog95.v:11: a single % at the end of format string $display<%> will be displayed as '%'.
The following should be a single percent: %

View File

@ -1,4 +1,4 @@
WARNING: work/a.out.v:17: $readmempath could not find directory "/no_dir"!
WARNING: work/a.out.v:17: $readmempath could not find directory "no_dir2"!
WARNING: work/a.out.v:17: $readmempath could not find directory "vsim"!
WARNING: work/vlog95.v:17: $readmempath could not find directory "/no_dir"!
WARNING: work/vlog95.v:17: $readmempath could not find directory "no_dir2"!
WARNING: work/vlog95.v:17: $readmempath could not find directory "vsim"!
PASSED

View File

@ -1,3 +1,3 @@
WARNING: work/a.out.v:14: $readmempath's argument (vpiReg) is not a valid string.
WARNING: work/a.out.v:17: $readmempath's argument contains non-printable characters.
"tes\002"
WARNING: work/vlog95.v:14: $readmempath's argument (vpiReg) is not a valid string.
WARNING: work/vlog95.v:17: $readmempath's argument contains non-printable characters.
"tes\002"

View File

@ -0,0 +1,3 @@
This should be suppressed
This should be suppressed
work/vlog95.v:15: $finish(1) called at 0 (1s)

View File

@ -0,0 +1 @@
This should be displayed

View File

@ -16,9 +16,7 @@ automatic_error13 vvp_tests/automatic_error13.json
bits4 vvp_tests/bits4.json
bitsel11 vvp_tests/bitsel11.json
br_gh13a vvp_tests/br_gh13a.json
#br_gh13a-vlog95 vvp_tests/br_gh13a-vlog95.json
br_gh99c vvp_tests/br_gh99c.json
#br_gh99c-vlog95 vvp_tests/br_gh99c-vlog95.json
br_gh230 vvp_tests/br_gh230.json
br_gh383a vvp_tests/br_gh383a.json
br_gh383b vvp_tests/br_gh383b.json
@ -77,16 +75,13 @@ case2-S vvp_tests/case2-S.json
case3 vvp_tests/case3.json
casex_synth vvp_tests/casex_synth.json
cast_int_ams vvp_tests/cast_int_ams.json
#cast_int_ams-vlog95 vvp_tests/cast_int_ams-vlog95.json
cast_real_invalid1 vvp_tests/cast_real_invalid1.json
cast_real_invalid2 vvp_tests/cast_real_invalid2.json
cast_real_invalid3 vvp_tests/cast_real_invalid3.json
cast_real_invalid4 vvp_tests/cast_real_invalid4.json
comment1 vvp_tests/comment1.json
constfunc4_ams vvp_tests/constfunc4_ams.json
#constfunc4_ams-vlog95 vvp_tests/constfunc4_ams-vlog95.json
constfunc6_ams vvp_tests/constfunc6_ams.json
#constfunc6_ams-vlog95 vvp_tests/constfunc6_ams-vlog95.json
constfunc16 vvp_tests/constfunc16.json
constfunc17 vvp_tests/constfunc17.json
constfunc18 vvp_tests/constfunc18.json
@ -119,7 +114,6 @@ early_sig_elab1 vvp_tests/early_sig_elab1.json
early_sig_elab2 vvp_tests/early_sig_elab2.json
early_sig_elab3 vvp_tests/early_sig_elab3.json
eofmt_percent vvp_tests/eofmt_percent.json
#eofmt_percent-vlog95 vvp_tests/eofmt_percent-vlog95.json
fdisplay3 vvp_tests/fdisplay3.json
final3 vvp_tests/final3.json
fmonitor1 vvp_tests/fmonitor1.json
@ -168,11 +162,9 @@ partsel_reversed_idx5 vvp_tests/partsel_reversed_idx5.json
partsel_reversed_idx6 vvp_tests/partsel_reversed_idx6.json
param_test3 vvp_tests/param_test3.json
param-width vvp_tests/param-width.json
#param-width-vlog95 vvp_tests/param-width-vlog95.json
parameter_type vvp_tests/parameter_type.json
#parameter_type-vlog95 vvp_tests/parameter_type-vlog95.json
pr1388974 vvp_tests/pr1388974.json
#pr1388974-vlog95 vvp_tests/pr1388974-vlog95.json
pr1701890 vvp_tests/pr1701890.json
pr1864110a vvp_tests/pr1864110a.json
pr1864110b vvp_tests/pr1864110b.json
@ -180,17 +172,12 @@ pr1864115 vvp_tests/pr1864115.json
pr1916261a vvp_tests/pr1916261a.json
pr1916261a vvp_tests/pr1916261a.json
pr2509349a vvp_tests/pr2509349a.json
#pr2509349a-vlog95 vvp_tests/pr2509349a-vlog95.json
pr2509349b vvp_tests/pr2509349b.json
#pr2509349b-vlog95 vvp_tests/pr2509349b-vlog95.json
pr2800985b vvp_tests/pr2800985b.json
pr3270320_ams vvp_tests/pr3270320_ams.json
pr903 vvp_tests/pr903.json
#pr903-vlog95 vvp_tests/pr903-vlog95.json
program2b vvp_tests/program2b.json
#program2b-vlog95 vvp_tests/program2b-vlog95.json
program3a vvp_tests/program3a.json
#program3a-vlog95 vvp_tests/program3a-vlog95.json
pv_wr_fn_vec2 vvp_tests/pv_wr_fn_vec2.json
pv_wr_fn_vec4 vvp_tests/pv_wr_fn_vec4.json
queue_fail vvp_tests/queue_fail.json
@ -275,7 +262,7 @@ sv_module_port1 vvp_tests/sv_module_port1.json
sv_module_port2 vvp_tests/sv_module_port2.json
sv_module_port3 vvp_tests/sv_module_port3.json
sv_module_port4 vvp_tests/sv_module_port4.json
sv_parameter_type vvp_tests/sv_parameter_type.json
#sv_parameter_type vvp_tests/sv_parameter_type.json
sv_queue_assign_op vvp_tests/sv_queue_assign_op.json
sv_wildcard_import8 vvp_tests/sv_wildcard_import8.json
sdf_header vvp_tests/sdf_header.json
@ -293,11 +280,8 @@ value_range1 vvp_tests/value_range1.json
value_range2 vvp_tests/value_range2.json
value_range3 vvp_tests/value_range3.json
vams_abs1 vvp_tests/vams_abs1.json
#vams_abs1-vlog95 vvp_tests/vams_abs1-vlog95.json
vams_abs2 vvp_tests/vams_abs2.json
#vams_abs2-vlog95 vvp_tests/vams_abs2-vlog95.json
vams_abs3 vvp_tests/vams_abs3.json
#vams_abs3-vlog95 vvp_tests/vams_abs3-vlog95.json
vardly_undefined_vec vvp_tests/vardly_undefined_vec.json
va_math vvp_tests/va_math.json
vvp_quiet_mode vvp_tests/vvp_quiet_mode.json

View File

@ -15,7 +15,7 @@ def assemble_iverilog_cmd(options: dict, cfg: dict, outfile: str) -> list:
res += ["valgrind", "--trace-children=yes"]
res += ["iverilog"+cfg['suffix'], "-o", os.path.join("work", outfile)]
res += options['iverilog_args']
res += [os.path.join(options['directory'], options['source'])]
res += [options['source']]
return res
@ -139,19 +139,25 @@ def run_CE(options: dict, cfg: dict) -> list:
it_key = options['key']
build_runtime(it_key)
cmd = assemble_iverilog_cmd(options, cfg, 'a.out')
res = run_cmd(cmd)
# Run as vlog95 if needed.
if cfg['vlog95']:
options['iverilog_args'].extend(["-tvlog95", "-pfileline=1", "-pspacing=4"])
ivl_cmd = assemble_iverilog_cmd(options, cfg, 'vlog95.v')
else:
ivl_cmd = assemble_iverilog_cmd(options, cfg, 'a.out')
res = run_cmd(ivl_cmd)
log_results(it_key, "iverilog", res)
log_list = ["iverilog-stdout", "iverilog-stderr"]
if res.returncode == 0:
return [1, "Failed - CE (no error reported)"]
return [1, "Failed - CE (no error reported)."]
if res.returncode >= 256:
return [1, "Failed - CE (execution error)"]
return [1, "Failed - CE (execution error)."]
if options['gold'] is not None and not check_gold(options, log_list):
return [1, "Failed - CE (Gold output doesn't match actual output.)"]
return [0, "Passed - CE"]
return [1, "Failed - CE (Gold file doesn't match output)."]
return [0, "Passed - CE."]
def check_gold(options: dict, log_list: list) -> list:
@ -167,7 +173,7 @@ def check_gold(options: dict, log_list: list) -> list:
compared = compared and compare_files(log_path, gold_path)
if compared:
return [0, "Passed"]
return [0, "Passed."]
return [1, "Failed - Gold output doesn't match actual output."]
@ -187,9 +193,9 @@ def check_diff(fname1: str, fname2: str, skip: int, expected_fail: bool) -> list
data2 = fd.read()
if data1 == data2:
return [0, "Passed"]
return [0, "Passed."]
if expected_fail:
return [0, "Passed - EF"]
return [0, "Passed - EF."]
# pylint: disable-next=consider-using-f-string
return [1, "Failed - Files {name1} and {name2} differ.".format(name1=fname1,
name2=fname2)]
@ -215,62 +221,17 @@ def check_run_outputs(options: dict, it_stdout: str, log_list: list,
# Otherwise, look for the PASSED output string in stdout.
for line in it_stdout.splitlines():
if line == "PASSED":
return [0, "Passed"]
return [0, "Passed."]
# If there is no PASSED output, and nothing else to check, then
# assume a failure unless a fail is expected.
if expected_fail:
return [0, "Passed - EF"]
return [1, "Failed - No PASSED output, and no gold file"]
return [0, "Passed - EF."]
return [1, "Failed - No PASSED output, and no gold file."]
# pylint: disable-next=unused-argument
def do_run_normal_vlog95(options: dict, cfg: dict, expected_fail: bool) -> list:
'''Run the iverilog and vvp commands.
In this case, run the compiler with the -tvlog95 flag to generate
an intermediate verilog file, then run the compiler again to generate
a vvp out. Run that vvp output to test the simulation results. Collect
the results and look for a "PASSED" string.'''
it_key = options['key']
build_runtime(it_key)
# Run the first iverilog command, to generate the intermediate verilog
# FIXME: this doesn't work since -tvlog95 is not passed
ivl1_cmd = assemble_iverilog_cmd(options, cfg, "a.out.v")
ivl1_res = run_cmd(ivl1_cmd)
log_results(it_key, "iverilog", ivl1_res)
if ivl1_res.returncode != 0:
return [1, "Failed - Compile failed"]
# Run another iverilog command to compile the code generated from the first step.
# FIXME: this doesn't currently work since the vlog95 path needs to be used
ivl2_cmd = assemble_iverilog_cmd(options, cfg, 'a.out')
ivl2_res = run_cmd(ivl2_cmd)
log_results(it_key, "iverilog-vlog95", ivl2_res)
if ivl2_res.returncode != 0:
return [1, "Failed - Compile of generated code failed"]
# Run the vvp command
vvp_cmd = assemble_vvp_cmd(options, cfg)
vvp_res = run_cmd(vvp_cmd)
log_results(it_key, "vvp", vvp_res)
if vvp_res.returncode != 0:
return [1, "Failed - vvp execution failed"]
it_stdout = vvp_res.stdout.decode('ascii')
log_list = ["iverilog-stdout", "iverilog-stderr",
"iverilog-vlog95-stdout", "iverilog-vlog95-stderr",
"vvp-stdout", "vvp-stderr"]
return check_run_outputs(options, it_stdout, log_list, expected_fail)
def do_run_normal(options: dict, cfg: dict, expected_fail: bool) -> list:
def do_run_normal(options: dict, cfg: dict, expected_fail: bool,
translation_fail: bool) -> list:
'''Run the iverilog and vvp commands.
In this case, run the compiler to generate a vvp output file, and
@ -280,13 +241,40 @@ def do_run_normal(options: dict, cfg: dict, expected_fail: bool) -> list:
it_key = options['key']
build_runtime(it_key)
# Run the vlog95 translation if needed.
if cfg['vlog95']:
options['iverilog_args'].append("-tvlog95")
options['iverilog_args'].append("-pfileline=1")
options['iverilog_args'].append("-pspacing=4")
ivl_tcmd = assemble_iverilog_cmd(options, cfg, 'vlog95.v')
ivl_tres = run_cmd(ivl_tcmd)
log_results(it_key, "iverilog", ivl_tres)
if ivl_tres.returncode != 0:
return [1, "Failed - vlog95 translation failed."]
if "-pallowsigned=1" in options['iverilog_args']:
options['iverilog_args'] = [ "-g2001-noconfig" ]
else:
options['iverilog_args'] = [ "-g1995" ]
options['source'] = os.path.join("work", "vlog95.v")
# Run the iverilog command
ivl_cmd = assemble_iverilog_cmd(options, cfg, 'a.out')
ivl_res = run_cmd(ivl_cmd)
log_results(it_key, "iverilog", ivl_res)
if ivl_res.returncode != 0:
return [1, "Failed - Compile failed"]
if cfg['vlog95']:
log_results(it_key, "iverilog-vlog95", ivl_res)
else:
log_results(it_key, "iverilog", ivl_res)
if translation_fail:
if ivl_res.returncode != 0:
return [0, "Passed - TE."]
else:
return [1, "Failed - TE did not fail."]
elif ivl_res.returncode != 0:
return [1, "Failed - Compile failed."]
# run the vvp command
vvp_cmd = assemble_vvp_cmd(options, cfg)
@ -294,7 +282,7 @@ def do_run_normal(options: dict, cfg: dict, expected_fail: bool) -> list:
log_results(it_key, "vvp", vvp_res)
if vvp_res.returncode != 0 and expected_fail:
return [0, "Passed - EF"]
return [0, "Passed - EF."]
if vvp_res.returncode >= 256:
return [1, "Failed - vvp execution error"]
if vvp_res.returncode > 0 and vvp_res.returncode < 256 and not expected_fail:
@ -303,23 +291,23 @@ def do_run_normal(options: dict, cfg: dict, expected_fail: bool) -> list:
it_stdout = vvp_res.stdout.decode('ascii')
log_list = ["iverilog-stdout", "iverilog-stderr",
"vvp-stdout", "vvp-stderr"]
if cfg['vlog95']:
log_list[2:2] = ["iverilog-vlog95-stdout", "iverilog-vlog95-stderr"]
return check_run_outputs(options, it_stdout, log_list, expected_fail)
def run_normal(options: dict, cfg: dict) -> list:
'''Run a normal test'''
return do_run_normal(options, cfg, False)
return do_run_normal(options, cfg, False, False)
# pylint: disable-next=invalid-name
def run_EF(options: dict, cfg: dict) -> list:
'''Run an expected fail test'''
return do_run_normal(options, cfg, True)
return do_run_normal(options, cfg, True, False)
def run_normal_vlog95(options: dict, cfg: dict) -> list:
'''Run a vlog95 test'''
return do_run_normal_vlog95(options, cfg, False)
# pylint: disable-next=invalid-name
def run_EF_vlog95(options: dict, cfg: dict) -> list:
'''Run an expected fail vlog95 test'''
return do_run_normal_vlog95(options, cfg, True)
def run_TE(options: dict, cfg: dict) -> list:
'''Run a translation fail test'''
return do_run_normal(options, cfg, False, True)

View File

@ -11,6 +11,7 @@ Usage:
default list is used.
'''
import os
import sys
import json
import argparse
@ -48,7 +49,7 @@ class InvalidJSON(Exception):
def process_overrides(group: str, it_dict: dict, it_opts: dict):
'''Override the gold file or type if needed.'''
'''Override the gold file, type or arguments if needed.'''
if group in it_dict:
overrides = ['gold', 'type']
for override in overrides:
@ -57,6 +58,8 @@ def process_overrides(group: str, it_dict: dict, it_opts: dict):
it_opts[override] = None
else:
it_opts[override] = it_dict[group][override]
if 'iverilog-args' in it_dict[group]:
it_opts['iverilog_args'].extend(it_dict[group]['iverilog-args'])
def force_gen(it_opts: dict):
@ -95,8 +98,7 @@ def process_test(item: list, cfg: list) -> str:
'key' : it_key,
'type' : it_dict['type'],
'iverilog_args' : it_dict.get('iverilog-args', [ ]),
'directory' : "ivltests",
'source' : it_dict['source'],
'source' : os.path.join("ivltests", it_dict['source']),
'modulename' : None,
'gold' : it_dict.get('gold', None),
'diff' : None,
@ -115,6 +117,9 @@ def process_test(item: list, cfg: list) -> str:
force_gen(it_opts)
process_overrides('force-sv', it_dict, it_opts)
if cfg['vlog95']:
process_overrides('vlog95', it_dict, it_opts)
# Get the overridden test type.
it_type = it_opts['type']
@ -124,17 +129,14 @@ def process_test(item: list, cfg: list) -> str:
elif it_type == "normal":
res = run_ivl.run_normal(it_opts, cfg)
elif it_type == "normal-vlog95":
res = run_ivl.run_normal_vlog95(it_opts, cfg)
elif it_type == "CE":
res = run_ivl.run_CE(it_opts, cfg)
elif it_type == "EF":
res = run_ivl.run_EF(it_opts, cfg)
elif it_type == "EF-vlog95":
res = run_ivl.run_EF_vlog95(it_opts, cfg)
elif it_type == "TE":
res = run_ivl.run_TE(it_opts, cfg)
else:
raise InvalidTestType(it_key, it_type)
@ -147,7 +149,10 @@ def print_header(cfg: dict, files: list):
# This returns 13 or similar
ivl_version = run_ivl.get_ivl_version(cfg['suffix'])
print("Running compiler/VVP tests for Icarus Verilog ", end='')
print("Running ", end='')
if cfg['vlog95']:
print("vlog95 ", end='')
print("compiler/VVP tests for Icarus Verilog ", end='')
# pylint: disable-next=consider-using-f-string
print("version: {ver}".format(ver=ivl_version), end='')
if cfg['suffix']:
@ -184,16 +189,12 @@ if __name__ == "__main__":
help='File(s) containing a list of the tests to run, default "%(default)s".')
args = argp.parse_args()
# FIXME: need to add real vlog95 support
if args.vlog95:
print('Sorry: Converting to Verilog-95 and running is not currently supported!')
sys.exit(1)
ivl_cfg = {
'suffix' : args.suffix,
'strict' : args.strict,
'with-valgrind' : args.with_valgrind,
'force-sv' : args.force_sv
'force-sv' : args.force_sv,
'vlog95' : args.vlog95
}
print_header(ivl_cfg, args.files)

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "array_packed_write_read.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,4 +1,8 @@
{
"type" : "normal",
"source" : "array_slice_concat.v"
"source" : "array_slice_concat.v",
"vlog95" : {
"__comment" : "Array nets are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "EF",
"source" : "automatic_error11.v",
"gold" : "automatic_error11"
"gold" : "automatic_error11",
"vlog95" : {
"__comment" : "Automatic tasks are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "EF",
"source" : "automatic_error12.v",
"gold" : "automatic_error12"
"gold" : "automatic_error12",
"vlog95" : {
"__comment" : "Automatic tasks are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "EF",
"source" : "automatic_error13.v",
"gold" : "automatic_error13"
"gold" : "automatic_error13",
"vlog95" : {
"__comment" : "Automatic tasks are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "bits4.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "bitsel11.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "br_gh1001.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "array nets are not supported",
"type" : "CE"
}
}

View File

@ -1,4 +1,7 @@
{
"type" : "normal",
"source" : "br_gh1099a.v"
"source" : "br_gh1099a.v",
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,4 +1,7 @@
{
"type" : "normal",
"source" : "br_gh1099b.v"
"source" : "br_gh1099b.v",
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,4 +1,7 @@
{
"type" : "normal",
"source" : "br_gh1099c.v"
"source" : "br_gh1099c.v",
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,4 +1,8 @@
{
"type" : "normal",
"source" : "br_gh1155.v"
"source" : "br_gh1155.v",
"vlog95" : {
"__comment" : "Net arrays are not supported",
"type" : "CE"
}
}

View File

@ -1,4 +1,4 @@
{
"type" : "normal-vlog95",
"type" : "normal",
"source" : "br_gh1181.v"
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "br_gh1242.v",
"gold" : "br_gh1242"
"gold" : "br_gh1242",
"vlog95" : {
"gold" : "br_gh1242-vlog95"
}
}

View File

@ -1,5 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "br_gh13a.v",
"gold" : "br_gh13a-vlog95"
}

View File

@ -2,5 +2,10 @@
"type" : "normal",
"source" : "br_gh383a.v",
"iverilog-args" : [ "-g2012" ],
"gold" : "br_gh383a"
"gold" : "br_gh383a",
"vlog95" : {
"__commnt" : "Dynamic arrays are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -2,5 +2,10 @@
"type" : "normal",
"source" : "br_gh383b.v",
"iverilog-args" : [ "-g2012" ],
"gold" : "br_gh383a"
"gold" : "br_gh383a",
"vlog95" : {
"__commnt" : "Dynamic arrays are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -2,5 +2,11 @@
"type" : "normal",
"source" : "br_gh383c.v",
"iverilog-args" : [ "-g2012" ],
"gold" : "br_gh383c"
"gold" : "br_gh383c",
"vlog95" : {
"__comment" : "Strings/dynamic arrays are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ],
"gold" : ""
}
}

View File

@ -5,5 +5,11 @@
"gold" : "br_gh383d",
"strict" : {
"gold" : "br_gh383d_std"
},
"vlog95" : {
"__comment" : "Real/dynamic arrays are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ],
"gold" : ""
}
}

View File

@ -1,4 +1,8 @@
{
"type" : "normal",
"source" : "br_gh483a.v"
"source" : "br_gh483a.v",
"vlog95" : {
"__comment" : "Generate scopes are not supported",
"type" : "CE"
}
}

View File

@ -2,5 +2,8 @@
"type" : "normal",
"source" : "br_gh687.v",
"gold" : "br_gh687",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "br_gh703.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Generate scopes are not supported",
"type" : "CE"
}
}

View File

@ -1,6 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "br_gh99c.v",
"iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ]
}

View File

@ -1,6 +1,8 @@
{
"type" : "normal",
"source" : "br_gh99c.v",
"iverilog-args" : [ "-gverilog-ams" ]
"iverilog-args" : [ "-gverilog-ams" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -4,5 +4,10 @@
"gold" : "ca_time_real",
"strict" : {
"gold" : "ca_time_real_std"
},
"vlog95" : {
"__comment" : "Real nets are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "case2.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "No support for arrayed UDPs",
"type" : "TE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "casex_synth.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "Case equality is not supported",
"type" : "CE"
}
}

View File

@ -1,6 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "cast_int_ams.v",
"iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ]
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "constfunc16.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Automatic functions/break/continue are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "constfunc17.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Automatic functions/break/continue are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "constfunc18.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Automatic functions/break/continue are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "constfunc19.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Automatic functions/break/continue are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "constfunc20.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Automatic functions/break/continue are not supported",
"type" : "CE"
}
}

View File

@ -1,6 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "constfunc4_ams.v",
"iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ]
}

View File

@ -1,6 +1,8 @@
{
"type" : "normal",
"source" : "constfunc4_ams.v",
"iverilog-args" : [ "-gverilog-ams" ]
"iverilog-args" : [ "-gverilog-ams" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,6 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "constfunc6_ams.v",
"iverilog-args" : [ "-pallowsigned=1" ]
}

View File

@ -1,5 +1,7 @@
{
"type" : "normal",
"source" : "constfunc6_ams.v"
"source" : "constfunc6_ams.v",
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -5,5 +5,10 @@
"gold" : "delayed_sfunc",
"strict" : {
"gold" : "delayed_sfunc_std"
},
"vlog95" : {
"_comment" : "Real nets are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "dffsynth10.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "No support for arrayed UDPs",
"type" : "TE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "dffsynth11.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "No support for multi-bit async set",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "dffsynth6.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "No support for arrayed UDPs",
"type" : "TE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "dffsynth7.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "No support for multi-bit async set",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "dffsynth9.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "No support for arrayed UDPs",
"type" : "TE"
}
}

View File

@ -2,5 +2,8 @@
"type" : "normal",
"source" : "dumpfile.v",
"gold" : "dumpfile",
"vvp-args-extended" : [ "-vcd", "-dumpfile=foo" ]
"vvp-args-extended" : [ "-vcd", "-dumpfile=foo" ],
"vlog95" : {
"gold" : "dumpfile-vlog95"
}
}

View File

@ -1,5 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "eofmt_percent.v",
"gold" : "eofmt_percent-vlog95"
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "eofmt_percent.v",
"gold" : "eofmt_percent"
"gold" : "eofmt_percent",
"vlog95" : {
"gold" : "eofmt_percent-vlog95"
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "normal",
"source" : "final3.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Final blocks are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal-vlog95",
"source" : "localparam_type.v",
"gold" : "parameter_type-vlog95"
"gold" : "parameter_type-vlog95",
"strict" : {
"gold" : "parameter_type-vlog95_std"
}
}

View File

@ -2,5 +2,9 @@
"__comment" : "Synthesis not implemented for this yet.",
"type" : "normal",
"source" : "memsynth4.v",
"iverilog-args" : [ "-S" ]
"iverilog-args" : [ "-S" ],
"vlog95" : {
"__comment" : "Array nets not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "module_port_array1.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Array nets/ports are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "param-width.v",
"gold" : "param-width-vlog95"
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal-vlog95",
"source" : "parameter_type.v",
"gold" : "parameter_type-vlog95"
"gold" : "parameter_type-vlog95",
"strict" : {
"gold" : "parameter_type-vlog95_std"
}
}

View File

@ -1,4 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "pr1388974.v"
}

View File

@ -4,5 +4,10 @@
"gold" : "pr1864110a",
"strict" : {
"gold" : "pr1864110a_std"
},
"vlog95" : {
"__comment" : "Real nets are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -4,5 +4,10 @@
"gold" : "pr1864110b",
"strict" : {
"gold" : "pr1864110b_std"
},
"vlog95" : {
"__comment" : "Real nets are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -4,5 +4,10 @@
"gold" : "pr1864115",
"strict" : {
"gold" : "pr1864115_std"
},
"vlog95" : {
"__comment" : "Real nets are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -1,5 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "pr2509349a.v",
"gold" : "pr2509349a-vlog95"
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "pr2509349a.v",
"gold" : "pr2509349a"
"gold" : "pr2509349a",
"vlog95" : {
"gold" : "pr2509349a-vlog95"
}
}

View File

@ -1,5 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "pr2509349b.v",
"gold" : "pr2509349b-vlog95"
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "pr2509349b.v",
"gold" : "pr2509349b"
"gold" : "pr2509349b",
"vlog95" : {
"gold" : "pr2509349b-vlog95"
}
}

View File

@ -1,4 +0,0 @@
{
"type" : "normal-vlog95",
"source" : "pr903.v"
}

View File

@ -1,6 +0,0 @@
{
"__comment" : "This doesn't actually work for vlog95 conversion. Fix this?",
"type" : "NI",
"source" : "program2b.v",
"iverilog-args" : [ "-g2009", "-tvlog95", "-pallowsigned=1" ]
}

View File

@ -1,5 +1,10 @@
{
"type" : "normal",
"source" : "program2b.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Final blocks are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,6 +0,0 @@
{
"__comment" : "This doesn't actually work for vlog95 conversion. Fix this?",
"type" : "NI",
"source" : "program3a.v",
"iverilog-args" : [ "-g2009", "-tvlog95", "-pallowsigned=1" ]
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "program3a.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"type" : "Final blocks are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "EF",
"source" : "scan-invalid.v",
"gold" : "scan-invalid"
"gold" : "scan-invalid",
"vlog95" : {
"__comment" : "Array nets are not supported",
"type" : "CE",
"gold" : ""
}
}

View File

@ -1,5 +1,7 @@
{
"type" : "normal",
"source" : "shift6.v"
"source" : "shift6.v",
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "sv_ap_uarray1.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,8 @@
{
"type" : "normal",
"source" : "sv_ap_uarray2.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_ap_uarray3.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Array Nets are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_ap_uarray4.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Array nets are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_ap_uarray5.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Real arrays/assignment patterns are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_ap_uarray6.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"_comment" : "Strings/Array patterns are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_argumentless_func.v",
"iverilog-args" : [ "-g2012" ]
"iverilog-args" : [ "-g2012" ],
"vlog95" : {
"__comment" : "Automatic functions are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_array_cassign6.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"__comment" : "Array nets/final blocks ar not supported",
"type" : "CE"
}
}

View File

@ -2,5 +2,11 @@
"type" : "normal",
"source" : "sv_array_cassign7.v",
"iverilog-args" : [ "-g2009" ],
"gold" : "sv_array_cassign7"
"gold" : "sv_array_cassign7",
"vlog95" : {
"__comment" : "Array nets are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ],
"gold" : ""
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_array_cassign8.v",
"iverilog-args" : [ "-g2009" ]
"iverilog-args" : [ "-g2009" ],
"vlog95" : {
"type" : "Array nets are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "normal",
"source" : "sv_automatic_2state.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Automatic tasks/functions are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "normal",
"source" : "sv_chained_constructor1.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "normal",
"source" : "sv_chained_constructor2.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_chained_constructor3.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_chained_constructor4.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_chained_constructor5.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_class_prop_assign_op1.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_class_prop_assign_op2.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_class_prop_logic.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,10 @@
{
"type" : "normal",
"source" : "sv_class_prop_nest_darray1.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes/dynamic arrays are not supported",
"type" : "CE",
"iverilog-args" : [ "-pallowsigned=1" ]
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_class_prop_nest_obj1.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_class_prop_nest_real1.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

View File

@ -1,5 +1,9 @@
{
"type" : "normal",
"source" : "sv_class_prop_nest_str1.v",
"iverilog-args" : [ "-g2005-sv" ]
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}

Some files were not shown because too many files have changed in this diff Show More