Skip to content

Commit f1c5f8d

Browse files
committed
_get_subst method is added.
1 parent 507382f commit f1c5f8d

File tree

1 file changed

+38
-19
lines changed

1 file changed

+38
-19
lines changed

veriloggen/core/vtypes.py

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -639,22 +639,28 @@ def __init__(self, var, pos):
639639
self.pos = pos
640640
self.subst = []
641641

642-
def next(self, r):
643-
return Subst(self, r)
642+
def next(self, value, blk=False, ldelay=None, rdelay=None):
643+
return Subst(self, value, blk=blk, ldelay=ldelay, rdelay=rdelay)
644644

645-
def _add_subst(self, s):
646-
self.subst.append(s)
645+
def write(self, value, blk=False, ldelay=None, rdelay=None):
646+
return self.next(value, blk=blk, ldelay=ldelay, rdelay=rdelay)
647647

648648
def bit_length(self):
649649
if isinstance(var, _Variable) and var.length is not None:
650650
return self.var.bit_length()
651651
return 1
652652

653+
def _add_subst(self, s):
654+
self.subst.append(s)
655+
656+
def _get_subst(self):
657+
return self.subst
658+
653659
def __str__(self):
654660
return ''.join([str(self.var), '[', str(self.pos), ']'])
655661

656-
def __call__(self, r):
657-
return self.next(r)
662+
def __call__(self, value, blk=False, ldelay=None, rdelay=None):
663+
return self.next(value, blk=blk, ldelay=ldelay, rdelay=rdelay)
658664

659665
class Slice(_SpecialOperator):
660666
def __init__(self, var, msb, lsb):
@@ -663,31 +669,37 @@ def __init__(self, var, msb, lsb):
663669
self.lsb = lsb
664670
self.subst = []
665671

666-
def next(self, r):
667-
return Subst(self, r)
672+
def next(self, value, blk=False, ldelay=None, rdelay=None):
673+
return Subst(self, value, blk=blk, ldelay=ldelay, rdelay=rdelay)
668674

669-
def _add_subst(self, s):
670-
self.subst.append(s)
675+
def write(self, value, blk=False, ldelay=None, rdelay=None):
676+
return self.next(value, blk=blk, ldelay=ldelay, rdelay=rdelay)
671677

672678
def bit_length(self):
673679
return self.msb - self.lsb + 1
674680

681+
def _add_subst(self, s):
682+
self.subst.append(s)
683+
684+
def _get_subst(self):
685+
return self.subst
686+
675687
def __str__(self):
676688
return ''.join([str(self.var), '[', str(self.msb), ':', str(self.lsb), ']'])
677689

678-
def __call__(self, r):
679-
return self.next(r)
690+
def __call__(self, value, blk=False, ldelay=None, rdelay=None):
691+
return self.next(value, blk=blk, ldelay=ldelay, rdelay=rdelay)
680692

681693
class Cat(_SpecialOperator):
682694
def __init__(self, *vars):
683695
self.vars = tuple(vars)
684696
self.subst = []
685697

686-
def next(self, r):
687-
return Subst(self, r)
698+
def next(self, value, blk=False, ldelay=None, rdelay=None):
699+
return Subst(self, value, blk=blk, ldelay=ldelay, rdelay=rdelay)
688700

689-
def _add_subst(self, s):
690-
self.subst.append(s)
701+
def write(self, value, blk=False, ldelay=None, rdelay=None):
702+
return self.next(value, blk=blk, ldelay=ldelay, rdelay=rdelay)
691703

692704
def bit_length(self):
693705
values = [ v.bit_length() for v in self.vars ]
@@ -696,6 +708,12 @@ def bit_length(self):
696708
ret = ret + v
697709
return ret
698710

711+
def _add_subst(self, s):
712+
self.subst.append(s)
713+
714+
def _get_subst(self):
715+
return self.subst
716+
699717
def __str__(self):
700718
ret = []
701719
ret.append('{')
@@ -706,8 +724,8 @@ def __str__(self):
706724
ret.append('}')
707725
return ''.join(ret)
708726

709-
def __call__(self, r):
710-
return self.next(r)
727+
def __call__(self, value, blk=False, ldelay=None, rdelay=None):
728+
return self.next(value, blk=blk, ldelay=ldelay, rdelay=rdelay)
711729

712730
class Repeat(_SpecialOperator):
713731
def __init__(self, var, times):
@@ -731,7 +749,8 @@ def bit_length(self):
731749
raise NotImplementedError('bit_length is not implemented on Cond.')
732750

733751
def __str__(self):
734-
return ''.join(['(', str(self.condition), ')?', str(self.true_value), ' : ', str(self.false_value)])
752+
return ''.join(['(', str(self.condition), ')?',
753+
str(self.true_value), ' : ', str(self.false_value)])
735754

736755
# Alias of Cond
737756
Mux = Cond

0 commit comments

Comments
 (0)