From e5943047da26a2e5e6d815d17e348a66f59c900e Mon Sep 17 00:00:00 2001 From: Cary R Date: Tue, 30 Dec 2025 19:40:47 -0800 Subject: [PATCH] Add preliminary support for Python vlog95 testing --- ivtest/gold/br_gh1242-vlog95-vvp-stdout.gold | 1 + ivtest/gold/dumpfile-vlog95-vvp-stdout.gold | 2 + .../gold/eofmt_percent-vlog95-vvp-stdout.gold | 2 +- ivtest/gold/pr2509349a-vlog95-vvp-stdout.gold | 6 +- ivtest/gold/pr2509349b-vlog95-vvp-stdout.gold | 6 +- .../vvp_quiet_mode-vlog95-vvp-stderr.gold | 3 + .../vvp_quiet_mode-vlog95-vvp-stdout.gold | 1 + ivtest/regress-vvp.list | 18 +-- ivtest/run_ivl.py | 132 ++++++++---------- ivtest/vvp_reg.py | 31 ++-- ivtest/vvp_tests/array_packed_write_read.json | 5 +- ivtest/vvp_tests/array_slice_concat.json | 6 +- ivtest/vvp_tests/automatic_error11.json | 7 +- ivtest/vvp_tests/automatic_error12.json | 7 +- ivtest/vvp_tests/automatic_error13.json | 7 +- ivtest/vvp_tests/bits4.json | 5 +- ivtest/vvp_tests/bitsel11.json | 5 +- ivtest/vvp_tests/br_gh1001.json | 6 +- ivtest/vvp_tests/br_gh1099a.json | 5 +- ivtest/vvp_tests/br_gh1099b.json | 5 +- ivtest/vvp_tests/br_gh1099c.json | 5 +- ivtest/vvp_tests/br_gh1155.json | 6 +- ivtest/vvp_tests/br_gh1181.json | 2 +- ivtest/vvp_tests/br_gh1242.json | 5 +- ivtest/vvp_tests/br_gh13a-vlog95.json | 5 - ivtest/vvp_tests/br_gh383a.json | 7 +- ivtest/vvp_tests/br_gh383b.json | 7 +- ivtest/vvp_tests/br_gh383c.json | 8 +- ivtest/vvp_tests/br_gh383d.json | 6 + ivtest/vvp_tests/br_gh483a.json | 6 +- ivtest/vvp_tests/br_gh687.json | 5 +- ivtest/vvp_tests/br_gh703.json | 6 +- ivtest/vvp_tests/br_gh99c-vlog95.json | 6 - ivtest/vvp_tests/br_gh99c.json | 6 +- ivtest/vvp_tests/ca_time_real.json | 5 + ivtest/vvp_tests/case2-S.json | 6 +- ivtest/vvp_tests/casex_synth.json | 6 +- ivtest/vvp_tests/cast_int_ams-vlog95.json | 6 - ivtest/vvp_tests/constfunc16.json | 6 +- ivtest/vvp_tests/constfunc17.json | 6 +- ivtest/vvp_tests/constfunc18.json | 6 +- ivtest/vvp_tests/constfunc19.json | 6 +- ivtest/vvp_tests/constfunc20.json | 6 +- ivtest/vvp_tests/constfunc4_ams-vlog95.json | 6 - ivtest/vvp_tests/constfunc4_ams.json | 6 +- ivtest/vvp_tests/constfunc6_ams-vlog95.json | 6 - ivtest/vvp_tests/constfunc6_ams.json | 6 +- ivtest/vvp_tests/delayed_sfunc.json | 5 + ivtest/vvp_tests/dffsynth10.json | 6 +- ivtest/vvp_tests/dffsynth11.json | 6 +- ivtest/vvp_tests/dffsynth6.json | 6 +- ivtest/vvp_tests/dffsynth7.json | 6 +- ivtest/vvp_tests/dffsynth9.json | 6 +- ivtest/vvp_tests/dumpfile.json | 5 +- ivtest/vvp_tests/eofmt_percent-vlog95.json | 5 - ivtest/vvp_tests/eofmt_percent.json | 5 +- ivtest/vvp_tests/final3.json | 7 +- ivtest/vvp_tests/localparam_type-vlog95.json | 5 +- ivtest/vvp_tests/memsynth4-synth.json | 6 +- ivtest/vvp_tests/module_port_array1.json | 6 +- ivtest/vvp_tests/param-width-vlog95.json | 5 - ivtest/vvp_tests/parameter_type-vlog95.json | 5 +- ivtest/vvp_tests/pr1388974-vlog95.json | 4 - ivtest/vvp_tests/pr1864110a.json | 5 + ivtest/vvp_tests/pr1864110b.json | 5 + ivtest/vvp_tests/pr1864115.json | 5 + ivtest/vvp_tests/pr2509349a-vlog95.json | 5 - ivtest/vvp_tests/pr2509349a.json | 5 +- ivtest/vvp_tests/pr2509349b-vlog95.json | 5 - ivtest/vvp_tests/pr2509349b.json | 5 +- ivtest/vvp_tests/pr903-vlog95.json | 4 - ivtest/vvp_tests/program2b-vlog95.json | 6 - ivtest/vvp_tests/program2b.json | 7 +- ivtest/vvp_tests/program3a-vlog95.json | 6 - ivtest/vvp_tests/program3a.json | 6 +- ivtest/vvp_tests/scan-invalid.json | 7 +- ivtest/vvp_tests/shift6.json | 6 +- ivtest/vvp_tests/sv_ap_uarray1.json | 5 +- ivtest/vvp_tests/sv_ap_uarray2.json | 5 +- ivtest/vvp_tests/sv_ap_uarray3.json | 6 +- ivtest/vvp_tests/sv_ap_uarray4.json | 6 +- ivtest/vvp_tests/sv_ap_uarray5.json | 6 +- ivtest/vvp_tests/sv_ap_uarray6.json | 6 +- ivtest/vvp_tests/sv_argumentless_func.json | 6 +- ivtest/vvp_tests/sv_array_cassign6.json | 6 +- ivtest/vvp_tests/sv_array_cassign7.json | 8 +- ivtest/vvp_tests/sv_array_cassign8.json | 6 +- ivtest/vvp_tests/sv_automatic_2state.json | 7 +- ivtest/vvp_tests/sv_chained_constructor1.json | 7 +- ivtest/vvp_tests/sv_chained_constructor2.json | 7 +- ivtest/vvp_tests/sv_chained_constructor3.json | 6 +- ivtest/vvp_tests/sv_chained_constructor4.json | 6 +- ivtest/vvp_tests/sv_chained_constructor5.json | 6 +- .../vvp_tests/sv_class_prop_assign_op1.json | 6 +- .../vvp_tests/sv_class_prop_assign_op2.json | 6 +- ivtest/vvp_tests/sv_class_prop_logic.json | 6 +- .../vvp_tests/sv_class_prop_nest_darray1.json | 7 +- ivtest/vvp_tests/sv_class_prop_nest_obj1.json | 6 +- .../vvp_tests/sv_class_prop_nest_real1.json | 6 +- ivtest/vvp_tests/sv_class_prop_nest_str1.json | 6 +- ivtest/vvp_tests/sv_class_prop_nest_vec1.json | 6 +- ivtest/vvp_tests/sv_const2.json | 6 +- ivtest/vvp_tests/sv_darray_assign_op.json | 7 +- ivtest/vvp_tests/sv_foreach10.json | 6 +- ivtest/vvp_tests/sv_foreach9.json | 5 +- ivtest/vvp_tests/sv_literals.json | 5 +- ivtest/vvp_tests/sv_module_port1.json | 5 +- ivtest/vvp_tests/sv_module_port2.json | 7 +- ivtest/vvp_tests/sv_parameter_type.json | 5 +- ivtest/vvp_tests/sv_queue_assign_op.json | 7 +- ivtest/vvp_tests/task_return1.json | 6 +- ivtest/vvp_tests/vams_abs1-vlog95.json | 6 - ivtest/vvp_tests/vams_abs1.json | 6 +- ivtest/vvp_tests/vams_abs2-vlog95.json | 7 - ivtest/vvp_tests/vams_abs2.json | 8 +- ivtest/vvp_tests/vams_abs3-vlog95.json | 7 - ivtest/vvp_tests/vams_abs3.json | 8 +- ivtest/vvp_tests/vvp_quiet_mode.json | 11 +- ivtest/vvp_tests/wreal.json | 5 +- 119 files changed, 550 insertions(+), 297 deletions(-) create mode 100644 ivtest/gold/br_gh1242-vlog95-vvp-stdout.gold create mode 100644 ivtest/gold/dumpfile-vlog95-vvp-stdout.gold create mode 100644 ivtest/gold/vvp_quiet_mode-vlog95-vvp-stderr.gold create mode 100644 ivtest/gold/vvp_quiet_mode-vlog95-vvp-stdout.gold delete mode 100644 ivtest/vvp_tests/br_gh13a-vlog95.json delete mode 100644 ivtest/vvp_tests/br_gh99c-vlog95.json delete mode 100644 ivtest/vvp_tests/cast_int_ams-vlog95.json delete mode 100644 ivtest/vvp_tests/constfunc4_ams-vlog95.json delete mode 100644 ivtest/vvp_tests/constfunc6_ams-vlog95.json delete mode 100644 ivtest/vvp_tests/eofmt_percent-vlog95.json delete mode 100644 ivtest/vvp_tests/param-width-vlog95.json delete mode 100644 ivtest/vvp_tests/pr1388974-vlog95.json delete mode 100644 ivtest/vvp_tests/pr2509349a-vlog95.json delete mode 100644 ivtest/vvp_tests/pr2509349b-vlog95.json delete mode 100644 ivtest/vvp_tests/pr903-vlog95.json delete mode 100644 ivtest/vvp_tests/program2b-vlog95.json delete mode 100644 ivtest/vvp_tests/program3a-vlog95.json delete mode 100644 ivtest/vvp_tests/vams_abs1-vlog95.json delete mode 100644 ivtest/vvp_tests/vams_abs2-vlog95.json delete mode 100644 ivtest/vvp_tests/vams_abs3-vlog95.json diff --git a/ivtest/gold/br_gh1242-vlog95-vvp-stdout.gold b/ivtest/gold/br_gh1242-vlog95-vvp-stdout.gold new file mode 100644 index 000000000..c82e13025 --- /dev/null +++ b/ivtest/gold/br_gh1242-vlog95-vvp-stdout.gold @@ -0,0 +1 @@ +work/vlog95.v:11: $finish(1) called at 0 (1s) diff --git a/ivtest/gold/dumpfile-vlog95-vvp-stdout.gold b/ivtest/gold/dumpfile-vlog95-vvp-stdout.gold new file mode 100644 index 000000000..183f3b7a6 --- /dev/null +++ b/ivtest/gold/dumpfile-vlog95-vvp-stdout.gold @@ -0,0 +1,2 @@ +VCD info: dumpfile foo.vcd opened for output. +work/vlog95.v:19: $finish called at 30 (1s) diff --git a/ivtest/gold/eofmt_percent-vlog95-vvp-stdout.gold b/ivtest/gold/eofmt_percent-vlog95-vvp-stdout.gold index 15b405293..395da51c1 100644 --- a/ivtest/gold/eofmt_percent-vlog95-vvp-stdout.gold +++ b/ivtest/gold/eofmt_percent-vlog95-vvp-stdout.gold @@ -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: % diff --git a/ivtest/gold/pr2509349a-vlog95-vvp-stdout.gold b/ivtest/gold/pr2509349a-vlog95-vvp-stdout.gold index d46d6fb73..1a3ce6be4 100644 --- a/ivtest/gold/pr2509349a-vlog95-vvp-stdout.gold +++ b/ivtest/gold/pr2509349a-vlog95-vvp-stdout.gold @@ -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 diff --git a/ivtest/gold/pr2509349b-vlog95-vvp-stdout.gold b/ivtest/gold/pr2509349b-vlog95-vvp-stdout.gold index 4d9f14feb..158ac2d9a 100644 --- a/ivtest/gold/pr2509349b-vlog95-vvp-stdout.gold +++ b/ivtest/gold/pr2509349b-vlog95-vvp-stdout.gold @@ -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" diff --git a/ivtest/gold/vvp_quiet_mode-vlog95-vvp-stderr.gold b/ivtest/gold/vvp_quiet_mode-vlog95-vvp-stderr.gold new file mode 100644 index 000000000..358762d1e --- /dev/null +++ b/ivtest/gold/vvp_quiet_mode-vlog95-vvp-stderr.gold @@ -0,0 +1,3 @@ +This should be suppressed +This should be suppressed +work/vlog95.v:15: $finish(1) called at 0 (1s) diff --git a/ivtest/gold/vvp_quiet_mode-vlog95-vvp-stdout.gold b/ivtest/gold/vvp_quiet_mode-vlog95-vvp-stdout.gold new file mode 100644 index 000000000..0db1e4223 --- /dev/null +++ b/ivtest/gold/vvp_quiet_mode-vlog95-vvp-stdout.gold @@ -0,0 +1 @@ +This should be displayed diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index c61513a08..aef0a53f0 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -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 diff --git a/ivtest/run_ivl.py b/ivtest/run_ivl.py index 08f7c6c95..57e4419df 100644 --- a/ivtest/run_ivl.py +++ b/ivtest/run_ivl.py @@ -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) diff --git a/ivtest/vvp_reg.py b/ivtest/vvp_reg.py index 10cd54c1d..5f13d1acf 100755 --- a/ivtest/vvp_reg.py +++ b/ivtest/vvp_reg.py @@ -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) diff --git a/ivtest/vvp_tests/array_packed_write_read.json b/ivtest/vvp_tests/array_packed_write_read.json index f83a222ff..0a2daf043 100644 --- a/ivtest/vvp_tests/array_packed_write_read.json +++ b/ivtest/vvp_tests/array_packed_write_read.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "array_packed_write_read.v", - "iverilog-args" : [ "-g2009" ] + "iverilog-args" : [ "-g2009" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/array_slice_concat.json b/ivtest/vvp_tests/array_slice_concat.json index f152dc00d..35220cac8 100644 --- a/ivtest/vvp_tests/array_slice_concat.json +++ b/ivtest/vvp_tests/array_slice_concat.json @@ -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" + } } diff --git a/ivtest/vvp_tests/automatic_error11.json b/ivtest/vvp_tests/automatic_error11.json index 00b19920a..e79c5be7d 100644 --- a/ivtest/vvp_tests/automatic_error11.json +++ b/ivtest/vvp_tests/automatic_error11.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/automatic_error12.json b/ivtest/vvp_tests/automatic_error12.json index 9cea986ff..69f19726c 100644 --- a/ivtest/vvp_tests/automatic_error12.json +++ b/ivtest/vvp_tests/automatic_error12.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/automatic_error13.json b/ivtest/vvp_tests/automatic_error13.json index de77ec2dd..0e8450e6d 100644 --- a/ivtest/vvp_tests/automatic_error13.json +++ b/ivtest/vvp_tests/automatic_error13.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/bits4.json b/ivtest/vvp_tests/bits4.json index 24e2cfdb7..e64aaafb0 100644 --- a/ivtest/vvp_tests/bits4.json +++ b/ivtest/vvp_tests/bits4.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "bits4.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/bitsel11.json b/ivtest/vvp_tests/bitsel11.json index ecfa7c265..9b1099ff2 100644 --- a/ivtest/vvp_tests/bitsel11.json +++ b/ivtest/vvp_tests/bitsel11.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "bitsel11.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/br_gh1001.json b/ivtest/vvp_tests/br_gh1001.json index a43b88f04..66ed5b0cc 100644 --- a/ivtest/vvp_tests/br_gh1001.json +++ b/ivtest/vvp_tests/br_gh1001.json @@ -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" + } } diff --git a/ivtest/vvp_tests/br_gh1099a.json b/ivtest/vvp_tests/br_gh1099a.json index 7a01ac8ba..d931bf087 100644 --- a/ivtest/vvp_tests/br_gh1099a.json +++ b/ivtest/vvp_tests/br_gh1099a.json @@ -1,4 +1,7 @@ { "type" : "normal", - "source" : "br_gh1099a.v" + "source" : "br_gh1099a.v", + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/br_gh1099b.json b/ivtest/vvp_tests/br_gh1099b.json index 045eda3a7..224d7d6b6 100644 --- a/ivtest/vvp_tests/br_gh1099b.json +++ b/ivtest/vvp_tests/br_gh1099b.json @@ -1,4 +1,7 @@ { "type" : "normal", - "source" : "br_gh1099b.v" + "source" : "br_gh1099b.v", + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/br_gh1099c.json b/ivtest/vvp_tests/br_gh1099c.json index 945344a0e..f8997b09a 100644 --- a/ivtest/vvp_tests/br_gh1099c.json +++ b/ivtest/vvp_tests/br_gh1099c.json @@ -1,4 +1,7 @@ { "type" : "normal", - "source" : "br_gh1099c.v" + "source" : "br_gh1099c.v", + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/br_gh1155.json b/ivtest/vvp_tests/br_gh1155.json index 254478aed..e79b3dd4c 100644 --- a/ivtest/vvp_tests/br_gh1155.json +++ b/ivtest/vvp_tests/br_gh1155.json @@ -1,4 +1,8 @@ { "type" : "normal", - "source" : "br_gh1155.v" + "source" : "br_gh1155.v", + "vlog95" : { + "__comment" : "Net arrays are not supported", + "type" : "CE" + } } diff --git a/ivtest/vvp_tests/br_gh1181.json b/ivtest/vvp_tests/br_gh1181.json index b01ce4807..9c1b73ae1 100644 --- a/ivtest/vvp_tests/br_gh1181.json +++ b/ivtest/vvp_tests/br_gh1181.json @@ -1,4 +1,4 @@ { - "type" : "normal-vlog95", + "type" : "normal", "source" : "br_gh1181.v" } diff --git a/ivtest/vvp_tests/br_gh1242.json b/ivtest/vvp_tests/br_gh1242.json index 0cd87ffd4..32cfa1f72 100644 --- a/ivtest/vvp_tests/br_gh1242.json +++ b/ivtest/vvp_tests/br_gh1242.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "br_gh1242.v", - "gold" : "br_gh1242" + "gold" : "br_gh1242", + "vlog95" : { + "gold" : "br_gh1242-vlog95" + } } diff --git a/ivtest/vvp_tests/br_gh13a-vlog95.json b/ivtest/vvp_tests/br_gh13a-vlog95.json deleted file mode 100644 index bebadaeea..000000000 --- a/ivtest/vvp_tests/br_gh13a-vlog95.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type" : "normal-vlog95", - "source" : "br_gh13a.v", - "gold" : "br_gh13a-vlog95" -} diff --git a/ivtest/vvp_tests/br_gh383a.json b/ivtest/vvp_tests/br_gh383a.json index 31a118bc2..aaa846f60 100644 --- a/ivtest/vvp_tests/br_gh383a.json +++ b/ivtest/vvp_tests/br_gh383a.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/br_gh383b.json b/ivtest/vvp_tests/br_gh383b.json index cc9a10418..3a42bcab6 100644 --- a/ivtest/vvp_tests/br_gh383b.json +++ b/ivtest/vvp_tests/br_gh383b.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/br_gh383c.json b/ivtest/vvp_tests/br_gh383c.json index 49183f417..0e7aeb153 100644 --- a/ivtest/vvp_tests/br_gh383c.json +++ b/ivtest/vvp_tests/br_gh383c.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/br_gh383d.json b/ivtest/vvp_tests/br_gh383d.json index 95de900a4..f61861f49 100644 --- a/ivtest/vvp_tests/br_gh383d.json +++ b/ivtest/vvp_tests/br_gh383d.json @@ -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" : "" } } diff --git a/ivtest/vvp_tests/br_gh483a.json b/ivtest/vvp_tests/br_gh483a.json index 84edbe6a5..92a732e05 100644 --- a/ivtest/vvp_tests/br_gh483a.json +++ b/ivtest/vvp_tests/br_gh483a.json @@ -1,4 +1,8 @@ { "type" : "normal", - "source" : "br_gh483a.v" + "source" : "br_gh483a.v", + "vlog95" : { + "__comment" : "Generate scopes are not supported", + "type" : "CE" + } } diff --git a/ivtest/vvp_tests/br_gh687.json b/ivtest/vvp_tests/br_gh687.json index d1a8fada6..616050f13 100644 --- a/ivtest/vvp_tests/br_gh687.json +++ b/ivtest/vvp_tests/br_gh687.json @@ -2,5 +2,8 @@ "type" : "normal", "source" : "br_gh687.v", "gold" : "br_gh687", - "iverilog-args" : [ "-g2009" ] + "iverilog-args" : [ "-g2009" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/br_gh703.json b/ivtest/vvp_tests/br_gh703.json index f609d49c3..f6336d513 100644 --- a/ivtest/vvp_tests/br_gh703.json +++ b/ivtest/vvp_tests/br_gh703.json @@ -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" + } } diff --git a/ivtest/vvp_tests/br_gh99c-vlog95.json b/ivtest/vvp_tests/br_gh99c-vlog95.json deleted file mode 100644 index dc96a4a4e..000000000 --- a/ivtest/vvp_tests/br_gh99c-vlog95.json +++ /dev/null @@ -1,6 +0,0 @@ - -{ - "type" : "normal-vlog95", - "source" : "br_gh99c.v", - "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] -} diff --git a/ivtest/vvp_tests/br_gh99c.json b/ivtest/vvp_tests/br_gh99c.json index 060960c72..23b908056 100644 --- a/ivtest/vvp_tests/br_gh99c.json +++ b/ivtest/vvp_tests/br_gh99c.json @@ -1,6 +1,8 @@ - { "type" : "normal", "source" : "br_gh99c.v", - "iverilog-args" : [ "-gverilog-ams" ] + "iverilog-args" : [ "-gverilog-ams" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/ca_time_real.json b/ivtest/vvp_tests/ca_time_real.json index 82e12b21d..c3ca134f1 100644 --- a/ivtest/vvp_tests/ca_time_real.json +++ b/ivtest/vvp_tests/ca_time_real.json @@ -4,5 +4,10 @@ "gold" : "ca_time_real", "strict" : { "gold" : "ca_time_real_std" + }, + "vlog95" : { + "__comment" : "Real nets are not supported", + "type" : "CE", + "gold" : "" } } diff --git a/ivtest/vvp_tests/case2-S.json b/ivtest/vvp_tests/case2-S.json index 4bab5fe3a..57525e78d 100644 --- a/ivtest/vvp_tests/case2-S.json +++ b/ivtest/vvp_tests/case2-S.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "case2.v", - "iverilog-args" : [ "-S" ] + "iverilog-args" : [ "-S" ], + "vlog95" : { + "__comment" : "No support for arrayed UDPs", + "type" : "TE" + } } diff --git a/ivtest/vvp_tests/casex_synth.json b/ivtest/vvp_tests/casex_synth.json index 77925bcab..a65991175 100644 --- a/ivtest/vvp_tests/casex_synth.json +++ b/ivtest/vvp_tests/casex_synth.json @@ -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" + } } diff --git a/ivtest/vvp_tests/cast_int_ams-vlog95.json b/ivtest/vvp_tests/cast_int_ams-vlog95.json deleted file mode 100644 index 3502cc2d1..000000000 --- a/ivtest/vvp_tests/cast_int_ams-vlog95.json +++ /dev/null @@ -1,6 +0,0 @@ - -{ - "type" : "normal-vlog95", - "source" : "cast_int_ams.v", - "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] -} diff --git a/ivtest/vvp_tests/constfunc16.json b/ivtest/vvp_tests/constfunc16.json index d53a23cf8..48b0e2a8b 100644 --- a/ivtest/vvp_tests/constfunc16.json +++ b/ivtest/vvp_tests/constfunc16.json @@ -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" + } } diff --git a/ivtest/vvp_tests/constfunc17.json b/ivtest/vvp_tests/constfunc17.json index 9f2b60abf..130578841 100644 --- a/ivtest/vvp_tests/constfunc17.json +++ b/ivtest/vvp_tests/constfunc17.json @@ -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" + } } diff --git a/ivtest/vvp_tests/constfunc18.json b/ivtest/vvp_tests/constfunc18.json index 1c666c46d..c6df23671 100644 --- a/ivtest/vvp_tests/constfunc18.json +++ b/ivtest/vvp_tests/constfunc18.json @@ -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" + } } diff --git a/ivtest/vvp_tests/constfunc19.json b/ivtest/vvp_tests/constfunc19.json index e6a023554..a74bda9b0 100644 --- a/ivtest/vvp_tests/constfunc19.json +++ b/ivtest/vvp_tests/constfunc19.json @@ -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" + } } diff --git a/ivtest/vvp_tests/constfunc20.json b/ivtest/vvp_tests/constfunc20.json index 6c33a2b10..ca6fa60fb 100644 --- a/ivtest/vvp_tests/constfunc20.json +++ b/ivtest/vvp_tests/constfunc20.json @@ -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" + } } diff --git a/ivtest/vvp_tests/constfunc4_ams-vlog95.json b/ivtest/vvp_tests/constfunc4_ams-vlog95.json deleted file mode 100644 index 05ba98c09..000000000 --- a/ivtest/vvp_tests/constfunc4_ams-vlog95.json +++ /dev/null @@ -1,6 +0,0 @@ - -{ - "type" : "normal-vlog95", - "source" : "constfunc4_ams.v", - "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] -} diff --git a/ivtest/vvp_tests/constfunc4_ams.json b/ivtest/vvp_tests/constfunc4_ams.json index d4ccaf755..8575e1553 100644 --- a/ivtest/vvp_tests/constfunc4_ams.json +++ b/ivtest/vvp_tests/constfunc4_ams.json @@ -1,6 +1,8 @@ - { "type" : "normal", "source" : "constfunc4_ams.v", - "iverilog-args" : [ "-gverilog-ams" ] + "iverilog-args" : [ "-gverilog-ams" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/constfunc6_ams-vlog95.json b/ivtest/vvp_tests/constfunc6_ams-vlog95.json deleted file mode 100644 index 3e4219379..000000000 --- a/ivtest/vvp_tests/constfunc6_ams-vlog95.json +++ /dev/null @@ -1,6 +0,0 @@ - -{ - "type" : "normal-vlog95", - "source" : "constfunc6_ams.v", - "iverilog-args" : [ "-pallowsigned=1" ] -} diff --git a/ivtest/vvp_tests/constfunc6_ams.json b/ivtest/vvp_tests/constfunc6_ams.json index 7254d7ed8..cf45cc734 100644 --- a/ivtest/vvp_tests/constfunc6_ams.json +++ b/ivtest/vvp_tests/constfunc6_ams.json @@ -1,5 +1,7 @@ - { "type" : "normal", - "source" : "constfunc6_ams.v" + "source" : "constfunc6_ams.v", + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/delayed_sfunc.json b/ivtest/vvp_tests/delayed_sfunc.json index 29dbb8da8..9b0474e20 100644 --- a/ivtest/vvp_tests/delayed_sfunc.json +++ b/ivtest/vvp_tests/delayed_sfunc.json @@ -5,5 +5,10 @@ "gold" : "delayed_sfunc", "strict" : { "gold" : "delayed_sfunc_std" + }, + "vlog95" : { + "_comment" : "Real nets are not supported", + "type" : "CE", + "gold" : "" } } diff --git a/ivtest/vvp_tests/dffsynth10.json b/ivtest/vvp_tests/dffsynth10.json index 817d7a37b..26d3a6504 100644 --- a/ivtest/vvp_tests/dffsynth10.json +++ b/ivtest/vvp_tests/dffsynth10.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "dffsynth10.v", - "iverilog-args" : [ "-S" ] + "iverilog-args" : [ "-S" ], + "vlog95" : { + "__comment" : "No support for arrayed UDPs", + "type" : "TE" + } } diff --git a/ivtest/vvp_tests/dffsynth11.json b/ivtest/vvp_tests/dffsynth11.json index 519dfdcae..fa42dffa1 100644 --- a/ivtest/vvp_tests/dffsynth11.json +++ b/ivtest/vvp_tests/dffsynth11.json @@ -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" + } } diff --git a/ivtest/vvp_tests/dffsynth6.json b/ivtest/vvp_tests/dffsynth6.json index a240aa2bf..801cafc3d 100644 --- a/ivtest/vvp_tests/dffsynth6.json +++ b/ivtest/vvp_tests/dffsynth6.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "dffsynth6.v", - "iverilog-args" : [ "-S" ] + "iverilog-args" : [ "-S" ], + "vlog95" : { + "__comment" : "No support for arrayed UDPs", + "type" : "TE" + } } diff --git a/ivtest/vvp_tests/dffsynth7.json b/ivtest/vvp_tests/dffsynth7.json index a0b0c0e4d..37c5dcbac 100644 --- a/ivtest/vvp_tests/dffsynth7.json +++ b/ivtest/vvp_tests/dffsynth7.json @@ -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" + } } diff --git a/ivtest/vvp_tests/dffsynth9.json b/ivtest/vvp_tests/dffsynth9.json index cfc0c8a97..1d92a497a 100644 --- a/ivtest/vvp_tests/dffsynth9.json +++ b/ivtest/vvp_tests/dffsynth9.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "dffsynth9.v", - "iverilog-args" : [ "-S" ] + "iverilog-args" : [ "-S" ], + "vlog95" : { + "__comment" : "No support for arrayed UDPs", + "type" : "TE" + } } diff --git a/ivtest/vvp_tests/dumpfile.json b/ivtest/vvp_tests/dumpfile.json index 26952c828..c47cabcb3 100644 --- a/ivtest/vvp_tests/dumpfile.json +++ b/ivtest/vvp_tests/dumpfile.json @@ -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" + } } diff --git a/ivtest/vvp_tests/eofmt_percent-vlog95.json b/ivtest/vvp_tests/eofmt_percent-vlog95.json deleted file mode 100644 index c2a131b6c..000000000 --- a/ivtest/vvp_tests/eofmt_percent-vlog95.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type" : "normal-vlog95", - "source" : "eofmt_percent.v", - "gold" : "eofmt_percent-vlog95" -} diff --git a/ivtest/vvp_tests/eofmt_percent.json b/ivtest/vvp_tests/eofmt_percent.json index 2b5150b7a..6956d01fe 100644 --- a/ivtest/vvp_tests/eofmt_percent.json +++ b/ivtest/vvp_tests/eofmt_percent.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "eofmt_percent.v", - "gold" : "eofmt_percent" + "gold" : "eofmt_percent", + "vlog95" : { + "gold" : "eofmt_percent-vlog95" + } } diff --git a/ivtest/vvp_tests/final3.json b/ivtest/vvp_tests/final3.json index 99b4572c5..845b111e9 100644 --- a/ivtest/vvp_tests/final3.json +++ b/ivtest/vvp_tests/final3.json @@ -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" ] + } } diff --git a/ivtest/vvp_tests/localparam_type-vlog95.json b/ivtest/vvp_tests/localparam_type-vlog95.json index 1bdb2b993..b66958b3f 100644 --- a/ivtest/vvp_tests/localparam_type-vlog95.json +++ b/ivtest/vvp_tests/localparam_type-vlog95.json @@ -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" + } } diff --git a/ivtest/vvp_tests/memsynth4-synth.json b/ivtest/vvp_tests/memsynth4-synth.json index 2ac648d5d..676043555 100644 --- a/ivtest/vvp_tests/memsynth4-synth.json +++ b/ivtest/vvp_tests/memsynth4-synth.json @@ -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" + } } diff --git a/ivtest/vvp_tests/module_port_array1.json b/ivtest/vvp_tests/module_port_array1.json index 8aed8457c..9c2ff356e 100644 --- a/ivtest/vvp_tests/module_port_array1.json +++ b/ivtest/vvp_tests/module_port_array1.json @@ -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" + } } diff --git a/ivtest/vvp_tests/param-width-vlog95.json b/ivtest/vvp_tests/param-width-vlog95.json deleted file mode 100644 index 3fce9a13d..000000000 --- a/ivtest/vvp_tests/param-width-vlog95.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type" : "normal-vlog95", - "source" : "param-width.v", - "gold" : "param-width-vlog95" -} diff --git a/ivtest/vvp_tests/parameter_type-vlog95.json b/ivtest/vvp_tests/parameter_type-vlog95.json index b511ee9c4..cc465e59a 100644 --- a/ivtest/vvp_tests/parameter_type-vlog95.json +++ b/ivtest/vvp_tests/parameter_type-vlog95.json @@ -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" + } } diff --git a/ivtest/vvp_tests/pr1388974-vlog95.json b/ivtest/vvp_tests/pr1388974-vlog95.json deleted file mode 100644 index 827a845ae..000000000 --- a/ivtest/vvp_tests/pr1388974-vlog95.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type" : "normal-vlog95", - "source" : "pr1388974.v" -} diff --git a/ivtest/vvp_tests/pr1864110a.json b/ivtest/vvp_tests/pr1864110a.json index 287ed576d..3c7e8a09b 100644 --- a/ivtest/vvp_tests/pr1864110a.json +++ b/ivtest/vvp_tests/pr1864110a.json @@ -4,5 +4,10 @@ "gold" : "pr1864110a", "strict" : { "gold" : "pr1864110a_std" + }, + "vlog95" : { + "__comment" : "Real nets are not supported", + "type" : "CE", + "gold" : "" } } diff --git a/ivtest/vvp_tests/pr1864110b.json b/ivtest/vvp_tests/pr1864110b.json index bff88dbad..6faf12e37 100644 --- a/ivtest/vvp_tests/pr1864110b.json +++ b/ivtest/vvp_tests/pr1864110b.json @@ -4,5 +4,10 @@ "gold" : "pr1864110b", "strict" : { "gold" : "pr1864110b_std" + }, + "vlog95" : { + "__comment" : "Real nets are not supported", + "type" : "CE", + "gold" : "" } } diff --git a/ivtest/vvp_tests/pr1864115.json b/ivtest/vvp_tests/pr1864115.json index 0d8f115f4..37f261bb8 100644 --- a/ivtest/vvp_tests/pr1864115.json +++ b/ivtest/vvp_tests/pr1864115.json @@ -4,5 +4,10 @@ "gold" : "pr1864115", "strict" : { "gold" : "pr1864115_std" + }, + "vlog95" : { + "__comment" : "Real nets are not supported", + "type" : "CE", + "gold" : "" } } diff --git a/ivtest/vvp_tests/pr2509349a-vlog95.json b/ivtest/vvp_tests/pr2509349a-vlog95.json deleted file mode 100644 index a69167f12..000000000 --- a/ivtest/vvp_tests/pr2509349a-vlog95.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type" : "normal-vlog95", - "source" : "pr2509349a.v", - "gold" : "pr2509349a-vlog95" -} diff --git a/ivtest/vvp_tests/pr2509349a.json b/ivtest/vvp_tests/pr2509349a.json index 892462b1b..8a7255781 100644 --- a/ivtest/vvp_tests/pr2509349a.json +++ b/ivtest/vvp_tests/pr2509349a.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "pr2509349a.v", - "gold" : "pr2509349a" + "gold" : "pr2509349a", + "vlog95" : { + "gold" : "pr2509349a-vlog95" + } } diff --git a/ivtest/vvp_tests/pr2509349b-vlog95.json b/ivtest/vvp_tests/pr2509349b-vlog95.json deleted file mode 100644 index cc18643da..000000000 --- a/ivtest/vvp_tests/pr2509349b-vlog95.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type" : "normal-vlog95", - "source" : "pr2509349b.v", - "gold" : "pr2509349b-vlog95" -} diff --git a/ivtest/vvp_tests/pr2509349b.json b/ivtest/vvp_tests/pr2509349b.json index 97e175613..c238613fc 100644 --- a/ivtest/vvp_tests/pr2509349b.json +++ b/ivtest/vvp_tests/pr2509349b.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "pr2509349b.v", - "gold" : "pr2509349b" + "gold" : "pr2509349b", + "vlog95" : { + "gold" : "pr2509349b-vlog95" + } } diff --git a/ivtest/vvp_tests/pr903-vlog95.json b/ivtest/vvp_tests/pr903-vlog95.json deleted file mode 100644 index 34669f613..000000000 --- a/ivtest/vvp_tests/pr903-vlog95.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type" : "normal-vlog95", - "source" : "pr903.v" -} diff --git a/ivtest/vvp_tests/program2b-vlog95.json b/ivtest/vvp_tests/program2b-vlog95.json deleted file mode 100644 index c592dd0b0..000000000 --- a/ivtest/vvp_tests/program2b-vlog95.json +++ /dev/null @@ -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" ] -} diff --git a/ivtest/vvp_tests/program2b.json b/ivtest/vvp_tests/program2b.json index f1bb3d5b1..1fc959734 100644 --- a/ivtest/vvp_tests/program2b.json +++ b/ivtest/vvp_tests/program2b.json @@ -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" ] + } } diff --git a/ivtest/vvp_tests/program3a-vlog95.json b/ivtest/vvp_tests/program3a-vlog95.json deleted file mode 100644 index 9c46f974f..000000000 --- a/ivtest/vvp_tests/program3a-vlog95.json +++ /dev/null @@ -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" ] -} diff --git a/ivtest/vvp_tests/program3a.json b/ivtest/vvp_tests/program3a.json index 15b2a5c99..9682ce504 100644 --- a/ivtest/vvp_tests/program3a.json +++ b/ivtest/vvp_tests/program3a.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "program3a.v", - "iverilog-args" : [ "-g2009" ] + "iverilog-args" : [ "-g2009" ], + "vlog95" : { + "type" : "Final blocks are not supported", + "type" : "CE" + } } diff --git a/ivtest/vvp_tests/scan-invalid.json b/ivtest/vvp_tests/scan-invalid.json index c9350e935..9d6963c51 100644 --- a/ivtest/vvp_tests/scan-invalid.json +++ b/ivtest/vvp_tests/scan-invalid.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/shift6.json b/ivtest/vvp_tests/shift6.json index b88acf95c..c11167300 100644 --- a/ivtest/vvp_tests/shift6.json +++ b/ivtest/vvp_tests/shift6.json @@ -1,5 +1,7 @@ - { "type" : "normal", - "source" : "shift6.v" + "source" : "shift6.v", + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_ap_uarray1.json b/ivtest/vvp_tests/sv_ap_uarray1.json index d16e847dc..f835bc28d 100644 --- a/ivtest/vvp_tests/sv_ap_uarray1.json +++ b/ivtest/vvp_tests/sv_ap_uarray1.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "sv_ap_uarray1.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_ap_uarray2.json b/ivtest/vvp_tests/sv_ap_uarray2.json index 2ff7359ff..f013d3d75 100644 --- a/ivtest/vvp_tests/sv_ap_uarray2.json +++ b/ivtest/vvp_tests/sv_ap_uarray2.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "sv_ap_uarray2.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_ap_uarray3.json b/ivtest/vvp_tests/sv_ap_uarray3.json index 3305072e6..5f2700c7b 100644 --- a/ivtest/vvp_tests/sv_ap_uarray3.json +++ b/ivtest/vvp_tests/sv_ap_uarray3.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_ap_uarray4.json b/ivtest/vvp_tests/sv_ap_uarray4.json index 91c883de0..98cae3c96 100644 --- a/ivtest/vvp_tests/sv_ap_uarray4.json +++ b/ivtest/vvp_tests/sv_ap_uarray4.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_ap_uarray5.json b/ivtest/vvp_tests/sv_ap_uarray5.json index a48c75dea..66d29baaa 100644 --- a/ivtest/vvp_tests/sv_ap_uarray5.json +++ b/ivtest/vvp_tests/sv_ap_uarray5.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_ap_uarray6.json b/ivtest/vvp_tests/sv_ap_uarray6.json index 118e64dea..7ef33e464 100644 --- a/ivtest/vvp_tests/sv_ap_uarray6.json +++ b/ivtest/vvp_tests/sv_ap_uarray6.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_argumentless_func.json b/ivtest/vvp_tests/sv_argumentless_func.json index 6cf5de5aa..cfbe09a86 100644 --- a/ivtest/vvp_tests/sv_argumentless_func.json +++ b/ivtest/vvp_tests/sv_argumentless_func.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_array_cassign6.json b/ivtest/vvp_tests/sv_array_cassign6.json index 9df5c88e1..29197aa54 100644 --- a/ivtest/vvp_tests/sv_array_cassign6.json +++ b/ivtest/vvp_tests/sv_array_cassign6.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_array_cassign7.json b/ivtest/vvp_tests/sv_array_cassign7.json index 672129f22..1a2d8b061 100644 --- a/ivtest/vvp_tests/sv_array_cassign7.json +++ b/ivtest/vvp_tests/sv_array_cassign7.json @@ -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" : "" + } } diff --git a/ivtest/vvp_tests/sv_array_cassign8.json b/ivtest/vvp_tests/sv_array_cassign8.json index 040595679..5bb5b266f 100644 --- a/ivtest/vvp_tests/sv_array_cassign8.json +++ b/ivtest/vvp_tests/sv_array_cassign8.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_automatic_2state.json b/ivtest/vvp_tests/sv_automatic_2state.json index e32768155..62869a888 100644 --- a/ivtest/vvp_tests/sv_automatic_2state.json +++ b/ivtest/vvp_tests/sv_automatic_2state.json @@ -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" ] + } } diff --git a/ivtest/vvp_tests/sv_chained_constructor1.json b/ivtest/vvp_tests/sv_chained_constructor1.json index 214751b72..a498b99c1 100644 --- a/ivtest/vvp_tests/sv_chained_constructor1.json +++ b/ivtest/vvp_tests/sv_chained_constructor1.json @@ -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" ] + } } diff --git a/ivtest/vvp_tests/sv_chained_constructor2.json b/ivtest/vvp_tests/sv_chained_constructor2.json index a70bcc038..4a22c0d6c 100644 --- a/ivtest/vvp_tests/sv_chained_constructor2.json +++ b/ivtest/vvp_tests/sv_chained_constructor2.json @@ -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" ] + } } diff --git a/ivtest/vvp_tests/sv_chained_constructor3.json b/ivtest/vvp_tests/sv_chained_constructor3.json index e4bf14197..3610d557f 100644 --- a/ivtest/vvp_tests/sv_chained_constructor3.json +++ b/ivtest/vvp_tests/sv_chained_constructor3.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_chained_constructor4.json b/ivtest/vvp_tests/sv_chained_constructor4.json index 7c3ed45cc..8d0bff0b4 100644 --- a/ivtest/vvp_tests/sv_chained_constructor4.json +++ b/ivtest/vvp_tests/sv_chained_constructor4.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_chained_constructor5.json b/ivtest/vvp_tests/sv_chained_constructor5.json index 494ff049f..ab4ad1f26 100644 --- a/ivtest/vvp_tests/sv_chained_constructor5.json +++ b/ivtest/vvp_tests/sv_chained_constructor5.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_class_prop_assign_op1.json b/ivtest/vvp_tests/sv_class_prop_assign_op1.json index ce63aecf4..2af58aa5c 100644 --- a/ivtest/vvp_tests/sv_class_prop_assign_op1.json +++ b/ivtest/vvp_tests/sv_class_prop_assign_op1.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_class_prop_assign_op2.json b/ivtest/vvp_tests/sv_class_prop_assign_op2.json index 9079785f9..c49eae750 100644 --- a/ivtest/vvp_tests/sv_class_prop_assign_op2.json +++ b/ivtest/vvp_tests/sv_class_prop_assign_op2.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_class_prop_logic.json b/ivtest/vvp_tests/sv_class_prop_logic.json index f0df90efe..9b1bc8fcd 100644 --- a/ivtest/vvp_tests/sv_class_prop_logic.json +++ b/ivtest/vvp_tests/sv_class_prop_logic.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_class_prop_nest_darray1.json b/ivtest/vvp_tests/sv_class_prop_nest_darray1.json index b03d35594..1b2d02e09 100644 --- a/ivtest/vvp_tests/sv_class_prop_nest_darray1.json +++ b/ivtest/vvp_tests/sv_class_prop_nest_darray1.json @@ -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" ] + } } diff --git a/ivtest/vvp_tests/sv_class_prop_nest_obj1.json b/ivtest/vvp_tests/sv_class_prop_nest_obj1.json index f7b9c861f..140cd5803 100644 --- a/ivtest/vvp_tests/sv_class_prop_nest_obj1.json +++ b/ivtest/vvp_tests/sv_class_prop_nest_obj1.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_class_prop_nest_real1.json b/ivtest/vvp_tests/sv_class_prop_nest_real1.json index 86605f4ad..a7e67a313 100644 --- a/ivtest/vvp_tests/sv_class_prop_nest_real1.json +++ b/ivtest/vvp_tests/sv_class_prop_nest_real1.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_class_prop_nest_str1.json b/ivtest/vvp_tests/sv_class_prop_nest_str1.json index 31fad1ee1..97c165e28 100644 --- a/ivtest/vvp_tests/sv_class_prop_nest_str1.json +++ b/ivtest/vvp_tests/sv_class_prop_nest_str1.json @@ -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" + } } diff --git a/ivtest/vvp_tests/sv_class_prop_nest_vec1.json b/ivtest/vvp_tests/sv_class_prop_nest_vec1.json index a6617fd8e..749c1278b 100644 --- a/ivtest/vvp_tests/sv_class_prop_nest_vec1.json +++ b/ivtest/vvp_tests/sv_class_prop_nest_vec1.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "sv_class_prop_nest_vec1.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Classes are not supported", + "type" : "CE" + } } diff --git a/ivtest/vvp_tests/sv_const2.json b/ivtest/vvp_tests/sv_const2.json index 39efe3073..f8875e71e 100644 --- a/ivtest/vvp_tests/sv_const2.json +++ b/ivtest/vvp_tests/sv_const2.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "sv_const2.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Automatic tasks/functions are not supported", + "type" : "CE" + } } diff --git a/ivtest/vvp_tests/sv_darray_assign_op.json b/ivtest/vvp_tests/sv_darray_assign_op.json index 065ed73fa..1e20639f9 100644 --- a/ivtest/vvp_tests/sv_darray_assign_op.json +++ b/ivtest/vvp_tests/sv_darray_assign_op.json @@ -1,5 +1,10 @@ { "type" : "normal", "source" : "sv_darray_assign_op.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Dynamic arrays are not supported", + "type" : "CE", + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_foreach10.json b/ivtest/vvp_tests/sv_foreach10.json index ac0bf2aa8..63e0fa308 100644 --- a/ivtest/vvp_tests/sv_foreach10.json +++ b/ivtest/vvp_tests/sv_foreach10.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "sv_foreach10.v", - "iverilog-args" : [ "-g2009" ] + "iverilog-args" : [ "-g2009" ], + "vlog95" : { + "type" : "CE", + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_foreach9.json b/ivtest/vvp_tests/sv_foreach9.json index d1437abee..cf5ee188b 100644 --- a/ivtest/vvp_tests/sv_foreach9.json +++ b/ivtest/vvp_tests/sv_foreach9.json @@ -2,5 +2,8 @@ "type" : "normal", "source" : "sv_foreach9.v", "iverilog-args" : [ "-g2009" ], - "gold" : "sv_foreach9" + "gold" : "sv_foreach9", + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_literals.json b/ivtest/vvp_tests/sv_literals.json index f7d0c7c85..782c68c49 100644 --- a/ivtest/vvp_tests/sv_literals.json +++ b/ivtest/vvp_tests/sv_literals.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "sv_literals.v", - "iverilog-args" : [ "-g2012" ] + "iverilog-args" : [ "-g2012" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_module_port1.json b/ivtest/vvp_tests/sv_module_port1.json index c4b6a2312..df8dab171 100644 --- a/ivtest/vvp_tests/sv_module_port1.json +++ b/ivtest/vvp_tests/sv_module_port1.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "sv_module_port1.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_module_port2.json b/ivtest/vvp_tests/sv_module_port2.json index da7bef140..85440f204 100644 --- a/ivtest/vvp_tests/sv_module_port2.json +++ b/ivtest/vvp_tests/sv_module_port2.json @@ -1,5 +1,10 @@ { "type" : "normal", "source" : "sv_module_port2.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Array nets/ports are not supported", + "type" : "CE", + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_parameter_type.json b/ivtest/vvp_tests/sv_parameter_type.json index d5ef5b1b9..ce67fc999 100644 --- a/ivtest/vvp_tests/sv_parameter_type.json +++ b/ivtest/vvp_tests/sv_parameter_type.json @@ -1,5 +1,8 @@ { "type" : "normal", "source" : "sv_parameter_type.v", - "iverilog-args" : [ "-g2012" ] + "iverilog-args" : [ "-g2012" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/sv_queue_assign_op.json b/ivtest/vvp_tests/sv_queue_assign_op.json index b4c2136ec..4de18117c 100644 --- a/ivtest/vvp_tests/sv_queue_assign_op.json +++ b/ivtest/vvp_tests/sv_queue_assign_op.json @@ -1,5 +1,10 @@ { "type" : "normal", "source" : "sv_queue_assign_op.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Queues and array patterns are not supported", + "type" : "CE", + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/task_return1.json b/ivtest/vvp_tests/task_return1.json index d6fcc1d2c..27dceb4dc 100644 --- a/ivtest/vvp_tests/task_return1.json +++ b/ivtest/vvp_tests/task_return1.json @@ -1,5 +1,9 @@ { "type" : "normal", "source" : "task_return1.v", - "iverilog-args" : [ "-g2005-sv" ] + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Automatic tasks are not supported", + "type" : "CE" + } } diff --git a/ivtest/vvp_tests/vams_abs1-vlog95.json b/ivtest/vvp_tests/vams_abs1-vlog95.json deleted file mode 100644 index 671b1ebb0..000000000 --- a/ivtest/vvp_tests/vams_abs1-vlog95.json +++ /dev/null @@ -1,6 +0,0 @@ - -{ - "type" : "normal-vlog95", - "source" : "vams_abs1.v", - "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] -} diff --git a/ivtest/vvp_tests/vams_abs1.json b/ivtest/vvp_tests/vams_abs1.json index de10797fa..924fbac68 100644 --- a/ivtest/vvp_tests/vams_abs1.json +++ b/ivtest/vvp_tests/vams_abs1.json @@ -1,6 +1,8 @@ - { "type" : "normal", "source" : "vams_abs1.v", - "iverilog-args" : [ "-gverilog-ams" ] + "iverilog-args" : [ "-gverilog-ams" ], + "vlog95" : { + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/vams_abs2-vlog95.json b/ivtest/vvp_tests/vams_abs2-vlog95.json deleted file mode 100644 index a8f9f87b6..000000000 --- a/ivtest/vvp_tests/vams_abs2-vlog95.json +++ /dev/null @@ -1,7 +0,0 @@ - -{ - "__comment" : "The initial compiler works, but generates bad vlog95 code.", - "type" : "NI", - "source" : "vams_abs2.v", - "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] -} diff --git a/ivtest/vvp_tests/vams_abs2.json b/ivtest/vvp_tests/vams_abs2.json index 78274a51a..2881b6f20 100644 --- a/ivtest/vvp_tests/vams_abs2.json +++ b/ivtest/vvp_tests/vams_abs2.json @@ -1,6 +1,10 @@ - { "type" : "normal", "source" : "vams_abs2.v", - "iverilog-args" : [ "-gverilog-ams" ] + "iverilog-args" : [ "-gverilog-ams" ], + "vlog95" : { + "__comment" : "Real nets are not supported", + "type" : "CE", + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/vams_abs3-vlog95.json b/ivtest/vvp_tests/vams_abs3-vlog95.json deleted file mode 100644 index 78b571115..000000000 --- a/ivtest/vvp_tests/vams_abs3-vlog95.json +++ /dev/null @@ -1,7 +0,0 @@ - -{ - "__comment" : "The initial compiler works, but generates bad vlog95 code.", - "type" : "NI", - "source" : "vams_abs3.v", - "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] -} diff --git a/ivtest/vvp_tests/vams_abs3.json b/ivtest/vvp_tests/vams_abs3.json index c5110a338..d3664e909 100644 --- a/ivtest/vvp_tests/vams_abs3.json +++ b/ivtest/vvp_tests/vams_abs3.json @@ -1,6 +1,10 @@ - { "type" : "normal", "source" : "vams_abs3.v", - "iverilog-args" : [ "-gverilog-ams" ] + "iverilog-args" : [ "-gverilog-ams" ], + "vlog95" : { + "__comment" : "Real nets are not supported", + "type" : "CE", + "iverilog-args" : [ "-pallowsigned=1" ] + } } diff --git a/ivtest/vvp_tests/vvp_quiet_mode.json b/ivtest/vvp_tests/vvp_quiet_mode.json index 1b07e3ffe..5673ec00b 100644 --- a/ivtest/vvp_tests/vvp_quiet_mode.json +++ b/ivtest/vvp_tests/vvp_quiet_mode.json @@ -1,6 +1,9 @@ { - "type" : "normal", - "source" : "vvp_quiet_mode.v", - "gold" : "vvp_quiet_mode", - "vvp-args" : [ "-ql-" ] + "type" : "normal", + "source" : "vvp_quiet_mode.v", + "gold" : "vvp_quiet_mode", + "vvp-args" : [ "-ql-" ], + "vlog95" : { + "gold" : "vvp_quiet_mode-vlog95" + } } diff --git a/ivtest/vvp_tests/wreal.json b/ivtest/vvp_tests/wreal.json index b1654c111..c6315d974 100644 --- a/ivtest/vvp_tests/wreal.json +++ b/ivtest/vvp_tests/wreal.json @@ -2,5 +2,8 @@ { "type" : "normal", "source" : "wreal.v", - "iverilog-args" : [ "-gverilog-ams" ] + "iverilog-args" : [ "-gverilog-ams" ], + "vlog95" : { + "type" : "CE" + } }