@@ -994,7 +994,8 @@ e_block_pack_status try_pack_molecule(t_cluster_placement_stats* cluster_placeme
994
994
for (int i_mol = 0 ; i_mol < molecule_size; i_mol++) {
995
995
if (molecule->atom_block_ids [i_mol]) {
996
996
bool block_pack_noc_grp_status = atom_cluster_noc_group_check (molecule->atom_block_ids [i_mol],
997
- verbosity, temp_noc_grp_id);
997
+ clb_index, verbosity,
998
+ temp_noc_grp_id);
998
999
999
1000
if (!block_pack_noc_grp_status) {
1000
1001
// Record the failure of this molecule in the current pb stats
@@ -1111,9 +1112,7 @@ e_block_pack_status try_pack_molecule(t_cluster_placement_stats* cluster_placeme
1111
1112
// update cluster PartitionRegion if atom with floorplanning constraints was added
1112
1113
if (cluster_pr_update_check) {
1113
1114
floorplanning_ctx.cluster_constraints [clb_index] = temp_cluster_pr;
1114
- if (verbosity > 2 ) {
1115
- VTR_LOG (" \n Updated PartitionRegion of cluster %d\n " , clb_index);
1116
- }
1115
+ VTR_LOGV (verbosity > 2 , " \n Updated PartitionRegion of cluster %d\n " , clb_index);
1117
1116
}
1118
1117
1119
1118
for (int i = 0 ; i < molecule_size; i++) {
@@ -1333,9 +1332,9 @@ bool atom_cluster_floorplanning_check(AtomBlockId blk_id,
1333
1332
// if the atom does not belong to a partition, it can be put in the cluster
1334
1333
// regardless of what the cluster's PartitionRegion is because it has no constraints
1335
1334
if (partid == PartitionId::INVALID ()) {
1336
- if (verbosity > 3 ) {
1337
- VTR_LOG ( " \t\t\t Intersect: Atom block %d has no floorplanning constraints, passed for cluster %d \n " , blk_id, clb_index);
1338
- }
1335
+ VTR_LOGV (verbosity > 3 ,
1336
+ " \t\t\t Intersect: Atom block %d has no floorplanning constraints, passed for cluster %d \n " ,
1337
+ blk_id, clb_index);
1339
1338
cluster_pr_needs_update = false ;
1340
1339
return true ;
1341
1340
} else {
@@ -1348,9 +1347,9 @@ bool atom_cluster_floorplanning_check(AtomBlockId blk_id,
1348
1347
if (cluster_pr.empty ()) {
1349
1348
temp_cluster_pr = atom_pr;
1350
1349
cluster_pr_needs_update = true ;
1351
- if (verbosity > 3 ) {
1352
- VTR_LOG ( " \t\t\t Intersect: Atom block %d has floorplanning constraints, passed cluster %d which has empty PR\n " , blk_id, clb_index);
1353
- }
1350
+ VTR_LOGV (verbosity > 3 ,
1351
+ " \t\t\t Intersect: Atom block %d has floorplanning constraints, passed cluster %d which has empty PR\n " ,
1352
+ blk_id, clb_index);
1354
1353
return true ;
1355
1354
} else {
1356
1355
// update cluster_pr with the intersection of the cluster's PartitionRegion
@@ -1360,40 +1359,50 @@ bool atom_cluster_floorplanning_check(AtomBlockId blk_id,
1360
1359
1361
1360
// At this point, cluster_pr is the intersection of atom_pr and the clusters current pr
1362
1361
if (cluster_pr.empty ()) {
1363
- if (verbosity > 3 ) {
1364
- VTR_LOG ( " \t\t\t Intersect: Atom block %d failed floorplanning check for cluster %d \n " , blk_id, clb_index);
1365
- }
1362
+ VTR_LOGV (verbosity > 3 ,
1363
+ " \t\t\t Intersect: Atom block %d failed floorplanning check for cluster %d \n " ,
1364
+ blk_id, clb_index);
1366
1365
cluster_pr_needs_update = false ;
1367
1366
return false ;
1368
1367
} else {
1369
1368
// update the cluster's PartitionRegion with the intersecting PartitionRegion
1370
1369
temp_cluster_pr = cluster_pr;
1371
1370
cluster_pr_needs_update = true ;
1372
- if (verbosity > 3 ) {
1373
- VTR_LOG ( " \t\t\t Intersect: Atom block %d passed cluster %d, cluster PR was updated with intersection result \n " , blk_id, clb_index);
1374
- }
1371
+ VTR_LOGV (verbosity > 3 ,
1372
+ " \t\t\t Intersect: Atom block %d passed cluster %d, cluster PR was updated with intersection result \n " ,
1373
+ blk_id, clb_index);
1375
1374
return true ;
1376
1375
}
1377
1376
}
1378
1377
}
1379
1378
1380
1379
bool atom_cluster_noc_group_check (AtomBlockId blk_id,
1380
+ ClusterBlockId clb_index,
1381
1381
int verbosity,
1382
1382
NocGroupId& temp_cluster_noc_grp_id) {
1383
1383
const NocGroupId atom_noc_grp_id = g_vpr_ctx.cl_helper ().atom_noc_grp_id [blk_id];
1384
1384
1385
1385
if (temp_cluster_noc_grp_id == NocGroupId::INVALID ()) {
1386
1386
// the cluster does not have a NoC group
1387
1387
// assign the atom's NoC group to cluster
1388
+ VTR_LOGV (verbosity > 3 ,
1389
+ " \t\t\t NoC Group: Atom block %d passed cluster %d, cluster's NoC group was updated with the atom's group %d\n " ,
1390
+ blk_id, clb_index, (size_t )atom_noc_grp_id);
1388
1391
temp_cluster_noc_grp_id = atom_noc_grp_id;
1389
1392
return true ;
1390
1393
} else if (temp_cluster_noc_grp_id == atom_noc_grp_id) {
1391
1394
// the cluster has the same NoC group ID as the atom,
1392
1395
// so they are compatible
1396
+ VTR_LOGV (verbosity > 3 ,
1397
+ " \t\t\t NoC Group: Atom block %d passed cluster %d, cluster's NoC group was compatible with the atom's group %d\n " ,
1398
+ blk_id, clb_index, (size_t )atom_noc_grp_id);
1393
1399
return true ;
1394
1400
} else {
1395
1401
// the cluster belongs to a different NoC group than the atom's group,
1396
1402
// so they are incompatible
1403
+ VTR_LOGV (verbosity > 3 ,
1404
+ " \t\t\t NoC Group: Atom block %d failed NoC group check for cluster %d. Cluster's NoC group: %d, atom's NoC group: %d\n " ,
1405
+ blk_id, clb_index, (size_t )temp_cluster_noc_grp_id, size_t (atom_noc_grp_id));
1397
1406
return false ;
1398
1407
}
1399
1408
}
0 commit comments