Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions .github/actions/build-wheel/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,26 @@ runs:
flex flex-devel bison eigen3-devel gtest-devel \
tbb-devel hwloc-devel libcurl-devel libunwind-devel \
metis-devel gmp-devel tcl-devel \
unzip zip
unzip zip bzip2

- name: Install Boost 1.92.0
- name: Install Boost 1.91.0
shell: bash
run: |
boost_version="1.92.0"
boost_archive="boost-${boost_version}-b2-nodocs.tar.xz"
boost_version="1.91.0"
boost_source_dir="boost_${boost_version//./_}"
boost_archive="${boost_source_dir}.tar.bz2"
boost_prefix="${GITHUB_WORKSPACE}/.deps/boost-${boost_version}"
boost_sha256="ea7b982002cc9dfbe59b0b217b206f470dc75f3de0bb2973d844118934d82411"
boost_sha256="de5e6b0e4913395c6bdfa90537febd9028ea4c0735d2cdb0cd9b45d5f51264f5"
boost_build_dir="$(mktemp -d)"

cd "$boost_build_dir"
curl --fail --location --retry 3 --output "$boost_archive" \
"https://github.com/boostorg/boost/releases/download/boost-${boost_version}/${boost_archive}"
"https://archives.boost.io/release/${boost_version}/source/${boost_archive}"
echo "${boost_sha256} ${boost_archive}" | sha256sum --check --status
tar -xf "$boost_archive"
cd "boost-${boost_version}"
./bootstrap.sh --prefix="$boost_prefix" --with-libraries=system
./b2 -j"$(nproc)" --with-system install
cd "$boost_source_dir"
./bootstrap.sh --prefix="$boost_prefix"
./b2 -j"$(nproc)" --with-headers install

echo "ECC_BOOST_ROOT=${boost_prefix}" >> "$GITHUB_ENV"

Expand All @@ -54,9 +55,9 @@ runs:
uses: actions/cache@v4
with:
path: build
key: cmake-${{ runner.os }}-boost-1.92.0-${{ hashFiles('CMakeLists.txt', 'src/**/CMakeLists.txt') }}
key: cmake-${{ runner.os }}-boost-1.91.0-${{ hashFiles('CMakeLists.txt', 'src/**/CMakeLists.txt') }}
restore-keys: |
cmake-${{ runner.os }}-boost-1.92.0-
cmake-${{ runner.os }}-boost-1.91.0-

- name: Build repaired wheel
shell: bash
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -161,13 +161,13 @@ SET(THIRD_PARTY_HOME ${HOME_THIRDPARTY})
add_definitions("-DBOOST_ALLOW_DEPRECATED_HEADERS")
add_definitions("-DBOOST_BIND_GLOBAL_PLACEHOLDERS")

find_package(Boost 1.92.0 EXACT CONFIG QUIET)
find_package(Boost 1.91.0 EXACT CONFIG QUIET)
if(NOT Boost_FOUND)
list(FIND Boost_CONSIDERED_VERSIONS "1.85.0" _boost_1_85_index)
if(NOT _boost_1_85_index EQUAL -1)
message(FATAL_ERROR "Boost 1.85.0 contains a critical known bug and must not be used. Install Boost 1.92.0 exactly.")
message(FATAL_ERROR "Boost 1.85.0 contains a critical known bug and must not be used. Install Boost 1.91.0 exactly.")
endif()
message(FATAL_ERROR "Boost 1.92.0 exactly is required.")
message(FATAL_ERROR "Boost 1.91.0 exactly is required.")
endif()

include_directories(SYSTEM
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ std::vector<PRCandidate> PlanarRouter::getPRCandidateListByTopo(int32_t expand_s
return pr_candidate_list;
}

bool PlanarRouter::shouldUseCongestionFlute(double overflow_unit, const PRNet& pr_net, size_t unique_pin_num)
bool PlanarRouter::shouldRefineTopology(double overflow_unit, const PRNet& pr_net, size_t unique_pin_num)
{
if (unique_pin_num < 3) {
return false;
Expand Down Expand Up @@ -846,9 +846,9 @@ std::vector<Segment<PlanarCoord>> PlanarRouter::getPlanarTopoList(double overflo
tb_task.set_planar_coord_list(planar_coord_list);
GridMap<PlanarRect>& gcell_map = RTDM.getDatabase().get_gcell_map();
tb_task.set_planar_search_region(PlanarRect(0, 0, gcell_map.get_x_size() - 1, gcell_map.get_y_size() - 1));
bool congestion_driven = pr_topo_mode == PRTopoMode::kCongestion && shouldUseCongestionFlute(overflow_unit, pr_net, planar_coord_list.size());
tb_task.set_topo_mode(congestion_driven ? TBTopoMode::kCongestion : TBTopoMode::kGeometry);
if (!congestion_driven) {
bool refine_topology = pr_topo_mode == PRTopoMode::kCongestion && shouldRefineTopology(overflow_unit, pr_net, planar_coord_list.size());
tb_task.set_topo_mode(refine_topology ? TBTopoMode::kCongestion : TBTopoMode::kGeometry);
if (!refine_topology) {
return RTTB.getPlanarTopoList(tb_task);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ class PlanarRouter
std::vector<Segment<PlanarCoord>> getOverflowPlanarTopoList(PRNet& pr_net, const std::vector<Segment<PlanarCoord>>& unit_segment_list,
const std::map<PlanarCoord, std::vector<int32_t>, CmpPlanarCoordByXASC>& coord_edge_idx_map,
const std::vector<int32_t>& rip_up_distance_list);
bool shouldUseCongestionFlute(double overflow_unit, const PRNet& pr_net, size_t unique_pin_num);
bool shouldRefineTopology(double overflow_unit, const PRNet& pr_net, size_t unique_pin_num);
std::vector<Segment<PlanarCoord>> getPlanarTopoList(double overflow_unit, PRNet& pr_net, PRTopoMode pr_topo_mode);

// A* route
Expand Down
Loading
Loading