@@ -214,6 +214,28 @@ def add_object(self, obj):
214214 self .initial .append (obj )
215215 return
216216
217+ if isinstance (obj , GenerateFor ):
218+ if obj .scope is None :
219+ if None not in self .generate : self .generate [None ] = []
220+ self .generate [None ].append (obj )
221+ return
222+ self .generate [obj .scope ] = obj
223+ return
224+
225+ if isinstance (obj , GenerateIf ):
226+ if obj .true_scope is None :
227+ if None not in self .generate : self .generate [None ] = []
228+ self .generate [None ].append (obj )
229+ return
230+ self .generate [obj .true_scope ] = obj
231+ return
232+
233+ if isinstance (obj , Instance ):
234+ self .instance [obj .name ] = obj
235+ if isinstance (obj .module , Module ):
236+ self .submodule [obj .module .name ] = obj .module
237+ return
238+
217239 raise TypeError ("Object type '%s' is not supported." % str (type (obj )))
218240
219241 #---------------------------------------------------------------------------
@@ -278,7 +300,7 @@ def to_verilog(self, filename=None):
278300 return to_verilog .write_verilog (self , filename )
279301
280302#-------------------------------------------------------------------------------
281- class StubModule (Module ):
303+ class StubModule (vtypes . VeriloggenNode ):
282304 """ Verilog Module class """
283305 def __init__ (self , name = None ):
284306 self .name = name if name is not None else self .__class__ .__name__
@@ -303,7 +325,7 @@ def __init__(self, module, instname, params, ports):
303325 self .ports = [ (None , p ) for p in ports ]
304326
305327 def type_check_module (self , module ):
306- if not isinstance (module , Module ):
328+ if not isinstance (module , ( Module , StubModule ) ):
307329 raise TypeError ("module of Instance must be Module or StubModule, not %s" %
308330 type (module ))
309331
0 commit comments