Add regression tests for UDP declaration diagnostics
Check that UDP initial values on non-registered outputs generate compile errors for both old-style and ANSI-style UDP declarations. Also check that conflicting UDP port declarations generate an error and that a valid ANSI-style `output reg` initializer is accepted. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
parent
8d4faf2744
commit
c8568998af
|
|
@ -0,0 +1,8 @@
|
||||||
|
// Check that an ANSI-style UDP output initializer requires a reg output.
|
||||||
|
|
||||||
|
primitive udp_ansi_initial_nonreg_fail (output o = 1'b0, input i);
|
||||||
|
table
|
||||||
|
0 : 0;
|
||||||
|
1 : 1;
|
||||||
|
endtable
|
||||||
|
endprimitive
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
// Check that an ANSI-style UDP reg output can have an initializer.
|
||||||
|
|
||||||
|
primitive udp_ansi_initial_reg (output reg o = 1'b0, input i);
|
||||||
|
table
|
||||||
|
0 : ? : 0;
|
||||||
|
1 : ? : 1;
|
||||||
|
endtable
|
||||||
|
endprimitive
|
||||||
|
|
||||||
|
module test;
|
||||||
|
reg i;
|
||||||
|
wire o;
|
||||||
|
|
||||||
|
udp_ansi_initial_reg i_udp(o, i);
|
||||||
|
|
||||||
|
initial begin
|
||||||
|
i = 1'b0;
|
||||||
|
#1;
|
||||||
|
$display("PASSED");
|
||||||
|
end
|
||||||
|
endmodule
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
// Check that an old-style UDP initial statement requires a reg output.
|
||||||
|
|
||||||
|
primitive udp_initial_nonreg_fail (o, i);
|
||||||
|
output o;
|
||||||
|
input i;
|
||||||
|
initial o = 1'b0;
|
||||||
|
|
||||||
|
table
|
||||||
|
0 : 0;
|
||||||
|
1 : 1;
|
||||||
|
endtable
|
||||||
|
endprimitive
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
// Check that conflicting UDP port declarations generate an error.
|
||||||
|
|
||||||
|
primitive udp_port_decl_conflict_fail (o, i);
|
||||||
|
output o;
|
||||||
|
input o;
|
||||||
|
input i;
|
||||||
|
|
||||||
|
table
|
||||||
|
0 : 0;
|
||||||
|
1 : 1;
|
||||||
|
endtable
|
||||||
|
endprimitive
|
||||||
|
|
@ -430,7 +430,11 @@ test_va_math vvp_tests/test_va_math.json
|
||||||
test_vams_math vvp_tests/test_vams_math.json
|
test_vams_math vvp_tests/test_vams_math.json
|
||||||
timing_check_syntax vvp_tests/timing_check_syntax.json
|
timing_check_syntax vvp_tests/timing_check_syntax.json
|
||||||
timing_check_delayed_signals vvp_tests/timing_check_delayed_signals.json
|
timing_check_delayed_signals vvp_tests/timing_check_delayed_signals.json
|
||||||
|
udp_ansi_initial_nonreg_fail vvp_tests/udp_ansi_initial_nonreg_fail.json
|
||||||
|
udp_ansi_initial_reg vvp_tests/udp_ansi_initial_reg.json
|
||||||
udp_empty_table_fail vvp_tests/udp_empty_table_fail.json
|
udp_empty_table_fail vvp_tests/udp_empty_table_fail.json
|
||||||
|
udp_initial_nonreg_fail vvp_tests/udp_initial_nonreg_fail.json
|
||||||
|
udp_port_decl_conflict_fail vvp_tests/udp_port_decl_conflict_fail.json
|
||||||
uwire_fail2 vvp_tests/uwire_fail2.json
|
uwire_fail2 vvp_tests/uwire_fail2.json
|
||||||
uwire_fail3 vvp_tests/uwire_fail3.json
|
uwire_fail3 vvp_tests/uwire_fail3.json
|
||||||
value_range1 vvp_tests/value_range1.json
|
value_range1 vvp_tests/value_range1.json
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"type" : "CE",
|
||||||
|
"source" : "udp_ansi_initial_nonreg_fail.v"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"type" : "normal",
|
||||||
|
"source" : "udp_ansi_initial_reg.v"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"type" : "CE",
|
||||||
|
"source" : "udp_initial_nonreg_fail.v"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"type" : "CE",
|
||||||
|
"source" : "udp_port_decl_conflict_fail.v"
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue