Skip to content

Commit 829edf5

Browse files
committed
_write_subst function
1 parent 47af802 commit 829edf5

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

veriloggen/core/vtypes.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
152159
class 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

Comments
 (0)