update print_route() in VPR to show correct track_id when tileable routing is used
This commit is contained in:
parent
b4221e94bb
commit
3b3c39454b
|
@ -1490,13 +1490,36 @@ void print_route(FILE* fp, const vtr::vector<ClusterNetId, t_traceback>& traceba
|
||||||
} else { /* IO Pad. */
|
} else { /* IO Pad. */
|
||||||
fprintf(fp, " Pin: ");
|
fprintf(fp, " Pin: ");
|
||||||
}
|
}
|
||||||
|
fprintf(fp, "%d ", device_ctx.rr_graph.node_pin_num(inode));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHANX:
|
case CHANX:
|
||||||
case CHANY:
|
case CHANY:
|
||||||
fprintf(fp, " Track: ");
|
fprintf(fp, " Track: ");
|
||||||
|
/* Xifan Tang:
|
||||||
|
* The routing track id depends on the direction
|
||||||
|
* A routing track may have multiple track ids
|
||||||
|
* The track id is the starting point of a routing track
|
||||||
|
* - INC_DIRECTION: the first track id in the list
|
||||||
|
* - DEC_DIRECTION: the last track id in the list
|
||||||
|
*
|
||||||
|
* This is because (xlow, ylow) is always < (xhigh, yhigh)
|
||||||
|
* which is even true for DEC_DIRECTION routing tracks
|
||||||
|
*/
|
||||||
|
if (1 < device_ctx.rr_graph.node_track_ids(inode).size()) {
|
||||||
|
fprintf(fp, "(");
|
||||||
|
for (size_t itrack = 0; itrack < device_ctx.rr_graph.node_track_ids(inode).size(); ++itrack) {
|
||||||
|
if (0 < itrack) {
|
||||||
|
fprintf(fp, ", ");
|
||||||
|
}
|
||||||
|
fprintf(fp, "%d", device_ctx.rr_graph.node_track_ids(inode)[itrack]);
|
||||||
|
}
|
||||||
|
fprintf(fp, ") ");
|
||||||
|
} else {
|
||||||
|
VTR_ASSERT(1 == device_ctx.rr_graph.node_track_ids(inode).size());
|
||||||
|
fprintf(fp, "%d ", device_ctx.rr_graph.node_track_num(inode));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SOURCE:
|
case SOURCE:
|
||||||
case SINK:
|
case SINK:
|
||||||
if (is_io_type(device_ctx.grid[ilow][jlow].type)) {
|
if (is_io_type(device_ctx.grid[ilow][jlow].type)) {
|
||||||
|
@ -1504,6 +1527,7 @@ void print_route(FILE* fp, const vtr::vector<ClusterNetId, t_traceback>& traceba
|
||||||
} else { /* IO Pad. */
|
} else { /* IO Pad. */
|
||||||
fprintf(fp, " Class: ");
|
fprintf(fp, " Class: ");
|
||||||
}
|
}
|
||||||
|
fprintf(fp, "%d ", device_ctx.rr_graph.node_class_num(inode));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1513,7 +1537,7 @@ void print_route(FILE* fp, const vtr::vector<ClusterNetId, t_traceback>& traceba
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(fp, "%d ", device_ctx.rr_graph.node_ptc_num(inode));
|
//fprintf(fp, "%d ", device_ctx.rr_graph.node_ptc_num(inode));
|
||||||
|
|
||||||
if (!is_io_type(device_ctx.grid[ilow][jlow].type) && (rr_type == IPIN || rr_type == OPIN)) {
|
if (!is_io_type(device_ctx.grid[ilow][jlow].type) && (rr_type == IPIN || rr_type == OPIN)) {
|
||||||
int pin_num = device_ctx.rr_graph.node_ptc_num(inode);
|
int pin_num = device_ctx.rr_graph.node_ptc_num(inode);
|
||||||
|
|
Loading…
Reference in New Issue