@@ -333,6 +333,7 @@ void BLIF::Reader::create_hard_block_nodes(hard_block_models* models) {
333
333
vtr::free (mappings);
334
334
mappings = NULL ;
335
335
336
+ t_model* hb_model = NULL ;
336
337
nnode_t * new_node = allocate_nnode (my_location);
337
338
338
339
// Name the node subcircuit_name~hard_block_number so that the name is unique.
@@ -371,6 +372,11 @@ void BLIF::Reader::create_hard_block_nodes(hard_block_models* models) {
371
372
new_node->type = HARD_IP;
372
373
/* specify node name */
373
374
odin_sprintf (new_name, " \\ %s~%ld" , subcircuit_stripped_name, hard_block_number - 1 );
375
+ /* Detect used hard block for the blif generation */
376
+ hb_model = find_hard_block (subcircuit_stripped_name);
377
+ if (hb_model) {
378
+ hb_model->used = 1 ;
379
+ }
374
380
} else {
375
381
error_message (PARSE_BLIF, unknown_location,
376
382
" Unsupported subcircuit type (%s) in BLIF file.\n " , subcircuit_name);
@@ -449,7 +455,8 @@ void BLIF::Reader::create_hard_block_nodes(hard_block_models* models) {
449
455
|| new_node->type == ROM
450
456
|| new_node->type == SPRAM
451
457
|| new_node->type == DPRAM
452
- || new_node->type == MEMORY)
458
+ || new_node->type == MEMORY
459
+ || hb_model != NULL )
453
460
? get_hard_block_port_name (mapping)
454
461
: NULL ;
455
462
@@ -470,7 +477,8 @@ void BLIF::Reader::create_hard_block_nodes(hard_block_models* models) {
470
477
|| new_node->type == ROM
471
478
|| new_node->type == SPRAM
472
479
|| new_node->type == DPRAM
473
- || new_node->type == MEMORY)
480
+ || new_node->type == MEMORY
481
+ || hb_model != NULL )
474
482
? get_hard_block_port_name (mapping)
475
483
: NULL ;
476
484
0 commit comments