@@ -2468,11 +2468,12 @@ class _Accumulator(_UnaryOperator):
24682468 def __init__ (self , right , size = None , initval = None , interval = None ,
24692469 enable = None , reset = None , width = 32 , signed = True ):
24702470
2471- self .interval = _to_constant (interval ) if interval is not None else None
2472- self . size = ( _to_constant ( size * interval ) if size is not None and interval is not None
2473- else ( _to_constant (size ) if size is not None else None ) )
2471+ self .size = ( _to_constant (size * interval )
2472+ if size is not None and interval is not None else
2473+ _to_constant (size ) if size is not None else None )
24742474 self .initval = (_to_constant (initval )
24752475 if initval is not None else _to_constant (0 ))
2476+ self .interval = _to_constant (interval ) if interval is not None else None
24762477
24772478 if not isinstance (self .initval , _Constant ):
24782479 raise TypeError ("initval must be Constant, not '%s'" %
@@ -2530,10 +2531,11 @@ def _implement(self, m, seq, svalid=None, senable=None):
25302531 next_count_value = vtypes .Mux (count >= size_data - 1 ,
25312532 0 , count + 1 )
25322533 count_zero = (count == 0 )
2533-
2534+
25342535 if self .interval is not None :
25352536 interval_count = m .Reg (self .name ('interval_count' ), width , initval = 0 )
2536- next_interval_count = vtypes .Mux (interval_count >= interval_data - 1 , 0 , interval_count + 1 )
2537+ next_interval_count = vtypes .Mux (interval_count >= interval_data - 1 ,
2538+ 0 , interval_count + 1 )
25372539 interval_enable = (interval_count == 0 )
25382540
25392541 self .sig_data = data
@@ -2561,7 +2563,6 @@ def _implement(self, m, seq, svalid=None, senable=None):
25612563
25622564 reset_value = initval_data
25632565 if self .size is not None :
2564- # if self.reset is not None or self.size is not None:
25652566 reset_value = initval_data
25662567 for op in self .ops :
25672568 if not isinstance (op , type ):
@@ -2592,7 +2593,7 @@ def _implement(self, m, seq, svalid=None, senable=None):
25922593
25932594 if self .interval is not None :
25942595 seq (interval_count (next_interval_count ), cond = enable_cond )
2595-
2596+
25962597 else :
25972598 if self .interval is not None :
25982599 enable_cond = _and_vars (svalid , senable , interval_enable )
@@ -2605,15 +2606,15 @@ def _implement(self, m, seq, svalid=None, senable=None):
26052606
26062607 if self .size is not None :
26072608 seq (count (next_count_value ), cond = enable_cond )
2608-
2609+
26092610 if self .interval is not None :
26102611 seq (interval_count (next_interval_count ), cond = enable_cond )
26112612
26122613 if self .reset is not None :
26132614 if self .enable is None :
26142615 reset_cond = _and_vars (svalid , senable , resetdata )
26152616 seq (data (reset_value ), cond = reset_cond )
2616-
2617+
26172618 if self .interval is not None :
26182619 seq (interval_count (0 ), cond = reset_cond )
26192620 if self .size is not None :
0 commit comments