Skip to content

Commit 15af12f

Browse files
committed
SMV netlists: SMV identifier syntax
SMV identifiers may start with $, _, a-z, A-Z, 0-9. In addition, #, -, and . are allowed as subsequent characters.
1 parent 875974d commit 15af12f

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CORE
2+
smv_netlist1.v
3+
--smv-netlist
4+
^VAR Verilog\.main\.my-bit: boolean;$
5+
^VAR Verilog\.main\.clk: boolean;$
6+
^ASSIGN next\(Verilog\.main\.my-bit\):=!Verilog\.main\.my-bit;$
7+
^INIT !Verilog\.main\.my-bit$
8+
^EXIT=0$
9+
^SIGNAL=0$
10+
--
11+
^warning: ignoring
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module main(input clk);
2+
3+
reg \my-bit ;
4+
5+
always @(posedge clk)
6+
\my-bit = !\my-bit ;
7+
8+
initial \my-bit = 0;
9+
10+
endmodule

src/trans-netlist/netlist.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,9 +389,14 @@ std::string netlistt::id2smv(const irep_idt &id)
389389

390390
for(unsigned i=0; i<id.size(); i++)
391391
{
392+
const bool first = i == 0;
392393
char ch=id[i];
393-
if(isalnum(ch) || ch=='_' || ch=='.' || ch=='#')
394+
if(
395+
isalnum(ch) || ch == '_' || (ch == '.' && !first) ||
396+
(ch == '#' && !first) || (ch == '-' && !first))
397+
{
394398
result+=ch;
399+
}
395400
else if(ch==':')
396401
{
397402
result+='.';

0 commit comments

Comments
 (0)