@@ -323,6 +323,7 @@ class _Numeric(VeriloggenNode):
323
323
324
324
def __init__ (self ):
325
325
VeriloggenNode .__init__ (self )
326
+ self ._value = None
326
327
327
328
def __hash__ (self ):
328
329
return hash ((id (self ), self .object_id ))
@@ -532,6 +533,14 @@ def __len__(self):
532
533
raise TypeError ("Non int length." )
533
534
return ret
534
535
536
+ @property
537
+ def value (self ):
538
+ return self ._value
539
+
540
+ @value .setter
541
+ def value (self , value ):
542
+ self ._value = value
543
+
535
544
536
545
class _Variable (_Numeric ):
537
546
@@ -544,7 +553,7 @@ def __init__(self, width=1, dims=None, signed=False, value=None, initval=None, n
544
553
dims = tuple ([dims ])
545
554
self .dims = dims
546
555
self .signed = signed
547
- self .value = value
556
+ self ._value = value
548
557
self .initval = initval
549
558
550
559
self .raw_width = raw_width # (MSB, LSB)
@@ -781,7 +790,7 @@ class _Constant(_Numeric):
781
790
782
791
def __init__ (self , value , width = None , base = None ):
783
792
_Numeric .__init__ (self )
784
- self .value = value
793
+ self ._value = value
785
794
self .width = width
786
795
self .base = base
787
796
self ._type_check_value (value )
@@ -802,6 +811,14 @@ def get_width(self):
802
811
return 32
803
812
return self .width
804
813
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
+
805
822
806
823
class Int (_Constant ):
807
824
@@ -814,17 +831,17 @@ def __init__(self, value, width=None, base=None, signed=False, is_raw_value=Fals
814
831
if base is None :
815
832
raise ValueError (
816
833
'base is required when is_raw_value is enabled.' )
817
- self .value = value
834
+ self ._value = value
818
835
self .width = width
819
836
self .base = base
820
837
self .signed = signed
821
838
elif isinstance (value , int ):
822
- self .value = value
839
+ self ._value = value
823
840
self .width = width
824
841
self .base = base
825
842
self .signed = signed if value >= 0 else value < 0
826
843
else :
827
- self .value , self .base = str_to_value (value )
844
+ self ._value , self .base = str_to_value (value )
828
845
if base is not None :
829
846
self .base = base
830
847
if not isinstance (self .value , int ):
@@ -934,7 +951,7 @@ class Float(_Constant):
934
951
935
952
def __init__ (self , value ):
936
953
_Constant .__init__ (self , value , None , None )
937
- self .value = value
954
+ self ._value = value
938
955
self .width = 32
939
956
940
957
def _type_check_value (self , value ):
@@ -953,7 +970,7 @@ class Str(_Constant):
953
970
954
971
def __init__ (self , value ):
955
972
_Constant .__init__ (self , value , None , None )
956
- self .value = value
973
+ self ._value = value
957
974
958
975
def _type_check_value (self , value ):
959
976
if not isinstance (value , str ):
@@ -2286,7 +2303,15 @@ class Delay(VeriloggenNode):
2286
2303
2287
2304
def __init__ (self , value ):
2288
2305
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.' )
2290
2315
2291
2316
2292
2317
class SingleStatement (VeriloggenNode ):
0 commit comments