Skip to content

Commit c47ce66

Browse files
committed
'value' field in core.vtypes is replaced with property and setter methods.
1 parent d6574f0 commit c47ce66

File tree

1 file changed

+33
-8
lines changed

1 file changed

+33
-8
lines changed

veriloggen/core/vtypes.py

+33-8
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ class _Numeric(VeriloggenNode):
323323

324324
def __init__(self):
325325
VeriloggenNode.__init__(self)
326+
self._value = None
326327

327328
def __hash__(self):
328329
return hash((id(self), self.object_id))
@@ -532,6 +533,14 @@ def __len__(self):
532533
raise TypeError("Non int length.")
533534
return ret
534535

536+
@property
537+
def value(self):
538+
return self._value
539+
540+
@value.setter
541+
def value(self, value):
542+
self._value = value
543+
535544

536545
class _Variable(_Numeric):
537546

@@ -544,7 +553,7 @@ def __init__(self, width=1, dims=None, signed=False, value=None, initval=None, n
544553
dims = tuple([dims])
545554
self.dims = dims
546555
self.signed = signed
547-
self.value = value
556+
self._value = value
548557
self.initval = initval
549558

550559
self.raw_width = raw_width # (MSB, LSB)
@@ -781,7 +790,7 @@ class _Constant(_Numeric):
781790

782791
def __init__(self, value, width=None, base=None):
783792
_Numeric.__init__(self)
784-
self.value = value
793+
self._value = value
785794
self.width = width
786795
self.base = base
787796
self._type_check_value(value)
@@ -802,6 +811,14 @@ def get_width(self):
802811
return 32
803812
return self.width
804813

814+
@property
815+
def value(self):
816+
return self._value
817+
818+
@value.setter
819+
def value(self, value):
820+
raise ValueError('setter is not supported.')
821+
805822

806823
class Int(_Constant):
807824

@@ -814,17 +831,17 @@ def __init__(self, value, width=None, base=None, signed=False, is_raw_value=Fals
814831
if base is None:
815832
raise ValueError(
816833
'base is required when is_raw_value is enabled.')
817-
self.value = value
834+
self._value = value
818835
self.width = width
819836
self.base = base
820837
self.signed = signed
821838
elif isinstance(value, int):
822-
self.value = value
839+
self._value = value
823840
self.width = width
824841
self.base = base
825842
self.signed = signed if value >= 0 else value < 0
826843
else:
827-
self.value, self.base = str_to_value(value)
844+
self._value, self.base = str_to_value(value)
828845
if base is not None:
829846
self.base = base
830847
if not isinstance(self.value, int):
@@ -934,7 +951,7 @@ class Float(_Constant):
934951

935952
def __init__(self, value):
936953
_Constant.__init__(self, value, None, None)
937-
self.value = value
954+
self._value = value
938955
self.width = 32
939956

940957
def _type_check_value(self, value):
@@ -953,7 +970,7 @@ class Str(_Constant):
953970

954971
def __init__(self, value):
955972
_Constant.__init__(self, value, None, None)
956-
self.value = value
973+
self._value = value
957974

958975
def _type_check_value(self, value):
959976
if not isinstance(value, str):
@@ -2286,7 +2303,15 @@ class Delay(VeriloggenNode):
22862303

22872304
def __init__(self, value):
22882305
VeriloggenNode.__init__(self)
2289-
self.value = value
2306+
self._value = value
2307+
2308+
@property
2309+
def value(self):
2310+
return self._value
2311+
2312+
@value.setter
2313+
def value(self, value):
2314+
raise ValueError('setter is not supported.')
22902315

22912316

22922317
class SingleStatement(VeriloggenNode):

0 commit comments

Comments
 (0)