add preload function
This commit is contained in:
parent
c726744154
commit
72a90a4d8f
|
@ -562,20 +562,17 @@ size_t DeviceRRGSB::get_cb_unique_module_index(
|
|||
return cb_unique_module_id;
|
||||
}
|
||||
|
||||
void DeviceRRGSB::load_unique_cb_module_from_user_input(int x, int y){
|
||||
void DeviceRRGSB::preload_unique_cbx_module(int x, int y) {}
|
||||
|
||||
void DeviceRRGSB::preload_unique_cby_module(int x, int y) {}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void DeviceRRGSB::load_unique_sb_module_from_user_input(int ix, int iy){
|
||||
void DeviceRRGSB::preload_unique_sb_module(int ix, int iy) {
|
||||
vtr::Point<size_t> sb_coordinate(ix, iy);
|
||||
bool is_unique_module = true;
|
||||
|
||||
|
||||
for (size_t id = 0; id < get_num_sb_unique_module(); ++id) {
|
||||
/* Check whether the input module exists.*/
|
||||
if (sb_unique_module_[id].x() == ix && sb_unique_module_[id].y() == iy){
|
||||
/* Check whether the input module exists.*/
|
||||
if (sb_unique_module_[id].x() == ix && sb_unique_module_[id].y() == iy) {
|
||||
is_unique_module = false;
|
||||
sb_unique_module_id_[ix][iy] = id;
|
||||
break;
|
||||
|
@ -584,15 +581,39 @@ void DeviceRRGSB::load_unique_sb_module_from_user_input(int ix, int iy){
|
|||
if (true == is_unique_module) {
|
||||
sb_unique_module_.push_back(sb_coordinate);
|
||||
/* Record the id of unique mirror */
|
||||
sb_unique_module_id_[ix][iy] =sb_unique_module_.size() - 1;
|
||||
sb_unique_module_id_[ix][iy] = sb_unique_module_.size() - 1;
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceRRGSB::load_unique_gsb_module_from_user_input(int x, int y){
|
||||
|
||||
|
||||
|
||||
/* need to preload after cb and sb are preloaded */
|
||||
void DeviceRRGSB::preload_unique_gsb_module(int ix, int iy) {
|
||||
// vtr::Point<size_t> gsb_coordinate(ix, iy);
|
||||
// bool is_unique_module = true;
|
||||
|
||||
// for (size_t id = 0; id < get_num_gsb_unique_module(); ++id) {
|
||||
// const vtr::Point<size_t>& gsb_unique_module_coordinate =
|
||||
// gsb_unique_module_[id];
|
||||
// if ((sb_unique_module_id_[ix][iy] ==
|
||||
// sb_unique_module_id_[gsb_unique_module_coordinate.x()]
|
||||
// [gsb_unique_module_coordinate.y()]) &&
|
||||
// (cbx_unique_module_id_[ix][iy] ==
|
||||
// cbx_unique_module_id_[gsb_unique_module_coordinate.x()]
|
||||
// [gsb_unique_module_coordinate.y()]) &&
|
||||
// (cby_unique_module_id_[ix][iy] ==
|
||||
// cby_unique_module_id_[gsb_unique_module_coordinate.x()]
|
||||
// [gsb_unique_module_coordinate.y()])) {
|
||||
// /* This is a mirror, raise the flag and we finish */
|
||||
// is_unique_module = false;
|
||||
// /* Record the id of unique mirror */
|
||||
// gsb_unique_module_id_[ix][iy] = id;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if (true == is_unique_module) {
|
||||
// add_gsb_unique_module(gsb_coordinate);
|
||||
// /* Record the id of unique mirror */
|
||||
// gsb_unique_module_id_[ix][iy] = get_num_gsb_unique_module() - 1;
|
||||
// }
|
||||
}
|
||||
|
||||
} /* End namespace openfpga*/
|
||||
|
|
|
@ -95,9 +95,10 @@ class DeviceRRGSB {
|
|||
automatically identify and update the lists
|
||||
of unique mirrors and rotatable mirrors */
|
||||
void clear(); /* clean the content */
|
||||
void load_unique_cb_module_from_user_input(int x, int y);
|
||||
void load_unique_sb_module_from_user_input(int x, int y);
|
||||
void load_unique_gsb_module_from_user_input(int x, int y);
|
||||
void preload_unique_cbx_module(int x, int y);
|
||||
void preload_unique_cby_module(int x, int y);
|
||||
void preload_unique_sb_module(int x, int y);
|
||||
void preload_unique_gsb_module(int x, int y);
|
||||
private: /* Internal cleaners */
|
||||
void clear_gsb(); /* clean the content */
|
||||
void clear_cb_unique_module(const t_rr_type& cb_type); /* clean the content */
|
||||
|
|
|
@ -42,15 +42,15 @@ void read_xml_unique_instance_info(T& device_rr_gsb,
|
|||
pugi::xml_node& xml_instance_info,
|
||||
const pugiutil::loc_data& loc_data,
|
||||
std::string type) {
|
||||
std::string pass = "pass here";
|
||||
int instance_x = get_attribute(xml_instance_info, "x", loc_data).as_int();
|
||||
int instance_y = get_attribute(xml_instance_info, "y", loc_data).as_int();
|
||||
if (type == "sb") {
|
||||
device_rr_gsb.load_unique_sb_module_from_user_input(instance_x, instance_y);
|
||||
device_rr_gsb.preload_unique_sb_module(instance_x, instance_y);
|
||||
} else if (type == "cb") {
|
||||
// read_cb_unique_blocks();
|
||||
std::cout << "By pass here" << std::endl;
|
||||
} else if (type == "gsb") {
|
||||
/* should grab coordinates first and then by pass it to preload gsb*/
|
||||
std::cout << "By pass here" << std::endl;
|
||||
// read_gsb_unique_blocks();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue