From ccd22262b8328d3d5f4bde6dbd92eb1abc605775 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Mon, 24 Jun 2024 15:13:53 +0000 Subject: [PATCH 01/56] dpl: Inserting decap cells near the points with the most IR DROP Signed-off-by: luis201420 --- src/dpl/CMakeLists.txt | 4 + src/dpl/include/dpl/Opendp.h | 37 ++++- src/dpl/src/DecapPlacement.cpp | 278 ++++++++++++++++++++++++++++++++ src/dpl/src/FillerPlacement.cpp | 7 + src/dpl/src/MakeOpendp.cpp | 2 +- src/dpl/src/Opendp.cpp | 3 +- src/dpl/src/Opendp.i | 14 ++ src/dpl/src/Opendp.tcl | 43 +++++ src/psm/include/psm/pdnsim.h | 4 + src/psm/src/pdnsim.cpp | 10 ++ 10 files changed, 399 insertions(+), 3 deletions(-) create mode 100644 src/dpl/src/DecapPlacement.cpp diff --git a/src/dpl/CMakeLists.txt b/src/dpl/CMakeLists.txt index 64703d3cdf9..960a8df303a 100644 --- a/src/dpl/CMakeLists.txt +++ b/src/dpl/CMakeLists.txt @@ -49,6 +49,7 @@ add_library(dpl_lib src/Padding.cpp src/Place.cpp src/FillerPlacement.cpp + src/DecapPlacement.cpp src/OptMirror.cpp ) @@ -56,6 +57,7 @@ target_link_libraries(dpl_lib PUBLIC odb OpenSTA + psm PRIVATE utl_lib ) @@ -93,6 +95,7 @@ target_link_libraries(dpl dpl_lib OpenSTA gui + psm ) messages( @@ -124,6 +127,7 @@ if (Python3_FOUND AND BUILD_PYTHON) dpl_lib gui odb + psm ) endif() diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 7c13c60aaca..e91a8b37b8a 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -54,6 +54,7 @@ #include #include "odb/db.h" +#include "psm/pdnsim.h" namespace utl { class Logger; @@ -113,6 +114,23 @@ struct DbuRect; using dbMasterSeq = vector; +struct GapX { + int x; + odb::dbOrientType orient; + int width; + int height; + bool is_filled; + GapX (int _x, odb::dbOrientType _orient, int _width, int _height) { + x = _x; + orient = _orient; + width = _width; + height = _height; + is_filled = false; + } +}; + +using gapMap = map>; + //////////////////////////////////////////////////////////////// class Opendp @@ -127,7 +145,7 @@ class Opendp void legalCellPos(dbInst* db_inst); // call from rsz void initMacrosAndGrid(); // call from rsz - void init(dbDatabase* db, Logger* logger); + void init(dbDatabase* db, Logger* logger, psm::PDNSim* psm); // legalize/report // max_displacment is in sites. use zero for defaults. void detailedPlacement(int max_displacement_x, @@ -155,6 +173,10 @@ class Opendp void removeFillers(); void optimizeMirroring(); + // Place decap cells + void setDecapMaster(dbMaster* decap_master, double decap_cap); + void insertDecapCells(const double target); + private: using bgPoint = boost::geometry::model::d2::point_xy getDecapCell(const int &gap_width, const double ¤t, const double &target); + void insertDecapInPos(dbMaster* master, const odb::dbOrientType &orient, const int &pos_x, const int &pos_y); + void insertDecapInRow(const vector &gaps, const int gap_y, const int irdrop_x, const int irdrop_y, double &total, const double &target); + void findGaps(); + void findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info); + Logger* logger_ = nullptr; dbDatabase* db_ = nullptr; dbBlock* block_ = nullptr; @@ -342,6 +371,12 @@ class Opendp bool have_fillers_ = false; bool have_one_site_cells_ = false; + // Decap placement. + psm::PDNSim* psm_; + vector> decap_masters_; + int decap_count_ = 0; + gapMap gaps_; + // Results saved for optional reporting. int64_t hpwl_before_ = 0; int64_t displacement_avg_ = 0; diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp new file mode 100644 index 00000000000..6c2ac24ac55 --- /dev/null +++ b/src/dpl/src/DecapPlacement.cpp @@ -0,0 +1,278 @@ +///////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2020, The Regents of the University of California +// All rights reserved. +// +// BSD 3-Clause License +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, this +// list of conditions and the following disclaimer. +// +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +/////////////////////////////////////////////////////////////////////////////// + +#include + +#include "Grid.h" +#include "Objects.h" +#include "dpl/Opendp.h" +#include "utl/Logger.h" + +namespace dpl { + +using std::to_string; + +using utl::DPL; + +using odb::dbMaster; +using odb::dbPlacementStatus; + +using IRDropByPoint = std::map; +using IRDropByLayer = std::map; + +void Opendp::setDecapMaster(dbMaster* decap_master, double decap_cap) +{ + decap_masters_.push_back({decap_master, decap_cap}); +} + +vector Opendp::getDecapCell(const int &gap_width, const double ¤t, const double &target) +{ + vector id_masters; + double acum = 0.0; + int width_acum = 0; + for (int i = 0; i < decap_masters_.size(); i++) { + if ((gap_width - width_acum) >= decap_masters_[i].first->getWidth() && (acum + decap_masters_[i].second) <= (target - current)) { + id_masters.push_back(i); + acum += decap_masters_[i].second; + width_acum += decap_masters_[i].first->getWidth(); + } + } + return id_masters; +} + +void Opendp::insertDecapCells(const double target) +{ + + if (cells_.empty()) { + importDb(); + } + + decap_count_ = 0; + initGrid(); + setGridCells(); + + if (grid_->infoMapEmpty()) { + std::cerr << "ERROR: Info map is empty" << std::endl; + return; + } + + // sort in increase order + std::sort(decap_masters_.begin(), + decap_masters_.end(), + [](std::pair& decap_master1, std::pair& decap_master2) { + return decap_master1.second < decap_master2.second; + }); + printf("Decap Cells %ld\n", decap_masters_.size()); + + // Get IR DROP of net VSS on layer met1 + IRDropByPoint ir_drop; + odb::dbTechLayer* tech_layer = block_->getTech()->findLayer("met1"); + odb::dbNet* db_net = block_->findNet("VSS"); + + psm_->getIRDropForLayer2(db_net, tech_layer, ir_drop); + + if (ir_drop.empty()) { + std::cerr << "ERROR: IR DROP points dont found\n"; + return; + } + printf("IR DROP size: %ld\n", ir_drop.size()); + + // sort points for IR DROP + std::vector> irdrop_points; + for (auto & it: ir_drop) { + irdrop_points.push_back({it.first, it.second}); + } + + // sort decrease order + std::sort(irdrop_points.begin(), + irdrop_points.end(), + [](std::pair& point1, std::pair& point2) { + return point1.second > point2.second; + }); + + // if fillers are not placed, then find gaps to place decap cells + if (!have_fillers_ && gaps_.empty()) { + findGaps(); + } + + int gaps_count = 0; + // sort gaps for x position + for (auto &it: gaps_){ + std::sort(it.second.begin(), + it.second.end(), + [](GapX& gap1, GapX& gap2) { + return gap1.x < gap2.x; + }); + gaps_count += it.second.size(); + } + + if (gaps_count == 0) { + std::cerr << "ERROR: Gaps dont found\n"; + return ; + } + + std::cerr << "Gaps count " << gaps_count << std::endl; + removeFillers(); + + double total_cap = 0.0; + for (auto &irdrop_it: irdrop_points) { + + // Find gaps in same row + auto it_gapY = gaps_.find(irdrop_it.first.getY()); + if (it_gapY != gaps_.end()) { + // Find and insert decap in this row + insertDecapInRow(it_gapY->second, it_gapY->first, irdrop_it.first.getX(), irdrop_it.first.getY(), total_cap, target); + } + + // if row is not first, then get lower row + if (it_gapY != gaps_.begin()) { + it_gapY--; + // verify if row + height >= ypoint + if (it_gapY->first + (it_gapY->second).begin()->height <= irdrop_it.first.getY()) { + insertDecapInRow(it_gapY->second, it_gapY->first, irdrop_it.first.getX(), irdrop_it.first.getY(), total_cap, target); + } + } + } + std::cerr << "Decap cells inserted " << decap_count_ << " cap total " << total_cap << std::endl; +} + +void Opendp::insertDecapInRow(const vector &gaps, const int gap_y, const int irdrop_x, const int irdrop_y, double &total, const double &target) +{ + // Find gap in same row and x near the ir drop + auto find_gap = std::lower_bound(gaps.begin(), gaps.end(), + irdrop_x, + [](const GapX &elem, const int &value) { + return elem.x < value; + } + ); + // if this row has free gap with x <= xpoint <= x + width + if (find_gap != gaps.end() && (find_gap->x + find_gap->width) >= irdrop_x && !find_gap->is_filled) { + gaps_[gap_y][find_gap - gaps.begin()].is_filled = true; + auto ids = getDecapCell(find_gap->width, total, target); + int gap_x = find_gap->x; + for (const int &it_decap : ids) { + // insert decap inst in this pos + insertDecapInPos(decap_masters_[it_decap].first, find_gap->orient, gap_x, gap_y); + + gap_x += decap_masters_[it_decap].first->getWidth(); + total += decap_masters_[it_decap].second; + decap_count_++; + } + } +} + +void Opendp::insertDecapInPos(dbMaster* master, const odb::dbOrientType &orient, const int &pos_x, const int &pos_y) +{ + // insert decap inst + string inst_name = "DECAP_" + to_string(decap_count_); + dbInst* inst = dbInst::create(block_, + master, + inst_name.c_str(), + /* physical_only */ true); + inst->setOrient(orient); + inst->setLocation(pos_x, pos_y); + inst->setPlacementStatus(dbPlacementStatus::PLACED); + inst->setSourceType(odb::dbSourceType::DIST); +} + +void Opendp::findGaps() +{ + DbuY min_height{std::numeric_limits::max()}; + GridMapKey chosen_grid_key = {0}; + // we will first try to find the grid with min height that is non hybrid, if + // that doesn't exist, we will pick the first hybrid grid. + for (auto [grid_idx, itr_grid_info] : grid_->getInfoMap()) { + dbSite* site = itr_grid_info.getSites()[0].site; + DbuY site_height{static_cast(site->getHeight())}; + if (!itr_grid_info.isHybrid() && site_height < min_height) { + min_height = site_height; + chosen_grid_key = grid_idx; + } + } + const auto& chosen_grid_info = grid_->getInfoMap().at(chosen_grid_key); + GridY chosen_row_count = chosen_grid_info.getRowCount(); + if (!chosen_grid_info.isHybrid()) { + DbuY site_height = min_height; + for (GridY row{0}; row < chosen_row_count; row++) { + findGapsInRow(row, + site_height, + chosen_grid_info); + } + } else { + const auto& hybrid_sites_vec = chosen_grid_info.getSites(); + const int hybrid_sites_num = hybrid_sites_vec.size(); + for (GridY row{0}; row < chosen_row_count; row++) { + const int index = row.v % hybrid_sites_num; + dbSite* site = hybrid_sites_vec[index].site; + DbuY row_height{static_cast(site->getHeight())}; + findGapsInRow(row, + row_height, + chosen_grid_info); + } + } +} + +void Opendp::findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info) +{ + GridX j{0}; + + const DbuX site_width = grid_->getSiteWidth(); + GridX row_site_count{divFloor(grid_->getCore().dx(), site_width.v)}; + while (j < row_site_count) { + Pixel* pixel = grid_->gridPixel(grid_info.getGridIndex(), j, row); + const dbOrientType orient = pixel->orient_; + if (pixel->cell == nullptr && pixel->is_valid) { + GridX k = j; + while (k < row_site_count + && grid_->gridPixel(grid_info.getGridIndex(), k, row)->cell + == nullptr + && grid_->gridPixel(grid_info.getGridIndex(), k, row)->is_valid) { + k++; + } + const Rect core = grid_->getCore(); + // Save gap information (pos in dbu) + DbuX gap_x{core.xMin() + gridToDbu(j, site_width)}; + DbuY gap_y{core.yMin() + gridToDbu(row, DbuY{row_height})}; + DbuX gap_width {gridToDbu(k, site_width) - gridToDbu(j, site_width)}; + gaps_[gap_y.v].push_back(GapX(gap_x.v, orient, gap_width.v, row_height.v)); + + j += (k - j); + } + else { + j++; + } + } +} + +} // namespace dpl diff --git a/src/dpl/src/FillerPlacement.cpp b/src/dpl/src/FillerPlacement.cpp index 491d1bc1a27..e92629b023d 100644 --- a/src/dpl/src/FillerPlacement.cpp +++ b/src/dpl/src/FillerPlacement.cpp @@ -186,6 +186,13 @@ void Opendp::placeRowFillers(GridY row, dbMasterSeq& fillers = gapFillers(implant, gap, filler_masters_by_implant); const Rect core = grid_->getCore(); + + // Save gap information (pos in dbu) + DbuX gap_x{core.xMin() + gridToDbu(j, site_width)}; + DbuY gap_y{core.yMin() + gridToDbu(row, DbuY{row_height})}; + DbuX gap_width {gridToDbu(k, site_width) - gridToDbu(j, site_width)}; + gaps_[gap_y.v].push_back(GapX(gap_x.v, orient, gap_width.v, row_height.v)); + if (fillers.empty()) { DbuX x{core.xMin() + gridToDbu(j, site_width)}; DbuY y{core.yMin() + gridToDbu(row, DbuY{row_height})}; diff --git a/src/dpl/src/MakeOpendp.cpp b/src/dpl/src/MakeOpendp.cpp index bf70805efa7..9ec98b5d3d2 100644 --- a/src/dpl/src/MakeOpendp.cpp +++ b/src/dpl/src/MakeOpendp.cpp @@ -68,7 +68,7 @@ void initOpendp(OpenRoad* openroad) Dpl_Init(tcl_interp); // Eval encoded sta TCL sources. sta::evalTclInit(tcl_interp, sta::dpl_tcl_inits); - openroad->getOpendp()->init(openroad->getDb(), openroad->getLogger()); + openroad->getOpendp()->init(openroad->getDb(), openroad->getLogger(), openroad->getPDNSim()); } } // namespace ord diff --git a/src/dpl/src/Opendp.cpp b/src/dpl/src/Opendp.cpp index bf6c374d21a..1b984eda35d 100644 --- a/src/dpl/src/Opendp.cpp +++ b/src/dpl/src/Opendp.cpp @@ -81,13 +81,14 @@ Opendp::Opendp() Opendp::~Opendp() = default; -void Opendp::init(dbDatabase* db, Logger* logger) +void Opendp::init(dbDatabase* db, Logger* logger, psm::PDNSim* psm) { db_ = db; logger_ = logger; padding_ = std::make_shared(); grid_ = std::make_unique(); grid_->init(logger); + psm_ = psm; } void Opendp::setPaddingGlobal(const int left, const int right) diff --git a/src/dpl/src/Opendp.i b/src/dpl/src/Opendp.i index 6df356a029f..186b2eb1cb6 100644 --- a/src/dpl/src/Opendp.i +++ b/src/dpl/src/Opendp.i @@ -152,6 +152,20 @@ filler_placement_cmd(dpl::dbMasterSeq *filler_masters, opendp->fillerPlacement(filler_masters, prefix); } +void +set_decap_master(odb::dbMaster *master, float cap) +{ + dpl::Opendp *opendp = ord::OpenRoad::openRoad()->getOpendp(); + opendp->setDecapMaster(master, cap); +} + +void +insert_decap_cmd(const float target) +{ + dpl::Opendp *opendp = ord::OpenRoad::openRoad()->getOpendp(); + opendp->insertDecapCells(target); +} + void remove_fillers_cmd() { diff --git a/src/dpl/src/Opendp.tcl b/src/dpl/src/Opendp.tcl index 8e34bb8cc55..3afe71ab003 100644 --- a/src/dpl/src/Opendp.tcl +++ b/src/dpl/src/Opendp.tcl @@ -136,6 +136,49 @@ proc filler_placement { args } { dpl::filler_placement_cmd $filler_masters $prefix } +sta::define_cmd_args "insert_decap" { [-cap target] [-cells cell_info] } + +proc insert_decap { args } { + sta::parse_key_args "insert_decap" args \ + keys {-cap -cells} flags {} + + set target 0.0 + if { [info exists keys(-cap)] } { + set target $keys(-cap) + } + + #sta::check_argc_eq1 "insert_decap" $args + # + set decap_name "" + set db [ord::get_db] + foreach capcell_info $keys(-cells) { + if { [string is double -strict $capcell_info] && $decap_name != "" } { + set cap [format "%.2f" $capcell_info] + puts $decap_name + puts $capcell_info + puts $cap + set matched 0 + foreach lib [$db getLibs] { + foreach master [$lib getMasters] { + set master_name [$master getConstName] + if { [string match $decap_name $master_name] } { + dpl::set_decap_master $master $cap + set matched 1 + } + } + } + if { !$matched } { + utl::warn "DPL" 280 "$decap_name did not match any masters." + } + set decap_name "" + } else { + set decap_name $capcell_info + } + } + # + dpl::insert_decap_cmd $target +} + sta::define_cmd_args "remove_fillers" {} proc remove_fillers { args } { diff --git a/src/psm/include/psm/pdnsim.h b/src/psm/include/psm/pdnsim.h index e25626388a3..1db45e0e195 100644 --- a/src/psm/include/psm/pdnsim.h +++ b/src/psm/include/psm/pdnsim.h @@ -132,6 +132,8 @@ class PDNSim : public odb::dbBlockCallBackObj void inDbSWireRemoveSBox(odb::dbSBox*) override; void inDbSWirePostDestroySBoxes(odb::dbSWire*) override; + void getIRDropForLayer2(odb::dbNet* net, odb::dbTechLayer* layer, IRDropByPoint& ir_drop) const; + private: IRSolver* getIRSolver(odb::dbNet* net, bool floorplanning); @@ -148,5 +150,7 @@ class PDNSim : public odb::dbBlockCallBackObj std::map> solvers_; std::map> user_voltages_; + + sta::Corner* last_corner_ = nullptr; }; } // namespace psm diff --git a/src/psm/src/pdnsim.cpp b/src/psm/src/pdnsim.cpp index b6ef501410f..aee565b3268 100644 --- a/src/psm/src/pdnsim.cpp +++ b/src/psm/src/pdnsim.cpp @@ -102,6 +102,7 @@ void PDNSim::analyzePowerGrid(odb::dbNet* net, return; } + last_corner_ = corner; auto* solver = getIRSolver(net, false); solver->solve(corner, source_type, voltage_source_file); solver->report(corner); @@ -171,6 +172,15 @@ psm::IRSolver* PDNSim::getIRSolver(odb::dbNet* net, bool floorplanning) return solver.get(); } +void PDNSim::getIRDropForLayer2(odb::dbNet* net, odb::dbTechLayer* layer, IRDropByPoint& ir_drop) const +{ + auto find_solver = solvers_.find(net); + if (last_corner_ == nullptr || find_solver == solvers_.end()) { + return; + } + ir_drop = find_solver->second->getIRDrop(layer, last_corner_); +} + void PDNSim::getIRDropForLayer(odb::dbNet* net, sta::Corner* corner, odb::dbTechLayer* layer, From 59c44b645d700e75f83a8638dae53769d8daea73 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Fri, 28 Jun 2024 01:26:32 +0000 Subject: [PATCH 02/56] dpl: Finding the lowest layer of the net to obtain the IR DROP Signed-off-by: luis201420 --- src/dpl/include/dpl/Opendp.h | 1 + src/dpl/src/DecapPlacement.cpp | 72 +++++++++++++++++++++++----------- 2 files changed, 51 insertions(+), 22 deletions(-) diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index e91a8b37b8a..2fbdcac380d 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -342,6 +342,7 @@ class Opendp void insertDecapInRow(const vector &gaps, const int gap_y, const int irdrop_x, const int irdrop_y, double &total, const double &target); void findGaps(); void findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info); + odb::dbTechLayer* getLowestLayer(odb::dbNet * db_net); Logger* logger_ = nullptr; dbDatabase* db_ = nullptr; diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index 6c2ac24ac55..d8f6c5c731b 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -38,6 +38,7 @@ #include "Objects.h" #include "dpl/Opendp.h" #include "utl/Logger.h" +#include "odb/dbShape.h" namespace dpl { @@ -71,9 +72,38 @@ vector Opendp::getDecapCell(const int &gap_width, const double ¤t, co return id_masters; } +odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet * db_net) +{ + int min_layer_level = std::numeric_limits::max(); + std::vector via_boxes; + for (odb::dbSWire* swire : db_net->getSWires()) { + for (odb::dbSBox* s : swire->getWires()) { + if (s->isVia()) { + s->getViaBoxes(via_boxes); + for (const odb::dbShape& box : via_boxes) { + odb::dbTechLayer* tech_layer = box.getTechLayer(); + if (tech_layer->getRoutingLevel() == 0) { + continue; + } + if (min_layer_level == -1 || min_layer_level > tech_layer->getRoutingLevel()) { + min_layer_level = tech_layer->getRoutingLevel(); + } + } + } else { + odb::dbTechLayer* tech_layer = s->getTechLayer(); + if (min_layer_level == -1 || min_layer_level > tech_layer->getRoutingLevel()) { + min_layer_level = tech_layer->getRoutingLevel(); + } + } + } + } + return db_->getTech()->findRoutingLayer(min_layer_level); +} + void Opendp::insertDecapCells(const double target) { + // init dpl variables if (cells_.empty()) { importDb(); } @@ -83,51 +113,49 @@ void Opendp::insertDecapCells(const double target) setGridCells(); if (grid_->infoMapEmpty()) { - std::cerr << "ERROR: Info map is empty" << std::endl; - return; + logger_->error(DPL, 52, "Info map wasnt load to place DECAP cells"); } - // sort in increase order + // Sort decaps cells in decrease order std::sort(decap_masters_.begin(), decap_masters_.end(), [](std::pair& decap_master1, std::pair& decap_master2) { - return decap_master1.second < decap_master2.second; + return decap_master1.second > decap_master2.second; }); - printf("Decap Cells %ld\n", decap_masters_.size()); - // Get IR DROP of net VSS on layer met1 + // Get IR DROP of net VDD on layer met1 IRDropByPoint ir_drop; - odb::dbTechLayer* tech_layer = block_->getTech()->findLayer("met1"); - odb::dbNet* db_net = block_->findNet("VSS"); + odb::dbNet* db_net = block_->findNet("VDD"); + // Get lowest layer + odb::dbTechLayer* tech_layer = getLowestLayer(db_net); psm_->getIRDropForLayer2(db_net, tech_layer, ir_drop); if (ir_drop.empty()) { - std::cerr << "ERROR: IR DROP points dont found\n"; - return; + logger_->error(DPL, 53, "Any IR DROP point found, run analyse_power_grid before of insert DECAP cells"); } - printf("IR DROP size: %ld\n", ir_drop.size()); - // sort points for IR DROP + // Sort the IR DROP point ins decrease order std::vector> irdrop_points; for (auto & it: ir_drop) { irdrop_points.push_back({it.first, it.second}); } - // sort decrease order std::sort(irdrop_points.begin(), irdrop_points.end(), [](std::pair& point1, std::pair& point2) { return point1.second > point2.second; }); - // if fillers are not placed, then find gaps to place decap cells - if (!have_fillers_ && gaps_.empty()) { - findGaps(); + // If fillers are placed + if (have_fillers_) { + logger_->error(DPL, 54, "Filler cells found when running insert decap cells"); } + // Find gaps availables + findGaps(); int gaps_count = 0; - // sort gaps for x position + // Sort each gap vector for X position for (auto &it: gaps_){ std::sort(it.second.begin(), it.second.end(), @@ -138,12 +166,10 @@ void Opendp::insertDecapCells(const double target) } if (gaps_count == 0) { - std::cerr << "ERROR: Gaps dont found\n"; - return ; + logger_->error(DPL, 55, "Gaps dont found during insert decap cells"); } std::cerr << "Gaps count " << gaps_count << std::endl; - removeFillers(); double total_cap = 0.0; for (auto &irdrop_it: irdrop_points) { @@ -164,7 +190,7 @@ void Opendp::insertDecapCells(const double target) } } } - std::cerr << "Decap cells inserted " << decap_count_ << " cap total " << total_cap << std::endl; + logger_->info(DPL, 56, "Placed {} decap cells, cap total {:6.4f}", decap_count_, total_cap); } void Opendp::insertDecapInRow(const vector &gaps, const int gap_y, const int irdrop_x, const int irdrop_y, double &total, const double &target) @@ -178,8 +204,10 @@ void Opendp::insertDecapInRow(const vector &gaps, const int gap_y, const i ); // if this row has free gap with x <= xpoint <= x + width if (find_gap != gaps.end() && (find_gap->x + find_gap->width) >= irdrop_x && !find_gap->is_filled) { - gaps_[gap_y][find_gap - gaps.begin()].is_filled = true; auto ids = getDecapCell(find_gap->width, total, target); + if (!ids.empty()) { + gaps_[gap_y][find_gap - gaps.begin()].is_filled = true; + } int gap_x = find_gap->x; for (const int &it_decap : ids) { // insert decap inst in this pos From 6492e126980e4f55fef2eb755efac4e4d3dcf6c9 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Fri, 28 Jun 2024 01:28:12 +0000 Subject: [PATCH 03/56] dpl: Modifying the way of parsing input values on insert_decap command Signed-off-by: luis201420 --- src/dpl/src/Opendp.tcl | 51 ++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/src/dpl/src/Opendp.tcl b/src/dpl/src/Opendp.tcl index 3afe71ab003..361aa6b7988 100644 --- a/src/dpl/src/Opendp.tcl +++ b/src/dpl/src/Opendp.tcl @@ -142,41 +142,38 @@ proc insert_decap { args } { sta::parse_key_args "insert_decap" args \ keys {-cap -cells} flags {} - set target 0.0 + set cap_target 0.0 if { [info exists keys(-cap)] } { - set target $keys(-cap) + set cap_target $keys(-cap) } - #sta::check_argc_eq1 "insert_decap" $args - # - set decap_name "" + # Check even size + set cells_and_decap $keys(-cells) + if { [expr [llength $cells_and_decap] % 2] != 0 } { + utl::error DPL 181 "List of decap cells must have an even size." + } + + # Add decap cells on DPL set db [ord::get_db] - foreach capcell_info $keys(-cells) { - if { [string is double -strict $capcell_info] && $decap_name != "" } { - set cap [format "%.2f" $capcell_info] - puts $decap_name - puts $capcell_info - puts $cap - set matched 0 - foreach lib [$db getLibs] { - foreach master [$lib getMasters] { - set master_name [$master getConstName] - if { [string match $decap_name $master_name] } { - dpl::set_decap_master $master $cap - set matched 1 - } + foreach {cell_name decap} $cells_and_decap { + set decap_value [format "%.4f" $decap] + # Find master with cell_name + set matched 0 + foreach lib [$db getLibs] { + foreach master [$lib getMasters] { + set master_name [$master getConstName] + if { [string match $cell_name $master_name] } { + dpl::set_decap_master $master $decap_value + set matched 1 } } - if { !$matched } { - utl::warn "DPL" 280 "$decap_name did not match any masters." - } - set decap_name "" - } else { - set decap_name $capcell_info + } + if { !$matched } { + utl::warn "DPL" 280 "$decap_name did not match any masters." } } - # - dpl::insert_decap_cmd $target + # Insert decap cells + dpl::insert_decap_cmd $cap_target } sta::define_cmd_args "remove_fillers" {} From 37a2cfef579a4e56ac939d1c88ecb695137feb75 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Fri, 28 Jun 2024 01:32:57 +0000 Subject: [PATCH 04/56] dpl: Restoring the function of inserting filler cells Signed-off-by: luis201420 --- src/dpl/src/FillerPlacement.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/dpl/src/FillerPlacement.cpp b/src/dpl/src/FillerPlacement.cpp index e92629b023d..491d1bc1a27 100644 --- a/src/dpl/src/FillerPlacement.cpp +++ b/src/dpl/src/FillerPlacement.cpp @@ -186,13 +186,6 @@ void Opendp::placeRowFillers(GridY row, dbMasterSeq& fillers = gapFillers(implant, gap, filler_masters_by_implant); const Rect core = grid_->getCore(); - - // Save gap information (pos in dbu) - DbuX gap_x{core.xMin() + gridToDbu(j, site_width)}; - DbuY gap_y{core.yMin() + gridToDbu(row, DbuY{row_height})}; - DbuX gap_width {gridToDbu(k, site_width) - gridToDbu(j, site_width)}; - gaps_[gap_y.v].push_back(GapX(gap_x.v, orient, gap_width.v, row_height.v)); - if (fillers.empty()) { DbuX x{core.xMin() + gridToDbu(j, site_width)}; DbuY y{core.yMin() + gridToDbu(row, DbuY{row_height})}; From 33d4ac67c846c4df5c8cf1d9fd0b195ed03b4c20 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Mon, 1 Jul 2024 15:57:04 -0300 Subject: [PATCH 05/56] dpl: adding clang-format Signed-off-by: luis201420 --- src/dpl/include/dpl/Opendp.h | 28 +++++-- src/dpl/src/DecapPlacement.cpp | 135 ++++++++++++++++++++------------- src/dpl/src/MakeOpendp.cpp | 3 +- src/psm/include/psm/pdnsim.h | 4 +- src/psm/src/pdnsim.cpp | 4 +- 5 files changed, 110 insertions(+), 64 deletions(-) diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 2fbdcac380d..309407d5572 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -114,13 +114,15 @@ struct DbuRect; using dbMasterSeq = vector; -struct GapX { +struct GapX +{ int x; odb::dbOrientType orient; int width; int height; bool is_filled; - GapX (int _x, odb::dbOrientType _orient, int _width, int _height) { + GapX(int _x, odb::dbOrientType _orient, int _width, int _height) + { x = _x; orient = _orient; width = _width; @@ -129,7 +131,7 @@ struct GapX { } }; -using gapMap = map>; +using gapMap = map>; //////////////////////////////////////////////////////////////// @@ -337,13 +339,23 @@ class Opendp const char* gridInstName(GridY row, GridX col, const GridInfo& grid_info); // Place decaps - vector getDecapCell(const int &gap_width, const double ¤t, const double &target); - void insertDecapInPos(dbMaster* master, const odb::dbOrientType &orient, const int &pos_x, const int &pos_y); - void insertDecapInRow(const vector &gaps, const int gap_y, const int irdrop_x, const int irdrop_y, double &total, const double &target); + vector getDecapCell(const int& gap_width, + const double& current, + const double& target); + void insertDecapInPos(dbMaster* master, + const odb::dbOrientType& orient, + const int& pos_x, + const int& pos_y); + void insertDecapInRow(const vector& gaps, + const int gap_y, + const int irdrop_x, + const int irdrop_y, + double& total, + const double& target); void findGaps(); void findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info); - odb::dbTechLayer* getLowestLayer(odb::dbNet * db_net); - + odb::dbTechLayer* getLowestLayer(odb::dbNet* db_net); + Logger* logger_ = nullptr; dbDatabase* db_ = nullptr; dbBlock* block_ = nullptr; diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index d8f6c5c731b..986f923b80d 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -37,8 +37,8 @@ #include "Grid.h" #include "Objects.h" #include "dpl/Opendp.h" -#include "utl/Logger.h" #include "odb/dbShape.h" +#include "utl/Logger.h" namespace dpl { @@ -57,13 +57,16 @@ void Opendp::setDecapMaster(dbMaster* decap_master, double decap_cap) decap_masters_.push_back({decap_master, decap_cap}); } -vector Opendp::getDecapCell(const int &gap_width, const double ¤t, const double &target) +vector Opendp::getDecapCell(const int& gap_width, + const double& current, + const double& target) { vector id_masters; double acum = 0.0; int width_acum = 0; for (int i = 0; i < decap_masters_.size(); i++) { - if ((gap_width - width_acum) >= decap_masters_[i].first->getWidth() && (acum + decap_masters_[i].second) <= (target - current)) { + if ((gap_width - width_acum) >= decap_masters_[i].first->getWidth() + && (acum + decap_masters_[i].second) <= (target - current)) { id_masters.push_back(i); acum += decap_masters_[i].second; width_acum += decap_masters_[i].first->getWidth(); @@ -72,7 +75,7 @@ vector Opendp::getDecapCell(const int &gap_width, const double ¤t, co return id_masters; } -odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet * db_net) +odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet* db_net) { int min_layer_level = std::numeric_limits::max(); std::vector via_boxes; @@ -85,13 +88,15 @@ odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet * db_net) if (tech_layer->getRoutingLevel() == 0) { continue; } - if (min_layer_level == -1 || min_layer_level > tech_layer->getRoutingLevel()) { + if (min_layer_level == -1 + || min_layer_level > tech_layer->getRoutingLevel()) { min_layer_level = tech_layer->getRoutingLevel(); } } } else { odb::dbTechLayer* tech_layer = s->getTechLayer(); - if (min_layer_level == -1 || min_layer_level > tech_layer->getRoutingLevel()) { + if (min_layer_level == -1 + || min_layer_level > tech_layer->getRoutingLevel()) { min_layer_level = tech_layer->getRoutingLevel(); } } @@ -102,7 +107,6 @@ odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet * db_net) void Opendp::insertDecapCells(const double target) { - // init dpl variables if (cells_.empty()) { importDb(); @@ -114,13 +118,14 @@ void Opendp::insertDecapCells(const double target) if (grid_->infoMapEmpty()) { logger_->error(DPL, 52, "Info map wasnt load to place DECAP cells"); - } + } // Sort decaps cells in decrease order std::sort(decap_masters_.begin(), decap_masters_.end(), - [](std::pair& decap_master1, std::pair& decap_master2) { - return decap_master1.second > decap_master2.second; + [](std::pair& decap_master1, + std::pair& decap_master2) { + return decap_master1.second > decap_master2.second; }); // Get IR DROP of net VDD on layer met1 @@ -129,39 +134,42 @@ void Opendp::insertDecapCells(const double target) // Get lowest layer odb::dbTechLayer* tech_layer = getLowestLayer(db_net); - psm_->getIRDropForLayer2(db_net, tech_layer, ir_drop); + psm_->getIRDropForLayer(db_net, tech_layer, ir_drop); if (ir_drop.empty()) { - logger_->error(DPL, 53, "Any IR DROP point found, run analyse_power_grid before of insert DECAP cells"); + logger_->error(DPL, + 53, + "Any IR DROP point found, run analyse_power_grid before of " + "insert DECAP cells"); } // Sort the IR DROP point ins decrease order std::vector> irdrop_points; - for (auto & it: ir_drop) { + for (auto& it : ir_drop) { irdrop_points.push_back({it.first, it.second}); } std::sort(irdrop_points.begin(), irdrop_points.end(), - [](std::pair& point1, std::pair& point2) { + [](std::pair& point1, + std::pair& point2) { return point1.second > point2.second; }); // If fillers are placed if (have_fillers_) { - logger_->error(DPL, 54, "Filler cells found when running insert decap cells"); + logger_->error( + DPL, 54, "Filler cells found when running insert decap cells"); } - // Find gaps availables + // Find gaps availables findGaps(); int gaps_count = 0; // Sort each gap vector for X position - for (auto &it: gaps_){ - std::sort(it.second.begin(), - it.second.end(), - [](GapX& gap1, GapX& gap2) { - return gap1.x < gap2.x; - }); + for (auto& it : gaps_) { + std::sort(it.second.begin(), it.second.end(), [](GapX& gap1, GapX& gap2) { + return gap1.x < gap2.x; + }); gaps_count += it.second.size(); } @@ -172,46 +180,66 @@ void Opendp::insertDecapCells(const double target) std::cerr << "Gaps count " << gaps_count << std::endl; double total_cap = 0.0; - for (auto &irdrop_it: irdrop_points) { - + for (auto& irdrop_it : irdrop_points) { // Find gaps in same row auto it_gapY = gaps_.find(irdrop_it.first.getY()); if (it_gapY != gaps_.end()) { // Find and insert decap in this row - insertDecapInRow(it_gapY->second, it_gapY->first, irdrop_it.first.getX(), irdrop_it.first.getY(), total_cap, target); - } - + insertDecapInRow(it_gapY->second, + it_gapY->first, + irdrop_it.first.getX(), + irdrop_it.first.getY(), + total_cap, + target); + } + // if row is not first, then get lower row if (it_gapY != gaps_.begin()) { it_gapY--; // verify if row + height >= ypoint - if (it_gapY->first + (it_gapY->second).begin()->height <= irdrop_it.first.getY()) { - insertDecapInRow(it_gapY->second, it_gapY->first, irdrop_it.first.getX(), irdrop_it.first.getY(), total_cap, target); + if (it_gapY->first + (it_gapY->second).begin()->height + <= irdrop_it.first.getY()) { + insertDecapInRow(it_gapY->second, + it_gapY->first, + irdrop_it.first.getX(), + irdrop_it.first.getY(), + total_cap, + target); } } } - logger_->info(DPL, 56, "Placed {} decap cells, cap total {:6.4f}", decap_count_, total_cap); + logger_->info(DPL, + 56, + "Placed {} decap cells, cap total {:6.4f}", + decap_count_, + total_cap); } -void Opendp::insertDecapInRow(const vector &gaps, const int gap_y, const int irdrop_x, const int irdrop_y, double &total, const double &target) +void Opendp::insertDecapInRow(const vector& gaps, + const int gap_y, + const int irdrop_x, + const int irdrop_y, + double& total, + const double& target) { // Find gap in same row and x near the ir drop - auto find_gap = std::lower_bound(gaps.begin(), gaps.end(), - irdrop_x, - [](const GapX &elem, const int &value) { - return elem.x < value; - } - ); + auto find_gap = std::lower_bound( + gaps.begin(), + gaps.end(), + irdrop_x, + [](const GapX& elem, const int& value) { return elem.x < value; }); // if this row has free gap with x <= xpoint <= x + width - if (find_gap != gaps.end() && (find_gap->x + find_gap->width) >= irdrop_x && !find_gap->is_filled) { + if (find_gap != gaps.end() && (find_gap->x + find_gap->width) >= irdrop_x + && !find_gap->is_filled) { auto ids = getDecapCell(find_gap->width, total, target); if (!ids.empty()) { gaps_[gap_y][find_gap - gaps.begin()].is_filled = true; } int gap_x = find_gap->x; - for (const int &it_decap : ids) { + for (const int& it_decap : ids) { // insert decap inst in this pos - insertDecapInPos(decap_masters_[it_decap].first, find_gap->orient, gap_x, gap_y); + insertDecapInPos( + decap_masters_[it_decap].first, find_gap->orient, gap_x, gap_y); gap_x += decap_masters_[it_decap].first->getWidth(); total += decap_masters_[it_decap].second; @@ -220,7 +248,10 @@ void Opendp::insertDecapInRow(const vector &gaps, const int gap_y, const i } } -void Opendp::insertDecapInPos(dbMaster* master, const odb::dbOrientType &orient, const int &pos_x, const int &pos_y) +void Opendp::insertDecapInPos(dbMaster* master, + const odb::dbOrientType& orient, + const int& pos_x, + const int& pos_y) { // insert decap inst string inst_name = "DECAP_" + to_string(decap_count_); @@ -231,7 +262,7 @@ void Opendp::insertDecapInPos(dbMaster* master, const odb::dbOrientType &orient, inst->setOrient(orient); inst->setLocation(pos_x, pos_y); inst->setPlacementStatus(dbPlacementStatus::PLACED); - inst->setSourceType(odb::dbSourceType::DIST); + inst->setSourceType(odb::dbSourceType::DIST); } void Opendp::findGaps() @@ -253,9 +284,7 @@ void Opendp::findGaps() if (!chosen_grid_info.isHybrid()) { DbuY site_height = min_height; for (GridY row{0}; row < chosen_row_count; row++) { - findGapsInRow(row, - site_height, - chosen_grid_info); + findGapsInRow(row, site_height, chosen_grid_info); } } else { const auto& hybrid_sites_vec = chosen_grid_info.getSites(); @@ -264,14 +293,14 @@ void Opendp::findGaps() const int index = row.v % hybrid_sites_num; dbSite* site = hybrid_sites_vec[index].site; DbuY row_height{static_cast(site->getHeight())}; - findGapsInRow(row, - row_height, - chosen_grid_info); + findGapsInRow(row, row_height, chosen_grid_info); } } } -void Opendp::findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info) +void Opendp::findGapsInRow(GridY row, + DbuY row_height, + const GridInfo& grid_info) { GridX j{0}; @@ -292,12 +321,12 @@ void Opendp::findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info // Save gap information (pos in dbu) DbuX gap_x{core.xMin() + gridToDbu(j, site_width)}; DbuY gap_y{core.yMin() + gridToDbu(row, DbuY{row_height})}; - DbuX gap_width {gridToDbu(k, site_width) - gridToDbu(j, site_width)}; - gaps_[gap_y.v].push_back(GapX(gap_x.v, orient, gap_width.v, row_height.v)); + DbuX gap_width{gridToDbu(k, site_width) - gridToDbu(j, site_width)}; + gaps_[gap_y.v].push_back( + GapX(gap_x.v, orient, gap_width.v, row_height.v)); j += (k - j); - } - else { + } else { j++; } } diff --git a/src/dpl/src/MakeOpendp.cpp b/src/dpl/src/MakeOpendp.cpp index 9ec98b5d3d2..d902a36875d 100644 --- a/src/dpl/src/MakeOpendp.cpp +++ b/src/dpl/src/MakeOpendp.cpp @@ -68,7 +68,8 @@ void initOpendp(OpenRoad* openroad) Dpl_Init(tcl_interp); // Eval encoded sta TCL sources. sta::evalTclInit(tcl_interp, sta::dpl_tcl_inits); - openroad->getOpendp()->init(openroad->getDb(), openroad->getLogger(), openroad->getPDNSim()); + openroad->getOpendp()->init( + openroad->getDb(), openroad->getLogger(), openroad->getPDNSim()); } } // namespace ord diff --git a/src/psm/include/psm/pdnsim.h b/src/psm/include/psm/pdnsim.h index 1db45e0e195..78934bb6088 100644 --- a/src/psm/include/psm/pdnsim.h +++ b/src/psm/include/psm/pdnsim.h @@ -132,7 +132,9 @@ class PDNSim : public odb::dbBlockCallBackObj void inDbSWireRemoveSBox(odb::dbSBox*) override; void inDbSWirePostDestroySBoxes(odb::dbSWire*) override; - void getIRDropForLayer2(odb::dbNet* net, odb::dbTechLayer* layer, IRDropByPoint& ir_drop) const; + void getIRDropForLayer(odb::dbNet* net, + odb::dbTechLayer* layer, + IRDropByPoint& ir_drop) const; private: IRSolver* getIRSolver(odb::dbNet* net, bool floorplanning); diff --git a/src/psm/src/pdnsim.cpp b/src/psm/src/pdnsim.cpp index aee565b3268..df74af64cad 100644 --- a/src/psm/src/pdnsim.cpp +++ b/src/psm/src/pdnsim.cpp @@ -172,7 +172,9 @@ psm::IRSolver* PDNSim::getIRSolver(odb::dbNet* net, bool floorplanning) return solver.get(); } -void PDNSim::getIRDropForLayer2(odb::dbNet* net, odb::dbTechLayer* layer, IRDropByPoint& ir_drop) const +void PDNSim::getIRDropForLayer(odb::dbNet* net, + odb::dbTechLayer* layer, + IRDropByPoint& ir_drop) const { auto find_solver = solvers_.find(net); if (last_corner_ == nullptr || find_solver == solvers_.end()) { From 0bfdb921d3a7835a66c48b58d3b10224c57acae9 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Mon, 1 Jul 2024 21:03:22 +0000 Subject: [PATCH 06/56] dpl: Adding suggested modifications Signed-off-by: luis201420 --- src/dpl/include/dpl/Opendp.h | 10 +++++----- src/dpl/src/DecapPlacement.cpp | 6 ++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 309407d5572..30405b2cc67 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -121,7 +121,7 @@ struct GapX int width; int height; bool is_filled; - GapX(int _x, odb::dbOrientType _orient, int _width, int _height) + GapX(int _x, const odb::dbOrientType _orient, int _width, int _height) { x = _x; orient = _orient; @@ -177,7 +177,7 @@ class Opendp // Place decap cells void setDecapMaster(dbMaster* decap_master, double decap_cap); - void insertDecapCells(const double target); + void insertDecapCells(double target); private: using bgPoint @@ -347,9 +347,9 @@ class Opendp const int& pos_x, const int& pos_y); void insertDecapInRow(const vector& gaps, - const int gap_y, - const int irdrop_x, - const int irdrop_y, + int gap_y, + int irdrop_x, + int irdrop_y, double& total, const double& target); void findGaps(); diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index 986f923b80d..8dc17a8c09d 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -54,7 +54,7 @@ using IRDropByLayer = std::map; void Opendp::setDecapMaster(dbMaster* decap_master, double decap_cap) { - decap_masters_.push_back({decap_master, decap_cap}); + decap_masters_.emplace_back(decap_master, decap_cap); } vector Opendp::getDecapCell(const int& gap_width, @@ -146,7 +146,7 @@ void Opendp::insertDecapCells(const double target) // Sort the IR DROP point ins decrease order std::vector> irdrop_points; for (auto& it : ir_drop) { - irdrop_points.push_back({it.first, it.second}); + irdrop_points.emplace_back(it.first, it.second); } std::sort(irdrop_points.begin(), @@ -177,8 +177,6 @@ void Opendp::insertDecapCells(const double target) logger_->error(DPL, 55, "Gaps dont found during insert decap cells"); } - std::cerr << "Gaps count " << gaps_count << std::endl; - double total_cap = 0.0; for (auto& irdrop_it : irdrop_points) { // Find gaps in same row From 6a7cb849d9a791f6cd1f0db6a08bf70da1a18875 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Mon, 8 Jul 2024 18:15:49 +0000 Subject: [PATCH 07/56] dpl: adding the requested modifications Signed-off-by: luis201420 --- src/dpl/README.md | 22 ++++ src/dpl/include/dpl/Opendp.h | 40 +++--- src/dpl/src/DecapObjects.h | 74 +++++++++++ src/dpl/src/DecapPlacement.cpp | 222 +++++++++++++++++++-------------- src/dpl/src/Opendp.i | 8 +- src/dpl/src/Opendp.tcl | 36 ++++-- 6 files changed, 271 insertions(+), 131 deletions(-) create mode 100644 src/dpl/src/DecapObjects.h diff --git a/src/dpl/README.md b/src/dpl/README.md index 74fd1834ef1..24b983df4c0 100644 --- a/src/dpl/README.md +++ b/src/dpl/README.md @@ -97,6 +97,28 @@ This command removes all filler cells. remove_fillers ``` +### Insert Decap Cells +The `insert_decap` command inserts decap cells in the areas with the highest +IR Drop. The number of decap cells inserted will be limited to the target +capacitance defined in the `-target_cap` option. `list_of_decap_with_cap` +is a list of even size of decap master cells and their capacitances, +e.g., ` ...`. To insert decap +cells in the IR Drop of a specific net (power or ground) use `-net `, +if not defined the default power net will be used. +To use this command, you must first execute the `analyze_power_grid` command +with the net to have the IR Drop information. + +```tcl +insert_decap -target_cap target_cap [-net net_name] [-cells list_of_decap_with_cap] +``` + +#### Options +| Switch Name | Description | +| ----- | ----- | +| `-target_cap` | Target capacitance to insert os decap cells. | +| `-net` | Power or ground net name. The decap cells will be inserted near the IR Drops of the net. | +| `-cells` | List of even size of decap master cells and their capacitances. | + ### Check Placement The `check_placement` command checks the placement legality. It returns diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 30405b2cc67..2952962a5b2 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -114,25 +114,9 @@ struct DbuRect; using dbMasterSeq = vector; -struct GapX -{ - int x; - odb::dbOrientType orient; - int width; - int height; - bool is_filled; - GapX(int _x, const odb::dbOrientType _orient, int _width, int _height) - { - x = _x; - orient = _orient; - width = _width; - height = _height; - is_filled = false; - } -}; - -using gapMap = map>; - +struct GapInfo; +struct DecapCell; +struct IRDrop; //////////////////////////////////////////////////////////////// class Opendp @@ -176,8 +160,8 @@ class Opendp void optimizeMirroring(); // Place decap cells - void setDecapMaster(dbMaster* decap_master, double decap_cap); - void insertDecapCells(double target); + void addDecapMaster(dbMaster* decap_master, double decap_cap); + void insertDecapCells(double target, const char* net_name); private: using bgPoint @@ -193,6 +177,9 @@ class Opendp using GapFillers = vector; using MasterByImplant = std::map; + + using GapMapByY = std::map>; + friend class OpendpTest_IsPlaced_Test; friend class Graphics; void findDisplacementStats(); @@ -339,14 +326,14 @@ class Opendp const char* gridInstName(GridY row, GridX col, const GridInfo& grid_info); // Place decaps - vector getDecapCell(const int& gap_width, + vector findDecapCellIndices(const int& gap_width, const double& current, const double& target); void insertDecapInPos(dbMaster* master, const odb::dbOrientType& orient, const int& pos_x, const int& pos_y); - void insertDecapInRow(const vector& gaps, + void insertDecapInRow(const vector& gaps, int gap_y, int irdrop_x, int irdrop_y, @@ -355,6 +342,9 @@ class Opendp void findGaps(); void findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info); odb::dbTechLayer* getLowestLayer(odb::dbNet* db_net); + void getIRDrops(const char* net_name, std::vector& ir_drops); + void prepareDecapAndGaps(); + odb::dbNet* findPowerNet(const char* net_name); Logger* logger_ = nullptr; dbDatabase* db_ = nullptr; @@ -386,9 +376,9 @@ class Opendp // Decap placement. psm::PDNSim* psm_; - vector> decap_masters_; + vector decap_masters_; int decap_count_ = 0; - gapMap gaps_; + GapMapByY gaps_; // Results saved for optional reporting. int64_t hpwl_before_ = 0; diff --git a/src/dpl/src/DecapObjects.h b/src/dpl/src/DecapObjects.h new file mode 100644 index 00000000000..e19d219c795 --- /dev/null +++ b/src/dpl/src/DecapObjects.h @@ -0,0 +1,74 @@ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2024, Precision Innovations Inc. +// All rights reserved. +// +// BSD 3-Clause License +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, this +// list of conditions and the following disclaimer. +// +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +namespace dpl { + +struct GapInfo +{ + int x; + odb::dbOrientType orient; + int width; + int height; + bool is_filled; + GapInfo(int x, const odb::dbOrientType& orient, int width, int height) + : x(x), + orient(orient), + width(width), + height(height), + is_filled(false) + {} +}; + +struct DecapCell +{ + dbMaster* master; + double capacitance; + DecapCell(dbMaster* master, double& capacitance) + : master(master), + capacitance(capacitance) + {} +}; + +struct IRDrop +{ + odb::Point position; + double value; + IRDrop(const odb::Point& position, double& value) + : position(position), + value(value) + {} +}; + +} // namespace dpl diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index 8dc17a8c09d..622bf7b2323 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2020, The Regents of the University of California +// Copyright (c) 2024, Precision Innovations Inc. // All rights reserved. // // BSD 3-Clause License @@ -34,9 +34,9 @@ #include -#include "Grid.h" -#include "Objects.h" #include "dpl/Opendp.h" +#include "Objects.h" +#include "DecapObjects.h" #include "odb/dbShape.h" #include "utl/Logger.h" @@ -48,33 +48,39 @@ using utl::DPL; using odb::dbMaster; using odb::dbPlacementStatus; +using odb::dbSigType; using IRDropByPoint = std::map; using IRDropByLayer = std::map; -void Opendp::setDecapMaster(dbMaster* decap_master, double decap_cap) +void Opendp::addDecapMaster(dbMaster* decap_master, double decap_cap) { - decap_masters_.emplace_back(decap_master, decap_cap); + decap_masters_.emplace_back(new DecapCell(decap_master, decap_cap)); } -vector Opendp::getDecapCell(const int& gap_width, +// Return list of decap indices to fill gap +vector Opendp::findDecapCellIndices(const int& gap_width, const double& current, const double& target) { vector id_masters; - double acum = 0.0; + double cap_acum = 0.0; int width_acum = 0; for (int i = 0; i < decap_masters_.size(); i++) { - if ((gap_width - width_acum) >= decap_masters_[i].first->getWidth() - && (acum + decap_masters_[i].second) <= (target - current)) { + while ( decap_masters_[i]->master->getWidth() <= (gap_width - width_acum) + && (cap_acum + decap_masters_[i]->capacitance) <= (target - current)) { id_masters.push_back(i); - acum += decap_masters_[i].second; - width_acum += decap_masters_[i].first->getWidth(); + cap_acum += decap_masters_[i]->capacitance; + width_acum += decap_masters_[i]->master->getWidth(); + if (width_acum == gap_width) { + return id_masters; + } } } return id_masters; } +// Return the lowest layer of db_net route odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet* db_net) { int min_layer_level = std::numeric_limits::max(); @@ -88,49 +94,50 @@ odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet* db_net) if (tech_layer->getRoutingLevel() == 0) { continue; } - if (min_layer_level == -1 - || min_layer_level > tech_layer->getRoutingLevel()) { - min_layer_level = tech_layer->getRoutingLevel(); - } + min_layer_level = std::min(min_layer_level, tech_layer->getRoutingLevel()); } } else { odb::dbTechLayer* tech_layer = s->getTechLayer(); - if (min_layer_level == -1 - || min_layer_level > tech_layer->getRoutingLevel()) { - min_layer_level = tech_layer->getRoutingLevel(); - } + min_layer_level = std::min(min_layer_level, tech_layer->getRoutingLevel()); } } } return db_->getTech()->findRoutingLayer(min_layer_level); } -void Opendp::insertDecapCells(const double target) +odb::dbNet* Opendp::findPowerNet(const char* net_name) { - // init dpl variables - if (cells_.empty()) { - importDb(); + odb::dbNet* power_net = nullptr; + // If net name is defined by user + if (!std::string(net_name).empty()) { + power_net = block_->findNet(net_name); + if (power_net == nullptr) { + logger_->error(utl::DPL, 58, "Cannot find net {} in the design.", net_name); + } + // Check if net is supply + if (!power_net->getSigType().isSupply()) { + logger_->error(utl::DPL, 57, "{} is not a supply net.", power_net->getName()); + } + return power_net; } - - decap_count_ = 0; - initGrid(); - setGridCells(); - - if (grid_->infoMapEmpty()) { - logger_->error(DPL, 52, "Info map wasnt load to place DECAP cells"); + // Otherwise find power net + for (auto db_net : block_->getNets()) { + if (db_net->getSigType().isSupply() && db_net->getSigType() == dbSigType::POWER) { + power_net = db_net; + break; + } } + return power_net; +} - // Sort decaps cells in decrease order - std::sort(decap_masters_.begin(), - decap_masters_.end(), - [](std::pair& decap_master1, - std::pair& decap_master2) { - return decap_master1.second > decap_master2.second; - }); - - // Get IR DROP of net VDD on layer met1 +// Return IR Drops for the net name in the lowest layer +void Opendp::getIRDrops(const char* net_name, std::vector& ir_drops) +{ IRDropByPoint ir_drop; - odb::dbNet* db_net = block_->findNet("VDD"); + + // Get db_net + odb::dbNet* db_net = findPowerNet(net_name); + // Get lowest layer odb::dbTechLayer* tech_layer = getLowestLayer(db_net); @@ -139,81 +146,112 @@ void Opendp::insertDecapCells(const double target) if (ir_drop.empty()) { logger_->error(DPL, 53, - "Any IR DROP point found, run analyse_power_grid before of " - "insert DECAP cells"); + "No IR drop data found. Run analyse_power_grid for net {} before inserting decap cells.", db_net->getName()); } - // Sort the IR DROP point ins decrease order - std::vector> irdrop_points; + // Sort the IR DROP point in descending order for (auto& it : ir_drop) { - irdrop_points.emplace_back(it.first, it.second); + ir_drops.emplace_back(it.first, it.second); } - std::sort(irdrop_points.begin(), - irdrop_points.end(), - [](std::pair& point1, - std::pair& point2) { - return point1.second > point2.second; - }); + std::sort(ir_drops.begin(), + ir_drops.end(), + [](const IRDrop& ir_drop1, + const IRDrop& ir_drop2) { + return ir_drop1.value > ir_drop2.value; + }); +} - // If fillers are placed - if (have_fillers_) { - logger_->error( - DPL, 54, "Filler cells found when running insert decap cells"); - } +void Opendp::prepareDecapAndGaps() +{ + // Sort decaps cells in decrease order + std::sort(decap_masters_.begin(), + decap_masters_.end(), + [](const DecapCell* decap1, + const DecapCell* decap2) { + return decap1->capacitance > decap2->capacitance; + }); // Find gaps availables findGaps(); int gaps_count = 0; // Sort each gap vector for X position for (auto& it : gaps_) { - std::sort(it.second.begin(), it.second.end(), [](GapX& gap1, GapX& gap2) { - return gap1.x < gap2.x; + std::sort(it.second.begin(), it.second.end(), [](const GapInfo* gap1, const GapInfo* gap2) { + return gap1->x < gap2->x; }); gaps_count += it.second.size(); } if (gaps_count == 0) { - logger_->error(DPL, 55, "Gaps dont found during insert decap cells"); + logger_->error(DPL, 55, "Gaps not found when inserting decap cells."); + } +} + +void Opendp::insertDecapCells(const double target, const char* net_name) +{ + // init dpl variables + if (cells_.empty()) { + importDb(); } double total_cap = 0.0; - for (auto& irdrop_it : irdrop_points) { - // Find gaps in same row - auto it_gapY = gaps_.find(irdrop_it.first.getY()); - if (it_gapY != gaps_.end()) { - // Find and insert decap in this row - insertDecapInRow(it_gapY->second, - it_gapY->first, - irdrop_it.first.getX(), - irdrop_it.first.getY(), - total_cap, - target); - } + decap_count_ = 0; + initGrid(); + setGridCells(); + + // If fillers are placed + if (have_fillers_) { + logger_->error( + DPL, 54, "Run remove_fillers before inserting decap cells"); + } + + if (!grid_->infoMapEmpty()) { + + // Sort Decap cells and Gaps + prepareDecapAndGaps(); + + // Get IR DROP of net VDD on the lowest layer + std::vector ir_drops; + getIRDrops(net_name, ir_drops); - // if row is not first, then get lower row - if (it_gapY != gaps_.begin()) { - it_gapY--; - // verify if row + height >= ypoint - if (it_gapY->first + (it_gapY->second).begin()->height - <= irdrop_it.first.getY()) { + for (auto& irdrop_it : ir_drops) { + // Find gaps in same row + auto it_gapY = gaps_.find(irdrop_it.position.getY()); + if (it_gapY != gaps_.end()) { + // Find and insert decap in this row insertDecapInRow(it_gapY->second, it_gapY->first, - irdrop_it.first.getX(), - irdrop_it.first.getY(), + irdrop_it.position.getX(), + irdrop_it.position.getY(), total_cap, target); } + + // if row is not first, then get lower row + if (it_gapY != gaps_.begin()) { + it_gapY--; + // verify if row + height >= ypoint + if (it_gapY->first + (*(it_gapY->second).begin())->height + <= irdrop_it.position.getY()) { + insertDecapInRow(it_gapY->second, + it_gapY->first, + irdrop_it.position.getX(), + irdrop_it.position.getY(), + total_cap, + target); + } + } } } logger_->info(DPL, 56, - "Placed {} decap cells, cap total {:6.4f}", + "Placed {} decap cells. Total capacitance: {:6.6f}", decap_count_, total_cap); } -void Opendp::insertDecapInRow(const vector& gaps, +void Opendp::insertDecapInRow(const vector& gaps, const int gap_y, const int irdrop_x, const int irdrop_y, @@ -225,22 +263,22 @@ void Opendp::insertDecapInRow(const vector& gaps, gaps.begin(), gaps.end(), irdrop_x, - [](const GapX& elem, const int& value) { return elem.x < value; }); + [](const GapInfo* elem, const int& value) { return elem->x < value; }); // if this row has free gap with x <= xpoint <= x + width - if (find_gap != gaps.end() && (find_gap->x + find_gap->width) >= irdrop_x - && !find_gap->is_filled) { - auto ids = getDecapCell(find_gap->width, total, target); + if (find_gap != gaps.end() && ((*find_gap)->x + (*find_gap)->width) >= irdrop_x + && !(*find_gap)->is_filled) { + auto ids = findDecapCellIndices((*find_gap)->width, total, target); if (!ids.empty()) { - gaps_[gap_y][find_gap - gaps.begin()].is_filled = true; + gaps_[gap_y][find_gap - gaps.begin()]->is_filled = true; } - int gap_x = find_gap->x; + int gap_x = (*find_gap)->x; for (const int& it_decap : ids) { // insert decap inst in this pos insertDecapInPos( - decap_masters_[it_decap].first, find_gap->orient, gap_x, gap_y); + decap_masters_[it_decap]->master, (*find_gap)->orient, gap_x, gap_y); - gap_x += decap_masters_[it_decap].first->getWidth(); - total += decap_masters_[it_decap].second; + gap_x += decap_masters_[it_decap]->master->getWidth(); + total += decap_masters_[it_decap]->capacitance; decap_count_++; } } @@ -320,8 +358,8 @@ void Opendp::findGapsInRow(GridY row, DbuX gap_x{core.xMin() + gridToDbu(j, site_width)}; DbuY gap_y{core.yMin() + gridToDbu(row, DbuY{row_height})}; DbuX gap_width{gridToDbu(k, site_width) - gridToDbu(j, site_width)}; - gaps_[gap_y.v].push_back( - GapX(gap_x.v, orient, gap_width.v, row_height.v)); + gaps_[gap_y.v].emplace_back( + new GapInfo(gap_x.v, orient, gap_width.v, row_height.v)); j += (k - j); } else { diff --git a/src/dpl/src/Opendp.i b/src/dpl/src/Opendp.i index 186b2eb1cb6..085f5c14c5d 100644 --- a/src/dpl/src/Opendp.i +++ b/src/dpl/src/Opendp.i @@ -153,17 +153,17 @@ filler_placement_cmd(dpl::dbMasterSeq *filler_masters, } void -set_decap_master(odb::dbMaster *master, float cap) +add_decap_master(odb::dbMaster *master, float cap) { dpl::Opendp *opendp = ord::OpenRoad::openRoad()->getOpendp(); - opendp->setDecapMaster(master, cap); + opendp->addDecapMaster(master, cap); } void -insert_decap_cmd(const float target) +insert_decap_cmd(const float target, const char* net_name) { dpl::Opendp *opendp = ord::OpenRoad::openRoad()->getOpendp(); - opendp->insertDecapCells(target); + opendp->insertDecapCells(target, net_name); } void diff --git a/src/dpl/src/Opendp.tcl b/src/dpl/src/Opendp.tcl index 361aa6b7988..4ba6d64944c 100644 --- a/src/dpl/src/Opendp.tcl +++ b/src/dpl/src/Opendp.tcl @@ -136,34 +136,43 @@ proc filler_placement { args } { dpl::filler_placement_cmd $filler_masters $prefix } -sta::define_cmd_args "insert_decap" { [-cap target] [-cells cell_info] } +sta::define_cmd_args "insert_decap" { -target_cap target_cap\ + [-cells cell_info]\ + [-net net_name]\ + } proc insert_decap { args } { sta::parse_key_args "insert_decap" args \ - keys {-cap -cells} flags {} - - set cap_target 0.0 - if { [info exists keys(-cap)] } { - set cap_target $keys(-cap) + keys {-target_cap -cells -net} flags {} + + set target_cap 0.0 + if { [info exists keys(-target_cap)] } { + set target_cap $keys(-target_cap) + sta::check_positive_float "-target_cap" $target_cap + # F/m + set target_cap [expr [sta::capacitance_ui_sta $target_cap] / [sta::distance_ui_sta 1.0]] } # Check even size set cells_and_decap $keys(-cells) if { [expr [llength $cells_and_decap] % 2] != 0 } { - utl::error DPL 181 "List of decap cells must have an even size." + utl::error DPL 181 "-cells must be a list of cell and decap pairs" } # Add decap cells on DPL set db [ord::get_db] foreach {cell_name decap} $cells_and_decap { - set decap_value [format "%.4f" $decap] + set decap_value $decap + sta::check_positive_float "-cells" $decap_value + # F/m + set decap_value [expr [sta::capacitance_ui_sta $decap_value] / [sta::distance_ui_sta 1.0]] # Find master with cell_name set matched 0 foreach lib [$db getLibs] { foreach master [$lib getMasters] { set master_name [$master getConstName] if { [string match $cell_name $master_name] } { - dpl::set_decap_master $master $decap_value + dpl::add_decap_master $master $decap_value set matched 1 } } @@ -172,8 +181,15 @@ proc insert_decap { args } { utl::warn "DPL" 280 "$decap_name did not match any masters." } } + # Get net name + set net_name "" + if { [info exists keys(-net)] } { + set net_name $keys(-net) + } + + puts $net_name # Insert decap cells - dpl::insert_decap_cmd $cap_target + dpl::insert_decap_cmd $target_cap $net_name } sta::define_cmd_args "remove_fillers" {} From 430f0096fcdc2979fc960a74a57e57652f07c5f0 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Tue, 9 Jul 2024 16:54:22 +0000 Subject: [PATCH 08/56] dpl: adding clang-format Signed-off-by: luis201420 --- src/dpl/include/dpl/Opendp.h | 4 +-- src/dpl/src/DecapObjects.h | 25 ++++++++------- src/dpl/src/DecapPlacement.cpp | 57 +++++++++++++++++++--------------- 3 files changed, 47 insertions(+), 39 deletions(-) diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 2952962a5b2..57395d020fe 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -327,8 +327,8 @@ class Opendp // Place decaps vector findDecapCellIndices(const int& gap_width, - const double& current, - const double& target); + const double& current, + const double& target); void insertDecapInPos(dbMaster* master, const odb::dbOrientType& orient, const int& pos_x, diff --git a/src/dpl/src/DecapObjects.h b/src/dpl/src/DecapObjects.h index e19d219c795..b314c09f822 100644 --- a/src/dpl/src/DecapObjects.h +++ b/src/dpl/src/DecapObjects.h @@ -33,8 +33,12 @@ #pragma once +#include "dpl/Opendp.h" + namespace dpl { +using odb::dbOrientType; + struct GapInfo { int x; @@ -43,12 +47,9 @@ struct GapInfo int height; bool is_filled; GapInfo(int x, const odb::dbOrientType& orient, int width, int height) - : x(x), - orient(orient), - width(width), - height(height), - is_filled(false) - {} + : x(x), orient(orient), width(width), height(height), is_filled(false) + { + } }; struct DecapCell @@ -56,9 +57,9 @@ struct DecapCell dbMaster* master; double capacitance; DecapCell(dbMaster* master, double& capacitance) - : master(master), - capacitance(capacitance) - {} + : master(master), capacitance(capacitance) + { + } }; struct IRDrop @@ -66,9 +67,9 @@ struct IRDrop odb::Point position; double value; IRDrop(const odb::Point& position, double& value) - : position(position), - value(value) - {} + : position(position), value(value) + { + } }; } // namespace dpl diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index 622bf7b2323..aa50e2ab717 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -34,9 +34,9 @@ #include -#include "dpl/Opendp.h" -#include "Objects.h" #include "DecapObjects.h" +#include "Objects.h" +#include "dpl/Opendp.h" #include "odb/dbShape.h" #include "utl/Logger.h" @@ -60,15 +60,16 @@ void Opendp::addDecapMaster(dbMaster* decap_master, double decap_cap) // Return list of decap indices to fill gap vector Opendp::findDecapCellIndices(const int& gap_width, - const double& current, - const double& target) + const double& current, + const double& target) { vector id_masters; double cap_acum = 0.0; int width_acum = 0; for (int i = 0; i < decap_masters_.size(); i++) { - while ( decap_masters_[i]->master->getWidth() <= (gap_width - width_acum) - && (cap_acum + decap_masters_[i]->capacitance) <= (target - current)) { + while (decap_masters_[i]->master->getWidth() <= (gap_width - width_acum) + && (cap_acum + decap_masters_[i]->capacitance) + <= (target - current)) { id_masters.push_back(i); cap_acum += decap_masters_[i]->capacitance; width_acum += decap_masters_[i]->master->getWidth(); @@ -94,11 +95,13 @@ odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet* db_net) if (tech_layer->getRoutingLevel() == 0) { continue; } - min_layer_level = std::min(min_layer_level, tech_layer->getRoutingLevel()); + min_layer_level + = std::min(min_layer_level, tech_layer->getRoutingLevel()); } } else { odb::dbTechLayer* tech_layer = s->getTechLayer(); - min_layer_level = std::min(min_layer_level, tech_layer->getRoutingLevel()); + min_layer_level + = std::min(min_layer_level, tech_layer->getRoutingLevel()); } } } @@ -112,17 +115,20 @@ odb::dbNet* Opendp::findPowerNet(const char* net_name) if (!std::string(net_name).empty()) { power_net = block_->findNet(net_name); if (power_net == nullptr) { - logger_->error(utl::DPL, 58, "Cannot find net {} in the design.", net_name); + logger_->error( + utl::DPL, 58, "Cannot find net {} in the design.", net_name); } // Check if net is supply if (!power_net->getSigType().isSupply()) { - logger_->error(utl::DPL, 57, "{} is not a supply net.", power_net->getName()); + logger_->error( + utl::DPL, 57, "{} is not a supply net.", power_net->getName()); } return power_net; } // Otherwise find power net for (auto db_net : block_->getNets()) { - if (db_net->getSigType().isSupply() && db_net->getSigType() == dbSigType::POWER) { + if (db_net->getSigType().isSupply() + && db_net->getSigType() == dbSigType::POWER) { power_net = db_net; break; } @@ -137,7 +143,7 @@ void Opendp::getIRDrops(const char* net_name, std::vector& ir_drops) // Get db_net odb::dbNet* db_net = findPowerNet(net_name); - + // Get lowest layer odb::dbTechLayer* tech_layer = getLowestLayer(db_net); @@ -146,7 +152,9 @@ void Opendp::getIRDrops(const char* net_name, std::vector& ir_drops) if (ir_drop.empty()) { logger_->error(DPL, 53, - "No IR drop data found. Run analyse_power_grid for net {} before inserting decap cells.", db_net->getName()); + "No IR drop data found. Run analyse_power_grid for net {} " + "before inserting decap cells.", + db_net->getName()); } // Sort the IR DROP point in descending order @@ -156,10 +164,9 @@ void Opendp::getIRDrops(const char* net_name, std::vector& ir_drops) std::sort(ir_drops.begin(), ir_drops.end(), - [](const IRDrop& ir_drop1, - const IRDrop& ir_drop2) { + [](const IRDrop& ir_drop1, const IRDrop& ir_drop2) { return ir_drop1.value > ir_drop2.value; - }); + }); } void Opendp::prepareDecapAndGaps() @@ -167,8 +174,7 @@ void Opendp::prepareDecapAndGaps() // Sort decaps cells in decrease order std::sort(decap_masters_.begin(), decap_masters_.end(), - [](const DecapCell* decap1, - const DecapCell* decap2) { + [](const DecapCell* decap1, const DecapCell* decap2) { return decap1->capacitance > decap2->capacitance; }); @@ -177,9 +183,11 @@ void Opendp::prepareDecapAndGaps() int gaps_count = 0; // Sort each gap vector for X position for (auto& it : gaps_) { - std::sort(it.second.begin(), it.second.end(), [](const GapInfo* gap1, const GapInfo* gap2) { - return gap1->x < gap2->x; - }); + std::sort(it.second.begin(), + it.second.end(), + [](const GapInfo* gap1, const GapInfo* gap2) { + return gap1->x < gap2->x; + }); gaps_count += it.second.size(); } @@ -202,12 +210,10 @@ void Opendp::insertDecapCells(const double target, const char* net_name) // If fillers are placed if (have_fillers_) { - logger_->error( - DPL, 54, "Run remove_fillers before inserting decap cells"); + logger_->error(DPL, 54, "Run remove_fillers before inserting decap cells"); } if (!grid_->infoMapEmpty()) { - // Sort Decap cells and Gaps prepareDecapAndGaps(); @@ -265,7 +271,8 @@ void Opendp::insertDecapInRow(const vector& gaps, irdrop_x, [](const GapInfo* elem, const int& value) { return elem->x < value; }); // if this row has free gap with x <= xpoint <= x + width - if (find_gap != gaps.end() && ((*find_gap)->x + (*find_gap)->width) >= irdrop_x + if (find_gap != gaps.end() + && ((*find_gap)->x + (*find_gap)->width) >= irdrop_x && !(*find_gap)->is_filled) { auto ids = findDecapCellIndices((*find_gap)->width, total, target); if (!ids.empty()) { From 820cf3791dbdf48c4de2cffcc99944a9ee162c0d Mon Sep 17 00:00:00 2001 From: luis201420 Date: Tue, 9 Jul 2024 17:08:42 +0000 Subject: [PATCH 09/56] dpl: adding the requested modifications Signed-off-by: luis201420 --- src/dpl/src/DecapObjects.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dpl/src/DecapObjects.h b/src/dpl/src/DecapObjects.h index b314c09f822..5c1dae72e79 100644 --- a/src/dpl/src/DecapObjects.h +++ b/src/dpl/src/DecapObjects.h @@ -45,9 +45,9 @@ struct GapInfo odb::dbOrientType orient; int width; int height; - bool is_filled; + bool is_filled{false}; GapInfo(int x, const odb::dbOrientType& orient, int width, int height) - : x(x), orient(orient), width(width), height(height), is_filled(false) + : x(x), orient(orient), width(width), height(height) { } }; From 55cb5cfa019e086c1aa3e128198e79db0310c668 Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Fri, 12 Jul 2024 01:35:14 +0000 Subject: [PATCH 10/56] improve runtime for 100% setup TNS repair 1) bail out if TNS fix rate progress is < 0.01% 2) bail out if no TNS progress for 200 iterations 3) add a message for no setup violation 4) add -skip_buffering option Signed-off-by: Cho Moon --- src/rsz/README.md | 2 + src/rsz/include/rsz/Resizer.hh | 1 + src/rsz/src/RepairSetup.cc | 97 +++++++++++++++++++++++++++------- src/rsz/src/RepairSetup.hh | 24 ++++++--- src/rsz/src/Resizer.cc | 2 + src/rsz/src/Resizer.i | 4 +- src/rsz/src/Resizer.tcl | 6 ++- src/rsz/test/gcd_resize.ok | 1 + src/rsz/test/repair_fanout7.ok | 74 ++++++++++++-------------- 9 files changed, 141 insertions(+), 70 deletions(-) diff --git a/src/rsz/README.md b/src/rsz/README.md index 449a61bb191..b9fbc059778 100644 --- a/src/rsz/README.md +++ b/src/rsz/README.md @@ -275,6 +275,7 @@ repair_timing [-allow_setup_violations] [-skip_pin_swap] [-skip_gate_cloning] + [-skip_buffering] [-enable_buffer_removal] [-repair_tns tns_end_percent] [-max_passes passes] @@ -295,6 +296,7 @@ repair_timing | `-allow_setup_violations` | While repairing hold violations, buffers are not inserted that will cause setup violations unless `-allow_setup_violations` is specified. | | `-skip_pin_swap` | Flag to skip pin swap. The default value is `False`, and the allowed values are bools. | | `-skip_gate_cloning` | Flag to skip gate cloning. The default value is `False`, and the allowed values are bools. | +| `-skip_buffergin` | Flag to skip rebuffering and load splitting. The default value is `False`, and the allowed values are bools. | | `-enable_buffer_removal` | Flag to enable buffer removal during setup fixing. The default value is `False`, and the allowed values are bools. | | `-repair_tns` | Percentage of violating endpoints to repair (0-100). When `tns_end_percent` is zero (the default), only the worst endpoint is repaired. When `tns_end_percent` is 100, all violating endpoints are repaired. | | `-max_utilization` | Defines the percentage of core area used. | diff --git a/src/rsz/include/rsz/Resizer.hh b/src/rsz/include/rsz/Resizer.hh index 9a57fc21e9c..4c5021dc4cd 100644 --- a/src/rsz/include/rsz/Resizer.hh +++ b/src/rsz/include/rsz/Resizer.hh @@ -267,6 +267,7 @@ class Resizer : public dbStaState bool verbose, bool skip_pin_swap, bool skip_gate_cloning, + bool skip_buffering, bool skip_buffer_removal); // For testing. void repairSetup(const Pin* end_pin); diff --git a/src/rsz/src/RepairSetup.cc b/src/rsz/src/RepairSetup.cc index 366b7b0b43b..14d05cbf132 100644 --- a/src/rsz/src/RepairSetup.cc +++ b/src/rsz/src/RepairSetup.cc @@ -90,6 +90,7 @@ void RepairSetup::repairSetup(const float setup_slack_margin, const bool verbose, const bool skip_pin_swap, const bool skip_gate_cloning, + const bool skip_buffering, const bool skip_buffer_removal) { init(); @@ -137,11 +138,14 @@ void RepairSetup::repairSetup(const float setup_slack_margin, } else { // nothing to repair logger_->metric("design__instance__count__setup_buffer", 0); + logger_->info(RSZ, 98, "No setup violations found"); return; } int end_index = 0; int max_end_count = violating_ends.size() * repair_tns_end_percent; + float initial_tns = sta_->totalNegativeSlack(max_); + float prev_tns = initial_tns; // Always repair the worst endpoint, even if tns percent is zero. max_end_count = max(max_end_count, 1); swap_pin_inst_set_.clear(); // Make sure we do not swap the same pin twice. @@ -151,9 +155,11 @@ void RepairSetup::repairSetup(const float setup_slack_margin, sta_->checkFanoutLimitPreamble(); resizer_->incrementalParasiticsBegin(); - int print_iteration = 0; + int opto_iteration = 0; + bool prev_termination = false; + bool two_cons_terminations = false; if (verbose) { - printProgress(print_iteration, false, false); + printProgress(opto_iteration, false, false); } for (const auto& end_original_slack : violating_ends) { Vertex* end = end_original_slack.first; @@ -191,9 +197,25 @@ void RepairSetup::repairSetup(const float setup_slack_margin, int decreasing_slack_passes = 0; resizer_->journalBegin(); while (pass <= max_passes) { - print_iteration++; + opto_iteration++; if (verbose) { - printProgress(print_iteration, false, false); + printProgress(opto_iteration, false, false); + } + if (terminateProgress(opto_iteration, + initial_tns, + prev_tns, + end_index, + max_end_count)) { + if (prev_termination) { + // Abort entire fixing if no progress for 200 iterations + two_cons_terminations = true; + } else { + prev_termination = true; + } + break; + } + if (opto_iteration % opto_interval_ == 0) { + prev_termination = false; } if (end_slack > setup_slack_margin) { @@ -222,6 +244,7 @@ void RepairSetup::repairSetup(const float setup_slack_margin, end_slack, skip_pin_swap, skip_gate_cloning, + skip_buffering, skip_buffer_removal, setup_slack_margin); if (!changed) { @@ -317,13 +340,20 @@ void RepairSetup::repairSetup(const float setup_slack_margin, end = worst_vertex; } pass++; - } + } // while pass <= max_passes if (verbose) { - printProgress(print_iteration, true, false); + printProgress(opto_iteration, true, false); } - } + if (two_cons_terminations) { + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "bailing out of setup fixing" + "due to no TNS progress for two opto cycles"); + // clang-format on + break; + } + } // for each violating endpoint if (verbose) { - printProgress(print_iteration, true, true); + printProgress(opto_iteration, true, true); } // Leave the parasitics up to date. resizer_->updateParasitics(); @@ -375,7 +405,7 @@ void RepairSetup::repairSetup(const Pin* end_pin) const Slack slack = sta_->vertexSlack(vertex, max_); PathRef path = sta_->vertexWorstSlackPath(vertex, max_); resizer_->incrementalParasiticsBegin(); - repairPath(path, slack, false, false, false, 0.0); + repairPath(path, slack, false, false, false, false, 0.0); // Leave the parasitices up to date. resizer_->updateParasitics(); resizer_->incrementalParasiticsEnd(); @@ -416,6 +446,7 @@ bool RepairSetup::repairPath(PathRef& path, const Slack path_slack, const bool skip_pin_swap, const bool skip_gate_cloning, + const bool skip_buffering, const bool skip_buffer_removal, const float setup_slack_margin) { @@ -507,7 +538,8 @@ bool RepairSetup::repairPath(PathRef& path, // For tristate nets all we can do is resize the driver. const bool tristate_drvr = resizer_->isTristateDriver(drvr_pin); dbNet* db_net = db_network_->staToDb(net); - if (fanout > 1 + if (!skip_buffering + && fanout > 1 // Rebuffer blows up on large fanout nets. && fanout < rebuffer_max_fanout_ && !tristate_drvr && !resizer_->dontTouch(net) && !db_net->isConnectedByAbutment()) { @@ -537,14 +569,16 @@ bool RepairSetup::repairPath(PathRef& path, break; } - // Don't split loads on low fanout nets. - if (fanout > split_load_min_fanout_ && !tristate_drvr - && !resizer_->dontTouch(net) && !db_net->isConnectedByAbutment()) { - const int init_buffer_count = inserted_buffer_count_; - splitLoads(drvr_path, drvr_index, path_slack, &expanded); - split_load_buffer_count_ = inserted_buffer_count_ - init_buffer_count; - changed = true; - break; + if (!skip_buffering) { + // Don't split loads on low fanout nets. + if (fanout > split_load_min_fanout_ && !tristate_drvr + && !resizer_->dontTouch(net) && !db_net->isConnectedByAbutment()) { + const int init_buffer_count = inserted_buffer_count_; + splitLoads(drvr_path, drvr_index, path_slack, &expanded); + split_load_buffer_count_ = inserted_buffer_count_ - init_buffer_count; + changed = true; + break; + } } } } @@ -1588,4 +1622,31 @@ void RepairSetup::printProgress(const int iteration, } } +// Terminate progress if incremental fix rate within an opto interval falls +// below the threshold of 0.01% +bool RepairSetup::terminateProgress(const int iteration, + const float initial_tns, + float& prev_tns, + // for debug only + const int endpt_index, + const int num_endpts) +{ + if (iteration % opto_interval_ == 0) { + float curr_tns = sta_->totalNegativeSlack(max_); + float inc_fix_rate = (prev_tns - curr_tns) / initial_tns; + prev_tns = curr_tns; + if (iteration > 1000 // allow for some initial fixing for 1000 iterations + && inc_fix_rate < inc_fix_rate_threshold_) { + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "bailing out at iter {}" + " because incr fix rate {:0.2f}% is < {:0.2f}% [endpt {}/{}]", + iteration, inc_fix_rate*100, inc_fix_rate_threshold_*100, + endpt_index, num_endpts); + // clang-format on + return true; + } + } + return false; +} + } // namespace rsz diff --git a/src/rsz/src/RepairSetup.hh b/src/rsz/src/RepairSetup.hh index f1982114c6a..d607ee488db 100644 --- a/src/rsz/src/RepairSetup.hh +++ b/src/rsz/src/RepairSetup.hh @@ -116,6 +116,7 @@ class RepairSetup : public sta::dbStaState bool verbose, bool skip_pin_swap, bool skip_gate_cloning, + bool skip_buffering, bool skip_buffer_removal); // For testing. void repairSetup(const Pin* end_pin); @@ -128,11 +129,12 @@ class RepairSetup : public sta::dbStaState private: void init(); bool repairPath(PathRef& path, - const Slack path_slack, - const bool skip_pin_swap, - const bool skip_gate_cloning, - const bool skip_buffer_removal, - const float setup_slack_margin); + Slack path_slack, + bool skip_pin_swap, + bool skip_gate_cloning, + bool skip_buffering, + bool skip_buffer_removal, + float setup_slack_margin); void debugCheckMultipleBuffers(PathRef& path, PathExpanded* expanded); bool simulateExpr( sta::FuncExpr* expr, @@ -151,9 +153,9 @@ class RepairSetup : public sta::dbStaState bool swapPins(PathRef* drvr_path, int drvr_index, PathExpanded* expanded); bool removeDrvr(PathRef* drvr_path, LibertyCell* drvr_cell, - const int drvr_index, + int drvr_index, PathExpanded* expanded, - const float setup_slack_margin); + float setup_slack_margin); bool estimatedSlackOK(const SlackEstimatorParams& params); bool upsizeDrvr(PathRef* drvr_path, int drvr_index, PathExpanded* expanded); Point computeCloneGateLocation( @@ -187,6 +189,11 @@ class RepairSetup : public sta::dbStaState Slack slackPenalized(const BufferedNetPtr& bnet, int index); void printProgress(int iteration, bool force, bool end) const; + bool terminateProgress(int iteration, + float initial_tns, + float& prev_tns, + int endpt_index, + int num_endpts); Logger* logger_ = nullptr; dbNetwork* db_network_ = nullptr; @@ -215,7 +222,10 @@ class RepairSetup : public sta::dbStaState static constexpr int split_load_min_fanout_ = 8; static constexpr double rebuffer_buffer_penalty_ = .01; static constexpr int print_interval_ = 10; + static constexpr int opto_interval_ = 100; static constexpr int buffer_removal_max_fanout_ = 10; + static constexpr float inc_fix_rate_threshold_ + = 0.0001; // default fix rate threshold = 0.01% }; } // namespace rsz diff --git a/src/rsz/src/Resizer.cc b/src/rsz/src/Resizer.cc index a830b326656..6bdb4eebea6 100644 --- a/src/rsz/src/Resizer.cc +++ b/src/rsz/src/Resizer.cc @@ -2732,6 +2732,7 @@ void Resizer::repairSetup(double setup_margin, bool verbose, bool skip_pin_swap, bool skip_gate_cloning, + bool skip_buffering, bool skip_buffer_removal) { resizePreamble(); @@ -2744,6 +2745,7 @@ void Resizer::repairSetup(double setup_margin, verbose, skip_pin_swap, skip_gate_cloning, + skip_buffering, skip_buffer_removal); } diff --git a/src/rsz/src/Resizer.i b/src/rsz/src/Resizer.i index bcf6026c0cc..a95498535ea 100644 --- a/src/rsz/src/Resizer.i +++ b/src/rsz/src/Resizer.i @@ -550,14 +550,14 @@ repair_setup(double setup_margin, int max_passes, bool verbose, bool skip_pin_swap, bool skip_gate_cloning, - bool enable_buffer_removal) + bool skip_buffering, bool enable_buffer_removal) { ensureLinked(); Resizer *resizer = getResizer(); resizer->repairSetup(setup_margin, repair_tns_end_percent, max_passes, verbose, skip_pin_swap, skip_gate_cloning, - !enable_buffer_removal); + skip_buffering, !enable_buffer_removal); } void diff --git a/src/rsz/src/Resizer.tcl b/src/rsz/src/Resizer.tcl index 1c9b36e6884..79998c54418 100644 --- a/src/rsz/src/Resizer.tcl +++ b/src/rsz/src/Resizer.tcl @@ -519,6 +519,7 @@ sta::define_cmd_args "repair_timing" {[-setup] [-hold]\ [-allow_setup_violations]\ [-skip_pin_swap]\ [-skip_gate_cloning]\ + [-skip_buffering]\ [-enable_buffer_removal]\ [-repair_tns tns_end_percent]\ [-max_passes passes]\ @@ -532,7 +533,7 @@ proc repair_timing { args } { -libraries -max_utilization -max_buffer_percent \ -recover_power -repair_tns -max_passes} \ flags {-setup -hold -allow_setup_violations -skip_pin_swap -skip_gate_cloning \ - -enable_buffer_removal -verbose} + -skip_buffering -enable_buffer_removal -verbose} set setup [info exists flags(-setup)] set hold [info exists flags(-hold)] @@ -559,6 +560,7 @@ proc repair_timing { args } { set allow_setup_violations [info exists flags(-allow_setup_violations)] set skip_pin_swap [info exists flags(-skip_pin_swap)] set skip_gate_cloning [info exists flags(-skip_gate_cloning)] + set skip_buffering [info exists flags(-skip_buffering)] set enable_buffer_removal [info exists flags(-enable_buffer_removal)] rsz::set_max_utilization [rsz::parse_max_util keys] @@ -600,7 +602,7 @@ proc repair_timing { args } { if { $setup } { rsz::repair_setup $setup_margin $repair_tns_end_percent $max_passes \ $verbose \ - $skip_pin_swap $skip_gate_cloning $enable_buffer_removal + $skip_pin_swap $skip_gate_cloning $skip_buffering $enable_buffer_removal } if { $hold } { rsz::repair_hold $setup_margin $hold_margin \ diff --git a/src/rsz/test/gcd_resize.ok b/src/rsz/test/gcd_resize.ok index a76221ad7e4..05378542a27 100644 --- a/src/rsz/test/gcd_resize.ok +++ b/src/rsz/test/gcd_resize.ok @@ -8,6 +8,7 @@ worst slack 1.34 [INFO RSZ-0028] Inserted 18 output buffers. [INFO RSZ-0058] Using max wire length 693um. [INFO RSZ-0039] Resized 50 instances. +[INFO RSZ-0098] No setup violations found [INFO RSZ-0046] Found 35 endpoints with hold violations. [INFO RSZ-0032] Inserted 99 hold buffers. worst slack 0.20 diff --git a/src/rsz/test/repair_fanout7.ok b/src/rsz/test/repair_fanout7.ok index 527a0c938f4..895b3b6d6be 100644 --- a/src/rsz/test/repair_fanout7.ok +++ b/src/rsz/test/repair_fanout7.ok @@ -252,49 +252,41 @@ Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | 1090 | 0 | 570 | 199 | 8 | 10 | -4.392 | -321.612 | load23/D 1095 | 0 | 574 | 190 | 7 | 10 | -4.392 | -301.395 | load23/D 1100 | 0 | 576 | 201 | 8 | 10 | -5.024 | -358.612 | load11/D - 1104 | 0 | 579 | 191 | 7 | 10 | -4.392 | -335.094 | load23/D - 1110 | 0 | 582 | 202 | 8 | 10 | -5.024 | -358.452 | load11/D - 1113 | 0 | 584 | 192 | 7 | 10 | -4.392 | -335.094 | load23/D - 1115 | 0 | 584 | 192 | 7 | 10 | -4.392 | -335.094 | load23/D - 1120 | 0 | 588 | 192 | 7 | 10 | -4.392 | -335.230 | load23/D - 1121 | 0 | 585 | 192 | 7 | 10 | -4.392 | -335.094 | load23/D - 1125 | 0 | 585 | 192 | 7 | 10 | -4.392 | -335.094 | load23/D - 1130 | 0 | 589 | 192 | 7 | 10 | -4.392 | -344.940 | load23/D - 1137 | 0 | 592 | 192 | 7 | 10 | -4.392 | -336.872 | load23/D - 1140 | 0 | 593 | 192 | 8 | 10 | -4.955 | -343.810 | load11/D - 1150 | 0 | 602 | 203 | 8 | 10 | -5.024 | -359.259 | load11/D - 1151 | 0 | 602 | 193 | 7 | 10 | -4.392 | -335.094 | load23/D - 1160 | 0 | 608 | 203 | 8 | 10 | -4.392 | -314.985 | load23/D - 1166 | 0 | 613 | 194 | 7 | 10 | -4.392 | -301.395 | load23/D - 1170 | 0 | 614 | 204 | 8 | 10 | -4.392 | -313.962 | load23/D - 1174 | 0 | 617 | 195 | 7 | 10 | -4.392 | -301.395 | load23/D - 1180 | 0 | 620 | 205 | 8 | 10 | -4.392 | -316.362 | load23/D - 1182 | 0 | 621 | 196 | 7 | 10 | -4.392 | -301.395 | load23/D - 1189 | 0 | 624 | 197 | 7 | 10 | -4.392 | -335.094 | load23/D - 1190 | 0 | 624 | 197 | 7 | 10 | -4.392 | -335.094 | load23/D - 1196 | 0 | 627 | 198 | 7 | 10 | -4.392 | -335.094 | load23/D - 1200 | 0 | 629 | 198 | 8 | 10 | -5.024 | -349.775 | load11/D - 1203 | 0 | 630 | 199 | 7 | 10 | -4.392 | -335.094 | load23/D - 1209 | 0 | 632 | 200 | 7 | 10 | -4.392 | -335.094 | load23/D - 1210 | 0 | 632 | 200 | 7 | 10 | -4.392 | -335.094 | load23/D - 1215 | 0 | 634 | 201 | 7 | 10 | -4.392 | -335.094 | load23/D - 1220 | 0 | 636 | 212 | 8 | 10 | -5.024 | -358.612 | load11/D - 1224 | 0 | 639 | 202 | 7 | 10 | -4.392 | -335.094 | load23/D - 1230 | 0 | 644 | 202 | 7 | 10 | -4.392 | -344.856 | load23/D - 1236 | 0 | 646 | 202 | 7 | 10 | -4.392 | -336.872 | load23/D - 1240 | 0 | 648 | 202 | 8 | 10 | -5.024 | -349.775 | load11/D - 1250 | 0 | 656 | 215 | 8 | 10 | -5.024 | -359.332 | load11/D - 1254 | 0 | 658 | 205 | 7 | 10 | -4.392 | -335.094 | load23/D - 1260 | 0 | 661 | 215 | 8 | 10 | -4.392 | -313.968 | load23/D - 1266 | 0 | 666 | 206 | 7 | 10 | -4.392 | -301.395 | load23/D - 1270 | 0 | 667 | 216 | 8 | 10 | -4.392 | -313.962 | load23/D - 1278 | 0 | 674 | 207 | 7 | 10 | -4.392 | -301.395 | load23/D - final | 0 | 674 | 207 | 7 | 10 | -4.392 | -301.395 | load23/D + 1100 | 0 | 576 | 201 | 8 | 10 | -5.024 | -358.612 | load11/D + 1105 | 0 | 579 | 201 | 8 | 10 | -5.024 | -358.449 | load11/D + 1107 | 0 | 579 | 201 | 8 | 10 | -5.024 | -358.449 | load11/D + 1110 | 0 | 581 | 201 | 8 | 10 | -5.024 | -358.594 | load11/D + 1113 | 0 | 580 | 201 | 8 | 10 | -5.024 | -358.449 | load11/D + 1117 | 0 | 580 | 201 | 8 | 10 | -5.024 | -358.449 | load11/D + 1120 | 0 | 582 | 201 | 8 | 10 | -5.024 | -358.089 | load11/D + 1127 | 0 | 586 | 201 | 8 | 10 | -5.024 | -358.449 | load11/D + 1130 | 0 | 588 | 201 | 8 | 10 | -5.024 | -358.303 | load11/D + 1137 | 0 | 593 | 201 | 8 | 10 | -5.024 | -358.361 | load11/D + 1140 | 0 | 594 | 211 | 8 | 10 | -4.392 | -330.733 | load23/D + 1148 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1150 | 0 | 600 | 211 | 8 | 10 | -4.392 | -330.836 | load23/D + 1150 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1152 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1155 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1158 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1160 | 0 | 600 | 211 | 8 | 10 | -4.392 | -331.437 | load23/D + 1161 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1163 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1165 | 0 | 599 | 211 | 8 | 10 | -4.392 | -330.653 | load23/D + 1170 | 0 | 603 | 211 | 8 | 10 | -4.392 | -331.803 | load23/D + 1170 | 0 | 602 | 211 | 8 | 10 | -4.392 | -330.812 | load23/D + 1180 | 0 | 611 | 211 | 8 | 10 | -4.392 | -331.225 | load23/D + 1180 | 0 | 608 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1185 | 0 | 610 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1190 | 0 | 614 | 211 | 8 | 10 | -4.392 | -331.205 | load23/D + 1190 | 0 | 612 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1195 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + final | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D ------------------------------------------------------------------------------------------------- -[INFO RSZ-0045] Inserted 70 buffers, 1 to split loads. -[INFO RSZ-0041] Resized 674 instances. +[INFO RSZ-0045] Inserted 89 buffers, 1 to split loads. +[INFO RSZ-0041] Resized 614 instances. [INFO RSZ-0043] Swapped pins on 10 instances. -[INFO RSZ-0049] Cloned 7 instances. +[INFO RSZ-0049] Cloned 8 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test worst slack -4.39 From 01cf6f7c1252f514be3f1afdafa4c1b70911e890 Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Sat, 13 Jul 2024 04:39:34 +0000 Subject: [PATCH 11/56] new last gap setup fixing based on sizing only Signed-off-by: Cho Moon --- src/rsz/src/RepairSetup.cc | 165 +++++++++++++++++++++++++ src/rsz/src/RepairSetup.hh | 16 +++ src/rsz/test/repair_fanout6.ok | 2 +- src/rsz/test/repair_fanout7.ok | 114 +++++++++++++++++- src/rsz/test/repair_fanout8.ok | 166 ++++++++++++++++++++++++++ src/rsz/test/repair_setup4_verbose.ok | 7 ++ 6 files changed, 467 insertions(+), 3 deletions(-) diff --git a/src/rsz/src/RepairSetup.cc b/src/rsz/src/RepairSetup.cc index 14d05cbf132..fd8db4ee6a7 100644 --- a/src/rsz/src/RepairSetup.cc +++ b/src/rsz/src/RepairSetup.cc @@ -66,6 +66,7 @@ using utl::RSZ; using sta::Edge; using sta::fuzzyEqual; using sta::fuzzyGreater; +using sta::fuzzyGreaterEqual; using sta::fuzzyLess; using sta::GraphDelayCalc; using sta::InstancePinIterator; @@ -352,6 +353,13 @@ void RepairSetup::repairSetup(const float setup_slack_margin, break; } } // for each violating endpoint + + // do some last gasp setup fixing before we give up + OptoParams params(setup_slack_margin, verbose); + params.iteration = opto_iteration; + params.initial_tns = initial_tns; + repairSetupLastGasp(params); + if (verbose) { printProgress(opto_iteration, true, true); } @@ -1649,4 +1657,161 @@ bool RepairSetup::terminateProgress(const int iteration, return false; } +// Perform some last fixing based on sizing only. +// This is a greedy opto that does not degrade WNS or TNS. +// TODO: add VT swap +void RepairSetup::repairSetupLastGasp(const OptoParams& params) +{ + float curr_tns = sta_->totalNegativeSlack(max_); + if (curr_tns >= 0) { + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "last gasp is bailing out " + "because TNS is {:0.2f}", curr_tns); + // clang-format on + return; + } + + // Don't do anything unless there was some progress from previous fixing + if ((params.initial_tns - curr_tns) / params.initial_tns < 0.05) { + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "last gasp is bailing out " + "because TNS was reduced by < 5% from previous fixing"); + // clang-format on + return; + } + + // Sort remaining failing endpoints + const VertexSet* endpoints = sta_->endpoints(); + vector> violating_ends; + for (Vertex* end : *endpoints) { + const Slack end_slack = sta_->vertexSlack(end, max_); + if (end_slack < params.setup_slack_margin) { + violating_ends.emplace_back(end, end_slack); + } + } + std::stable_sort(violating_ends.begin(), + violating_ends.end(), + [](const auto& end_slack1, const auto& end_slack2) { + return end_slack1.second < end_slack2.second; + }); + + int end_index = 0; + int max_end_count = violating_ends.size(); + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "{} violating endpoints remain", + max_end_count); + // clang-format on + swap_pin_inst_set_.clear(); // Make sure we do not swap the same pin twice. + int opto_iteration = params.iteration; + if (params.verbose) { + printProgress(opto_iteration, false, false); + } + + float prev_tns = curr_tns; + Slack curr_worst_slack = violating_ends[0].second; + Slack prev_worst_slack = curr_worst_slack; + bool prev_termination = false; + bool two_cons_terminations = false; + + for (const auto& end_original_slack : violating_ends) { + Vertex* end = end_original_slack.first; + Slack end_slack = sta_->vertexSlack(end, max_); + Slack worst_slack; + Vertex* worst_vertex; + sta_->worstSlack(max_, worst_slack, worst_vertex); + end_index++; + if (end_index > max_end_count) { + break; + } + int pass = 1; + resizer_->journalBegin(); + while (pass <= max_last_gasp_passes_) { + opto_iteration++; + if (terminateProgress(opto_iteration, + params.initial_tns, + prev_tns, + end_index, + max_end_count)) { + if (prev_termination) { + // Abort entire fixing if no progress for 200 iterations + two_cons_terminations = true; + } else { + prev_termination = true; + } + break; + } + if (opto_iteration % opto_interval_ == 0) { + prev_termination = false; + } + if (params.verbose) { + printProgress(opto_iteration, false, false); + } + if (end_slack > params.setup_slack_margin) { + break; + } + PathRef end_path = sta_->vertexWorstSlackPath(end, max_); + const bool changed = repairPath(end_path, + end_slack, + true /* skip_pin_swap */, + true /* skip_gate_cloning */, + true /* skip_buffering */, + true /* skip_buffer_removal */, + params.setup_slack_margin); + + if (!changed) { + if (pass != 1) { + resizer_->journalRestore( + resize_count_, inserted_buffer_count_, cloned_gate_count_); + resizer_->updateParasitics(); + sta_->findRequireds(); + } + break; + } + resizer_->updateParasitics(); + sta_->findRequireds(); + end_slack = sta_->vertexSlack(end, max_); + sta_->worstSlack(max_, curr_worst_slack, worst_vertex); + curr_tns = sta_->totalNegativeSlack(max_); + + // Accept only moves that improve both WNS and TNS + if (fuzzyGreaterEqual(curr_worst_slack, prev_worst_slack) + && fuzzyGreaterEqual(curr_tns, prev_tns)) { + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "sizing move accepted for " + "endpoint {} pass {} because WNS improved to {:0.3f} and " + "TNS improved to {:0.3f}", + end_index, pass, curr_worst_slack, curr_tns); + // clang-format on + prev_worst_slack = curr_worst_slack; + prev_tns = curr_tns; + resizer_->journalBegin(); + } else { + resizer_->journalRestore( + resize_count_, inserted_buffer_count_, cloned_gate_count_); + resizer_->updateParasitics(); + sta_->findRequireds(); + break; + } + + if (resizer_->overMaxArea()) { + break; + } + if (end_index == 1) { + end = worst_vertex; + } + pass++; + } // while pass <= max_last_gasp_passes_ + if (params.verbose) { + printProgress(opto_iteration, true, false); + } + if (two_cons_terminations) { + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "bailing out of last gasp fixing" + "due to no TNS progress for two opto cycles"); + // clang-format on + break; + } + } // for each violating endpoint +} + } // namespace rsz diff --git a/src/rsz/src/RepairSetup.hh b/src/rsz/src/RepairSetup.hh index d607ee488db..a0f8877e8be 100644 --- a/src/rsz/src/RepairSetup.hh +++ b/src/rsz/src/RepairSetup.hh @@ -103,6 +103,20 @@ struct SlackEstimatorParams driver_cell = nullptr; } }; +struct OptoParams +{ + int iteration; + float initial_tns; + const float setup_slack_margin; + const bool verbose; + + OptoParams(const float margin, const bool verbose) + : setup_slack_margin(margin), verbose(verbose) + { + iteration = 0; + initial_tns = 0.0; + } +}; class RepairSetup : public sta::dbStaState { @@ -194,6 +208,7 @@ class RepairSetup : public sta::dbStaState float& prev_tns, int endpt_index, int num_endpts); + void repairSetupLastGasp(const OptoParams& params); Logger* logger_ = nullptr; dbNetwork* db_network_ = nullptr; @@ -226,6 +241,7 @@ class RepairSetup : public sta::dbStaState static constexpr int buffer_removal_max_fanout_ = 10; static constexpr float inc_fix_rate_threshold_ = 0.0001; // default fix rate threshold = 0.01% + static constexpr int max_last_gasp_passes_ = 10; }; } // namespace rsz diff --git a/src/rsz/test/repair_fanout6.ok b/src/rsz/test/repair_fanout6.ok index f2d35763926..17bfbeeed33 100644 --- a/src/rsz/test/repair_fanout6.ok +++ b/src/rsz/test/repair_fanout6.ok @@ -16,6 +16,6 @@ fanout1/X 20 20 0 (MET) [INFO RSZ-0094] Found 6400 endpoints with setup violations. [INFO RSZ-0045] Inserted 17 buffers, 1 to split loads. -[INFO RSZ-0041] Resized 67 instances. +[INFO RSZ-0041] Resized 150 instances. [WARNING RSZ-0062] Unable to repair all setup violations. worst slack -3.10 diff --git a/src/rsz/test/repair_fanout7.ok b/src/rsz/test/repair_fanout7.ok index 895b3b6d6be..f83046b0be5 100644 --- a/src/rsz/test/repair_fanout7.ok +++ b/src/rsz/test/repair_fanout7.ok @@ -281,10 +281,120 @@ Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | 1190 | 0 | 614 | 211 | 8 | 10 | -4.392 | -331.205 | load23/D 1190 | 0 | 612 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D 1195 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D - final | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1196 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1197 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1198 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1199 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1200 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1201 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1202 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1203 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1204 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1205 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1206 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1207 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1208 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1209 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1210 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1210 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1211 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1212 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1213 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1214 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1215 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1216 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1217 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1218 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1219 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1220 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1220 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1221 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1222 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1223 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1224 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1225 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1226 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1227 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1228 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1229 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1230 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1230 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1231 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1232 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1233 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1234 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1235 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1236 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1237 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1238 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1239 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1240 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1240 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1241 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1242 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1243 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1244 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1245 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1246 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1247 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1248 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1249 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1250 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1250 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1251 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1252 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1253 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1254 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1255 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1256 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1257 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1258 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1259 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1260 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1260 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1261 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1262 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1263 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1264 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1265 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1266 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1267 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1268 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1269 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1270 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1270 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1271 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1272 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1273 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1274 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1275 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1276 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1277 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1278 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1279 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1280 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1280 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1281 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1282 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1283 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1284 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1285 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1286 | 0 | 614 | 211 | 8 | 10 | -4.392 | -330.352 | load23/D + 1289 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1290 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1290 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1291 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1292 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1293 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1294 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1295 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1296 | 0 | 616 | 211 | 8 | 10 | -4.392 | -330.313 | load23/D + 1299 | 0 | 618 | 211 | 8 | 10 | -4.392 | -329.671 | load23/D + 1300 | 0 | 618 | 211 | 8 | 10 | -4.392 | -329.671 | load23/D + final | 0 | 618 | 211 | 8 | 10 | -4.392 | -329.671 | load23/D ------------------------------------------------------------------------------------------------- [INFO RSZ-0045] Inserted 89 buffers, 1 to split loads. -[INFO RSZ-0041] Resized 614 instances. +[INFO RSZ-0041] Resized 618 instances. [INFO RSZ-0043] Swapped pins on 10 instances. [INFO RSZ-0049] Cloned 8 instances. [WARNING RSZ-0062] Unable to repair all setup violations. diff --git a/src/rsz/test/repair_fanout8.ok b/src/rsz/test/repair_fanout8.ok index de4cac35fae..6347171fcb9 100644 --- a/src/rsz/test/repair_fanout8.ok +++ b/src/rsz/test/repair_fanout8.ok @@ -185,6 +185,172 @@ Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | 229 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D 230 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D 230 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 230 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 231 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 232 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 233 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 234 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 235 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 236 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 237 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 238 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 239 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 240 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 240 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 241 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 242 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 243 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 244 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 245 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 246 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 247 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 248 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 249 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 250 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 250 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 251 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 252 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 253 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 254 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 255 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 256 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 257 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 258 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 259 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 260 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 260 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 261 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 262 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 263 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 264 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 265 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 266 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 267 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 268 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 269 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 270 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 270 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 271 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 272 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 273 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 274 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 275 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 276 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 277 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 278 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 279 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 280 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 280 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 281 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 282 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 283 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 284 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 285 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 286 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 287 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 288 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 289 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 290 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 290 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 291 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 292 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 293 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 294 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 295 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 296 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 297 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 298 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 299 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 300 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 300 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 301 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 302 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 303 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 304 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 305 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 306 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 307 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 308 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 309 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 310 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 310 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 311 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 312 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 313 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 314 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 315 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 316 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 317 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 318 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 319 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 320 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 320 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 321 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 322 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 323 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 324 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 325 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 326 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 327 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 328 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 329 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 330 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 330 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 331 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 332 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 333 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 334 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 335 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 336 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 337 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 338 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 339 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 340 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 340 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 341 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 342 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 343 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 344 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 345 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 346 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 347 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 348 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 349 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 350 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 350 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 351 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 352 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 353 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 354 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 355 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 356 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 357 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 358 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 359 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 360 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 360 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 361 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 362 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 363 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 364 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 365 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 366 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 367 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 368 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 369 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 370 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 370 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 371 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 372 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 373 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 374 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 375 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 376 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 377 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 378 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 379 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 380 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D + 380 | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D final | 0 | 24 | 45 | 0 | 1 | -5.170 | -389.486 | load117/D ------------------------------------------------------------------------------------------------- [INFO RSZ-0045] Inserted 37 buffers, 1 to split loads. diff --git a/src/rsz/test/repair_setup4_verbose.ok b/src/rsz/test/repair_setup4_verbose.ok index 641f068a46d..6b7f9aa606e 100644 --- a/src/rsz/test/repair_setup4_verbose.ok +++ b/src/rsz/test/repair_setup4_verbose.ok @@ -12,6 +12,13 @@ Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | 0 | 0 | 0 | 0 | 0 | 0 | -1.954 | -6.294 | r2/D 10 | 0 | 8 | 3 | 0 | 0 | -0.865 | -3.085 | r2/D 19 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 20 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 20 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 21 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 22 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 23 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 24 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 25 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D final | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D ------------------------------------------------------------------------------------------------- [INFO RSZ-0040] Inserted 2 buffers. From 735a8092df2733b8ceaf35e98c7059e6449a581e Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Mon, 15 Jul 2024 23:07:28 +0000 Subject: [PATCH 12/56] add outer loop termination to control runtime Signed-off-by: Cho Moon --- src/rsz/src/RepairSetup.cc | 29 ++++++++++++++++++++++------- src/rsz/src/RepairSetup.hh | 4 +++- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/rsz/src/RepairSetup.cc b/src/rsz/src/RepairSetup.cc index fd8db4ee6a7..b78c9e5076d 100644 --- a/src/rsz/src/RepairSetup.cc +++ b/src/rsz/src/RepairSetup.cc @@ -162,6 +162,7 @@ void RepairSetup::repairSetup(const float setup_slack_margin, if (verbose) { printProgress(opto_iteration, false, false); } + float fix_rate_threshold = inc_fix_rate_threshold_; for (const auto& end_original_slack : violating_ends) { Vertex* end = end_original_slack.first; Slack end_slack = sta_->vertexSlack(end, max_); @@ -205,6 +206,7 @@ void RepairSetup::repairSetup(const float setup_slack_margin, if (terminateProgress(opto_iteration, initial_tns, prev_tns, + fix_rate_threshold, end_index, max_end_count)) { if (prev_termination) { @@ -215,7 +217,7 @@ void RepairSetup::repairSetup(const float setup_slack_margin, } break; } - if (opto_iteration % opto_interval_ == 0) { + if (opto_iteration % opto_small_interval_ == 0) { prev_termination = false; } @@ -1631,24 +1633,28 @@ void RepairSetup::printProgress(const int iteration, } // Terminate progress if incremental fix rate within an opto interval falls -// below the threshold of 0.01% +// below the threshold. Bump up the threshold after each large opto internval. bool RepairSetup::terminateProgress(const int iteration, const float initial_tns, float& prev_tns, + float& fix_rate_threshold, // for debug only const int endpt_index, const int num_endpts) { - if (iteration % opto_interval_ == 0) { + if (iteration % opto_large_interval_ == 0) { + fix_rate_threshold *= 2.0; + } + if (iteration % opto_small_interval_ == 0) { float curr_tns = sta_->totalNegativeSlack(max_); float inc_fix_rate = (prev_tns - curr_tns) / initial_tns; prev_tns = curr_tns; if (iteration > 1000 // allow for some initial fixing for 1000 iterations - && inc_fix_rate < inc_fix_rate_threshold_) { + && inc_fix_rate < fix_rate_threshold) { // clang-format off debugPrint(logger_, RSZ, "repair_setup", 1, "bailing out at iter {}" " because incr fix rate {:0.2f}% is < {:0.2f}% [endpt {}/{}]", - iteration, inc_fix_rate*100, inc_fix_rate_threshold_*100, + iteration, inc_fix_rate*100, fix_rate_threshold*100, endpt_index, num_endpts); // clang-format on return true; @@ -1663,7 +1669,7 @@ bool RepairSetup::terminateProgress(const int iteration, void RepairSetup::repairSetupLastGasp(const OptoParams& params) { float curr_tns = sta_->totalNegativeSlack(max_); - if (curr_tns >= 0) { + if (fuzzyGreaterEqual(curr_tns, 0)) { // clang-format off debugPrint(logger_, RSZ, "repair_setup", 1, "last gasp is bailing out " "because TNS is {:0.2f}", curr_tns); @@ -1697,6 +1703,13 @@ void RepairSetup::repairSetupLastGasp(const OptoParams& params) int end_index = 0; int max_end_count = violating_ends.size(); + if (max_end_count == 0) { + // clang-format off + debugPrint(logger_, RSZ, "repair_setup", 1, "last gasp is bailing out " + "because there no violating endpoints"); + // clang-format on + return; + } // clang-format off debugPrint(logger_, RSZ, "repair_setup", 1, "{} violating endpoints remain", max_end_count); @@ -1712,6 +1725,7 @@ void RepairSetup::repairSetupLastGasp(const OptoParams& params) Slack prev_worst_slack = curr_worst_slack; bool prev_termination = false; bool two_cons_terminations = false; + float fix_rate_threshold = inc_fix_rate_threshold_; for (const auto& end_original_slack : violating_ends) { Vertex* end = end_original_slack.first; @@ -1730,6 +1744,7 @@ void RepairSetup::repairSetupLastGasp(const OptoParams& params) if (terminateProgress(opto_iteration, params.initial_tns, prev_tns, + fix_rate_threshold, end_index, max_end_count)) { if (prev_termination) { @@ -1740,7 +1755,7 @@ void RepairSetup::repairSetupLastGasp(const OptoParams& params) } break; } - if (opto_iteration % opto_interval_ == 0) { + if (opto_iteration % opto_small_interval_ == 0) { prev_termination = false; } if (params.verbose) { diff --git a/src/rsz/src/RepairSetup.hh b/src/rsz/src/RepairSetup.hh index a0f8877e8be..8b9af2906a9 100644 --- a/src/rsz/src/RepairSetup.hh +++ b/src/rsz/src/RepairSetup.hh @@ -206,6 +206,7 @@ class RepairSetup : public sta::dbStaState bool terminateProgress(int iteration, float initial_tns, float& prev_tns, + float& fix_rate_threshold, int endpt_index, int num_endpts); void repairSetupLastGasp(const OptoParams& params); @@ -237,7 +238,8 @@ class RepairSetup : public sta::dbStaState static constexpr int split_load_min_fanout_ = 8; static constexpr double rebuffer_buffer_penalty_ = .01; static constexpr int print_interval_ = 10; - static constexpr int opto_interval_ = 100; + static constexpr int opto_small_interval_ = 100; + static constexpr int opto_large_interval_ = 1000; static constexpr int buffer_removal_max_fanout_ = 10; static constexpr float inc_fix_rate_threshold_ = 0.0001; // default fix rate threshold = 0.01% From b0ea81954151caaaf6f646d3feb939b720b196ea Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Tue, 16 Jul 2024 01:01:51 +0000 Subject: [PATCH 13/56] rebased 3 flow tests Signed-off-by: Cho Moon --- test/aes_nangate45.metrics_limits | 20 ++++++++++---------- test/aes_sky130hs.metrics_limits | 26 +++++++++++++------------- test/ibex_sky130hd.metrics_limits | 18 +++++++++--------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/test/aes_nangate45.metrics_limits b/test/aes_nangate45.metrics_limits index 66162c4e51b..241f9cedf89 100644 --- a/test/aes_nangate45.metrics_limits +++ b/test/aes_nangate45.metrics_limits @@ -1,23 +1,23 @@ { "IFP::instance_count" : "20110.8" - ,"DPL::design_area" : "38010.0" - ,"DPL::utilization" : "4.2" + ,"DPL::design_area" : "38448.0" + ,"DPL::utilization" : "4.32" ,"RSZ::repair_design_buffer_count" : "412" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-0.07730276547792493" - ,"RSZ::worst_slack_max" : "-0.2606091823784508" - ,"RSZ::tns_max" : "-159.37778680858156" + ,"RSZ::worst_slack_min" : "-0.07860501548927697" + ,"RSZ::worst_slack_max" : "-0.259469205344525" + ,"RSZ::tns_max" : "-157.09798373106545" ,"RSZ::hold_buffer_count" : "222" ,"GRT::ANT::errors" : "0" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.08958893790511345" - ,"DRT::worst_slack_max" : "-0.32197953735784013" - ,"DRT::tns_max" : "-168.24737656672946" - ,"DRT::clock_skew" : "0.11146007765566188" + ,"DRT::worst_slack_min" : "-0.08024331614189938" + ,"DRT::worst_slack_max" : "-0.3265602066646912" + ,"DRT::tns_max" : "-165.56259964551344" + ,"DRT::clock_skew" : "0.1093566601559486" ,"DRT::max_slew_slack" : "0" - ,"DRT::max_capacitance_slack" : "-1.0203310699137995" + ,"DRT::max_capacitance_slack" : "-18.243533055220535" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "0.8109" } diff --git a/test/aes_sky130hs.metrics_limits b/test/aes_sky130hs.metrics_limits index 7fed602a856..f09b4c8a25f 100644 --- a/test/aes_sky130hs.metrics_limits +++ b/test/aes_sky130hs.metrics_limits @@ -1,23 +1,23 @@ { "IFP::instance_count" : "19588.8" - ,"DPL::design_area" : "380112.0" - ,"DPL::utilization" : "12.6" - ,"RSZ::repair_design_buffer_count" : "658" + ,"DPL::design_area" : "375586.8" + ,"DPL::utilization" : "12.48" + ,"RSZ::repair_design_buffer_count" : "621" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-1.0065893557919616" - ,"RSZ::worst_slack_max" : "-0.827894180965692" - ,"RSZ::tns_max" : "-545.9006792389466" - ,"RSZ::hold_buffer_count" : "644" + ,"RSZ::worst_slack_min" : "-0.279562674134323" + ,"RSZ::worst_slack_max" : "-0.9217062528428649" + ,"RSZ::tns_max" : "-534.776855284352" + ,"RSZ::hold_buffer_count" : "762" ,"GRT::ANT::errors" : "0" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-1.1665713879420228" - ,"DRT::worst_slack_max" : "-1.1384981767250841" - ,"DRT::tns_max" : "-575.9874966835262" - ,"DRT::clock_skew" : "0.5227130876091446" - ,"DRT::max_slew_slack" : "-43.66565823554993" - ,"DRT::max_capacitance_slack" : "-46.9469147747333" + ,"DRT::worst_slack_min" : "-0.4238737968262942" + ,"DRT::worst_slack_max" : "-1.2487615338464266" + ,"DRT::tns_max" : "-573.1012720092407" + ,"DRT::clock_skew" : "0.6533671122398873" + ,"DRT::max_slew_slack" : "-8.713909685611725" + ,"DRT::max_capacitance_slack" : "-10.691076617334879" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "2.811" } diff --git a/test/ibex_sky130hd.metrics_limits b/test/ibex_sky130hd.metrics_limits index 98dae24d9fc..3e79fce9298 100644 --- a/test/ibex_sky130hd.metrics_limits +++ b/test/ibex_sky130hd.metrics_limits @@ -1,23 +1,23 @@ { "IFP::instance_count" : "18835.2" - ,"DPL::design_area" : "204523.19999999998" + ,"DPL::design_area" : "204444.0" ,"DPL::utilization" : "33.72" ,"RSZ::repair_design_buffer_count" : "409" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" ,"RSZ::worst_slack_min" : "-1.5143882226316971" - ,"RSZ::worst_slack_max" : "-3.530817747503969" - ,"RSZ::tns_max" : "-2415.948592745781" + ,"RSZ::worst_slack_max" : "-3.605874155161888" + ,"RSZ::tns_max" : "-2415.7877471821375" ,"RSZ::hold_buffer_count" : "403" ,"GRT::ANT::errors" : "0" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-2.0427944452542905" - ,"DRT::worst_slack_max" : "-4.689865748996997" - ,"DRT::tns_max" : "-2631.915192795363" - ,"DRT::clock_skew" : "3.2454927663971893" - ,"DRT::max_slew_slack" : "-24.262974262237545" - ,"DRT::max_capacitance_slack" : "-4.2370608877145965" + ,"DRT::worst_slack_min" : "-2.0011484241105366" + ,"DRT::worst_slack_max" : "-4.704421217350699" + ,"DRT::tns_max" : "-2578.371987632471" + ,"DRT::clock_skew" : "3.174287589293853" + ,"DRT::max_slew_slack" : "-22.256259918212887" + ,"DRT::max_capacitance_slack" : "-27.084555885890854" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "15.155" } From 2a13cee48799d3ba9567a27dd556fe0ebcb1794b Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Tue, 16 Jul 2024 14:21:01 -0300 Subject: [PATCH 14/56] mpl2: skip dataflow when there's no std cell lib Signed-off-by: Arthur Koucher --- src/mpl2/src/clusterEngine.cpp | 33 +++++++++++++++++++++++++++++++++ src/mpl2/src/clusterEngine.h | 3 +++ 2 files changed, 36 insertions(+) diff --git a/src/mpl2/src/clusterEngine.cpp b/src/mpl2/src/clusterEngine.cpp index bab4ee6898e..26f21b2c679 100644 --- a/src/mpl2/src/clusterEngine.cpp +++ b/src/mpl2/src/clusterEngine.cpp @@ -527,6 +527,13 @@ void ClusteringEngine::mapIOPads() // Here we model each std cell instance, IO pin and macro pin as vertices. void ClusteringEngine::createDataFlow() { + if (!stdCellsHaveLiberty()) { + logger_->warn( + MPL, 14, "No Liberty data found. Continuing without dataflow."); + data_connections_.is_empty = true; + return; + } + // Create vertices IDs. const VerticesMaps vertices_maps = computeVertices(); const int num_of_vertices = static_cast(vertices_maps.stoppers.size()); @@ -560,6 +567,28 @@ void ClusteringEngine::createDataFlow() } } +bool ClusteringEngine::stdCellsHaveLiberty() +{ + int valid_lib_cell_count = 0; + for (odb::dbInst* inst : block_->getInsts()) { + odb::dbMaster* master = inst->getMaster(); + if (isIgnoredMaster(master) || master->isBlock()) { + continue; + } + + const sta::LibertyCell* liberty_cell = network_->libertyCell(inst); + if (liberty_cell) { + ++valid_lib_cell_count; + } + } + + if (valid_lib_cell_count == 0) { + return false; + } + + return true; +} + VerticesMaps ClusteringEngine::computeVertices() { VerticesMaps vertices_maps; @@ -840,6 +869,10 @@ void ClusteringEngine::dataFlowDFSMacroPin( void ClusteringEngine::updateDataFlow() { + if (data_connections_.is_empty) { + return; + } + // bterm, macros or ffs for (const auto& [bterm, insts] : data_connections_.io_and_regs) { if (tree_->maps.bterm_to_cluster_id.find(bterm) diff --git a/src/mpl2/src/clusterEngine.h b/src/mpl2/src/clusterEngine.h index bb72d1fbbb7..687928ca60a 100644 --- a/src/mpl2/src/clusterEngine.h +++ b/src/mpl2/src/clusterEngine.h @@ -85,6 +85,8 @@ struct VerticesMaps struct DataFlow { + bool is_empty{false}; + // Macro Pins --> Registers // Registers --> Macro Pins std::vector>>> @@ -232,6 +234,7 @@ class ClusteringEngine // Methods for data flow void createDataFlow(); + bool stdCellsHaveLiberty(); VerticesMaps computeVertices(); void computeIOVertices(VerticesMaps& vertices_maps); void computeStdCellVertices(VerticesMaps& vertices_maps); From f90cdc3a6e323cc45a1c0e517623d48283ff6283 Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Tue, 16 Jul 2024 17:58:28 +0000 Subject: [PATCH 15/56] fixed a typo Signed-off-by: Cho Moon --- src/rsz/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rsz/README.md b/src/rsz/README.md index b9fbc059778..fee9efd83e0 100644 --- a/src/rsz/README.md +++ b/src/rsz/README.md @@ -296,7 +296,7 @@ repair_timing | `-allow_setup_violations` | While repairing hold violations, buffers are not inserted that will cause setup violations unless `-allow_setup_violations` is specified. | | `-skip_pin_swap` | Flag to skip pin swap. The default value is `False`, and the allowed values are bools. | | `-skip_gate_cloning` | Flag to skip gate cloning. The default value is `False`, and the allowed values are bools. | -| `-skip_buffergin` | Flag to skip rebuffering and load splitting. The default value is `False`, and the allowed values are bools. | +| `-skip_buffering` | Flag to skip rebuffering and load splitting. The default value is `False`, and the allowed values are bools. | | `-enable_buffer_removal` | Flag to enable buffer removal during setup fixing. The default value is `False`, and the allowed values are bools. | | `-repair_tns` | Percentage of violating endpoints to repair (0-100). When `tns_end_percent` is zero (the default), only the worst endpoint is repaired. When `tns_end_percent` is 100, all violating endpoints are repaired. | | `-max_utilization` | Defines the percentage of core area used. | From 5e04995810af3988364ddc4573f6fa6b1495b568 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Tue, 16 Jul 2024 16:23:12 -0300 Subject: [PATCH 16/56] mpl2: skip nets that have std cells nullptr lib Signed-off-by: Arthur Koucher --- src/mpl2/src/clusterEngine.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/mpl2/src/clusterEngine.cpp b/src/mpl2/src/clusterEngine.cpp index 26f21b2c679..2b7e119c529 100644 --- a/src/mpl2/src/clusterEngine.cpp +++ b/src/mpl2/src/clusterEngine.cpp @@ -686,7 +686,15 @@ DataFlowHypergraph ClusteringEngine::computeHypergraph( if (master->isBlock()) { vertex_id = odb::dbIntProperty::find(iterm, "vertex_id")->getValue(); } else { - vertex_id = odb::dbIntProperty::find(inst, "vertex_id")->getValue(); + odb::dbIntProperty* int_prop = odb::dbIntProperty::find(inst, "vertex_id"); + + // Std cells without liberty data are not marked as vertices + if (int_prop) { + vertex_id = int_prop->getValue(); + } else { + ignore = true; + break; + } } if (iterm->getIoType() == odb::dbIoType::OUTPUT) { From 02be55a621c5ccd787524c3e9a2d1e416d44d060 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Tue, 16 Jul 2024 16:28:42 -0300 Subject: [PATCH 17/56] mpl2: format and improve message Signed-off-by: Arthur Koucher --- src/mpl2/src/clusterEngine.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mpl2/src/clusterEngine.cpp b/src/mpl2/src/clusterEngine.cpp index 2b7e119c529..c0df65c56ac 100644 --- a/src/mpl2/src/clusterEngine.cpp +++ b/src/mpl2/src/clusterEngine.cpp @@ -529,7 +529,9 @@ void ClusteringEngine::createDataFlow() { if (!stdCellsHaveLiberty()) { logger_->warn( - MPL, 14, "No Liberty data found. Continuing without dataflow."); + MPL, + 14, + "No Liberty data found for std cells. Continuing without dataflow."); data_connections_.is_empty = true; return; } @@ -686,7 +688,8 @@ DataFlowHypergraph ClusteringEngine::computeHypergraph( if (master->isBlock()) { vertex_id = odb::dbIntProperty::find(iterm, "vertex_id")->getValue(); } else { - odb::dbIntProperty* int_prop = odb::dbIntProperty::find(inst, "vertex_id"); + odb::dbIntProperty* int_prop + = odb::dbIntProperty::find(inst, "vertex_id"); // Std cells without liberty data are not marked as vertices if (int_prop) { From 156ee86f0d9ced8e6b5ebd43a58a1b1c722e8cac Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Tue, 16 Jul 2024 19:14:07 -0300 Subject: [PATCH 18/56] mpl2: ensure we check lib cells when there are std cells in the design Signed-off-by: Arthur Koucher --- src/mpl2/src/clusterEngine.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mpl2/src/clusterEngine.cpp b/src/mpl2/src/clusterEngine.cpp index c0df65c56ac..d09917b2ee7 100644 --- a/src/mpl2/src/clusterEngine.cpp +++ b/src/mpl2/src/clusterEngine.cpp @@ -527,7 +527,7 @@ void ClusteringEngine::mapIOPads() // Here we model each std cell instance, IO pin and macro pin as vertices. void ClusteringEngine::createDataFlow() { - if (!stdCellsHaveLiberty()) { + if (design_metrics_->getNumStdCell() != 0 && !stdCellsHaveLiberty()) { logger_->warn( MPL, 14, @@ -569,6 +569,7 @@ void ClusteringEngine::createDataFlow() } } +// Here we assume that there are std cells in the design! bool ClusteringEngine::stdCellsHaveLiberty() { int valid_lib_cell_count = 0; From c6c5dc987431139ac8c695d2126c297defd658da Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Tue, 16 Jul 2024 19:17:31 -0300 Subject: [PATCH 19/56] mpl2: make logic cleaner Signed-off-by: Arthur Koucher --- src/mpl2/src/clusterEngine.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/mpl2/src/clusterEngine.cpp b/src/mpl2/src/clusterEngine.cpp index d09917b2ee7..278c32c5b4b 100644 --- a/src/mpl2/src/clusterEngine.cpp +++ b/src/mpl2/src/clusterEngine.cpp @@ -572,7 +572,6 @@ void ClusteringEngine::createDataFlow() // Here we assume that there are std cells in the design! bool ClusteringEngine::stdCellsHaveLiberty() { - int valid_lib_cell_count = 0; for (odb::dbInst* inst : block_->getInsts()) { odb::dbMaster* master = inst->getMaster(); if (isIgnoredMaster(master) || master->isBlock()) { @@ -581,15 +580,11 @@ bool ClusteringEngine::stdCellsHaveLiberty() const sta::LibertyCell* liberty_cell = network_->libertyCell(inst); if (liberty_cell) { - ++valid_lib_cell_count; + return true; } } - if (valid_lib_cell_count == 0) { - return false; - } - - return true; + return false; } VerticesMaps ClusteringEngine::computeVertices() From 28f2d6c43e3d27de17eceffa3822626ac6d1f9f7 Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Tue, 16 Jul 2024 22:28:28 +0000 Subject: [PATCH 20/56] fixed comments Signed-off-by: Cho Moon --- src/rsz/src/RepairSetup.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rsz/src/RepairSetup.cc b/src/rsz/src/RepairSetup.cc index b78c9e5076d..09f245a5ab9 100644 --- a/src/rsz/src/RepairSetup.cc +++ b/src/rsz/src/RepairSetup.cc @@ -1633,7 +1633,7 @@ void RepairSetup::printProgress(const int iteration, } // Terminate progress if incremental fix rate within an opto interval falls -// below the threshold. Bump up the threshold after each large opto internval. +// below the threshold. Bump up the threshold after each large opto interval. bool RepairSetup::terminateProgress(const int iteration, const float initial_tns, float& prev_tns, @@ -1706,7 +1706,7 @@ void RepairSetup::repairSetupLastGasp(const OptoParams& params) if (max_end_count == 0) { // clang-format off debugPrint(logger_, RSZ, "repair_setup", 1, "last gasp is bailing out " - "because there no violating endpoints"); + "because there are no violating endpoints"); // clang-format on return; } From 03de91ceefe01b9405e0f5edcd1ec9d0f667a8ce Mon Sep 17 00:00:00 2001 From: luis201420 Date: Wed, 17 Jul 2024 03:33:08 +0000 Subject: [PATCH 21/56] dpl: removing the insert_decap command and creating API to insert decap cells Signed-off-by: luis201420 --- src/dpl/CMakeLists.txt | 3 -- src/dpl/include/dpl/Opendp.h | 12 ++--- src/dpl/src/DecapPlacement.cpp | 83 ++-------------------------------- src/dpl/src/MakeOpendp.cpp | 3 +- src/dpl/src/Opendp.cpp | 3 +- src/dpl/src/Opendp.i | 14 ------ src/dpl/src/Opendp.tcl | 56 ----------------------- 7 files changed, 12 insertions(+), 162 deletions(-) diff --git a/src/dpl/CMakeLists.txt b/src/dpl/CMakeLists.txt index 960a8df303a..fd915eb21c2 100644 --- a/src/dpl/CMakeLists.txt +++ b/src/dpl/CMakeLists.txt @@ -57,7 +57,6 @@ target_link_libraries(dpl_lib PUBLIC odb OpenSTA - psm PRIVATE utl_lib ) @@ -95,7 +94,6 @@ target_link_libraries(dpl dpl_lib OpenSTA gui - psm ) messages( @@ -127,7 +125,6 @@ if (Python3_FOUND AND BUILD_PYTHON) dpl_lib gui odb - psm ) endif() diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 57395d020fe..c8c31acb361 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -54,7 +54,6 @@ #include #include "odb/db.h" -#include "psm/pdnsim.h" namespace utl { class Logger; @@ -114,6 +113,7 @@ struct DbuRect; using dbMasterSeq = vector; +using IRDropByPoint = std::map; struct GapInfo; struct DecapCell; struct IRDrop; @@ -131,7 +131,7 @@ class Opendp void legalCellPos(dbInst* db_inst); // call from rsz void initMacrosAndGrid(); // call from rsz - void init(dbDatabase* db, Logger* logger, psm::PDNSim* psm); + void init(dbDatabase* db, Logger* logger); // legalize/report // max_displacment is in sites. use zero for defaults. void detailedPlacement(int max_displacement_x, @@ -161,7 +161,7 @@ class Opendp // Place decap cells void addDecapMaster(dbMaster* decap_master, double decap_cap); - void insertDecapCells(double target, const char* net_name); + void insertDecapCells(const double target, IRDropByPoint& psm_ir_drops); private: using bgPoint @@ -341,10 +341,9 @@ class Opendp const double& target); void findGaps(); void findGapsInRow(GridY row, DbuY row_height, const GridInfo& grid_info); - odb::dbTechLayer* getLowestLayer(odb::dbNet* db_net); - void getIRDrops(const char* net_name, std::vector& ir_drops); + void mapToVectorIRDrops(IRDropByPoint& psm_ir_drops, + std::vector& ir_drops); void prepareDecapAndGaps(); - odb::dbNet* findPowerNet(const char* net_name); Logger* logger_ = nullptr; dbDatabase* db_ = nullptr; @@ -375,7 +374,6 @@ class Opendp bool have_one_site_cells_ = false; // Decap placement. - psm::PDNSim* psm_; vector decap_masters_; int decap_count_ = 0; GapMapByY gaps_; diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index aa50e2ab717..53475a7c3dc 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -50,7 +50,6 @@ using odb::dbMaster; using odb::dbPlacementStatus; using odb::dbSigType; -using IRDropByPoint = std::map; using IRDropByLayer = std::map; void Opendp::addDecapMaster(dbMaster* decap_master, double decap_cap) @@ -81,84 +80,12 @@ vector Opendp::findDecapCellIndices(const int& gap_width, return id_masters; } -// Return the lowest layer of db_net route -odb::dbTechLayer* Opendp::getLowestLayer(odb::dbNet* db_net) -{ - int min_layer_level = std::numeric_limits::max(); - std::vector via_boxes; - for (odb::dbSWire* swire : db_net->getSWires()) { - for (odb::dbSBox* s : swire->getWires()) { - if (s->isVia()) { - s->getViaBoxes(via_boxes); - for (const odb::dbShape& box : via_boxes) { - odb::dbTechLayer* tech_layer = box.getTechLayer(); - if (tech_layer->getRoutingLevel() == 0) { - continue; - } - min_layer_level - = std::min(min_layer_level, tech_layer->getRoutingLevel()); - } - } else { - odb::dbTechLayer* tech_layer = s->getTechLayer(); - min_layer_level - = std::min(min_layer_level, tech_layer->getRoutingLevel()); - } - } - } - return db_->getTech()->findRoutingLayer(min_layer_level); -} - -odb::dbNet* Opendp::findPowerNet(const char* net_name) -{ - odb::dbNet* power_net = nullptr; - // If net name is defined by user - if (!std::string(net_name).empty()) { - power_net = block_->findNet(net_name); - if (power_net == nullptr) { - logger_->error( - utl::DPL, 58, "Cannot find net {} in the design.", net_name); - } - // Check if net is supply - if (!power_net->getSigType().isSupply()) { - logger_->error( - utl::DPL, 57, "{} is not a supply net.", power_net->getName()); - } - return power_net; - } - // Otherwise find power net - for (auto db_net : block_->getNets()) { - if (db_net->getSigType().isSupply() - && db_net->getSigType() == dbSigType::POWER) { - power_net = db_net; - break; - } - } - return power_net; -} - // Return IR Drops for the net name in the lowest layer -void Opendp::getIRDrops(const char* net_name, std::vector& ir_drops) +void Opendp::mapToVectorIRDrops(IRDropByPoint& psm_ir_drops, + std::vector& ir_drops) { - IRDropByPoint ir_drop; - - // Get db_net - odb::dbNet* db_net = findPowerNet(net_name); - - // Get lowest layer - odb::dbTechLayer* tech_layer = getLowestLayer(db_net); - - psm_->getIRDropForLayer(db_net, tech_layer, ir_drop); - - if (ir_drop.empty()) { - logger_->error(DPL, - 53, - "No IR drop data found. Run analyse_power_grid for net {} " - "before inserting decap cells.", - db_net->getName()); - } - // Sort the IR DROP point in descending order - for (auto& it : ir_drop) { + for (auto& it : psm_ir_drops) { ir_drops.emplace_back(it.first, it.second); } @@ -196,7 +123,7 @@ void Opendp::prepareDecapAndGaps() } } -void Opendp::insertDecapCells(const double target, const char* net_name) +void Opendp::insertDecapCells(const double target, IRDropByPoint& psm_ir_drops) { // init dpl variables if (cells_.empty()) { @@ -219,7 +146,7 @@ void Opendp::insertDecapCells(const double target, const char* net_name) // Get IR DROP of net VDD on the lowest layer std::vector ir_drops; - getIRDrops(net_name, ir_drops); + mapToVectorIRDrops(psm_ir_drops, ir_drops); for (auto& irdrop_it : ir_drops) { // Find gaps in same row diff --git a/src/dpl/src/MakeOpendp.cpp b/src/dpl/src/MakeOpendp.cpp index d902a36875d..bf70805efa7 100644 --- a/src/dpl/src/MakeOpendp.cpp +++ b/src/dpl/src/MakeOpendp.cpp @@ -68,8 +68,7 @@ void initOpendp(OpenRoad* openroad) Dpl_Init(tcl_interp); // Eval encoded sta TCL sources. sta::evalTclInit(tcl_interp, sta::dpl_tcl_inits); - openroad->getOpendp()->init( - openroad->getDb(), openroad->getLogger(), openroad->getPDNSim()); + openroad->getOpendp()->init(openroad->getDb(), openroad->getLogger()); } } // namespace ord diff --git a/src/dpl/src/Opendp.cpp b/src/dpl/src/Opendp.cpp index a1e201483ef..0c19e121e63 100644 --- a/src/dpl/src/Opendp.cpp +++ b/src/dpl/src/Opendp.cpp @@ -83,14 +83,13 @@ Opendp::Opendp() Opendp::~Opendp() = default; -void Opendp::init(dbDatabase* db, Logger* logger, psm::PDNSim* psm) +void Opendp::init(dbDatabase* db, Logger* logger) { db_ = db; logger_ = logger; padding_ = std::make_shared(); grid_ = std::make_unique(); grid_->init(logger); - psm_ = psm; } void Opendp::setPaddingGlobal(const int left, const int right) diff --git a/src/dpl/src/Opendp.i b/src/dpl/src/Opendp.i index 085f5c14c5d..6df356a029f 100644 --- a/src/dpl/src/Opendp.i +++ b/src/dpl/src/Opendp.i @@ -152,20 +152,6 @@ filler_placement_cmd(dpl::dbMasterSeq *filler_masters, opendp->fillerPlacement(filler_masters, prefix); } -void -add_decap_master(odb::dbMaster *master, float cap) -{ - dpl::Opendp *opendp = ord::OpenRoad::openRoad()->getOpendp(); - opendp->addDecapMaster(master, cap); -} - -void -insert_decap_cmd(const float target, const char* net_name) -{ - dpl::Opendp *opendp = ord::OpenRoad::openRoad()->getOpendp(); - opendp->insertDecapCells(target, net_name); -} - void remove_fillers_cmd() { diff --git a/src/dpl/src/Opendp.tcl b/src/dpl/src/Opendp.tcl index 4ba6d64944c..8e34bb8cc55 100644 --- a/src/dpl/src/Opendp.tcl +++ b/src/dpl/src/Opendp.tcl @@ -136,62 +136,6 @@ proc filler_placement { args } { dpl::filler_placement_cmd $filler_masters $prefix } -sta::define_cmd_args "insert_decap" { -target_cap target_cap\ - [-cells cell_info]\ - [-net net_name]\ - } - -proc insert_decap { args } { - sta::parse_key_args "insert_decap" args \ - keys {-target_cap -cells -net} flags {} - - set target_cap 0.0 - if { [info exists keys(-target_cap)] } { - set target_cap $keys(-target_cap) - sta::check_positive_float "-target_cap" $target_cap - # F/m - set target_cap [expr [sta::capacitance_ui_sta $target_cap] / [sta::distance_ui_sta 1.0]] - } - - # Check even size - set cells_and_decap $keys(-cells) - if { [expr [llength $cells_and_decap] % 2] != 0 } { - utl::error DPL 181 "-cells must be a list of cell and decap pairs" - } - - # Add decap cells on DPL - set db [ord::get_db] - foreach {cell_name decap} $cells_and_decap { - set decap_value $decap - sta::check_positive_float "-cells" $decap_value - # F/m - set decap_value [expr [sta::capacitance_ui_sta $decap_value] / [sta::distance_ui_sta 1.0]] - # Find master with cell_name - set matched 0 - foreach lib [$db getLibs] { - foreach master [$lib getMasters] { - set master_name [$master getConstName] - if { [string match $cell_name $master_name] } { - dpl::add_decap_master $master $decap_value - set matched 1 - } - } - } - if { !$matched } { - utl::warn "DPL" 280 "$decap_name did not match any masters." - } - } - # Get net name - set net_name "" - if { [info exists keys(-net)] } { - set net_name $keys(-net) - } - - puts $net_name - # Insert decap cells - dpl::insert_decap_cmd $target_cap $net_name -} - sta::define_cmd_args "remove_fillers" {} proc remove_fillers { args } { From a4666358117f2c1ab97c37a87e06a42edc8e4d84 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Wed, 17 Jul 2024 03:35:19 +0000 Subject: [PATCH 22/56] psm: adding insert_decap command and functions to use dpl API Signed-off-by: luis201420 --- src/psm/include/psm/pdnsim.h | 15 +++++- src/psm/src/CMakeLists.txt | 2 + src/psm/src/MakePDNSim.cpp | 3 +- src/psm/src/pdnsim.cpp | 90 +++++++++++++++++++++++++++++++++++- src/psm/src/pdnsim.i | 14 ++++++ src/psm/src/pdnsim.tcl | 56 ++++++++++++++++++++++ 6 files changed, 177 insertions(+), 3 deletions(-) diff --git a/src/psm/include/psm/pdnsim.h b/src/psm/include/psm/pdnsim.h index 78934bb6088..c9439672e22 100644 --- a/src/psm/include/psm/pdnsim.h +++ b/src/psm/include/psm/pdnsim.h @@ -38,8 +38,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include +#include "dpl/Opendp.h" #include "odb/dbBlockCallBackObj.h" +using odb::dbMaster; + namespace odb { class dbDatabase; class Point; @@ -93,7 +96,8 @@ class PDNSim : public odb::dbBlockCallBackObj void init(utl::Logger* logger, odb::dbDatabase* db, sta::dbSta* sta, - rsz::Resizer* resizer); + rsz::Resizer* resizer, + dpl::Opendp* opendp); void setNetVoltage(odb::dbNet* net, sta::Corner* corner, double voltage); void analyzePowerGrid(odb::dbNet* net, @@ -136,12 +140,21 @@ class PDNSim : public odb::dbBlockCallBackObj odb::dbTechLayer* layer, IRDropByPoint& ir_drop) const; + // Functions of decap cells + void addDecapMaster(dbMaster* decap_master, double decap_cap); + void insertDecapCells(double target, const char* net_name); + private: + // Functions of decap cells + odb::dbTechLayer* getLowestLayer(odb::dbNet* db_net); + odb::dbNet* findPowerNet(const char* net_name); + IRSolver* getIRSolver(odb::dbNet* net, bool floorplanning); odb::dbDatabase* db_ = nullptr; sta::dbSta* sta_ = nullptr; rsz::Resizer* resizer_ = nullptr; + dpl::Opendp* opendp_ = nullptr; utl::Logger* logger_ = nullptr; std::unique_ptr heatmap_; diff --git a/src/psm/src/CMakeLists.txt b/src/psm/src/CMakeLists.txt index 31b9e4a1518..5838cc80abc 100644 --- a/src/psm/src/CMakeLists.txt +++ b/src/psm/src/CMakeLists.txt @@ -64,6 +64,7 @@ target_link_libraries(psm odb OpenSTA dbSta + dpl_lib rsz_lib Eigen3::Eigen gui @@ -97,6 +98,7 @@ if (Python3_FOUND AND BUILD_PYTHON) PUBLIC odb psm + dpl_lib ) endif() diff --git a/src/psm/src/MakePDNSim.cpp b/src/psm/src/MakePDNSim.cpp index 7adfde143fe..80d1772c4da 100644 --- a/src/psm/src/MakePDNSim.cpp +++ b/src/psm/src/MakePDNSim.cpp @@ -62,7 +62,8 @@ void initPDNSim(OpenRoad* openroad) openroad->getPDNSim()->init(openroad->getLogger(), openroad->getDb(), openroad->getSta(), - openroad->getResizer()); + openroad->getResizer(), + openroad->getOpendp()); } void deletePDNSim(psm::PDNSim* pdnsim) diff --git a/src/psm/src/pdnsim.cpp b/src/psm/src/pdnsim.cpp index df74af64cad..7a998837d3b 100644 --- a/src/psm/src/pdnsim.cpp +++ b/src/psm/src/pdnsim.cpp @@ -41,12 +41,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ir_network.h" #include "ir_solver.h" #include "odb/db.h" +#include "odb/dbShape.h" #include "shape.h" #include "sta/Corner.hh" #include "sta/DcalcAnalysisPt.hh" #include "sta/Liberty.hh" #include "utl/Logger.h" +using odb::dbBlock; +using odb::dbSigType; + namespace psm { PDNSim::PDNSim() = default; @@ -56,11 +60,13 @@ PDNSim::~PDNSim() = default; void PDNSim::init(utl::Logger* logger, odb::dbDatabase* db, sta::dbSta* sta, - rsz::Resizer* resizer) + rsz::Resizer* resizer, + dpl::Opendp* opendp) { db_ = db; sta_ = sta; resizer_ = resizer; + opendp_ = opendp; logger_ = logger; heatmap_ = std::make_unique(this, sta, logger_); heatmap_->registerHeatMap(); @@ -259,4 +265,86 @@ void PDNSim::inDbSWirePostDestroySBoxes(odb::dbSWire*) clearSolvers(); } +// Functions of decap cells +void PDNSim::addDecapMaster(dbMaster* decap_master, double decap_cap) +{ + opendp_->addDecapMaster(decap_master, decap_cap); +} +// Return the lowest layer of db_net route +odb::dbTechLayer* PDNSim::getLowestLayer(odb::dbNet* db_net) +{ + int min_layer_level = std::numeric_limits::max(); + std::vector via_boxes; + for (odb::dbSWire* swire : db_net->getSWires()) { + for (odb::dbSBox* s : swire->getWires()) { + if (s->isVia()) { + s->getViaBoxes(via_boxes); + for (const odb::dbShape& box : via_boxes) { + odb::dbTechLayer* tech_layer = box.getTechLayer(); + if (tech_layer->getRoutingLevel() == 0) { + continue; + } + min_layer_level + = std::min(min_layer_level, tech_layer->getRoutingLevel()); + } + } else { + odb::dbTechLayer* tech_layer = s->getTechLayer(); + min_layer_level + = std::min(min_layer_level, tech_layer->getRoutingLevel()); + } + } + } + return db_->getTech()->findRoutingLayer(min_layer_level); +} + +odb::dbNet* PDNSim::findPowerNet(const char* net_name) +{ + dbBlock* block = db_->getChip()->getBlock(); + odb::dbNet* power_net = nullptr; + // If net name is defined by user + if (!std::string(net_name).empty()) { + power_net = block->findNet(net_name); + if (power_net == nullptr) { + logger_->error(utl::PSM, 48, "Cannot find net {} in the design.", net_name); + } + // Check if net is supply + if (!power_net->getSigType().isSupply()) { + logger_->error(utl::PSM, 47, "{} is not a supply net.", power_net->getName()); + } + return power_net; + } + // Otherwise find power net + for (auto db_net : block->getNets()) { + if (db_net->getSigType().isSupply() + && db_net->getSigType() == dbSigType::POWER) { + power_net = db_net; + break; + } + } + return power_net; +} + +void PDNSim::insertDecapCells(double target, const char* net_name) +{ + // Get db_net + odb::dbNet* db_net = findPowerNet(net_name); + + // Get lowest layer + odb::dbTechLayer* tech_layer = getLowestLayer(db_net); + + IRDropByPoint ir_drops; + getIRDropForLayer(db_net, tech_layer, ir_drops); + + if (ir_drops.empty()) { + logger_->error(utl::PSM, + 93, + "No IR drop data found. Run analyse_power_grid for net {} " + "before inserting decap cells.", + db_net->getName()); + } + + // call DPL to insert decap cells + opendp_->insertDecapCells(target, ir_drops); +} + } // namespace psm diff --git a/src/psm/src/pdnsim.i b/src/psm/src/pdnsim.i index 78311be796e..785516190c1 100644 --- a/src/psm/src/pdnsim.i +++ b/src/psm/src/pdnsim.i @@ -84,6 +84,20 @@ analyze_power_grid_cmd(odb::dbNet* net, Corner* corner, psm::GeneratedSourceType pdnsim->analyzePowerGrid(net, corner, type, voltage_file, enable_em, em_file, error_file, voltage_source_file); } +void +add_decap_master(odb::dbMaster *master, float cap) +{ + PDNSim* pdnsim = getPDNSim(); + pdnsim->addDecapMaster(master, cap); +} + +void +insert_decap_cmd(const float target, const char* net_name) +{ + PDNSim* pdnsim = getPDNSim(); + pdnsim->insertDecapCells(target, net_name); +} + bool check_connectivity_cmd(odb::dbNet* net, bool floorplanning, const char* error_file) { diff --git a/src/psm/src/pdnsim.tcl b/src/psm/src/pdnsim.tcl index 9be487bc71c..00fdcb2ee1d 100644 --- a/src/psm/src/pdnsim.tcl +++ b/src/psm/src/pdnsim.tcl @@ -117,6 +117,62 @@ proc analyze_power_grid { args } { $voltage_source_file } +sta::define_cmd_args "insert_decap" { -target_cap target_cap\ + [-cells cell_info]\ + [-net net_name]\ + } + +proc insert_decap { args } { + sta::parse_key_args "insert_decap" args \ + keys {-target_cap -cells -net} flags {} + + set target_cap 0.0 + if { [info exists keys(-target_cap)] } { + set target_cap $keys(-target_cap) + sta::check_positive_float "-target_cap" $target_cap + # F/m + set target_cap [expr [sta::capacitance_ui_sta $target_cap] / [sta::distance_ui_sta 1.0]] + } + + # Check even size + set cells_and_decap $keys(-cells) + if { [expr [llength $cells_and_decap] % 2] != 0 } { + utl::error DPL 181 "-cells must be a list of cell and decap pairs" + } + + # Add decap cells on DPL + set db [ord::get_db] + foreach {cell_name decap} $cells_and_decap { + set decap_value $decap + sta::check_positive_float "-cells" $decap_value + # F/m + set decap_value [expr [sta::capacitance_ui_sta $decap_value] / [sta::distance_ui_sta 1.0]] + # Find master with cell_name + set matched 0 + foreach lib [$db getLibs] { + foreach master [$lib getMasters] { + set master_name [$master getConstName] + if { [string match $cell_name $master_name] } { + psm::add_decap_master $master $decap_value + set matched 1 + } + } + } + if { !$matched } { + utl::warn "DPL" 280 "$decap_name did not match any masters." + } + } + # Get net name + set net_name "" + if { [info exists keys(-net)] } { + set net_name $keys(-net) + } + + puts $net_name + # Insert decap cells + psm::insert_decap_cmd $target_cap $net_name +} + sta::define_cmd_args "write_pg_spice" { -net net_name [-vsrc vsrc_file] From 38b31ea988e89bd118981af59e555399951eb03f Mon Sep 17 00:00:00 2001 From: luis201420 Date: Wed, 17 Jul 2024 03:41:44 +0000 Subject: [PATCH 23/56] psm: adding clang-format Signed-off-by: luis201420 --- src/psm/src/pdnsim.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/psm/src/pdnsim.cpp b/src/psm/src/pdnsim.cpp index 7a998837d3b..5cadb740059 100644 --- a/src/psm/src/pdnsim.cpp +++ b/src/psm/src/pdnsim.cpp @@ -305,11 +305,13 @@ odb::dbNet* PDNSim::findPowerNet(const char* net_name) if (!std::string(net_name).empty()) { power_net = block->findNet(net_name); if (power_net == nullptr) { - logger_->error(utl::PSM, 48, "Cannot find net {} in the design.", net_name); + logger_->error( + utl::PSM, 48, "Cannot find net {} in the design.", net_name); } // Check if net is supply if (!power_net->getSigType().isSupply()) { - logger_->error(utl::PSM, 47, "{} is not a supply net.", power_net->getName()); + logger_->error( + utl::PSM, 47, "{} is not a supply net.", power_net->getName()); } return power_net; } From dcc92c08322caa35495a9e900ad8477a3115d2a4 Mon Sep 17 00:00:00 2001 From: Eder Monteiro Date: Wed, 17 Jul 2024 16:34:14 -0300 Subject: [PATCH 24/56] etc: update yosys version for eqy Signed-off-by: Eder Monteiro --- etc/DependencyInstaller.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/DependencyInstaller.sh b/etc/DependencyInstaller.sh index e45bf642334..ec59071f924 100755 --- a/etc/DependencyInstaller.sh +++ b/etc/DependencyInstaller.sh @@ -9,7 +9,7 @@ _versionCompare() { } _equivalenceDeps() { - yosysVersion=yosys-0.42 + yosysVersion=yosys-0.43 # yosys yosysPrefix=${PREFIX:-"/usr/local"} From a0dc7fdc329e3b1aa377792b0f0d17f78a43f435 Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Wed, 17 Jul 2024 20:13:12 +0000 Subject: [PATCH 25/56] enable 100% setup fixing by default Signed-off-by: Cho Moon --- src/rsz/README.md | 2 +- src/rsz/src/RepairSetup.cc | 6 + src/rsz/src/Resizer.tcl | 2 +- src/rsz/test/buffer_varying_lengths.defok | 400 +++++++++++----------- src/rsz/test/buffer_varying_lengths.ok | 9 +- src/rsz/test/buffer_varying_lengths.tcl | 6 +- src/rsz/test/repair_fanout6.ok | 1 + src/rsz/test/repair_fanout7.ok | 1 + src/rsz/test/repair_fanout8.ok | 1 + src/rsz/test/repair_setup1.ok | 1 + src/rsz/test/repair_setup2.ok | 6 +- src/rsz/test/repair_setup3.ok | 1 + src/rsz/test/repair_setup4.ok | 7 +- src/rsz/test/repair_setup4.tcl | 3 + src/rsz/test/repair_setup4_verbose.ok | 33 +- src/rsz/test/repair_setup4_verbose.tcl | 5 +- src/rsz/test/repair_setup5.ok | 1 + src/rsz/test/repair_setup6.ok | 1 + src/rsz/test/repair_setup7.ok | 1 + 19 files changed, 263 insertions(+), 224 deletions(-) diff --git a/src/rsz/README.md b/src/rsz/README.md index fee9efd83e0..cf8ccfd461e 100644 --- a/src/rsz/README.md +++ b/src/rsz/README.md @@ -298,7 +298,7 @@ repair_timing | `-skip_gate_cloning` | Flag to skip gate cloning. The default value is `False`, and the allowed values are bools. | | `-skip_buffering` | Flag to skip rebuffering and load splitting. The default value is `False`, and the allowed values are bools. | | `-enable_buffer_removal` | Flag to enable buffer removal during setup fixing. The default value is `False`, and the allowed values are bools. | -| `-repair_tns` | Percentage of violating endpoints to repair (0-100). When `tns_end_percent` is zero (the default), only the worst endpoint is repaired. When `tns_end_percent` is 100, all violating endpoints are repaired. | +| `-repair_tns` | Percentage of violating endpoints to repair (0-100). When `tns_end_percent` is zero, only the worst endpoint is repaired. When `tns_end_percent` is 100 (default), all violating endpoints are repaired. | | `-max_utilization` | Defines the percentage of core area used. | | `-max_buffer_percent` | Specify a maximum number of buffers to insert to repair hold violations as a percentage of the number of instances in the design. The default value is `20`, and the allowed values are integers `[0, 100]`. | | `-verbose` | Enable verbose logging of the repair progress. | diff --git a/src/rsz/src/RepairSetup.cc b/src/rsz/src/RepairSetup.cc index 09f245a5ab9..4b5ff250d9e 100644 --- a/src/rsz/src/RepairSetup.cc +++ b/src/rsz/src/RepairSetup.cc @@ -150,6 +150,12 @@ void RepairSetup::repairSetup(const float setup_slack_margin, // Always repair the worst endpoint, even if tns percent is zero. max_end_count = max(max_end_count, 1); swap_pin_inst_set_.clear(); // Make sure we do not swap the same pin twice. + logger_->info(RSZ, + 99, + "Repairing {} out of {} ({:0.2f}%) violating endpoints...", + max_end_count, + violating_ends.size(), + repair_tns_end_percent*100.0); // Ensure that max cap and max fanout violations don't get worse sta_->checkCapacitanceLimitPreamble(); diff --git a/src/rsz/src/Resizer.tcl b/src/rsz/src/Resizer.tcl index 79998c54418..8ca29e231ac 100644 --- a/src/rsz/src/Resizer.tcl +++ b/src/rsz/src/Resizer.tcl @@ -571,7 +571,7 @@ proc repair_timing { args } { } set max_buffer_percent [expr $max_buffer_percent / 100.0] - set repair_tns_end_percent 0.0 + set repair_tns_end_percent 1.0 if { [info exists keys(-repair_tns)] } { set repair_tns_end_percent $keys(-repair_tns) sta::check_percent "-repair_tns" $repair_tns_end_percent diff --git a/src/rsz/test/buffer_varying_lengths.defok b/src/rsz/test/buffer_varying_lengths.defok index ae302e8bbb3..ad256fb2d24 100644 --- a/src/rsz/test/buffer_varying_lengths.defok +++ b/src/rsz/test/buffer_varying_lengths.defok @@ -4,8 +4,8 @@ BUSBITCHARS "[]" ; DESIGN top ; UNITS DISTANCE MICRONS 2000 ; COMPONENTS 562 ; - - i1-1 BUF_X1 + PLACED ( 0 20000 ) N ; - - i1-10 BUF_X1 + PLACED ( 0 200000 ) N ; + - i1-1 BUF_X32 + PLACED ( 0 20000 ) N ; + - i1-10 BUF_X32 + PLACED ( 0 200000 ) N ; - i1-100 BUF_X8 + PLACED ( 0 2000000 ) N ; - i1-101 BUF_X8 + PLACED ( 0 2020000 ) N ; - i1-102 BUF_X8 + PLACED ( 0 2040000 ) N ; @@ -16,7 +16,7 @@ COMPONENTS 562 ; - i1-107 BUF_X8 + PLACED ( 0 2140000 ) N ; - i1-108 BUF_X8 + PLACED ( 0 2160000 ) N ; - i1-109 BUF_X8 + PLACED ( 0 2180000 ) N ; - - i1-11 BUF_X1 + PLACED ( 0 220000 ) N ; + - i1-11 BUF_X32 + PLACED ( 0 220000 ) N ; - i1-110 BUF_X8 + PLACED ( 0 2200000 ) N ; - i1-111 BUF_X8 + PLACED ( 0 2220000 ) N ; - i1-112 BUF_X8 + PLACED ( 0 2240000 ) N ; @@ -27,7 +27,7 @@ COMPONENTS 562 ; - i1-117 BUF_X8 + PLACED ( 0 2340000 ) N ; - i1-118 BUF_X8 + PLACED ( 0 2360000 ) N ; - i1-119 BUF_X8 + PLACED ( 0 2380000 ) N ; - - i1-12 BUF_X1 + PLACED ( 0 240000 ) N ; + - i1-12 BUF_X32 + PLACED ( 0 240000 ) N ; - i1-120 BUF_X8 + PLACED ( 0 2400000 ) N ; - i1-121 BUF_X8 + PLACED ( 0 2420000 ) N ; - i1-122 BUF_X8 + PLACED ( 0 2440000 ) N ; @@ -38,7 +38,7 @@ COMPONENTS 562 ; - i1-127 BUF_X8 + PLACED ( 0 2540000 ) N ; - i1-128 BUF_X8 + PLACED ( 0 2560000 ) N ; - i1-129 BUF_X8 + PLACED ( 0 2580000 ) N ; - - i1-13 BUF_X1 + PLACED ( 0 260000 ) N ; + - i1-13 BUF_X32 + PLACED ( 0 260000 ) N ; - i1-130 BUF_X8 + PLACED ( 0 2600000 ) N ; - i1-131 BUF_X8 + PLACED ( 0 2620000 ) N ; - i1-132 BUF_X8 + PLACED ( 0 2640000 ) N ; @@ -49,7 +49,7 @@ COMPONENTS 562 ; - i1-137 BUF_X8 + PLACED ( 0 2740000 ) N ; - i1-138 BUF_X8 + PLACED ( 0 2760000 ) N ; - i1-139 BUF_X8 + PLACED ( 0 2780000 ) N ; - - i1-14 BUF_X1 + PLACED ( 0 280000 ) N ; + - i1-14 BUF_X32 + PLACED ( 0 280000 ) N ; - i1-140 BUF_X8 + PLACED ( 0 2800000 ) N ; - i1-141 BUF_X8 + PLACED ( 0 2820000 ) N ; - i1-142 BUF_X8 + PLACED ( 0 2840000 ) N ; @@ -60,7 +60,7 @@ COMPONENTS 562 ; - i1-147 BUF_X8 + PLACED ( 0 2940000 ) N ; - i1-148 BUF_X8 + PLACED ( 0 2960000 ) N ; - i1-149 BUF_X8 + PLACED ( 0 2980000 ) N ; - - i1-15 BUF_X1 + PLACED ( 0 300000 ) N ; + - i1-15 BUF_X32 + PLACED ( 0 300000 ) N ; - i1-150 BUF_X8 + PLACED ( 0 3000000 ) N ; - i1-151 BUF_X8 + PLACED ( 0 3020000 ) N ; - i1-152 BUF_X8 + PLACED ( 0 3040000 ) N ; @@ -71,7 +71,7 @@ COMPONENTS 562 ; - i1-157 BUF_X8 + PLACED ( 0 3140000 ) N ; - i1-158 BUF_X8 + PLACED ( 0 3160000 ) N ; - i1-159 BUF_X8 + PLACED ( 0 3180000 ) N ; - - i1-16 BUF_X1 + PLACED ( 0 320000 ) N ; + - i1-16 BUF_X32 + PLACED ( 0 320000 ) N ; - i1-160 BUF_X8 + PLACED ( 0 3200000 ) N ; - i1-161 BUF_X8 + PLACED ( 0 3220000 ) N ; - i1-162 BUF_X8 + PLACED ( 0 3240000 ) N ; @@ -82,7 +82,7 @@ COMPONENTS 562 ; - i1-167 BUF_X8 + PLACED ( 0 3340000 ) N ; - i1-168 BUF_X8 + PLACED ( 0 3360000 ) N ; - i1-169 BUF_X8 + PLACED ( 0 3380000 ) N ; - - i1-17 BUF_X1 + PLACED ( 0 340000 ) N ; + - i1-17 BUF_X32 + PLACED ( 0 340000 ) N ; - i1-170 BUF_X8 + PLACED ( 0 3400000 ) N ; - i1-171 BUF_X8 + PLACED ( 0 3420000 ) N ; - i1-172 BUF_X8 + PLACED ( 0 3440000 ) N ; @@ -93,7 +93,7 @@ COMPONENTS 562 ; - i1-177 BUF_X8 + PLACED ( 0 3540000 ) N ; - i1-178 BUF_X8 + PLACED ( 0 3560000 ) N ; - i1-179 BUF_X8 + PLACED ( 0 3580000 ) N ; - - i1-18 CLKBUF_X2 + PLACED ( 0 360000 ) N ; + - i1-18 BUF_X32 + PLACED ( 0 360000 ) N ; - i1-180 BUF_X8 + PLACED ( 0 3600000 ) N ; - i1-181 BUF_X8 + PLACED ( 0 3620000 ) N ; - i1-182 BUF_X8 + PLACED ( 0 3640000 ) N ; @@ -104,7 +104,7 @@ COMPONENTS 562 ; - i1-187 BUF_X8 + PLACED ( 0 3740000 ) N ; - i1-188 BUF_X8 + PLACED ( 0 3760000 ) N ; - i1-189 BUF_X8 + PLACED ( 0 3780000 ) N ; - - i1-19 CLKBUF_X2 + PLACED ( 0 380000 ) N ; + - i1-19 BUF_X32 + PLACED ( 0 380000 ) N ; - i1-190 BUF_X16 + PLACED ( 0 3800000 ) N ; - i1-191 BUF_X16 + PLACED ( 0 3820000 ) N ; - i1-192 BUF_X16 + PLACED ( 0 3840000 ) N ; @@ -115,97 +115,97 @@ COMPONENTS 562 ; - i1-197 BUF_X16 + PLACED ( 0 3940000 ) N ; - i1-198 BUF_X16 + PLACED ( 0 3960000 ) N ; - i1-199 BUF_X16 + PLACED ( 0 3980000 ) N ; - - i1-2 BUF_X1 + PLACED ( 0 40000 ) N ; - - i1-20 CLKBUF_X2 + PLACED ( 0 400000 ) N ; + - i1-2 BUF_X32 + PLACED ( 0 40000 ) N ; + - i1-20 BUF_X32 + PLACED ( 0 400000 ) N ; - i1-200 BUF_X16 + PLACED ( 0 4000000 ) N ; - - i1-21 CLKBUF_X2 + PLACED ( 0 420000 ) N ; - - i1-22 CLKBUF_X2 + PLACED ( 0 440000 ) N ; - - i1-23 BUF_X2 + PLACED ( 0 460000 ) N ; - - i1-24 BUF_X2 + PLACED ( 0 480000 ) N ; - - i1-25 BUF_X2 + PLACED ( 0 500000 ) N ; - - i1-26 BUF_X2 + PLACED ( 0 520000 ) N ; - - i1-27 BUF_X2 + PLACED ( 0 540000 ) N ; - - i1-28 BUF_X2 + PLACED ( 0 560000 ) N ; - - i1-29 BUF_X2 + PLACED ( 0 580000 ) N ; - - i1-3 BUF_X1 + PLACED ( 0 60000 ) N ; - - i1-30 BUF_X2 + PLACED ( 0 600000 ) N ; - - i1-31 BUF_X2 + PLACED ( 0 620000 ) N ; - - i1-32 CLKBUF_X3 + PLACED ( 0 640000 ) N ; - - i1-33 CLKBUF_X3 + PLACED ( 0 660000 ) N ; - - i1-34 CLKBUF_X3 + PLACED ( 0 680000 ) N ; - - i1-35 CLKBUF_X3 + PLACED ( 0 700000 ) N ; - - i1-36 CLKBUF_X3 + PLACED ( 0 720000 ) N ; - - i1-37 CLKBUF_X3 + PLACED ( 0 740000 ) N ; - - i1-38 CLKBUF_X3 + PLACED ( 0 760000 ) N ; - - i1-39 CLKBUF_X3 + PLACED ( 0 780000 ) N ; - - i1-4 BUF_X1 + PLACED ( 0 80000 ) N ; - - i1-40 CLKBUF_X3 + PLACED ( 0 800000 ) N ; - - i1-41 CLKBUF_X3 + PLACED ( 0 820000 ) N ; - - i1-42 CLKBUF_X3 + PLACED ( 0 840000 ) N ; - - i1-43 CLKBUF_X3 + PLACED ( 0 860000 ) N ; - - i1-44 CLKBUF_X3 + PLACED ( 0 880000 ) N ; - - i1-45 CLKBUF_X3 + PLACED ( 0 900000 ) N ; - - i1-46 CLKBUF_X3 + PLACED ( 0 920000 ) N ; - - i1-47 BUF_X4 + PLACED ( 0 940000 ) N ; - - i1-48 BUF_X4 + PLACED ( 0 960000 ) N ; - - i1-49 BUF_X4 + PLACED ( 0 980000 ) N ; - - i1-5 BUF_X1 + PLACED ( 0 100000 ) N ; - - i1-50 BUF_X4 + PLACED ( 0 1000000 ) N ; - - i1-51 BUF_X4 + PLACED ( 0 1020000 ) N ; - - i1-52 BUF_X4 + PLACED ( 0 1040000 ) N ; - - i1-53 BUF_X4 + PLACED ( 0 1060000 ) N ; - - i1-54 BUF_X4 + PLACED ( 0 1080000 ) N ; - - i1-55 BUF_X4 + PLACED ( 0 1100000 ) N ; - - i1-56 BUF_X4 + PLACED ( 0 1120000 ) N ; - - i1-57 BUF_X4 + PLACED ( 0 1140000 ) N ; - - i1-58 BUF_X4 + PLACED ( 0 1160000 ) N ; - - i1-59 BUF_X4 + PLACED ( 0 1180000 ) N ; - - i1-6 BUF_X1 + PLACED ( 0 120000 ) N ; - - i1-60 BUF_X4 + PLACED ( 0 1200000 ) N ; - - i1-61 BUF_X4 + PLACED ( 0 1220000 ) N ; - - i1-62 BUF_X4 + PLACED ( 0 1240000 ) N ; - - i1-63 BUF_X4 + PLACED ( 0 1260000 ) N ; - - i1-64 BUF_X4 + PLACED ( 0 1280000 ) N ; - - i1-65 BUF_X4 + PLACED ( 0 1300000 ) N ; - - i1-66 BUF_X4 + PLACED ( 0 1320000 ) N ; - - i1-67 BUF_X4 + PLACED ( 0 1340000 ) N ; - - i1-68 BUF_X4 + PLACED ( 0 1360000 ) N ; - - i1-69 BUF_X4 + PLACED ( 0 1380000 ) N ; - - i1-7 BUF_X1 + PLACED ( 0 140000 ) N ; - - i1-70 BUF_X4 + PLACED ( 0 1400000 ) N ; - - i1-71 BUF_X4 + PLACED ( 0 1420000 ) N ; - - i1-72 BUF_X4 + PLACED ( 0 1440000 ) N ; - - i1-73 BUF_X4 + PLACED ( 0 1460000 ) N ; - - i1-74 BUF_X4 + PLACED ( 0 1480000 ) N ; - - i1-75 BUF_X4 + PLACED ( 0 1500000 ) N ; - - i1-76 BUF_X4 + PLACED ( 0 1520000 ) N ; - - i1-77 BUF_X4 + PLACED ( 0 1540000 ) N ; - - i1-78 BUF_X4 + PLACED ( 0 1560000 ) N ; - - i1-79 BUF_X4 + PLACED ( 0 1580000 ) N ; - - i1-8 BUF_X1 + PLACED ( 0 160000 ) N ; - - i1-80 BUF_X4 + PLACED ( 0 1600000 ) N ; - - i1-81 BUF_X4 + PLACED ( 0 1620000 ) N ; - - i1-82 BUF_X4 + PLACED ( 0 1640000 ) N ; - - i1-83 BUF_X4 + PLACED ( 0 1660000 ) N ; - - i1-84 BUF_X4 + PLACED ( 0 1680000 ) N ; - - i1-85 BUF_X4 + PLACED ( 0 1700000 ) N ; - - i1-86 BUF_X4 + PLACED ( 0 1720000 ) N ; - - i1-87 BUF_X4 + PLACED ( 0 1740000 ) N ; - - i1-88 BUF_X4 + PLACED ( 0 1760000 ) N ; - - i1-89 BUF_X4 + PLACED ( 0 1780000 ) N ; - - i1-9 BUF_X1 + PLACED ( 0 180000 ) N ; - - i1-90 BUF_X4 + PLACED ( 0 1800000 ) N ; - - i1-91 BUF_X4 + PLACED ( 0 1820000 ) N ; - - i1-92 BUF_X4 + PLACED ( 0 1840000 ) N ; - - i1-93 BUF_X4 + PLACED ( 0 1860000 ) N ; - - i1-94 BUF_X4 + PLACED ( 0 1880000 ) N ; + - i1-21 BUF_X32 + PLACED ( 0 420000 ) N ; + - i1-22 BUF_X32 + PLACED ( 0 440000 ) N ; + - i1-23 BUF_X32 + PLACED ( 0 460000 ) N ; + - i1-24 BUF_X32 + PLACED ( 0 480000 ) N ; + - i1-25 BUF_X32 + PLACED ( 0 500000 ) N ; + - i1-26 BUF_X32 + PLACED ( 0 520000 ) N ; + - i1-27 BUF_X32 + PLACED ( 0 540000 ) N ; + - i1-28 BUF_X32 + PLACED ( 0 560000 ) N ; + - i1-29 BUF_X32 + PLACED ( 0 580000 ) N ; + - i1-3 BUF_X32 + PLACED ( 0 60000 ) N ; + - i1-30 BUF_X32 + PLACED ( 0 600000 ) N ; + - i1-31 BUF_X32 + PLACED ( 0 620000 ) N ; + - i1-32 BUF_X32 + PLACED ( 0 640000 ) N ; + - i1-33 BUF_X32 + PLACED ( 0 660000 ) N ; + - i1-34 BUF_X32 + PLACED ( 0 680000 ) N ; + - i1-35 BUF_X32 + PLACED ( 0 700000 ) N ; + - i1-36 BUF_X32 + PLACED ( 0 720000 ) N ; + - i1-37 BUF_X32 + PLACED ( 0 740000 ) N ; + - i1-38 BUF_X32 + PLACED ( 0 760000 ) N ; + - i1-39 BUF_X32 + PLACED ( 0 780000 ) N ; + - i1-4 BUF_X32 + PLACED ( 0 80000 ) N ; + - i1-40 BUF_X32 + PLACED ( 0 800000 ) N ; + - i1-41 BUF_X32 + PLACED ( 0 820000 ) N ; + - i1-42 BUF_X32 + PLACED ( 0 840000 ) N ; + - i1-43 BUF_X32 + PLACED ( 0 860000 ) N ; + - i1-44 BUF_X32 + PLACED ( 0 880000 ) N ; + - i1-45 BUF_X32 + PLACED ( 0 900000 ) N ; + - i1-46 BUF_X32 + PLACED ( 0 920000 ) N ; + - i1-47 BUF_X32 + PLACED ( 0 940000 ) N ; + - i1-48 BUF_X32 + PLACED ( 0 960000 ) N ; + - i1-49 BUF_X32 + PLACED ( 0 980000 ) N ; + - i1-5 BUF_X32 + PLACED ( 0 100000 ) N ; + - i1-50 BUF_X32 + PLACED ( 0 1000000 ) N ; + - i1-51 BUF_X32 + PLACED ( 0 1020000 ) N ; + - i1-52 BUF_X32 + PLACED ( 0 1040000 ) N ; + - i1-53 BUF_X32 + PLACED ( 0 1060000 ) N ; + - i1-54 BUF_X32 + PLACED ( 0 1080000 ) N ; + - i1-55 BUF_X32 + PLACED ( 0 1100000 ) N ; + - i1-56 BUF_X32 + PLACED ( 0 1120000 ) N ; + - i1-57 BUF_X32 + PLACED ( 0 1140000 ) N ; + - i1-58 BUF_X32 + PLACED ( 0 1160000 ) N ; + - i1-59 BUF_X32 + PLACED ( 0 1180000 ) N ; + - i1-6 BUF_X32 + PLACED ( 0 120000 ) N ; + - i1-60 BUF_X32 + PLACED ( 0 1200000 ) N ; + - i1-61 BUF_X32 + PLACED ( 0 1220000 ) N ; + - i1-62 BUF_X32 + PLACED ( 0 1240000 ) N ; + - i1-63 BUF_X32 + PLACED ( 0 1260000 ) N ; + - i1-64 BUF_X32 + PLACED ( 0 1280000 ) N ; + - i1-65 BUF_X32 + PLACED ( 0 1300000 ) N ; + - i1-66 BUF_X32 + PLACED ( 0 1320000 ) N ; + - i1-67 BUF_X32 + PLACED ( 0 1340000 ) N ; + - i1-68 BUF_X32 + PLACED ( 0 1360000 ) N ; + - i1-69 BUF_X32 + PLACED ( 0 1380000 ) N ; + - i1-7 BUF_X32 + PLACED ( 0 140000 ) N ; + - i1-70 BUF_X32 + PLACED ( 0 1400000 ) N ; + - i1-71 BUF_X32 + PLACED ( 0 1420000 ) N ; + - i1-72 BUF_X32 + PLACED ( 0 1440000 ) N ; + - i1-73 BUF_X32 + PLACED ( 0 1460000 ) N ; + - i1-74 BUF_X32 + PLACED ( 0 1480000 ) N ; + - i1-75 BUF_X32 + PLACED ( 0 1500000 ) N ; + - i1-76 BUF_X32 + PLACED ( 0 1520000 ) N ; + - i1-77 BUF_X32 + PLACED ( 0 1540000 ) N ; + - i1-78 BUF_X32 + PLACED ( 0 1560000 ) N ; + - i1-79 BUF_X32 + PLACED ( 0 1580000 ) N ; + - i1-8 BUF_X32 + PLACED ( 0 160000 ) N ; + - i1-80 BUF_X32 + PLACED ( 0 1600000 ) N ; + - i1-81 BUF_X32 + PLACED ( 0 1620000 ) N ; + - i1-82 BUF_X32 + PLACED ( 0 1640000 ) N ; + - i1-83 BUF_X8 + PLACED ( 0 1660000 ) N ; + - i1-84 BUF_X8 + PLACED ( 0 1680000 ) N ; + - i1-85 BUF_X8 + PLACED ( 0 1700000 ) N ; + - i1-86 BUF_X8 + PLACED ( 0 1720000 ) N ; + - i1-87 BUF_X8 + PLACED ( 0 1740000 ) N ; + - i1-88 BUF_X8 + PLACED ( 0 1760000 ) N ; + - i1-89 BUF_X8 + PLACED ( 0 1780000 ) N ; + - i1-9 BUF_X32 + PLACED ( 0 180000 ) N ; + - i1-90 BUF_X8 + PLACED ( 0 1800000 ) N ; + - i1-91 BUF_X8 + PLACED ( 0 1820000 ) N ; + - i1-92 BUF_X8 + PLACED ( 0 1840000 ) N ; + - i1-93 BUF_X8 + PLACED ( 0 1860000 ) N ; + - i1-94 BUF_X8 + PLACED ( 0 1880000 ) N ; - i1-95 BUF_X8 + PLACED ( 0 1900000 ) N ; - i1-96 BUF_X8 + PLACED ( 0 1920000 ) N ; - i1-97 BUF_X8 + PLACED ( 0 1940000 ) N ; - i1-98 BUF_X8 + PLACED ( 0 1960000 ) N ; - i1-99 BUF_X8 + PLACED ( 0 1980000 ) N ; - - i2-1 BUF_X1 + PLACED ( 20000 20000 ) N ; - - i2-10 BUF_X1 + PLACED ( 200000 200000 ) N ; + - i2-1 BUF_X4 + PLACED ( 20000 20000 ) N ; + - i2-10 BUF_X4 + PLACED ( 200000 200000 ) N ; - i2-100 BUF_X1 + PLACED ( 2000000 2000000 ) N ; - i2-101 BUF_X1 + PLACED ( 2020000 2020000 ) N ; - i2-102 BUF_X1 + PLACED ( 2040000 2040000 ) N ; @@ -216,7 +216,7 @@ COMPONENTS 562 ; - i2-107 BUF_X1 + PLACED ( 2140000 2140000 ) N ; - i2-108 BUF_X1 + PLACED ( 2160000 2160000 ) N ; - i2-109 BUF_X1 + PLACED ( 2180000 2180000 ) N ; - - i2-11 BUF_X1 + PLACED ( 220000 220000 ) N ; + - i2-11 BUF_X4 + PLACED ( 220000 220000 ) N ; - i2-110 BUF_X1 + PLACED ( 2200000 2200000 ) N ; - i2-111 BUF_X1 + PLACED ( 2220000 2220000 ) N ; - i2-112 BUF_X1 + PLACED ( 2240000 2240000 ) N ; @@ -227,7 +227,7 @@ COMPONENTS 562 ; - i2-117 BUF_X1 + PLACED ( 2340000 2340000 ) N ; - i2-118 BUF_X1 + PLACED ( 2360000 2360000 ) N ; - i2-119 BUF_X1 + PLACED ( 2380000 2380000 ) N ; - - i2-12 BUF_X1 + PLACED ( 240000 240000 ) N ; + - i2-12 BUF_X4 + PLACED ( 240000 240000 ) N ; - i2-120 BUF_X1 + PLACED ( 2400000 2400000 ) N ; - i2-121 BUF_X1 + PLACED ( 2420000 2420000 ) N ; - i2-122 BUF_X1 + PLACED ( 2440000 2440000 ) N ; @@ -238,7 +238,7 @@ COMPONENTS 562 ; - i2-127 BUF_X1 + PLACED ( 2540000 2540000 ) N ; - i2-128 BUF_X1 + PLACED ( 2560000 2560000 ) N ; - i2-129 BUF_X1 + PLACED ( 2580000 2580000 ) N ; - - i2-13 BUF_X1 + PLACED ( 260000 260000 ) N ; + - i2-13 BUF_X4 + PLACED ( 260000 260000 ) N ; - i2-130 BUF_X1 + PLACED ( 2600000 2600000 ) N ; - i2-131 BUF_X1 + PLACED ( 2620000 2620000 ) N ; - i2-132 BUF_X1 + PLACED ( 2640000 2640000 ) N ; @@ -249,7 +249,7 @@ COMPONENTS 562 ; - i2-137 BUF_X1 + PLACED ( 2740000 2740000 ) N ; - i2-138 BUF_X1 + PLACED ( 2760000 2760000 ) N ; - i2-139 BUF_X1 + PLACED ( 2780000 2780000 ) N ; - - i2-14 BUF_X1 + PLACED ( 280000 280000 ) N ; + - i2-14 BUF_X4 + PLACED ( 280000 280000 ) N ; - i2-140 BUF_X1 + PLACED ( 2800000 2800000 ) N ; - i2-141 BUF_X1 + PLACED ( 2820000 2820000 ) N ; - i2-142 BUF_X1 + PLACED ( 2840000 2840000 ) N ; @@ -260,7 +260,7 @@ COMPONENTS 562 ; - i2-147 BUF_X1 + PLACED ( 2940000 2940000 ) N ; - i2-148 BUF_X1 + PLACED ( 2960000 2960000 ) N ; - i2-149 BUF_X1 + PLACED ( 2980000 2980000 ) N ; - - i2-15 BUF_X1 + PLACED ( 300000 300000 ) N ; + - i2-15 BUF_X4 + PLACED ( 300000 300000 ) N ; - i2-150 BUF_X1 + PLACED ( 3000000 3000000 ) N ; - i2-151 BUF_X1 + PLACED ( 3020000 3020000 ) N ; - i2-152 BUF_X1 + PLACED ( 3040000 3040000 ) N ; @@ -271,7 +271,7 @@ COMPONENTS 562 ; - i2-157 BUF_X1 + PLACED ( 3140000 3140000 ) N ; - i2-158 BUF_X1 + PLACED ( 3160000 3160000 ) N ; - i2-159 BUF_X1 + PLACED ( 3180000 3180000 ) N ; - - i2-16 BUF_X1 + PLACED ( 320000 320000 ) N ; + - i2-16 BUF_X4 + PLACED ( 320000 320000 ) N ; - i2-160 BUF_X1 + PLACED ( 3200000 3200000 ) N ; - i2-161 BUF_X1 + PLACED ( 3220000 3220000 ) N ; - i2-162 BUF_X1 + PLACED ( 3240000 3240000 ) N ; @@ -282,7 +282,7 @@ COMPONENTS 562 ; - i2-167 BUF_X1 + PLACED ( 3340000 3340000 ) N ; - i2-168 BUF_X1 + PLACED ( 3360000 3360000 ) N ; - i2-169 BUF_X1 + PLACED ( 3380000 3380000 ) N ; - - i2-17 BUF_X1 + PLACED ( 340000 340000 ) N ; + - i2-17 BUF_X4 + PLACED ( 340000 340000 ) N ; - i2-170 BUF_X1 + PLACED ( 3400000 3400000 ) N ; - i2-171 BUF_X1 + PLACED ( 3420000 3420000 ) N ; - i2-172 BUF_X1 + PLACED ( 3440000 3440000 ) N ; @@ -293,7 +293,7 @@ COMPONENTS 562 ; - i2-177 BUF_X1 + PLACED ( 3540000 3540000 ) N ; - i2-178 BUF_X1 + PLACED ( 3560000 3560000 ) N ; - i2-179 BUF_X1 + PLACED ( 3580000 3580000 ) N ; - - i2-18 BUF_X1 + PLACED ( 360000 360000 ) N ; + - i2-18 BUF_X4 + PLACED ( 360000 360000 ) N ; - i2-180 BUF_X1 + PLACED ( 3600000 3600000 ) N ; - i2-181 BUF_X1 + PLACED ( 3620000 3620000 ) N ; - i2-182 BUF_X1 + PLACED ( 3640000 3640000 ) N ; @@ -304,7 +304,7 @@ COMPONENTS 562 ; - i2-187 BUF_X1 + PLACED ( 3740000 3740000 ) N ; - i2-188 BUF_X1 + PLACED ( 3760000 3760000 ) N ; - i2-189 BUF_X1 + PLACED ( 3780000 3780000 ) N ; - - i2-19 BUF_X1 + PLACED ( 380000 380000 ) N ; + - i2-19 BUF_X4 + PLACED ( 380000 380000 ) N ; - i2-190 BUF_X1 + PLACED ( 3800000 3800000 ) N ; - i2-191 BUF_X1 + PLACED ( 3820000 3820000 ) N ; - i2-192 BUF_X1 + PLACED ( 3840000 3840000 ) N ; @@ -315,97 +315,97 @@ COMPONENTS 562 ; - i2-197 BUF_X1 + PLACED ( 3940000 3940000 ) N ; - i2-198 BUF_X1 + PLACED ( 3960000 3960000 ) N ; - i2-199 BUF_X1 + PLACED ( 3980000 3980000 ) N ; - - i2-2 BUF_X1 + PLACED ( 40000 40000 ) N ; - - i2-20 BUF_X1 + PLACED ( 400000 400000 ) N ; + - i2-2 BUF_X4 + PLACED ( 40000 40000 ) N ; + - i2-20 BUF_X4 + PLACED ( 400000 400000 ) N ; - i2-200 BUF_X1 + PLACED ( 4000000 4000000 ) N ; - - i2-21 BUF_X1 + PLACED ( 420000 420000 ) N ; - - i2-22 BUF_X1 + PLACED ( 440000 440000 ) N ; - - i2-23 BUF_X1 + PLACED ( 460000 460000 ) N ; - - i2-24 BUF_X1 + PLACED ( 480000 480000 ) N ; - - i2-25 BUF_X1 + PLACED ( 500000 500000 ) N ; - - i2-26 BUF_X1 + PLACED ( 520000 520000 ) N ; - - i2-27 BUF_X1 + PLACED ( 540000 540000 ) N ; - - i2-28 BUF_X1 + PLACED ( 560000 560000 ) N ; - - i2-29 BUF_X1 + PLACED ( 580000 580000 ) N ; - - i2-3 BUF_X1 + PLACED ( 60000 60000 ) N ; - - i2-30 BUF_X1 + PLACED ( 600000 600000 ) N ; - - i2-31 BUF_X1 + PLACED ( 620000 620000 ) N ; - - i2-32 BUF_X1 + PLACED ( 640000 640000 ) N ; - - i2-33 BUF_X1 + PLACED ( 660000 660000 ) N ; - - i2-34 BUF_X1 + PLACED ( 680000 680000 ) N ; - - i2-35 BUF_X1 + PLACED ( 700000 700000 ) N ; - - i2-36 BUF_X1 + PLACED ( 720000 720000 ) N ; - - i2-37 BUF_X1 + PLACED ( 740000 740000 ) N ; - - i2-38 BUF_X1 + PLACED ( 760000 760000 ) N ; - - i2-39 BUF_X1 + PLACED ( 780000 780000 ) N ; - - i2-4 BUF_X1 + PLACED ( 80000 80000 ) N ; - - i2-40 BUF_X1 + PLACED ( 800000 800000 ) N ; - - i2-41 BUF_X1 + PLACED ( 820000 820000 ) N ; - - i2-42 BUF_X1 + PLACED ( 840000 840000 ) N ; - - i2-43 BUF_X1 + PLACED ( 860000 860000 ) N ; - - i2-44 BUF_X1 + PLACED ( 880000 880000 ) N ; - - i2-45 BUF_X1 + PLACED ( 900000 900000 ) N ; - - i2-46 BUF_X1 + PLACED ( 920000 920000 ) N ; - - i2-47 BUF_X1 + PLACED ( 940000 940000 ) N ; - - i2-48 BUF_X1 + PLACED ( 960000 960000 ) N ; - - i2-49 BUF_X1 + PLACED ( 980000 980000 ) N ; - - i2-5 BUF_X1 + PLACED ( 100000 100000 ) N ; - - i2-50 BUF_X1 + PLACED ( 1000000 1000000 ) N ; - - i2-51 BUF_X1 + PLACED ( 1020000 1020000 ) N ; - - i2-52 BUF_X1 + PLACED ( 1040000 1040000 ) N ; - - i2-53 BUF_X1 + PLACED ( 1060000 1060000 ) N ; - - i2-54 BUF_X1 + PLACED ( 1080000 1080000 ) N ; - - i2-55 BUF_X1 + PLACED ( 1100000 1100000 ) N ; - - i2-56 BUF_X1 + PLACED ( 1120000 1120000 ) N ; - - i2-57 BUF_X1 + PLACED ( 1140000 1140000 ) N ; - - i2-58 BUF_X1 + PLACED ( 1160000 1160000 ) N ; - - i2-59 BUF_X1 + PLACED ( 1180000 1180000 ) N ; - - i2-6 BUF_X1 + PLACED ( 120000 120000 ) N ; - - i2-60 BUF_X1 + PLACED ( 1200000 1200000 ) N ; - - i2-61 BUF_X1 + PLACED ( 1220000 1220000 ) N ; - - i2-62 BUF_X1 + PLACED ( 1240000 1240000 ) N ; - - i2-63 BUF_X1 + PLACED ( 1260000 1260000 ) N ; - - i2-64 BUF_X1 + PLACED ( 1280000 1280000 ) N ; - - i2-65 BUF_X1 + PLACED ( 1300000 1300000 ) N ; - - i2-66 BUF_X1 + PLACED ( 1320000 1320000 ) N ; - - i2-67 BUF_X1 + PLACED ( 1340000 1340000 ) N ; - - i2-68 BUF_X1 + PLACED ( 1360000 1360000 ) N ; - - i2-69 BUF_X1 + PLACED ( 1380000 1380000 ) N ; - - i2-7 BUF_X1 + PLACED ( 140000 140000 ) N ; - - i2-70 BUF_X1 + PLACED ( 1400000 1400000 ) N ; - - i2-71 BUF_X1 + PLACED ( 1420000 1420000 ) N ; - - i2-72 BUF_X1 + PLACED ( 1440000 1440000 ) N ; - - i2-73 BUF_X1 + PLACED ( 1460000 1460000 ) N ; - - i2-74 BUF_X1 + PLACED ( 1480000 1480000 ) N ; - - i2-75 BUF_X1 + PLACED ( 1500000 1500000 ) N ; - - i2-76 BUF_X1 + PLACED ( 1520000 1520000 ) N ; - - i2-77 BUF_X1 + PLACED ( 1540000 1540000 ) N ; - - i2-78 BUF_X1 + PLACED ( 1560000 1560000 ) N ; - - i2-79 BUF_X1 + PLACED ( 1580000 1580000 ) N ; - - i2-8 BUF_X1 + PLACED ( 160000 160000 ) N ; - - i2-80 BUF_X1 + PLACED ( 1600000 1600000 ) N ; - - i2-81 BUF_X1 + PLACED ( 1620000 1620000 ) N ; - - i2-82 BUF_X1 + PLACED ( 1640000 1640000 ) N ; - - i2-83 BUF_X1 + PLACED ( 1660000 1660000 ) N ; - - i2-84 BUF_X1 + PLACED ( 1680000 1680000 ) N ; - - i2-85 BUF_X1 + PLACED ( 1700000 1700000 ) N ; - - i2-86 BUF_X1 + PLACED ( 1720000 1720000 ) N ; - - i2-87 BUF_X1 + PLACED ( 1740000 1740000 ) N ; - - i2-88 BUF_X1 + PLACED ( 1760000 1760000 ) N ; - - i2-89 BUF_X1 + PLACED ( 1780000 1780000 ) N ; - - i2-9 BUF_X1 + PLACED ( 180000 180000 ) N ; - - i2-90 BUF_X1 + PLACED ( 1800000 1800000 ) N ; - - i2-91 BUF_X1 + PLACED ( 1820000 1820000 ) N ; - - i2-92 BUF_X1 + PLACED ( 1840000 1840000 ) N ; - - i2-93 BUF_X1 + PLACED ( 1860000 1860000 ) N ; - - i2-94 BUF_X1 + PLACED ( 1880000 1880000 ) N ; + - i2-21 BUF_X4 + PLACED ( 420000 420000 ) N ; + - i2-22 BUF_X4 + PLACED ( 440000 440000 ) N ; + - i2-23 BUF_X4 + PLACED ( 460000 460000 ) N ; + - i2-24 BUF_X4 + PLACED ( 480000 480000 ) N ; + - i2-25 BUF_X4 + PLACED ( 500000 500000 ) N ; + - i2-26 BUF_X4 + PLACED ( 520000 520000 ) N ; + - i2-27 BUF_X4 + PLACED ( 540000 540000 ) N ; + - i2-28 BUF_X4 + PLACED ( 560000 560000 ) N ; + - i2-29 BUF_X4 + PLACED ( 580000 580000 ) N ; + - i2-3 BUF_X4 + PLACED ( 60000 60000 ) N ; + - i2-30 BUF_X4 + PLACED ( 600000 600000 ) N ; + - i2-31 BUF_X4 + PLACED ( 620000 620000 ) N ; + - i2-32 BUF_X4 + PLACED ( 640000 640000 ) N ; + - i2-33 BUF_X4 + PLACED ( 660000 660000 ) N ; + - i2-34 BUF_X4 + PLACED ( 680000 680000 ) N ; + - i2-35 BUF_X4 + PLACED ( 700000 700000 ) N ; + - i2-36 BUF_X4 + PLACED ( 720000 720000 ) N ; + - i2-37 BUF_X4 + PLACED ( 740000 740000 ) N ; + - i2-38 BUF_X4 + PLACED ( 760000 760000 ) N ; + - i2-39 BUF_X4 + PLACED ( 780000 780000 ) N ; + - i2-4 BUF_X4 + PLACED ( 80000 80000 ) N ; + - i2-40 BUF_X4 + PLACED ( 800000 800000 ) N ; + - i2-41 BUF_X4 + PLACED ( 820000 820000 ) N ; + - i2-42 BUF_X4 + PLACED ( 840000 840000 ) N ; + - i2-43 BUF_X4 + PLACED ( 860000 860000 ) N ; + - i2-44 BUF_X4 + PLACED ( 880000 880000 ) N ; + - i2-45 BUF_X4 + PLACED ( 900000 900000 ) N ; + - i2-46 BUF_X4 + PLACED ( 920000 920000 ) N ; + - i2-47 BUF_X4 + PLACED ( 940000 940000 ) N ; + - i2-48 BUF_X4 + PLACED ( 960000 960000 ) N ; + - i2-49 BUF_X4 + PLACED ( 980000 980000 ) N ; + - i2-5 BUF_X4 + PLACED ( 100000 100000 ) N ; + - i2-50 BUF_X4 + PLACED ( 1000000 1000000 ) N ; + - i2-51 BUF_X4 + PLACED ( 1020000 1020000 ) N ; + - i2-52 BUF_X4 + PLACED ( 1040000 1040000 ) N ; + - i2-53 BUF_X4 + PLACED ( 1060000 1060000 ) N ; + - i2-54 BUF_X4 + PLACED ( 1080000 1080000 ) N ; + - i2-55 BUF_X4 + PLACED ( 1100000 1100000 ) N ; + - i2-56 BUF_X4 + PLACED ( 1120000 1120000 ) N ; + - i2-57 BUF_X4 + PLACED ( 1140000 1140000 ) N ; + - i2-58 BUF_X4 + PLACED ( 1160000 1160000 ) N ; + - i2-59 BUF_X4 + PLACED ( 1180000 1180000 ) N ; + - i2-6 BUF_X4 + PLACED ( 120000 120000 ) N ; + - i2-60 BUF_X4 + PLACED ( 1200000 1200000 ) N ; + - i2-61 BUF_X4 + PLACED ( 1220000 1220000 ) N ; + - i2-62 BUF_X4 + PLACED ( 1240000 1240000 ) N ; + - i2-63 BUF_X4 + PLACED ( 1260000 1260000 ) N ; + - i2-64 BUF_X4 + PLACED ( 1280000 1280000 ) N ; + - i2-65 BUF_X4 + PLACED ( 1300000 1300000 ) N ; + - i2-66 BUF_X4 + PLACED ( 1320000 1320000 ) N ; + - i2-67 BUF_X4 + PLACED ( 1340000 1340000 ) N ; + - i2-68 BUF_X4 + PLACED ( 1360000 1360000 ) N ; + - i2-69 BUF_X4 + PLACED ( 1380000 1380000 ) N ; + - i2-7 BUF_X4 + PLACED ( 140000 140000 ) N ; + - i2-70 BUF_X4 + PLACED ( 1400000 1400000 ) N ; + - i2-71 BUF_X4 + PLACED ( 1420000 1420000 ) N ; + - i2-72 BUF_X4 + PLACED ( 1440000 1440000 ) N ; + - i2-73 BUF_X4 + PLACED ( 1460000 1460000 ) N ; + - i2-74 BUF_X4 + PLACED ( 1480000 1480000 ) N ; + - i2-75 BUF_X4 + PLACED ( 1500000 1500000 ) N ; + - i2-76 BUF_X4 + PLACED ( 1520000 1520000 ) N ; + - i2-77 BUF_X4 + PLACED ( 1540000 1540000 ) N ; + - i2-78 BUF_X4 + PLACED ( 1560000 1560000 ) N ; + - i2-79 BUF_X4 + PLACED ( 1580000 1580000 ) N ; + - i2-8 BUF_X4 + PLACED ( 160000 160000 ) N ; + - i2-80 BUF_X4 + PLACED ( 1600000 1600000 ) N ; + - i2-81 BUF_X4 + PLACED ( 1620000 1620000 ) N ; + - i2-82 BUF_X4 + PLACED ( 1640000 1640000 ) N ; + - i2-83 BUF_X4 + PLACED ( 1660000 1660000 ) N ; + - i2-84 BUF_X4 + PLACED ( 1680000 1680000 ) N ; + - i2-85 BUF_X4 + PLACED ( 1700000 1700000 ) N ; + - i2-86 BUF_X4 + PLACED ( 1720000 1720000 ) N ; + - i2-87 BUF_X4 + PLACED ( 1740000 1740000 ) N ; + - i2-88 BUF_X4 + PLACED ( 1760000 1760000 ) N ; + - i2-89 BUF_X4 + PLACED ( 1780000 1780000 ) N ; + - i2-9 BUF_X4 + PLACED ( 180000 180000 ) N ; + - i2-90 BUF_X4 + PLACED ( 1800000 1800000 ) N ; + - i2-91 BUF_X4 + PLACED ( 1820000 1820000 ) N ; + - i2-92 BUF_X4 + PLACED ( 1840000 1840000 ) N ; + - i2-93 BUF_X4 + PLACED ( 1860000 1860000 ) N ; + - i2-94 BUF_X4 + PLACED ( 1880000 1880000 ) N ; - i2-95 BUF_X1 + PLACED ( 1900000 1900000 ) N ; - i2-96 BUF_X1 + PLACED ( 1920000 1920000 ) N ; - i2-97 BUF_X1 + PLACED ( 1940000 1940000 ) N ; - i2-98 BUF_X1 + PLACED ( 1960000 1960000 ) N ; - i2-99 BUF_X1 + PLACED ( 1980000 1980000 ) N ; - wire1 BUF_X8 + SOURCE TIMING + PLACED ( 1041175 1981285 ) N ; - - wire10 BUF_X4 + SOURCE TIMING + PLACED ( 945929 1801285 ) N ; + - wire10 BUF_X8 + SOURCE TIMING + PLACED ( 945929 1801285 ) N ; - wire100 BUF_X8 + SOURCE TIMING + PLACED ( 1671175 3181285 ) N ; - wire101 BUF_X4 + SOURCE TIMING + PLACED ( 878911 3181317 ) N ; - wire102 BUF_X8 + SOURCE TIMING + PLACED ( 1660675 3161285 ) N ; @@ -416,7 +416,7 @@ COMPONENTS 562 ; - wire107 BUF_X8 + SOURCE TIMING + PLACED ( 1629175 3101285 ) N ; - wire108 BUF_X8 + SOURCE TIMING + PLACED ( 1618675 3081285 ) N ; - wire109 BUF_X8 + SOURCE TIMING + PLACED ( 1608175 3061285 ) N ; - - wire11 BUF_X4 + SOURCE TIMING + PLACED ( 935429 1781285 ) N ; + - wire11 BUF_X8 + SOURCE TIMING + PLACED ( 935429 1781285 ) N ; - wire110 BUF_X8 + SOURCE TIMING + PLACED ( 1597675 3041285 ) N ; - wire111 BUF_X8 + SOURCE TIMING + PLACED ( 1587175 3021285 ) N ; - wire112 BUF_X8 + SOURCE TIMING + PLACED ( 1576675 3001285 ) N ; @@ -427,7 +427,7 @@ COMPONENTS 562 ; - wire117 BUF_X8 + SOURCE TIMING + PLACED ( 1524175 2901285 ) N ; - wire118 BUF_X8 + SOURCE TIMING + PLACED ( 1513675 2881285 ) N ; - wire119 BUF_X8 + SOURCE TIMING + PLACED ( 1503175 2861285 ) N ; - - wire12 BUF_X4 + SOURCE TIMING + PLACED ( 924929 1761285 ) N ; + - wire12 BUF_X8 + SOURCE TIMING + PLACED ( 924929 1761285 ) N ; - wire120 BUF_X8 + SOURCE TIMING + PLACED ( 1492675 2841285 ) N ; - wire121 BUF_X8 + SOURCE TIMING + PLACED ( 1482175 2821285 ) N ; - wire122 BUF_X8 + SOURCE TIMING + PLACED ( 1471675 2801285 ) N ; @@ -438,7 +438,7 @@ COMPONENTS 562 ; - wire127 BUF_X8 + SOURCE TIMING + PLACED ( 1419175 2701285 ) N ; - wire128 BUF_X8 + SOURCE TIMING + PLACED ( 1408675 2681285 ) N ; - wire129 BUF_X8 + SOURCE TIMING + PLACED ( 1398175 2661285 ) N ; - - wire13 BUF_X4 + SOURCE TIMING + PLACED ( 914429 1741285 ) N ; + - wire13 BUF_X8 + SOURCE TIMING + PLACED ( 914429 1741285 ) N ; - wire130 BUF_X8 + SOURCE TIMING + PLACED ( 1387675 2641285 ) N ; - wire131 BUF_X8 + SOURCE TIMING + PLACED ( 1377175 2621285 ) N ; - wire132 BUF_X8 + SOURCE TIMING + PLACED ( 1366675 2601285 ) N ; @@ -449,7 +449,7 @@ COMPONENTS 562 ; - wire137 BUF_X8 + SOURCE TIMING + PLACED ( 1314175 2501285 ) N ; - wire138 BUF_X8 + SOURCE TIMING + PLACED ( 1303675 2481285 ) N ; - wire139 BUF_X8 + SOURCE TIMING + PLACED ( 1293175 2461285 ) N ; - - wire14 BUF_X4 + SOURCE TIMING + PLACED ( 903929 1721285 ) N ; + - wire14 BUF_X8 + SOURCE TIMING + PLACED ( 903929 1721285 ) N ; - wire140 BUF_X8 + SOURCE TIMING + PLACED ( 1282675 2441285 ) N ; - wire141 BUF_X8 + SOURCE TIMING + PLACED ( 1272175 2421285 ) N ; - wire142 BUF_X8 + SOURCE TIMING + PLACED ( 1261675 2401285 ) N ; @@ -460,7 +460,7 @@ COMPONENTS 562 ; - wire147 BUF_X8 + SOURCE TIMING + PLACED ( 1209175 2301285 ) N ; - wire148 BUF_X8 + SOURCE TIMING + PLACED ( 1198675 2281285 ) N ; - wire149 BUF_X8 + SOURCE TIMING + PLACED ( 1188175 2261285 ) N ; - - wire15 BUF_X4 + SOURCE TIMING + PLACED ( 893429 1701285 ) N ; + - wire15 BUF_X8 + SOURCE TIMING + PLACED ( 893429 1701285 ) N ; - wire150 BUF_X8 + SOURCE TIMING + PLACED ( 1177675 2241285 ) N ; - wire151 BUF_X8 + SOURCE TIMING + PLACED ( 1167175 2221285 ) N ; - wire152 BUF_X8 + SOURCE TIMING + PLACED ( 1156675 2201285 ) N ; @@ -471,11 +471,11 @@ COMPONENTS 562 ; - wire157 BUF_X8 + SOURCE TIMING + PLACED ( 1104175 2101285 ) N ; - wire158 BUF_X8 + SOURCE TIMING + PLACED ( 1093675 2081285 ) N ; - wire159 BUF_X8 + SOURCE TIMING + PLACED ( 1083175 2061285 ) N ; - - wire16 BUF_X4 + SOURCE TIMING + PLACED ( 882929 1681285 ) N ; + - wire16 BUF_X8 + SOURCE TIMING + PLACED ( 882929 1681285 ) N ; - wire160 BUF_X8 + SOURCE TIMING + PLACED ( 1072675 2041285 ) N ; - wire161 BUF_X8 + SOURCE TIMING + PLACED ( 1062175 2021285 ) N ; - wire162 BUF_X8 + SOURCE TIMING + PLACED ( 1051675 2001285 ) N ; - - wire17 BUF_X4 + SOURCE TIMING + PLACED ( 872429 1661285 ) N ; + - wire17 BUF_X8 + SOURCE TIMING + PLACED ( 872429 1661285 ) N ; - wire18 BUF_X16 + SOURCE TIMING + PLACED ( 2437968 4001136 ) N ; - wire19 BUF_X8 + SOURCE TIMING + PLACED ( 1282994 4001071 ) N ; - wire2 BUF_X8 + SOURCE TIMING + PLACED ( 1030675 1961285 ) N ; @@ -522,7 +522,7 @@ COMPONENTS 562 ; - wire57 BUF_X8 + SOURCE TIMING + PLACED ( 1081960 3621314 ) N ; - wire58 BUF_X8 + SOURCE TIMING + PLACED ( 2037935 3601280 ) N ; - wire59 BUF_X8 + SOURCE TIMING + PLACED ( 1071460 3601314 ) N ; - - wire6 BUF_X4 + SOURCE TIMING + PLACED ( 987929 1881285 ) N ; + - wire6 BUF_X8 + SOURCE TIMING + PLACED ( 987929 1881285 ) N ; - wire60 BUF_X8 + SOURCE TIMING + PLACED ( 2017935 3581280 ) N ; - wire61 BUF_X8 + SOURCE TIMING + PLACED ( 1060960 3581314 ) N ; - wire62 BUF_X8 + SOURCE TIMING + PLACED ( 1997936 3561281 ) N ; @@ -533,7 +533,7 @@ COMPONENTS 562 ; - wire67 BUF_X8 + SOURCE TIMING + PLACED ( 1029461 3521315 ) N ; - wire68 BUF_X8 + SOURCE TIMING + PLACED ( 1937937 3501282 ) N ; - wire69 BUF_X8 + SOURCE TIMING + PLACED ( 1018961 3501315 ) N ; - - wire7 BUF_X4 + SOURCE TIMING + PLACED ( 977429 1861285 ) N ; + - wire7 BUF_X8 + SOURCE TIMING + PLACED ( 977429 1861285 ) N ; - wire70 BUF_X8 + SOURCE TIMING + PLACED ( 1917937 3481282 ) N ; - wire71 BUF_X8 + SOURCE TIMING + PLACED ( 1008461 3481315 ) N ; - wire72 BUF_X8 + SOURCE TIMING + PLACED ( 1897937 3461282 ) N ; @@ -544,7 +544,7 @@ COMPONENTS 562 ; - wire77 BUF_X8 + SOURCE TIMING + PLACED ( 976962 3421316 ) N ; - wire78 BUF_X8 + SOURCE TIMING + PLACED ( 1837938 3401283 ) N ; - wire79 BUF_X8 + SOURCE TIMING + PLACED ( 966462 3401316 ) N ; - - wire8 BUF_X4 + SOURCE TIMING + PLACED ( 966929 1841285 ) N ; + - wire8 BUF_X8 + SOURCE TIMING + PLACED ( 966929 1841285 ) N ; - wire80 BUF_X8 + SOURCE TIMING + PLACED ( 1817939 3381284 ) N ; - wire81 BUF_X8 + SOURCE TIMING + PLACED ( 955962 3381316 ) N ; - wire82 BUF_X8 + SOURCE TIMING + PLACED ( 1797939 3361284 ) N ; @@ -555,7 +555,7 @@ COMPONENTS 562 ; - wire87 BUF_X8 + SOURCE TIMING + PLACED ( 924463 3321317 ) N ; - wire88 BUF_X8 + SOURCE TIMING + PLACED ( 1737940 3301285 ) N ; - wire89 BUF_X8 + SOURCE TIMING + PLACED ( 913963 3301317 ) N ; - - wire9 BUF_X4 + SOURCE TIMING + PLACED ( 956429 1821285 ) N ; + - wire9 BUF_X8 + SOURCE TIMING + PLACED ( 956429 1821285 ) N ; - wire90 BUF_X8 + SOURCE TIMING + PLACED ( 1723675 3281285 ) N ; - wire91 BUF_X8 + SOURCE TIMING + PLACED ( 906473 3281317 ) N ; - wire92 BUF_X8 + SOURCE TIMING + PLACED ( 1713175 3261285 ) N ; diff --git a/src/rsz/test/buffer_varying_lengths.ok b/src/rsz/test/buffer_varying_lengths.ok index 3e0b18533be..c27a570e61b 100644 --- a/src/rsz/test/buffer_varying_lengths.ok +++ b/src/rsz/test/buffer_varying_lengths.ok @@ -3,10 +3,13 @@ [INFO RSZ-0037] Found 118 long wires. [INFO RSZ-0038] Inserted 162 buffers in 118 nets. [INFO RSZ-0039] Resized 183 instances. -worst slack -0.27 +worst slack -0.266 +tns -28.587 [INFO RSZ-0094] Found 200 endpoints with setup violations. -[INFO RSZ-0041] Resized 2 instances. +[INFO RSZ-0099] Repairing 200 out of 200 (100.00%) violating endpoints... +[INFO RSZ-0041] Resized 895 instances. [WARNING RSZ-0062] Unable to repair all setup violations. [INFO RSZ-0033] No hold violations found. -worst slack -0.27 +worst slack -0.266 +tns -27.381 No differences found. diff --git a/src/rsz/test/buffer_varying_lengths.tcl b/src/rsz/test/buffer_varying_lengths.tcl index 69a228efcb0..8fa0a3142e7 100644 --- a/src/rsz/test/buffer_varying_lengths.tcl +++ b/src/rsz/test/buffer_varying_lengths.tcl @@ -50,9 +50,11 @@ set_output_delay -clock clk 0.0 [all_outputs] set_wire_rc -layer metal2 estimate_parasitics -placement repair_design -report_worst_slack -max +report_worst_slack -max -digits 3 +report_tns -digits 3 repair_timing -report_worst_slack -max +report_worst_slack -max -digits 3 +report_tns -digits 3 set def_file [make_result_file buffer_varying_lengths.def] write_def $def_file diff_files buffer_varying_lengths.defok $def_file diff --git a/src/rsz/test/repair_fanout6.ok b/src/rsz/test/repair_fanout6.ok index 17bfbeeed33..c7cb55cfd7d 100644 --- a/src/rsz/test/repair_fanout6.ok +++ b/src/rsz/test/repair_fanout6.ok @@ -15,6 +15,7 @@ Pin Limit Fanout Slack fanout1/X 20 20 0 (MET) [INFO RSZ-0094] Found 6400 endpoints with setup violations. +[INFO RSZ-0099] Repairing 1 out of 6400 (0.00%) violating endpoints... [INFO RSZ-0045] Inserted 17 buffers, 1 to split loads. [INFO RSZ-0041] Resized 150 instances. [WARNING RSZ-0062] Unable to repair all setup violations. diff --git a/src/rsz/test/repair_fanout7.ok b/src/rsz/test/repair_fanout7.ok index f83046b0be5..e9cca4dca42 100644 --- a/src/rsz/test/repair_fanout7.ok +++ b/src/rsz/test/repair_fanout7.ok @@ -8,6 +8,7 @@ load DFF_X1 CK D 300000 metal3 1000 [INFO ODB-0133] Created 155 nets and 459 connections. worst slack -23.63 [INFO RSZ-0094] Found 150 endpoints with setup violations. +[INFO RSZ-0099] Repairing 150 out of 150 (100.00%) violating endpoints... Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | TNS | Endpoint | Buffers | | Buffers | | | | | ------------------------------------------------------------------------------------------------- diff --git a/src/rsz/test/repair_fanout8.ok b/src/rsz/test/repair_fanout8.ok index 6347171fcb9..49e50c8060b 100644 --- a/src/rsz/test/repair_fanout8.ok +++ b/src/rsz/test/repair_fanout8.ok @@ -8,6 +8,7 @@ load DFF_X1 CK D 300000 metal3 1000 [INFO ODB-0133] Created 155 nets and 459 connections. worst slack -23.63 [INFO RSZ-0094] Found 150 endpoints with setup violations. +[INFO RSZ-0099] Repairing 150 out of 150 (100.00%) violating endpoints... Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | TNS | Endpoint | Buffers | | Buffers | | | | | ------------------------------------------------------------------------------------------------- diff --git a/src/rsz/test/repair_setup1.ok b/src/rsz/test/repair_setup1.ok index 67b02f379fb..5cd14077919 100644 --- a/src/rsz/test/repair_setup1.ok +++ b/src/rsz/test/repair_setup1.ok @@ -42,6 +42,7 @@ Path Type: max [INFO RSZ-0094] Found 4 endpoints with setup violations. +[INFO RSZ-0099] Repairing 4 out of 4 (100.00%) violating endpoints... [INFO RSZ-0040] Inserted 3 buffers. [INFO RSZ-0041] Resized 18 instances. [WARNING RSZ-0062] Unable to repair all setup violations. diff --git a/src/rsz/test/repair_setup2.ok b/src/rsz/test/repair_setup2.ok index efca9366d43..9f5632fcd6c 100644 --- a/src/rsz/test/repair_setup2.ok +++ b/src/rsz/test/repair_setup2.ok @@ -10,14 +10,16 @@ worst slack -0.28 [INFO RSZ-0038] Inserted 3 buffers in 3 nets. [INFO RSZ-0039] Resized 2 instances. [INFO RSZ-0094] Found 2 endpoints with setup violations. +[INFO RSZ-0099] Repairing 2 out of 2 (100.00%) violating endpoints... Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | TNS | Endpoint | Buffers | | Buffers | | | | | ------------------------------------------------------------------------------------------------- 0 | 0 | 0 | 0 | 0 | 0 | -0.117 | -0.194 | y2 5 | 0 | 0 | 0 | 0 | 2 | -0.117 | -0.194 | y2 - final | 0 | 0 | 0 | 0 | 2 | -0.117 | -0.194 | y2 + 7 | 0 | 0 | 0 | 0 | 3 | -0.117 | -0.194 | y2 + final | 0 | 0 | 0 | 0 | 3 | -0.117 | -0.194 | y2 ------------------------------------------------------------------------------------------------- -[INFO RSZ-0043] Swapped pins on 2 instances. +[INFO RSZ-0043] Swapped pins on 3 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test worst slack -0.12 diff --git a/src/rsz/test/repair_setup3.ok b/src/rsz/test/repair_setup3.ok index d3eee5d3d91..9bb5e079a19 100644 --- a/src/rsz/test/repair_setup3.ok +++ b/src/rsz/test/repair_setup3.ok @@ -6,6 +6,7 @@ [INFO ODB-0132] Created 2 special nets and 0 connections. [INFO ODB-0133] Created 6 nets and 13 connections. [INFO RSZ-0094] Found 2 endpoints with setup violations. +[INFO RSZ-0099] Repairing 2 out of 2 (100.00%) violating endpoints... [INFO RSZ-0041] Resized 2 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test diff --git a/src/rsz/test/repair_setup4.ok b/src/rsz/test/repair_setup4.ok index 9464c564495..103609ce142 100644 --- a/src/rsz/test/repair_setup4.ok +++ b/src/rsz/test/repair_setup4.ok @@ -5,9 +5,12 @@ [INFO ODB-0132] Created 2 special nets and 34 connections. [INFO ODB-0133] Created 7 nets and 30 connections. worst slack -1.95 +tns -6.294 [INFO RSZ-0094] Found 6 endpoints with setup violations. -[INFO RSZ-0040] Inserted 2 buffers. -[INFO RSZ-0041] Resized 17 instances. +[INFO RSZ-0099] Repairing 6 out of 6 (100.00%) violating endpoints... +[INFO RSZ-0040] Inserted 3 buffers. +[INFO RSZ-0041] Resized 44 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test worst slack -0.65 +tns -2.874 diff --git a/src/rsz/test/repair_setup4.tcl b/src/rsz/test/repair_setup4.tcl index bbd5352860a..9d5b445dadd 100644 --- a/src/rsz/test/repair_setup4.tcl +++ b/src/rsz/test/repair_setup4.tcl @@ -12,7 +12,10 @@ set_wire_rc -layer metal3 estimate_parasitics -placement report_worst_slack -max +report_tns -digits 3 write_verilog_for_eqy repair_setup4 before "None" repair_timing -setup run_equivalence_test repair_setup4 ./Nangate45/work_around_yosys/ "None" report_worst_slack -max +report_tns -digits 3 + diff --git a/src/rsz/test/repair_setup4_verbose.ok b/src/rsz/test/repair_setup4_verbose.ok index 6b7f9aa606e..2af533db4a6 100644 --- a/src/rsz/test/repair_setup4_verbose.ok +++ b/src/rsz/test/repair_setup4_verbose.ok @@ -4,8 +4,9 @@ [INFO ODB-0131] Created 17 components and 92 component-terminals. [INFO ODB-0132] Created 2 special nets and 34 connections. [INFO ODB-0133] Created 7 nets and 30 connections. -worst slack -1.95 +worst slack -1.954 [INFO RSZ-0094] Found 6 endpoints with setup violations. +[INFO RSZ-0099] Repairing 6 out of 6 (100.00%) violating endpoints... Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | TNS | Endpoint | Buffers | | Buffers | | | | | ------------------------------------------------------------------------------------------------- @@ -13,16 +14,26 @@ Iteration | Removed | Resized | Inserted | Cloned Gates | Pin Swaps | WNS | 10 | 0 | 8 | 3 | 0 | 0 | -0.865 | -3.085 | r2/D 19 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D 20 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D - 20 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D - 21 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D - 22 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D - 23 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D - 24 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D - 25 | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D - final | 0 | 17 | 3 | 0 | 0 | -0.654 | -2.908 | r2/D + 30 | 0 | 25 | 7 | 0 | 0 | -0.663 | -2.800 | r2/D + 35 | 0 | 26 | 7 | 0 | 0 | -0.652 | -2.874 | r2/D + 40 | 0 | 29 | 9 | 0 | 0 | -0.652 | -2.959 | r2/D + 46 | 0 | 32 | 9 | 0 | 0 | -0.652 | -2.874 | r2/D + 50 | 0 | 35 | 9 | 0 | 0 | -0.663 | -2.600 | r2/D + 57 | 0 | 38 | 11 | 0 | 0 | -0.652 | -2.874 | r2/D + 60 | 0 | 40 | 11 | 0 | 0 | -0.663 | -2.610 | r2/D + 68 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 69 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 70 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 70 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 71 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 72 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 73 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 74 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + 75 | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D + final | 0 | 44 | 13 | 0 | 0 | -0.652 | -2.874 | r2/D ------------------------------------------------------------------------------------------------- -[INFO RSZ-0040] Inserted 2 buffers. -[INFO RSZ-0041] Resized 17 instances. +[INFO RSZ-0040] Inserted 3 buffers. +[INFO RSZ-0041] Resized 44 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test -worst slack -0.65 +worst slack -0.652 diff --git a/src/rsz/test/repair_setup4_verbose.tcl b/src/rsz/test/repair_setup4_verbose.tcl index a1994641784..deda5d994c9 100644 --- a/src/rsz/test/repair_setup4_verbose.tcl +++ b/src/rsz/test/repair_setup4_verbose.tcl @@ -11,8 +11,9 @@ source Nangate45/Nangate45.rc set_wire_rc -layer metal3 estimate_parasitics -placement -report_worst_slack -max +report_worst_slack -max -digits 3 write_verilog_for_eqy repair_setup4_verbose before "None" repair_timing -verbose -setup run_equivalence_test repair_setup4_verbose ./Nangate45/work_around_yosys/ "None" -report_worst_slack -max +report_worst_slack -max -digits 3 + diff --git a/src/rsz/test/repair_setup5.ok b/src/rsz/test/repair_setup5.ok index 01df0da7c15..f104da8b54e 100644 --- a/src/rsz/test/repair_setup5.ok +++ b/src/rsz/test/repair_setup5.ok @@ -7,6 +7,7 @@ [INFO ODB-0133] Created 6 nets and 10 connections. worst slack -1.88 [INFO RSZ-0094] Found 1 endpoints with setup violations. +[INFO RSZ-0099] Repairing 1 out of 1 (100.00%) violating endpoints... [INFO RSZ-0041] Resized 15 instances. Repair timing output passed/skipped equivalence test worst slack 0.09 diff --git a/src/rsz/test/repair_setup6.ok b/src/rsz/test/repair_setup6.ok index 8c45481c90d..41f32decb43 100644 --- a/src/rsz/test/repair_setup6.ok +++ b/src/rsz/test/repair_setup6.ok @@ -16,6 +16,7 @@ delta HPWL 0 % worst slack -0.39 [INFO RSZ-0094] Found 4 endpoints with setup violations. +[INFO RSZ-0099] Repairing 4 out of 4 (100.00%) violating endpoints... [INFO RSZ-0040] Inserted 2 buffers. [INFO RSZ-0041] Resized 18 instances. [WARNING RSZ-0062] Unable to repair all setup violations. diff --git a/src/rsz/test/repair_setup7.ok b/src/rsz/test/repair_setup7.ok index ef70e9232df..20b22b73c3a 100644 --- a/src/rsz/test/repair_setup7.ok +++ b/src/rsz/test/repair_setup7.ok @@ -6,6 +6,7 @@ [INFO ODB-0133] Created 7 nets and 30 connections. worst slack -1.95 [INFO RSZ-0094] Found 6 endpoints with setup violations. +[INFO RSZ-0099] Repairing 6 out of 6 (100.00%) violating endpoints... [INFO RSZ-0059] Removed 4 buffers. [INFO RSZ-0040] Inserted 2 buffers. [INFO RSZ-0041] Resized 3 instances. From 321d1a6714540a94764af662fde0858a68f7341a Mon Sep 17 00:00:00 2001 From: Vitor Bandeira Date: Wed, 17 Jul 2024 21:11:46 +0000 Subject: [PATCH 26/56] etc: install buildx Signed-off-by: Vitor Bandeira --- etc/DependencyInstaller.sh | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/etc/DependencyInstaller.sh b/etc/DependencyInstaller.sh index e45bf642334..83496f16843 100755 --- a/etc/DependencyInstaller.sh +++ b/etc/DependencyInstaller.sh @@ -580,15 +580,24 @@ _installCI() { parallel \ software-properties-common \ unzip - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - echo \ - "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + + # Add Docker's official GPG key: + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ + -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + # Add the repository to Apt sources: + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get -y update apt-get -y install --no-install-recommends \ - containerd.io \ docker-ce \ - docker-ce-cli + docker-ce-cli \ + containerd.io \ + docker-buildx-plugin } _checkIsLocal() { From 962f7c63e094f877725ef2c1aaf0c84fc7df2c69 Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Wed, 17 Jul 2024 21:12:53 +0000 Subject: [PATCH 27/56] odb: make statics const Signed-off-by: Matt Liberty --- src/odb/src/db/dbWire.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/odb/src/db/dbWire.cpp b/src/odb/src/db/dbWire.cpp index 4b4429cd28c..469023c90c2 100644 --- a/src/odb/src/db/dbWire.cpp +++ b/src/odb/src/db/dbWire.cpp @@ -1015,7 +1015,7 @@ enum Coord None = 2 }; -static int nextState[13][3] = { +static const int nextState[13][3] = { /* X Y C */ /* 0 */ {1, 2, 3}, /* 1 */ {4, 5, 6}, @@ -1031,7 +1031,7 @@ static int nextState[13][3] = { /* 11 */ {13, 11, 11}, /* 12 */ {10, 11, 12}}; -static Coord curCoord[13][3] = { +static const Coord curCoord[13][3] = { /* X Y C */ /* 0 */ {None, None, None}, /* 1 */ {XCoord, YCoord, None}, @@ -1047,7 +1047,7 @@ static Coord curCoord[13][3] = { /* 11 */ {XCoord, None, None}, /* 12 */ {XCoord, YCoord, None}}; -static Coord prevCoord[13][3] = { +static const Coord prevCoord[13][3] = { /* X Y C */ /* 0 */ {XCoord, YCoord, None}, /* 1 */ {None, YCoord, None}, From 1601a7d9b1ea1640f4b49d88c1542aaa570b7b20 Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Wed, 17 Jul 2024 21:13:15 +0000 Subject: [PATCH 28/56] odb: rm deadcode Signed-off-by: Matt Liberty --- src/odb/src/db/dbBlock.cpp | 194 ------------------------------------- 1 file changed, 194 deletions(-) diff --git a/src/odb/src/db/dbBlock.cpp b/src/odb/src/db/dbBlock.cpp index 2a7859197b3..e6be5135bdc 100644 --- a/src/odb/src/db/dbBlock.cpp +++ b/src/odb/src/db/dbBlock.cpp @@ -3502,200 +3502,6 @@ void dbBlock::keepOldParasitics(std::vector& nets, } } -#if 0 -// -// Utility to create a net comprising a single SWire and two BTerms -// Returns pointer to net (nullptr iff not successful) -// -dbNet * -dbBlock::createNetSingleSWire(const char *innm, int x1, int y1, int x2, int y2, uint rlevel) -{ - if (!innm) - return nullptr; - - dbTech *intech = ((dbDatabase *) (getChip())->getOwner())->getTech(); - dbTechLayer *inly = nullptr; - if (!intech || ((inly = intech->findRoutingLayer(rlevel)) == nullptr)) - return nullptr; - - if (x2 < x1) - std::swap(x1,x2); - if (y2 < y1) - std::swap(y1, y2); - - dbNet *nwnet = dbNet::create(this,innm); - if (!nwnet) - return nullptr; - - nwnet->setSigType(dbSigType::SIGNAL); - - dbSWire *nwsw = dbSWire::create(nwnet, dbWireType::ROUTED); - if (!nwsw) - return nullptr; - dbSBox *nwsbx = dbSBox::create(nwsw, inly, x1, y1, x2, y2, dbWireShapeType::NONE); - if (!nwsbx) - return nullptr; - - std::pair cktrms = nwnet->createTerms4SingleNet(x1, y1, x2, y2, inly); - if ((cktrms.first == nullptr) || (cktrms.second == nullptr)) - return nullptr; - - return nwnet; -} - -// -// Utility to create a net comprising a single Wire and two BTerms -// Requires creating a suitable non-default rule for the wire if none exists. -// Returns pointer to net (nullptr iff not successful) -// -dbNet * -dbBlock::createNetSingleWire(const char *innm, int x1, int y1, int x2, int y2, uint rlevel, bool skipBterms, dbTechLayerDir indir) -{ - static int opendx = -1; - - if (!innm) - return nullptr; - - dbTech *intech = ((dbDatabase *) (getChip())->getOwner())->getTech(); - dbTechLayer *inly = nullptr; - if (!intech || ((inly = intech->findRoutingLayer(rlevel)) == nullptr)) - return nullptr; - - if (x2 < x1) - std::swap(x1,x2); - if (y2 < y1) - std::swap(y1, y2); - - dbNet *nwnet = dbNet::create(this,innm); - if (!nwnet) - return nullptr; - - nwnet->setSigType(dbSigType::SIGNAL); - - std::pair blutrms; - if (! skipBterms ) { - blutrms = nwnet->createTerms4SingleNet(x1, y1, x2, y2, inly); - - if ((blutrms.first == nullptr) || (blutrms.second == nullptr)) - return nullptr; - } - - dbWireEncoder ncdr; - ncdr.begin(dbWire::create(nwnet)); - - int fwidth; - if (indir == dbTechLayerDir::NONE) - fwidth = std::min(x2 - x1, y2 - y1); - else - fwidth = (indir == dbTechLayerDir::VERTICAL) ? x2 - x1 : y2 - y1; - - uint hwidth = fwidth/2; - - if (inly->getWidth()==fwidth) { - ncdr.newPath(inly, dbWireType::ROUTED); - } - else { - dbSet nd_rules = intech->getNonDefaultRules(); - dbSet::iterator nditr; - dbTechLayerRule *tst_rule; - dbTechNonDefaultRule *wdth_rule = nullptr; - for (nditr = nd_rules.begin(); nditr != nd_rules.end(); ++nditr) - { - tst_rule = (*nditr)->getLayerRule(inly); - if (tst_rule && (tst_rule->getWidth() == fwidth)) - { - wdth_rule = (*nditr); - break; - } - } - - char rule_name[14]; - dbTechLayer *curly; - if (!wdth_rule) - { - // Find first open slot, opendx static so only search once - if (opendx == -1) - { - for (opendx = 1; opendx <= 300000; ++opendx) - { - snprintf(rule_name, 14, "ADS_ND_%d", opendx); - if ((wdth_rule = dbTechNonDefaultRule::create(intech, rule_name)) != nullptr) - break; - } - } - else - { - snprintf(rule_name, 14, "ADS_ND_%d", ++opendx); - assert(wdth_rule = dbTechNonDefaultRule::create(intech, rule_name)); - } - - if (!wdth_rule) - { - - getImpl()->getLogger()->warn(utl::ODB, 14, "Failed to generate non-default rule for single wire net {}", innm); - return nullptr; - } - - dbTechLayerRule *curly_rule; - int i; - for (i = 1; i <= 12; i++) // Twelve routing layers?? - { - if ((curly = intech->findRoutingLayer(i)) != nullptr) - { - curly_rule = dbTechLayerRule::create(wdth_rule, curly); - curly_rule->setWidth(MAX(fwidth,curly->getWidth())); - curly_rule->setSpacing(curly->getSpacing()); - } - } - - dbTechVia *curly_via; - dbSet all_vias = intech->getVias(); - dbSet::iterator viter; - std::string nd_via_name(""); - for (viter = all_vias.begin(); viter != all_vias.end(); ++viter) - { - if (((*viter)->getNonDefaultRule() == nullptr) && ((*viter)->isDefault())) - { - nd_via_name = std::string(rule_name) + std::string("_") + std::string((*viter)->getName().c_str()); - curly_via = dbTechVia::clone(wdth_rule, (*viter), nd_via_name.c_str()); - } - } - } - - ncdr.newPath(inly, dbWireType::ROUTED, wdth_rule->getLayerRule(inly)); - } - if (((x2-x1) == fwidth) || (indir == dbTechLayerDir::VERTICAL)) { - if ((y2-y1) == fwidth) - ncdr.addPoint(x1+hwidth, y1+hwidth); - else - ncdr.addPoint(x1+hwidth, y1, 0); - //ncdr.addPoint(x1+hwidth, y2); - } - else - ncdr.addPoint(x1, y1+hwidth, 0); - - if (! skipBterms ) - ncdr.addBTerm(blutrms.first); - - if (((x2-x1) == fwidth) || (indir == dbTechLayerDir::VERTICAL)) { - if ((y2-y1) == fwidth) - ncdr.addPoint(x1+hwidth, y2-hwidth+1); - else - ncdr.addPoint(x1+hwidth, y2, 0); - //ncdr.addPoint(x1+hwidth, y2); - } - else - ncdr.addPoint(x2, y1+hwidth, 0); - - if (! skipBterms ) - ncdr.addBTerm(blutrms.second); - - ncdr.end(); - - return nwnet; -} -#endif - // // Utility to write db file // From d5ffeabe74340c41d82bb07f8ecdf6f00035c385 Mon Sep 17 00:00:00 2001 From: Vitor Bandeira Date: Wed, 17 Jul 2024 21:14:19 +0000 Subject: [PATCH 29/56] etc: use buildx Signed-off-by: Vitor Bandeira --- etc/DockerHelper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/DockerHelper.sh b/etc/DockerHelper.sh index 89c63472e57..d4c22a0d5cf 100755 --- a/etc/DockerHelper.sh +++ b/etc/DockerHelper.sh @@ -141,7 +141,7 @@ _test() { _create() { echo "Create docker image ${imagePath} using ${file}" - eval docker build \ + eval docker buildx build \ --file "${file}" \ --tag "${imagePath}" \ ${buildArgs} \ From aae9cfd9c27f7fa1311a87ebe0354636d73a089f Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Wed, 17 Jul 2024 22:08:49 -0700 Subject: [PATCH 30/56] gpl: ensure BinGrid::getDensityMinMaxIdxX/Y range is non-negative Signed-off-by: Matt Liberty --- src/gpl/src/nesterovBase.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gpl/src/nesterovBase.cpp b/src/gpl/src/nesterovBase.cpp index 378a9426cdc..15b20606ee9 100644 --- a/src/gpl/src/nesterovBase.cpp +++ b/src/gpl/src/nesterovBase.cpp @@ -826,6 +826,7 @@ std::pair BinGrid::getDensityMinMaxIdxX(const GCell* gcell) const ? (gcell->dUx() - lx()) / binSizeX_ : (gcell->dUx() - lx()) / binSizeX_ + 1; + lowerIdx = std::max(lowerIdx, 0); upperIdx = std::min(upperIdx, binCntX_); return std::make_pair(lowerIdx, upperIdx); } @@ -837,6 +838,7 @@ std::pair BinGrid::getDensityMinMaxIdxY(const GCell* gcell) const ? (gcell->dUy() - ly()) / binSizeY_ : (gcell->dUy() - ly()) / binSizeY_ + 1; + lowerIdx = std::max(lowerIdx, 0); upperIdx = std::min(upperIdx, binCntY_); return std::make_pair(lowerIdx, upperIdx); } From 0e68b50948198960a9153f7392ab0968593156e9 Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Thu, 18 Jul 2024 05:40:22 +0000 Subject: [PATCH 31/56] misc: make statics const Signed-off-by: Matt Liberty --- src/dbSta/src/dbNetwork.cc | 1 - src/odb/src/db/dbTransform.cpp | 128 +++++++++++++++--------------- src/odb/src/lef/lef/lefiDebug.cpp | 2 +- src/rsz/src/RepairDesign.cc | 2 +- src/utl/include/utl/Logger.h | 2 +- src/utl/src/Logger.cpp | 2 - 6 files changed, 67 insertions(+), 70 deletions(-) diff --git a/src/dbSta/src/dbNetwork.cc b/src/dbSta/src/dbNetwork.cc index 9078cd2e225..a6b27ba8161 100644 --- a/src/dbSta/src/dbNetwork.cc +++ b/src/dbSta/src/dbNetwork.cc @@ -825,7 +825,6 @@ ObjectId dbNetwork::id(const Pin* pin) const dbModITerm* moditerm = nullptr; dbModBTerm* modbterm = nullptr; - static std::map id_ptr_map; staToDb(pin, iterm, bterm, moditerm, modbterm); if (hierarchy_) { diff --git a/src/odb/src/db/dbTransform.cpp b/src/odb/src/db/dbTransform.cpp index e79bc5d231f..a4c050a7cc8 100644 --- a/src/odb/src/db/dbTransform.cpp +++ b/src/odb/src/db/dbTransform.cpp @@ -39,70 +39,70 @@ namespace odb { -static dbOrientType::Value orientMul[8][8] = {{dbOrientType::R0, - dbOrientType::R90, - dbOrientType::R180, - dbOrientType::R270, - dbOrientType::MY, - dbOrientType::MYR90, - dbOrientType::MX, - dbOrientType::MXR90}, - {dbOrientType::R90, - dbOrientType::R180, - dbOrientType::R270, - dbOrientType::R0, - dbOrientType::MXR90, - dbOrientType::MY, - dbOrientType::MYR90, - dbOrientType::MX}, - {dbOrientType::R180, - dbOrientType::R270, - dbOrientType::R0, - dbOrientType::R90, - dbOrientType::MX, - dbOrientType::MXR90, - dbOrientType::MY, - dbOrientType::MYR90}, - {dbOrientType::R270, - dbOrientType::R0, - dbOrientType::R90, - dbOrientType::R180, - dbOrientType::MYR90, - dbOrientType::MX, - dbOrientType::MXR90, - dbOrientType::MY}, - {dbOrientType::MY, - dbOrientType::MYR90, - dbOrientType::MX, - dbOrientType::MXR90, - dbOrientType::R0, - dbOrientType::R90, - dbOrientType::R180, - dbOrientType::R270}, - {dbOrientType::MYR90, - dbOrientType::MX, - dbOrientType::MXR90, - dbOrientType::MY, - dbOrientType::R270, - dbOrientType::R0, - dbOrientType::R90, - dbOrientType::R180}, - {dbOrientType::MX, - dbOrientType::MXR90, - dbOrientType::MY, - dbOrientType::MYR90, - dbOrientType::R180, - dbOrientType::R270, - dbOrientType::R0, - dbOrientType::R90}, - {dbOrientType::MXR90, - dbOrientType::MY, - dbOrientType::MYR90, - dbOrientType::MX, - dbOrientType::R90, - dbOrientType::R180, - dbOrientType::R270, - dbOrientType::R0}}; +static const dbOrientType::Value orientMul[8][8] = {{dbOrientType::R0, + dbOrientType::R90, + dbOrientType::R180, + dbOrientType::R270, + dbOrientType::MY, + dbOrientType::MYR90, + dbOrientType::MX, + dbOrientType::MXR90}, + {dbOrientType::R90, + dbOrientType::R180, + dbOrientType::R270, + dbOrientType::R0, + dbOrientType::MXR90, + dbOrientType::MY, + dbOrientType::MYR90, + dbOrientType::MX}, + {dbOrientType::R180, + dbOrientType::R270, + dbOrientType::R0, + dbOrientType::R90, + dbOrientType::MX, + dbOrientType::MXR90, + dbOrientType::MY, + dbOrientType::MYR90}, + {dbOrientType::R270, + dbOrientType::R0, + dbOrientType::R90, + dbOrientType::R180, + dbOrientType::MYR90, + dbOrientType::MX, + dbOrientType::MXR90, + dbOrientType::MY}, + {dbOrientType::MY, + dbOrientType::MYR90, + dbOrientType::MX, + dbOrientType::MXR90, + dbOrientType::R0, + dbOrientType::R90, + dbOrientType::R180, + dbOrientType::R270}, + {dbOrientType::MYR90, + dbOrientType::MX, + dbOrientType::MXR90, + dbOrientType::MY, + dbOrientType::R270, + dbOrientType::R0, + dbOrientType::R90, + dbOrientType::R180}, + {dbOrientType::MX, + dbOrientType::MXR90, + dbOrientType::MY, + dbOrientType::MYR90, + dbOrientType::R180, + dbOrientType::R270, + dbOrientType::R0, + dbOrientType::R90}, + {dbOrientType::MXR90, + dbOrientType::MY, + dbOrientType::MYR90, + dbOrientType::MX, + dbOrientType::R90, + dbOrientType::R180, + dbOrientType::R270, + dbOrientType::R0}}; dbOStream& operator<<(dbOStream& stream, const dbTransform& t) { diff --git a/src/odb/src/lef/lef/lefiDebug.cpp b/src/odb/src/lef/lef/lefiDebug.cpp index 86db19f9b68..0ed86e6d164 100644 --- a/src/odb/src/lef/lef/lefiDebug.cpp +++ b/src/odb/src/lef/lef/lefiDebug.cpp @@ -93,7 +93,7 @@ void lefiError(int check, int msgNum, const char* str) fprintf(stderr, "%s", str); } -static char lefiShift[] +static const char lefiShift[] = {'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', ' ', '!', '"', '#', diff --git a/src/rsz/src/RepairDesign.cc b/src/rsz/src/RepairDesign.cc index 77c28775004..6cedd7c6838 100644 --- a/src/rsz/src/RepairDesign.cc +++ b/src/rsz/src/RepairDesign.cc @@ -831,7 +831,7 @@ void RepairDesign::repairNetWire( || load_slew > max_load_slew_margined) { // Make the wire a bit shorter than necessary to allow for // offset from instance origin to pin and detailed placement movement. - static double length_margin = .05; + constexpr double length_margin = .05; bool split_wire = false; bool resize = true; // Distance from repeater to ref_. diff --git a/src/utl/include/utl/Logger.h b/src/utl/include/utl/Logger.h index f5888aa9fd4..280cb4554ef 100644 --- a/src/utl/include/utl/Logger.h +++ b/src/utl/include/utl/Logger.h @@ -299,7 +299,7 @@ class Logger static constexpr int max_message_id = 9999; // Stop issuing messages of a given tool/id when this limit is hit. - static int max_message_print; + static constexpr int max_message_print = 1000; std::vector sinks_; std::shared_ptr logger_; diff --git a/src/utl/src/Logger.cpp b/src/utl/src/Logger.cpp index 78117a4a9c0..df55f28e6f9 100644 --- a/src/utl/src/Logger.cpp +++ b/src/utl/src/Logger.cpp @@ -45,8 +45,6 @@ namespace utl { -int Logger::max_message_print = 1000; - Logger::Logger(const char* log_filename, const char* metrics_filename) : debug_on_(false), warning_count_(0), error_count_(0) From c7123d8ebea8ce655d17c64e4c6afbaca7c132bb Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Thu, 18 Jul 2024 06:10:08 +0000 Subject: [PATCH 32/56] dpl: move static dummy_cell to class member Signed-off-by: Matt Liberty --- src/dpl/include/dpl/Opendp.h | 1 + src/dpl/src/Objects.cpp | 2 -- src/dpl/src/Objects.h | 2 -- src/dpl/src/Opendp.cpp | 7 ++++--- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 7c13c60aaca..2e2a6232e0a 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -349,6 +349,7 @@ class Opendp int64_t displacement_max_ = 0; std::unique_ptr debug_observer_; + std::unique_ptr dummy_cell_; // Magic numbers static constexpr int bin_search_width_ = 10; diff --git a/src/dpl/src/Objects.cpp b/src/dpl/src/Objects.cpp index abe280f6ed5..32ece9ca544 100644 --- a/src/dpl/src/Objects.cpp +++ b/src/dpl/src/Objects.cpp @@ -35,8 +35,6 @@ namespace dpl { -Cell Cell::dummy_cell; - const char* Cell::name() const { return db_inst_->getConstName(); diff --git a/src/dpl/src/Objects.h b/src/dpl/src/Objects.h index 3981b5ce2f2..3bc92b76956 100644 --- a/src/dpl/src/Objects.h +++ b/src/dpl/src/Objects.h @@ -70,8 +70,6 @@ struct Cell bool hold_ = false; Group* group_ = nullptr; Rect* region_ = nullptr; // group rect - - static Cell dummy_cell; }; struct Group diff --git a/src/dpl/src/Opendp.cpp b/src/dpl/src/Opendp.cpp index 0c19e121e63..9b5d3f633dc 100644 --- a/src/dpl/src/Opendp.cpp +++ b/src/dpl/src/Opendp.cpp @@ -78,7 +78,8 @@ bool Opendp::isMultiRow(const Cell* cell) const Opendp::Opendp() { - Cell::dummy_cell.is_placed_ = true; + dummy_cell_ = std::make_unique(); + dummy_cell_->is_placed_ = true; } Opendp::~Opendp() = default; @@ -378,7 +379,7 @@ void Opendp::groupInitPixels2() for (Rect& rect : group.region_boundaries) { if (!isInside(sub, rect) && checkOverlap(sub, rect)) { pixel->util = 0.0; - pixel->cell = &Cell::dummy_cell; + pixel->cell = dummy_cell_.get(); pixel->is_valid = false; } } @@ -472,7 +473,7 @@ void Opendp::groupInitPixels() pixel->is_valid = true; pixel->util = 1.0; } else if (pixel->util > 0.0 && pixel->util < 1.0) { - pixel->cell = &Cell::dummy_cell; + pixel->cell = dummy_cell_.get(); pixel->util = 0.0; pixel->is_valid = false; } From d749d32de01f01b5e777c87db7abe5c7568f806c Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Thu, 18 Jul 2024 06:20:39 +0000 Subject: [PATCH 33/56] odb: rm dead code in lef parser Signed-off-by: Matt Liberty --- src/odb/src/lef/clef/lefiTBInt.c | 39 -------------- src/odb/src/lef/clef/lefiUtil.h | 3 -- src/odb/src/lef/clef/xlefiUtil.cpp | 11 ---- src/odb/src/lef/lef/lefiTBExt.cpp | 87 ------------------------------ src/odb/src/lef/lef/lefiUtil.hpp | 5 -- src/odb/src/lef/lef/lefwWriter.cpp | 7 --- 6 files changed, 152 deletions(-) delete mode 100644 src/odb/src/lef/clef/lefiTBInt.c diff --git a/src/odb/src/lef/clef/lefiTBInt.c b/src/odb/src/lef/clef/lefiTBInt.c deleted file mode 100644 index 1adfccf8479..00000000000 --- a/src/odb/src/lef/clef/lefiTBInt.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This file is part of the Cadence LEF/DEF Open Source - * Distribution, Product Version 5.7, and is subject to the Cadence LEF/DEF - * Open Source License Agreement. Your continued use of this file - * constitutes your acceptance of the terms of the LEF/DEF Open Source - * License and an agreement to abide by its terms. If you don't agree - * with this, you must remove this and any other files which are part of the - * distribution and destroy any copies made. - * - * For updates, support, or to become part of the LEF/DEF Community, check - * www.openeda.org for details. - */ -#include - -/* - * lefiTimeBomb - */ -/* Internal time bomb. Always return date current */ /* Check the current - date against the date given */ -int lefiValidTime() -{ - return (1); -} - -/* - * Internal check, always return ok - */ -/* Check the current date against the date given */ int lefiValidUser() -{ - return (1); -} - -/* - * Internal, return Cadence Design Systems - */ -/* Check the current date against the date given */ char* lefiUser() -{ - return ((char*) "Cadence Design Systems"); -} diff --git a/src/odb/src/lef/clef/lefiUtil.h b/src/odb/src/lef/clef/lefiUtil.h index 0f1e6c357df..b44c1ac05d0 100644 --- a/src/odb/src/lef/clef/lefiUtil.h +++ b/src/odb/src/lef/clef/lefiUtil.h @@ -40,9 +40,6 @@ /* Structure to return Macro data to FE */ /*int lefiValidTime(); */ -EXTERN int lefiValidUser(); - -EXTERN char* lefiUser(); EXTERN char* lefiOrientStr(int orient); diff --git a/src/odb/src/lef/clef/xlefiUtil.cpp b/src/odb/src/lef/clef/xlefiUtil.cpp index 8351a36e2cd..a125475d8f5 100644 --- a/src/odb/src/lef/clef/xlefiUtil.cpp +++ b/src/odb/src/lef/clef/xlefiUtil.cpp @@ -36,17 +36,6 @@ #include "lefiUtil.h" #include "lefiUtil.hpp" -// Wrappers definitions. -int lefiValidUser() -{ - return LefDefParser::lefiValidUser(); -} - -char* lefiUser() -{ - return LefDefParser::lefiUser(); -} - char* lefiOrientStr(int orient) { return LefDefParser::lefiOrientStr(orient); diff --git a/src/odb/src/lef/lef/lefiTBExt.cpp b/src/odb/src/lef/lef/lefiTBExt.cpp index d41ec586b7c..d59317e3c53 100644 --- a/src/odb/src/lef/lef/lefiTBExt.cpp +++ b/src/odb/src/lef/lef/lefiTBExt.cpp @@ -36,93 +36,6 @@ BEGIN_LEFDEF_PARSER_NAMESPACE -static char tagName[200] = "CDNDESYS"; -static char tagNum[24] = "CDNCHKSM"; - -time_t lefiCalcTime() -{ - // Calculate the number for the given date - // The date is 5/1/99 - - /* Used to calculate the UTC for a time bomb date in libcai.a - ** see caiInitWork() function - */ - struct tm ts; - - ts.tm_sec = 0; - ts.tm_min = 0; - ts.tm_hour = 0; - ts.tm_mday = 1; - ts.tm_mon = 5; - ts.tm_year = 1999 - 1900; - ts.tm_wday = 0; - ts.tm_yday = 0; - ts.tm_isdst = 0; - - /* - printf("May 1, 1999 in UTC is %d\n", mktime(&ts)); - ts.tm_mday = 2; - printf("May 2, 1999 in UTC is %d\n", mktime(&ts)); - - printf("Right now is %d\n", time(0)); - */ - return (mktime(&ts)); -} - -// ***************************************************************************** -// lefiTimeBomb -// ***************************************************************************** - -// Check the current date against the date given -int lefiValidTime() -{ - /* Take the timebomb out for now - time_t bombTime = lefiCalcTime(); - time_t bombTime = 928224000; - time_t curTime; - - curTime = time((time_t *)NULL); - if (curTime == -1 || curTime > bombTime) - { - ()printf("The demonstration version of this code is no longer\n" - "available. Please contact your Lef/Def Parser\n" - "software provider for up to date code.\n"); - return(0); - } - */ - return (1); -} - -// ***************************************************************************** -// Check if the company is authorized to use the reader -// ***************************************************************************** - -int lefiValidUser() -{ - int j = 0, i; - - for (i = 0; i < (int) strlen(tagName); i++) { - j += (int) tagName[i]; - } - - if (atoi(tagNum) == j) - return (1); - return (0); -} - -// ***************************************************************************** -// Return user name from tagName -// ***************************************************************************** - -char* lefiUser() -{ - char* tmpUser = tagName; - tmpUser = tmpUser + 8; - if (strncmp(tmpUser, " ", 5) == 0) - return ((char*) "Cadence Design Systems"); - return (tmpUser); -} - // Convert the orient from integer to string // // ***************************************************************************** diff --git a/src/odb/src/lef/lef/lefiUtil.hpp b/src/odb/src/lef/lef/lefiUtil.hpp index 232f033ecaf..b29b6e5b041 100644 --- a/src/odb/src/lef/lef/lefiUtil.hpp +++ b/src/odb/src/lef/lef/lefiUtil.hpp @@ -43,11 +43,6 @@ struct lefiPoints typedef struct lefiPoints lefiNum; -// int lefiValidTime(); -extern int lefiValidUser(); - -extern char* lefiUser(); - extern char* lefiOrientStr(int orient); extern double convert_name2num(const char* versionName); diff --git a/src/odb/src/lef/lef/lefwWriter.cpp b/src/odb/src/lef/lef/lefwWriter.cpp index 372f9052fb3..dac6675d45d 100644 --- a/src/odb/src/lef/lef/lefwWriter.cpp +++ b/src/odb/src/lef/lef/lefwWriter.cpp @@ -476,13 +476,6 @@ int lefwInit(FILE* f) { int i; - // Check if the user is valid - /* don't need anymore - if (!lefiValidUser()) - exit(77); - */ - - // if (lefwFile) return LEFW_BAD_ORDER; lefwFile = f; if (lefwHasInitCbk == 1) { // lefwInitCbk has already called, issue an error From 3c833576ef2bb8ae7d5ca247b7c3a36ef99b6e18 Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Thu, 18 Jul 2024 06:32:02 +0000 Subject: [PATCH 34/56] gpl: rm static Logger Signed-off-by: Matt Liberty --- src/gpl/src/placerBase.cpp | 27 +++++++++++---------------- src/gpl/src/placerBase.h | 4 ++-- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/gpl/src/placerBase.cpp b/src/gpl/src/placerBase.cpp index e7ae4183be2..5e06f6adf94 100644 --- a/src/gpl/src/placerBase.cpp +++ b/src/gpl/src/placerBase.cpp @@ -69,8 +69,6 @@ static std::pair getMinMaxIdx(int ll, int minIdx, int maxIdx); -static utl::Logger* slog_; - static bool isCoreAreaOverlap(Die& die, Instance& inst); static int64_t getOverlapWithCoreArea(Die& die, Instance& inst); @@ -327,11 +325,11 @@ Pin::Pin(odb::dbITerm* iTerm) : Pin() updateCoordi(iTerm); } -Pin::Pin(odb::dbBTerm* bTerm) : Pin() +Pin::Pin(odb::dbBTerm* bTerm, utl::Logger* logger) : Pin() { setBTerm(); term_ = (void*) bTerm; - updateCoordi(bTerm); + updateCoordi(bTerm, logger); } std::string Pin::name() const @@ -503,7 +501,7 @@ void Pin::updateCoordi(odb::dbITerm* iTerm) // // for BTerm, offset* will hold bbox info. // -void Pin::updateCoordi(odb::dbBTerm* bTerm) +void Pin::updateCoordi(odb::dbBTerm* bTerm, utl::Logger* logger) { int lx = INT_MAX; int ly = INT_MAX; @@ -519,11 +517,12 @@ void Pin::updateCoordi(odb::dbBTerm* bTerm) } if (lx == INT_MAX || ly == INT_MAX || ux == INT_MIN || uy == INT_MIN) { - std::string msg = std::string(bTerm->getConstName()) - + " toplevel port is not placed!\n"; - msg += " Replace will regard " + std::string(bTerm->getConstName()) - + " is placed in (0, 0)"; - slog_->warn(GPL, 1, msg); + logger->warn(GPL, + 1, + "{} toplevel port is not placed!\n" + "Replace will regard {} is placed in (0, 0)", + bTerm->getConstName(), + bTerm->getConstName()); } // Just center @@ -773,8 +772,6 @@ PlacerBaseCommon::~PlacerBaseCommon() void PlacerBaseCommon::init() { - slog_ = log_; - log_->info(GPL, 2, "DBU: {}", db_->getTech()->getDbUnitsPerMicron()); dbBlock* block = db_->getChip()->getBlock(); @@ -890,7 +887,7 @@ void PlacerBaseCommon::init() if (pbVars_.skipIoMode == false) { for (dbBTerm* bTerm : net->getBTerms()) { - Pin myPin(bTerm); + Pin myPin(bTerm, log_); myPin.setNet(myNetPtr); pinStor_.push_back(myPin); } @@ -1029,8 +1026,6 @@ PlacerBase::~PlacerBase() void PlacerBase::init() { - slog_ = log_; - die_ = pbCommon_->die(); // siteSize update @@ -1161,7 +1156,7 @@ void PlacerBase::initInstsForUnusableSites() = "Blockages associated with moveable instances " " are unsupported and ignored [inst: " + inst->getName() + "]\n"; - slog_->error(GPL, 3, msg); + log_->error(GPL, 3, msg); continue; } dbBox* bbox = blockage->getBBox(); diff --git a/src/gpl/src/placerBase.h b/src/gpl/src/placerBase.h index e5462b88be7..5b25b9096ba 100644 --- a/src/gpl/src/placerBase.h +++ b/src/gpl/src/placerBase.h @@ -145,7 +145,7 @@ class Pin public: Pin(); Pin(odb::dbITerm* iTerm); - Pin(odb::dbBTerm* bTerm); + Pin(odb::dbBTerm* bTerm, utl::Logger* logger); ~Pin(); odb::dbITerm* dbITerm() const; @@ -211,7 +211,7 @@ class Pin unsigned char maxPinYField_ : 1; void updateCoordi(odb::dbITerm* iTerm); - void updateCoordi(odb::dbBTerm* bTerm); + void updateCoordi(odb::dbBTerm* bTerm, utl::Logger* logger); }; class Net From 55a9b36f13b841a417917207b42ac336bec37be4 Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Thu, 18 Jul 2024 06:36:02 +0000 Subject: [PATCH 35/56] stt: make null_pt constexpr Signed-off-by: Matt Liberty --- src/rsz/src/SteinerTree.cc | 2 -- src/rsz/src/SteinerTree.hh | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/rsz/src/SteinerTree.cc b/src/rsz/src/SteinerTree.cc index 880a16f6c83..51002113507 100644 --- a/src/rsz/src/SteinerTree.cc +++ b/src/rsz/src/SteinerTree.cc @@ -61,8 +61,6 @@ static void connectedPins(const Net* net, // Return value. Vector& pins); -SteinerPt SteinerTree::null_pt = -1; - // Returns nullptr if net has less than 2 pins or any pin is not placed. SteinerTree* Resizer::makeSteinerTree(const Pin* drvr_pin) { diff --git a/src/rsz/src/SteinerTree.hh b/src/rsz/src/SteinerTree.hh index 2d5a31f242b..2a4ae9c7676 100644 --- a/src/rsz/src/SteinerTree.hh +++ b/src/rsz/src/SteinerTree.hh @@ -143,7 +143,7 @@ class SteinerTree stt::Tree& fluteTree() { return tree_; } void createSteinerPtToPinMap(); - static SteinerPt null_pt; + static constexpr SteinerPt null_pt = -1; protected: void locAddPin(const Point& loc, const Pin* pin); From 8db034db2173852886c4e463c30c24ac48d97a1b Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Thu, 18 Jul 2024 13:09:50 +0200 Subject: [PATCH 36/56] gui: Add option to configure scroll step of arrows key. Signed-off-by: Christian Costa --- src/gui/src/layoutTabs.cpp | 5 ++++- src/gui/src/layoutTabs.h | 2 ++ src/gui/src/layoutViewer.cpp | 26 ++++++++++++++++++++++++++ src/gui/src/layoutViewer.h | 3 +++ src/gui/src/mainWindow.cpp | 33 +++++++++++++++++++++++++++++++++ src/gui/src/mainWindow.h | 4 ++++ 6 files changed, 72 insertions(+), 1 deletion(-) diff --git a/src/gui/src/layoutTabs.cpp b/src/gui/src/layoutTabs.cpp index 2bd0d66cedf..cb54afca864 100644 --- a/src/gui/src/layoutTabs.cpp +++ b/src/gui/src/layoutTabs.cpp @@ -49,6 +49,7 @@ LayoutTabs::LayoutTabs(Options* options, std::function usingDBU, std::function showRulerAsEuclidian, std::function default_mouse_wheel_zoom, + std::function arrow_keys_scroll_step, QWidget* parent) : QTabWidget(parent), options_(options), @@ -60,6 +61,7 @@ LayoutTabs::LayoutTabs(Options* options, usingDBU_(std::move(usingDBU)), showRulerAsEuclidian_(std::move(showRulerAsEuclidian)), default_mouse_wheel_zoom_(std::move(default_mouse_wheel_zoom)), + arrow_keys_scroll_step_(std::move(arrow_keys_scroll_step)), logger_(nullptr) { setTabBarAutoHide(true); @@ -94,7 +96,8 @@ void LayoutTabs::blockLoaded(odb::dbBlock* block) if (command_executing_) { viewer->commandAboutToExecute(); } - auto scroll = new LayoutScroll(viewer, default_mouse_wheel_zoom_, this); + auto scroll = new LayoutScroll( + viewer, default_mouse_wheel_zoom_, arrow_keys_scroll_step_, this); viewer->blockLoaded(block); auto tech = block->getTech(); diff --git a/src/gui/src/layoutTabs.h b/src/gui/src/layoutTabs.h index 02ec93cd9b0..3b82117bc60 100644 --- a/src/gui/src/layoutTabs.h +++ b/src/gui/src/layoutTabs.h @@ -61,6 +61,7 @@ class LayoutTabs : public QTabWidget std::function usingDBU, std::function showRulerAsEuclidian, std::function default_mouse_wheel_zoom, + std::function arrow_keys_scroll_step, QWidget* parent = nullptr); LayoutViewer* getCurrent() const { return current_viewer_; } @@ -142,6 +143,7 @@ class LayoutTabs : public QTabWidget std::function usingDBU_; std::function showRulerAsEuclidian_; std::function default_mouse_wheel_zoom_; + std::function arrow_keys_scroll_step_; utl::Logger* logger_; bool command_executing_ = false; diff --git a/src/gui/src/layoutViewer.cpp b/src/gui/src/layoutViewer.cpp index 30ca0271ae6..efae85b83cd 100644 --- a/src/gui/src/layoutViewer.cpp +++ b/src/gui/src/layoutViewer.cpp @@ -2429,9 +2429,11 @@ void LayoutViewer::executionPaused() LayoutScroll::LayoutScroll( LayoutViewer* viewer, const std::function& default_mouse_wheel_zoom, + const std::function& arrow_keys_scroll_step, QWidget* parent) : QScrollArea(parent), default_mouse_wheel_zoom_(std::move(default_mouse_wheel_zoom)), + arrow_keys_scroll_step_(std::move(arrow_keys_scroll_step)), viewer_(viewer), scrolling_with_cursor_(false) { @@ -2509,6 +2511,30 @@ bool LayoutScroll::eventFilter(QObject* object, QEvent* event) return QScrollArea::eventFilter(object, event); } +void LayoutScroll::keyPressEvent(QKeyEvent* event) +{ + switch (event->key()) { + case Qt::Key_Up: + verticalScrollBar()->setValue(verticalScrollBar()->value() + - arrow_keys_scroll_step_()); + break; + case Qt::Key_Down: + verticalScrollBar()->setValue(verticalScrollBar()->value() + + arrow_keys_scroll_step_()); + break; + case Qt::Key_Left: + horizontalScrollBar()->setValue(horizontalScrollBar()->value() + - arrow_keys_scroll_step_()); + break; + case Qt::Key_Right: + horizontalScrollBar()->setValue(horizontalScrollBar()->value() + + arrow_keys_scroll_step_()); + break; + default: + QScrollArea::keyPressEvent(event); + } +} + bool LayoutScroll::isScrollingWithCursor() { return scrolling_with_cursor_; diff --git a/src/gui/src/layoutViewer.h b/src/gui/src/layoutViewer.h index 7f9a89ad709..35062533caf 100644 --- a/src/gui/src/layoutViewer.h +++ b/src/gui/src/layoutViewer.h @@ -465,6 +465,7 @@ class LayoutScroll : public QScrollArea public: LayoutScroll(LayoutViewer* viewer, const std::function& default_mouse_wheel_zoom, + const std::function& arrow_keys_scroll_step, QWidget* parent = nullptr); bool isScrollingWithCursor(); signals: @@ -480,9 +481,11 @@ class LayoutScroll : public QScrollArea void scrollContentsBy(int dx, int dy) override; void wheelEvent(QWheelEvent* event) override; bool eventFilter(QObject* object, QEvent* event) override; + void keyPressEvent(QKeyEvent* event) override; private: std::function default_mouse_wheel_zoom_; + std::function arrow_keys_scroll_step_; LayoutViewer* viewer_; bool scrolling_with_cursor_; diff --git a/src/gui/src/mainWindow.cpp b/src/gui/src/mainWindow.cpp index d6c1665d092..9b9e5b65a9b 100644 --- a/src/gui/src/mainWindow.cpp +++ b/src/gui/src/mainWindow.cpp @@ -96,6 +96,7 @@ MainWindow::MainWindow(QWidget* parent) [this]() -> bool { return show_dbu_->isChecked(); }, [this]() -> bool { return default_ruler_style_->isChecked(); }, [this]() -> bool { return default_mouse_wheel_zoom_->isChecked(); }, + [this]() -> int { return arrow_keys_scroll_step_; }, this)), selection_browser_( new SelectHighlightWindow(selected_, highlighted_, this)), @@ -394,6 +395,9 @@ MainWindow::MainWindow(QWidget* parent) default_mouse_wheel_zoom_->setChecked( settings.value("mouse_wheel_zoom", default_mouse_wheel_zoom_->isChecked()) .toBool()); + arrow_keys_scroll_step_ + = settings.value("arrow_keys_scroll_step", arrow_keys_scroll_step_) + .toInt(); script_->readSettings(&settings); controls_->readSettings(&settings); timing_widget_->readSettings(&settings); @@ -593,6 +597,9 @@ void MainWindow::createActions() default_mouse_wheel_zoom_->setCheckable(true); default_mouse_wheel_zoom_->setChecked(false); + arrow_keys_scroll_step_dialog_ = new QAction("Arrow keys scroll step", this); + arrow_keys_scroll_step_ = 20; + font_ = new QAction("Application font", this); global_connect_ = new QAction("Global connect", this); @@ -635,6 +642,11 @@ void MainWindow::createActions() connect(show_dbu_, &QAction::toggled, this, &MainWindow::setUseDBU); connect(show_dbu_, &QAction::toggled, this, &MainWindow::setClearLocation); + connect(arrow_keys_scroll_step_dialog_, + &QAction::triggered, + this, + &MainWindow::showArrowKeysScrollStep); + connect(font_, &QAction::triggered, this, &MainWindow::showApplicationFont); connect(global_connect_, @@ -666,6 +678,25 @@ void MainWindow::showApplicationFont() } } +void MainWindow::showArrowKeysScrollStep() +{ + bool okay = false; + int arrow_keys_scroll_step + = QInputDialog::getInt(this, + tr("Configure arrow keys"), + tr("Arrow keys scrool step value"), + arrow_keys_scroll_step_, + 10, + 1000, + 1, + &okay); + + if (okay) { + arrow_keys_scroll_step_ = arrow_keys_scroll_step; + update(); + } +} + void MainWindow::createMenus() { file_menu_ = menuBar()->addMenu("&File"); @@ -706,6 +737,7 @@ void MainWindow::createMenus() option_menu->addAction(show_dbu_); option_menu->addAction(default_ruler_style_); option_menu->addAction(default_mouse_wheel_zoom_); + option_menu->addAction(arrow_keys_scroll_step_dialog_); option_menu->addAction(font_); menuBar()->addAction(help_); @@ -1361,6 +1393,7 @@ void MainWindow::saveSettings() settings.setValue("use_dbu", show_dbu_->isChecked()); settings.setValue("ruler_style", default_ruler_style_->isChecked()); settings.setValue("mouse_wheel_zoom", default_mouse_wheel_zoom_->isChecked()); + settings.setValue("arrow_keys_scroll_step", arrow_keys_scroll_step_); script_->writeSettings(&settings); controls_->writeSettings(&settings); timing_widget_->writeSettings(&settings); diff --git a/src/gui/src/mainWindow.h b/src/gui/src/mainWindow.h index 1778b261ff2..e5c67e05007 100644 --- a/src/gui/src/mainWindow.h +++ b/src/gui/src/mainWindow.h @@ -257,6 +257,7 @@ class MainWindow : public QMainWindow, public ord::OpenRoadObserver void setUseDBU(bool use_dbu); void setClearLocation(); void showApplicationFont(); + void showArrowKeysScrollStep(); void showGlobalConnect(); void openDesign(); #ifdef ENABLE_CHARTS @@ -293,6 +294,8 @@ class MainWindow : public QMainWindow, public ord::OpenRoadObserver HighlightSet highlighted_; Rulers rulers_; + int arrow_keys_scroll_step_; + // All but viewer_ are owned by this widget. Qt will // handle destroying the children. DisplayControls* controls_; @@ -332,6 +335,7 @@ class MainWindow : public QMainWindow, public ord::OpenRoadObserver QAction* show_dbu_; QAction* default_ruler_style_; QAction* default_mouse_wheel_zoom_; + QAction* arrow_keys_scroll_step_dialog_; QAction* font_; QAction* global_connect_; From afce19bacb0ce40f6279ad886f7321f72c993848 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 08:11:36 -0400 Subject: [PATCH 37/56] pdn: add capability to reset repair channels on build Signed-off-by: Peter Gadfort --- src/pdn/src/grid.cpp | 28 ++++++++++++++++++++++++++++ src/pdn/src/grid_component.h | 2 ++ src/pdn/src/straps.h | 2 ++ 3 files changed, 32 insertions(+) diff --git a/src/pdn/src/grid.cpp b/src/pdn/src/grid.cpp index e674ba667ab..27ab6b1ca88 100644 --- a/src/pdn/src/grid.cpp +++ b/src/pdn/src/grid.cpp @@ -568,8 +568,17 @@ void Grid::getIntersections(std::vector& shape_intersections, void Grid::resetShapes() { vias_.clear(); + std::set remove; for (auto* component : getGridComponents()) { component->clearShapes(); + + if (component->isAutoInserted()) { + remove.insert(component); + } + } + + for (auto* component : remove) { + removeGridComponent(component); } for (const auto& connect : connect_) { @@ -851,6 +860,25 @@ std::vector Grid::getGridComponents() const return components; } +void Grid::removeGridComponent(GridComponent* component) +{ + for (auto itr = rings_.begin(); itr != rings_.end();) { + if (itr->get() == component) { + itr = rings_.erase(itr); + } else { + itr++; + } + } + + for (auto itr = straps_.begin(); itr != straps_.end();) { + if (itr->get() == component) { + itr = straps_.erase(itr); + } else { + itr++; + } + } +} + void Grid::writeToDb(const std::map& net_map, bool do_pins, const Shape::ObstructionTreeMap& obstructions) const diff --git a/src/pdn/src/grid_component.h b/src/pdn/src/grid_component.h index c48636db60d..16e1b40ba02 100644 --- a/src/pdn/src/grid_component.h +++ b/src/pdn/src/grid_component.h @@ -129,6 +129,8 @@ class GridComponent int getNetCount() const; void setNets(const std::vector& nets); + virtual bool isAutoInserted() const { return false ; } + protected: void checkLayerWidth(odb::dbTechLayer* layer, int width, diff --git a/src/pdn/src/straps.h b/src/pdn/src/straps.h index f5726abedd5..452b1da9ed7 100644 --- a/src/pdn/src/straps.h +++ b/src/pdn/src/straps.h @@ -256,6 +256,8 @@ class RepairChannelStraps : public Straps const Shape::ObstructionTreeMap& obstructions); bool isEmpty() const; + bool isAutoInserted() const override { return true; } + void addNets(const std::set& nets) { nets_.insert(nets.begin(), nets.end()); From da557592f457270e6f9312ff039e66a67ee4b038 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 08:41:06 -0400 Subject: [PATCH 38/56] add pause in repair channels when debug renderer is active Signed-off-by: Peter Gadfort --- src/pdn/include/pdn/PdnGen.hh | 2 ++ src/pdn/src/domain.h | 1 + src/pdn/src/grid.cpp | 6 +++++- src/pdn/src/grid.h | 1 + src/pdn/src/renderer.cpp | 5 +++++ src/pdn/src/renderer.h | 2 ++ src/pdn/src/straps.cpp | 11 +++++++++-- src/pdn/src/straps.h | 3 ++- 8 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/pdn/include/pdn/PdnGen.hh b/src/pdn/include/pdn/PdnGen.hh index caf0e13d846..a3a2f541090 100644 --- a/src/pdn/include/pdn/PdnGen.hh +++ b/src/pdn/include/pdn/PdnGen.hh @@ -212,6 +212,8 @@ class PdnGen std::vector metalspaces, const std::vector& insts); + PDNRenderer* getDebugRenderer() const { return debug_renderer_.get(); } + private: void trimShapes(); void updateVias(); diff --git a/src/pdn/src/domain.h b/src/pdn/src/domain.h index 1ff5ef653e4..a1567983698 100644 --- a/src/pdn/src/domain.h +++ b/src/pdn/src/domain.h @@ -77,6 +77,7 @@ class VoltageDomain odb::dbBlock* getBlock() const { return block_; } utl::Logger* getLogger() const { return logger_; } + PdnGen* getPDNGen() const { return pdngen_; } odb::dbNet* getPower() const; odb::dbNet* getGround() const { return ground_; } diff --git a/src/pdn/src/grid.cpp b/src/pdn/src/grid.cpp index 27ab6b1ca88..c9ead3a040d 100644 --- a/src/pdn/src/grid.cpp +++ b/src/pdn/src/grid.cpp @@ -180,7 +180,11 @@ void Grid::makeShapes(const Shape::ShapeTreeMap& global_shapes, // find and repair disconnected channels RepairChannelStraps::repairGridChannels( - this, all_shapes, local_obstructions, allow_repair_channels_); + this, + all_shapes, + local_obstructions, + allow_repair_channels_, + domain_->getPDNGen()->getDebugRenderer()); } void Grid::makeRoutingObstructions(odb::dbBlock* block) const diff --git a/src/pdn/src/grid.h b/src/pdn/src/grid.h index d72268e60e9..c75be09748b 100644 --- a/src/pdn/src/grid.h +++ b/src/pdn/src/grid.h @@ -227,6 +227,7 @@ class Grid Via::ViaTree vias_; std::vector getGridComponents() const; + void removeGridComponent(GridComponent* component); bool repairVias(const Shape::ShapeTreeMap& global_shapes, Shape::ObstructionTreeMap& obstructions); }; diff --git a/src/pdn/src/renderer.cpp b/src/pdn/src/renderer.cpp index d70d0d6c4db..3a4bd0fe288 100644 --- a/src/pdn/src/renderer.cpp +++ b/src/pdn/src/renderer.cpp @@ -306,4 +306,9 @@ void PDNRenderer::drawObjects(gui::Painter& painter) { } +void PDNRenderer::pause() +{ + gui::Gui::get()->pause(); +} + } // namespace pdn diff --git a/src/pdn/src/renderer.h b/src/pdn/src/renderer.h index 15a99dfc9e4..1e3faf5fd46 100644 --- a/src/pdn/src/renderer.h +++ b/src/pdn/src/renderer.h @@ -59,6 +59,8 @@ class PDNRenderer : public gui::Renderer const char* getDisplayControlGroupName() override { return "Power Grid"; } + void pause(); + private: PdnGen* pdn_; Shape::ShapeTreeMap shapes_; diff --git a/src/pdn/src/straps.cpp b/src/pdn/src/straps.cpp index 0f75ceb91ee..6a119f49898 100644 --- a/src/pdn/src/straps.cpp +++ b/src/pdn/src/straps.cpp @@ -39,6 +39,7 @@ #include "connect.h" #include "domain.h" #include "grid.h" +#include "renderer.h" #include "odb/db.h" #include "odb/dbTransform.h" #include "techlayer.h" @@ -2165,7 +2166,8 @@ void RepairChannelStraps::repairGridChannels( Grid* grid, const Shape::ShapeTreeMap& global_shapes, Shape::ObstructionTreeMap& obstructions, - bool allow) + bool allow, + PDNRenderer* renderer) { // create copy of shapes so they can be used to determine repair locations Shape::ShapeTreeMap local_shapes = global_shapes; @@ -2180,6 +2182,11 @@ void RepairChannelStraps::repairGridChannels( "Channels to repair {}.", channels.size()); + if (!channels.empty() && renderer != nullptr) { + renderer->update(); + renderer->pause(); + } + // check for recurring channels for (const auto& channel : channels) { for (const auto& strap : grid->getStraps()) { @@ -2282,7 +2289,7 @@ void RepairChannelStraps::repairGridChannels( if (channels.size() != areas_repaired.size() && !areas_repaired.empty()) { // channels were skipped so, try again - repairGridChannels(grid, global_shapes, obstructions, allow); + repairGridChannels(grid, global_shapes, obstructions, allow, renderer); } else { const auto remaining_channels = findRepairChannels(grid); if (!remaining_channels.empty()) { diff --git a/src/pdn/src/straps.h b/src/pdn/src/straps.h index 452b1da9ed7..ca9d8889819 100644 --- a/src/pdn/src/straps.h +++ b/src/pdn/src/straps.h @@ -269,7 +269,8 @@ class RepairChannelStraps : public Straps static void repairGridChannels(Grid* grid, const Shape::ShapeTreeMap& global_shapes, Shape::ObstructionTreeMap& obstructions, - bool allow); + bool allow, + PDNRenderer* renderer); struct RepairChannelArea { From caa5ddec714eb5dfe966f1dd6d03e0b29c8eef0c Mon Sep 17 00:00:00 2001 From: Matt Liberty Date: Thu, 18 Jul 2024 13:12:43 +0000 Subject: [PATCH 39/56] gpl: make message match pre-refactor format Signed-off-by: Matt Liberty --- src/gpl/src/placerBase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gpl/src/placerBase.cpp b/src/gpl/src/placerBase.cpp index 5e06f6adf94..9b550154350 100644 --- a/src/gpl/src/placerBase.cpp +++ b/src/gpl/src/placerBase.cpp @@ -520,7 +520,7 @@ void Pin::updateCoordi(odb::dbBTerm* bTerm, utl::Logger* logger) logger->warn(GPL, 1, "{} toplevel port is not placed!\n" - "Replace will regard {} is placed in (0, 0)", + " Replace will regard {} is placed in (0, 0)", bTerm->getConstName(), bTerm->getConstName()); } From 17e0edfc71727fe9933af2b0ddbf9a7387fbb776 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 09:08:42 -0400 Subject: [PATCH 40/56] gui: add save DB action Signed-off-by: Peter Gadfort --- src/gui/src/mainWindow.cpp | 22 ++++++++++++++++++++++ src/gui/src/mainWindow.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/src/gui/src/mainWindow.cpp b/src/gui/src/mainWindow.cpp index 7fcd8602ae2..a8d765aaa55 100644 --- a/src/gui/src/mainWindow.cpp +++ b/src/gui/src/mainWindow.cpp @@ -432,6 +432,8 @@ void MainWindow::setBlock(odb::dbBlock* block) const std::string title = fmt::format("{} - {}", window_title_, block->getName()); setWindowTitle(QString::fromStdString(title)); + + save_->setEnabled(true); } for (auto* heat_map : Gui::get()->getHeatMaps()) { heat_map->setBlock(block); @@ -548,6 +550,8 @@ void MainWindow::createActions() exit_ = new QAction("Exit", this); open_ = new QAction("Open DB", this); + save_ = new QAction("Save DB", this); + save_->setEnabled(false); fit_ = new QAction("Fit", this); fit_->setShortcut(QString("F")); @@ -590,6 +594,7 @@ void MainWindow::createActions() global_connect_->setShortcut(QString("Ctrl+G")); connect(open_, &QAction::triggered, this, &MainWindow::openDesign); + connect(save_, &QAction::triggered, this, &MainWindow::saveDesign); connect( this, &MainWindow::blockLoaded, [this]() { open_->setEnabled(false); }); connect(hide_, &QAction::triggered, this, &MainWindow::hide); @@ -661,6 +666,7 @@ void MainWindow::createMenus() { file_menu_ = menuBar()->addMenu("&File"); file_menu_->addAction(open_); + file_menu_->addAction(save_); file_menu_->addAction(hide_); file_menu_->addAction(exit_); @@ -1614,6 +1620,22 @@ void MainWindow::openDesign() } } +void MainWindow::saveDesign() +{ + const QString filefilter = "OpenDB (*.odb *.ODB)"; + const QString file = QFileDialog::getSaveFileName( + this, "Save Design", QString(), filefilter); + + if (file.isEmpty()) { + return; + } + + try { + ord::OpenRoad::openRoad()->writeDb(file.toStdString().c_str()); + } catch (const std::exception&) { + } +} + #ifdef ENABLE_CHARTS void MainWindow::reportSlackHistogramPaths( const std::set& report_pins) diff --git a/src/gui/src/mainWindow.h b/src/gui/src/mainWindow.h index ed716523a3b..60fd8e7fce2 100644 --- a/src/gui/src/mainWindow.h +++ b/src/gui/src/mainWindow.h @@ -259,6 +259,7 @@ class MainWindow : public QMainWindow, public ord::OpenRoadObserver void showApplicationFont(); void showGlobalConnect(); void openDesign(); + void saveDesign(); #ifdef ENABLE_CHARTS void reportSlackHistogramPaths(const std::set& report_pins); #endif @@ -317,6 +318,7 @@ class MainWindow : public QMainWindow, public ord::OpenRoadObserver QToolBar* view_tool_bar_; QAction* open_; + QAction* save_; QAction* exit_; QAction* hide_option_; QAction* hide_; From e73124b6768deb1f60e9716eeda526cd2165c304 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 10:14:41 -0400 Subject: [PATCH 41/56] pdn: seperate total area of channel from actual repairable size to ensure proper sizing of repair Signed-off-by: Peter Gadfort --- src/pdn/src/renderer.cpp | 5 +++ src/pdn/src/renderer.h | 2 ++ src/pdn/src/straps.cpp | 69 ++++++++++++++++++++++++++++++++-------- src/pdn/src/straps.h | 3 ++ 4 files changed, 66 insertions(+), 13 deletions(-) diff --git a/src/pdn/src/renderer.cpp b/src/pdn/src/renderer.cpp index 3a4bd0fe288..59e5888d807 100644 --- a/src/pdn/src/renderer.cpp +++ b/src/pdn/src/renderer.cpp @@ -51,6 +51,8 @@ const gui::Painter::Color PDNRenderer::obstruction_color_ = gui::Painter::Color(gui::Painter::gray, 100); const gui::Painter::Color PDNRenderer::repair_color_ = gui::Painter::Color(gui::Painter::light_gray, 100); +const gui::Painter::Color PDNRenderer::repair_outline_color_ + = gui::Painter::Color(gui::Painter::yellow, 100); PDNRenderer::PDNRenderer(PdnGen* pdn) : pdn_(pdn) { @@ -109,6 +111,7 @@ void PDNRenderer::update() channel.source = repair.connect_to; channel.target = repair.target->getLayer(); channel.rect = repair.area; + channel.available_rect = repair.available_area; std::string nets; for (auto* net : repair.nets) { if (!nets.empty()) { @@ -287,6 +290,8 @@ void PDNRenderer::drawLayer(odb::dbTechLayer* layer, gui::Painter& painter) if (layer == repair.source || layer == repair.target) { painter.setPenAndBrush(repair_color_, true); painter.drawRect(repair.rect); + painter.setPenAndBrush(repair_outline_color_, true, gui::Painter::NONE); + painter.drawRect(repair.available_rect); const odb::Rect name_box = painter.stringBoundaries( 0, 0, gui::Painter::Anchor::BOTTOM_LEFT, repair.text); diff --git a/src/pdn/src/renderer.h b/src/pdn/src/renderer.h index 1e3faf5fd46..98543f8d9bd 100644 --- a/src/pdn/src/renderer.h +++ b/src/pdn/src/renderer.h @@ -72,6 +72,7 @@ class PDNRenderer : public gui::Renderer odb::dbTechLayer* source; odb::dbTechLayer* target; odb::Rect rect; + odb::Rect available_rect; std::string text; }; std::vector repair_; @@ -82,6 +83,7 @@ class PDNRenderer : public gui::Renderer static const gui::Painter::Color via_color_; static const gui::Painter::Color obstruction_color_; static const gui::Painter::Color repair_color_; + static const gui::Painter::Color repair_outline_color_; static constexpr const char* grid_obs_text_ = "Grid obstructions"; static constexpr const char* initial_obs_text_ = "Initial obstructions"; diff --git a/src/pdn/src/straps.cpp b/src/pdn/src/straps.cpp index 6a119f49898..6c265e378e2 100644 --- a/src/pdn/src/straps.cpp +++ b/src/pdn/src/straps.cpp @@ -39,9 +39,9 @@ #include "connect.h" #include "domain.h" #include "grid.h" -#include "renderer.h" #include "odb/db.h" #include "odb/dbTransform.h" +#include "renderer.h" #include "techlayer.h" #include "utl/Logger.h" @@ -1533,6 +1533,7 @@ RepairChannelStraps::RepairChannelStraps( const Shape::ObstructionTreeMap& other_shapes, const std::set& nets, const odb::Rect& area, + const odb::Rect& available_area, const odb::Rect& obs_check_area) : Straps(grid, target->getLayer(), @@ -1543,6 +1544,7 @@ RepairChannelStraps::RepairChannelStraps( nets_(nets), connect_to_(connect_to), area_(area), + available_area_(available_area), obs_check_area_(obs_check_area) { // use snap to grid @@ -1646,9 +1648,9 @@ void RepairChannelStraps::determineParameters( const int max_length = getMaxLength(); int area_width = 0; if (isHorizontal()) { - area_width = area_.dy(); + area_width = available_area_.dy(); } else { - area_width = area_.dx(); + area_width = available_area_.dx(); } auto check = [&]() -> bool { @@ -1725,9 +1727,9 @@ bool RepairChannelStraps::determineOffset( const int group_width = getStrapGroupWidth(); int offset = -group_width / 2 + extra_offset; if (is_horizontal) { - offset += 0.5 * (area_.yMin() + area_.yMax()); + offset += 0.5 * (available_area_.yMin() + available_area_.yMax()); } else { - offset += 0.5 * (area_.xMin() + area_.xMax()); + offset += 0.5 * (available_area_.xMin() + available_area_.xMax()); } const int half_width = getWidth() / 2; offset += half_width; @@ -1736,11 +1738,15 @@ bool RepairChannelStraps::determineOffset( odb::Rect estimated_straps; const int strap_start = offset - half_width; if (is_horizontal) { - estimated_straps = odb::Rect( - area_.xMin(), strap_start, area_.xMax(), strap_start + group_width); + estimated_straps = odb::Rect(available_area_.xMin(), + strap_start, + available_area_.xMax(), + strap_start + group_width); } else { - estimated_straps = odb::Rect( - strap_start, area_.yMin(), strap_start + group_width, area_.yMax()); + estimated_straps = odb::Rect(strap_start, + available_area_.yMin(), + strap_start + group_width, + available_area_.yMax()); } debugPrint( @@ -1753,11 +1759,11 @@ bool RepairChannelStraps::determineOffset( // check if straps will fit if (is_horizontal) { - if (estimated_straps.dy() > area_.dy()) { + if (estimated_straps.dy() > available_area_.dy()) { return false; } } else { - if (estimated_straps.dx() > area_.dx()) { + if (estimated_straps.dx() > available_area_.dx()) { return false; } } @@ -1814,7 +1820,8 @@ bool RepairChannelStraps::determineOffset( int new_bisect_dist; if (bisect_dist == 0) { // first time, so use offset of width / 4 - const int width = is_horizontal ? area_.dy() : area_.dx(); + const int width + = is_horizontal ? available_area_.dy() : available_area_.dx(); new_bisect_dist = width / 4; } else { // not first time, so search half the distance of the current bisection. @@ -2086,7 +2093,7 @@ RepairChannelStraps::findRepairChannels(Grid* grid, // setup channels with information needed to build std::vector channels; for (const auto& area : channels_rects) { - RepairChannelArea channel{area, odb::Rect(), target, layer, {}}; + RepairChannelArea channel{area, area, odb::Rect(), target, layer, {}}; channel.obs_area.mergeInit(); int followpin_count = 0; @@ -2118,6 +2125,41 @@ RepairChannelStraps::findRepairChannels(Grid* grid, // ensure areas are inside the core channel.area = channel.area.intersect(grid_core); + channel.available_area = channel.area; + + // trim area of channel if it is partially covered by an exisiting shape + for (const auto& [layer, layer_shapes] : grid->getShapes()) { + if (layer != channel.target->getLayer()) { + continue; + } + + for (auto itr = layer_shapes.qbegin(bgi::intersects(channel.area)); + itr != layer_shapes.qend(); + itr++) { + const auto& shape = *itr; + const auto& obs = shape->getObstruction(); + + if (layer->getDirection() == odb::dbTechLayerDir::VERTICAL) { + if (channel.available_area.xMax() > obs.xMin() + && channel.available_area.xMax() <= obs.xMax()) { + channel.available_area.set_xhi(obs.xMin()); + } + if (channel.available_area.xMin() < obs.xMax() + && channel.available_area.xMin() >= obs.xMin()) { + channel.available_area.set_xlo(obs.xMax()); + } + } else { + if (channel.available_area.yMax() > obs.yMin() + && channel.available_area.yMax() <= obs.yMax()) { + channel.available_area.set_yhi(obs.yMin()); + } + if (channel.available_area.yMin() < obs.yMax() + && channel.available_area.yMin() >= obs.yMin()) { + channel.available_area.set_ylo(obs.yMax()); + } + } + } + } channel.obs_area = channel.obs_area.intersect(grid_core); channels.push_back(channel); @@ -2249,6 +2291,7 @@ void RepairChannelStraps::repairGridChannels( obstructions, channel.nets, channel.area, + channel.available_area, channel.obs_area); if (!strap->isRepairValid()) { diff --git a/src/pdn/src/straps.h b/src/pdn/src/straps.h index ca9d8889819..b29598c65e1 100644 --- a/src/pdn/src/straps.h +++ b/src/pdn/src/straps.h @@ -236,6 +236,7 @@ class RepairChannelStraps : public Straps const Shape::ObstructionTreeMap& other_shapes, const std::set& nets, const odb::Rect& area, + const odb::Rect& available_area, const odb::Rect& obs_check_area); Type type() const override { return GridComponent::RepairChannel; } @@ -275,6 +276,7 @@ class RepairChannelStraps : public Straps struct RepairChannelArea { odb::Rect area; + odb::Rect available_area; odb::Rect obs_area; Straps* target; odb::dbTechLayer* connect_to; @@ -287,6 +289,7 @@ class RepairChannelStraps : public Straps std::set nets_; odb::dbTechLayer* connect_to_; odb::Rect area_; + odb::Rect available_area_; odb::Rect obs_check_area_; bool invalid_ = false; From fd55c3ef8b12eeed16dcdb8d930afe3fc0ef8f94 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 10:22:38 -0400 Subject: [PATCH 42/56] pdn: fix clang-format Signed-off-by: Peter Gadfort --- src/pdn/src/grid_component.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pdn/src/grid_component.h b/src/pdn/src/grid_component.h index 16e1b40ba02..d1384f17183 100644 --- a/src/pdn/src/grid_component.h +++ b/src/pdn/src/grid_component.h @@ -129,7 +129,7 @@ class GridComponent int getNetCount() const; void setNets(const std::vector& nets); - virtual bool isAutoInserted() const { return false ; } + virtual bool isAutoInserted() const { return false; } protected: void checkLayerWidth(odb::dbTechLayer* layer, From 1f867634b831574ebf484a41a4230e6fcc15c02d Mon Sep 17 00:00:00 2001 From: Vitor Bandeira Date: Thu, 18 Jul 2024 14:44:30 +0000 Subject: [PATCH 43/56] ci: fix coverage pipeline Signed-off-by: Vitor Bandeira --- jenkins/Jenkinsfile.coverage | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/jenkins/Jenkinsfile.coverage b/jenkins/Jenkinsfile.coverage index 1a3b7a8dae5..392df300fbc 100644 --- a/jenkins/Jenkinsfile.coverage +++ b/jenkins/Jenkinsfile.coverage @@ -1,6 +1,6 @@ @Library('utils@or-v2.0.1') _ -timeout(time: 1, unit: 'HOURS') { +timeout(time: 2, unit: 'HOURS') { node { stage('Checkout'){ @@ -40,10 +40,10 @@ timeout(time: 1, unit: 'HOURS') { } } } - } - stage('Send Email Report') { - sendEmail(); - } + stage('Send Email Report') { + sendEmail(); + } + } } From 0baa554fb63f11813bff4d0ff11af1810110d0f3 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 13:29:44 -0400 Subject: [PATCH 44/56] pdn: check if estimated straps will be inside available area Signed-off-by: Peter Gadfort --- src/pdn/src/straps.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/pdn/src/straps.cpp b/src/pdn/src/straps.cpp index 6c265e378e2..29de928e6d9 100644 --- a/src/pdn/src/straps.cpp +++ b/src/pdn/src/straps.cpp @@ -1762,10 +1762,18 @@ bool RepairChannelStraps::determineOffset( if (estimated_straps.dy() > available_area_.dy()) { return false; } + if (estimated_straps.xMin() < available_area_.xMin() + || estimated_straps.xMax() > available_area_.xMax()) { + return false; + } } else { if (estimated_straps.dx() > available_area_.dx()) { return false; } + if (estimated_straps.yMin() < available_area_.yMin() + || estimated_straps.yMax() > available_area_.yMax()) { + return false; + } } // check if straps will intersect anything on the layers below From f409312d7e8006832688bd246c7b20ac12cd63a0 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 13:32:30 -0400 Subject: [PATCH 45/56] pdn: add unit test for partially blocked repairs Signed-off-by: Peter Gadfort --- .../test/macros_narrow_channel_overlap.defok | 3974 +++++++++++++++++ src/pdn/test/macros_narrow_channel_overlap.ok | 8 + .../test/macros_narrow_channel_overlap.tcl | 32 + src/pdn/test/regression_tests.tcl | 1 + 4 files changed, 4015 insertions(+) create mode 100644 src/pdn/test/macros_narrow_channel_overlap.defok create mode 100644 src/pdn/test/macros_narrow_channel_overlap.ok create mode 100644 src/pdn/test/macros_narrow_channel_overlap.tcl diff --git a/src/pdn/test/macros_narrow_channel_overlap.defok b/src/pdn/test/macros_narrow_channel_overlap.defok new file mode 100644 index 00000000000..ac3bbf111cb --- /dev/null +++ b/src/pdn/test/macros_narrow_channel_overlap.defok @@ -0,0 +1,3974 @@ +VERSION 5.8 ; +DIVIDERCHAR "/" ; +BUSBITCHARS "[]" ; +DESIGN RocketTile ; +UNITS DISTANCE MICRONS 2000 ; +DIEAREA ( 0 0 ) ( 400000 400000 ) ; +ROW ROW_19_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 95200 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_20_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 98000 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_20_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 98000 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_21_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 100800 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_21_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 100800 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_22_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 103600 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_22_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 103600 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_23_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 106400 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_23_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 106400 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_24_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 109200 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_24_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 109200 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_25_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 112000 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_25_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 112000 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_26_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 114800 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_26_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 114800 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_27_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 117600 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_27_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 117600 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_28_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 120400 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_28_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 120400 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_29_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 123200 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_29_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 123200 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_30_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 126000 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_30_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 126000 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_31_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 128800 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_31_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 128800 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_32_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 131600 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_32_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 131600 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_33_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 134400 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_33_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 134400 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_34_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 137200 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_34_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 137200 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_35_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 140000 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_35_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 140000 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_36_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 142800 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_36_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 142800 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_37_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 145600 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_37_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 145600 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_38_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 148400 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_38_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 148400 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_39_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 151200 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_39_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 151200 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_40_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 154000 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_40_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 154000 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_41_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 156800 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_41_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 156800 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_42_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 159600 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_42_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 159600 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_43_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 162400 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_43_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 162400 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_44_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 165200 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_44_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 165200 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_45_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 168000 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_45_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 168000 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_46_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 170800 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_46_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 170800 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_47_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 173600 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_47_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 173600 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_48_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 176400 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_48_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 176400 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_49_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 179200 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_49_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 179200 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_50_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 182000 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_50_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 182000 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_51_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 184800 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_51_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 184800 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_52_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 187600 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_52_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 187600 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_53_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 190400 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_53_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 190400 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_54_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 193200 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_54_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 193200 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_55_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 196000 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_55_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 196000 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_56_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 198800 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_56_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 198800 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_57_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 201600 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_57_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 201600 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_58_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 204400 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_58_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 204400 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_59_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 207200 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_59_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 207200 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_60_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 210000 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_60_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 210000 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_61_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 212800 FS DO 388 BY 1 STEP 380 0 ; +ROW ROW_61_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 212800 FS DO 107 BY 1 STEP 380 0 ; +ROW ROW_62_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 215600 N DO 388 BY 1 STEP 380 0 ; +ROW ROW_62_2 FreePDK45_38x28_10R_NP_162NW_34O 125020 215600 N DO 107 BY 1 STEP 380 0 ; +ROW ROW_62_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 215600 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_112 FreePDK45_38x28_10R_NP_162NW_34O 40280 355600 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_111 FreePDK45_38x28_10R_NP_162NW_34O 40280 352800 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_110 FreePDK45_38x28_10R_NP_162NW_34O 40280 350000 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_109 FreePDK45_38x28_10R_NP_162NW_34O 40280 347200 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_108 FreePDK45_38x28_10R_NP_162NW_34O 40280 344400 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_107 FreePDK45_38x28_10R_NP_162NW_34O 40280 341600 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_106 FreePDK45_38x28_10R_NP_162NW_34O 40280 338800 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_105 FreePDK45_38x28_10R_NP_162NW_34O 40280 336000 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_104 FreePDK45_38x28_10R_NP_162NW_34O 40280 333200 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_103 FreePDK45_38x28_10R_NP_162NW_34O 40280 330400 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_102 FreePDK45_38x28_10R_NP_162NW_34O 40280 327600 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_101 FreePDK45_38x28_10R_NP_162NW_34O 40280 324800 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_100 FreePDK45_38x28_10R_NP_162NW_34O 40280 322000 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_99 FreePDK45_38x28_10R_NP_162NW_34O 40280 319200 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_98 FreePDK45_38x28_10R_NP_162NW_34O 40280 316400 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_97 FreePDK45_38x28_10R_NP_162NW_34O 40280 313600 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_96 FreePDK45_38x28_10R_NP_162NW_34O 40280 310800 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_95 FreePDK45_38x28_10R_NP_162NW_34O 40280 308000 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_94 FreePDK45_38x28_10R_NP_162NW_34O 40280 305200 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_93 FreePDK45_38x28_10R_NP_162NW_34O 40280 302400 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_92 FreePDK45_38x28_10R_NP_162NW_34O 40280 299600 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_91 FreePDK45_38x28_10R_NP_162NW_34O 40280 296800 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_90 FreePDK45_38x28_10R_NP_162NW_34O 40280 294000 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_89 FreePDK45_38x28_10R_NP_162NW_34O 40280 291200 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_88 FreePDK45_38x28_10R_NP_162NW_34O 40280 288400 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_87 FreePDK45_38x28_10R_NP_162NW_34O 40280 285600 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_86 FreePDK45_38x28_10R_NP_162NW_34O 40280 282800 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_85 FreePDK45_38x28_10R_NP_162NW_34O 40280 280000 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_84 FreePDK45_38x28_10R_NP_162NW_34O 40280 277200 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_83 FreePDK45_38x28_10R_NP_162NW_34O 40280 274400 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_82 FreePDK45_38x28_10R_NP_162NW_34O 40280 271600 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_81 FreePDK45_38x28_10R_NP_162NW_34O 40280 268800 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_80 FreePDK45_38x28_10R_NP_162NW_34O 40280 266000 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_79 FreePDK45_38x28_10R_NP_162NW_34O 40280 263200 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_78 FreePDK45_38x28_10R_NP_162NW_34O 40280 260400 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_77 FreePDK45_38x28_10R_NP_162NW_34O 40280 257600 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_76 FreePDK45_38x28_10R_NP_162NW_34O 40280 254800 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_75 FreePDK45_38x28_10R_NP_162NW_34O 40280 252000 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_74 FreePDK45_38x28_10R_NP_162NW_34O 40280 249200 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_73 FreePDK45_38x28_10R_NP_162NW_34O 40280 246400 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_72 FreePDK45_38x28_10R_NP_162NW_34O 40280 243600 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_71 FreePDK45_38x28_10R_NP_162NW_34O 40280 240800 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_70 FreePDK45_38x28_10R_NP_162NW_34O 40280 238000 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_69 FreePDK45_38x28_10R_NP_162NW_34O 40280 235200 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_68 FreePDK45_38x28_10R_NP_162NW_34O 40280 232400 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_67 FreePDK45_38x28_10R_NP_162NW_34O 40280 229600 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_66 FreePDK45_38x28_10R_NP_162NW_34O 40280 226800 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_65 FreePDK45_38x28_10R_NP_162NW_34O 40280 224000 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_64 FreePDK45_38x28_10R_NP_162NW_34O 40280 221200 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_63 FreePDK45_38x28_10R_NP_162NW_34O 40280 218400 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_61_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 212800 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_60_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 210000 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_59_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 207200 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_58_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 204400 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_57_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 201600 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_56_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 198800 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_55_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 196000 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_54_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 193200 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_53_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 190400 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_52_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 187600 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_51_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 184800 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_50_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 182000 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_49_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 179200 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_48_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 176400 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_47_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 173600 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_46_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 170800 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_45_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 168000 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_44_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 165200 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_43_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 162400 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_42_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 159600 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_41_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 156800 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_40_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 154000 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_39_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 151200 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_38_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 148400 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_37_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 145600 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_36_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 142800 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_35_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 140000 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_34_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 137200 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_33_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 134400 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_32_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 131600 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_31_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 128800 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_30_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 126000 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_29_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 123200 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_28_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 120400 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_27_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 117600 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_26_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 114800 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_25_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 112000 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_24_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 109200 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_23_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 106400 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_22_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 103600 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_21_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 100800 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_20_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 98000 N DO 100 BY 1 STEP 380 0 ; +ROW ROW_19_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 95200 FS DO 100 BY 1 STEP 380 0 ; +ROW ROW_18 FreePDK45_38x28_10R_NP_162NW_34O 40280 92400 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_17 FreePDK45_38x28_10R_NP_162NW_34O 40280 89600 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_16 FreePDK45_38x28_10R_NP_162NW_34O 40280 86800 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_15 FreePDK45_38x28_10R_NP_162NW_34O 40280 84000 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_14 FreePDK45_38x28_10R_NP_162NW_34O 40280 81200 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_13 FreePDK45_38x28_10R_NP_162NW_34O 40280 78400 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_12 FreePDK45_38x28_10R_NP_162NW_34O 40280 75600 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_11 FreePDK45_38x28_10R_NP_162NW_34O 40280 72800 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_10 FreePDK45_38x28_10R_NP_162NW_34O 40280 70000 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_9 FreePDK45_38x28_10R_NP_162NW_34O 40280 67200 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_8 FreePDK45_38x28_10R_NP_162NW_34O 40280 64400 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_7 FreePDK45_38x28_10R_NP_162NW_34O 40280 61600 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_6 FreePDK45_38x28_10R_NP_162NW_34O 40280 58800 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_5 FreePDK45_38x28_10R_NP_162NW_34O 40280 56000 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_4 FreePDK45_38x28_10R_NP_162NW_34O 40280 53200 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_3 FreePDK45_38x28_10R_NP_162NW_34O 40280 50400 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_2 FreePDK45_38x28_10R_NP_162NW_34O 40280 47600 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_1 FreePDK45_38x28_10R_NP_162NW_34O 40280 44800 FS DO 841 BY 1 STEP 380 0 ; +ROW ROW_0 FreePDK45_38x28_10R_NP_162NW_34O 40280 42000 N DO 841 BY 1 STEP 380 0 ; +ROW ROW_19_3 FreePDK45_38x28_10R_NP_162NW_34O 212420 95200 FS DO 388 BY 1 STEP 380 0 ; +TRACKS X 190 DO 4867 STEP 380 LAYER metal1 ; +TRACKS Y 140 DO 5709 STEP 280 LAYER metal1 ; +TRACKS X 190 DO 4867 STEP 380 LAYER metal2 ; +TRACKS Y 140 DO 5709 STEP 280 LAYER metal2 ; +TRACKS X 190 DO 4867 STEP 380 LAYER metal3 ; +TRACKS Y 140 DO 5709 STEP 280 LAYER metal3 ; +TRACKS X 190 DO 3302 STEP 560 LAYER metal4 ; +TRACKS Y 140 DO 2854 STEP 560 LAYER metal4 ; +TRACKS X 190 DO 3302 STEP 560 LAYER metal5 ; +TRACKS Y 140 DO 2854 STEP 560 LAYER metal5 ; +TRACKS X 190 DO 3302 STEP 560 LAYER metal6 ; +TRACKS Y 140 DO 2854 STEP 560 LAYER metal6 ; +TRACKS X 190 DO 1156 STEP 1600 LAYER metal7 ; +TRACKS Y 140 DO 999 STEP 1600 LAYER metal7 ; +TRACKS X 190 DO 1156 STEP 1600 LAYER metal8 ; +TRACKS Y 140 DO 999 STEP 1600 LAYER metal8 ; +TRACKS X 190 DO 578 STEP 3200 LAYER metal9 ; +TRACKS Y 140 DO 499 STEP 3200 LAYER metal9 ; +TRACKS X 190 DO 578 STEP 3200 LAYER metal10 ; +TRACKS Y 140 DO 499 STEP 3200 LAYER metal10 ; +VIAS 23 ; + - via1_2_5000_340_1_16_300_300 + VIARULE Via1Array-0 + CUTSIZE 140 140 + LAYERS metal1 via1 metal2 + CUTSPACING 160 160 + ENCLOSURE 70 100 70 70 + ROWCOL 1 16 ; + - via2_3_5000_340_1_15_320_320 + VIARULE Via2Array-0 + CUTSIZE 140 140 + LAYERS metal2 via2 metal3 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 15 ; + - via3_4_5000_340_1_15_320_320 + VIARULE Via3Array-0 + CUTSIZE 140 140 + LAYERS metal3 via3 metal4 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 15 ; + - via4_5_5000_340_1_8_600_600 + VIARULE Via4Array-0 + CUTSIZE 280 280 + LAYERS metal4 via4 metal5 + CUTSPACING 320 320 + ENCLOSURE 0 0 0 0 + ROWCOL 1 8 ; + - via5_6_5000_340_1_8_600_600 + VIARULE Via5Array-0 + CUTSIZE 280 280 + LAYERS metal5 via5 metal6 + CUTSPACING 320 320 + ENCLOSURE 0 0 260 0 + ROWCOL 1 8 ; + - via1_2_20000_340_1_66_300_300 + VIARULE Via1Array-0 + CUTSIZE 140 140 + LAYERS metal1 via1 metal2 + CUTSPACING 160 160 + ENCLOSURE 70 100 70 70 + ROWCOL 1 66 ; + - via2_3_20000_340_1_62_320_320 + VIARULE Via2Array-0 + CUTSIZE 140 140 + LAYERS metal2 via2 metal3 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 62 ; + - via3_4_20000_340_1_62_320_320 + VIARULE Via3Array-0 + CUTSIZE 140 140 + LAYERS metal3 via3 metal4 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 62 ; + - via4_5_20000_340_1_33_600_600 + VIARULE Via4Array-0 + CUTSIZE 280 280 + LAYERS metal4 via4 metal5 + CUTSPACING 320 320 + ENCLOSURE 0 0 0 0 + ROWCOL 1 33 ; + - via5_6_20000_340_1_33_600_600 + VIARULE Via5Array-0 + CUTSIZE 280 280 + LAYERS metal5 via5 metal6 + CUTSPACING 320 320 + ENCLOSURE 0 0 260 0 + ROWCOL 1 33 ; + - via1_2_10000_340_1_33_300_300 + VIARULE Via1Array-0 + CUTSIZE 140 140 + LAYERS metal1 via1 metal2 + CUTSPACING 160 160 + ENCLOSURE 70 100 70 70 + ROWCOL 1 33 ; + - via2_3_10000_340_1_31_320_320 + VIARULE Via2Array-0 + CUTSIZE 140 140 + LAYERS metal2 via2 metal3 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 31 ; + - via3_4_10000_340_1_31_320_320 + VIARULE Via3Array-0 + CUTSIZE 140 140 + LAYERS metal3 via3 metal4 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 31 ; + - via4_5_10000_340_1_17_600_600 + VIARULE Via4Array-0 + CUTSIZE 280 280 + LAYERS metal4 via4 metal5 + CUTSPACING 320 320 + ENCLOSURE 0 0 0 0 + ROWCOL 1 17 ; + - via5_6_10000_340_1_17_600_600 + VIARULE Via5Array-0 + CUTSIZE 280 280 + LAYERS metal5 via5 metal6 + CUTSPACING 320 320 + ENCLOSURE 0 0 60 0 + ROWCOL 1 17 ; + - via1_2_3860_340_1_12_300_300 + VIARULE Via1Array-0 + CUTSIZE 140 140 + LAYERS metal1 via1 metal2 + CUTSPACING 160 160 + ENCLOSURE 70 100 70 70 + ROWCOL 1 12 ; + - via2_3_3860_340_1_12_320_320 + VIARULE Via2Array-0 + CUTSIZE 140 140 + LAYERS metal2 via2 metal3 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 12 ; + - via3_4_3860_340_1_12_320_320 + VIARULE Via3Array-0 + CUTSIZE 140 140 + LAYERS metal3 via3 metal4 + CUTSPACING 180 180 + ENCLOSURE 70 70 70 70 + ROWCOL 1 12 ; + - via4_5_3860_340_1_6_600_600 + VIARULE Via4Array-0 + CUTSIZE 280 280 + LAYERS metal4 via4 metal5 + CUTSPACING 320 320 + ENCLOSURE 0 0 0 0 + ROWCOL 1 6 ; + - via5_6_3860_340_1_6_600_600 + VIARULE Via5Array-0 + CUTSIZE 280 280 + LAYERS metal5 via5 metal6 + CUTSPACING 320 320 + ENCLOSURE 0 0 290 0 + ROWCOL 1 6 ; + - via6_7_5000_2800_4_8_600_600 + VIARULE Via6Array-0 + CUTSIZE 280 280 + LAYERS metal6 via6 metal7 + CUTSPACING 320 320 + ENCLOSURE 260 0 260 360 + ROWCOL 4 8 ; + - via6_7_20000_2800_4_33_600_600 + VIARULE Via6Array-0 + CUTSIZE 280 280 + LAYERS metal6 via6 metal7 + CUTSPACING 320 320 + ENCLOSURE 260 0 260 360 + ROWCOL 4 33 ; + - via6_7_10000_2800_4_16_600_600 + VIARULE Via6Array-0 + CUTSIZE 280 280 + LAYERS metal6 via6 metal7 + CUTSPACING 320 320 + ENCLOSURE 360 0 260 360 + ROWCOL 4 16 ; +END VIAS +COMPONENTS 440 ; + - PHY_0 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 42000 ) N ; + - PHY_1 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 42000 ) FN ; + - PHY_10 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 56000 ) FS ; + - PHY_100 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 123200 ) FS ; + - PHY_101 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 123200 ) S ; + - PHY_102 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 123200 ) FS ; + - PHY_103 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 123200 ) S ; + - PHY_104 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 126000 ) N ; + - PHY_105 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 126000 ) FN ; + - PHY_106 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 126000 ) N ; + - PHY_107 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 126000 ) FN ; + - PHY_108 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 126000 ) N ; + - PHY_109 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 126000 ) FN ; + - PHY_11 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 56000 ) S ; + - PHY_110 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 128800 ) FS ; + - PHY_111 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 128800 ) S ; + - PHY_112 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 128800 ) FS ; + - PHY_113 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 128800 ) S ; + - PHY_114 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 128800 ) FS ; + - PHY_115 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 128800 ) S ; + - PHY_116 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 131600 ) N ; + - PHY_117 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 131600 ) FN ; + - PHY_118 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 131600 ) N ; + - PHY_119 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 131600 ) FN ; + - PHY_12 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 58800 ) N ; + - PHY_120 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 131600 ) N ; + - PHY_121 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 131600 ) FN ; + - PHY_122 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 134400 ) FS ; + - PHY_123 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 134400 ) S ; + - PHY_124 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 134400 ) FS ; + - PHY_125 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 134400 ) S ; + - PHY_126 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 134400 ) FS ; + - PHY_127 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 134400 ) S ; + - PHY_128 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 137200 ) N ; + - PHY_129 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 137200 ) FN ; + - PHY_13 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 58800 ) FN ; + - PHY_130 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 137200 ) N ; + - PHY_131 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 137200 ) FN ; + - PHY_132 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 137200 ) N ; + - PHY_133 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 137200 ) FN ; + - PHY_134 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 140000 ) FS ; + - PHY_135 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 140000 ) S ; + - PHY_136 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 140000 ) FS ; + - PHY_137 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 140000 ) S ; + - PHY_138 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 140000 ) FS ; + - PHY_139 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 140000 ) S ; + - PHY_14 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 61600 ) FS ; + - PHY_140 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 142800 ) N ; + - PHY_141 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 142800 ) FN ; + - PHY_142 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 142800 ) N ; + - PHY_143 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 142800 ) FN ; + - PHY_144 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 142800 ) N ; + - PHY_145 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 142800 ) FN ; + - PHY_146 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 145600 ) FS ; + - PHY_147 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 145600 ) S ; + - PHY_148 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 145600 ) FS ; + - PHY_149 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 145600 ) S ; + - PHY_15 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 61600 ) S ; + - PHY_150 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 145600 ) FS ; + - PHY_151 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 145600 ) S ; + - PHY_152 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 148400 ) N ; + - PHY_153 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 148400 ) FN ; + - PHY_154 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 148400 ) N ; + - PHY_155 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 148400 ) FN ; + - PHY_156 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 148400 ) N ; + - PHY_157 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 148400 ) FN ; + - PHY_158 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 151200 ) FS ; + - PHY_159 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 151200 ) S ; + - PHY_16 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 64400 ) N ; + - PHY_160 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 151200 ) FS ; + - PHY_161 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 151200 ) S ; + - PHY_162 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 151200 ) FS ; + - PHY_163 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 151200 ) S ; + - PHY_164 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 154000 ) N ; + - PHY_165 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 154000 ) FN ; + - PHY_166 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 154000 ) N ; + - PHY_167 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 154000 ) FN ; + - PHY_168 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 154000 ) N ; + - PHY_169 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 154000 ) FN ; + - PHY_17 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 64400 ) FN ; + - PHY_170 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 156800 ) FS ; + - PHY_171 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 156800 ) S ; + - PHY_172 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 156800 ) FS ; + - PHY_173 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 156800 ) S ; + - PHY_174 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 156800 ) FS ; + - PHY_175 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 156800 ) S ; + - PHY_176 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 159600 ) N ; + - PHY_177 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 159600 ) FN ; + - PHY_178 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 159600 ) N ; + - PHY_179 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 159600 ) FN ; + - PHY_18 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 67200 ) FS ; + - PHY_180 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 159600 ) N ; + - PHY_181 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 159600 ) FN ; + - PHY_182 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 162400 ) FS ; + - PHY_183 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 162400 ) S ; + - PHY_184 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 162400 ) FS ; + - PHY_185 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 162400 ) S ; + - PHY_186 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 162400 ) FS ; + - PHY_187 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 162400 ) S ; + - PHY_188 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 165200 ) N ; + - PHY_189 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 165200 ) FN ; + - PHY_19 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 67200 ) S ; + - PHY_190 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 165200 ) N ; + - PHY_191 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 165200 ) FN ; + - PHY_192 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 165200 ) N ; + - PHY_193 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 165200 ) FN ; + - PHY_194 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 168000 ) FS ; + - PHY_195 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 168000 ) S ; + - PHY_196 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 168000 ) FS ; + - PHY_197 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 168000 ) S ; + - PHY_198 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 168000 ) FS ; + - PHY_199 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 168000 ) S ; + - PHY_2 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 44800 ) FS ; + - PHY_20 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 70000 ) N ; + - PHY_200 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 170800 ) N ; + - PHY_201 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 170800 ) FN ; + - PHY_202 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 170800 ) N ; + - PHY_203 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 170800 ) FN ; + - PHY_204 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 170800 ) N ; + - PHY_205 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 170800 ) FN ; + - PHY_206 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 173600 ) FS ; + - PHY_207 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 173600 ) S ; + - PHY_208 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 173600 ) FS ; + - PHY_209 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 173600 ) S ; + - PHY_21 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 70000 ) FN ; + - PHY_210 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 173600 ) FS ; + - PHY_211 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 173600 ) S ; + - PHY_212 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 176400 ) N ; + - PHY_213 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 176400 ) FN ; + - PHY_214 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 176400 ) N ; + - PHY_215 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 176400 ) FN ; + - PHY_216 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 176400 ) N ; + - PHY_217 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 176400 ) FN ; + - PHY_218 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 179200 ) FS ; + - PHY_219 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 179200 ) S ; + - PHY_22 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 72800 ) FS ; + - PHY_220 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 179200 ) FS ; + - PHY_221 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 179200 ) S ; + - PHY_222 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 179200 ) FS ; + - PHY_223 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 179200 ) S ; + - PHY_224 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 182000 ) N ; + - PHY_225 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 182000 ) FN ; + - PHY_226 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 182000 ) N ; + - PHY_227 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 182000 ) FN ; + - PHY_228 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 182000 ) N ; + - PHY_229 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 182000 ) FN ; + - PHY_23 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 72800 ) S ; + - PHY_230 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 184800 ) FS ; + - PHY_231 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 184800 ) S ; + - PHY_232 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 184800 ) FS ; + - PHY_233 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 184800 ) S ; + - PHY_234 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 184800 ) FS ; + - PHY_235 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 184800 ) S ; + - PHY_236 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 187600 ) N ; + - PHY_237 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 187600 ) FN ; + - PHY_238 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 187600 ) N ; + - PHY_239 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 187600 ) FN ; + - PHY_24 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 75600 ) N ; + - PHY_240 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 187600 ) N ; + - PHY_241 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 187600 ) FN ; + - PHY_242 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 190400 ) FS ; + - PHY_243 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 190400 ) S ; + - PHY_244 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 190400 ) FS ; + - PHY_245 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 190400 ) S ; + - PHY_246 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 190400 ) FS ; + - PHY_247 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 190400 ) S ; + - PHY_248 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 193200 ) N ; + - PHY_249 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 193200 ) FN ; + - PHY_25 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 75600 ) FN ; + - PHY_250 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 193200 ) N ; + - PHY_251 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 193200 ) FN ; + - PHY_252 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 193200 ) N ; + - PHY_253 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 193200 ) FN ; + - PHY_254 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 196000 ) FS ; + - PHY_255 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 196000 ) S ; + - PHY_256 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 196000 ) FS ; + - PHY_257 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 196000 ) S ; + - PHY_258 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 196000 ) FS ; + - PHY_259 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 196000 ) S ; + - PHY_26 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 78400 ) FS ; + - PHY_260 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 198800 ) N ; + - PHY_261 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 198800 ) FN ; + - PHY_262 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 198800 ) N ; + - PHY_263 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 198800 ) FN ; + - PHY_264 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 198800 ) N ; + - PHY_265 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 198800 ) FN ; + - PHY_266 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 201600 ) FS ; + - PHY_267 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 201600 ) S ; + - PHY_268 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 201600 ) FS ; + - PHY_269 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 201600 ) S ; + - PHY_27 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 78400 ) S ; + - PHY_270 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 201600 ) FS ; + - PHY_271 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 201600 ) S ; + - PHY_272 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 204400 ) N ; + - PHY_273 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 204400 ) FN ; + - PHY_274 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 204400 ) N ; + - PHY_275 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 204400 ) FN ; + - PHY_276 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 204400 ) N ; + - PHY_277 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 204400 ) FN ; + - PHY_278 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 207200 ) FS ; + - PHY_279 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 207200 ) S ; + - PHY_28 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 81200 ) N ; + - PHY_280 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 207200 ) FS ; + - PHY_281 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 207200 ) S ; + - PHY_282 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 207200 ) FS ; + - PHY_283 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 207200 ) S ; + - PHY_284 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 210000 ) N ; + - PHY_285 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 210000 ) FN ; + - PHY_286 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 210000 ) N ; + - PHY_287 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 210000 ) FN ; + - PHY_288 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 210000 ) N ; + - PHY_289 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 210000 ) FN ; + - PHY_29 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 81200 ) FN ; + - PHY_290 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 212800 ) FS ; + - PHY_291 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 212800 ) S ; + - PHY_292 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 212800 ) FS ; + - PHY_293 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 212800 ) S ; + - PHY_294 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 212800 ) FS ; + - PHY_295 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 212800 ) S ; + - PHY_296 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 215600 ) N ; + - PHY_297 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 215600 ) FN ; + - PHY_298 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 215600 ) N ; + - PHY_299 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 215600 ) FN ; + - PHY_3 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 44800 ) S ; + - PHY_30 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 84000 ) FS ; + - PHY_300 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 215600 ) N ; + - PHY_301 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 215600 ) FN ; + - PHY_302 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 218400 ) FS ; + - PHY_303 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 218400 ) S ; + - PHY_304 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 221200 ) N ; + - PHY_305 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 221200 ) FN ; + - PHY_306 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 224000 ) FS ; + - PHY_307 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 224000 ) S ; + - PHY_308 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 226800 ) N ; + - PHY_309 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 226800 ) FN ; + - PHY_31 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 84000 ) S ; + - PHY_310 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 229600 ) FS ; + - PHY_311 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 229600 ) S ; + - PHY_312 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 232400 ) N ; + - PHY_313 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 232400 ) FN ; + - PHY_314 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 235200 ) FS ; + - PHY_315 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 235200 ) S ; + - PHY_316 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 238000 ) N ; + - PHY_317 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 238000 ) FN ; + - PHY_318 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 240800 ) FS ; + - PHY_319 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 240800 ) S ; + - PHY_32 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 86800 ) N ; + - PHY_320 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 243600 ) N ; + - PHY_321 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 243600 ) FN ; + - PHY_322 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 246400 ) FS ; + - PHY_323 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 246400 ) S ; + - PHY_324 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 249200 ) N ; + - PHY_325 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 249200 ) FN ; + - PHY_326 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 252000 ) FS ; + - PHY_327 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 252000 ) S ; + - PHY_328 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 254800 ) N ; + - PHY_329 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 254800 ) FN ; + - PHY_33 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 86800 ) FN ; + - PHY_330 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 257600 ) FS ; + - PHY_331 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 257600 ) S ; + - PHY_332 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 260400 ) N ; + - PHY_333 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 260400 ) FN ; + - PHY_334 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 263200 ) FS ; + - PHY_335 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 263200 ) S ; + - PHY_336 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 266000 ) N ; + - PHY_337 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 266000 ) FN ; + - PHY_338 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 268800 ) FS ; + - PHY_339 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 268800 ) S ; + - PHY_34 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 89600 ) FS ; + - PHY_340 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 271600 ) N ; + - PHY_341 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 271600 ) FN ; + - PHY_342 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 274400 ) FS ; + - PHY_343 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 274400 ) S ; + - PHY_344 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 277200 ) N ; + - PHY_345 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 277200 ) FN ; + - PHY_346 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 280000 ) FS ; + - PHY_347 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 280000 ) S ; + - PHY_348 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 282800 ) N ; + - PHY_349 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 282800 ) FN ; + - PHY_35 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 89600 ) S ; + - PHY_350 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 285600 ) FS ; + - PHY_351 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 285600 ) S ; + - PHY_352 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 288400 ) N ; + - PHY_353 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 288400 ) FN ; + - PHY_354 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 291200 ) FS ; + - PHY_355 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 291200 ) S ; + - PHY_356 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 294000 ) N ; + - PHY_357 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 294000 ) FN ; + - PHY_358 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 296800 ) FS ; + - PHY_359 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 296800 ) S ; + - PHY_36 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 92400 ) N ; + - PHY_360 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 299600 ) N ; + - PHY_361 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 299600 ) FN ; + - PHY_362 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 302400 ) FS ; + - PHY_363 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 302400 ) S ; + - PHY_364 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 305200 ) N ; + - PHY_365 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 305200 ) FN ; + - PHY_366 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 308000 ) FS ; + - PHY_367 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 308000 ) S ; + - PHY_368 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 310800 ) N ; + - PHY_369 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 310800 ) FN ; + - PHY_37 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 92400 ) FN ; + - PHY_370 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 313600 ) FS ; + - PHY_371 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 313600 ) S ; + - PHY_372 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 316400 ) N ; + - PHY_373 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 316400 ) FN ; + - PHY_374 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 319200 ) FS ; + - PHY_375 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 319200 ) S ; + - PHY_376 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 322000 ) N ; + - PHY_377 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 322000 ) FN ; + - PHY_378 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 324800 ) FS ; + - PHY_379 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 324800 ) S ; + - PHY_38 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 95200 ) FS ; + - PHY_380 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 327600 ) N ; + - PHY_381 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 327600 ) FN ; + - PHY_382 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 330400 ) FS ; + - PHY_383 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 330400 ) S ; + - PHY_384 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 333200 ) N ; + - PHY_385 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 333200 ) FN ; + - PHY_386 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 336000 ) FS ; + - PHY_387 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 336000 ) S ; + - PHY_388 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 338800 ) N ; + - PHY_389 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 338800 ) FN ; + - PHY_39 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 95200 ) S ; + - PHY_390 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 341600 ) FS ; + - PHY_391 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 341600 ) S ; + - PHY_392 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 344400 ) N ; + - PHY_393 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 344400 ) FN ; + - PHY_394 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 347200 ) FS ; + - PHY_395 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 347200 ) S ; + - PHY_396 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 350000 ) N ; + - PHY_397 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 350000 ) FN ; + - PHY_398 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 352800 ) FS ; + - PHY_399 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 352800 ) S ; + - PHY_4 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 47600 ) N ; + - PHY_40 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 95200 ) FS ; + - PHY_400 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 355600 ) N ; + - PHY_401 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 355600 ) FN ; + - PHY_41 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 95200 ) S ; + - PHY_42 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 95200 ) FS ; + - PHY_43 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 95200 ) S ; + - PHY_44 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 98000 ) N ; + - PHY_45 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 98000 ) FN ; + - PHY_46 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 98000 ) N ; + - PHY_47 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 98000 ) FN ; + - PHY_48 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 98000 ) N ; + - PHY_49 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 98000 ) FN ; + - PHY_5 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 47600 ) FN ; + - PHY_50 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 100800 ) FS ; + - PHY_51 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 100800 ) S ; + - PHY_52 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 100800 ) FS ; + - PHY_53 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 100800 ) S ; + - PHY_54 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 100800 ) FS ; + - PHY_55 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 100800 ) S ; + - PHY_56 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 103600 ) N ; + - PHY_57 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 103600 ) FN ; + - PHY_58 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 103600 ) N ; + - PHY_59 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 103600 ) FN ; + - PHY_6 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 50400 ) FS ; + - PHY_60 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 103600 ) N ; + - PHY_61 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 103600 ) FN ; + - PHY_62 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 106400 ) FS ; + - PHY_63 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 106400 ) S ; + - PHY_64 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 106400 ) FS ; + - PHY_65 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 106400 ) S ; + - PHY_66 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 106400 ) FS ; + - PHY_67 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 106400 ) S ; + - PHY_68 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 109200 ) N ; + - PHY_69 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 109200 ) FN ; + - PHY_7 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 50400 ) S ; + - PHY_70 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 109200 ) N ; + - PHY_71 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 109200 ) FN ; + - PHY_72 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 109200 ) N ; + - PHY_73 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 109200 ) FN ; + - PHY_74 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 112000 ) FS ; + - PHY_75 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 112000 ) S ; + - PHY_76 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 112000 ) FS ; + - PHY_77 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 112000 ) S ; + - PHY_78 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 112000 ) FS ; + - PHY_79 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 112000 ) S ; + - PHY_8 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 53200 ) N ; + - PHY_80 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 114800 ) N ; + - PHY_81 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 114800 ) FN ; + - PHY_82 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 114800 ) N ; + - PHY_83 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 114800 ) FN ; + - PHY_84 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 114800 ) N ; + - PHY_85 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 114800 ) FN ; + - PHY_86 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 117600 ) FS ; + - PHY_87 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 117600 ) S ; + - PHY_88 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 117600 ) FS ; + - PHY_89 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 117600 ) S ; + - PHY_9 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 53200 ) FN ; + - PHY_90 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 117600 ) FS ; + - PHY_91 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 117600 ) S ; + - PHY_92 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 120400 ) N ; + - PHY_93 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 120400 ) FN ; + - PHY_94 FILLCELL_X1 + SOURCE DIST + FIXED ( 125020 120400 ) N ; + - PHY_95 FILLCELL_X1 + SOURCE DIST + FIXED ( 165300 120400 ) FN ; + - PHY_96 FILLCELL_X1 + SOURCE DIST + FIXED ( 212420 120400 ) N ; + - PHY_97 FILLCELL_X1 + SOURCE DIST + FIXED ( 359480 120400 ) FN ; + - PHY_98 FILLCELL_X1 + SOURCE DIST + FIXED ( 40280 123200 ) FS ; + - PHY_99 FILLCELL_X1 + SOURCE DIST + FIXED ( 77900 123200 ) S ; + - TAP_402 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 42000 ) N ; + - TAP_403 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 47600 ) N ; + - TAP_404 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 53200 ) N ; + - TAP_405 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 58800 ) N ; + - TAP_406 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 64400 ) N ; + - TAP_407 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 70000 ) N ; + - TAP_408 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 75600 ) N ; + - TAP_409 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 81200 ) N ; + - TAP_410 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 86800 ) N ; + - TAP_411 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 92400 ) N ; + - TAP_412 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 218400 ) FS ; + - TAP_413 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 221200 ) N ; + - TAP_414 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 226800 ) N ; + - TAP_415 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 232400 ) N ; + - TAP_416 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 238000 ) N ; + - TAP_417 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 243600 ) N ; + - TAP_418 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 249200 ) N ; + - TAP_419 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 254800 ) N ; + - TAP_420 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 260400 ) N ; + - TAP_421 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 266000 ) N ; + - TAP_422 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 271600 ) N ; + - TAP_423 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 277200 ) N ; + - TAP_424 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 282800 ) N ; + - TAP_425 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 288400 ) N ; + - TAP_426 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 294000 ) N ; + - TAP_427 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 299600 ) N ; + - TAP_428 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 305200 ) N ; + - TAP_429 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 310800 ) N ; + - TAP_430 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 316400 ) N ; + - TAP_431 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 322000 ) N ; + - TAP_432 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 327600 ) N ; + - TAP_433 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 333200 ) N ; + - TAP_434 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 338800 ) N ; + - TAP_435 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 344400 ) N ; + - TAP_436 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 350000 ) N ; + - TAP_437 FILLCELL_X1 + SOURCE DIST + FIXED ( 240160 355600 ) N ; + - dcache.data.data_arrays_0.data_arrays_0_ext.mem fakeram45_64x32 + FIXED ( 170000 100000 ) N ; + - frontend.icache.data_arrays_0.data_arrays_0_0_ext.mem fakeram45_64x32 + FIXED ( 82320 100000 ) N ; +END COMPONENTS +PINS 269 ; + - auto_int_in_xing_in_0_sync_0 + NET auto_int_in_xing_in_0_sync_0 + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 391020 ) N ; + - auto_int_in_xing_in_0_sync_1 + NET auto_int_in_xing_in_0_sync_1 + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 314830 70 ) N ; + - auto_int_in_xing_in_1_sync_0 + NET auto_int_in_xing_in_1_sync_0 + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 182590 70 ) N ; + - auto_intsink_in_sync_0 + NET auto_intsink_in_sync_0 + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 365260 ) N ; + - auto_tl_master_xing_out_a_bits_address[0] + NET auto_tl_master_xing_out_a_bits_address[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 171950 399930 ) N ; + - auto_tl_master_xing_out_a_bits_address[10] + NET auto_tl_master_xing_out_a_bits_address[10] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 201180 ) N ; + - auto_tl_master_xing_out_a_bits_address[11] + NET auto_tl_master_xing_out_a_bits_address[11] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 77710 70 ) N ; + - auto_tl_master_xing_out_a_bits_address[12] + NET auto_tl_master_xing_out_a_bits_address[12] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 126350 70 ) N ; + - auto_tl_master_xing_out_a_bits_address[13] + NET auto_tl_master_xing_out_a_bits_address[13] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 21420 ) N ; + - auto_tl_master_xing_out_a_bits_address[14] + NET auto_tl_master_xing_out_a_bits_address[14] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 370310 70 ) N ; + - auto_tl_master_xing_out_a_bits_address[15] + NET auto_tl_master_xing_out_a_bits_address[15] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 105830 70 ) N ; + - auto_tl_master_xing_out_a_bits_address[16] + NET auto_tl_master_xing_out_a_bits_address[16] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 277900 ) N ; + - auto_tl_master_xing_out_a_bits_address[17] + NET auto_tl_master_xing_out_a_bits_address[17] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 226940 ) N ; + - auto_tl_master_xing_out_a_bits_address[18] + NET auto_tl_master_xing_out_a_bits_address[18] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 366510 399930 ) N ; + - auto_tl_master_xing_out_a_bits_address[19] + NET auto_tl_master_xing_out_a_bits_address[19] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 242060 ) N ; + - auto_tl_master_xing_out_a_bits_address[1] + NET auto_tl_master_xing_out_a_bits_address[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 237020 ) N ; + - auto_tl_master_xing_out_a_bits_address[20] + NET auto_tl_master_xing_out_a_bits_address[20] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 42140 ) N ; + - auto_tl_master_xing_out_a_bits_address[21] + NET auto_tl_master_xing_out_a_bits_address[21] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 344540 ) N ; + - auto_tl_master_xing_out_a_bits_address[22] + NET auto_tl_master_xing_out_a_bits_address[22] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 11340 ) N ; + - auto_tl_master_xing_out_a_bits_address[23] + NET auto_tl_master_xing_out_a_bits_address[23] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 26460 ) N ; + - auto_tl_master_xing_out_a_bits_address[24] + NET auto_tl_master_xing_out_a_bits_address[24] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 103740 ) N ; + - auto_tl_master_xing_out_a_bits_address[25] + NET auto_tl_master_xing_out_a_bits_address[25] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 157510 399930 ) N ; + - auto_tl_master_xing_out_a_bits_address[26] + NET auto_tl_master_xing_out_a_bits_address[26] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 57260 ) N ; + - auto_tl_master_xing_out_a_bits_address[27] + NET auto_tl_master_xing_out_a_bits_address[27] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 147630 70 ) N ; + - auto_tl_master_xing_out_a_bits_address[28] + NET auto_tl_master_xing_out_a_bits_address[28] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 304190 399930 ) N ; + - auto_tl_master_xing_out_a_bits_address[29] + NET auto_tl_master_xing_out_a_bits_address[29] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 269230 399930 ) N ; + - auto_tl_master_xing_out_a_bits_address[2] + NET auto_tl_master_xing_out_a_bits_address[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 329420 ) N ; + - auto_tl_master_xing_out_a_bits_address[30] + NET auto_tl_master_xing_out_a_bits_address[30] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 360220 ) N ; + - auto_tl_master_xing_out_a_bits_address[31] + NET auto_tl_master_xing_out_a_bits_address[31] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 196140 ) N ; + - auto_tl_master_xing_out_a_bits_address[3] + NET auto_tl_master_xing_out_a_bits_address[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 237020 ) N ; + - auto_tl_master_xing_out_a_bits_address[4] + NET auto_tl_master_xing_out_a_bits_address[4] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 112670 70 ) N ; + - auto_tl_master_xing_out_a_bits_address[5] + NET auto_tl_master_xing_out_a_bits_address[5] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 196270 70 ) N ; + - auto_tl_master_xing_out_a_bits_address[6] + NET auto_tl_master_xing_out_a_bits_address[6] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 32060 ) N ; + - auto_tl_master_xing_out_a_bits_address[7] + NET auto_tl_master_xing_out_a_bits_address[7] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 21420 ) N ; + - auto_tl_master_xing_out_a_bits_address[8] + NET auto_tl_master_xing_out_a_bits_address[8] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 231980 ) N ; + - auto_tl_master_xing_out_a_bits_address[9] + NET auto_tl_master_xing_out_a_bits_address[9] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 39710 399930 ) N ; + - auto_tl_master_xing_out_a_bits_corrupt + NET auto_tl_master_xing_out_a_bits_corrupt + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 257740 ) N ; + - auto_tl_master_xing_out_a_bits_data[0] + NET auto_tl_master_xing_out_a_bits_data[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 119510 70 ) N ; + - auto_tl_master_xing_out_a_bits_data[10] + NET auto_tl_master_xing_out_a_bits_data[10] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 288540 ) N ; + - auto_tl_master_xing_out_a_bits_data[11] + NET auto_tl_master_xing_out_a_bits_data[11] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 29070 70 ) N ; + - auto_tl_master_xing_out_a_bits_data[12] + NET auto_tl_master_xing_out_a_bits_data[12] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 72940 ) N ; + - auto_tl_master_xing_out_a_bits_data[13] + NET auto_tl_master_xing_out_a_bits_data[13] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 363470 70 ) N ; + - auto_tl_master_xing_out_a_bits_data[14] + NET auto_tl_master_xing_out_a_bits_data[14] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 165340 ) N ; + - auto_tl_master_xing_out_a_bits_data[15] + NET auto_tl_master_xing_out_a_bits_data[15] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 189430 70 ) N ; + - auto_tl_master_xing_out_a_bits_data[16] + NET auto_tl_master_xing_out_a_bits_data[16] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 373350 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[17] + NET auto_tl_master_xing_out_a_bits_data[17] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 370300 ) N ; + - auto_tl_master_xing_out_a_bits_data[18] + NET auto_tl_master_xing_out_a_bits_data[18] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 365260 ) N ; + - auto_tl_master_xing_out_a_bits_data[19] + NET auto_tl_master_xing_out_a_bits_data[19] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 231230 70 ) N ; + - auto_tl_master_xing_out_a_bits_data[1] + NET auto_tl_master_xing_out_a_bits_data[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 6300 ) N ; + - auto_tl_master_xing_out_a_bits_data[20] + NET auto_tl_master_xing_out_a_bits_data[20] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 203110 70 ) N ; + - auto_tl_master_xing_out_a_bits_data[21] + NET auto_tl_master_xing_out_a_bits_data[21] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 103740 ) N ; + - auto_tl_master_xing_out_a_bits_data[22] + NET auto_tl_master_xing_out_a_bits_data[22] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 213750 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[23] + NET auto_tl_master_xing_out_a_bits_data[23] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 311030 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[24] + NET auto_tl_master_xing_out_a_bits_data[24] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 192470 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[25] + NET auto_tl_master_xing_out_a_bits_data[25] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 286710 70 ) N ; + - auto_tl_master_xing_out_a_bits_data[26] + NET auto_tl_master_xing_out_a_bits_data[26] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 46550 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[27] + NET auto_tl_master_xing_out_a_bits_data[27] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 25270 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[28] + NET auto_tl_master_xing_out_a_bits_data[28] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 324380 ) N ; + - auto_tl_master_xing_out_a_bits_data[29] + NET auto_tl_master_xing_out_a_bits_data[29] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 62860 ) N ; + - auto_tl_master_xing_out_a_bits_data[2] + NET auto_tl_master_xing_out_a_bits_data[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 154700 ) N ; + - auto_tl_master_xing_out_a_bits_data[30] + NET auto_tl_master_xing_out_a_bits_data[30] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 375340 ) N ; + - auto_tl_master_xing_out_a_bits_data[31] + NET auto_tl_master_xing_out_a_bits_data[31] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 272860 ) N ; + - auto_tl_master_xing_out_a_bits_data[3] + NET auto_tl_master_xing_out_a_bits_data[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 185630 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[4] + NET auto_tl_master_xing_out_a_bits_data[4] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 349580 ) N ; + - auto_tl_master_xing_out_a_bits_data[5] + NET auto_tl_master_xing_out_a_bits_data[5] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 113820 ) N ; + - auto_tl_master_xing_out_a_bits_data[6] + NET auto_tl_master_xing_out_a_bits_data[6] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 74670 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[7] + NET auto_tl_master_xing_out_a_bits_data[7] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 227430 399930 ) N ; + - auto_tl_master_xing_out_a_bits_data[8] + NET auto_tl_master_xing_out_a_bits_data[8] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 134540 ) N ; + - auto_tl_master_xing_out_a_bits_data[9] + NET auto_tl_master_xing_out_a_bits_data[9] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 380380 ) N ; + - auto_tl_master_xing_out_a_bits_mask[0] + NET auto_tl_master_xing_out_a_bits_mask[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 67900 ) N ; + - auto_tl_master_xing_out_a_bits_mask[1] + NET auto_tl_master_xing_out_a_bits_mask[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 50350 70 ) N ; + - auto_tl_master_xing_out_a_bits_mask[2] + NET auto_tl_master_xing_out_a_bits_mask[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 267820 ) N ; + - auto_tl_master_xing_out_a_bits_mask[3] + NET auto_tl_master_xing_out_a_bits_mask[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 180460 ) N ; + - auto_tl_master_xing_out_a_bits_opcode[0] + NET auto_tl_master_xing_out_a_bits_opcode[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 32870 399930 ) N ; + - auto_tl_master_xing_out_a_bits_opcode[1] + NET auto_tl_master_xing_out_a_bits_opcode[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 298620 ) N ; + - auto_tl_master_xing_out_a_bits_opcode[2] + NET auto_tl_master_xing_out_a_bits_opcode[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 377150 70 ) N ; + - auto_tl_master_xing_out_a_bits_param[0] + NET auto_tl_master_xing_out_a_bits_param[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 360220 ) N ; + - auto_tl_master_xing_out_a_bits_param[1] + NET auto_tl_master_xing_out_a_bits_param[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 380380 ) N ; + - auto_tl_master_xing_out_a_bits_param[2] + NET auto_tl_master_xing_out_a_bits_param[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 211260 ) N ; + - auto_tl_master_xing_out_a_bits_size[0] + NET auto_tl_master_xing_out_a_bits_size[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 140790 70 ) N ; + - auto_tl_master_xing_out_a_bits_size[1] + NET auto_tl_master_xing_out_a_bits_size[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 95190 399930 ) N ; + - auto_tl_master_xing_out_a_bits_size[2] + NET auto_tl_master_xing_out_a_bits_size[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 387790 399930 ) N ; + - auto_tl_master_xing_out_a_bits_size[3] + NET auto_tl_master_xing_out_a_bits_size[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 308700 ) N ; + - auto_tl_master_xing_out_a_bits_source + NET auto_tl_master_xing_out_a_bits_source + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 123900 ) N ; + - auto_tl_master_xing_out_a_ready + NET auto_tl_master_xing_out_a_ready + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 165110 399930 ) N ; + - auto_tl_master_xing_out_a_valid + NET auto_tl_master_xing_out_a_valid + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 83020 ) N ; + - auto_tl_master_xing_out_d_bits_corrupt + NET auto_tl_master_xing_out_d_bits_corrupt + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 26460 ) N ; + - auto_tl_master_xing_out_d_bits_data[0] + NET auto_tl_master_xing_out_d_bits_data[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 319340 ) N ; + - auto_tl_master_xing_out_d_bits_data[10] + NET auto_tl_master_xing_out_d_bits_data[10] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 226940 ) N ; + - auto_tl_master_xing_out_d_bits_data[11] + NET auto_tl_master_xing_out_d_bits_data[11] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 242060 ) N ; + - auto_tl_master_xing_out_d_bits_data[12] + NET auto_tl_master_xing_out_d_bits_data[12] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 293550 70 ) N ; + - auto_tl_master_xing_out_d_bits_data[13] + NET auto_tl_master_xing_out_d_bits_data[13] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 345990 399930 ) N ; + - auto_tl_master_xing_out_d_bits_data[14] + NET auto_tl_master_xing_out_d_bits_data[14] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 277900 ) N ; + - auto_tl_master_xing_out_d_bits_data[15] + NET auto_tl_master_xing_out_d_bits_data[15] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 297350 399930 ) N ; + - auto_tl_master_xing_out_d_bits_data[16] + NET auto_tl_master_xing_out_d_bits_data[16] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 375340 ) N ; + - auto_tl_master_xing_out_d_bits_data[17] + NET auto_tl_master_xing_out_d_bits_data[17] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 390830 70 ) N ; + - auto_tl_master_xing_out_d_bits_data[18] + NET auto_tl_master_xing_out_d_bits_data[18] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 52220 ) N ; + - auto_tl_master_xing_out_d_bits_data[19] + NET auto_tl_master_xing_out_d_bits_data[19] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 231980 ) N ; + - auto_tl_master_xing_out_d_bits_data[1] + NET auto_tl_master_xing_out_d_bits_data[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 88350 399930 ) N ; + - auto_tl_master_xing_out_d_bits_data[20] + NET auto_tl_master_xing_out_d_bits_data[20] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 252140 ) N ; + - auto_tl_master_xing_out_d_bits_data[21] + NET auto_tl_master_xing_out_d_bits_data[21] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 150670 399930 ) N ; + - auto_tl_master_xing_out_d_bits_data[22] + NET auto_tl_master_xing_out_d_bits_data[22] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 258590 70 ) N ; + - auto_tl_master_xing_out_d_bits_data[23] + NET auto_tl_master_xing_out_d_bits_data[23] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 88060 ) N ; + - auto_tl_master_xing_out_d_bits_data[24] + NET auto_tl_master_xing_out_d_bits_data[24] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 344540 ) N ; + - auto_tl_master_xing_out_d_bits_data[25] + NET auto_tl_master_xing_out_d_bits_data[25] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 238070 70 ) N ; + - auto_tl_master_xing_out_d_bits_data[26] + NET auto_tl_master_xing_out_d_bits_data[26] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 328510 70 ) N ; + - auto_tl_master_xing_out_d_bits_data[27] + NET auto_tl_master_xing_out_d_bits_data[27] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 47180 ) N ; + - auto_tl_master_xing_out_d_bits_data[28] + NET auto_tl_master_xing_out_d_bits_data[28] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 123310 399930 ) N ; + - auto_tl_master_xing_out_d_bits_data[29] + NET auto_tl_master_xing_out_d_bits_data[29] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 136990 399930 ) N ; + - auto_tl_master_xing_out_d_bits_data[2] + NET auto_tl_master_xing_out_d_bits_data[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 334460 ) N ; + - auto_tl_master_xing_out_d_bits_data[30] + NET auto_tl_master_xing_out_d_bits_data[30] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 84550 70 ) N ; + - auto_tl_master_xing_out_d_bits_data[31] + NET auto_tl_master_xing_out_d_bits_data[31] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 170380 ) N ; + - auto_tl_master_xing_out_d_bits_data[3] + NET auto_tl_master_xing_out_d_bits_data[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 394630 399930 ) N ; + - auto_tl_master_xing_out_d_bits_data[4] + NET auto_tl_master_xing_out_d_bits_data[4] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 247100 ) N ; + - auto_tl_master_xing_out_d_bits_data[5] + NET auto_tl_master_xing_out_d_bits_data[5] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 57190 70 ) N ; + - auto_tl_master_xing_out_d_bits_data[6] + NET auto_tl_master_xing_out_d_bits_data[6] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 67900 ) N ; + - auto_tl_master_xing_out_d_bits_data[7] + NET auto_tl_master_xing_out_d_bits_data[7] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 170380 ) N ; + - auto_tl_master_xing_out_d_bits_data[8] + NET auto_tl_master_xing_out_d_bits_data[8] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 185500 ) N ; + - auto_tl_master_xing_out_d_bits_data[9] + NET auto_tl_master_xing_out_d_bits_data[9] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 149660 ) N ; + - auto_tl_master_xing_out_d_bits_denied + NET auto_tl_master_xing_out_d_bits_denied + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 175420 ) N ; + - auto_tl_master_xing_out_d_bits_opcode[0] + NET auto_tl_master_xing_out_d_bits_opcode[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 144620 ) N ; + - auto_tl_master_xing_out_d_bits_opcode[1] + NET auto_tl_master_xing_out_d_bits_opcode[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 168150 70 ) N ; + - auto_tl_master_xing_out_d_bits_opcode[2] + NET auto_tl_master_xing_out_d_bits_opcode[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 77980 ) N ; + - auto_tl_master_xing_out_d_bits_param[0] + NET auto_tl_master_xing_out_d_bits_param[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 185500 ) N ; + - auto_tl_master_xing_out_d_bits_param[1] + NET auto_tl_master_xing_out_d_bits_param[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 144620 ) N ; + - auto_tl_master_xing_out_d_bits_sink + NET auto_tl_master_xing_out_d_bits_sink + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 130150 399930 ) N ; + - auto_tl_master_xing_out_d_bits_size[0] + NET auto_tl_master_xing_out_d_bits_size[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 62300 ) N ; + - auto_tl_master_xing_out_d_bits_size[1] + NET auto_tl_master_xing_out_d_bits_size[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 349030 70 ) N ; + - auto_tl_master_xing_out_d_bits_size[2] + NET auto_tl_master_xing_out_d_bits_size[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 216300 ) N ; + - auto_tl_master_xing_out_d_bits_size[3] + NET auto_tl_master_xing_out_d_bits_size[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 108870 399930 ) N ; + - auto_tl_master_xing_out_d_bits_source + NET auto_tl_master_xing_out_d_bits_source + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 67070 399930 ) N ; + - auto_tl_master_xing_out_d_ready + NET auto_tl_master_xing_out_d_ready + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 128940 ) N ; + - auto_tl_master_xing_out_d_valid + NET auto_tl_master_xing_out_d_valid + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 11340 ) N ; + - auto_tl_slave_xing_in_a_bits_address[0] + NET auto_tl_slave_xing_in_a_bits_address[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 154470 70 ) N ; + - auto_tl_slave_xing_in_a_bits_address[10] + NET auto_tl_slave_xing_in_a_bits_address[10] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 262780 ) N ; + - auto_tl_slave_xing_in_a_bits_address[11] + NET auto_tl_slave_xing_in_a_bits_address[11] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 57260 ) N ; + - auto_tl_slave_xing_in_a_bits_address[12] + NET auto_tl_slave_xing_in_a_bits_address[12] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 355180 ) N ; + - auto_tl_slave_xing_in_a_bits_address[13] + NET auto_tl_slave_xing_in_a_bits_address[13] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 266190 70 ) N ; + - auto_tl_slave_xing_in_a_bits_address[14] + NET auto_tl_slave_xing_in_a_bits_address[14] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 93100 ) N ; + - auto_tl_slave_xing_in_a_bits_address[15] + NET auto_tl_slave_xing_in_a_bits_address[15] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 339150 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_address[16] + NET auto_tl_slave_xing_in_a_bits_address[16] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 282910 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_address[17] + NET auto_tl_slave_xing_in_a_bits_address[17] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 380950 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_address[18] + NET auto_tl_slave_xing_in_a_bits_address[18] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 37100 ) N ; + - auto_tl_slave_xing_in_a_bits_address[19] + NET auto_tl_slave_xing_in_a_bits_address[19] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 349580 ) N ; + - auto_tl_slave_xing_in_a_bits_address[1] + NET auto_tl_slave_xing_in_a_bits_address[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 134540 ) N ; + - auto_tl_slave_xing_in_a_bits_address[20] + NET auto_tl_slave_xing_in_a_bits_address[20] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 108780 ) N ; + - auto_tl_slave_xing_in_a_bits_address[21] + NET auto_tl_slave_xing_in_a_bits_address[21] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 273030 70 ) N ; + - auto_tl_slave_xing_in_a_bits_address[22] + NET auto_tl_slave_xing_in_a_bits_address[22] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 282940 ) N ; + - auto_tl_slave_xing_in_a_bits_address[23] + NET auto_tl_slave_xing_in_a_bits_address[23] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 1260 ) N ; + - auto_tl_slave_xing_in_a_bits_address[24] + NET auto_tl_slave_xing_in_a_bits_address[24] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 313740 ) N ; + - auto_tl_slave_xing_in_a_bits_address[25] + NET auto_tl_slave_xing_in_a_bits_address[25] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 342190 70 ) N ; + - auto_tl_slave_xing_in_a_bits_address[26] + NET auto_tl_slave_xing_in_a_bits_address[26] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 234270 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_address[27] + NET auto_tl_slave_xing_in_a_bits_address[27] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 53390 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_address[28] + NET auto_tl_slave_xing_in_a_bits_address[28] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 118860 ) N ; + - auto_tl_slave_xing_in_a_bits_address[29] + NET auto_tl_slave_xing_in_a_bits_address[29] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 209950 70 ) N ; + - auto_tl_slave_xing_in_a_bits_address[2] + NET auto_tl_slave_xing_in_a_bits_address[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 160300 ) N ; + - auto_tl_slave_xing_in_a_bits_address[30] + NET auto_tl_slave_xing_in_a_bits_address[30] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 334460 ) N ; + - auto_tl_slave_xing_in_a_bits_address[31] + NET auto_tl_slave_xing_in_a_bits_address[31] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 247100 ) N ; + - auto_tl_slave_xing_in_a_bits_address[3] + NET auto_tl_slave_xing_in_a_bits_address[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 165340 ) N ; + - auto_tl_slave_xing_in_a_bits_address[4] + NET auto_tl_slave_xing_in_a_bits_address[4] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 303660 ) N ; + - auto_tl_slave_xing_in_a_bits_address[5] + NET auto_tl_slave_xing_in_a_bits_address[5] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 201180 ) N ; + - auto_tl_slave_xing_in_a_bits_address[6] + NET auto_tl_slave_xing_in_a_bits_address[6] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 290510 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_address[7] + NET auto_tl_slave_xing_in_a_bits_address[7] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 324710 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_address[8] + NET auto_tl_slave_xing_in_a_bits_address[8] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 37100 ) N ; + - auto_tl_slave_xing_in_a_bits_address[9] + NET auto_tl_slave_xing_in_a_bits_address[9] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 255550 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[0] + NET auto_tl_slave_xing_in_a_bits_data[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 116470 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[10] + NET auto_tl_slave_xing_in_a_bits_data[10] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 18430 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[11] + NET auto_tl_slave_xing_in_a_bits_data[11] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 318780 ) N ; + - auto_tl_slave_xing_in_a_bits_data[12] + NET auto_tl_slave_xing_in_a_bits_data[12] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 199310 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[13] + NET auto_tl_slave_xing_in_a_bits_data[13] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 196140 ) N ; + - auto_tl_slave_xing_in_a_bits_data[14] + NET auto_tl_slave_xing_in_a_bits_data[14] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 60230 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[15] + NET auto_tl_slave_xing_in_a_bits_data[15] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 206220 ) N ; + - auto_tl_slave_xing_in_a_bits_data[16] + NET auto_tl_slave_xing_in_a_bits_data[16] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 191100 ) N ; + - auto_tl_slave_xing_in_a_bits_data[17] + NET auto_tl_slave_xing_in_a_bits_data[17] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 93100 ) N ; + - auto_tl_slave_xing_in_a_bits_data[18] + NET auto_tl_slave_xing_in_a_bits_data[18] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 216300 ) N ; + - auto_tl_slave_xing_in_a_bits_data[19] + NET auto_tl_slave_xing_in_a_bits_data[19] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 88060 ) N ; + - auto_tl_slave_xing_in_a_bits_data[1] + NET auto_tl_slave_xing_in_a_bits_data[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 383990 70 ) N ; + - auto_tl_slave_xing_in_a_bits_data[20] + NET auto_tl_slave_xing_in_a_bits_data[20] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 267820 ) N ; + - auto_tl_slave_xing_in_a_bits_data[21] + NET auto_tl_slave_xing_in_a_bits_data[21] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 313740 ) N ; + - auto_tl_slave_xing_in_a_bits_data[22] + NET auto_tl_slave_xing_in_a_bits_data[22] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 224390 70 ) N ; + - auto_tl_slave_xing_in_a_bits_data[23] + NET auto_tl_slave_xing_in_a_bits_data[23] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 4750 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[24] + NET auto_tl_slave_xing_in_a_bits_data[24] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 72940 ) N ; + - auto_tl_slave_xing_in_a_bits_data[25] + NET auto_tl_slave_xing_in_a_bits_data[25] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 178790 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[26] + NET auto_tl_slave_xing_in_a_bits_data[26] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 221340 ) N ; + - auto_tl_slave_xing_in_a_bits_data[27] + NET auto_tl_slave_xing_in_a_bits_data[27] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 42750 70 ) N ; + - auto_tl_slave_xing_in_a_bits_data[28] + NET auto_tl_slave_xing_in_a_bits_data[28] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 262390 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_data[29] + NET auto_tl_slave_xing_in_a_bits_data[29] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 31500 ) N ; + - auto_tl_slave_xing_in_a_bits_data[2] + NET auto_tl_slave_xing_in_a_bits_data[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 293580 ) N ; + - auto_tl_slave_xing_in_a_bits_data[30] + NET auto_tl_slave_xing_in_a_bits_data[30] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 161310 70 ) N ; + - auto_tl_slave_xing_in_a_bits_data[31] + NET auto_tl_slave_xing_in_a_bits_data[31] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 370300 ) N ; + - auto_tl_slave_xing_in_a_bits_data[3] + NET auto_tl_slave_xing_in_a_bits_data[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 16380 ) N ; + - auto_tl_slave_xing_in_a_bits_data[4] + NET auto_tl_slave_xing_in_a_bits_data[4] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 321670 70 ) N ; + - auto_tl_slave_xing_in_a_bits_data[5] + NET auto_tl_slave_xing_in_a_bits_data[5] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 385980 ) N ; + - auto_tl_slave_xing_in_a_bits_data[6] + NET auto_tl_slave_xing_in_a_bits_data[6] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 307990 70 ) N ; + - auto_tl_slave_xing_in_a_bits_data[7] + NET auto_tl_slave_xing_in_a_bits_data[7] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 257180 ) N ; + - auto_tl_slave_xing_in_a_bits_data[8] + NET auto_tl_slave_xing_in_a_bits_data[8] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 22230 70 ) N ; + - auto_tl_slave_xing_in_a_bits_data[9] + NET auto_tl_slave_xing_in_a_bits_data[9] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 16380 ) N ; + - auto_tl_slave_xing_in_a_bits_mask[0] + NET auto_tl_slave_xing_in_a_bits_mask[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 98700 ) N ; + - auto_tl_slave_xing_in_a_bits_mask[1] + NET auto_tl_slave_xing_in_a_bits_mask[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 220590 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_mask[2] + NET auto_tl_slave_xing_in_a_bits_mask[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 282940 ) N ; + - auto_tl_slave_xing_in_a_bits_mask[3] + NET auto_tl_slave_xing_in_a_bits_mask[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 385420 ) N ; + - auto_tl_slave_xing_in_a_bits_opcode[0] + NET auto_tl_slave_xing_in_a_bits_opcode[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 11590 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_opcode[1] + NET auto_tl_slave_xing_in_a_bits_opcode[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 396060 ) N ; + - auto_tl_slave_xing_in_a_bits_opcode[2] + NET auto_tl_slave_xing_in_a_bits_opcode[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 15390 70 ) N ; + - auto_tl_slave_xing_in_a_bits_param[0] + NET auto_tl_slave_xing_in_a_bits_param[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 113820 ) N ; + - auto_tl_slave_xing_in_a_bits_param[1] + NET auto_tl_slave_xing_in_a_bits_param[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 180460 ) N ; + - auto_tl_slave_xing_in_a_bits_param[2] + NET auto_tl_slave_xing_in_a_bits_param[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 244910 70 ) N ; + - auto_tl_slave_xing_in_a_bits_size[0] + NET auto_tl_slave_xing_in_a_bits_size[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 352830 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_size[1] + NET auto_tl_slave_xing_in_a_bits_size[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 293580 ) N ; + - auto_tl_slave_xing_in_a_bits_size[2] + NET auto_tl_slave_xing_in_a_bits_size[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 81510 399930 ) N ; + - auto_tl_slave_xing_in_a_bits_source[0] + NET auto_tl_slave_xing_in_a_bits_source[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 64030 70 ) N ; + - auto_tl_slave_xing_in_a_bits_source[1] + NET auto_tl_slave_xing_in_a_bits_source[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 211260 ) N ; + - auto_tl_slave_xing_in_a_bits_source[2] + NET auto_tl_slave_xing_in_a_bits_source[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 355180 ) N ; + - auto_tl_slave_xing_in_a_bits_source[3] + NET auto_tl_slave_xing_in_a_bits_source[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 303660 ) N ; + - auto_tl_slave_xing_in_a_bits_source[4] + NET auto_tl_slave_xing_in_a_bits_source[4] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 272860 ) N ; + - auto_tl_slave_xing_in_a_ready + NET auto_tl_slave_xing_in_a_ready + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 129500 ) N ; + - auto_tl_slave_xing_in_a_valid + NET auto_tl_slave_xing_in_a_valid + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 118860 ) N ; + - auto_tl_slave_xing_in_d_bits_corrupt + NET auto_tl_slave_xing_in_d_bits_corrupt + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 396060 ) N ; + - auto_tl_slave_xing_in_d_bits_data[0] + NET auto_tl_slave_xing_in_d_bits_data[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 143830 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_data[10] + NET auto_tl_slave_xing_in_d_bits_data[10] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 133950 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[11] + NET auto_tl_slave_xing_in_d_bits_data[11] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 190540 ) N ; + - auto_tl_slave_xing_in_d_bits_data[12] + NET auto_tl_slave_xing_in_d_bits_data[12] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 139580 ) N ; + - auto_tl_slave_xing_in_d_bits_data[13] + NET auto_tl_slave_xing_in_d_bits_data[13] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 123900 ) N ; + - auto_tl_slave_xing_in_d_bits_data[14] + NET auto_tl_slave_xing_in_d_bits_data[14] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 262780 ) N ; + - auto_tl_slave_xing_in_d_bits_data[15] + NET auto_tl_slave_xing_in_d_bits_data[15] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 42140 ) N ; + - auto_tl_slave_xing_in_d_bits_data[16] + NET auto_tl_slave_xing_in_d_bits_data[16] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70870 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[17] + NET auto_tl_slave_xing_in_d_bits_data[17] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 216790 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[18] + NET auto_tl_slave_xing_in_d_bits_data[18] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 175420 ) N ; + - auto_tl_slave_xing_in_d_bits_data[19] + NET auto_tl_slave_xing_in_d_bits_data[19] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 359670 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_data[1] + NET auto_tl_slave_xing_in_d_bits_data[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 324380 ) N ; + - auto_tl_slave_xing_in_d_bits_data[20] + NET auto_tl_slave_xing_in_d_bits_data[20] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 52220 ) N ; + - auto_tl_slave_xing_in_d_bits_data[21] + NET auto_tl_slave_xing_in_d_bits_data[21] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 108780 ) N ; + - auto_tl_slave_xing_in_d_bits_data[22] + NET auto_tl_slave_xing_in_d_bits_data[22] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 6300 ) N ; + - auto_tl_slave_xing_in_d_bits_data[23] + NET auto_tl_slave_xing_in_d_bits_data[23] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 8550 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[24] + NET auto_tl_slave_xing_in_d_bits_data[24] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 339500 ) N ; + - auto_tl_slave_xing_in_d_bits_data[25] + NET auto_tl_slave_xing_in_d_bits_data[25] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 331550 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_data[26] + NET auto_tl_slave_xing_in_d_bits_data[26] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 77980 ) N ; + - auto_tl_slave_xing_in_d_bits_data[27] + NET auto_tl_slave_xing_in_d_bits_data[27] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 317870 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_data[28] + NET auto_tl_slave_xing_in_d_bits_data[28] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 149660 ) N ; + - auto_tl_slave_xing_in_d_bits_data[29] + NET auto_tl_slave_xing_in_d_bits_data[29] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 159740 ) N ; + - auto_tl_slave_xing_in_d_bits_data[2] + NET auto_tl_slave_xing_in_d_bits_data[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 300390 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[30] + NET auto_tl_slave_xing_in_d_bits_data[30] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 1710 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[31] + NET auto_tl_slave_xing_in_d_bits_data[31] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 356630 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[3] + NET auto_tl_slave_xing_in_d_bits_data[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 206220 ) N ; + - auto_tl_slave_xing_in_d_bits_data[4] + NET auto_tl_slave_xing_in_d_bits_data[4] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 339500 ) N ; + - auto_tl_slave_xing_in_d_bits_data[5] + NET auto_tl_slave_xing_in_d_bits_data[5] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 98700 ) N ; + - auto_tl_slave_xing_in_d_bits_data[6] + NET auto_tl_slave_xing_in_d_bits_data[6] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 154700 ) N ; + - auto_tl_slave_xing_in_d_bits_data[7] + NET auto_tl_slave_xing_in_d_bits_data[7] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 92150 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[8] + NET auto_tl_slave_xing_in_d_bits_data[8] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 35910 70 ) N ; + - auto_tl_slave_xing_in_d_bits_data[9] + NET auto_tl_slave_xing_in_d_bits_data[9] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 206910 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_denied + NET auto_tl_slave_xing_in_d_bits_denied + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 102030 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_opcode[0] + NET auto_tl_slave_xing_in_d_bits_opcode[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 251750 70 ) N ; + - auto_tl_slave_xing_in_d_bits_opcode[1] + NET auto_tl_slave_xing_in_d_bits_opcode[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 276070 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_opcode[2] + NET auto_tl_slave_xing_in_d_bits_opcode[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 139580 ) N ; + - auto_tl_slave_xing_in_d_bits_param[0] + NET auto_tl_slave_xing_in_d_bits_param[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 252140 ) N ; + - auto_tl_slave_xing_in_d_bits_param[1] + NET auto_tl_slave_xing_in_d_bits_param[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 308700 ) N ; + - auto_tl_slave_xing_in_d_bits_sink + NET auto_tl_slave_xing_in_d_bits_sink + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 98990 70 ) N ; + - auto_tl_slave_xing_in_d_bits_size[0] + NET auto_tl_slave_xing_in_d_bits_size[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 174990 70 ) N ; + - auto_tl_slave_xing_in_d_bits_size[1] + NET auto_tl_slave_xing_in_d_bits_size[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 47180 ) N ; + - auto_tl_slave_xing_in_d_bits_size[2] + NET auto_tl_slave_xing_in_d_bits_size[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 298620 ) N ; + - auto_tl_slave_xing_in_d_bits_source[0] + NET auto_tl_slave_xing_in_d_bits_source[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 279870 70 ) N ; + - auto_tl_slave_xing_in_d_bits_source[1] + NET auto_tl_slave_xing_in_d_bits_source[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 248710 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_source[2] + NET auto_tl_slave_xing_in_d_bits_source[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 241110 399930 ) N ; + - auto_tl_slave_xing_in_d_bits_source[3] + NET auto_tl_slave_xing_in_d_bits_source[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 329420 ) N ; + - auto_tl_slave_xing_in_d_bits_source[4] + NET auto_tl_slave_xing_in_d_bits_source[4] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 391020 ) N ; + - auto_tl_slave_xing_in_d_ready + NET auto_tl_slave_xing_in_d_ready + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal2 ( -70 -70 ) ( 70 70 ) + + PLACED ( 335350 70 ) N ; + - auto_tl_slave_xing_in_d_valid + NET auto_tl_slave_xing_in_d_valid + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 83020 ) N ; + - clock + NET clock + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 70 287980 ) N ; + - reset + NET reset + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER metal3 ( -70 -70 ) ( 70 70 ) + + PLACED ( 399930 221340 ) N ; +END PINS +BLOCKAGES 1 ; + - LAYER metal4 RECT ( 76000 99000 ) ( 80000 210000 ) ; +END BLOCKAGES +SPECIALNETS 2 ; + - VDD ( * VDD ) + USE POWER + + ROUTED metal6 10000 + SHAPE STRIPE ( 139070 95030 ) ( 139070 218570 ) + NEW metal6 5000 + SHAPE STRIPE ( 47790 95030 ) ( 47790 218570 ) + NEW metal7 2800 + SHAPE STRIPE ( 94280 326000 ) ( 244280 326000 ) + NEW metal7 2800 + SHAPE STRIPE ( 94280 246000 ) ( 244280 246000 ) + NEW metal7 2800 + SHAPE STRIPE ( 94280 86000 ) ( 244280 86000 ) + NEW metal7 2800 + SHAPE STRIPE ( 45290 166000 ) ( 244280 166000 ) + NEW metal6 20000 + SHAPE STRIPE ( 234280 44630 ) ( 234280 358570 ) + NEW metal6 20000 + SHAPE STRIPE ( 104280 44630 ) ( 104280 358570 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 212800 ) ( 359860 212800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 207200 ) ( 359860 207200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 201600 ) ( 359860 201600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 196000 ) ( 359860 196000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 190400 ) ( 359860 190400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 184800 ) ( 359860 184800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 179200 ) ( 359860 179200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 173600 ) ( 359860 173600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 168000 ) ( 359860 168000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 162400 ) ( 359860 162400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 156800 ) ( 359860 156800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 151200 ) ( 359860 151200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 145600 ) ( 359860 145600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 140000 ) ( 359860 140000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 134400 ) ( 359860 134400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 128800 ) ( 359860 128800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 123200 ) ( 359860 123200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 117600 ) ( 359860 117600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 112000 ) ( 359860 112000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 106400 ) ( 359860 106400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 100800 ) ( 359860 100800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 212800 ) ( 165680 212800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 207200 ) ( 165680 207200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 201600 ) ( 165680 201600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 196000 ) ( 165680 196000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 190400 ) ( 165680 190400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 184800 ) ( 165680 184800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 179200 ) ( 165680 179200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 173600 ) ( 165680 173600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 168000 ) ( 165680 168000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 162400 ) ( 165680 162400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 156800 ) ( 165680 156800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 151200 ) ( 165680 151200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 145600 ) ( 165680 145600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 140000 ) ( 165680 140000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 134400 ) ( 165680 134400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 128800 ) ( 165680 128800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 123200 ) ( 165680 123200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 117600 ) ( 165680 117600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 112000 ) ( 165680 112000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 106400 ) ( 165680 106400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 100800 ) ( 165680 100800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 358400 ) ( 359860 358400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 352800 ) ( 359860 352800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 347200 ) ( 359860 347200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 341600 ) ( 359860 341600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 336000 ) ( 359860 336000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 330400 ) ( 359860 330400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 324800 ) ( 359860 324800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 319200 ) ( 359860 319200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 313600 ) ( 359860 313600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 308000 ) ( 359860 308000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 302400 ) ( 359860 302400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 296800 ) ( 359860 296800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 291200 ) ( 359860 291200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 285600 ) ( 359860 285600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 280000 ) ( 359860 280000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 274400 ) ( 359860 274400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 268800 ) ( 359860 268800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 263200 ) ( 359860 263200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 257600 ) ( 359860 257600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 252000 ) ( 359860 252000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 246400 ) ( 359860 246400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 240800 ) ( 359860 240800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 235200 ) ( 359860 235200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 229600 ) ( 359860 229600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 224000 ) ( 359860 224000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 218400 ) ( 359860 218400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 212800 ) ( 78280 212800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 207200 ) ( 78280 207200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 201600 ) ( 78280 201600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 196000 ) ( 78280 196000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 190400 ) ( 78280 190400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 184800 ) ( 78280 184800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 179200 ) ( 78280 179200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 173600 ) ( 78280 173600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 168000 ) ( 78280 168000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 162400 ) ( 78280 162400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 156800 ) ( 78280 156800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 151200 ) ( 78280 151200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 145600 ) ( 78280 145600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 140000 ) ( 78280 140000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 134400 ) ( 78280 134400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 128800 ) ( 78280 128800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 123200 ) ( 78280 123200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 117600 ) ( 78280 117600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 112000 ) ( 78280 112000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 106400 ) ( 78280 106400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 100800 ) ( 78280 100800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 95200 ) ( 359860 95200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 89600 ) ( 359860 89600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 84000 ) ( 359860 84000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 78400 ) ( 359860 78400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 72800 ) ( 359860 72800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 67200 ) ( 359860 67200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 61600 ) ( 359860 61600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 56000 ) ( 359860 56000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 50400 ) ( 359860 50400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 44800 ) ( 359860 44800 ) + NEW metal6 0 + SHAPE STRIPE ( 234280 326000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 234280 246000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 234280 166000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 234280 86000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 139070 166000 ) via6_7_10000_2800_4_16_600_600 + NEW metal6 0 + SHAPE STRIPE ( 104280 326000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 104280 246000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 104280 166000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 104280 86000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 47790 166000 ) via6_7_5000_2800_4_8_600_600 + NEW metal5 0 + SHAPE STRIPE ( 234280 358400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 358400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 358400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 358400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 358400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 352800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 352800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 352800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 352800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 352800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 347200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 347200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 347200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 347200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 347200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 341600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 341600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 341600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 341600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 341600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 336000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 336000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 336000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 336000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 336000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 330400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 330400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 330400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 330400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 330400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 324800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 324800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 324800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 324800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 324800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 319200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 319200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 319200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 319200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 319200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 313600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 313600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 313600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 313600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 313600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 308000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 308000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 308000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 308000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 308000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 302400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 302400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 302400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 302400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 302400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 296800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 296800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 296800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 296800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 296800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 291200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 291200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 291200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 291200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 291200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 285600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 285600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 285600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 285600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 285600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 280000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 280000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 280000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 280000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 280000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 274400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 274400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 274400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 274400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 274400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 268800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 268800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 268800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 268800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 268800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 263200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 263200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 263200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 263200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 263200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 257600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 257600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 257600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 257600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 257600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 252000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 252000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 252000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 252000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 252000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 246400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 246400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 246400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 246400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 246400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 240800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 240800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 240800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 240800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 240800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 235200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 235200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 235200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 235200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 235200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 229600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 229600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 229600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 229600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 229600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 224000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 224000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 224000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 224000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 224000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 218400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 218400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 218400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 218400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 218400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 212800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 212800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 212800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 212800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 212800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 207200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 207200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 207200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 207200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 207200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 201600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 201600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 201600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 201600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 201600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 196000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 196000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 196000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 196000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 196000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 190400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 190400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 190400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 190400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 190400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 184800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 184800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 184800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 184800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 184800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 179200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 179200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 179200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 179200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 179200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 173600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 173600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 173600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 173600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 173600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 168000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 168000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 168000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 168000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 168000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 162400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 162400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 162400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 162400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 162400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 156800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 156800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 156800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 156800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 156800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 151200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 151200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 151200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 151200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 151200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 145600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 145600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 145600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 145600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 145600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 140000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 140000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 140000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 140000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 140000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 134400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 134400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 134400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 134400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 134400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 128800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 128800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 128800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 128800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 128800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 123200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 123200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 123200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 123200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 123200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 117600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 117600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 117600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 117600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 117600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 112000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 112000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 112000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 112000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 112000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 106400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 106400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 106400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 106400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 106400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 100800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 100800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 100800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 100800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 100800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 95200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 95200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 95200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 95200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 95200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 89600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 89600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 89600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 89600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 89600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 84000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 84000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 84000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 84000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 84000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 78400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 78400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 78400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 78400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 78400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 72800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 72800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 72800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 72800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 72800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 67200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 67200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 67200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 67200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 67200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 61600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 61600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 61600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 61600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 61600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 56000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 56000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 56000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 56000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 56000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 50400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 50400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 50400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 50400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 50400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 234280 44800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 234280 44800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 234280 44800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 234280 44800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 234280 44800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 218400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 218400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 218400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 218400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 218400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 212800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 212800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 212800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 212800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 212800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 207200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 207200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 207200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 207200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 207200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 201600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 201600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 201600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 201600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 201600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 196000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 196000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 196000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 196000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 196000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 190400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 190400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 190400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 190400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 190400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 184800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 184800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 184800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 184800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 184800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 179200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 179200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 179200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 179200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 179200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 173600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 173600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 173600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 173600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 173600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 168000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 168000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 168000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 168000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 168000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 162400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 162400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 162400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 162400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 162400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 156800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 156800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 156800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 156800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 156800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 151200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 151200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 151200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 151200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 151200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 145600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 145600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 145600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 145600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 145600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 140000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 140000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 140000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 140000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 140000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 134400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 134400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 134400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 134400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 134400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 128800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 128800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 128800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 128800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 128800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 123200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 123200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 123200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 123200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 123200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 117600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 117600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 117600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 117600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 117600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 112000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 112000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 112000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 112000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 112000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 106400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 106400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 106400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 106400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 106400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 100800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 100800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 100800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 100800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 100800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 139070 95200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 139070 95200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 139070 95200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 139070 95200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 139070 95200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 358400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 358400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 358400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 358400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 358400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 352800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 352800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 352800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 352800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 352800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 347200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 347200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 347200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 347200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 347200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 341600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 341600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 341600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 341600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 341600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 336000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 336000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 336000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 336000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 336000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 330400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 330400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 330400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 330400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 330400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 324800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 324800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 324800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 324800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 324800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 319200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 319200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 319200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 319200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 319200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 313600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 313600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 313600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 313600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 313600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 308000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 308000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 308000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 308000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 308000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 302400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 302400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 302400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 302400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 302400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 296800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 296800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 296800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 296800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 296800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 291200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 291200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 291200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 291200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 291200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 285600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 285600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 285600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 285600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 285600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 280000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 280000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 280000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 280000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 280000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 274400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 274400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 274400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 274400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 274400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 268800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 268800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 268800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 268800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 268800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 263200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 263200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 263200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 263200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 263200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 257600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 257600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 257600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 257600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 257600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 252000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 252000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 252000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 252000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 252000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 246400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 246400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 246400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 246400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 246400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 240800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 240800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 240800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 240800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 240800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 235200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 235200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 235200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 235200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 235200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 229600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 229600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 229600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 229600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 229600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 224000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 224000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 224000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 224000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 224000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 218400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 218400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 218400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 218400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 218400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 95200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 95200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 95200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 95200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 95200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 89600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 89600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 89600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 89600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 89600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 84000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 84000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 84000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 84000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 84000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 78400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 78400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 78400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 78400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 78400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 72800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 72800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 72800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 72800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 72800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 67200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 67200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 67200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 67200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 67200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 61600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 61600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 61600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 61600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 61600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 56000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 56000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 56000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 56000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 56000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 50400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 50400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 50400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 50400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 50400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 104280 44800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 104280 44800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 104280 44800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 104280 44800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 104280 44800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 218400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 218400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 218400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 218400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 218400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 212800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 212800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 212800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 212800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 212800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 207200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 207200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 207200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 207200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 207200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 201600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 201600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 201600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 201600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 201600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 196000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 196000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 196000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 196000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 196000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 190400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 190400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 190400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 190400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 190400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 184800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 184800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 184800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 184800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 184800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 179200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 179200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 179200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 179200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 179200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 173600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 173600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 173600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 173600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 173600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 168000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 168000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 168000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 168000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 168000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 162400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 162400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 162400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 162400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 162400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 156800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 156800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 156800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 156800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 156800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 151200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 151200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 151200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 151200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 151200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 145600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 145600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 145600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 145600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 145600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 140000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 140000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 140000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 140000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 140000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 134400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 134400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 134400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 134400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 134400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 128800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 128800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 128800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 128800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 128800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 123200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 123200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 123200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 123200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 123200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 117600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 117600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 117600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 117600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 117600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 112000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 112000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 112000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 112000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 112000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 106400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 106400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 106400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 106400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 106400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 100800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 100800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 100800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 100800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 100800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 47790 95200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 47790 95200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 47790 95200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 47790 95200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 47790 95200 ) via1_2_5000_340_1_16_300_300 ; + - VSS ( * VSS ) + USE GROUND + + ROUTED metal6 10000 + SHAPE STRIPE ( 152510 92230 ) ( 152510 221370 ) + NEW metal6 5000 + SHAPE STRIPE ( 56190 97830 ) ( 56190 215770 ) + NEW metal7 2800 + SHAPE STRIPE ( 66280 286000 ) ( 346280 286000 ) + NEW metal7 2800 + SHAPE STRIPE ( 66280 46000 ) ( 346280 46000 ) + NEW metal7 2800 + SHAPE STRIPE ( 53690 206000 ) ( 346280 206000 ) + NEW metal7 2800 + SHAPE STRIPE ( 53690 126000 ) ( 346280 126000 ) + NEW metal6 20000 + SHAPE STRIPE ( 336280 41830 ) ( 336280 355770 ) + NEW metal6 20000 + SHAPE STRIPE ( 206280 41830 ) ( 206280 355770 ) + NEW metal6 20000 + SHAPE STRIPE ( 76280 41830 ) ( 76280 355770 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 210000 ) ( 359860 210000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 204400 ) ( 359860 204400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 198800 ) ( 359860 198800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 193200 ) ( 359860 193200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 187600 ) ( 359860 187600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 182000 ) ( 359860 182000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 176400 ) ( 359860 176400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 170800 ) ( 359860 170800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 165200 ) ( 359860 165200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 159600 ) ( 359860 159600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 154000 ) ( 359860 154000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 148400 ) ( 359860 148400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 142800 ) ( 359860 142800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 137200 ) ( 359860 137200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 131600 ) ( 359860 131600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 126000 ) ( 359860 126000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 120400 ) ( 359860 120400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 114800 ) ( 359860 114800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 109200 ) ( 359860 109200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 212420 103600 ) ( 359860 103600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 196280 215600 ) ( 359860 215600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 196280 98000 ) ( 359860 98000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 215600 ) ( 165680 215600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 210000 ) ( 165680 210000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 204400 ) ( 165680 204400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 198800 ) ( 165680 198800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 193200 ) ( 165680 193200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 187600 ) ( 165680 187600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 182000 ) ( 165680 182000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 176400 ) ( 165680 176400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 170800 ) ( 165680 170800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 165200 ) ( 165680 165200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 159600 ) ( 165680 159600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 154000 ) ( 165680 154000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 148400 ) ( 165680 148400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 142800 ) ( 165680 142800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 137200 ) ( 165680 137200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 131600 ) ( 165680 131600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 126000 ) ( 165680 126000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 120400 ) ( 165680 120400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 114800 ) ( 165680 114800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 109200 ) ( 165680 109200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 103600 ) ( 165680 103600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 125020 98000 ) ( 165680 98000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 355600 ) ( 359860 355600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 350000 ) ( 359860 350000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 344400 ) ( 359860 344400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 338800 ) ( 359860 338800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 333200 ) ( 359860 333200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 327600 ) ( 359860 327600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 322000 ) ( 359860 322000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 316400 ) ( 359860 316400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 310800 ) ( 359860 310800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 305200 ) ( 359860 305200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 299600 ) ( 359860 299600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 294000 ) ( 359860 294000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 288400 ) ( 359860 288400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 282800 ) ( 359860 282800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 277200 ) ( 359860 277200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 271600 ) ( 359860 271600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 266000 ) ( 359860 266000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 260400 ) ( 359860 260400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 254800 ) ( 359860 254800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 249200 ) ( 359860 249200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 243600 ) ( 359860 243600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 238000 ) ( 359860 238000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 232400 ) ( 359860 232400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 226800 ) ( 359860 226800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 221200 ) ( 359860 221200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 215600 ) ( 86280 215600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 210000 ) ( 78280 210000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 204400 ) ( 78280 204400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 198800 ) ( 78280 198800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 193200 ) ( 78280 193200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 187600 ) ( 78280 187600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 182000 ) ( 78280 182000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 176400 ) ( 78280 176400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 170800 ) ( 78280 170800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 165200 ) ( 78280 165200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 159600 ) ( 78280 159600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 154000 ) ( 78280 154000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 148400 ) ( 78280 148400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 142800 ) ( 78280 142800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 137200 ) ( 78280 137200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 131600 ) ( 78280 131600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 126000 ) ( 78280 126000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 120400 ) ( 78280 120400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 114800 ) ( 78280 114800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 109200 ) ( 78280 109200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 103600 ) ( 78280 103600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 98000 ) ( 86280 98000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 92400 ) ( 359860 92400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 86800 ) ( 359860 86800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 81200 ) ( 359860 81200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 75600 ) ( 359860 75600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 70000 ) ( 359860 70000 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 64400 ) ( 359860 64400 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 58800 ) ( 359860 58800 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 53200 ) ( 359860 53200 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 47600 ) ( 359860 47600 ) + NEW metal1 340 + SHAPE FOLLOWPIN ( 40280 42000 ) ( 359860 42000 ) + NEW metal6 0 + SHAPE STRIPE ( 336280 286000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 336280 206000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 336280 126000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 336280 46000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 206280 286000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 206280 206000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 206280 126000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 206280 46000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 152510 206000 ) via6_7_10000_2800_4_16_600_600 + NEW metal6 0 + SHAPE STRIPE ( 152510 126000 ) via6_7_10000_2800_4_16_600_600 + NEW metal6 0 + SHAPE STRIPE ( 76280 286000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 76280 206000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 76280 126000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 76280 46000 ) via6_7_20000_2800_4_33_600_600 + NEW metal6 0 + SHAPE STRIPE ( 56190 206000 ) via6_7_5000_2800_4_8_600_600 + NEW metal6 0 + SHAPE STRIPE ( 56190 126000 ) via6_7_5000_2800_4_8_600_600 + NEW metal5 0 + SHAPE STRIPE ( 336280 355600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 355600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 355600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 355600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 355600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 350000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 350000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 350000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 350000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 350000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 344400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 344400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 344400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 344400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 344400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 338800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 338800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 338800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 338800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 338800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 333200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 333200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 333200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 333200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 333200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 327600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 327600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 327600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 327600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 327600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 322000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 322000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 322000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 322000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 322000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 316400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 316400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 316400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 316400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 316400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 310800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 310800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 310800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 310800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 310800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 305200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 305200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 305200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 305200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 305200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 299600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 299600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 299600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 299600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 299600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 294000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 294000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 294000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 294000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 294000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 288400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 288400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 288400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 288400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 288400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 282800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 282800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 282800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 282800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 282800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 277200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 277200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 277200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 277200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 277200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 271600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 271600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 271600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 271600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 271600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 266000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 266000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 266000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 266000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 266000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 260400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 260400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 260400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 260400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 260400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 254800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 254800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 254800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 254800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 254800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 249200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 249200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 249200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 249200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 249200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 243600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 243600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 243600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 243600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 243600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 238000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 238000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 238000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 238000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 238000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 232400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 232400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 232400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 232400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 232400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 226800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 226800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 226800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 226800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 226800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 221200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 221200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 221200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 221200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 221200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 215600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 215600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 215600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 215600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 215600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 210000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 210000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 210000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 210000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 210000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 204400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 204400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 204400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 204400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 204400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 198800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 198800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 198800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 198800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 198800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 193200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 193200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 193200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 193200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 193200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 187600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 187600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 187600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 187600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 187600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 182000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 182000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 182000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 182000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 182000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 176400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 176400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 176400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 176400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 176400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 170800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 170800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 170800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 170800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 170800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 165200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 165200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 165200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 165200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 165200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 159600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 159600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 159600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 159600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 159600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 154000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 154000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 154000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 154000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 154000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 148400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 148400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 148400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 148400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 148400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 142800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 142800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 142800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 142800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 142800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 137200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 137200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 137200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 137200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 137200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 131600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 131600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 131600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 131600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 131600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 126000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 126000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 126000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 126000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 126000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 120400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 120400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 120400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 120400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 120400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 114800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 114800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 114800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 114800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 114800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 109200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 109200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 109200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 109200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 109200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 103600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 103600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 103600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 103600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 103600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 98000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 98000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 98000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 98000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 98000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 92400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 92400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 92400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 92400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 92400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 86800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 86800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 86800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 86800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 86800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 81200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 81200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 81200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 81200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 81200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 75600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 75600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 75600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 75600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 75600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 70000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 70000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 70000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 70000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 70000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 64400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 64400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 64400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 64400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 64400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 58800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 58800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 58800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 58800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 58800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 53200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 53200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 53200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 53200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 53200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 47600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 47600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 47600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 47600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 47600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 336280 42000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 336280 42000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 336280 42000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 336280 42000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 336280 42000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 210000 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 210000 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 210000 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 210000 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 210000 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 204400 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 204400 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 204400 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 204400 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 204400 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 198800 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 198800 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 198800 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 198800 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 198800 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 193200 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 193200 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 193200 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 193200 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 193200 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 187600 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 187600 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 187600 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 187600 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 187600 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 182000 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 182000 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 182000 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 182000 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 182000 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 176400 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 176400 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 176400 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 176400 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 176400 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 170800 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 170800 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 170800 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 170800 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 170800 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 165200 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 165200 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 165200 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 165200 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 165200 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 159600 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 159600 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 159600 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 159600 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 159600 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 154000 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 154000 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 154000 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 154000 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 154000 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 148400 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 148400 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 148400 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 148400 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 148400 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 142800 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 142800 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 142800 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 142800 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 142800 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 137200 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 137200 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 137200 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 137200 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 137200 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 131600 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 131600 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 131600 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 131600 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 131600 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 126000 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 126000 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 126000 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 126000 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 126000 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 120400 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 120400 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 120400 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 120400 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 120400 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 114800 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 114800 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 114800 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 114800 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 114800 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 109200 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 109200 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 109200 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 109200 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 109200 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 214350 103600 ) via5_6_3860_340_1_6_600_600 + NEW metal4 0 + SHAPE STRIPE ( 214350 103600 ) via4_5_3860_340_1_6_600_600 + NEW metal3 0 + SHAPE STRIPE ( 214350 103600 ) via3_4_3860_340_1_12_320_320 + NEW metal2 0 + SHAPE STRIPE ( 214350 103600 ) via2_3_3860_340_1_12_320_320 + NEW metal1 0 + SHAPE STRIPE ( 214350 103600 ) via1_2_3860_340_1_12_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 355600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 355600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 355600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 355600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 355600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 350000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 350000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 350000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 350000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 350000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 344400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 344400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 344400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 344400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 344400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 338800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 338800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 338800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 338800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 338800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 333200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 333200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 333200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 333200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 333200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 327600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 327600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 327600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 327600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 327600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 322000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 322000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 322000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 322000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 322000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 316400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 316400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 316400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 316400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 316400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 310800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 310800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 310800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 310800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 310800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 305200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 305200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 305200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 305200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 305200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 299600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 299600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 299600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 299600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 299600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 294000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 294000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 294000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 294000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 294000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 288400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 288400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 288400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 288400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 288400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 282800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 282800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 282800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 282800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 282800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 277200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 277200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 277200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 277200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 277200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 271600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 271600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 271600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 271600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 271600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 266000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 266000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 266000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 266000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 266000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 260400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 260400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 260400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 260400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 260400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 254800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 254800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 254800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 254800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 254800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 249200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 249200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 249200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 249200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 249200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 243600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 243600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 243600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 243600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 243600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 238000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 238000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 238000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 238000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 238000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 232400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 232400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 232400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 232400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 232400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 226800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 226800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 226800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 226800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 226800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 221200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 221200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 221200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 221200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 221200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 215600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 215600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 215600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 215600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 215600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 98000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 98000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 98000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 98000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 98000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 92400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 92400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 92400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 92400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 92400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 86800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 86800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 86800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 86800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 86800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 81200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 81200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 81200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 81200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 81200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 75600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 75600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 75600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 75600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 75600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 70000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 70000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 70000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 70000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 70000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 64400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 64400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 64400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 64400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 64400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 58800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 58800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 58800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 58800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 58800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 53200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 53200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 53200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 53200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 53200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 47600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 47600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 47600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 47600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 47600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 206280 42000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 206280 42000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 206280 42000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 206280 42000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 206280 42000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 221200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 221200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 221200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 221200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 221200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 215600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 215600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 215600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 215600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 215600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 210000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 210000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 210000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 210000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 210000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 204400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 204400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 204400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 204400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 204400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 198800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 198800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 198800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 198800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 198800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 193200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 193200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 193200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 193200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 193200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 187600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 187600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 187600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 187600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 187600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 182000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 182000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 182000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 182000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 182000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 176400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 176400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 176400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 176400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 176400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 170800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 170800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 170800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 170800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 170800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 165200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 165200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 165200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 165200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 165200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 159600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 159600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 159600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 159600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 159600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 154000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 154000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 154000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 154000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 154000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 148400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 148400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 148400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 148400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 148400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 142800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 142800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 142800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 142800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 142800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 137200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 137200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 137200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 137200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 137200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 131600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 131600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 131600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 131600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 131600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 126000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 126000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 126000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 126000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 126000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 120400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 120400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 120400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 120400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 120400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 114800 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 114800 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 114800 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 114800 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 114800 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 109200 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 109200 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 109200 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 109200 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 109200 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 103600 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 103600 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 103600 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 103600 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 103600 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 98000 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 98000 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 98000 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 98000 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 98000 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 152510 92400 ) via5_6_10000_340_1_17_600_600 + NEW metal4 0 + SHAPE STRIPE ( 152510 92400 ) via4_5_10000_340_1_17_600_600 + NEW metal3 0 + SHAPE STRIPE ( 152510 92400 ) via3_4_10000_340_1_31_320_320 + NEW metal2 0 + SHAPE STRIPE ( 152510 92400 ) via2_3_10000_340_1_31_320_320 + NEW metal1 0 + SHAPE STRIPE ( 152510 92400 ) via1_2_10000_340_1_33_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 355600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 355600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 355600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 355600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 355600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 350000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 350000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 350000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 350000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 350000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 344400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 344400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 344400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 344400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 344400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 338800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 338800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 338800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 338800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 338800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 333200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 333200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 333200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 333200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 333200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 327600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 327600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 327600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 327600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 327600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 322000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 322000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 322000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 322000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 322000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 316400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 316400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 316400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 316400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 316400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 310800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 310800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 310800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 310800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 310800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 305200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 305200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 305200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 305200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 305200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 299600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 299600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 299600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 299600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 299600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 294000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 294000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 294000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 294000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 294000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 288400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 288400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 288400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 288400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 288400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 282800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 282800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 282800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 282800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 282800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 277200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 277200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 277200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 277200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 277200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 271600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 271600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 271600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 271600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 271600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 266000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 266000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 266000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 266000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 266000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 260400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 260400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 260400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 260400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 260400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 254800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 254800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 254800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 254800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 254800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 249200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 249200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 249200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 249200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 249200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 243600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 243600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 243600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 243600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 243600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 238000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 238000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 238000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 238000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 238000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 232400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 232400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 232400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 232400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 232400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 226800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 226800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 226800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 226800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 226800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 221200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 221200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 221200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 221200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 221200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 215600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 215600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 215600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 215600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 215600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 98000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 98000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 98000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 98000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 98000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 92400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 92400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 92400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 92400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 92400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 86800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 86800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 86800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 86800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 86800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 81200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 81200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 81200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 81200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 81200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 75600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 75600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 75600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 75600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 75600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 70000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 70000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 70000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 70000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 70000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 64400 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 64400 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 64400 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 64400 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 64400 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 58800 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 58800 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 58800 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 58800 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 58800 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 53200 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 53200 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 53200 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 53200 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 53200 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 47600 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 47600 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 47600 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 47600 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 47600 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 76280 42000 ) via5_6_20000_340_1_33_600_600 + NEW metal4 0 + SHAPE STRIPE ( 76280 42000 ) via4_5_20000_340_1_33_600_600 + NEW metal3 0 + SHAPE STRIPE ( 76280 42000 ) via3_4_20000_340_1_62_320_320 + NEW metal2 0 + SHAPE STRIPE ( 76280 42000 ) via2_3_20000_340_1_62_320_320 + NEW metal1 0 + SHAPE STRIPE ( 76280 42000 ) via1_2_20000_340_1_66_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 215600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 215600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 215600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 215600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 215600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 210000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 210000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 210000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 210000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 210000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 204400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 204400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 204400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 204400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 204400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 198800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 198800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 198800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 198800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 198800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 193200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 193200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 193200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 193200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 193200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 187600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 187600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 187600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 187600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 187600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 182000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 182000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 182000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 182000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 182000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 176400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 176400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 176400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 176400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 176400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 170800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 170800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 170800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 170800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 170800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 165200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 165200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 165200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 165200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 165200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 159600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 159600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 159600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 159600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 159600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 154000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 154000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 154000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 154000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 154000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 148400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 148400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 148400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 148400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 148400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 142800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 142800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 142800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 142800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 142800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 137200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 137200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 137200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 137200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 137200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 131600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 131600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 131600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 131600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 131600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 126000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 126000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 126000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 126000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 126000 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 120400 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 120400 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 120400 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 120400 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 120400 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 114800 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 114800 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 114800 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 114800 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 114800 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 109200 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 109200 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 109200 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 109200 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 109200 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 103600 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 103600 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 103600 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 103600 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 103600 ) via1_2_5000_340_1_16_300_300 + NEW metal5 0 + SHAPE STRIPE ( 56190 98000 ) via5_6_5000_340_1_8_600_600 + NEW metal4 0 + SHAPE STRIPE ( 56190 98000 ) via4_5_5000_340_1_8_600_600 + NEW metal3 0 + SHAPE STRIPE ( 56190 98000 ) via3_4_5000_340_1_15_320_320 + NEW metal2 0 + SHAPE STRIPE ( 56190 98000 ) via2_3_5000_340_1_15_320_320 + NEW metal1 0 + SHAPE STRIPE ( 56190 98000 ) via1_2_5000_340_1_16_300_300 ; +END SPECIALNETS +NETS 269 ; + - auto_int_in_xing_in_0_sync_0 ( PIN auto_int_in_xing_in_0_sync_0 ) + USE SIGNAL ; + - auto_int_in_xing_in_0_sync_1 ( PIN auto_int_in_xing_in_0_sync_1 ) + USE SIGNAL ; + - auto_int_in_xing_in_1_sync_0 ( PIN auto_int_in_xing_in_1_sync_0 ) + USE SIGNAL ; + - auto_intsink_in_sync_0 ( PIN auto_intsink_in_sync_0 ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[0] ( PIN auto_tl_master_xing_out_a_bits_address[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[10] ( PIN auto_tl_master_xing_out_a_bits_address[10] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[11] ( PIN auto_tl_master_xing_out_a_bits_address[11] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[12] ( PIN auto_tl_master_xing_out_a_bits_address[12] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[13] ( PIN auto_tl_master_xing_out_a_bits_address[13] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[14] ( PIN auto_tl_master_xing_out_a_bits_address[14] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[15] ( PIN auto_tl_master_xing_out_a_bits_address[15] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[16] ( PIN auto_tl_master_xing_out_a_bits_address[16] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[17] ( PIN auto_tl_master_xing_out_a_bits_address[17] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[18] ( PIN auto_tl_master_xing_out_a_bits_address[18] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[19] ( PIN auto_tl_master_xing_out_a_bits_address[19] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[1] ( PIN auto_tl_master_xing_out_a_bits_address[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[20] ( PIN auto_tl_master_xing_out_a_bits_address[20] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[21] ( PIN auto_tl_master_xing_out_a_bits_address[21] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[22] ( PIN auto_tl_master_xing_out_a_bits_address[22] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[23] ( PIN auto_tl_master_xing_out_a_bits_address[23] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[24] ( PIN auto_tl_master_xing_out_a_bits_address[24] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[25] ( PIN auto_tl_master_xing_out_a_bits_address[25] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[26] ( PIN auto_tl_master_xing_out_a_bits_address[26] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[27] ( PIN auto_tl_master_xing_out_a_bits_address[27] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[28] ( PIN auto_tl_master_xing_out_a_bits_address[28] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[29] ( PIN auto_tl_master_xing_out_a_bits_address[29] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[2] ( PIN auto_tl_master_xing_out_a_bits_address[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[30] ( PIN auto_tl_master_xing_out_a_bits_address[30] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[31] ( PIN auto_tl_master_xing_out_a_bits_address[31] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[3] ( PIN auto_tl_master_xing_out_a_bits_address[3] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[4] ( PIN auto_tl_master_xing_out_a_bits_address[4] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[5] ( PIN auto_tl_master_xing_out_a_bits_address[5] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[6] ( PIN auto_tl_master_xing_out_a_bits_address[6] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[7] ( PIN auto_tl_master_xing_out_a_bits_address[7] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[8] ( PIN auto_tl_master_xing_out_a_bits_address[8] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_address[9] ( PIN auto_tl_master_xing_out_a_bits_address[9] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_corrupt ( PIN auto_tl_master_xing_out_a_bits_corrupt ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[0] ( PIN auto_tl_master_xing_out_a_bits_data[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[10] ( PIN auto_tl_master_xing_out_a_bits_data[10] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[11] ( PIN auto_tl_master_xing_out_a_bits_data[11] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[12] ( PIN auto_tl_master_xing_out_a_bits_data[12] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[13] ( PIN auto_tl_master_xing_out_a_bits_data[13] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[14] ( PIN auto_tl_master_xing_out_a_bits_data[14] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[15] ( PIN auto_tl_master_xing_out_a_bits_data[15] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[16] ( PIN auto_tl_master_xing_out_a_bits_data[16] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[17] ( PIN auto_tl_master_xing_out_a_bits_data[17] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[18] ( PIN auto_tl_master_xing_out_a_bits_data[18] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[19] ( PIN auto_tl_master_xing_out_a_bits_data[19] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[1] ( PIN auto_tl_master_xing_out_a_bits_data[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[20] ( PIN auto_tl_master_xing_out_a_bits_data[20] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[21] ( PIN auto_tl_master_xing_out_a_bits_data[21] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[22] ( PIN auto_tl_master_xing_out_a_bits_data[22] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[23] ( PIN auto_tl_master_xing_out_a_bits_data[23] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[24] ( PIN auto_tl_master_xing_out_a_bits_data[24] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[25] ( PIN auto_tl_master_xing_out_a_bits_data[25] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[26] ( PIN auto_tl_master_xing_out_a_bits_data[26] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[27] ( PIN auto_tl_master_xing_out_a_bits_data[27] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[28] ( PIN auto_tl_master_xing_out_a_bits_data[28] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[29] ( PIN auto_tl_master_xing_out_a_bits_data[29] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[2] ( PIN auto_tl_master_xing_out_a_bits_data[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[30] ( PIN auto_tl_master_xing_out_a_bits_data[30] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[31] ( PIN auto_tl_master_xing_out_a_bits_data[31] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[3] ( PIN auto_tl_master_xing_out_a_bits_data[3] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[4] ( PIN auto_tl_master_xing_out_a_bits_data[4] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[5] ( PIN auto_tl_master_xing_out_a_bits_data[5] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[6] ( PIN auto_tl_master_xing_out_a_bits_data[6] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[7] ( PIN auto_tl_master_xing_out_a_bits_data[7] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[8] ( PIN auto_tl_master_xing_out_a_bits_data[8] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_data[9] ( PIN auto_tl_master_xing_out_a_bits_data[9] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_mask[0] ( PIN auto_tl_master_xing_out_a_bits_mask[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_mask[1] ( PIN auto_tl_master_xing_out_a_bits_mask[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_mask[2] ( PIN auto_tl_master_xing_out_a_bits_mask[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_mask[3] ( PIN auto_tl_master_xing_out_a_bits_mask[3] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_opcode[0] ( PIN auto_tl_master_xing_out_a_bits_opcode[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_opcode[1] ( PIN auto_tl_master_xing_out_a_bits_opcode[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_opcode[2] ( PIN auto_tl_master_xing_out_a_bits_opcode[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_param[0] ( PIN auto_tl_master_xing_out_a_bits_param[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_param[1] ( PIN auto_tl_master_xing_out_a_bits_param[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_param[2] ( PIN auto_tl_master_xing_out_a_bits_param[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_size[0] ( PIN auto_tl_master_xing_out_a_bits_size[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_size[1] ( PIN auto_tl_master_xing_out_a_bits_size[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_size[2] ( PIN auto_tl_master_xing_out_a_bits_size[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_size[3] ( PIN auto_tl_master_xing_out_a_bits_size[3] ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_bits_source ( PIN auto_tl_master_xing_out_a_bits_source ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_ready ( PIN auto_tl_master_xing_out_a_ready ) + USE SIGNAL ; + - auto_tl_master_xing_out_a_valid ( PIN auto_tl_master_xing_out_a_valid ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_corrupt ( PIN auto_tl_master_xing_out_d_bits_corrupt ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[0] ( PIN auto_tl_master_xing_out_d_bits_data[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[10] ( PIN auto_tl_master_xing_out_d_bits_data[10] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[11] ( PIN auto_tl_master_xing_out_d_bits_data[11] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[12] ( PIN auto_tl_master_xing_out_d_bits_data[12] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[13] ( PIN auto_tl_master_xing_out_d_bits_data[13] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[14] ( PIN auto_tl_master_xing_out_d_bits_data[14] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[15] ( PIN auto_tl_master_xing_out_d_bits_data[15] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[16] ( PIN auto_tl_master_xing_out_d_bits_data[16] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[17] ( PIN auto_tl_master_xing_out_d_bits_data[17] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[18] ( PIN auto_tl_master_xing_out_d_bits_data[18] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[19] ( PIN auto_tl_master_xing_out_d_bits_data[19] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[1] ( PIN auto_tl_master_xing_out_d_bits_data[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[20] ( PIN auto_tl_master_xing_out_d_bits_data[20] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[21] ( PIN auto_tl_master_xing_out_d_bits_data[21] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[22] ( PIN auto_tl_master_xing_out_d_bits_data[22] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[23] ( PIN auto_tl_master_xing_out_d_bits_data[23] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[24] ( PIN auto_tl_master_xing_out_d_bits_data[24] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[25] ( PIN auto_tl_master_xing_out_d_bits_data[25] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[26] ( PIN auto_tl_master_xing_out_d_bits_data[26] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[27] ( PIN auto_tl_master_xing_out_d_bits_data[27] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[28] ( PIN auto_tl_master_xing_out_d_bits_data[28] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[29] ( PIN auto_tl_master_xing_out_d_bits_data[29] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[2] ( PIN auto_tl_master_xing_out_d_bits_data[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[30] ( PIN auto_tl_master_xing_out_d_bits_data[30] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[31] ( PIN auto_tl_master_xing_out_d_bits_data[31] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[3] ( PIN auto_tl_master_xing_out_d_bits_data[3] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[4] ( PIN auto_tl_master_xing_out_d_bits_data[4] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[5] ( PIN auto_tl_master_xing_out_d_bits_data[5] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[6] ( PIN auto_tl_master_xing_out_d_bits_data[6] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[7] ( PIN auto_tl_master_xing_out_d_bits_data[7] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[8] ( PIN auto_tl_master_xing_out_d_bits_data[8] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_data[9] ( PIN auto_tl_master_xing_out_d_bits_data[9] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_denied ( PIN auto_tl_master_xing_out_d_bits_denied ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_opcode[0] ( PIN auto_tl_master_xing_out_d_bits_opcode[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_opcode[1] ( PIN auto_tl_master_xing_out_d_bits_opcode[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_opcode[2] ( PIN auto_tl_master_xing_out_d_bits_opcode[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_param[0] ( PIN auto_tl_master_xing_out_d_bits_param[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_param[1] ( PIN auto_tl_master_xing_out_d_bits_param[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_sink ( PIN auto_tl_master_xing_out_d_bits_sink ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_size[0] ( PIN auto_tl_master_xing_out_d_bits_size[0] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_size[1] ( PIN auto_tl_master_xing_out_d_bits_size[1] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_size[2] ( PIN auto_tl_master_xing_out_d_bits_size[2] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_size[3] ( PIN auto_tl_master_xing_out_d_bits_size[3] ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_bits_source ( PIN auto_tl_master_xing_out_d_bits_source ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_ready ( PIN auto_tl_master_xing_out_d_ready ) + USE SIGNAL ; + - auto_tl_master_xing_out_d_valid ( PIN auto_tl_master_xing_out_d_valid ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[0] ( PIN auto_tl_slave_xing_in_a_bits_address[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[10] ( PIN auto_tl_slave_xing_in_a_bits_address[10] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[11] ( PIN auto_tl_slave_xing_in_a_bits_address[11] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[12] ( PIN auto_tl_slave_xing_in_a_bits_address[12] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[13] ( PIN auto_tl_slave_xing_in_a_bits_address[13] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[14] ( PIN auto_tl_slave_xing_in_a_bits_address[14] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[15] ( PIN auto_tl_slave_xing_in_a_bits_address[15] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[16] ( PIN auto_tl_slave_xing_in_a_bits_address[16] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[17] ( PIN auto_tl_slave_xing_in_a_bits_address[17] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[18] ( PIN auto_tl_slave_xing_in_a_bits_address[18] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[19] ( PIN auto_tl_slave_xing_in_a_bits_address[19] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[1] ( PIN auto_tl_slave_xing_in_a_bits_address[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[20] ( PIN auto_tl_slave_xing_in_a_bits_address[20] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[21] ( PIN auto_tl_slave_xing_in_a_bits_address[21] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[22] ( PIN auto_tl_slave_xing_in_a_bits_address[22] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[23] ( PIN auto_tl_slave_xing_in_a_bits_address[23] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[24] ( PIN auto_tl_slave_xing_in_a_bits_address[24] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[25] ( PIN auto_tl_slave_xing_in_a_bits_address[25] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[26] ( PIN auto_tl_slave_xing_in_a_bits_address[26] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[27] ( PIN auto_tl_slave_xing_in_a_bits_address[27] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[28] ( PIN auto_tl_slave_xing_in_a_bits_address[28] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[29] ( PIN auto_tl_slave_xing_in_a_bits_address[29] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[2] ( PIN auto_tl_slave_xing_in_a_bits_address[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[30] ( PIN auto_tl_slave_xing_in_a_bits_address[30] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[31] ( PIN auto_tl_slave_xing_in_a_bits_address[31] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[3] ( PIN auto_tl_slave_xing_in_a_bits_address[3] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[4] ( PIN auto_tl_slave_xing_in_a_bits_address[4] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[5] ( PIN auto_tl_slave_xing_in_a_bits_address[5] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[6] ( PIN auto_tl_slave_xing_in_a_bits_address[6] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[7] ( PIN auto_tl_slave_xing_in_a_bits_address[7] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[8] ( PIN auto_tl_slave_xing_in_a_bits_address[8] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_address[9] ( PIN auto_tl_slave_xing_in_a_bits_address[9] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[0] ( PIN auto_tl_slave_xing_in_a_bits_data[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[10] ( PIN auto_tl_slave_xing_in_a_bits_data[10] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[11] ( PIN auto_tl_slave_xing_in_a_bits_data[11] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[12] ( PIN auto_tl_slave_xing_in_a_bits_data[12] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[13] ( PIN auto_tl_slave_xing_in_a_bits_data[13] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[14] ( PIN auto_tl_slave_xing_in_a_bits_data[14] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[15] ( PIN auto_tl_slave_xing_in_a_bits_data[15] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[16] ( PIN auto_tl_slave_xing_in_a_bits_data[16] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[17] ( PIN auto_tl_slave_xing_in_a_bits_data[17] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[18] ( PIN auto_tl_slave_xing_in_a_bits_data[18] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[19] ( PIN auto_tl_slave_xing_in_a_bits_data[19] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[1] ( PIN auto_tl_slave_xing_in_a_bits_data[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[20] ( PIN auto_tl_slave_xing_in_a_bits_data[20] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[21] ( PIN auto_tl_slave_xing_in_a_bits_data[21] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[22] ( PIN auto_tl_slave_xing_in_a_bits_data[22] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[23] ( PIN auto_tl_slave_xing_in_a_bits_data[23] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[24] ( PIN auto_tl_slave_xing_in_a_bits_data[24] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[25] ( PIN auto_tl_slave_xing_in_a_bits_data[25] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[26] ( PIN auto_tl_slave_xing_in_a_bits_data[26] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[27] ( PIN auto_tl_slave_xing_in_a_bits_data[27] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[28] ( PIN auto_tl_slave_xing_in_a_bits_data[28] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[29] ( PIN auto_tl_slave_xing_in_a_bits_data[29] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[2] ( PIN auto_tl_slave_xing_in_a_bits_data[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[30] ( PIN auto_tl_slave_xing_in_a_bits_data[30] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[31] ( PIN auto_tl_slave_xing_in_a_bits_data[31] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[3] ( PIN auto_tl_slave_xing_in_a_bits_data[3] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[4] ( PIN auto_tl_slave_xing_in_a_bits_data[4] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[5] ( PIN auto_tl_slave_xing_in_a_bits_data[5] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[6] ( PIN auto_tl_slave_xing_in_a_bits_data[6] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[7] ( PIN auto_tl_slave_xing_in_a_bits_data[7] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[8] ( PIN auto_tl_slave_xing_in_a_bits_data[8] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_data[9] ( PIN auto_tl_slave_xing_in_a_bits_data[9] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_mask[0] ( PIN auto_tl_slave_xing_in_a_bits_mask[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_mask[1] ( PIN auto_tl_slave_xing_in_a_bits_mask[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_mask[2] ( PIN auto_tl_slave_xing_in_a_bits_mask[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_mask[3] ( PIN auto_tl_slave_xing_in_a_bits_mask[3] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_opcode[0] ( PIN auto_tl_slave_xing_in_a_bits_opcode[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_opcode[1] ( PIN auto_tl_slave_xing_in_a_bits_opcode[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_opcode[2] ( PIN auto_tl_slave_xing_in_a_bits_opcode[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_param[0] ( PIN auto_tl_slave_xing_in_a_bits_param[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_param[1] ( PIN auto_tl_slave_xing_in_a_bits_param[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_param[2] ( PIN auto_tl_slave_xing_in_a_bits_param[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_size[0] ( PIN auto_tl_slave_xing_in_a_bits_size[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_size[1] ( PIN auto_tl_slave_xing_in_a_bits_size[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_size[2] ( PIN auto_tl_slave_xing_in_a_bits_size[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_source[0] ( PIN auto_tl_slave_xing_in_a_bits_source[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_source[1] ( PIN auto_tl_slave_xing_in_a_bits_source[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_source[2] ( PIN auto_tl_slave_xing_in_a_bits_source[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_source[3] ( PIN auto_tl_slave_xing_in_a_bits_source[3] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_bits_source[4] ( PIN auto_tl_slave_xing_in_a_bits_source[4] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_ready ( PIN auto_tl_slave_xing_in_a_ready ) + USE SIGNAL ; + - auto_tl_slave_xing_in_a_valid ( PIN auto_tl_slave_xing_in_a_valid ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_corrupt ( PIN auto_tl_slave_xing_in_d_bits_corrupt ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[0] ( PIN auto_tl_slave_xing_in_d_bits_data[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[10] ( PIN auto_tl_slave_xing_in_d_bits_data[10] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[11] ( PIN auto_tl_slave_xing_in_d_bits_data[11] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[12] ( PIN auto_tl_slave_xing_in_d_bits_data[12] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[13] ( PIN auto_tl_slave_xing_in_d_bits_data[13] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[14] ( PIN auto_tl_slave_xing_in_d_bits_data[14] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[15] ( PIN auto_tl_slave_xing_in_d_bits_data[15] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[16] ( PIN auto_tl_slave_xing_in_d_bits_data[16] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[17] ( PIN auto_tl_slave_xing_in_d_bits_data[17] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[18] ( PIN auto_tl_slave_xing_in_d_bits_data[18] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[19] ( PIN auto_tl_slave_xing_in_d_bits_data[19] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[1] ( PIN auto_tl_slave_xing_in_d_bits_data[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[20] ( PIN auto_tl_slave_xing_in_d_bits_data[20] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[21] ( PIN auto_tl_slave_xing_in_d_bits_data[21] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[22] ( PIN auto_tl_slave_xing_in_d_bits_data[22] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[23] ( PIN auto_tl_slave_xing_in_d_bits_data[23] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[24] ( PIN auto_tl_slave_xing_in_d_bits_data[24] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[25] ( PIN auto_tl_slave_xing_in_d_bits_data[25] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[26] ( PIN auto_tl_slave_xing_in_d_bits_data[26] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[27] ( PIN auto_tl_slave_xing_in_d_bits_data[27] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[28] ( PIN auto_tl_slave_xing_in_d_bits_data[28] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[29] ( PIN auto_tl_slave_xing_in_d_bits_data[29] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[2] ( PIN auto_tl_slave_xing_in_d_bits_data[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[30] ( PIN auto_tl_slave_xing_in_d_bits_data[30] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[31] ( PIN auto_tl_slave_xing_in_d_bits_data[31] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[3] ( PIN auto_tl_slave_xing_in_d_bits_data[3] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[4] ( PIN auto_tl_slave_xing_in_d_bits_data[4] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[5] ( PIN auto_tl_slave_xing_in_d_bits_data[5] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[6] ( PIN auto_tl_slave_xing_in_d_bits_data[6] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[7] ( PIN auto_tl_slave_xing_in_d_bits_data[7] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[8] ( PIN auto_tl_slave_xing_in_d_bits_data[8] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_data[9] ( PIN auto_tl_slave_xing_in_d_bits_data[9] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_denied ( PIN auto_tl_slave_xing_in_d_bits_denied ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_opcode[0] ( PIN auto_tl_slave_xing_in_d_bits_opcode[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_opcode[1] ( PIN auto_tl_slave_xing_in_d_bits_opcode[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_opcode[2] ( PIN auto_tl_slave_xing_in_d_bits_opcode[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_param[0] ( PIN auto_tl_slave_xing_in_d_bits_param[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_param[1] ( PIN auto_tl_slave_xing_in_d_bits_param[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_sink ( PIN auto_tl_slave_xing_in_d_bits_sink ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_size[0] ( PIN auto_tl_slave_xing_in_d_bits_size[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_size[1] ( PIN auto_tl_slave_xing_in_d_bits_size[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_size[2] ( PIN auto_tl_slave_xing_in_d_bits_size[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_source[0] ( PIN auto_tl_slave_xing_in_d_bits_source[0] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_source[1] ( PIN auto_tl_slave_xing_in_d_bits_source[1] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_source[2] ( PIN auto_tl_slave_xing_in_d_bits_source[2] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_source[3] ( PIN auto_tl_slave_xing_in_d_bits_source[3] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_bits_source[4] ( PIN auto_tl_slave_xing_in_d_bits_source[4] ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_ready ( PIN auto_tl_slave_xing_in_d_ready ) + USE SIGNAL ; + - auto_tl_slave_xing_in_d_valid ( PIN auto_tl_slave_xing_in_d_valid ) + USE SIGNAL ; + - clock ( PIN clock ) + USE SIGNAL ; + - reset ( PIN reset ) + USE SIGNAL ; +END NETS +END DESIGN diff --git a/src/pdn/test/macros_narrow_channel_overlap.ok b/src/pdn/test/macros_narrow_channel_overlap.ok new file mode 100644 index 00000000000..5c40eeb9260 --- /dev/null +++ b/src/pdn/test/macros_narrow_channel_overlap.ok @@ -0,0 +1,8 @@ +[INFO ODB-0227] LEF file: Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells +[INFO ODB-0227] LEF file: nangate_macros/fakeram45_64x32.lef, created 1 library cells +[INFO ODB-0128] Design: RocketTile +[INFO ODB-0130] Created 269 pins. +[INFO ODB-0131] Created 440 components and 1090 component-terminals. +[INFO ODB-0133] Created 269 nets and 0 connections. +[INFO PDN-0001] Inserting grid: Core +No differences found. diff --git a/src/pdn/test/macros_narrow_channel_overlap.tcl b/src/pdn/test/macros_narrow_channel_overlap.tcl new file mode 100644 index 00000000000..69345ba6464 --- /dev/null +++ b/src/pdn/test/macros_narrow_channel_overlap.tcl @@ -0,0 +1,32 @@ +# test for repair channel with a narrow channel with a partially blocked channel +source "helpers.tcl" + +read_lef Nangate45/Nangate45.lef +read_lef nangate_macros/fakeram45_64x32.lef + +read_def nangate_macros/floorplan_narrow.def + +# Create via obstruction +odb::dbObstruction_create [ord::get_db_block] [[ord::get_db_tech] findLayer metal4] 76000 99000 80000 210000 + +add_global_connection -net VDD -pin_pattern {^VDD$} -power +add_global_connection -net VDD -pin_pattern {^VDDPE$} +add_global_connection -net VDD -pin_pattern {^VDDCE$} +add_global_connection -net VSS -pin_pattern {^VSS$} -ground +add_global_connection -net VSS -pin_pattern {^VSSE$} + +set_voltage_domain -power VDD -ground VSS + +define_pdn_grid -name "Core" +add_pdn_stripe -followpins -layer metal1 +add_pdn_stripe -layer metal6 -width 10.0 -spacing 4.0 -pitch 65.0 -offset 18.0 +add_pdn_stripe -layer metal7 -width 1.4 -pitch 40.0 -offset 2.0 + +add_pdn_connect -layers {metal1 metal6} +add_pdn_connect -layers {metal6 metal7} + +pdngen + +set def_file [make_result_file macros_narrow_channel_overlap.def] +write_def $def_file +diff_files macros_narrow_channel_overlap.defok $def_file diff --git a/src/pdn/test/regression_tests.tcl b/src/pdn/test/regression_tests.tcl index 7b53ce1e787..25e2463a1fa 100644 --- a/src/pdn/test/regression_tests.tcl +++ b/src/pdn/test/regression_tests.tcl @@ -59,6 +59,7 @@ record_tests { macros_narrow_channel macros_narrow_channel_large_spacing macros_narrow_channel_repair_overlap + macros_narrow_channel_overlap macros_add_twice macros_cells_extend_boundary macros_cells_no_grid From d1533c495c1fa886fa9ba0602f9fa5d5702817b0 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Thu, 18 Jul 2024 17:57:19 +0000 Subject: [PATCH 46/56] dpl: removing insert_decap from README Signed-off-by: luis201420 --- src/dpl/README.md | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/src/dpl/README.md b/src/dpl/README.md index 24b983df4c0..74fd1834ef1 100644 --- a/src/dpl/README.md +++ b/src/dpl/README.md @@ -97,28 +97,6 @@ This command removes all filler cells. remove_fillers ``` -### Insert Decap Cells -The `insert_decap` command inserts decap cells in the areas with the highest -IR Drop. The number of decap cells inserted will be limited to the target -capacitance defined in the `-target_cap` option. `list_of_decap_with_cap` -is a list of even size of decap master cells and their capacitances, -e.g., ` ...`. To insert decap -cells in the IR Drop of a specific net (power or ground) use `-net `, -if not defined the default power net will be used. -To use this command, you must first execute the `analyze_power_grid` command -with the net to have the IR Drop information. - -```tcl -insert_decap -target_cap target_cap [-net net_name] [-cells list_of_decap_with_cap] -``` - -#### Options -| Switch Name | Description | -| ----- | ----- | -| `-target_cap` | Target capacitance to insert os decap cells. | -| `-net` | Power or ground net name. The decap cells will be inserted near the IR Drops of the net. | -| `-cells` | List of even size of decap master cells and their capacitances. | - ### Check Placement The `check_placement` command checks the placement legality. It returns From 1a8b07adfa8fb878e57f2947e184e2ef861040c6 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Thu, 18 Jul 2024 17:58:10 +0000 Subject: [PATCH 47/56] psm: adding insert_decap command to README Signed-off-by: luis201420 --- src/psm/README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/psm/README.md b/src/psm/README.md index 9c98589d995..0558d6effb2 100644 --- a/src/psm/README.md +++ b/src/psm/README.md @@ -132,6 +132,28 @@ set_pdnsim_source_settings | `-bump_interval` | Set the bump population interval, this is used to depopulate the bump grid to emulate signals and other power connections. The default bump pitch is 3. | | `-strap_track_pitch` | Sets the track pitck to use for moduling voltage sources as straps. The default is 10x. | +### Insert Decap Cells +The `insert_decap` command inserts decap cells in the areas with the highest +IR Drop. The number of decap cells inserted will be limited to the target +capacitance defined in the `-target_cap` option. `list_of_decap_with_cap` +is a list of even size of decap master cells and their capacitances, +e.g., ` ...`. To insert decap +cells in the IR Drop of a specific net (power or ground) use `-net `, +if not defined the default power net will be used. +To use this command, you must first execute the `analyze_power_grid` command +with the net to have the IR Drop information. + +```tcl +insert_decap -target_cap target_cap [-net net_name] -cells list_of_decap_with_cap +``` + +#### Options +| Switch Name | Description | +| ----- | ----- | +| `-target_cap` | Target capacitance to insert os decap cells. | +| `-net` | Power or ground net name. The decap cells will be inserted near the IR Drops of the net. | +| `-cells` | List of even size of decap master cells and their capacitances. | + ## Source grid options The source grid models how power is going be delivered to the power grid. From ab0d78560fe088172496a99c02e02d4e51129e51 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Thu, 18 Jul 2024 18:37:19 +0000 Subject: [PATCH 48/56] psm: adding unit tests to insert_decap command Signed-off-by: luis201420 --- src/psm/test/insert_decap1.defok | 2527 +++++++++++++++++++++++++++++ src/psm/test/insert_decap1.ok | 22 + src/psm/test/insert_decap1.tcl | 19 + src/psm/test/insert_decap2.defok | 1874 +++++++++++++++++++++ src/psm/test/insert_decap2.ok | 22 + src/psm/test/insert_decap2.tcl | 20 + src/psm/test/insert_decap_gcd.def | 1870 +++++++++++++++++++++ src/psm/test/regression_tests.tcl | 2 + 8 files changed, 6356 insertions(+) create mode 100644 src/psm/test/insert_decap1.defok create mode 100644 src/psm/test/insert_decap1.ok create mode 100644 src/psm/test/insert_decap1.tcl create mode 100644 src/psm/test/insert_decap2.defok create mode 100644 src/psm/test/insert_decap2.ok create mode 100644 src/psm/test/insert_decap2.tcl create mode 100644 src/psm/test/insert_decap_gcd.def diff --git a/src/psm/test/insert_decap1.defok b/src/psm/test/insert_decap1.defok new file mode 100644 index 00000000000..208cca93ce7 --- /dev/null +++ b/src/psm/test/insert_decap1.defok @@ -0,0 +1,2527 @@ +VERSION 5.8 ; +DIVIDERCHAR "/" ; +BUSBITCHARS "[]" ; +DESIGN gcd ; +UNITS DISTANCE MICRONS 1000 ; +DIEAREA ( 0 0 ) ( 86840 86840 ) ; +ROW ROW_0 unithd 1380 2720 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_1 unithd 1380 5440 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_2 unithd 1380 8160 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_3 unithd 1380 10880 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_4 unithd 1380 13600 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_5 unithd 1380 16320 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_6 unithd 1380 19040 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_7 unithd 1380 21760 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_8 unithd 1380 24480 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_9 unithd 1380 27200 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_10 unithd 1380 29920 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_11 unithd 1380 32640 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_12 unithd 1380 35360 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_13 unithd 1380 38080 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_14 unithd 1380 40800 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_15 unithd 1380 43520 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_16 unithd 1380 46240 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_17 unithd 1380 48960 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_18 unithd 1380 51680 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_19 unithd 1380 54400 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_20 unithd 1380 57120 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_21 unithd 1380 59840 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_22 unithd 1380 62560 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_23 unithd 1380 65280 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_24 unithd 1380 68000 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_25 unithd 1380 70720 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_26 unithd 1380 73440 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_27 unithd 1380 76160 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_28 unithd 1380 78880 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_29 unithd 1380 81600 FS DO 183 BY 1 STEP 460 0 ; +TRACKS X 230 DO 189 STEP 460 LAYER li1 ; +TRACKS Y 170 DO 255 STEP 340 LAYER li1 ; +TRACKS X 170 DO 255 STEP 340 LAYER met1 ; +TRACKS Y 170 DO 255 STEP 340 LAYER met1 ; +TRACKS X 230 DO 189 STEP 460 LAYER met2 ; +TRACKS Y 230 DO 189 STEP 460 LAYER met2 ; +TRACKS X 340 DO 127 STEP 680 LAYER met3 ; +TRACKS Y 340 DO 127 STEP 680 LAYER met3 ; +TRACKS X 460 DO 94 STEP 920 LAYER met4 ; +TRACKS Y 460 DO 94 STEP 920 LAYER met4 ; +TRACKS X 1700 DO 25 STEP 3400 LAYER met5 ; +TRACKS Y 1700 DO 25 STEP 3400 LAYER met5 ; +GCELLGRID X 0 DO 12 STEP 6900 ; +GCELLGRID Y 0 DO 12 STEP 6900 ; +VIAS 4 ; + - via2_3_1600_480_1_5_320_320 + VIARULE M1M2_PR + CUTSIZE 150 150 + LAYERS met1 via met2 + CUTSPACING 170 170 + ENCLOSURE 85 165 55 85 + ROWCOL 1 5 ; + - via3_4_1600_480_1_4_400_400 + VIARULE M2M3_PR + CUTSIZE 200 200 + LAYERS met2 via2 met3 + CUTSPACING 200 200 + ENCLOSURE 40 85 65 65 + ROWCOL 1 4 ; + - via4_5_1600_480_1_4_400_400 + VIARULE M3M4_PR + CUTSIZE 200 200 + LAYERS met3 via3 met4 + CUTSPACING 200 200 + ENCLOSURE 90 60 100 65 + ROWCOL 1 4 ; + - via5_6_1600_1600_1_1_1600_1600 + VIARULE M4M5_PR + CUTSIZE 800 800 + LAYERS met4 via4 met5 + CUTSPACING 800 800 + ENCLOSURE 400 190 310 400 ; +END VIAS +COMPONENTS 1195 ; + - DECAP_0 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 6440 29920 ) N ; + - DECAP_1 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 7820 29920 ) N ; + - DECAP_10 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 35360 ) N ; + - DECAP_100 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 27200 ) FS ; + - DECAP_101 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 27200 ) FS ; + - DECAP_102 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 27200 ) FS ; + - DECAP_103 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40480 16320 ) FS ; + - DECAP_104 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 41860 16320 ) FS ; + - DECAP_105 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 16320 ) FS ; + - DECAP_106 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 13600 ) N ; + - DECAP_107 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 35420 13600 ) N ; + - DECAP_108 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 36800 13600 ) N ; + - DECAP_109 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 38180 13600 ) N ; + - DECAP_11 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 35360 ) N ; + - DECAP_110 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 39560 13600 ) N ; + - DECAP_111 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40940 13600 ) N ; + - DECAP_112 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 29920 ) N ; + - DECAP_113 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 29920 ) N ; + - DECAP_114 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44160 32640 ) FS ; + - DECAP_115 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 16320 ) FS ; + - DECAP_116 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 16320 ) FS ; + - DECAP_117 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 13600 ) N ; + - DECAP_118 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 35360 ) N ; + - DECAP_119 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 43520 ) FS ; + - DECAP_12 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46000 35360 ) N ; + - DECAP_120 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 13340 40800 ) N ; + - DECAP_121 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 40800 ) N ; + - DECAP_122 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 40800 ) N ; + - DECAP_123 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 40800 ) N ; + - DECAP_124 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 19780 40800 ) N ; + - DECAP_125 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 21160 40800 ) N ; + - DECAP_126 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 28060 19040 ) N ; + - DECAP_127 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 19040 ) N ; + - DECAP_128 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 19040 ) N ; + - DECAP_129 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 19040 ) N ; + - DECAP_13 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47380 35360 ) N ; + - DECAP_130 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 19040 ) N ; + - DECAP_131 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34960 19040 ) N ; + - DECAP_132 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 21760 ) FS ; + - DECAP_133 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23920 40800 ) N ; + - DECAP_134 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 25300 40800 ) N ; + - DECAP_135 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26680 40800 ) N ; + - DECAP_136 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46920 16320 ) FS ; + - DECAP_137 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40940 19040 ) N ; + - DECAP_138 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 48300 21760 ) FS ; + - DECAP_139 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49680 21760 ) FS ; + - DECAP_14 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 48760 35360 ) N ; + - DECAP_140 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51060 21760 ) FS ; + - DECAP_141 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52440 21760 ) FS ; + - DECAP_142 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53820 21760 ) FS ; + - DECAP_143 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51520 19040 ) N ; + - DECAP_144 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 16320 ) FS ; + - DECAP_145 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 16320 ) FS ; + - DECAP_146 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 16320 ) FS ; + - DECAP_147 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 16320 ) FS ; + - DECAP_148 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 16320 ) FS ; + - DECAP_149 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 16320 ) FS ; + - DECAP_15 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 27600 32640 ) FS ; + - DECAP_150 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 16320 ) FS ; + - DECAP_151 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 16320 ) FS ; + - DECAP_152 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 16320 ) FS ; + - DECAP_153 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 13600 ) N ; + - DECAP_154 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 13600 ) N ; + - DECAP_155 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46460 13600 ) N ; + - DECAP_156 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47840 13600 ) N ; + - DECAP_157 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34500 43520 ) FS ; + - DECAP_158 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 35880 40800 ) N ; + - DECAP_159 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 37260 40800 ) N ; + - DECAP_16 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 5060 38080 ) FS ; + - DECAP_160 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 16320 ) FS ; + - DECAP_161 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 58420 16320 ) FS ; + - DECAP_162 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 16320 ) FS ; + - DECAP_163 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 16320 ) FS ; + - DECAP_164 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51980 13600 ) N ; + - DECAP_165 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63020 46240 ) N ; + - DECAP_166 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 48960 ) FS ; + - DECAP_167 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 48960 ) FS ; + - DECAP_168 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 48960 ) FS ; + - DECAP_169 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74060 40800 ) N ; + - DECAP_17 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 6440 38080 ) FS ; + - DECAP_170 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 82800 43520 ) FS ; + - DECAP_171 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80960 40800 ) N ; + - DECAP_172 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 84180 40800 ) N ; + - DECAP_173 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 5060 54400 ) FS ; + - DECAP_174 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 6440 54400 ) FS ; + - DECAP_175 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 6440 51680 ) N ; + - DECAP_176 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 7820 51680 ) N ; + - DECAP_177 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 9200 51680 ) N ; + - DECAP_178 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 10120 54400 ) FS ; + - DECAP_179 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 25300 65280 ) FS ; + - DECAP_18 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 7820 38080 ) FS ; + - DECAP_180 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26680 65280 ) FS ; + - DECAP_181 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 65280 ) FS ; + - DECAP_182 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 65280 ) FS ; + - DECAP_183 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 65280 ) FS ; + - DECAP_184 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 65280 ) FS ; + - DECAP_185 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 31740 62560 ) N ; + - DECAP_186 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33120 62560 ) N ; + - DECAP_187 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34500 62560 ) N ; + - DECAP_188 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 35880 62560 ) N ; + - DECAP_189 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 59840 ) FS ; + - DECAP_19 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 9200 38080 ) FS ; + - DECAP_190 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 57120 ) N ; + - DECAP_191 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 57120 ) N ; + - DECAP_192 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53820 57120 ) N ; + - DECAP_193 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55200 57120 ) N ; + - DECAP_194 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 37260 59840 ) FS ; + - DECAP_195 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46460 5440 ) FS ; + - DECAP_196 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47840 5440 ) FS ; + - DECAP_197 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49220 5440 ) FS ; + - DECAP_198 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50600 5440 ) FS ; + - DECAP_199 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51980 5440 ) FS ; + - DECAP_2 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 9200 29920 ) N ; + - DECAP_20 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17480 24480 ) N ; + - DECAP_200 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53360 5440 ) FS ; + - DECAP_201 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54740 5440 ) FS ; + - DECAP_202 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46460 2720 ) N ; + - DECAP_203 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47840 2720 ) N ; + - DECAP_204 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49220 2720 ) N ; + - DECAP_205 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 10880 ) FS ; + - DECAP_206 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 10880 ) FS ; + - DECAP_207 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 8160 ) N ; + - DECAP_208 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 8160 ) N ; + - DECAP_209 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46000 8160 ) N ; + - DECAP_21 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18860 24480 ) N ; + - DECAP_210 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47380 8160 ) N ; + - DECAP_211 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 48760 8160 ) N ; + - DECAP_212 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50140 8160 ) N ; + - DECAP_213 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51520 8160 ) N ; + - DECAP_214 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 8160 ) N ; + - DECAP_215 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 8160 ) N ; + - DECAP_216 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55660 8160 ) N ; + - DECAP_217 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 8160 ) N ; + - DECAP_218 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 58420 8160 ) N ; + - DECAP_219 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 8160 ) N ; + - DECAP_22 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 20240 24480 ) N ; + - DECAP_220 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 8160 ) N ; + - DECAP_221 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 8160 ) N ; + - DECAP_222 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63940 8160 ) N ; + - DECAP_223 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65320 8160 ) N ; + - DECAP_224 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 66700 8160 ) N ; + - DECAP_225 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68080 8160 ) N ; + - DECAP_226 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 35880 10880 ) FS ; + - DECAP_227 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 37260 10880 ) FS ; + - DECAP_228 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 38640 10880 ) FS ; + - DECAP_229 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40020 10880 ) FS ; + - DECAP_23 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 14260 38080 ) FS ; + - DECAP_230 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 41400 10880 ) FS ; + - DECAP_231 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 42780 10880 ) FS ; + - DECAP_232 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44160 10880 ) FS ; + - DECAP_233 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 45540 10880 ) FS ; + - DECAP_234 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46920 10880 ) FS ; + - DECAP_235 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 48300 10880 ) FS ; + - DECAP_236 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49680 10880 ) FS ; + - DECAP_237 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52440 10880 ) FS ; + - DECAP_238 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53820 10880 ) FS ; + - DECAP_239 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55200 10880 ) FS ; + - DECAP_24 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 38080 ) FS ; + - DECAP_240 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 5440 ) FS ; + - DECAP_241 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52440 2720 ) N ; + - DECAP_242 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53820 2720 ) N ; + - DECAP_243 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55200 2720 ) N ; + - DECAP_244 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80040 54400 ) FS ; + - DECAP_245 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81420 54400 ) FS ; + - DECAP_246 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68080 51680 ) N ; + - DECAP_247 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 75900 51680 ) N ; + - DECAP_248 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77280 51680 ) N ; + - DECAP_249 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 78660 51680 ) N ; + - DECAP_25 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 38080 ) FS ; + - DECAP_250 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80040 51680 ) N ; + - DECAP_251 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81420 51680 ) N ; + - DECAP_252 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 82800 51680 ) N ; + - DECAP_253 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 84180 51680 ) N ; + - DECAP_254 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 12420 51680 ) N ; + - DECAP_255 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 56580 29920 ) N ; + - DECAP_256 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 21760 ) FS ; + - DECAP_257 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 21760 ) FS ; + - DECAP_258 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 19040 ) N ; + - DECAP_259 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 19040 ) N ; + - DECAP_26 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 38080 ) FS ; + - DECAP_260 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 19040 ) N ; + - DECAP_261 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 19040 ) N ; + - DECAP_262 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 19040 ) N ; + - DECAP_263 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 19040 ) N ; + - DECAP_264 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 19040 ) N ; + - DECAP_265 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 19040 ) N ; + - DECAP_266 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 19040 ) N ; + - DECAP_267 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 83260 19040 ) N ; + - DECAP_268 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 66700 13600 ) N ; + - DECAP_269 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68080 13600 ) N ; + - DECAP_27 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 19780 38080 ) FS ; + - DECAP_270 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 13600 ) N ; + - DECAP_271 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 13600 ) N ; + - DECAP_272 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 13600 ) N ; + - DECAP_273 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 13600 ) N ; + - DECAP_274 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 13600 ) N ; + - DECAP_275 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 13600 ) N ; + - DECAP_276 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 13600 ) N ; + - DECAP_277 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 13600 ) N ; + - DECAP_278 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 13600 ) N ; + - DECAP_279 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 83260 13600 ) N ; + - DECAP_28 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32660 38080 ) FS ; + - DECAP_280 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69000 19040 ) N ; + - DECAP_281 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 2720 ) N ; + - DECAP_282 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 2720 ) N ; + - DECAP_283 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 58420 2720 ) N ; + - DECAP_284 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 2720 ) N ; + - DECAP_285 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 2720 ) N ; + - DECAP_286 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 2720 ) N ; + - DECAP_287 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63940 2720 ) N ; + - DECAP_288 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 36340 5440 ) FS ; + - DECAP_289 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 37720 5440 ) FS ; + - DECAP_29 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34040 38080 ) FS ; + - DECAP_290 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 39100 5440 ) FS ; + - DECAP_291 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40480 5440 ) FS ; + - DECAP_292 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 41860 5440 ) FS ; + - DECAP_293 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 5440 ) FS ; + - DECAP_294 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 31280 2720 ) N ; + - DECAP_295 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32660 2720 ) N ; + - DECAP_296 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34040 2720 ) N ; + - DECAP_297 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 35420 2720 ) N ; + - DECAP_298 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 36800 2720 ) N ; + - DECAP_299 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 60260 5440 ) FS ; + - DECAP_3 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 10580 29920 ) N ; + - DECAP_30 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 35360 ) N ; + - DECAP_300 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61640 5440 ) FS ; + - DECAP_301 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63020 5440 ) FS ; + - DECAP_302 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64400 5440 ) FS ; + - DECAP_303 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65780 5440 ) FS ; + - DECAP_304 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 67160 5440 ) FS ; + - DECAP_305 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68540 5440 ) FS ; + - DECAP_306 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69920 5440 ) FS ; + - DECAP_307 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 71300 5440 ) FS ; + - DECAP_308 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72680 5440 ) FS ; + - DECAP_309 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74060 5440 ) FS ; + - DECAP_31 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 21620 29920 ) N ; + - DECAP_310 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 75440 5440 ) FS ; + - DECAP_311 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76820 5440 ) FS ; + - DECAP_312 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 78200 5440 ) FS ; + - DECAP_313 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79580 5440 ) FS ; + - DECAP_314 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80960 5440 ) FS ; + - DECAP_315 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 82340 5440 ) FS ; + - DECAP_316 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 67620 2720 ) N ; + - DECAP_317 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69000 2720 ) N ; + - DECAP_318 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 41400 2720 ) N ; + - DECAP_319 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 8160 ) N ; + - DECAP_32 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23000 29920 ) N ; + - DECAP_320 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 8160 ) N ; + - DECAP_321 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 8160 ) N ; + - DECAP_322 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 8160 ) N ; + - DECAP_323 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 8160 ) N ; + - DECAP_324 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 8160 ) N ; + - DECAP_325 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 8160 ) N ; + - DECAP_326 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 8160 ) N ; + - DECAP_327 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 8160 ) N ; + - DECAP_328 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 83260 8160 ) N ; + - DECAP_329 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 5440 ) FS ; + - DECAP_33 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 36340 29920 ) N ; + - DECAP_330 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 5440 ) FS ; + - DECAP_331 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 5440 ) FS ; + - DECAP_332 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 5440 ) FS ; + - DECAP_333 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61640 21760 ) FS ; + - DECAP_334 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63020 21760 ) FS ; + - DECAP_335 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64400 21760 ) FS ; + - DECAP_336 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65780 21760 ) FS ; + - DECAP_337 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 67160 21760 ) FS ; + - DECAP_338 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68540 21760 ) FS ; + - DECAP_339 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69920 21760 ) FS ; + - DECAP_34 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 16100 48960 ) FS ; + - DECAP_340 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 71300 21760 ) FS ; + - DECAP_341 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72680 21760 ) FS ; + - DECAP_342 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74060 21760 ) FS ; + - DECAP_343 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 19040 ) N ; + - DECAP_344 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 19040 ) N ; + - DECAP_345 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 19040 ) N ; + - DECAP_346 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63940 19040 ) N ; + - DECAP_347 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 2720 ) N ; + - DECAP_348 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 2720 ) N ; + - DECAP_349 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 2720 ) N ; + - DECAP_35 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17480 48960 ) FS ; + - DECAP_350 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 2720 ) N ; + - DECAP_351 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 2720 ) N ; + - DECAP_352 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 2720 ) N ; + - DECAP_353 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 2720 ) N ; + - DECAP_354 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 2720 ) N ; + - DECAP_355 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 2720 ) N ; + - DECAP_356 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63020 51680 ) N ; + - DECAP_357 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64400 51680 ) N ; + - DECAP_358 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 10880 ) FS ; + - DECAP_359 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17480 54400 ) FS ; + - DECAP_36 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29900 46240 ) N ; + - DECAP_360 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 51680 ) N ; + - DECAP_361 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 51680 ) N ; + - DECAP_362 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 51680 ) N ; + - DECAP_363 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 27140 2720 ) N ; + - DECAP_364 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 60260 10880 ) FS ; + - DECAP_365 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61640 10880 ) FS ; + - DECAP_366 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63020 10880 ) FS ; + - DECAP_367 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64400 10880 ) FS ; + - DECAP_368 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18860 10880 ) FS ; + - DECAP_369 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 20240 10880 ) FS ; + - DECAP_37 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 25300 48960 ) FS ; + - DECAP_370 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 21620 10880 ) FS ; + - DECAP_371 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23000 10880 ) FS ; + - DECAP_372 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 8160 ) N ; + - DECAP_373 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 8160 ) N ; + - DECAP_374 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 8160 ) N ; + - DECAP_375 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 19780 8160 ) N ; + - DECAP_376 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 21160 8160 ) N ; + - DECAP_377 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 22540 8160 ) N ; + - DECAP_378 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23920 8160 ) N ; + - DECAP_379 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 25300 8160 ) N ; + - DECAP_38 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26680 48960 ) FS ; + - DECAP_380 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26680 8160 ) N ; + - DECAP_381 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 28060 8160 ) N ; + - DECAP_382 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 8160 ) N ; + - DECAP_383 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 8160 ) N ; + - DECAP_384 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 8160 ) N ; + - DECAP_385 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 8160 ) N ; + - DECAP_386 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34960 8160 ) N ; + - DECAP_387 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 36340 8160 ) N ; + - DECAP_388 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 37720 8160 ) N ; + - DECAP_389 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 39100 8160 ) N ; + - DECAP_39 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 4140 46240 ) N ; + - DECAP_390 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40480 8160 ) N ; + - DECAP_391 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50140 70720 ) FS ; + - DECAP_392 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 68000 ) N ; + - DECAP_393 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 68000 ) N ; + - DECAP_394 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46000 68000 ) N ; + - DECAP_395 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47380 68000 ) N ; + - DECAP_396 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 48760 68000 ) N ; + - DECAP_397 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50140 68000 ) N ; + - DECAP_398 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51520 68000 ) N ; + - DECAP_399 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 68000 ) N ; + - DECAP_4 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 11960 29920 ) N ; + - DECAP_40 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 27200 ) FS ; + - DECAP_400 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 68000 ) N ; + - DECAP_401 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 67160 10880 ) FS ; + - DECAP_402 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68540 10880 ) FS ; + - DECAP_403 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69920 10880 ) FS ; + - DECAP_404 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 71300 10880 ) FS ; + - DECAP_405 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72680 10880 ) FS ; + - DECAP_406 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74060 10880 ) FS ; + - DECAP_407 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 75440 10880 ) FS ; + - DECAP_408 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76820 10880 ) FS ; + - DECAP_409 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 78200 10880 ) FS ; + - DECAP_41 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 41400 24480 ) N ; + - DECAP_410 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79580 10880 ) FS ; + - DECAP_411 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80960 10880 ) FS ; + - DECAP_412 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 82340 10880 ) FS ; + - DECAP_413 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64400 68000 ) N ; + - DECAP_414 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 84180 29920 ) N ; + - DECAP_415 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18860 2720 ) N ; + - DECAP_416 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 20240 2720 ) N ; + - DECAP_417 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 21620 2720 ) N ; + - DECAP_418 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23000 2720 ) N ; + - DECAP_419 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 24380 2720 ) N ; + - DECAP_42 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 24480 ) N ; + - DECAP_420 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 70720 ) FS ; + - DECAP_421 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 70720 ) FS ; + - DECAP_422 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 70720 ) FS ; + - DECAP_423 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 70720 ) FS ; + - DECAP_424 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 22540 68000 ) N ; + - DECAP_425 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23920 68000 ) N ; + - DECAP_426 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 25300 68000 ) N ; + - DECAP_427 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26680 68000 ) N ; + - DECAP_428 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 28060 68000 ) N ; + - DECAP_429 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 2720 ) N ; + - DECAP_43 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 24480 ) N ; + - DECAP_430 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17940 59840 ) FS ; + - DECAP_431 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 27600 57120 ) N ; + - DECAP_432 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 28980 57120 ) N ; + - DECAP_433 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30360 57120 ) N ; + - DECAP_434 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 31740 57120 ) N ; + - DECAP_435 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33120 57120 ) N ; + - DECAP_436 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 35360 ) N ; + - DECAP_437 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 11040 59840 ) FS ; + - DECAP_438 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 12420 59840 ) FS ; + - DECAP_439 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 10580 57120 ) N ; + - DECAP_44 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 43520 ) FS ; + - DECAP_440 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 11960 57120 ) N ; + - DECAP_441 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40020 62560 ) N ; + - DECAP_442 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 41400 62560 ) N ; + - DECAP_443 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 62560 ) N ; + - DECAP_444 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 62560 ) N ; + - DECAP_445 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49220 62560 ) N ; + - DECAP_446 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23460 51680 ) N ; + - DECAP_447 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 24840 51680 ) N ; + - DECAP_448 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52440 51680 ) N ; + - DECAP_449 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 70720 ) FS ; + - DECAP_45 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 43520 ) FS ; + - DECAP_450 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 70720 ) FS ; + - DECAP_451 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 51680 ) N ; + - DECAP_452 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 51680 ) N ; + - DECAP_453 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40020 54400 ) FS ; + - DECAP_454 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 51680 ) N ; + - DECAP_455 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 51680 ) N ; + - DECAP_456 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 51680 ) N ; + - DECAP_457 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65320 59840 ) FS ; + - DECAP_458 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 60720 57120 ) N ; + - DECAP_459 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62100 57120 ) N ; + - DECAP_46 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 39560 48960 ) FS ; + - DECAP_460 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63480 57120 ) N ; + - DECAP_461 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64860 57120 ) N ; + - DECAP_462 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40480 78880 ) N ; + - DECAP_463 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63480 62560 ) N ; + - DECAP_464 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63020 65280 ) FS ; + - DECAP_465 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64400 65280 ) FS ; + - DECAP_466 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 81600 ) FS ; + - DECAP_467 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 81600 ) FS ; + - DECAP_468 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46000 81600 ) FS ; + - DECAP_469 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 78880 ) N ; + - DECAP_47 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40940 48960 ) FS ; + - DECAP_470 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 78880 ) N ; + - DECAP_471 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46000 78880 ) N ; + - DECAP_472 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47380 78880 ) N ; + - DECAP_473 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 48760 78880 ) N ; + - DECAP_474 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50140 78880 ) N ; + - DECAP_475 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51520 78880 ) N ; + - DECAP_476 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 78880 ) N ; + - DECAP_477 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 78880 ) N ; + - DECAP_478 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55660 78880 ) N ; + - DECAP_479 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 78880 ) N ; + - DECAP_48 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 42320 48960 ) FS ; + - DECAP_480 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 58420 78880 ) N ; + - DECAP_481 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 78880 ) N ; + - DECAP_482 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 78880 ) N ; + - DECAP_483 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 78880 ) N ; + - DECAP_484 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63940 78880 ) N ; + - DECAP_485 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65320 78880 ) N ; + - DECAP_486 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 66700 78880 ) N ; + - DECAP_487 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68080 78880 ) N ; + - DECAP_488 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76820 59840 ) FS ; + - DECAP_489 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 78200 59840 ) FS ; + - DECAP_49 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43700 48960 ) FS ; + - DECAP_490 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 70720 ) FS ; + - DECAP_491 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 60720 70720 ) FS ; + - DECAP_492 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62100 70720 ) FS ; + - DECAP_493 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63480 70720 ) FS ; + - DECAP_494 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64860 70720 ) FS ; + - DECAP_495 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 62560 ) N ; + - DECAP_496 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 62560 ) N ; + - DECAP_497 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 83260 62560 ) N ; + - DECAP_498 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 82800 65280 ) FS ; + - DECAP_499 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 67620 70720 ) FS ; + - DECAP_5 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 13340 29920 ) N ; + - DECAP_50 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 45080 48960 ) FS ; + - DECAP_500 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69000 70720 ) FS ; + - DECAP_501 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70380 70720 ) FS ; + - DECAP_502 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 71760 70720 ) FS ; + - DECAP_503 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73140 70720 ) FS ; + - DECAP_504 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74520 70720 ) FS ; + - DECAP_505 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 75900 70720 ) FS ; + - DECAP_506 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77280 70720 ) FS ; + - DECAP_507 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 78660 70720 ) FS ; + - DECAP_508 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80040 70720 ) FS ; + - DECAP_509 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81420 70720 ) FS ; + - DECAP_51 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34960 46240 ) N ; + - DECAP_510 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 82800 70720 ) FS ; + - DECAP_511 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49220 81600 ) FS ; + - DECAP_512 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50600 81600 ) FS ; + - DECAP_513 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 78880 ) N ; + - DECAP_514 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 78880 ) N ; + - DECAP_515 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 78880 ) N ; + - DECAP_516 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 78880 ) N ; + - DECAP_517 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 78880 ) N ; + - DECAP_518 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 78880 ) N ; + - DECAP_519 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 78880 ) N ; + - DECAP_52 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40480 46240 ) N ; + - DECAP_520 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 78880 ) N ; + - DECAP_521 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 78880 ) N ; + - DECAP_522 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 83260 78880 ) N ; + - DECAP_523 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 81600 ) FS ; + - DECAP_524 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 81600 ) FS ; + - DECAP_525 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 81600 ) FS ; + - DECAP_526 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 78880 ) N ; + - DECAP_527 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 78880 ) N ; + - DECAP_528 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 78880 ) N ; + - DECAP_529 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 19780 78880 ) N ; + - DECAP_53 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51980 27200 ) FS ; + - DECAP_530 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 21160 78880 ) N ; + - DECAP_531 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 22540 78880 ) N ; + - DECAP_532 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23920 78880 ) N ; + - DECAP_533 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 25300 78880 ) N ; + - DECAP_534 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26680 78880 ) N ; + - DECAP_535 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 22080 81600 ) FS ; + - DECAP_536 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23460 81600 ) FS ; + - DECAP_537 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 24840 81600 ) FS ; + - DECAP_538 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26220 81600 ) FS ; + - DECAP_539 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 27600 81600 ) FS ; + - DECAP_54 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53360 27200 ) FS ; + - DECAP_540 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30360 78880 ) N ; + - DECAP_541 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 31740 78880 ) N ; + - DECAP_542 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33120 78880 ) N ; + - DECAP_543 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34500 78880 ) N ; + - DECAP_544 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 35880 78880 ) N ; + - DECAP_545 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 78200 68000 ) N ; + - DECAP_546 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79580 68000 ) N ; + - DECAP_547 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80960 68000 ) N ; + - DECAP_548 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 82340 68000 ) N ; + - DECAP_549 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 83720 68000 ) N ; + - DECAP_55 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54740 27200 ) FS ; + - DECAP_550 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 81600 ) FS ; + - DECAP_551 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 81600 ) FS ; + - DECAP_552 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 81600 ) FS ; + - DECAP_553 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 81600 ) FS ; + - DECAP_554 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 81600 ) FS ; + - DECAP_555 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 81600 ) FS ; + - DECAP_556 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 81600 ) FS ; + - DECAP_557 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 81600 ) FS ; + - DECAP_558 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 81600 ) FS ; + - DECAP_559 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 81600 ) FS ; + - DECAP_56 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49680 24480 ) N ; + - DECAP_560 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 81600 ) FS ; + - DECAP_561 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 81600 ) FS ; + - DECAP_562 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 81600 ) FS ; + - DECAP_563 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 76160 ) FS ; + - DECAP_564 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 76160 ) FS ; + - DECAP_565 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 76160 ) FS ; + - DECAP_566 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 76160 ) FS ; + - DECAP_567 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34960 76160 ) FS ; + - DECAP_568 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 36340 76160 ) FS ; + - DECAP_569 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 37720 76160 ) FS ; + - DECAP_57 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51060 24480 ) N ; + - DECAP_570 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 73440 ) N ; + - DECAP_571 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 44620 73440 ) N ; + - DECAP_572 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46000 73440 ) N ; + - DECAP_573 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47380 73440 ) N ; + - DECAP_574 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 48760 73440 ) N ; + - DECAP_575 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50140 73440 ) N ; + - DECAP_576 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51520 73440 ) N ; + - DECAP_577 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 73440 ) N ; + - DECAP_578 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 73440 ) N ; + - DECAP_579 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55660 73440 ) N ; + - DECAP_58 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52440 24480 ) N ; + - DECAP_580 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 73440 ) N ; + - DECAP_581 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 58420 73440 ) N ; + - DECAP_582 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 73440 ) N ; + - DECAP_583 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 73440 ) N ; + - DECAP_584 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 73440 ) N ; + - DECAP_585 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63940 73440 ) N ; + - DECAP_586 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65320 73440 ) N ; + - DECAP_587 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 66700 73440 ) N ; + - DECAP_588 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68080 73440 ) N ; + - DECAP_589 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 67620 81600 ) FS ; + - DECAP_59 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 3680 65280 ) FS ; + - DECAP_590 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69000 81600 ) FS ; + - DECAP_591 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 73440 ) N ; + - DECAP_592 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 73440 ) N ; + - DECAP_593 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 73440 ) N ; + - DECAP_594 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 19780 73440 ) N ; + - DECAP_595 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 21160 73440 ) N ; + - DECAP_596 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 22540 73440 ) N ; + - DECAP_597 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23920 73440 ) N ; + - DECAP_598 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 25300 73440 ) N ; + - DECAP_599 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26680 73440 ) N ; + - DECAP_6 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 7360 27200 ) FS ; + - DECAP_60 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 5060 65280 ) FS ; + - DECAP_600 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 28060 73440 ) N ; + - DECAP_601 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 29440 73440 ) N ; + - DECAP_602 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 30820 73440 ) N ; + - DECAP_603 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 32200 73440 ) N ; + - DECAP_604 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 33580 73440 ) N ; + - DECAP_605 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 34960 73440 ) N ; + - DECAP_606 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 36340 73440 ) N ; + - DECAP_607 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 37720 73440 ) N ; + - DECAP_608 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 39100 73440 ) N ; + - DECAP_609 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40480 73440 ) N ; + - DECAP_61 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 8740 65280 ) FS ; + - DECAP_610 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53820 81600 ) FS ; + - DECAP_611 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55200 81600 ) FS ; + - DECAP_612 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 60720 81600 ) FS ; + - DECAP_613 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62100 81600 ) FS ; + - DECAP_614 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63480 81600 ) FS ; + - DECAP_615 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 64860 81600 ) FS ; + - DECAP_616 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 81600 ) FS ; + - DECAP_617 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 40940 76160 ) FS ; + - DECAP_618 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 42320 76160 ) FS ; + - DECAP_619 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43700 76160 ) FS ; + - DECAP_62 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 6440 62560 ) N ; + - DECAP_620 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 45080 76160 ) FS ; + - DECAP_621 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 46460 76160 ) FS ; + - DECAP_622 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 47840 76160 ) FS ; + - DECAP_623 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 49220 76160 ) FS ; + - DECAP_624 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 50600 76160 ) FS ; + - DECAP_625 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 51980 76160 ) FS ; + - DECAP_626 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 53360 76160 ) FS ; + - DECAP_627 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54740 76160 ) FS ; + - DECAP_628 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 76160 ) FS ; + - DECAP_629 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 58420 76160 ) FS ; + - DECAP_63 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 7820 62560 ) N ; + - DECAP_630 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 59800 76160 ) FS ; + - DECAP_631 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61180 76160 ) FS ; + - DECAP_632 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 62560 76160 ) FS ; + - DECAP_633 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 63940 76160 ) FS ; + - DECAP_634 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65320 76160 ) FS ; + - DECAP_635 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 66700 76160 ) FS ; + - DECAP_636 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68080 76160 ) FS ; + - DECAP_637 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 69460 76160 ) FS ; + - DECAP_638 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 76160 ) FS ; + - DECAP_639 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 76160 ) FS ; + - DECAP_64 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 31740 32640 ) FS ; + - DECAP_640 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 76160 ) FS ; + - DECAP_641 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 76160 ) FS ; + - DECAP_642 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 76160 ) FS ; + - DECAP_643 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 76160 ) FS ; + - DECAP_644 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 76160 ) FS ; + - DECAP_645 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 76160 ) FS ; + - DECAP_646 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 76160 ) FS ; + - DECAP_647 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 73440 ) N ; + - DECAP_648 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72220 73440 ) N ; + - DECAP_649 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 73600 73440 ) N ; + - DECAP_65 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 35420 32640 ) FS ; + - DECAP_650 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74980 73440 ) N ; + - DECAP_651 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 76360 73440 ) N ; + - DECAP_652 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 77740 73440 ) N ; + - DECAP_653 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 79120 73440 ) N ; + - DECAP_654 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 80500 73440 ) N ; + - DECAP_655 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 81880 73440 ) N ; + - DECAP_656 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 83260 73440 ) N ; + - DECAP_66 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 11960 21760 ) FS ; + - DECAP_67 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 13800 19040 ) N ; + - DECAP_68 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 21760 ) FS ; + - DECAP_69 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 19040 ) N ; + - DECAP_7 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 8740 27200 ) FS ; + - DECAP_70 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 17020 19040 ) N ; + - DECAP_71 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18400 19040 ) N ; + - DECAP_72 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 19780 19040 ) N ; + - DECAP_73 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 8740 21760 ) FS ; + - DECAP_74 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72680 38080 ) FS ; + - DECAP_75 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 74060 38080 ) FS ; + - DECAP_76 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 65320 35360 ) N ; + - DECAP_77 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 66700 35360 ) N ; + - DECAP_78 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 68080 35360 ) N ; + - DECAP_79 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 19320 21760 ) FS ; + - DECAP_8 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 13800 27200 ) FS ; + - DECAP_80 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23000 19040 ) N ; + - DECAP_81 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 70840 24480 ) N ; + - DECAP_82 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 48960 ) FS ; + - DECAP_83 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 48960 ) FS ; + - DECAP_84 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 43240 46240 ) N ; + - DECAP_85 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 72680 27200 ) FS ; + - DECAP_86 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 84180 24480 ) N ; + - DECAP_87 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 22080 16320 ) FS ; + - DECAP_88 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 23460 16320 ) FS ; + - DECAP_89 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 24840 16320 ) FS ; + - DECAP_9 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15180 27200 ) FS ; + - DECAP_90 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 26220 16320 ) FS ; + - DECAP_91 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 27600 16320 ) FS ; + - DECAP_92 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 15640 13600 ) N ; + - DECAP_93 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 18860 13600 ) N ; + - DECAP_94 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 20240 13600 ) N ; + - DECAP_95 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 52900 40800 ) N ; + - DECAP_96 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 54280 40800 ) N ; + - DECAP_97 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 55660 40800 ) N ; + - DECAP_98 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 57040 40800 ) N ; + - DECAP_99 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 61640 24480 ) N ; + - TAP_TAPCELL_ROW_0_0 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 2720 ) N ; + - TAP_TAPCELL_ROW_0_1 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 2720 ) N ; + - TAP_TAPCELL_ROW_0_2 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 2720 ) N ; + - TAP_TAPCELL_ROW_0_3 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 2720 ) N ; + - TAP_TAPCELL_ROW_0_4 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 2720 ) N ; + - TAP_TAPCELL_ROW_0_5 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 2720 ) N ; + - TAP_TAPCELL_ROW_10_33 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 29920 ) N ; + - TAP_TAPCELL_ROW_10_34 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 29920 ) N ; + - TAP_TAPCELL_ROW_10_35 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 29920 ) N ; + - TAP_TAPCELL_ROW_11_36 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 32640 ) FS ; + - TAP_TAPCELL_ROW_11_37 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 32640 ) FS ; + - TAP_TAPCELL_ROW_11_38 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 32640 ) FS ; + - TAP_TAPCELL_ROW_12_39 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 35360 ) N ; + - TAP_TAPCELL_ROW_12_40 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 35360 ) N ; + - TAP_TAPCELL_ROW_12_41 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 35360 ) N ; + - TAP_TAPCELL_ROW_13_42 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 38080 ) FS ; + - TAP_TAPCELL_ROW_13_43 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 38080 ) FS ; + - TAP_TAPCELL_ROW_13_44 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 38080 ) FS ; + - TAP_TAPCELL_ROW_14_45 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 40800 ) N ; + - TAP_TAPCELL_ROW_14_46 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 40800 ) N ; + - TAP_TAPCELL_ROW_14_47 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 40800 ) N ; + - TAP_TAPCELL_ROW_15_48 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 43520 ) FS ; + - TAP_TAPCELL_ROW_15_49 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 43520 ) FS ; + - TAP_TAPCELL_ROW_15_50 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 43520 ) FS ; + - TAP_TAPCELL_ROW_16_51 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 46240 ) N ; + - TAP_TAPCELL_ROW_16_52 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 46240 ) N ; + - TAP_TAPCELL_ROW_16_53 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 46240 ) N ; + - TAP_TAPCELL_ROW_17_54 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 48960 ) FS ; + - TAP_TAPCELL_ROW_17_55 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 48960 ) FS ; + - TAP_TAPCELL_ROW_17_56 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 48960 ) FS ; + - TAP_TAPCELL_ROW_18_57 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 51680 ) N ; + - TAP_TAPCELL_ROW_18_58 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 51680 ) N ; + - TAP_TAPCELL_ROW_18_59 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 51680 ) N ; + - TAP_TAPCELL_ROW_19_60 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 54400 ) FS ; + - TAP_TAPCELL_ROW_19_61 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 54400 ) FS ; + - TAP_TAPCELL_ROW_19_62 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 54400 ) FS ; + - TAP_TAPCELL_ROW_1_6 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 5440 ) FS ; + - TAP_TAPCELL_ROW_1_7 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 5440 ) FS ; + - TAP_TAPCELL_ROW_1_8 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 5440 ) FS ; + - TAP_TAPCELL_ROW_20_63 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 57120 ) N ; + - TAP_TAPCELL_ROW_20_64 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 57120 ) N ; + - TAP_TAPCELL_ROW_20_65 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 57120 ) N ; + - TAP_TAPCELL_ROW_21_66 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 59840 ) FS ; + - TAP_TAPCELL_ROW_21_67 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 59840 ) FS ; + - TAP_TAPCELL_ROW_21_68 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 59840 ) FS ; + - TAP_TAPCELL_ROW_22_69 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 62560 ) N ; + - TAP_TAPCELL_ROW_22_70 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 62560 ) N ; + - TAP_TAPCELL_ROW_22_71 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 62560 ) N ; + - TAP_TAPCELL_ROW_23_72 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 65280 ) FS ; + - TAP_TAPCELL_ROW_23_73 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 65280 ) FS ; + - TAP_TAPCELL_ROW_23_74 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 65280 ) FS ; + - TAP_TAPCELL_ROW_24_75 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 68000 ) N ; + - TAP_TAPCELL_ROW_24_76 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 68000 ) N ; + - TAP_TAPCELL_ROW_24_77 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 68000 ) N ; + - TAP_TAPCELL_ROW_25_78 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 70720 ) FS ; + - TAP_TAPCELL_ROW_25_79 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 70720 ) FS ; + - TAP_TAPCELL_ROW_25_80 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 70720 ) FS ; + - TAP_TAPCELL_ROW_26_81 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 73440 ) N ; + - TAP_TAPCELL_ROW_26_82 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 73440 ) N ; + - TAP_TAPCELL_ROW_26_83 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 73440 ) N ; + - TAP_TAPCELL_ROW_27_84 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 76160 ) FS ; + - TAP_TAPCELL_ROW_27_85 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 76160 ) FS ; + - TAP_TAPCELL_ROW_27_86 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 76160 ) FS ; + - TAP_TAPCELL_ROW_28_87 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 78880 ) N ; + - TAP_TAPCELL_ROW_28_88 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 78880 ) N ; + - TAP_TAPCELL_ROW_28_89 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 78880 ) N ; + - TAP_TAPCELL_ROW_29_90 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 81600 ) FS ; + - TAP_TAPCELL_ROW_29_91 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 81600 ) FS ; + - TAP_TAPCELL_ROW_29_92 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 81600 ) FS ; + - TAP_TAPCELL_ROW_29_93 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 81600 ) FS ; + - TAP_TAPCELL_ROW_29_94 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 81600 ) FS ; + - TAP_TAPCELL_ROW_29_95 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 81600 ) FS ; + - TAP_TAPCELL_ROW_2_10 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 8160 ) N ; + - TAP_TAPCELL_ROW_2_11 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 8160 ) N ; + - TAP_TAPCELL_ROW_2_9 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 8160 ) N ; + - TAP_TAPCELL_ROW_3_12 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 10880 ) FS ; + - TAP_TAPCELL_ROW_3_13 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 10880 ) FS ; + - TAP_TAPCELL_ROW_3_14 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 10880 ) FS ; + - TAP_TAPCELL_ROW_4_15 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 13600 ) N ; + - TAP_TAPCELL_ROW_4_16 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 13600 ) N ; + - TAP_TAPCELL_ROW_4_17 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 13600 ) N ; + - TAP_TAPCELL_ROW_5_18 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 16320 ) FS ; + - TAP_TAPCELL_ROW_5_19 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 16320 ) FS ; + - TAP_TAPCELL_ROW_5_20 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 16320 ) FS ; + - TAP_TAPCELL_ROW_6_21 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 19040 ) N ; + - TAP_TAPCELL_ROW_6_22 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 19040 ) N ; + - TAP_TAPCELL_ROW_6_23 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 19040 ) N ; + - TAP_TAPCELL_ROW_7_24 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 21760 ) FS ; + - TAP_TAPCELL_ROW_7_25 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 21760 ) FS ; + - TAP_TAPCELL_ROW_7_26 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 21760 ) FS ; + - TAP_TAPCELL_ROW_8_27 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 24480 ) N ; + - TAP_TAPCELL_ROW_8_28 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 24480 ) N ; + - TAP_TAPCELL_ROW_8_29 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 24480 ) N ; + - TAP_TAPCELL_ROW_9_30 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 27200 ) FS ; + - TAP_TAPCELL_ROW_9_31 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 27200 ) FS ; + - TAP_TAPCELL_ROW_9_32 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 27200 ) FS ; + - _358_ sky130_fd_sc_hd__nor4_1 + PLACED ( 18860 46240 ) N ; + - _361_ sky130_fd_sc_hd__nor4_1 + PLACED ( 29440 32640 ) FS ; + - _364_ sky130_fd_sc_hd__nor4_1 + PLACED ( 64400 43520 ) FS ; + - _367_ sky130_fd_sc_hd__nor4_1 + PLACED ( 57040 43520 ) FS ; + - _368_ sky130_fd_sc_hd__nand4_1 + PLACED ( 36340 46240 ) N ; + - _372_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 34960 65280 ) FS ; + - _373_ sky130_fd_sc_hd__nor2_1 + PLACED ( 37720 65280 ) FS ; + - _374_ sky130_fd_sc_hd__inv_8 + PLACED ( 48760 59840 ) FS ; + - _376_ sky130_fd_sc_hd__clkinv_2 + PLACED ( 46000 62560 ) N ; + - _377_ sky130_fd_sc_hd__and3_1 + PLACED ( 40480 68000 ) N ; + - _378_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39560 76160 ) FS ; + - _379_ sky130_fd_sc_hd__inv_1 + PLACED ( 37260 70720 ) FS ; + - _380_ sky130_fd_sc_hd__o211ai_1 + PLACED ( 38640 70720 ) FS ; + - _382_ sky130_fd_sc_hd__nor2_1 + PLACED ( 37260 62560 ) N ; + - _383_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 38640 68000 ) N ; + - _384_ sky130_fd_sc_hd__nor2_1 + PLACED ( 35880 70720 ) FS ; + - _385_ sky130_fd_sc_hd__xor2_1 + PLACED ( 11500 24480 ) N ; + - _387_ sky130_fd_sc_hd__inv_1 + PLACED ( 74060 32640 ) FS ; + - _388_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 68080 46240 ) N ; + - _389_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 67160 43520 ) FS ; + - _390_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 73140 57120 ) N ; + - _391_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 71760 54400 ) FS ; + - _392_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 74060 54400 ) FS ; + - _393_ sky130_fd_sc_hd__xor2_1 + PLACED ( 79580 43520 ) FS ; + - _394_ sky130_fd_sc_hd__nor4_1 + PLACED ( 69920 43520 ) FS ; + - _395_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 57960 46240 ) N ; + - _397_ sky130_fd_sc_hd__xnor2_2 + PLACED ( 57040 51680 ) N ; + - _398_ sky130_fd_sc_hd__nand2_1 + PLACED ( 61640 46240 ) N ; + - _399_ sky130_fd_sc_hd__xor2_1 + PLACED ( 57040 38080 ) FS ; + - _400_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 62100 29920 ) N ; + - _401_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 58880 35360 ) N ; + - _402_ sky130_fd_sc_hd__nand2_1 + PLACED ( 62100 38080 ) FS ; + - _403_ sky130_fd_sc_hd__nor3_1 + PLACED ( 60260 38080 ) FS ; + - _404_ sky130_fd_sc_hd__nand2_1 + PLACED ( 66700 38080 ) FS ; + - _405_ sky130_fd_sc_hd__clkinvlp_4 + PLACED ( 38640 24480 ) N ; + - _406_ sky130_fd_sc_hd__nor2_2 + PLACED ( 36800 32640 ) FS ; + - _407_ sky130_fd_sc_hd__inv_1 + PLACED ( 23460 27200 ) FS ; + - _408_ sky130_fd_sc_hd__nand2b_4 + PLACED ( 17480 27200 ) FS ; + - _409_ sky130_fd_sc_hd__maj3_4 + PLACED ( 29440 27200 ) FS ; + - _410_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 40480 29920 ) N ; + - _411_ sky130_fd_sc_hd__nor2_1 + PLACED ( 41400 32640 ) FS ; + - _412_ sky130_fd_sc_hd__o21ai_4 + PLACED ( 36800 35360 ) N ; + - _414_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 21620 54400 ) FS ; + - _415_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 19320 57120 ) N ; + - _416_ sky130_fd_sc_hd__nand2_1 + PLACED ( 21620 57120 ) N ; + - _417_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 30360 38080 ) FS ; + - _419_ sky130_fd_sc_hd__nor2b_2 + PLACED ( 17480 35360 ) N ; + - _420_ sky130_fd_sc_hd__nand2_1 + PLACED ( 22540 40800 ) N ; + - _421_ sky130_fd_sc_hd__inv_1 + PLACED ( 17940 43520 ) FS ; + - _422_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23000 43520 ) FS ; + - _423_ sky130_fd_sc_hd__and4b_2 + PLACED ( 24840 43520 ) FS ; + - _424_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39100 32640 ) FS ; + - _425_ sky130_fd_sc_hd__o211ai_4 + PLACED ( 35420 38080 ) FS ; + - _426_ sky130_fd_sc_hd__nand2b_2 + PLACED ( 18860 32640 ) FS ; + - _427_ sky130_fd_sc_hd__maj3_1 + PLACED ( 19320 43520 ) FS ; + - _428_ sky130_fd_sc_hd__inv_1 + PLACED ( 13800 57120 ) N ; + - _429_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 15180 54400 ) FS ; + - _430_ sky130_fd_sc_hd__maj3_1 + PLACED ( 15640 57120 ) N ; + - _431_ sky130_fd_sc_hd__o21ai_4 + PLACED ( 23920 46240 ) N ; + - _432_ sky130_fd_sc_hd__a31o_2 + PLACED ( 39560 40800 ) N ; + - _433_ sky130_fd_sc_hd__inv_1 + PLACED ( 76360 48960 ) FS ; + - _434_ sky130_fd_sc_hd__maj3_1 + PLACED ( 70380 48960 ) FS ; + - _435_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 72680 51680 ) N ; + - _436_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 59340 43520 ) FS ; + - _437_ sky130_fd_sc_hd__inv_1 + PLACED ( 49680 46240 ) N ; + - _438_ sky130_fd_sc_hd__inv_1 + PLACED ( 50600 29920 ) N ; + - _439_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 54280 32640 ) FS ; + - _440_ sky130_fd_sc_hd__o31ai_4 + PLACED ( 51060 35360 ) N ; + - _441_ sky130_fd_sc_hd__maj3_1 + PLACED ( 54280 46240 ) N ; + - _442_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 61640 43520 ) FS ; + - _443_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 62100 40800 ) N ; + - _444_ sky130_fd_sc_hd__o211a_1 + PLACED ( 66700 40800 ) N ; + - _445_ sky130_fd_sc_hd__maj3_4 + PLACED ( 72680 35360 ) N ; + - _446_ sky130_fd_sc_hd__nand2_8 + PLACED ( 39100 59840 ) FS ; + - _448_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 10120 27200 ) FS ; + - _450_ sky130_fd_sc_hd__nand2_1 + PLACED ( 2300 27200 ) FS ; + - _451_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4140 27200 ) FS ; + - _453_ sky130_fd_sc_hd__inv_1 + PLACED ( 26680 19040 ) N ; + - _454_ sky130_fd_sc_hd__inv_1 + PLACED ( 72680 29920 ) N ; + - _455_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 68080 38080 ) FS ; + - _456_ sky130_fd_sc_hd__maj3_4 + PLACED ( 69000 32640 ) FS ; + - _458_ sky130_fd_sc_hd__nor3_1 + PLACED ( 21620 21760 ) FS ; + - _459_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 21160 19040 ) N ; + - _460_ sky130_fd_sc_hd__nand2_1 + PLACED ( 17480 10880 ) FS ; + - _461_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 17020 13600 ) N ; + - _462_ sky130_fd_sc_hd__nor3_1 + PLACED ( 31740 21760 ) FS ; + - _463_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 33580 21760 ) FS ; + - _464_ sky130_fd_sc_hd__nand2_1 + PLACED ( 34500 10880 ) FS ; + - _465_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 33580 13600 ) N ; + - _466_ sky130_fd_sc_hd__inv_1 + PLACED ( 30360 43520 ) FS ; + - _468_ sky130_fd_sc_hd__nor3_1 + PLACED ( 29440 48960 ) FS ; + - _469_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 28980 51680 ) N ; + - _471_ sky130_fd_sc_hd__nand2_1 + PLACED ( 8740 54400 ) FS ; + - _472_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 27140 51680 ) N ; + - _473_ sky130_fd_sc_hd__inv_1 + PLACED ( 11500 35360 ) N ; + - _474_ sky130_fd_sc_hd__nor3_1 + PLACED ( 12420 38080 ) FS ; + - _475_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10580 38080 ) FS ; + - _476_ sky130_fd_sc_hd__nand2_1 + PLACED ( 1380 38080 ) FS ; + - _477_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 38080 ) FS ; + - _478_ sky130_fd_sc_hd__inv_1 + PLACED ( 9660 46240 ) N ; + - _479_ sky130_fd_sc_hd__nor3_1 + PLACED ( 11040 48960 ) FS ; + - _480_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10580 51680 ) N ; + - _481_ sky130_fd_sc_hd__nand2_1 + PLACED ( 5060 51680 ) N ; + - _482_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 51680 ) N ; + - _483_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 11500 54400 ) FS ; + - _484_ sky130_fd_sc_hd__nand2_1 + PLACED ( 1380 57120 ) N ; + - _485_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 54400 ) FS ; + - _486_ sky130_fd_sc_hd__inv_1 + PLACED ( 11500 65280 ) FS ; + - _487_ sky130_fd_sc_hd__nor3_1 + PLACED ( 11040 62560 ) N ; + - _488_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 9200 62560 ) N ; + - _489_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3220 62560 ) N ; + - _490_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4600 62560 ) N ; + - _491_ sky130_fd_sc_hd__nor3_1 + PLACED ( 47840 24480 ) N ; + - _492_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 46460 21760 ) FS ; + - _493_ sky130_fd_sc_hd__nand2_1 + PLACED ( 45080 13600 ) N ; + - _494_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 45080 16320 ) FS ; + - _495_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 52900 19040 ) N ; + - _496_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51060 10880 ) FS ; + - _497_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50140 13600 ) N ; + - _498_ sky130_fd_sc_hd__inv_1 + PLACED ( 53820 51680 ) N ; + - _499_ sky130_fd_sc_hd__nor3_1 + PLACED ( 44160 54400 ) FS ; + - _500_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 42320 54400 ) FS ; + - _501_ sky130_fd_sc_hd__nand2_1 + PLACED ( 38640 62560 ) N ; + - _502_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 38180 54400 ) FS ; + - _504_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 52440 62560 ) N ; + - _505_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51520 70720 ) FS ; + - _506_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 62560 ) N ; + - _507_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 65320 19040 ) N ; + - _508_ sky130_fd_sc_hd__nand2_1 + PLACED ( 65780 10880 ) FS ; + - _509_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 64860 13600 ) N ; + - _510_ sky130_fd_sc_hd__inv_1 + PLACED ( 74520 51680 ) N ; + - _511_ sky130_fd_sc_hd__nor3_1 + PLACED ( 76360 54400 ) FS ; + - _512_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 75900 57120 ) N ; + - _513_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80040 59840 ) FS ; + - _514_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 78200 54400 ) FS ; + - _515_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 73600 65280 ) FS ; + - _516_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80040 65280 ) FS ; + - _517_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 77280 65280 ) FS ; + - _518_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 74980 27200 ) FS ; + - _519_ sky130_fd_sc_hd__nand2_1 + PLACED ( 77740 21760 ) FS ; + - _520_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 75900 21760 ) FS ; + - _521_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10120 21760 ) FS ; + - _523_ sky130_fd_sc_hd__nand3_1 + PLACED ( 15640 24480 ) N ; + - _524_ sky130_fd_sc_hd__o22ai_1 + PLACED ( 13340 21760 ) FS ; + - _525_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3680 21760 ) FS ; + - _526_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 5980 21760 ) FS ; + - _527_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 17020 21760 ) FS ; + - _529_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 26220 21760 ) FS ; + - _530_ sky130_fd_sc_hd__nor2_1 + PLACED ( 24840 27200 ) FS ; + - _531_ sky130_fd_sc_hd__nor2_1 + PLACED ( 27140 24480 ) N ; + - _532_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 28980 24480 ) N ; + - _533_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 22080 24480 ) N ; + - _534_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 23920 24480 ) N ; + - _535_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 23920 21760 ) FS ; + - _536_ sky130_fd_sc_hd__nand2_1 + PLACED ( 29440 10880 ) FS ; + - _537_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 24840 19040 ) N ; + - _538_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 27140 27200 ) FS ; + - _539_ sky130_fd_sc_hd__or2_0 + PLACED ( 31280 24480 ) N ; + - _540_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 34040 24480 ) N ; + - _541_ sky130_fd_sc_hd__nor3_1 + PLACED ( 34500 29920 ) N ; + - _542_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 37720 29920 ) N ; + - _543_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 34960 27200 ) FS ; + - _544_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 36800 27200 ) FS ; + - _545_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 35880 24480 ) N ; + - _546_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39560 19040 ) N ; + - _547_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 36800 19040 ) N ; + - _548_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 33580 35360 ) N ; + - _549_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 38640 46240 ) N ; + - _550_ sky130_fd_sc_hd__nor3_1 + PLACED ( 37720 48960 ) FS ; + - _552_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 36340 43520 ) FS ; + - _553_ sky130_fd_sc_hd__nand2_1 + PLACED ( 33120 43520 ) FS ; + - _554_ sky130_fd_sc_hd__nand2_1 + PLACED ( 31740 46240 ) N ; + - _555_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 33120 46240 ) N ; + - _556_ sky130_fd_sc_hd__and3_1 + PLACED ( 32200 48960 ) FS ; + - _557_ sky130_fd_sc_hd__nand2_1 + PLACED ( 8280 46240 ) N ; + - _558_ sky130_fd_sc_hd__o41ai_1 + PLACED ( 34500 48960 ) FS ; + - _559_ sky130_fd_sc_hd__nor2b_2 + PLACED ( 32660 40800 ) N ; + - _560_ sky130_fd_sc_hd__a2111oi_4 + PLACED ( 24380 29920 ) N ; + - _561_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 33120 32640 ) FS ; + - _562_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 28980 35360 ) N ; + - _563_ sky130_fd_sc_hd__nor2_1 + PLACED ( 27140 35360 ) N ; + - _564_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 11040 32640 ) FS ; + - _565_ sky130_fd_sc_hd__inv_1 + PLACED ( 16560 29920 ) N ; + - _566_ sky130_fd_sc_hd__nand3_1 + PLACED ( 13340 35360 ) N ; + - _567_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 15640 35360 ) N ; + - _568_ sky130_fd_sc_hd__nand2_1 + PLACED ( 20240 29920 ) N ; + - _569_ sky130_fd_sc_hd__nand2_1 + PLACED ( 18860 29920 ) N ; + - _570_ sky130_fd_sc_hd__a32o_1 + PLACED ( 15180 32640 ) FS ; + - _571_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 12880 32640 ) FS ; + - _572_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3220 29920 ) N ; + - _573_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4600 29920 ) N ; + - _574_ sky130_fd_sc_hd__o31ai_4 + PLACED ( 21160 38080 ) FS ; + - _575_ sky130_fd_sc_hd__nand2_1 + PLACED ( 11960 40800 ) N ; + - _576_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 12880 43520 ) FS ; + - _577_ sky130_fd_sc_hd__nand2_1 + PLACED ( 15640 46240 ) N ; + - _578_ sky130_fd_sc_hd__nand2_1 + PLACED ( 12880 48960 ) FS ; + - _579_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 14260 48960 ) FS ; + - _580_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 17020 46240 ) N ; + - _581_ sky130_fd_sc_hd__a32o_1 + PLACED ( 11500 46240 ) N ; + - _582_ sky130_fd_sc_hd__nand2_1 + PLACED ( 6900 46240 ) N ; + - _583_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 9660 43520 ) FS ; + - _584_ sky130_fd_sc_hd__inv_1 + PLACED ( 21620 59840 ) FS ; + - _585_ sky130_fd_sc_hd__nand2_1 + PLACED ( 21160 46240 ) N ; + - _586_ sky130_fd_sc_hd__nor2_1 + PLACED ( 22540 46240 ) N ; + - _587_ sky130_fd_sc_hd__a21oi_2 + PLACED ( 22080 48960 ) FS ; + - _588_ sky130_fd_sc_hd__nor3_1 + PLACED ( 25760 57120 ) N ; + - _589_ sky130_fd_sc_hd__a21o_1 + PLACED ( 24380 62560 ) N ; + - _590_ sky130_fd_sc_hd__nand3_1 + PLACED ( 27140 62560 ) N ; + - _591_ sky130_fd_sc_hd__a21o_1 + PLACED ( 19320 48960 ) FS ; + - _592_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23920 57120 ) N ; + - _593_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23000 59840 ) FS ; + - _594_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 24840 59840 ) FS ; + - _595_ sky130_fd_sc_hd__nor2_1 + PLACED ( 29900 68000 ) N ; + - _596_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 29440 62560 ) N ; + - _597_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 21620 62560 ) N ; + - _598_ sky130_fd_sc_hd__nand2_1 + PLACED ( 18860 65280 ) FS ; + - _599_ sky130_fd_sc_hd__maj3_2 + PLACED ( 21160 65280 ) FS ; + - _600_ sky130_fd_sc_hd__nor4_1 + PLACED ( 18860 62560 ) N ; + - _601_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 16100 59840 ) FS ; + - _602_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 16100 62560 ) N ; + - _603_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 13340 62560 ) N ; + - _604_ sky130_fd_sc_hd__or3_1 + PLACED ( 13800 59840 ) FS ; + - _605_ sky130_fd_sc_hd__nor2_1 + PLACED ( 19780 59840 ) FS ; + - _606_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 17020 65280 ) FS ; + - _607_ sky130_fd_sc_hd__inv_1 + PLACED ( 10120 65280 ) FS ; + - _608_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 13800 65280 ) FS ; + - _609_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 48760 29920 ) N ; + - _610_ sky130_fd_sc_hd__a31oi_4 + PLACED ( 43240 40800 ) N ; + - _611_ sky130_fd_sc_hd__nand3_1 + PLACED ( 52440 32640 ) FS ; + - _612_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 32640 ) FS ; + - _613_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 45540 32640 ) FS ; + - _614_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 47380 32640 ) FS ; + - _615_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 46000 29920 ) N ; + - _616_ sky130_fd_sc_hd__nand2_1 + PLACED ( 45080 21760 ) FS ; + - _617_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 46000 24480 ) N ; + - _618_ sky130_fd_sc_hd__maj3_1 + PLACED ( 52900 29920 ) N ; + - _619_ sky130_fd_sc_hd__nand2_1 + PLACED ( 55200 21760 ) FS ; + - _620_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 57040 21760 ) FS ; + - _621_ sky130_fd_sc_hd__nor2_1 + PLACED ( 57040 27200 ) FS ; + - _622_ sky130_fd_sc_hd__nor2_1 + PLACED ( 58420 27200 ) FS ; + - _623_ sky130_fd_sc_hd__nand2_1 + PLACED ( 54740 24480 ) N ; + - _624_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 56120 24480 ) N ; + - _625_ sky130_fd_sc_hd__nand3_1 + PLACED ( 59800 24480 ) N ; + - _626_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 59800 21760 ) FS ; + - _627_ sky130_fd_sc_hd__nand2_1 + PLACED ( 58880 10880 ) FS ; + - _628_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 57040 19040 ) N ; + - _629_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51520 40800 ) N ; + - _630_ sky130_fd_sc_hd__a311oi_4 + PLACED ( 43240 43520 ) FS ; + - _631_ sky130_fd_sc_hd__inv_1 + PLACED ( 54280 38080 ) FS ; + - _632_ sky130_fd_sc_hd__nand2_1 + PLACED ( 52900 38080 ) FS ; + - _633_ sky130_fd_sc_hd__a311oi_4 + PLACED ( 43240 38080 ) FS ; + - _634_ sky130_fd_sc_hd__nor4_1 + PLACED ( 51060 46240 ) N ; + - _635_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 51680 ) N ; + - _636_ sky130_fd_sc_hd__nor3_4 + PLACED ( 46920 48960 ) FS ; + - _637_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 48760 51680 ) N ; + - _638_ sky130_fd_sc_hd__nand3_1 + PLACED ( 51980 54400 ) FS ; + - _639_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50140 54400 ) FS ; + - _640_ sky130_fd_sc_hd__nor2_1 + PLACED ( 46460 51680 ) N ; + - _641_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 46920 54400 ) FS ; + - _642_ sky130_fd_sc_hd__nor2_1 + PLACED ( 47840 62560 ) N ; + - _643_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 46460 59840 ) FS ; + - _644_ sky130_fd_sc_hd__maj3_1 + PLACED ( 57040 57120 ) N ; + - _645_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 63480 59840 ) FS ; + - _646_ sky130_fd_sc_hd__o21a_1 + PLACED ( 60720 59840 ) FS ; + - _647_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 58880 62560 ) N ; + - _648_ sky130_fd_sc_hd__inv_1 + PLACED ( 55200 59840 ) FS ; + - _649_ sky130_fd_sc_hd__nand2_1 + PLACED ( 62100 62560 ) N ; + - _650_ sky130_fd_sc_hd__mux2_1 + PLACED ( 58880 65280 ) FS ; + - _651_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 56120 62560 ) N ; + - _652_ sky130_fd_sc_hd__nand2_1 + PLACED ( 59340 70720 ) FS ; + - _653_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 57040 65280 ) FS ; + - _654_ sky130_fd_sc_hd__o21a_1 + PLACED ( 59340 40800 ) N ; + - _655_ sky130_fd_sc_hd__a21oi_2 + PLACED ( 63480 38080 ) FS ; + - _656_ sky130_fd_sc_hd__nor2_1 + PLACED ( 67620 32640 ) FS ; + - _657_ sky130_fd_sc_hd__nor2_1 + PLACED ( 70840 29920 ) N ; + - _658_ sky130_fd_sc_hd__nand2_1 + PLACED ( 68080 29920 ) N ; + - _659_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 63940 32640 ) FS ; + - _660_ sky130_fd_sc_hd__nand3_1 + PLACED ( 63940 27200 ) FS ; + - _661_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 68540 27200 ) FS ; + - _662_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 64400 29920 ) N ; + - _663_ sky130_fd_sc_hd__nor3_1 + PLACED ( 66240 29920 ) N ; + - _664_ sky130_fd_sc_hd__nand2_1 + PLACED ( 71300 27200 ) FS ; + - _665_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 65780 27200 ) FS ; + - _666_ sky130_fd_sc_hd__nor2_1 + PLACED ( 70840 46240 ) N ; + - _667_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 57500 48960 ) FS ; + - _668_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 65320 46240 ) N ; + - _669_ sky130_fd_sc_hd__nor2_1 + PLACED ( 55200 51680 ) N ; + - _670_ sky130_fd_sc_hd__maj3_1 + PLACED ( 57040 59840 ) FS ; + - _671_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 68540 48960 ) FS ; + - _672_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 65320 48960 ) FS ; + - _673_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 74060 48960 ) FS ; + - _674_ sky130_fd_sc_hd__a21o_1 + PLACED ( 72680 43520 ) FS ; + - _675_ sky130_fd_sc_hd__a32o_1 + PLACED ( 72680 46240 ) N ; + - _676_ sky130_fd_sc_hd__nand2_1 + PLACED ( 78200 43520 ) FS ; + - _677_ sky130_fd_sc_hd__mux2_1 + PLACED ( 76360 46240 ) N ; + - _678_ sky130_fd_sc_hd__nor3_1 + PLACED ( 76360 43520 ) FS ; + - _679_ sky130_fd_sc_hd__nand2_1 + PLACED ( 78200 40800 ) N ; + - _680_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 75440 40800 ) N ; + - _681_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 69000 54400 ) FS ; + - _682_ sky130_fd_sc_hd__a21o_1 + PLACED ( 66240 54400 ) FS ; + - _683_ sky130_fd_sc_hd__o21ai_1 + PLACED ( 70840 51680 ) N ; + - _684_ sky130_fd_sc_hd__or2_1 + PLACED ( 70840 57120 ) N ; + - _685_ sky130_fd_sc_hd__nand2_1 + PLACED ( 65780 62560 ) N ; + - _686_ sky130_fd_sc_hd__and2_0 + PLACED ( 66700 57120 ) N ; + - _687_ sky130_fd_sc_hd__o2111ai_1 + PLACED ( 67160 59840 ) FS ; + - _688_ sky130_fd_sc_hd__nand2_1 + PLACED ( 69000 57120 ) N ; + - _689_ sky130_fd_sc_hd__or3_1 + PLACED ( 70380 59840 ) FS ; + - _690_ sky130_fd_sc_hd__o311ai_1 + PLACED ( 67160 62560 ) N ; + - _691_ sky130_fd_sc_hd__nand2_1 + PLACED ( 66240 70720 ) FS ; + - _692_ sky130_fd_sc_hd__nor2_1 + PLACED ( 71300 62560 ) N ; + - _693_ sky130_fd_sc_hd__nor2_1 + PLACED ( 72220 65280 ) FS ; + - _694_ sky130_fd_sc_hd__nor3_1 + PLACED ( 66240 65280 ) FS ; + - _695_ sky130_fd_sc_hd__a2111o_1 + PLACED ( 68080 65280 ) FS ; + - _696_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 66700 68000 ) N ; + - _697_ sky130_fd_sc_hd__nand2_1 + PLACED ( 75440 32640 ) FS ; + - _698_ sky130_fd_sc_hd__nand3_1 + PLACED ( 74060 29920 ) N ; + - _699_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 75900 29920 ) N ; + - _700_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 76820 32640 ) FS ; + - _701_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80960 24480 ) N ; + - _702_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 78660 29920 ) N ; + - _703_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 48960 ) FS ; + - _704_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 54400 ) FS ; + - _705_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 70840 40800 ) N ; + - _706_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80500 46240 ) N ; + - _707_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 73600 59840 ) FS ; + - _708_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80040 32640 ) FS ; + - _709_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80040 35360 ) N ; + - _710_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 24840 10880 ) FS ; + - _711_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 28980 13600 ) N ; + - _712_ sky130_fd_sc_hd__nor2_1 + PLACED ( 42780 32640 ) FS ; + - _713_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 40020 27200 ) FS ; + - _714_ sky130_fd_sc_hd__nor2_1 + PLACED ( 31740 43520 ) FS ; + - _715_ sky130_fd_sc_hd__nor2_1 + PLACED ( 31280 40800 ) N ; + - _716_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 28060 40800 ) N ; + - _717_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 25300 32640 ) FS ; + - _718_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 22080 32640 ) FS ; + - _719_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 8280 40800 ) N ; + - _720_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 4600 40800 ) N ; + - _721_ sky130_fd_sc_hd__and2_0 + PLACED ( 18860 54400 ) FS ; + - _722_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 20240 51680 ) N ; + - _723_ sky130_fd_sc_hd__xor2_1 + PLACED ( 16100 68000 ) N ; + - _724_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 19320 68000 ) N ; + - _725_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 35360 ) N ; + - _726_ sky130_fd_sc_hd__xor2_1 + PLACED ( 58880 29920 ) N ; + - clkbuf_0_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 38180 43520 ) FS ; + - clkbuf_2_0__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 22080 35360 ) N ; + - clkbuf_2_1__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 23920 54400 ) FS ; + - clkbuf_2_2__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 58420 32640 ) FS ; + - clkbuf_2_3__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 57040 54400 ) FS ; + - clkload0 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 20700 35360 ) N ; + - clkload1 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 57040 32640 ) FS ; + - clkload2 sky130_fd_sc_hd__clkinv_2 + SOURCE TIMING + PLACED ( 54740 54400 ) FS ; + - ctrl.state.out\[1\]$_DFF_P_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 31280 68000 ) N ; + - ctrl.state.out\[2\]$_DFF_P_ sky130_fd_sc_hd__dfxtp_4 + PLACED ( 39100 65280 ) FS ; + - dpath.a_lt_b$in0\[0\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 5980 19040 ) N ; + - dpath.a_lt_b$in0\[10\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 46460 57120 ) N ; + - dpath.a_lt_b$in0\[11\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 56580 68000 ) N ; + - dpath.a_lt_b$in0\[12\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 63020 24480 ) N ; + - dpath.a_lt_b$in0\[13\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 76820 38080 ) FS ; + - dpath.a_lt_b$in0\[14\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 70840 68000 ) N ; + - dpath.a_lt_b$in0\[15\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 76820 27200 ) FS ; + - dpath.a_lt_b$in0\[1\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 21620 13600 ) N ; + - dpath.a_lt_b$in0\[2\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 36340 21760 ) FS ; + - dpath.a_lt_b$in0\[3\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 34960 51680 ) N ; + - dpath.a_lt_b$in0\[4\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 32640 ) FS ; + - dpath.a_lt_b$in0\[5\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 1840 43520 ) FS ; + - dpath.a_lt_b$in0\[6\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 29440 59840 ) FS ; + - dpath.a_lt_b$in0\[7\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 7820 68000 ) N ; + - dpath.a_lt_b$in0\[8\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 44620 27200 ) FS ; + - dpath.a_lt_b$in0\[9\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 53820 13600 ) N ; + - dpath.a_lt_b$in1\[0\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 3680 24480 ) N ; + - dpath.a_lt_b$in1\[10\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 34960 57120 ) N ; + - dpath.a_lt_b$in1\[11\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 47840 65280 ) FS ; + - dpath.a_lt_b$in1\[12\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 63020 16320 ) FS ; + - dpath.a_lt_b$in1\[13\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 77740 57120 ) N ; + - dpath.a_lt_b$in1\[14\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 72680 62560 ) N ; + - dpath.a_lt_b$in1\[15\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 73140 24480 ) N ; + - dpath.a_lt_b$in1\[1\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 14260 16320 ) FS ; + - dpath.a_lt_b$in1\[2\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 32660 16320 ) FS ; + - dpath.a_lt_b$in1\[3\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 29440 54400 ) FS ; + - dpath.a_lt_b$in1\[4\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 3680 35360 ) N ; + - dpath.a_lt_b$in1\[5\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 48960 ) FS ; + - dpath.a_lt_b$in1\[6\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 57120 ) N ; + - dpath.a_lt_b$in1\[7\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3680 59840 ) FS ; + - dpath.a_lt_b$in1\[8\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 43700 19040 ) N ; + - dpath.a_lt_b$in1\[9\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 49220 16320 ) FS ; + - input1 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 21760 ) FS ; + - input10 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 38640 2720 ) N ; + - input11 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 5520 46240 ) N ; + - input12 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 17480 2720 ) N ; + - input13 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 29920 ) N ; + - input14 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2760 46240 ) N ; + - input15 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 28980 78880 ) N ; + - input16 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 7360 65280 ) FS ; + - input17 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 45080 5440 ) FS ; + - input18 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 58880 5440 ) FS ; + - input19 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 47840 81600 ) FS ; + - input2 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 37260 81600 ) FS ; + - input20 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 59340 81600 ) FS ; + - input21 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 24480 ) N ; + - input22 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 40800 ) N ; + - input23 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 34960 5440 ) FS ; + - input24 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 66240 81600 ) FS ; + - input25 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 29920 ) N ; + - input26 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 54400 ) FS ; + - input27 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 35360 ) N ; + - input28 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 51680 ) N ; + - input29 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 59840 ) FS ; + - input3 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 52440 81600 ) FS ; + - input30 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 62560 ) N ; + - input31 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 45080 2720 ) N ; + - input32 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 51060 2720 ) N ; + - input33 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 37720 78880 ) N ; + - input34 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 35880 81600 ) FS ; + - input35 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 39100 81600 ) FS ; + - input4 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 66240 2720 ) N ; + - input5 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 81420 59840 ) FS ; + - input6 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 81420 65280 ) FS ; + - input7 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 79120 21760 ) FS ; + - input8 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 24480 ) N ; + - input9 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 25760 2720 ) N ; + - output36 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2300 65280 ) FS ; + - output37 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 5980 27200 ) FS ; + - output38 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82340 48960 ) FS ; + - output39 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 54400 ) FS ; + - output40 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 79580 40800 ) N ; + - output41 sky130_fd_sc_hd__clkbuf_2 + SOURCE TIMING + PLACED ( 83720 46240 ) N ; + - output42 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 59840 ) FS ; + - output43 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 84180 35360 ) N ; + - output44 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 29900 2720 ) N ; + - output45 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 40020 2720 ) N ; + - output46 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 40800 ) N ; + - output47 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 32640 ) FS ; + - output48 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2760 40800 ) N ; + - output49 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 13800 51680 ) N ; + - output50 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 20700 81600 ) FS ; + - output51 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 75440 38080 ) FS ; + - output52 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 80500 29920 ) N ; + - output53 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 39100 78880 ) N ; + - rebuffer1 sky130_fd_sc_hd__clkbuf_2 + SOURCE TIMING + PLACED ( 66240 51680 ) N ; + - rebuffer2 sky130_fd_sc_hd__dlymetal6s2s_1 + SOURCE TIMING + PLACED ( 45080 46240 ) N ; + - req_rdy$_DFF_P_ sky130_fd_sc_hd__dfxtp_4 + PLACED ( 41400 70720 ) FS ; +END COMPONENTS +PINS 54 ; + - clk + NET clk + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 71060 ) N ; + - req_msg[0] + NET req_msg[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 24820 ) N ; + - req_msg[10] + NET req_msg[10] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 37950 86597 ) N ; + - req_msg[11] + NET req_msg[11] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 53590 86597 ) N ; + - req_msg[12] + NET req_msg[12] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 67390 242 ) N ; + - req_msg[13] + NET req_msg[13] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 58820 ) N ; + - req_msg[14] + NET req_msg[14] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 65620 ) N ; + - req_msg[15] + NET req_msg[15] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 26180 ) N ; + - req_msg[16] + NET req_msg[16] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 23460 ) N ; + - req_msg[17] + NET req_msg[17] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 26910 242 ) N ; + - req_msg[18] + NET req_msg[18] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 38870 242 ) N ; + - req_msg[19] + NET req_msg[19] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 47940 ) N ; + - req_msg[1] + NET req_msg[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 17710 242 ) N ; + - req_msg[20] + NET req_msg[20] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 30260 ) N ; + - req_msg[21] + NET req_msg[21] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 45220 ) N ; + - req_msg[22] + NET req_msg[22] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 28750 86597 ) N ; + - req_msg[23] + NET req_msg[23] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 65620 ) N ; + - req_msg[24] + NET req_msg[24] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 47150 242 ) N ; + - req_msg[25] + NET req_msg[25] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 60030 242 ) N ; + - req_msg[26] + NET req_msg[26] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 48070 86597 ) N ; + - req_msg[27] + NET req_msg[27] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 59110 86597 ) N ; + - req_msg[28] + NET req_msg[28] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 27540 ) N ; + - req_msg[29] + NET req_msg[29] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 42500 ) N ; + - req_msg[2] + NET req_msg[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 36110 242 ) N ; + - req_msg[30] + NET req_msg[30] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 66470 86597 ) N ; + - req_msg[31] + NET req_msg[31] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 28900 ) N ; + - req_msg[3] + NET req_msg[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 54740 ) N ; + - req_msg[4] + NET req_msg[4] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 37060 ) N ; + - req_msg[5] + NET req_msg[5] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 52020 ) N ; + - req_msg[6] + NET req_msg[6] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 56100 ) N ; + - req_msg[7] + NET req_msg[7] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 64260 ) N ; + - req_msg[8] + NET req_msg[8] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 46230 242 ) N ; + - req_msg[9] + NET req_msg[9] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 50830 242 ) N ; + - req_rdy + NET req_rdy + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 68340 ) N ; + - req_val + NET req_val + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 40710 86597 ) N ; + - reset + NET reset + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 37030 86597 ) N ; + - resp_msg[0] + NET resp_msg[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 27540 ) N ; + - resp_msg[10] + NET resp_msg[10] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 50660 ) N ; + - resp_msg[11] + NET resp_msg[11] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 56100 ) N ; + - resp_msg[12] + NET resp_msg[12] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 41140 ) N ; + - resp_msg[13] + NET resp_msg[13] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 49300 ) N ; + - resp_msg[14] + NET resp_msg[14] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 60180 ) N ; + - resp_msg[15] + NET resp_msg[15] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 37060 ) N ; + - resp_msg[1] + NET resp_msg[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 29670 242 ) N ; + - resp_msg[2] + NET resp_msg[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 39790 242 ) N ; + - resp_msg[3] + NET resp_msg[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 42500 ) N ; + - resp_msg[4] + NET resp_msg[4] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 35700 ) N ; + - resp_msg[5] + NET resp_msg[5] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 43860 ) N ; + - resp_msg[6] + NET resp_msg[6] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 53380 ) N ; + - resp_msg[7] + NET resp_msg[7] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 21390 86597 ) N ; + - resp_msg[8] + NET resp_msg[8] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 39780 ) N ; + - resp_msg[9] + NET resp_msg[9] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 31620 ) N ; + - resp_rdy + NET resp_rdy + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 39790 86597 ) N ; + - resp_val + NET resp_val + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 38870 86597 ) N ; +END PINS +SPECIALNETS 2 ; + - VDD ( * VPWR ) + USE POWER + + ROUTED met5 1600 + SHAPE STRIPE ( 27720 84320 ) ( 83600 84320 ) + NEW met5 1600 + SHAPE STRIPE ( 27720 57120 ) ( 83600 57120 ) + NEW met5 1600 + SHAPE STRIPE ( 27720 29920 ) ( 83600 29920 ) + NEW met4 1600 + SHAPE STRIPE ( 82800 5200 ) ( 82800 85120 ) + NEW met4 1600 + SHAPE STRIPE ( 55660 5200 ) ( 55660 85120 ) + NEW met4 1600 + SHAPE STRIPE ( 28520 5200 ) ( 28520 85120 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 81600 ) ( 85560 81600 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 76160 ) ( 85560 76160 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 70720 ) ( 85560 70720 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 65280 ) ( 85560 65280 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 59840 ) ( 85560 59840 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 54400 ) ( 85560 54400 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 48960 ) ( 85560 48960 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 43520 ) ( 85560 43520 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 38080 ) ( 85560 38080 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 32640 ) ( 85560 32640 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 27200 ) ( 85560 27200 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 21760 ) ( 85560 21760 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 16320 ) ( 85560 16320 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 10880 ) ( 85560 10880 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 5440 ) ( 85560 5440 ) + NEW met4 0 + SHAPE STRIPE ( 82800 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 82800 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 82800 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met3 330 + SHAPE STRIPE ( 82010 81600 ) ( 83590 81600 ) + NEW met3 0 + SHAPE STRIPE ( 82800 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 81600 ) ( 83570 81600 ) + NEW met2 0 + SHAPE STRIPE ( 82800 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 76160 ) ( 83590 76160 ) + NEW met3 0 + SHAPE STRIPE ( 82800 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 76160 ) ( 83570 76160 ) + NEW met2 0 + SHAPE STRIPE ( 82800 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 70720 ) ( 83590 70720 ) + NEW met3 0 + SHAPE STRIPE ( 82800 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 70720 ) ( 83570 70720 ) + NEW met2 0 + SHAPE STRIPE ( 82800 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 65280 ) ( 83590 65280 ) + NEW met3 0 + SHAPE STRIPE ( 82800 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 65280 ) ( 83570 65280 ) + NEW met2 0 + SHAPE STRIPE ( 82800 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 59840 ) ( 83590 59840 ) + NEW met3 0 + SHAPE STRIPE ( 82800 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 59840 ) ( 83570 59840 ) + NEW met2 0 + SHAPE STRIPE ( 82800 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 54400 ) ( 83590 54400 ) + NEW met3 0 + SHAPE STRIPE ( 82800 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 54400 ) ( 83570 54400 ) + NEW met2 0 + SHAPE STRIPE ( 82800 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 48960 ) ( 83590 48960 ) + NEW met3 0 + SHAPE STRIPE ( 82800 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 48960 ) ( 83570 48960 ) + NEW met2 0 + SHAPE STRIPE ( 82800 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 43520 ) ( 83590 43520 ) + NEW met3 0 + SHAPE STRIPE ( 82800 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 43520 ) ( 83570 43520 ) + NEW met2 0 + SHAPE STRIPE ( 82800 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 38080 ) ( 83590 38080 ) + NEW met3 0 + SHAPE STRIPE ( 82800 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 38080 ) ( 83570 38080 ) + NEW met2 0 + SHAPE STRIPE ( 82800 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 32640 ) ( 83590 32640 ) + NEW met3 0 + SHAPE STRIPE ( 82800 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 32640 ) ( 83570 32640 ) + NEW met2 0 + SHAPE STRIPE ( 82800 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 27200 ) ( 83590 27200 ) + NEW met3 0 + SHAPE STRIPE ( 82800 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 27200 ) ( 83570 27200 ) + NEW met2 0 + SHAPE STRIPE ( 82800 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 21760 ) ( 83590 21760 ) + NEW met3 0 + SHAPE STRIPE ( 82800 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 21760 ) ( 83570 21760 ) + NEW met2 0 + SHAPE STRIPE ( 82800 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 16320 ) ( 83590 16320 ) + NEW met3 0 + SHAPE STRIPE ( 82800 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 16320 ) ( 83570 16320 ) + NEW met2 0 + SHAPE STRIPE ( 82800 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 10880 ) ( 83590 10880 ) + NEW met3 0 + SHAPE STRIPE ( 82800 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 10880 ) ( 83570 10880 ) + NEW met2 0 + SHAPE STRIPE ( 82800 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 5440 ) ( 83590 5440 ) + NEW met3 0 + SHAPE STRIPE ( 82800 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 5440 ) ( 83570 5440 ) + NEW met2 0 + SHAPE STRIPE ( 82800 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 5440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 81600 ) ( 56450 81600 ) + NEW met3 0 + SHAPE STRIPE ( 55660 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 81600 ) ( 56430 81600 ) + NEW met2 0 + SHAPE STRIPE ( 55660 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 76160 ) ( 56450 76160 ) + NEW met3 0 + SHAPE STRIPE ( 55660 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 76160 ) ( 56430 76160 ) + NEW met2 0 + SHAPE STRIPE ( 55660 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 70720 ) ( 56450 70720 ) + NEW met3 0 + SHAPE STRIPE ( 55660 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 70720 ) ( 56430 70720 ) + NEW met2 0 + SHAPE STRIPE ( 55660 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 65280 ) ( 56450 65280 ) + NEW met3 0 + SHAPE STRIPE ( 55660 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 65280 ) ( 56430 65280 ) + NEW met2 0 + SHAPE STRIPE ( 55660 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 59840 ) ( 56450 59840 ) + NEW met3 0 + SHAPE STRIPE ( 55660 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 59840 ) ( 56430 59840 ) + NEW met2 0 + SHAPE STRIPE ( 55660 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 54400 ) ( 56450 54400 ) + NEW met3 0 + SHAPE STRIPE ( 55660 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 54400 ) ( 56430 54400 ) + NEW met2 0 + SHAPE STRIPE ( 55660 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 48960 ) ( 56450 48960 ) + NEW met3 0 + SHAPE STRIPE ( 55660 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 48960 ) ( 56430 48960 ) + NEW met2 0 + SHAPE STRIPE ( 55660 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 43520 ) ( 56450 43520 ) + NEW met3 0 + SHAPE STRIPE ( 55660 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 43520 ) ( 56430 43520 ) + NEW met2 0 + SHAPE STRIPE ( 55660 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 38080 ) ( 56450 38080 ) + NEW met3 0 + SHAPE STRIPE ( 55660 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 38080 ) ( 56430 38080 ) + NEW met2 0 + SHAPE STRIPE ( 55660 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 32640 ) ( 56450 32640 ) + NEW met3 0 + SHAPE STRIPE ( 55660 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 32640 ) ( 56430 32640 ) + NEW met2 0 + SHAPE STRIPE ( 55660 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 27200 ) ( 56450 27200 ) + NEW met3 0 + SHAPE STRIPE ( 55660 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 27200 ) ( 56430 27200 ) + NEW met2 0 + SHAPE STRIPE ( 55660 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 21760 ) ( 56450 21760 ) + NEW met3 0 + SHAPE STRIPE ( 55660 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 21760 ) ( 56430 21760 ) + NEW met2 0 + SHAPE STRIPE ( 55660 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 16320 ) ( 56450 16320 ) + NEW met3 0 + SHAPE STRIPE ( 55660 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 16320 ) ( 56430 16320 ) + NEW met2 0 + SHAPE STRIPE ( 55660 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 10880 ) ( 56450 10880 ) + NEW met3 0 + SHAPE STRIPE ( 55660 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 10880 ) ( 56430 10880 ) + NEW met2 0 + SHAPE STRIPE ( 55660 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 5440 ) ( 56450 5440 ) + NEW met3 0 + SHAPE STRIPE ( 55660 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 5440 ) ( 56430 5440 ) + NEW met2 0 + SHAPE STRIPE ( 55660 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 5440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 81600 ) ( 29310 81600 ) + NEW met3 0 + SHAPE STRIPE ( 28520 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 81600 ) ( 29290 81600 ) + NEW met2 0 + SHAPE STRIPE ( 28520 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 76160 ) ( 29310 76160 ) + NEW met3 0 + SHAPE STRIPE ( 28520 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 76160 ) ( 29290 76160 ) + NEW met2 0 + SHAPE STRIPE ( 28520 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 70720 ) ( 29310 70720 ) + NEW met3 0 + SHAPE STRIPE ( 28520 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 70720 ) ( 29290 70720 ) + NEW met2 0 + SHAPE STRIPE ( 28520 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 65280 ) ( 29310 65280 ) + NEW met3 0 + SHAPE STRIPE ( 28520 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 65280 ) ( 29290 65280 ) + NEW met2 0 + SHAPE STRIPE ( 28520 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 59840 ) ( 29310 59840 ) + NEW met3 0 + SHAPE STRIPE ( 28520 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 59840 ) ( 29290 59840 ) + NEW met2 0 + SHAPE STRIPE ( 28520 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 54400 ) ( 29310 54400 ) + NEW met3 0 + SHAPE STRIPE ( 28520 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 54400 ) ( 29290 54400 ) + NEW met2 0 + SHAPE STRIPE ( 28520 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 48960 ) ( 29310 48960 ) + NEW met3 0 + SHAPE STRIPE ( 28520 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 48960 ) ( 29290 48960 ) + NEW met2 0 + SHAPE STRIPE ( 28520 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 43520 ) ( 29310 43520 ) + NEW met3 0 + SHAPE STRIPE ( 28520 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 43520 ) ( 29290 43520 ) + NEW met2 0 + SHAPE STRIPE ( 28520 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 38080 ) ( 29310 38080 ) + NEW met3 0 + SHAPE STRIPE ( 28520 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 38080 ) ( 29290 38080 ) + NEW met2 0 + SHAPE STRIPE ( 28520 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 32640 ) ( 29310 32640 ) + NEW met3 0 + SHAPE STRIPE ( 28520 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 32640 ) ( 29290 32640 ) + NEW met2 0 + SHAPE STRIPE ( 28520 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 27200 ) ( 29310 27200 ) + NEW met3 0 + SHAPE STRIPE ( 28520 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 27200 ) ( 29290 27200 ) + NEW met2 0 + SHAPE STRIPE ( 28520 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 21760 ) ( 29310 21760 ) + NEW met3 0 + SHAPE STRIPE ( 28520 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 21760 ) ( 29290 21760 ) + NEW met2 0 + SHAPE STRIPE ( 28520 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 16320 ) ( 29310 16320 ) + NEW met3 0 + SHAPE STRIPE ( 28520 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 16320 ) ( 29290 16320 ) + NEW met2 0 + SHAPE STRIPE ( 28520 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 10880 ) ( 29310 10880 ) + NEW met3 0 + SHAPE STRIPE ( 28520 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 10880 ) ( 29290 10880 ) + NEW met2 0 + SHAPE STRIPE ( 28520 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 5440 ) ( 29310 5440 ) + NEW met3 0 + SHAPE STRIPE ( 28520 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 5440 ) ( 29290 5440 ) + NEW met2 0 + SHAPE STRIPE ( 28520 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 5440 ) via2_3_1600_480_1_5_320_320 ; + - VSS ( * VGND ) + USE GROUND + + ROUTED met5 1600 + SHAPE STRIPE ( 14150 70720 ) ( 70030 70720 ) + NEW met5 1600 + SHAPE STRIPE ( 14150 43520 ) ( 70030 43520 ) + NEW met5 1600 + SHAPE STRIPE ( 14150 16320 ) ( 70030 16320 ) + NEW met4 1600 + SHAPE STRIPE ( 69230 2480 ) ( 69230 84560 ) + NEW met4 1600 + SHAPE STRIPE ( 42090 2480 ) ( 42090 84560 ) + NEW met4 1600 + SHAPE STRIPE ( 14950 2480 ) ( 14950 84560 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 84320 ) ( 85560 84320 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 78880 ) ( 85560 78880 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 73440 ) ( 85560 73440 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 68000 ) ( 85560 68000 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 62560 ) ( 85560 62560 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 57120 ) ( 85560 57120 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 51680 ) ( 85560 51680 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 46240 ) ( 85560 46240 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 40800 ) ( 85560 40800 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 35360 ) ( 85560 35360 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 29920 ) ( 85560 29920 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 24480 ) ( 85560 24480 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 19040 ) ( 85560 19040 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 13600 ) ( 85560 13600 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 8160 ) ( 85560 8160 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 2720 ) ( 85560 2720 ) + NEW met4 0 + SHAPE STRIPE ( 69230 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 69230 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 69230 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met3 330 + SHAPE STRIPE ( 68440 84320 ) ( 70020 84320 ) + NEW met3 0 + SHAPE STRIPE ( 69230 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 84320 ) ( 70000 84320 ) + NEW met2 0 + SHAPE STRIPE ( 69230 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 78880 ) ( 70020 78880 ) + NEW met3 0 + SHAPE STRIPE ( 69230 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 78880 ) ( 70000 78880 ) + NEW met2 0 + SHAPE STRIPE ( 69230 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 73440 ) ( 70020 73440 ) + NEW met3 0 + SHAPE STRIPE ( 69230 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 73440 ) ( 70000 73440 ) + NEW met2 0 + SHAPE STRIPE ( 69230 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 68000 ) ( 70020 68000 ) + NEW met3 0 + SHAPE STRIPE ( 69230 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 68000 ) ( 70000 68000 ) + NEW met2 0 + SHAPE STRIPE ( 69230 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 62560 ) ( 70020 62560 ) + NEW met3 0 + SHAPE STRIPE ( 69230 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 62560 ) ( 70000 62560 ) + NEW met2 0 + SHAPE STRIPE ( 69230 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 57120 ) ( 70020 57120 ) + NEW met3 0 + SHAPE STRIPE ( 69230 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 57120 ) ( 70000 57120 ) + NEW met2 0 + SHAPE STRIPE ( 69230 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 51680 ) ( 70020 51680 ) + NEW met3 0 + SHAPE STRIPE ( 69230 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 51680 ) ( 70000 51680 ) + NEW met2 0 + SHAPE STRIPE ( 69230 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 46240 ) ( 70020 46240 ) + NEW met3 0 + SHAPE STRIPE ( 69230 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 46240 ) ( 70000 46240 ) + NEW met2 0 + SHAPE STRIPE ( 69230 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 40800 ) ( 70020 40800 ) + NEW met3 0 + SHAPE STRIPE ( 69230 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 40800 ) ( 70000 40800 ) + NEW met2 0 + SHAPE STRIPE ( 69230 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 35360 ) ( 70020 35360 ) + NEW met3 0 + SHAPE STRIPE ( 69230 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 35360 ) ( 70000 35360 ) + NEW met2 0 + SHAPE STRIPE ( 69230 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 29920 ) ( 70020 29920 ) + NEW met3 0 + SHAPE STRIPE ( 69230 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 29920 ) ( 70000 29920 ) + NEW met2 0 + SHAPE STRIPE ( 69230 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 24480 ) ( 70020 24480 ) + NEW met3 0 + SHAPE STRIPE ( 69230 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 24480 ) ( 70000 24480 ) + NEW met2 0 + SHAPE STRIPE ( 69230 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 19040 ) ( 70020 19040 ) + NEW met3 0 + SHAPE STRIPE ( 69230 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 19040 ) ( 70000 19040 ) + NEW met2 0 + SHAPE STRIPE ( 69230 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 13600 ) ( 70020 13600 ) + NEW met3 0 + SHAPE STRIPE ( 69230 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 13600 ) ( 70000 13600 ) + NEW met2 0 + SHAPE STRIPE ( 69230 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 8160 ) ( 70020 8160 ) + NEW met3 0 + SHAPE STRIPE ( 69230 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 8160 ) ( 70000 8160 ) + NEW met2 0 + SHAPE STRIPE ( 69230 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 2720 ) ( 70020 2720 ) + NEW met3 0 + SHAPE STRIPE ( 69230 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 2720 ) ( 70000 2720 ) + NEW met2 0 + SHAPE STRIPE ( 69230 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 2720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 84320 ) ( 42880 84320 ) + NEW met3 0 + SHAPE STRIPE ( 42090 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 84320 ) ( 42860 84320 ) + NEW met2 0 + SHAPE STRIPE ( 42090 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 78880 ) ( 42880 78880 ) + NEW met3 0 + SHAPE STRIPE ( 42090 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 78880 ) ( 42860 78880 ) + NEW met2 0 + SHAPE STRIPE ( 42090 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 73440 ) ( 42880 73440 ) + NEW met3 0 + SHAPE STRIPE ( 42090 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 73440 ) ( 42860 73440 ) + NEW met2 0 + SHAPE STRIPE ( 42090 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 68000 ) ( 42880 68000 ) + NEW met3 0 + SHAPE STRIPE ( 42090 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 68000 ) ( 42860 68000 ) + NEW met2 0 + SHAPE STRIPE ( 42090 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 62560 ) ( 42880 62560 ) + NEW met3 0 + SHAPE STRIPE ( 42090 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 62560 ) ( 42860 62560 ) + NEW met2 0 + SHAPE STRIPE ( 42090 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 57120 ) ( 42880 57120 ) + NEW met3 0 + SHAPE STRIPE ( 42090 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 57120 ) ( 42860 57120 ) + NEW met2 0 + SHAPE STRIPE ( 42090 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 51680 ) ( 42880 51680 ) + NEW met3 0 + SHAPE STRIPE ( 42090 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 51680 ) ( 42860 51680 ) + NEW met2 0 + SHAPE STRIPE ( 42090 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 46240 ) ( 42880 46240 ) + NEW met3 0 + SHAPE STRIPE ( 42090 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 46240 ) ( 42860 46240 ) + NEW met2 0 + SHAPE STRIPE ( 42090 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 40800 ) ( 42880 40800 ) + NEW met3 0 + SHAPE STRIPE ( 42090 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 40800 ) ( 42860 40800 ) + NEW met2 0 + SHAPE STRIPE ( 42090 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 35360 ) ( 42880 35360 ) + NEW met3 0 + SHAPE STRIPE ( 42090 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 35360 ) ( 42860 35360 ) + NEW met2 0 + SHAPE STRIPE ( 42090 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 29920 ) ( 42880 29920 ) + NEW met3 0 + SHAPE STRIPE ( 42090 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 29920 ) ( 42860 29920 ) + NEW met2 0 + SHAPE STRIPE ( 42090 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 24480 ) ( 42880 24480 ) + NEW met3 0 + SHAPE STRIPE ( 42090 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 24480 ) ( 42860 24480 ) + NEW met2 0 + SHAPE STRIPE ( 42090 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 19040 ) ( 42880 19040 ) + NEW met3 0 + SHAPE STRIPE ( 42090 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 19040 ) ( 42860 19040 ) + NEW met2 0 + SHAPE STRIPE ( 42090 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 13600 ) ( 42880 13600 ) + NEW met3 0 + SHAPE STRIPE ( 42090 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 13600 ) ( 42860 13600 ) + NEW met2 0 + SHAPE STRIPE ( 42090 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 8160 ) ( 42880 8160 ) + NEW met3 0 + SHAPE STRIPE ( 42090 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 8160 ) ( 42860 8160 ) + NEW met2 0 + SHAPE STRIPE ( 42090 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 2720 ) ( 42880 2720 ) + NEW met3 0 + SHAPE STRIPE ( 42090 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 2720 ) ( 42860 2720 ) + NEW met2 0 + SHAPE STRIPE ( 42090 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 2720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 84320 ) ( 15740 84320 ) + NEW met3 0 + SHAPE STRIPE ( 14950 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 84320 ) ( 15720 84320 ) + NEW met2 0 + SHAPE STRIPE ( 14950 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 78880 ) ( 15740 78880 ) + NEW met3 0 + SHAPE STRIPE ( 14950 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 78880 ) ( 15720 78880 ) + NEW met2 0 + SHAPE STRIPE ( 14950 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 73440 ) ( 15740 73440 ) + NEW met3 0 + SHAPE STRIPE ( 14950 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 73440 ) ( 15720 73440 ) + NEW met2 0 + SHAPE STRIPE ( 14950 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 68000 ) ( 15740 68000 ) + NEW met3 0 + SHAPE STRIPE ( 14950 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 68000 ) ( 15720 68000 ) + NEW met2 0 + SHAPE STRIPE ( 14950 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 62560 ) ( 15740 62560 ) + NEW met3 0 + SHAPE STRIPE ( 14950 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 62560 ) ( 15720 62560 ) + NEW met2 0 + SHAPE STRIPE ( 14950 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 57120 ) ( 15740 57120 ) + NEW met3 0 + SHAPE STRIPE ( 14950 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 57120 ) ( 15720 57120 ) + NEW met2 0 + SHAPE STRIPE ( 14950 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 51680 ) ( 15740 51680 ) + NEW met3 0 + SHAPE STRIPE ( 14950 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 51680 ) ( 15720 51680 ) + NEW met2 0 + SHAPE STRIPE ( 14950 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 46240 ) ( 15740 46240 ) + NEW met3 0 + SHAPE STRIPE ( 14950 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 46240 ) ( 15720 46240 ) + NEW met2 0 + SHAPE STRIPE ( 14950 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 40800 ) ( 15740 40800 ) + NEW met3 0 + SHAPE STRIPE ( 14950 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 40800 ) ( 15720 40800 ) + NEW met2 0 + SHAPE STRIPE ( 14950 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 35360 ) ( 15740 35360 ) + NEW met3 0 + SHAPE STRIPE ( 14950 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 35360 ) ( 15720 35360 ) + NEW met2 0 + SHAPE STRIPE ( 14950 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 29920 ) ( 15740 29920 ) + NEW met3 0 + SHAPE STRIPE ( 14950 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 29920 ) ( 15720 29920 ) + NEW met2 0 + SHAPE STRIPE ( 14950 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 24480 ) ( 15740 24480 ) + NEW met3 0 + SHAPE STRIPE ( 14950 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 24480 ) ( 15720 24480 ) + NEW met2 0 + SHAPE STRIPE ( 14950 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 19040 ) ( 15740 19040 ) + NEW met3 0 + SHAPE STRIPE ( 14950 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 19040 ) ( 15720 19040 ) + NEW met2 0 + SHAPE STRIPE ( 14950 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 13600 ) ( 15740 13600 ) + NEW met3 0 + SHAPE STRIPE ( 14950 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 13600 ) ( 15720 13600 ) + NEW met2 0 + SHAPE STRIPE ( 14950 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 8160 ) ( 15740 8160 ) + NEW met3 0 + SHAPE STRIPE ( 14950 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 8160 ) ( 15720 8160 ) + NEW met2 0 + SHAPE STRIPE ( 14950 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 2720 ) ( 15740 2720 ) + NEW met3 0 + SHAPE STRIPE ( 14950 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 2720 ) ( 15720 2720 ) + NEW met2 0 + SHAPE STRIPE ( 14950 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 2720 ) via2_3_1600_480_1_5_320_320 ; +END SPECIALNETS +NETS 475 ; + - _000_ ( req_rdy$_DFF_P_ D ) ( _380_ Y ) + USE SIGNAL ; + - _001_ ( ctrl.state.out\[1\]$_DFF_P_ D ) ( _384_ Y ) + USE SIGNAL ; + - _002_ ( ctrl.state.out\[2\]$_DFF_P_ D ) ( _373_ Y ) + USE SIGNAL ; + - _003_ ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ D ) ( _451_ Y ) + USE SIGNAL ; + - _004_ ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ D ) ( _461_ Y ) + USE SIGNAL ; + - _005_ ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ D ) ( _465_ Y ) + USE SIGNAL ; + - _006_ ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ D ) ( _472_ Y ) + USE SIGNAL ; + - _007_ ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ D ) ( _477_ Y ) + USE SIGNAL ; + - _008_ ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ D ) ( _482_ Y ) + USE SIGNAL ; + - _009_ ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ D ) ( _485_ Y ) + USE SIGNAL ; + - _010_ ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ D ) ( _490_ Y ) + USE SIGNAL ; + - _011_ ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ D ) ( _494_ Y ) + USE SIGNAL ; + - _012_ ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ D ) ( _497_ Y ) + USE SIGNAL ; + - _013_ ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ D ) ( _502_ Y ) + USE SIGNAL ; + - _014_ ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ D ) ( _506_ Y ) + USE SIGNAL ; + - _015_ ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ D ) ( _509_ Y ) + USE SIGNAL ; + - _016_ ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ D ) ( _514_ Y ) + USE SIGNAL ; + - _017_ ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ D ) ( _517_ Y ) + USE SIGNAL ; + - _018_ ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ D ) ( _520_ Y ) + USE SIGNAL ; + - _019_ ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ D ) ( _526_ Y ) + USE SIGNAL ; + - _020_ ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ D ) ( _537_ Y ) + USE SIGNAL ; + - _021_ ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ D ) ( _547_ Y ) + USE SIGNAL ; + - _022_ ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ D ) ( _558_ Y ) + USE SIGNAL ; + - _023_ ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ D ) ( _573_ Y ) + USE SIGNAL ; + - _024_ ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ D ) ( _583_ Y ) + USE SIGNAL ; + - _025_ ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ D ) ( _596_ Y ) + USE SIGNAL ; + - _026_ ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ D ) ( _608_ Y ) + USE SIGNAL ; + - _027_ ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ D ) ( _617_ Y ) + USE SIGNAL ; + - _028_ ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ D ) ( _628_ Y ) + USE SIGNAL ; + - _029_ ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ D ) ( _643_ Y ) + USE SIGNAL ; + - _030_ ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ D ) ( _653_ Y ) + USE SIGNAL ; + - _031_ ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ D ) ( _665_ Y ) + USE SIGNAL ; + - _032_ ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ D ) ( _680_ Y ) + USE SIGNAL ; + - _033_ ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ D ) ( _696_ Y ) + USE SIGNAL ; + - _034_ ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ D ) ( _702_ Y ) + USE SIGNAL ; + - _038_ ( _368_ A ) ( _358_ Y ) + USE SIGNAL ; + - _041_ ( _368_ B ) ( _361_ Y ) + USE SIGNAL ; + - _044_ ( _368_ C ) ( _364_ Y ) + USE SIGNAL ; + - _047_ ( _368_ D ) ( _367_ Y ) + USE SIGNAL ; + - _048_ ( _382_ B ) ( _372_ B1 ) ( _368_ Y ) + USE SIGNAL ; + - _052_ ( _373_ B ) ( _372_ Y ) + USE SIGNAL ; + - _053_ ( _468_ B ) ( _474_ B ) ( _479_ B ) ( _487_ B ) ( _491_ B ) ( _499_ B ) ( _511_ B ) + ( _550_ B ) ( _622_ A ) ( _657_ A ) ( _382_ A ) ( _458_ B ) ( _462_ B ) ( _518_ A2 ) ( _576_ C1 ) + ( _615_ A2 ) ( _620_ C1 ) ( _635_ A1 ) ( _647_ A2 ) ( _663_ B ) ( _377_ A ) ( _533_ B1 ) ( _543_ B1 ) + ( _588_ B ) ( _600_ B ) ( _604_ B ) ( _674_ B1 ) ( _694_ B ) ( _541_ B ) ( _374_ Y ) + USE SIGNAL ; + - _055_ ( _696_ A1 ) ( _651_ B1 ) ( _643_ A1 ) ( _642_ A ) ( _596_ A1 ) ( _595_ A ) ( _380_ A1 ) + ( _377_ B ) ( _376_ Y ) + USE SIGNAL ; + - _056_ ( _383_ A2 ) ( _380_ B1 ) ( _378_ Y ) + USE SIGNAL ; + - _057_ ( _380_ C1 ) ( _379_ Y ) + USE SIGNAL ; + - _059_ ( _383_ B1 ) ( _382_ Y ) + USE SIGNAL ; + - _060_ ( _384_ B ) ( _383_ Y ) + USE SIGNAL ; + - _062_ ( _699_ A1 ) ( _445_ B ) ( _387_ Y ) + USE SIGNAL ; + - _063_ ( _671_ B1 ) ( _666_ A ) ( _434_ C ) ( _394_ A ) ( _388_ Y ) + USE SIGNAL ; + - _064_ ( _666_ B ) ( _394_ B ) ( _389_ Y ) + USE SIGNAL ; + - _065_ ( _688_ B ) ( _435_ B1 ) ( _392_ A_N ) ( _390_ Y ) + USE SIGNAL ; + - _066_ ( _435_ A1 ) ( _392_ B ) ( _391_ Y ) + USE SIGNAL ; + - _067_ ( _707_ A ) ( _394_ C ) ( _392_ Y ) + USE SIGNAL ; + - _068_ ( _706_ A ) ( _394_ D ) ( _393_ X ) + USE SIGNAL ; + - _069_ ( _443_ C1 ) ( _404_ A ) ( _394_ Y ) + USE SIGNAL ; + - _070_ ( _703_ A ) ( _398_ A ) ( _395_ Y ) + USE SIGNAL ; + - _072_ ( _704_ A ) ( _667_ C1 ) ( _398_ B ) ( _397_ Y ) + USE SIGNAL ; + - _073_ ( _403_ A ) ( _398_ Y ) + USE SIGNAL ; + - _074_ ( _725_ A ) ( _403_ B ) ( _399_ X ) + USE SIGNAL ; + - _075_ ( _440_ B1 ) ( _402_ A ) ( _400_ Y ) + USE SIGNAL ; + - _076_ ( _632_ B ) ( _629_ B ) ( _402_ B ) ( _401_ Y ) + USE SIGNAL ; + - _077_ ( _726_ A ) ( _403_ C ) ( _402_ Y ) + USE SIGNAL ; + - _078_ ( _655_ A1 ) ( _404_ B ) ( _403_ Y ) + USE SIGNAL ; + - _079_ ( _455_ A1 ) ( _444_ A1 ) ( _404_ Y ) + USE SIGNAL ; + - _080_ ( _560_ A2 ) ( _544_ B2 ) ( _462_ A ) ( _424_ B ) ( _406_ B ) ( _405_ Y ) + USE SIGNAL ; + - _081_ ( _425_ A2 ) ( _712_ A ) ( _548_ A1 ) ( _412_ A1 ) ( _406_ Y ) + USE SIGNAL ; + - _082_ ( _538_ B1 ) ( _409_ A ) ( _407_ Y ) + USE SIGNAL ; + - _083_ ( _538_ A2 ) ( _530_ B ) ( _409_ C ) ( _408_ Y ) + USE SIGNAL ; + - _084_ ( _425_ A1 ) ( _548_ A2 ) ( _542_ A2 ) ( _541_ C ) ( _412_ A2 ) ( _409_ X ) + USE SIGNAL ; + - _085_ ( _712_ B ) ( _411_ B ) ( _410_ Y ) + USE SIGNAL ; + - _086_ ( _412_ B1 ) ( _411_ Y ) + USE SIGNAL ; + - _087_ ( _633_ A1 ) ( _630_ A1 ) ( _610_ A1 ) ( _552_ A2 ) ( _432_ A1 ) ( _412_ Y ) + USE SIGNAL ; + - _089_ ( _721_ A ) ( _416_ A ) ( _414_ Y ) + USE SIGNAL ; + - _090_ ( _605_ A ) ( _416_ B ) ( _415_ Y ) + USE SIGNAL ; + - _091_ ( _431_ A2 ) ( _423_ A_N ) ( _416_ Y ) + USE SIGNAL ; + - _092_ ( _562_ B1 ) ( _423_ B ) ( _417_ Y ) + USE SIGNAL ; + - _094_ ( _717_ A ) ( _574_ A1 ) ( _422_ A2 ) ( _420_ B ) ( _419_ Y ) + USE SIGNAL ; + - _095_ ( _423_ C ) ( _420_ Y ) + USE SIGNAL ; + - _096_ ( _586_ A ) ( _585_ A ) ( _427_ A ) ( _422_ B1 ) ( _421_ Y ) + USE SIGNAL ; + - _097_ ( _423_ D ) ( _422_ Y ) + USE SIGNAL ; + - _098_ ( _633_ A2 ) ( _630_ A2 ) ( _610_ A2 ) ( _432_ A2 ) ( _423_ X ) + USE SIGNAL ; + - _099_ ( _548_ B1 ) ( _425_ B1 ) ( _424_ Y ) + USE SIGNAL ; + - _100_ ( rebuffer2 A ) ( _633_ A3 ) ( _630_ A3 ) ( _610_ A3 ) ( _425_ Y ) + USE SIGNAL ; + - _101_ ( _717_ B_N ) ( _574_ B1 ) ( _427_ C ) ( _426_ Y ) + USE SIGNAL ; + - _102_ ( _431_ A1 ) ( _427_ X ) + USE SIGNAL ; + - _103_ ( _604_ A ) ( _601_ A1 ) ( _430_ A ) ( _428_ Y ) + USE SIGNAL ; + - _104_ ( _721_ B ) ( _430_ C ) ( _429_ Y ) + USE SIGNAL ; + - _105_ ( _431_ B1 ) ( _430_ X ) + USE SIGNAL ; + - _106_ ( _633_ B1 ) ( _630_ B1 ) ( _610_ B1 ) ( _432_ B1 ) ( _431_ Y ) + USE SIGNAL ; + - _107_ ( _618_ C ) ( _613_ A2 ) ( _609_ A2 ) ( _455_ A2 ) ( _444_ A2 ) ( _432_ X ) + USE SIGNAL ; + - _108_ ( _678_ A ) ( _675_ A1 ) ( _674_ A1 ) ( _434_ A ) ( _433_ Y ) + USE SIGNAL ; + - _109_ ( _435_ A2 ) ( _434_ X ) + USE SIGNAL ; + - _110_ ( _455_ B1 ) ( _444_ B1 ) ( _435_ Y ) + USE SIGNAL ; + - _111_ ( _654_ A1 ) ( _443_ A1 ) ( _436_ Y ) + USE SIGNAL ; + - _112_ ( _667_ A1 ) ( _634_ A ) ( _441_ A ) ( _437_ Y ) + USE SIGNAL ; + - _113_ ( _618_ B ) ( _614_ B2 ) ( _491_ A ) ( _440_ A2 ) ( _438_ Y ) + USE SIGNAL ; + - _114_ ( _440_ A3 ) ( _439_ Y ) + USE SIGNAL ; + - _115_ ( _636_ A ) ( _634_ B ) ( _441_ C ) ( _440_ Y ) + USE SIGNAL ; + - _116_ ( _654_ A2 ) ( _443_ A2 ) ( _441_ X ) + USE SIGNAL ; + - _117_ ( _654_ B1 ) ( _443_ B1 ) ( _442_ Y ) + USE SIGNAL ; + - _118_ ( _455_ C1 ) ( _444_ C1 ) ( _443_ Y ) + USE SIGNAL ; + - _119_ ( _709_ A ) ( _445_ C ) ( _444_ X ) + USE SIGNAL ; + - _120_ ( _524_ B1 ) ( _534_ A2 ) ( _544_ A2 ) ( _605_ B ) ( _609_ B1 ) ( _640_ B ) ( _645_ B1 ) + ( _651_ A2 ) ( _662_ B1 ) ( _678_ B ) ( _603_ B1 ) ( _600_ C ) ( _549_ B1 ) ( _446_ B ) ( _445_ X ) + USE SIGNAL ; + - _121_ ( _448_ S ) ( _459_ A2 ) ( _463_ A2 ) ( _469_ A2 ) ( _475_ A2 ) ( _480_ A2 ) ( _488_ A2 ) + ( _492_ A2 ) ( _500_ A2 ) ( _512_ A2 ) ( _521_ A2 ) ( _515_ S ) ( _507_ S ) ( _504_ S ) ( _495_ S ) + ( _483_ S ) ( _446_ Y ) + USE SIGNAL ; + - _123_ ( _451_ A2 ) ( _448_ Y ) + USE SIGNAL ; + - _125_ ( _451_ B1 ) ( _450_ Y ) + USE SIGNAL ; + - _127_ ( _534_ B2 ) ( _531_ A ) ( _458_ A ) ( _453_ Y ) + USE SIGNAL ; + - _128_ ( _698_ A ) ( _456_ A ) ( _454_ Y ) + USE SIGNAL ; + - _129_ ( _698_ C ) ( _697_ B ) ( _456_ C ) ( _455_ Y ) + USE SIGNAL ; + - _130_ ( _529_ B1 ) ( _540_ B1 ) ( _564_ B1 ) ( _576_ A1 ) ( _592_ B1 ) ( _614_ A2 ) ( _620_ A1 ) + ( _625_ B ) ( _660_ B ) ( _687_ C1 ) ( _458_ C ) ( _462_ C ) ( _468_ C ) ( _474_ C ) ( _479_ C ) + ( _487_ C ) ( _491_ C ) ( _499_ C ) ( _511_ C ) ( _590_ B ) ( _694_ C ) ( _685_ B ) ( _673_ B1 ) + ( _637_ B1 ) ( _581_ A2 ) ( _570_ A2 ) ( _556_ B ) ( _456_ X ) + USE SIGNAL ; + - _132_ ( _459_ B1 ) ( _458_ Y ) + USE SIGNAL ; + - _133_ ( _461_ A2 ) ( _459_ Y ) + USE SIGNAL ; + - _134_ ( _461_ B1 ) ( _460_ Y ) + USE SIGNAL ; + - _135_ ( _463_ B1 ) ( _462_ Y ) + USE SIGNAL ; + - _136_ ( _465_ A2 ) ( _463_ Y ) + USE SIGNAL ; + - _137_ ( _465_ B1 ) ( _464_ Y ) + USE SIGNAL ; + - _138_ ( _714_ B ) ( _554_ A ) ( _468_ A ) ( _466_ Y ) + USE SIGNAL ; + - _140_ ( _469_ B1 ) ( _468_ Y ) + USE SIGNAL ; + - _141_ ( _472_ A2 ) ( _469_ Y ) + USE SIGNAL ; + - _143_ ( _472_ B1 ) ( _471_ Y ) + USE SIGNAL ; + - _144_ ( _567_ A1 ) ( _566_ A ) ( _474_ A ) ( _473_ Y ) + USE SIGNAL ; + - _145_ ( _475_ B1 ) ( _474_ Y ) + USE SIGNAL ; + - _146_ ( _477_ A2 ) ( _475_ Y ) + USE SIGNAL ; + - _147_ ( _477_ B1 ) ( _476_ Y ) + USE SIGNAL ; + - _148_ ( _581_ B2 ) ( _578_ A ) ( _479_ A ) ( _478_ Y ) + USE SIGNAL ; + - _149_ ( _480_ B1 ) ( _479_ Y ) + USE SIGNAL ; + - _150_ ( _482_ A2 ) ( _480_ Y ) + USE SIGNAL ; + - _151_ ( _482_ B1 ) ( _481_ Y ) + USE SIGNAL ; + - _152_ ( _485_ A2 ) ( _483_ Y ) + USE SIGNAL ; + - _153_ ( _485_ B1 ) ( _484_ Y ) + USE SIGNAL ; + - _154_ ( _603_ A1 ) ( _487_ A ) ( _486_ Y ) + USE SIGNAL ; + - _155_ ( _488_ B1 ) ( _487_ Y ) + USE SIGNAL ; + - _156_ ( _490_ A2 ) ( _488_ Y ) + USE SIGNAL ; + - _157_ ( _490_ B1 ) ( _489_ Y ) + USE SIGNAL ; + - _158_ ( _492_ B1 ) ( _491_ Y ) + USE SIGNAL ; + - _159_ ( _494_ A2 ) ( _492_ Y ) + USE SIGNAL ; + - _160_ ( _494_ B1 ) ( _493_ Y ) + USE SIGNAL ; + - _161_ ( _497_ A2 ) ( _495_ Y ) + USE SIGNAL ; + - _162_ ( _497_ B1 ) ( _496_ Y ) + USE SIGNAL ; + - _163_ ( _669_ B ) ( _644_ B ) ( _639_ A1 ) ( _638_ A ) ( _499_ A ) ( _498_ Y ) + USE SIGNAL ; + - _164_ ( _500_ B1 ) ( _499_ Y ) + USE SIGNAL ; + - _165_ ( _502_ A2 ) ( _500_ Y ) + USE SIGNAL ; + - _166_ ( _502_ B1 ) ( _501_ Y ) + USE SIGNAL ; + - _168_ ( _506_ A2 ) ( _504_ Y ) + USE SIGNAL ; + - _169_ ( _506_ B1 ) ( _505_ Y ) + USE SIGNAL ; + - _170_ ( _509_ A2 ) ( _507_ Y ) + USE SIGNAL ; + - _171_ ( _509_ B1 ) ( _508_ Y ) + USE SIGNAL ; + - _172_ ( _683_ A2 ) ( _682_ A2 ) ( _681_ A2 ) ( _675_ B2 ) ( _673_ A1 ) ( _511_ A ) ( _510_ Y ) + USE SIGNAL ; + - _173_ ( _512_ B1 ) ( _511_ Y ) + USE SIGNAL ; + - _174_ ( _514_ A2 ) ( _512_ Y ) + USE SIGNAL ; + - _175_ ( _514_ B1 ) ( _513_ Y ) + USE SIGNAL ; + - _176_ ( _517_ A2 ) ( _515_ Y ) + USE SIGNAL ; + - _177_ ( _517_ B1 ) ( _516_ Y ) + USE SIGNAL ; + - _178_ ( _520_ A2 ) ( _518_ Y ) + USE SIGNAL ; + - _179_ ( _520_ B1 ) ( _519_ Y ) + USE SIGNAL ; + - _180_ ( _526_ A2 ) ( _521_ Y ) + USE SIGNAL ; + - _182_ ( _524_ B2 ) ( _523_ Y ) + USE SIGNAL ; + - _183_ ( _526_ A3 ) ( _524_ Y ) + USE SIGNAL ; + - _184_ ( _526_ B1 ) ( _525_ Y ) + USE SIGNAL ; + - _185_ ( _711_ A ) ( _533_ A2 ) ( _531_ B ) ( _529_ A2 ) ( _527_ Y ) + USE SIGNAL ; + - _187_ ( _535_ A3 ) ( _529_ Y ) + USE SIGNAL ; + - _188_ ( _560_ C1 ) ( _539_ B ) ( _532_ A2 ) ( _530_ Y ) + USE SIGNAL ; + - _189_ ( _532_ B1 ) ( _531_ Y ) + USE SIGNAL ; + - _190_ ( _534_ A3 ) ( _532_ Y ) + USE SIGNAL ; + - _191_ ( _534_ B1 ) ( _533_ Y ) + USE SIGNAL ; + - _192_ ( _535_ B1 ) ( _534_ Y ) + USE SIGNAL ; + - _193_ ( _537_ A2 ) ( _535_ Y ) + USE SIGNAL ; + - _194_ ( _537_ B1 ) ( _536_ Y ) + USE SIGNAL ; + - _195_ ( _560_ B1 ) ( _539_ A ) ( _538_ Y ) + USE SIGNAL ; + - _196_ ( _713_ A ) ( _543_ A2 ) ( _540_ A2 ) ( _539_ X ) + USE SIGNAL ; + - _197_ ( _545_ A3 ) ( _540_ Y ) + USE SIGNAL ; + - _198_ ( _542_ B1 ) ( _541_ Y ) + USE SIGNAL ; + - _199_ ( _544_ A3 ) ( _542_ Y ) + USE SIGNAL ; + - _200_ ( _544_ B1 ) ( _543_ Y ) + USE SIGNAL ; + - _201_ ( _545_ B1 ) ( _544_ Y ) + USE SIGNAL ; + - _202_ ( _547_ A2 ) ( _545_ Y ) + USE SIGNAL ; + - _203_ ( _547_ B1 ) ( _546_ Y ) + USE SIGNAL ; + - _204_ ( _716_ A ) ( _555_ A1 ) ( _554_ B ) ( _549_ A2 ) ( _548_ Y ) + USE SIGNAL ; + - _205_ ( _550_ C ) ( _549_ Y ) + USE SIGNAL ; + - _206_ ( _558_ A2 ) ( _550_ Y ) + USE SIGNAL ; + - _208_ ( _558_ A3 ) ( _552_ Y ) + USE SIGNAL ; + - _209_ ( _555_ A2 ) ( _553_ Y ) + USE SIGNAL ; + - _210_ ( _555_ B1 ) ( _554_ Y ) + USE SIGNAL ; + - _211_ ( _556_ C ) ( _555_ Y ) + USE SIGNAL ; + - _212_ ( _558_ A4 ) ( _556_ X ) + USE SIGNAL ; + - _213_ ( _558_ B1 ) ( _557_ Y ) + USE SIGNAL ; + - _214_ ( _715_ B ) ( _562_ A2 ) ( _560_ D1 ) ( _559_ Y ) + USE SIGNAL ; + - _215_ ( _574_ A2 ) ( _563_ A ) ( _560_ Y ) + USE SIGNAL ; + - _216_ ( _562_ A1 ) ( _561_ Y ) + USE SIGNAL ; + - _217_ ( _574_ A3 ) ( _563_ B ) ( _562_ Y ) + USE SIGNAL ; + - _218_ ( _718_ A ) ( _568_ B ) ( _567_ A2 ) ( _566_ C ) ( _564_ A2 ) ( _563_ Y ) + USE SIGNAL ; + - _219_ ( _571_ A3 ) ( _564_ Y ) + USE SIGNAL ; + - _220_ ( _570_ A1 ) ( _565_ Y ) + USE SIGNAL ; + - _221_ ( _567_ B1 ) ( _566_ Y ) + USE SIGNAL ; + - _222_ ( _570_ A3 ) ( _567_ Y ) + USE SIGNAL ; + - _223_ ( _569_ B ) ( _568_ Y ) + USE SIGNAL ; + - _224_ ( _570_ B1 ) ( _569_ Y ) + USE SIGNAL ; + - _225_ ( _571_ B1 ) ( _570_ X ) + USE SIGNAL ; + - _226_ ( _573_ A2 ) ( _571_ Y ) + USE SIGNAL ; + - _227_ ( _573_ B1 ) ( _572_ Y ) + USE SIGNAL ; + - _228_ ( _720_ A ) ( _591_ A1 ) ( _587_ A1 ) ( _580_ A2 ) ( _579_ A1 ) ( _578_ B ) ( _575_ B ) + ( _574_ Y ) + USE SIGNAL ; + - _229_ ( _576_ A2 ) ( _575_ Y ) + USE SIGNAL ; + - _230_ ( _583_ A2 ) ( _576_ Y ) + USE SIGNAL ; + - _231_ ( _579_ A2 ) ( _577_ Y ) + USE SIGNAL ; + - _232_ ( _579_ B1 ) ( _578_ Y ) + USE SIGNAL ; + - _233_ ( _581_ A3 ) ( _579_ Y ) + USE SIGNAL ; + - _234_ ( _581_ B1 ) ( _580_ Y ) + USE SIGNAL ; + - _235_ ( _583_ A3 ) ( _581_ X ) + USE SIGNAL ; + - _236_ ( _583_ B1 ) ( _582_ Y ) + USE SIGNAL ; + - _237_ ( _599_ A ) ( _597_ B1 ) ( _593_ A1 ) ( _590_ A ) ( _584_ Y ) + USE SIGNAL ; + - _238_ ( _591_ A2 ) ( _587_ A2 ) ( _585_ Y ) + USE SIGNAL ; + - _239_ ( _591_ B1 ) ( _587_ B1 ) ( _586_ Y ) + USE SIGNAL ; + - _240_ ( _599_ C ) ( _597_ A2 ) ( _593_ A2 ) ( _589_ A2 ) ( _588_ C ) ( _587_ Y ) + USE SIGNAL ; + - _241_ ( _589_ B1 ) ( _588_ Y ) + USE SIGNAL ; + - _242_ ( _590_ C ) ( _589_ X ) + USE SIGNAL ; + - _243_ ( _596_ A2 ) ( _590_ Y ) + USE SIGNAL ; + - _244_ ( _722_ A ) ( _592_ A2 ) ( _591_ X ) + USE SIGNAL ; + - _245_ ( _594_ A3 ) ( _592_ Y ) + USE SIGNAL ; + - _246_ ( _594_ B1 ) ( _593_ Y ) + USE SIGNAL ; + - _247_ ( _596_ A3 ) ( _594_ Y ) + USE SIGNAL ; + - _248_ ( _596_ B1 ) ( _595_ Y ) + USE SIGNAL ; + - _249_ ( _598_ B ) ( _597_ Y ) + USE SIGNAL ; + - _250_ ( _602_ A1 ) ( _598_ Y ) + USE SIGNAL ; + - _251_ ( _724_ A ) ( _606_ A1 ) ( _603_ A2 ) ( _601_ A2 ) ( _600_ D ) ( _599_ X ) + USE SIGNAL ; + - _252_ ( _602_ A2 ) ( _600_ Y ) + USE SIGNAL ; + - _253_ ( _602_ B1 ) ( _601_ Y ) + USE SIGNAL ; + - _254_ ( _608_ A1 ) ( _602_ Y ) + USE SIGNAL ; + - _255_ ( _604_ C ) ( _603_ Y ) + USE SIGNAL ; + - _256_ ( _608_ A2 ) ( _604_ X ) + USE SIGNAL ; + - _257_ ( _606_ A2 ) ( _605_ Y ) + USE SIGNAL ; + - _258_ ( _608_ A3 ) ( _606_ Y ) + USE SIGNAL ; + - _259_ ( _608_ B1 ) ( _607_ Y ) + USE SIGNAL ; + - _260_ ( _615_ A3 ) ( _609_ Y ) + USE SIGNAL ; + - _261_ ( _725_ B ) ( _655_ A2 ) ( _612_ A2 ) ( _611_ C ) ( _610_ Y ) + USE SIGNAL ; + - _262_ ( _612_ B1 ) ( _611_ Y ) + USE SIGNAL ; + - _263_ ( _614_ A3 ) ( _612_ Y ) + USE SIGNAL ; + - _264_ ( _614_ B1 ) ( _613_ Y ) + USE SIGNAL ; + - _265_ ( _615_ B1 ) ( _614_ Y ) + USE SIGNAL ; + - _266_ ( _617_ A2 ) ( _615_ Y ) + USE SIGNAL ; + - _267_ ( _617_ B1 ) ( _616_ Y ) + USE SIGNAL ; + - _268_ ( _726_ B ) ( _624_ S ) ( _621_ B ) ( _619_ B ) ( _618_ X ) + USE SIGNAL ; + - _269_ ( _620_ A2 ) ( _619_ Y ) + USE SIGNAL ; + - _270_ ( _628_ A2 ) ( _620_ Y ) + USE SIGNAL ; + - _271_ ( _622_ B ) ( _621_ Y ) + USE SIGNAL ; + - _272_ ( _626_ A2 ) ( _622_ Y ) + USE SIGNAL ; + - _273_ ( _624_ A0 ) ( _623_ Y ) + USE SIGNAL ; + - _274_ ( _625_ C ) ( _624_ Y ) + USE SIGNAL ; + - _275_ ( _626_ B1 ) ( _625_ Y ) + USE SIGNAL ; + - _276_ ( _628_ A3 ) ( _626_ Y ) + USE SIGNAL ; + - _277_ ( _628_ B1 ) ( _627_ Y ) + USE SIGNAL ; + - _278_ ( _630_ C1 ) ( _629_ Y ) + USE SIGNAL ; + - _279_ ( _636_ B ) ( _634_ C ) ( _630_ Y ) + USE SIGNAL ; + - _280_ ( _632_ A ) ( _631_ Y ) + USE SIGNAL ; + - _281_ ( _633_ C1 ) ( _632_ Y ) + USE SIGNAL ; + - _282_ ( _636_ C ) ( _634_ D ) ( _633_ Y ) + USE SIGNAL ; + - _283_ ( _635_ A2 ) ( _634_ Y ) + USE SIGNAL ; + - _284_ ( _643_ A2 ) ( _635_ Y ) + USE SIGNAL ; + - _285_ ( rebuffer1 A ) ( _703_ B ) ( _681_ B1 ) ( _644_ C ) ( _639_ A2 ) ( _638_ C ) ( _637_ A2 ) + ( _636_ Y ) + USE SIGNAL ; + - _286_ ( _641_ A3 ) ( _637_ Y ) + USE SIGNAL ; + - _287_ ( _639_ B1 ) ( _638_ Y ) + USE SIGNAL ; + - _288_ ( _641_ B1 ) ( _639_ Y ) + USE SIGNAL ; + - _289_ ( _641_ B2 ) ( _640_ Y ) + USE SIGNAL ; + - _290_ ( _643_ A3 ) ( _641_ Y ) + USE SIGNAL ; + - _291_ ( _643_ B1 ) ( _642_ Y ) + USE SIGNAL ; + - _292_ ( _704_ B ) ( _650_ S ) ( _646_ A2 ) ( _645_ A2 ) ( _644_ X ) + USE SIGNAL ; + - _293_ ( _647_ A3 ) ( _645_ Y ) + USE SIGNAL ; + - _294_ ( _647_ B1 ) ( _646_ X ) + USE SIGNAL ; + - _295_ ( _653_ A1 ) ( _647_ Y ) + USE SIGNAL ; + - _296_ ( _670_ A ) ( _651_ A1 ) ( _648_ Y ) + USE SIGNAL ; + - _297_ ( _650_ A0 ) ( _649_ Y ) + USE SIGNAL ; + - _298_ ( _651_ A3 ) ( _650_ X ) + USE SIGNAL ; + - _299_ ( _653_ A2 ) ( _651_ Y ) + USE SIGNAL ; + - _300_ ( _653_ B1 ) ( _652_ Y ) + USE SIGNAL ; + - _301_ ( _655_ B1 ) ( _654_ X ) + USE SIGNAL ; + - _302_ ( _705_ B ) ( _662_ A2 ) ( _659_ S ) ( _656_ B ) ( _655_ Y ) + USE SIGNAL ; + - _303_ ( _657_ B ) ( _656_ Y ) + USE SIGNAL ; + - _304_ ( _661_ A2 ) ( _657_ Y ) + USE SIGNAL ; + - _305_ ( _659_ A0 ) ( _658_ Y ) + USE SIGNAL ; + - _306_ ( _660_ C ) ( _659_ Y ) + USE SIGNAL ; + - _307_ ( _661_ B1 ) ( _660_ Y ) + USE SIGNAL ; + - _308_ ( _665_ A2 ) ( _661_ Y ) + USE SIGNAL ; + - _309_ ( _663_ C ) ( _662_ Y ) + USE SIGNAL ; + - _310_ ( _665_ A3 ) ( _663_ Y ) + USE SIGNAL ; + - _311_ ( _665_ B1 ) ( _664_ Y ) + USE SIGNAL ; + - _312_ ( _705_ A ) ( _667_ B1 ) ( _666_ Y ) + USE SIGNAL ; + - _313_ ( _681_ C1 ) ( _672_ A2 ) ( _667_ Y ) + USE SIGNAL ; + - _314_ ( _671_ A1 ) ( _668_ Y ) + USE SIGNAL ; + - _315_ ( _670_ C ) ( _669_ Y ) + USE SIGNAL ; + - _316_ ( _671_ A2 ) ( _670_ X ) + USE SIGNAL ; + - _317_ ( _682_ B1 ) ( _672_ B1 ) ( _671_ Y ) + USE SIGNAL ; + - _318_ ( _706_ B ) ( _677_ S ) ( _674_ A2 ) ( _673_ A2 ) ( _672_ Y ) + USE SIGNAL ; + - _319_ ( _675_ A3 ) ( _673_ Y ) + USE SIGNAL ; + - _320_ ( _675_ B1 ) ( _674_ X ) + USE SIGNAL ; + - _321_ ( _680_ A2 ) ( _675_ X ) + USE SIGNAL ; + - _322_ ( _677_ A1 ) ( _676_ Y ) + USE SIGNAL ; + - _323_ ( _678_ C ) ( _677_ X ) + USE SIGNAL ; + - _324_ ( _680_ A3 ) ( _678_ Y ) + USE SIGNAL ; + - _325_ ( _680_ B1 ) ( _679_ Y ) + USE SIGNAL ; + - _326_ ( _689_ A ) ( _687_ A1 ) ( _684_ A ) ( _681_ Y ) + USE SIGNAL ; + - _327_ ( _683_ B1 ) ( _682_ X ) + USE SIGNAL ; + - _328_ ( _689_ B ) ( _687_ A2 ) ( _684_ B ) ( _683_ Y ) + USE SIGNAL ; + - _329_ ( _707_ B ) ( _695_ A1 ) ( _690_ A2 ) ( _684_ X ) + USE SIGNAL ; + - _330_ ( _690_ A3 ) ( _685_ Y ) + USE SIGNAL ; + - _331_ ( _687_ B1 ) ( _686_ X ) + USE SIGNAL ; + - _332_ ( _690_ B1 ) ( _687_ Y ) + USE SIGNAL ; + - _333_ ( _689_ C ) ( _688_ Y ) + USE SIGNAL ; + - _334_ ( _690_ C1 ) ( _689_ X ) + USE SIGNAL ; + - _335_ ( _696_ A2 ) ( _690_ Y ) + USE SIGNAL ; + - _336_ ( _696_ B1 ) ( _691_ Y ) + USE SIGNAL ; + - _337_ ( _695_ A2 ) ( _692_ Y ) + USE SIGNAL ; + - _338_ ( _695_ B1 ) ( _693_ Y ) + USE SIGNAL ; + - _339_ ( _695_ D1 ) ( _694_ Y ) + USE SIGNAL ; + - _340_ ( _696_ B2 ) ( _695_ X ) + USE SIGNAL ; + - _341_ ( _700_ A3 ) ( _697_ Y ) + USE SIGNAL ; + - _342_ ( _699_ B1 ) ( _698_ Y ) + USE SIGNAL ; + - _343_ ( _700_ B1 ) ( _699_ Y ) + USE SIGNAL ; + - _344_ ( _702_ A2 ) ( _700_ Y ) + USE SIGNAL ; + - _345_ ( _702_ B1 ) ( _701_ Y ) + USE SIGNAL ; + - _346_ ( _709_ B ) ( _708_ Y ) + USE SIGNAL ; + - _347_ ( _711_ B ) ( _710_ Y ) + USE SIGNAL ; + - _348_ ( _713_ B ) ( _712_ Y ) + USE SIGNAL ; + - _349_ ( _715_ A ) ( _714_ Y ) + USE SIGNAL ; + - _350_ ( _716_ B ) ( _715_ Y ) + USE SIGNAL ; + - _351_ ( _718_ B ) ( _717_ Y ) + USE SIGNAL ; + - _352_ ( _720_ B ) ( _719_ Y ) + USE SIGNAL ; + - _353_ ( _722_ B ) ( _721_ X ) + USE SIGNAL ; + - _354_ ( _724_ B ) ( _723_ X ) + USE SIGNAL ; + - clk ( PIN clk ) ( clkbuf_0_clk A ) + USE CLOCK ; + - clknet_0_clk ( clkbuf_2_3__f_clk A ) ( clkbuf_2_2__f_clk A ) ( clkbuf_2_1__f_clk A ) ( clkbuf_2_0__f_clk A ) ( clkbuf_0_clk X ) + USE CLOCK ; + - clknet_2_0__leaf_clk ( clkload0 A ) ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ CLK ) ( clkbuf_2_0__f_clk X ) + USE CLOCK ; + - clknet_2_1__leaf_clk ( ctrl.state.out\[1\]$_DFF_P_ CLK ) ( ctrl.state.out\[2\]$_DFF_P_ CLK ) ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ CLK ) ( clkbuf_2_1__f_clk X ) + USE CLOCK ; + - clknet_2_2__leaf_clk ( clkload1 A ) ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ CLK ) ( clkbuf_2_2__f_clk X ) + USE CLOCK ; + - clknet_2_3__leaf_clk ( clkload2 A ) ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ CLK ) + ( req_rdy$_DFF_P_ CLK ) ( clkbuf_2_3__f_clk X ) + USE CLOCK ; + - ctrl.state.out\[1\] ( ctrl.state.out\[1\]$_DFF_P_ Q ) ( _383_ A1 ) ( _377_ C ) + USE SIGNAL ; + - ctrl.state.out\[2\] ( _552_ A1 ) ( _569_ A ) ( _580_ B1 ) ( _601_ B1 ) ( _613_ B1 ) ( _638_ B ) ( _646_ B1 ) + ( _675_ A2 ) ( _693_ B ) ( _699_ A2 ) ( _372_ B2 ) ( _523_ C ) ( _524_ A2 ) ( _535_ A2 ) ( _545_ A2 ) + ( _571_ A2 ) ( _593_ B1 ) ( _594_ A2 ) ( _641_ A2 ) ( _700_ A2 ) ( _532_ A1 ) ( _553_ B ) ( _577_ B ) + ( _611_ B ) ( _623_ B ) ( _649_ B ) ( _658_ B ) ( _676_ B ) ( _686_ B ) ( _374_ A ) ( _446_ A ) + ( _566_ B ) ( _688_ A ) ( ctrl.state.out\[2\]$_DFF_P_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[0\] ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ Q ) ( _527_ A ) ( _524_ A1 ) ( _523_ B ) ( _521_ A1 ) ( _448_ A0 ) ( _408_ A_N ) + ( _385_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[10\] ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ Q ) ( _667_ A2 ) ( _637_ A1 ) ( _635_ B1 ) ( _498_ A ) ( _441_ B ) ( _395_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[11\] ( _397_ B ) ( _436_ B_N ) ( _442_ A_N ) ( _504_ A0 ) ( _645_ A1 ) ( _647_ B2 ) ( _649_ A ) + ( _650_ A1 ) ( _670_ B ) ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[12\] ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ Q ) ( _668_ A_N ) ( _662_ A1 ) ( _661_ A1 ) ( _659_ A1 ) ( _658_ A ) ( _507_ A0 ) + ( _389_ A ) ( _388_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[13\] ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ Q ) ( _677_ A0 ) ( _676_ A ) ( _510_ A ) ( _434_ B ) ( _393_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[14\] ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ Q ) ( _693_ A ) ( _692_ B ) ( _690_ A1 ) ( _686_ A ) ( _515_ A0 ) ( _391_ A_N ) + ( _390_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[15\] ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ Q ) ( _708_ B ) ( _698_ B ) ( _697_ A ) ( _518_ A1 ) ( _456_ B ) ( _387_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[1\] ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ Q ) ( _710_ B ) ( _538_ A1 ) ( _530_ A ) ( _529_ A1 ) ( _453_ A ) ( _409_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[2\] ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ Q ) ( _561_ B ) ( _542_ A1 ) ( _541_ A ) ( _540_ A1 ) ( _410_ A ) ( _405_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[3\] ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ Q ) ( _559_ A ) ( _553_ A ) ( _552_ B1 ) ( _549_ A1 ) ( _466_ A ) ( _425_ C1 ) + ( _417_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[4\] ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ Q ) ( _570_ B2 ) ( _564_ A1 ) ( _473_ A ) ( _426_ A_N ) ( _419_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[5\] ( _420_ A ) ( _422_ A1 ) ( _427_ B ) ( _478_ A ) ( _575_ A ) ( _577_ A ) ( _585_ B ) + ( _586_ B ) ( _719_ B ) ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[6\] ( _414_ B ) ( _429_ A_N ) ( _483_ A0 ) ( _588_ A ) ( _589_ A1 ) ( _592_ A1 ) ( _594_ B2 ) + ( _597_ A1 ) ( _599_ B ) ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[7\] ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ Q ) ( _723_ B ) ( _602_ B2 ) ( _598_ A ) ( _486_ A ) ( _430_ B ) ( _415_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[8\] ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ Q ) ( _629_ A ) ( _612_ A1 ) ( _611_ A ) ( _609_ A1 ) ( _438_ A ) ( _399_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[9\] ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ Q ) ( _626_ A1 ) ( _624_ A1 ) ( _623_ A ) ( _619_ A ) ( _495_ A0 ) ( _439_ A ) + ( _401_ A_N ) ( _400_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[0\] ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ Q ) ( _527_ B_N ) ( _523_ A ) ( _521_ B1 ) ( _448_ A1 ) ( _408_ B ) ( _385_ A ) + ( _358_ D ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[10\] ( _367_ C ) ( _395_ A ) ( _437_ A ) ( _500_ A1 ) ( _640_ A ) ( _641_ A1 ) ( _644_ A ) + ( _669_ A ) ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[11\] ( _367_ B ) ( _397_ A ) ( _436_ A ) ( _442_ B ) ( _504_ A1 ) ( _646_ A1 ) ( _647_ A1 ) + ( _648_ A ) ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[12\] ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ Q ) ( _668_ B ) ( _663_ A ) ( _660_ A ) ( _656_ A ) ( _507_ A1 ) ( _389_ B_N ) + ( _388_ A ) ( _367_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[13\] ( _364_ C ) ( _393_ A ) ( _433_ A ) ( _512_ A1 ) ( _681_ A1 ) ( _682_ A1 ) ( _683_ A1 ) + ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[14\] ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ Q ) ( _694_ A ) ( _692_ A ) ( _687_ D1 ) ( _685_ A ) ( _515_ A1 ) ( _391_ B ) + ( _390_ A ) ( _364_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[15\] ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ Q ) ( _708_ A ) ( _700_ A1 ) ( _518_ B1 ) ( _454_ A ) ( _445_ A ) ( _364_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[1\] ( _361_ D ) ( _407_ A ) ( _459_ A1 ) ( _533_ A1 ) ( _534_ A1 ) ( _535_ A1 ) ( _710_ A ) + ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[2\] ( _361_ C ) ( _406_ A ) ( _410_ B_N ) ( _424_ A ) ( _463_ A1 ) ( _543_ A1 ) ( _544_ A1 ) + ( _545_ A1 ) ( _560_ A1 ) ( _561_ A_N ) ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[3\] ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ Q ) ( _714_ A ) ( _559_ B_N ) ( _556_ A ) ( _550_ A ) ( _469_ A1 ) ( _417_ A_N ) + ( _411_ A ) ( _361_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[4\] ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ Q ) ( _571_ A1 ) ( _568_ A ) ( _565_ A ) ( _475_ A1 ) ( _426_ B ) ( _419_ A ) + ( _361_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[5\] ( _358_ C ) ( _421_ A ) ( _480_ A1 ) ( _576_ B1 ) ( _580_ A1 ) ( _581_ A1 ) ( _719_ A ) + ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[6\] ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ Q ) ( _594_ A1 ) ( _584_ A ) ( _483_ A1 ) ( _429_ B ) ( _414_ A_N ) ( _358_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[7\] ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ Q ) ( _723_ A ) ( _600_ A ) ( _488_ A1 ) ( _428_ A ) ( _415_ A_N ) ( _358_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[8\] ( _364_ D ) ( _399_ A ) ( _440_ A1 ) ( _492_ A1 ) ( _613_ A1 ) ( _614_ A1 ) ( _615_ A1 ) + ( _618_ A ) ( _631_ A ) ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[9\] ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ Q ) ( _625_ A ) ( _621_ A ) ( _620_ B1 ) ( _495_ A1 ) ( _439_ B_N ) ( _401_ B ) + ( _400_ A_N ) ( _367_ D ) + USE SIGNAL ; + - net1 ( input1 X ) ( _450_ B ) + USE SIGNAL ; + - net10 ( input10 X ) ( _546_ B ) + USE SIGNAL ; + - net11 ( input11 X ) ( _557_ B ) + USE SIGNAL ; + - net12 ( input12 X ) ( _460_ B ) + USE SIGNAL ; + - net13 ( input13 X ) ( _572_ B ) + USE SIGNAL ; + - net14 ( input14 X ) ( _582_ B ) + USE SIGNAL ; + - net15 ( input15 X ) ( _595_ B ) + USE SIGNAL ; + - net16 ( input16 X ) ( _607_ A ) + USE SIGNAL ; + - net17 ( input17 X ) ( _616_ B ) + USE SIGNAL ; + - net18 ( input18 X ) ( _627_ B ) + USE SIGNAL ; + - net19 ( input19 X ) ( _642_ B ) + USE SIGNAL ; + - net2 ( input2 X ) ( _501_ B ) + USE SIGNAL ; + - net20 ( input20 X ) ( _652_ B ) + USE SIGNAL ; + - net21 ( input21 X ) ( _664_ B ) + USE SIGNAL ; + - net22 ( input22 X ) ( _679_ B ) + USE SIGNAL ; + - net23 ( input23 X ) ( _464_ B ) + USE SIGNAL ; + - net24 ( input24 X ) ( _691_ B ) + USE SIGNAL ; + - net25 ( input25 X ) ( _701_ B ) + USE SIGNAL ; + - net26 ( input26 X ) ( _471_ B ) + USE SIGNAL ; + - net27 ( input27 X ) ( _476_ B ) + USE SIGNAL ; + - net28 ( input28 X ) ( _481_ B ) + USE SIGNAL ; + - net29 ( input29 X ) ( _484_ B ) + USE SIGNAL ; + - net3 ( input3 X ) ( _505_ B ) + USE SIGNAL ; + - net30 ( input30 X ) ( _489_ B ) + USE SIGNAL ; + - net31 ( input31 X ) ( _493_ B ) + USE SIGNAL ; + - net32 ( input32 X ) ( _496_ B ) + USE SIGNAL ; + - net33 ( input33 X ) ( _380_ A2 ) ( _372_ A2 ) + USE SIGNAL ; + - net34 ( input34 X ) ( _384_ A ) ( _379_ A ) ( _373_ A ) + USE SIGNAL ; + - net35 ( input35 X ) ( _378_ A ) + USE SIGNAL ; + - net36 ( output36 A ) ( req_rdy$_DFF_P_ Q ) ( _702_ A1 ) ( _701_ A ) ( _695_ C1 ) ( _691_ A ) ( _680_ A1 ) + ( _679_ A ) ( _665_ A1 ) ( _664_ A ) ( _652_ A ) ( _628_ A1 ) ( _627_ A ) ( _617_ A1 ) ( _616_ A ) + ( _608_ B2 ) ( _606_ B1 ) ( _583_ A1 ) ( _582_ A ) ( _573_ A1 ) ( _572_ A ) ( _558_ A1 ) ( _557_ A ) + ( _547_ A1 ) ( _546_ A ) ( _537_ A1 ) ( _536_ A ) ( _526_ A1 ) ( _525_ A ) ( _520_ A1 ) ( _519_ A ) + ( _517_ A1 ) ( _516_ A ) ( _514_ A1 ) ( _513_ A ) ( _509_ A1 ) ( _508_ A ) ( _506_ A1 ) ( _505_ A ) + ( _502_ A1 ) ( _501_ A ) ( _497_ A1 ) ( _496_ A ) ( _494_ A1 ) ( _493_ A ) ( _490_ A1 ) ( _489_ A ) + ( _485_ A1 ) ( _484_ A ) ( _482_ A1 ) ( _481_ A ) ( _477_ A1 ) ( _476_ A ) ( _472_ A1 ) ( _471_ A ) + ( _465_ A1 ) ( _464_ A ) ( _461_ A1 ) ( _460_ A ) ( _451_ A1 ) ( _450_ A ) ( _376_ A ) ( _372_ A1 ) + USE SIGNAL ; + - net37 ( output37 A ) ( _385_ X ) + USE SIGNAL ; + - net38 ( output38 A ) ( _703_ Y ) + USE SIGNAL ; + - net39 ( output39 A ) ( _704_ Y ) + USE SIGNAL ; + - net4 ( input4 X ) ( _508_ B ) + USE SIGNAL ; + - net40 ( output40 A ) ( _705_ Y ) + USE SIGNAL ; + - net41 ( output41 A ) ( _706_ Y ) + USE SIGNAL ; + - net42 ( output42 A ) ( _707_ Y ) + USE SIGNAL ; + - net43 ( output43 A ) ( _709_ Y ) + USE SIGNAL ; + - net44 ( output44 A ) ( _711_ Y ) + USE SIGNAL ; + - net45 ( output45 A ) ( _713_ Y ) + USE SIGNAL ; + - net46 ( output46 A ) ( _716_ Y ) + USE SIGNAL ; + - net47 ( output47 A ) ( _718_ Y ) + USE SIGNAL ; + - net48 ( output48 A ) ( _720_ Y ) + USE SIGNAL ; + - net49 ( output49 A ) ( _722_ Y ) + USE SIGNAL ; + - net5 ( input5 X ) ( _513_ B ) + USE SIGNAL ; + - net50 ( output50 A ) ( _724_ Y ) + USE SIGNAL ; + - net51 ( output51 A ) ( _725_ Y ) + USE SIGNAL ; + - net52 ( output52 A ) ( _726_ X ) + USE SIGNAL ; + - net53 ( output53 A ) ( _378_ B ) ( _377_ X ) + USE SIGNAL ; + - net54 ( _672_ A1 ) ( rebuffer1 X ) + USE SIGNAL ; + - net55 ( _432_ A3 ) ( rebuffer2 X ) + USE SIGNAL ; + - net6 ( input6 X ) ( _516_ B ) + USE SIGNAL ; + - net7 ( input7 X ) ( _519_ B ) + USE SIGNAL ; + - net8 ( input8 X ) ( _525_ B ) + USE SIGNAL ; + - net9 ( input9 X ) ( _536_ B ) + USE SIGNAL ; + - req_msg[0] ( PIN req_msg[0] ) ( input1 A ) + USE SIGNAL ; + - req_msg[10] ( PIN req_msg[10] ) ( input2 A ) + USE SIGNAL ; + - req_msg[11] ( PIN req_msg[11] ) ( input3 A ) + USE SIGNAL ; + - req_msg[12] ( PIN req_msg[12] ) ( input4 A ) + USE SIGNAL ; + - req_msg[13] ( PIN req_msg[13] ) ( input5 A ) + USE SIGNAL ; + - req_msg[14] ( PIN req_msg[14] ) ( input6 A ) + USE SIGNAL ; + - req_msg[15] ( PIN req_msg[15] ) ( input7 A ) + USE SIGNAL ; + - req_msg[16] ( PIN req_msg[16] ) ( input8 A ) + USE SIGNAL ; + - req_msg[17] ( PIN req_msg[17] ) ( input9 A ) + USE SIGNAL ; + - req_msg[18] ( PIN req_msg[18] ) ( input10 A ) + USE SIGNAL ; + - req_msg[19] ( PIN req_msg[19] ) ( input11 A ) + USE SIGNAL ; + - req_msg[1] ( PIN req_msg[1] ) ( input12 A ) + USE SIGNAL ; + - req_msg[20] ( PIN req_msg[20] ) ( input13 A ) + USE SIGNAL ; + - req_msg[21] ( PIN req_msg[21] ) ( input14 A ) + USE SIGNAL ; + - req_msg[22] ( PIN req_msg[22] ) ( input15 A ) + USE SIGNAL ; + - req_msg[23] ( PIN req_msg[23] ) ( input16 A ) + USE SIGNAL ; + - req_msg[24] ( PIN req_msg[24] ) ( input17 A ) + USE SIGNAL ; + - req_msg[25] ( PIN req_msg[25] ) ( input18 A ) + USE SIGNAL ; + - req_msg[26] ( PIN req_msg[26] ) ( input19 A ) + USE SIGNAL ; + - req_msg[27] ( PIN req_msg[27] ) ( input20 A ) + USE SIGNAL ; + - req_msg[28] ( PIN req_msg[28] ) ( input21 A ) + USE SIGNAL ; + - req_msg[29] ( PIN req_msg[29] ) ( input22 A ) + USE SIGNAL ; + - req_msg[2] ( PIN req_msg[2] ) ( input23 A ) + USE SIGNAL ; + - req_msg[30] ( PIN req_msg[30] ) ( input24 A ) + USE SIGNAL ; + - req_msg[31] ( PIN req_msg[31] ) ( input25 A ) + USE SIGNAL ; + - req_msg[3] ( PIN req_msg[3] ) ( input26 A ) + USE SIGNAL ; + - req_msg[4] ( PIN req_msg[4] ) ( input27 A ) + USE SIGNAL ; + - req_msg[5] ( PIN req_msg[5] ) ( input28 A ) + USE SIGNAL ; + - req_msg[6] ( PIN req_msg[6] ) ( input29 A ) + USE SIGNAL ; + - req_msg[7] ( PIN req_msg[7] ) ( input30 A ) + USE SIGNAL ; + - req_msg[8] ( PIN req_msg[8] ) ( input31 A ) + USE SIGNAL ; + - req_msg[9] ( PIN req_msg[9] ) ( input32 A ) + USE SIGNAL ; + - req_rdy ( PIN req_rdy ) ( output36 X ) + USE SIGNAL ; + - req_val ( PIN req_val ) ( input33 A ) + USE SIGNAL ; + - reset ( PIN reset ) ( input34 A ) + USE SIGNAL ; + - resp_msg[0] ( PIN resp_msg[0] ) ( output37 X ) + USE SIGNAL ; + - resp_msg[10] ( PIN resp_msg[10] ) ( output38 X ) + USE SIGNAL ; + - resp_msg[11] ( PIN resp_msg[11] ) ( output39 X ) + USE SIGNAL ; + - resp_msg[12] ( PIN resp_msg[12] ) ( output40 X ) + USE SIGNAL ; + - resp_msg[13] ( PIN resp_msg[13] ) ( output41 X ) + USE SIGNAL ; + - resp_msg[14] ( PIN resp_msg[14] ) ( output42 X ) + USE SIGNAL ; + - resp_msg[15] ( PIN resp_msg[15] ) ( output43 X ) + USE SIGNAL ; + - resp_msg[1] ( PIN resp_msg[1] ) ( output44 X ) + USE SIGNAL ; + - resp_msg[2] ( PIN resp_msg[2] ) ( output45 X ) + USE SIGNAL ; + - resp_msg[3] ( PIN resp_msg[3] ) ( output46 X ) + USE SIGNAL ; + - resp_msg[4] ( PIN resp_msg[4] ) ( output47 X ) + USE SIGNAL ; + - resp_msg[5] ( PIN resp_msg[5] ) ( output48 X ) + USE SIGNAL ; + - resp_msg[6] ( PIN resp_msg[6] ) ( output49 X ) + USE SIGNAL ; + - resp_msg[7] ( PIN resp_msg[7] ) ( output50 X ) + USE SIGNAL ; + - resp_msg[8] ( PIN resp_msg[8] ) ( output51 X ) + USE SIGNAL ; + - resp_msg[9] ( PIN resp_msg[9] ) ( output52 X ) + USE SIGNAL ; + - resp_rdy ( PIN resp_rdy ) ( input35 A ) + USE SIGNAL ; + - resp_val ( PIN resp_val ) ( output53 X ) + USE SIGNAL ; +END NETS +END DESIGN diff --git a/src/psm/test/insert_decap1.ok b/src/psm/test/insert_decap1.ok new file mode 100644 index 00000000000..c4dc63e9bbd --- /dev/null +++ b/src/psm/test/insert_decap1.ok @@ -0,0 +1,22 @@ +[INFO ODB-0227] LEF file: sky130hd/sky130hd.tlef, created 13 layers, 25 vias +[INFO ODB-0227] LEF file: sky130hd/sky130hd_std_cell.lef, created 437 library cells +[INFO ODB-0128] Design: gcd +[INFO ODB-0130] Created 54 pins. +[INFO ODB-0131] Created 538 components and 2577 component-terminals. +[INFO ODB-0132] Created 2 special nets and 1076 connections. +[INFO ODB-0133] Created 475 nets and 1498 connections. +[INFO PSM-0040] All shapes on net VDD are connected. +[INFO PSM-0073] Using bump pattern with x-pitch 140.0000um, y-pitch 140.0000um, and size 70.0000um with an reduction factor of 3x. +########## IR report ################# +Net : VDD +Corner : default +Supply voltage : 1.40e+00 V +Worstcase voltage: 1.40e+00 V +Average voltage : 1.40e+00 V +Average IR drop : 1.25e-11 V +Worstcase IR drop: 2.85e-11 V +Percentage drop : 0.00 % +###################################### + +[INFO DPL-0056] Placed 657 decap cells. Total capacitance: 0.000611 +No differences found. diff --git a/src/psm/test/insert_decap1.tcl b/src/psm/test/insert_decap1.tcl new file mode 100644 index 00000000000..c1d1c99c64d --- /dev/null +++ b/src/psm/test/insert_decap1.tcl @@ -0,0 +1,19 @@ +# insert_decap for sky130hd/gcd +source "helpers.tcl" + +read_liberty sky130hd/sky130_fd_sc_hd__ss_n40C_1v40.lib +read_lef "sky130hd/sky130hd.tlef" +read_lef "sky130hd/sky130hd_std_cell.lef" +read_def "insert_decap_gcd.def" + +source sky130hd/sky130hd.rc + +analyze_power_grid -net {VDD} +insert_decap -target_cap 1000.5 -cells {"sky130_fd_sc_hd__decap_3" 0.93 "sky130_fd_sc_hd__decap_4" 0.124 "sky130_fd_sc_hd__decap_6" 0.186 "sky130_fd_sc_hd__decap_8" 0.248 "sky130_fd_sc_hd__decap_12" 0.362} +#insert_decap -target_cap 1000.5 -cells {"sky130_fd_sc_hd__decap_3" 0.93 "sky130_fd_sc_hd__decap_4" 1.24 "sky130_fd_sc_hd__decap_6" 1.86 "sky130_fd_sc_hd__decap_8" 2.48 "sky130_fd_sc_hd__decap_12" 3.62} + +check_placement + +set def_file [make_result_file insert_decap1.def] +write_def $def_file +diff_file $def_file insert_decap1.defok diff --git a/src/psm/test/insert_decap2.defok b/src/psm/test/insert_decap2.defok new file mode 100644 index 00000000000..32731c0041a --- /dev/null +++ b/src/psm/test/insert_decap2.defok @@ -0,0 +1,1874 @@ +VERSION 5.8 ; +DIVIDERCHAR "/" ; +BUSBITCHARS "[]" ; +DESIGN gcd ; +UNITS DISTANCE MICRONS 1000 ; +DIEAREA ( 0 0 ) ( 86840 86840 ) ; +ROW ROW_0 unithd 1380 2720 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_1 unithd 1380 5440 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_2 unithd 1380 8160 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_3 unithd 1380 10880 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_4 unithd 1380 13600 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_5 unithd 1380 16320 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_6 unithd 1380 19040 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_7 unithd 1380 21760 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_8 unithd 1380 24480 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_9 unithd 1380 27200 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_10 unithd 1380 29920 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_11 unithd 1380 32640 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_12 unithd 1380 35360 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_13 unithd 1380 38080 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_14 unithd 1380 40800 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_15 unithd 1380 43520 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_16 unithd 1380 46240 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_17 unithd 1380 48960 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_18 unithd 1380 51680 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_19 unithd 1380 54400 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_20 unithd 1380 57120 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_21 unithd 1380 59840 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_22 unithd 1380 62560 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_23 unithd 1380 65280 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_24 unithd 1380 68000 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_25 unithd 1380 70720 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_26 unithd 1380 73440 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_27 unithd 1380 76160 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_28 unithd 1380 78880 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_29 unithd 1380 81600 FS DO 183 BY 1 STEP 460 0 ; +TRACKS X 230 DO 189 STEP 460 LAYER li1 ; +TRACKS Y 170 DO 255 STEP 340 LAYER li1 ; +TRACKS X 170 DO 255 STEP 340 LAYER met1 ; +TRACKS Y 170 DO 255 STEP 340 LAYER met1 ; +TRACKS X 230 DO 189 STEP 460 LAYER met2 ; +TRACKS Y 230 DO 189 STEP 460 LAYER met2 ; +TRACKS X 340 DO 127 STEP 680 LAYER met3 ; +TRACKS Y 340 DO 127 STEP 680 LAYER met3 ; +TRACKS X 460 DO 94 STEP 920 LAYER met4 ; +TRACKS Y 460 DO 94 STEP 920 LAYER met4 ; +TRACKS X 1700 DO 25 STEP 3400 LAYER met5 ; +TRACKS Y 1700 DO 25 STEP 3400 LAYER met5 ; +GCELLGRID X 0 DO 12 STEP 6900 ; +GCELLGRID Y 0 DO 12 STEP 6900 ; +VIAS 4 ; + - via2_3_1600_480_1_5_320_320 + VIARULE M1M2_PR + CUTSIZE 150 150 + LAYERS met1 via met2 + CUTSPACING 170 170 + ENCLOSURE 85 165 55 85 + ROWCOL 1 5 ; + - via3_4_1600_480_1_4_400_400 + VIARULE M2M3_PR + CUTSIZE 200 200 + LAYERS met2 via2 met3 + CUTSPACING 200 200 + ENCLOSURE 40 85 65 65 + ROWCOL 1 4 ; + - via4_5_1600_480_1_4_400_400 + VIARULE M3M4_PR + CUTSIZE 200 200 + LAYERS met3 via3 met4 + CUTSPACING 200 200 + ENCLOSURE 90 60 100 65 + ROWCOL 1 4 ; + - via5_6_1600_1600_1_1_1600_1600 + VIARULE M4M5_PR + CUTSIZE 800 800 + LAYERS met4 via4 met5 + CUTSPACING 800 800 + ENCLOSURE 400 190 310 400 ; +END VIAS +COMPONENTS 542 ; + - DECAP_0 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 6440 29920 ) N ; + - DECAP_1 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 7820 29920 ) N ; + - DECAP_2 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 9200 29920 ) N ; + - DECAP_3 sky130_fd_sc_hd__decap_3 + SOURCE DIST + PLACED ( 10580 29920 ) N ; + - TAP_TAPCELL_ROW_0_0 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 2720 ) N ; + - TAP_TAPCELL_ROW_0_1 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 2720 ) N ; + - TAP_TAPCELL_ROW_0_2 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 2720 ) N ; + - TAP_TAPCELL_ROW_0_3 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 2720 ) N ; + - TAP_TAPCELL_ROW_0_4 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 2720 ) N ; + - TAP_TAPCELL_ROW_0_5 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 2720 ) N ; + - TAP_TAPCELL_ROW_10_33 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 29920 ) N ; + - TAP_TAPCELL_ROW_10_34 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 29920 ) N ; + - TAP_TAPCELL_ROW_10_35 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 29920 ) N ; + - TAP_TAPCELL_ROW_11_36 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 32640 ) FS ; + - TAP_TAPCELL_ROW_11_37 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 32640 ) FS ; + - TAP_TAPCELL_ROW_11_38 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 32640 ) FS ; + - TAP_TAPCELL_ROW_12_39 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 35360 ) N ; + - TAP_TAPCELL_ROW_12_40 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 35360 ) N ; + - TAP_TAPCELL_ROW_12_41 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 35360 ) N ; + - TAP_TAPCELL_ROW_13_42 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 38080 ) FS ; + - TAP_TAPCELL_ROW_13_43 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 38080 ) FS ; + - TAP_TAPCELL_ROW_13_44 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 38080 ) FS ; + - TAP_TAPCELL_ROW_14_45 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 40800 ) N ; + - TAP_TAPCELL_ROW_14_46 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 40800 ) N ; + - TAP_TAPCELL_ROW_14_47 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 40800 ) N ; + - TAP_TAPCELL_ROW_15_48 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 43520 ) FS ; + - TAP_TAPCELL_ROW_15_49 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 43520 ) FS ; + - TAP_TAPCELL_ROW_15_50 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 43520 ) FS ; + - TAP_TAPCELL_ROW_16_51 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 46240 ) N ; + - TAP_TAPCELL_ROW_16_52 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 46240 ) N ; + - TAP_TAPCELL_ROW_16_53 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 46240 ) N ; + - TAP_TAPCELL_ROW_17_54 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 48960 ) FS ; + - TAP_TAPCELL_ROW_17_55 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 48960 ) FS ; + - TAP_TAPCELL_ROW_17_56 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 48960 ) FS ; + - TAP_TAPCELL_ROW_18_57 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 51680 ) N ; + - TAP_TAPCELL_ROW_18_58 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 51680 ) N ; + - TAP_TAPCELL_ROW_18_59 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 51680 ) N ; + - TAP_TAPCELL_ROW_19_60 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 54400 ) FS ; + - TAP_TAPCELL_ROW_19_61 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 54400 ) FS ; + - TAP_TAPCELL_ROW_19_62 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 54400 ) FS ; + - TAP_TAPCELL_ROW_1_6 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 5440 ) FS ; + - TAP_TAPCELL_ROW_1_7 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 5440 ) FS ; + - TAP_TAPCELL_ROW_1_8 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 5440 ) FS ; + - TAP_TAPCELL_ROW_20_63 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 57120 ) N ; + - TAP_TAPCELL_ROW_20_64 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 57120 ) N ; + - TAP_TAPCELL_ROW_20_65 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 57120 ) N ; + - TAP_TAPCELL_ROW_21_66 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 59840 ) FS ; + - TAP_TAPCELL_ROW_21_67 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 59840 ) FS ; + - TAP_TAPCELL_ROW_21_68 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 59840 ) FS ; + - TAP_TAPCELL_ROW_22_69 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 62560 ) N ; + - TAP_TAPCELL_ROW_22_70 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 62560 ) N ; + - TAP_TAPCELL_ROW_22_71 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 62560 ) N ; + - TAP_TAPCELL_ROW_23_72 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 65280 ) FS ; + - TAP_TAPCELL_ROW_23_73 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 65280 ) FS ; + - TAP_TAPCELL_ROW_23_74 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 65280 ) FS ; + - TAP_TAPCELL_ROW_24_75 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 68000 ) N ; + - TAP_TAPCELL_ROW_24_76 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 68000 ) N ; + - TAP_TAPCELL_ROW_24_77 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 68000 ) N ; + - TAP_TAPCELL_ROW_25_78 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 70720 ) FS ; + - TAP_TAPCELL_ROW_25_79 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 70720 ) FS ; + - TAP_TAPCELL_ROW_25_80 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 70720 ) FS ; + - TAP_TAPCELL_ROW_26_81 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 73440 ) N ; + - TAP_TAPCELL_ROW_26_82 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 73440 ) N ; + - TAP_TAPCELL_ROW_26_83 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 73440 ) N ; + - TAP_TAPCELL_ROW_27_84 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 76160 ) FS ; + - TAP_TAPCELL_ROW_27_85 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 76160 ) FS ; + - TAP_TAPCELL_ROW_27_86 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 76160 ) FS ; + - TAP_TAPCELL_ROW_28_87 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 78880 ) N ; + - TAP_TAPCELL_ROW_28_88 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 78880 ) N ; + - TAP_TAPCELL_ROW_28_89 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 78880 ) N ; + - TAP_TAPCELL_ROW_29_90 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 81600 ) FS ; + - TAP_TAPCELL_ROW_29_91 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 81600 ) FS ; + - TAP_TAPCELL_ROW_29_92 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 81600 ) FS ; + - TAP_TAPCELL_ROW_29_93 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 81600 ) FS ; + - TAP_TAPCELL_ROW_29_94 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 81600 ) FS ; + - TAP_TAPCELL_ROW_29_95 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 81600 ) FS ; + - TAP_TAPCELL_ROW_2_10 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 8160 ) N ; + - TAP_TAPCELL_ROW_2_11 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 8160 ) N ; + - TAP_TAPCELL_ROW_2_9 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 8160 ) N ; + - TAP_TAPCELL_ROW_3_12 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 10880 ) FS ; + - TAP_TAPCELL_ROW_3_13 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 10880 ) FS ; + - TAP_TAPCELL_ROW_3_14 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 10880 ) FS ; + - TAP_TAPCELL_ROW_4_15 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 13600 ) N ; + - TAP_TAPCELL_ROW_4_16 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 13600 ) N ; + - TAP_TAPCELL_ROW_4_17 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 13600 ) N ; + - TAP_TAPCELL_ROW_5_18 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 16320 ) FS ; + - TAP_TAPCELL_ROW_5_19 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 16320 ) FS ; + - TAP_TAPCELL_ROW_5_20 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 16320 ) FS ; + - TAP_TAPCELL_ROW_6_21 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 19040 ) N ; + - TAP_TAPCELL_ROW_6_22 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 19040 ) N ; + - TAP_TAPCELL_ROW_6_23 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 19040 ) N ; + - TAP_TAPCELL_ROW_7_24 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 21760 ) FS ; + - TAP_TAPCELL_ROW_7_25 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 21760 ) FS ; + - TAP_TAPCELL_ROW_7_26 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 21760 ) FS ; + - TAP_TAPCELL_ROW_8_27 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 24480 ) N ; + - TAP_TAPCELL_ROW_8_28 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 24480 ) N ; + - TAP_TAPCELL_ROW_8_29 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 24480 ) N ; + - TAP_TAPCELL_ROW_9_30 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 27200 ) FS ; + - TAP_TAPCELL_ROW_9_31 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 27200 ) FS ; + - TAP_TAPCELL_ROW_9_32 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 27200 ) FS ; + - _358_ sky130_fd_sc_hd__nor4_1 + PLACED ( 18860 46240 ) N ; + - _361_ sky130_fd_sc_hd__nor4_1 + PLACED ( 29440 32640 ) FS ; + - _364_ sky130_fd_sc_hd__nor4_1 + PLACED ( 64400 43520 ) FS ; + - _367_ sky130_fd_sc_hd__nor4_1 + PLACED ( 57040 43520 ) FS ; + - _368_ sky130_fd_sc_hd__nand4_1 + PLACED ( 36340 46240 ) N ; + - _372_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 34960 65280 ) FS ; + - _373_ sky130_fd_sc_hd__nor2_1 + PLACED ( 37720 65280 ) FS ; + - _374_ sky130_fd_sc_hd__inv_8 + PLACED ( 48760 59840 ) FS ; + - _376_ sky130_fd_sc_hd__clkinv_2 + PLACED ( 46000 62560 ) N ; + - _377_ sky130_fd_sc_hd__and3_1 + PLACED ( 40480 68000 ) N ; + - _378_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39560 76160 ) FS ; + - _379_ sky130_fd_sc_hd__inv_1 + PLACED ( 37260 70720 ) FS ; + - _380_ sky130_fd_sc_hd__o211ai_1 + PLACED ( 38640 70720 ) FS ; + - _382_ sky130_fd_sc_hd__nor2_1 + PLACED ( 37260 62560 ) N ; + - _383_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 38640 68000 ) N ; + - _384_ sky130_fd_sc_hd__nor2_1 + PLACED ( 35880 70720 ) FS ; + - _385_ sky130_fd_sc_hd__xor2_1 + PLACED ( 11500 24480 ) N ; + - _387_ sky130_fd_sc_hd__inv_1 + PLACED ( 74060 32640 ) FS ; + - _388_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 68080 46240 ) N ; + - _389_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 67160 43520 ) FS ; + - _390_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 73140 57120 ) N ; + - _391_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 71760 54400 ) FS ; + - _392_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 74060 54400 ) FS ; + - _393_ sky130_fd_sc_hd__xor2_1 + PLACED ( 79580 43520 ) FS ; + - _394_ sky130_fd_sc_hd__nor4_1 + PLACED ( 69920 43520 ) FS ; + - _395_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 57960 46240 ) N ; + - _397_ sky130_fd_sc_hd__xnor2_2 + PLACED ( 57040 51680 ) N ; + - _398_ sky130_fd_sc_hd__nand2_1 + PLACED ( 61640 46240 ) N ; + - _399_ sky130_fd_sc_hd__xor2_1 + PLACED ( 57040 38080 ) FS ; + - _400_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 62100 29920 ) N ; + - _401_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 58880 35360 ) N ; + - _402_ sky130_fd_sc_hd__nand2_1 + PLACED ( 62100 38080 ) FS ; + - _403_ sky130_fd_sc_hd__nor3_1 + PLACED ( 60260 38080 ) FS ; + - _404_ sky130_fd_sc_hd__nand2_1 + PLACED ( 66700 38080 ) FS ; + - _405_ sky130_fd_sc_hd__clkinvlp_4 + PLACED ( 38640 24480 ) N ; + - _406_ sky130_fd_sc_hd__nor2_2 + PLACED ( 36800 32640 ) FS ; + - _407_ sky130_fd_sc_hd__inv_1 + PLACED ( 23460 27200 ) FS ; + - _408_ sky130_fd_sc_hd__nand2b_4 + PLACED ( 17480 27200 ) FS ; + - _409_ sky130_fd_sc_hd__maj3_4 + PLACED ( 29440 27200 ) FS ; + - _410_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 40480 29920 ) N ; + - _411_ sky130_fd_sc_hd__nor2_1 + PLACED ( 41400 32640 ) FS ; + - _412_ sky130_fd_sc_hd__o21ai_4 + PLACED ( 36800 35360 ) N ; + - _414_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 21620 54400 ) FS ; + - _415_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 19320 57120 ) N ; + - _416_ sky130_fd_sc_hd__nand2_1 + PLACED ( 21620 57120 ) N ; + - _417_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 30360 38080 ) FS ; + - _419_ sky130_fd_sc_hd__nor2b_2 + PLACED ( 17480 35360 ) N ; + - _420_ sky130_fd_sc_hd__nand2_1 + PLACED ( 22540 40800 ) N ; + - _421_ sky130_fd_sc_hd__inv_1 + PLACED ( 17940 43520 ) FS ; + - _422_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23000 43520 ) FS ; + - _423_ sky130_fd_sc_hd__and4b_2 + PLACED ( 24840 43520 ) FS ; + - _424_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39100 32640 ) FS ; + - _425_ sky130_fd_sc_hd__o211ai_4 + PLACED ( 35420 38080 ) FS ; + - _426_ sky130_fd_sc_hd__nand2b_2 + PLACED ( 18860 32640 ) FS ; + - _427_ sky130_fd_sc_hd__maj3_1 + PLACED ( 19320 43520 ) FS ; + - _428_ sky130_fd_sc_hd__inv_1 + PLACED ( 13800 57120 ) N ; + - _429_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 15180 54400 ) FS ; + - _430_ sky130_fd_sc_hd__maj3_1 + PLACED ( 15640 57120 ) N ; + - _431_ sky130_fd_sc_hd__o21ai_4 + PLACED ( 23920 46240 ) N ; + - _432_ sky130_fd_sc_hd__a31o_2 + PLACED ( 39560 40800 ) N ; + - _433_ sky130_fd_sc_hd__inv_1 + PLACED ( 76360 48960 ) FS ; + - _434_ sky130_fd_sc_hd__maj3_1 + PLACED ( 70380 48960 ) FS ; + - _435_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 72680 51680 ) N ; + - _436_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 59340 43520 ) FS ; + - _437_ sky130_fd_sc_hd__inv_1 + PLACED ( 49680 46240 ) N ; + - _438_ sky130_fd_sc_hd__inv_1 + PLACED ( 50600 29920 ) N ; + - _439_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 54280 32640 ) FS ; + - _440_ sky130_fd_sc_hd__o31ai_4 + PLACED ( 51060 35360 ) N ; + - _441_ sky130_fd_sc_hd__maj3_1 + PLACED ( 54280 46240 ) N ; + - _442_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 61640 43520 ) FS ; + - _443_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 62100 40800 ) N ; + - _444_ sky130_fd_sc_hd__o211a_1 + PLACED ( 66700 40800 ) N ; + - _445_ sky130_fd_sc_hd__maj3_4 + PLACED ( 72680 35360 ) N ; + - _446_ sky130_fd_sc_hd__nand2_8 + PLACED ( 39100 59840 ) FS ; + - _448_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 10120 27200 ) FS ; + - _450_ sky130_fd_sc_hd__nand2_1 + PLACED ( 2300 27200 ) FS ; + - _451_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4140 27200 ) FS ; + - _453_ sky130_fd_sc_hd__inv_1 + PLACED ( 26680 19040 ) N ; + - _454_ sky130_fd_sc_hd__inv_1 + PLACED ( 72680 29920 ) N ; + - _455_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 68080 38080 ) FS ; + - _456_ sky130_fd_sc_hd__maj3_4 + PLACED ( 69000 32640 ) FS ; + - _458_ sky130_fd_sc_hd__nor3_1 + PLACED ( 21620 21760 ) FS ; + - _459_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 21160 19040 ) N ; + - _460_ sky130_fd_sc_hd__nand2_1 + PLACED ( 17480 10880 ) FS ; + - _461_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 17020 13600 ) N ; + - _462_ sky130_fd_sc_hd__nor3_1 + PLACED ( 31740 21760 ) FS ; + - _463_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 33580 21760 ) FS ; + - _464_ sky130_fd_sc_hd__nand2_1 + PLACED ( 34500 10880 ) FS ; + - _465_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 33580 13600 ) N ; + - _466_ sky130_fd_sc_hd__inv_1 + PLACED ( 30360 43520 ) FS ; + - _468_ sky130_fd_sc_hd__nor3_1 + PLACED ( 29440 48960 ) FS ; + - _469_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 28980 51680 ) N ; + - _471_ sky130_fd_sc_hd__nand2_1 + PLACED ( 8740 54400 ) FS ; + - _472_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 27140 51680 ) N ; + - _473_ sky130_fd_sc_hd__inv_1 + PLACED ( 11500 35360 ) N ; + - _474_ sky130_fd_sc_hd__nor3_1 + PLACED ( 12420 38080 ) FS ; + - _475_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10580 38080 ) FS ; + - _476_ sky130_fd_sc_hd__nand2_1 + PLACED ( 1380 38080 ) FS ; + - _477_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 38080 ) FS ; + - _478_ sky130_fd_sc_hd__inv_1 + PLACED ( 9660 46240 ) N ; + - _479_ sky130_fd_sc_hd__nor3_1 + PLACED ( 11040 48960 ) FS ; + - _480_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10580 51680 ) N ; + - _481_ sky130_fd_sc_hd__nand2_1 + PLACED ( 5060 51680 ) N ; + - _482_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 51680 ) N ; + - _483_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 11500 54400 ) FS ; + - _484_ sky130_fd_sc_hd__nand2_1 + PLACED ( 1380 57120 ) N ; + - _485_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 54400 ) FS ; + - _486_ sky130_fd_sc_hd__inv_1 + PLACED ( 11500 65280 ) FS ; + - _487_ sky130_fd_sc_hd__nor3_1 + PLACED ( 11040 62560 ) N ; + - _488_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 9200 62560 ) N ; + - _489_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3220 62560 ) N ; + - _490_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4600 62560 ) N ; + - _491_ sky130_fd_sc_hd__nor3_1 + PLACED ( 47840 24480 ) N ; + - _492_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 46460 21760 ) FS ; + - _493_ sky130_fd_sc_hd__nand2_1 + PLACED ( 45080 13600 ) N ; + - _494_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 45080 16320 ) FS ; + - _495_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 52900 19040 ) N ; + - _496_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51060 10880 ) FS ; + - _497_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50140 13600 ) N ; + - _498_ sky130_fd_sc_hd__inv_1 + PLACED ( 53820 51680 ) N ; + - _499_ sky130_fd_sc_hd__nor3_1 + PLACED ( 44160 54400 ) FS ; + - _500_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 42320 54400 ) FS ; + - _501_ sky130_fd_sc_hd__nand2_1 + PLACED ( 38640 62560 ) N ; + - _502_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 38180 54400 ) FS ; + - _504_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 52440 62560 ) N ; + - _505_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51520 70720 ) FS ; + - _506_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 62560 ) N ; + - _507_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 65320 19040 ) N ; + - _508_ sky130_fd_sc_hd__nand2_1 + PLACED ( 65780 10880 ) FS ; + - _509_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 64860 13600 ) N ; + - _510_ sky130_fd_sc_hd__inv_1 + PLACED ( 74520 51680 ) N ; + - _511_ sky130_fd_sc_hd__nor3_1 + PLACED ( 76360 54400 ) FS ; + - _512_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 75900 57120 ) N ; + - _513_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80040 59840 ) FS ; + - _514_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 78200 54400 ) FS ; + - _515_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 73600 65280 ) FS ; + - _516_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80040 65280 ) FS ; + - _517_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 77280 65280 ) FS ; + - _518_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 74980 27200 ) FS ; + - _519_ sky130_fd_sc_hd__nand2_1 + PLACED ( 77740 21760 ) FS ; + - _520_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 75900 21760 ) FS ; + - _521_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10120 21760 ) FS ; + - _523_ sky130_fd_sc_hd__nand3_1 + PLACED ( 15640 24480 ) N ; + - _524_ sky130_fd_sc_hd__o22ai_1 + PLACED ( 13340 21760 ) FS ; + - _525_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3680 21760 ) FS ; + - _526_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 5980 21760 ) FS ; + - _527_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 17020 21760 ) FS ; + - _529_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 26220 21760 ) FS ; + - _530_ sky130_fd_sc_hd__nor2_1 + PLACED ( 24840 27200 ) FS ; + - _531_ sky130_fd_sc_hd__nor2_1 + PLACED ( 27140 24480 ) N ; + - _532_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 28980 24480 ) N ; + - _533_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 22080 24480 ) N ; + - _534_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 23920 24480 ) N ; + - _535_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 23920 21760 ) FS ; + - _536_ sky130_fd_sc_hd__nand2_1 + PLACED ( 29440 10880 ) FS ; + - _537_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 24840 19040 ) N ; + - _538_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 27140 27200 ) FS ; + - _539_ sky130_fd_sc_hd__or2_0 + PLACED ( 31280 24480 ) N ; + - _540_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 34040 24480 ) N ; + - _541_ sky130_fd_sc_hd__nor3_1 + PLACED ( 34500 29920 ) N ; + - _542_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 37720 29920 ) N ; + - _543_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 34960 27200 ) FS ; + - _544_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 36800 27200 ) FS ; + - _545_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 35880 24480 ) N ; + - _546_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39560 19040 ) N ; + - _547_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 36800 19040 ) N ; + - _548_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 33580 35360 ) N ; + - _549_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 38640 46240 ) N ; + - _550_ sky130_fd_sc_hd__nor3_1 + PLACED ( 37720 48960 ) FS ; + - _552_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 36340 43520 ) FS ; + - _553_ sky130_fd_sc_hd__nand2_1 + PLACED ( 33120 43520 ) FS ; + - _554_ sky130_fd_sc_hd__nand2_1 + PLACED ( 31740 46240 ) N ; + - _555_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 33120 46240 ) N ; + - _556_ sky130_fd_sc_hd__and3_1 + PLACED ( 32200 48960 ) FS ; + - _557_ sky130_fd_sc_hd__nand2_1 + PLACED ( 8280 46240 ) N ; + - _558_ sky130_fd_sc_hd__o41ai_1 + PLACED ( 34500 48960 ) FS ; + - _559_ sky130_fd_sc_hd__nor2b_2 + PLACED ( 32660 40800 ) N ; + - _560_ sky130_fd_sc_hd__a2111oi_4 + PLACED ( 24380 29920 ) N ; + - _561_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 33120 32640 ) FS ; + - _562_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 28980 35360 ) N ; + - _563_ sky130_fd_sc_hd__nor2_1 + PLACED ( 27140 35360 ) N ; + - _564_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 11040 32640 ) FS ; + - _565_ sky130_fd_sc_hd__inv_1 + PLACED ( 16560 29920 ) N ; + - _566_ sky130_fd_sc_hd__nand3_1 + PLACED ( 13340 35360 ) N ; + - _567_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 15640 35360 ) N ; + - _568_ sky130_fd_sc_hd__nand2_1 + PLACED ( 20240 29920 ) N ; + - _569_ sky130_fd_sc_hd__nand2_1 + PLACED ( 18860 29920 ) N ; + - _570_ sky130_fd_sc_hd__a32o_1 + PLACED ( 15180 32640 ) FS ; + - _571_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 12880 32640 ) FS ; + - _572_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3220 29920 ) N ; + - _573_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4600 29920 ) N ; + - _574_ sky130_fd_sc_hd__o31ai_4 + PLACED ( 21160 38080 ) FS ; + - _575_ sky130_fd_sc_hd__nand2_1 + PLACED ( 11960 40800 ) N ; + - _576_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 12880 43520 ) FS ; + - _577_ sky130_fd_sc_hd__nand2_1 + PLACED ( 15640 46240 ) N ; + - _578_ sky130_fd_sc_hd__nand2_1 + PLACED ( 12880 48960 ) FS ; + - _579_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 14260 48960 ) FS ; + - _580_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 17020 46240 ) N ; + - _581_ sky130_fd_sc_hd__a32o_1 + PLACED ( 11500 46240 ) N ; + - _582_ sky130_fd_sc_hd__nand2_1 + PLACED ( 6900 46240 ) N ; + - _583_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 9660 43520 ) FS ; + - _584_ sky130_fd_sc_hd__inv_1 + PLACED ( 21620 59840 ) FS ; + - _585_ sky130_fd_sc_hd__nand2_1 + PLACED ( 21160 46240 ) N ; + - _586_ sky130_fd_sc_hd__nor2_1 + PLACED ( 22540 46240 ) N ; + - _587_ sky130_fd_sc_hd__a21oi_2 + PLACED ( 22080 48960 ) FS ; + - _588_ sky130_fd_sc_hd__nor3_1 + PLACED ( 25760 57120 ) N ; + - _589_ sky130_fd_sc_hd__a21o_1 + PLACED ( 24380 62560 ) N ; + - _590_ sky130_fd_sc_hd__nand3_1 + PLACED ( 27140 62560 ) N ; + - _591_ sky130_fd_sc_hd__a21o_1 + PLACED ( 19320 48960 ) FS ; + - _592_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23920 57120 ) N ; + - _593_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23000 59840 ) FS ; + - _594_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 24840 59840 ) FS ; + - _595_ sky130_fd_sc_hd__nor2_1 + PLACED ( 29900 68000 ) N ; + - _596_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 29440 62560 ) N ; + - _597_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 21620 62560 ) N ; + - _598_ sky130_fd_sc_hd__nand2_1 + PLACED ( 18860 65280 ) FS ; + - _599_ sky130_fd_sc_hd__maj3_2 + PLACED ( 21160 65280 ) FS ; + - _600_ sky130_fd_sc_hd__nor4_1 + PLACED ( 18860 62560 ) N ; + - _601_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 16100 59840 ) FS ; + - _602_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 16100 62560 ) N ; + - _603_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 13340 62560 ) N ; + - _604_ sky130_fd_sc_hd__or3_1 + PLACED ( 13800 59840 ) FS ; + - _605_ sky130_fd_sc_hd__nor2_1 + PLACED ( 19780 59840 ) FS ; + - _606_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 17020 65280 ) FS ; + - _607_ sky130_fd_sc_hd__inv_1 + PLACED ( 10120 65280 ) FS ; + - _608_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 13800 65280 ) FS ; + - _609_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 48760 29920 ) N ; + - _610_ sky130_fd_sc_hd__a31oi_4 + PLACED ( 43240 40800 ) N ; + - _611_ sky130_fd_sc_hd__nand3_1 + PLACED ( 52440 32640 ) FS ; + - _612_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 32640 ) FS ; + - _613_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 45540 32640 ) FS ; + - _614_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 47380 32640 ) FS ; + - _615_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 46000 29920 ) N ; + - _616_ sky130_fd_sc_hd__nand2_1 + PLACED ( 45080 21760 ) FS ; + - _617_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 46000 24480 ) N ; + - _618_ sky130_fd_sc_hd__maj3_1 + PLACED ( 52900 29920 ) N ; + - _619_ sky130_fd_sc_hd__nand2_1 + PLACED ( 55200 21760 ) FS ; + - _620_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 57040 21760 ) FS ; + - _621_ sky130_fd_sc_hd__nor2_1 + PLACED ( 57040 27200 ) FS ; + - _622_ sky130_fd_sc_hd__nor2_1 + PLACED ( 58420 27200 ) FS ; + - _623_ sky130_fd_sc_hd__nand2_1 + PLACED ( 54740 24480 ) N ; + - _624_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 56120 24480 ) N ; + - _625_ sky130_fd_sc_hd__nand3_1 + PLACED ( 59800 24480 ) N ; + - _626_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 59800 21760 ) FS ; + - _627_ sky130_fd_sc_hd__nand2_1 + PLACED ( 58880 10880 ) FS ; + - _628_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 57040 19040 ) N ; + - _629_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51520 40800 ) N ; + - _630_ sky130_fd_sc_hd__a311oi_4 + PLACED ( 43240 43520 ) FS ; + - _631_ sky130_fd_sc_hd__inv_1 + PLACED ( 54280 38080 ) FS ; + - _632_ sky130_fd_sc_hd__nand2_1 + PLACED ( 52900 38080 ) FS ; + - _633_ sky130_fd_sc_hd__a311oi_4 + PLACED ( 43240 38080 ) FS ; + - _634_ sky130_fd_sc_hd__nor4_1 + PLACED ( 51060 46240 ) N ; + - _635_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 51680 ) N ; + - _636_ sky130_fd_sc_hd__nor3_4 + PLACED ( 46920 48960 ) FS ; + - _637_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 48760 51680 ) N ; + - _638_ sky130_fd_sc_hd__nand3_1 + PLACED ( 51980 54400 ) FS ; + - _639_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50140 54400 ) FS ; + - _640_ sky130_fd_sc_hd__nor2_1 + PLACED ( 46460 51680 ) N ; + - _641_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 46920 54400 ) FS ; + - _642_ sky130_fd_sc_hd__nor2_1 + PLACED ( 47840 62560 ) N ; + - _643_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 46460 59840 ) FS ; + - _644_ sky130_fd_sc_hd__maj3_1 + PLACED ( 57040 57120 ) N ; + - _645_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 63480 59840 ) FS ; + - _646_ sky130_fd_sc_hd__o21a_1 + PLACED ( 60720 59840 ) FS ; + - _647_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 58880 62560 ) N ; + - _648_ sky130_fd_sc_hd__inv_1 + PLACED ( 55200 59840 ) FS ; + - _649_ sky130_fd_sc_hd__nand2_1 + PLACED ( 62100 62560 ) N ; + - _650_ sky130_fd_sc_hd__mux2_1 + PLACED ( 58880 65280 ) FS ; + - _651_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 56120 62560 ) N ; + - _652_ sky130_fd_sc_hd__nand2_1 + PLACED ( 59340 70720 ) FS ; + - _653_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 57040 65280 ) FS ; + - _654_ sky130_fd_sc_hd__o21a_1 + PLACED ( 59340 40800 ) N ; + - _655_ sky130_fd_sc_hd__a21oi_2 + PLACED ( 63480 38080 ) FS ; + - _656_ sky130_fd_sc_hd__nor2_1 + PLACED ( 67620 32640 ) FS ; + - _657_ sky130_fd_sc_hd__nor2_1 + PLACED ( 70840 29920 ) N ; + - _658_ sky130_fd_sc_hd__nand2_1 + PLACED ( 68080 29920 ) N ; + - _659_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 63940 32640 ) FS ; + - _660_ sky130_fd_sc_hd__nand3_1 + PLACED ( 63940 27200 ) FS ; + - _661_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 68540 27200 ) FS ; + - _662_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 64400 29920 ) N ; + - _663_ sky130_fd_sc_hd__nor3_1 + PLACED ( 66240 29920 ) N ; + - _664_ sky130_fd_sc_hd__nand2_1 + PLACED ( 71300 27200 ) FS ; + - _665_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 65780 27200 ) FS ; + - _666_ sky130_fd_sc_hd__nor2_1 + PLACED ( 70840 46240 ) N ; + - _667_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 57500 48960 ) FS ; + - _668_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 65320 46240 ) N ; + - _669_ sky130_fd_sc_hd__nor2_1 + PLACED ( 55200 51680 ) N ; + - _670_ sky130_fd_sc_hd__maj3_1 + PLACED ( 57040 59840 ) FS ; + - _671_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 68540 48960 ) FS ; + - _672_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 65320 48960 ) FS ; + - _673_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 74060 48960 ) FS ; + - _674_ sky130_fd_sc_hd__a21o_1 + PLACED ( 72680 43520 ) FS ; + - _675_ sky130_fd_sc_hd__a32o_1 + PLACED ( 72680 46240 ) N ; + - _676_ sky130_fd_sc_hd__nand2_1 + PLACED ( 78200 43520 ) FS ; + - _677_ sky130_fd_sc_hd__mux2_1 + PLACED ( 76360 46240 ) N ; + - _678_ sky130_fd_sc_hd__nor3_1 + PLACED ( 76360 43520 ) FS ; + - _679_ sky130_fd_sc_hd__nand2_1 + PLACED ( 78200 40800 ) N ; + - _680_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 75440 40800 ) N ; + - _681_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 69000 54400 ) FS ; + - _682_ sky130_fd_sc_hd__a21o_1 + PLACED ( 66240 54400 ) FS ; + - _683_ sky130_fd_sc_hd__o21ai_1 + PLACED ( 70840 51680 ) N ; + - _684_ sky130_fd_sc_hd__or2_1 + PLACED ( 70840 57120 ) N ; + - _685_ sky130_fd_sc_hd__nand2_1 + PLACED ( 65780 62560 ) N ; + - _686_ sky130_fd_sc_hd__and2_0 + PLACED ( 66700 57120 ) N ; + - _687_ sky130_fd_sc_hd__o2111ai_1 + PLACED ( 67160 59840 ) FS ; + - _688_ sky130_fd_sc_hd__nand2_1 + PLACED ( 69000 57120 ) N ; + - _689_ sky130_fd_sc_hd__or3_1 + PLACED ( 70380 59840 ) FS ; + - _690_ sky130_fd_sc_hd__o311ai_1 + PLACED ( 67160 62560 ) N ; + - _691_ sky130_fd_sc_hd__nand2_1 + PLACED ( 66240 70720 ) FS ; + - _692_ sky130_fd_sc_hd__nor2_1 + PLACED ( 71300 62560 ) N ; + - _693_ sky130_fd_sc_hd__nor2_1 + PLACED ( 72220 65280 ) FS ; + - _694_ sky130_fd_sc_hd__nor3_1 + PLACED ( 66240 65280 ) FS ; + - _695_ sky130_fd_sc_hd__a2111o_1 + PLACED ( 68080 65280 ) FS ; + - _696_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 66700 68000 ) N ; + - _697_ sky130_fd_sc_hd__nand2_1 + PLACED ( 75440 32640 ) FS ; + - _698_ sky130_fd_sc_hd__nand3_1 + PLACED ( 74060 29920 ) N ; + - _699_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 75900 29920 ) N ; + - _700_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 76820 32640 ) FS ; + - _701_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80960 24480 ) N ; + - _702_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 78660 29920 ) N ; + - _703_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 48960 ) FS ; + - _704_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 54400 ) FS ; + - _705_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 70840 40800 ) N ; + - _706_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80500 46240 ) N ; + - _707_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 73600 59840 ) FS ; + - _708_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80040 32640 ) FS ; + - _709_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80040 35360 ) N ; + - _710_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 24840 10880 ) FS ; + - _711_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 28980 13600 ) N ; + - _712_ sky130_fd_sc_hd__nor2_1 + PLACED ( 42780 32640 ) FS ; + - _713_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 40020 27200 ) FS ; + - _714_ sky130_fd_sc_hd__nor2_1 + PLACED ( 31740 43520 ) FS ; + - _715_ sky130_fd_sc_hd__nor2_1 + PLACED ( 31280 40800 ) N ; + - _716_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 28060 40800 ) N ; + - _717_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 25300 32640 ) FS ; + - _718_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 22080 32640 ) FS ; + - _719_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 8280 40800 ) N ; + - _720_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 4600 40800 ) N ; + - _721_ sky130_fd_sc_hd__and2_0 + PLACED ( 18860 54400 ) FS ; + - _722_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 20240 51680 ) N ; + - _723_ sky130_fd_sc_hd__xor2_1 + PLACED ( 16100 68000 ) N ; + - _724_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 19320 68000 ) N ; + - _725_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 35360 ) N ; + - _726_ sky130_fd_sc_hd__xor2_1 + PLACED ( 58880 29920 ) N ; + - clkbuf_0_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 38180 43520 ) FS ; + - clkbuf_2_0__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 22080 35360 ) N ; + - clkbuf_2_1__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 23920 54400 ) FS ; + - clkbuf_2_2__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 58420 32640 ) FS ; + - clkbuf_2_3__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 57040 54400 ) FS ; + - clkload0 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 20700 35360 ) N ; + - clkload1 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 57040 32640 ) FS ; + - clkload2 sky130_fd_sc_hd__clkinv_2 + SOURCE TIMING + PLACED ( 54740 54400 ) FS ; + - ctrl.state.out\[1\]$_DFF_P_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 31280 68000 ) N ; + - ctrl.state.out\[2\]$_DFF_P_ sky130_fd_sc_hd__dfxtp_4 + PLACED ( 39100 65280 ) FS ; + - dpath.a_lt_b$in0\[0\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 5980 19040 ) N ; + - dpath.a_lt_b$in0\[10\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 46460 57120 ) N ; + - dpath.a_lt_b$in0\[11\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 56580 68000 ) N ; + - dpath.a_lt_b$in0\[12\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 63020 24480 ) N ; + - dpath.a_lt_b$in0\[13\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 76820 38080 ) FS ; + - dpath.a_lt_b$in0\[14\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 70840 68000 ) N ; + - dpath.a_lt_b$in0\[15\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 76820 27200 ) FS ; + - dpath.a_lt_b$in0\[1\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 21620 13600 ) N ; + - dpath.a_lt_b$in0\[2\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 36340 21760 ) FS ; + - dpath.a_lt_b$in0\[3\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 34960 51680 ) N ; + - dpath.a_lt_b$in0\[4\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 32640 ) FS ; + - dpath.a_lt_b$in0\[5\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 1840 43520 ) FS ; + - dpath.a_lt_b$in0\[6\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 29440 59840 ) FS ; + - dpath.a_lt_b$in0\[7\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 7820 68000 ) N ; + - dpath.a_lt_b$in0\[8\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 44620 27200 ) FS ; + - dpath.a_lt_b$in0\[9\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 53820 13600 ) N ; + - dpath.a_lt_b$in1\[0\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 3680 24480 ) N ; + - dpath.a_lt_b$in1\[10\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 34960 57120 ) N ; + - dpath.a_lt_b$in1\[11\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 47840 65280 ) FS ; + - dpath.a_lt_b$in1\[12\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 63020 16320 ) FS ; + - dpath.a_lt_b$in1\[13\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 77740 57120 ) N ; + - dpath.a_lt_b$in1\[14\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 72680 62560 ) N ; + - dpath.a_lt_b$in1\[15\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 73140 24480 ) N ; + - dpath.a_lt_b$in1\[1\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 14260 16320 ) FS ; + - dpath.a_lt_b$in1\[2\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 32660 16320 ) FS ; + - dpath.a_lt_b$in1\[3\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 29440 54400 ) FS ; + - dpath.a_lt_b$in1\[4\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 3680 35360 ) N ; + - dpath.a_lt_b$in1\[5\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 48960 ) FS ; + - dpath.a_lt_b$in1\[6\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 57120 ) N ; + - dpath.a_lt_b$in1\[7\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3680 59840 ) FS ; + - dpath.a_lt_b$in1\[8\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 43700 19040 ) N ; + - dpath.a_lt_b$in1\[9\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 49220 16320 ) FS ; + - input1 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 21760 ) FS ; + - input10 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 38640 2720 ) N ; + - input11 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 5520 46240 ) N ; + - input12 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 17480 2720 ) N ; + - input13 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 29920 ) N ; + - input14 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2760 46240 ) N ; + - input15 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 28980 78880 ) N ; + - input16 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 7360 65280 ) FS ; + - input17 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 45080 5440 ) FS ; + - input18 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 58880 5440 ) FS ; + - input19 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 47840 81600 ) FS ; + - input2 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 37260 81600 ) FS ; + - input20 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 59340 81600 ) FS ; + - input21 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 24480 ) N ; + - input22 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 40800 ) N ; + - input23 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 34960 5440 ) FS ; + - input24 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 66240 81600 ) FS ; + - input25 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 29920 ) N ; + - input26 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 54400 ) FS ; + - input27 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 35360 ) N ; + - input28 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 51680 ) N ; + - input29 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 59840 ) FS ; + - input3 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 52440 81600 ) FS ; + - input30 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 62560 ) N ; + - input31 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 45080 2720 ) N ; + - input32 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 51060 2720 ) N ; + - input33 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 37720 78880 ) N ; + - input34 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 35880 81600 ) FS ; + - input35 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 39100 81600 ) FS ; + - input4 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 66240 2720 ) N ; + - input5 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 81420 59840 ) FS ; + - input6 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 81420 65280 ) FS ; + - input7 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 79120 21760 ) FS ; + - input8 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 24480 ) N ; + - input9 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 25760 2720 ) N ; + - output36 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2300 65280 ) FS ; + - output37 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 5980 27200 ) FS ; + - output38 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82340 48960 ) FS ; + - output39 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 54400 ) FS ; + - output40 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 79580 40800 ) N ; + - output41 sky130_fd_sc_hd__clkbuf_2 + SOURCE TIMING + PLACED ( 83720 46240 ) N ; + - output42 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 59840 ) FS ; + - output43 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 84180 35360 ) N ; + - output44 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 29900 2720 ) N ; + - output45 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 40020 2720 ) N ; + - output46 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 40800 ) N ; + - output47 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 32640 ) FS ; + - output48 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2760 40800 ) N ; + - output49 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 13800 51680 ) N ; + - output50 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 20700 81600 ) FS ; + - output51 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 75440 38080 ) FS ; + - output52 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 80500 29920 ) N ; + - output53 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 39100 78880 ) N ; + - rebuffer1 sky130_fd_sc_hd__clkbuf_2 + SOURCE TIMING + PLACED ( 66240 51680 ) N ; + - rebuffer2 sky130_fd_sc_hd__dlymetal6s2s_1 + SOURCE TIMING + PLACED ( 45080 46240 ) N ; + - req_rdy$_DFF_P_ sky130_fd_sc_hd__dfxtp_4 + PLACED ( 41400 70720 ) FS ; +END COMPONENTS +PINS 54 ; + - clk + NET clk + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 71060 ) N ; + - req_msg[0] + NET req_msg[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 24820 ) N ; + - req_msg[10] + NET req_msg[10] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 37950 86597 ) N ; + - req_msg[11] + NET req_msg[11] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 53590 86597 ) N ; + - req_msg[12] + NET req_msg[12] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 67390 242 ) N ; + - req_msg[13] + NET req_msg[13] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 58820 ) N ; + - req_msg[14] + NET req_msg[14] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 65620 ) N ; + - req_msg[15] + NET req_msg[15] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 26180 ) N ; + - req_msg[16] + NET req_msg[16] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 23460 ) N ; + - req_msg[17] + NET req_msg[17] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 26910 242 ) N ; + - req_msg[18] + NET req_msg[18] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 38870 242 ) N ; + - req_msg[19] + NET req_msg[19] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 47940 ) N ; + - req_msg[1] + NET req_msg[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 17710 242 ) N ; + - req_msg[20] + NET req_msg[20] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 30260 ) N ; + - req_msg[21] + NET req_msg[21] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 45220 ) N ; + - req_msg[22] + NET req_msg[22] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 28750 86597 ) N ; + - req_msg[23] + NET req_msg[23] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 65620 ) N ; + - req_msg[24] + NET req_msg[24] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 47150 242 ) N ; + - req_msg[25] + NET req_msg[25] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 60030 242 ) N ; + - req_msg[26] + NET req_msg[26] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 48070 86597 ) N ; + - req_msg[27] + NET req_msg[27] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 59110 86597 ) N ; + - req_msg[28] + NET req_msg[28] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 27540 ) N ; + - req_msg[29] + NET req_msg[29] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 42500 ) N ; + - req_msg[2] + NET req_msg[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 36110 242 ) N ; + - req_msg[30] + NET req_msg[30] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 66470 86597 ) N ; + - req_msg[31] + NET req_msg[31] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 28900 ) N ; + - req_msg[3] + NET req_msg[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 54740 ) N ; + - req_msg[4] + NET req_msg[4] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 37060 ) N ; + - req_msg[5] + NET req_msg[5] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 52020 ) N ; + - req_msg[6] + NET req_msg[6] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 56100 ) N ; + - req_msg[7] + NET req_msg[7] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 64260 ) N ; + - req_msg[8] + NET req_msg[8] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 46230 242 ) N ; + - req_msg[9] + NET req_msg[9] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 50830 242 ) N ; + - req_rdy + NET req_rdy + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 68340 ) N ; + - req_val + NET req_val + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 40710 86597 ) N ; + - reset + NET reset + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 37030 86597 ) N ; + - resp_msg[0] + NET resp_msg[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 27540 ) N ; + - resp_msg[10] + NET resp_msg[10] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 50660 ) N ; + - resp_msg[11] + NET resp_msg[11] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 56100 ) N ; + - resp_msg[12] + NET resp_msg[12] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 41140 ) N ; + - resp_msg[13] + NET resp_msg[13] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 49300 ) N ; + - resp_msg[14] + NET resp_msg[14] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 60180 ) N ; + - resp_msg[15] + NET resp_msg[15] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 37060 ) N ; + - resp_msg[1] + NET resp_msg[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 29670 242 ) N ; + - resp_msg[2] + NET resp_msg[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 39790 242 ) N ; + - resp_msg[3] + NET resp_msg[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 42500 ) N ; + - resp_msg[4] + NET resp_msg[4] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 35700 ) N ; + - resp_msg[5] + NET resp_msg[5] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 43860 ) N ; + - resp_msg[6] + NET resp_msg[6] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 53380 ) N ; + - resp_msg[7] + NET resp_msg[7] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 21390 86597 ) N ; + - resp_msg[8] + NET resp_msg[8] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 39780 ) N ; + - resp_msg[9] + NET resp_msg[9] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 31620 ) N ; + - resp_rdy + NET resp_rdy + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 39790 86597 ) N ; + - resp_val + NET resp_val + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 38870 86597 ) N ; +END PINS +SPECIALNETS 2 ; + - VDD ( * VPWR ) + USE POWER + + ROUTED met5 1600 + SHAPE STRIPE ( 27720 84320 ) ( 83600 84320 ) + NEW met5 1600 + SHAPE STRIPE ( 27720 57120 ) ( 83600 57120 ) + NEW met5 1600 + SHAPE STRIPE ( 27720 29920 ) ( 83600 29920 ) + NEW met4 1600 + SHAPE STRIPE ( 82800 5200 ) ( 82800 85120 ) + NEW met4 1600 + SHAPE STRIPE ( 55660 5200 ) ( 55660 85120 ) + NEW met4 1600 + SHAPE STRIPE ( 28520 5200 ) ( 28520 85120 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 81600 ) ( 85560 81600 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 76160 ) ( 85560 76160 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 70720 ) ( 85560 70720 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 65280 ) ( 85560 65280 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 59840 ) ( 85560 59840 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 54400 ) ( 85560 54400 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 48960 ) ( 85560 48960 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 43520 ) ( 85560 43520 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 38080 ) ( 85560 38080 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 32640 ) ( 85560 32640 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 27200 ) ( 85560 27200 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 21760 ) ( 85560 21760 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 16320 ) ( 85560 16320 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 10880 ) ( 85560 10880 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 5440 ) ( 85560 5440 ) + NEW met4 0 + SHAPE STRIPE ( 82800 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 82800 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 82800 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met3 330 + SHAPE STRIPE ( 82010 81600 ) ( 83590 81600 ) + NEW met3 0 + SHAPE STRIPE ( 82800 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 81600 ) ( 83570 81600 ) + NEW met2 0 + SHAPE STRIPE ( 82800 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 76160 ) ( 83590 76160 ) + NEW met3 0 + SHAPE STRIPE ( 82800 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 76160 ) ( 83570 76160 ) + NEW met2 0 + SHAPE STRIPE ( 82800 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 70720 ) ( 83590 70720 ) + NEW met3 0 + SHAPE STRIPE ( 82800 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 70720 ) ( 83570 70720 ) + NEW met2 0 + SHAPE STRIPE ( 82800 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 65280 ) ( 83590 65280 ) + NEW met3 0 + SHAPE STRIPE ( 82800 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 65280 ) ( 83570 65280 ) + NEW met2 0 + SHAPE STRIPE ( 82800 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 59840 ) ( 83590 59840 ) + NEW met3 0 + SHAPE STRIPE ( 82800 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 59840 ) ( 83570 59840 ) + NEW met2 0 + SHAPE STRIPE ( 82800 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 54400 ) ( 83590 54400 ) + NEW met3 0 + SHAPE STRIPE ( 82800 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 54400 ) ( 83570 54400 ) + NEW met2 0 + SHAPE STRIPE ( 82800 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 48960 ) ( 83590 48960 ) + NEW met3 0 + SHAPE STRIPE ( 82800 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 48960 ) ( 83570 48960 ) + NEW met2 0 + SHAPE STRIPE ( 82800 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 43520 ) ( 83590 43520 ) + NEW met3 0 + SHAPE STRIPE ( 82800 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 43520 ) ( 83570 43520 ) + NEW met2 0 + SHAPE STRIPE ( 82800 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 38080 ) ( 83590 38080 ) + NEW met3 0 + SHAPE STRIPE ( 82800 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 38080 ) ( 83570 38080 ) + NEW met2 0 + SHAPE STRIPE ( 82800 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 32640 ) ( 83590 32640 ) + NEW met3 0 + SHAPE STRIPE ( 82800 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 32640 ) ( 83570 32640 ) + NEW met2 0 + SHAPE STRIPE ( 82800 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 27200 ) ( 83590 27200 ) + NEW met3 0 + SHAPE STRIPE ( 82800 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 27200 ) ( 83570 27200 ) + NEW met2 0 + SHAPE STRIPE ( 82800 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 21760 ) ( 83590 21760 ) + NEW met3 0 + SHAPE STRIPE ( 82800 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 21760 ) ( 83570 21760 ) + NEW met2 0 + SHAPE STRIPE ( 82800 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 16320 ) ( 83590 16320 ) + NEW met3 0 + SHAPE STRIPE ( 82800 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 16320 ) ( 83570 16320 ) + NEW met2 0 + SHAPE STRIPE ( 82800 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 10880 ) ( 83590 10880 ) + NEW met3 0 + SHAPE STRIPE ( 82800 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 10880 ) ( 83570 10880 ) + NEW met2 0 + SHAPE STRIPE ( 82800 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 5440 ) ( 83590 5440 ) + NEW met3 0 + SHAPE STRIPE ( 82800 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 5440 ) ( 83570 5440 ) + NEW met2 0 + SHAPE STRIPE ( 82800 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 5440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 81600 ) ( 56450 81600 ) + NEW met3 0 + SHAPE STRIPE ( 55660 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 81600 ) ( 56430 81600 ) + NEW met2 0 + SHAPE STRIPE ( 55660 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 76160 ) ( 56450 76160 ) + NEW met3 0 + SHAPE STRIPE ( 55660 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 76160 ) ( 56430 76160 ) + NEW met2 0 + SHAPE STRIPE ( 55660 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 70720 ) ( 56450 70720 ) + NEW met3 0 + SHAPE STRIPE ( 55660 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 70720 ) ( 56430 70720 ) + NEW met2 0 + SHAPE STRIPE ( 55660 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 65280 ) ( 56450 65280 ) + NEW met3 0 + SHAPE STRIPE ( 55660 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 65280 ) ( 56430 65280 ) + NEW met2 0 + SHAPE STRIPE ( 55660 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 59840 ) ( 56450 59840 ) + NEW met3 0 + SHAPE STRIPE ( 55660 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 59840 ) ( 56430 59840 ) + NEW met2 0 + SHAPE STRIPE ( 55660 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 54400 ) ( 56450 54400 ) + NEW met3 0 + SHAPE STRIPE ( 55660 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 54400 ) ( 56430 54400 ) + NEW met2 0 + SHAPE STRIPE ( 55660 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 48960 ) ( 56450 48960 ) + NEW met3 0 + SHAPE STRIPE ( 55660 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 48960 ) ( 56430 48960 ) + NEW met2 0 + SHAPE STRIPE ( 55660 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 43520 ) ( 56450 43520 ) + NEW met3 0 + SHAPE STRIPE ( 55660 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 43520 ) ( 56430 43520 ) + NEW met2 0 + SHAPE STRIPE ( 55660 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 38080 ) ( 56450 38080 ) + NEW met3 0 + SHAPE STRIPE ( 55660 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 38080 ) ( 56430 38080 ) + NEW met2 0 + SHAPE STRIPE ( 55660 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 32640 ) ( 56450 32640 ) + NEW met3 0 + SHAPE STRIPE ( 55660 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 32640 ) ( 56430 32640 ) + NEW met2 0 + SHAPE STRIPE ( 55660 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 27200 ) ( 56450 27200 ) + NEW met3 0 + SHAPE STRIPE ( 55660 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 27200 ) ( 56430 27200 ) + NEW met2 0 + SHAPE STRIPE ( 55660 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 21760 ) ( 56450 21760 ) + NEW met3 0 + SHAPE STRIPE ( 55660 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 21760 ) ( 56430 21760 ) + NEW met2 0 + SHAPE STRIPE ( 55660 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 16320 ) ( 56450 16320 ) + NEW met3 0 + SHAPE STRIPE ( 55660 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 16320 ) ( 56430 16320 ) + NEW met2 0 + SHAPE STRIPE ( 55660 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 10880 ) ( 56450 10880 ) + NEW met3 0 + SHAPE STRIPE ( 55660 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 10880 ) ( 56430 10880 ) + NEW met2 0 + SHAPE STRIPE ( 55660 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 5440 ) ( 56450 5440 ) + NEW met3 0 + SHAPE STRIPE ( 55660 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 5440 ) ( 56430 5440 ) + NEW met2 0 + SHAPE STRIPE ( 55660 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 5440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 81600 ) ( 29310 81600 ) + NEW met3 0 + SHAPE STRIPE ( 28520 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 81600 ) ( 29290 81600 ) + NEW met2 0 + SHAPE STRIPE ( 28520 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 76160 ) ( 29310 76160 ) + NEW met3 0 + SHAPE STRIPE ( 28520 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 76160 ) ( 29290 76160 ) + NEW met2 0 + SHAPE STRIPE ( 28520 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 70720 ) ( 29310 70720 ) + NEW met3 0 + SHAPE STRIPE ( 28520 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 70720 ) ( 29290 70720 ) + NEW met2 0 + SHAPE STRIPE ( 28520 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 65280 ) ( 29310 65280 ) + NEW met3 0 + SHAPE STRIPE ( 28520 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 65280 ) ( 29290 65280 ) + NEW met2 0 + SHAPE STRIPE ( 28520 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 59840 ) ( 29310 59840 ) + NEW met3 0 + SHAPE STRIPE ( 28520 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 59840 ) ( 29290 59840 ) + NEW met2 0 + SHAPE STRIPE ( 28520 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 54400 ) ( 29310 54400 ) + NEW met3 0 + SHAPE STRIPE ( 28520 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 54400 ) ( 29290 54400 ) + NEW met2 0 + SHAPE STRIPE ( 28520 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 48960 ) ( 29310 48960 ) + NEW met3 0 + SHAPE STRIPE ( 28520 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 48960 ) ( 29290 48960 ) + NEW met2 0 + SHAPE STRIPE ( 28520 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 43520 ) ( 29310 43520 ) + NEW met3 0 + SHAPE STRIPE ( 28520 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 43520 ) ( 29290 43520 ) + NEW met2 0 + SHAPE STRIPE ( 28520 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 38080 ) ( 29310 38080 ) + NEW met3 0 + SHAPE STRIPE ( 28520 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 38080 ) ( 29290 38080 ) + NEW met2 0 + SHAPE STRIPE ( 28520 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 32640 ) ( 29310 32640 ) + NEW met3 0 + SHAPE STRIPE ( 28520 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 32640 ) ( 29290 32640 ) + NEW met2 0 + SHAPE STRIPE ( 28520 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 27200 ) ( 29310 27200 ) + NEW met3 0 + SHAPE STRIPE ( 28520 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 27200 ) ( 29290 27200 ) + NEW met2 0 + SHAPE STRIPE ( 28520 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 21760 ) ( 29310 21760 ) + NEW met3 0 + SHAPE STRIPE ( 28520 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 21760 ) ( 29290 21760 ) + NEW met2 0 + SHAPE STRIPE ( 28520 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 16320 ) ( 29310 16320 ) + NEW met3 0 + SHAPE STRIPE ( 28520 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 16320 ) ( 29290 16320 ) + NEW met2 0 + SHAPE STRIPE ( 28520 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 10880 ) ( 29310 10880 ) + NEW met3 0 + SHAPE STRIPE ( 28520 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 10880 ) ( 29290 10880 ) + NEW met2 0 + SHAPE STRIPE ( 28520 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 5440 ) ( 29310 5440 ) + NEW met3 0 + SHAPE STRIPE ( 28520 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 5440 ) ( 29290 5440 ) + NEW met2 0 + SHAPE STRIPE ( 28520 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 5440 ) via2_3_1600_480_1_5_320_320 ; + - VSS ( * VGND ) + USE GROUND + + ROUTED met5 1600 + SHAPE STRIPE ( 14150 70720 ) ( 70030 70720 ) + NEW met5 1600 + SHAPE STRIPE ( 14150 43520 ) ( 70030 43520 ) + NEW met5 1600 + SHAPE STRIPE ( 14150 16320 ) ( 70030 16320 ) + NEW met4 1600 + SHAPE STRIPE ( 69230 2480 ) ( 69230 84560 ) + NEW met4 1600 + SHAPE STRIPE ( 42090 2480 ) ( 42090 84560 ) + NEW met4 1600 + SHAPE STRIPE ( 14950 2480 ) ( 14950 84560 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 84320 ) ( 85560 84320 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 78880 ) ( 85560 78880 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 73440 ) ( 85560 73440 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 68000 ) ( 85560 68000 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 62560 ) ( 85560 62560 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 57120 ) ( 85560 57120 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 51680 ) ( 85560 51680 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 46240 ) ( 85560 46240 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 40800 ) ( 85560 40800 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 35360 ) ( 85560 35360 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 29920 ) ( 85560 29920 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 24480 ) ( 85560 24480 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 19040 ) ( 85560 19040 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 13600 ) ( 85560 13600 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 8160 ) ( 85560 8160 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 2720 ) ( 85560 2720 ) + NEW met4 0 + SHAPE STRIPE ( 69230 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 69230 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 69230 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met3 330 + SHAPE STRIPE ( 68440 84320 ) ( 70020 84320 ) + NEW met3 0 + SHAPE STRIPE ( 69230 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 84320 ) ( 70000 84320 ) + NEW met2 0 + SHAPE STRIPE ( 69230 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 78880 ) ( 70020 78880 ) + NEW met3 0 + SHAPE STRIPE ( 69230 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 78880 ) ( 70000 78880 ) + NEW met2 0 + SHAPE STRIPE ( 69230 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 73440 ) ( 70020 73440 ) + NEW met3 0 + SHAPE STRIPE ( 69230 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 73440 ) ( 70000 73440 ) + NEW met2 0 + SHAPE STRIPE ( 69230 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 68000 ) ( 70020 68000 ) + NEW met3 0 + SHAPE STRIPE ( 69230 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 68000 ) ( 70000 68000 ) + NEW met2 0 + SHAPE STRIPE ( 69230 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 62560 ) ( 70020 62560 ) + NEW met3 0 + SHAPE STRIPE ( 69230 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 62560 ) ( 70000 62560 ) + NEW met2 0 + SHAPE STRIPE ( 69230 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 57120 ) ( 70020 57120 ) + NEW met3 0 + SHAPE STRIPE ( 69230 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 57120 ) ( 70000 57120 ) + NEW met2 0 + SHAPE STRIPE ( 69230 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 51680 ) ( 70020 51680 ) + NEW met3 0 + SHAPE STRIPE ( 69230 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 51680 ) ( 70000 51680 ) + NEW met2 0 + SHAPE STRIPE ( 69230 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 46240 ) ( 70020 46240 ) + NEW met3 0 + SHAPE STRIPE ( 69230 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 46240 ) ( 70000 46240 ) + NEW met2 0 + SHAPE STRIPE ( 69230 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 40800 ) ( 70020 40800 ) + NEW met3 0 + SHAPE STRIPE ( 69230 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 40800 ) ( 70000 40800 ) + NEW met2 0 + SHAPE STRIPE ( 69230 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 35360 ) ( 70020 35360 ) + NEW met3 0 + SHAPE STRIPE ( 69230 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 35360 ) ( 70000 35360 ) + NEW met2 0 + SHAPE STRIPE ( 69230 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 29920 ) ( 70020 29920 ) + NEW met3 0 + SHAPE STRIPE ( 69230 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 29920 ) ( 70000 29920 ) + NEW met2 0 + SHAPE STRIPE ( 69230 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 24480 ) ( 70020 24480 ) + NEW met3 0 + SHAPE STRIPE ( 69230 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 24480 ) ( 70000 24480 ) + NEW met2 0 + SHAPE STRIPE ( 69230 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 19040 ) ( 70020 19040 ) + NEW met3 0 + SHAPE STRIPE ( 69230 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 19040 ) ( 70000 19040 ) + NEW met2 0 + SHAPE STRIPE ( 69230 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 13600 ) ( 70020 13600 ) + NEW met3 0 + SHAPE STRIPE ( 69230 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 13600 ) ( 70000 13600 ) + NEW met2 0 + SHAPE STRIPE ( 69230 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 8160 ) ( 70020 8160 ) + NEW met3 0 + SHAPE STRIPE ( 69230 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 8160 ) ( 70000 8160 ) + NEW met2 0 + SHAPE STRIPE ( 69230 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 2720 ) ( 70020 2720 ) + NEW met3 0 + SHAPE STRIPE ( 69230 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 2720 ) ( 70000 2720 ) + NEW met2 0 + SHAPE STRIPE ( 69230 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 2720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 84320 ) ( 42880 84320 ) + NEW met3 0 + SHAPE STRIPE ( 42090 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 84320 ) ( 42860 84320 ) + NEW met2 0 + SHAPE STRIPE ( 42090 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 78880 ) ( 42880 78880 ) + NEW met3 0 + SHAPE STRIPE ( 42090 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 78880 ) ( 42860 78880 ) + NEW met2 0 + SHAPE STRIPE ( 42090 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 73440 ) ( 42880 73440 ) + NEW met3 0 + SHAPE STRIPE ( 42090 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 73440 ) ( 42860 73440 ) + NEW met2 0 + SHAPE STRIPE ( 42090 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 68000 ) ( 42880 68000 ) + NEW met3 0 + SHAPE STRIPE ( 42090 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 68000 ) ( 42860 68000 ) + NEW met2 0 + SHAPE STRIPE ( 42090 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 62560 ) ( 42880 62560 ) + NEW met3 0 + SHAPE STRIPE ( 42090 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 62560 ) ( 42860 62560 ) + NEW met2 0 + SHAPE STRIPE ( 42090 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 57120 ) ( 42880 57120 ) + NEW met3 0 + SHAPE STRIPE ( 42090 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 57120 ) ( 42860 57120 ) + NEW met2 0 + SHAPE STRIPE ( 42090 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 51680 ) ( 42880 51680 ) + NEW met3 0 + SHAPE STRIPE ( 42090 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 51680 ) ( 42860 51680 ) + NEW met2 0 + SHAPE STRIPE ( 42090 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 46240 ) ( 42880 46240 ) + NEW met3 0 + SHAPE STRIPE ( 42090 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 46240 ) ( 42860 46240 ) + NEW met2 0 + SHAPE STRIPE ( 42090 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 40800 ) ( 42880 40800 ) + NEW met3 0 + SHAPE STRIPE ( 42090 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 40800 ) ( 42860 40800 ) + NEW met2 0 + SHAPE STRIPE ( 42090 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 35360 ) ( 42880 35360 ) + NEW met3 0 + SHAPE STRIPE ( 42090 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 35360 ) ( 42860 35360 ) + NEW met2 0 + SHAPE STRIPE ( 42090 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 29920 ) ( 42880 29920 ) + NEW met3 0 + SHAPE STRIPE ( 42090 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 29920 ) ( 42860 29920 ) + NEW met2 0 + SHAPE STRIPE ( 42090 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 24480 ) ( 42880 24480 ) + NEW met3 0 + SHAPE STRIPE ( 42090 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 24480 ) ( 42860 24480 ) + NEW met2 0 + SHAPE STRIPE ( 42090 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 19040 ) ( 42880 19040 ) + NEW met3 0 + SHAPE STRIPE ( 42090 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 19040 ) ( 42860 19040 ) + NEW met2 0 + SHAPE STRIPE ( 42090 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 13600 ) ( 42880 13600 ) + NEW met3 0 + SHAPE STRIPE ( 42090 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 13600 ) ( 42860 13600 ) + NEW met2 0 + SHAPE STRIPE ( 42090 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 8160 ) ( 42880 8160 ) + NEW met3 0 + SHAPE STRIPE ( 42090 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 8160 ) ( 42860 8160 ) + NEW met2 0 + SHAPE STRIPE ( 42090 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 2720 ) ( 42880 2720 ) + NEW met3 0 + SHAPE STRIPE ( 42090 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 2720 ) ( 42860 2720 ) + NEW met2 0 + SHAPE STRIPE ( 42090 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 2720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 84320 ) ( 15740 84320 ) + NEW met3 0 + SHAPE STRIPE ( 14950 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 84320 ) ( 15720 84320 ) + NEW met2 0 + SHAPE STRIPE ( 14950 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 78880 ) ( 15740 78880 ) + NEW met3 0 + SHAPE STRIPE ( 14950 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 78880 ) ( 15720 78880 ) + NEW met2 0 + SHAPE STRIPE ( 14950 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 73440 ) ( 15740 73440 ) + NEW met3 0 + SHAPE STRIPE ( 14950 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 73440 ) ( 15720 73440 ) + NEW met2 0 + SHAPE STRIPE ( 14950 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 68000 ) ( 15740 68000 ) + NEW met3 0 + SHAPE STRIPE ( 14950 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 68000 ) ( 15720 68000 ) + NEW met2 0 + SHAPE STRIPE ( 14950 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 62560 ) ( 15740 62560 ) + NEW met3 0 + SHAPE STRIPE ( 14950 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 62560 ) ( 15720 62560 ) + NEW met2 0 + SHAPE STRIPE ( 14950 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 57120 ) ( 15740 57120 ) + NEW met3 0 + SHAPE STRIPE ( 14950 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 57120 ) ( 15720 57120 ) + NEW met2 0 + SHAPE STRIPE ( 14950 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 51680 ) ( 15740 51680 ) + NEW met3 0 + SHAPE STRIPE ( 14950 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 51680 ) ( 15720 51680 ) + NEW met2 0 + SHAPE STRIPE ( 14950 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 46240 ) ( 15740 46240 ) + NEW met3 0 + SHAPE STRIPE ( 14950 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 46240 ) ( 15720 46240 ) + NEW met2 0 + SHAPE STRIPE ( 14950 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 40800 ) ( 15740 40800 ) + NEW met3 0 + SHAPE STRIPE ( 14950 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 40800 ) ( 15720 40800 ) + NEW met2 0 + SHAPE STRIPE ( 14950 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 35360 ) ( 15740 35360 ) + NEW met3 0 + SHAPE STRIPE ( 14950 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 35360 ) ( 15720 35360 ) + NEW met2 0 + SHAPE STRIPE ( 14950 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 29920 ) ( 15740 29920 ) + NEW met3 0 + SHAPE STRIPE ( 14950 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 29920 ) ( 15720 29920 ) + NEW met2 0 + SHAPE STRIPE ( 14950 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 24480 ) ( 15740 24480 ) + NEW met3 0 + SHAPE STRIPE ( 14950 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 24480 ) ( 15720 24480 ) + NEW met2 0 + SHAPE STRIPE ( 14950 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 19040 ) ( 15740 19040 ) + NEW met3 0 + SHAPE STRIPE ( 14950 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 19040 ) ( 15720 19040 ) + NEW met2 0 + SHAPE STRIPE ( 14950 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 13600 ) ( 15740 13600 ) + NEW met3 0 + SHAPE STRIPE ( 14950 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 13600 ) ( 15720 13600 ) + NEW met2 0 + SHAPE STRIPE ( 14950 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 8160 ) ( 15740 8160 ) + NEW met3 0 + SHAPE STRIPE ( 14950 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 8160 ) ( 15720 8160 ) + NEW met2 0 + SHAPE STRIPE ( 14950 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 2720 ) ( 15740 2720 ) + NEW met3 0 + SHAPE STRIPE ( 14950 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 2720 ) ( 15720 2720 ) + NEW met2 0 + SHAPE STRIPE ( 14950 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 2720 ) via2_3_1600_480_1_5_320_320 ; +END SPECIALNETS +NETS 475 ; + - _000_ ( req_rdy$_DFF_P_ D ) ( _380_ Y ) + USE SIGNAL ; + - _001_ ( ctrl.state.out\[1\]$_DFF_P_ D ) ( _384_ Y ) + USE SIGNAL ; + - _002_ ( ctrl.state.out\[2\]$_DFF_P_ D ) ( _373_ Y ) + USE SIGNAL ; + - _003_ ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ D ) ( _451_ Y ) + USE SIGNAL ; + - _004_ ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ D ) ( _461_ Y ) + USE SIGNAL ; + - _005_ ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ D ) ( _465_ Y ) + USE SIGNAL ; + - _006_ ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ D ) ( _472_ Y ) + USE SIGNAL ; + - _007_ ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ D ) ( _477_ Y ) + USE SIGNAL ; + - _008_ ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ D ) ( _482_ Y ) + USE SIGNAL ; + - _009_ ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ D ) ( _485_ Y ) + USE SIGNAL ; + - _010_ ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ D ) ( _490_ Y ) + USE SIGNAL ; + - _011_ ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ D ) ( _494_ Y ) + USE SIGNAL ; + - _012_ ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ D ) ( _497_ Y ) + USE SIGNAL ; + - _013_ ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ D ) ( _502_ Y ) + USE SIGNAL ; + - _014_ ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ D ) ( _506_ Y ) + USE SIGNAL ; + - _015_ ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ D ) ( _509_ Y ) + USE SIGNAL ; + - _016_ ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ D ) ( _514_ Y ) + USE SIGNAL ; + - _017_ ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ D ) ( _517_ Y ) + USE SIGNAL ; + - _018_ ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ D ) ( _520_ Y ) + USE SIGNAL ; + - _019_ ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ D ) ( _526_ Y ) + USE SIGNAL ; + - _020_ ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ D ) ( _537_ Y ) + USE SIGNAL ; + - _021_ ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ D ) ( _547_ Y ) + USE SIGNAL ; + - _022_ ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ D ) ( _558_ Y ) + USE SIGNAL ; + - _023_ ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ D ) ( _573_ Y ) + USE SIGNAL ; + - _024_ ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ D ) ( _583_ Y ) + USE SIGNAL ; + - _025_ ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ D ) ( _596_ Y ) + USE SIGNAL ; + - _026_ ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ D ) ( _608_ Y ) + USE SIGNAL ; + - _027_ ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ D ) ( _617_ Y ) + USE SIGNAL ; + - _028_ ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ D ) ( _628_ Y ) + USE SIGNAL ; + - _029_ ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ D ) ( _643_ Y ) + USE SIGNAL ; + - _030_ ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ D ) ( _653_ Y ) + USE SIGNAL ; + - _031_ ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ D ) ( _665_ Y ) + USE SIGNAL ; + - _032_ ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ D ) ( _680_ Y ) + USE SIGNAL ; + - _033_ ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ D ) ( _696_ Y ) + USE SIGNAL ; + - _034_ ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ D ) ( _702_ Y ) + USE SIGNAL ; + - _038_ ( _368_ A ) ( _358_ Y ) + USE SIGNAL ; + - _041_ ( _368_ B ) ( _361_ Y ) + USE SIGNAL ; + - _044_ ( _368_ C ) ( _364_ Y ) + USE SIGNAL ; + - _047_ ( _368_ D ) ( _367_ Y ) + USE SIGNAL ; + - _048_ ( _382_ B ) ( _372_ B1 ) ( _368_ Y ) + USE SIGNAL ; + - _052_ ( _373_ B ) ( _372_ Y ) + USE SIGNAL ; + - _053_ ( _468_ B ) ( _474_ B ) ( _479_ B ) ( _487_ B ) ( _491_ B ) ( _499_ B ) ( _511_ B ) + ( _550_ B ) ( _622_ A ) ( _657_ A ) ( _382_ A ) ( _458_ B ) ( _462_ B ) ( _518_ A2 ) ( _576_ C1 ) + ( _615_ A2 ) ( _620_ C1 ) ( _635_ A1 ) ( _647_ A2 ) ( _663_ B ) ( _377_ A ) ( _533_ B1 ) ( _543_ B1 ) + ( _588_ B ) ( _600_ B ) ( _604_ B ) ( _674_ B1 ) ( _694_ B ) ( _541_ B ) ( _374_ Y ) + USE SIGNAL ; + - _055_ ( _696_ A1 ) ( _651_ B1 ) ( _643_ A1 ) ( _642_ A ) ( _596_ A1 ) ( _595_ A ) ( _380_ A1 ) + ( _377_ B ) ( _376_ Y ) + USE SIGNAL ; + - _056_ ( _383_ A2 ) ( _380_ B1 ) ( _378_ Y ) + USE SIGNAL ; + - _057_ ( _380_ C1 ) ( _379_ Y ) + USE SIGNAL ; + - _059_ ( _383_ B1 ) ( _382_ Y ) + USE SIGNAL ; + - _060_ ( _384_ B ) ( _383_ Y ) + USE SIGNAL ; + - _062_ ( _699_ A1 ) ( _445_ B ) ( _387_ Y ) + USE SIGNAL ; + - _063_ ( _671_ B1 ) ( _666_ A ) ( _434_ C ) ( _394_ A ) ( _388_ Y ) + USE SIGNAL ; + - _064_ ( _666_ B ) ( _394_ B ) ( _389_ Y ) + USE SIGNAL ; + - _065_ ( _688_ B ) ( _435_ B1 ) ( _392_ A_N ) ( _390_ Y ) + USE SIGNAL ; + - _066_ ( _435_ A1 ) ( _392_ B ) ( _391_ Y ) + USE SIGNAL ; + - _067_ ( _707_ A ) ( _394_ C ) ( _392_ Y ) + USE SIGNAL ; + - _068_ ( _706_ A ) ( _394_ D ) ( _393_ X ) + USE SIGNAL ; + - _069_ ( _443_ C1 ) ( _404_ A ) ( _394_ Y ) + USE SIGNAL ; + - _070_ ( _703_ A ) ( _398_ A ) ( _395_ Y ) + USE SIGNAL ; + - _072_ ( _704_ A ) ( _667_ C1 ) ( _398_ B ) ( _397_ Y ) + USE SIGNAL ; + - _073_ ( _403_ A ) ( _398_ Y ) + USE SIGNAL ; + - _074_ ( _725_ A ) ( _403_ B ) ( _399_ X ) + USE SIGNAL ; + - _075_ ( _440_ B1 ) ( _402_ A ) ( _400_ Y ) + USE SIGNAL ; + - _076_ ( _632_ B ) ( _629_ B ) ( _402_ B ) ( _401_ Y ) + USE SIGNAL ; + - _077_ ( _726_ A ) ( _403_ C ) ( _402_ Y ) + USE SIGNAL ; + - _078_ ( _655_ A1 ) ( _404_ B ) ( _403_ Y ) + USE SIGNAL ; + - _079_ ( _455_ A1 ) ( _444_ A1 ) ( _404_ Y ) + USE SIGNAL ; + - _080_ ( _560_ A2 ) ( _544_ B2 ) ( _462_ A ) ( _424_ B ) ( _406_ B ) ( _405_ Y ) + USE SIGNAL ; + - _081_ ( _425_ A2 ) ( _712_ A ) ( _548_ A1 ) ( _412_ A1 ) ( _406_ Y ) + USE SIGNAL ; + - _082_ ( _538_ B1 ) ( _409_ A ) ( _407_ Y ) + USE SIGNAL ; + - _083_ ( _538_ A2 ) ( _530_ B ) ( _409_ C ) ( _408_ Y ) + USE SIGNAL ; + - _084_ ( _425_ A1 ) ( _548_ A2 ) ( _542_ A2 ) ( _541_ C ) ( _412_ A2 ) ( _409_ X ) + USE SIGNAL ; + - _085_ ( _712_ B ) ( _411_ B ) ( _410_ Y ) + USE SIGNAL ; + - _086_ ( _412_ B1 ) ( _411_ Y ) + USE SIGNAL ; + - _087_ ( _633_ A1 ) ( _630_ A1 ) ( _610_ A1 ) ( _552_ A2 ) ( _432_ A1 ) ( _412_ Y ) + USE SIGNAL ; + - _089_ ( _721_ A ) ( _416_ A ) ( _414_ Y ) + USE SIGNAL ; + - _090_ ( _605_ A ) ( _416_ B ) ( _415_ Y ) + USE SIGNAL ; + - _091_ ( _431_ A2 ) ( _423_ A_N ) ( _416_ Y ) + USE SIGNAL ; + - _092_ ( _562_ B1 ) ( _423_ B ) ( _417_ Y ) + USE SIGNAL ; + - _094_ ( _717_ A ) ( _574_ A1 ) ( _422_ A2 ) ( _420_ B ) ( _419_ Y ) + USE SIGNAL ; + - _095_ ( _423_ C ) ( _420_ Y ) + USE SIGNAL ; + - _096_ ( _586_ A ) ( _585_ A ) ( _427_ A ) ( _422_ B1 ) ( _421_ Y ) + USE SIGNAL ; + - _097_ ( _423_ D ) ( _422_ Y ) + USE SIGNAL ; + - _098_ ( _633_ A2 ) ( _630_ A2 ) ( _610_ A2 ) ( _432_ A2 ) ( _423_ X ) + USE SIGNAL ; + - _099_ ( _548_ B1 ) ( _425_ B1 ) ( _424_ Y ) + USE SIGNAL ; + - _100_ ( rebuffer2 A ) ( _633_ A3 ) ( _630_ A3 ) ( _610_ A3 ) ( _425_ Y ) + USE SIGNAL ; + - _101_ ( _717_ B_N ) ( _574_ B1 ) ( _427_ C ) ( _426_ Y ) + USE SIGNAL ; + - _102_ ( _431_ A1 ) ( _427_ X ) + USE SIGNAL ; + - _103_ ( _604_ A ) ( _601_ A1 ) ( _430_ A ) ( _428_ Y ) + USE SIGNAL ; + - _104_ ( _721_ B ) ( _430_ C ) ( _429_ Y ) + USE SIGNAL ; + - _105_ ( _431_ B1 ) ( _430_ X ) + USE SIGNAL ; + - _106_ ( _633_ B1 ) ( _630_ B1 ) ( _610_ B1 ) ( _432_ B1 ) ( _431_ Y ) + USE SIGNAL ; + - _107_ ( _618_ C ) ( _613_ A2 ) ( _609_ A2 ) ( _455_ A2 ) ( _444_ A2 ) ( _432_ X ) + USE SIGNAL ; + - _108_ ( _678_ A ) ( _675_ A1 ) ( _674_ A1 ) ( _434_ A ) ( _433_ Y ) + USE SIGNAL ; + - _109_ ( _435_ A2 ) ( _434_ X ) + USE SIGNAL ; + - _110_ ( _455_ B1 ) ( _444_ B1 ) ( _435_ Y ) + USE SIGNAL ; + - _111_ ( _654_ A1 ) ( _443_ A1 ) ( _436_ Y ) + USE SIGNAL ; + - _112_ ( _667_ A1 ) ( _634_ A ) ( _441_ A ) ( _437_ Y ) + USE SIGNAL ; + - _113_ ( _618_ B ) ( _614_ B2 ) ( _491_ A ) ( _440_ A2 ) ( _438_ Y ) + USE SIGNAL ; + - _114_ ( _440_ A3 ) ( _439_ Y ) + USE SIGNAL ; + - _115_ ( _636_ A ) ( _634_ B ) ( _441_ C ) ( _440_ Y ) + USE SIGNAL ; + - _116_ ( _654_ A2 ) ( _443_ A2 ) ( _441_ X ) + USE SIGNAL ; + - _117_ ( _654_ B1 ) ( _443_ B1 ) ( _442_ Y ) + USE SIGNAL ; + - _118_ ( _455_ C1 ) ( _444_ C1 ) ( _443_ Y ) + USE SIGNAL ; + - _119_ ( _709_ A ) ( _445_ C ) ( _444_ X ) + USE SIGNAL ; + - _120_ ( _524_ B1 ) ( _534_ A2 ) ( _544_ A2 ) ( _605_ B ) ( _609_ B1 ) ( _640_ B ) ( _645_ B1 ) + ( _651_ A2 ) ( _662_ B1 ) ( _678_ B ) ( _603_ B1 ) ( _600_ C ) ( _549_ B1 ) ( _446_ B ) ( _445_ X ) + USE SIGNAL ; + - _121_ ( _448_ S ) ( _459_ A2 ) ( _463_ A2 ) ( _469_ A2 ) ( _475_ A2 ) ( _480_ A2 ) ( _488_ A2 ) + ( _492_ A2 ) ( _500_ A2 ) ( _512_ A2 ) ( _521_ A2 ) ( _515_ S ) ( _507_ S ) ( _504_ S ) ( _495_ S ) + ( _483_ S ) ( _446_ Y ) + USE SIGNAL ; + - _123_ ( _451_ A2 ) ( _448_ Y ) + USE SIGNAL ; + - _125_ ( _451_ B1 ) ( _450_ Y ) + USE SIGNAL ; + - _127_ ( _534_ B2 ) ( _531_ A ) ( _458_ A ) ( _453_ Y ) + USE SIGNAL ; + - _128_ ( _698_ A ) ( _456_ A ) ( _454_ Y ) + USE SIGNAL ; + - _129_ ( _698_ C ) ( _697_ B ) ( _456_ C ) ( _455_ Y ) + USE SIGNAL ; + - _130_ ( _529_ B1 ) ( _540_ B1 ) ( _564_ B1 ) ( _576_ A1 ) ( _592_ B1 ) ( _614_ A2 ) ( _620_ A1 ) + ( _625_ B ) ( _660_ B ) ( _687_ C1 ) ( _458_ C ) ( _462_ C ) ( _468_ C ) ( _474_ C ) ( _479_ C ) + ( _487_ C ) ( _491_ C ) ( _499_ C ) ( _511_ C ) ( _590_ B ) ( _694_ C ) ( _685_ B ) ( _673_ B1 ) + ( _637_ B1 ) ( _581_ A2 ) ( _570_ A2 ) ( _556_ B ) ( _456_ X ) + USE SIGNAL ; + - _132_ ( _459_ B1 ) ( _458_ Y ) + USE SIGNAL ; + - _133_ ( _461_ A2 ) ( _459_ Y ) + USE SIGNAL ; + - _134_ ( _461_ B1 ) ( _460_ Y ) + USE SIGNAL ; + - _135_ ( _463_ B1 ) ( _462_ Y ) + USE SIGNAL ; + - _136_ ( _465_ A2 ) ( _463_ Y ) + USE SIGNAL ; + - _137_ ( _465_ B1 ) ( _464_ Y ) + USE SIGNAL ; + - _138_ ( _714_ B ) ( _554_ A ) ( _468_ A ) ( _466_ Y ) + USE SIGNAL ; + - _140_ ( _469_ B1 ) ( _468_ Y ) + USE SIGNAL ; + - _141_ ( _472_ A2 ) ( _469_ Y ) + USE SIGNAL ; + - _143_ ( _472_ B1 ) ( _471_ Y ) + USE SIGNAL ; + - _144_ ( _567_ A1 ) ( _566_ A ) ( _474_ A ) ( _473_ Y ) + USE SIGNAL ; + - _145_ ( _475_ B1 ) ( _474_ Y ) + USE SIGNAL ; + - _146_ ( _477_ A2 ) ( _475_ Y ) + USE SIGNAL ; + - _147_ ( _477_ B1 ) ( _476_ Y ) + USE SIGNAL ; + - _148_ ( _581_ B2 ) ( _578_ A ) ( _479_ A ) ( _478_ Y ) + USE SIGNAL ; + - _149_ ( _480_ B1 ) ( _479_ Y ) + USE SIGNAL ; + - _150_ ( _482_ A2 ) ( _480_ Y ) + USE SIGNAL ; + - _151_ ( _482_ B1 ) ( _481_ Y ) + USE SIGNAL ; + - _152_ ( _485_ A2 ) ( _483_ Y ) + USE SIGNAL ; + - _153_ ( _485_ B1 ) ( _484_ Y ) + USE SIGNAL ; + - _154_ ( _603_ A1 ) ( _487_ A ) ( _486_ Y ) + USE SIGNAL ; + - _155_ ( _488_ B1 ) ( _487_ Y ) + USE SIGNAL ; + - _156_ ( _490_ A2 ) ( _488_ Y ) + USE SIGNAL ; + - _157_ ( _490_ B1 ) ( _489_ Y ) + USE SIGNAL ; + - _158_ ( _492_ B1 ) ( _491_ Y ) + USE SIGNAL ; + - _159_ ( _494_ A2 ) ( _492_ Y ) + USE SIGNAL ; + - _160_ ( _494_ B1 ) ( _493_ Y ) + USE SIGNAL ; + - _161_ ( _497_ A2 ) ( _495_ Y ) + USE SIGNAL ; + - _162_ ( _497_ B1 ) ( _496_ Y ) + USE SIGNAL ; + - _163_ ( _669_ B ) ( _644_ B ) ( _639_ A1 ) ( _638_ A ) ( _499_ A ) ( _498_ Y ) + USE SIGNAL ; + - _164_ ( _500_ B1 ) ( _499_ Y ) + USE SIGNAL ; + - _165_ ( _502_ A2 ) ( _500_ Y ) + USE SIGNAL ; + - _166_ ( _502_ B1 ) ( _501_ Y ) + USE SIGNAL ; + - _168_ ( _506_ A2 ) ( _504_ Y ) + USE SIGNAL ; + - _169_ ( _506_ B1 ) ( _505_ Y ) + USE SIGNAL ; + - _170_ ( _509_ A2 ) ( _507_ Y ) + USE SIGNAL ; + - _171_ ( _509_ B1 ) ( _508_ Y ) + USE SIGNAL ; + - _172_ ( _683_ A2 ) ( _682_ A2 ) ( _681_ A2 ) ( _675_ B2 ) ( _673_ A1 ) ( _511_ A ) ( _510_ Y ) + USE SIGNAL ; + - _173_ ( _512_ B1 ) ( _511_ Y ) + USE SIGNAL ; + - _174_ ( _514_ A2 ) ( _512_ Y ) + USE SIGNAL ; + - _175_ ( _514_ B1 ) ( _513_ Y ) + USE SIGNAL ; + - _176_ ( _517_ A2 ) ( _515_ Y ) + USE SIGNAL ; + - _177_ ( _517_ B1 ) ( _516_ Y ) + USE SIGNAL ; + - _178_ ( _520_ A2 ) ( _518_ Y ) + USE SIGNAL ; + - _179_ ( _520_ B1 ) ( _519_ Y ) + USE SIGNAL ; + - _180_ ( _526_ A2 ) ( _521_ Y ) + USE SIGNAL ; + - _182_ ( _524_ B2 ) ( _523_ Y ) + USE SIGNAL ; + - _183_ ( _526_ A3 ) ( _524_ Y ) + USE SIGNAL ; + - _184_ ( _526_ B1 ) ( _525_ Y ) + USE SIGNAL ; + - _185_ ( _711_ A ) ( _533_ A2 ) ( _531_ B ) ( _529_ A2 ) ( _527_ Y ) + USE SIGNAL ; + - _187_ ( _535_ A3 ) ( _529_ Y ) + USE SIGNAL ; + - _188_ ( _560_ C1 ) ( _539_ B ) ( _532_ A2 ) ( _530_ Y ) + USE SIGNAL ; + - _189_ ( _532_ B1 ) ( _531_ Y ) + USE SIGNAL ; + - _190_ ( _534_ A3 ) ( _532_ Y ) + USE SIGNAL ; + - _191_ ( _534_ B1 ) ( _533_ Y ) + USE SIGNAL ; + - _192_ ( _535_ B1 ) ( _534_ Y ) + USE SIGNAL ; + - _193_ ( _537_ A2 ) ( _535_ Y ) + USE SIGNAL ; + - _194_ ( _537_ B1 ) ( _536_ Y ) + USE SIGNAL ; + - _195_ ( _560_ B1 ) ( _539_ A ) ( _538_ Y ) + USE SIGNAL ; + - _196_ ( _713_ A ) ( _543_ A2 ) ( _540_ A2 ) ( _539_ X ) + USE SIGNAL ; + - _197_ ( _545_ A3 ) ( _540_ Y ) + USE SIGNAL ; + - _198_ ( _542_ B1 ) ( _541_ Y ) + USE SIGNAL ; + - _199_ ( _544_ A3 ) ( _542_ Y ) + USE SIGNAL ; + - _200_ ( _544_ B1 ) ( _543_ Y ) + USE SIGNAL ; + - _201_ ( _545_ B1 ) ( _544_ Y ) + USE SIGNAL ; + - _202_ ( _547_ A2 ) ( _545_ Y ) + USE SIGNAL ; + - _203_ ( _547_ B1 ) ( _546_ Y ) + USE SIGNAL ; + - _204_ ( _716_ A ) ( _555_ A1 ) ( _554_ B ) ( _549_ A2 ) ( _548_ Y ) + USE SIGNAL ; + - _205_ ( _550_ C ) ( _549_ Y ) + USE SIGNAL ; + - _206_ ( _558_ A2 ) ( _550_ Y ) + USE SIGNAL ; + - _208_ ( _558_ A3 ) ( _552_ Y ) + USE SIGNAL ; + - _209_ ( _555_ A2 ) ( _553_ Y ) + USE SIGNAL ; + - _210_ ( _555_ B1 ) ( _554_ Y ) + USE SIGNAL ; + - _211_ ( _556_ C ) ( _555_ Y ) + USE SIGNAL ; + - _212_ ( _558_ A4 ) ( _556_ X ) + USE SIGNAL ; + - _213_ ( _558_ B1 ) ( _557_ Y ) + USE SIGNAL ; + - _214_ ( _715_ B ) ( _562_ A2 ) ( _560_ D1 ) ( _559_ Y ) + USE SIGNAL ; + - _215_ ( _574_ A2 ) ( _563_ A ) ( _560_ Y ) + USE SIGNAL ; + - _216_ ( _562_ A1 ) ( _561_ Y ) + USE SIGNAL ; + - _217_ ( _574_ A3 ) ( _563_ B ) ( _562_ Y ) + USE SIGNAL ; + - _218_ ( _718_ A ) ( _568_ B ) ( _567_ A2 ) ( _566_ C ) ( _564_ A2 ) ( _563_ Y ) + USE SIGNAL ; + - _219_ ( _571_ A3 ) ( _564_ Y ) + USE SIGNAL ; + - _220_ ( _570_ A1 ) ( _565_ Y ) + USE SIGNAL ; + - _221_ ( _567_ B1 ) ( _566_ Y ) + USE SIGNAL ; + - _222_ ( _570_ A3 ) ( _567_ Y ) + USE SIGNAL ; + - _223_ ( _569_ B ) ( _568_ Y ) + USE SIGNAL ; + - _224_ ( _570_ B1 ) ( _569_ Y ) + USE SIGNAL ; + - _225_ ( _571_ B1 ) ( _570_ X ) + USE SIGNAL ; + - _226_ ( _573_ A2 ) ( _571_ Y ) + USE SIGNAL ; + - _227_ ( _573_ B1 ) ( _572_ Y ) + USE SIGNAL ; + - _228_ ( _720_ A ) ( _591_ A1 ) ( _587_ A1 ) ( _580_ A2 ) ( _579_ A1 ) ( _578_ B ) ( _575_ B ) + ( _574_ Y ) + USE SIGNAL ; + - _229_ ( _576_ A2 ) ( _575_ Y ) + USE SIGNAL ; + - _230_ ( _583_ A2 ) ( _576_ Y ) + USE SIGNAL ; + - _231_ ( _579_ A2 ) ( _577_ Y ) + USE SIGNAL ; + - _232_ ( _579_ B1 ) ( _578_ Y ) + USE SIGNAL ; + - _233_ ( _581_ A3 ) ( _579_ Y ) + USE SIGNAL ; + - _234_ ( _581_ B1 ) ( _580_ Y ) + USE SIGNAL ; + - _235_ ( _583_ A3 ) ( _581_ X ) + USE SIGNAL ; + - _236_ ( _583_ B1 ) ( _582_ Y ) + USE SIGNAL ; + - _237_ ( _599_ A ) ( _597_ B1 ) ( _593_ A1 ) ( _590_ A ) ( _584_ Y ) + USE SIGNAL ; + - _238_ ( _591_ A2 ) ( _587_ A2 ) ( _585_ Y ) + USE SIGNAL ; + - _239_ ( _591_ B1 ) ( _587_ B1 ) ( _586_ Y ) + USE SIGNAL ; + - _240_ ( _599_ C ) ( _597_ A2 ) ( _593_ A2 ) ( _589_ A2 ) ( _588_ C ) ( _587_ Y ) + USE SIGNAL ; + - _241_ ( _589_ B1 ) ( _588_ Y ) + USE SIGNAL ; + - _242_ ( _590_ C ) ( _589_ X ) + USE SIGNAL ; + - _243_ ( _596_ A2 ) ( _590_ Y ) + USE SIGNAL ; + - _244_ ( _722_ A ) ( _592_ A2 ) ( _591_ X ) + USE SIGNAL ; + - _245_ ( _594_ A3 ) ( _592_ Y ) + USE SIGNAL ; + - _246_ ( _594_ B1 ) ( _593_ Y ) + USE SIGNAL ; + - _247_ ( _596_ A3 ) ( _594_ Y ) + USE SIGNAL ; + - _248_ ( _596_ B1 ) ( _595_ Y ) + USE SIGNAL ; + - _249_ ( _598_ B ) ( _597_ Y ) + USE SIGNAL ; + - _250_ ( _602_ A1 ) ( _598_ Y ) + USE SIGNAL ; + - _251_ ( _724_ A ) ( _606_ A1 ) ( _603_ A2 ) ( _601_ A2 ) ( _600_ D ) ( _599_ X ) + USE SIGNAL ; + - _252_ ( _602_ A2 ) ( _600_ Y ) + USE SIGNAL ; + - _253_ ( _602_ B1 ) ( _601_ Y ) + USE SIGNAL ; + - _254_ ( _608_ A1 ) ( _602_ Y ) + USE SIGNAL ; + - _255_ ( _604_ C ) ( _603_ Y ) + USE SIGNAL ; + - _256_ ( _608_ A2 ) ( _604_ X ) + USE SIGNAL ; + - _257_ ( _606_ A2 ) ( _605_ Y ) + USE SIGNAL ; + - _258_ ( _608_ A3 ) ( _606_ Y ) + USE SIGNAL ; + - _259_ ( _608_ B1 ) ( _607_ Y ) + USE SIGNAL ; + - _260_ ( _615_ A3 ) ( _609_ Y ) + USE SIGNAL ; + - _261_ ( _725_ B ) ( _655_ A2 ) ( _612_ A2 ) ( _611_ C ) ( _610_ Y ) + USE SIGNAL ; + - _262_ ( _612_ B1 ) ( _611_ Y ) + USE SIGNAL ; + - _263_ ( _614_ A3 ) ( _612_ Y ) + USE SIGNAL ; + - _264_ ( _614_ B1 ) ( _613_ Y ) + USE SIGNAL ; + - _265_ ( _615_ B1 ) ( _614_ Y ) + USE SIGNAL ; + - _266_ ( _617_ A2 ) ( _615_ Y ) + USE SIGNAL ; + - _267_ ( _617_ B1 ) ( _616_ Y ) + USE SIGNAL ; + - _268_ ( _726_ B ) ( _624_ S ) ( _621_ B ) ( _619_ B ) ( _618_ X ) + USE SIGNAL ; + - _269_ ( _620_ A2 ) ( _619_ Y ) + USE SIGNAL ; + - _270_ ( _628_ A2 ) ( _620_ Y ) + USE SIGNAL ; + - _271_ ( _622_ B ) ( _621_ Y ) + USE SIGNAL ; + - _272_ ( _626_ A2 ) ( _622_ Y ) + USE SIGNAL ; + - _273_ ( _624_ A0 ) ( _623_ Y ) + USE SIGNAL ; + - _274_ ( _625_ C ) ( _624_ Y ) + USE SIGNAL ; + - _275_ ( _626_ B1 ) ( _625_ Y ) + USE SIGNAL ; + - _276_ ( _628_ A3 ) ( _626_ Y ) + USE SIGNAL ; + - _277_ ( _628_ B1 ) ( _627_ Y ) + USE SIGNAL ; + - _278_ ( _630_ C1 ) ( _629_ Y ) + USE SIGNAL ; + - _279_ ( _636_ B ) ( _634_ C ) ( _630_ Y ) + USE SIGNAL ; + - _280_ ( _632_ A ) ( _631_ Y ) + USE SIGNAL ; + - _281_ ( _633_ C1 ) ( _632_ Y ) + USE SIGNAL ; + - _282_ ( _636_ C ) ( _634_ D ) ( _633_ Y ) + USE SIGNAL ; + - _283_ ( _635_ A2 ) ( _634_ Y ) + USE SIGNAL ; + - _284_ ( _643_ A2 ) ( _635_ Y ) + USE SIGNAL ; + - _285_ ( rebuffer1 A ) ( _703_ B ) ( _681_ B1 ) ( _644_ C ) ( _639_ A2 ) ( _638_ C ) ( _637_ A2 ) + ( _636_ Y ) + USE SIGNAL ; + - _286_ ( _641_ A3 ) ( _637_ Y ) + USE SIGNAL ; + - _287_ ( _639_ B1 ) ( _638_ Y ) + USE SIGNAL ; + - _288_ ( _641_ B1 ) ( _639_ Y ) + USE SIGNAL ; + - _289_ ( _641_ B2 ) ( _640_ Y ) + USE SIGNAL ; + - _290_ ( _643_ A3 ) ( _641_ Y ) + USE SIGNAL ; + - _291_ ( _643_ B1 ) ( _642_ Y ) + USE SIGNAL ; + - _292_ ( _704_ B ) ( _650_ S ) ( _646_ A2 ) ( _645_ A2 ) ( _644_ X ) + USE SIGNAL ; + - _293_ ( _647_ A3 ) ( _645_ Y ) + USE SIGNAL ; + - _294_ ( _647_ B1 ) ( _646_ X ) + USE SIGNAL ; + - _295_ ( _653_ A1 ) ( _647_ Y ) + USE SIGNAL ; + - _296_ ( _670_ A ) ( _651_ A1 ) ( _648_ Y ) + USE SIGNAL ; + - _297_ ( _650_ A0 ) ( _649_ Y ) + USE SIGNAL ; + - _298_ ( _651_ A3 ) ( _650_ X ) + USE SIGNAL ; + - _299_ ( _653_ A2 ) ( _651_ Y ) + USE SIGNAL ; + - _300_ ( _653_ B1 ) ( _652_ Y ) + USE SIGNAL ; + - _301_ ( _655_ B1 ) ( _654_ X ) + USE SIGNAL ; + - _302_ ( _705_ B ) ( _662_ A2 ) ( _659_ S ) ( _656_ B ) ( _655_ Y ) + USE SIGNAL ; + - _303_ ( _657_ B ) ( _656_ Y ) + USE SIGNAL ; + - _304_ ( _661_ A2 ) ( _657_ Y ) + USE SIGNAL ; + - _305_ ( _659_ A0 ) ( _658_ Y ) + USE SIGNAL ; + - _306_ ( _660_ C ) ( _659_ Y ) + USE SIGNAL ; + - _307_ ( _661_ B1 ) ( _660_ Y ) + USE SIGNAL ; + - _308_ ( _665_ A2 ) ( _661_ Y ) + USE SIGNAL ; + - _309_ ( _663_ C ) ( _662_ Y ) + USE SIGNAL ; + - _310_ ( _665_ A3 ) ( _663_ Y ) + USE SIGNAL ; + - _311_ ( _665_ B1 ) ( _664_ Y ) + USE SIGNAL ; + - _312_ ( _705_ A ) ( _667_ B1 ) ( _666_ Y ) + USE SIGNAL ; + - _313_ ( _681_ C1 ) ( _672_ A2 ) ( _667_ Y ) + USE SIGNAL ; + - _314_ ( _671_ A1 ) ( _668_ Y ) + USE SIGNAL ; + - _315_ ( _670_ C ) ( _669_ Y ) + USE SIGNAL ; + - _316_ ( _671_ A2 ) ( _670_ X ) + USE SIGNAL ; + - _317_ ( _682_ B1 ) ( _672_ B1 ) ( _671_ Y ) + USE SIGNAL ; + - _318_ ( _706_ B ) ( _677_ S ) ( _674_ A2 ) ( _673_ A2 ) ( _672_ Y ) + USE SIGNAL ; + - _319_ ( _675_ A3 ) ( _673_ Y ) + USE SIGNAL ; + - _320_ ( _675_ B1 ) ( _674_ X ) + USE SIGNAL ; + - _321_ ( _680_ A2 ) ( _675_ X ) + USE SIGNAL ; + - _322_ ( _677_ A1 ) ( _676_ Y ) + USE SIGNAL ; + - _323_ ( _678_ C ) ( _677_ X ) + USE SIGNAL ; + - _324_ ( _680_ A3 ) ( _678_ Y ) + USE SIGNAL ; + - _325_ ( _680_ B1 ) ( _679_ Y ) + USE SIGNAL ; + - _326_ ( _689_ A ) ( _687_ A1 ) ( _684_ A ) ( _681_ Y ) + USE SIGNAL ; + - _327_ ( _683_ B1 ) ( _682_ X ) + USE SIGNAL ; + - _328_ ( _689_ B ) ( _687_ A2 ) ( _684_ B ) ( _683_ Y ) + USE SIGNAL ; + - _329_ ( _707_ B ) ( _695_ A1 ) ( _690_ A2 ) ( _684_ X ) + USE SIGNAL ; + - _330_ ( _690_ A3 ) ( _685_ Y ) + USE SIGNAL ; + - _331_ ( _687_ B1 ) ( _686_ X ) + USE SIGNAL ; + - _332_ ( _690_ B1 ) ( _687_ Y ) + USE SIGNAL ; + - _333_ ( _689_ C ) ( _688_ Y ) + USE SIGNAL ; + - _334_ ( _690_ C1 ) ( _689_ X ) + USE SIGNAL ; + - _335_ ( _696_ A2 ) ( _690_ Y ) + USE SIGNAL ; + - _336_ ( _696_ B1 ) ( _691_ Y ) + USE SIGNAL ; + - _337_ ( _695_ A2 ) ( _692_ Y ) + USE SIGNAL ; + - _338_ ( _695_ B1 ) ( _693_ Y ) + USE SIGNAL ; + - _339_ ( _695_ D1 ) ( _694_ Y ) + USE SIGNAL ; + - _340_ ( _696_ B2 ) ( _695_ X ) + USE SIGNAL ; + - _341_ ( _700_ A3 ) ( _697_ Y ) + USE SIGNAL ; + - _342_ ( _699_ B1 ) ( _698_ Y ) + USE SIGNAL ; + - _343_ ( _700_ B1 ) ( _699_ Y ) + USE SIGNAL ; + - _344_ ( _702_ A2 ) ( _700_ Y ) + USE SIGNAL ; + - _345_ ( _702_ B1 ) ( _701_ Y ) + USE SIGNAL ; + - _346_ ( _709_ B ) ( _708_ Y ) + USE SIGNAL ; + - _347_ ( _711_ B ) ( _710_ Y ) + USE SIGNAL ; + - _348_ ( _713_ B ) ( _712_ Y ) + USE SIGNAL ; + - _349_ ( _715_ A ) ( _714_ Y ) + USE SIGNAL ; + - _350_ ( _716_ B ) ( _715_ Y ) + USE SIGNAL ; + - _351_ ( _718_ B ) ( _717_ Y ) + USE SIGNAL ; + - _352_ ( _720_ B ) ( _719_ Y ) + USE SIGNAL ; + - _353_ ( _722_ B ) ( _721_ X ) + USE SIGNAL ; + - _354_ ( _724_ B ) ( _723_ X ) + USE SIGNAL ; + - clk ( PIN clk ) ( clkbuf_0_clk A ) + USE CLOCK ; + - clknet_0_clk ( clkbuf_2_3__f_clk A ) ( clkbuf_2_2__f_clk A ) ( clkbuf_2_1__f_clk A ) ( clkbuf_2_0__f_clk A ) ( clkbuf_0_clk X ) + USE CLOCK ; + - clknet_2_0__leaf_clk ( clkload0 A ) ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ CLK ) ( clkbuf_2_0__f_clk X ) + USE CLOCK ; + - clknet_2_1__leaf_clk ( ctrl.state.out\[1\]$_DFF_P_ CLK ) ( ctrl.state.out\[2\]$_DFF_P_ CLK ) ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ CLK ) ( clkbuf_2_1__f_clk X ) + USE CLOCK ; + - clknet_2_2__leaf_clk ( clkload1 A ) ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ CLK ) ( clkbuf_2_2__f_clk X ) + USE CLOCK ; + - clknet_2_3__leaf_clk ( clkload2 A ) ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ CLK ) + ( req_rdy$_DFF_P_ CLK ) ( clkbuf_2_3__f_clk X ) + USE CLOCK ; + - ctrl.state.out\[1\] ( ctrl.state.out\[1\]$_DFF_P_ Q ) ( _383_ A1 ) ( _377_ C ) + USE SIGNAL ; + - ctrl.state.out\[2\] ( _552_ A1 ) ( _569_ A ) ( _580_ B1 ) ( _601_ B1 ) ( _613_ B1 ) ( _638_ B ) ( _646_ B1 ) + ( _675_ A2 ) ( _693_ B ) ( _699_ A2 ) ( _372_ B2 ) ( _523_ C ) ( _524_ A2 ) ( _535_ A2 ) ( _545_ A2 ) + ( _571_ A2 ) ( _593_ B1 ) ( _594_ A2 ) ( _641_ A2 ) ( _700_ A2 ) ( _532_ A1 ) ( _553_ B ) ( _577_ B ) + ( _611_ B ) ( _623_ B ) ( _649_ B ) ( _658_ B ) ( _676_ B ) ( _686_ B ) ( _374_ A ) ( _446_ A ) + ( _566_ B ) ( _688_ A ) ( ctrl.state.out\[2\]$_DFF_P_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[0\] ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ Q ) ( _527_ A ) ( _524_ A1 ) ( _523_ B ) ( _521_ A1 ) ( _448_ A0 ) ( _408_ A_N ) + ( _385_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[10\] ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ Q ) ( _667_ A2 ) ( _637_ A1 ) ( _635_ B1 ) ( _498_ A ) ( _441_ B ) ( _395_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[11\] ( _397_ B ) ( _436_ B_N ) ( _442_ A_N ) ( _504_ A0 ) ( _645_ A1 ) ( _647_ B2 ) ( _649_ A ) + ( _650_ A1 ) ( _670_ B ) ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[12\] ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ Q ) ( _668_ A_N ) ( _662_ A1 ) ( _661_ A1 ) ( _659_ A1 ) ( _658_ A ) ( _507_ A0 ) + ( _389_ A ) ( _388_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[13\] ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ Q ) ( _677_ A0 ) ( _676_ A ) ( _510_ A ) ( _434_ B ) ( _393_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[14\] ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ Q ) ( _693_ A ) ( _692_ B ) ( _690_ A1 ) ( _686_ A ) ( _515_ A0 ) ( _391_ A_N ) + ( _390_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[15\] ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ Q ) ( _708_ B ) ( _698_ B ) ( _697_ A ) ( _518_ A1 ) ( _456_ B ) ( _387_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[1\] ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ Q ) ( _710_ B ) ( _538_ A1 ) ( _530_ A ) ( _529_ A1 ) ( _453_ A ) ( _409_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[2\] ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ Q ) ( _561_ B ) ( _542_ A1 ) ( _541_ A ) ( _540_ A1 ) ( _410_ A ) ( _405_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[3\] ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ Q ) ( _559_ A ) ( _553_ A ) ( _552_ B1 ) ( _549_ A1 ) ( _466_ A ) ( _425_ C1 ) + ( _417_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[4\] ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ Q ) ( _570_ B2 ) ( _564_ A1 ) ( _473_ A ) ( _426_ A_N ) ( _419_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[5\] ( _420_ A ) ( _422_ A1 ) ( _427_ B ) ( _478_ A ) ( _575_ A ) ( _577_ A ) ( _585_ B ) + ( _586_ B ) ( _719_ B ) ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[6\] ( _414_ B ) ( _429_ A_N ) ( _483_ A0 ) ( _588_ A ) ( _589_ A1 ) ( _592_ A1 ) ( _594_ B2 ) + ( _597_ A1 ) ( _599_ B ) ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[7\] ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ Q ) ( _723_ B ) ( _602_ B2 ) ( _598_ A ) ( _486_ A ) ( _430_ B ) ( _415_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[8\] ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ Q ) ( _629_ A ) ( _612_ A1 ) ( _611_ A ) ( _609_ A1 ) ( _438_ A ) ( _399_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[9\] ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ Q ) ( _626_ A1 ) ( _624_ A1 ) ( _623_ A ) ( _619_ A ) ( _495_ A0 ) ( _439_ A ) + ( _401_ A_N ) ( _400_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[0\] ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ Q ) ( _527_ B_N ) ( _523_ A ) ( _521_ B1 ) ( _448_ A1 ) ( _408_ B ) ( _385_ A ) + ( _358_ D ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[10\] ( _367_ C ) ( _395_ A ) ( _437_ A ) ( _500_ A1 ) ( _640_ A ) ( _641_ A1 ) ( _644_ A ) + ( _669_ A ) ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[11\] ( _367_ B ) ( _397_ A ) ( _436_ A ) ( _442_ B ) ( _504_ A1 ) ( _646_ A1 ) ( _647_ A1 ) + ( _648_ A ) ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[12\] ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ Q ) ( _668_ B ) ( _663_ A ) ( _660_ A ) ( _656_ A ) ( _507_ A1 ) ( _389_ B_N ) + ( _388_ A ) ( _367_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[13\] ( _364_ C ) ( _393_ A ) ( _433_ A ) ( _512_ A1 ) ( _681_ A1 ) ( _682_ A1 ) ( _683_ A1 ) + ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[14\] ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ Q ) ( _694_ A ) ( _692_ A ) ( _687_ D1 ) ( _685_ A ) ( _515_ A1 ) ( _391_ B ) + ( _390_ A ) ( _364_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[15\] ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ Q ) ( _708_ A ) ( _700_ A1 ) ( _518_ B1 ) ( _454_ A ) ( _445_ A ) ( _364_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[1\] ( _361_ D ) ( _407_ A ) ( _459_ A1 ) ( _533_ A1 ) ( _534_ A1 ) ( _535_ A1 ) ( _710_ A ) + ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[2\] ( _361_ C ) ( _406_ A ) ( _410_ B_N ) ( _424_ A ) ( _463_ A1 ) ( _543_ A1 ) ( _544_ A1 ) + ( _545_ A1 ) ( _560_ A1 ) ( _561_ A_N ) ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[3\] ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ Q ) ( _714_ A ) ( _559_ B_N ) ( _556_ A ) ( _550_ A ) ( _469_ A1 ) ( _417_ A_N ) + ( _411_ A ) ( _361_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[4\] ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ Q ) ( _571_ A1 ) ( _568_ A ) ( _565_ A ) ( _475_ A1 ) ( _426_ B ) ( _419_ A ) + ( _361_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[5\] ( _358_ C ) ( _421_ A ) ( _480_ A1 ) ( _576_ B1 ) ( _580_ A1 ) ( _581_ A1 ) ( _719_ A ) + ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[6\] ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ Q ) ( _594_ A1 ) ( _584_ A ) ( _483_ A1 ) ( _429_ B ) ( _414_ A_N ) ( _358_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[7\] ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ Q ) ( _723_ A ) ( _600_ A ) ( _488_ A1 ) ( _428_ A ) ( _415_ A_N ) ( _358_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[8\] ( _364_ D ) ( _399_ A ) ( _440_ A1 ) ( _492_ A1 ) ( _613_ A1 ) ( _614_ A1 ) ( _615_ A1 ) + ( _618_ A ) ( _631_ A ) ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[9\] ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ Q ) ( _625_ A ) ( _621_ A ) ( _620_ B1 ) ( _495_ A1 ) ( _439_ B_N ) ( _401_ B ) + ( _400_ A_N ) ( _367_ D ) + USE SIGNAL ; + - net1 ( input1 X ) ( _450_ B ) + USE SIGNAL ; + - net10 ( input10 X ) ( _546_ B ) + USE SIGNAL ; + - net11 ( input11 X ) ( _557_ B ) + USE SIGNAL ; + - net12 ( input12 X ) ( _460_ B ) + USE SIGNAL ; + - net13 ( input13 X ) ( _572_ B ) + USE SIGNAL ; + - net14 ( input14 X ) ( _582_ B ) + USE SIGNAL ; + - net15 ( input15 X ) ( _595_ B ) + USE SIGNAL ; + - net16 ( input16 X ) ( _607_ A ) + USE SIGNAL ; + - net17 ( input17 X ) ( _616_ B ) + USE SIGNAL ; + - net18 ( input18 X ) ( _627_ B ) + USE SIGNAL ; + - net19 ( input19 X ) ( _642_ B ) + USE SIGNAL ; + - net2 ( input2 X ) ( _501_ B ) + USE SIGNAL ; + - net20 ( input20 X ) ( _652_ B ) + USE SIGNAL ; + - net21 ( input21 X ) ( _664_ B ) + USE SIGNAL ; + - net22 ( input22 X ) ( _679_ B ) + USE SIGNAL ; + - net23 ( input23 X ) ( _464_ B ) + USE SIGNAL ; + - net24 ( input24 X ) ( _691_ B ) + USE SIGNAL ; + - net25 ( input25 X ) ( _701_ B ) + USE SIGNAL ; + - net26 ( input26 X ) ( _471_ B ) + USE SIGNAL ; + - net27 ( input27 X ) ( _476_ B ) + USE SIGNAL ; + - net28 ( input28 X ) ( _481_ B ) + USE SIGNAL ; + - net29 ( input29 X ) ( _484_ B ) + USE SIGNAL ; + - net3 ( input3 X ) ( _505_ B ) + USE SIGNAL ; + - net30 ( input30 X ) ( _489_ B ) + USE SIGNAL ; + - net31 ( input31 X ) ( _493_ B ) + USE SIGNAL ; + - net32 ( input32 X ) ( _496_ B ) + USE SIGNAL ; + - net33 ( input33 X ) ( _380_ A2 ) ( _372_ A2 ) + USE SIGNAL ; + - net34 ( input34 X ) ( _384_ A ) ( _379_ A ) ( _373_ A ) + USE SIGNAL ; + - net35 ( input35 X ) ( _378_ A ) + USE SIGNAL ; + - net36 ( output36 A ) ( req_rdy$_DFF_P_ Q ) ( _702_ A1 ) ( _701_ A ) ( _695_ C1 ) ( _691_ A ) ( _680_ A1 ) + ( _679_ A ) ( _665_ A1 ) ( _664_ A ) ( _652_ A ) ( _628_ A1 ) ( _627_ A ) ( _617_ A1 ) ( _616_ A ) + ( _608_ B2 ) ( _606_ B1 ) ( _583_ A1 ) ( _582_ A ) ( _573_ A1 ) ( _572_ A ) ( _558_ A1 ) ( _557_ A ) + ( _547_ A1 ) ( _546_ A ) ( _537_ A1 ) ( _536_ A ) ( _526_ A1 ) ( _525_ A ) ( _520_ A1 ) ( _519_ A ) + ( _517_ A1 ) ( _516_ A ) ( _514_ A1 ) ( _513_ A ) ( _509_ A1 ) ( _508_ A ) ( _506_ A1 ) ( _505_ A ) + ( _502_ A1 ) ( _501_ A ) ( _497_ A1 ) ( _496_ A ) ( _494_ A1 ) ( _493_ A ) ( _490_ A1 ) ( _489_ A ) + ( _485_ A1 ) ( _484_ A ) ( _482_ A1 ) ( _481_ A ) ( _477_ A1 ) ( _476_ A ) ( _472_ A1 ) ( _471_ A ) + ( _465_ A1 ) ( _464_ A ) ( _461_ A1 ) ( _460_ A ) ( _451_ A1 ) ( _450_ A ) ( _376_ A ) ( _372_ A1 ) + USE SIGNAL ; + - net37 ( output37 A ) ( _385_ X ) + USE SIGNAL ; + - net38 ( output38 A ) ( _703_ Y ) + USE SIGNAL ; + - net39 ( output39 A ) ( _704_ Y ) + USE SIGNAL ; + - net4 ( input4 X ) ( _508_ B ) + USE SIGNAL ; + - net40 ( output40 A ) ( _705_ Y ) + USE SIGNAL ; + - net41 ( output41 A ) ( _706_ Y ) + USE SIGNAL ; + - net42 ( output42 A ) ( _707_ Y ) + USE SIGNAL ; + - net43 ( output43 A ) ( _709_ Y ) + USE SIGNAL ; + - net44 ( output44 A ) ( _711_ Y ) + USE SIGNAL ; + - net45 ( output45 A ) ( _713_ Y ) + USE SIGNAL ; + - net46 ( output46 A ) ( _716_ Y ) + USE SIGNAL ; + - net47 ( output47 A ) ( _718_ Y ) + USE SIGNAL ; + - net48 ( output48 A ) ( _720_ Y ) + USE SIGNAL ; + - net49 ( output49 A ) ( _722_ Y ) + USE SIGNAL ; + - net5 ( input5 X ) ( _513_ B ) + USE SIGNAL ; + - net50 ( output50 A ) ( _724_ Y ) + USE SIGNAL ; + - net51 ( output51 A ) ( _725_ Y ) + USE SIGNAL ; + - net52 ( output52 A ) ( _726_ X ) + USE SIGNAL ; + - net53 ( output53 A ) ( _378_ B ) ( _377_ X ) + USE SIGNAL ; + - net54 ( _672_ A1 ) ( rebuffer1 X ) + USE SIGNAL ; + - net55 ( _432_ A3 ) ( rebuffer2 X ) + USE SIGNAL ; + - net6 ( input6 X ) ( _516_ B ) + USE SIGNAL ; + - net7 ( input7 X ) ( _519_ B ) + USE SIGNAL ; + - net8 ( input8 X ) ( _525_ B ) + USE SIGNAL ; + - net9 ( input9 X ) ( _536_ B ) + USE SIGNAL ; + - req_msg[0] ( PIN req_msg[0] ) ( input1 A ) + USE SIGNAL ; + - req_msg[10] ( PIN req_msg[10] ) ( input2 A ) + USE SIGNAL ; + - req_msg[11] ( PIN req_msg[11] ) ( input3 A ) + USE SIGNAL ; + - req_msg[12] ( PIN req_msg[12] ) ( input4 A ) + USE SIGNAL ; + - req_msg[13] ( PIN req_msg[13] ) ( input5 A ) + USE SIGNAL ; + - req_msg[14] ( PIN req_msg[14] ) ( input6 A ) + USE SIGNAL ; + - req_msg[15] ( PIN req_msg[15] ) ( input7 A ) + USE SIGNAL ; + - req_msg[16] ( PIN req_msg[16] ) ( input8 A ) + USE SIGNAL ; + - req_msg[17] ( PIN req_msg[17] ) ( input9 A ) + USE SIGNAL ; + - req_msg[18] ( PIN req_msg[18] ) ( input10 A ) + USE SIGNAL ; + - req_msg[19] ( PIN req_msg[19] ) ( input11 A ) + USE SIGNAL ; + - req_msg[1] ( PIN req_msg[1] ) ( input12 A ) + USE SIGNAL ; + - req_msg[20] ( PIN req_msg[20] ) ( input13 A ) + USE SIGNAL ; + - req_msg[21] ( PIN req_msg[21] ) ( input14 A ) + USE SIGNAL ; + - req_msg[22] ( PIN req_msg[22] ) ( input15 A ) + USE SIGNAL ; + - req_msg[23] ( PIN req_msg[23] ) ( input16 A ) + USE SIGNAL ; + - req_msg[24] ( PIN req_msg[24] ) ( input17 A ) + USE SIGNAL ; + - req_msg[25] ( PIN req_msg[25] ) ( input18 A ) + USE SIGNAL ; + - req_msg[26] ( PIN req_msg[26] ) ( input19 A ) + USE SIGNAL ; + - req_msg[27] ( PIN req_msg[27] ) ( input20 A ) + USE SIGNAL ; + - req_msg[28] ( PIN req_msg[28] ) ( input21 A ) + USE SIGNAL ; + - req_msg[29] ( PIN req_msg[29] ) ( input22 A ) + USE SIGNAL ; + - req_msg[2] ( PIN req_msg[2] ) ( input23 A ) + USE SIGNAL ; + - req_msg[30] ( PIN req_msg[30] ) ( input24 A ) + USE SIGNAL ; + - req_msg[31] ( PIN req_msg[31] ) ( input25 A ) + USE SIGNAL ; + - req_msg[3] ( PIN req_msg[3] ) ( input26 A ) + USE SIGNAL ; + - req_msg[4] ( PIN req_msg[4] ) ( input27 A ) + USE SIGNAL ; + - req_msg[5] ( PIN req_msg[5] ) ( input28 A ) + USE SIGNAL ; + - req_msg[6] ( PIN req_msg[6] ) ( input29 A ) + USE SIGNAL ; + - req_msg[7] ( PIN req_msg[7] ) ( input30 A ) + USE SIGNAL ; + - req_msg[8] ( PIN req_msg[8] ) ( input31 A ) + USE SIGNAL ; + - req_msg[9] ( PIN req_msg[9] ) ( input32 A ) + USE SIGNAL ; + - req_rdy ( PIN req_rdy ) ( output36 X ) + USE SIGNAL ; + - req_val ( PIN req_val ) ( input33 A ) + USE SIGNAL ; + - reset ( PIN reset ) ( input34 A ) + USE SIGNAL ; + - resp_msg[0] ( PIN resp_msg[0] ) ( output37 X ) + USE SIGNAL ; + - resp_msg[10] ( PIN resp_msg[10] ) ( output38 X ) + USE SIGNAL ; + - resp_msg[11] ( PIN resp_msg[11] ) ( output39 X ) + USE SIGNAL ; + - resp_msg[12] ( PIN resp_msg[12] ) ( output40 X ) + USE SIGNAL ; + - resp_msg[13] ( PIN resp_msg[13] ) ( output41 X ) + USE SIGNAL ; + - resp_msg[14] ( PIN resp_msg[14] ) ( output42 X ) + USE SIGNAL ; + - resp_msg[15] ( PIN resp_msg[15] ) ( output43 X ) + USE SIGNAL ; + - resp_msg[1] ( PIN resp_msg[1] ) ( output44 X ) + USE SIGNAL ; + - resp_msg[2] ( PIN resp_msg[2] ) ( output45 X ) + USE SIGNAL ; + - resp_msg[3] ( PIN resp_msg[3] ) ( output46 X ) + USE SIGNAL ; + - resp_msg[4] ( PIN resp_msg[4] ) ( output47 X ) + USE SIGNAL ; + - resp_msg[5] ( PIN resp_msg[5] ) ( output48 X ) + USE SIGNAL ; + - resp_msg[6] ( PIN resp_msg[6] ) ( output49 X ) + USE SIGNAL ; + - resp_msg[7] ( PIN resp_msg[7] ) ( output50 X ) + USE SIGNAL ; + - resp_msg[8] ( PIN resp_msg[8] ) ( output51 X ) + USE SIGNAL ; + - resp_msg[9] ( PIN resp_msg[9] ) ( output52 X ) + USE SIGNAL ; + - resp_rdy ( PIN resp_rdy ) ( input35 A ) + USE SIGNAL ; + - resp_val ( PIN resp_val ) ( output53 X ) + USE SIGNAL ; +END NETS +END DESIGN diff --git a/src/psm/test/insert_decap2.ok b/src/psm/test/insert_decap2.ok new file mode 100644 index 00000000000..8efcc9907e0 --- /dev/null +++ b/src/psm/test/insert_decap2.ok @@ -0,0 +1,22 @@ +[INFO ODB-0227] LEF file: sky130hd/sky130hd.tlef, created 13 layers, 25 vias +[INFO ODB-0227] LEF file: sky130hd/sky130hd_std_cell.lef, created 437 library cells +[INFO ODB-0128] Design: gcd +[INFO ODB-0130] Created 54 pins. +[INFO ODB-0131] Created 538 components and 2577 component-terminals. +[INFO ODB-0132] Created 2 special nets and 1076 connections. +[INFO ODB-0133] Created 475 nets and 1498 connections. +[INFO PSM-0040] All shapes on net VDD are connected. +[INFO PSM-0073] Using bump pattern with x-pitch 140.0000um, y-pitch 140.0000um, and size 70.0000um with an reduction factor of 3x. +########## IR report ################# +Net : VDD +Corner : default +Supply voltage : 1.40e+00 V +Worstcase voltage: 1.40e+00 V +Average voltage : 1.40e+00 V +Average IR drop : 1.25e-11 V +Worstcase IR drop: 2.85e-11 V +Percentage drop : 0.00 % +###################################### + +[INFO DPL-0056] Placed 4 decap cells. Total capacitance: 0.000010 +No differences found. diff --git a/src/psm/test/insert_decap2.tcl b/src/psm/test/insert_decap2.tcl new file mode 100644 index 00000000000..481588a970b --- /dev/null +++ b/src/psm/test/insert_decap2.tcl @@ -0,0 +1,20 @@ +# insert_decap for sky130hd/gcd +source "helpers.tcl" + +read_lef "sky130hd/sky130hd.tlef" +read_lef "sky130hd/sky130hd_std_cell.lef" + +read_liberty sky130hd/sky130_fd_sc_hd__ss_n40C_1v40.lib + +source sky130hd/sky130hd.rc + +read_def "insert_decap_gcd.def" + +analyze_power_grid -net {VDD} +insert_decap -target_cap 10.5 -cells {"sky130_fd_sc_hd__decap_3" 2.5} + +check_placement + +set def_file [make_result_file insert_decap2.def] +write_def $def_file +diff_file $def_file insert_decap2.defok diff --git a/src/psm/test/insert_decap_gcd.def b/src/psm/test/insert_decap_gcd.def new file mode 100644 index 00000000000..6afdc9babd9 --- /dev/null +++ b/src/psm/test/insert_decap_gcd.def @@ -0,0 +1,1870 @@ +VERSION 5.8 ; +DIVIDERCHAR "/" ; +BUSBITCHARS "[]" ; +DESIGN gcd ; +UNITS DISTANCE MICRONS 1000 ; +DIEAREA ( 0 0 ) ( 86840 86840 ) ; +ROW ROW_0 unithd 1380 2720 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_1 unithd 1380 5440 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_2 unithd 1380 8160 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_3 unithd 1380 10880 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_4 unithd 1380 13600 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_5 unithd 1380 16320 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_6 unithd 1380 19040 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_7 unithd 1380 21760 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_8 unithd 1380 24480 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_9 unithd 1380 27200 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_10 unithd 1380 29920 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_11 unithd 1380 32640 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_12 unithd 1380 35360 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_13 unithd 1380 38080 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_14 unithd 1380 40800 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_15 unithd 1380 43520 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_16 unithd 1380 46240 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_17 unithd 1380 48960 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_18 unithd 1380 51680 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_19 unithd 1380 54400 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_20 unithd 1380 57120 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_21 unithd 1380 59840 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_22 unithd 1380 62560 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_23 unithd 1380 65280 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_24 unithd 1380 68000 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_25 unithd 1380 70720 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_26 unithd 1380 73440 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_27 unithd 1380 76160 FS DO 183 BY 1 STEP 460 0 ; +ROW ROW_28 unithd 1380 78880 N DO 183 BY 1 STEP 460 0 ; +ROW ROW_29 unithd 1380 81600 FS DO 183 BY 1 STEP 460 0 ; +TRACKS X 230 DO 189 STEP 460 LAYER li1 ; +TRACKS Y 170 DO 255 STEP 340 LAYER li1 ; +TRACKS X 170 DO 255 STEP 340 LAYER met1 ; +TRACKS Y 170 DO 255 STEP 340 LAYER met1 ; +TRACKS X 230 DO 189 STEP 460 LAYER met2 ; +TRACKS Y 230 DO 189 STEP 460 LAYER met2 ; +TRACKS X 340 DO 127 STEP 680 LAYER met3 ; +TRACKS Y 340 DO 127 STEP 680 LAYER met3 ; +TRACKS X 460 DO 94 STEP 920 LAYER met4 ; +TRACKS Y 460 DO 94 STEP 920 LAYER met4 ; +TRACKS X 1700 DO 25 STEP 3400 LAYER met5 ; +TRACKS Y 1700 DO 25 STEP 3400 LAYER met5 ; +GCELLGRID X 0 DO 12 STEP 6900 ; +GCELLGRID Y 0 DO 12 STEP 6900 ; +VIAS 4 ; + - via2_3_1600_480_1_5_320_320 + VIARULE M1M2_PR + CUTSIZE 150 150 + LAYERS met1 via met2 + CUTSPACING 170 170 + ENCLOSURE 85 165 55 85 + ROWCOL 1 5 ; + - via3_4_1600_480_1_4_400_400 + VIARULE M2M3_PR + CUTSIZE 200 200 + LAYERS met2 via2 met3 + CUTSPACING 200 200 + ENCLOSURE 40 85 65 65 + ROWCOL 1 4 ; + - via4_5_1600_480_1_4_400_400 + VIARULE M3M4_PR + CUTSIZE 200 200 + LAYERS met3 via3 met4 + CUTSPACING 200 200 + ENCLOSURE 90 60 100 65 + ROWCOL 1 4 ; + - via5_6_1600_1600_1_1_1600_1600 + VIARULE M4M5_PR + CUTSIZE 800 800 + LAYERS met4 via4 met5 + CUTSPACING 800 800 + ENCLOSURE 400 190 310 400 ; +END VIAS +COMPONENTS 538 ; + - TAP_TAPCELL_ROW_0_0 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 2720 ) N ; + - TAP_TAPCELL_ROW_0_1 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 2720 ) N ; + - TAP_TAPCELL_ROW_0_2 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 2720 ) N ; + - TAP_TAPCELL_ROW_0_3 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 2720 ) N ; + - TAP_TAPCELL_ROW_0_4 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 2720 ) N ; + - TAP_TAPCELL_ROW_0_5 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 2720 ) N ; + - TAP_TAPCELL_ROW_10_33 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 29920 ) N ; + - TAP_TAPCELL_ROW_10_34 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 29920 ) N ; + - TAP_TAPCELL_ROW_10_35 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 29920 ) N ; + - TAP_TAPCELL_ROW_11_36 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 32640 ) FS ; + - TAP_TAPCELL_ROW_11_37 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 32640 ) FS ; + - TAP_TAPCELL_ROW_11_38 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 32640 ) FS ; + - TAP_TAPCELL_ROW_12_39 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 35360 ) N ; + - TAP_TAPCELL_ROW_12_40 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 35360 ) N ; + - TAP_TAPCELL_ROW_12_41 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 35360 ) N ; + - TAP_TAPCELL_ROW_13_42 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 38080 ) FS ; + - TAP_TAPCELL_ROW_13_43 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 38080 ) FS ; + - TAP_TAPCELL_ROW_13_44 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 38080 ) FS ; + - TAP_TAPCELL_ROW_14_45 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 40800 ) N ; + - TAP_TAPCELL_ROW_14_46 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 40800 ) N ; + - TAP_TAPCELL_ROW_14_47 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 40800 ) N ; + - TAP_TAPCELL_ROW_15_48 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 43520 ) FS ; + - TAP_TAPCELL_ROW_15_49 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 43520 ) FS ; + - TAP_TAPCELL_ROW_15_50 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 43520 ) FS ; + - TAP_TAPCELL_ROW_16_51 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 46240 ) N ; + - TAP_TAPCELL_ROW_16_52 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 46240 ) N ; + - TAP_TAPCELL_ROW_16_53 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 46240 ) N ; + - TAP_TAPCELL_ROW_17_54 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 48960 ) FS ; + - TAP_TAPCELL_ROW_17_55 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 48960 ) FS ; + - TAP_TAPCELL_ROW_17_56 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 48960 ) FS ; + - TAP_TAPCELL_ROW_18_57 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 51680 ) N ; + - TAP_TAPCELL_ROW_18_58 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 51680 ) N ; + - TAP_TAPCELL_ROW_18_59 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 51680 ) N ; + - TAP_TAPCELL_ROW_19_60 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 54400 ) FS ; + - TAP_TAPCELL_ROW_19_61 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 54400 ) FS ; + - TAP_TAPCELL_ROW_19_62 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 54400 ) FS ; + - TAP_TAPCELL_ROW_1_6 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 5440 ) FS ; + - TAP_TAPCELL_ROW_1_7 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 5440 ) FS ; + - TAP_TAPCELL_ROW_1_8 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 5440 ) FS ; + - TAP_TAPCELL_ROW_20_63 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 57120 ) N ; + - TAP_TAPCELL_ROW_20_64 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 57120 ) N ; + - TAP_TAPCELL_ROW_20_65 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 57120 ) N ; + - TAP_TAPCELL_ROW_21_66 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 59840 ) FS ; + - TAP_TAPCELL_ROW_21_67 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 59840 ) FS ; + - TAP_TAPCELL_ROW_21_68 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 59840 ) FS ; + - TAP_TAPCELL_ROW_22_69 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 62560 ) N ; + - TAP_TAPCELL_ROW_22_70 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 62560 ) N ; + - TAP_TAPCELL_ROW_22_71 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 62560 ) N ; + - TAP_TAPCELL_ROW_23_72 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 65280 ) FS ; + - TAP_TAPCELL_ROW_23_73 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 65280 ) FS ; + - TAP_TAPCELL_ROW_23_74 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 65280 ) FS ; + - TAP_TAPCELL_ROW_24_75 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 68000 ) N ; + - TAP_TAPCELL_ROW_24_76 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 68000 ) N ; + - TAP_TAPCELL_ROW_24_77 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 68000 ) N ; + - TAP_TAPCELL_ROW_25_78 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 70720 ) FS ; + - TAP_TAPCELL_ROW_25_79 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 70720 ) FS ; + - TAP_TAPCELL_ROW_25_80 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 70720 ) FS ; + - TAP_TAPCELL_ROW_26_81 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 73440 ) N ; + - TAP_TAPCELL_ROW_26_82 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 73440 ) N ; + - TAP_TAPCELL_ROW_26_83 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 73440 ) N ; + - TAP_TAPCELL_ROW_27_84 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 76160 ) FS ; + - TAP_TAPCELL_ROW_27_85 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 76160 ) FS ; + - TAP_TAPCELL_ROW_27_86 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 76160 ) FS ; + - TAP_TAPCELL_ROW_28_87 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 78880 ) N ; + - TAP_TAPCELL_ROW_28_88 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 78880 ) N ; + - TAP_TAPCELL_ROW_28_89 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 78880 ) N ; + - TAP_TAPCELL_ROW_29_90 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 81600 ) FS ; + - TAP_TAPCELL_ROW_29_91 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 81600 ) FS ; + - TAP_TAPCELL_ROW_29_92 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 81600 ) FS ; + - TAP_TAPCELL_ROW_29_93 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 81600 ) FS ; + - TAP_TAPCELL_ROW_29_94 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 81600 ) FS ; + - TAP_TAPCELL_ROW_29_95 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 81600 ) FS ; + - TAP_TAPCELL_ROW_2_10 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 8160 ) N ; + - TAP_TAPCELL_ROW_2_11 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 8160 ) N ; + - TAP_TAPCELL_ROW_2_9 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 8160 ) N ; + - TAP_TAPCELL_ROW_3_12 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 10880 ) FS ; + - TAP_TAPCELL_ROW_3_13 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 10880 ) FS ; + - TAP_TAPCELL_ROW_3_14 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 10880 ) FS ; + - TAP_TAPCELL_ROW_4_15 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 13600 ) N ; + - TAP_TAPCELL_ROW_4_16 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 13600 ) N ; + - TAP_TAPCELL_ROW_4_17 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 13600 ) N ; + - TAP_TAPCELL_ROW_5_18 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 16320 ) FS ; + - TAP_TAPCELL_ROW_5_19 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 16320 ) FS ; + - TAP_TAPCELL_ROW_5_20 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 16320 ) FS ; + - TAP_TAPCELL_ROW_6_21 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 19040 ) N ; + - TAP_TAPCELL_ROW_6_22 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 19040 ) N ; + - TAP_TAPCELL_ROW_6_23 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 19040 ) N ; + - TAP_TAPCELL_ROW_7_24 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 21760 ) FS ; + - TAP_TAPCELL_ROW_7_25 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 21760 ) FS ; + - TAP_TAPCELL_ROW_7_26 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 21760 ) FS ; + - TAP_TAPCELL_ROW_8_27 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 15180 24480 ) N ; + - TAP_TAPCELL_ROW_8_28 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 42780 24480 ) N ; + - TAP_TAPCELL_ROW_8_29 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 70380 24480 ) N ; + - TAP_TAPCELL_ROW_9_30 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 28980 27200 ) FS ; + - TAP_TAPCELL_ROW_9_31 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 56580 27200 ) FS ; + - TAP_TAPCELL_ROW_9_32 sky130_fd_sc_hd__tapvpwrvgnd_1 + SOURCE DIST + FIXED ( 84180 27200 ) FS ; + - _358_ sky130_fd_sc_hd__nor4_1 + PLACED ( 18860 46240 ) N ; + - _361_ sky130_fd_sc_hd__nor4_1 + PLACED ( 29440 32640 ) FS ; + - _364_ sky130_fd_sc_hd__nor4_1 + PLACED ( 64400 43520 ) FS ; + - _367_ sky130_fd_sc_hd__nor4_1 + PLACED ( 57040 43520 ) FS ; + - _368_ sky130_fd_sc_hd__nand4_1 + PLACED ( 36340 46240 ) N ; + - _372_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 34960 65280 ) FS ; + - _373_ sky130_fd_sc_hd__nor2_1 + PLACED ( 37720 65280 ) FS ; + - _374_ sky130_fd_sc_hd__inv_8 + PLACED ( 48760 59840 ) FS ; + - _376_ sky130_fd_sc_hd__clkinv_2 + PLACED ( 46000 62560 ) N ; + - _377_ sky130_fd_sc_hd__and3_1 + PLACED ( 40480 68000 ) N ; + - _378_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39560 76160 ) FS ; + - _379_ sky130_fd_sc_hd__inv_1 + PLACED ( 37260 70720 ) FS ; + - _380_ sky130_fd_sc_hd__o211ai_1 + PLACED ( 38640 70720 ) FS ; + - _382_ sky130_fd_sc_hd__nor2_1 + PLACED ( 37260 62560 ) N ; + - _383_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 38640 68000 ) N ; + - _384_ sky130_fd_sc_hd__nor2_1 + PLACED ( 35880 70720 ) FS ; + - _385_ sky130_fd_sc_hd__xor2_1 + PLACED ( 11500 24480 ) N ; + - _387_ sky130_fd_sc_hd__inv_1 + PLACED ( 74060 32640 ) FS ; + - _388_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 68080 46240 ) N ; + - _389_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 67160 43520 ) FS ; + - _390_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 73140 57120 ) N ; + - _391_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 71760 54400 ) FS ; + - _392_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 74060 54400 ) FS ; + - _393_ sky130_fd_sc_hd__xor2_1 + PLACED ( 79580 43520 ) FS ; + - _394_ sky130_fd_sc_hd__nor4_1 + PLACED ( 69920 43520 ) FS ; + - _395_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 57960 46240 ) N ; + - _397_ sky130_fd_sc_hd__xnor2_2 + PLACED ( 57040 51680 ) N ; + - _398_ sky130_fd_sc_hd__nand2_1 + PLACED ( 61640 46240 ) N ; + - _399_ sky130_fd_sc_hd__xor2_1 + PLACED ( 57040 38080 ) FS ; + - _400_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 62100 29920 ) N ; + - _401_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 58880 35360 ) N ; + - _402_ sky130_fd_sc_hd__nand2_1 + PLACED ( 62100 38080 ) FS ; + - _403_ sky130_fd_sc_hd__nor3_1 + PLACED ( 60260 38080 ) FS ; + - _404_ sky130_fd_sc_hd__nand2_1 + PLACED ( 66700 38080 ) FS ; + - _405_ sky130_fd_sc_hd__clkinvlp_4 + PLACED ( 38640 24480 ) N ; + - _406_ sky130_fd_sc_hd__nor2_2 + PLACED ( 36800 32640 ) FS ; + - _407_ sky130_fd_sc_hd__inv_1 + PLACED ( 23460 27200 ) FS ; + - _408_ sky130_fd_sc_hd__nand2b_4 + PLACED ( 17480 27200 ) FS ; + - _409_ sky130_fd_sc_hd__maj3_4 + PLACED ( 29440 27200 ) FS ; + - _410_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 40480 29920 ) N ; + - _411_ sky130_fd_sc_hd__nor2_1 + PLACED ( 41400 32640 ) FS ; + - _412_ sky130_fd_sc_hd__o21ai_4 + PLACED ( 36800 35360 ) N ; + - _414_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 21620 54400 ) FS ; + - _415_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 19320 57120 ) N ; + - _416_ sky130_fd_sc_hd__nand2_1 + PLACED ( 21620 57120 ) N ; + - _417_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 30360 38080 ) FS ; + - _419_ sky130_fd_sc_hd__nor2b_2 + PLACED ( 17480 35360 ) N ; + - _420_ sky130_fd_sc_hd__nand2_1 + PLACED ( 22540 40800 ) N ; + - _421_ sky130_fd_sc_hd__inv_1 + PLACED ( 17940 43520 ) FS ; + - _422_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23000 43520 ) FS ; + - _423_ sky130_fd_sc_hd__and4b_2 + PLACED ( 24840 43520 ) FS ; + - _424_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39100 32640 ) FS ; + - _425_ sky130_fd_sc_hd__o211ai_4 + PLACED ( 35420 38080 ) FS ; + - _426_ sky130_fd_sc_hd__nand2b_2 + PLACED ( 18860 32640 ) FS ; + - _427_ sky130_fd_sc_hd__maj3_1 + PLACED ( 19320 43520 ) FS ; + - _428_ sky130_fd_sc_hd__inv_1 + PLACED ( 13800 57120 ) N ; + - _429_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 15180 54400 ) FS ; + - _430_ sky130_fd_sc_hd__maj3_1 + PLACED ( 15640 57120 ) N ; + - _431_ sky130_fd_sc_hd__o21ai_4 + PLACED ( 23920 46240 ) N ; + - _432_ sky130_fd_sc_hd__a31o_2 + PLACED ( 39560 40800 ) N ; + - _433_ sky130_fd_sc_hd__inv_1 + PLACED ( 76360 48960 ) FS ; + - _434_ sky130_fd_sc_hd__maj3_1 + PLACED ( 70380 48960 ) FS ; + - _435_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 72680 51680 ) N ; + - _436_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 59340 43520 ) FS ; + - _437_ sky130_fd_sc_hd__inv_1 + PLACED ( 49680 46240 ) N ; + - _438_ sky130_fd_sc_hd__inv_1 + PLACED ( 50600 29920 ) N ; + - _439_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 54280 32640 ) FS ; + - _440_ sky130_fd_sc_hd__o31ai_4 + PLACED ( 51060 35360 ) N ; + - _441_ sky130_fd_sc_hd__maj3_1 + PLACED ( 54280 46240 ) N ; + - _442_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 61640 43520 ) FS ; + - _443_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 62100 40800 ) N ; + - _444_ sky130_fd_sc_hd__o211a_1 + PLACED ( 66700 40800 ) N ; + - _445_ sky130_fd_sc_hd__maj3_4 + PLACED ( 72680 35360 ) N ; + - _446_ sky130_fd_sc_hd__nand2_8 + PLACED ( 39100 59840 ) FS ; + - _448_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 10120 27200 ) FS ; + - _450_ sky130_fd_sc_hd__nand2_1 + PLACED ( 2300 27200 ) FS ; + - _451_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4140 27200 ) FS ; + - _453_ sky130_fd_sc_hd__inv_1 + PLACED ( 26680 19040 ) N ; + - _454_ sky130_fd_sc_hd__inv_1 + PLACED ( 72680 29920 ) N ; + - _455_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 68080 38080 ) FS ; + - _456_ sky130_fd_sc_hd__maj3_4 + PLACED ( 69000 32640 ) FS ; + - _458_ sky130_fd_sc_hd__nor3_1 + PLACED ( 21620 21760 ) FS ; + - _459_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 21160 19040 ) N ; + - _460_ sky130_fd_sc_hd__nand2_1 + PLACED ( 17480 10880 ) FS ; + - _461_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 17020 13600 ) N ; + - _462_ sky130_fd_sc_hd__nor3_1 + PLACED ( 31740 21760 ) FS ; + - _463_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 33580 21760 ) FS ; + - _464_ sky130_fd_sc_hd__nand2_1 + PLACED ( 34500 10880 ) FS ; + - _465_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 33580 13600 ) N ; + - _466_ sky130_fd_sc_hd__inv_1 + PLACED ( 30360 43520 ) FS ; + - _468_ sky130_fd_sc_hd__nor3_1 + PLACED ( 29440 48960 ) FS ; + - _469_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 28980 51680 ) N ; + - _471_ sky130_fd_sc_hd__nand2_1 + PLACED ( 8740 54400 ) FS ; + - _472_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 27140 51680 ) N ; + - _473_ sky130_fd_sc_hd__inv_1 + PLACED ( 11500 35360 ) N ; + - _474_ sky130_fd_sc_hd__nor3_1 + PLACED ( 12420 38080 ) FS ; + - _475_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10580 38080 ) FS ; + - _476_ sky130_fd_sc_hd__nand2_1 + PLACED ( 1380 38080 ) FS ; + - _477_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 38080 ) FS ; + - _478_ sky130_fd_sc_hd__inv_1 + PLACED ( 9660 46240 ) N ; + - _479_ sky130_fd_sc_hd__nor3_1 + PLACED ( 11040 48960 ) FS ; + - _480_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10580 51680 ) N ; + - _481_ sky130_fd_sc_hd__nand2_1 + PLACED ( 5060 51680 ) N ; + - _482_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 51680 ) N ; + - _483_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 11500 54400 ) FS ; + - _484_ sky130_fd_sc_hd__nand2_1 + PLACED ( 1380 57120 ) N ; + - _485_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 3220 54400 ) FS ; + - _486_ sky130_fd_sc_hd__inv_1 + PLACED ( 11500 65280 ) FS ; + - _487_ sky130_fd_sc_hd__nor3_1 + PLACED ( 11040 62560 ) N ; + - _488_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 9200 62560 ) N ; + - _489_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3220 62560 ) N ; + - _490_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4600 62560 ) N ; + - _491_ sky130_fd_sc_hd__nor3_1 + PLACED ( 47840 24480 ) N ; + - _492_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 46460 21760 ) FS ; + - _493_ sky130_fd_sc_hd__nand2_1 + PLACED ( 45080 13600 ) N ; + - _494_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 45080 16320 ) FS ; + - _495_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 52900 19040 ) N ; + - _496_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51060 10880 ) FS ; + - _497_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50140 13600 ) N ; + - _498_ sky130_fd_sc_hd__inv_1 + PLACED ( 53820 51680 ) N ; + - _499_ sky130_fd_sc_hd__nor3_1 + PLACED ( 44160 54400 ) FS ; + - _500_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 42320 54400 ) FS ; + - _501_ sky130_fd_sc_hd__nand2_1 + PLACED ( 38640 62560 ) N ; + - _502_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 38180 54400 ) FS ; + - _504_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 52440 62560 ) N ; + - _505_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51520 70720 ) FS ; + - _506_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 62560 ) N ; + - _507_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 65320 19040 ) N ; + - _508_ sky130_fd_sc_hd__nand2_1 + PLACED ( 65780 10880 ) FS ; + - _509_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 64860 13600 ) N ; + - _510_ sky130_fd_sc_hd__inv_1 + PLACED ( 74520 51680 ) N ; + - _511_ sky130_fd_sc_hd__nor3_1 + PLACED ( 76360 54400 ) FS ; + - _512_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 75900 57120 ) N ; + - _513_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80040 59840 ) FS ; + - _514_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 78200 54400 ) FS ; + - _515_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 73600 65280 ) FS ; + - _516_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80040 65280 ) FS ; + - _517_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 77280 65280 ) FS ; + - _518_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 74980 27200 ) FS ; + - _519_ sky130_fd_sc_hd__nand2_1 + PLACED ( 77740 21760 ) FS ; + - _520_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 75900 21760 ) FS ; + - _521_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 10120 21760 ) FS ; + - _523_ sky130_fd_sc_hd__nand3_1 + PLACED ( 15640 24480 ) N ; + - _524_ sky130_fd_sc_hd__o22ai_1 + PLACED ( 13340 21760 ) FS ; + - _525_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3680 21760 ) FS ; + - _526_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 5980 21760 ) FS ; + - _527_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 17020 21760 ) FS ; + - _529_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 26220 21760 ) FS ; + - _530_ sky130_fd_sc_hd__nor2_1 + PLACED ( 24840 27200 ) FS ; + - _531_ sky130_fd_sc_hd__nor2_1 + PLACED ( 27140 24480 ) N ; + - _532_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 28980 24480 ) N ; + - _533_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 22080 24480 ) N ; + - _534_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 23920 24480 ) N ; + - _535_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 23920 21760 ) FS ; + - _536_ sky130_fd_sc_hd__nand2_1 + PLACED ( 29440 10880 ) FS ; + - _537_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 24840 19040 ) N ; + - _538_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 27140 27200 ) FS ; + - _539_ sky130_fd_sc_hd__or2_0 + PLACED ( 31280 24480 ) N ; + - _540_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 34040 24480 ) N ; + - _541_ sky130_fd_sc_hd__nor3_1 + PLACED ( 34500 29920 ) N ; + - _542_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 37720 29920 ) N ; + - _543_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 34960 27200 ) FS ; + - _544_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 36800 27200 ) FS ; + - _545_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 35880 24480 ) N ; + - _546_ sky130_fd_sc_hd__nand2_1 + PLACED ( 39560 19040 ) N ; + - _547_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 36800 19040 ) N ; + - _548_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 33580 35360 ) N ; + - _549_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 38640 46240 ) N ; + - _550_ sky130_fd_sc_hd__nor3_1 + PLACED ( 37720 48960 ) FS ; + - _552_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 36340 43520 ) FS ; + - _553_ sky130_fd_sc_hd__nand2_1 + PLACED ( 33120 43520 ) FS ; + - _554_ sky130_fd_sc_hd__nand2_1 + PLACED ( 31740 46240 ) N ; + - _555_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 33120 46240 ) N ; + - _556_ sky130_fd_sc_hd__and3_1 + PLACED ( 32200 48960 ) FS ; + - _557_ sky130_fd_sc_hd__nand2_1 + PLACED ( 8280 46240 ) N ; + - _558_ sky130_fd_sc_hd__o41ai_1 + PLACED ( 34500 48960 ) FS ; + - _559_ sky130_fd_sc_hd__nor2b_2 + PLACED ( 32660 40800 ) N ; + - _560_ sky130_fd_sc_hd__a2111oi_4 + PLACED ( 24380 29920 ) N ; + - _561_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 33120 32640 ) FS ; + - _562_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 28980 35360 ) N ; + - _563_ sky130_fd_sc_hd__nor2_1 + PLACED ( 27140 35360 ) N ; + - _564_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 11040 32640 ) FS ; + - _565_ sky130_fd_sc_hd__inv_1 + PLACED ( 16560 29920 ) N ; + - _566_ sky130_fd_sc_hd__nand3_1 + PLACED ( 13340 35360 ) N ; + - _567_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 15640 35360 ) N ; + - _568_ sky130_fd_sc_hd__nand2_1 + PLACED ( 20240 29920 ) N ; + - _569_ sky130_fd_sc_hd__nand2_1 + PLACED ( 18860 29920 ) N ; + - _570_ sky130_fd_sc_hd__a32o_1 + PLACED ( 15180 32640 ) FS ; + - _571_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 12880 32640 ) FS ; + - _572_ sky130_fd_sc_hd__nand2_1 + PLACED ( 3220 29920 ) N ; + - _573_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 4600 29920 ) N ; + - _574_ sky130_fd_sc_hd__o31ai_4 + PLACED ( 21160 38080 ) FS ; + - _575_ sky130_fd_sc_hd__nand2_1 + PLACED ( 11960 40800 ) N ; + - _576_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 12880 43520 ) FS ; + - _577_ sky130_fd_sc_hd__nand2_1 + PLACED ( 15640 46240 ) N ; + - _578_ sky130_fd_sc_hd__nand2_1 + PLACED ( 12880 48960 ) FS ; + - _579_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 14260 48960 ) FS ; + - _580_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 17020 46240 ) N ; + - _581_ sky130_fd_sc_hd__a32o_1 + PLACED ( 11500 46240 ) N ; + - _582_ sky130_fd_sc_hd__nand2_1 + PLACED ( 6900 46240 ) N ; + - _583_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 9660 43520 ) FS ; + - _584_ sky130_fd_sc_hd__inv_1 + PLACED ( 21620 59840 ) FS ; + - _585_ sky130_fd_sc_hd__nand2_1 + PLACED ( 21160 46240 ) N ; + - _586_ sky130_fd_sc_hd__nor2_1 + PLACED ( 22540 46240 ) N ; + - _587_ sky130_fd_sc_hd__a21oi_2 + PLACED ( 22080 48960 ) FS ; + - _588_ sky130_fd_sc_hd__nor3_1 + PLACED ( 25760 57120 ) N ; + - _589_ sky130_fd_sc_hd__a21o_1 + PLACED ( 24380 62560 ) N ; + - _590_ sky130_fd_sc_hd__nand3_1 + PLACED ( 27140 62560 ) N ; + - _591_ sky130_fd_sc_hd__a21o_1 + PLACED ( 19320 48960 ) FS ; + - _592_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23920 57120 ) N ; + - _593_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 23000 59840 ) FS ; + - _594_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 24840 59840 ) FS ; + - _595_ sky130_fd_sc_hd__nor2_1 + PLACED ( 29900 68000 ) N ; + - _596_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 29440 62560 ) N ; + - _597_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 21620 62560 ) N ; + - _598_ sky130_fd_sc_hd__nand2_1 + PLACED ( 18860 65280 ) FS ; + - _599_ sky130_fd_sc_hd__maj3_2 + PLACED ( 21160 65280 ) FS ; + - _600_ sky130_fd_sc_hd__nor4_1 + PLACED ( 18860 62560 ) N ; + - _601_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 16100 59840 ) FS ; + - _602_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 16100 62560 ) N ; + - _603_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 13340 62560 ) N ; + - _604_ sky130_fd_sc_hd__or3_1 + PLACED ( 13800 59840 ) FS ; + - _605_ sky130_fd_sc_hd__nor2_1 + PLACED ( 19780 59840 ) FS ; + - _606_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 17020 65280 ) FS ; + - _607_ sky130_fd_sc_hd__inv_1 + PLACED ( 10120 65280 ) FS ; + - _608_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 13800 65280 ) FS ; + - _609_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 48760 29920 ) N ; + - _610_ sky130_fd_sc_hd__a31oi_4 + PLACED ( 43240 40800 ) N ; + - _611_ sky130_fd_sc_hd__nand3_1 + PLACED ( 52440 32640 ) FS ; + - _612_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 32640 ) FS ; + - _613_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 45540 32640 ) FS ; + - _614_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 47380 32640 ) FS ; + - _615_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 46000 29920 ) N ; + - _616_ sky130_fd_sc_hd__nand2_1 + PLACED ( 45080 21760 ) FS ; + - _617_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 46000 24480 ) N ; + - _618_ sky130_fd_sc_hd__maj3_1 + PLACED ( 52900 29920 ) N ; + - _619_ sky130_fd_sc_hd__nand2_1 + PLACED ( 55200 21760 ) FS ; + - _620_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 57040 21760 ) FS ; + - _621_ sky130_fd_sc_hd__nor2_1 + PLACED ( 57040 27200 ) FS ; + - _622_ sky130_fd_sc_hd__nor2_1 + PLACED ( 58420 27200 ) FS ; + - _623_ sky130_fd_sc_hd__nand2_1 + PLACED ( 54740 24480 ) N ; + - _624_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 56120 24480 ) N ; + - _625_ sky130_fd_sc_hd__nand3_1 + PLACED ( 59800 24480 ) N ; + - _626_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 59800 21760 ) FS ; + - _627_ sky130_fd_sc_hd__nand2_1 + PLACED ( 58880 10880 ) FS ; + - _628_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 57040 19040 ) N ; + - _629_ sky130_fd_sc_hd__nand2_1 + PLACED ( 51520 40800 ) N ; + - _630_ sky130_fd_sc_hd__a311oi_4 + PLACED ( 43240 43520 ) FS ; + - _631_ sky130_fd_sc_hd__inv_1 + PLACED ( 54280 38080 ) FS ; + - _632_ sky130_fd_sc_hd__nand2_1 + PLACED ( 52900 38080 ) FS ; + - _633_ sky130_fd_sc_hd__a311oi_4 + PLACED ( 43240 38080 ) FS ; + - _634_ sky130_fd_sc_hd__nor4_1 + PLACED ( 51060 46240 ) N ; + - _635_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50600 51680 ) N ; + - _636_ sky130_fd_sc_hd__nor3_4 + PLACED ( 46920 48960 ) FS ; + - _637_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 48760 51680 ) N ; + - _638_ sky130_fd_sc_hd__nand3_1 + PLACED ( 51980 54400 ) FS ; + - _639_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 50140 54400 ) FS ; + - _640_ sky130_fd_sc_hd__nor2_1 + PLACED ( 46460 51680 ) N ; + - _641_ sky130_fd_sc_hd__a32oi_1 + PLACED ( 46920 54400 ) FS ; + - _642_ sky130_fd_sc_hd__nor2_1 + PLACED ( 47840 62560 ) N ; + - _643_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 46460 59840 ) FS ; + - _644_ sky130_fd_sc_hd__maj3_1 + PLACED ( 57040 57120 ) N ; + - _645_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 63480 59840 ) FS ; + - _646_ sky130_fd_sc_hd__o21a_1 + PLACED ( 60720 59840 ) FS ; + - _647_ sky130_fd_sc_hd__o32ai_1 + PLACED ( 58880 62560 ) N ; + - _648_ sky130_fd_sc_hd__inv_1 + PLACED ( 55200 59840 ) FS ; + - _649_ sky130_fd_sc_hd__nand2_1 + PLACED ( 62100 62560 ) N ; + - _650_ sky130_fd_sc_hd__mux2_1 + PLACED ( 58880 65280 ) FS ; + - _651_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 56120 62560 ) N ; + - _652_ sky130_fd_sc_hd__nand2_1 + PLACED ( 59340 70720 ) FS ; + - _653_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 57040 65280 ) FS ; + - _654_ sky130_fd_sc_hd__o21a_1 + PLACED ( 59340 40800 ) N ; + - _655_ sky130_fd_sc_hd__a21oi_2 + PLACED ( 63480 38080 ) FS ; + - _656_ sky130_fd_sc_hd__nor2_1 + PLACED ( 67620 32640 ) FS ; + - _657_ sky130_fd_sc_hd__nor2_1 + PLACED ( 70840 29920 ) N ; + - _658_ sky130_fd_sc_hd__nand2_1 + PLACED ( 68080 29920 ) N ; + - _659_ sky130_fd_sc_hd__mux2i_1 + PLACED ( 63940 32640 ) FS ; + - _660_ sky130_fd_sc_hd__nand3_1 + PLACED ( 63940 27200 ) FS ; + - _661_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 68540 27200 ) FS ; + - _662_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 64400 29920 ) N ; + - _663_ sky130_fd_sc_hd__nor3_1 + PLACED ( 66240 29920 ) N ; + - _664_ sky130_fd_sc_hd__nand2_1 + PLACED ( 71300 27200 ) FS ; + - _665_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 65780 27200 ) FS ; + - _666_ sky130_fd_sc_hd__nor2_1 + PLACED ( 70840 46240 ) N ; + - _667_ sky130_fd_sc_hd__o211ai_2 + PLACED ( 57500 48960 ) FS ; + - _668_ sky130_fd_sc_hd__nand2b_1 + PLACED ( 65320 46240 ) N ; + - _669_ sky130_fd_sc_hd__nor2_1 + PLACED ( 55200 51680 ) N ; + - _670_ sky130_fd_sc_hd__maj3_1 + PLACED ( 57040 59840 ) FS ; + - _671_ sky130_fd_sc_hd__a21oi_1 + PLACED ( 68540 48960 ) FS ; + - _672_ sky130_fd_sc_hd__o21ai_2 + PLACED ( 65320 48960 ) FS ; + - _673_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 74060 48960 ) FS ; + - _674_ sky130_fd_sc_hd__a21o_1 + PLACED ( 72680 43520 ) FS ; + - _675_ sky130_fd_sc_hd__a32o_1 + PLACED ( 72680 46240 ) N ; + - _676_ sky130_fd_sc_hd__nand2_1 + PLACED ( 78200 43520 ) FS ; + - _677_ sky130_fd_sc_hd__mux2_1 + PLACED ( 76360 46240 ) N ; + - _678_ sky130_fd_sc_hd__nor3_1 + PLACED ( 76360 43520 ) FS ; + - _679_ sky130_fd_sc_hd__nand2_1 + PLACED ( 78200 40800 ) N ; + - _680_ sky130_fd_sc_hd__o31ai_1 + PLACED ( 75440 40800 ) N ; + - _681_ sky130_fd_sc_hd__a211oi_1 + PLACED ( 69000 54400 ) FS ; + - _682_ sky130_fd_sc_hd__a21o_1 + PLACED ( 66240 54400 ) FS ; + - _683_ sky130_fd_sc_hd__o21ai_1 + PLACED ( 70840 51680 ) N ; + - _684_ sky130_fd_sc_hd__or2_1 + PLACED ( 70840 57120 ) N ; + - _685_ sky130_fd_sc_hd__nand2_1 + PLACED ( 65780 62560 ) N ; + - _686_ sky130_fd_sc_hd__and2_0 + PLACED ( 66700 57120 ) N ; + - _687_ sky130_fd_sc_hd__o2111ai_1 + PLACED ( 67160 59840 ) FS ; + - _688_ sky130_fd_sc_hd__nand2_1 + PLACED ( 69000 57120 ) N ; + - _689_ sky130_fd_sc_hd__or3_1 + PLACED ( 70380 59840 ) FS ; + - _690_ sky130_fd_sc_hd__o311ai_1 + PLACED ( 67160 62560 ) N ; + - _691_ sky130_fd_sc_hd__nand2_1 + PLACED ( 66240 70720 ) FS ; + - _692_ sky130_fd_sc_hd__nor2_1 + PLACED ( 71300 62560 ) N ; + - _693_ sky130_fd_sc_hd__nor2_1 + PLACED ( 72220 65280 ) FS ; + - _694_ sky130_fd_sc_hd__nor3_1 + PLACED ( 66240 65280 ) FS ; + - _695_ sky130_fd_sc_hd__a2111o_1 + PLACED ( 68080 65280 ) FS ; + - _696_ sky130_fd_sc_hd__a22oi_1 + PLACED ( 66700 68000 ) N ; + - _697_ sky130_fd_sc_hd__nand2_1 + PLACED ( 75440 32640 ) FS ; + - _698_ sky130_fd_sc_hd__nand3_1 + PLACED ( 74060 29920 ) N ; + - _699_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 75900 29920 ) N ; + - _700_ sky130_fd_sc_hd__a31oi_1 + PLACED ( 76820 32640 ) FS ; + - _701_ sky130_fd_sc_hd__nand2_1 + PLACED ( 80960 24480 ) N ; + - _702_ sky130_fd_sc_hd__o21ai_0 + PLACED ( 78660 29920 ) N ; + - _703_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 48960 ) FS ; + - _704_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 54400 ) FS ; + - _705_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 70840 40800 ) N ; + - _706_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80500 46240 ) N ; + - _707_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 73600 59840 ) FS ; + - _708_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80040 32640 ) FS ; + - _709_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 80040 35360 ) N ; + - _710_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 24840 10880 ) FS ; + - _711_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 28980 13600 ) N ; + - _712_ sky130_fd_sc_hd__nor2_1 + PLACED ( 42780 32640 ) FS ; + - _713_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 40020 27200 ) FS ; + - _714_ sky130_fd_sc_hd__nor2_1 + PLACED ( 31740 43520 ) FS ; + - _715_ sky130_fd_sc_hd__nor2_1 + PLACED ( 31280 40800 ) N ; + - _716_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 28060 40800 ) N ; + - _717_ sky130_fd_sc_hd__nor2b_1 + PLACED ( 25300 32640 ) FS ; + - _718_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 22080 32640 ) FS ; + - _719_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 8280 40800 ) N ; + - _720_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 4600 40800 ) N ; + - _721_ sky130_fd_sc_hd__and2_0 + PLACED ( 18860 54400 ) FS ; + - _722_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 20240 51680 ) N ; + - _723_ sky130_fd_sc_hd__xor2_1 + PLACED ( 16100 68000 ) N ; + - _724_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 19320 68000 ) N ; + - _725_ sky130_fd_sc_hd__xnor2_1 + PLACED ( 62100 35360 ) N ; + - _726_ sky130_fd_sc_hd__xor2_1 + PLACED ( 58880 29920 ) N ; + - clkbuf_0_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 38180 43520 ) FS ; + - clkbuf_2_0__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 22080 35360 ) N ; + - clkbuf_2_1__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 23920 54400 ) FS ; + - clkbuf_2_2__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 58420 32640 ) FS ; + - clkbuf_2_3__f_clk sky130_fd_sc_hd__clkbuf_8 + SOURCE TIMING + PLACED ( 57040 54400 ) FS ; + - clkload0 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 20700 35360 ) N ; + - clkload1 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 57040 32640 ) FS ; + - clkload2 sky130_fd_sc_hd__clkinv_2 + SOURCE TIMING + PLACED ( 54740 54400 ) FS ; + - ctrl.state.out\[1\]$_DFF_P_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 31280 68000 ) N ; + - ctrl.state.out\[2\]$_DFF_P_ sky130_fd_sc_hd__dfxtp_4 + PLACED ( 39100 65280 ) FS ; + - dpath.a_lt_b$in0\[0\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 5980 19040 ) N ; + - dpath.a_lt_b$in0\[10\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 46460 57120 ) N ; + - dpath.a_lt_b$in0\[11\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 56580 68000 ) N ; + - dpath.a_lt_b$in0\[12\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 63020 24480 ) N ; + - dpath.a_lt_b$in0\[13\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 76820 38080 ) FS ; + - dpath.a_lt_b$in0\[14\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 70840 68000 ) N ; + - dpath.a_lt_b$in0\[15\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 76820 27200 ) FS ; + - dpath.a_lt_b$in0\[1\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 21620 13600 ) N ; + - dpath.a_lt_b$in0\[2\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 36340 21760 ) FS ; + - dpath.a_lt_b$in0\[3\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 34960 51680 ) N ; + - dpath.a_lt_b$in0\[4\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 32640 ) FS ; + - dpath.a_lt_b$in0\[5\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 1840 43520 ) FS ; + - dpath.a_lt_b$in0\[6\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 29440 59840 ) FS ; + - dpath.a_lt_b$in0\[7\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 7820 68000 ) N ; + - dpath.a_lt_b$in0\[8\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 44620 27200 ) FS ; + - dpath.a_lt_b$in0\[9\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 53820 13600 ) N ; + - dpath.a_lt_b$in1\[0\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 3680 24480 ) N ; + - dpath.a_lt_b$in1\[10\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 34960 57120 ) N ; + - dpath.a_lt_b$in1\[11\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 47840 65280 ) FS ; + - dpath.a_lt_b$in1\[12\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 63020 16320 ) FS ; + - dpath.a_lt_b$in1\[13\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 77740 57120 ) N ; + - dpath.a_lt_b$in1\[14\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 72680 62560 ) N ; + - dpath.a_lt_b$in1\[15\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 73140 24480 ) N ; + - dpath.a_lt_b$in1\[1\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 14260 16320 ) FS ; + - dpath.a_lt_b$in1\[2\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 32660 16320 ) FS ; + - dpath.a_lt_b$in1\[3\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 29440 54400 ) FS ; + - dpath.a_lt_b$in1\[4\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 3680 35360 ) N ; + - dpath.a_lt_b$in1\[5\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 48960 ) FS ; + - dpath.a_lt_b$in1\[6\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3220 57120 ) N ; + - dpath.a_lt_b$in1\[7\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 3680 59840 ) FS ; + - dpath.a_lt_b$in1\[8\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_2 + PLACED ( 43700 19040 ) N ; + - dpath.a_lt_b$in1\[9\]$_DFFE_PP_ sky130_fd_sc_hd__dfxtp_1 + PLACED ( 49220 16320 ) FS ; + - input1 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 21760 ) FS ; + - input10 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 38640 2720 ) N ; + - input11 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 5520 46240 ) N ; + - input12 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 17480 2720 ) N ; + - input13 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 29920 ) N ; + - input14 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2760 46240 ) N ; + - input15 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 28980 78880 ) N ; + - input16 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 7360 65280 ) FS ; + - input17 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 45080 5440 ) FS ; + - input18 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 58880 5440 ) FS ; + - input19 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 47840 81600 ) FS ; + - input2 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 37260 81600 ) FS ; + - input20 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 59340 81600 ) FS ; + - input21 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 24480 ) N ; + - input22 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 40800 ) N ; + - input23 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 34960 5440 ) FS ; + - input24 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 66240 81600 ) FS ; + - input25 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 29920 ) N ; + - input26 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 54400 ) FS ; + - input27 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 35360 ) N ; + - input28 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 51680 ) N ; + - input29 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 59840 ) FS ; + - input3 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 52440 81600 ) FS ; + - input30 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 62560 ) N ; + - input31 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 45080 2720 ) N ; + - input32 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 51060 2720 ) N ; + - input33 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 37720 78880 ) N ; + - input34 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 35880 81600 ) FS ; + - input35 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 39100 81600 ) FS ; + - input4 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 66240 2720 ) N ; + - input5 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 81420 59840 ) FS ; + - input6 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 81420 65280 ) FS ; + - input7 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 79120 21760 ) FS ; + - input8 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1840 24480 ) N ; + - input9 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 25760 2720 ) N ; + - output36 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2300 65280 ) FS ; + - output37 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 5980 27200 ) FS ; + - output38 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82340 48960 ) FS ; + - output39 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 54400 ) FS ; + - output40 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 79580 40800 ) N ; + - output41 sky130_fd_sc_hd__clkbuf_2 + SOURCE TIMING + PLACED ( 83720 46240 ) N ; + - output42 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 82800 59840 ) FS ; + - output43 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 84180 35360 ) N ; + - output44 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 29900 2720 ) N ; + - output45 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 40020 2720 ) N ; + - output46 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 40800 ) N ; + - output47 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 1380 32640 ) FS ; + - output48 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 2760 40800 ) N ; + - output49 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 13800 51680 ) N ; + - output50 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 20700 81600 ) FS ; + - output51 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 75440 38080 ) FS ; + - output52 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 80500 29920 ) N ; + - output53 sky130_fd_sc_hd__clkbuf_1 + SOURCE TIMING + PLACED ( 39100 78880 ) N ; + - rebuffer1 sky130_fd_sc_hd__clkbuf_2 + SOURCE TIMING + PLACED ( 66240 51680 ) N ; + - rebuffer2 sky130_fd_sc_hd__dlymetal6s2s_1 + SOURCE TIMING + PLACED ( 45080 46240 ) N ; + - req_rdy$_DFF_P_ sky130_fd_sc_hd__dfxtp_4 + PLACED ( 41400 70720 ) FS ; +END COMPONENTS +PINS 54 ; + - clk + NET clk + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 71060 ) N ; + - req_msg[0] + NET req_msg[0] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 24820 ) N ; + - req_msg[10] + NET req_msg[10] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 37950 86597 ) N ; + - req_msg[11] + NET req_msg[11] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 53590 86597 ) N ; + - req_msg[12] + NET req_msg[12] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 67390 242 ) N ; + - req_msg[13] + NET req_msg[13] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 58820 ) N ; + - req_msg[14] + NET req_msg[14] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 65620 ) N ; + - req_msg[15] + NET req_msg[15] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 26180 ) N ; + - req_msg[16] + NET req_msg[16] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 23460 ) N ; + - req_msg[17] + NET req_msg[17] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 26910 242 ) N ; + - req_msg[18] + NET req_msg[18] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 38870 242 ) N ; + - req_msg[19] + NET req_msg[19] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 47940 ) N ; + - req_msg[1] + NET req_msg[1] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 17710 242 ) N ; + - req_msg[20] + NET req_msg[20] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 30260 ) N ; + - req_msg[21] + NET req_msg[21] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 45220 ) N ; + - req_msg[22] + NET req_msg[22] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 28750 86597 ) N ; + - req_msg[23] + NET req_msg[23] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 65620 ) N ; + - req_msg[24] + NET req_msg[24] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 47150 242 ) N ; + - req_msg[25] + NET req_msg[25] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 60030 242 ) N ; + - req_msg[26] + NET req_msg[26] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 48070 86597 ) N ; + - req_msg[27] + NET req_msg[27] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 59110 86597 ) N ; + - req_msg[28] + NET req_msg[28] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 27540 ) N ; + - req_msg[29] + NET req_msg[29] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 42500 ) N ; + - req_msg[2] + NET req_msg[2] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 36110 242 ) N ; + - req_msg[30] + NET req_msg[30] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 66470 86597 ) N ; + - req_msg[31] + NET req_msg[31] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 28900 ) N ; + - req_msg[3] + NET req_msg[3] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 54740 ) N ; + - req_msg[4] + NET req_msg[4] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 37060 ) N ; + - req_msg[5] + NET req_msg[5] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 52020 ) N ; + - req_msg[6] + NET req_msg[6] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 56100 ) N ; + - req_msg[7] + NET req_msg[7] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 64260 ) N ; + - req_msg[8] + NET req_msg[8] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 46230 242 ) N ; + - req_msg[9] + NET req_msg[9] + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 50830 242 ) N ; + - req_rdy + NET req_rdy + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 68340 ) N ; + - req_val + NET req_val + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 40710 86597 ) N ; + - reset + NET reset + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 37030 86597 ) N ; + - resp_msg[0] + NET resp_msg[0] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 27540 ) N ; + - resp_msg[10] + NET resp_msg[10] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 50660 ) N ; + - resp_msg[11] + NET resp_msg[11] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 56100 ) N ; + - resp_msg[12] + NET resp_msg[12] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 41140 ) N ; + - resp_msg[13] + NET resp_msg[13] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 49300 ) N ; + - resp_msg[14] + NET resp_msg[14] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 60180 ) N ; + - resp_msg[15] + NET resp_msg[15] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 37060 ) N ; + - resp_msg[1] + NET resp_msg[1] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 29670 242 ) N ; + - resp_msg[2] + NET resp_msg[2] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 39790 242 ) N ; + - resp_msg[3] + NET resp_msg[3] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 42500 ) N ; + - resp_msg[4] + NET resp_msg[4] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 35700 ) N ; + - resp_msg[5] + NET resp_msg[5] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 43860 ) N ; + - resp_msg[6] + NET resp_msg[6] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 400 53380 ) N ; + - resp_msg[7] + NET resp_msg[7] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 21390 86597 ) N ; + - resp_msg[8] + NET resp_msg[8] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 39780 ) N ; + - resp_msg[9] + NET resp_msg[9] + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met3 ( -400 -150 ) ( 400 150 ) + + PLACED ( 86440 31620 ) N ; + - resp_rdy + NET resp_rdy + DIRECTION INPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 39790 86597 ) N ; + - resp_val + NET resp_val + DIRECTION OUTPUT + USE SIGNAL + + PORT + + LAYER met2 ( -70 -242 ) ( 70 243 ) + + PLACED ( 38870 86597 ) N ; +END PINS +SPECIALNETS 2 ; + - VDD ( * VPB ) ( * VPWR ) + USE POWER + + ROUTED met5 1600 + SHAPE STRIPE ( 27720 84320 ) ( 83600 84320 ) + NEW met5 1600 + SHAPE STRIPE ( 27720 57120 ) ( 83600 57120 ) + NEW met5 1600 + SHAPE STRIPE ( 27720 29920 ) ( 83600 29920 ) + NEW met4 1600 + SHAPE STRIPE ( 82800 5200 ) ( 82800 85120 ) + NEW met4 1600 + SHAPE STRIPE ( 55660 5200 ) ( 55660 85120 ) + NEW met4 1600 + SHAPE STRIPE ( 28520 5200 ) ( 28520 85120 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 81600 ) ( 85560 81600 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 76160 ) ( 85560 76160 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 70720 ) ( 85560 70720 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 65280 ) ( 85560 65280 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 59840 ) ( 85560 59840 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 54400 ) ( 85560 54400 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 48960 ) ( 85560 48960 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 43520 ) ( 85560 43520 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 38080 ) ( 85560 38080 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 32640 ) ( 85560 32640 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 27200 ) ( 85560 27200 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 21760 ) ( 85560 21760 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 16320 ) ( 85560 16320 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 10880 ) ( 85560 10880 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 5440 ) ( 85560 5440 ) + NEW met4 0 + SHAPE STRIPE ( 82800 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 82800 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 82800 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 55660 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 84320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 57120 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 28520 29920 ) via5_6_1600_1600_1_1_1600_1600 + NEW met3 330 + SHAPE STRIPE ( 82010 81600 ) ( 83590 81600 ) + NEW met3 0 + SHAPE STRIPE ( 82800 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 81600 ) ( 83570 81600 ) + NEW met2 0 + SHAPE STRIPE ( 82800 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 76160 ) ( 83590 76160 ) + NEW met3 0 + SHAPE STRIPE ( 82800 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 76160 ) ( 83570 76160 ) + NEW met2 0 + SHAPE STRIPE ( 82800 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 70720 ) ( 83590 70720 ) + NEW met3 0 + SHAPE STRIPE ( 82800 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 70720 ) ( 83570 70720 ) + NEW met2 0 + SHAPE STRIPE ( 82800 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 65280 ) ( 83590 65280 ) + NEW met3 0 + SHAPE STRIPE ( 82800 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 65280 ) ( 83570 65280 ) + NEW met2 0 + SHAPE STRIPE ( 82800 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 59840 ) ( 83590 59840 ) + NEW met3 0 + SHAPE STRIPE ( 82800 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 59840 ) ( 83570 59840 ) + NEW met2 0 + SHAPE STRIPE ( 82800 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 54400 ) ( 83590 54400 ) + NEW met3 0 + SHAPE STRIPE ( 82800 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 54400 ) ( 83570 54400 ) + NEW met2 0 + SHAPE STRIPE ( 82800 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 48960 ) ( 83590 48960 ) + NEW met3 0 + SHAPE STRIPE ( 82800 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 48960 ) ( 83570 48960 ) + NEW met2 0 + SHAPE STRIPE ( 82800 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 43520 ) ( 83590 43520 ) + NEW met3 0 + SHAPE STRIPE ( 82800 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 43520 ) ( 83570 43520 ) + NEW met2 0 + SHAPE STRIPE ( 82800 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 38080 ) ( 83590 38080 ) + NEW met3 0 + SHAPE STRIPE ( 82800 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 38080 ) ( 83570 38080 ) + NEW met2 0 + SHAPE STRIPE ( 82800 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 32640 ) ( 83590 32640 ) + NEW met3 0 + SHAPE STRIPE ( 82800 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 32640 ) ( 83570 32640 ) + NEW met2 0 + SHAPE STRIPE ( 82800 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 27200 ) ( 83590 27200 ) + NEW met3 0 + SHAPE STRIPE ( 82800 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 27200 ) ( 83570 27200 ) + NEW met2 0 + SHAPE STRIPE ( 82800 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 21760 ) ( 83590 21760 ) + NEW met3 0 + SHAPE STRIPE ( 82800 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 21760 ) ( 83570 21760 ) + NEW met2 0 + SHAPE STRIPE ( 82800 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 16320 ) ( 83590 16320 ) + NEW met3 0 + SHAPE STRIPE ( 82800 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 16320 ) ( 83570 16320 ) + NEW met2 0 + SHAPE STRIPE ( 82800 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 10880 ) ( 83590 10880 ) + NEW met3 0 + SHAPE STRIPE ( 82800 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 10880 ) ( 83570 10880 ) + NEW met2 0 + SHAPE STRIPE ( 82800 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 82010 5440 ) ( 83590 5440 ) + NEW met3 0 + SHAPE STRIPE ( 82800 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 82030 5440 ) ( 83570 5440 ) + NEW met2 0 + SHAPE STRIPE ( 82800 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 82800 5440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 81600 ) ( 56450 81600 ) + NEW met3 0 + SHAPE STRIPE ( 55660 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 81600 ) ( 56430 81600 ) + NEW met2 0 + SHAPE STRIPE ( 55660 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 76160 ) ( 56450 76160 ) + NEW met3 0 + SHAPE STRIPE ( 55660 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 76160 ) ( 56430 76160 ) + NEW met2 0 + SHAPE STRIPE ( 55660 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 70720 ) ( 56450 70720 ) + NEW met3 0 + SHAPE STRIPE ( 55660 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 70720 ) ( 56430 70720 ) + NEW met2 0 + SHAPE STRIPE ( 55660 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 65280 ) ( 56450 65280 ) + NEW met3 0 + SHAPE STRIPE ( 55660 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 65280 ) ( 56430 65280 ) + NEW met2 0 + SHAPE STRIPE ( 55660 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 59840 ) ( 56450 59840 ) + NEW met3 0 + SHAPE STRIPE ( 55660 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 59840 ) ( 56430 59840 ) + NEW met2 0 + SHAPE STRIPE ( 55660 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 54400 ) ( 56450 54400 ) + NEW met3 0 + SHAPE STRIPE ( 55660 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 54400 ) ( 56430 54400 ) + NEW met2 0 + SHAPE STRIPE ( 55660 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 48960 ) ( 56450 48960 ) + NEW met3 0 + SHAPE STRIPE ( 55660 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 48960 ) ( 56430 48960 ) + NEW met2 0 + SHAPE STRIPE ( 55660 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 43520 ) ( 56450 43520 ) + NEW met3 0 + SHAPE STRIPE ( 55660 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 43520 ) ( 56430 43520 ) + NEW met2 0 + SHAPE STRIPE ( 55660 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 38080 ) ( 56450 38080 ) + NEW met3 0 + SHAPE STRIPE ( 55660 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 38080 ) ( 56430 38080 ) + NEW met2 0 + SHAPE STRIPE ( 55660 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 32640 ) ( 56450 32640 ) + NEW met3 0 + SHAPE STRIPE ( 55660 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 32640 ) ( 56430 32640 ) + NEW met2 0 + SHAPE STRIPE ( 55660 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 27200 ) ( 56450 27200 ) + NEW met3 0 + SHAPE STRIPE ( 55660 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 27200 ) ( 56430 27200 ) + NEW met2 0 + SHAPE STRIPE ( 55660 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 21760 ) ( 56450 21760 ) + NEW met3 0 + SHAPE STRIPE ( 55660 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 21760 ) ( 56430 21760 ) + NEW met2 0 + SHAPE STRIPE ( 55660 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 16320 ) ( 56450 16320 ) + NEW met3 0 + SHAPE STRIPE ( 55660 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 16320 ) ( 56430 16320 ) + NEW met2 0 + SHAPE STRIPE ( 55660 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 10880 ) ( 56450 10880 ) + NEW met3 0 + SHAPE STRIPE ( 55660 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 10880 ) ( 56430 10880 ) + NEW met2 0 + SHAPE STRIPE ( 55660 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 54870 5440 ) ( 56450 5440 ) + NEW met3 0 + SHAPE STRIPE ( 55660 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 54890 5440 ) ( 56430 5440 ) + NEW met2 0 + SHAPE STRIPE ( 55660 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 55660 5440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 81600 ) ( 29310 81600 ) + NEW met3 0 + SHAPE STRIPE ( 28520 81600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 81600 ) ( 29290 81600 ) + NEW met2 0 + SHAPE STRIPE ( 28520 81600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 81600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 76160 ) ( 29310 76160 ) + NEW met3 0 + SHAPE STRIPE ( 28520 76160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 76160 ) ( 29290 76160 ) + NEW met2 0 + SHAPE STRIPE ( 28520 76160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 76160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 70720 ) ( 29310 70720 ) + NEW met3 0 + SHAPE STRIPE ( 28520 70720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 70720 ) ( 29290 70720 ) + NEW met2 0 + SHAPE STRIPE ( 28520 70720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 70720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 65280 ) ( 29310 65280 ) + NEW met3 0 + SHAPE STRIPE ( 28520 65280 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 65280 ) ( 29290 65280 ) + NEW met2 0 + SHAPE STRIPE ( 28520 65280 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 65280 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 59840 ) ( 29310 59840 ) + NEW met3 0 + SHAPE STRIPE ( 28520 59840 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 59840 ) ( 29290 59840 ) + NEW met2 0 + SHAPE STRIPE ( 28520 59840 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 59840 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 54400 ) ( 29310 54400 ) + NEW met3 0 + SHAPE STRIPE ( 28520 54400 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 54400 ) ( 29290 54400 ) + NEW met2 0 + SHAPE STRIPE ( 28520 54400 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 54400 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 48960 ) ( 29310 48960 ) + NEW met3 0 + SHAPE STRIPE ( 28520 48960 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 48960 ) ( 29290 48960 ) + NEW met2 0 + SHAPE STRIPE ( 28520 48960 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 48960 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 43520 ) ( 29310 43520 ) + NEW met3 0 + SHAPE STRIPE ( 28520 43520 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 43520 ) ( 29290 43520 ) + NEW met2 0 + SHAPE STRIPE ( 28520 43520 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 43520 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 38080 ) ( 29310 38080 ) + NEW met3 0 + SHAPE STRIPE ( 28520 38080 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 38080 ) ( 29290 38080 ) + NEW met2 0 + SHAPE STRIPE ( 28520 38080 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 38080 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 32640 ) ( 29310 32640 ) + NEW met3 0 + SHAPE STRIPE ( 28520 32640 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 32640 ) ( 29290 32640 ) + NEW met2 0 + SHAPE STRIPE ( 28520 32640 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 32640 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 27200 ) ( 29310 27200 ) + NEW met3 0 + SHAPE STRIPE ( 28520 27200 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 27200 ) ( 29290 27200 ) + NEW met2 0 + SHAPE STRIPE ( 28520 27200 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 27200 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 21760 ) ( 29310 21760 ) + NEW met3 0 + SHAPE STRIPE ( 28520 21760 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 21760 ) ( 29290 21760 ) + NEW met2 0 + SHAPE STRIPE ( 28520 21760 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 21760 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 16320 ) ( 29310 16320 ) + NEW met3 0 + SHAPE STRIPE ( 28520 16320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 16320 ) ( 29290 16320 ) + NEW met2 0 + SHAPE STRIPE ( 28520 16320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 16320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 10880 ) ( 29310 10880 ) + NEW met3 0 + SHAPE STRIPE ( 28520 10880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 10880 ) ( 29290 10880 ) + NEW met2 0 + SHAPE STRIPE ( 28520 10880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 10880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 27730 5440 ) ( 29310 5440 ) + NEW met3 0 + SHAPE STRIPE ( 28520 5440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 27750 5440 ) ( 29290 5440 ) + NEW met2 0 + SHAPE STRIPE ( 28520 5440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 28520 5440 ) via2_3_1600_480_1_5_320_320 ; + - VSS ( * VNB ) ( * VGND ) + USE GROUND + + ROUTED met5 1600 + SHAPE STRIPE ( 14150 70720 ) ( 70030 70720 ) + NEW met5 1600 + SHAPE STRIPE ( 14150 43520 ) ( 70030 43520 ) + NEW met5 1600 + SHAPE STRIPE ( 14150 16320 ) ( 70030 16320 ) + NEW met4 1600 + SHAPE STRIPE ( 69230 2480 ) ( 69230 84560 ) + NEW met4 1600 + SHAPE STRIPE ( 42090 2480 ) ( 42090 84560 ) + NEW met4 1600 + SHAPE STRIPE ( 14950 2480 ) ( 14950 84560 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 84320 ) ( 85560 84320 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 78880 ) ( 85560 78880 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 73440 ) ( 85560 73440 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 68000 ) ( 85560 68000 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 62560 ) ( 85560 62560 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 57120 ) ( 85560 57120 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 51680 ) ( 85560 51680 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 46240 ) ( 85560 46240 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 40800 ) ( 85560 40800 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 35360 ) ( 85560 35360 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 29920 ) ( 85560 29920 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 24480 ) ( 85560 24480 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 19040 ) ( 85560 19040 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 13600 ) ( 85560 13600 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 8160 ) ( 85560 8160 ) + NEW met1 480 + SHAPE FOLLOWPIN ( 1380 2720 ) ( 85560 2720 ) + NEW met4 0 + SHAPE STRIPE ( 69230 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 69230 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 69230 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 42090 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 70720 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 43520 ) via5_6_1600_1600_1_1_1600_1600 + NEW met4 0 + SHAPE STRIPE ( 14950 16320 ) via5_6_1600_1600_1_1_1600_1600 + NEW met3 330 + SHAPE STRIPE ( 68440 84320 ) ( 70020 84320 ) + NEW met3 0 + SHAPE STRIPE ( 69230 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 84320 ) ( 70000 84320 ) + NEW met2 0 + SHAPE STRIPE ( 69230 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 78880 ) ( 70020 78880 ) + NEW met3 0 + SHAPE STRIPE ( 69230 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 78880 ) ( 70000 78880 ) + NEW met2 0 + SHAPE STRIPE ( 69230 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 73440 ) ( 70020 73440 ) + NEW met3 0 + SHAPE STRIPE ( 69230 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 73440 ) ( 70000 73440 ) + NEW met2 0 + SHAPE STRIPE ( 69230 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 68000 ) ( 70020 68000 ) + NEW met3 0 + SHAPE STRIPE ( 69230 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 68000 ) ( 70000 68000 ) + NEW met2 0 + SHAPE STRIPE ( 69230 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 62560 ) ( 70020 62560 ) + NEW met3 0 + SHAPE STRIPE ( 69230 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 62560 ) ( 70000 62560 ) + NEW met2 0 + SHAPE STRIPE ( 69230 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 57120 ) ( 70020 57120 ) + NEW met3 0 + SHAPE STRIPE ( 69230 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 57120 ) ( 70000 57120 ) + NEW met2 0 + SHAPE STRIPE ( 69230 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 51680 ) ( 70020 51680 ) + NEW met3 0 + SHAPE STRIPE ( 69230 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 51680 ) ( 70000 51680 ) + NEW met2 0 + SHAPE STRIPE ( 69230 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 46240 ) ( 70020 46240 ) + NEW met3 0 + SHAPE STRIPE ( 69230 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 46240 ) ( 70000 46240 ) + NEW met2 0 + SHAPE STRIPE ( 69230 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 40800 ) ( 70020 40800 ) + NEW met3 0 + SHAPE STRIPE ( 69230 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 40800 ) ( 70000 40800 ) + NEW met2 0 + SHAPE STRIPE ( 69230 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 35360 ) ( 70020 35360 ) + NEW met3 0 + SHAPE STRIPE ( 69230 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 35360 ) ( 70000 35360 ) + NEW met2 0 + SHAPE STRIPE ( 69230 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 29920 ) ( 70020 29920 ) + NEW met3 0 + SHAPE STRIPE ( 69230 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 29920 ) ( 70000 29920 ) + NEW met2 0 + SHAPE STRIPE ( 69230 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 24480 ) ( 70020 24480 ) + NEW met3 0 + SHAPE STRIPE ( 69230 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 24480 ) ( 70000 24480 ) + NEW met2 0 + SHAPE STRIPE ( 69230 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 19040 ) ( 70020 19040 ) + NEW met3 0 + SHAPE STRIPE ( 69230 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 19040 ) ( 70000 19040 ) + NEW met2 0 + SHAPE STRIPE ( 69230 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 13600 ) ( 70020 13600 ) + NEW met3 0 + SHAPE STRIPE ( 69230 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 13600 ) ( 70000 13600 ) + NEW met2 0 + SHAPE STRIPE ( 69230 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 8160 ) ( 70020 8160 ) + NEW met3 0 + SHAPE STRIPE ( 69230 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 8160 ) ( 70000 8160 ) + NEW met2 0 + SHAPE STRIPE ( 69230 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 68440 2720 ) ( 70020 2720 ) + NEW met3 0 + SHAPE STRIPE ( 69230 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 68460 2720 ) ( 70000 2720 ) + NEW met2 0 + SHAPE STRIPE ( 69230 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 69230 2720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 84320 ) ( 42880 84320 ) + NEW met3 0 + SHAPE STRIPE ( 42090 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 84320 ) ( 42860 84320 ) + NEW met2 0 + SHAPE STRIPE ( 42090 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 78880 ) ( 42880 78880 ) + NEW met3 0 + SHAPE STRIPE ( 42090 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 78880 ) ( 42860 78880 ) + NEW met2 0 + SHAPE STRIPE ( 42090 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 73440 ) ( 42880 73440 ) + NEW met3 0 + SHAPE STRIPE ( 42090 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 73440 ) ( 42860 73440 ) + NEW met2 0 + SHAPE STRIPE ( 42090 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 68000 ) ( 42880 68000 ) + NEW met3 0 + SHAPE STRIPE ( 42090 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 68000 ) ( 42860 68000 ) + NEW met2 0 + SHAPE STRIPE ( 42090 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 62560 ) ( 42880 62560 ) + NEW met3 0 + SHAPE STRIPE ( 42090 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 62560 ) ( 42860 62560 ) + NEW met2 0 + SHAPE STRIPE ( 42090 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 57120 ) ( 42880 57120 ) + NEW met3 0 + SHAPE STRIPE ( 42090 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 57120 ) ( 42860 57120 ) + NEW met2 0 + SHAPE STRIPE ( 42090 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 51680 ) ( 42880 51680 ) + NEW met3 0 + SHAPE STRIPE ( 42090 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 51680 ) ( 42860 51680 ) + NEW met2 0 + SHAPE STRIPE ( 42090 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 46240 ) ( 42880 46240 ) + NEW met3 0 + SHAPE STRIPE ( 42090 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 46240 ) ( 42860 46240 ) + NEW met2 0 + SHAPE STRIPE ( 42090 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 40800 ) ( 42880 40800 ) + NEW met3 0 + SHAPE STRIPE ( 42090 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 40800 ) ( 42860 40800 ) + NEW met2 0 + SHAPE STRIPE ( 42090 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 35360 ) ( 42880 35360 ) + NEW met3 0 + SHAPE STRIPE ( 42090 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 35360 ) ( 42860 35360 ) + NEW met2 0 + SHAPE STRIPE ( 42090 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 29920 ) ( 42880 29920 ) + NEW met3 0 + SHAPE STRIPE ( 42090 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 29920 ) ( 42860 29920 ) + NEW met2 0 + SHAPE STRIPE ( 42090 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 24480 ) ( 42880 24480 ) + NEW met3 0 + SHAPE STRIPE ( 42090 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 24480 ) ( 42860 24480 ) + NEW met2 0 + SHAPE STRIPE ( 42090 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 19040 ) ( 42880 19040 ) + NEW met3 0 + SHAPE STRIPE ( 42090 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 19040 ) ( 42860 19040 ) + NEW met2 0 + SHAPE STRIPE ( 42090 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 13600 ) ( 42880 13600 ) + NEW met3 0 + SHAPE STRIPE ( 42090 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 13600 ) ( 42860 13600 ) + NEW met2 0 + SHAPE STRIPE ( 42090 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 8160 ) ( 42880 8160 ) + NEW met3 0 + SHAPE STRIPE ( 42090 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 8160 ) ( 42860 8160 ) + NEW met2 0 + SHAPE STRIPE ( 42090 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 41300 2720 ) ( 42880 2720 ) + NEW met3 0 + SHAPE STRIPE ( 42090 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 41320 2720 ) ( 42860 2720 ) + NEW met2 0 + SHAPE STRIPE ( 42090 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 42090 2720 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 84320 ) ( 15740 84320 ) + NEW met3 0 + SHAPE STRIPE ( 14950 84320 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 84320 ) ( 15720 84320 ) + NEW met2 0 + SHAPE STRIPE ( 14950 84320 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 84320 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 78880 ) ( 15740 78880 ) + NEW met3 0 + SHAPE STRIPE ( 14950 78880 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 78880 ) ( 15720 78880 ) + NEW met2 0 + SHAPE STRIPE ( 14950 78880 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 78880 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 73440 ) ( 15740 73440 ) + NEW met3 0 + SHAPE STRIPE ( 14950 73440 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 73440 ) ( 15720 73440 ) + NEW met2 0 + SHAPE STRIPE ( 14950 73440 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 73440 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 68000 ) ( 15740 68000 ) + NEW met3 0 + SHAPE STRIPE ( 14950 68000 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 68000 ) ( 15720 68000 ) + NEW met2 0 + SHAPE STRIPE ( 14950 68000 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 68000 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 62560 ) ( 15740 62560 ) + NEW met3 0 + SHAPE STRIPE ( 14950 62560 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 62560 ) ( 15720 62560 ) + NEW met2 0 + SHAPE STRIPE ( 14950 62560 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 62560 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 57120 ) ( 15740 57120 ) + NEW met3 0 + SHAPE STRIPE ( 14950 57120 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 57120 ) ( 15720 57120 ) + NEW met2 0 + SHAPE STRIPE ( 14950 57120 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 57120 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 51680 ) ( 15740 51680 ) + NEW met3 0 + SHAPE STRIPE ( 14950 51680 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 51680 ) ( 15720 51680 ) + NEW met2 0 + SHAPE STRIPE ( 14950 51680 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 51680 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 46240 ) ( 15740 46240 ) + NEW met3 0 + SHAPE STRIPE ( 14950 46240 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 46240 ) ( 15720 46240 ) + NEW met2 0 + SHAPE STRIPE ( 14950 46240 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 46240 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 40800 ) ( 15740 40800 ) + NEW met3 0 + SHAPE STRIPE ( 14950 40800 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 40800 ) ( 15720 40800 ) + NEW met2 0 + SHAPE STRIPE ( 14950 40800 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 40800 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 35360 ) ( 15740 35360 ) + NEW met3 0 + SHAPE STRIPE ( 14950 35360 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 35360 ) ( 15720 35360 ) + NEW met2 0 + SHAPE STRIPE ( 14950 35360 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 35360 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 29920 ) ( 15740 29920 ) + NEW met3 0 + SHAPE STRIPE ( 14950 29920 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 29920 ) ( 15720 29920 ) + NEW met2 0 + SHAPE STRIPE ( 14950 29920 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 29920 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 24480 ) ( 15740 24480 ) + NEW met3 0 + SHAPE STRIPE ( 14950 24480 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 24480 ) ( 15720 24480 ) + NEW met2 0 + SHAPE STRIPE ( 14950 24480 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 24480 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 19040 ) ( 15740 19040 ) + NEW met3 0 + SHAPE STRIPE ( 14950 19040 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 19040 ) ( 15720 19040 ) + NEW met2 0 + SHAPE STRIPE ( 14950 19040 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 19040 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 13600 ) ( 15740 13600 ) + NEW met3 0 + SHAPE STRIPE ( 14950 13600 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 13600 ) ( 15720 13600 ) + NEW met2 0 + SHAPE STRIPE ( 14950 13600 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 13600 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 8160 ) ( 15740 8160 ) + NEW met3 0 + SHAPE STRIPE ( 14950 8160 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 8160 ) ( 15720 8160 ) + NEW met2 0 + SHAPE STRIPE ( 14950 8160 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 8160 ) via2_3_1600_480_1_5_320_320 + NEW met3 330 + SHAPE STRIPE ( 14160 2720 ) ( 15740 2720 ) + NEW met3 0 + SHAPE STRIPE ( 14950 2720 ) via4_5_1600_480_1_4_400_400 + NEW met2 370 + SHAPE STRIPE ( 14180 2720 ) ( 15720 2720 ) + NEW met2 0 + SHAPE STRIPE ( 14950 2720 ) via3_4_1600_480_1_4_400_400 + NEW met1 0 + SHAPE STRIPE ( 14950 2720 ) via2_3_1600_480_1_5_320_320 ; +END SPECIALNETS +NETS 475 ; + - _000_ ( req_rdy$_DFF_P_ D ) ( _380_ Y ) + USE SIGNAL ; + - _001_ ( ctrl.state.out\[1\]$_DFF_P_ D ) ( _384_ Y ) + USE SIGNAL ; + - _002_ ( ctrl.state.out\[2\]$_DFF_P_ D ) ( _373_ Y ) + USE SIGNAL ; + - _003_ ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ D ) ( _451_ Y ) + USE SIGNAL ; + - _004_ ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ D ) ( _461_ Y ) + USE SIGNAL ; + - _005_ ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ D ) ( _465_ Y ) + USE SIGNAL ; + - _006_ ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ D ) ( _472_ Y ) + USE SIGNAL ; + - _007_ ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ D ) ( _477_ Y ) + USE SIGNAL ; + - _008_ ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ D ) ( _482_ Y ) + USE SIGNAL ; + - _009_ ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ D ) ( _485_ Y ) + USE SIGNAL ; + - _010_ ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ D ) ( _490_ Y ) + USE SIGNAL ; + - _011_ ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ D ) ( _494_ Y ) + USE SIGNAL ; + - _012_ ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ D ) ( _497_ Y ) + USE SIGNAL ; + - _013_ ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ D ) ( _502_ Y ) + USE SIGNAL ; + - _014_ ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ D ) ( _506_ Y ) + USE SIGNAL ; + - _015_ ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ D ) ( _509_ Y ) + USE SIGNAL ; + - _016_ ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ D ) ( _514_ Y ) + USE SIGNAL ; + - _017_ ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ D ) ( _517_ Y ) + USE SIGNAL ; + - _018_ ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ D ) ( _520_ Y ) + USE SIGNAL ; + - _019_ ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ D ) ( _526_ Y ) + USE SIGNAL ; + - _020_ ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ D ) ( _537_ Y ) + USE SIGNAL ; + - _021_ ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ D ) ( _547_ Y ) + USE SIGNAL ; + - _022_ ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ D ) ( _558_ Y ) + USE SIGNAL ; + - _023_ ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ D ) ( _573_ Y ) + USE SIGNAL ; + - _024_ ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ D ) ( _583_ Y ) + USE SIGNAL ; + - _025_ ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ D ) ( _596_ Y ) + USE SIGNAL ; + - _026_ ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ D ) ( _608_ Y ) + USE SIGNAL ; + - _027_ ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ D ) ( _617_ Y ) + USE SIGNAL ; + - _028_ ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ D ) ( _628_ Y ) + USE SIGNAL ; + - _029_ ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ D ) ( _643_ Y ) + USE SIGNAL ; + - _030_ ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ D ) ( _653_ Y ) + USE SIGNAL ; + - _031_ ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ D ) ( _665_ Y ) + USE SIGNAL ; + - _032_ ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ D ) ( _680_ Y ) + USE SIGNAL ; + - _033_ ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ D ) ( _696_ Y ) + USE SIGNAL ; + - _034_ ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ D ) ( _702_ Y ) + USE SIGNAL ; + - _038_ ( _368_ A ) ( _358_ Y ) + USE SIGNAL ; + - _041_ ( _368_ B ) ( _361_ Y ) + USE SIGNAL ; + - _044_ ( _368_ C ) ( _364_ Y ) + USE SIGNAL ; + - _047_ ( _368_ D ) ( _367_ Y ) + USE SIGNAL ; + - _048_ ( _382_ B ) ( _372_ B1 ) ( _368_ Y ) + USE SIGNAL ; + - _052_ ( _373_ B ) ( _372_ Y ) + USE SIGNAL ; + - _053_ ( _468_ B ) ( _474_ B ) ( _479_ B ) ( _487_ B ) ( _491_ B ) ( _499_ B ) ( _511_ B ) + ( _550_ B ) ( _622_ A ) ( _657_ A ) ( _382_ A ) ( _458_ B ) ( _462_ B ) ( _518_ A2 ) ( _576_ C1 ) + ( _615_ A2 ) ( _620_ C1 ) ( _635_ A1 ) ( _647_ A2 ) ( _663_ B ) ( _377_ A ) ( _533_ B1 ) ( _543_ B1 ) + ( _588_ B ) ( _600_ B ) ( _604_ B ) ( _674_ B1 ) ( _694_ B ) ( _541_ B ) ( _374_ Y ) + USE SIGNAL ; + - _055_ ( _696_ A1 ) ( _651_ B1 ) ( _643_ A1 ) ( _642_ A ) ( _596_ A1 ) ( _595_ A ) ( _380_ A1 ) + ( _377_ B ) ( _376_ Y ) + USE SIGNAL ; + - _056_ ( _383_ A2 ) ( _380_ B1 ) ( _378_ Y ) + USE SIGNAL ; + - _057_ ( _380_ C1 ) ( _379_ Y ) + USE SIGNAL ; + - _059_ ( _383_ B1 ) ( _382_ Y ) + USE SIGNAL ; + - _060_ ( _384_ B ) ( _383_ Y ) + USE SIGNAL ; + - _062_ ( _699_ A1 ) ( _445_ B ) ( _387_ Y ) + USE SIGNAL ; + - _063_ ( _671_ B1 ) ( _666_ A ) ( _434_ C ) ( _394_ A ) ( _388_ Y ) + USE SIGNAL ; + - _064_ ( _666_ B ) ( _394_ B ) ( _389_ Y ) + USE SIGNAL ; + - _065_ ( _688_ B ) ( _435_ B1 ) ( _392_ A_N ) ( _390_ Y ) + USE SIGNAL ; + - _066_ ( _435_ A1 ) ( _392_ B ) ( _391_ Y ) + USE SIGNAL ; + - _067_ ( _707_ A ) ( _394_ C ) ( _392_ Y ) + USE SIGNAL ; + - _068_ ( _706_ A ) ( _394_ D ) ( _393_ X ) + USE SIGNAL ; + - _069_ ( _443_ C1 ) ( _404_ A ) ( _394_ Y ) + USE SIGNAL ; + - _070_ ( _703_ A ) ( _398_ A ) ( _395_ Y ) + USE SIGNAL ; + - _072_ ( _704_ A ) ( _667_ C1 ) ( _398_ B ) ( _397_ Y ) + USE SIGNAL ; + - _073_ ( _403_ A ) ( _398_ Y ) + USE SIGNAL ; + - _074_ ( _725_ A ) ( _403_ B ) ( _399_ X ) + USE SIGNAL ; + - _075_ ( _440_ B1 ) ( _402_ A ) ( _400_ Y ) + USE SIGNAL ; + - _076_ ( _632_ B ) ( _629_ B ) ( _402_ B ) ( _401_ Y ) + USE SIGNAL ; + - _077_ ( _726_ A ) ( _403_ C ) ( _402_ Y ) + USE SIGNAL ; + - _078_ ( _655_ A1 ) ( _404_ B ) ( _403_ Y ) + USE SIGNAL ; + - _079_ ( _455_ A1 ) ( _444_ A1 ) ( _404_ Y ) + USE SIGNAL ; + - _080_ ( _560_ A2 ) ( _544_ B2 ) ( _462_ A ) ( _424_ B ) ( _406_ B ) ( _405_ Y ) + USE SIGNAL ; + - _081_ ( _425_ A2 ) ( _712_ A ) ( _548_ A1 ) ( _412_ A1 ) ( _406_ Y ) + USE SIGNAL ; + - _082_ ( _538_ B1 ) ( _409_ A ) ( _407_ Y ) + USE SIGNAL ; + - _083_ ( _538_ A2 ) ( _530_ B ) ( _409_ C ) ( _408_ Y ) + USE SIGNAL ; + - _084_ ( _425_ A1 ) ( _548_ A2 ) ( _542_ A2 ) ( _541_ C ) ( _412_ A2 ) ( _409_ X ) + USE SIGNAL ; + - _085_ ( _712_ B ) ( _411_ B ) ( _410_ Y ) + USE SIGNAL ; + - _086_ ( _412_ B1 ) ( _411_ Y ) + USE SIGNAL ; + - _087_ ( _633_ A1 ) ( _630_ A1 ) ( _610_ A1 ) ( _552_ A2 ) ( _432_ A1 ) ( _412_ Y ) + USE SIGNAL ; + - _089_ ( _721_ A ) ( _416_ A ) ( _414_ Y ) + USE SIGNAL ; + - _090_ ( _605_ A ) ( _416_ B ) ( _415_ Y ) + USE SIGNAL ; + - _091_ ( _431_ A2 ) ( _423_ A_N ) ( _416_ Y ) + USE SIGNAL ; + - _092_ ( _562_ B1 ) ( _423_ B ) ( _417_ Y ) + USE SIGNAL ; + - _094_ ( _717_ A ) ( _574_ A1 ) ( _422_ A2 ) ( _420_ B ) ( _419_ Y ) + USE SIGNAL ; + - _095_ ( _423_ C ) ( _420_ Y ) + USE SIGNAL ; + - _096_ ( _586_ A ) ( _585_ A ) ( _427_ A ) ( _422_ B1 ) ( _421_ Y ) + USE SIGNAL ; + - _097_ ( _423_ D ) ( _422_ Y ) + USE SIGNAL ; + - _098_ ( _633_ A2 ) ( _630_ A2 ) ( _610_ A2 ) ( _432_ A2 ) ( _423_ X ) + USE SIGNAL ; + - _099_ ( _548_ B1 ) ( _425_ B1 ) ( _424_ Y ) + USE SIGNAL ; + - _100_ ( rebuffer2 A ) ( _633_ A3 ) ( _630_ A3 ) ( _610_ A3 ) ( _425_ Y ) + USE SIGNAL ; + - _101_ ( _717_ B_N ) ( _574_ B1 ) ( _427_ C ) ( _426_ Y ) + USE SIGNAL ; + - _102_ ( _431_ A1 ) ( _427_ X ) + USE SIGNAL ; + - _103_ ( _604_ A ) ( _601_ A1 ) ( _430_ A ) ( _428_ Y ) + USE SIGNAL ; + - _104_ ( _721_ B ) ( _430_ C ) ( _429_ Y ) + USE SIGNAL ; + - _105_ ( _431_ B1 ) ( _430_ X ) + USE SIGNAL ; + - _106_ ( _633_ B1 ) ( _630_ B1 ) ( _610_ B1 ) ( _432_ B1 ) ( _431_ Y ) + USE SIGNAL ; + - _107_ ( _618_ C ) ( _613_ A2 ) ( _609_ A2 ) ( _455_ A2 ) ( _444_ A2 ) ( _432_ X ) + USE SIGNAL ; + - _108_ ( _678_ A ) ( _675_ A1 ) ( _674_ A1 ) ( _434_ A ) ( _433_ Y ) + USE SIGNAL ; + - _109_ ( _435_ A2 ) ( _434_ X ) + USE SIGNAL ; + - _110_ ( _455_ B1 ) ( _444_ B1 ) ( _435_ Y ) + USE SIGNAL ; + - _111_ ( _654_ A1 ) ( _443_ A1 ) ( _436_ Y ) + USE SIGNAL ; + - _112_ ( _667_ A1 ) ( _634_ A ) ( _441_ A ) ( _437_ Y ) + USE SIGNAL ; + - _113_ ( _618_ B ) ( _614_ B2 ) ( _491_ A ) ( _440_ A2 ) ( _438_ Y ) + USE SIGNAL ; + - _114_ ( _440_ A3 ) ( _439_ Y ) + USE SIGNAL ; + - _115_ ( _636_ A ) ( _634_ B ) ( _441_ C ) ( _440_ Y ) + USE SIGNAL ; + - _116_ ( _654_ A2 ) ( _443_ A2 ) ( _441_ X ) + USE SIGNAL ; + - _117_ ( _654_ B1 ) ( _443_ B1 ) ( _442_ Y ) + USE SIGNAL ; + - _118_ ( _455_ C1 ) ( _444_ C1 ) ( _443_ Y ) + USE SIGNAL ; + - _119_ ( _709_ A ) ( _445_ C ) ( _444_ X ) + USE SIGNAL ; + - _120_ ( _524_ B1 ) ( _534_ A2 ) ( _544_ A2 ) ( _605_ B ) ( _609_ B1 ) ( _640_ B ) ( _645_ B1 ) + ( _651_ A2 ) ( _662_ B1 ) ( _678_ B ) ( _603_ B1 ) ( _600_ C ) ( _549_ B1 ) ( _446_ B ) ( _445_ X ) + USE SIGNAL ; + - _121_ ( _448_ S ) ( _459_ A2 ) ( _463_ A2 ) ( _469_ A2 ) ( _475_ A2 ) ( _480_ A2 ) ( _488_ A2 ) + ( _492_ A2 ) ( _500_ A2 ) ( _512_ A2 ) ( _521_ A2 ) ( _515_ S ) ( _507_ S ) ( _504_ S ) ( _495_ S ) + ( _483_ S ) ( _446_ Y ) + USE SIGNAL ; + - _123_ ( _451_ A2 ) ( _448_ Y ) + USE SIGNAL ; + - _125_ ( _451_ B1 ) ( _450_ Y ) + USE SIGNAL ; + - _127_ ( _534_ B2 ) ( _531_ A ) ( _458_ A ) ( _453_ Y ) + USE SIGNAL ; + - _128_ ( _698_ A ) ( _456_ A ) ( _454_ Y ) + USE SIGNAL ; + - _129_ ( _698_ C ) ( _697_ B ) ( _456_ C ) ( _455_ Y ) + USE SIGNAL ; + - _130_ ( _529_ B1 ) ( _540_ B1 ) ( _564_ B1 ) ( _576_ A1 ) ( _592_ B1 ) ( _614_ A2 ) ( _620_ A1 ) + ( _625_ B ) ( _660_ B ) ( _687_ C1 ) ( _458_ C ) ( _462_ C ) ( _468_ C ) ( _474_ C ) ( _479_ C ) + ( _487_ C ) ( _491_ C ) ( _499_ C ) ( _511_ C ) ( _590_ B ) ( _694_ C ) ( _685_ B ) ( _673_ B1 ) + ( _637_ B1 ) ( _581_ A2 ) ( _570_ A2 ) ( _556_ B ) ( _456_ X ) + USE SIGNAL ; + - _132_ ( _459_ B1 ) ( _458_ Y ) + USE SIGNAL ; + - _133_ ( _461_ A2 ) ( _459_ Y ) + USE SIGNAL ; + - _134_ ( _461_ B1 ) ( _460_ Y ) + USE SIGNAL ; + - _135_ ( _463_ B1 ) ( _462_ Y ) + USE SIGNAL ; + - _136_ ( _465_ A2 ) ( _463_ Y ) + USE SIGNAL ; + - _137_ ( _465_ B1 ) ( _464_ Y ) + USE SIGNAL ; + - _138_ ( _714_ B ) ( _554_ A ) ( _468_ A ) ( _466_ Y ) + USE SIGNAL ; + - _140_ ( _469_ B1 ) ( _468_ Y ) + USE SIGNAL ; + - _141_ ( _472_ A2 ) ( _469_ Y ) + USE SIGNAL ; + - _143_ ( _472_ B1 ) ( _471_ Y ) + USE SIGNAL ; + - _144_ ( _567_ A1 ) ( _566_ A ) ( _474_ A ) ( _473_ Y ) + USE SIGNAL ; + - _145_ ( _475_ B1 ) ( _474_ Y ) + USE SIGNAL ; + - _146_ ( _477_ A2 ) ( _475_ Y ) + USE SIGNAL ; + - _147_ ( _477_ B1 ) ( _476_ Y ) + USE SIGNAL ; + - _148_ ( _581_ B2 ) ( _578_ A ) ( _479_ A ) ( _478_ Y ) + USE SIGNAL ; + - _149_ ( _480_ B1 ) ( _479_ Y ) + USE SIGNAL ; + - _150_ ( _482_ A2 ) ( _480_ Y ) + USE SIGNAL ; + - _151_ ( _482_ B1 ) ( _481_ Y ) + USE SIGNAL ; + - _152_ ( _485_ A2 ) ( _483_ Y ) + USE SIGNAL ; + - _153_ ( _485_ B1 ) ( _484_ Y ) + USE SIGNAL ; + - _154_ ( _603_ A1 ) ( _487_ A ) ( _486_ Y ) + USE SIGNAL ; + - _155_ ( _488_ B1 ) ( _487_ Y ) + USE SIGNAL ; + - _156_ ( _490_ A2 ) ( _488_ Y ) + USE SIGNAL ; + - _157_ ( _490_ B1 ) ( _489_ Y ) + USE SIGNAL ; + - _158_ ( _492_ B1 ) ( _491_ Y ) + USE SIGNAL ; + - _159_ ( _494_ A2 ) ( _492_ Y ) + USE SIGNAL ; + - _160_ ( _494_ B1 ) ( _493_ Y ) + USE SIGNAL ; + - _161_ ( _497_ A2 ) ( _495_ Y ) + USE SIGNAL ; + - _162_ ( _497_ B1 ) ( _496_ Y ) + USE SIGNAL ; + - _163_ ( _669_ B ) ( _644_ B ) ( _639_ A1 ) ( _638_ A ) ( _499_ A ) ( _498_ Y ) + USE SIGNAL ; + - _164_ ( _500_ B1 ) ( _499_ Y ) + USE SIGNAL ; + - _165_ ( _502_ A2 ) ( _500_ Y ) + USE SIGNAL ; + - _166_ ( _502_ B1 ) ( _501_ Y ) + USE SIGNAL ; + - _168_ ( _506_ A2 ) ( _504_ Y ) + USE SIGNAL ; + - _169_ ( _506_ B1 ) ( _505_ Y ) + USE SIGNAL ; + - _170_ ( _509_ A2 ) ( _507_ Y ) + USE SIGNAL ; + - _171_ ( _509_ B1 ) ( _508_ Y ) + USE SIGNAL ; + - _172_ ( _683_ A2 ) ( _682_ A2 ) ( _681_ A2 ) ( _675_ B2 ) ( _673_ A1 ) ( _511_ A ) ( _510_ Y ) + USE SIGNAL ; + - _173_ ( _512_ B1 ) ( _511_ Y ) + USE SIGNAL ; + - _174_ ( _514_ A2 ) ( _512_ Y ) + USE SIGNAL ; + - _175_ ( _514_ B1 ) ( _513_ Y ) + USE SIGNAL ; + - _176_ ( _517_ A2 ) ( _515_ Y ) + USE SIGNAL ; + - _177_ ( _517_ B1 ) ( _516_ Y ) + USE SIGNAL ; + - _178_ ( _520_ A2 ) ( _518_ Y ) + USE SIGNAL ; + - _179_ ( _520_ B1 ) ( _519_ Y ) + USE SIGNAL ; + - _180_ ( _526_ A2 ) ( _521_ Y ) + USE SIGNAL ; + - _182_ ( _524_ B2 ) ( _523_ Y ) + USE SIGNAL ; + - _183_ ( _526_ A3 ) ( _524_ Y ) + USE SIGNAL ; + - _184_ ( _526_ B1 ) ( _525_ Y ) + USE SIGNAL ; + - _185_ ( _711_ A ) ( _533_ A2 ) ( _531_ B ) ( _529_ A2 ) ( _527_ Y ) + USE SIGNAL ; + - _187_ ( _535_ A3 ) ( _529_ Y ) + USE SIGNAL ; + - _188_ ( _560_ C1 ) ( _539_ B ) ( _532_ A2 ) ( _530_ Y ) + USE SIGNAL ; + - _189_ ( _532_ B1 ) ( _531_ Y ) + USE SIGNAL ; + - _190_ ( _534_ A3 ) ( _532_ Y ) + USE SIGNAL ; + - _191_ ( _534_ B1 ) ( _533_ Y ) + USE SIGNAL ; + - _192_ ( _535_ B1 ) ( _534_ Y ) + USE SIGNAL ; + - _193_ ( _537_ A2 ) ( _535_ Y ) + USE SIGNAL ; + - _194_ ( _537_ B1 ) ( _536_ Y ) + USE SIGNAL ; + - _195_ ( _560_ B1 ) ( _539_ A ) ( _538_ Y ) + USE SIGNAL ; + - _196_ ( _713_ A ) ( _543_ A2 ) ( _540_ A2 ) ( _539_ X ) + USE SIGNAL ; + - _197_ ( _545_ A3 ) ( _540_ Y ) + USE SIGNAL ; + - _198_ ( _542_ B1 ) ( _541_ Y ) + USE SIGNAL ; + - _199_ ( _544_ A3 ) ( _542_ Y ) + USE SIGNAL ; + - _200_ ( _544_ B1 ) ( _543_ Y ) + USE SIGNAL ; + - _201_ ( _545_ B1 ) ( _544_ Y ) + USE SIGNAL ; + - _202_ ( _547_ A2 ) ( _545_ Y ) + USE SIGNAL ; + - _203_ ( _547_ B1 ) ( _546_ Y ) + USE SIGNAL ; + - _204_ ( _716_ A ) ( _555_ A1 ) ( _554_ B ) ( _549_ A2 ) ( _548_ Y ) + USE SIGNAL ; + - _205_ ( _550_ C ) ( _549_ Y ) + USE SIGNAL ; + - _206_ ( _558_ A2 ) ( _550_ Y ) + USE SIGNAL ; + - _208_ ( _558_ A3 ) ( _552_ Y ) + USE SIGNAL ; + - _209_ ( _555_ A2 ) ( _553_ Y ) + USE SIGNAL ; + - _210_ ( _555_ B1 ) ( _554_ Y ) + USE SIGNAL ; + - _211_ ( _556_ C ) ( _555_ Y ) + USE SIGNAL ; + - _212_ ( _558_ A4 ) ( _556_ X ) + USE SIGNAL ; + - _213_ ( _558_ B1 ) ( _557_ Y ) + USE SIGNAL ; + - _214_ ( _715_ B ) ( _562_ A2 ) ( _560_ D1 ) ( _559_ Y ) + USE SIGNAL ; + - _215_ ( _574_ A2 ) ( _563_ A ) ( _560_ Y ) + USE SIGNAL ; + - _216_ ( _562_ A1 ) ( _561_ Y ) + USE SIGNAL ; + - _217_ ( _574_ A3 ) ( _563_ B ) ( _562_ Y ) + USE SIGNAL ; + - _218_ ( _718_ A ) ( _568_ B ) ( _567_ A2 ) ( _566_ C ) ( _564_ A2 ) ( _563_ Y ) + USE SIGNAL ; + - _219_ ( _571_ A3 ) ( _564_ Y ) + USE SIGNAL ; + - _220_ ( _570_ A1 ) ( _565_ Y ) + USE SIGNAL ; + - _221_ ( _567_ B1 ) ( _566_ Y ) + USE SIGNAL ; + - _222_ ( _570_ A3 ) ( _567_ Y ) + USE SIGNAL ; + - _223_ ( _569_ B ) ( _568_ Y ) + USE SIGNAL ; + - _224_ ( _570_ B1 ) ( _569_ Y ) + USE SIGNAL ; + - _225_ ( _571_ B1 ) ( _570_ X ) + USE SIGNAL ; + - _226_ ( _573_ A2 ) ( _571_ Y ) + USE SIGNAL ; + - _227_ ( _573_ B1 ) ( _572_ Y ) + USE SIGNAL ; + - _228_ ( _720_ A ) ( _591_ A1 ) ( _587_ A1 ) ( _580_ A2 ) ( _579_ A1 ) ( _578_ B ) ( _575_ B ) + ( _574_ Y ) + USE SIGNAL ; + - _229_ ( _576_ A2 ) ( _575_ Y ) + USE SIGNAL ; + - _230_ ( _583_ A2 ) ( _576_ Y ) + USE SIGNAL ; + - _231_ ( _579_ A2 ) ( _577_ Y ) + USE SIGNAL ; + - _232_ ( _579_ B1 ) ( _578_ Y ) + USE SIGNAL ; + - _233_ ( _581_ A3 ) ( _579_ Y ) + USE SIGNAL ; + - _234_ ( _581_ B1 ) ( _580_ Y ) + USE SIGNAL ; + - _235_ ( _583_ A3 ) ( _581_ X ) + USE SIGNAL ; + - _236_ ( _583_ B1 ) ( _582_ Y ) + USE SIGNAL ; + - _237_ ( _599_ A ) ( _597_ B1 ) ( _593_ A1 ) ( _590_ A ) ( _584_ Y ) + USE SIGNAL ; + - _238_ ( _591_ A2 ) ( _587_ A2 ) ( _585_ Y ) + USE SIGNAL ; + - _239_ ( _591_ B1 ) ( _587_ B1 ) ( _586_ Y ) + USE SIGNAL ; + - _240_ ( _599_ C ) ( _597_ A2 ) ( _593_ A2 ) ( _589_ A2 ) ( _588_ C ) ( _587_ Y ) + USE SIGNAL ; + - _241_ ( _589_ B1 ) ( _588_ Y ) + USE SIGNAL ; + - _242_ ( _590_ C ) ( _589_ X ) + USE SIGNAL ; + - _243_ ( _596_ A2 ) ( _590_ Y ) + USE SIGNAL ; + - _244_ ( _722_ A ) ( _592_ A2 ) ( _591_ X ) + USE SIGNAL ; + - _245_ ( _594_ A3 ) ( _592_ Y ) + USE SIGNAL ; + - _246_ ( _594_ B1 ) ( _593_ Y ) + USE SIGNAL ; + - _247_ ( _596_ A3 ) ( _594_ Y ) + USE SIGNAL ; + - _248_ ( _596_ B1 ) ( _595_ Y ) + USE SIGNAL ; + - _249_ ( _598_ B ) ( _597_ Y ) + USE SIGNAL ; + - _250_ ( _602_ A1 ) ( _598_ Y ) + USE SIGNAL ; + - _251_ ( _724_ A ) ( _606_ A1 ) ( _603_ A2 ) ( _601_ A2 ) ( _600_ D ) ( _599_ X ) + USE SIGNAL ; + - _252_ ( _602_ A2 ) ( _600_ Y ) + USE SIGNAL ; + - _253_ ( _602_ B1 ) ( _601_ Y ) + USE SIGNAL ; + - _254_ ( _608_ A1 ) ( _602_ Y ) + USE SIGNAL ; + - _255_ ( _604_ C ) ( _603_ Y ) + USE SIGNAL ; + - _256_ ( _608_ A2 ) ( _604_ X ) + USE SIGNAL ; + - _257_ ( _606_ A2 ) ( _605_ Y ) + USE SIGNAL ; + - _258_ ( _608_ A3 ) ( _606_ Y ) + USE SIGNAL ; + - _259_ ( _608_ B1 ) ( _607_ Y ) + USE SIGNAL ; + - _260_ ( _615_ A3 ) ( _609_ Y ) + USE SIGNAL ; + - _261_ ( _725_ B ) ( _655_ A2 ) ( _612_ A2 ) ( _611_ C ) ( _610_ Y ) + USE SIGNAL ; + - _262_ ( _612_ B1 ) ( _611_ Y ) + USE SIGNAL ; + - _263_ ( _614_ A3 ) ( _612_ Y ) + USE SIGNAL ; + - _264_ ( _614_ B1 ) ( _613_ Y ) + USE SIGNAL ; + - _265_ ( _615_ B1 ) ( _614_ Y ) + USE SIGNAL ; + - _266_ ( _617_ A2 ) ( _615_ Y ) + USE SIGNAL ; + - _267_ ( _617_ B1 ) ( _616_ Y ) + USE SIGNAL ; + - _268_ ( _726_ B ) ( _624_ S ) ( _621_ B ) ( _619_ B ) ( _618_ X ) + USE SIGNAL ; + - _269_ ( _620_ A2 ) ( _619_ Y ) + USE SIGNAL ; + - _270_ ( _628_ A2 ) ( _620_ Y ) + USE SIGNAL ; + - _271_ ( _622_ B ) ( _621_ Y ) + USE SIGNAL ; + - _272_ ( _626_ A2 ) ( _622_ Y ) + USE SIGNAL ; + - _273_ ( _624_ A0 ) ( _623_ Y ) + USE SIGNAL ; + - _274_ ( _625_ C ) ( _624_ Y ) + USE SIGNAL ; + - _275_ ( _626_ B1 ) ( _625_ Y ) + USE SIGNAL ; + - _276_ ( _628_ A3 ) ( _626_ Y ) + USE SIGNAL ; + - _277_ ( _628_ B1 ) ( _627_ Y ) + USE SIGNAL ; + - _278_ ( _630_ C1 ) ( _629_ Y ) + USE SIGNAL ; + - _279_ ( _636_ B ) ( _634_ C ) ( _630_ Y ) + USE SIGNAL ; + - _280_ ( _632_ A ) ( _631_ Y ) + USE SIGNAL ; + - _281_ ( _633_ C1 ) ( _632_ Y ) + USE SIGNAL ; + - _282_ ( _636_ C ) ( _634_ D ) ( _633_ Y ) + USE SIGNAL ; + - _283_ ( _635_ A2 ) ( _634_ Y ) + USE SIGNAL ; + - _284_ ( _643_ A2 ) ( _635_ Y ) + USE SIGNAL ; + - _285_ ( rebuffer1 A ) ( _703_ B ) ( _681_ B1 ) ( _644_ C ) ( _639_ A2 ) ( _638_ C ) ( _637_ A2 ) + ( _636_ Y ) + USE SIGNAL ; + - _286_ ( _641_ A3 ) ( _637_ Y ) + USE SIGNAL ; + - _287_ ( _639_ B1 ) ( _638_ Y ) + USE SIGNAL ; + - _288_ ( _641_ B1 ) ( _639_ Y ) + USE SIGNAL ; + - _289_ ( _641_ B2 ) ( _640_ Y ) + USE SIGNAL ; + - _290_ ( _643_ A3 ) ( _641_ Y ) + USE SIGNAL ; + - _291_ ( _643_ B1 ) ( _642_ Y ) + USE SIGNAL ; + - _292_ ( _704_ B ) ( _650_ S ) ( _646_ A2 ) ( _645_ A2 ) ( _644_ X ) + USE SIGNAL ; + - _293_ ( _647_ A3 ) ( _645_ Y ) + USE SIGNAL ; + - _294_ ( _647_ B1 ) ( _646_ X ) + USE SIGNAL ; + - _295_ ( _653_ A1 ) ( _647_ Y ) + USE SIGNAL ; + - _296_ ( _670_ A ) ( _651_ A1 ) ( _648_ Y ) + USE SIGNAL ; + - _297_ ( _650_ A0 ) ( _649_ Y ) + USE SIGNAL ; + - _298_ ( _651_ A3 ) ( _650_ X ) + USE SIGNAL ; + - _299_ ( _653_ A2 ) ( _651_ Y ) + USE SIGNAL ; + - _300_ ( _653_ B1 ) ( _652_ Y ) + USE SIGNAL ; + - _301_ ( _655_ B1 ) ( _654_ X ) + USE SIGNAL ; + - _302_ ( _705_ B ) ( _662_ A2 ) ( _659_ S ) ( _656_ B ) ( _655_ Y ) + USE SIGNAL ; + - _303_ ( _657_ B ) ( _656_ Y ) + USE SIGNAL ; + - _304_ ( _661_ A2 ) ( _657_ Y ) + USE SIGNAL ; + - _305_ ( _659_ A0 ) ( _658_ Y ) + USE SIGNAL ; + - _306_ ( _660_ C ) ( _659_ Y ) + USE SIGNAL ; + - _307_ ( _661_ B1 ) ( _660_ Y ) + USE SIGNAL ; + - _308_ ( _665_ A2 ) ( _661_ Y ) + USE SIGNAL ; + - _309_ ( _663_ C ) ( _662_ Y ) + USE SIGNAL ; + - _310_ ( _665_ A3 ) ( _663_ Y ) + USE SIGNAL ; + - _311_ ( _665_ B1 ) ( _664_ Y ) + USE SIGNAL ; + - _312_ ( _705_ A ) ( _667_ B1 ) ( _666_ Y ) + USE SIGNAL ; + - _313_ ( _681_ C1 ) ( _672_ A2 ) ( _667_ Y ) + USE SIGNAL ; + - _314_ ( _671_ A1 ) ( _668_ Y ) + USE SIGNAL ; + - _315_ ( _670_ C ) ( _669_ Y ) + USE SIGNAL ; + - _316_ ( _671_ A2 ) ( _670_ X ) + USE SIGNAL ; + - _317_ ( _682_ B1 ) ( _672_ B1 ) ( _671_ Y ) + USE SIGNAL ; + - _318_ ( _706_ B ) ( _677_ S ) ( _674_ A2 ) ( _673_ A2 ) ( _672_ Y ) + USE SIGNAL ; + - _319_ ( _675_ A3 ) ( _673_ Y ) + USE SIGNAL ; + - _320_ ( _675_ B1 ) ( _674_ X ) + USE SIGNAL ; + - _321_ ( _680_ A2 ) ( _675_ X ) + USE SIGNAL ; + - _322_ ( _677_ A1 ) ( _676_ Y ) + USE SIGNAL ; + - _323_ ( _678_ C ) ( _677_ X ) + USE SIGNAL ; + - _324_ ( _680_ A3 ) ( _678_ Y ) + USE SIGNAL ; + - _325_ ( _680_ B1 ) ( _679_ Y ) + USE SIGNAL ; + - _326_ ( _689_ A ) ( _687_ A1 ) ( _684_ A ) ( _681_ Y ) + USE SIGNAL ; + - _327_ ( _683_ B1 ) ( _682_ X ) + USE SIGNAL ; + - _328_ ( _689_ B ) ( _687_ A2 ) ( _684_ B ) ( _683_ Y ) + USE SIGNAL ; + - _329_ ( _707_ B ) ( _695_ A1 ) ( _690_ A2 ) ( _684_ X ) + USE SIGNAL ; + - _330_ ( _690_ A3 ) ( _685_ Y ) + USE SIGNAL ; + - _331_ ( _687_ B1 ) ( _686_ X ) + USE SIGNAL ; + - _332_ ( _690_ B1 ) ( _687_ Y ) + USE SIGNAL ; + - _333_ ( _689_ C ) ( _688_ Y ) + USE SIGNAL ; + - _334_ ( _690_ C1 ) ( _689_ X ) + USE SIGNAL ; + - _335_ ( _696_ A2 ) ( _690_ Y ) + USE SIGNAL ; + - _336_ ( _696_ B1 ) ( _691_ Y ) + USE SIGNAL ; + - _337_ ( _695_ A2 ) ( _692_ Y ) + USE SIGNAL ; + - _338_ ( _695_ B1 ) ( _693_ Y ) + USE SIGNAL ; + - _339_ ( _695_ D1 ) ( _694_ Y ) + USE SIGNAL ; + - _340_ ( _696_ B2 ) ( _695_ X ) + USE SIGNAL ; + - _341_ ( _700_ A3 ) ( _697_ Y ) + USE SIGNAL ; + - _342_ ( _699_ B1 ) ( _698_ Y ) + USE SIGNAL ; + - _343_ ( _700_ B1 ) ( _699_ Y ) + USE SIGNAL ; + - _344_ ( _702_ A2 ) ( _700_ Y ) + USE SIGNAL ; + - _345_ ( _702_ B1 ) ( _701_ Y ) + USE SIGNAL ; + - _346_ ( _709_ B ) ( _708_ Y ) + USE SIGNAL ; + - _347_ ( _711_ B ) ( _710_ Y ) + USE SIGNAL ; + - _348_ ( _713_ B ) ( _712_ Y ) + USE SIGNAL ; + - _349_ ( _715_ A ) ( _714_ Y ) + USE SIGNAL ; + - _350_ ( _716_ B ) ( _715_ Y ) + USE SIGNAL ; + - _351_ ( _718_ B ) ( _717_ Y ) + USE SIGNAL ; + - _352_ ( _720_ B ) ( _719_ Y ) + USE SIGNAL ; + - _353_ ( _722_ B ) ( _721_ X ) + USE SIGNAL ; + - _354_ ( _724_ B ) ( _723_ X ) + USE SIGNAL ; + - clk ( PIN clk ) ( clkbuf_0_clk A ) + USE CLOCK ; + - clknet_0_clk ( clkbuf_2_3__f_clk A ) ( clkbuf_2_2__f_clk A ) ( clkbuf_2_1__f_clk A ) ( clkbuf_2_0__f_clk A ) ( clkbuf_0_clk X ) + USE CLOCK ; + - clknet_2_0__leaf_clk ( clkload0 A ) ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ CLK ) ( clkbuf_2_0__f_clk X ) + USE CLOCK ; + - clknet_2_1__leaf_clk ( ctrl.state.out\[1\]$_DFF_P_ CLK ) ( ctrl.state.out\[2\]$_DFF_P_ CLK ) ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ CLK ) ( clkbuf_2_1__f_clk X ) + USE CLOCK ; + - clknet_2_2__leaf_clk ( clkload1 A ) ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ CLK ) + ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ CLK ) ( clkbuf_2_2__f_clk X ) + USE CLOCK ; + - clknet_2_3__leaf_clk ( clkload2 A ) ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ CLK ) ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ CLK ) + ( req_rdy$_DFF_P_ CLK ) ( clkbuf_2_3__f_clk X ) + USE CLOCK ; + - ctrl.state.out\[1\] ( ctrl.state.out\[1\]$_DFF_P_ Q ) ( _383_ A1 ) ( _377_ C ) + USE SIGNAL ; + - ctrl.state.out\[2\] ( _552_ A1 ) ( _569_ A ) ( _580_ B1 ) ( _601_ B1 ) ( _613_ B1 ) ( _638_ B ) ( _646_ B1 ) + ( _675_ A2 ) ( _693_ B ) ( _699_ A2 ) ( _372_ B2 ) ( _523_ C ) ( _524_ A2 ) ( _535_ A2 ) ( _545_ A2 ) + ( _571_ A2 ) ( _593_ B1 ) ( _594_ A2 ) ( _641_ A2 ) ( _700_ A2 ) ( _532_ A1 ) ( _553_ B ) ( _577_ B ) + ( _611_ B ) ( _623_ B ) ( _649_ B ) ( _658_ B ) ( _676_ B ) ( _686_ B ) ( _374_ A ) ( _446_ A ) + ( _566_ B ) ( _688_ A ) ( ctrl.state.out\[2\]$_DFF_P_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[0\] ( dpath.a_lt_b$in0\[0\]$_DFFE_PP_ Q ) ( _527_ A ) ( _524_ A1 ) ( _523_ B ) ( _521_ A1 ) ( _448_ A0 ) ( _408_ A_N ) + ( _385_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[10\] ( dpath.a_lt_b$in0\[10\]$_DFFE_PP_ Q ) ( _667_ A2 ) ( _637_ A1 ) ( _635_ B1 ) ( _498_ A ) ( _441_ B ) ( _395_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[11\] ( _397_ B ) ( _436_ B_N ) ( _442_ A_N ) ( _504_ A0 ) ( _645_ A1 ) ( _647_ B2 ) ( _649_ A ) + ( _650_ A1 ) ( _670_ B ) ( dpath.a_lt_b$in0\[11\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[12\] ( dpath.a_lt_b$in0\[12\]$_DFFE_PP_ Q ) ( _668_ A_N ) ( _662_ A1 ) ( _661_ A1 ) ( _659_ A1 ) ( _658_ A ) ( _507_ A0 ) + ( _389_ A ) ( _388_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[13\] ( dpath.a_lt_b$in0\[13\]$_DFFE_PP_ Q ) ( _677_ A0 ) ( _676_ A ) ( _510_ A ) ( _434_ B ) ( _393_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[14\] ( dpath.a_lt_b$in0\[14\]$_DFFE_PP_ Q ) ( _693_ A ) ( _692_ B ) ( _690_ A1 ) ( _686_ A ) ( _515_ A0 ) ( _391_ A_N ) + ( _390_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[15\] ( dpath.a_lt_b$in0\[15\]$_DFFE_PP_ Q ) ( _708_ B ) ( _698_ B ) ( _697_ A ) ( _518_ A1 ) ( _456_ B ) ( _387_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[1\] ( dpath.a_lt_b$in0\[1\]$_DFFE_PP_ Q ) ( _710_ B ) ( _538_ A1 ) ( _530_ A ) ( _529_ A1 ) ( _453_ A ) ( _409_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[2\] ( dpath.a_lt_b$in0\[2\]$_DFFE_PP_ Q ) ( _561_ B ) ( _542_ A1 ) ( _541_ A ) ( _540_ A1 ) ( _410_ A ) ( _405_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[3\] ( dpath.a_lt_b$in0\[3\]$_DFFE_PP_ Q ) ( _559_ A ) ( _553_ A ) ( _552_ B1 ) ( _549_ A1 ) ( _466_ A ) ( _425_ C1 ) + ( _417_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[4\] ( dpath.a_lt_b$in0\[4\]$_DFFE_PP_ Q ) ( _570_ B2 ) ( _564_ A1 ) ( _473_ A ) ( _426_ A_N ) ( _419_ B_N ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[5\] ( _420_ A ) ( _422_ A1 ) ( _427_ B ) ( _478_ A ) ( _575_ A ) ( _577_ A ) ( _585_ B ) + ( _586_ B ) ( _719_ B ) ( dpath.a_lt_b$in0\[5\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[6\] ( _414_ B ) ( _429_ A_N ) ( _483_ A0 ) ( _588_ A ) ( _589_ A1 ) ( _592_ A1 ) ( _594_ B2 ) + ( _597_ A1 ) ( _599_ B ) ( dpath.a_lt_b$in0\[6\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[7\] ( dpath.a_lt_b$in0\[7\]$_DFFE_PP_ Q ) ( _723_ B ) ( _602_ B2 ) ( _598_ A ) ( _486_ A ) ( _430_ B ) ( _415_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[8\] ( dpath.a_lt_b$in0\[8\]$_DFFE_PP_ Q ) ( _629_ A ) ( _612_ A1 ) ( _611_ A ) ( _609_ A1 ) ( _438_ A ) ( _399_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in0\[9\] ( dpath.a_lt_b$in0\[9\]$_DFFE_PP_ Q ) ( _626_ A1 ) ( _624_ A1 ) ( _623_ A ) ( _619_ A ) ( _495_ A0 ) ( _439_ A ) + ( _401_ A_N ) ( _400_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[0\] ( dpath.a_lt_b$in1\[0\]$_DFFE_PP_ Q ) ( _527_ B_N ) ( _523_ A ) ( _521_ B1 ) ( _448_ A1 ) ( _408_ B ) ( _385_ A ) + ( _358_ D ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[10\] ( _367_ C ) ( _395_ A ) ( _437_ A ) ( _500_ A1 ) ( _640_ A ) ( _641_ A1 ) ( _644_ A ) + ( _669_ A ) ( dpath.a_lt_b$in1\[10\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[11\] ( _367_ B ) ( _397_ A ) ( _436_ A ) ( _442_ B ) ( _504_ A1 ) ( _646_ A1 ) ( _647_ A1 ) + ( _648_ A ) ( dpath.a_lt_b$in1\[11\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[12\] ( dpath.a_lt_b$in1\[12\]$_DFFE_PP_ Q ) ( _668_ B ) ( _663_ A ) ( _660_ A ) ( _656_ A ) ( _507_ A1 ) ( _389_ B_N ) + ( _388_ A ) ( _367_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[13\] ( _364_ C ) ( _393_ A ) ( _433_ A ) ( _512_ A1 ) ( _681_ A1 ) ( _682_ A1 ) ( _683_ A1 ) + ( dpath.a_lt_b$in1\[13\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[14\] ( dpath.a_lt_b$in1\[14\]$_DFFE_PP_ Q ) ( _694_ A ) ( _692_ A ) ( _687_ D1 ) ( _685_ A ) ( _515_ A1 ) ( _391_ B ) + ( _390_ A ) ( _364_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[15\] ( dpath.a_lt_b$in1\[15\]$_DFFE_PP_ Q ) ( _708_ A ) ( _700_ A1 ) ( _518_ B1 ) ( _454_ A ) ( _445_ A ) ( _364_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[1\] ( _361_ D ) ( _407_ A ) ( _459_ A1 ) ( _533_ A1 ) ( _534_ A1 ) ( _535_ A1 ) ( _710_ A ) + ( dpath.a_lt_b$in1\[1\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[2\] ( _361_ C ) ( _406_ A ) ( _410_ B_N ) ( _424_ A ) ( _463_ A1 ) ( _543_ A1 ) ( _544_ A1 ) + ( _545_ A1 ) ( _560_ A1 ) ( _561_ A_N ) ( dpath.a_lt_b$in1\[2\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[3\] ( dpath.a_lt_b$in1\[3\]$_DFFE_PP_ Q ) ( _714_ A ) ( _559_ B_N ) ( _556_ A ) ( _550_ A ) ( _469_ A1 ) ( _417_ A_N ) + ( _411_ A ) ( _361_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[4\] ( dpath.a_lt_b$in1\[4\]$_DFFE_PP_ Q ) ( _571_ A1 ) ( _568_ A ) ( _565_ A ) ( _475_ A1 ) ( _426_ B ) ( _419_ A ) + ( _361_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[5\] ( _358_ C ) ( _421_ A ) ( _480_ A1 ) ( _576_ B1 ) ( _580_ A1 ) ( _581_ A1 ) ( _719_ A ) + ( dpath.a_lt_b$in1\[5\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[6\] ( dpath.a_lt_b$in1\[6\]$_DFFE_PP_ Q ) ( _594_ A1 ) ( _584_ A ) ( _483_ A1 ) ( _429_ B ) ( _414_ A_N ) ( _358_ B ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[7\] ( dpath.a_lt_b$in1\[7\]$_DFFE_PP_ Q ) ( _723_ A ) ( _600_ A ) ( _488_ A1 ) ( _428_ A ) ( _415_ A_N ) ( _358_ A ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[8\] ( _364_ D ) ( _399_ A ) ( _440_ A1 ) ( _492_ A1 ) ( _613_ A1 ) ( _614_ A1 ) ( _615_ A1 ) + ( _618_ A ) ( _631_ A ) ( dpath.a_lt_b$in1\[8\]$_DFFE_PP_ Q ) + USE SIGNAL ; + - dpath.a_lt_b$in1\[9\] ( dpath.a_lt_b$in1\[9\]$_DFFE_PP_ Q ) ( _625_ A ) ( _621_ A ) ( _620_ B1 ) ( _495_ A1 ) ( _439_ B_N ) ( _401_ B ) + ( _400_ A_N ) ( _367_ D ) + USE SIGNAL ; + - net1 ( input1 X ) ( _450_ B ) + USE SIGNAL ; + - net10 ( input10 X ) ( _546_ B ) + USE SIGNAL ; + - net11 ( input11 X ) ( _557_ B ) + USE SIGNAL ; + - net12 ( input12 X ) ( _460_ B ) + USE SIGNAL ; + - net13 ( input13 X ) ( _572_ B ) + USE SIGNAL ; + - net14 ( input14 X ) ( _582_ B ) + USE SIGNAL ; + - net15 ( input15 X ) ( _595_ B ) + USE SIGNAL ; + - net16 ( input16 X ) ( _607_ A ) + USE SIGNAL ; + - net17 ( input17 X ) ( _616_ B ) + USE SIGNAL ; + - net18 ( input18 X ) ( _627_ B ) + USE SIGNAL ; + - net19 ( input19 X ) ( _642_ B ) + USE SIGNAL ; + - net2 ( input2 X ) ( _501_ B ) + USE SIGNAL ; + - net20 ( input20 X ) ( _652_ B ) + USE SIGNAL ; + - net21 ( input21 X ) ( _664_ B ) + USE SIGNAL ; + - net22 ( input22 X ) ( _679_ B ) + USE SIGNAL ; + - net23 ( input23 X ) ( _464_ B ) + USE SIGNAL ; + - net24 ( input24 X ) ( _691_ B ) + USE SIGNAL ; + - net25 ( input25 X ) ( _701_ B ) + USE SIGNAL ; + - net26 ( input26 X ) ( _471_ B ) + USE SIGNAL ; + - net27 ( input27 X ) ( _476_ B ) + USE SIGNAL ; + - net28 ( input28 X ) ( _481_ B ) + USE SIGNAL ; + - net29 ( input29 X ) ( _484_ B ) + USE SIGNAL ; + - net3 ( input3 X ) ( _505_ B ) + USE SIGNAL ; + - net30 ( input30 X ) ( _489_ B ) + USE SIGNAL ; + - net31 ( input31 X ) ( _493_ B ) + USE SIGNAL ; + - net32 ( input32 X ) ( _496_ B ) + USE SIGNAL ; + - net33 ( input33 X ) ( _380_ A2 ) ( _372_ A2 ) + USE SIGNAL ; + - net34 ( input34 X ) ( _384_ A ) ( _379_ A ) ( _373_ A ) + USE SIGNAL ; + - net35 ( input35 X ) ( _378_ A ) + USE SIGNAL ; + - net36 ( output36 A ) ( req_rdy$_DFF_P_ Q ) ( _702_ A1 ) ( _701_ A ) ( _695_ C1 ) ( _691_ A ) ( _680_ A1 ) + ( _679_ A ) ( _665_ A1 ) ( _664_ A ) ( _652_ A ) ( _628_ A1 ) ( _627_ A ) ( _617_ A1 ) ( _616_ A ) + ( _608_ B2 ) ( _606_ B1 ) ( _583_ A1 ) ( _582_ A ) ( _573_ A1 ) ( _572_ A ) ( _558_ A1 ) ( _557_ A ) + ( _547_ A1 ) ( _546_ A ) ( _537_ A1 ) ( _536_ A ) ( _526_ A1 ) ( _525_ A ) ( _520_ A1 ) ( _519_ A ) + ( _517_ A1 ) ( _516_ A ) ( _514_ A1 ) ( _513_ A ) ( _509_ A1 ) ( _508_ A ) ( _506_ A1 ) ( _505_ A ) + ( _502_ A1 ) ( _501_ A ) ( _497_ A1 ) ( _496_ A ) ( _494_ A1 ) ( _493_ A ) ( _490_ A1 ) ( _489_ A ) + ( _485_ A1 ) ( _484_ A ) ( _482_ A1 ) ( _481_ A ) ( _477_ A1 ) ( _476_ A ) ( _472_ A1 ) ( _471_ A ) + ( _465_ A1 ) ( _464_ A ) ( _461_ A1 ) ( _460_ A ) ( _451_ A1 ) ( _450_ A ) ( _376_ A ) ( _372_ A1 ) + USE SIGNAL ; + - net37 ( output37 A ) ( _385_ X ) + USE SIGNAL ; + - net38 ( output38 A ) ( _703_ Y ) + USE SIGNAL ; + - net39 ( output39 A ) ( _704_ Y ) + USE SIGNAL ; + - net4 ( input4 X ) ( _508_ B ) + USE SIGNAL ; + - net40 ( output40 A ) ( _705_ Y ) + USE SIGNAL ; + - net41 ( output41 A ) ( _706_ Y ) + USE SIGNAL ; + - net42 ( output42 A ) ( _707_ Y ) + USE SIGNAL ; + - net43 ( output43 A ) ( _709_ Y ) + USE SIGNAL ; + - net44 ( output44 A ) ( _711_ Y ) + USE SIGNAL ; + - net45 ( output45 A ) ( _713_ Y ) + USE SIGNAL ; + - net46 ( output46 A ) ( _716_ Y ) + USE SIGNAL ; + - net47 ( output47 A ) ( _718_ Y ) + USE SIGNAL ; + - net48 ( output48 A ) ( _720_ Y ) + USE SIGNAL ; + - net49 ( output49 A ) ( _722_ Y ) + USE SIGNAL ; + - net5 ( input5 X ) ( _513_ B ) + USE SIGNAL ; + - net50 ( output50 A ) ( _724_ Y ) + USE SIGNAL ; + - net51 ( output51 A ) ( _725_ Y ) + USE SIGNAL ; + - net52 ( output52 A ) ( _726_ X ) + USE SIGNAL ; + - net53 ( output53 A ) ( _378_ B ) ( _377_ X ) + USE SIGNAL ; + - net54 ( _672_ A1 ) ( rebuffer1 X ) + USE SIGNAL ; + - net55 ( _432_ A3 ) ( rebuffer2 X ) + USE SIGNAL ; + - net6 ( input6 X ) ( _516_ B ) + USE SIGNAL ; + - net7 ( input7 X ) ( _519_ B ) + USE SIGNAL ; + - net8 ( input8 X ) ( _525_ B ) + USE SIGNAL ; + - net9 ( input9 X ) ( _536_ B ) + USE SIGNAL ; + - req_msg[0] ( PIN req_msg[0] ) ( input1 A ) + USE SIGNAL ; + - req_msg[10] ( PIN req_msg[10] ) ( input2 A ) + USE SIGNAL ; + - req_msg[11] ( PIN req_msg[11] ) ( input3 A ) + USE SIGNAL ; + - req_msg[12] ( PIN req_msg[12] ) ( input4 A ) + USE SIGNAL ; + - req_msg[13] ( PIN req_msg[13] ) ( input5 A ) + USE SIGNAL ; + - req_msg[14] ( PIN req_msg[14] ) ( input6 A ) + USE SIGNAL ; + - req_msg[15] ( PIN req_msg[15] ) ( input7 A ) + USE SIGNAL ; + - req_msg[16] ( PIN req_msg[16] ) ( input8 A ) + USE SIGNAL ; + - req_msg[17] ( PIN req_msg[17] ) ( input9 A ) + USE SIGNAL ; + - req_msg[18] ( PIN req_msg[18] ) ( input10 A ) + USE SIGNAL ; + - req_msg[19] ( PIN req_msg[19] ) ( input11 A ) + USE SIGNAL ; + - req_msg[1] ( PIN req_msg[1] ) ( input12 A ) + USE SIGNAL ; + - req_msg[20] ( PIN req_msg[20] ) ( input13 A ) + USE SIGNAL ; + - req_msg[21] ( PIN req_msg[21] ) ( input14 A ) + USE SIGNAL ; + - req_msg[22] ( PIN req_msg[22] ) ( input15 A ) + USE SIGNAL ; + - req_msg[23] ( PIN req_msg[23] ) ( input16 A ) + USE SIGNAL ; + - req_msg[24] ( PIN req_msg[24] ) ( input17 A ) + USE SIGNAL ; + - req_msg[25] ( PIN req_msg[25] ) ( input18 A ) + USE SIGNAL ; + - req_msg[26] ( PIN req_msg[26] ) ( input19 A ) + USE SIGNAL ; + - req_msg[27] ( PIN req_msg[27] ) ( input20 A ) + USE SIGNAL ; + - req_msg[28] ( PIN req_msg[28] ) ( input21 A ) + USE SIGNAL ; + - req_msg[29] ( PIN req_msg[29] ) ( input22 A ) + USE SIGNAL ; + - req_msg[2] ( PIN req_msg[2] ) ( input23 A ) + USE SIGNAL ; + - req_msg[30] ( PIN req_msg[30] ) ( input24 A ) + USE SIGNAL ; + - req_msg[31] ( PIN req_msg[31] ) ( input25 A ) + USE SIGNAL ; + - req_msg[3] ( PIN req_msg[3] ) ( input26 A ) + USE SIGNAL ; + - req_msg[4] ( PIN req_msg[4] ) ( input27 A ) + USE SIGNAL ; + - req_msg[5] ( PIN req_msg[5] ) ( input28 A ) + USE SIGNAL ; + - req_msg[6] ( PIN req_msg[6] ) ( input29 A ) + USE SIGNAL ; + - req_msg[7] ( PIN req_msg[7] ) ( input30 A ) + USE SIGNAL ; + - req_msg[8] ( PIN req_msg[8] ) ( input31 A ) + USE SIGNAL ; + - req_msg[9] ( PIN req_msg[9] ) ( input32 A ) + USE SIGNAL ; + - req_rdy ( PIN req_rdy ) ( output36 X ) + USE SIGNAL ; + - req_val ( PIN req_val ) ( input33 A ) + USE SIGNAL ; + - reset ( PIN reset ) ( input34 A ) + USE SIGNAL ; + - resp_msg[0] ( PIN resp_msg[0] ) ( output37 X ) + USE SIGNAL ; + - resp_msg[10] ( PIN resp_msg[10] ) ( output38 X ) + USE SIGNAL ; + - resp_msg[11] ( PIN resp_msg[11] ) ( output39 X ) + USE SIGNAL ; + - resp_msg[12] ( PIN resp_msg[12] ) ( output40 X ) + USE SIGNAL ; + - resp_msg[13] ( PIN resp_msg[13] ) ( output41 X ) + USE SIGNAL ; + - resp_msg[14] ( PIN resp_msg[14] ) ( output42 X ) + USE SIGNAL ; + - resp_msg[15] ( PIN resp_msg[15] ) ( output43 X ) + USE SIGNAL ; + - resp_msg[1] ( PIN resp_msg[1] ) ( output44 X ) + USE SIGNAL ; + - resp_msg[2] ( PIN resp_msg[2] ) ( output45 X ) + USE SIGNAL ; + - resp_msg[3] ( PIN resp_msg[3] ) ( output46 X ) + USE SIGNAL ; + - resp_msg[4] ( PIN resp_msg[4] ) ( output47 X ) + USE SIGNAL ; + - resp_msg[5] ( PIN resp_msg[5] ) ( output48 X ) + USE SIGNAL ; + - resp_msg[6] ( PIN resp_msg[6] ) ( output49 X ) + USE SIGNAL ; + - resp_msg[7] ( PIN resp_msg[7] ) ( output50 X ) + USE SIGNAL ; + - resp_msg[8] ( PIN resp_msg[8] ) ( output51 X ) + USE SIGNAL ; + - resp_msg[9] ( PIN resp_msg[9] ) ( output52 X ) + USE SIGNAL ; + - resp_rdy ( PIN resp_rdy ) ( input35 A ) + USE SIGNAL ; + - resp_val ( PIN resp_val ) ( output53 X ) + USE SIGNAL ; +END NETS +END DESIGN diff --git a/src/psm/test/regression_tests.tcl b/src/psm/test/regression_tests.tcl index 66735699458..f403fe3292a 100644 --- a/src/psm/test/regression_tests.tcl +++ b/src/psm/test/regression_tests.tcl @@ -24,6 +24,8 @@ record_tests { pad_connected_by_abutment switch_top_grid top_grid_settings + insert_decap1 + insert_decap2 #psm_man_tcl_check #psm_readme_msgs_check } From cbb8753521b2660764b666578994ad3b5f1d6328 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Thu, 18 Jul 2024 18:38:46 +0000 Subject: [PATCH 49/56] psm: adding requested modifications Signed-off-by: luis201420 --- src/dpl/include/dpl/Opendp.h | 2 +- src/dpl/src/DecapPlacement.cpp | 1 - src/psm/include/psm/pdnsim.h | 4 ++-- src/psm/src/pdnsim.cpp | 12 +----------- src/psm/src/pdnsim.tcl | 10 +++++----- 5 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index c8c31acb361..6c2561dbb32 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -161,7 +161,7 @@ class Opendp // Place decap cells void addDecapMaster(dbMaster* decap_master, double decap_cap); - void insertDecapCells(const double target, IRDropByPoint& psm_ir_drops); + void insertDecapCells(double target, IRDropByPoint& psm_ir_drops); private: using bgPoint diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index 53475a7c3dc..2cf95b7bdb5 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -48,7 +48,6 @@ using utl::DPL; using odb::dbMaster; using odb::dbPlacementStatus; -using odb::dbSigType; using IRDropByLayer = std::map; diff --git a/src/psm/include/psm/pdnsim.h b/src/psm/include/psm/pdnsim.h index c9439672e22..d7b70949e3a 100644 --- a/src/psm/include/psm/pdnsim.h +++ b/src/psm/include/psm/pdnsim.h @@ -41,8 +41,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "dpl/Opendp.h" #include "odb/dbBlockCallBackObj.h" -using odb::dbMaster; - namespace odb { class dbDatabase; class Point; @@ -72,6 +70,8 @@ enum class GeneratedSourceType BUMPS }; +using odb::dbMaster; + class PDNSim : public odb::dbBlockCallBackObj { public: diff --git a/src/psm/src/pdnsim.cpp b/src/psm/src/pdnsim.cpp index 5cadb740059..0aab8923608 100644 --- a/src/psm/src/pdnsim.cpp +++ b/src/psm/src/pdnsim.cpp @@ -277,17 +277,7 @@ odb::dbTechLayer* PDNSim::getLowestLayer(odb::dbNet* db_net) std::vector via_boxes; for (odb::dbSWire* swire : db_net->getSWires()) { for (odb::dbSBox* s : swire->getWires()) { - if (s->isVia()) { - s->getViaBoxes(via_boxes); - for (const odb::dbShape& box : via_boxes) { - odb::dbTechLayer* tech_layer = box.getTechLayer(); - if (tech_layer->getRoutingLevel() == 0) { - continue; - } - min_layer_level - = std::min(min_layer_level, tech_layer->getRoutingLevel()); - } - } else { + if (!s->isVia()) { odb::dbTechLayer* tech_layer = s->getTechLayer(); min_layer_level = std::min(min_layer_level, tech_layer->getRoutingLevel()); diff --git a/src/psm/src/pdnsim.tcl b/src/psm/src/pdnsim.tcl index 00fdcb2ee1d..c03bd1829ef 100644 --- a/src/psm/src/pdnsim.tcl +++ b/src/psm/src/pdnsim.tcl @@ -118,8 +118,8 @@ proc analyze_power_grid { args } { } sta::define_cmd_args "insert_decap" { -target_cap target_cap\ - [-cells cell_info]\ - [-net net_name]\ + -cells cell_info\ + [-net net_name]\ } proc insert_decap { args } { @@ -137,10 +137,10 @@ proc insert_decap { args } { # Check even size set cells_and_decap $keys(-cells) if { [expr [llength $cells_and_decap] % 2] != 0 } { - utl::error DPL 181 "-cells must be a list of cell and decap pairs" + utl::error PSM 181 "-cells must be a list of cell and decap pairs" } - # Add decap cells on DPL + # Add decap cells set db [ord::get_db] foreach {cell_name decap} $cells_and_decap { set decap_value $decap @@ -159,7 +159,7 @@ proc insert_decap { args } { } } if { !$matched } { - utl::warn "DPL" 280 "$decap_name did not match any masters." + utl::warn "PSM" 280 "$cell_name did not match any masters." } } # Get net name From 1d90746c6c09f6607638de9413c00711e73ed179 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Thu, 18 Jul 2024 18:52:15 +0000 Subject: [PATCH 50/56] dpl: removing unused decl Signed-off-by: luis201420 --- src/dpl/src/DecapObjects.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/dpl/src/DecapObjects.h b/src/dpl/src/DecapObjects.h index 5c1dae72e79..f0074b0cc09 100644 --- a/src/dpl/src/DecapObjects.h +++ b/src/dpl/src/DecapObjects.h @@ -37,8 +37,6 @@ namespace dpl { -using odb::dbOrientType; - struct GapInfo { int x; From b7872f09e98ba7c2b264a62216c18131422f6d96 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 15:13:05 -0400 Subject: [PATCH 51/56] pdn: fix x vs. y mixup in channel checking Signed-off-by: Peter Gadfort --- src/pdn/src/straps.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/pdn/src/straps.cpp b/src/pdn/src/straps.cpp index 29de928e6d9..88c7655a0a4 100644 --- a/src/pdn/src/straps.cpp +++ b/src/pdn/src/straps.cpp @@ -1754,24 +1754,25 @@ bool RepairChannelStraps::determineOffset( utl::PDN, "Channel", 3, - "Estimating strap to be {}.", - Shape::getRectText(estimated_straps, getBlock()->getDbUnitsPerMicron())); + "Estimating strap to be {} within {}.", + Shape::getRectText(estimated_straps, getBlock()->getDbUnitsPerMicron()), + Shape::getRectText(available_area_, getBlock()->getDbUnitsPerMicron())); // check if straps will fit if (is_horizontal) { if (estimated_straps.dy() > available_area_.dy()) { return false; } - if (estimated_straps.xMin() < available_area_.xMin() - || estimated_straps.xMax() > available_area_.xMax()) { + if (estimated_straps.yMin() < available_area_.yMin() + || estimated_straps.yMax() > available_area_.yMax()) { return false; } } else { if (estimated_straps.dx() > available_area_.dx()) { return false; } - if (estimated_straps.yMin() < available_area_.yMin() - || estimated_straps.yMax() > available_area_.yMax()) { + if (estimated_straps.xMin() < available_area_.xMin() + || estimated_straps.xMax() > available_area_.xMax()) { return false; } } From 3ca94ab1ee0fadda9d83d7d0609a93d235837981 Mon Sep 17 00:00:00 2001 From: Cho Moon Date: Thu, 18 Jul 2024 19:55:16 +0000 Subject: [PATCH 52/56] clang-format Signed-off-by: Cho Moon --- src/rsz/src/RepairSetup.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rsz/src/RepairSetup.cc b/src/rsz/src/RepairSetup.cc index 4b5ff250d9e..3478d015521 100644 --- a/src/rsz/src/RepairSetup.cc +++ b/src/rsz/src/RepairSetup.cc @@ -155,7 +155,7 @@ void RepairSetup::repairSetup(const float setup_slack_margin, "Repairing {} out of {} ({:0.2f}%) violating endpoints...", max_end_count, violating_ends.size(), - repair_tns_end_percent*100.0); + repair_tns_end_percent * 100.0); // Ensure that max cap and max fanout violations don't get worse sta_->checkCapacitanceLimitPreamble(); From 9a36586bbdf376e40429363d33705943dd647295 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Thu, 18 Jul 2024 21:12:48 +0000 Subject: [PATCH 53/56] psm: removing commented lines Signed-off-by: luis201420 --- src/psm/src/pdnsim.tcl | 1 - src/psm/test/insert_decap1.ok | 1 - src/psm/test/insert_decap1.tcl | 1 - src/psm/test/insert_decap2.ok | 1 - 4 files changed, 4 deletions(-) diff --git a/src/psm/src/pdnsim.tcl b/src/psm/src/pdnsim.tcl index c03bd1829ef..d6b8f635855 100644 --- a/src/psm/src/pdnsim.tcl +++ b/src/psm/src/pdnsim.tcl @@ -168,7 +168,6 @@ proc insert_decap { args } { set net_name $keys(-net) } - puts $net_name # Insert decap cells psm::insert_decap_cmd $target_cap $net_name } diff --git a/src/psm/test/insert_decap1.ok b/src/psm/test/insert_decap1.ok index c4dc63e9bbd..6f400baa09d 100644 --- a/src/psm/test/insert_decap1.ok +++ b/src/psm/test/insert_decap1.ok @@ -17,6 +17,5 @@ Average IR drop : 1.25e-11 V Worstcase IR drop: 2.85e-11 V Percentage drop : 0.00 % ###################################### - [INFO DPL-0056] Placed 657 decap cells. Total capacitance: 0.000611 No differences found. diff --git a/src/psm/test/insert_decap1.tcl b/src/psm/test/insert_decap1.tcl index c1d1c99c64d..8886a381562 100644 --- a/src/psm/test/insert_decap1.tcl +++ b/src/psm/test/insert_decap1.tcl @@ -10,7 +10,6 @@ source sky130hd/sky130hd.rc analyze_power_grid -net {VDD} insert_decap -target_cap 1000.5 -cells {"sky130_fd_sc_hd__decap_3" 0.93 "sky130_fd_sc_hd__decap_4" 0.124 "sky130_fd_sc_hd__decap_6" 0.186 "sky130_fd_sc_hd__decap_8" 0.248 "sky130_fd_sc_hd__decap_12" 0.362} -#insert_decap -target_cap 1000.5 -cells {"sky130_fd_sc_hd__decap_3" 0.93 "sky130_fd_sc_hd__decap_4" 1.24 "sky130_fd_sc_hd__decap_6" 1.86 "sky130_fd_sc_hd__decap_8" 2.48 "sky130_fd_sc_hd__decap_12" 3.62} check_placement diff --git a/src/psm/test/insert_decap2.ok b/src/psm/test/insert_decap2.ok index 8efcc9907e0..6c3485b7292 100644 --- a/src/psm/test/insert_decap2.ok +++ b/src/psm/test/insert_decap2.ok @@ -17,6 +17,5 @@ Average IR drop : 1.25e-11 V Worstcase IR drop: 2.85e-11 V Percentage drop : 0.00 % ###################################### - [INFO DPL-0056] Placed 4 decap cells. Total capacitance: 0.000010 No differences found. From c9c75fa1db0be1de7797c9890c4002139c799165 Mon Sep 17 00:00:00 2001 From: luis201420 Date: Thu, 18 Jul 2024 21:13:59 +0000 Subject: [PATCH 54/56] dpl: modifying type name Signed-off-by: luis201420 --- src/dpl/include/dpl/Opendp.h | 4 ++-- src/dpl/src/DecapPlacement.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dpl/include/dpl/Opendp.h b/src/dpl/include/dpl/Opendp.h index 6c2561dbb32..1e80c1bb1e7 100644 --- a/src/dpl/include/dpl/Opendp.h +++ b/src/dpl/include/dpl/Opendp.h @@ -178,7 +178,7 @@ class Opendp using MasterByImplant = std::map; - using GapMapByY = std::map>; + using YCoordToGap = std::map>; friend class OpendpTest_IsPlaced_Test; friend class Graphics; @@ -376,7 +376,7 @@ class Opendp // Decap placement. vector decap_masters_; int decap_count_ = 0; - GapMapByY gaps_; + YCoordToGap gaps_; // Results saved for optional reporting. int64_t hpwl_before_ = 0; diff --git a/src/dpl/src/DecapPlacement.cpp b/src/dpl/src/DecapPlacement.cpp index 2cf95b7bdb5..d9f2c5a8bcf 100644 --- a/src/dpl/src/DecapPlacement.cpp +++ b/src/dpl/src/DecapPlacement.cpp @@ -97,7 +97,7 @@ void Opendp::mapToVectorIRDrops(IRDropByPoint& psm_ir_drops, void Opendp::prepareDecapAndGaps() { - // Sort decaps cells in decrease order + // Sort decaps cells in descending order std::sort(decap_masters_.begin(), decap_masters_.end(), [](const DecapCell* decap1, const DecapCell* decap2) { From da992ae06c8344269809fa93671afe743d3fdae6 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 18:30:47 -0400 Subject: [PATCH 55/56] pdn: fix bad formatting on debug print Signed-off-by: Peter Gadfort --- src/pdn/src/straps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pdn/src/straps.cpp b/src/pdn/src/straps.cpp index 88c7655a0a4..04d8a586660 100644 --- a/src/pdn/src/straps.cpp +++ b/src/pdn/src/straps.cpp @@ -1661,7 +1661,7 @@ void RepairChannelStraps::determineParameters( utl::PDN, "Channel", 2, - "Failed on channel width check, group {:.4f} and channel {.4f}.", + "Failed on channel width check, group {:.4f} and channel {:.4f}.", group_width / static_cast(getBlock()->getDbUnitsPerMicron()), area_width / static_cast(getBlock()->getDbUnitsPerMicron())); return false; From 73855fd57acc774ed4215667fc819c5158b3257b Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 18 Jul 2024 18:31:17 -0400 Subject: [PATCH 56/56] gui: correct exit code logic Signed-off-by: Peter Gadfort --- src/gui/src/gui.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gui/src/gui.cpp b/src/gui/src/gui.cpp index 72e0f19ea7a..0d50b3e6db6 100644 --- a/src/gui/src/gui.cpp +++ b/src/gui/src/gui.cpp @@ -1415,7 +1415,19 @@ int startGui(int& argc, // rethow exception, if one happened after cleanup of main_window exception.rethrow(); - if (interactive && (!gui->isContinueAfterClose() || exit_requested)) { + debugPrint(open_road->getLogger(), + utl::GUI, + "init", + 1, + "Exit state: interactive ({}), isContinueAfterClose ({}), " + "exit_requested ({}), exit_code ({})", + interactive, + gui->isContinueAfterClose(), + exit_requested, + exit_code); + + const bool do_exit = !gui->isContinueAfterClose() && exit_requested; + if (interactive && do_exit) { // if exiting, go ahead and exit with gui return code. exit(exit_code); }