From 08ec3760e4a84cc9ddcf77b1ee1e9cd510fdc44e Mon Sep 17 00:00:00 2001 From: Lin Date: Sun, 29 Sep 2024 10:46:50 +0800 Subject: [PATCH] mod read bin --- .../src/annotation/read_xml_unique_blocks.cpp | 20 +++++++++---------- .../src/annotation/read_xml_unique_blocks.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/openfpga/src/annotation/read_xml_unique_blocks.cpp b/openfpga/src/annotation/read_xml_unique_blocks.cpp index 92d47d2ff..87cb6873f 100644 --- a/openfpga/src/annotation/read_xml_unique_blocks.cpp +++ b/openfpga/src/annotation/read_xml_unique_blocks.cpp @@ -111,7 +111,6 @@ int read_xml_unique_blocks(DeviceRRGSB& device_rr_gsb, const char* file_name, pugi::xml_node xml_root = get_single_child(doc, "unique_blocks", loc_data); /* clear unique modules & reserve memory to relavant vectors */ device_rr_gsb.clear_unique_modules(); - // vtr::Point grid_coord(rr_gsb_.size()); device_rr_gsb.reserve_unique_modules(); /* load unique blocks xml file and set up device_rr_gdb */ @@ -159,7 +158,7 @@ int read_xml_unique_blocks(DeviceRRGSB& device_rr_gsb, const char* file_name, /*read the instances' coordinate of a unique block from a bin file*/ std::vector> read_bin_unique_instance_coords( - const uniqueblockcap::BlockInfo::Reader& unique_block) { + const uniqueblockcap::UniqueBlockPacked::Reader& unique_block) { std::vector> instance_coords; if (unique_block.hasInstanceList()) { auto instance_list = unique_block.getInstanceList(); @@ -175,11 +174,12 @@ std::vector> read_bin_unique_instance_coords( /*read the unique block coordinate from a bin file */ vtr::Point read_bin_unique_block_coord( - const uniqueblockcap::BlockInfo::Reader& unique_block) { + const uniqueblockcap::BlockInfo::Reader& unique_block, std::string type) { auto block_info = unique_block.getBlockInfo(); std::string type = block_info.getType().Cstr(); int block_x = block_info.getX(); int block_y = block_info.getY(); + type = block_info.getType(); vtr::Point block_coordinate(block_x, block_y); return block_coordinate; } @@ -189,27 +189,27 @@ int read_bin_unique_blocks(DeviceRRGSB& device_rr_gsb, const char* file_name, bool verbose_output) { /* clear unique modules & reserve memory to relavant vectors */ device_rr_gsb.clear_unique_modules(); - // vtr::Point grid_coord(rr_gsb_.size()); device_rr_gsb.reserve_unique_modules(); MmapFile f(file_name); - ::uniqueblockcap::FlatArrayMessageReader reader(f.getData()); + ::capnp::FlatArrayMessageReader reader(f.getData()); auto root = reader.getRoot(); if (root.hasAtomInfo()) { auto block_list = root.getAtomInfo(); for (auto unqiue_block : block_list) { + std::string type; vtr::Point block_coordinate = - read_bin_unique_block_coord(unique_block); + read_bin_unique_block_coord(unique_block, type); /*get block coordinate and type*/ std::vector> instance_coords = - read_bin_unique_instance_coords(unique_block); + read_bin_unique_instance_coords(unique_block); /* get a list of instance coordinates*/ /* get block coordinate and instance coordinate, try to setup * device_rr_gsb */ - if (type == "sb") { + if (type == uniqueblockcap::BlockType::SB) { device_rr_gsb.preload_unique_sb_module(block_coordinate, instance_coords); - } else if (type == "cby") { + } else if (type == uniqueblockcap::BlockType::CBY) { device_rr_gsb.preload_unique_cby_module(block_coordinate, instance_coords); - } else if (type == "cbx") { + } else if (type == uniqueblockcap::BlockType::CBX) { device_rr_gsb.preload_unique_cbx_module(block_coordinate, instance_coords); } diff --git a/openfpga/src/annotation/read_xml_unique_blocks.h b/openfpga/src/annotation/read_xml_unique_blocks.h index b38d7c373..dd27a59ed 100644 --- a/openfpga/src/annotation/read_xml_unique_blocks.h +++ b/openfpga/src/annotation/read_xml_unique_blocks.h @@ -40,7 +40,7 @@ std::vector> read_bin_unique_instance_coords( const uniqueblockcap::BlockInfo::Reader& unique_block); vtr::Point read_bin_unique_block_coord( - const uniqueblockcap::BlockInfo::Reader& unique_block); + const uniqueblockcap::BlockInfo::Reader& unique_block, std::string& type); int read_bin_unique_blocks(DeviceRRGSB& device_rr_gsb, const char* file_name, bool verbose_output);