diff --git a/docs/user/LevelizeObserver-upstream-plan.md b/docs/user/LevelizeObserver-upstream-plan.md new file mode 100644 index 00000000000..b5aa4c1b7eb --- /dev/null +++ b/docs/user/LevelizeObserver-upstream-plan.md @@ -0,0 +1,223 @@ +# Proposed OpenSTA upstream changes — `LevelizeObserver` + `Sta::setLevelizeObserver` + +## Status + +Proposed. Not yet submitted upstream. + +- OpenSTA branch staged at: `parallaxsw/OpenSTA` fork +- OpenROAD dependency: blocked until upstream lands. + +## Motivation + +OpenROAD's `dbSta` needs to attach its own `LevelizeObserver` so the +driver-vertex cache (`dbSta::levelizedDrvrVertices()`) is invalidated when +the timing graph levels change. Today this requires three workarounds: + +1. **`OPENSTA_HOME` private include path.** `LevelizeObserver` is declared in + `sta/search/Levelize.hh`, which is not part of OpenSTA's public include. + `src/dbSta/src/CMakeLists.txt` adds `${OPENSTA_HOME}` and + `${OPENSTA_HOME}/include/sta` as `PRIVATE` includes on `dbSta_lib` to + reach it. +2. **Reaching into `Sta::levelize_`.** `dbSta::makeObservers` calls + `levelize_->setObserver(...)` directly. `levelize_` is `protected` on + `StaState`, so it works, but it is a private contract. +3. **Replicating `StaLevelizeObserver` behavior.** + `Levelize::setObserver` overwrites and deletes any prior observer (single + slot, no chain). The observer that `Sta::makeObservers` installs — + `StaLevelizeObserver` — forwards level-change events to `Search` and + `GraphDelayCalc` so their incremental-update iterators stay consistent. + Because `dbSta` must replace that observer, it has to duplicate the + forwarding by hand inside `DbStaLevelizeObserver`. If upstream ever adds + work to `StaLevelizeObserver`, the dbSta copy silently drifts. + +Reviewer feedback (gemini) on the OpenROAD PR called out both points: + +> The `dbSta::makeObservers` override replaces the `StaLevelizeObserver` +> created by the base class. ... it would be safer to verify if OpenSTA +> could be updated to support observer chaining or multiple observers. + +> It would make more sense for this observer to inherit from the existing +> observer and then call the parent class function instead of duplicating +> the contents. + +> I think it makes more sense to add a set function for the levelize +> observer on the `Sta` class than to change the include search path to get +> access to `Levelize.hh`. + +## Proposed OpenSTA changes + +Five small changes, ~12 LOC of behavior. No functional change to existing +flows. + +### 1. New public header `include/sta/LevelizeObserver.hh` + +Holds both observer classes that previously lived in +`search/Levelize.hh` and `search/Sta.cc`. + +```cpp +namespace sta { + +class Vertex; +class Search; +class GraphDelayCalc; + +class LevelizeObserver { +public: + virtual ~LevelizeObserver() = default; + virtual void levelsChangedBefore() = 0; + virtual void levelChangedBefore(Vertex *vertex) = 0; +}; + +class StaLevelizeObserver : public LevelizeObserver { +public: + StaLevelizeObserver(Search *search, GraphDelayCalc *graph_delay_calc); + void levelsChangedBefore() override; + void levelChangedBefore(Vertex *vertex) override; +private: + Search *search_; + GraphDelayCalc *graph_delay_calc_; +}; + +} // namespace sta +``` + +### 2. `search/Levelize.hh` + +Drop the inline `LevelizeObserver` class body. Include the new public +header. + +```diff ++#include "sta/LevelizeObserver.hh" + ... +-class LevelizeObserver +-{ ... }; +``` + +### 3. `search/Sta.cc` + +Drop the file-local `StaLevelizeObserver` class body. Keep the function +definitions (they now define the public class). + +### 4. `include/sta/Sta.hh` + +Add public setter. + +```diff ++class LevelizeObserver; + ... ++ // Replace the Levelize observer. Takes ownership; deletes any prior ++ // observer. Subclass StaLevelizeObserver to extend the default behavior ++ // (Search + GraphDelayCalc forwarding) without re-implementing it. ++ void setLevelizeObserver(LevelizeObserver *observer); +``` + +### 5. `search/Sta.cc` + +One-line implementation. + +```cpp +void Sta::setLevelizeObserver(LevelizeObserver *observer) { + levelize_->setObserver(observer); +} +``` + +CMake / Bazel pick up the new header automatically: +- CMake `install(DIRECTORY include/sta DESTINATION include)`. +- Bazel `opensta_lib` already globs `include/sta/*.hh`. + +## OpenROAD follow-up after upstream lands + +### `src/dbSta/src/dbSta.cc` + +Replace the current observer + override with the cleaner version that +inherits from `StaLevelizeObserver` and uses `Sta::setLevelizeObserver`: + +```cpp +#include "sta/LevelizeObserver.hh" // public — no OPENSTA_HOME hack + +class DbStaLevelizeObserver : public StaLevelizeObserver +{ + public: + DbStaLevelizeObserver(dbSta* sta, Search* s, GraphDelayCalc* gdc) + : StaLevelizeObserver(s, gdc), sta_(sta) {} + + void levelsChangedBefore() override { + StaLevelizeObserver::levelsChangedBefore(); // parent: Search + GDC + sta_->invalidateLevelizedDrvrVertices(); + } + void levelChangedBefore(Vertex* v) override { + StaLevelizeObserver::levelChangedBefore(v); + sta_->invalidateLevelizedDrvrVertices(); + } + + private: + dbSta* sta_; +}; + +void dbSta::makeObservers() { + Sta::makeObservers(); + setLevelizeObserver( + new DbStaLevelizeObserver(this, search_, graph_delay_calc_)); +} +``` + +Differences from the current implementation: + +- `#include "sta/LevelizeObserver.hh"` instead of + `#include "search/Levelize.hh"`. +- `DbStaLevelizeObserver` inherits from `StaLevelizeObserver` (public class) + and calls `StaLevelizeObserver::levelsChangedBefore()` / + `levelChangedBefore()` instead of hand-replicating the Search + + GraphDelayCalc forwarding. +- `setLevelizeObserver(...)` replaces the previous + `levelize_->setObserver(...)` reach-in. + +### `src/dbSta/src/CMakeLists.txt` + +Drop the private include hack: + +```diff + target_include_directories(dbSta_lib + PUBLIC + ../include + ${PROJECT_SOURCE_DIR}/include +- PRIVATE +- # Needed for search/Levelize.hh and the unprefixed transitive +- # OpenSTA headers it includes (e.g. Graph.hh) which are not part of +- # OpenSTA's public include. +- ${OPENSTA_HOME} +- ${OPENSTA_HOME}/include/sta + ) +``` + +`dbSta_lib`'s public dependency on the `OpenSTA` CMake target already +exposes `include/`, and Bazel's `opensta_lib` `hdrs` already lists the new +header — both pick up `sta/LevelizeObserver.hh` without extra wiring. + +### What does **not** change + +- `dbSta::levelizedDrvrVertices()` body, the cache invariant, the + `bool drvr_vertices_level_valid_` flag, and the `clear()` inside + `invalidateLevelizedDrvrVertices()` are all independent of the upstream + change. The `clear()` is still required because the cache vector must be + empty when the flag is `false` — otherwise the next rebuild's + `push_back` appends to stale (and possibly dangling) contents. See + `dbSta::invalidateLevelizedDrvrVertices()` doc. +- `dbStaCbk::inDbInstCreate` / `inDbInstDestroy` calls to + `invalidateLevelizedDrvrVertices()` remain — they plug the gap where + `Sta::deleteLeafInstanceBefore` bypasses the `LevelizeObserver` path. +- Existing rsz call sites (`Resizer.cc`, `RepairDesign.cc`, `Rebuffer.cc`) + are untouched. +- Regression test `src/dbSta/test/levelize_drvr_vertices1.tcl` and its + golden remain valid. + +## Why this is worth it + +| Concern | Today | After upstream | +|---|---|---| +| `OPENSTA_HOME` PRIVATE include | required | removed | +| Reach into `Sta::levelize_` | yes | no | +| Replicate `StaLevelizeObserver` forwarding | yes (drift risk) | no (inherit) | +| Upstream adds new work to `StaLevelizeObserver` | silently lost in dbSta | inherited automatically | + + diff --git a/src/dbSta/include/db_sta/dbSta.hh b/src/dbSta/include/db_sta/dbSta.hh index 2c66a95a89c..aeb79fd7ea3 100644 --- a/src/dbSta/include/db_sta/dbSta.hh +++ b/src/dbSta/include/db_sta/dbSta.hh @@ -17,6 +17,7 @@ #include "odb/dbObject.h" #include "sta/Clock.hh" #include "sta/Delay.hh" +#include "sta/GraphClass.hh" #include "sta/Liberty.hh" #include "sta/MinMax.hh" #include "sta/Sta.hh" @@ -83,6 +84,7 @@ class dbSta; class dbNetwork; class dbStaReport; class dbStaCbk; +class DbStaLevelizeObserver; class PatternMatch; class TestCell; @@ -222,10 +224,18 @@ class dbSta : public Sta, public odb::dbDatabaseObserver using Sta::replaceCell; using Sta::slack; + // Drivers sorted by (level, name) for determinism. + const VertexSeq& levelizedDrvrVertices(); + // Discard the cached driver-vertex list. Callers that mutate the timing + // graph outside the LevelizeObserver path (e.g. dbStaCbk on dbInst + // create/destroy) must invalidate so the next query rebuilds. + void invalidateLevelizedDrvrVertices(); + private: void makeReport() override; void makeNetwork() override; void makeSdcNetwork() override; + void makeObservers() override; void replaceCell(Instance* inst, Cell* to_cell, @@ -238,6 +248,9 @@ class dbSta : public Sta, public odb::dbDatabaseObserver dbStaReport* db_report_ = nullptr; std::unique_ptr db_cbk_; std::set sta_states_; + + VertexSeq levelized_drvr_vertices_; + bool drvr_vertices_level_valid_ = false; }; // Utilities for TestCell diff --git a/src/dbSta/src/CMakeLists.txt b/src/dbSta/src/CMakeLists.txt index 78139870eb2..d743a2ad432 100644 --- a/src/dbSta/src/CMakeLists.txt +++ b/src/dbSta/src/CMakeLists.txt @@ -17,6 +17,12 @@ target_include_directories(dbSta_lib PUBLIC ../include ${PROJECT_SOURCE_DIR}/include + PRIVATE + # Needed for search/Levelize.hh and the unprefixed transitive + # OpenSTA headers it includes (e.g. Graph.hh) which are not part of + # OpenSTA's public include. + ${OPENSTA_HOME} + ${OPENSTA_HOME}/include/sta ) diff --git a/src/dbSta/src/dbSta.cc b/src/dbSta/src/dbSta.cc index 6577b50111e..e1fdd5bddc0 100644 --- a/src/dbSta/src/dbSta.cc +++ b/src/dbSta/src/dbSta.cc @@ -36,11 +36,14 @@ #include "odb/dbBlockCallBackObj.h" #include "odb/dbObject.h" #include "odb/dbTypes.h" +#include "search/Levelize.hh" #include "sta/ArcDelayCalc.hh" #include "sta/Clock.hh" #include "sta/Delay.hh" #include "sta/EquivCells.hh" #include "sta/Graph.hh" +#include "sta/GraphCmp.hh" +#include "sta/GraphDelayCalc.hh" #include "sta/Liberty.hh" #include "sta/MinMax.hh" #include "sta/Mode.hh" @@ -53,6 +56,7 @@ #include "sta/PortDirection.hh" #include "sta/ReportTcl.hh" #include "sta/Sdc.hh" +#include "sta/Search.hh" #include "sta/Sta.hh" #include "sta/StaMain.hh" #include "sta/Transition.hh" @@ -288,6 +292,73 @@ void dbSta::makeSdcNetwork() sdc_network_ = new dbSdcNetwork(network_); } +// Levelize::setObserver takes ownership and deletes the prior observer, +// so this composite must replicate the StaLevelizeObserver behavior that +// Sta::makeObservers installs (forwarding to Search and GraphDelayCalc) +// in addition to invalidating dbSta's cache. +class DbStaLevelizeObserver : public LevelizeObserver +{ + public: + explicit DbStaLevelizeObserver(dbSta* sta) : sta_(sta) {} + void levelsChangedBefore() override + { + sta_->search()->levelsChangedBefore(); + sta_->graphDelayCalc()->levelsChangedBefore(); + sta_->invalidateLevelizedDrvrVertices(); + } + void levelChangedBefore(Vertex* vertex) override + { + sta_->search()->levelChangedBefore(vertex); + sta_->graphDelayCalc()->levelChangedBefore(vertex); + sta_->invalidateLevelizedDrvrVertices(); + } + + private: + dbSta* sta_; +}; + +void dbSta::makeObservers() +{ + Sta::makeObservers(); + levelize_->setObserver(new DbStaLevelizeObserver(this)); +} + +void dbSta::invalidateLevelizedDrvrVertices() +{ + if (drvr_vertices_level_valid_) { + drvr_vertices_level_valid_ = false; + levelized_drvr_vertices_.clear(); + } +} + +const VertexSeq& dbSta::levelizedDrvrVertices() +{ + ensureLevelized(); + if (!drvr_vertices_level_valid_) { + Graph* g = graph(); + // Approx half of vertices are drivers. + levelized_drvr_vertices_.reserve(g->vertexCount() / 2); + Network* net = network(); + VertexIterator vertex_iter(g); + while (vertex_iter.hasNext()) { + Vertex* vertex = vertex_iter.next(); + if (vertex->isDriver(net)) { + levelized_drvr_vertices_.push_back(vertex); + } + } + VertexNameLess name_less(net); + std::ranges::sort(levelized_drvr_vertices_, + [&name_less](const Vertex* a, const Vertex* b) { + if (a->level() != b->level()) { + return a->level() < b->level(); + } + return name_less(a, b); + }); + drvr_vertices_level_valid_ = true; + } + return levelized_drvr_vertices_; +} + void dbSta::postReadLef(odb::dbTech* tech, odb::dbLib* library) { if (library) { @@ -1100,6 +1171,8 @@ void dbStaCbk::setNetwork(dbNetwork* network) void dbStaCbk::inDbInstCreate(odb::dbInst* inst) { sta_->makeInstanceAfter(network_->dbToSta(inst)); + // New driver vertices may exist; invalidate cached driver-vertex list. + sta_->invalidateLevelizedDrvrVertices(); } void dbStaCbk::inDbInstDestroy(odb::dbInst* inst) @@ -1107,6 +1180,10 @@ void dbStaCbk::inDbInstDestroy(odb::dbInst* inst) // This is called after the iterms have been destroyed // so it side-steps Sta::deleteInstanceAfter. sta_->deleteLeafInstanceBefore(network_->dbToSta(inst)); + // Sta::deleteLeafInstanceBefore calls Levelize::deleteVertexBefore + // directly (bypassing the LevelizeObserver), so the dbSta cache must be + // invalidated explicitly here to avoid a dangling Vertex* on next query. + sta_->invalidateLevelizedDrvrVertices(); } void dbStaCbk::inDbModuleCreate(odb::dbModule* module) diff --git a/src/dbSta/src/dbSta.i b/src/dbSta/src/dbSta.i index 40546b577db..4f52c191b59 100644 --- a/src/dbSta/src/dbSta.i +++ b/src/dbSta/src/dbSta.i @@ -11,7 +11,10 @@ #include "db_sta/IpChecker.hh" #include "db_sta/MakeDbSta.hh" #include "ord/OpenRoad.hh" +#include "sta/Graph.hh" +#include "sta/Network.hh" #include "sta/Property.hh" +#include "sta/Report.hh" #include "sta/VerilogWriter.hh" namespace ord { @@ -221,6 +224,35 @@ replace_hier_module_cmd(odb::dbModInst* mod_inst, odb::dbModule* module) namespace sta { +void +report_levelized_drvr_vertices(int max_count) +{ + ord::OpenRoad *openroad = ord::getOpenRoad(); + sta::dbSta *sta = openroad->getSta(); + sta->ensureGraph(); + const sta::VertexSeq &drvrs = sta->levelizedDrvrVertices(); + sta::Report *report = sta->report(); + const sta::Network *network = sta->network(); + report->report("driver vertex count {}", drvrs.size()); + sta::Level prev_level = -1; + int n = 0; + for (sta::Vertex *vertex : drvrs) { + sta::Level level = vertex->level(); + if (level < prev_level) { + report->report("level order violated {} {} < {}", + network->pathName(vertex->pin()), + level, prev_level); + } + if (n < max_count) { + report->report("{} level={}", + network->pathName(vertex->pin()), + level); + } + prev_level = level; + n++; + } +} + void check_axioms_cmd() { ord::OpenRoad* openroad = ord::getOpenRoad(); diff --git a/src/dbSta/test/BUILD b/src/dbSta/test/BUILD index 9329fb6ff77..656a4091f0a 100644 --- a/src/dbSta/test/BUILD +++ b/src/dbSta/test/BUILD @@ -28,6 +28,7 @@ ALL_TESTS = [ "hierwrite", "hier_deep", "hier_weird_port", + "levelize_drvr_vertices1", "make_port", "network_edit1", "power1", @@ -133,6 +134,16 @@ filegroup( "hierclock_gate.v", "hierclock_out.vok", ], + "levelize_drvr_vertices1": [ + "gcd_asap7.v", + "asap7/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz", + "asap7/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz", + "asap7/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz", + "asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz", + "asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib", + "asap7/asap7_tech_1x_201209.lef", + "asap7/asap7sc7p5t_28_R_1x_220121a.lef", + ], "network_edit1": [ "reg3.def", ], diff --git a/src/dbSta/test/CMakeLists.txt b/src/dbSta/test/CMakeLists.txt index 683b90d6867..98d185a4512 100644 --- a/src/dbSta/test/CMakeLists.txt +++ b/src/dbSta/test/CMakeLists.txt @@ -18,6 +18,7 @@ or_integration_tests( hierwrite hier_deep hier_weird_port + levelize_drvr_vertices1 make_port network_edit1 power1 diff --git a/src/dbSta/test/gcd_asap7.v b/src/dbSta/test/gcd_asap7.v new file mode 100644 index 00000000000..570f25fc486 --- /dev/null +++ b/src/dbSta/test/gcd_asap7.v @@ -0,0 +1,4466 @@ +/* Generated by Yosys 0.55 (git sha1 60f126cd0, g++ 13.3.0-6ubuntu2~24.04 -fPIC -O3) */ + +(* abc9_box_id = 32'b00000000000000000000000000000011 *) +(* abc9_box = 1 *) +(* abc9_script = "+&dch;&nf -R 5;" *) +(* arithmetic_operator = 1 *) +(* source_cell = "$alu" *) +(* implements_operator = "ALU_16_0_16_0_16_unused_CO[14:0]_X" *) +(* architecture = "BRENT_KUNG" *) +module \ALU_16_0_16_0_16_unused_CO[14:0]_X_BRENT_KUNG (A, B, BI, CI, Y, \CO[15] ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _000_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _001_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _002_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _003_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _004_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _005_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _006_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _007_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _008_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _009_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _010_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _011_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _012_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _013_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _014_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _015_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _016_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _017_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _018_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _019_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _020_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _021_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _022_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _023_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _024_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _025_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _026_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _027_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _028_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _029_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _030_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _031_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _032_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _033_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _034_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _035_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _036_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _037_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _038_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _039_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _040_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _041_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _042_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _043_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _044_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _045_; + wire _046_; + wire _047_; + wire _048_; + wire _049_; + wire _050_; + wire _051_; + wire _052_; + wire _053_; + wire _054_; + wire _055_; + wire _056_; + wire _057_; + wire _058_; + wire _059_; + wire _060_; + wire _061_; + wire _062_; + wire _063_; + wire _064_; + wire _065_; + wire _066_; + wire _067_; + wire _068_; + wire _069_; + wire _070_; + wire _071_; + wire _072_; + wire _073_; + wire _074_; + wire _075_; + wire _076_; + wire _077_; + wire _078_; + wire _079_; + wire _080_; + wire _081_; + wire _082_; + wire _083_; + wire _084_; + wire _085_; + wire _086_; + wire _087_; + wire _088_; + wire _089_; + wire _090_; + input [15:0] A; + wire [15:0] A; + input [15:0] B; + wire [15:0] B; + input BI; + wire BI; + input CI; + wire CI; + output \CO[15] ; + wire \CO[15] ; + output [15:0] Y; + wire [15:0] Y; + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _091_ ( + .A(A[0]), + .B(CI), + .CI(_062_), + .CON(_000_), + .SN(_001_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _092_ ( + .A(A[10]), + .B(_053_), + .CI(_077_), + .CON(_002_), + .SN(_003_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _093_ ( + .A(A[12]), + .B(_051_), + .CI(_082_), + .CON(_004_), + .SN(_005_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _094_ ( + .A(A[14]), + .B(_049_), + .CI(_085_), + .CON(_006_), + .SN(_007_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _095_ ( + .A(A[1]), + .B(_063_), + .CI(_046_), + .CON(_008_), + .SN(_009_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _096_ ( + .A(A[2]), + .B(_061_), + .CI(_047_), + .CON(_010_), + .SN(_011_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _097_ ( + .A(A[4]), + .B(_059_), + .CI(_066_), + .CON(_012_), + .SN(_013_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _098_ ( + .A(A[6]), + .B(_057_), + .CI(_069_), + .CON(_014_), + .SN(_015_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _099_ ( + .A(A[8]), + .B(_055_), + .CI(_074_), + .CON(_016_), + .SN(_017_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _100_ ( + .A(A[10]), + .B(_053_), + .CON(_018_), + .SN(_019_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _101_ ( + .A(A[11]), + .B(_052_), + .CON(_020_), + .SN(_021_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _102_ ( + .A(A[12]), + .B(_051_), + .CON(_022_), + .SN(_023_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _103_ ( + .A(A[13]), + .B(_050_), + .CON(_024_), + .SN(_025_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _104_ ( + .A(A[14]), + .B(_049_), + .CON(_026_), + .SN(_027_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _105_ ( + .A(A[15]), + .B(_048_), + .CON(_028_), + .SN(_029_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _106_ ( + .A(A[2]), + .B(_061_), + .CON(_030_), + .SN(_031_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _107_ ( + .A(A[3]), + .B(_060_), + .CON(_032_), + .SN(_033_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _108_ ( + .A(A[4]), + .B(_059_), + .CON(_034_), + .SN(_035_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _109_ ( + .A(A[5]), + .B(_058_), + .CON(_036_), + .SN(_037_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _110_ ( + .A(A[6]), + .B(_057_), + .CON(_038_), + .SN(_039_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _111_ ( + .A(A[7]), + .B(_056_), + .CON(_040_), + .SN(_041_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _112_ ( + .A(A[8]), + .B(_055_), + .CON(_042_), + .SN(_043_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _113_ ( + .A(A[9]), + .B(_054_), + .CON(_044_), + .SN(_045_) + ); + INVx1_ASAP7_75t_R _114_ ( + .A(_000_), + .Y(_046_) + ); + INVx1_ASAP7_75t_R _115_ ( + .A(_001_), + .Y(Y[0]) + ); + INVx1_ASAP7_75t_R _116_ ( + .A(_008_), + .Y(_047_) + ); + INVx1_ASAP7_75t_R _117_ ( + .A(_009_), + .Y(Y[1]) + ); + INVx1_ASAP7_75t_R _118_ ( + .A(_011_), + .Y(Y[2]) + ); + INVx1_ASAP7_75t_R _119_ ( + .A(_013_), + .Y(Y[4]) + ); + INVx1_ASAP7_75t_R _120_ ( + .A(_015_), + .Y(Y[6]) + ); + INVx1_ASAP7_75t_R _121_ ( + .A(_017_), + .Y(Y[8]) + ); + INVx1_ASAP7_75t_R _122_ ( + .A(_003_), + .Y(Y[10]) + ); + INVx1_ASAP7_75t_R _123_ ( + .A(_005_), + .Y(Y[12]) + ); + INVx1_ASAP7_75t_R _124_ ( + .A(_007_), + .Y(Y[14]) + ); + XOR2x2_ASAP7_75t_R _125_ ( + .A(B[15]), + .B(BI), + .Y(_048_) + ); + XOR2x2_ASAP7_75t_R _126_ ( + .A(B[14]), + .B(BI), + .Y(_049_) + ); + XOR2x2_ASAP7_75t_R _127_ ( + .A(B[13]), + .B(BI), + .Y(_050_) + ); + XOR2x2_ASAP7_75t_R _128_ ( + .A(B[12]), + .B(BI), + .Y(_051_) + ); + XOR2x2_ASAP7_75t_R _129_ ( + .A(B[11]), + .B(BI), + .Y(_052_) + ); + XOR2x2_ASAP7_75t_R _130_ ( + .A(B[10]), + .B(BI), + .Y(_053_) + ); + XOR2x2_ASAP7_75t_R _131_ ( + .A(B[9]), + .B(BI), + .Y(_054_) + ); + XOR2x2_ASAP7_75t_R _132_ ( + .A(B[8]), + .B(BI), + .Y(_055_) + ); + XOR2x2_ASAP7_75t_R _133_ ( + .A(B[7]), + .B(BI), + .Y(_056_) + ); + XOR2x2_ASAP7_75t_R _134_ ( + .A(B[6]), + .B(BI), + .Y(_057_) + ); + XOR2x2_ASAP7_75t_R _135_ ( + .A(B[5]), + .B(BI), + .Y(_058_) + ); + XOR2x2_ASAP7_75t_R _136_ ( + .A(B[4]), + .B(BI), + .Y(_059_) + ); + XOR2x2_ASAP7_75t_R _137_ ( + .A(B[3]), + .B(BI), + .Y(_060_) + ); + XOR2x2_ASAP7_75t_R _138_ ( + .A(B[2]), + .B(BI), + .Y(_061_) + ); + XOR2x2_ASAP7_75t_R _139_ ( + .A(B[0]), + .B(BI), + .Y(_062_) + ); + XOR2x2_ASAP7_75t_R _140_ ( + .A(B[1]), + .B(BI), + .Y(_063_) + ); + OR2x2_ASAP7_75t_R _141_ ( + .A(_033_), + .B(_031_), + .Y(_064_) + ); + OA21x2_ASAP7_75t_R _142_ ( + .A1(_033_), + .A2(_030_), + .B(_032_), + .Y(_065_) + ); + OAI21x1_ASAP7_75t_R _143_ ( + .A1(_008_), + .A2(_064_), + .B(_065_), + .Y(_066_) + ); + OAI21x1_ASAP7_75t_R _144_ ( + .A1(_037_), + .A2(_034_), + .B(_036_), + .Y(_067_) + ); + NOR2x1_ASAP7_75t_R _145_ ( + .A(_037_), + .B(_035_), + .Y(_068_) + ); + AO21x1_ASAP7_75t_R _146_ ( + .A1(_066_), + .A2(_068_), + .B(_067_), + .Y(_069_) + ); + NOR2x1_ASAP7_75t_R _147_ ( + .A(_041_), + .B(_039_), + .Y(_070_) + ); + INVx1_ASAP7_75t_R _148_ ( + .A(_072_), + .Y(_071_) + ); + NAND2x1_ASAP7_75t_R _149_ ( + .A(_068_), + .B(_070_), + .Y(_072_) + ); + OAI21x1_ASAP7_75t_R _150_ ( + .A1(_041_), + .A2(_038_), + .B(_040_), + .Y(_073_) + ); + AO221x1_ASAP7_75t_R _151_ ( + .A1(_067_), + .A2(_070_), + .B1(_071_), + .B2(_066_), + .C(_073_), + .Y(_074_) + ); + OAI21x1_ASAP7_75t_R _152_ ( + .A1(_045_), + .A2(_042_), + .B(_044_), + .Y(_075_) + ); + NOR2x1_ASAP7_75t_R _153_ ( + .A(_045_), + .B(_043_), + .Y(_076_) + ); + AO21x1_ASAP7_75t_R _154_ ( + .A1(_074_), + .A2(_076_), + .B(_075_), + .Y(_077_) + ); + NOR2x1_ASAP7_75t_R _155_ ( + .A(_021_), + .B(_019_), + .Y(_078_) + ); + INVx1_ASAP7_75t_R _156_ ( + .A(_080_), + .Y(_079_) + ); + NAND2x1_ASAP7_75t_R _157_ ( + .A(_076_), + .B(_078_), + .Y(_080_) + ); + OAI21x1_ASAP7_75t_R _158_ ( + .A1(_021_), + .A2(_018_), + .B(_020_), + .Y(_081_) + ); + AO221x1_ASAP7_75t_R _159_ ( + .A1(_075_), + .A2(_078_), + .B1(_079_), + .B2(_074_), + .C(_081_), + .Y(_082_) + ); + OAI21x1_ASAP7_75t_R _160_ ( + .A1(_025_), + .A2(_022_), + .B(_024_), + .Y(_083_) + ); + NOR2x1_ASAP7_75t_R _161_ ( + .A(_025_), + .B(_023_), + .Y(_084_) + ); + AO21x1_ASAP7_75t_R _162_ ( + .A1(_082_), + .A2(_084_), + .B(_083_), + .Y(_085_) + ); + NOR2x1_ASAP7_75t_R _163_ ( + .A(_029_), + .B(_027_), + .Y(_086_) + ); + OAI21x1_ASAP7_75t_R _164_ ( + .A1(_029_), + .A2(_026_), + .B(_028_), + .Y(_087_) + ); + AO21x1_ASAP7_75t_R _165_ ( + .A1(_083_), + .A2(_086_), + .B(_087_), + .Y(_088_) + ); + INVx1_ASAP7_75t_R _166_ ( + .A(_090_), + .Y(_089_) + ); + NAND2x1_ASAP7_75t_R _167_ ( + .A(_084_), + .B(_086_), + .Y(_090_) + ); + AO21x1_ASAP7_75t_R _168_ ( + .A1(_082_), + .A2(_089_), + .B(_088_), + .Y(\CO[15] ) + ); + XOR2x2_ASAP7_75t_R _169_ ( + .A(_033_), + .B(_010_), + .Y(Y[3]) + ); + XOR2x2_ASAP7_75t_R _170_ ( + .A(_037_), + .B(_012_), + .Y(Y[5]) + ); + XOR2x2_ASAP7_75t_R _171_ ( + .A(_041_), + .B(_014_), + .Y(Y[7]) + ); + XOR2x2_ASAP7_75t_R _172_ ( + .A(_045_), + .B(_016_), + .Y(Y[9]) + ); + XOR2x2_ASAP7_75t_R _173_ ( + .A(_021_), + .B(_002_), + .Y(Y[11]) + ); + XOR2x2_ASAP7_75t_R _174_ ( + .A(_025_), + .B(_004_), + .Y(Y[13]) + ); + XOR2x2_ASAP7_75t_R _175_ ( + .A(_029_), + .B(_006_), + .Y(Y[15]) + ); +endmodule + +(* abc9_box_id = 32'b00000000000000000000000000000100 *) +(* abc9_box = 1 *) +(* abc9_script = "+&dch;&nf -R 5;" *) +(* architecture = "HAN_CARLSON" *) +(* implements_operator = "ALU_16_0_16_0_16_unused_CO[14:0]_X" *) +(* source_cell = "$alu" *) +(* arithmetic_operator = 1 *) +module \ALU_16_0_16_0_16_unused_CO[14:0]_X_HAN_CARLSON (A, B, BI, CI, Y, \CO[15] ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _000_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _001_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _002_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _003_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _004_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _005_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _006_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _007_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _008_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _009_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _010_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _011_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _012_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _013_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _014_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _015_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _016_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _017_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _018_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _019_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _020_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _021_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _022_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _023_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _024_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _025_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _026_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _027_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _028_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _029_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _030_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _031_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _032_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _033_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _034_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _035_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _036_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _037_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _038_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _039_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _040_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _041_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _042_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _043_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _044_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _045_; + wire _046_; + wire _047_; + wire _048_; + wire _049_; + wire _050_; + wire _051_; + wire _052_; + wire _053_; + wire _054_; + wire _055_; + wire _056_; + wire _057_; + wire _058_; + wire _059_; + wire _060_; + wire _061_; + wire _062_; + wire _063_; + wire _064_; + wire _065_; + wire _066_; + wire _067_; + wire _068_; + wire _069_; + wire _070_; + wire _071_; + wire _072_; + wire _073_; + wire _074_; + wire _075_; + wire _076_; + wire _077_; + wire _078_; + wire _079_; + wire _080_; + wire _081_; + wire _082_; + wire _083_; + wire _084_; + wire _085_; + wire _086_; + wire _087_; + wire _088_; + wire _089_; + wire _090_; + wire _091_; + wire _092_; + wire _093_; + wire _094_; + wire _095_; + wire _096_; + wire _097_; + wire _098_; + wire _099_; + wire _100_; + wire _101_; + wire _102_; + wire _103_; + wire _104_; + wire _105_; + input [15:0] A; + wire [15:0] A; + input [15:0] B; + wire [15:0] B; + input BI; + wire BI; + input CI; + wire CI; + output \CO[15] ; + wire \CO[15] ; + output [15:0] Y; + wire [15:0] Y; + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _106_ ( + .A(A[0]), + .B(CI), + .CI(_062_), + .CON(_000_), + .SN(_001_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _107_ ( + .A(A[10]), + .B(_053_), + .CI(_084_), + .CON(_002_), + .SN(_003_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _108_ ( + .A(A[12]), + .B(_051_), + .CI(_092_), + .CON(_004_), + .SN(_005_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _109_ ( + .A(A[14]), + .B(_049_), + .CI(_099_), + .CON(_006_), + .SN(_007_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _110_ ( + .A(A[1]), + .B(_063_), + .CI(_046_), + .CON(_008_), + .SN(_009_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _111_ ( + .A(A[2]), + .B(_061_), + .CI(_047_), + .CON(_010_), + .SN(_011_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _112_ ( + .A(A[4]), + .B(_059_), + .CI(_066_), + .CON(_012_), + .SN(_013_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _113_ ( + .A(A[6]), + .B(_057_), + .CI(_072_), + .CON(_014_), + .SN(_015_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _114_ ( + .A(A[8]), + .B(_055_), + .CI(_078_), + .CON(_016_), + .SN(_017_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _115_ ( + .A(A[10]), + .B(_053_), + .CON(_018_), + .SN(_019_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _116_ ( + .A(A[11]), + .B(_052_), + .CON(_020_), + .SN(_021_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _117_ ( + .A(A[12]), + .B(_051_), + .CON(_022_), + .SN(_023_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _118_ ( + .A(A[13]), + .B(_050_), + .CON(_024_), + .SN(_025_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _119_ ( + .A(A[14]), + .B(_049_), + .CON(_026_), + .SN(_027_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _120_ ( + .A(A[15]), + .B(_048_), + .CON(_028_), + .SN(_029_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _121_ ( + .A(A[2]), + .B(_061_), + .CON(_030_), + .SN(_031_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _122_ ( + .A(A[3]), + .B(_060_), + .CON(_032_), + .SN(_033_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _123_ ( + .A(A[4]), + .B(_059_), + .CON(_034_), + .SN(_035_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _124_ ( + .A(A[5]), + .B(_058_), + .CON(_036_), + .SN(_037_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _125_ ( + .A(A[6]), + .B(_057_), + .CON(_038_), + .SN(_039_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _126_ ( + .A(A[7]), + .B(_056_), + .CON(_040_), + .SN(_041_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _127_ ( + .A(A[8]), + .B(_055_), + .CON(_042_), + .SN(_043_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _128_ ( + .A(A[9]), + .B(_054_), + .CON(_044_), + .SN(_045_) + ); + INVx1_ASAP7_75t_R _129_ ( + .A(_000_), + .Y(_046_) + ); + INVx1_ASAP7_75t_R _130_ ( + .A(_001_), + .Y(Y[0]) + ); + INVx1_ASAP7_75t_R _131_ ( + .A(_008_), + .Y(_047_) + ); + INVx1_ASAP7_75t_R _132_ ( + .A(_009_), + .Y(Y[1]) + ); + INVx1_ASAP7_75t_R _133_ ( + .A(_011_), + .Y(Y[2]) + ); + INVx1_ASAP7_75t_R _134_ ( + .A(_013_), + .Y(Y[4]) + ); + INVx1_ASAP7_75t_R _135_ ( + .A(_015_), + .Y(Y[6]) + ); + INVx1_ASAP7_75t_R _136_ ( + .A(_017_), + .Y(Y[8]) + ); + INVx1_ASAP7_75t_R _137_ ( + .A(_003_), + .Y(Y[10]) + ); + INVx1_ASAP7_75t_R _138_ ( + .A(_005_), + .Y(Y[12]) + ); + INVx1_ASAP7_75t_R _139_ ( + .A(_007_), + .Y(Y[14]) + ); + XOR2x2_ASAP7_75t_R _140_ ( + .A(B[15]), + .B(BI), + .Y(_048_) + ); + XOR2x2_ASAP7_75t_R _141_ ( + .A(B[14]), + .B(BI), + .Y(_049_) + ); + XOR2x2_ASAP7_75t_R _142_ ( + .A(B[13]), + .B(BI), + .Y(_050_) + ); + XOR2x2_ASAP7_75t_R _143_ ( + .A(B[12]), + .B(BI), + .Y(_051_) + ); + XOR2x2_ASAP7_75t_R _144_ ( + .A(B[11]), + .B(BI), + .Y(_052_) + ); + XOR2x2_ASAP7_75t_R _145_ ( + .A(B[10]), + .B(BI), + .Y(_053_) + ); + XOR2x2_ASAP7_75t_R _146_ ( + .A(B[9]), + .B(BI), + .Y(_054_) + ); + XOR2x2_ASAP7_75t_R _147_ ( + .A(B[8]), + .B(BI), + .Y(_055_) + ); + XOR2x2_ASAP7_75t_R _148_ ( + .A(B[7]), + .B(BI), + .Y(_056_) + ); + XOR2x2_ASAP7_75t_R _149_ ( + .A(B[6]), + .B(BI), + .Y(_057_) + ); + XOR2x2_ASAP7_75t_R _150_ ( + .A(B[5]), + .B(BI), + .Y(_058_) + ); + XOR2x2_ASAP7_75t_R _151_ ( + .A(B[4]), + .B(BI), + .Y(_059_) + ); + XOR2x2_ASAP7_75t_R _152_ ( + .A(B[3]), + .B(BI), + .Y(_060_) + ); + XOR2x2_ASAP7_75t_R _153_ ( + .A(B[2]), + .B(BI), + .Y(_061_) + ); + XOR2x2_ASAP7_75t_R _154_ ( + .A(B[0]), + .B(BI), + .Y(_062_) + ); + XOR2x2_ASAP7_75t_R _155_ ( + .A(B[1]), + .B(BI), + .Y(_063_) + ); + OR2x2_ASAP7_75t_R _156_ ( + .A(_033_), + .B(_031_), + .Y(_064_) + ); + OA21x2_ASAP7_75t_R _157_ ( + .A1(_033_), + .A2(_030_), + .B(_032_), + .Y(_065_) + ); + OAI21x1_ASAP7_75t_R _158_ ( + .A1(_008_), + .A2(_064_), + .B(_065_), + .Y(_066_) + ); + OA21x2_ASAP7_75t_R _159_ ( + .A1(_037_), + .A2(_034_), + .B(_036_), + .Y(_067_) + ); + OAI21x1_ASAP7_75t_R _160_ ( + .A1(_037_), + .A2(_034_), + .B(_036_), + .Y(_068_) + ); + OR2x2_ASAP7_75t_R _161_ ( + .A(_037_), + .B(_035_), + .Y(_069_) + ); + OA21x2_ASAP7_75t_R _162_ ( + .A1(_065_), + .A2(_069_), + .B(_067_), + .Y(_070_) + ); + OR2x2_ASAP7_75t_R _163_ ( + .A(_064_), + .B(_069_), + .Y(_071_) + ); + OAI21x1_ASAP7_75t_R _164_ ( + .A1(_008_), + .A2(_071_), + .B(_070_), + .Y(_072_) + ); + NOR2x1_ASAP7_75t_R _165_ ( + .A(_041_), + .B(_039_), + .Y(_073_) + ); + INVx1_ASAP7_75t_R _166_ ( + .A(_075_), + .Y(_074_) + ); + OR4x1_ASAP7_75t_R _167_ ( + .A(_041_), + .B(_039_), + .C(_037_), + .D(_035_), + .Y(_075_) + ); + OAI21x1_ASAP7_75t_R _168_ ( + .A1(_041_), + .A2(_038_), + .B(_040_), + .Y(_076_) + ); + AO21x1_ASAP7_75t_R _169_ ( + .A1(_068_), + .A2(_073_), + .B(_076_), + .Y(_077_) + ); + AO21x1_ASAP7_75t_R _170_ ( + .A1(_066_), + .A2(_074_), + .B(_077_), + .Y(_078_) + ); + OAI21x1_ASAP7_75t_R _171_ ( + .A1(_045_), + .A2(_042_), + .B(_044_), + .Y(_079_) + ); + NOR2x1_ASAP7_75t_R _172_ ( + .A(_045_), + .B(_043_), + .Y(_080_) + ); + AO21x1_ASAP7_75t_R _173_ ( + .A1(_076_), + .A2(_080_), + .B(_079_), + .Y(_081_) + ); + INVx1_ASAP7_75t_R _174_ ( + .A(_083_), + .Y(_082_) + ); + NAND2x1_ASAP7_75t_R _175_ ( + .A(_073_), + .B(_080_), + .Y(_083_) + ); + AO21x1_ASAP7_75t_R _176_ ( + .A1(_072_), + .A2(_082_), + .B(_081_), + .Y(_084_) + ); + OAI21x1_ASAP7_75t_R _177_ ( + .A1(_021_), + .A2(_018_), + .B(_020_), + .Y(_085_) + ); + NOR2x1_ASAP7_75t_R _178_ ( + .A(_021_), + .B(_019_), + .Y(_086_) + ); + AO21x1_ASAP7_75t_R _179_ ( + .A1(_079_), + .A2(_086_), + .B(_085_), + .Y(_087_) + ); + INVx1_ASAP7_75t_R _180_ ( + .A(_089_), + .Y(_088_) + ); + OR4x1_ASAP7_75t_R _181_ ( + .A(_021_), + .B(_019_), + .C(_045_), + .D(_043_), + .Y(_089_) + ); + INVx1_ASAP7_75t_R _182_ ( + .A(_091_), + .Y(_090_) + ); + OR2x2_ASAP7_75t_R _183_ ( + .A(_075_), + .B(_089_), + .Y(_091_) + ); + AO221x1_ASAP7_75t_R _184_ ( + .A1(_077_), + .A2(_088_), + .B1(_090_), + .B2(_066_), + .C(_087_), + .Y(_092_) + ); + NOR2x1_ASAP7_75t_R _185_ ( + .A(_025_), + .B(_023_), + .Y(_093_) + ); + INVx1_ASAP7_75t_R _186_ ( + .A(_095_), + .Y(_094_) + ); + OR4x1_ASAP7_75t_R _187_ ( + .A(_025_), + .B(_023_), + .C(_021_), + .D(_019_), + .Y(_095_) + ); + NOR2x1_ASAP7_75t_R _188_ ( + .A(_083_), + .B(_095_), + .Y(_096_) + ); + OAI21x1_ASAP7_75t_R _189_ ( + .A1(_025_), + .A2(_022_), + .B(_024_), + .Y(_097_) + ); + AO221x1_ASAP7_75t_R _190_ ( + .A1(_085_), + .A2(_093_), + .B1(_094_), + .B2(_081_), + .C(_097_), + .Y(_098_) + ); + AO21x1_ASAP7_75t_R _191_ ( + .A1(_072_), + .A2(_096_), + .B(_098_), + .Y(_099_) + ); + NOR2x1_ASAP7_75t_R _192_ ( + .A(_029_), + .B(_027_), + .Y(_100_) + ); + INVx1_ASAP7_75t_R _193_ ( + .A(_102_), + .Y(_101_) + ); + NAND2x1_ASAP7_75t_R _194_ ( + .A(_093_), + .B(_100_), + .Y(_102_) + ); + NOR2x1_ASAP7_75t_R _195_ ( + .A(_089_), + .B(_102_), + .Y(_103_) + ); + OAI21x1_ASAP7_75t_R _196_ ( + .A1(_029_), + .A2(_026_), + .B(_028_), + .Y(_104_) + ); + AO221x1_ASAP7_75t_R _197_ ( + .A1(_097_), + .A2(_100_), + .B1(_101_), + .B2(_087_), + .C(_104_), + .Y(_105_) + ); + AO21x1_ASAP7_75t_R _198_ ( + .A1(_078_), + .A2(_103_), + .B(_105_), + .Y(\CO[15] ) + ); + XOR2x2_ASAP7_75t_R _199_ ( + .A(_033_), + .B(_010_), + .Y(Y[3]) + ); + XOR2x2_ASAP7_75t_R _200_ ( + .A(_037_), + .B(_012_), + .Y(Y[5]) + ); + XOR2x2_ASAP7_75t_R _201_ ( + .A(_041_), + .B(_014_), + .Y(Y[7]) + ); + XOR2x2_ASAP7_75t_R _202_ ( + .A(_045_), + .B(_016_), + .Y(Y[9]) + ); + XOR2x2_ASAP7_75t_R _203_ ( + .A(_021_), + .B(_002_), + .Y(Y[11]) + ); + XOR2x2_ASAP7_75t_R _204_ ( + .A(_025_), + .B(_004_), + .Y(Y[13]) + ); + XOR2x2_ASAP7_75t_R _205_ ( + .A(_029_), + .B(_006_), + .Y(Y[15]) + ); +endmodule + +(* abc9_box_id = 32'b00000000000000000000000000000101 *) +(* abc9_box = 1 *) +(* abc9_script = "+&dch;&nf -R 5;" *) +(* arithmetic_operator = 1 *) +(* source_cell = "$alu" *) +(* implements_operator = "ALU_16_0_16_0_16_unused_CO[14:0]_X" *) +(* architecture = "KOGGE_STONE" *) +module \ALU_16_0_16_0_16_unused_CO[14:0]_X_KOGGE_STONE (A, B, BI, CI, Y, \CO[15] ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _000_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _001_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _002_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _003_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _004_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _005_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _006_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _007_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _008_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _009_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _010_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _011_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _012_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _013_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _014_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _015_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _016_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _017_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _018_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _019_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _020_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _021_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _022_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _023_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _024_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _025_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _026_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _027_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _028_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _029_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _030_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _031_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _032_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _033_; + wire _034_; + wire _035_; + wire _036_; + wire _037_; + wire _038_; + wire _039_; + wire _040_; + wire _041_; + wire _042_; + wire _043_; + wire _044_; + wire _045_; + wire _046_; + wire _047_; + wire _048_; + wire _049_; + wire _050_; + wire _051_; + wire _052_; + wire _053_; + wire _054_; + wire _055_; + wire _056_; + wire _057_; + wire _058_; + wire _059_; + wire _060_; + wire _061_; + wire _062_; + wire _063_; + wire _064_; + wire _065_; + wire _066_; + wire _067_; + wire _068_; + wire _069_; + wire _070_; + wire _071_; + wire _072_; + wire _073_; + wire _074_; + wire _075_; + wire _076_; + wire _077_; + wire _078_; + wire _079_; + wire _080_; + wire _081_; + wire _082_; + wire _083_; + wire _084_; + wire _085_; + wire _086_; + wire _087_; + wire _088_; + wire _089_; + wire _090_; + wire _091_; + wire _092_; + wire _093_; + wire _094_; + wire _095_; + wire _096_; + wire _097_; + wire _098_; + wire _099_; + wire _100_; + wire _101_; + wire _102_; + wire _103_; + wire _104_; + wire _105_; + wire _106_; + wire _107_; + wire _108_; + wire _109_; + wire _110_; + wire _111_; + wire _112_; + input [15:0] A; + wire [15:0] A; + input [15:0] B; + wire [15:0] B; + input BI; + wire BI; + input CI; + wire CI; + output \CO[15] ; + wire \CO[15] ; + output [15:0] Y; + wire [15:0] Y; + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _113_ ( + .A(A[0]), + .B(CI), + .CI(_049_), + .CON(_000_), + .SN(_001_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _114_ ( + .A(A[1]), + .B(_050_), + .CI(_034_), + .CON(_002_), + .SN(_003_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _115_ ( + .A(A[10]), + .B(_040_), + .CON(_004_), + .SN(_005_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _116_ ( + .A(A[11]), + .B(_039_), + .CON(_006_), + .SN(_007_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _117_ ( + .A(A[12]), + .B(_038_), + .CON(_008_), + .SN(_009_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _118_ ( + .A(A[13]), + .B(_037_), + .CON(_010_), + .SN(_011_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _119_ ( + .A(A[14]), + .B(_036_), + .CON(_012_), + .SN(_013_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _120_ ( + .A(A[15]), + .B(_035_), + .CON(_014_), + .SN(_015_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _121_ ( + .A(A[1]), + .B(_050_), + .CON(_016_), + .SN(_017_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _122_ ( + .A(A[2]), + .B(_048_), + .CON(_018_), + .SN(_019_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _123_ ( + .A(A[3]), + .B(_047_), + .CON(_020_), + .SN(_021_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _124_ ( + .A(A[4]), + .B(_046_), + .CON(_022_), + .SN(_023_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _125_ ( + .A(A[5]), + .B(_045_), + .CON(_024_), + .SN(_025_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _126_ ( + .A(A[6]), + .B(_044_), + .CON(_026_), + .SN(_027_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _127_ ( + .A(A[7]), + .B(_043_), + .CON(_028_), + .SN(_029_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _128_ ( + .A(A[8]), + .B(_042_), + .CON(_030_), + .SN(_031_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _129_ ( + .A(A[9]), + .B(_041_), + .CON(_032_), + .SN(_033_) + ); + INVx1_ASAP7_75t_R _130_ ( + .A(_000_), + .Y(_034_) + ); + INVx1_ASAP7_75t_R _131_ ( + .A(_001_), + .Y(Y[0]) + ); + INVx1_ASAP7_75t_R _132_ ( + .A(_003_), + .Y(Y[1]) + ); + XOR2x2_ASAP7_75t_R _133_ ( + .A(B[15]), + .B(BI), + .Y(_035_) + ); + XOR2x2_ASAP7_75t_R _134_ ( + .A(B[14]), + .B(BI), + .Y(_036_) + ); + XOR2x2_ASAP7_75t_R _135_ ( + .A(B[13]), + .B(BI), + .Y(_037_) + ); + XOR2x2_ASAP7_75t_R _136_ ( + .A(B[12]), + .B(BI), + .Y(_038_) + ); + XOR2x2_ASAP7_75t_R _137_ ( + .A(B[11]), + .B(BI), + .Y(_039_) + ); + XOR2x2_ASAP7_75t_R _138_ ( + .A(B[10]), + .B(BI), + .Y(_040_) + ); + XOR2x2_ASAP7_75t_R _139_ ( + .A(B[9]), + .B(BI), + .Y(_041_) + ); + XOR2x2_ASAP7_75t_R _140_ ( + .A(B[8]), + .B(BI), + .Y(_042_) + ); + XOR2x2_ASAP7_75t_R _141_ ( + .A(B[7]), + .B(BI), + .Y(_043_) + ); + XOR2x2_ASAP7_75t_R _142_ ( + .A(B[6]), + .B(BI), + .Y(_044_) + ); + XOR2x2_ASAP7_75t_R _143_ ( + .A(B[5]), + .B(BI), + .Y(_045_) + ); + XOR2x2_ASAP7_75t_R _144_ ( + .A(B[4]), + .B(BI), + .Y(_046_) + ); + XOR2x2_ASAP7_75t_R _145_ ( + .A(B[3]), + .B(BI), + .Y(_047_) + ); + XOR2x2_ASAP7_75t_R _146_ ( + .A(B[2]), + .B(BI), + .Y(_048_) + ); + XOR2x2_ASAP7_75t_R _147_ ( + .A(B[0]), + .B(BI), + .Y(_049_) + ); + XOR2x2_ASAP7_75t_R _148_ ( + .A(B[1]), + .B(BI), + .Y(_050_) + ); + OA21x2_ASAP7_75t_R _149_ ( + .A1(_011_), + .A2(_008_), + .B(_010_), + .Y(_051_) + ); + OA21x2_ASAP7_75t_R _150_ ( + .A1(_013_), + .A2(_051_), + .B(_012_), + .Y(_052_) + ); + OA21x2_ASAP7_75t_R _151_ ( + .A1(_015_), + .A2(_052_), + .B(_014_), + .Y(_053_) + ); + OR4x1_ASAP7_75t_R _152_ ( + .A(_015_), + .B(_013_), + .C(_011_), + .D(_009_), + .Y(_054_) + ); + OA21x2_ASAP7_75t_R _153_ ( + .A1(_007_), + .A2(_004_), + .B(_006_), + .Y(_055_) + ); + OA21x2_ASAP7_75t_R _154_ ( + .A1(_033_), + .A2(_030_), + .B(_032_), + .Y(_056_) + ); + OR3x1_ASAP7_75t_R _155_ ( + .A(_007_), + .B(_005_), + .C(_056_), + .Y(_057_) + ); + OA21x2_ASAP7_75t_R _156_ ( + .A1(_021_), + .A2(_018_), + .B(_020_), + .Y(_058_) + ); + OR2x2_ASAP7_75t_R _157_ ( + .A(_021_), + .B(_019_), + .Y(_059_) + ); + OA21x2_ASAP7_75t_R _158_ ( + .A1(_002_), + .A2(_059_), + .B(_058_), + .Y(_060_) + ); + OR2x2_ASAP7_75t_R _159_ ( + .A(_029_), + .B(_027_), + .Y(_061_) + ); + OR3x1_ASAP7_75t_R _160_ ( + .A(_025_), + .B(_023_), + .C(_061_), + .Y(_062_) + ); + OA21x2_ASAP7_75t_R _161_ ( + .A1(_029_), + .A2(_026_), + .B(_028_), + .Y(_063_) + ); + OA21x2_ASAP7_75t_R _162_ ( + .A1(_025_), + .A2(_022_), + .B(_024_), + .Y(_064_) + ); + OA21x2_ASAP7_75t_R _163_ ( + .A1(_061_), + .A2(_064_), + .B(_063_), + .Y(_065_) + ); + OA21x2_ASAP7_75t_R _164_ ( + .A1(_060_), + .A2(_062_), + .B(_065_), + .Y(_066_) + ); + OR2x2_ASAP7_75t_R _165_ ( + .A(_033_), + .B(_031_), + .Y(_067_) + ); + OR3x1_ASAP7_75t_R _166_ ( + .A(_007_), + .B(_005_), + .C(_067_), + .Y(_068_) + ); + OA211x2_ASAP7_75t_R _167_ ( + .A1(_065_), + .A2(_068_), + .B(_055_), + .C(_057_), + .Y(_069_) + ); + OR2x2_ASAP7_75t_R _168_ ( + .A(_062_), + .B(_068_), + .Y(_070_) + ); + OA21x2_ASAP7_75t_R _169_ ( + .A1(_060_), + .A2(_070_), + .B(_069_), + .Y(_071_) + ); + OAI21x1_ASAP7_75t_R _170_ ( + .A1(_054_), + .A2(_071_), + .B(_053_), + .Y(\CO[15] ) + ); + XOR2x2_ASAP7_75t_R _171_ ( + .A(_019_), + .B(_002_), + .Y(Y[2]) + ); + OR3x1_ASAP7_75t_R _172_ ( + .A(_019_), + .B(_000_), + .C(_017_), + .Y(_072_) + ); + OA211x2_ASAP7_75t_R _173_ ( + .A1(_019_), + .A2(_016_), + .B(_072_), + .C(_018_), + .Y(_073_) + ); + XOR2x2_ASAP7_75t_R _174_ ( + .A(_021_), + .B(_073_), + .Y(Y[3]) + ); + XOR2x2_ASAP7_75t_R _175_ ( + .A(_023_), + .B(_060_), + .Y(Y[4]) + ); + OA21x2_ASAP7_75t_R _176_ ( + .A1(_023_), + .A2(_020_), + .B(_022_), + .Y(_074_) + ); + OR2x2_ASAP7_75t_R _177_ ( + .A(_023_), + .B(_021_), + .Y(_075_) + ); + OA21x2_ASAP7_75t_R _178_ ( + .A1(_073_), + .A2(_075_), + .B(_074_), + .Y(_076_) + ); + XOR2x2_ASAP7_75t_R _179_ ( + .A(_025_), + .B(_076_), + .Y(Y[5]) + ); + OR3x1_ASAP7_75t_R _180_ ( + .A(_025_), + .B(_023_), + .C(_058_), + .Y(_077_) + ); + OR3x1_ASAP7_75t_R _181_ ( + .A(_025_), + .B(_023_), + .C(_059_), + .Y(_078_) + ); + OA211x2_ASAP7_75t_R _182_ ( + .A1(_002_), + .A2(_078_), + .B(_077_), + .C(_064_), + .Y(_079_) + ); + XOR2x2_ASAP7_75t_R _183_ ( + .A(_027_), + .B(_079_), + .Y(Y[6]) + ); + OR3x1_ASAP7_75t_R _184_ ( + .A(_027_), + .B(_025_), + .C(_075_), + .Y(_080_) + ); + OA21x2_ASAP7_75t_R _185_ ( + .A1(_027_), + .A2(_024_), + .B(_026_), + .Y(_081_) + ); + OR3x1_ASAP7_75t_R _186_ ( + .A(_027_), + .B(_025_), + .C(_074_), + .Y(_082_) + ); + OA211x2_ASAP7_75t_R _187_ ( + .A1(_073_), + .A2(_080_), + .B(_081_), + .C(_082_), + .Y(_083_) + ); + XOR2x2_ASAP7_75t_R _188_ ( + .A(_029_), + .B(_083_), + .Y(Y[7]) + ); + XOR2x2_ASAP7_75t_R _189_ ( + .A(_031_), + .B(_066_), + .Y(Y[8]) + ); + OA21x2_ASAP7_75t_R _190_ ( + .A1(_031_), + .A2(_028_), + .B(_030_), + .Y(_084_) + ); + OR2x2_ASAP7_75t_R _191_ ( + .A(_031_), + .B(_029_), + .Y(_085_) + ); + OA21x2_ASAP7_75t_R _192_ ( + .A1(_081_), + .A2(_085_), + .B(_084_), + .Y(_086_) + ); + OR3x1_ASAP7_75t_R _193_ ( + .A(_027_), + .B(_025_), + .C(_085_), + .Y(_087_) + ); + OA21x2_ASAP7_75t_R _194_ ( + .A1(_076_), + .A2(_087_), + .B(_086_), + .Y(_088_) + ); + XOR2x2_ASAP7_75t_R _195_ ( + .A(_033_), + .B(_088_), + .Y(Y[9]) + ); + OA21x2_ASAP7_75t_R _196_ ( + .A1(_063_), + .A2(_067_), + .B(_056_), + .Y(_089_) + ); + OR2x2_ASAP7_75t_R _197_ ( + .A(_061_), + .B(_067_), + .Y(_090_) + ); + OA21x2_ASAP7_75t_R _198_ ( + .A1(_079_), + .A2(_090_), + .B(_089_), + .Y(_091_) + ); + XOR2x2_ASAP7_75t_R _199_ ( + .A(_005_), + .B(_091_), + .Y(Y[10]) + ); + OA21x2_ASAP7_75t_R _200_ ( + .A1(_005_), + .A2(_032_), + .B(_004_), + .Y(_092_) + ); + OR2x2_ASAP7_75t_R _201_ ( + .A(_005_), + .B(_033_), + .Y(_093_) + ); + OA21x2_ASAP7_75t_R _202_ ( + .A1(_084_), + .A2(_093_), + .B(_092_), + .Y(_094_) + ); + OR2x2_ASAP7_75t_R _203_ ( + .A(_085_), + .B(_093_), + .Y(_095_) + ); + OA21x2_ASAP7_75t_R _204_ ( + .A1(_083_), + .A2(_095_), + .B(_094_), + .Y(_096_) + ); + XOR2x2_ASAP7_75t_R _205_ ( + .A(_007_), + .B(_096_), + .Y(Y[11]) + ); + XOR2x2_ASAP7_75t_R _206_ ( + .A(_009_), + .B(_071_), + .Y(Y[12]) + ); + OR3x1_ASAP7_75t_R _207_ ( + .A(_009_), + .B(_007_), + .C(_093_), + .Y(_097_) + ); + OR2x2_ASAP7_75t_R _208_ ( + .A(_087_), + .B(_097_), + .Y(_098_) + ); + OA21x2_ASAP7_75t_R _209_ ( + .A1(_009_), + .A2(_006_), + .B(_008_), + .Y(_099_) + ); + OR3x1_ASAP7_75t_R _210_ ( + .A(_009_), + .B(_007_), + .C(_092_), + .Y(_100_) + ); + OA211x2_ASAP7_75t_R _211_ ( + .A1(_086_), + .A2(_097_), + .B(_099_), + .C(_100_), + .Y(_101_) + ); + OA21x2_ASAP7_75t_R _212_ ( + .A1(_076_), + .A2(_098_), + .B(_101_), + .Y(_102_) + ); + XOR2x2_ASAP7_75t_R _213_ ( + .A(_011_), + .B(_102_), + .Y(Y[13]) + ); + OR4x1_ASAP7_75t_R _214_ ( + .A(_011_), + .B(_009_), + .C(_007_), + .D(_005_), + .Y(_103_) + ); + OR3x1_ASAP7_75t_R _215_ ( + .A(_061_), + .B(_067_), + .C(_103_), + .Y(_104_) + ); + OR3x1_ASAP7_75t_R _216_ ( + .A(_011_), + .B(_009_), + .C(_055_), + .Y(_105_) + ); + OA211x2_ASAP7_75t_R _217_ ( + .A1(_089_), + .A2(_103_), + .B(_105_), + .C(_051_), + .Y(_106_) + ); + OA21x2_ASAP7_75t_R _218_ ( + .A1(_079_), + .A2(_104_), + .B(_106_), + .Y(_107_) + ); + XOR2x2_ASAP7_75t_R _219_ ( + .A(_013_), + .B(_107_), + .Y(Y[14]) + ); + OR5x1_ASAP7_75t_R _220_ ( + .A(_013_), + .B(_011_), + .C(_009_), + .D(_007_), + .E(_095_), + .Y(_108_) + ); + OR5x1_ASAP7_75t_R _221_ ( + .A(_013_), + .B(_011_), + .C(_009_), + .D(_007_), + .E(_094_), + .Y(_109_) + ); + OR3x1_ASAP7_75t_R _222_ ( + .A(_013_), + .B(_011_), + .C(_099_), + .Y(_110_) + ); + OA211x2_ASAP7_75t_R _223_ ( + .A1(_013_), + .A2(_010_), + .B(_110_), + .C(_012_), + .Y(_111_) + ); + OA211x2_ASAP7_75t_R _224_ ( + .A1(_083_), + .A2(_108_), + .B(_109_), + .C(_111_), + .Y(_112_) + ); + XOR2x2_ASAP7_75t_R _225_ ( + .A(_015_), + .B(_112_), + .Y(Y[15]) + ); +endmodule + +(* abc9_box_id = 32'b00000000000000000000000000000110 *) +(* abc9_box = 1 *) +(* abc9_script = "+&dch;&nf -R 5;" *) +(* arithmetic_operator = 1 *) +(* source_cell = "$alu" *) +(* implements_operator = "ALU_16_0_16_0_16_unused_CO[14:0]_X" *) +(* architecture = "SKLANSKY" *) +module \ALU_16_0_16_0_16_unused_CO[14:0]_X_SKLANSKY (A, B, BI, CI, Y, \CO[15] ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _000_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _001_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _002_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _003_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _004_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _005_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _006_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _007_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _008_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _009_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _010_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _011_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _012_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _013_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _014_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _015_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _016_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _017_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _018_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _019_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _020_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _021_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _022_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _023_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _024_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _025_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _026_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _027_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _028_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _029_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _030_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _031_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _032_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _033_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _034_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _035_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _036_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _037_; + wire _038_; + wire _039_; + wire _040_; + wire _041_; + wire _042_; + wire _043_; + wire _044_; + wire _045_; + wire _046_; + wire _047_; + wire _048_; + wire _049_; + wire _050_; + wire _051_; + wire _052_; + wire _053_; + wire _054_; + wire _055_; + wire _056_; + wire _057_; + wire _058_; + wire _059_; + wire _060_; + wire _061_; + wire _062_; + wire _063_; + wire _064_; + wire _065_; + wire _066_; + wire _067_; + wire _068_; + wire _069_; + wire _070_; + wire _071_; + wire _072_; + wire _073_; + wire _074_; + wire _075_; + wire _076_; + wire _077_; + wire _078_; + wire _079_; + wire _080_; + wire _081_; + wire _082_; + wire _083_; + wire _084_; + wire _085_; + wire _086_; + wire _087_; + wire _088_; + wire _089_; + wire _090_; + wire _091_; + wire _092_; + input [15:0] A; + wire [15:0] A; + input [15:0] B; + wire [15:0] B; + input BI; + wire BI; + input CI; + wire CI; + output \CO[15] ; + wire \CO[15] ; + output [15:0] Y; + wire [15:0] Y; + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _093_ ( + .A(A[0]), + .B(CI), + .CI(_054_), + .CON(_000_), + .SN(_001_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _094_ ( + .A(A[1]), + .B(_055_), + .CI(_038_), + .CON(_002_), + .SN(_003_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _095_ ( + .A(A[2]), + .B(_053_), + .CI(_039_), + .CON(_004_), + .SN(_005_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _096_ ( + .A(A[4]), + .B(_051_), + .CI(_059_), + .CON(_006_), + .SN(_007_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _097_ ( + .A(A[8]), + .B(_047_), + .CI(_065_), + .CON(_008_), + .SN(_009_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _098_ ( + .A(A[10]), + .B(_045_), + .CON(_010_), + .SN(_011_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _099_ ( + .A(A[11]), + .B(_044_), + .CON(_012_), + .SN(_013_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _100_ ( + .A(A[12]), + .B(_043_), + .CON(_014_), + .SN(_015_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _101_ ( + .A(A[13]), + .B(_042_), + .CON(_016_), + .SN(_017_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _102_ ( + .A(A[14]), + .B(_041_), + .CON(_018_), + .SN(_019_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _103_ ( + .A(A[15]), + .B(_040_), + .CON(_020_), + .SN(_021_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _104_ ( + .A(A[2]), + .B(_053_), + .CON(_022_), + .SN(_023_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _105_ ( + .A(A[3]), + .B(_052_), + .CON(_024_), + .SN(_025_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _106_ ( + .A(A[4]), + .B(_051_), + .CON(_026_), + .SN(_027_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _107_ ( + .A(A[5]), + .B(_050_), + .CON(_028_), + .SN(_029_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _108_ ( + .A(A[6]), + .B(_049_), + .CON(_030_), + .SN(_031_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _109_ ( + .A(A[7]), + .B(_048_), + .CON(_032_), + .SN(_033_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _110_ ( + .A(A[8]), + .B(_047_), + .CON(_034_), + .SN(_035_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _111_ ( + .A(A[9]), + .B(_046_), + .CON(_036_), + .SN(_037_) + ); + INVx1_ASAP7_75t_R _112_ ( + .A(_000_), + .Y(_038_) + ); + INVx1_ASAP7_75t_R _113_ ( + .A(_001_), + .Y(Y[0]) + ); + INVx1_ASAP7_75t_R _114_ ( + .A(_002_), + .Y(_039_) + ); + INVx1_ASAP7_75t_R _115_ ( + .A(_003_), + .Y(Y[1]) + ); + INVx1_ASAP7_75t_R _116_ ( + .A(_005_), + .Y(Y[2]) + ); + INVx1_ASAP7_75t_R _117_ ( + .A(_007_), + .Y(Y[4]) + ); + INVx1_ASAP7_75t_R _118_ ( + .A(_009_), + .Y(Y[8]) + ); + XOR2x2_ASAP7_75t_R _119_ ( + .A(B[15]), + .B(BI), + .Y(_040_) + ); + XOR2x2_ASAP7_75t_R _120_ ( + .A(B[14]), + .B(BI), + .Y(_041_) + ); + XOR2x2_ASAP7_75t_R _121_ ( + .A(B[13]), + .B(BI), + .Y(_042_) + ); + XOR2x2_ASAP7_75t_R _122_ ( + .A(B[12]), + .B(BI), + .Y(_043_) + ); + XOR2x2_ASAP7_75t_R _123_ ( + .A(B[11]), + .B(BI), + .Y(_044_) + ); + XOR2x2_ASAP7_75t_R _124_ ( + .A(B[10]), + .B(BI), + .Y(_045_) + ); + XOR2x2_ASAP7_75t_R _125_ ( + .A(B[9]), + .B(BI), + .Y(_046_) + ); + XOR2x2_ASAP7_75t_R _126_ ( + .A(B[8]), + .B(BI), + .Y(_047_) + ); + XOR2x2_ASAP7_75t_R _127_ ( + .A(B[7]), + .B(BI), + .Y(_048_) + ); + XOR2x2_ASAP7_75t_R _128_ ( + .A(B[6]), + .B(BI), + .Y(_049_) + ); + XOR2x2_ASAP7_75t_R _129_ ( + .A(B[5]), + .B(BI), + .Y(_050_) + ); + XOR2x2_ASAP7_75t_R _130_ ( + .A(B[4]), + .B(BI), + .Y(_051_) + ); + XOR2x2_ASAP7_75t_R _131_ ( + .A(B[3]), + .B(BI), + .Y(_052_) + ); + XOR2x2_ASAP7_75t_R _132_ ( + .A(B[2]), + .B(BI), + .Y(_053_) + ); + XOR2x2_ASAP7_75t_R _133_ ( + .A(B[0]), + .B(BI), + .Y(_054_) + ); + XOR2x2_ASAP7_75t_R _134_ ( + .A(B[1]), + .B(BI), + .Y(_055_) + ); + OR2x2_ASAP7_75t_R _135_ ( + .A(_025_), + .B(_023_), + .Y(_056_) + ); + OA21x2_ASAP7_75t_R _136_ ( + .A1(_025_), + .A2(_022_), + .B(_024_), + .Y(_057_) + ); + OA21x2_ASAP7_75t_R _137_ ( + .A1(_002_), + .A2(_056_), + .B(_057_), + .Y(_058_) + ); + INVx1_ASAP7_75t_R _138_ ( + .A(_058_), + .Y(_059_) + ); + OR4x1_ASAP7_75t_R _139_ ( + .A(_033_), + .B(_031_), + .C(_029_), + .D(_027_), + .Y(_060_) + ); + OA21x2_ASAP7_75t_R _140_ ( + .A1(_029_), + .A2(_026_), + .B(_028_), + .Y(_061_) + ); + OR3x1_ASAP7_75t_R _141_ ( + .A(_033_), + .B(_031_), + .C(_061_), + .Y(_062_) + ); + OA211x2_ASAP7_75t_R _142_ ( + .A1(_033_), + .A2(_030_), + .B(_062_), + .C(_032_), + .Y(_063_) + ); + OA21x2_ASAP7_75t_R _143_ ( + .A1(_058_), + .A2(_060_), + .B(_063_), + .Y(_064_) + ); + INVx1_ASAP7_75t_R _144_ ( + .A(_064_), + .Y(_065_) + ); + OA21x2_ASAP7_75t_R _145_ ( + .A1(_017_), + .A2(_014_), + .B(_016_), + .Y(_066_) + ); + OA21x2_ASAP7_75t_R _146_ ( + .A1(_019_), + .A2(_066_), + .B(_018_), + .Y(_067_) + ); + OA21x2_ASAP7_75t_R _147_ ( + .A1(_021_), + .A2(_067_), + .B(_020_), + .Y(_068_) + ); + OR4x1_ASAP7_75t_R _148_ ( + .A(_021_), + .B(_019_), + .C(_017_), + .D(_015_), + .Y(_069_) + ); + OA21x2_ASAP7_75t_R _149_ ( + .A1(_037_), + .A2(_034_), + .B(_036_), + .Y(_070_) + ); + OR3x1_ASAP7_75t_R _150_ ( + .A(_013_), + .B(_011_), + .C(_070_), + .Y(_071_) + ); + OA211x2_ASAP7_75t_R _151_ ( + .A1(_013_), + .A2(_010_), + .B(_071_), + .C(_012_), + .Y(_072_) + ); + OR2x2_ASAP7_75t_R _152_ ( + .A(_037_), + .B(_035_), + .Y(_073_) + ); + OR3x1_ASAP7_75t_R _153_ ( + .A(_011_), + .B(_037_), + .C(_035_), + .Y(_074_) + ); + OR2x2_ASAP7_75t_R _154_ ( + .A(_013_), + .B(_074_), + .Y(_075_) + ); + OA21x2_ASAP7_75t_R _155_ ( + .A1(_064_), + .A2(_075_), + .B(_072_), + .Y(_076_) + ); + OAI21x1_ASAP7_75t_R _156_ ( + .A1(_069_), + .A2(_076_), + .B(_068_), + .Y(\CO[15] ) + ); + XOR2x2_ASAP7_75t_R _157_ ( + .A(_025_), + .B(_004_), + .Y(Y[3]) + ); + XOR2x2_ASAP7_75t_R _158_ ( + .A(_029_), + .B(_006_), + .Y(Y[5]) + ); + OR3x1_ASAP7_75t_R _159_ ( + .A(_029_), + .B(_027_), + .C(_058_), + .Y(_077_) + ); + NAND2x1_ASAP7_75t_R _160_ ( + .A(_061_), + .B(_077_), + .Y(_078_) + ); + XNOR2x2_ASAP7_75t_R _161_ ( + .A(_031_), + .B(_078_), + .Y(Y[6]) + ); + OR4x1_ASAP7_75t_R _162_ ( + .A(_031_), + .B(_029_), + .C(_027_), + .D(_058_), + .Y(_079_) + ); + OA211x2_ASAP7_75t_R _163_ ( + .A1(_031_), + .A2(_061_), + .B(_079_), + .C(_030_), + .Y(_080_) + ); + XOR2x2_ASAP7_75t_R _164_ ( + .A(_033_), + .B(_080_), + .Y(Y[7]) + ); + XOR2x2_ASAP7_75t_R _165_ ( + .A(_037_), + .B(_008_), + .Y(Y[9]) + ); + OA21x2_ASAP7_75t_R _166_ ( + .A1(_064_), + .A2(_073_), + .B(_070_), + .Y(_081_) + ); + XOR2x2_ASAP7_75t_R _167_ ( + .A(_011_), + .B(_081_), + .Y(Y[10]) + ); + OA21x2_ASAP7_75t_R _168_ ( + .A1(_011_), + .A2(_070_), + .B(_010_), + .Y(_082_) + ); + OA21x2_ASAP7_75t_R _169_ ( + .A1(_064_), + .A2(_074_), + .B(_082_), + .Y(_083_) + ); + XOR2x2_ASAP7_75t_R _170_ ( + .A(_013_), + .B(_083_), + .Y(Y[11]) + ); + XOR2x2_ASAP7_75t_R _171_ ( + .A(_015_), + .B(_076_), + .Y(Y[12]) + ); + OR3x1_ASAP7_75t_R _172_ ( + .A(_015_), + .B(_013_), + .C(_074_), + .Y(_084_) + ); + OA21x2_ASAP7_75t_R _173_ ( + .A1(_015_), + .A2(_072_), + .B(_014_), + .Y(_085_) + ); + OA21x2_ASAP7_75t_R _174_ ( + .A1(_064_), + .A2(_084_), + .B(_085_), + .Y(_086_) + ); + XOR2x2_ASAP7_75t_R _175_ ( + .A(_017_), + .B(_086_), + .Y(Y[13]) + ); + OR3x1_ASAP7_75t_R _176_ ( + .A(_017_), + .B(_015_), + .C(_075_), + .Y(_087_) + ); + OR3x1_ASAP7_75t_R _177_ ( + .A(_017_), + .B(_015_), + .C(_072_), + .Y(_088_) + ); + OA211x2_ASAP7_75t_R _178_ ( + .A1(_064_), + .A2(_087_), + .B(_088_), + .C(_066_), + .Y(_089_) + ); + XOR2x2_ASAP7_75t_R _179_ ( + .A(_019_), + .B(_089_), + .Y(Y[14]) + ); + OR4x1_ASAP7_75t_R _180_ ( + .A(_019_), + .B(_017_), + .C(_015_), + .D(_075_), + .Y(_090_) + ); + OR4x1_ASAP7_75t_R _181_ ( + .A(_019_), + .B(_017_), + .C(_015_), + .D(_072_), + .Y(_091_) + ); + OA211x2_ASAP7_75t_R _182_ ( + .A1(_064_), + .A2(_090_), + .B(_091_), + .C(_067_), + .Y(_092_) + ); + XOR2x2_ASAP7_75t_R _183_ ( + .A(_021_), + .B(_092_), + .Y(Y[15]) + ); +endmodule + +(* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:11.1-102.10" *) +(* top = 1 *) +(* hdlname = "gcd" *) +module gcd(clk, req_msg, req_rdy, req_val, reset, resp_msg, resp_rdy, resp_val); + wire _000_; + wire _001_; + wire _002_; + wire _003_; + wire _004_; + wire _005_; + wire _006_; + wire _007_; + wire _008_; + wire _009_; + wire _010_; + wire _011_; + wire _012_; + wire _013_; + wire _014_; + wire _015_; + wire _016_; + wire _017_; + wire _018_; + wire _019_; + wire _020_; + wire _021_; + wire _022_; + wire _023_; + wire _024_; + wire _025_; + wire _026_; + wire _027_; + wire _028_; + wire _029_; + wire _030_; + wire _031_; + wire _032_; + wire _033_; + wire _034_; + wire _035_; + wire _036_; + wire _037_; + wire _038_; + wire _039_; + wire _040_; + wire _041_; + wire _042_; + wire _043_; + wire _044_; + wire _045_; + wire _046_; + wire _047_; + wire _048_; + wire _049_; + wire _050_; + wire _051_; + wire _052_; + wire _053_; + wire _054_; + wire _055_; + wire _056_; + wire _057_; + wire _058_; + wire _059_; + wire _060_; + wire _061_; + wire _062_; + wire _063_; + wire _064_; + wire _065_; + wire _066_; + wire _067_; + wire _068_; + wire _069_; + wire _070_; + wire _071_; + wire _072_; + wire _073_; + wire _074_; + wire _075_; + wire _076_; + wire _077_; + wire _078_; + wire _079_; + wire _080_; + wire _081_; + wire _082_; + wire _083_; + wire _084_; + wire _085_; + wire _086_; + wire _087_; + wire _088_; + wire _089_; + wire _090_; + wire _091_; + wire _092_; + wire _093_; + wire _094_; + wire _095_; + wire _096_; + wire _097_; + wire _098_; + wire _099_; + wire _100_; + wire _101_; + wire _102_; + wire _103_; + wire _104_; + wire _105_; + wire _106_; + wire _107_; + wire _108_; + wire _109_; + wire _110_; + wire _111_; + wire _112_; + wire _113_; + wire _114_; + wire _115_; + wire _116_; + wire _117_; + wire _118_; + wire _119_; + wire _120_; + wire _121_; + wire _122_; + wire _123_; + wire _124_; + wire _125_; + wire _126_; + wire _127_; + wire _128_; + wire _129_; + wire _130_; + wire _131_; + wire _132_; + wire _133_; + wire _134_; + wire _135_; + wire _136_; + wire _137_; + wire _138_; + wire _139_; + wire _140_; + wire _141_; + wire _142_; + wire _143_; + wire _144_; + wire _145_; + wire _146_; + wire _147_; + wire _148_; + wire _149_; + wire _150_; + wire _151_; + wire _152_; + wire _153_; + wire _154_; + wire _155_; + wire _156_; + wire _157_; + wire _158_; + wire _159_; + wire _160_; + wire _161_; + wire _162_; + wire _163_; + wire _164_; + wire _165_; + wire _166_; + wire _167_; + wire _168_; + wire _169_; + wire _170_; + wire _171_; + wire _172_; + wire _173_; + wire _174_; + wire _175_; + wire _176_; + wire _177_; + wire _178_; + wire _179_; + wire _180_; + wire _181_; + wire _182_; + wire _183_; + wire _184_; + wire _185_; + wire _186_; + wire _187_; + wire _188_; + wire _189_; + wire _190_; + wire _191_; + wire _192_; + wire _193_; + wire _194_; + wire _195_; + wire _196_; + wire _197_; + wire _198_; + wire _199_; + wire _200_; + wire _201_; + wire _202_; + wire _203_; + wire _204_; + wire _205_; + wire _206_; + wire _207_; + wire _208_; + wire _209_; + wire _210_; + wire _211_; + wire _212_; + wire _213_; + wire _214_; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:13.15-13.18" *) + input clk; + wire clk; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:14.24-14.31" *) + input [31:0] req_msg; + wire [31:0] req_msg; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:15.15-15.22" *) + output req_rdy; + wire req_rdy; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:16.15-16.22" *) + input req_val; + wire req_val; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:17.15-17.20" *) + input reset; + wire reset; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:18.24-18.32" *) + output [15:0] resp_msg; + wire [15:0] resp_msg; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:19.15-19.23" *) + input resp_rdy; + wire resp_rdy; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:20.15-20.23" *) + output resp_val; + wire resp_val; + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:752.12-752.19" *) + \ALU_16_0_16_0_16_unused_CO[14:0]_X_HAN_CARLSON _215_ ( + .A({ _055_, _056_, _057_, _058_, _059_, _060_, _046_, _047_, _048_, _049_, _050_, _051_, _052_, _053_, _054_, _061_ }), + .B({ _206_, _211_, _213_, _214_, _037_, _042_, _172_, _175_, _179_, _183_, _186_, _191_, _194_, _198_, _202_, _044_ }), + .BI(_034_), + .CI(_034_), + .\CO[15] (_036_), + .Y(resp_msg) + ); + TIEHIx1_ASAP7_75t_R _216_ ( + .H(_034_) + ); + INVx1_ASAP7_75t_R _217_ ( + .A(_013_), + .Y(_037_) + ); + AOI211x1_ASAP7_75t_R _218_ ( + .A1(_032_), + .A2(_210_), + .B(_212_), + .C(reset), + .Y(_038_) + ); + AND3x1_ASAP7_75t_R _219_ ( + .A(_165_), + .B(_062_), + .C(_036_), + .Y(_039_) + ); + NAND2x1_ASAP7_75t_R _220_ ( + .A(resp_rdy), + .B(_035_), + .Y(_040_) + ); + OA211x2_ASAP7_75t_R _221_ ( + .A1(_062_), + .A2(_040_), + .B(_063_), + .C(_165_), + .Y(_041_) + ); + INVx1_ASAP7_75t_R _222_ ( + .A(_014_), + .Y(_042_) + ); + AO21x1_ASAP7_75t_R _223_ ( + .A1(_209_), + .A2(_039_), + .B(_041_), + .Y(_043_) + ); + INVx1_ASAP7_75t_R _224_ ( + .A(_015_), + .Y(_044_) + ); + AND3x1_ASAP7_75t_R _225_ ( + .A(_032_), + .B(_063_), + .C(_035_), + .Y(resp_val) + ); + AO221x1_ASAP7_75t_R _226_ ( + .A1(_160_), + .A2(req_rdy), + .B1(resp_val), + .B2(resp_rdy), + .C(reset), + .Y(_045_) + ); + INVx1_ASAP7_75t_R _227_ ( + .A(_016_), + .Y(_046_) + ); + INVx1_ASAP7_75t_R _228_ ( + .A(_017_), + .Y(_047_) + ); + INVx1_ASAP7_75t_R _229_ ( + .A(_018_), + .Y(_048_) + ); + INVx1_ASAP7_75t_R _230_ ( + .A(_019_), + .Y(_049_) + ); + INVx1_ASAP7_75t_R _231_ ( + .A(_020_), + .Y(_050_) + ); + INVx1_ASAP7_75t_R _232_ ( + .A(_021_), + .Y(_051_) + ); + INVx1_ASAP7_75t_R _233_ ( + .A(_022_), + .Y(_052_) + ); + INVx1_ASAP7_75t_R _234_ ( + .A(_023_), + .Y(_053_) + ); + INVx1_ASAP7_75t_R _235_ ( + .A(_024_), + .Y(_054_) + ); + INVx1_ASAP7_75t_R _236_ ( + .A(_025_), + .Y(_055_) + ); + INVx1_ASAP7_75t_R _237_ ( + .A(_026_), + .Y(_056_) + ); + INVx1_ASAP7_75t_R _238_ ( + .A(_027_), + .Y(_057_) + ); + INVx1_ASAP7_75t_R _239_ ( + .A(_028_), + .Y(_058_) + ); + INVx1_ASAP7_75t_R _240_ ( + .A(_029_), + .Y(_059_) + ); + INVx1_ASAP7_75t_R _241_ ( + .A(_030_), + .Y(_060_) + ); + INVx1_ASAP7_75t_R _242_ ( + .A(_031_), + .Y(_061_) + ); + INVx1_ASAP7_75t_R _243_ ( + .A(_032_), + .Y(_062_) + ); + INVx1_ASAP7_75t_R _244_ ( + .A(_033_), + .Y(_063_) + ); + INVx1_ASAP7_75t_R _245_ ( + .A(_035_), + .Y(req_rdy) + ); + OR2x2_ASAP7_75t_R _246_ ( + .A(_032_), + .B(_036_), + .Y(_064_) + ); + OAI21x1_ASAP7_75t_R _247_ ( + .A1(_032_), + .A2(_036_), + .B(_000_), + .Y(_065_) + ); + OA211x2_ASAP7_75t_R _248_ ( + .A1(_046_), + .A2(_064_), + .B(_065_), + .C(_035_), + .Y(_066_) + ); + AO21x1_ASAP7_75t_R _249_ ( + .A1(req_msg[9]), + .A2(req_rdy), + .B(_066_), + .Y(_067_) + ); + OAI21x1_ASAP7_75t_R _250_ ( + .A1(_032_), + .A2(_036_), + .B(_001_), + .Y(_068_) + ); + OA211x2_ASAP7_75t_R _251_ ( + .A1(_047_), + .A2(_064_), + .B(_068_), + .C(_035_), + .Y(_069_) + ); + AO21x1_ASAP7_75t_R _252_ ( + .A1(req_msg[8]), + .A2(req_rdy), + .B(_069_), + .Y(_070_) + ); + OAI21x1_ASAP7_75t_R _253_ ( + .A1(_032_), + .A2(_036_), + .B(_002_), + .Y(_071_) + ); + OA211x2_ASAP7_75t_R _254_ ( + .A1(_048_), + .A2(_064_), + .B(_071_), + .C(_035_), + .Y(_072_) + ); + AO21x1_ASAP7_75t_R _255_ ( + .A1(req_msg[7]), + .A2(req_rdy), + .B(_072_), + .Y(_073_) + ); + OAI21x1_ASAP7_75t_R _256_ ( + .A1(_032_), + .A2(_036_), + .B(_003_), + .Y(_074_) + ); + OA211x2_ASAP7_75t_R _257_ ( + .A1(_049_), + .A2(_064_), + .B(_074_), + .C(_035_), + .Y(_075_) + ); + AO21x1_ASAP7_75t_R _258_ ( + .A1(req_msg[6]), + .A2(req_rdy), + .B(_075_), + .Y(_076_) + ); + OAI21x1_ASAP7_75t_R _259_ ( + .A1(_032_), + .A2(_036_), + .B(_004_), + .Y(_077_) + ); + OA211x2_ASAP7_75t_R _260_ ( + .A1(_050_), + .A2(_064_), + .B(_077_), + .C(_035_), + .Y(_078_) + ); + AO21x1_ASAP7_75t_R _261_ ( + .A1(req_msg[5]), + .A2(req_rdy), + .B(_078_), + .Y(_079_) + ); + OAI21x1_ASAP7_75t_R _262_ ( + .A1(_032_), + .A2(_036_), + .B(_005_), + .Y(_080_) + ); + OA211x2_ASAP7_75t_R _263_ ( + .A1(_051_), + .A2(_064_), + .B(_080_), + .C(_035_), + .Y(_081_) + ); + AO21x1_ASAP7_75t_R _264_ ( + .A1(req_msg[4]), + .A2(req_rdy), + .B(_081_), + .Y(_082_) + ); + OAI21x1_ASAP7_75t_R _265_ ( + .A1(_032_), + .A2(_036_), + .B(_006_), + .Y(_083_) + ); + OA211x2_ASAP7_75t_R _266_ ( + .A1(_052_), + .A2(_064_), + .B(_083_), + .C(_035_), + .Y(_084_) + ); + AO21x1_ASAP7_75t_R _267_ ( + .A1(req_msg[3]), + .A2(req_rdy), + .B(_084_), + .Y(_085_) + ); + OAI21x1_ASAP7_75t_R _268_ ( + .A1(_032_), + .A2(_036_), + .B(_007_), + .Y(_086_) + ); + OA211x2_ASAP7_75t_R _269_ ( + .A1(_053_), + .A2(_064_), + .B(_086_), + .C(_035_), + .Y(_087_) + ); + AO21x1_ASAP7_75t_R _270_ ( + .A1(req_msg[2]), + .A2(req_rdy), + .B(_087_), + .Y(_088_) + ); + OAI21x1_ASAP7_75t_R _271_ ( + .A1(_032_), + .A2(_036_), + .B(_008_), + .Y(_089_) + ); + OA211x2_ASAP7_75t_R _272_ ( + .A1(_054_), + .A2(_064_), + .B(_089_), + .C(_035_), + .Y(_090_) + ); + AO21x1_ASAP7_75t_R _273_ ( + .A1(req_msg[1]), + .A2(req_rdy), + .B(_090_), + .Y(_091_) + ); + OAI21x1_ASAP7_75t_R _274_ ( + .A1(_032_), + .A2(_036_), + .B(_009_), + .Y(_092_) + ); + OA211x2_ASAP7_75t_R _275_ ( + .A1(_055_), + .A2(_064_), + .B(_092_), + .C(_035_), + .Y(_093_) + ); + AO21x1_ASAP7_75t_R _276_ ( + .A1(req_msg[15]), + .A2(req_rdy), + .B(_093_), + .Y(_094_) + ); + OAI21x1_ASAP7_75t_R _277_ ( + .A1(_032_), + .A2(_036_), + .B(_010_), + .Y(_095_) + ); + INVx1_ASAP7_75t_R _278_ ( + .A(req_msg[16]), + .Y(_096_) + ); + OA211x2_ASAP7_75t_R _279_ ( + .A1(_056_), + .A2(_064_), + .B(_095_), + .C(_035_), + .Y(_097_) + ); + AO21x1_ASAP7_75t_R _280_ ( + .A1(req_msg[14]), + .A2(req_rdy), + .B(_097_), + .Y(_098_) + ); + OAI21x1_ASAP7_75t_R _281_ ( + .A1(_032_), + .A2(_036_), + .B(_011_), + .Y(_099_) + ); + INVx1_ASAP7_75t_R _282_ ( + .A(req_msg[17]), + .Y(_100_) + ); + OA211x2_ASAP7_75t_R _283_ ( + .A1(_057_), + .A2(_064_), + .B(_099_), + .C(_035_), + .Y(_101_) + ); + AO21x1_ASAP7_75t_R _284_ ( + .A1(req_msg[13]), + .A2(req_rdy), + .B(_101_), + .Y(_102_) + ); + OAI21x1_ASAP7_75t_R _285_ ( + .A1(_032_), + .A2(_036_), + .B(_012_), + .Y(_103_) + ); + INVx1_ASAP7_75t_R _286_ ( + .A(req_msg[18]), + .Y(_104_) + ); + OA211x2_ASAP7_75t_R _287_ ( + .A1(_058_), + .A2(_064_), + .B(_103_), + .C(_035_), + .Y(_105_) + ); + AO21x1_ASAP7_75t_R _288_ ( + .A1(req_msg[12]), + .A2(req_rdy), + .B(_105_), + .Y(_106_) + ); + OAI21x1_ASAP7_75t_R _289_ ( + .A1(_032_), + .A2(_036_), + .B(_013_), + .Y(_107_) + ); + OA211x2_ASAP7_75t_R _290_ ( + .A1(_059_), + .A2(_064_), + .B(_107_), + .C(_035_), + .Y(_108_) + ); + INVx1_ASAP7_75t_R _291_ ( + .A(req_msg[19]), + .Y(_109_) + ); + AO21x1_ASAP7_75t_R _292_ ( + .A1(req_msg[11]), + .A2(req_rdy), + .B(_108_), + .Y(_110_) + ); + OAI21x1_ASAP7_75t_R _293_ ( + .A1(_032_), + .A2(_036_), + .B(_014_), + .Y(_111_) + ); + OA211x2_ASAP7_75t_R _294_ ( + .A1(_060_), + .A2(_064_), + .B(_111_), + .C(_035_), + .Y(_112_) + ); + AO21x1_ASAP7_75t_R _295_ ( + .A1(req_msg[10]), + .A2(req_rdy), + .B(_112_), + .Y(_113_) + ); + INVx1_ASAP7_75t_R _296_ ( + .A(req_msg[20]), + .Y(_114_) + ); + OAI21x1_ASAP7_75t_R _297_ ( + .A1(_032_), + .A2(_036_), + .B(_015_), + .Y(_115_) + ); + OA211x2_ASAP7_75t_R _298_ ( + .A1(_061_), + .A2(_064_), + .B(_115_), + .C(_035_), + .Y(_116_) + ); + AO21x1_ASAP7_75t_R _299_ ( + .A1(req_msg[0]), + .A2(req_rdy), + .B(_116_), + .Y(_117_) + ); + NOR2x1_ASAP7_75t_R _300_ ( + .A(_000_), + .B(_036_), + .Y(_118_) + ); + INVx1_ASAP7_75t_R _301_ ( + .A(req_msg[21]), + .Y(_119_) + ); + AOI211x1_ASAP7_75t_R _302_ ( + .A1(resp_msg[9]), + .A2(_036_), + .B(_118_), + .C(_032_), + .Y(_120_) + ); + AO21x1_ASAP7_75t_R _303_ ( + .A1(_016_), + .A2(_032_), + .B(req_rdy), + .Y(_121_) + ); + INVx1_ASAP7_75t_R _304_ ( + .A(req_msg[22]), + .Y(_122_) + ); + OAI22x1_ASAP7_75t_R _305_ ( + .A1(_133_), + .A2(_035_), + .B1(_120_), + .B2(_121_), + .Y(_123_) + ); + NOR2x1_ASAP7_75t_R _306_ ( + .A(_001_), + .B(_036_), + .Y(_124_) + ); + AOI211x1_ASAP7_75t_R _307_ ( + .A1(resp_msg[8]), + .A2(_036_), + .B(_124_), + .C(_032_), + .Y(_125_) + ); + INVx1_ASAP7_75t_R _308_ ( + .A(req_msg[23]), + .Y(_126_) + ); + AO21x1_ASAP7_75t_R _309_ ( + .A1(_017_), + .A2(_032_), + .B(req_rdy), + .Y(_127_) + ); + OAI22x1_ASAP7_75t_R _310_ ( + .A1(_130_), + .A2(_035_), + .B1(_125_), + .B2(_127_), + .Y(_128_) + ); + NAND2x1_ASAP7_75t_R _311_ ( + .A(resp_msg[7]), + .B(_036_), + .Y(_129_) + ); + INVx1_ASAP7_75t_R _312_ ( + .A(req_msg[24]), + .Y(_130_) + ); + OA211x2_ASAP7_75t_R _313_ ( + .A1(_002_), + .A2(_036_), + .B(_129_), + .C(_062_), + .Y(_131_) + ); + AO21x1_ASAP7_75t_R _314_ ( + .A1(_018_), + .A2(_032_), + .B(req_rdy), + .Y(_132_) + ); + INVx1_ASAP7_75t_R _315_ ( + .A(req_msg[25]), + .Y(_133_) + ); + OAI22x1_ASAP7_75t_R _316_ ( + .A1(_126_), + .A2(_035_), + .B1(_131_), + .B2(_132_), + .Y(_134_) + ); + NAND2x1_ASAP7_75t_R _317_ ( + .A(resp_msg[6]), + .B(_036_), + .Y(_135_) + ); + OA211x2_ASAP7_75t_R _318_ ( + .A1(_003_), + .A2(_036_), + .B(_135_), + .C(_062_), + .Y(_136_) + ); + AO21x1_ASAP7_75t_R _319_ ( + .A1(_019_), + .A2(_032_), + .B(req_rdy), + .Y(_137_) + ); + INVx1_ASAP7_75t_R _320_ ( + .A(req_msg[26]), + .Y(_138_) + ); + OAI22x1_ASAP7_75t_R _321_ ( + .A1(_122_), + .A2(_035_), + .B1(_136_), + .B2(_137_), + .Y(_139_) + ); + NAND2x1_ASAP7_75t_R _322_ ( + .A(resp_msg[5]), + .B(_036_), + .Y(_140_) + ); + INVx1_ASAP7_75t_R _323_ ( + .A(req_msg[27]), + .Y(_141_) + ); + OA211x2_ASAP7_75t_R _324_ ( + .A1(_004_), + .A2(_036_), + .B(_140_), + .C(_062_), + .Y(_142_) + ); + AO21x1_ASAP7_75t_R _325_ ( + .A1(_020_), + .A2(_032_), + .B(req_rdy), + .Y(_143_) + ); + OAI22x1_ASAP7_75t_R _326_ ( + .A1(_119_), + .A2(_035_), + .B1(_142_), + .B2(_143_), + .Y(_144_) + ); + INVx1_ASAP7_75t_R _327_ ( + .A(req_msg[28]), + .Y(_145_) + ); + NAND2x1_ASAP7_75t_R _328_ ( + .A(resp_msg[4]), + .B(_036_), + .Y(_146_) + ); + OA211x2_ASAP7_75t_R _329_ ( + .A1(_005_), + .A2(_036_), + .B(_146_), + .C(_062_), + .Y(_147_) + ); + AO21x1_ASAP7_75t_R _330_ ( + .A1(_021_), + .A2(_032_), + .B(req_rdy), + .Y(_148_) + ); + INVx1_ASAP7_75t_R _331_ ( + .A(req_msg[29]), + .Y(_149_) + ); + OAI22x1_ASAP7_75t_R _332_ ( + .A1(_114_), + .A2(_035_), + .B1(_147_), + .B2(_148_), + .Y(_150_) + ); + NAND2x1_ASAP7_75t_R _333_ ( + .A(resp_msg[3]), + .B(_036_), + .Y(_151_) + ); + OA211x2_ASAP7_75t_R _334_ ( + .A1(_006_), + .A2(_036_), + .B(_151_), + .C(_062_), + .Y(_152_) + ); + INVx1_ASAP7_75t_R _335_ ( + .A(req_msg[30]), + .Y(_153_) + ); + AO21x1_ASAP7_75t_R _336_ ( + .A1(_022_), + .A2(_032_), + .B(req_rdy), + .Y(_154_) + ); + OAI22x1_ASAP7_75t_R _337_ ( + .A1(_109_), + .A2(_035_), + .B1(_152_), + .B2(_154_), + .Y(_155_) + ); + NAND2x1_ASAP7_75t_R _338_ ( + .A(resp_msg[2]), + .B(_036_), + .Y(_156_) + ); + INVx1_ASAP7_75t_R _339_ ( + .A(req_msg[31]), + .Y(_157_) + ); + OA211x2_ASAP7_75t_R _340_ ( + .A1(_007_), + .A2(_036_), + .B(_156_), + .C(_062_), + .Y(_158_) + ); + AO21x1_ASAP7_75t_R _341_ ( + .A1(_023_), + .A2(_032_), + .B(req_rdy), + .Y(_159_) + ); + INVx1_ASAP7_75t_R _342_ ( + .A(req_val), + .Y(_160_) + ); + OAI22x1_ASAP7_75t_R _343_ ( + .A1(_104_), + .A2(_035_), + .B1(_158_), + .B2(_159_), + .Y(_161_) + ); + NAND2x1_ASAP7_75t_R _344_ ( + .A(resp_msg[1]), + .B(_036_), + .Y(_162_) + ); + OA211x2_ASAP7_75t_R _345_ ( + .A1(_008_), + .A2(_036_), + .B(_162_), + .C(_062_), + .Y(_163_) + ); + AO21x1_ASAP7_75t_R _346_ ( + .A1(_024_), + .A2(_032_), + .B(req_rdy), + .Y(_164_) + ); + INVx1_ASAP7_75t_R _347_ ( + .A(reset), + .Y(_165_) + ); + OAI22x1_ASAP7_75t_R _348_ ( + .A1(_100_), + .A2(_035_), + .B1(_163_), + .B2(_164_), + .Y(_166_) + ); + NOR2x1_ASAP7_75t_R _349_ ( + .A(_009_), + .B(_036_), + .Y(_167_) + ); + AOI211x1_ASAP7_75t_R _350_ ( + .A1(resp_msg[15]), + .A2(_036_), + .B(_167_), + .C(_032_), + .Y(_168_) + ); + AO21x1_ASAP7_75t_R _351_ ( + .A1(_025_), + .A2(_032_), + .B(req_rdy), + .Y(_169_) + ); + OAI22x1_ASAP7_75t_R _352_ ( + .A1(_157_), + .A2(_035_), + .B1(_168_), + .B2(_169_), + .Y(_170_) + ); + NOR2x1_ASAP7_75t_R _353_ ( + .A(_010_), + .B(_036_), + .Y(_171_) + ); + INVx1_ASAP7_75t_R _354_ ( + .A(_000_), + .Y(_172_) + ); + AOI211x1_ASAP7_75t_R _355_ ( + .A1(resp_msg[14]), + .A2(_036_), + .B(_171_), + .C(_032_), + .Y(_173_) + ); + AO21x1_ASAP7_75t_R _356_ ( + .A1(_026_), + .A2(_032_), + .B(req_rdy), + .Y(_174_) + ); + INVx1_ASAP7_75t_R _357_ ( + .A(_001_), + .Y(_175_) + ); + OAI22x1_ASAP7_75t_R _358_ ( + .A1(_153_), + .A2(_035_), + .B1(_173_), + .B2(_174_), + .Y(_176_) + ); + NOR2x1_ASAP7_75t_R _359_ ( + .A(_011_), + .B(_036_), + .Y(_177_) + ); + AOI211x1_ASAP7_75t_R _360_ ( + .A1(resp_msg[13]), + .A2(_036_), + .B(_177_), + .C(_032_), + .Y(_178_) + ); + INVx1_ASAP7_75t_R _361_ ( + .A(_002_), + .Y(_179_) + ); + AO21x1_ASAP7_75t_R _362_ ( + .A1(_027_), + .A2(_032_), + .B(req_rdy), + .Y(_180_) + ); + OAI22x1_ASAP7_75t_R _363_ ( + .A1(_149_), + .A2(_035_), + .B1(_178_), + .B2(_180_), + .Y(_181_) + ); + NOR2x1_ASAP7_75t_R _364_ ( + .A(_012_), + .B(_036_), + .Y(_182_) + ); + INVx1_ASAP7_75t_R _365_ ( + .A(_003_), + .Y(_183_) + ); + AOI211x1_ASAP7_75t_R _366_ ( + .A1(resp_msg[12]), + .A2(_036_), + .B(_182_), + .C(_032_), + .Y(_184_) + ); + AO21x1_ASAP7_75t_R _367_ ( + .A1(_028_), + .A2(_032_), + .B(req_rdy), + .Y(_185_) + ); + INVx1_ASAP7_75t_R _368_ ( + .A(_004_), + .Y(_186_) + ); + OAI22x1_ASAP7_75t_R _369_ ( + .A1(_145_), + .A2(_035_), + .B1(_184_), + .B2(_185_), + .Y(_187_) + ); + NOR2x1_ASAP7_75t_R _370_ ( + .A(_013_), + .B(_036_), + .Y(_188_) + ); + AOI211x1_ASAP7_75t_R _371_ ( + .A1(resp_msg[11]), + .A2(_036_), + .B(_188_), + .C(_032_), + .Y(_189_) + ); + AO21x1_ASAP7_75t_R _372_ ( + .A1(_029_), + .A2(_032_), + .B(req_rdy), + .Y(_190_) + ); + INVx1_ASAP7_75t_R _373_ ( + .A(_005_), + .Y(_191_) + ); + OAI22x1_ASAP7_75t_R _374_ ( + .A1(_141_), + .A2(_035_), + .B1(_189_), + .B2(_190_), + .Y(_192_) + ); + NOR2x1_ASAP7_75t_R _375_ ( + .A(_014_), + .B(_036_), + .Y(_193_) + ); + INVx1_ASAP7_75t_R _376_ ( + .A(_006_), + .Y(_194_) + ); + AOI211x1_ASAP7_75t_R _377_ ( + .A1(resp_msg[10]), + .A2(_036_), + .B(_193_), + .C(_032_), + .Y(_195_) + ); + AO21x1_ASAP7_75t_R _378_ ( + .A1(_030_), + .A2(_032_), + .B(req_rdy), + .Y(_196_) + ); + OAI22x1_ASAP7_75t_R _379_ ( + .A1(_138_), + .A2(_035_), + .B1(_195_), + .B2(_196_), + .Y(_197_) + ); + INVx1_ASAP7_75t_R _380_ ( + .A(_007_), + .Y(_198_) + ); + NAND2x1_ASAP7_75t_R _381_ ( + .A(resp_msg[0]), + .B(_036_), + .Y(_199_) + ); + OA211x2_ASAP7_75t_R _382_ ( + .A1(_015_), + .A2(_036_), + .B(_199_), + .C(_062_), + .Y(_200_) + ); + AO21x1_ASAP7_75t_R _383_ ( + .A1(_031_), + .A2(_032_), + .B(req_rdy), + .Y(_201_) + ); + INVx1_ASAP7_75t_R _384_ ( + .A(_008_), + .Y(_202_) + ); + OAI22x1_ASAP7_75t_R _385_ ( + .A1(_096_), + .A2(_035_), + .B1(_200_), + .B2(_201_), + .Y(_203_) + ); + AND4x1_ASAP7_75t_R _386_ ( + .A(_012_), + .B(_013_), + .C(_014_), + .D(_015_), + .Y(_204_) + ); + AND5x1_ASAP7_75t_R _387_ ( + .A(_000_), + .B(_009_), + .C(_010_), + .D(_011_), + .E(_204_), + .Y(_205_) + ); + INVx1_ASAP7_75t_R _388_ ( + .A(_009_), + .Y(_206_) + ); + AND4x1_ASAP7_75t_R _389_ ( + .A(_001_), + .B(_002_), + .C(_003_), + .D(_008_), + .Y(_207_) + ); + AND4x1_ASAP7_75t_R _390_ ( + .A(_004_), + .B(_005_), + .C(_006_), + .D(_007_), + .Y(_208_) + ); + AND3x1_ASAP7_75t_R _391_ ( + .A(_205_), + .B(_207_), + .C(_208_), + .Y(_209_) + ); + NAND2x1_ASAP7_75t_R _392_ ( + .A(req_val), + .B(req_rdy), + .Y(_210_) + ); + INVx1_ASAP7_75t_R _393_ ( + .A(_010_), + .Y(_211_) + ); + AND3x1_ASAP7_75t_R _394_ ( + .A(_036_), + .B(_209_), + .C(_210_), + .Y(_212_) + ); + INVx1_ASAP7_75t_R _395_ ( + .A(_011_), + .Y(_213_) + ); + INVx1_ASAP7_75t_R _396_ ( + .A(_012_), + .Y(_214_) + ); + DFFHQNx1_ASAP7_75t_R \ctrl.state.out[0]$_DFF_P_ ( + .CLK(clk), + .D(_045_), + .QN(_035_) + ); + DFFHQNx1_ASAP7_75t_R \ctrl.state.out[1]$_DFF_P_ ( + .CLK(clk), + .D(_043_), + .QN(_033_) + ); + DFFHQNx1_ASAP7_75t_R \ctrl.state.out[2]$_DFF_P_ ( + .CLK(clk), + .D(_038_), + .QN(_032_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[0]$_DFFE_PP_ ( + .CLK(clk), + .D(_203_), + .QN(_031_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[10]$_DFFE_PP_ ( + .CLK(clk), + .D(_197_), + .QN(_030_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[11]$_DFFE_PP_ ( + .CLK(clk), + .D(_192_), + .QN(_029_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[12]$_DFFE_PP_ ( + .CLK(clk), + .D(_187_), + .QN(_028_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[13]$_DFFE_PP_ ( + .CLK(clk), + .D(_181_), + .QN(_027_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[14]$_DFFE_PP_ ( + .CLK(clk), + .D(_176_), + .QN(_026_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[15]$_DFFE_PP_ ( + .CLK(clk), + .D(_170_), + .QN(_025_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[1]$_DFFE_PP_ ( + .CLK(clk), + .D(_166_), + .QN(_024_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[2]$_DFFE_PP_ ( + .CLK(clk), + .D(_161_), + .QN(_023_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[3]$_DFFE_PP_ ( + .CLK(clk), + .D(_155_), + .QN(_022_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[4]$_DFFE_PP_ ( + .CLK(clk), + .D(_150_), + .QN(_021_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[5]$_DFFE_PP_ ( + .CLK(clk), + .D(_144_), + .QN(_020_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[6]$_DFFE_PP_ ( + .CLK(clk), + .D(_139_), + .QN(_019_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[7]$_DFFE_PP_ ( + .CLK(clk), + .D(_134_), + .QN(_018_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[8]$_DFFE_PP_ ( + .CLK(clk), + .D(_128_), + .QN(_017_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[9]$_DFFE_PP_ ( + .CLK(clk), + .D(_123_), + .QN(_016_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[0]$_DFFE_PP_ ( + .CLK(clk), + .D(_117_), + .QN(_015_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[10]$_DFFE_PP_ ( + .CLK(clk), + .D(_113_), + .QN(_014_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[11]$_DFFE_PP_ ( + .CLK(clk), + .D(_110_), + .QN(_013_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[12]$_DFFE_PP_ ( + .CLK(clk), + .D(_106_), + .QN(_012_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[13]$_DFFE_PP_ ( + .CLK(clk), + .D(_102_), + .QN(_011_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[14]$_DFFE_PP_ ( + .CLK(clk), + .D(_098_), + .QN(_010_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[15]$_DFFE_PP_ ( + .CLK(clk), + .D(_094_), + .QN(_009_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[1]$_DFFE_PP_ ( + .CLK(clk), + .D(_091_), + .QN(_008_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[2]$_DFFE_PP_ ( + .CLK(clk), + .D(_088_), + .QN(_007_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[3]$_DFFE_PP_ ( + .CLK(clk), + .D(_085_), + .QN(_006_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[4]$_DFFE_PP_ ( + .CLK(clk), + .D(_082_), + .QN(_005_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[5]$_DFFE_PP_ ( + .CLK(clk), + .D(_079_), + .QN(_004_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[6]$_DFFE_PP_ ( + .CLK(clk), + .D(_076_), + .QN(_003_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[7]$_DFFE_PP_ ( + .CLK(clk), + .D(_073_), + .QN(_002_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[8]$_DFFE_PP_ ( + .CLK(clk), + .D(_070_), + .QN(_001_) + ); + (* src = "/home/cmoon/ORFS/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) + DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[9]$_DFFE_PP_ ( + .CLK(clk), + .D(_067_), + .QN(_000_) + ); +endmodule diff --git a/src/dbSta/test/levelize_drvr_vertices1.ok b/src/dbSta/test/levelize_drvr_vertices1.ok new file mode 100644 index 00000000000..f5d74fd0d9b --- /dev/null +++ b/src/dbSta/test/levelize_drvr_vertices1.ok @@ -0,0 +1,122 @@ +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 13178, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 13211, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 13244, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 13277, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 13310, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 13343, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 13376, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 14772, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 14805, timing group from output port. +[WARNING STA-1212] asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz line 14838, timing group from output port. +[INFO ODB-0227] LEF file: asap7/asap7_tech_1x_201209.lef, created 30 layers, 9 vias +[INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_R_1x_220121a.lef, created 212 library cells +[WARNING ORD-0011] Hierarchical flow (-hier) is currently in development and may cause multiple issues. Do not use in production environments. +driver vertex count 375 +clk level=0 +req_msg[0] level=0 +req_msg[10] level=0 +req_msg[11] level=0 +req_msg[12] level=0 +req_msg[13] level=0 +req_msg[14] level=0 +req_msg[15] level=0 +req_msg[16] level=0 +req_msg[17] level=0 +req_msg[18] level=0 +req_msg[19] level=0 +req_msg[1] level=0 +req_msg[20] level=0 +req_msg[21] level=0 +req_msg[22] level=0 +req_msg[23] level=0 +req_msg[24] level=0 +req_msg[25] level=0 +req_msg[26] level=0 +req_msg[27] level=0 +req_msg[28] level=0 +req_msg[29] level=0 +req_msg[2] level=0 +req_msg[30] level=0 +req_msg[31] level=0 +req_msg[3] level=0 +req_msg[4] level=0 +req_msg[5] level=0 +req_msg[6] level=0 +req_msg[7] level=0 +req_msg[8] level=0 +req_msg[9] level=0 +req_val level=0 +reset level=0 +resp_rdy level=0 +_216_/H level=0 +_278_/Y level=20 +_282_/Y level=20 +_286_/Y level=20 +_291_/Y level=20 +_296_/Y level=20 +_301_/Y level=20 +_304_/Y level=20 +_308_/Y level=20 +_312_/Y level=20 +_315_/Y level=20 +_320_/Y level=20 +_323_/Y level=20 +_327_/Y level=20 +_331_/Y level=20 +_335_/Y level=20 +_339_/Y level=20 +_342_/Y level=20 +_347_/Y level=20 +ctrl.state.out\[0\]$_DFF_P_/QN level=20 +ctrl.state.out\[1\]$_DFF_P_/QN level=20 +ctrl.state.out\[2\]$_DFF_P_/QN level=20 +dpath.a_reg.out\[0\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[10\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[11\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[12\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[13\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[14\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[15\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[1\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[2\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[3\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[4\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[5\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[6\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[7\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[8\]$_DFFE_PP_/QN level=20 +dpath.a_reg.out\[9\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[0\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[10\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[11\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[12\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[13\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[14\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[15\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[1\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[2\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[3\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[4\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[5\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[6\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[7\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[8\]$_DFFE_PP_/QN level=20 +dpath.b_reg.out\[9\]$_DFFE_PP_/QN level=20 +_217_/Y level=40 +_220_/Y level=40 +_222_/Y level=40 +_224_/Y level=40 +_227_/Y level=40 +_228_/Y level=40 +_229_/Y level=40 +_230_/Y level=40 +_231_/Y level=40 +_232_/Y level=40 +deleting instance _220_ +post-delete: +driver vertex count 374 +clk level=0 +req_msg[0] level=0 +req_msg[10] level=0 +req_msg[11] level=0 +req_msg[12] level=0 diff --git a/src/dbSta/test/levelize_drvr_vertices1.tcl b/src/dbSta/test/levelize_drvr_vertices1.tcl new file mode 100644 index 00000000000..3acbaa17aa7 --- /dev/null +++ b/src/dbSta/test/levelize_drvr_vertices1.tcl @@ -0,0 +1,30 @@ +# Test for Levelize::levelizedDrvrVertices() API. +# Verifies: +# 1. Returns driver vertices in non-decreasing level order +# 2. All returned vertices are drivers +source helpers.tcl +read_liberty asap7/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz +read_liberty asap7/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz +read_liberty asap7/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz +read_liberty asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz +read_liberty asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib +read_lef asap7/asap7_tech_1x_201209.lef +read_lef asap7/asap7sc7p5t_28_R_1x_220121a.lef +read_verilog gcd_asap7.v +link_design -hier gcd +create_clock -name clk -period 500 {clk} + +# Initial report (first 100 drivers in level order). +sta::report_levelized_drvr_vertices 100 + +# Mutation probe: delete a leaf instance via ODB. dbSta's cache holds a +# Vertex* for that instance. Without invalidation the next query returns +# a dangling pointer (crash, or stale pathName). With invalidation the +# rebuild drops the deleted instance's driver pin and lowers the count. +set block [[[ord::get_db] getChip] getBlock] +set victim [$block findInst _220_] +puts "deleting instance [$victim getName]" +odb::dbInst_destroy $victim + +puts "post-delete:" +sta::report_levelized_drvr_vertices 5 diff --git a/src/sta b/src/sta index d503c0ede53..7bbd2475bdc 160000 --- a/src/sta +++ b/src/sta @@ -1 +1 @@ -Subproject commit d503c0ede5336c899dc09ff6ca9000a11bacbc3c +Subproject commit 7bbd2475bdc6979207728f12e2d5a4444a85bfa0