@@ -542,14 +542,15 @@ def visit_Module(self, node):
542542 def visit_Parameter (self , node ):
543543 name = node .name
544544 value = self .bind_visitor .visit (node .value )
545+ value = vast .Rvalue (value )
545546 width = None if node .width is None else self .visit (node .width )
546547 signed = node .signed
547548 return vast .Parameter (name , value , width , signed )
548549
549550 def visit_Localparam (self , node ):
550551 name = node .name
551-
552552 value = self .bind_visitor .visit (node .value )
553+ value = vast .Rvalue (value )
553554 width = None if node .width is None else self .visit (node .width )
554555 signed = node .signed
555556 return vast .Localparam (name , value , width , signed )
@@ -642,7 +643,9 @@ def visit_Assign(self, node):
642643 raise TypeError ("Assign expects Subst object." )
643644 left = self .bind_visitor .visit (node .statement .left )
644645 right = self .bind_visitor .visit (node .statement .right )
645- return vast .Assign (left , right )
646+ lvalue = vast .Lvalue (left )
647+ rvalue = vast .Rvalue (right )
648+ return vast .Assign (lvalue , rvalue )
646649
647650 #---------------------------------------------------------------------------
648651 def visit_Initial (self , node ):
@@ -728,8 +731,10 @@ def visit_Subst(self, node):
728731 right = self .visit (node .right )
729732 ldelay = self .visit (node .ldelay ) if node .ldelay else None
730733 rdelay = self .visit (node .rdelay ) if node .rdelay else None
731- if node .blk : vast .BlockingSubstitution (left , right , ldelay , rdelay )
732- return vast .NonblockingSubstitution (left , right , ldelay , rdelay )
734+ lvalue = vast .Lvalue (left )
735+ rvalue = vast .Rvalue (right )
736+ if node .blk : vast .BlockingSubstitution (lvalue , rvalue , ldelay , rdelay )
737+ return vast .NonblockingSubstitution (lvalue , rvalue , ldelay , rdelay )
733738
734739#-------------------------------------------------------------------------------
735740class VerilogBlockingVisitor (VerilogCommonVisitor ):
@@ -738,7 +743,9 @@ def visit_Subst(self, node):
738743 right = self .visit (node .right )
739744 ldelay = vast .DelayStatement (self .visit (node .ldelay )) if node .ldelay else None
740745 rdelay = vast .DelayStatement (self .visit (node .rdelay )) if node .rdelay else None
741- return vast .BlockingSubstitution (left , right , ldelay , rdelay )
746+ lvalue = vast .Lvalue (left )
747+ rvalue = vast .Rvalue (right )
748+ return vast .BlockingSubstitution (lvalue , rvalue , ldelay , rdelay )
742749
743750 def visit_Forever (self , node ):
744751 statement = self ._optimize_block (
0 commit comments