Skip to content

Commit

Permalink
Merge pull request #846 from diffblue/verilog_lowering_type
Browse files Browse the repository at this point in the history
Verilog: lowering for types
  • Loading branch information
kroening authored Dec 27, 2024
2 parents 03e6d0f + 6c6f411 commit e3fe283
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/verilog/verilog_lowering.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -416,3 +416,11 @@ exprt verilog_lowering(exprt expr)

UNREACHABLE;
}

typet verilog_lowering(typet type)
{
if(type.id() == ID_verilog_signedbv || type.id() == ID_verilog_unsignedbv)
return lower_to_aval_bval(type);
else
return type;
}
2 changes: 2 additions & 0 deletions src/verilog/verilog_lowering.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ Author: Daniel Kroening, [email protected]
#define CPROVER_VERILOG_LOWERING_H

class exprt;
class typet;

exprt verilog_lowering(exprt);
typet verilog_lowering(typet);

#endif
4 changes: 4 additions & 0 deletions src/verilog/verilog_synthesis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3314,6 +3314,10 @@ exprt verilog_synthesist::symbol_expr(
{
exprt result=exprt(curr_or_next==NEXT?ID_next_symbol:ID_symbol, symbol.type);
result.set(ID_identifier, symbol.name);

// The type may need to be lowered
result.type() = verilog_lowering(result.type());

return result;
}

Expand Down

0 comments on commit e3fe283

Please sign in to comment.