diff --git a/graph/Graph.i b/graph/Graph.i index 371e929c..e0cf76d7 100644 --- a/graph/Graph.i +++ b/graph/Graph.i @@ -28,6 +28,7 @@ #include "Graph.hh" #include "FuncExpr.hh" #include "TimingRole.hh" +#include "search/Levelize.hh" #include "Liberty.hh" #include "Network.hh" #include "Clock.hh" @@ -118,6 +119,32 @@ remove_delay_slew_annotations() Sta::sta()->removeDelaySlewAnnotations(); } +void +report_levelized_drvr_vertices(int max_count) +{ + Sta *sta = Sta::sta(); + sta->ensureGraph(); + const VertexSeq &drvrs = sta->levelizedDrvrVertices(); + Report *report = sta->report(); + const Network *network = sta->network(); + report->report("driver vertex count {}", drvrs.size()); + Level prev_level = -1; + int n = 0; + for (Vertex *vertex : drvrs) { + 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++; + } +} + %} // inline //////////////////////////////////////////////////////////////// diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index 7c1f88ad..8154bb8f 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -1325,6 +1325,7 @@ public: // Ensure that the timing graph has been built. Graph *ensureGraph(); void ensureClkArrivals(); + const VertexSeq& levelizedDrvrVertices(); // Find all arc delays and vertex slews with delay calculator. virtual void findDelays(); diff --git a/search/Levelize.cc b/search/Levelize.cc index 7d588d5f..e794ac7a 100644 --- a/search/Levelize.cc +++ b/search/Levelize.cc @@ -53,7 +53,8 @@ Levelize::Levelize(StaState *sta) : level_space_(10), roots_(makeVertexSet(sta)), relevelize_from_(makeVertexSet(sta)), - observer_(nullptr) + observer_(nullptr), + drvr_vertices_level_valid_(false) { } @@ -90,6 +91,8 @@ Levelize::clear() loops_.clear(); loop_edges_.clear(); max_level_ = 0; + drvr_vertices_level_valid_ = false; + levelized_drvr_vertices_.clear(); } void @@ -546,6 +549,7 @@ Levelize::setLevel(Vertex *vertex, void Levelize::invalid() { + drvr_vertices_level_valid_ = false; if (levelized_) { debugPrint(debug_, "levelize", 1, "levels invalid"); levelized_ = false; @@ -559,6 +563,8 @@ Levelize::deleteVertexBefore(Vertex *vertex) if (levelized_) { roots_.erase(vertex); relevelize_from_.erase(vertex); + drvr_vertices_level_valid_ = false; + levelized_drvr_vertices_.clear(); } } @@ -570,6 +576,7 @@ Levelize::relevelizeFrom(Vertex *vertex) vertex->to_string(this)); relevelize_from_.insert(vertex); levels_valid_ = false; + drvr_vertices_level_valid_ = false; } } @@ -584,6 +591,7 @@ Levelize::deleteEdgeBefore(Edge *edge) // fails because the DFS path will be missing. levelized_ = false; levels_valid_ = false; + drvr_vertices_level_valid_ = false; } } @@ -710,6 +718,36 @@ Levelize::checkLevels() } } +void +Levelize::levelizeDrvrVertices() +{ + levelized_drvr_vertices_.clear(); + // Rough estimate: ~half of vertices are drivers + levelized_drvr_vertices_.reserve(graph_->vertexCount() / 2); + VertexIterator vertex_iter(graph_); + while (vertex_iter.hasNext()) { + Vertex *vertex = vertex_iter.next(); + if (vertex->isDriver(network_)) + levelized_drvr_vertices_.emplace_back(vertex); + } + sort(levelized_drvr_vertices_, + [this](const Vertex *a, const Vertex *b) { + if (a->level() != b->level()) + return a->level() < b->level(); + return VertexNameLess(network_)(a, b); + }); + drvr_vertices_level_valid_ = true; +} + +const VertexSeq & +Levelize::levelizedDrvrVertices() +{ + ensureLevelized(); + if (!drvr_vertices_level_valid_) + levelizeDrvrVertices(); + return levelized_drvr_vertices_; +} + //////////////////////////////////////////////////////////////// GraphLoop::GraphLoop(EdgeSeq *edges) : diff --git a/search/Levelize.hh b/search/Levelize.hh index 3a30d869..80396cf3 100644 --- a/search/Levelize.hh +++ b/search/Levelize.hh @@ -74,7 +74,8 @@ public: void checkLevels(); // Public for regression testing. void levelize(); - + const VertexSeq &levelizedDrvrVertices(); + protected: void findRoots(); VertexSeq sortedRootsWithFanout(); @@ -104,6 +105,7 @@ protected: void clearLoopEdges(); void deleteLoops(); void reportPath(EdgeSeq &path) const; + void levelizeDrvrVertices(); bool levelized_; bool levels_valid_; @@ -116,6 +118,8 @@ protected: EdgeSet disabled_loop_edges_; EdgeSet latch_d_to_q_edges_; LevelizeObserver *observer_; + VertexSeq levelized_drvr_vertices_; + bool drvr_vertices_level_valid_; }; // Loops broken by levelization may not necessarily be combinational. diff --git a/search/Sta.cc b/search/Sta.cc index ccc62e3e..9dbc309e 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -2900,6 +2900,12 @@ Sta::ensureClkArrivals() search_->findClkArrivals(); } +const VertexSeq& +Sta::levelizedDrvrVertices() +{ + return levelize_->levelizedDrvrVertices(); +} + //////////////////////////////////////////////////////////////// VertexSet & diff --git a/test/gcd_asap7.v b/test/gcd_asap7.v new file mode 100644 index 00000000..570f25fc --- /dev/null +++ b/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/test/levelize_drvr_vertices1.ok b/test/levelize_drvr_vertices1.ok new file mode 100644 index 00000000..aa414728 --- /dev/null +++ b/test/levelize_drvr_vertices1.ok @@ -0,0 +1,127 @@ +OpenSTA 3.1.0 211aea7497 Copyright (c) 2026, Parallax Software, Inc. +License GPLv3: GNU GPL version 3 + +This is free software, and you are free to change and redistribute it +under certain conditions; type `show_copying' for details. +This program comes with ABSOLUTELY NO WARRANTY; for details type `show_warranty'. +Warning 198: gcd_asap7.v line 844, module FAx1_ASAP7_75t_R not found. Creating black box for _106_. +Warning 198: gcd_asap7.v line 925, module HAxp5_ASAP7_75t_R not found. Creating black box for _115_. +Warning 198: gcd_asap7.v line 1079, module XOR2x2_ASAP7_75t_R not found. Creating black box for _140_. +Warning 198: gcd_asap7.v line 1159, module OR2x2_ASAP7_75t_R not found. Creating black box for _156_. +Warning 198: gcd_asap7.v line 1164, module OA21x2_ASAP7_75t_R not found. Creating black box for _157_. +Warning 198: gcd_asap7.v line 1170, module OAI21x1_ASAP7_75t_R not found. Creating black box for _158_. +Warning 198: gcd_asap7.v line 1210, module NOR2x1_ASAP7_75t_R not found. Creating black box for _165_. +Warning 198: gcd_asap7.v line 1219, module OR4x1_ASAP7_75t_R not found. Creating black box for _167_. +Warning 198: gcd_asap7.v line 1232, module AO21x1_ASAP7_75t_R not found. Creating black box for _169_. +Warning 198: gcd_asap7.v line 1265, module NAND2x1_ASAP7_75t_R not found. Creating black box for _175_. +Warning 198: gcd_asap7.v line 1313, module AO221x1_ASAP7_75t_R not found. Creating black box for _184_. +Warning 198: gcd_asap7.v line 3244, module TIEHIx1_ASAP7_75t_R not found. Creating black box for _216_. +Warning 198: gcd_asap7.v line 3251, module AOI211x1_ASAP7_75t_R not found. Creating black box for _218_. +Warning 198: gcd_asap7.v line 3258, module AND3x1_ASAP7_75t_R not found. Creating black box for _219_. +Warning 198: gcd_asap7.v line 3269, module OA211x2_ASAP7_75t_R not found. Creating black box for _221_. +Warning 198: gcd_asap7.v line 3735, module OAI22x1_ASAP7_75t_R not found. Creating black box for _305_. +Warning 198: gcd_asap7.v line 4197, module AND4x1_ASAP7_75t_R not found. Creating black box for _386_. +Warning 198: gcd_asap7.v line 4204, module AND5x1_ASAP7_75t_R not found. Creating black box for _387_. +Warning 198: gcd_asap7.v line 4259, module DFFHQNx1_ASAP7_75t_R not found. Creating black box for \ctrl.state.out[0]$_DFF_P_ . +driver vertex count 106 +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 +_215_/_129_/Y level=10 +_215_/_130_/Y level=10 +_215_/_131_/Y level=10 +_215_/_132_/Y level=10 +_215_/_133_/Y level=10 +_215_/_134_/Y level=10 +_215_/_135_/Y level=10 +_215_/_136_/Y level=10 +_215_/_137_/Y level=10 +_215_/_138_/Y level=10 +_215_/_139_/Y level=10 +_215_/_166_/Y level=10 +_215_/_174_/Y level=10 +_215_/_180_/Y level=10 +_215_/_182_/Y level=10 +_215_/_186_/Y level=10 +_215_/_193_/Y level=10 +_217_/Y level=10 +_222_/Y level=10 +_224_/Y level=10 +_227_/Y level=10 +_228_/Y level=10 +_229_/Y level=10 +_230_/Y level=10 +_231_/Y level=10 +_232_/Y level=10 +_233_/Y level=10 +_234_/Y level=10 +_235_/Y level=10 +_236_/Y level=10 +_237_/Y level=10 +_238_/Y level=10 +_239_/Y level=10 +_240_/Y level=10 +_241_/Y level=10 +_242_/Y level=10 +_243_/Y level=10 +_244_/Y level=10 +_245_/Y level=10 +_354_/Y level=10 +_357_/Y level=10 +_361_/Y level=10 +_365_/Y level=10 +_368_/Y level=10 +_373_/Y level=10 +_376_/Y level=10 +_380_/Y level=10 +_384_/Y level=10 +_388_/Y level=10 +_393_/Y level=10 +_395_/Y level=10 +_396_/Y level=10 +_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 +% \ No newline at end of file diff --git a/test/levelize_drvr_vertices1.tcl b/test/levelize_drvr_vertices1.tcl new file mode 100644 index 00000000..5c4111bb --- /dev/null +++ b/test/levelize_drvr_vertices1.tcl @@ -0,0 +1,14 @@ +# 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_INVBUF_RVT_TT_nldm_220122.lib.gz +read_liberty asap7/asap7sc7p5t_INVBUF_LVT_TT_nldm_220122.lib.gz +read_liberty asap7/asap7sc7p5t_INVBUF_SLVT_TT_nldm_220122.lib.gz +read_verilog gcd_asap7.v +link_design gcd +create_clock -name clk -period 500 {clk} + +# Report first 100 driver vertices in level order and total count +sta::report_levelized_drvr_vertices 100 diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index 9b6af334..94c6924a 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -148,6 +148,7 @@ record_public_tests { get_lib_pins_of_objects get_noargs get_objrefs + levelized_drvr_vertices1 liberty_arcs_one2one_1 liberty_arcs_one2one_2 liberty_backslash_eol