[core] code format
This commit is contained in:
parent
327f7f4dab
commit
ee59bdb675
|
@ -39,7 +39,8 @@ static void update_cluster_pin_with_post_routing_results(
|
||||||
const e_side& border_side, const size_t& z, const bool& verbose) {
|
const e_side& border_side, const size_t& z, const bool& verbose) {
|
||||||
/* Handle each pin */
|
/* Handle each pin */
|
||||||
auto logical_block = clustering_ctx.clb_nlist.block_type(blk_id);
|
auto logical_block = clustering_ctx.clb_nlist.block_type(blk_id);
|
||||||
auto physical_tile = device_ctx.grid.get_physical_type(grid_coord.x(), grid_coord.y());
|
auto physical_tile =
|
||||||
|
device_ctx.grid.get_physical_type(grid_coord.x(), grid_coord.y());
|
||||||
|
|
||||||
for (int j = 0; j < logical_block->pb_type->num_pins; j++) {
|
for (int j = 0; j < logical_block->pb_type->num_pins; j++) {
|
||||||
/* Get the ptc num for the pin in rr_graph, we need t consider the z offset
|
/* Get the ptc num for the pin in rr_graph, we need t consider the z offset
|
||||||
|
@ -222,10 +223,10 @@ void update_pb_pin_with_post_routing_results(
|
||||||
|
|
||||||
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
||||||
for (const vtr::Point<size_t>& io_coord : io_coordinates[io_side]) {
|
for (const vtr::Point<size_t>& io_coord : io_coordinates[io_side]) {
|
||||||
t_physical_tile_type_ptr phy_tile_type = device_ctx.grid.get_physical_type(io_coord.x(), io_coord.y());
|
t_physical_tile_type_ptr phy_tile_type =
|
||||||
|
device_ctx.grid.get_physical_type(io_coord.x(), io_coord.y());
|
||||||
/* Bypass EMPTY grid */
|
/* Bypass EMPTY grid */
|
||||||
if (true ==
|
if (true == is_empty_type(phy_tile_type)) {
|
||||||
is_empty_type(phy_tile_type)) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* Get the mapped blocks to this grid */
|
/* Get the mapped blocks to this grid */
|
||||||
|
|
|
@ -50,7 +50,8 @@ IoLocationMap build_fabric_io_location_map(const ModuleManager& module_manager,
|
||||||
ModuleId child = module_manager.io_children(top_module)[ichild];
|
ModuleId child = module_manager.io_children(top_module)[ichild];
|
||||||
vtr::Point<int> coord =
|
vtr::Point<int> coord =
|
||||||
module_manager.io_child_coordinates(top_module)[ichild];
|
module_manager.io_child_coordinates(top_module)[ichild];
|
||||||
t_physical_tile_type_ptr phy_tile_type = grids.get_physical_type(coord.x(), coord.y());
|
t_physical_tile_type_ptr phy_tile_type =
|
||||||
|
grids.get_physical_type(coord.x(), coord.y());
|
||||||
|
|
||||||
/* Bypass EMPTY grid */
|
/* Bypass EMPTY grid */
|
||||||
if (true == is_empty_type(phy_tile_type)) {
|
if (true == is_empty_type(phy_tile_type)) {
|
||||||
|
|
|
@ -76,8 +76,8 @@ std::string generate_sb_module_grid_port_name(
|
||||||
/* Collect the attributes of the rr_node required to generate the port name */
|
/* Collect the attributes of the rr_node required to generate the port name */
|
||||||
int pin_id = rr_graph.node_pin_num(rr_node);
|
int pin_id = rr_graph.node_pin_num(rr_node);
|
||||||
e_side pin_side = get_rr_graph_single_node_side(rr_graph, rr_node);
|
e_side pin_side = get_rr_graph_single_node_side(rr_graph, rr_node);
|
||||||
t_physical_tile_type_ptr physical_tile =
|
t_physical_tile_type_ptr physical_tile = vpr_device_grid.get_physical_type(
|
||||||
vpr_device_grid.get_physical_type(rr_graph.node_xlow(rr_node), rr_graph.node_ylow(rr_node));
|
rr_graph.node_xlow(rr_node), rr_graph.node_ylow(rr_node));
|
||||||
int pin_width_offset = physical_tile->pin_width_offset[pin_id];
|
int pin_width_offset = physical_tile->pin_width_offset[pin_id];
|
||||||
int pin_height_offset = physical_tile->pin_height_offset[pin_id];
|
int pin_height_offset = physical_tile->pin_height_offset[pin_id];
|
||||||
BasicPort pin_info =
|
BasicPort pin_info =
|
||||||
|
@ -110,8 +110,8 @@ std::string generate_cb_module_grid_port_name(
|
||||||
/* Collect the attributes of the rr_node required to generate the port name */
|
/* Collect the attributes of the rr_node required to generate the port name */
|
||||||
int pin_id = rr_graph.node_pin_num(rr_node);
|
int pin_id = rr_graph.node_pin_num(rr_node);
|
||||||
e_side pin_side = get_rr_graph_single_node_side(rr_graph, rr_node);
|
e_side pin_side = get_rr_graph_single_node_side(rr_graph, rr_node);
|
||||||
t_physical_tile_type_ptr physical_tile =
|
t_physical_tile_type_ptr physical_tile = vpr_device_grid.get_physical_type(
|
||||||
vpr_device_grid.get_physical_type(rr_graph.node_xlow(rr_node), rr_graph.node_ylow(rr_node));
|
rr_graph.node_xlow(rr_node), rr_graph.node_ylow(rr_node));
|
||||||
int pin_width_offset = physical_tile->pin_width_offset[pin_id];
|
int pin_width_offset = physical_tile->pin_width_offset[pin_id];
|
||||||
int pin_height_offset = physical_tile->pin_height_offset[pin_id];
|
int pin_height_offset = physical_tile->pin_height_offset[pin_id];
|
||||||
BasicPort pin_info =
|
BasicPort pin_info =
|
||||||
|
|
|
@ -108,15 +108,15 @@ static vtr::Matrix<size_t> add_top_module_grid_instances(
|
||||||
|
|
||||||
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
||||||
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[io_side]) {
|
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[io_side]) {
|
||||||
t_physical_tile_type_ptr phy_tile_type = grids.get_physical_type(io_coordinate.x(), io_coordinate.y());
|
t_physical_tile_type_ptr phy_tile_type =
|
||||||
|
grids.get_physical_type(io_coordinate.x(), io_coordinate.y());
|
||||||
/* Bypass EMPTY grid */
|
/* Bypass EMPTY grid */
|
||||||
if (true ==
|
if (true == is_empty_type(phy_tile_type)) {
|
||||||
is_empty_type(phy_tile_type)) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* Skip width, height > 1 tiles (mostly heterogeneous blocks) */
|
/* Skip width, height > 1 tiles (mostly heterogeneous blocks) */
|
||||||
if ((0 < grids.get_width_offset(io_coordinate.x(), io_coordinate.y())) ||
|
if ((0 < grids.get_width_offset(io_coordinate.x(), io_coordinate.y())) ||
|
||||||
(0 < grids.get_height_offset(io_coordinate.x(),io_coordinate.y()))) {
|
(0 < grids.get_height_offset(io_coordinate.x(), io_coordinate.y()))) {
|
||||||
/* Find the root of this grid, the instance id should be valid.
|
/* Find the root of this grid, the instance id should be valid.
|
||||||
* We just copy it here
|
* We just copy it here
|
||||||
*/
|
*/
|
||||||
|
@ -134,10 +134,8 @@ static vtr::Matrix<size_t> add_top_module_grid_instances(
|
||||||
|
|
||||||
/* Add a grid module to top_module*/
|
/* Add a grid module to top_module*/
|
||||||
grid_instance_ids[io_coordinate.x()][io_coordinate.y()] =
|
grid_instance_ids[io_coordinate.x()][io_coordinate.y()] =
|
||||||
add_top_module_grid_instance(
|
add_top_module_grid_instance(module_manager, top_module, phy_tile_type,
|
||||||
module_manager, top_module,
|
io_side, io_coordinate);
|
||||||
phy_tile_type, io_side,
|
|
||||||
io_coordinate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,7 +158,8 @@ static vtr::Matrix<size_t> add_top_module_grid_instances(
|
||||||
/* Find the root of this grid, the instance id should be valid.
|
/* Find the root of this grid, the instance id should be valid.
|
||||||
* We just copy it here
|
* We just copy it here
|
||||||
*/
|
*/
|
||||||
vtr::Point<size_t> root_grid_coord(ix - grids.get_width_offset(ix, iy),
|
vtr::Point<size_t> root_grid_coord(
|
||||||
|
ix - grids.get_width_offset(ix, iy),
|
||||||
iy - grids.get_height_offset(ix, iy));
|
iy - grids.get_height_offset(ix, iy));
|
||||||
VTR_ASSERT(size_t(-1) !=
|
VTR_ASSERT(size_t(-1) !=
|
||||||
grid_instance_ids[root_grid_coord.x()][root_grid_coord.y()]);
|
grid_instance_ids[root_grid_coord.x()][root_grid_coord.y()]);
|
||||||
|
@ -326,7 +325,8 @@ static void add_top_module_io_children(
|
||||||
|
|
||||||
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
||||||
for (const vtr::Point<size_t>& io_coord : io_coordinates[io_side]) {
|
for (const vtr::Point<size_t>& io_coord : io_coordinates[io_side]) {
|
||||||
t_physical_tile_type_ptr grid_type = grids.get_physical_type(io_coord.x(), io_coord.y());
|
t_physical_tile_type_ptr grid_type =
|
||||||
|
grids.get_physical_type(io_coord.x(), io_coord.y());
|
||||||
/* Bypass EMPTY grid */
|
/* Bypass EMPTY grid */
|
||||||
if (true == is_empty_type(grid_type)) {
|
if (true == is_empty_type(grid_type)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -394,7 +394,8 @@ static void add_top_module_io_children(
|
||||||
|
|
||||||
/* Now walk through the coordinates */
|
/* Now walk through the coordinates */
|
||||||
for (vtr::Point<size_t> coord : coords) {
|
for (vtr::Point<size_t> coord : coords) {
|
||||||
t_physical_tile_type_ptr grid_type = grids.get_physical_type(coord.x(), coord.y());
|
t_physical_tile_type_ptr grid_type =
|
||||||
|
grids.get_physical_type(coord.x(), coord.y());
|
||||||
/* Bypass EMPTY grid */
|
/* Bypass EMPTY grid */
|
||||||
if (true == is_empty_type(grid_type)) {
|
if (true == is_empty_type(grid_type)) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -1038,7 +1038,8 @@ static int build_top_module_global_net_from_grid_modules(
|
||||||
/* Spot the port from child modules from core grids */
|
/* Spot the port from child modules from core grids */
|
||||||
for (size_t ix = start_coord.x(); ix < end_coord.x(); ++ix) {
|
for (size_t ix = start_coord.x(); ix < end_coord.x(); ++ix) {
|
||||||
for (size_t iy = start_coord.y(); iy < end_coord.y(); ++iy) {
|
for (size_t iy = start_coord.y(); iy < end_coord.y(); ++iy) {
|
||||||
t_physical_tile_type_ptr phy_tile_type = grids.get_physical_type(ix, iy);
|
t_physical_tile_type_ptr phy_tile_type =
|
||||||
|
grids.get_physical_type(ix, iy);
|
||||||
/* Bypass EMPTY tiles */
|
/* Bypass EMPTY tiles */
|
||||||
if (true == is_empty_type(phy_tile_type)) {
|
if (true == is_empty_type(phy_tile_type)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1068,23 +1069,23 @@ static int build_top_module_global_net_from_grid_modules(
|
||||||
/* Walk through all the grids on the perimeter, which are I/O grids */
|
/* Walk through all the grids on the perimeter, which are I/O grids */
|
||||||
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
||||||
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[io_side]) {
|
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[io_side]) {
|
||||||
t_physical_tile_type_ptr phy_tile_type = grids.get_physical_type(io_coordinate.x(), io_coordinate.y());
|
t_physical_tile_type_ptr phy_tile_type =
|
||||||
|
grids.get_physical_type(io_coordinate.x(), io_coordinate.y());
|
||||||
/* Bypass EMPTY grid */
|
/* Bypass EMPTY grid */
|
||||||
if (true ==
|
if (true == is_empty_type(phy_tile_type)) {
|
||||||
is_empty_type(phy_tile_type)) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skip width or height > 1 tiles (mostly heterogeneous blocks) */
|
/* Skip width or height > 1 tiles (mostly heterogeneous blocks) */
|
||||||
if ((0 < grids.get_width_offset(io_coordinate.x(), io_coordinate.y())) ||
|
if ((0 <
|
||||||
(0 < grids.get_height_offset(io_coordinate.x(), io_coordinate.y()))) {
|
grids.get_width_offset(io_coordinate.x(), io_coordinate.y())) ||
|
||||||
|
(0 <
|
||||||
|
grids.get_height_offset(io_coordinate.x(), io_coordinate.y()))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bypass the tiles whose names do not match */
|
/* Bypass the tiles whose names do not match */
|
||||||
if (std::string(
|
if (std::string(phy_tile_type->name) != tile_name) {
|
||||||
phy_tile_type->name) !=
|
|
||||||
tile_name) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,11 +28,12 @@ std::string generate_grid_block_module_name_in_top_module(
|
||||||
/* Determine if the grid locates at the border */
|
/* Determine if the grid locates at the border */
|
||||||
vtr::Point<size_t> device_size(grids.width(), grids.height());
|
vtr::Point<size_t> device_size(grids.width(), grids.height());
|
||||||
e_side border_side = find_grid_border_side(device_size, grid_coord);
|
e_side border_side = find_grid_border_side(device_size, grid_coord);
|
||||||
t_physical_tile_type_ptr phy_tile_type = grids.get_physical_type(grid_coord.x(), grid_coord.y());
|
t_physical_tile_type_ptr phy_tile_type =
|
||||||
|
grids.get_physical_type(grid_coord.x(), grid_coord.y());
|
||||||
|
|
||||||
return generate_grid_block_module_name(
|
return generate_grid_block_module_name(
|
||||||
prefix, std::string(phy_tile_type->name),
|
prefix, std::string(phy_tile_type->name), is_io_type(phy_tile_type),
|
||||||
is_io_type(phy_tile_type), border_side);
|
border_side);
|
||||||
}
|
}
|
||||||
|
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
|
|
|
@ -859,8 +859,8 @@ void build_grid_bitstream(
|
||||||
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
for (const e_side& io_side : FPGA_SIDES_CLOCKWISE) {
|
||||||
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[io_side]) {
|
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[io_side]) {
|
||||||
/* Bypass EMPTY grid */
|
/* Bypass EMPTY grid */
|
||||||
if (true ==
|
if (true == is_empty_type(grids.get_physical_type(io_coordinate.x(),
|
||||||
is_empty_type(grids.get_physical_type(io_coordinate.x(), io_coordinate.y()))) {
|
io_coordinate.y()))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* Skip height > 1 tiles (mostly heterogeneous blocks) */
|
/* Skip height > 1 tiles (mostly heterogeneous blocks) */
|
||||||
|
|
|
@ -401,7 +401,8 @@ static void build_inner_column_row_tile_direct(
|
||||||
/* Walk through the device fabric and find the grid that fit the source */
|
/* Walk through the device fabric and find the grid that fit the source */
|
||||||
for (size_t x = 0; x < device_ctx.grid.width(); ++x) {
|
for (size_t x = 0; x < device_ctx.grid.width(); ++x) {
|
||||||
for (size_t y = 0; y < device_ctx.grid.height(); ++y) {
|
for (size_t y = 0; y < device_ctx.grid.height(); ++y) {
|
||||||
t_physical_tile_type_ptr from_phy_tile_type = device_ctx.grid.get_physical_type(x, y);
|
t_physical_tile_type_ptr from_phy_tile_type =
|
||||||
|
device_ctx.grid.get_physical_type(x, y);
|
||||||
/* Bypass empty grid */
|
/* Bypass empty grid */
|
||||||
if (true == is_empty_type(from_phy_tile_type)) {
|
if (true == is_empty_type(from_phy_tile_type)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -436,10 +437,11 @@ static void build_inner_column_row_tile_direct(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
t_physical_tile_type_ptr to_phy_tile_type = device_ctx.grid.get_physical_type(to_grid_coord.x(), to_grid_coord.y());
|
t_physical_tile_type_ptr to_phy_tile_type =
|
||||||
|
device_ctx.grid.get_physical_type(to_grid_coord.x(),
|
||||||
|
to_grid_coord.y());
|
||||||
/* Bypass the grid that does not fit the from_tile name */
|
/* Bypass the grid that does not fit the from_tile name */
|
||||||
if (to_tile_name !=
|
if (to_tile_name != std::string(to_phy_tile_type->name)) {
|
||||||
std::string(to_phy_tile_type->name)) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -449,10 +451,12 @@ static void build_inner_column_row_tile_direct(
|
||||||
*/
|
*/
|
||||||
for (const e_side& to_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
for (const e_side& to_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
||||||
/* Try to find the pin in this tile */
|
/* Try to find the pin in this tile */
|
||||||
std::vector<size_t> to_pins = find_physical_tile_pin_id(
|
std::vector<size_t> to_pins =
|
||||||
to_phy_tile_type,
|
find_physical_tile_pin_id(to_phy_tile_type,
|
||||||
device_ctx.grid.get_width_offset(to_grid_coord.x(), to_grid_coord.y()),
|
device_ctx.grid.get_width_offset(
|
||||||
device_ctx.grid.get_height_offset(to_grid_coord.x(), to_grid_coord.y()),
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
|
device_ctx.grid.get_height_offset(
|
||||||
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
to_tile_port, to_side);
|
to_tile_port, to_side);
|
||||||
/* If nothing found, we can continue */
|
/* If nothing found, we can continue */
|
||||||
if (0 == to_pins.size()) {
|
if (0 == to_pins.size()) {
|
||||||
|
@ -590,10 +594,13 @@ static void build_inter_column_row_tile_direct(
|
||||||
*/
|
*/
|
||||||
for (const e_side& from_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
for (const e_side& from_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
||||||
/* Try to find the pin in this tile */
|
/* Try to find the pin in this tile */
|
||||||
std::vector<size_t> from_pins = find_physical_tile_pin_id(
|
std::vector<size_t> from_pins =
|
||||||
device_ctx.grid.get_physical_type(from_grid_coord.x(), from_grid_coord.y()),
|
find_physical_tile_pin_id(device_ctx.grid.get_physical_type(
|
||||||
device_ctx.grid.get_width_offset(from_grid_coord.x(), from_grid_coord.y()),
|
from_grid_coord.x(), from_grid_coord.y()),
|
||||||
device_ctx.grid.get_height_offset(from_grid_coord.x(), from_grid_coord.y()),
|
device_ctx.grid.get_width_offset(
|
||||||
|
from_grid_coord.x(), from_grid_coord.y()),
|
||||||
|
device_ctx.grid.get_height_offset(
|
||||||
|
from_grid_coord.x(), from_grid_coord.y()),
|
||||||
from_tile_port, from_side);
|
from_tile_port, from_side);
|
||||||
/* If nothing found, we can continue */
|
/* If nothing found, we can continue */
|
||||||
if (0 == from_pins.size()) {
|
if (0 == from_pins.size()) {
|
||||||
|
@ -618,10 +625,13 @@ static void build_inter_column_row_tile_direct(
|
||||||
*/
|
*/
|
||||||
for (const e_side& to_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
for (const e_side& to_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
||||||
/* Try to find the pin in this tile */
|
/* Try to find the pin in this tile */
|
||||||
std::vector<size_t> to_pins = find_physical_tile_pin_id(
|
std::vector<size_t> to_pins =
|
||||||
device_ctx.grid.get_physical_type(to_grid_coord.x(), to_grid_coord.y()),
|
find_physical_tile_pin_id(device_ctx.grid.get_physical_type(
|
||||||
device_ctx.grid.get_width_offset(to_grid_coord.x(), to_grid_coord.y()),
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
device_ctx.grid.get_height_offset(to_grid_coord.x(), to_grid_coord.y()),
|
device_ctx.grid.get_width_offset(
|
||||||
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
|
device_ctx.grid.get_height_offset(
|
||||||
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
to_tile_port, to_side);
|
to_tile_port, to_side);
|
||||||
/* If nothing found, we can continue */
|
/* If nothing found, we can continue */
|
||||||
if (0 == to_pins.size()) {
|
if (0 == to_pins.size()) {
|
||||||
|
@ -697,10 +707,13 @@ static void build_inter_column_row_tile_direct(
|
||||||
*/
|
*/
|
||||||
for (const e_side& from_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
for (const e_side& from_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
||||||
/* Try to find the pin in this tile */
|
/* Try to find the pin in this tile */
|
||||||
std::vector<size_t> from_pins = find_physical_tile_pin_id(
|
std::vector<size_t> from_pins =
|
||||||
device_ctx.grid.get_physical_type(from_grid_coord.x(), from_grid_coord.y()),
|
find_physical_tile_pin_id(device_ctx.grid.get_physical_type(
|
||||||
device_ctx.grid.get_width_offset(from_grid_coord.x(), from_grid_coord.y()),
|
from_grid_coord.x(), from_grid_coord.y()),
|
||||||
device_ctx.grid.get_height_offset(from_grid_coord.x(), from_grid_coord.y()),
|
device_ctx.grid.get_width_offset(
|
||||||
|
from_grid_coord.x(), from_grid_coord.y()),
|
||||||
|
device_ctx.grid.get_height_offset(
|
||||||
|
from_grid_coord.x(), from_grid_coord.y()),
|
||||||
from_tile_port, from_side);
|
from_tile_port, from_side);
|
||||||
/* If nothing found, we can continue */
|
/* If nothing found, we can continue */
|
||||||
if (0 == from_pins.size()) {
|
if (0 == from_pins.size()) {
|
||||||
|
@ -725,10 +738,13 @@ static void build_inter_column_row_tile_direct(
|
||||||
*/
|
*/
|
||||||
for (const e_side& to_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
for (const e_side& to_side : {TOP, RIGHT, BOTTOM, LEFT}) {
|
||||||
/* Try to find the pin in this tile */
|
/* Try to find the pin in this tile */
|
||||||
std::vector<size_t> to_pins = find_physical_tile_pin_id(
|
std::vector<size_t> to_pins =
|
||||||
device_ctx.grid.get_physical_type(to_grid_coord.x(), to_grid_coord.y()),
|
find_physical_tile_pin_id(device_ctx.grid.get_physical_type(
|
||||||
device_ctx.grid.get_width_offset(to_grid_coord.x(), to_grid_coord.y()),
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
device_ctx.grid.get_height_offset(to_grid_coord.x(), to_grid_coord.y()),
|
device_ctx.grid.get_width_offset(
|
||||||
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
|
device_ctx.grid.get_height_offset(
|
||||||
|
to_grid_coord.x(), to_grid_coord.y()),
|
||||||
to_tile_port, to_side);
|
to_tile_port, to_side);
|
||||||
/* If nothing found, we can continue */
|
/* If nothing found, we can continue */
|
||||||
if (0 == to_pins.size()) {
|
if (0 == to_pins.size()) {
|
||||||
|
|
|
@ -108,7 +108,8 @@ std::set<e_side> find_physical_io_tile_located_sides(
|
||||||
for (const e_side& fpga_side : FPGA_SIDES_CLOCKWISE) {
|
for (const e_side& fpga_side : FPGA_SIDES_CLOCKWISE) {
|
||||||
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[fpga_side]) {
|
for (const vtr::Point<size_t>& io_coordinate : io_coordinates[fpga_side]) {
|
||||||
/* If located in center, we add a NUM_SIDES and finish */
|
/* If located in center, we add a NUM_SIDES and finish */
|
||||||
if (physical_tile == grids.get_physical_type(io_coordinate.x(), io_coordinate.y())) {
|
if (physical_tile ==
|
||||||
|
grids.get_physical_type(io_coordinate.x(), io_coordinate.y())) {
|
||||||
io_sides.insert(fpga_side);
|
io_sides.insert(fpga_side);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue