diff --git a/src/rsz/src/RepairSetup.cc b/src/rsz/src/RepairSetup.cc index d3a778022d8..14f792a39cc 100644 --- a/src/rsz/src/RepairSetup.cc +++ b/src/rsz/src/RepairSetup.cc @@ -502,6 +502,11 @@ bool RepairSetup::swapPins(PathRef *drvr_path, LibertyPort *swap_port = input_port; sta::LibertyPortSet ports; + //Skip output to output paths + if (input_port->direction()->isOutput()) { + return false; + } + // Results for > 2 input gates are unpredictable. Only swap pins for // 2 input gates for now. int input_port_count = 0; @@ -513,7 +518,7 @@ bool RepairSetup::swapPins(PathRef *drvr_path, } } if (input_port_count > 2) { - return false; + return false; } // Check if we have already dealt with this instance @@ -526,13 +531,14 @@ bool RepairSetup::swapPins(PathRef *drvr_path, } // Find the equivalent pins for a cell (simple implementation for now) - // stash them - if (equiv_pin_map_.find(cell) == equiv_pin_map_.end()) { - equivCellPins(cell, ports); - equiv_pin_map_.insert(cell, ports); + // stash them. Ports are unique to a cell so we can just cache by port + // and that should apply to all instances of that cell with this input_port. + if (equiv_pin_map_.find(input_port) == equiv_pin_map_.end()) { + equivCellPins(cell, input_port, ports); + equiv_pin_map_.insert(input_port, ports); } - ports = equiv_pin_map_[cell]; - if (ports.size() > 1) { + ports = equiv_pin_map_[input_port]; + if (!ports.empty()) { resizer_->findSwapPinCandidate(input_port, drvr_port, load_cap, dcalc_ap, &swap_port); if (!sta::LibertyPort::equiv(swap_port, input_port)) { @@ -887,76 +893,114 @@ RepairSetup::fanout(Vertex *vertex) return fanout; } -void -RepairSetup::getEquivPortList2(sta::FuncExpr *expr, - sta::LibertyPortSet &ports, - sta::LibertyPortSet &inv_ports, - sta::FuncExpr::Operator &status) +bool RepairSetup::simulateExpr( + sta::FuncExpr* expr, + sta::UnorderedMap>& port_stimulus, + size_t table_index) { - using Operator = sta::FuncExpr::Operator ; - const Operator curr_op = expr->op(); + using Operator = sta::FuncExpr::Operator; + const Operator curr_op = expr->op(); + + switch (curr_op) { + case Operator::op_not: + return !simulateExpr(expr->left(), port_stimulus, table_index); + case Operator::op_and: + return simulateExpr(expr->left(), port_stimulus, table_index) + && simulateExpr(expr->right(), port_stimulus, table_index); + case Operator::op_or: + return simulateExpr(expr->left(), port_stimulus, table_index) + || simulateExpr(expr->right(), port_stimulus, table_index); + case Operator::op_xor: + return simulateExpr(expr->left(), port_stimulus, table_index) + ^ simulateExpr(expr->right(), port_stimulus, table_index); + case Operator::op_one: + return true; + case Operator::op_zero: + return false; + case Operator::op_port: + return port_stimulus[expr->port()][table_index]; + } - if (curr_op == Operator::op_not) { - getEquivPortList2(expr->left(), inv_ports, ports, status); - } - else if (status == Operator::op_zero && - (curr_op == Operator::op_and || - curr_op == Operator::op_or || - curr_op == Operator::op_xor)) { - // Start parsing the equivalent pins (if it is simple or/and/xor) - status = curr_op; - getEquivPortList2(expr->left(), ports, inv_ports, status); - if (status == Operator::op_port) { - return; - } - getEquivPortList2(expr->right(), ports, inv_ports, status); - if (status == Operator::op_port) { - return; - } - status = Operator::op_one; - } - else if (status == curr_op) { - // handle > 2 input scenarios (up to any arbitrary number) - getEquivPortList2(expr->left(), ports, inv_ports, status); - if (status == Operator::op_port) { - return; - } - getEquivPortList2(expr->right(), ports, inv_ports, status); - if (status == Operator::op_port) { - return; - } - } - else if (curr_op == Operator::op_port && expr->port() != nullptr) { - ports.insert(expr->port()); - } - else { - status = Operator::op_port; // moved to some other operator. - ports.clear(); - inv_ports.clear(); - } + logger_->error(RSZ, 91, "unrecognized expr op from OpenSTA"); } -void -RepairSetup::getEquivPortList(sta::FuncExpr *expr, sta::LibertyPortSet &ports) +std::vector RepairSetup::simulateExpr( + sta::FuncExpr* expr, + sta::UnorderedMap>& port_stimulus) +{ + size_t table_length = 0x1 << port_stimulus.size(); + std::vector result; + result.resize(table_length); + for (size_t i = 0; i < table_length; i++) { + result[i] = simulateExpr(expr, port_stimulus, i); + } + + return result; +} + +bool RepairSetup::isPortEqiv(sta::FuncExpr* expr, + const LibertyCell* cell, + const LibertyPort* port_a, + const LibertyPort* port_b) { - sta::FuncExpr::Operator status = sta::FuncExpr::op_zero; - ports.clear(); - sta::LibertyPortSet inv_ports; - getEquivPortList2(expr, ports, inv_ports, status); - if (inv_ports.size() > ports.size()) { - ports = inv_ports; + if (port_a->libertyCell() != cell || port_b->libertyCell() != cell) { + return false; + } + + sta::LibertyCellPortIterator port_iter(cell); + sta::UnorderedMap> port_stimulus; + size_t input_port_count = 0; + while (port_iter.hasNext()) { + LibertyPort* port = port_iter.next(); + if (port->direction()->isInput()) { + ++input_port_count; + port_stimulus[port] = {}; } - if (status == sta::FuncExpr::op_port || ports.size() == 1) { - ports.clear(); + } + + if (input_port_count > 16) { + // Not worth manually simulating all these values. + // Probably need to do SAT solving or something else instead. + return false; + } + + // Generate stimulus for the ports + size_t var_index = 0; + for (auto& it : port_stimulus) { + size_t truth_table_length = 0x1 << input_port_count; + std::vector& variable_stimulus = it.second; + variable_stimulus.resize(truth_table_length, false); + for (int i = 0; i < truth_table_length; i++) { + variable_stimulus[i] = static_cast((i >> var_index) & 0x1); + } + var_index++; + } + + std::vector result_no_swap = simulateExpr(expr, port_stimulus); + + // Swap pins + std::swap(port_stimulus.at(port_a), port_stimulus.at(port_b)); + + std::vector result_with_swap = simulateExpr(expr, port_stimulus); + + // Check if truth tables are equivalent post swap. If they are then pins + // are equivalent. + for (size_t i = 0; i < result_no_swap.size(); i++) { + if (result_no_swap[i] != result_with_swap[i]) { + return false; } + } + + return true; } // Lets just look at the first list for now. // We may want to cache this information somwhere (by building it up for the whole // library). // Or just generate it when the cell is being created (depending on agreement). -void -RepairSetup::equivCellPins(const LibertyCell *cell, sta::LibertyPortSet &ports) +void RepairSetup::equivCellPins(const LibertyCell* cell, + LibertyPort* input_port, + sta::LibertyPortSet& ports) { if (cell->hasSequentials() || cell->isIsolationCell()) { ports.clear(); @@ -966,25 +1010,61 @@ RepairSetup::equivCellPins(const LibertyCell *cell, sta::LibertyPortSet &ports) int outputs = 0; int inputs = 0; - // count number of output ports. Skip ports with > 1 output for now. + // count number of output ports. while (port_iter.hasNext()) { LibertyPort *port = port_iter.next(); if (port->direction()->isOutput()) { - ++outputs; + ++outputs; } else { ++inputs; } } - if (outputs == 1 && inputs >= 2) { - sta::LibertyCellPortIterator port_iter2(cell); - while (port_iter2.hasNext()) { - LibertyPort *port = port_iter2.next(); - sta::FuncExpr *expr = port->function(); - if (expr != nullptr) { - getEquivPortList(expr, ports); - } + if (outputs >= 1 && inputs >= 2) { + sta::LibertyCellPortIterator port_iter2(cell); + while (port_iter2.hasNext()) { + LibertyPort* candidate_port = port_iter2.next(); + if (!candidate_port->direction()->isInput()) { + continue; + } + + sta::LibertyCellPortIterator output_port_iter(cell); + std::optional is_equivalent; + // Loop through all the output ports and make sure they are equivalent + // under swaps of candidate_port and input_port. For multi-ouput gates + // like full adders. + while (output_port_iter.hasNext()) { + LibertyPort* output_candidate_port = output_port_iter.next(); + sta::FuncExpr* output_expr = output_candidate_port->function(); + if (!output_candidate_port->direction()->isOutput()) { + continue; + } + + if (output_expr == nullptr) { + continue; + } + + if (input_port == candidate_port) { + continue; + } + + bool is_equivalent_result + = isPortEqiv(output_expr, cell, input_port, candidate_port); + + if (!is_equivalent.has_value()) { + is_equivalent = is_equivalent_result; + continue; + } + + is_equivalent = is_equivalent.value() && is_equivalent_result; + } + + // candidate_port is equivalent to input_port under all output ports + // of this cell. + if (is_equivalent.has_value() && is_equivalent.value()) { + ports.insert(candidate_port); } + } } } @@ -999,13 +1079,20 @@ RepairSetup::reportSwappablePins() sta::LibertyCellIterator cell_iter(library); while (cell_iter.hasNext()) { sta::LibertyCell* cell = cell_iter.next(); - sta::LibertyPortSet ports; - equivCellPins(cell, ports); - std::ostringstream ostr; - for (auto port : ports) { - ostr << ' ' << port->name(); + sta::LibertyCellPortIterator port_iter(cell); + while (port_iter.hasNext()) { + LibertyPort* port = port_iter.next(); + if (!port->direction()->isInput()) { + continue; + } + sta::LibertyPortSet ports; + equivCellPins(cell, port, ports); + std::ostringstream ostr; + for (auto port : ports) { + ostr << ' ' << port->name(); + } + logger_->report("{}/{} ->{}", cell->name(), port->name(), ostr.str()); } - logger_->report("{} ->{}", cell->name(), ostr.str()); } } } diff --git a/src/rsz/src/RepairSetup.hh b/src/rsz/src/RepairSetup.hh index 4ab9476d5c3..f16827af5fb 100644 --- a/src/rsz/src/RepairSetup.hh +++ b/src/rsz/src/RepairSetup.hh @@ -34,7 +34,9 @@ /////////////////////////////////////////////////////////////////////////////// #pragma once +#include #include + #include "db_sta/dbNetwork.hh" #include "db_sta/dbSta.hh" #include "sta/FuncExpr.hh" @@ -104,12 +106,20 @@ private: bool skip_gate_cloning); void debugCheckMultipleBuffers(PathRef &path, PathExpanded *expanded); - - void getEquivPortList2(sta::FuncExpr *expr, sta::LibertyPortSet &ports, - sta::LibertyPortSet &inv_ports, - sta::FuncExpr::Operator &status); - void getEquivPortList(sta::FuncExpr *expr, sta::LibertyPortSet &ports); - void equivCellPins(const LibertyCell *cell, sta::LibertyPortSet &ports); + bool simulateExpr( + sta::FuncExpr* expr, + sta::UnorderedMap>& port_stimulus, + size_t table_index); + std::vector simulateExpr( + sta::FuncExpr* expr, + sta::UnorderedMap>& port_stimulus); + bool isPortEqiv(sta::FuncExpr* expr, + const LibertyCell* cell, + const LibertyPort* port_a, + const LibertyPort* port_b); + void equivCellPins(const LibertyCell* cell, + LibertyPort* input_port, + sta::LibertyPortSet& ports); bool swapPins(PathRef *drvr_path, int drvr_index, PathExpanded *expanded); bool upsizeDrvr(PathRef *drvr_path, int drvr_index, @@ -168,7 +178,7 @@ private: const MinMax *min_; const MinMax *max_; - sta::UnorderedMap equiv_pin_map_; + sta::UnorderedMap equiv_pin_map_; static constexpr int decreasing_slack_max_passes_ = 50; static constexpr int rebuffer_max_fanout_ = 20; diff --git a/src/rsz/test/pin_swap1.ok b/src/rsz/test/pin_swap1.ok index 16a21fdc0c9..84285679f14 100644 --- a/src/rsz/test/pin_swap1.ok +++ b/src/rsz/test/pin_swap1.ok @@ -10,431 +10,1314 @@ [INFO ODB-0131] Created 3 components and 14 component-terminals. [INFO ODB-0132] Created 2 special nets and 0 connections. [INFO ODB-0133] Created 4 nets and 6 connections. -sky130_fd_sc_hd__a2111o_1 -> -sky130_fd_sc_hd__a2111o_2 -> -sky130_fd_sc_hd__a2111o_4 -> -sky130_fd_sc_hd__a2111oi_0 -> -sky130_fd_sc_hd__a2111oi_1 -> -sky130_fd_sc_hd__a2111oi_2 -> -sky130_fd_sc_hd__a2111oi_4 -> -sky130_fd_sc_hd__a211o_1 -> -sky130_fd_sc_hd__a211o_2 -> -sky130_fd_sc_hd__a211o_4 -> -sky130_fd_sc_hd__a211oi_1 -> -sky130_fd_sc_hd__a211oi_2 -> -sky130_fd_sc_hd__a211oi_4 -> -sky130_fd_sc_hd__a21bo_1 -> -sky130_fd_sc_hd__a21bo_2 -> -sky130_fd_sc_hd__a21bo_4 -> -sky130_fd_sc_hd__a21boi_0 -> -sky130_fd_sc_hd__a21boi_1 -> -sky130_fd_sc_hd__a21boi_2 -> -sky130_fd_sc_hd__a21boi_4 -> -sky130_fd_sc_hd__a21o_1 -> -sky130_fd_sc_hd__a21o_2 -> -sky130_fd_sc_hd__a21o_4 -> -sky130_fd_sc_hd__a21oi_1 -> -sky130_fd_sc_hd__a21oi_2 -> -sky130_fd_sc_hd__a21oi_4 -> -sky130_fd_sc_hd__a221o_1 -> -sky130_fd_sc_hd__a221o_2 -> -sky130_fd_sc_hd__a221o_4 -> -sky130_fd_sc_hd__a221oi_1 -> -sky130_fd_sc_hd__a221oi_2 -> -sky130_fd_sc_hd__a221oi_4 -> -sky130_fd_sc_hd__a222oi_1 -> -sky130_fd_sc_hd__a22o_1 -> -sky130_fd_sc_hd__a22o_2 -> -sky130_fd_sc_hd__a22o_4 -> -sky130_fd_sc_hd__a22oi_1 -> -sky130_fd_sc_hd__a22oi_2 -> -sky130_fd_sc_hd__a22oi_4 -> -sky130_fd_sc_hd__a2bb2o_1 -> -sky130_fd_sc_hd__a2bb2o_2 -> -sky130_fd_sc_hd__a2bb2o_4 -> -sky130_fd_sc_hd__a2bb2oi_1 -> -sky130_fd_sc_hd__a2bb2oi_2 -> -sky130_fd_sc_hd__a2bb2oi_4 -> -sky130_fd_sc_hd__a311o_1 -> -sky130_fd_sc_hd__a311o_2 -> -sky130_fd_sc_hd__a311o_4 -> -sky130_fd_sc_hd__a311oi_1 -> -sky130_fd_sc_hd__a311oi_2 -> -sky130_fd_sc_hd__a311oi_4 -> -sky130_fd_sc_hd__a31o_1 -> -sky130_fd_sc_hd__a31o_2 -> -sky130_fd_sc_hd__a31o_4 -> -sky130_fd_sc_hd__a31oi_1 -> -sky130_fd_sc_hd__a31oi_2 -> -sky130_fd_sc_hd__a31oi_4 -> -sky130_fd_sc_hd__a32o_1 -> -sky130_fd_sc_hd__a32o_2 -> -sky130_fd_sc_hd__a32o_4 -> -sky130_fd_sc_hd__a32oi_1 -> -sky130_fd_sc_hd__a32oi_2 -> -sky130_fd_sc_hd__a32oi_4 -> -sky130_fd_sc_hd__a41o_1 -> -sky130_fd_sc_hd__a41o_2 -> -sky130_fd_sc_hd__a41o_4 -> -sky130_fd_sc_hd__a41oi_1 -> -sky130_fd_sc_hd__a41oi_2 -> -sky130_fd_sc_hd__a41oi_4 -> -sky130_fd_sc_hd__and2_0 -> A B -sky130_fd_sc_hd__and2_1 -> A B -sky130_fd_sc_hd__and2_2 -> A B -sky130_fd_sc_hd__and2_4 -> A B -sky130_fd_sc_hd__and2b_1 -> -sky130_fd_sc_hd__and2b_2 -> -sky130_fd_sc_hd__and2b_4 -> -sky130_fd_sc_hd__and3_1 -> A B C -sky130_fd_sc_hd__and3_2 -> A B C -sky130_fd_sc_hd__and3_4 -> A B C -sky130_fd_sc_hd__and3b_1 -> B C -sky130_fd_sc_hd__and3b_2 -> B C -sky130_fd_sc_hd__and3b_4 -> B C -sky130_fd_sc_hd__and4_1 -> A B C D -sky130_fd_sc_hd__and4_2 -> A B C D -sky130_fd_sc_hd__and4_4 -> A B C D -sky130_fd_sc_hd__and4b_1 -> B C D -sky130_fd_sc_hd__and4b_2 -> B C D -sky130_fd_sc_hd__and4b_4 -> B C D -sky130_fd_sc_hd__and4bb_1 -> C D -sky130_fd_sc_hd__and4bb_2 -> C D -sky130_fd_sc_hd__and4bb_4 -> C D -sky130_fd_sc_hd__buf_1 -> -sky130_fd_sc_hd__buf_12 -> -sky130_fd_sc_hd__buf_16 -> -sky130_fd_sc_hd__buf_2 -> -sky130_fd_sc_hd__buf_4 -> -sky130_fd_sc_hd__buf_6 -> -sky130_fd_sc_hd__buf_8 -> -sky130_fd_sc_hd__bufbuf_16 -> -sky130_fd_sc_hd__bufbuf_8 -> -sky130_fd_sc_hd__bufinv_16 -> -sky130_fd_sc_hd__bufinv_8 -> -sky130_fd_sc_hd__clkbuf_1 -> -sky130_fd_sc_hd__clkbuf_16 -> -sky130_fd_sc_hd__clkbuf_2 -> -sky130_fd_sc_hd__clkbuf_4 -> -sky130_fd_sc_hd__clkbuf_8 -> -sky130_fd_sc_hd__clkdlybuf4s15_1 -> -sky130_fd_sc_hd__clkdlybuf4s15_2 -> -sky130_fd_sc_hd__clkdlybuf4s18_1 -> -sky130_fd_sc_hd__clkdlybuf4s18_2 -> -sky130_fd_sc_hd__clkdlybuf4s25_1 -> -sky130_fd_sc_hd__clkdlybuf4s25_2 -> -sky130_fd_sc_hd__clkdlybuf4s50_1 -> -sky130_fd_sc_hd__clkdlybuf4s50_2 -> -sky130_fd_sc_hd__clkinv_1 -> -sky130_fd_sc_hd__clkinv_16 -> -sky130_fd_sc_hd__clkinv_2 -> -sky130_fd_sc_hd__clkinv_4 -> -sky130_fd_sc_hd__clkinv_8 -> -sky130_fd_sc_hd__clkinvlp_2 -> -sky130_fd_sc_hd__clkinvlp_4 -> -sky130_fd_sc_hd__conb_1 -> -sky130_fd_sc_hd__decap_12 -> -sky130_fd_sc_hd__decap_3 -> -sky130_fd_sc_hd__decap_4 -> -sky130_fd_sc_hd__decap_6 -> -sky130_fd_sc_hd__decap_8 -> -sky130_fd_sc_hd__dfbbn_1 -> -sky130_fd_sc_hd__dfbbn_2 -> -sky130_fd_sc_hd__dfbbp_1 -> -sky130_fd_sc_hd__dfrbp_1 -> -sky130_fd_sc_hd__dfrbp_2 -> -sky130_fd_sc_hd__dfrtn_1 -> -sky130_fd_sc_hd__dfrtp_1 -> -sky130_fd_sc_hd__dfrtp_2 -> -sky130_fd_sc_hd__dfrtp_4 -> -sky130_fd_sc_hd__dfsbp_1 -> -sky130_fd_sc_hd__dfsbp_2 -> -sky130_fd_sc_hd__dfstp_1 -> -sky130_fd_sc_hd__dfstp_2 -> -sky130_fd_sc_hd__dfstp_4 -> -sky130_fd_sc_hd__dfxbp_1 -> -sky130_fd_sc_hd__dfxbp_2 -> -sky130_fd_sc_hd__dfxtp_1 -> -sky130_fd_sc_hd__dfxtp_2 -> -sky130_fd_sc_hd__dfxtp_4 -> -sky130_fd_sc_hd__diode_2 -> -sky130_fd_sc_hd__dlclkp_1 -> -sky130_fd_sc_hd__dlclkp_2 -> -sky130_fd_sc_hd__dlclkp_4 -> -sky130_fd_sc_hd__dlrbn_1 -> -sky130_fd_sc_hd__dlrbn_2 -> -sky130_fd_sc_hd__dlrbp_1 -> -sky130_fd_sc_hd__dlrbp_2 -> -sky130_fd_sc_hd__dlrtn_1 -> -sky130_fd_sc_hd__dlrtn_2 -> -sky130_fd_sc_hd__dlrtn_4 -> -sky130_fd_sc_hd__dlrtp_1 -> -sky130_fd_sc_hd__dlrtp_2 -> -sky130_fd_sc_hd__dlrtp_4 -> -sky130_fd_sc_hd__dlxbn_1 -> -sky130_fd_sc_hd__dlxbn_2 -> -sky130_fd_sc_hd__dlxbp_1 -> -sky130_fd_sc_hd__dlxtn_1 -> -sky130_fd_sc_hd__dlxtn_2 -> -sky130_fd_sc_hd__dlxtn_4 -> -sky130_fd_sc_hd__dlxtp_1 -> -sky130_fd_sc_hd__dlygate4sd1_1 -> -sky130_fd_sc_hd__dlygate4sd2_1 -> -sky130_fd_sc_hd__dlygate4sd3_1 -> -sky130_fd_sc_hd__dlymetal6s2s_1 -> -sky130_fd_sc_hd__dlymetal6s4s_1 -> -sky130_fd_sc_hd__dlymetal6s6s_1 -> -sky130_fd_sc_hd__ebufn_1 -> -sky130_fd_sc_hd__ebufn_2 -> -sky130_fd_sc_hd__ebufn_4 -> -sky130_fd_sc_hd__ebufn_8 -> -sky130_fd_sc_hd__edfxbp_1 -> -sky130_fd_sc_hd__edfxtp_1 -> -sky130_fd_sc_hd__einvn_0 -> -sky130_fd_sc_hd__einvn_1 -> -sky130_fd_sc_hd__einvn_2 -> -sky130_fd_sc_hd__einvn_4 -> -sky130_fd_sc_hd__einvn_8 -> -sky130_fd_sc_hd__einvp_1 -> -sky130_fd_sc_hd__einvp_2 -> -sky130_fd_sc_hd__einvp_4 -> -sky130_fd_sc_hd__einvp_8 -> -sky130_fd_sc_hd__fa_1 -> -sky130_fd_sc_hd__fa_2 -> -sky130_fd_sc_hd__fa_4 -> -sky130_fd_sc_hd__fah_1 -> -sky130_fd_sc_hd__fahcin_1 -> -sky130_fd_sc_hd__fahcon_1 -> -sky130_fd_sc_hd__ha_1 -> -sky130_fd_sc_hd__ha_2 -> -sky130_fd_sc_hd__ha_4 -> -sky130_fd_sc_hd__inv_1 -> -sky130_fd_sc_hd__inv_12 -> -sky130_fd_sc_hd__inv_16 -> -sky130_fd_sc_hd__inv_2 -> -sky130_fd_sc_hd__inv_4 -> -sky130_fd_sc_hd__inv_6 -> -sky130_fd_sc_hd__inv_8 -> -sky130_fd_sc_hd__lpflow_bleeder_1 -> -sky130_fd_sc_hd__lpflow_clkbufkapwr_1 -> -sky130_fd_sc_hd__lpflow_clkbufkapwr_16 -> -sky130_fd_sc_hd__lpflow_clkbufkapwr_2 -> -sky130_fd_sc_hd__lpflow_clkbufkapwr_4 -> -sky130_fd_sc_hd__lpflow_clkbufkapwr_8 -> -sky130_fd_sc_hd__lpflow_clkinvkapwr_1 -> -sky130_fd_sc_hd__lpflow_clkinvkapwr_16 -> -sky130_fd_sc_hd__lpflow_clkinvkapwr_2 -> -sky130_fd_sc_hd__lpflow_clkinvkapwr_4 -> -sky130_fd_sc_hd__lpflow_clkinvkapwr_8 -> -sky130_fd_sc_hd__lpflow_decapkapwr_12 -> -sky130_fd_sc_hd__lpflow_decapkapwr_3 -> -sky130_fd_sc_hd__lpflow_decapkapwr_4 -> -sky130_fd_sc_hd__lpflow_decapkapwr_6 -> -sky130_fd_sc_hd__lpflow_decapkapwr_8 -> -sky130_fd_sc_hd__lpflow_inputiso0n_1 -> -sky130_fd_sc_hd__lpflow_inputiso0p_1 -> -sky130_fd_sc_hd__lpflow_inputiso1n_1 -> -sky130_fd_sc_hd__lpflow_inputiso1p_1 -> -sky130_fd_sc_hd__lpflow_inputisolatch_1 -> -sky130_fd_sc_hd__lpflow_isobufsrc_1 -> -sky130_fd_sc_hd__lpflow_isobufsrc_16 -> -sky130_fd_sc_hd__lpflow_isobufsrc_2 -> -sky130_fd_sc_hd__lpflow_isobufsrc_4 -> -sky130_fd_sc_hd__lpflow_isobufsrc_8 -> -sky130_fd_sc_hd__lpflow_isobufsrckapwr_16 -> -sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_1 -> -sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_2 -> -sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_4 -> -sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_4 -> -sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_1 -> -sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_2 -> -sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_4 -> -sky130_fd_sc_hd__macro_sparecell -> -sky130_fd_sc_hd__maj3_1 -> -sky130_fd_sc_hd__maj3_2 -> -sky130_fd_sc_hd__maj3_4 -> -sky130_fd_sc_hd__mux2_1 -> -sky130_fd_sc_hd__mux2_2 -> -sky130_fd_sc_hd__mux2_4 -> -sky130_fd_sc_hd__mux2_8 -> -sky130_fd_sc_hd__mux2i_1 -> -sky130_fd_sc_hd__mux2i_2 -> -sky130_fd_sc_hd__mux2i_4 -> -sky130_fd_sc_hd__mux4_1 -> -sky130_fd_sc_hd__mux4_2 -> -sky130_fd_sc_hd__mux4_4 -> -sky130_fd_sc_hd__nand2_1 -> A B -sky130_fd_sc_hd__nand2_2 -> A B -sky130_fd_sc_hd__nand2_4 -> A B -sky130_fd_sc_hd__nand2_8 -> A B -sky130_fd_sc_hd__nand2b_1 -> -sky130_fd_sc_hd__nand2b_2 -> -sky130_fd_sc_hd__nand2b_4 -> -sky130_fd_sc_hd__nand3_1 -> A B C -sky130_fd_sc_hd__nand3_2 -> A B C -sky130_fd_sc_hd__nand3_4 -> A B C -sky130_fd_sc_hd__nand3b_1 -> B C -sky130_fd_sc_hd__nand3b_2 -> B C -sky130_fd_sc_hd__nand3b_4 -> B C -sky130_fd_sc_hd__nand4_1 -> A B C D -sky130_fd_sc_hd__nand4_2 -> A B C D -sky130_fd_sc_hd__nand4_4 -> A B C D -sky130_fd_sc_hd__nand4b_1 -> B C D -sky130_fd_sc_hd__nand4b_2 -> B C D -sky130_fd_sc_hd__nand4b_4 -> B C D -sky130_fd_sc_hd__nand4bb_1 -> A_N B_N -sky130_fd_sc_hd__nand4bb_2 -> A_N B_N -sky130_fd_sc_hd__nand4bb_4 -> A_N B_N -sky130_fd_sc_hd__nor2_1 -> A B -sky130_fd_sc_hd__nor2_2 -> A B -sky130_fd_sc_hd__nor2_4 -> A B -sky130_fd_sc_hd__nor2_8 -> A B -sky130_fd_sc_hd__nor2b_1 -> -sky130_fd_sc_hd__nor2b_2 -> -sky130_fd_sc_hd__nor2b_4 -> -sky130_fd_sc_hd__nor3_1 -> A B C -sky130_fd_sc_hd__nor3_2 -> A B C -sky130_fd_sc_hd__nor3_4 -> A B C -sky130_fd_sc_hd__nor3b_1 -> A B -sky130_fd_sc_hd__nor3b_2 -> A B -sky130_fd_sc_hd__nor3b_4 -> A B -sky130_fd_sc_hd__nor4_1 -> A B C D -sky130_fd_sc_hd__nor4_2 -> A B C D -sky130_fd_sc_hd__nor4_4 -> A B C D -sky130_fd_sc_hd__nor4b_1 -> A B C -sky130_fd_sc_hd__nor4b_2 -> A B C -sky130_fd_sc_hd__nor4b_4 -> A B C -sky130_fd_sc_hd__nor4bb_1 -> C_N D_N -sky130_fd_sc_hd__nor4bb_2 -> C_N D_N -sky130_fd_sc_hd__nor4bb_4 -> C_N D_N -sky130_fd_sc_hd__o2111a_1 -> -sky130_fd_sc_hd__o2111a_2 -> -sky130_fd_sc_hd__o2111a_4 -> -sky130_fd_sc_hd__o2111ai_1 -> -sky130_fd_sc_hd__o2111ai_2 -> -sky130_fd_sc_hd__o2111ai_4 -> -sky130_fd_sc_hd__o211a_1 -> -sky130_fd_sc_hd__o211a_2 -> -sky130_fd_sc_hd__o211a_4 -> -sky130_fd_sc_hd__o211ai_1 -> -sky130_fd_sc_hd__o211ai_2 -> -sky130_fd_sc_hd__o211ai_4 -> -sky130_fd_sc_hd__o21a_1 -> -sky130_fd_sc_hd__o21a_2 -> -sky130_fd_sc_hd__o21a_4 -> -sky130_fd_sc_hd__o21ai_0 -> -sky130_fd_sc_hd__o21ai_1 -> -sky130_fd_sc_hd__o21ai_2 -> -sky130_fd_sc_hd__o21ai_4 -> -sky130_fd_sc_hd__o21ba_1 -> -sky130_fd_sc_hd__o21ba_2 -> -sky130_fd_sc_hd__o21ba_4 -> -sky130_fd_sc_hd__o21bai_1 -> -sky130_fd_sc_hd__o21bai_2 -> -sky130_fd_sc_hd__o21bai_4 -> -sky130_fd_sc_hd__o221a_1 -> -sky130_fd_sc_hd__o221a_2 -> -sky130_fd_sc_hd__o221a_4 -> -sky130_fd_sc_hd__o221ai_1 -> -sky130_fd_sc_hd__o221ai_2 -> -sky130_fd_sc_hd__o221ai_4 -> -sky130_fd_sc_hd__o22a_1 -> -sky130_fd_sc_hd__o22a_2 -> -sky130_fd_sc_hd__o22a_4 -> -sky130_fd_sc_hd__o22ai_1 -> -sky130_fd_sc_hd__o22ai_2 -> -sky130_fd_sc_hd__o22ai_4 -> -sky130_fd_sc_hd__o2bb2a_1 -> -sky130_fd_sc_hd__o2bb2a_2 -> -sky130_fd_sc_hd__o2bb2a_4 -> -sky130_fd_sc_hd__o2bb2ai_1 -> -sky130_fd_sc_hd__o2bb2ai_2 -> -sky130_fd_sc_hd__o2bb2ai_4 -> -sky130_fd_sc_hd__o311a_1 -> -sky130_fd_sc_hd__o311a_2 -> -sky130_fd_sc_hd__o311a_4 -> -sky130_fd_sc_hd__o311ai_0 -> -sky130_fd_sc_hd__o311ai_1 -> -sky130_fd_sc_hd__o311ai_2 -> -sky130_fd_sc_hd__o311ai_4 -> -sky130_fd_sc_hd__o31a_1 -> -sky130_fd_sc_hd__o31a_2 -> -sky130_fd_sc_hd__o31a_4 -> -sky130_fd_sc_hd__o31ai_1 -> -sky130_fd_sc_hd__o31ai_2 -> -sky130_fd_sc_hd__o31ai_4 -> -sky130_fd_sc_hd__o32a_1 -> -sky130_fd_sc_hd__o32a_2 -> -sky130_fd_sc_hd__o32a_4 -> -sky130_fd_sc_hd__o32ai_1 -> -sky130_fd_sc_hd__o32ai_2 -> -sky130_fd_sc_hd__o32ai_4 -> -sky130_fd_sc_hd__o41a_1 -> -sky130_fd_sc_hd__o41a_2 -> -sky130_fd_sc_hd__o41a_4 -> -sky130_fd_sc_hd__o41ai_1 -> -sky130_fd_sc_hd__o41ai_2 -> -sky130_fd_sc_hd__o41ai_4 -> -sky130_fd_sc_hd__or2_0 -> A B -sky130_fd_sc_hd__or2_1 -> A B -sky130_fd_sc_hd__or2_2 -> A B -sky130_fd_sc_hd__or2_4 -> A B -sky130_fd_sc_hd__or2b_1 -> -sky130_fd_sc_hd__or2b_2 -> -sky130_fd_sc_hd__or2b_4 -> -sky130_fd_sc_hd__or3_1 -> A B C -sky130_fd_sc_hd__or3_2 -> A B C -sky130_fd_sc_hd__or3_4 -> A B C -sky130_fd_sc_hd__or3b_1 -> A B -sky130_fd_sc_hd__or3b_2 -> A B -sky130_fd_sc_hd__or3b_4 -> A B -sky130_fd_sc_hd__or4_1 -> A B C D -sky130_fd_sc_hd__or4_2 -> A B C D -sky130_fd_sc_hd__or4_4 -> A B C D -sky130_fd_sc_hd__or4b_1 -> A B C -sky130_fd_sc_hd__or4b_2 -> A B C -sky130_fd_sc_hd__or4b_4 -> A B C -sky130_fd_sc_hd__or4bb_1 -> A B -sky130_fd_sc_hd__or4bb_2 -> A B -sky130_fd_sc_hd__or4bb_4 -> A B -sky130_fd_sc_hd__probe_p_8 -> -sky130_fd_sc_hd__probec_p_8 -> -sky130_fd_sc_hd__sdfbbn_1 -> -sky130_fd_sc_hd__sdfbbn_2 -> -sky130_fd_sc_hd__sdfbbp_1 -> -sky130_fd_sc_hd__sdfrbp_1 -> -sky130_fd_sc_hd__sdfrbp_2 -> -sky130_fd_sc_hd__sdfrtn_1 -> -sky130_fd_sc_hd__sdfrtp_1 -> -sky130_fd_sc_hd__sdfrtp_2 -> -sky130_fd_sc_hd__sdfrtp_4 -> -sky130_fd_sc_hd__sdfsbp_1 -> -sky130_fd_sc_hd__sdfsbp_2 -> -sky130_fd_sc_hd__sdfstp_1 -> -sky130_fd_sc_hd__sdfstp_2 -> -sky130_fd_sc_hd__sdfstp_4 -> -sky130_fd_sc_hd__sdfxbp_1 -> -sky130_fd_sc_hd__sdfxbp_2 -> -sky130_fd_sc_hd__sdfxtp_1 -> -sky130_fd_sc_hd__sdfxtp_2 -> -sky130_fd_sc_hd__sdfxtp_4 -> -sky130_fd_sc_hd__sdlclkp_1 -> -sky130_fd_sc_hd__sdlclkp_2 -> -sky130_fd_sc_hd__sdlclkp_4 -> -sky130_fd_sc_hd__sedfxbp_1 -> -sky130_fd_sc_hd__sedfxbp_2 -> -sky130_fd_sc_hd__sedfxtp_1 -> -sky130_fd_sc_hd__sedfxtp_2 -> -sky130_fd_sc_hd__sedfxtp_4 -> -sky130_fd_sc_hd__xnor2_1 -> -sky130_fd_sc_hd__xnor2_2 -> -sky130_fd_sc_hd__xnor2_4 -> -sky130_fd_sc_hd__xnor3_1 -> -sky130_fd_sc_hd__xnor3_2 -> -sky130_fd_sc_hd__xnor3_4 -> -sky130_fd_sc_hd__xor2_1 -> -sky130_fd_sc_hd__xor2_2 -> -sky130_fd_sc_hd__xor2_4 -> -sky130_fd_sc_hd__xor3_1 -> -sky130_fd_sc_hd__xor3_2 -> -sky130_fd_sc_hd__xor3_4 -> +sky130_fd_sc_hd__a2111o_1/A1 -> A2 +sky130_fd_sc_hd__a2111o_1/A2 -> A1 +sky130_fd_sc_hd__a2111o_1/B1 -> C1 D1 +sky130_fd_sc_hd__a2111o_1/C1 -> B1 D1 +sky130_fd_sc_hd__a2111o_1/D1 -> B1 C1 +sky130_fd_sc_hd__a2111o_2/A1 -> A2 +sky130_fd_sc_hd__a2111o_2/A2 -> A1 +sky130_fd_sc_hd__a2111o_2/B1 -> C1 D1 +sky130_fd_sc_hd__a2111o_2/C1 -> B1 D1 +sky130_fd_sc_hd__a2111o_2/D1 -> B1 C1 +sky130_fd_sc_hd__a2111o_4/A1 -> A2 +sky130_fd_sc_hd__a2111o_4/A2 -> A1 +sky130_fd_sc_hd__a2111o_4/B1 -> C1 D1 +sky130_fd_sc_hd__a2111o_4/C1 -> B1 D1 +sky130_fd_sc_hd__a2111o_4/D1 -> B1 C1 +sky130_fd_sc_hd__a2111oi_0/A1 -> A2 +sky130_fd_sc_hd__a2111oi_0/A2 -> A1 +sky130_fd_sc_hd__a2111oi_0/B1 -> C1 D1 +sky130_fd_sc_hd__a2111oi_0/C1 -> B1 D1 +sky130_fd_sc_hd__a2111oi_0/D1 -> B1 C1 +sky130_fd_sc_hd__a2111oi_1/A1 -> A2 +sky130_fd_sc_hd__a2111oi_1/A2 -> A1 +sky130_fd_sc_hd__a2111oi_1/B1 -> C1 D1 +sky130_fd_sc_hd__a2111oi_1/C1 -> B1 D1 +sky130_fd_sc_hd__a2111oi_1/D1 -> B1 C1 +sky130_fd_sc_hd__a2111oi_2/A1 -> A2 +sky130_fd_sc_hd__a2111oi_2/A2 -> A1 +sky130_fd_sc_hd__a2111oi_2/B1 -> C1 D1 +sky130_fd_sc_hd__a2111oi_2/C1 -> B1 D1 +sky130_fd_sc_hd__a2111oi_2/D1 -> B1 C1 +sky130_fd_sc_hd__a2111oi_4/A1 -> A2 +sky130_fd_sc_hd__a2111oi_4/A2 -> A1 +sky130_fd_sc_hd__a2111oi_4/B1 -> C1 D1 +sky130_fd_sc_hd__a2111oi_4/C1 -> B1 D1 +sky130_fd_sc_hd__a2111oi_4/D1 -> B1 C1 +sky130_fd_sc_hd__a211o_1/A1 -> A2 +sky130_fd_sc_hd__a211o_1/A2 -> A1 +sky130_fd_sc_hd__a211o_1/B1 -> C1 +sky130_fd_sc_hd__a211o_1/C1 -> B1 +sky130_fd_sc_hd__a211o_2/A1 -> A2 +sky130_fd_sc_hd__a211o_2/A2 -> A1 +sky130_fd_sc_hd__a211o_2/B1 -> C1 +sky130_fd_sc_hd__a211o_2/C1 -> B1 +sky130_fd_sc_hd__a211o_4/A1 -> A2 +sky130_fd_sc_hd__a211o_4/A2 -> A1 +sky130_fd_sc_hd__a211o_4/B1 -> C1 +sky130_fd_sc_hd__a211o_4/C1 -> B1 +sky130_fd_sc_hd__a211oi_1/A1 -> A2 +sky130_fd_sc_hd__a211oi_1/A2 -> A1 +sky130_fd_sc_hd__a211oi_1/B1 -> C1 +sky130_fd_sc_hd__a211oi_1/C1 -> B1 +sky130_fd_sc_hd__a211oi_2/A1 -> A2 +sky130_fd_sc_hd__a211oi_2/A2 -> A1 +sky130_fd_sc_hd__a211oi_2/B1 -> C1 +sky130_fd_sc_hd__a211oi_2/C1 -> B1 +sky130_fd_sc_hd__a211oi_4/A1 -> A2 +sky130_fd_sc_hd__a211oi_4/A2 -> A1 +sky130_fd_sc_hd__a211oi_4/B1 -> C1 +sky130_fd_sc_hd__a211oi_4/C1 -> B1 +sky130_fd_sc_hd__a21bo_1/A1 -> A2 +sky130_fd_sc_hd__a21bo_1/A2 -> A1 +sky130_fd_sc_hd__a21bo_1/B1_N -> +sky130_fd_sc_hd__a21bo_2/A1 -> A2 +sky130_fd_sc_hd__a21bo_2/A2 -> A1 +sky130_fd_sc_hd__a21bo_2/B1_N -> +sky130_fd_sc_hd__a21bo_4/A1 -> A2 +sky130_fd_sc_hd__a21bo_4/A2 -> A1 +sky130_fd_sc_hd__a21bo_4/B1_N -> +sky130_fd_sc_hd__a21boi_0/A1 -> A2 +sky130_fd_sc_hd__a21boi_0/A2 -> A1 +sky130_fd_sc_hd__a21boi_0/B1_N -> +sky130_fd_sc_hd__a21boi_1/A1 -> A2 +sky130_fd_sc_hd__a21boi_1/A2 -> A1 +sky130_fd_sc_hd__a21boi_1/B1_N -> +sky130_fd_sc_hd__a21boi_2/A1 -> A2 +sky130_fd_sc_hd__a21boi_2/A2 -> A1 +sky130_fd_sc_hd__a21boi_2/B1_N -> +sky130_fd_sc_hd__a21boi_4/A1 -> A2 +sky130_fd_sc_hd__a21boi_4/A2 -> A1 +sky130_fd_sc_hd__a21boi_4/B1_N -> +sky130_fd_sc_hd__a21o_1/A1 -> A2 +sky130_fd_sc_hd__a21o_1/A2 -> A1 +sky130_fd_sc_hd__a21o_1/B1 -> +sky130_fd_sc_hd__a21o_2/A1 -> A2 +sky130_fd_sc_hd__a21o_2/A2 -> A1 +sky130_fd_sc_hd__a21o_2/B1 -> +sky130_fd_sc_hd__a21o_4/A1 -> A2 +sky130_fd_sc_hd__a21o_4/A2 -> A1 +sky130_fd_sc_hd__a21o_4/B1 -> +sky130_fd_sc_hd__a21oi_1/A1 -> A2 +sky130_fd_sc_hd__a21oi_1/A2 -> A1 +sky130_fd_sc_hd__a21oi_1/B1 -> +sky130_fd_sc_hd__a21oi_2/A1 -> A2 +sky130_fd_sc_hd__a21oi_2/A2 -> A1 +sky130_fd_sc_hd__a21oi_2/B1 -> +sky130_fd_sc_hd__a21oi_4/A1 -> A2 +sky130_fd_sc_hd__a21oi_4/A2 -> A1 +sky130_fd_sc_hd__a21oi_4/B1 -> +sky130_fd_sc_hd__a221o_1/A1 -> A2 +sky130_fd_sc_hd__a221o_1/A2 -> A1 +sky130_fd_sc_hd__a221o_1/B1 -> B2 +sky130_fd_sc_hd__a221o_1/B2 -> B1 +sky130_fd_sc_hd__a221o_1/C1 -> +sky130_fd_sc_hd__a221o_2/A1 -> A2 +sky130_fd_sc_hd__a221o_2/A2 -> A1 +sky130_fd_sc_hd__a221o_2/B1 -> B2 +sky130_fd_sc_hd__a221o_2/B2 -> B1 +sky130_fd_sc_hd__a221o_2/C1 -> +sky130_fd_sc_hd__a221o_4/A1 -> A2 +sky130_fd_sc_hd__a221o_4/A2 -> A1 +sky130_fd_sc_hd__a221o_4/B1 -> B2 +sky130_fd_sc_hd__a221o_4/B2 -> B1 +sky130_fd_sc_hd__a221o_4/C1 -> +sky130_fd_sc_hd__a221oi_1/A1 -> A2 +sky130_fd_sc_hd__a221oi_1/A2 -> A1 +sky130_fd_sc_hd__a221oi_1/B1 -> B2 +sky130_fd_sc_hd__a221oi_1/B2 -> B1 +sky130_fd_sc_hd__a221oi_1/C1 -> +sky130_fd_sc_hd__a221oi_2/A1 -> A2 +sky130_fd_sc_hd__a221oi_2/A2 -> A1 +sky130_fd_sc_hd__a221oi_2/B1 -> B2 +sky130_fd_sc_hd__a221oi_2/B2 -> B1 +sky130_fd_sc_hd__a221oi_2/C1 -> +sky130_fd_sc_hd__a221oi_4/A1 -> A2 +sky130_fd_sc_hd__a221oi_4/A2 -> A1 +sky130_fd_sc_hd__a221oi_4/B1 -> B2 +sky130_fd_sc_hd__a221oi_4/B2 -> B1 +sky130_fd_sc_hd__a221oi_4/C1 -> +sky130_fd_sc_hd__a222oi_1/A1 -> A2 +sky130_fd_sc_hd__a222oi_1/A2 -> A1 +sky130_fd_sc_hd__a222oi_1/B1 -> B2 +sky130_fd_sc_hd__a222oi_1/B2 -> B1 +sky130_fd_sc_hd__a222oi_1/C1 -> C2 +sky130_fd_sc_hd__a222oi_1/C2 -> C1 +sky130_fd_sc_hd__a22o_1/A1 -> A2 +sky130_fd_sc_hd__a22o_1/A2 -> A1 +sky130_fd_sc_hd__a22o_1/B1 -> B2 +sky130_fd_sc_hd__a22o_1/B2 -> B1 +sky130_fd_sc_hd__a22o_2/A1 -> A2 +sky130_fd_sc_hd__a22o_2/A2 -> A1 +sky130_fd_sc_hd__a22o_2/B1 -> B2 +sky130_fd_sc_hd__a22o_2/B2 -> B1 +sky130_fd_sc_hd__a22o_4/A1 -> A2 +sky130_fd_sc_hd__a22o_4/A2 -> A1 +sky130_fd_sc_hd__a22o_4/B1 -> B2 +sky130_fd_sc_hd__a22o_4/B2 -> B1 +sky130_fd_sc_hd__a22oi_1/A1 -> A2 +sky130_fd_sc_hd__a22oi_1/A2 -> A1 +sky130_fd_sc_hd__a22oi_1/B1 -> B2 +sky130_fd_sc_hd__a22oi_1/B2 -> B1 +sky130_fd_sc_hd__a22oi_2/A1 -> A2 +sky130_fd_sc_hd__a22oi_2/A2 -> A1 +sky130_fd_sc_hd__a22oi_2/B1 -> B2 +sky130_fd_sc_hd__a22oi_2/B2 -> B1 +sky130_fd_sc_hd__a22oi_4/A1 -> A2 +sky130_fd_sc_hd__a22oi_4/A2 -> A1 +sky130_fd_sc_hd__a22oi_4/B1 -> B2 +sky130_fd_sc_hd__a22oi_4/B2 -> B1 +sky130_fd_sc_hd__a2bb2o_1/A1_N -> A2_N +sky130_fd_sc_hd__a2bb2o_1/A2_N -> A1_N +sky130_fd_sc_hd__a2bb2o_1/B1 -> B2 +sky130_fd_sc_hd__a2bb2o_1/B2 -> B1 +sky130_fd_sc_hd__a2bb2o_2/A1_N -> A2_N +sky130_fd_sc_hd__a2bb2o_2/A2_N -> A1_N +sky130_fd_sc_hd__a2bb2o_2/B1 -> B2 +sky130_fd_sc_hd__a2bb2o_2/B2 -> B1 +sky130_fd_sc_hd__a2bb2o_4/A1_N -> A2_N +sky130_fd_sc_hd__a2bb2o_4/A2_N -> A1_N +sky130_fd_sc_hd__a2bb2o_4/B1 -> B2 +sky130_fd_sc_hd__a2bb2o_4/B2 -> B1 +sky130_fd_sc_hd__a2bb2oi_1/A1_N -> A2_N +sky130_fd_sc_hd__a2bb2oi_1/A2_N -> A1_N +sky130_fd_sc_hd__a2bb2oi_1/B1 -> B2 +sky130_fd_sc_hd__a2bb2oi_1/B2 -> B1 +sky130_fd_sc_hd__a2bb2oi_2/A1_N -> A2_N +sky130_fd_sc_hd__a2bb2oi_2/A2_N -> A1_N +sky130_fd_sc_hd__a2bb2oi_2/B1 -> B2 +sky130_fd_sc_hd__a2bb2oi_2/B2 -> B1 +sky130_fd_sc_hd__a2bb2oi_4/A1_N -> A2_N +sky130_fd_sc_hd__a2bb2oi_4/A2_N -> A1_N +sky130_fd_sc_hd__a2bb2oi_4/B1 -> B2 +sky130_fd_sc_hd__a2bb2oi_4/B2 -> B1 +sky130_fd_sc_hd__a311o_1/A1 -> A2 A3 +sky130_fd_sc_hd__a311o_1/A2 -> A1 A3 +sky130_fd_sc_hd__a311o_1/A3 -> A1 A2 +sky130_fd_sc_hd__a311o_1/B1 -> C1 +sky130_fd_sc_hd__a311o_1/C1 -> B1 +sky130_fd_sc_hd__a311o_2/A1 -> A2 A3 +sky130_fd_sc_hd__a311o_2/A2 -> A1 A3 +sky130_fd_sc_hd__a311o_2/A3 -> A1 A2 +sky130_fd_sc_hd__a311o_2/B1 -> C1 +sky130_fd_sc_hd__a311o_2/C1 -> B1 +sky130_fd_sc_hd__a311o_4/A1 -> A2 A3 +sky130_fd_sc_hd__a311o_4/A2 -> A1 A3 +sky130_fd_sc_hd__a311o_4/A3 -> A1 A2 +sky130_fd_sc_hd__a311o_4/B1 -> C1 +sky130_fd_sc_hd__a311o_4/C1 -> B1 +sky130_fd_sc_hd__a311oi_1/A1 -> A2 A3 +sky130_fd_sc_hd__a311oi_1/A2 -> A1 A3 +sky130_fd_sc_hd__a311oi_1/A3 -> A1 A2 +sky130_fd_sc_hd__a311oi_1/B1 -> C1 +sky130_fd_sc_hd__a311oi_1/C1 -> B1 +sky130_fd_sc_hd__a311oi_2/A1 -> A2 A3 +sky130_fd_sc_hd__a311oi_2/A2 -> A1 A3 +sky130_fd_sc_hd__a311oi_2/A3 -> A1 A2 +sky130_fd_sc_hd__a311oi_2/B1 -> C1 +sky130_fd_sc_hd__a311oi_2/C1 -> B1 +sky130_fd_sc_hd__a311oi_4/A1 -> A2 A3 +sky130_fd_sc_hd__a311oi_4/A2 -> A1 A3 +sky130_fd_sc_hd__a311oi_4/A3 -> A1 A2 +sky130_fd_sc_hd__a311oi_4/B1 -> C1 +sky130_fd_sc_hd__a311oi_4/C1 -> B1 +sky130_fd_sc_hd__a31o_1/A1 -> A2 A3 +sky130_fd_sc_hd__a31o_1/A2 -> A1 A3 +sky130_fd_sc_hd__a31o_1/A3 -> A1 A2 +sky130_fd_sc_hd__a31o_1/B1 -> +sky130_fd_sc_hd__a31o_2/A1 -> A2 A3 +sky130_fd_sc_hd__a31o_2/A2 -> A1 A3 +sky130_fd_sc_hd__a31o_2/A3 -> A1 A2 +sky130_fd_sc_hd__a31o_2/B1 -> +sky130_fd_sc_hd__a31o_4/A1 -> A2 A3 +sky130_fd_sc_hd__a31o_4/A2 -> A1 A3 +sky130_fd_sc_hd__a31o_4/A3 -> A1 A2 +sky130_fd_sc_hd__a31o_4/B1 -> +sky130_fd_sc_hd__a31oi_1/A1 -> A2 A3 +sky130_fd_sc_hd__a31oi_1/A2 -> A1 A3 +sky130_fd_sc_hd__a31oi_1/A3 -> A1 A2 +sky130_fd_sc_hd__a31oi_1/B1 -> +sky130_fd_sc_hd__a31oi_2/A1 -> A2 A3 +sky130_fd_sc_hd__a31oi_2/A2 -> A1 A3 +sky130_fd_sc_hd__a31oi_2/A3 -> A1 A2 +sky130_fd_sc_hd__a31oi_2/B1 -> +sky130_fd_sc_hd__a31oi_4/A1 -> A2 A3 +sky130_fd_sc_hd__a31oi_4/A2 -> A1 A3 +sky130_fd_sc_hd__a31oi_4/A3 -> A1 A2 +sky130_fd_sc_hd__a31oi_4/B1 -> +sky130_fd_sc_hd__a32o_1/A1 -> A2 A3 +sky130_fd_sc_hd__a32o_1/A2 -> A1 A3 +sky130_fd_sc_hd__a32o_1/A3 -> A1 A2 +sky130_fd_sc_hd__a32o_1/B1 -> B2 +sky130_fd_sc_hd__a32o_1/B2 -> B1 +sky130_fd_sc_hd__a32o_2/A1 -> A2 A3 +sky130_fd_sc_hd__a32o_2/A2 -> A1 A3 +sky130_fd_sc_hd__a32o_2/A3 -> A1 A2 +sky130_fd_sc_hd__a32o_2/B1 -> B2 +sky130_fd_sc_hd__a32o_2/B2 -> B1 +sky130_fd_sc_hd__a32o_4/A1 -> A2 A3 +sky130_fd_sc_hd__a32o_4/A2 -> A1 A3 +sky130_fd_sc_hd__a32o_4/A3 -> A1 A2 +sky130_fd_sc_hd__a32o_4/B1 -> B2 +sky130_fd_sc_hd__a32o_4/B2 -> B1 +sky130_fd_sc_hd__a32oi_1/A1 -> A2 A3 +sky130_fd_sc_hd__a32oi_1/A2 -> A1 A3 +sky130_fd_sc_hd__a32oi_1/A3 -> A1 A2 +sky130_fd_sc_hd__a32oi_1/B1 -> B2 +sky130_fd_sc_hd__a32oi_1/B2 -> B1 +sky130_fd_sc_hd__a32oi_2/A1 -> A2 A3 +sky130_fd_sc_hd__a32oi_2/A2 -> A1 A3 +sky130_fd_sc_hd__a32oi_2/A3 -> A1 A2 +sky130_fd_sc_hd__a32oi_2/B1 -> B2 +sky130_fd_sc_hd__a32oi_2/B2 -> B1 +sky130_fd_sc_hd__a32oi_4/A1 -> A2 A3 +sky130_fd_sc_hd__a32oi_4/A2 -> A1 A3 +sky130_fd_sc_hd__a32oi_4/A3 -> A1 A2 +sky130_fd_sc_hd__a32oi_4/B1 -> B2 +sky130_fd_sc_hd__a32oi_4/B2 -> B1 +sky130_fd_sc_hd__a41o_1/A1 -> A2 A3 A4 +sky130_fd_sc_hd__a41o_1/A2 -> A1 A3 A4 +sky130_fd_sc_hd__a41o_1/A3 -> A1 A2 A4 +sky130_fd_sc_hd__a41o_1/A4 -> A1 A2 A3 +sky130_fd_sc_hd__a41o_1/B1 -> +sky130_fd_sc_hd__a41o_2/A1 -> A2 A3 A4 +sky130_fd_sc_hd__a41o_2/A2 -> A1 A3 A4 +sky130_fd_sc_hd__a41o_2/A3 -> A1 A2 A4 +sky130_fd_sc_hd__a41o_2/A4 -> A1 A2 A3 +sky130_fd_sc_hd__a41o_2/B1 -> +sky130_fd_sc_hd__a41o_4/A1 -> A2 A3 A4 +sky130_fd_sc_hd__a41o_4/A2 -> A1 A3 A4 +sky130_fd_sc_hd__a41o_4/A3 -> A1 A2 A4 +sky130_fd_sc_hd__a41o_4/A4 -> A1 A2 A3 +sky130_fd_sc_hd__a41o_4/B1 -> +sky130_fd_sc_hd__a41oi_1/A1 -> A2 A3 A4 +sky130_fd_sc_hd__a41oi_1/A2 -> A1 A3 A4 +sky130_fd_sc_hd__a41oi_1/A3 -> A1 A2 A4 +sky130_fd_sc_hd__a41oi_1/A4 -> A1 A2 A3 +sky130_fd_sc_hd__a41oi_1/B1 -> +sky130_fd_sc_hd__a41oi_2/A1 -> A2 A3 A4 +sky130_fd_sc_hd__a41oi_2/A2 -> A1 A3 A4 +sky130_fd_sc_hd__a41oi_2/A3 -> A1 A2 A4 +sky130_fd_sc_hd__a41oi_2/A4 -> A1 A2 A3 +sky130_fd_sc_hd__a41oi_2/B1 -> +sky130_fd_sc_hd__a41oi_4/A1 -> A2 A3 A4 +sky130_fd_sc_hd__a41oi_4/A2 -> A1 A3 A4 +sky130_fd_sc_hd__a41oi_4/A3 -> A1 A2 A4 +sky130_fd_sc_hd__a41oi_4/A4 -> A1 A2 A3 +sky130_fd_sc_hd__a41oi_4/B1 -> +sky130_fd_sc_hd__and2_0/A -> B +sky130_fd_sc_hd__and2_0/B -> A +sky130_fd_sc_hd__and2_1/A -> B +sky130_fd_sc_hd__and2_1/B -> A +sky130_fd_sc_hd__and2_2/A -> B +sky130_fd_sc_hd__and2_2/B -> A +sky130_fd_sc_hd__and2_4/A -> B +sky130_fd_sc_hd__and2_4/B -> A +sky130_fd_sc_hd__and2b_1/A_N -> +sky130_fd_sc_hd__and2b_1/B -> +sky130_fd_sc_hd__and2b_2/A_N -> +sky130_fd_sc_hd__and2b_2/B -> +sky130_fd_sc_hd__and2b_4/A_N -> +sky130_fd_sc_hd__and2b_4/B -> +sky130_fd_sc_hd__and3_1/A -> B C +sky130_fd_sc_hd__and3_1/B -> A C +sky130_fd_sc_hd__and3_1/C -> A B +sky130_fd_sc_hd__and3_2/A -> B C +sky130_fd_sc_hd__and3_2/B -> A C +sky130_fd_sc_hd__and3_2/C -> A B +sky130_fd_sc_hd__and3_4/A -> B C +sky130_fd_sc_hd__and3_4/B -> A C +sky130_fd_sc_hd__and3_4/C -> A B +sky130_fd_sc_hd__and3b_1/A_N -> +sky130_fd_sc_hd__and3b_1/B -> C +sky130_fd_sc_hd__and3b_1/C -> B +sky130_fd_sc_hd__and3b_2/A_N -> +sky130_fd_sc_hd__and3b_2/B -> C +sky130_fd_sc_hd__and3b_2/C -> B +sky130_fd_sc_hd__and3b_4/A_N -> +sky130_fd_sc_hd__and3b_4/B -> C +sky130_fd_sc_hd__and3b_4/C -> B +sky130_fd_sc_hd__and4_1/A -> B C D +sky130_fd_sc_hd__and4_1/B -> A C D +sky130_fd_sc_hd__and4_1/C -> A B D +sky130_fd_sc_hd__and4_1/D -> A B C +sky130_fd_sc_hd__and4_2/A -> B C D +sky130_fd_sc_hd__and4_2/B -> A C D +sky130_fd_sc_hd__and4_2/C -> A B D +sky130_fd_sc_hd__and4_2/D -> A B C +sky130_fd_sc_hd__and4_4/A -> B C D +sky130_fd_sc_hd__and4_4/B -> A C D +sky130_fd_sc_hd__and4_4/C -> A B D +sky130_fd_sc_hd__and4_4/D -> A B C +sky130_fd_sc_hd__and4b_1/A_N -> +sky130_fd_sc_hd__and4b_1/B -> C D +sky130_fd_sc_hd__and4b_1/C -> B D +sky130_fd_sc_hd__and4b_1/D -> B C +sky130_fd_sc_hd__and4b_2/A_N -> +sky130_fd_sc_hd__and4b_2/B -> C D +sky130_fd_sc_hd__and4b_2/C -> B D +sky130_fd_sc_hd__and4b_2/D -> B C +sky130_fd_sc_hd__and4b_4/A_N -> +sky130_fd_sc_hd__and4b_4/B -> C D +sky130_fd_sc_hd__and4b_4/C -> B D +sky130_fd_sc_hd__and4b_4/D -> B C +sky130_fd_sc_hd__and4bb_1/A_N -> B_N +sky130_fd_sc_hd__and4bb_1/B_N -> A_N +sky130_fd_sc_hd__and4bb_1/C -> D +sky130_fd_sc_hd__and4bb_1/D -> C +sky130_fd_sc_hd__and4bb_2/A_N -> B_N +sky130_fd_sc_hd__and4bb_2/B_N -> A_N +sky130_fd_sc_hd__and4bb_2/C -> D +sky130_fd_sc_hd__and4bb_2/D -> C +sky130_fd_sc_hd__and4bb_4/A_N -> B_N +sky130_fd_sc_hd__and4bb_4/B_N -> A_N +sky130_fd_sc_hd__and4bb_4/C -> D +sky130_fd_sc_hd__and4bb_4/D -> C +sky130_fd_sc_hd__buf_1/A -> +sky130_fd_sc_hd__buf_12/A -> +sky130_fd_sc_hd__buf_16/A -> +sky130_fd_sc_hd__buf_2/A -> +sky130_fd_sc_hd__buf_4/A -> +sky130_fd_sc_hd__buf_6/A -> +sky130_fd_sc_hd__buf_8/A -> +sky130_fd_sc_hd__bufbuf_16/A -> +sky130_fd_sc_hd__bufbuf_8/A -> +sky130_fd_sc_hd__bufinv_16/A -> +sky130_fd_sc_hd__bufinv_8/A -> +sky130_fd_sc_hd__clkbuf_1/A -> +sky130_fd_sc_hd__clkbuf_16/A -> +sky130_fd_sc_hd__clkbuf_2/A -> +sky130_fd_sc_hd__clkbuf_4/A -> +sky130_fd_sc_hd__clkbuf_8/A -> +sky130_fd_sc_hd__clkdlybuf4s15_1/A -> +sky130_fd_sc_hd__clkdlybuf4s15_2/A -> +sky130_fd_sc_hd__clkdlybuf4s18_1/A -> +sky130_fd_sc_hd__clkdlybuf4s18_2/A -> +sky130_fd_sc_hd__clkdlybuf4s25_1/A -> +sky130_fd_sc_hd__clkdlybuf4s25_2/A -> +sky130_fd_sc_hd__clkdlybuf4s50_1/A -> +sky130_fd_sc_hd__clkdlybuf4s50_2/A -> +sky130_fd_sc_hd__clkinv_1/A -> +sky130_fd_sc_hd__clkinv_16/A -> +sky130_fd_sc_hd__clkinv_2/A -> +sky130_fd_sc_hd__clkinv_4/A -> +sky130_fd_sc_hd__clkinv_8/A -> +sky130_fd_sc_hd__clkinvlp_2/A -> +sky130_fd_sc_hd__clkinvlp_4/A -> +sky130_fd_sc_hd__dfbbn_1/CLK_N -> +sky130_fd_sc_hd__dfbbn_1/D -> +sky130_fd_sc_hd__dfbbn_1/RESET_B -> +sky130_fd_sc_hd__dfbbn_1/SET_B -> +sky130_fd_sc_hd__dfbbn_2/CLK_N -> +sky130_fd_sc_hd__dfbbn_2/D -> +sky130_fd_sc_hd__dfbbn_2/RESET_B -> +sky130_fd_sc_hd__dfbbn_2/SET_B -> +sky130_fd_sc_hd__dfbbp_1/CLK -> +sky130_fd_sc_hd__dfbbp_1/D -> +sky130_fd_sc_hd__dfbbp_1/RESET_B -> +sky130_fd_sc_hd__dfbbp_1/SET_B -> +sky130_fd_sc_hd__dfrbp_1/CLK -> +sky130_fd_sc_hd__dfrbp_1/D -> +sky130_fd_sc_hd__dfrbp_1/RESET_B -> +sky130_fd_sc_hd__dfrbp_2/CLK -> +sky130_fd_sc_hd__dfrbp_2/D -> +sky130_fd_sc_hd__dfrbp_2/RESET_B -> +sky130_fd_sc_hd__dfrtn_1/CLK_N -> +sky130_fd_sc_hd__dfrtn_1/D -> +sky130_fd_sc_hd__dfrtn_1/RESET_B -> +sky130_fd_sc_hd__dfrtp_1/CLK -> +sky130_fd_sc_hd__dfrtp_1/D -> +sky130_fd_sc_hd__dfrtp_1/RESET_B -> +sky130_fd_sc_hd__dfrtp_2/CLK -> +sky130_fd_sc_hd__dfrtp_2/D -> +sky130_fd_sc_hd__dfrtp_2/RESET_B -> +sky130_fd_sc_hd__dfrtp_4/CLK -> +sky130_fd_sc_hd__dfrtp_4/D -> +sky130_fd_sc_hd__dfrtp_4/RESET_B -> +sky130_fd_sc_hd__dfsbp_1/CLK -> +sky130_fd_sc_hd__dfsbp_1/D -> +sky130_fd_sc_hd__dfsbp_1/SET_B -> +sky130_fd_sc_hd__dfsbp_2/CLK -> +sky130_fd_sc_hd__dfsbp_2/D -> +sky130_fd_sc_hd__dfsbp_2/SET_B -> +sky130_fd_sc_hd__dfstp_1/CLK -> +sky130_fd_sc_hd__dfstp_1/D -> +sky130_fd_sc_hd__dfstp_1/SET_B -> +sky130_fd_sc_hd__dfstp_2/CLK -> +sky130_fd_sc_hd__dfstp_2/D -> +sky130_fd_sc_hd__dfstp_2/SET_B -> +sky130_fd_sc_hd__dfstp_4/CLK -> +sky130_fd_sc_hd__dfstp_4/D -> +sky130_fd_sc_hd__dfstp_4/SET_B -> +sky130_fd_sc_hd__dfxbp_1/CLK -> +sky130_fd_sc_hd__dfxbp_1/D -> +sky130_fd_sc_hd__dfxbp_2/CLK -> +sky130_fd_sc_hd__dfxbp_2/D -> +sky130_fd_sc_hd__dfxtp_1/CLK -> +sky130_fd_sc_hd__dfxtp_1/D -> +sky130_fd_sc_hd__dfxtp_2/CLK -> +sky130_fd_sc_hd__dfxtp_2/D -> +sky130_fd_sc_hd__dfxtp_4/CLK -> +sky130_fd_sc_hd__dfxtp_4/D -> +sky130_fd_sc_hd__diode_2/DIODE -> +sky130_fd_sc_hd__dlclkp_1/CLK -> +sky130_fd_sc_hd__dlclkp_1/GATE -> +sky130_fd_sc_hd__dlclkp_2/CLK -> +sky130_fd_sc_hd__dlclkp_2/GATE -> +sky130_fd_sc_hd__dlclkp_4/CLK -> +sky130_fd_sc_hd__dlclkp_4/GATE -> +sky130_fd_sc_hd__dlrbn_1/D -> +sky130_fd_sc_hd__dlrbn_1/GATE_N -> +sky130_fd_sc_hd__dlrbn_1/RESET_B -> +sky130_fd_sc_hd__dlrbn_2/D -> +sky130_fd_sc_hd__dlrbn_2/GATE_N -> +sky130_fd_sc_hd__dlrbn_2/RESET_B -> +sky130_fd_sc_hd__dlrbp_1/D -> +sky130_fd_sc_hd__dlrbp_1/GATE -> +sky130_fd_sc_hd__dlrbp_1/RESET_B -> +sky130_fd_sc_hd__dlrbp_2/D -> +sky130_fd_sc_hd__dlrbp_2/GATE -> +sky130_fd_sc_hd__dlrbp_2/RESET_B -> +sky130_fd_sc_hd__dlrtn_1/D -> +sky130_fd_sc_hd__dlrtn_1/GATE_N -> +sky130_fd_sc_hd__dlrtn_1/RESET_B -> +sky130_fd_sc_hd__dlrtn_2/D -> +sky130_fd_sc_hd__dlrtn_2/GATE_N -> +sky130_fd_sc_hd__dlrtn_2/RESET_B -> +sky130_fd_sc_hd__dlrtn_4/D -> +sky130_fd_sc_hd__dlrtn_4/GATE_N -> +sky130_fd_sc_hd__dlrtn_4/RESET_B -> +sky130_fd_sc_hd__dlrtp_1/D -> +sky130_fd_sc_hd__dlrtp_1/GATE -> +sky130_fd_sc_hd__dlrtp_1/RESET_B -> +sky130_fd_sc_hd__dlrtp_2/D -> +sky130_fd_sc_hd__dlrtp_2/GATE -> +sky130_fd_sc_hd__dlrtp_2/RESET_B -> +sky130_fd_sc_hd__dlrtp_4/D -> +sky130_fd_sc_hd__dlrtp_4/GATE -> +sky130_fd_sc_hd__dlrtp_4/RESET_B -> +sky130_fd_sc_hd__dlxbn_1/D -> +sky130_fd_sc_hd__dlxbn_1/GATE_N -> +sky130_fd_sc_hd__dlxbn_2/D -> +sky130_fd_sc_hd__dlxbn_2/GATE_N -> +sky130_fd_sc_hd__dlxbp_1/D -> +sky130_fd_sc_hd__dlxbp_1/GATE -> +sky130_fd_sc_hd__dlxtn_1/D -> +sky130_fd_sc_hd__dlxtn_1/GATE_N -> +sky130_fd_sc_hd__dlxtn_2/D -> +sky130_fd_sc_hd__dlxtn_2/GATE_N -> +sky130_fd_sc_hd__dlxtn_4/D -> +sky130_fd_sc_hd__dlxtn_4/GATE_N -> +sky130_fd_sc_hd__dlxtp_1/D -> +sky130_fd_sc_hd__dlxtp_1/GATE -> +sky130_fd_sc_hd__dlygate4sd1_1/A -> +sky130_fd_sc_hd__dlygate4sd2_1/A -> +sky130_fd_sc_hd__dlygate4sd3_1/A -> +sky130_fd_sc_hd__dlymetal6s2s_1/A -> +sky130_fd_sc_hd__dlymetal6s4s_1/A -> +sky130_fd_sc_hd__dlymetal6s6s_1/A -> +sky130_fd_sc_hd__ebufn_1/A -> +sky130_fd_sc_hd__ebufn_1/TE_B -> +sky130_fd_sc_hd__ebufn_2/A -> +sky130_fd_sc_hd__ebufn_2/TE_B -> +sky130_fd_sc_hd__ebufn_4/A -> +sky130_fd_sc_hd__ebufn_4/TE_B -> +sky130_fd_sc_hd__ebufn_8/A -> +sky130_fd_sc_hd__ebufn_8/TE_B -> +sky130_fd_sc_hd__edfxbp_1/CLK -> +sky130_fd_sc_hd__edfxbp_1/D -> +sky130_fd_sc_hd__edfxbp_1/DE -> +sky130_fd_sc_hd__edfxtp_1/CLK -> +sky130_fd_sc_hd__edfxtp_1/D -> +sky130_fd_sc_hd__edfxtp_1/DE -> +sky130_fd_sc_hd__einvn_0/A -> +sky130_fd_sc_hd__einvn_0/TE_B -> +sky130_fd_sc_hd__einvn_1/A -> +sky130_fd_sc_hd__einvn_1/TE_B -> +sky130_fd_sc_hd__einvn_2/A -> +sky130_fd_sc_hd__einvn_2/TE_B -> +sky130_fd_sc_hd__einvn_4/A -> +sky130_fd_sc_hd__einvn_4/TE_B -> +sky130_fd_sc_hd__einvn_8/A -> +sky130_fd_sc_hd__einvn_8/TE_B -> +sky130_fd_sc_hd__einvp_1/A -> +sky130_fd_sc_hd__einvp_1/TE -> +sky130_fd_sc_hd__einvp_2/A -> +sky130_fd_sc_hd__einvp_2/TE -> +sky130_fd_sc_hd__einvp_4/A -> +sky130_fd_sc_hd__einvp_4/TE -> +sky130_fd_sc_hd__einvp_8/A -> +sky130_fd_sc_hd__einvp_8/TE -> +sky130_fd_sc_hd__fa_1/A -> B CIN +sky130_fd_sc_hd__fa_1/B -> A CIN +sky130_fd_sc_hd__fa_1/CIN -> A B +sky130_fd_sc_hd__fa_2/A -> B CIN +sky130_fd_sc_hd__fa_2/B -> A CIN +sky130_fd_sc_hd__fa_2/CIN -> A B +sky130_fd_sc_hd__fa_4/A -> B CIN +sky130_fd_sc_hd__fa_4/B -> A CIN +sky130_fd_sc_hd__fa_4/CIN -> A B +sky130_fd_sc_hd__fah_1/A -> B CI +sky130_fd_sc_hd__fah_1/B -> A CI +sky130_fd_sc_hd__fah_1/CI -> A B +sky130_fd_sc_hd__fahcin_1/A -> B +sky130_fd_sc_hd__fahcin_1/B -> A +sky130_fd_sc_hd__fahcin_1/CIN -> +sky130_fd_sc_hd__fahcon_1/A -> B CI +sky130_fd_sc_hd__fahcon_1/B -> A CI +sky130_fd_sc_hd__fahcon_1/CI -> A B +sky130_fd_sc_hd__ha_1/A -> B +sky130_fd_sc_hd__ha_1/B -> A +sky130_fd_sc_hd__ha_2/A -> B +sky130_fd_sc_hd__ha_2/B -> A +sky130_fd_sc_hd__ha_4/A -> B +sky130_fd_sc_hd__ha_4/B -> A +sky130_fd_sc_hd__inv_1/A -> +sky130_fd_sc_hd__inv_12/A -> +sky130_fd_sc_hd__inv_16/A -> +sky130_fd_sc_hd__inv_2/A -> +sky130_fd_sc_hd__inv_4/A -> +sky130_fd_sc_hd__inv_6/A -> +sky130_fd_sc_hd__inv_8/A -> +sky130_fd_sc_hd__lpflow_bleeder_1/SHORT -> +sky130_fd_sc_hd__lpflow_clkbufkapwr_1/A -> +sky130_fd_sc_hd__lpflow_clkbufkapwr_16/A -> +sky130_fd_sc_hd__lpflow_clkbufkapwr_2/A -> +sky130_fd_sc_hd__lpflow_clkbufkapwr_4/A -> +sky130_fd_sc_hd__lpflow_clkbufkapwr_8/A -> +sky130_fd_sc_hd__lpflow_clkinvkapwr_1/A -> +sky130_fd_sc_hd__lpflow_clkinvkapwr_16/A -> +sky130_fd_sc_hd__lpflow_clkinvkapwr_2/A -> +sky130_fd_sc_hd__lpflow_clkinvkapwr_4/A -> +sky130_fd_sc_hd__lpflow_clkinvkapwr_8/A -> +sky130_fd_sc_hd__lpflow_inputiso0n_1/A -> +sky130_fd_sc_hd__lpflow_inputiso0n_1/SLEEP_B -> +sky130_fd_sc_hd__lpflow_inputiso0p_1/A -> +sky130_fd_sc_hd__lpflow_inputiso0p_1/SLEEP -> +sky130_fd_sc_hd__lpflow_inputiso1n_1/A -> +sky130_fd_sc_hd__lpflow_inputiso1n_1/SLEEP_B -> +sky130_fd_sc_hd__lpflow_inputiso1p_1/A -> +sky130_fd_sc_hd__lpflow_inputiso1p_1/SLEEP -> +sky130_fd_sc_hd__lpflow_inputisolatch_1/D -> +sky130_fd_sc_hd__lpflow_inputisolatch_1/SLEEP_B -> +sky130_fd_sc_hd__lpflow_isobufsrc_1/A -> +sky130_fd_sc_hd__lpflow_isobufsrc_1/SLEEP -> +sky130_fd_sc_hd__lpflow_isobufsrc_16/A -> +sky130_fd_sc_hd__lpflow_isobufsrc_16/SLEEP -> +sky130_fd_sc_hd__lpflow_isobufsrc_2/A -> +sky130_fd_sc_hd__lpflow_isobufsrc_2/SLEEP -> +sky130_fd_sc_hd__lpflow_isobufsrc_4/A -> +sky130_fd_sc_hd__lpflow_isobufsrc_4/SLEEP -> +sky130_fd_sc_hd__lpflow_isobufsrc_8/A -> +sky130_fd_sc_hd__lpflow_isobufsrc_8/SLEEP -> +sky130_fd_sc_hd__lpflow_isobufsrckapwr_16/A -> +sky130_fd_sc_hd__lpflow_isobufsrckapwr_16/SLEEP -> +sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_1/A -> +sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_2/A -> +sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_4/A -> +sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_4/A -> +sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_1/A -> +sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_2/A -> +sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_4/A -> +sky130_fd_sc_hd__maj3_1/A -> B C +sky130_fd_sc_hd__maj3_1/B -> A C +sky130_fd_sc_hd__maj3_1/C -> A B +sky130_fd_sc_hd__maj3_2/A -> B C +sky130_fd_sc_hd__maj3_2/B -> A C +sky130_fd_sc_hd__maj3_2/C -> A B +sky130_fd_sc_hd__maj3_4/A -> B C +sky130_fd_sc_hd__maj3_4/B -> A C +sky130_fd_sc_hd__maj3_4/C -> A B +sky130_fd_sc_hd__mux2_1/A0 -> +sky130_fd_sc_hd__mux2_1/A1 -> +sky130_fd_sc_hd__mux2_1/S -> +sky130_fd_sc_hd__mux2_2/A0 -> +sky130_fd_sc_hd__mux2_2/A1 -> +sky130_fd_sc_hd__mux2_2/S -> +sky130_fd_sc_hd__mux2_4/A0 -> +sky130_fd_sc_hd__mux2_4/A1 -> +sky130_fd_sc_hd__mux2_4/S -> +sky130_fd_sc_hd__mux2_8/A0 -> +sky130_fd_sc_hd__mux2_8/A1 -> +sky130_fd_sc_hd__mux2_8/S -> +sky130_fd_sc_hd__mux2i_1/A0 -> +sky130_fd_sc_hd__mux2i_1/A1 -> +sky130_fd_sc_hd__mux2i_1/S -> +sky130_fd_sc_hd__mux2i_2/A0 -> +sky130_fd_sc_hd__mux2i_2/A1 -> +sky130_fd_sc_hd__mux2i_2/S -> +sky130_fd_sc_hd__mux2i_4/A0 -> +sky130_fd_sc_hd__mux2i_4/A1 -> +sky130_fd_sc_hd__mux2i_4/S -> +sky130_fd_sc_hd__mux4_1/A0 -> +sky130_fd_sc_hd__mux4_1/A1 -> +sky130_fd_sc_hd__mux4_1/A2 -> +sky130_fd_sc_hd__mux4_1/A3 -> +sky130_fd_sc_hd__mux4_1/S0 -> +sky130_fd_sc_hd__mux4_1/S1 -> +sky130_fd_sc_hd__mux4_2/A0 -> +sky130_fd_sc_hd__mux4_2/A1 -> +sky130_fd_sc_hd__mux4_2/A2 -> +sky130_fd_sc_hd__mux4_2/A3 -> +sky130_fd_sc_hd__mux4_2/S0 -> +sky130_fd_sc_hd__mux4_2/S1 -> +sky130_fd_sc_hd__mux4_4/A0 -> +sky130_fd_sc_hd__mux4_4/A1 -> +sky130_fd_sc_hd__mux4_4/A2 -> +sky130_fd_sc_hd__mux4_4/A3 -> +sky130_fd_sc_hd__mux4_4/S0 -> +sky130_fd_sc_hd__mux4_4/S1 -> +sky130_fd_sc_hd__nand2_1/A -> B +sky130_fd_sc_hd__nand2_1/B -> A +sky130_fd_sc_hd__nand2_2/A -> B +sky130_fd_sc_hd__nand2_2/B -> A +sky130_fd_sc_hd__nand2_4/A -> B +sky130_fd_sc_hd__nand2_4/B -> A +sky130_fd_sc_hd__nand2_8/A -> B +sky130_fd_sc_hd__nand2_8/B -> A +sky130_fd_sc_hd__nand2b_1/A_N -> +sky130_fd_sc_hd__nand2b_1/B -> +sky130_fd_sc_hd__nand2b_2/A_N -> +sky130_fd_sc_hd__nand2b_2/B -> +sky130_fd_sc_hd__nand2b_4/A_N -> +sky130_fd_sc_hd__nand2b_4/B -> +sky130_fd_sc_hd__nand3_1/A -> B C +sky130_fd_sc_hd__nand3_1/B -> A C +sky130_fd_sc_hd__nand3_1/C -> A B +sky130_fd_sc_hd__nand3_2/A -> B C +sky130_fd_sc_hd__nand3_2/B -> A C +sky130_fd_sc_hd__nand3_2/C -> A B +sky130_fd_sc_hd__nand3_4/A -> B C +sky130_fd_sc_hd__nand3_4/B -> A C +sky130_fd_sc_hd__nand3_4/C -> A B +sky130_fd_sc_hd__nand3b_1/A_N -> +sky130_fd_sc_hd__nand3b_1/B -> C +sky130_fd_sc_hd__nand3b_1/C -> B +sky130_fd_sc_hd__nand3b_2/A_N -> +sky130_fd_sc_hd__nand3b_2/B -> C +sky130_fd_sc_hd__nand3b_2/C -> B +sky130_fd_sc_hd__nand3b_4/A_N -> +sky130_fd_sc_hd__nand3b_4/B -> C +sky130_fd_sc_hd__nand3b_4/C -> B +sky130_fd_sc_hd__nand4_1/A -> B C D +sky130_fd_sc_hd__nand4_1/B -> A C D +sky130_fd_sc_hd__nand4_1/C -> A B D +sky130_fd_sc_hd__nand4_1/D -> A B C +sky130_fd_sc_hd__nand4_2/A -> B C D +sky130_fd_sc_hd__nand4_2/B -> A C D +sky130_fd_sc_hd__nand4_2/C -> A B D +sky130_fd_sc_hd__nand4_2/D -> A B C +sky130_fd_sc_hd__nand4_4/A -> B C D +sky130_fd_sc_hd__nand4_4/B -> A C D +sky130_fd_sc_hd__nand4_4/C -> A B D +sky130_fd_sc_hd__nand4_4/D -> A B C +sky130_fd_sc_hd__nand4b_1/A_N -> +sky130_fd_sc_hd__nand4b_1/B -> C D +sky130_fd_sc_hd__nand4b_1/C -> B D +sky130_fd_sc_hd__nand4b_1/D -> B C +sky130_fd_sc_hd__nand4b_2/A_N -> +sky130_fd_sc_hd__nand4b_2/B -> C D +sky130_fd_sc_hd__nand4b_2/C -> B D +sky130_fd_sc_hd__nand4b_2/D -> B C +sky130_fd_sc_hd__nand4b_4/A_N -> +sky130_fd_sc_hd__nand4b_4/B -> C D +sky130_fd_sc_hd__nand4b_4/C -> B D +sky130_fd_sc_hd__nand4b_4/D -> B C +sky130_fd_sc_hd__nand4bb_1/A_N -> B_N +sky130_fd_sc_hd__nand4bb_1/B_N -> A_N +sky130_fd_sc_hd__nand4bb_1/C -> D +sky130_fd_sc_hd__nand4bb_1/D -> C +sky130_fd_sc_hd__nand4bb_2/A_N -> B_N +sky130_fd_sc_hd__nand4bb_2/B_N -> A_N +sky130_fd_sc_hd__nand4bb_2/C -> D +sky130_fd_sc_hd__nand4bb_2/D -> C +sky130_fd_sc_hd__nand4bb_4/A_N -> B_N +sky130_fd_sc_hd__nand4bb_4/B_N -> A_N +sky130_fd_sc_hd__nand4bb_4/C -> D +sky130_fd_sc_hd__nand4bb_4/D -> C +sky130_fd_sc_hd__nor2_1/A -> B +sky130_fd_sc_hd__nor2_1/B -> A +sky130_fd_sc_hd__nor2_2/A -> B +sky130_fd_sc_hd__nor2_2/B -> A +sky130_fd_sc_hd__nor2_4/A -> B +sky130_fd_sc_hd__nor2_4/B -> A +sky130_fd_sc_hd__nor2_8/A -> B +sky130_fd_sc_hd__nor2_8/B -> A +sky130_fd_sc_hd__nor2b_1/A -> +sky130_fd_sc_hd__nor2b_1/B_N -> +sky130_fd_sc_hd__nor2b_2/A -> +sky130_fd_sc_hd__nor2b_2/B_N -> +sky130_fd_sc_hd__nor2b_4/A -> +sky130_fd_sc_hd__nor2b_4/B_N -> +sky130_fd_sc_hd__nor3_1/A -> B C +sky130_fd_sc_hd__nor3_1/B -> A C +sky130_fd_sc_hd__nor3_1/C -> A B +sky130_fd_sc_hd__nor3_2/A -> B C +sky130_fd_sc_hd__nor3_2/B -> A C +sky130_fd_sc_hd__nor3_2/C -> A B +sky130_fd_sc_hd__nor3_4/A -> B C +sky130_fd_sc_hd__nor3_4/B -> A C +sky130_fd_sc_hd__nor3_4/C -> A B +sky130_fd_sc_hd__nor3b_1/A -> B +sky130_fd_sc_hd__nor3b_1/B -> A +sky130_fd_sc_hd__nor3b_1/C_N -> +sky130_fd_sc_hd__nor3b_2/A -> B +sky130_fd_sc_hd__nor3b_2/B -> A +sky130_fd_sc_hd__nor3b_2/C_N -> +sky130_fd_sc_hd__nor3b_4/A -> B +sky130_fd_sc_hd__nor3b_4/B -> A +sky130_fd_sc_hd__nor3b_4/C_N -> +sky130_fd_sc_hd__nor4_1/A -> B C D +sky130_fd_sc_hd__nor4_1/B -> A C D +sky130_fd_sc_hd__nor4_1/C -> A B D +sky130_fd_sc_hd__nor4_1/D -> A B C +sky130_fd_sc_hd__nor4_2/A -> B C D +sky130_fd_sc_hd__nor4_2/B -> A C D +sky130_fd_sc_hd__nor4_2/C -> A B D +sky130_fd_sc_hd__nor4_2/D -> A B C +sky130_fd_sc_hd__nor4_4/A -> B C D +sky130_fd_sc_hd__nor4_4/B -> A C D +sky130_fd_sc_hd__nor4_4/C -> A B D +sky130_fd_sc_hd__nor4_4/D -> A B C +sky130_fd_sc_hd__nor4b_1/A -> B C +sky130_fd_sc_hd__nor4b_1/B -> A C +sky130_fd_sc_hd__nor4b_1/C -> A B +sky130_fd_sc_hd__nor4b_1/D_N -> +sky130_fd_sc_hd__nor4b_2/A -> B C +sky130_fd_sc_hd__nor4b_2/B -> A C +sky130_fd_sc_hd__nor4b_2/C -> A B +sky130_fd_sc_hd__nor4b_2/D_N -> +sky130_fd_sc_hd__nor4b_4/A -> B C +sky130_fd_sc_hd__nor4b_4/B -> A C +sky130_fd_sc_hd__nor4b_4/C -> A B +sky130_fd_sc_hd__nor4b_4/D_N -> +sky130_fd_sc_hd__nor4bb_1/A -> B +sky130_fd_sc_hd__nor4bb_1/B -> A +sky130_fd_sc_hd__nor4bb_1/C_N -> D_N +sky130_fd_sc_hd__nor4bb_1/D_N -> C_N +sky130_fd_sc_hd__nor4bb_2/A -> B +sky130_fd_sc_hd__nor4bb_2/B -> A +sky130_fd_sc_hd__nor4bb_2/C_N -> D_N +sky130_fd_sc_hd__nor4bb_2/D_N -> C_N +sky130_fd_sc_hd__nor4bb_4/A -> B +sky130_fd_sc_hd__nor4bb_4/B -> A +sky130_fd_sc_hd__nor4bb_4/C_N -> D_N +sky130_fd_sc_hd__nor4bb_4/D_N -> C_N +sky130_fd_sc_hd__o2111a_1/A1 -> A2 +sky130_fd_sc_hd__o2111a_1/A2 -> A1 +sky130_fd_sc_hd__o2111a_1/B1 -> C1 D1 +sky130_fd_sc_hd__o2111a_1/C1 -> B1 D1 +sky130_fd_sc_hd__o2111a_1/D1 -> B1 C1 +sky130_fd_sc_hd__o2111a_2/A1 -> A2 +sky130_fd_sc_hd__o2111a_2/A2 -> A1 +sky130_fd_sc_hd__o2111a_2/B1 -> C1 D1 +sky130_fd_sc_hd__o2111a_2/C1 -> B1 D1 +sky130_fd_sc_hd__o2111a_2/D1 -> B1 C1 +sky130_fd_sc_hd__o2111a_4/A1 -> A2 +sky130_fd_sc_hd__o2111a_4/A2 -> A1 +sky130_fd_sc_hd__o2111a_4/B1 -> C1 D1 +sky130_fd_sc_hd__o2111a_4/C1 -> B1 D1 +sky130_fd_sc_hd__o2111a_4/D1 -> B1 C1 +sky130_fd_sc_hd__o2111ai_1/A1 -> A2 +sky130_fd_sc_hd__o2111ai_1/A2 -> A1 +sky130_fd_sc_hd__o2111ai_1/B1 -> C1 D1 +sky130_fd_sc_hd__o2111ai_1/C1 -> B1 D1 +sky130_fd_sc_hd__o2111ai_1/D1 -> B1 C1 +sky130_fd_sc_hd__o2111ai_2/A1 -> A2 +sky130_fd_sc_hd__o2111ai_2/A2 -> A1 +sky130_fd_sc_hd__o2111ai_2/B1 -> C1 D1 +sky130_fd_sc_hd__o2111ai_2/C1 -> B1 D1 +sky130_fd_sc_hd__o2111ai_2/D1 -> B1 C1 +sky130_fd_sc_hd__o2111ai_4/A1 -> A2 +sky130_fd_sc_hd__o2111ai_4/A2 -> A1 +sky130_fd_sc_hd__o2111ai_4/B1 -> C1 D1 +sky130_fd_sc_hd__o2111ai_4/C1 -> B1 D1 +sky130_fd_sc_hd__o2111ai_4/D1 -> B1 C1 +sky130_fd_sc_hd__o211a_1/A1 -> A2 +sky130_fd_sc_hd__o211a_1/A2 -> A1 +sky130_fd_sc_hd__o211a_1/B1 -> C1 +sky130_fd_sc_hd__o211a_1/C1 -> B1 +sky130_fd_sc_hd__o211a_2/A1 -> A2 +sky130_fd_sc_hd__o211a_2/A2 -> A1 +sky130_fd_sc_hd__o211a_2/B1 -> C1 +sky130_fd_sc_hd__o211a_2/C1 -> B1 +sky130_fd_sc_hd__o211a_4/A1 -> A2 +sky130_fd_sc_hd__o211a_4/A2 -> A1 +sky130_fd_sc_hd__o211a_4/B1 -> C1 +sky130_fd_sc_hd__o211a_4/C1 -> B1 +sky130_fd_sc_hd__o211ai_1/A1 -> A2 +sky130_fd_sc_hd__o211ai_1/A2 -> A1 +sky130_fd_sc_hd__o211ai_1/B1 -> C1 +sky130_fd_sc_hd__o211ai_1/C1 -> B1 +sky130_fd_sc_hd__o211ai_2/A1 -> A2 +sky130_fd_sc_hd__o211ai_2/A2 -> A1 +sky130_fd_sc_hd__o211ai_2/B1 -> C1 +sky130_fd_sc_hd__o211ai_2/C1 -> B1 +sky130_fd_sc_hd__o211ai_4/A1 -> A2 +sky130_fd_sc_hd__o211ai_4/A2 -> A1 +sky130_fd_sc_hd__o211ai_4/B1 -> C1 +sky130_fd_sc_hd__o211ai_4/C1 -> B1 +sky130_fd_sc_hd__o21a_1/A1 -> A2 +sky130_fd_sc_hd__o21a_1/A2 -> A1 +sky130_fd_sc_hd__o21a_1/B1 -> +sky130_fd_sc_hd__o21a_2/A1 -> A2 +sky130_fd_sc_hd__o21a_2/A2 -> A1 +sky130_fd_sc_hd__o21a_2/B1 -> +sky130_fd_sc_hd__o21a_4/A1 -> A2 +sky130_fd_sc_hd__o21a_4/A2 -> A1 +sky130_fd_sc_hd__o21a_4/B1 -> +sky130_fd_sc_hd__o21ai_0/A1 -> A2 +sky130_fd_sc_hd__o21ai_0/A2 -> A1 +sky130_fd_sc_hd__o21ai_0/B1 -> +sky130_fd_sc_hd__o21ai_1/A1 -> A2 +sky130_fd_sc_hd__o21ai_1/A2 -> A1 +sky130_fd_sc_hd__o21ai_1/B1 -> +sky130_fd_sc_hd__o21ai_2/A1 -> A2 +sky130_fd_sc_hd__o21ai_2/A2 -> A1 +sky130_fd_sc_hd__o21ai_2/B1 -> +sky130_fd_sc_hd__o21ai_4/A1 -> A2 +sky130_fd_sc_hd__o21ai_4/A2 -> A1 +sky130_fd_sc_hd__o21ai_4/B1 -> +sky130_fd_sc_hd__o21ba_1/A1 -> A2 +sky130_fd_sc_hd__o21ba_1/A2 -> A1 +sky130_fd_sc_hd__o21ba_1/B1_N -> +sky130_fd_sc_hd__o21ba_2/A1 -> A2 +sky130_fd_sc_hd__o21ba_2/A2 -> A1 +sky130_fd_sc_hd__o21ba_2/B1_N -> +sky130_fd_sc_hd__o21ba_4/A1 -> A2 +sky130_fd_sc_hd__o21ba_4/A2 -> A1 +sky130_fd_sc_hd__o21ba_4/B1_N -> +sky130_fd_sc_hd__o21bai_1/A1 -> A2 +sky130_fd_sc_hd__o21bai_1/A2 -> A1 +sky130_fd_sc_hd__o21bai_1/B1_N -> +sky130_fd_sc_hd__o21bai_2/A1 -> A2 +sky130_fd_sc_hd__o21bai_2/A2 -> A1 +sky130_fd_sc_hd__o21bai_2/B1_N -> +sky130_fd_sc_hd__o21bai_4/A1 -> A2 +sky130_fd_sc_hd__o21bai_4/A2 -> A1 +sky130_fd_sc_hd__o21bai_4/B1_N -> +sky130_fd_sc_hd__o221a_1/A1 -> A2 +sky130_fd_sc_hd__o221a_1/A2 -> A1 +sky130_fd_sc_hd__o221a_1/B1 -> B2 +sky130_fd_sc_hd__o221a_1/B2 -> B1 +sky130_fd_sc_hd__o221a_1/C1 -> +sky130_fd_sc_hd__o221a_2/A1 -> A2 +sky130_fd_sc_hd__o221a_2/A2 -> A1 +sky130_fd_sc_hd__o221a_2/B1 -> B2 +sky130_fd_sc_hd__o221a_2/B2 -> B1 +sky130_fd_sc_hd__o221a_2/C1 -> +sky130_fd_sc_hd__o221a_4/A1 -> A2 +sky130_fd_sc_hd__o221a_4/A2 -> A1 +sky130_fd_sc_hd__o221a_4/B1 -> B2 +sky130_fd_sc_hd__o221a_4/B2 -> B1 +sky130_fd_sc_hd__o221a_4/C1 -> +sky130_fd_sc_hd__o221ai_1/A1 -> A2 +sky130_fd_sc_hd__o221ai_1/A2 -> A1 +sky130_fd_sc_hd__o221ai_1/B1 -> B2 +sky130_fd_sc_hd__o221ai_1/B2 -> B1 +sky130_fd_sc_hd__o221ai_1/C1 -> +sky130_fd_sc_hd__o221ai_2/A1 -> A2 +sky130_fd_sc_hd__o221ai_2/A2 -> A1 +sky130_fd_sc_hd__o221ai_2/B1 -> B2 +sky130_fd_sc_hd__o221ai_2/B2 -> B1 +sky130_fd_sc_hd__o221ai_2/C1 -> +sky130_fd_sc_hd__o221ai_4/A1 -> A2 +sky130_fd_sc_hd__o221ai_4/A2 -> A1 +sky130_fd_sc_hd__o221ai_4/B1 -> B2 +sky130_fd_sc_hd__o221ai_4/B2 -> B1 +sky130_fd_sc_hd__o221ai_4/C1 -> +sky130_fd_sc_hd__o22a_1/A1 -> A2 +sky130_fd_sc_hd__o22a_1/A2 -> A1 +sky130_fd_sc_hd__o22a_1/B1 -> B2 +sky130_fd_sc_hd__o22a_1/B2 -> B1 +sky130_fd_sc_hd__o22a_2/A1 -> A2 +sky130_fd_sc_hd__o22a_2/A2 -> A1 +sky130_fd_sc_hd__o22a_2/B1 -> B2 +sky130_fd_sc_hd__o22a_2/B2 -> B1 +sky130_fd_sc_hd__o22a_4/A1 -> A2 +sky130_fd_sc_hd__o22a_4/A2 -> A1 +sky130_fd_sc_hd__o22a_4/B1 -> B2 +sky130_fd_sc_hd__o22a_4/B2 -> B1 +sky130_fd_sc_hd__o22ai_1/A1 -> A2 +sky130_fd_sc_hd__o22ai_1/A2 -> A1 +sky130_fd_sc_hd__o22ai_1/B1 -> B2 +sky130_fd_sc_hd__o22ai_1/B2 -> B1 +sky130_fd_sc_hd__o22ai_2/A1 -> A2 +sky130_fd_sc_hd__o22ai_2/A2 -> A1 +sky130_fd_sc_hd__o22ai_2/B1 -> B2 +sky130_fd_sc_hd__o22ai_2/B2 -> B1 +sky130_fd_sc_hd__o22ai_4/A1 -> A2 +sky130_fd_sc_hd__o22ai_4/A2 -> A1 +sky130_fd_sc_hd__o22ai_4/B1 -> B2 +sky130_fd_sc_hd__o22ai_4/B2 -> B1 +sky130_fd_sc_hd__o2bb2a_1/A1_N -> A2_N +sky130_fd_sc_hd__o2bb2a_1/A2_N -> A1_N +sky130_fd_sc_hd__o2bb2a_1/B1 -> B2 +sky130_fd_sc_hd__o2bb2a_1/B2 -> B1 +sky130_fd_sc_hd__o2bb2a_2/A1_N -> A2_N +sky130_fd_sc_hd__o2bb2a_2/A2_N -> A1_N +sky130_fd_sc_hd__o2bb2a_2/B1 -> B2 +sky130_fd_sc_hd__o2bb2a_2/B2 -> B1 +sky130_fd_sc_hd__o2bb2a_4/A1_N -> A2_N +sky130_fd_sc_hd__o2bb2a_4/A2_N -> A1_N +sky130_fd_sc_hd__o2bb2a_4/B1 -> B2 +sky130_fd_sc_hd__o2bb2a_4/B2 -> B1 +sky130_fd_sc_hd__o2bb2ai_1/A1_N -> A2_N +sky130_fd_sc_hd__o2bb2ai_1/A2_N -> A1_N +sky130_fd_sc_hd__o2bb2ai_1/B1 -> B2 +sky130_fd_sc_hd__o2bb2ai_1/B2 -> B1 +sky130_fd_sc_hd__o2bb2ai_2/A1_N -> A2_N +sky130_fd_sc_hd__o2bb2ai_2/A2_N -> A1_N +sky130_fd_sc_hd__o2bb2ai_2/B1 -> B2 +sky130_fd_sc_hd__o2bb2ai_2/B2 -> B1 +sky130_fd_sc_hd__o2bb2ai_4/A1_N -> A2_N +sky130_fd_sc_hd__o2bb2ai_4/A2_N -> A1_N +sky130_fd_sc_hd__o2bb2ai_4/B1 -> B2 +sky130_fd_sc_hd__o2bb2ai_4/B2 -> B1 +sky130_fd_sc_hd__o311a_1/A1 -> A2 A3 +sky130_fd_sc_hd__o311a_1/A2 -> A1 A3 +sky130_fd_sc_hd__o311a_1/A3 -> A1 A2 +sky130_fd_sc_hd__o311a_1/B1 -> C1 +sky130_fd_sc_hd__o311a_1/C1 -> B1 +sky130_fd_sc_hd__o311a_2/A1 -> A2 A3 +sky130_fd_sc_hd__o311a_2/A2 -> A1 A3 +sky130_fd_sc_hd__o311a_2/A3 -> A1 A2 +sky130_fd_sc_hd__o311a_2/B1 -> C1 +sky130_fd_sc_hd__o311a_2/C1 -> B1 +sky130_fd_sc_hd__o311a_4/A1 -> A2 A3 +sky130_fd_sc_hd__o311a_4/A2 -> A1 A3 +sky130_fd_sc_hd__o311a_4/A3 -> A1 A2 +sky130_fd_sc_hd__o311a_4/B1 -> C1 +sky130_fd_sc_hd__o311a_4/C1 -> B1 +sky130_fd_sc_hd__o311ai_0/A1 -> A2 A3 +sky130_fd_sc_hd__o311ai_0/A2 -> A1 A3 +sky130_fd_sc_hd__o311ai_0/A3 -> A1 A2 +sky130_fd_sc_hd__o311ai_0/B1 -> C1 +sky130_fd_sc_hd__o311ai_0/C1 -> B1 +sky130_fd_sc_hd__o311ai_1/A1 -> A2 A3 +sky130_fd_sc_hd__o311ai_1/A2 -> A1 A3 +sky130_fd_sc_hd__o311ai_1/A3 -> A1 A2 +sky130_fd_sc_hd__o311ai_1/B1 -> C1 +sky130_fd_sc_hd__o311ai_1/C1 -> B1 +sky130_fd_sc_hd__o311ai_2/A1 -> A2 A3 +sky130_fd_sc_hd__o311ai_2/A2 -> A1 A3 +sky130_fd_sc_hd__o311ai_2/A3 -> A1 A2 +sky130_fd_sc_hd__o311ai_2/B1 -> C1 +sky130_fd_sc_hd__o311ai_2/C1 -> B1 +sky130_fd_sc_hd__o311ai_4/A1 -> A2 A3 +sky130_fd_sc_hd__o311ai_4/A2 -> A1 A3 +sky130_fd_sc_hd__o311ai_4/A3 -> A1 A2 +sky130_fd_sc_hd__o311ai_4/B1 -> C1 +sky130_fd_sc_hd__o311ai_4/C1 -> B1 +sky130_fd_sc_hd__o31a_1/A1 -> A2 A3 +sky130_fd_sc_hd__o31a_1/A2 -> A1 A3 +sky130_fd_sc_hd__o31a_1/A3 -> A1 A2 +sky130_fd_sc_hd__o31a_1/B1 -> +sky130_fd_sc_hd__o31a_2/A1 -> A2 A3 +sky130_fd_sc_hd__o31a_2/A2 -> A1 A3 +sky130_fd_sc_hd__o31a_2/A3 -> A1 A2 +sky130_fd_sc_hd__o31a_2/B1 -> +sky130_fd_sc_hd__o31a_4/A1 -> A2 A3 +sky130_fd_sc_hd__o31a_4/A2 -> A1 A3 +sky130_fd_sc_hd__o31a_4/A3 -> A1 A2 +sky130_fd_sc_hd__o31a_4/B1 -> +sky130_fd_sc_hd__o31ai_1/A1 -> A2 A3 +sky130_fd_sc_hd__o31ai_1/A2 -> A1 A3 +sky130_fd_sc_hd__o31ai_1/A3 -> A1 A2 +sky130_fd_sc_hd__o31ai_1/B1 -> +sky130_fd_sc_hd__o31ai_2/A1 -> A2 A3 +sky130_fd_sc_hd__o31ai_2/A2 -> A1 A3 +sky130_fd_sc_hd__o31ai_2/A3 -> A1 A2 +sky130_fd_sc_hd__o31ai_2/B1 -> +sky130_fd_sc_hd__o31ai_4/A1 -> A2 A3 +sky130_fd_sc_hd__o31ai_4/A2 -> A1 A3 +sky130_fd_sc_hd__o31ai_4/A3 -> A1 A2 +sky130_fd_sc_hd__o31ai_4/B1 -> +sky130_fd_sc_hd__o32a_1/A1 -> A2 A3 +sky130_fd_sc_hd__o32a_1/A2 -> A1 A3 +sky130_fd_sc_hd__o32a_1/A3 -> A1 A2 +sky130_fd_sc_hd__o32a_1/B1 -> B2 +sky130_fd_sc_hd__o32a_1/B2 -> B1 +sky130_fd_sc_hd__o32a_2/A1 -> A2 A3 +sky130_fd_sc_hd__o32a_2/A2 -> A1 A3 +sky130_fd_sc_hd__o32a_2/A3 -> A1 A2 +sky130_fd_sc_hd__o32a_2/B1 -> B2 +sky130_fd_sc_hd__o32a_2/B2 -> B1 +sky130_fd_sc_hd__o32a_4/A1 -> A2 A3 +sky130_fd_sc_hd__o32a_4/A2 -> A1 A3 +sky130_fd_sc_hd__o32a_4/A3 -> A1 A2 +sky130_fd_sc_hd__o32a_4/B1 -> B2 +sky130_fd_sc_hd__o32a_4/B2 -> B1 +sky130_fd_sc_hd__o32ai_1/A1 -> A2 A3 +sky130_fd_sc_hd__o32ai_1/A2 -> A1 A3 +sky130_fd_sc_hd__o32ai_1/A3 -> A1 A2 +sky130_fd_sc_hd__o32ai_1/B1 -> B2 +sky130_fd_sc_hd__o32ai_1/B2 -> B1 +sky130_fd_sc_hd__o32ai_2/A1 -> A2 A3 +sky130_fd_sc_hd__o32ai_2/A2 -> A1 A3 +sky130_fd_sc_hd__o32ai_2/A3 -> A1 A2 +sky130_fd_sc_hd__o32ai_2/B1 -> B2 +sky130_fd_sc_hd__o32ai_2/B2 -> B1 +sky130_fd_sc_hd__o32ai_4/A1 -> A2 A3 +sky130_fd_sc_hd__o32ai_4/A2 -> A1 A3 +sky130_fd_sc_hd__o32ai_4/A3 -> A1 A2 +sky130_fd_sc_hd__o32ai_4/B1 -> B2 +sky130_fd_sc_hd__o32ai_4/B2 -> B1 +sky130_fd_sc_hd__o41a_1/A1 -> A2 A3 A4 +sky130_fd_sc_hd__o41a_1/A2 -> A1 A3 A4 +sky130_fd_sc_hd__o41a_1/A3 -> A1 A2 A4 +sky130_fd_sc_hd__o41a_1/A4 -> A1 A2 A3 +sky130_fd_sc_hd__o41a_1/B1 -> +sky130_fd_sc_hd__o41a_2/A1 -> A2 A3 A4 +sky130_fd_sc_hd__o41a_2/A2 -> A1 A3 A4 +sky130_fd_sc_hd__o41a_2/A3 -> A1 A2 A4 +sky130_fd_sc_hd__o41a_2/A4 -> A1 A2 A3 +sky130_fd_sc_hd__o41a_2/B1 -> +sky130_fd_sc_hd__o41a_4/A1 -> A2 A3 A4 +sky130_fd_sc_hd__o41a_4/A2 -> A1 A3 A4 +sky130_fd_sc_hd__o41a_4/A3 -> A1 A2 A4 +sky130_fd_sc_hd__o41a_4/A4 -> A1 A2 A3 +sky130_fd_sc_hd__o41a_4/B1 -> +sky130_fd_sc_hd__o41ai_1/A1 -> A2 A3 A4 +sky130_fd_sc_hd__o41ai_1/A2 -> A1 A3 A4 +sky130_fd_sc_hd__o41ai_1/A3 -> A1 A2 A4 +sky130_fd_sc_hd__o41ai_1/A4 -> A1 A2 A3 +sky130_fd_sc_hd__o41ai_1/B1 -> +sky130_fd_sc_hd__o41ai_2/A1 -> A2 A3 A4 +sky130_fd_sc_hd__o41ai_2/A2 -> A1 A3 A4 +sky130_fd_sc_hd__o41ai_2/A3 -> A1 A2 A4 +sky130_fd_sc_hd__o41ai_2/A4 -> A1 A2 A3 +sky130_fd_sc_hd__o41ai_2/B1 -> +sky130_fd_sc_hd__o41ai_4/A1 -> A2 A3 A4 +sky130_fd_sc_hd__o41ai_4/A2 -> A1 A3 A4 +sky130_fd_sc_hd__o41ai_4/A3 -> A1 A2 A4 +sky130_fd_sc_hd__o41ai_4/A4 -> A1 A2 A3 +sky130_fd_sc_hd__o41ai_4/B1 -> +sky130_fd_sc_hd__or2_0/A -> B +sky130_fd_sc_hd__or2_0/B -> A +sky130_fd_sc_hd__or2_1/A -> B +sky130_fd_sc_hd__or2_1/B -> A +sky130_fd_sc_hd__or2_2/A -> B +sky130_fd_sc_hd__or2_2/B -> A +sky130_fd_sc_hd__or2_4/A -> B +sky130_fd_sc_hd__or2_4/B -> A +sky130_fd_sc_hd__or2b_1/A -> +sky130_fd_sc_hd__or2b_1/B_N -> +sky130_fd_sc_hd__or2b_2/A -> +sky130_fd_sc_hd__or2b_2/B_N -> +sky130_fd_sc_hd__or2b_4/A -> +sky130_fd_sc_hd__or2b_4/B_N -> +sky130_fd_sc_hd__or3_1/A -> B C +sky130_fd_sc_hd__or3_1/B -> A C +sky130_fd_sc_hd__or3_1/C -> A B +sky130_fd_sc_hd__or3_2/A -> B C +sky130_fd_sc_hd__or3_2/B -> A C +sky130_fd_sc_hd__or3_2/C -> A B +sky130_fd_sc_hd__or3_4/A -> B C +sky130_fd_sc_hd__or3_4/B -> A C +sky130_fd_sc_hd__or3_4/C -> A B +sky130_fd_sc_hd__or3b_1/A -> B +sky130_fd_sc_hd__or3b_1/B -> A +sky130_fd_sc_hd__or3b_1/C_N -> +sky130_fd_sc_hd__or3b_2/A -> B +sky130_fd_sc_hd__or3b_2/B -> A +sky130_fd_sc_hd__or3b_2/C_N -> +sky130_fd_sc_hd__or3b_4/A -> B +sky130_fd_sc_hd__or3b_4/B -> A +sky130_fd_sc_hd__or3b_4/C_N -> +sky130_fd_sc_hd__or4_1/A -> B C D +sky130_fd_sc_hd__or4_1/B -> A C D +sky130_fd_sc_hd__or4_1/C -> A B D +sky130_fd_sc_hd__or4_1/D -> A B C +sky130_fd_sc_hd__or4_2/A -> B C D +sky130_fd_sc_hd__or4_2/B -> A C D +sky130_fd_sc_hd__or4_2/C -> A B D +sky130_fd_sc_hd__or4_2/D -> A B C +sky130_fd_sc_hd__or4_4/A -> B C D +sky130_fd_sc_hd__or4_4/B -> A C D +sky130_fd_sc_hd__or4_4/C -> A B D +sky130_fd_sc_hd__or4_4/D -> A B C +sky130_fd_sc_hd__or4b_1/A -> B C +sky130_fd_sc_hd__or4b_1/B -> A C +sky130_fd_sc_hd__or4b_1/C -> A B +sky130_fd_sc_hd__or4b_1/D_N -> +sky130_fd_sc_hd__or4b_2/A -> B C +sky130_fd_sc_hd__or4b_2/B -> A C +sky130_fd_sc_hd__or4b_2/C -> A B +sky130_fd_sc_hd__or4b_2/D_N -> +sky130_fd_sc_hd__or4b_4/A -> B C +sky130_fd_sc_hd__or4b_4/B -> A C +sky130_fd_sc_hd__or4b_4/C -> A B +sky130_fd_sc_hd__or4b_4/D_N -> +sky130_fd_sc_hd__or4bb_1/A -> B +sky130_fd_sc_hd__or4bb_1/B -> A +sky130_fd_sc_hd__or4bb_1/C_N -> D_N +sky130_fd_sc_hd__or4bb_1/D_N -> C_N +sky130_fd_sc_hd__or4bb_2/A -> B +sky130_fd_sc_hd__or4bb_2/B -> A +sky130_fd_sc_hd__or4bb_2/C_N -> D_N +sky130_fd_sc_hd__or4bb_2/D_N -> C_N +sky130_fd_sc_hd__or4bb_4/A -> B +sky130_fd_sc_hd__or4bb_4/B -> A +sky130_fd_sc_hd__or4bb_4/C_N -> D_N +sky130_fd_sc_hd__or4bb_4/D_N -> C_N +sky130_fd_sc_hd__probe_p_8/A -> +sky130_fd_sc_hd__probec_p_8/A -> +sky130_fd_sc_hd__sdfbbn_1/CLK_N -> +sky130_fd_sc_hd__sdfbbn_1/D -> +sky130_fd_sc_hd__sdfbbn_1/RESET_B -> +sky130_fd_sc_hd__sdfbbn_1/SCD -> +sky130_fd_sc_hd__sdfbbn_1/SCE -> +sky130_fd_sc_hd__sdfbbn_1/SET_B -> +sky130_fd_sc_hd__sdfbbn_2/CLK_N -> +sky130_fd_sc_hd__sdfbbn_2/D -> +sky130_fd_sc_hd__sdfbbn_2/RESET_B -> +sky130_fd_sc_hd__sdfbbn_2/SCD -> +sky130_fd_sc_hd__sdfbbn_2/SCE -> +sky130_fd_sc_hd__sdfbbn_2/SET_B -> +sky130_fd_sc_hd__sdfbbp_1/CLK -> +sky130_fd_sc_hd__sdfbbp_1/D -> +sky130_fd_sc_hd__sdfbbp_1/RESET_B -> +sky130_fd_sc_hd__sdfbbp_1/SCD -> +sky130_fd_sc_hd__sdfbbp_1/SCE -> +sky130_fd_sc_hd__sdfbbp_1/SET_B -> +sky130_fd_sc_hd__sdfrbp_1/CLK -> +sky130_fd_sc_hd__sdfrbp_1/D -> +sky130_fd_sc_hd__sdfrbp_1/RESET_B -> +sky130_fd_sc_hd__sdfrbp_1/SCD -> +sky130_fd_sc_hd__sdfrbp_1/SCE -> +sky130_fd_sc_hd__sdfrbp_2/CLK -> +sky130_fd_sc_hd__sdfrbp_2/D -> +sky130_fd_sc_hd__sdfrbp_2/RESET_B -> +sky130_fd_sc_hd__sdfrbp_2/SCD -> +sky130_fd_sc_hd__sdfrbp_2/SCE -> +sky130_fd_sc_hd__sdfrtn_1/CLK_N -> +sky130_fd_sc_hd__sdfrtn_1/D -> +sky130_fd_sc_hd__sdfrtn_1/RESET_B -> +sky130_fd_sc_hd__sdfrtn_1/SCD -> +sky130_fd_sc_hd__sdfrtn_1/SCE -> +sky130_fd_sc_hd__sdfrtp_1/CLK -> +sky130_fd_sc_hd__sdfrtp_1/D -> +sky130_fd_sc_hd__sdfrtp_1/RESET_B -> +sky130_fd_sc_hd__sdfrtp_1/SCD -> +sky130_fd_sc_hd__sdfrtp_1/SCE -> +sky130_fd_sc_hd__sdfrtp_2/CLK -> +sky130_fd_sc_hd__sdfrtp_2/D -> +sky130_fd_sc_hd__sdfrtp_2/RESET_B -> +sky130_fd_sc_hd__sdfrtp_2/SCD -> +sky130_fd_sc_hd__sdfrtp_2/SCE -> +sky130_fd_sc_hd__sdfrtp_4/CLK -> +sky130_fd_sc_hd__sdfrtp_4/D -> +sky130_fd_sc_hd__sdfrtp_4/RESET_B -> +sky130_fd_sc_hd__sdfrtp_4/SCD -> +sky130_fd_sc_hd__sdfrtp_4/SCE -> +sky130_fd_sc_hd__sdfsbp_1/CLK -> +sky130_fd_sc_hd__sdfsbp_1/D -> +sky130_fd_sc_hd__sdfsbp_1/SCD -> +sky130_fd_sc_hd__sdfsbp_1/SCE -> +sky130_fd_sc_hd__sdfsbp_1/SET_B -> +sky130_fd_sc_hd__sdfsbp_2/CLK -> +sky130_fd_sc_hd__sdfsbp_2/D -> +sky130_fd_sc_hd__sdfsbp_2/SCD -> +sky130_fd_sc_hd__sdfsbp_2/SCE -> +sky130_fd_sc_hd__sdfsbp_2/SET_B -> +sky130_fd_sc_hd__sdfstp_1/CLK -> +sky130_fd_sc_hd__sdfstp_1/D -> +sky130_fd_sc_hd__sdfstp_1/SCD -> +sky130_fd_sc_hd__sdfstp_1/SCE -> +sky130_fd_sc_hd__sdfstp_1/SET_B -> +sky130_fd_sc_hd__sdfstp_2/CLK -> +sky130_fd_sc_hd__sdfstp_2/D -> +sky130_fd_sc_hd__sdfstp_2/SCD -> +sky130_fd_sc_hd__sdfstp_2/SCE -> +sky130_fd_sc_hd__sdfstp_2/SET_B -> +sky130_fd_sc_hd__sdfstp_4/CLK -> +sky130_fd_sc_hd__sdfstp_4/D -> +sky130_fd_sc_hd__sdfstp_4/SCD -> +sky130_fd_sc_hd__sdfstp_4/SCE -> +sky130_fd_sc_hd__sdfstp_4/SET_B -> +sky130_fd_sc_hd__sdfxbp_1/CLK -> +sky130_fd_sc_hd__sdfxbp_1/D -> +sky130_fd_sc_hd__sdfxbp_1/SCD -> +sky130_fd_sc_hd__sdfxbp_1/SCE -> +sky130_fd_sc_hd__sdfxbp_2/CLK -> +sky130_fd_sc_hd__sdfxbp_2/D -> +sky130_fd_sc_hd__sdfxbp_2/SCD -> +sky130_fd_sc_hd__sdfxbp_2/SCE -> +sky130_fd_sc_hd__sdfxtp_1/CLK -> +sky130_fd_sc_hd__sdfxtp_1/D -> +sky130_fd_sc_hd__sdfxtp_1/SCD -> +sky130_fd_sc_hd__sdfxtp_1/SCE -> +sky130_fd_sc_hd__sdfxtp_2/CLK -> +sky130_fd_sc_hd__sdfxtp_2/D -> +sky130_fd_sc_hd__sdfxtp_2/SCD -> +sky130_fd_sc_hd__sdfxtp_2/SCE -> +sky130_fd_sc_hd__sdfxtp_4/CLK -> +sky130_fd_sc_hd__sdfxtp_4/D -> +sky130_fd_sc_hd__sdfxtp_4/SCD -> +sky130_fd_sc_hd__sdfxtp_4/SCE -> +sky130_fd_sc_hd__sdlclkp_1/CLK -> +sky130_fd_sc_hd__sdlclkp_1/GATE -> +sky130_fd_sc_hd__sdlclkp_1/SCE -> +sky130_fd_sc_hd__sdlclkp_2/CLK -> +sky130_fd_sc_hd__sdlclkp_2/GATE -> +sky130_fd_sc_hd__sdlclkp_2/SCE -> +sky130_fd_sc_hd__sdlclkp_4/CLK -> +sky130_fd_sc_hd__sdlclkp_4/GATE -> +sky130_fd_sc_hd__sdlclkp_4/SCE -> +sky130_fd_sc_hd__sedfxbp_1/CLK -> +sky130_fd_sc_hd__sedfxbp_1/D -> +sky130_fd_sc_hd__sedfxbp_1/DE -> +sky130_fd_sc_hd__sedfxbp_1/SCD -> +sky130_fd_sc_hd__sedfxbp_1/SCE -> +sky130_fd_sc_hd__sedfxbp_2/CLK -> +sky130_fd_sc_hd__sedfxbp_2/D -> +sky130_fd_sc_hd__sedfxbp_2/DE -> +sky130_fd_sc_hd__sedfxbp_2/SCD -> +sky130_fd_sc_hd__sedfxbp_2/SCE -> +sky130_fd_sc_hd__sedfxtp_1/CLK -> +sky130_fd_sc_hd__sedfxtp_1/D -> +sky130_fd_sc_hd__sedfxtp_1/DE -> +sky130_fd_sc_hd__sedfxtp_1/SCD -> +sky130_fd_sc_hd__sedfxtp_1/SCE -> +sky130_fd_sc_hd__sedfxtp_2/CLK -> +sky130_fd_sc_hd__sedfxtp_2/D -> +sky130_fd_sc_hd__sedfxtp_2/DE -> +sky130_fd_sc_hd__sedfxtp_2/SCD -> +sky130_fd_sc_hd__sedfxtp_2/SCE -> +sky130_fd_sc_hd__sedfxtp_4/CLK -> +sky130_fd_sc_hd__sedfxtp_4/D -> +sky130_fd_sc_hd__sedfxtp_4/DE -> +sky130_fd_sc_hd__sedfxtp_4/SCD -> +sky130_fd_sc_hd__sedfxtp_4/SCE -> +sky130_fd_sc_hd__xnor2_1/A -> B +sky130_fd_sc_hd__xnor2_1/B -> A +sky130_fd_sc_hd__xnor2_2/A -> B +sky130_fd_sc_hd__xnor2_2/B -> A +sky130_fd_sc_hd__xnor2_4/A -> B +sky130_fd_sc_hd__xnor2_4/B -> A +sky130_fd_sc_hd__xnor3_1/A -> B C +sky130_fd_sc_hd__xnor3_1/B -> A C +sky130_fd_sc_hd__xnor3_1/C -> A B +sky130_fd_sc_hd__xnor3_2/A -> B C +sky130_fd_sc_hd__xnor3_2/B -> A C +sky130_fd_sc_hd__xnor3_2/C -> A B +sky130_fd_sc_hd__xnor3_4/A -> B C +sky130_fd_sc_hd__xnor3_4/B -> A C +sky130_fd_sc_hd__xnor3_4/C -> A B +sky130_fd_sc_hd__xor2_1/A -> B +sky130_fd_sc_hd__xor2_1/B -> A +sky130_fd_sc_hd__xor2_2/A -> B +sky130_fd_sc_hd__xor2_2/B -> A +sky130_fd_sc_hd__xor2_4/A -> B +sky130_fd_sc_hd__xor2_4/B -> A +sky130_fd_sc_hd__xor3_1/A -> B C +sky130_fd_sc_hd__xor3_1/B -> A C +sky130_fd_sc_hd__xor3_1/C -> A B +sky130_fd_sc_hd__xor3_2/A -> B C +sky130_fd_sc_hd__xor3_2/B -> A C +sky130_fd_sc_hd__xor3_2/C -> A B +sky130_fd_sc_hd__xor3_4/A -> B C +sky130_fd_sc_hd__xor3_4/B -> A C +sky130_fd_sc_hd__xor3_4/C -> A B diff --git a/test/aes_sky130hd.metrics b/test/aes_sky130hd.metrics index 2b6035230e7..85289f17a62 100644 --- a/test/aes_sky130hd.metrics +++ b/test/aes_sky130hd.metrics @@ -8,66 +8,62 @@ "design__instance__displacement__max": 13.233, "route__wirelength__estimated": 1.17088e+06, "RSZ::repair_design_buffer_count": "281", - "RSZ::max_slew_slack": "20.003902912139893", + "RSZ::max_slew_slack": "20.003910859425865", "RSZ::max_fanout_slack": "100.0", "RSZ::max_capacitance_slack": "81.39344276789393", "design__instance__displacement__total": 197.112, "design__instance__displacement__mean": 0.003, "design__instance__displacement__max": 9.05, "route__wirelength__estimated": 1.18573e+06, - "design__instance__count__setup_buffer": 1081, + "design__instance__count__setup_buffer": 954, "design__instance__count__hold_buffer": 333, - "RSZ::worst_slack_min": "0.0005067058027695403", - "RSZ::worst_slack_max": "-0.5759526352198947", - "RSZ::tns_max": "-78.18505530964731", + "RSZ::worst_slack_min": "0.0005062617135471305", + "RSZ::worst_slack_max": "-0.6463043616556046", + "RSZ::tns_max": "-85.86547538252458", "RSZ::hold_buffer_count": "333", - "design__instance__displacement__total": 6660.01, - "design__instance__displacement__mean": 0.117, - "design__instance__displacement__max": 13.635, - "route__wirelength__estimated": 1.28658e+06, - "DPL::utilization": "7.4", - "DPL::design_area": "222431", - "route__net": 16791, + "design__instance__displacement__total": 5837.85, + "design__instance__displacement__mean": 0.102, + "design__instance__displacement__max": 14.767, + "route__wirelength__estimated": 1.27657e+06, + "DPL::utilization": "7.3", + "DPL::design_area": "220994", + "route__net": 16664, "route__net__special": 2, - "antenna__violating__nets": 2, - "antenna__violating__pins": 2, - "GRT::ANT::errors": "2", + "antenna__violating__nets": 4, + "antenna__violating__pins": 4, + "GRT::ANT::errors": "4", "design__violations": 0, - "route__net": 16791, + "route__net": 16664, "route__net__special": 2, - "route__drc_errors__iter:1": 15985, - "route__wirelength__iter:1": 1630419, - "route__drc_errors__iter:2": 4907, - "route__wirelength__iter:2": 1624443, - "route__drc_errors__iter:3": 4319, - "route__wirelength__iter:3": 1621538, - "route__drc_errors__iter:4": 333, - "route__wirelength__iter:4": 1622283, - "route__drc_errors__iter:5": 46, - "route__wirelength__iter:5": 1622217, - "route__drc_errors__iter:6": 27, - "route__wirelength__iter:6": 1622221, - "route__drc_errors__iter:7": 14, - "route__wirelength__iter:7": 1622225, - "route__drc_errors__iter:8": 0, - "route__wirelength__iter:8": 1622218, + "route__drc_errors__iter:1": 13062, + "route__wirelength__iter:1": 1614494, + "route__drc_errors__iter:2": 3073, + "route__wirelength__iter:2": 1607769, + "route__drc_errors__iter:3": 2280, + "route__wirelength__iter:3": 1604834, + "route__drc_errors__iter:4": 153, + "route__wirelength__iter:4": 1605172, + "route__drc_errors__iter:5": 6, + "route__wirelength__iter:5": 1605168, + "route__drc_errors__iter:6": 0, + "route__wirelength__iter:6": 1605166, "route__drc_errors": 0, - "route__wirelength": 1622218, - "route__vias": 160226, - "route__vias__singlecut": 160226, + "route__wirelength": 1605166, + "route__vias": 159126, + "route__vias__singlecut": 159126, "route__vias__multicut": 0, "DRT::drv": "0", - "antenna__violating__nets": 99, - "antenna__violating__pins": 101, - "DRT::ANT::errors": "99", + "antenna__violating__nets": 93, + "antenna__violating__pins": 96, + "DRT::ANT::errors": "93", "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.18114499302169298", - "DRT::worst_slack_max": "-1.4094996679877951", - "DRT::tns_max": "-157.54720995950018", - "DRT::clock_skew": "0.6833649395333666", - "DRT::max_slew_slack": "-15.645448366800943", + "DRT::worst_slack_min": "-0.26316471968699706", + "DRT::worst_slack_max": "-1.9527340297466504", + "DRT::tns_max": "-162.78936703852108", + "DRT::clock_skew": "0.7300389388532439", + "DRT::max_slew_slack": "-57.365993658701576", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "-17.951310626834886", + "DRT::max_capacitance_slack": "-64.29223093140345", "DRT::clock_period": "3.740000" } \ No newline at end of file diff --git a/test/aes_sky130hd.metrics_limits b/test/aes_sky130hd.metrics_limits index 558010e77d2..ab09adae8fd 100644 --- a/test/aes_sky130hd.metrics_limits +++ b/test/aes_sky130hd.metrics_limits @@ -1,23 +1,23 @@ { "IFP::instance_count" : "20652.0" - ,"DPL::design_area" : "266917.2" - ,"DPL::utilization" : "8.88" + ,"DPL::design_area" : "265192.8" + ,"DPL::utilization" : "8.76" ,"RSZ::repair_design_buffer_count" : "337" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-0.37349329419723054" - ,"RSZ::worst_slack_max" : "-0.9499526352198948" - ,"RSZ::tns_max" : "-721.8390553096474" + ,"RSZ::worst_slack_min" : "-0.37349373828645294" + ,"RSZ::worst_slack_max" : "-1.0203043616556047" + ,"RSZ::tns_max" : "-729.5194753825247" ,"RSZ::hold_buffer_count" : "399" - ,"GRT::ANT::errors" : "2" + ,"GRT::ANT::errors" : "4" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.5551449930216931" - ,"DRT::worst_slack_max" : "-1.7834996679877952" - ,"DRT::tns_max" : "-801.2012099595003" - ,"DRT::clock_skew" : "0.8200379274400399" - ,"DRT::max_slew_slack" : "-18.774538040161133" - ,"DRT::max_capacitance_slack" : "-21.541572752201862" + ,"DRT::worst_slack_min" : "-0.6371647196869972" + ,"DRT::worst_slack_max" : "-2.3267340297466506" + ,"DRT::tns_max" : "-806.4433670385212" + ,"DRT::clock_skew" : "0.8760467266238926" + ,"DRT::max_slew_slack" : "-68.8391923904419" + ,"DRT::max_capacitance_slack" : "-77.15067711768414" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "3.74" } diff --git a/test/aes_sky130hs.metrics b/test/aes_sky130hs.metrics index 2926331164f..4c13629d3a7 100644 --- a/test/aes_sky130hs.metrics +++ b/test/aes_sky130hs.metrics @@ -15,53 +15,53 @@ "design__instance__displacement__mean": 0.004, "design__instance__displacement__max": 5.928, "route__wirelength__estimated": 1.33431e+06, - "design__instance__count__setup_buffer": 846, - "design__instance__count__hold_buffer": 601, - "RSZ::worst_slack_min": "0.0005530021042057581", - "RSZ::worst_slack_max": "-0.6879061959217289", - "RSZ::tns_max": "-98.9044039106941", - "RSZ::hold_buffer_count": "601", - "design__instance__displacement__total": 7480.57, - "design__instance__displacement__mean": 0.153, - "design__instance__displacement__max": 17.25, - "route__wirelength__estimated": 1.38716e+06, - "DPL::utilization": "10.2", - "DPL::design_area": "307348", - "route__net": 16579, + "design__instance__count__setup_buffer": 1048, + "design__instance__count__hold_buffer": 603, + "RSZ::worst_slack_min": "0.0005535572157337702", + "RSZ::worst_slack_max": "-0.6330927072889141", + "RSZ::tns_max": "-92.18982460585138", + "RSZ::hold_buffer_count": "603", + "design__instance__displacement__total": 8845.2, + "design__instance__displacement__mean": 0.18, + "design__instance__displacement__max": 15.665, + "route__wirelength__estimated": 1.39611e+06, + "DPL::utilization": "10.3", + "DPL::design_area": "310555", + "route__net": 16783, "route__net__special": 2, "antenna__violating__nets": 0, "antenna__violating__pins": 0, "GRT::ANT::errors": "0", "design__violations": 0, - "route__net": 16579, + "route__net": 16783, "route__net__special": 2, - "route__drc_errors__iter:1": 11079, - "route__wirelength__iter:1": 1706754, - "route__drc_errors__iter:2": 1570, - "route__wirelength__iter:2": 1700615, - "route__drc_errors__iter:3": 1213, - "route__wirelength__iter:3": 1697715, - "route__drc_errors__iter:4": 10, - "route__wirelength__iter:4": 1697727, + "route__drc_errors__iter:1": 11011, + "route__wirelength__iter:1": 1713472, + "route__drc_errors__iter:2": 1515, + "route__wirelength__iter:2": 1707532, + "route__drc_errors__iter:3": 992, + "route__wirelength__iter:3": 1704630, + "route__drc_errors__iter:4": 25, + "route__wirelength__iter:4": 1704500, "route__drc_errors__iter:5": 0, - "route__wirelength__iter:5": 1697713, + "route__wirelength__iter:5": 1704498, "route__drc_errors": 0, - "route__wirelength": 1697713, - "route__vias": 149601, - "route__vias__singlecut": 149601, + "route__wirelength": 1704498, + "route__vias": 150422, + "route__vias__singlecut": 150422, "route__vias__multicut": 0, "DRT::drv": "0", - "antenna__violating__nets": 109, - "antenna__violating__pins": 109, - "DRT::ANT::errors": "109", + "antenna__violating__nets": 112, + "antenna__violating__pins": 114, + "DRT::ANT::errors": "112", "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.1664590734589077", - "DRT::worst_slack_max": "-0.9967604801448263", - "DRT::tns_max": "-134.4156326511716", - "DRT::clock_skew": "0.5093865473606167", - "DRT::max_slew_slack": "-10.26289090514183", + "DRT::worst_slack_min": "-0.14550050465189013", + "DRT::worst_slack_max": "-0.9857785977638553", + "DRT::tns_max": "-127.80502706779322", + "DRT::clock_skew": "0.4667061313955648", + "DRT::max_slew_slack": "-22.951307892799377", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "-12.415987695807061", + "DRT::max_capacitance_slack": "-25.77419541943123", "DRT::clock_period": "2.811000" } \ No newline at end of file diff --git a/test/aes_sky130hs.metrics_limits b/test/aes_sky130hs.metrics_limits index 3448fbe80f9..1f6eaba966e 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" : "368817.6" - ,"DPL::utilization" : "12.239999999999998" + ,"DPL::design_area" : "372666.0" + ,"DPL::utilization" : "12.360000000000001" ,"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" : "-0.28054699789579424" - ,"RSZ::worst_slack_max" : "-0.9690061959217289" - ,"RSZ::tns_max" : "-557.7720439106942" - ,"RSZ::hold_buffer_count" : "721" + ,"RSZ::worst_slack_min" : "-0.28054644278426627" + ,"RSZ::worst_slack_max" : "-0.9141927072889141" + ,"RSZ::tns_max" : "-551.0574646058515" + ,"RSZ::hold_buffer_count" : "723" ,"GRT::ANT::errors" : "0" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.4475590734589077" - ,"DRT::worst_slack_max" : "-1.2778604801448263" - ,"DRT::tns_max" : "-593.2832726511716" - ,"DRT::clock_skew" : "0.6112638568327401" - ,"DRT::max_slew_slack" : "-12.315469086170197" - ,"DRT::max_capacitance_slack" : "-14.899185234968472" + ,"DRT::worst_slack_min" : "-0.42660050465189014" + ,"DRT::worst_slack_max" : "-1.2668785977638555" + ,"DRT::tns_max" : "-586.6726670677933" + ,"DRT::clock_skew" : "0.5600473576746777" + ,"DRT::max_slew_slack" : "-27.541569471359253" + ,"DRT::max_capacitance_slack" : "-30.929034503317475" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "2.811" } diff --git a/test/ibex_sky130hd.metrics b/test/ibex_sky130hd.metrics index 852f25c133a..fb8c4cb3cd1 100644 --- a/test/ibex_sky130hd.metrics +++ b/test/ibex_sky130hd.metrics @@ -15,65 +15,61 @@ "design__instance__displacement__mean": 0.021, "design__instance__displacement__max": 9.898, "route__wirelength__estimated": 714611, - "design__instance__count__setup_buffer": 238, + "design__instance__count__setup_buffer": 242, "design__instance__count__hold_buffer": 332, - "RSZ::worst_slack_min": "0.00044364513318735383", - "RSZ::worst_slack_max": "-2.296500832278714", - "RSZ::tns_max": "-30.69140406468204", + "RSZ::worst_slack_min": "0.00044386717779855867", + "RSZ::worst_slack_max": "-2.284226206171308", + "RSZ::tns_max": "-30.56044748206407", "RSZ::hold_buffer_count": "332", - "design__instance__displacement__total": 3574.86, - "design__instance__displacement__mean": 0.151, + "design__instance__displacement__total": 3617.02, + "design__instance__displacement__mean": 0.153, "design__instance__displacement__max": 26.68, - "route__wirelength__estimated": 749610, + "route__wirelength__estimated": 750257, "DPL::utilization": "27.9", - "DPL::design_area": "169196", - "route__net": 15627, + "DPL::design_area": "169240", + "route__net": 15631, "route__net__special": 2, "antenna__violating__nets": 0, "antenna__violating__pins": 0, "GRT::ANT::errors": "0", "design__violations": 0, - "route__net": 15627, + "route__net": 15631, "route__net__special": 2, - "route__drc_errors__iter:1": 13484, - "route__wirelength__iter:1": 967591, - "route__drc_errors__iter:2": 3417, - "route__wirelength__iter:2": 962824, - "route__drc_errors__iter:3": 3050, - "route__wirelength__iter:3": 960646, - "route__drc_errors__iter:4": 469, - "route__wirelength__iter:4": 960990, - "route__drc_errors__iter:5": 161, - "route__wirelength__iter:5": 960913, - "route__drc_errors__iter:6": 64, - "route__wirelength__iter:6": 960918, - "route__drc_errors__iter:7": 27, - "route__wirelength__iter:7": 960922, - "route__drc_errors__iter:8": 13, - "route__wirelength__iter:8": 960909, - "route__drc_errors__iter:9": 12, - "route__wirelength__iter:9": 960911, - "route__drc_errors__iter:10": 7, - "route__wirelength__iter:10": 960906, - "route__drc_errors__iter:11": 0, - "route__wirelength__iter:11": 960906, + "route__drc_errors__iter:1": 11621, + "route__wirelength__iter:1": 963634, + "route__drc_errors__iter:2": 2003, + "route__wirelength__iter:2": 958270, + "route__drc_errors__iter:3": 1625, + "route__wirelength__iter:3": 956308, + "route__drc_errors__iter:4": 284, + "route__wirelength__iter:4": 956338, + "route__drc_errors__iter:5": 67, + "route__wirelength__iter:5": 956386, + "route__drc_errors__iter:6": 29, + "route__wirelength__iter:6": 956406, + "route__drc_errors__iter:7": 6, + "route__wirelength__iter:7": 956393, + "route__drc_errors__iter:8": 2, + "route__wirelength__iter:8": 956394, + "route__drc_errors__iter:9": 0, + "route__wirelength__iter:9": 956393, "route__drc_errors": 0, - "route__wirelength": 960906, - "route__vias": 130733, - "route__vias__singlecut": 130733, + "route__wirelength": 956393, + "route__vias": 130527, + "route__vias__singlecut": 130527, "route__vias__multicut": 0, "DRT::drv": "0", - "antenna__violating__nets": 41, - "antenna__violating__pins": 45, - "DRT::ANT::errors": "41", + "antenna__violating__nets": 42, + "antenna__violating__pins": 47, + "DRT::ANT::errors": "42", "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.5978602226952019", - "DRT::worst_slack_max": "-3.491694143762117", - "DRT::tns_max": "-158.27543101912147", - "DRT::clock_skew": "2.9047698402133673", - "DRT::max_slew_slack": "-1.1719662696123123", + "DRT::worst_slack_min": "-0.533850756489337", + "DRT::worst_slack_max": "-3.34448211924706", + "DRT::tns_max": "-140.02018074653395", + "DRT::clock_skew": "2.8205421019342416", + "DRT::max_slew_slack": "-13.06274433930715", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "2.5332389361563186", + "DRT::max_capacitance_slack": "21.05764955915588", "DRT::clock_period": "15.155000" } \ No newline at end of file diff --git a/test/ibex_sky130hd.metrics_limits b/test/ibex_sky130hd.metrics_limits index 8d72e1ab3fd..3196f7d3965 100644 --- a/test/ibex_sky130hd.metrics_limits +++ b/test/ibex_sky130hd.metrics_limits @@ -1,22 +1,22 @@ { "IFP::instance_count" : "18835.2" - ,"DPL::design_area" : "203035.19999999998" + ,"DPL::design_area" : "203088.0" ,"DPL::utilization" : "33.48" ,"RSZ::repair_design_buffer_count" : "430" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-1.5150563548668128" - ,"RSZ::worst_slack_max" : "-3.812000832278714" - ,"RSZ::tns_max" : "-2409.4202040646824" + ,"RSZ::worst_slack_min" : "-1.5150561328222014" + ,"RSZ::worst_slack_max" : "-3.799726206171308" + ,"RSZ::tns_max" : "-2409.289247482064" ,"RSZ::hold_buffer_count" : "398" ,"GRT::ANT::errors" : "0" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-2.113360222695202" - ,"DRT::worst_slack_max" : "-5.007194143762117" - ,"DRT::tns_max" : "-2537.004231019122" - ,"DRT::clock_skew" : "3.4857238082560404" - ,"DRT::max_slew_slack" : "-1.4063595235347748" + ,"DRT::worst_slack_min" : "-2.049350756489337" + ,"DRT::worst_slack_max" : "-4.85998211924706" + ,"DRT::tns_max" : "-2518.7489807465345" + ,"DRT::clock_skew" : "3.3846505223210896" + ,"DRT::max_slew_slack" : "-15.675293207168579" ,"DRT::max_capacitance_slack" : "0" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "15.155"