@@ -83,7 +83,7 @@ def __init__(self, m, name, clk, rst, width=32, initname='init',
8383 if not nohook :
8484 self .m .add_hook (self .implement )
8585
86- #-------------------------------------------------------------------------
86+ # -------------------------------------------------------------------------
8787 def goto (self , dst , cond = None , else_dst = None ):
8888 if cond is None and 'cond' in self .next_kwargs :
8989 cond = self .next_kwargs ['cond' ]
@@ -130,7 +130,7 @@ def goto_from(self, src, dst, cond=None, else_dst=None):
130130 def inc (self ):
131131 self ._set_index (None )
132132
133- #-------------------------------------------------------------------------
133+ # -------------------------------------------------------------------------
134134 def add (self , * statement , ** kwargs ):
135135 """ add new assignments """
136136 kwargs .update (self .next_kwargs )
@@ -152,11 +152,15 @@ def add(self, *statement, **kwargs):
152152 self ._clear_last_if_statement ()
153153 return self ._add_statement (statement , ** kwargs )
154154
155- #-------------------------------------------------------------------------
155+ # -------------------------------------------------------------------------
156+ def add_reset (self , v ):
157+ return self .seq .add_reset (v )
158+
159+ # -------------------------------------------------------------------------
156160 def Prev (self , var , delay , initval = 0 , cond = None , prefix = None ):
157161 return self .seq .Prev (var , delay , initval , cond , prefix )
158162
159- #-------------------------------------------------------------------------
163+ # -------------------------------------------------------------------------
160164 def If (self , * cond ):
161165 self ._clear_elif_cond ()
162166
@@ -267,7 +271,7 @@ def Clear(self):
267271 self ._clear_elif_cond ()
268272 return self
269273
270- #-------------------------------------------------------------------------
274+ # -------------------------------------------------------------------------
271275 @property
272276 def current (self ):
273277 return self .state_count
@@ -314,15 +318,15 @@ def then(self):
314318 def here (self ):
315319 return self .state == self .current
316320
317- #-------------------------------------------------------------------------
321+ # -------------------------------------------------------------------------
318322 def implement (self ):
319323 if self .as_module :
320324 self .make_module ()
321325 return
322326
323327 self .make_always ()
324328
325- #-------------------------------------------------------------------------
329+ # -------------------------------------------------------------------------
326330 def make_always (self , reset = (), body = (), case = True ):
327331 if self .done :
328332 #raise ValueError('make_always() has been already called.')
@@ -340,7 +344,7 @@ def make_always(self, reset=(), body=(), case=True):
340344 part_body ,
341345 ))
342346
343- #-------------------------------------------------------------------------
347+ # -------------------------------------------------------------------------
344348 def make_module (self , reset = (), body = (), case = True ):
345349 if self .done :
346350 #raise ValueError('make_always() has been already called.')
@@ -530,7 +534,7 @@ def make_module(self, reset=(), body=(), case=True):
530534 sub = Submodule (self .m , m , 'inst_' + m .name , '_%s_' % self .name ,
531535 arg_params = arg_params , arg_ports = arg_ports )
532536
533- #-------------------------------------------------------------------------
537+ # -------------------------------------------------------------------------
534538 def make_case (self ):
535539 indexes = set (self .body .keys ())
536540 indexes .update (set (self .jump .keys ()))
@@ -578,7 +582,7 @@ def make_if(self):
578582 for index in sorted (indexes , key = lambda x :x )])
579583 return ret
580584
581- #-------------------------------------------------------------------------
585+ # -------------------------------------------------------------------------
582586 def make_reset (self , reset ):
583587 ret = collections .OrderedDict ()
584588
@@ -621,19 +625,19 @@ def make_reset(self, reset):
621625
622626 return list (ret .values ())
623627
624- #-------------------------------------------------------------------------
628+ # -------------------------------------------------------------------------
625629 def set_index (self , index ):
626630 return self ._set_index (index )
627631
628- #-------------------------------------------------------------------------
632+ # -------------------------------------------------------------------------
629633 def _go (self , src , dst , cond = None , else_dst = None ):
630634 self ._add_jump (src , dst , cond , else_dst )
631635 return self
632636
633637 def _add_jump (self , src , dst , cond = None , else_dst = None ):
634638 self .jump [src ].append ((dst , cond , else_dst ))
635639
636- #-------------------------------------------------------------------------
640+ # -------------------------------------------------------------------------
637641 def _add_statement (self , statement , index = None , keep = None , delay = None , cond = None ,
638642 lazy_cond = False , eager_val = False , no_delay_cond = False ):
639643
@@ -686,7 +690,7 @@ def _add_statement(self, statement, index=None, keep=None, delay=None, cond=None
686690
687691 return self
688692
689- #-------------------------------------------------------------------------
693+ # -------------------------------------------------------------------------
690694 def _add_dst_var (self , statement ):
691695 for s in statement :
692696 values = self .dst_visitor .visit (s )
@@ -695,7 +699,7 @@ def _add_dst_var(self, statement):
695699 if k not in self .dst_var :
696700 self .dst_var [k ] = v
697701
698- #-------------------------------------------------------------------------
702+ # -------------------------------------------------------------------------
699703 def _add_delayed_cond (self , statement , index , delay ):
700704 name_prefix = '_' .join (
701705 ['' , self .name , 'cond' , str (index ), str (self .tmp_count )])
@@ -709,7 +713,7 @@ def _add_delayed_cond(self, statement, index, delay):
709713 prev = tmp
710714 return prev
711715
712- #-------------------------------------------------------------------------
716+ # -------------------------------------------------------------------------
713717 def _add_delayed_subst (self , subst , index , delay ):
714718 if not isinstance (subst , vtypes .Subst ):
715719 return subst
@@ -734,7 +738,7 @@ def _add_delayed_subst(self, subst, index, delay):
734738 prev = tmp
735739 return left (prev )
736740
737- #-------------------------------------------------------------------------
741+ # -------------------------------------------------------------------------
738742 def _clear_next_kwargs (self ):
739743 self .next_kwargs = {}
740744
@@ -756,7 +760,7 @@ def _make_cond(self, condlist):
756760 ret = vtypes .Ands (ret , cond )
757761 return ret
758762
759- #-------------------------------------------------------------------------
763+ # -------------------------------------------------------------------------
760764 def _set_index (self , index = None ):
761765 if index is None :
762766 self .state_count += 1
@@ -784,7 +788,7 @@ def _get_mark_index(self, s):
784788 return index
785789 raise KeyError ("No such mark in FSM marks: %s" % s .name )
786790
787- #-------------------------------------------------------------------------
791+ # -------------------------------------------------------------------------
788792 def _add_mark (self , index ):
789793 index = self ._to_index (index )
790794 if index not in self .mark :
@@ -797,7 +801,7 @@ def _to_index(self, index):
797801 index = self ._get_mark_index (index )
798802 return index
799803
800- #-------------------------------------------------------------------------
804+ # -------------------------------------------------------------------------
801805 def _add_delayed_state (self , value ):
802806 if not isinstance (value , int ):
803807 raise TypeError ("Delay amount must be int, not '%s'" %
@@ -851,7 +855,7 @@ def _to_state_assign(self, dst, cond=None, else_dst=None):
851855 value = value .Else (self .state (else_dst_mark ))
852856 return value
853857
854- #-------------------------------------------------------------------------
858+ # -------------------------------------------------------------------------
855859 def _cond_case (self , index ):
856860 if index not in self .mark :
857861 self ._set_mark (index )
@@ -895,7 +899,7 @@ def _get_if_statement(self, index):
895899 def _get_delayed_if_statement (self , index , delay ):
896900 return vtypes .If (self ._delayed_cond_if (index , delay ))(* self .delayed_body [delay ][index ])
897901
898- #-------------------------------------------------------------------------
902+ # -------------------------------------------------------------------------
899903 def __call__ (self , * statement , ** kwargs ):
900904 return self .add (* statement , ** kwargs )
901905
0 commit comments