@@ -2401,15 +2401,15 @@ class _Accumulator(_UnaryOperator):
24012401 def __init__ (self , right , size = None , initval = None , interval = None ,
24022402 enable = None , reset = None , width = 32 , signed = True ):
24032403
2404- self .size = _to_constant (size ) if size is not None else None
2404+ self .interval = _to_constant (interval ) if interval is not None else None
2405+ self .size = (_to_constant (size * interval ) if size is not None and interval is not None
2406+ else (_to_constant (size ) if size is not None else None ))
24052407 self .initval = (_to_constant (initval )
24062408 if initval is not None else _to_constant (0 ))
24072409
24082410 if not isinstance (self .initval , _Constant ):
24092411 raise TypeError ("initval must be Constant, not '%s'" %
24102412 str (type (self .initval )))
2411-
2412- self .interval = interval
24132413
24142414 self .enable = _to_constant (enable )
24152415 if self .enable is not None :
@@ -2444,8 +2444,9 @@ def _implement(self, m, seq, svalid=None, senable=None):
24442444 (self .latency , 1 ))
24452445
24462446 size_data = self .size .sig_data if self .size is not None else None
2447- if self .size is not None and self .interval is not None :
2448- size_data *= self .interval
2447+ interval_data = self .interval .sig_data if self .interval is not None else None
2448+ # if self.size is not None and self.interval is not None:
2449+ # size_data *= self.interval
24492450 initval_data = self .initval .sig_data
24502451
24512452 width = self .bit_length ()
@@ -2467,7 +2468,7 @@ def _implement(self, m, seq, svalid=None, senable=None):
24672468
24682469 if self .interval is not None :
24692470 interval_count = m .Reg (self .name ('interval_count' ), width , initval = 0 )
2470- next_interval_count = vtypes .Mux (interval_count >= self . interval - 1 , 0 , interval_count + 1 )
2471+ next_interval_count = vtypes .Mux (interval_count >= interval_data - 1 , 0 , interval_count + 1 )
24712472 interval_enable = (interval_count == 0 )
24722473
24732474 self .sig_data = data
0 commit comments