Skip to content

Commit b66b6f0

Browse files
committed
to_verilog: redundant begin-end blocks are removed from else-statement, if the if-condition is not for reset.
1 parent 3d7d8e9 commit b66b6f0

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

veriloggen/to_verilog.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,13 @@ def visit_If(self, node):
374374
true_statement = self.visit(node.true_statement)
375375
false_statement = (self.visit(node.false_statement)
376376
if node.false_statement is not None else None)
377+
# remove a redundant begin-end, if the true_statement is not for reset
378+
cond_str = str(cond).lower()
379+
if ((not cond_str.count('rst') and not cond_str.count('reset')) and
380+
isinstance(false_statement, vast.Block) and
381+
len(false_statement.statements) == 1 and
382+
isinstance(false_statement.statements[0], vast.IfStatement)):
383+
false_statement = false_statement.statements[0]
377384
return vast.IfStatement(cond, true_statement, false_statement)
378385

379386
#---------------------------------------------------------------------------

0 commit comments

Comments
 (0)