[core] debugging

This commit is contained in:
tangxifan 2023-07-19 12:49:35 -07:00
parent 48e207d3e4
commit d03fa92ddf
2 changed files with 8 additions and 6 deletions

View File

@ -73,7 +73,7 @@ FabricTileId FabricTile::find_tile(const vtr::Point<size_t>& coord) const {
bool FabricTile::pb_in_tile(const FabricTileId& tile_id,
const vtr::Point<size_t>& coord) const {
return find_pb_index_in_tile(tile_id, coord) != pb_coords_.size();
return !pb_coords_[tile_id].empty() && find_pb_index_in_tile(tile_id, coord) != pb_coords_[tile_id].size();
}
size_t FabricTile::find_pb_index_in_tile(
@ -91,7 +91,7 @@ size_t FabricTile::find_pb_index_in_tile(
bool FabricTile::sb_in_tile(const FabricTileId& tile_id,
const vtr::Point<size_t>& coord) const {
return find_sb_index_in_tile(tile_id, coord) != sb_coords_.size();
return !sb_coords_[tile_id].empty() && find_sb_index_in_tile(tile_id, coord) != sb_coords_[tile_id].size();
}
size_t FabricTile::find_sb_index_in_tile(
@ -112,11 +112,11 @@ bool FabricTile::cb_in_tile(const FabricTileId& tile_id,
const vtr::Point<size_t>& coord) const {
switch (cb_type) {
case CHANX:
return find_cb_index_in_tile(tile_id, cb_type, coord) ==
cbx_coords_.size();
return !cbx_coords_[tile_id].empty() && find_cb_index_in_tile(tile_id, cb_type, coord) ==
cbx_coords_[tile_id].size();
case CHANY:
return find_cb_index_in_tile(tile_id, cb_type, coord) ==
cby_coords_.size();
return !cby_coords_[tile_id].empty() && find_cb_index_in_tile(tile_id, cb_type, coord) ==
cby_coords_[tile_id].size();
default:
VTR_LOG("Invalid type of connection block!\n");
exit(1);

View File

@ -168,6 +168,7 @@ static int build_tile_module_port_and_nets_between_sb_and_pb(
/* Check if the grid is inside the tile, if not, create ports */
if (fabric_tile.pb_in_tile(fabric_tile_id, grid_coordinate)) {
VTR_LOGV(verbose, "Build intra-tile nets between switch block '%s' and programmable block '%s'\n", sink_sb_module_name.c_str(), src_grid_module_name.c_str());
if (!frame_view) {
size_t src_grid_instance =
pb_instances[fabric_tile.find_pb_index_in_tile(fabric_tile_id,
@ -1005,6 +1006,7 @@ static int build_tile_module(
vtr::Point<size_t> grid_coord = grid_rr_gsb.get_grid_coordinate();
t_physical_tile_type_ptr phy_tile =
grids.get_physical_type(grid_coord.x(), grid_coord.y());
VTR_LOGV(verbose, "Try to find pb at [%lu][%lu]\n", grid_coord.x(), grid_coord.y());
/* Empty type does not require a module */
if (!is_empty_type(phy_tile)) {
e_side grid_side = find_grid_border_side(