@@ -497,12 +497,16 @@ def __init__(self, module, instname, params=None, ports=None):
497497 self .instname = instname
498498 if not params :
499499 self .params = ()
500+ elif isinstance (params , dict ):
501+ self .params = [ (k , v ) for k , v in params .items () ]
500502 elif isinstance (params [0 ], (tuple , list )):
501503 self .params = params
502504 else :
503505 self .params = [ (None , p ) for p in params ]
504506 if not ports :
505507 self .ports = ()
508+ elif isinstance (ports , dict ):
509+ self .ports = [ (k , v ) for k , v in ports .items () ]
506510 elif isinstance (ports [0 ], (tuple , list )):
507511 self .ports = ports
508512 else :
@@ -514,12 +518,12 @@ def _type_check_module(self, module):
514518 type (module ))
515519
516520 def _type_check_params (self , params ):
517- if not isinstance (params , (tuple , list )):
518- raise TypeError ("params of Instance require tuple, not %s." % type (params ))
521+ if not isinstance (params , (tuple , list , dict )):
522+ raise TypeError ("params of Instance require tuple, list, or dict, not %s." % type (params ))
519523
520524 def _type_check_ports (self , ports ):
521- if not isinstance (ports , (tuple , list )):
522- raise TypeError ("ports of Instance require tuple, not %s." % type (ports ))
525+ if not isinstance (ports , (tuple , list , dict )):
526+ raise TypeError ("ports of Instance require tuple, list, or dict, not %s." % type (ports ))
523527
524528#-------------------------------------------------------------------------------
525529class Generate (Module ):
0 commit comments