@@ -96,21 +96,28 @@ def __init__(self, parent, child,
9696 # params
9797 new_params = collections .OrderedDict ()
9898
99- param_exclude = []
100- param_exclude .extend (arg_params .keys ())
101- new_params .update (parent .copy_params (child , self .prefix ))
99+ if arg_params :
100+ new_params .update (
101+ parent .copy_params_as_localparams (child , self .prefix ,
102+ include = arg_params .keys ()))
103+
104+ # localparams
105+ # used ones only
106+ new_localparams = collections .OrderedDict ()
107+ if used_params :
108+ new_localparams .update (
109+ parent .copy_params_as_localparams (child , self .prefix ,
110+ include = used_params ,
111+ exclude = arg_params .keys ()))
112+ new_localparams .update (
113+ parent .copy_localparams (child , self .prefix , include = used_params ))
102114
103115 # overwrite the parameter value by parameter arg
104116 for key , param in arg_params .items ():
105117 new_key = '' .join ([self .prefix , key ])
106118 new_param = new_params [new_key ]
107119 new_param .value = param
108120
109- # localparams (used ones only)
110- new_localparams = collections .OrderedDict ()
111- new_localparams .update (
112- parent .copy_localparams (child , self .prefix , include = used_params ))
113-
114121 # ports
115122 new_ports = collections .OrderedDict ()
116123 if as_io :
@@ -129,13 +136,15 @@ def __init__(self, parent, child,
129136 new_ports .update (parent .copy_ports_as_vars (
130137 child , self .prefix , include = as_wire , use_wire = True ))
131138
139+ # for instance args
132140 self .all_params = collections .OrderedDict ()
133141 self .all_raw_params = collections .OrderedDict ()
134142
135143 for key in child_params .keys ():
136144 new_key = '' .join ((self .prefix , key ))
137- self .all_params [key ] = new_params [new_key ]
138- self .all_raw_params [new_key ] = new_params [new_key ]
145+ if new_key in new_params :
146+ self .all_params [key ] = new_params [new_key ]
147+ self .all_raw_params [new_key ] = new_params [new_key ]
139148
140149 self .all_ports = collections .OrderedDict ()
141150 self .all_raw_ports = collections .OrderedDict ()
0 commit comments