2020-11-03 14:21:50 -06:00
|
|
|
#ifndef OPENFPGA_DEVICE_GRID_UTILS_H
|
|
|
|
#define OPENFPGA_DEVICE_GRID_UTILS_H
|
|
|
|
|
|
|
|
/********************************************************************
|
|
|
|
* Include header files that are required by function declaration
|
|
|
|
*******************************************************************/
|
|
|
|
#include <map>
|
2022-10-06 19:08:50 -05:00
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
2020-11-03 14:21:50 -06:00
|
|
|
#include "device_grid.h"
|
|
|
|
#include "vtr_geometry.h"
|
|
|
|
|
|
|
|
/********************************************************************
|
|
|
|
* Function declaration
|
|
|
|
*******************************************************************/
|
|
|
|
|
|
|
|
/* begin namespace openfpga */
|
|
|
|
namespace openfpga {
|
|
|
|
|
|
|
|
/* A constant array to walk through FPGA border sides clockwise*/
|
|
|
|
constexpr std::array<e_side, 4> FPGA_SIDES_CLOCKWISE{TOP, RIGHT, BOTTOM, LEFT};
|
|
|
|
|
2022-10-06 19:08:50 -05:00
|
|
|
std::map<e_side, std::vector<vtr::Point<size_t>>>
|
|
|
|
generate_perimeter_grid_coordinates(const DeviceGrid& grids);
|
2020-11-03 14:21:50 -06:00
|
|
|
|
2023-07-20 01:26:55 -05:00
|
|
|
std::map<e_side, std::vector<vtr::Point<size_t>>>
|
|
|
|
generate_perimeter_tile_coordinates(const DeviceGrid& grids);
|
|
|
|
|
2020-11-03 14:21:50 -06:00
|
|
|
} /* end namespace openfpga */
|
|
|
|
|
|
|
|
#endif
|