Skip to content

Commit a0ce1b0

Browse files
committed
Netlist engine: ignore various Verilog symbols
The netlist engine now ignores various Verilog symbols that do not translate into circuitry, e.g., properties, sequences.
1 parent eb37218 commit a0ce1b0

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

regression/verilog/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ test:
77

88
test-z3:
99
@$(TEST_PL) -e -p -c "../../../src/ebmc/ebmc --z3" -X broken-smt-backend
10+
11+
test-aig:
12+
@$(TEST_PL) -e -p -c "../../../src/ebmc/ebmc --aig"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CORE
2+
property_and1.sv
3+
--aig --bound 5
4+
^\[.*\] always \(main\.P1 and main\.P1\): PROVED up to bound 5$
5+
^EXIT=0$
6+
^SIGNAL=0$
7+
--
8+
^warning: ignoring
9+
--

src/trans-netlist/trans_to_netlist.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,10 @@ void convert_trans_to_netlistt::map_vars(
211211

212212
if (symbol.is_property)
213213
return; // ignore properties
214+
else if (symbol.type.id() == ID_verilog_sva_sequence || symbol.type.id() == ID_verilog_sva_property)
215+
return; // ignore properties
216+
else if (symbol.type.id() == ID_natural || symbol.type.id() == ID_integer || symbol.type.id() == ID_verilog_genvar)
217+
return; // ignore
214218
else if(
215219
symbol.type.id() == ID_module || symbol.type.id() == ID_module_instance ||
216220
symbol.type.id() == ID_primitive_module_instance)

0 commit comments

Comments
 (0)