@@ -149,6 +149,13 @@ def raw_value(v):
149149 return v
150150
151151
152+ def _write_subst (obj , value , blk = False , ldelay = None , rdelay = None ):
153+ if ((not hasattr (obj , 'no_write_check' ) or not obj .no_write_check ) and
154+ hasattr (value , 'to_int' )):
155+ value = value .to_int ()
156+ return Subst (obj , value , blk = blk , ldelay = ldelay , rdelay = rdelay )
157+
158+
152159class VeriloggenNode (object ):
153160 """ Base class of Veriloggen AST object """
154161
@@ -420,7 +427,7 @@ def __init__(self, width=1, length=None, signed=False, value=None, initval=None,
420427 self .assign_value = None
421428
422429 def write (self , value , blk = False , ldelay = None , rdelay = None ):
423- return Subst (self , value , blk = blk , ldelay = ldelay , rdelay = rdelay )
430+ return _write_subst (self , value , blk , ldelay , rdelay )
424431
425432 def read (self ):
426433 return self
@@ -1410,7 +1417,7 @@ def __init__(self, var, pos):
14101417 self ._type_check_var (var )
14111418
14121419 def write (self , value , blk = False , ldelay = None , rdelay = None ):
1413- return Subst (self , value , blk = blk , ldelay = ldelay , rdelay = rdelay )
1420+ return _write_subst (self , value , blk , ldelay , rdelay )
14141421
14151422 def read (self ):
14161423 return self
@@ -1473,7 +1480,7 @@ def __init__(self, var, msb, lsb):
14731480 self ._type_check_var (var )
14741481
14751482 def write (self , value , blk = False , ldelay = None , rdelay = None ):
1476- return Subst (self , value , blk = blk , ldelay = ldelay , rdelay = rdelay )
1483+ return _write_subst (self , value , blk , ldelay , rdelay )
14771484
14781485 def read (self ):
14791486 return self
@@ -1534,7 +1541,7 @@ def __init__(self, *vars):
15341541 self .subst = []
15351542
15361543 def write (self , value , blk = False , ldelay = None , rdelay = None ):
1537- return Subst (self , value , blk = blk , ldelay = ldelay , rdelay = rdelay )
1544+ return _write_subst (self , value , blk , ldelay , rdelay )
15381545
15391546 def read (self ):
15401547 return self
0 commit comments