@@ -100,6 +100,12 @@ def get_layer_config(self, layer):
100
100
101
101
return layer_config
102
102
103
+ def set_name_config (self , name , config ):
104
+ """sets hls_config["LayerName"][name] = config"""
105
+ hls_config = self .config ['HLSConfig' ]
106
+ layer_config = hls_config .setdefault ('LayerName' , {})
107
+ layer_config [name ] = config
108
+
103
109
def get_precision (self , layer , var = 'default' ):
104
110
precision = self .layer_name_precision .get (layer .name .lower () + '_' + var )
105
111
type_name = layer .name .lower () + '_' + var + '_t'
@@ -183,6 +189,35 @@ def get_compression(self, layer):
183
189
184
190
return compression
185
191
192
+ def parse_name_config (self , layer_name , layer_cfg ):
193
+ """This is used by _parse_hls_config below, but also in optimizers when a new layer config is created"""
194
+ precision_cfg = layer_cfg .get ('Precision' )
195
+ if isinstance (precision_cfg , dict ):
196
+ for var , precision in precision_cfg .items ():
197
+ self .layer_name_precision [layer_name .lower () + '_' + var ] = precision
198
+ else :
199
+ self .layer_name_precision [layer_name .lower () + '_default' ] = precision_cfg
200
+
201
+ rf = layer_cfg .get ('ReuseFactor' )
202
+ if rf is not None :
203
+ self .layer_name_rf [layer_name .lower ()] = rf
204
+
205
+ targ_cycles = layer_cfg .get ('TargetCycles' )
206
+ if targ_cycles is not None :
207
+ self .layer_name_targ_cycles [layer_name .lower ()] = targ_cycles
208
+
209
+ strategy = layer_cfg .get ('Strategy' )
210
+ if strategy is not None :
211
+ self .layer_name_strategy [layer_name .lower ()] = strategy
212
+
213
+ conv_implementation = layer_cfg .get ('ConvImplementation' )
214
+ if conv_implementation is not None :
215
+ self .layer_name_conv_implementation [layer_name .lower ()] = conv_implementation
216
+
217
+ compression = layer_cfg .get ('Compression' )
218
+ if compression is not None :
219
+ self .layer_name_compression [layer_name .lower ()] = bool (compression )
220
+
186
221
def _parse_hls_config (self ):
187
222
hls_config = self .config ['HLSConfig' ]
188
223
@@ -255,32 +290,7 @@ def _parse_hls_config(self):
255
290
layer_name_cfg = hls_config .get ('LayerName' )
256
291
if layer_name_cfg is not None :
257
292
for layer_name , layer_cfg in layer_name_cfg .items ():
258
- precision_cfg = layer_cfg .get ('Precision' )
259
- if isinstance (precision_cfg , dict ):
260
- for var , precision in precision_cfg .items ():
261
- self .layer_name_precision [layer_name .lower () + '_' + var ] = precision
262
- else :
263
- self .layer_name_precision [layer_name .lower () + '_default' ] = precision_cfg
264
-
265
- rf = layer_cfg .get ('ReuseFactor' )
266
- if rf is not None :
267
- self .layer_name_rf [layer_name .lower ()] = rf
268
-
269
- targ_cycles = layer_cfg .get ('TargetCycles' )
270
- if targ_cycles is not None :
271
- self .layer_name_targ_cycles [layer_name .lower ()] = targ_cycles
272
-
273
- strategy = layer_cfg .get ('Strategy' )
274
- if strategy is not None :
275
- self .layer_name_strategy [layer_name .lower ()] = strategy
276
-
277
- conv_implementation = layer_cfg .get ('ConvImplementation' )
278
- if conv_implementation is not None :
279
- self .layer_name_conv_implementation [layer_name .lower ()] = conv_implementation
280
-
281
- compression = layer_cfg .get ('Compression' )
282
- if compression is not None :
283
- self .layer_name_compression [layer_name .lower ()] = bool (compression )
293
+ self .parse_name_config (layer_name , layer_cfg )
284
294
285
295
def _validate_hls_config (self ):
286
296
use_dataflow = False
0 commit comments