Skip to content

Commit e3fe283

Browse files
authored
Merge pull request #846 from diffblue/verilog_lowering_type
Verilog: lowering for types
2 parents 03e6d0f + 6c6f411 commit e3fe283

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

src/verilog/verilog_lowering.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,3 +416,11 @@ exprt verilog_lowering(exprt expr)
416416

417417
UNREACHABLE;
418418
}
419+
420+
typet verilog_lowering(typet type)
421+
{
422+
if(type.id() == ID_verilog_signedbv || type.id() == ID_verilog_unsignedbv)
423+
return lower_to_aval_bval(type);
424+
else
425+
return type;
426+
}

src/verilog/verilog_lowering.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ Author: Daniel Kroening, [email protected]
1010
#define CPROVER_VERILOG_LOWERING_H
1111

1212
class exprt;
13+
class typet;
1314

1415
exprt verilog_lowering(exprt);
16+
typet verilog_lowering(typet);
1517

1618
#endif

src/verilog/verilog_synthesis.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3314,6 +3314,10 @@ exprt verilog_synthesist::symbol_expr(
33143314
{
33153315
exprt result=exprt(curr_or_next==NEXT?ID_next_symbol:ID_symbol, symbol.type);
33163316
result.set(ID_identifier, symbol.name);
3317+
3318+
// The type may need to be lowered
3319+
result.type() = verilog_lowering(result.type());
3320+
33173321
return result;
33183322
}
33193323

0 commit comments

Comments
 (0)