From 1308b81d82c2a03684e4b3539a632effadb65091 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Thu, 23 Apr 2026 13:14:57 +0900 Subject: [PATCH 1/5] Prevent hold repair from buffering internal output arcs ASAP7 full-adder cells expose output-to-output timing arcs such as CON -> SN. RepairHold was treating every timing-graph fanout from a driver vertex as a physical net load, so an internal output pin could be passed to insertBufferBeforeLoads for the driver's net. OpenDB correctly rejects that with ODB-1200 because the output pin is not connected to the net being split. The fix filters internal output pins while preserving top-level output ports as valid loads. A reduced netlist regression exercises the failing post-CTS hold repair path without relying on a saved ODB snapshot. Constraint: ASAP7 liberty includes output-to-output timing groups that OpenSTA represents as graph edges Rejected: Pass loads_on_diff_nets=true | would mask invalid load collection and let repair_hold split unrelated nets Rejected: Saved ODB regression | too brittle for OpenROAD architecture refactors Confidence: high Scope-risk: narrow Directive: Do not treat timing graph fanout as physical net loads without direction/connectivity intent checks Tested: clang-format on src/rsz/src/RepairHold.cc Tested: clang-tidy src/rsz/src/RepairHold.cc -p build --quiet Tested: cmake --build build --target openroad -j 8 Tested: ctest --test-dir build -R 'rsz\.repair_hold_multi_output_load\.tcl$' --output-on-failure -j 1 Tested: ctest --test-dir build -R 'rsz\.(gcd_resize|repair_hold.*)\.tcl$' --output-on-failure -j 4 Signed-off-by: Jaehyun Kim --- src/rsz/src/RepairHold.cc | 20 +- src/rsz/test/BUILD | 1 + src/rsz/test/CMakeLists.txt | 1 + src/rsz/test/repair_hold_multi_output_load.ok | 437 +++ .../test/repair_hold_multi_output_load.tcl | 55 + src/rsz/test/repair_hold_multi_output_load.v | 2510 +++++++++++++++++ 6 files changed, 3015 insertions(+), 9 deletions(-) create mode 100644 src/rsz/test/repair_hold_multi_output_load.ok create mode 100644 src/rsz/test/repair_hold_multi_output_load.tcl create mode 100644 src/rsz/test/repair_hold_multi_output_load.v diff --git a/src/rsz/src/RepairHold.cc b/src/rsz/src/RepairHold.cc index f7f328b7e80..6745fc87a3b 100644 --- a/src/rsz/src/RepairHold.cc +++ b/src/rsz/src/RepairHold.cc @@ -22,8 +22,6 @@ #include "sta/Fuzzy.hh" #include "sta/Graph.hh" #include "sta/GraphClass.hh" -#include "sta/GraphDelayCalc.hh" -#include "sta/InputDrive.hh" #include "sta/Liberty.hh" #include "sta/LibertyClass.hh" #include "sta/MinMax.hh" @@ -579,6 +577,13 @@ void RepairHold::repairEndHold(sta::Vertex* end_vertex, if (pred.searchTo(fanout, mode) && pred.searchThru(edge, mode)) { sta::Slack fanout_hold_slack = sta_->slack(fanout, min_); sta::Pin* load_pin = fanout->pin(); + if (load_pin == nullptr) { + continue; + } + if (network_->direction(load_pin)->isAnyOutput() + && !network_->isTopLevelPort(load_pin)) { + continue; + } if (fanout_hold_slack < hold_margin) { load_pins.push_back(load_pin); Slacks fanout_slacks; @@ -714,13 +719,7 @@ void RepairHold::makeHoldDelay(sta::Vertex* drvr, // New insert buffer behavior sta::Pin* drvr_pin = drvr->pin(); - odb::dbObject* drvr_db_pin = db_network_->staToDb(drvr_pin); - odb::dbNet* drvr_dbnet = nullptr; - if (drvr_db_pin->getObjectType() == odb::dbObjectType::dbBTermObj) { - drvr_dbnet = static_cast(drvr_db_pin)->getNet(); - } else { - drvr_dbnet = static_cast(drvr_db_pin)->getNet(); - } + odb::dbNet* drvr_dbnet = db_network_->findFlatDbNet(drvr_pin); sta::Net* drvr_net = db_network_->dbToSta(drvr_dbnet); @@ -734,6 +733,9 @@ void RepairHold::makeHoldDelay(sta::Vertex* drvr, load_pins_set.insert(const_cast(load_pin)); } } + if (load_pins_set.empty()) { + return; + } buffer = resizer_->insertBufferBeforeLoads( drvr_net, &load_pins_set, buffer_cell, &loc, "hold"); diff --git a/src/rsz/test/BUILD b/src/rsz/test/BUILD index 7de3e961339..c4ccece9f75 100644 --- a/src/rsz/test/BUILD +++ b/src/rsz/test/BUILD @@ -99,6 +99,7 @@ TESTS = [ "repair_hold8", "repair_hold9", "repair_hold9_verbose", + "repair_hold_multi_output_load", "repair_setup1", "repair_setup1_multi", "repair_setup2", diff --git a/src/rsz/test/CMakeLists.txt b/src/rsz/test/CMakeLists.txt index 185f8bb1534..c1feba09a8b 100644 --- a/src/rsz/test/CMakeLists.txt +++ b/src/rsz/test/CMakeLists.txt @@ -84,6 +84,7 @@ or_integration_tests( repair_hold13 repair_hold14 repair_hold15 + repair_hold_multi_output_load repair_setup_sizedown repair_setup_sizeup_match repair_setup1 diff --git a/src/rsz/test/repair_hold_multi_output_load.ok b/src/rsz/test/repair_hold_multi_output_load.ok new file mode 100644 index 00000000000..98ac5ea41f4 --- /dev/null +++ b/src/rsz/test/repair_hold_multi_output_load.ok @@ -0,0 +1,437 @@ +[INFO ODB-0227] LEF file: asap7/asap7_tech_1x_201209.lef, created 30 layers, 9 vias +[INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_L_1x_220121a.lef, created 212 library cells +[INFO ODB-0394] Duplicate site asap7sc7p5t in asap7sc7p5t_28_R_1x_220121a already seen in asap7sc7p5t_28_L_1x_220121a +[INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_R_1x_220121a.lef, created 212 library cells +[INFO ODB-0394] Duplicate site asap7sc7p5t in asap7sc7p5t_28_SL_1x_220121a already seen in asap7sc7p5t_28_L_1x_220121a +[INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_SL_1x_220121a.lef, created 212 library cells +[INFO IFP-0001] Added 29 rows of 146 site asap7sc7p5t. +[INFO IFP-0100] Die BBox: ( 0.000 0.000 ) ( 8.977 8.977 ) um +[INFO IFP-0101] Core BBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um +[INFO IFP-0102] Core area: 61.732 um^2 +[INFO IFP-0103] Total instances area: 41.363 um^2 +[INFO IFP-0104] Effective utilization: 0.670 +[INFO IFP-0105] Number of instances: 349 +[INFO GPL-0001] ---- Initialize GPL Main Data Structures +[INFO GPL-0002] DBU: 1000 +[INFO GPL-0003] SiteSize: ( 0.054 0.270 ) um +[INFO GPL-0004] CoreBBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um +[INFO GPL-0036] Movable instances area: 41.363 um^2 +[INFO GPL-0037] Total instances area: 41.363 um^2 +[INFO GPL-0035] Pin density area adjust: 5.068 um^2 +[INFO GPL-0032] ---- Initialize Region: Top-level +[INFO GPL-0006] Number of instances: 349 +[INFO GPL-0007] Movable instances: 349 +[INFO GPL-0008] Fixed instances: 0 +[INFO GPL-0009] Dummy instances: 0 +[INFO GPL-0010] Number of nets: 405 +[INFO GPL-0011] Number of pins: 1258 +[INFO GPL-0012] Die BBox: ( 0.000 0.000 ) ( 8.977 8.977 ) um +[INFO GPL-0013] Core BBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um +[INFO GPL-0016] Core area: 61.732 um^2 +[INFO GPL-0014] Region name: top-level. +[INFO GPL-0015] Region area: 61.732 um^2 +[INFO GPL-0017] Fixed instances area: 0.000 um^2 +[INFO GPL-0018] Movable instances area: 46.431 um^2 +[INFO GPL-0019] Utilization: 75.214 % +[INFO GPL-0020] Standard cells area: 46.431 um^2 +[INFO GPL-0021] Large instances area: 0.000 um^2 +[INFO GPL-0005] ---- Execute Conjugate Gradient Initial Placement. +[INFO GPL-0051] Source of initial instance position counters: + Odb location = 0 Core center = 349 Region center = 0 +[INFO GPL-0033] ---- Initialize Nesterov Region: Top-level +[WARNING GPL-0302] Target density 0.3500 is too low for the available free area. +Automatically adjusting to uniform density 0.7600. +[INFO GPL-0023] Placement target density: 0.7600 +[INFO GPL-0024] Movable insts average area: 0.133 um^2 +[INFO GPL-0025] Ideal bin area: 0.175 um^2 +[INFO GPL-0026] Ideal bin count: 352 +[INFO GPL-0027] Total bin area: 61.732 um^2 +[INFO GPL-0028] Bin count (X, Y): 16 , 16 +[INFO GPL-0029] Bin size (W * H): 0.493 * 0.489 um +[INFO GPL-0030] Number of bins: 256 +[INFO GPL-0007] ---- Execute Nesterov Global Placement. +[INFO GPL-0031] HPWL: Half-Perimeter Wirelength +Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group +--------------------------------------------------------------- + 0 | 0.9295 | 2.699840e+02 | +0.00% | 1.54e-11 | + 10 | 0.9683 | 8.746600e+01 | -67.60% | 2.51e-11 | + 20 | 0.9680 | 8.618100e+01 | -1.47% | 4.09e-11 | + 30 | 0.9682 | 8.601200e+01 | -0.20% | 6.67e-11 | + 40 | 0.9680 | 8.610800e+01 | +0.11% | 1.09e-10 | + 50 | 0.9679 | 8.617800e+01 | +0.08% | 1.77e-10 | + 60 | 0.9676 | 8.634600e+01 | +0.19% | 2.88e-10 | + 70 | 0.9674 | 8.657900e+01 | +0.27% | 4.70e-10 | + 80 | 0.9674 | 8.699300e+01 | +0.48% | 7.65e-10 | + 90 | 0.9673 | 8.806500e+01 | +1.23% | 1.25e-09 | + 100 | 0.9661 | 9.437300e+01 | +7.16% | 2.03e-09 | + 110 | 0.9515 | 1.133230e+02 | +20.08% | 3.31e-09 | + 120 | 0.9479 | 1.253280e+02 | +10.59% | 5.38e-09 | + 130 | 0.9093 | 1.603990e+02 | +27.98% | 8.77e-09 | + 140 | 0.8562 | 2.068080e+02 | +28.93% | 1.43e-08 | + 150 | 0.8295 | 2.331990e+02 | +12.76% | 2.33e-08 | + 160 | 0.7922 | 2.660500e+02 | +14.09% | 3.79e-08 | + 170 | 0.7565 | 2.996020e+02 | +12.61% | 6.17e-08 | + 180 | 0.7111 | 3.315970e+02 | +10.68% | 1.01e-07 | + 190 | 0.6646 | 3.611590e+02 | +8.92% | 1.64e-07 | + 200 | 0.6171 | 3.894800e+02 | +7.84% | 2.67e-07 | + 210 | 0.5658 | 4.188750e+02 | +7.55% | 4.35e-07 | + 220 | 0.5117 | 4.467690e+02 | +6.66% | 7.08e-07 | + 230 | 0.4575 | 4.728460e+02 | +5.84% | 1.15e-06 | + 240 | 0.3991 | 4.948510e+02 | +4.65% | 1.88e-06 | + 250 | 0.3474 | 5.156300e+02 | +4.20% | 3.06e-06 | + 260 | 0.3033 | 5.274350e+02 | +2.29% | 4.55e-06 | + 270 | 0.2725 | 5.424420e+02 | +2.85% | 6.71e-06 | + 280 | 0.2422 | 5.516920e+02 | +1.71% | 9.88e-06 | + 290 | 0.2117 | 5.611930e+02 | +1.72% | 1.46e-05 | + 300 | 0.1787 | 5.698620e+02 | +1.54% | 2.14e-05 | + 310 | 0.1536 | 5.752120e+02 | +0.94% | 3.16e-05 | + 320 | 0.1336 | 5.819390e+02 | +1.17% | 4.65e-05 | + 330 | 0.1074 | 5.876440e+02 | +0.98% | 6.86e-05 | + 334 | 0.0994 | 5.887700e+02 | | 8.32e-05 | +--------------------------------------------------------------- +[INFO GPL-1001] Global placement finished at iteration 334 +[INFO GPL-1002] Placed Cell Area 46.4310 +[INFO GPL-1003] Available Free Area 61.7317 +[INFO GPL-1004] Minimum Feasible Density 0.7600 (cell_area / free_area) +[INFO GPL-1006] Suggested Target Densities: +[INFO GPL-1007] - For 90% usage of free space: 0.8357 +[INFO GPL-1008] - For 80% usage of free space: 0.9402 +[INFO GPL-1014] Final placement area: 46.43 (+0.00%) +Found 0 macro blocks. +Using 2 tracks default min distance between IO pins. +[INFO PPL-0001] Number of available slots 312 +[INFO PPL-0002] Number of I/O 54 +[INFO PPL-0003] Number of I/O w/sink 54 +[INFO PPL-0004] Number of I/O w/o sink 0 +[INFO PPL-0005] Slots per section 200 +[INFO PPL-0008] Successfully assigned pins to sections. +[INFO PPL-0012] I/O nets HPWL: 131.38 um. +[INFO GPL-0001] ---- Initialize GPL Main Data Structures +[INFO GPL-0002] DBU: 1000 +[INFO GPL-0003] SiteSize: ( 0.054 0.270 ) um +[INFO GPL-0004] CoreBBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um +[INFO GPL-0036] Movable instances area: 41.363 um^2 +[INFO GPL-0037] Total instances area: 41.363 um^2 +[INFO GPL-0035] Pin density area adjust: 5.068 um^2 +[INFO GPL-0032] ---- Initialize Region: Top-level +[INFO GPL-0006] Number of instances: 349 +[INFO GPL-0007] Movable instances: 349 +[INFO GPL-0008] Fixed instances: 0 +[INFO GPL-0009] Dummy instances: 0 +[INFO GPL-0010] Number of nets: 405 +[INFO GPL-0011] Number of pins: 1312 +[INFO GPL-0012] Die BBox: ( 0.000 0.000 ) ( 8.977 8.977 ) um +[INFO GPL-0013] Core BBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um +[INFO GPL-0016] Core area: 61.732 um^2 +[INFO GPL-0014] Region name: top-level. +[INFO GPL-0015] Region area: 61.732 um^2 +[INFO GPL-0017] Fixed instances area: 0.000 um^2 +[INFO GPL-0018] Movable instances area: 46.431 um^2 +[INFO GPL-0019] Utilization: 75.214 % +[INFO GPL-0020] Standard cells area: 46.431 um^2 +[INFO GPL-0021] Large instances area: 0.000 um^2 +[INFO GPL-0005] ---- Execute Conjugate Gradient Initial Placement. +[INFO GPL-0051] Source of initial instance position counters: + Odb location = 0 Core center = 349 Region center = 0 +[InitialPlace] Iter: 1 conjugate gradient residual: 0.00000010 HPWL: 996574 +[InitialPlace] Iter: 2 conjugate gradient residual: 0.00000009 HPWL: 758793 +[InitialPlace] Iter: 3 conjugate gradient residual: 0.00000007 HPWL: 772303 +[InitialPlace] Iter: 4 conjugate gradient residual: 0.00000011 HPWL: 777754 +[InitialPlace] Iter: 5 conjugate gradient residual: 0.00000008 HPWL: 783266 +[INFO GPL-0033] ---- Initialize Nesterov Region: Top-level +[WARNING GPL-0302] Target density 0.3500 is too low for the available free area. +Automatically adjusting to uniform density 0.7600. +[INFO GPL-0023] Placement target density: 0.7600 +[INFO GPL-0024] Movable insts average area: 0.133 um^2 +[INFO GPL-0025] Ideal bin area: 0.175 um^2 +[INFO GPL-0026] Ideal bin count: 352 +[INFO GPL-0027] Total bin area: 61.732 um^2 +[INFO GPL-0028] Bin count (X, Y): 16 , 16 +[INFO GPL-0029] Bin size (W * H): 0.493 * 0.489 um +[INFO GPL-0030] Number of bins: 256 +[INFO GPL-0007] ---- Execute Nesterov Global Placement. +[INFO GPL-0031] HPWL: Half-Perimeter Wirelength +Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group +--------------------------------------------------------------- + 0 | 0.7176 | 6.017690e+02 | +0.00% | 7.76e-11 | + 10 | 0.6944 | 5.494480e+02 | -8.69% | 1.26e-10 | + 20 | 0.6930 | 5.486010e+02 | -0.15% | 2.06e-10 | + 30 | 0.6924 | 5.488630e+02 | +0.05% | 3.36e-10 | + 40 | 0.6921 | 5.489170e+02 | +0.01% | 5.47e-10 | + 50 | 0.6923 | 5.489870e+02 | +0.01% | 8.90e-10 | + 60 | 0.6911 | 5.493070e+02 | +0.06% | 1.45e-09 | + 70 | 0.6892 | 5.497550e+02 | +0.08% | 2.36e-09 | + 80 | 0.6870 | 5.505000e+02 | +0.14% | 3.85e-09 | + 90 | 0.6834 | 5.516510e+02 | +0.21% | 6.27e-09 | + 100 | 0.6777 | 5.534870e+02 | +0.33% | 1.02e-08 | + 110 | 0.6692 | 5.562510e+02 | +0.50% | 1.66e-08 | + 120 | 0.6577 | 5.601340e+02 | +0.70% | 2.71e-08 | + 130 | 0.6406 | 5.655200e+02 | +0.96% | 4.41e-08 | +[INFO GPL-0100] Timing-driven iteration 1/2, virtual: false. +[INFO GPL-0101] Iter: 134, overflow: 0.635, keep resizer changes at: 1, HPWL: 567581 +Iteration | Area | Resized | Buffers | Nets repaired | Remaining +--------------------------------------------------------------------- + 0 | +0.0% | 0 | 0 | 0 | 405 + final | +0.0% | 0 | 0 | 0 | 0 +--------------------------------------------------------------------- + Iter | Area | Removed | Inserted | Pins + | | Buffers | Buffers | Remaining +------------------------------------------------------- + 0 | +0.0% | 0 | 0 | 352 + 35 | +0.0% | 0 | 0 | 317 + 70 | +0.0% | 0 | 0 | 282 + 105 | +2.2% | 4 | 13 | 247 + 140 | +2.4% | 5 | 15 | 212 + 175 | +3.5% | 6 | 22 | 177 + 210 | +4.4% | 6 | 26 | 142 + 245 | +5.6% | 6 | 32 | 107 + 280 | +10.6% | 10 | 59 | 72 + 315 | +14.1% | 12 | 77 | 37 + 350 | +17.9% | 13 | 96 | 2 + final | +17.3% | 17 | 97 | 0 +------------------------------------------------------- +[INFO GPL-0106] Timing-driven: worst slack -3.4588613e-10 +[INFO GPL-0107] Timing-driven: repair_design delta area: 7.144 um^2 (+15.39%) +[INFO GPL-0108] Timing-driven: repair_design, gpl delta gcells: 80 (+22.92%) +[INFO GPL-0109] Timing-driven: repair_design, gcells created: 97, deleted: 17 +[INFO GPL-0110] Timing-driven: new target density: 0.8757298 +Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group +--------------------------------------------------------------- + 140 | 0.6255 | 5.963320e+02 | +5.45% | 7.19e-08 | +[INFO GPL-0038] Routability snapshot saved at iter = 147 + 146 | 0.5977 | 5.932590e+02 | | | + 150 | 0.5909 | 5.932700e+02 | -0.51% | 1.17e-07 | + 160 | 0.5660 | 6.013600e+02 | +1.36% | 1.91e-07 | + 170 | 0.5272 | 6.119740e+02 | +1.76% | 3.11e-07 | + 180 | 0.4796 | 6.262580e+02 | +2.33% | 5.06e-07 | + 190 | 0.4388 | 6.398320e+02 | +2.17% | 8.24e-07 | + 200 | 0.3900 | 6.511390e+02 | +1.77% | 1.34e-06 | + 210 | 0.3445 | 6.669490e+02 | +2.43% | 2.19e-06 | + 220 | 0.3088 | 6.746220e+02 | +1.15% | 3.25e-06 | +[INFO GPL-0040] Routability iteration: 1 +[INFO GPL-0041] Total routing overflow: 0.0000 +[INFO GPL-0042] Number of overflowed tiles: 0 (0.00%) +[INFO GPL-0043] Average top 0.5% routing congestion: 0.2119 +[INFO GPL-0044] Average top 1.0% routing congestion: 0.2067 +[INFO GPL-0045] Average top 2.0% routing congestion: 0.1994 +[INFO GPL-0046] Average top 5.0% routing congestion: 0.1826 +[INFO GPL-0047] Routability iteration weighted routing congestion: 0.2093 +[INFO GPL-0050] Weighted routing congestion is lower than target routing congestion(1.0100), end routability optimization. +[INFO GPL-0090] Routability finished. Target routing congestion achieved succesfully. +Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group +--------------------------------------------------------------- + 230 | 0.2721 | 6.837910e+02 | +1.36% | 4.79e-06 | + 240 | 0.2486 | 6.949490e+02 | +1.63% | 7.06e-06 | + 250 | 0.2237 | 7.061460e+02 | +1.61% | 1.04e-05 | + 260 | 0.1996 | 7.129480e+02 | +0.96% | 1.53e-05 | +[INFO GPL-0100] Timing-driven iteration 2/2, virtual: false. +[INFO GPL-0101] Iter: 263, overflow: 0.194, keep resizer changes at: 1, HPWL: 713693 +Iteration | Area | Resized | Buffers | Nets repaired | Remaining +--------------------------------------------------------------------- + 0 | +0.0% | 0 | 0 | 0 | 485 + final | +0.0% | 0 | 0 | 0 | 0 +--------------------------------------------------------------------- + Iter | Area | Removed | Inserted | Pins + | | Buffers | Buffers | Remaining +------------------------------------------------------- + 0 | +0.0% | 0 | 0 | 352 + 35 | +0.0% | 0 | 0 | 317 + 70 | +0.0% | 0 | 0 | 282 + 105 | -0.5% | 13 | 10 | 247 + 140 | -0.5% | 15 | 12 | 212 + 175 | -0.5% | 22 | 19 | 177 + 210 | -0.5% | 26 | 23 | 142 + 245 | -0.5% | 32 | 29 | 107 + 280 | +0.5% | 59 | 62 | 72 + 315 | +1.4% | 77 | 85 | 37 + 350 | +1.6% | 96 | 105 | 2 + final | +1.6% | 97 | 106 | 0 +------------------------------------------------------- +[INFO GPL-0106] Timing-driven: worst slack -3.3670816e-10 +[INFO GPL-0107] Timing-driven: repair_design delta area: 0.787 um^2 (+1.47%) +[INFO GPL-0108] Timing-driven: repair_design, gpl delta gcells: 9 (+2.10%) +[INFO GPL-0109] Timing-driven: repair_design, gcells created: 106, deleted: 97 +[INFO GPL-0110] Timing-driven: new target density: 0.8884837 +Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group +--------------------------------------------------------------- + 270 | 0.1789 | 7.349510e+02 | +3.09% | 2.26e-05 | + 280 | 0.1560 | 7.315510e+02 | -0.46% | 3.33e-05 | + 290 | 0.1288 | 7.379490e+02 | +0.87% | 4.90e-05 | + 300 | 0.1101 | 7.424660e+02 | +0.61% | 7.22e-05 | + 307 | 0.0992 | 7.439900e+02 | | 9.84e-05 | +--------------------------------------------------------------- +[INFO GPL-1001] Global placement finished at iteration 307 +[INFO GPL-1003] Routability mode iteration count: 77 +[INFO GPL-1005] Routability final weighted congestion: 0.1794 +[INFO GPL-1002] Placed Cell Area 54.3626 +[INFO GPL-1003] Available Free Area 61.7317 +[INFO GPL-1004] Minimum Feasible Density 0.7600 (cell_area / free_area) +[INFO GPL-1006] Suggested Target Densities: +[INFO GPL-1007] - For 90% usage of free space: 0.9785 +[INFO GPL-1008] - For 80% usage of free space: 1.1008 +[INFO GPL-1011] Original area (um^2): 46.43 +[INFO GPL-1012] Total routability artificial inflation: 0.00 (+0.00%) +[INFO GPL-1013] Total timing-driven delta area: 7.93 (+17.08%) +[INFO GPL-1014] Final placement area: 54.36 (+17.08%) +Iteration | Area | Resized | Buffers | Nets repaired | Remaining +--------------------------------------------------------------------- + 0 | +0.0% | 0 | 0 | 0 | 494 + 10 | +0.0% | 0 | 0 | 0 | 484 + 20 | +0.0% | 0 | 0 | 0 | 474 + 30 | +0.0% | 0 | 0 | 0 | 464 + 40 | +0.0% | 0 | 0 | 0 | 454 + 50 | +0.0% | 0 | 0 | 0 | 444 + 60 | +0.0% | 0 | 0 | 0 | 434 + 70 | +0.0% | 0 | 0 | 0 | 424 + 80 | +0.0% | 0 | 0 | 0 | 414 + 90 | +0.0% | 0 | 0 | 0 | 404 + 100 | +0.0% | 0 | 0 | 0 | 394 + 110 | +0.0% | 0 | 0 | 0 | 384 + 120 | +0.0% | 0 | 0 | 0 | 374 + 130 | +0.0% | 0 | 0 | 0 | 364 + 140 | +0.0% | 0 | 0 | 0 | 354 + 150 | +0.0% | 0 | 0 | 0 | 344 + 160 | +0.0% | 0 | 0 | 0 | 334 + 170 | +0.0% | 0 | 0 | 0 | 324 + 180 | +0.0% | 0 | 0 | 0 | 314 + 190 | +0.0% | 0 | 0 | 0 | 304 + 200 | +0.0% | 0 | 0 | 0 | 294 + 210 | +0.0% | 0 | 0 | 0 | 284 + 220 | +0.0% | 0 | 0 | 0 | 274 + 230 | +0.0% | 0 | 0 | 0 | 264 + 240 | +0.0% | 0 | 0 | 0 | 254 + 250 | +0.0% | 0 | 0 | 0 | 244 + 260 | +0.0% | 0 | 0 | 0 | 234 + 270 | +0.0% | 0 | 0 | 0 | 224 + 280 | +0.0% | 0 | 0 | 0 | 214 + 290 | +0.0% | 0 | 0 | 0 | 204 + 300 | +0.0% | 0 | 0 | 0 | 194 + 310 | +0.0% | 0 | 0 | 0 | 184 + 320 | +0.0% | 0 | 0 | 0 | 174 + 330 | +0.0% | 0 | 0 | 0 | 164 + 340 | +0.0% | 0 | 0 | 0 | 154 + 350 | +0.0% | 0 | 0 | 0 | 144 + 360 | +0.0% | 0 | 0 | 0 | 134 + 370 | +0.0% | 0 | 0 | 0 | 124 + 380 | +0.0% | 0 | 0 | 0 | 114 + 390 | +0.0% | 0 | 0 | 0 | 104 + 400 | +0.0% | 0 | 0 | 0 | 94 + 410 | +0.0% | 0 | 0 | 0 | 84 + 420 | +0.0% | 0 | 0 | 0 | 74 + 430 | +0.0% | 0 | 0 | 0 | 64 + 440 | +0.0% | 0 | 0 | 0 | 54 + 450 | +0.0% | 0 | 0 | 0 | 44 + 460 | +0.0% | 0 | 0 | 0 | 34 + 470 | +0.0% | 0 | 0 | 0 | 24 + 480 | +0.0% | 0 | 0 | 0 | 14 + 490 | +0.0% | 0 | 0 | 0 | 4 + final | +0.0% | 0 | 0 | 0 | 0 +--------------------------------------------------------------------- +[INFO DPL-0006] Core area: 61.73 um^2, Instances area: 49.29 um^2, Utilization: 79.9% +[INFO DPL-0005] Diamond search max displacement: +/- 500 sites horizontally, +/- 100 rows vertically. +[INFO DPL-1101] Legalizing using diamond search. +Movements Summary +--------------------------------------- +Total cells: 438 +Diamond Move Success: 438 (100.00%) +Diamond Move Failure: 0 +Rip-up and replace Success: 0 ( 0.00% of diamond failures) +Rip-up and replace Failure: 0 +Total Placement Failures: 0 +--------------------------------------- +Placement Analysis +--------------------------------- +total displacement 118.3 u +average displacement 0.3 u +max displacement 1.6 u +original HPWL 745.9 u +legalized HPWL 863.2 u +delta HPWL 16 % + +[INFO CTS-0050] Root buffer is BUFx2_ASAP7_75t_R. +[INFO CTS-0051] Sink buffer is BUFx4_ASAP7_75t_R. +[INFO CTS-0052] The following clock buffers will be used for CTS: + BUFx2_ASAP7_75t_R + BUFx4_ASAP7_75t_R +[INFO CTS-0049] Characterization buffer is BUFx4_ASAP7_75t_R. +[INFO CTS-0007] Net "clk" found for clock "core_clock". +[INFO CTS-0010] Clock net "clk" has 35 sinks. +[INFO CTS-0008] TritonCTS found 1 clock nets. +[INFO CTS-0097] Characterization used 2 buffer(s) types. +[INFO CTS-0201] 0 blockages from hard placement blockages and placed macros will be used. +[INFO CTS-0027] Generating H-Tree topology for net clk. +[INFO CTS-0028] Total number of sinks: 35. +[INFO CTS-0090] Sinks will be clustered based on buffer max cap. +[INFO CTS-0030] Number of static layers: 0. +[INFO CTS-0020] Wire segment unit: 1350 dbu (1 um). +[INFO CTS-0023] Original sink region: [(637, 675), (7441, 7965)]. +[INFO CTS-0024] Normalized sink region: [(0.471852, 0.5), (5.51185, 5.9)]. +[INFO CTS-0025] Width: 5.0400. +[INFO CTS-0026] Height: 5.4000. + Level 1 + Direction: Vertical + Sinks per sub-region: 18 + Sub-region size: 5.0400 X 2.7000 +[INFO CTS-0034] Segment length (rounded): 1. + Level 2 + Direction: Horizontal + Sinks per sub-region: 9 + Sub-region size: 2.5200 X 2.7000 +[INFO CTS-0034] Segment length (rounded): 1. +[INFO CTS-0032] Stop criterion found. Max number of sinks is 15. +[INFO CTS-0035] Number of sinks covered: 35. +[INFO CTS-0018] Created 5 clock buffers. +[INFO CTS-0012] Minimum number of buffers in the clock path: 2. +[INFO CTS-0013] Maximum number of buffers in the clock path: 2. +[INFO CTS-0015] Created 5 clock nets. +[INFO CTS-0016] Fanout distribution for the current clock = 7:1, 9:2, 10:1.. +[INFO CTS-0017] Max level of the clock tree: 2. +[INFO CTS-0098] Clock net "clk" +[INFO CTS-0099] Sinks 38 +[INFO CTS-0100] Leaf buffers 0 +[INFO CTS-0101] Average sink wire length 12.23 um +[INFO CTS-0102] Path depth 2 - 2 +[INFO CTS-0207] Dummy loads inserted 3 +[INFO DPL-0006] Core area: 61.73 um^2, Instances area: 50.04 um^2, Utilization: 81.1% +[INFO DPL-0005] Diamond search max displacement: +/- 500 sites horizontally, +/- 100 rows vertically. +[INFO DPL-1101] Legalizing using diamond search. +Movements Summary +--------------------------------------- +Total cells: 446 +Diamond Move Success: 446 (100.00%) +Diamond Move Failure: 0 +Rip-up and replace Success: 0 ( 0.00% of diamond failures) +Rip-up and replace Failure: 0 +Total Placement Failures: 0 +--------------------------------------- +Placement Analysis +--------------------------------- +total displacement 7.1 u +average displacement 0.0 u +max displacement 1.0 u +original HPWL 884.9 u +legalized HPWL 888.8 u +delta HPWL 0 % + +[INFO RSZ-0046] Found 53 endpoints with hold violations. +Iteration | Resized | Buffers | Cloned Gates | Area | WNS | TNS | Endpoint +-------------------------------------------------------------------------------------- + 0 | 0 | 0 | 0 | +0.0% | -95.106 | -2511.337 | ctrl.state.out[2]$_DFF_P_/D + 10 | 0 | 19 | 0 | +2.8% | -80.443 | -2293.314 | dpath.b_reg.out[6]$_DFFE_PP_/D + 20 | 0 | 39 | 0 | +5.7% | -71.323 | -2058.381 | dpath.a_reg.out[15]$_DFFE_PP_/D + 30 | 0 | 69 | 0 | +10.1% | -68.808 | -1711.372 | ctrl.state.out[2]$_DFF_P_/D + 40 | 0 | 107 | 0 | +15.6% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D + 50 | 0 | 151 | 0 | +22.0% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D + 60 | 0 | 39 | 0 | +29.3% | -58.289 | -1169.735 | dpath.b_reg.out[1]$_DFFE_PP_/D + 70 | 0 | 79 | 0 | +35.1% | -55.042 | -695.836 | dpath.b_reg.out[11]$_DFFE_PP_/D + 80 | 0 | 131 | 0 | +42.7% | -29.893 | -316.407 | dpath.a_reg.out[4]$_DFFE_PP_/D + 90 | 0 | 206 | 0 | +53.6% | -22.586 | -199.672 | ctrl.state.out[2]$_DFF_P_/D + 100 | 0 | 10 | 0 | +59.9% | -22.586 | -199.672 | ctrl.state.out[2]$_DFF_P_/D + 110 | 0 | 80 | 0 | +70.1% | -10.084 | -101.509 | dpath.b_reg.out[4]$_DFFE_PP_/D + 120 | 0 | 160 | 0 | +81.7% | -7.518 | -14.716 | dpath.b_reg.out[12]$_DFFE_PP_/D + 130 | 0 | 264 | 0 | +96.9% | 41.395 | 0.000 | dpath.a_reg.out[6]$_DFFE_PP_/D + 140 | 0 | 11 | 0 | +109.3% | 69.917 | 0.000 | ctrl.state.out[2]$_DFF_P_/D + final | 0 | 16 | 0 | +110.0% | 69.917 | 0.000 | ctrl.state.out[2]$_DFF_P_/D +-------------------------------------------------------------------------------------- +[WARNING RSZ-0064] Unable to repair all hold checks within margin. +[INFO RSZ-0032] Inserted 16 hold buffers. diff --git a/src/rsz/test/repair_hold_multi_output_load.tcl b/src/rsz/test/repair_hold_multi_output_load.tcl new file mode 100644 index 00000000000..c376ce483fd --- /dev/null +++ b/src/rsz/test/repair_hold_multi_output_load.tcl @@ -0,0 +1,55 @@ +# Netlist-based regression for issue #10213: repair_timing -hold must not pass +# internal output pins from multi-output cells to insertBufferBeforeLoads. +source "helpers.tcl" +source asap7/asap7.vars + +foreach lib [concat [list $liberty_file] $extra_liberty] { + read_liberty $lib +} +read_lef $tech_lef +read_lef $std_cell_lef +foreach lef $extra_lef { read_lef $lef } + +read_verilog repair_hold_multi_output_load.v +link_design gcd + +set clk_period 77.5 +create_clock -name core_clock -period $clk_period [get_ports clk] +set non_clock_inputs [all_inputs -no_clocks] +set_input_delay [expr $clk_period * 0.2] -clock core_clock $non_clock_inputs +set_output_delay [expr $clk_period * 0.2] -clock core_clock [all_outputs] +set_clock_uncertainty -hold 62 [all_clocks] + +source asap7/setRC.tcl + +initialize_floorplan \ + -site $site \ + -die_area {0 0 8.977 8.977} \ + -core_area {0.540 0.540 8.424 8.370} +source asap7/asap7.tracks.tcl +set_dont_use $dont_use + +global_placement -skip_io -density 0.35 -pad_left 0 -pad_right 0 +place_pins -hor_layers $io_placer_hor_layer -ver_layers $io_placer_ver_layer +global_placement -density 0.35 -pad_left 0 -pad_right 0 \ + -routability_driven \ + -timing_driven \ + -force_center_initial_place \ + -min_phi_coef 0.95 \ + -max_phi_coef 1.05 +repair_design -verbose +detailed_placement +estimate_parasitics -placement + +clock_tree_synthesis -sink_clustering_enable -repair_clock_nets +estimate_parasitics -placement +detailed_placement +estimate_parasitics -placement + +repair_timing -hold -allow_setup_violations \ + -hold_margin 124 \ + -setup_margin -31000 \ + -max_buffer_percent 80 \ + -max_passes 10000 \ + -max_iterations 200000 \ + -verbose diff --git a/src/rsz/test/repair_hold_multi_output_load.v b/src/rsz/test/repair_hold_multi_output_load.v new file mode 100644 index 00000000000..b778c3b836b --- /dev/null +++ b/src/rsz/test/repair_hold_multi_output_load.v @@ -0,0 +1,2510 @@ +/* Generated by Yosys 0.64 (git sha1 8449dd470, g++ 13.3.0-6ubuntu2~24.04.1 -fPIC -O3) [the-openroad-project/yosys] */ + +(* hdlname = "gcd" *) +(* top = 1 *) +(* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:11.1-102.10" *) +module gcd(clk, req_msg, req_rdy, req_val, reset, resp_msg, resp_rdy, resp_val); + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:13.15-13.18" *) + input clk; + wire clk; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:14.24-14.31" *) + input [31:0] req_msg; + wire [31:0] req_msg; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:15.15-15.22" *) + output req_rdy; + wire req_rdy; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:16.15-16.22" *) + input req_val; + wire req_val; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:17.15-17.20" *) + input reset; + wire reset; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:18.24-18.32" *) + output [15:0] resp_msg; + wire [15:0] resp_msg; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:19.15-19.23" *) + input resp_rdy; + wire resp_rdy; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:20.15-20.23" *) + output resp_val; + wire resp_val; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:752.12-752.19|/workspace/ws10/OpenROAD-flow-scripts/tools/install/yosys/bin/../share/yosys/techmap.v:274.23-274.25" *) + 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_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _018_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.31-6.32" *) + wire _019_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _020_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.28-6.29" *) + wire _021_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _022_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _023_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _024_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _025_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _026_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _027_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _028_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _029_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _030_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _031_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _032_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _033_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _034_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _035_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _036_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _037_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _038_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _039_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _040_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _041_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _042_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _043_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _044_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _045_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _046_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _047_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _048_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _049_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _050_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _051_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _052_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _053_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _054_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _055_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _056_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _057_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _058_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _059_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _060_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _061_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _062_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _063_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _064_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _065_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + wire _066_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.28-6.29" *) + wire _067_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _068_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) + wire _069_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.28-6.29" *) + wire _070_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + wire _071_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + 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_; + wire _215_; + wire _216_; + wire _217_; + wire _218_; + wire _219_; + wire _220_; + wire _221_; + wire _222_; + wire _223_; + wire _224_; + wire _225_; + wire _226_; + wire _227_; + wire _228_; + wire _229_; + wire _230_; + wire _231_; + wire _232_; + wire _233_; + wire _234_; + wire _235_; + wire _236_; + wire _237_; + wire _238_; + wire _239_; + wire _240_; + wire _241_; + wire _242_; + wire _243_; + wire _244_; + wire _245_; + wire _246_; + wire _247_; + wire _248_; + wire _249_; + wire _250_; + wire _251_; + wire _252_; + wire _253_; + wire _254_; + wire _255_; + wire _256_; + wire _257_; + wire _258_; + wire _259_; + wire _260_; + wire _261_; + wire _262_; + wire _263_; + wire _264_; + wire _265_; + wire _266_; + wire _267_; + wire _268_; + wire _269_; + wire _270_; + wire _271_; + wire _272_; + wire _273_; + wire _274_; + wire _275_; + wire _276_; + wire _277_; + wire _278_; + wire _279_; + wire _280_; + wire _281_; + wire _282_; + wire _283_; + wire _284_; + wire _285_; + wire _286_; + wire _287_; + wire _288_; + wire _289_; + wire _290_; + wire _291_; + wire _292_; + wire _293_; + wire _294_; + wire _295_; + wire _296_; + wire _297_; + wire _298_; + wire _299_; + wire _300_; + wire _301_; + wire _302_; + wire _303_; + wire _304_; + wire _305_; + wire _306_; + wire _307_; + wire _308_; + wire _309_; + wire _310_; + wire _311_; + wire _312_; + wire _313_; + wire _314_; + wire _315_; + wire _316_; + wire _317_; + wire _318_; + wire _319_; + wire _320_; + wire _321_; + wire _322_; + wire _323_; + wire _324_; + wire _325_; + wire _326_; + wire _327_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + (* unused_bits = "0" *) + wire _328_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) + (* unused_bits = "0" *) + wire _329_; + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) + (* unused_bits = "0" *) + wire _330_; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:30.19-30.33" *) + wire \ctrl$a_mux_sel[0] ; + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:30.19-30.33" *) + wire \ctrl$a_mux_sel[1] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[0] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[10] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[11] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[12] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[13] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[14] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[15] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[1] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[2] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[3] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[4] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[5] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[6] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[7] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[8] ; + (* hdlname = "dpath a_lt_b$in0" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) + wire \dpath.a_lt_b$in0[9] ; + (* hdlname = "dpath a_lt_b$in1" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:409.19-409.29" *) + wire \dpath.a_lt_b$in1[0] ; + (* hdlname = "dpath a_lt_b$in1" *) + (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:409.19-409.29" *) + wire \dpath.a_lt_b$in1[1] ; + INVx1_ASAP7_75t_R _331_ ( + .A(_001_), + .Y(\dpath.a_lt_b$in0[15] ) + ); + INVx1_ASAP7_75t_R _332_ ( + .A(_019_), + .Y(\dpath.a_lt_b$in0[1] ) + ); + INVx1_ASAP7_75t_R _333_ ( + .A(_003_), + .Y(\dpath.a_lt_b$in0[2] ) + ); + INVx1_ASAP7_75t_R _334_ ( + .A(_004_), + .Y(\dpath.a_lt_b$in0[3] ) + ); + INVx1_ASAP7_75t_R _335_ ( + .A(_005_), + .Y(\dpath.a_lt_b$in0[4] ) + ); + INVx1_ASAP7_75t_R _336_ ( + .A(_006_), + .Y(\dpath.a_lt_b$in0[5] ) + ); + INVx1_ASAP7_75t_R _337_ ( + .A(_007_), + .Y(\dpath.a_lt_b$in0[6] ) + ); + INVx1_ASAP7_75t_R _338_ ( + .A(_008_), + .Y(\dpath.a_lt_b$in0[7] ) + ); + INVx1_ASAP7_75t_R _339_ ( + .A(_009_), + .Y(\dpath.a_lt_b$in0[8] ) + ); + INVx1_ASAP7_75t_R _340_ ( + .A(_010_), + .Y(\dpath.a_lt_b$in0[9] ) + ); + INVx1_ASAP7_75t_R _341_ ( + .A(_011_), + .Y(\dpath.a_lt_b$in0[10] ) + ); + INVx1_ASAP7_75t_R _342_ ( + .A(_012_), + .Y(\dpath.a_lt_b$in0[11] ) + ); + INVx1_ASAP7_75t_R _343_ ( + .A(_013_), + .Y(\dpath.a_lt_b$in0[12] ) + ); + INVx1_ASAP7_75t_R _344_ ( + .A(_014_), + .Y(\dpath.a_lt_b$in0[13] ) + ); + INVx1_ASAP7_75t_R _345_ ( + .A(_015_), + .Y(\dpath.a_lt_b$in0[14] ) + ); + INVx1_ASAP7_75t_R _346_ ( + .A(_069_), + .Y(\dpath.a_lt_b$in1[0] ) + ); + INVx1_ASAP7_75t_R _347_ ( + .A(_021_), + .Y(\dpath.a_lt_b$in1[1] ) + ); + INVx1_ASAP7_75t_R _348_ ( + .A(_020_), + .Y(_018_) + ); + INVx1_ASAP7_75t_R _349_ ( + .A(_000_), + .Y(_108_) + ); + OA21x2_ASAP7_75t_R _350_ ( + .A1(_108_), + .A2(_063_), + .B(_062_), + .Y(_109_) + ); + OR3x1_ASAP7_75t_R _351_ ( + .A(_036_), + .B(_039_), + .C(_042_), + .Y(_110_) + ); + OA21x2_ASAP7_75t_R _352_ ( + .A1(_039_), + .A2(_041_), + .B(_038_), + .Y(_111_) + ); + OA21x2_ASAP7_75t_R _353_ ( + .A1(_036_), + .A2(_111_), + .B(_035_), + .Y(_112_) + ); + OA21x2_ASAP7_75t_R _354_ ( + .A1(_109_), + .A2(_110_), + .B(_112_), + .Y(_113_) + ); + XOR2x2_ASAP7_75t_R _355_ ( + .A(_027_), + .B(_113_), + .Y(resp_msg[6]) + ); + OA21x2_ASAP7_75t_R _356_ ( + .A1(_018_), + .A2(_072_), + .B(_071_), + .Y(_114_) + ); + OA21x2_ASAP7_75t_R _357_ ( + .A1(_063_), + .A2(_114_), + .B(_062_), + .Y(_115_) + ); + OR2x2_ASAP7_75t_R _358_ ( + .A(_039_), + .B(_042_), + .Y(_116_) + ); + OA21x2_ASAP7_75t_R _359_ ( + .A1(_115_), + .A2(_116_), + .B(_111_), + .Y(_117_) + ); + XOR2x2_ASAP7_75t_R _360_ ( + .A(_036_), + .B(_117_), + .Y(resp_msg[5]) + ); + OA21x2_ASAP7_75t_R _361_ ( + .A1(_042_), + .A2(_109_), + .B(_041_), + .Y(_118_) + ); + XOR2x2_ASAP7_75t_R _362_ ( + .A(_039_), + .B(_118_), + .Y(resp_msg[4]) + ); + XOR2x2_ASAP7_75t_R _363_ ( + .A(_042_), + .B(_115_), + .Y(resp_msg[3]) + ); + XNOR2x2_ASAP7_75t_R _364_ ( + .A(_000_), + .B(_063_), + .Y(resp_msg[2]) + ); + INVx1_ASAP7_75t_R _365_ ( + .A(_070_), + .Y(\dpath.a_lt_b$in0[0] ) + ); + BUFx4f_ASAP7_75t_R _366_ ( + .A(_016_), + .Y(_119_) + ); + INVx1_ASAP7_75t_R _367_ ( + .A(_119_), + .Y(_120_) + ); + BUFx2_ASAP7_75t_R _368_ ( + .A(_120_), + .Y(_121_) + ); + BUFx2_ASAP7_75t_R _369_ ( + .A(_057_), + .Y(_122_) + ); + BUFx2_ASAP7_75t_R _370_ ( + .A(_051_), + .Y(_123_) + ); + OR2x2_ASAP7_75t_R _371_ ( + .A(_030_), + .B(_033_), + .Y(_124_) + ); + OR4x1_ASAP7_75t_R _372_ ( + .A(_122_), + .B(_123_), + .C(_060_), + .D(_124_), + .Y(_125_) + ); + OR2x2_ASAP7_75t_R _373_ ( + .A(_027_), + .B(_125_), + .Y(_126_) + ); + OA21x2_ASAP7_75t_R _374_ ( + .A1(_026_), + .A2(_033_), + .B(_032_), + .Y(_127_) + ); + OR5x1_ASAP7_75t_R _375_ ( + .A(_057_), + .B(_030_), + .C(_123_), + .D(_060_), + .E(_127_), + .Y(_128_) + ); + OA211x2_ASAP7_75t_R _376_ ( + .A1(_056_), + .A2(_123_), + .B(_128_), + .C(_050_), + .Y(_129_) + ); + OA21x2_ASAP7_75t_R _377_ ( + .A1(_029_), + .A2(_060_), + .B(_059_), + .Y(_130_) + ); + OR3x4_ASAP7_75t_R _378_ ( + .A(_122_), + .B(_123_), + .C(_130_), + .Y(_131_) + ); + OA211x2_ASAP7_75t_R _379_ ( + .A1(_113_), + .A2(_126_), + .B(_129_), + .C(_131_), + .Y(_132_) + ); + OR2x2_ASAP7_75t_R _380_ ( + .A(_045_), + .B(_024_), + .Y(_133_) + ); + OR3x2_ASAP7_75t_R _381_ ( + .A(_054_), + .B(_048_), + .C(_133_), + .Y(_134_) + ); + BUFx2_ASAP7_75t_R _382_ ( + .A(_002_), + .Y(_135_) + ); + INVx1_ASAP7_75t_R _383_ ( + .A(_135_), + .Y(_136_) + ); + OA21x2_ASAP7_75t_R _384_ ( + .A1(_044_), + .A2(_024_), + .B(_023_), + .Y(_137_) + ); + OA21x2_ASAP7_75t_R _385_ ( + .A1(_048_), + .A2(_137_), + .B(_047_), + .Y(_138_) + ); + OA21x2_ASAP7_75t_R _386_ ( + .A1(_054_), + .A2(_138_), + .B(_053_), + .Y(_139_) + ); + AND2x2_ASAP7_75t_R _387_ ( + .A(_136_), + .B(_139_), + .Y(_140_) + ); + OAI21x1_ASAP7_75t_R _388_ ( + .A1(_132_), + .A2(_134_), + .B(_140_), + .Y(_141_) + ); + BUFx6f_ASAP7_75t_R _389_ ( + .A(_141_), + .Y(_142_) + ); + OR2x4_ASAP7_75t_R _390_ ( + .A(_121_), + .B(_142_), + .Y(_067_) + ); + INVx2_ASAP7_75t_R _391_ ( + .A(_067_), + .Y(\ctrl$a_mux_sel[1] ) + ); + OA21x2_ASAP7_75t_R _392_ ( + .A1(_132_), + .A2(_133_), + .B(_137_), + .Y(_143_) + ); + XOR2x2_ASAP7_75t_R _393_ ( + .A(_048_), + .B(_143_), + .Y(resp_msg[14]) + ); + OR3x1_ASAP7_75t_R _394_ ( + .A(_027_), + .B(_036_), + .C(_125_), + .Y(_144_) + ); + OA21x2_ASAP7_75t_R _395_ ( + .A1(_059_), + .A2(_122_), + .B(_056_), + .Y(_145_) + ); + OA21x2_ASAP7_75t_R _396_ ( + .A1(_027_), + .A2(_035_), + .B(_026_), + .Y(_146_) + ); + OA21x2_ASAP7_75t_R _397_ ( + .A1(_030_), + .A2(_032_), + .B(_029_), + .Y(_147_) + ); + OA21x2_ASAP7_75t_R _398_ ( + .A1(_124_), + .A2(_146_), + .B(_147_), + .Y(_148_) + ); + OR4x1_ASAP7_75t_R _399_ ( + .A(_122_), + .B(_123_), + .C(_060_), + .D(_148_), + .Y(_149_) + ); + OA21x2_ASAP7_75t_R _400_ ( + .A1(_123_), + .A2(_145_), + .B(_149_), + .Y(_150_) + ); + OAI21x1_ASAP7_75t_R _401_ ( + .A1(_117_), + .A2(_144_), + .B(_150_), + .Y(_151_) + ); + INVx1_ASAP7_75t_R _402_ ( + .A(_045_), + .Y(_152_) + ); + AND2x2_ASAP7_75t_R _403_ ( + .A(_152_), + .B(_024_), + .Y(_153_) + ); + OAI21x1_ASAP7_75t_R _404_ ( + .A1(_050_), + .A2(_045_), + .B(_044_), + .Y(_154_) + ); + NOR2x1_ASAP7_75t_R _405_ ( + .A(_024_), + .B(_154_), + .Y(_155_) + ); + OA211x2_ASAP7_75t_R _406_ ( + .A1(_117_), + .A2(_144_), + .B(_155_), + .C(_150_), + .Y(_156_) + ); + AO21x1_ASAP7_75t_R _407_ ( + .A1(_151_), + .A2(_153_), + .B(_156_), + .Y(_157_) + ); + AND2x2_ASAP7_75t_R _408_ ( + .A(_024_), + .B(_154_), + .Y(_158_) + ); + AO21x1_ASAP7_75t_R _409_ ( + .A1(_045_), + .A2(_155_), + .B(_158_), + .Y(_159_) + ); + OR2x2_ASAP7_75t_R _410_ ( + .A(_157_), + .B(_159_), + .Y(resp_msg[13]) + ); + XNOR2x2_ASAP7_75t_R _411_ ( + .A(_152_), + .B(_132_), + .Y(resp_msg[12]) + ); + INVx1_ASAP7_75t_R _412_ ( + .A(_123_), + .Y(_160_) + ); + OR3x1_ASAP7_75t_R _413_ ( + .A(_122_), + .B(_060_), + .C(_124_), + .Y(_161_) + ); + OA211x2_ASAP7_75t_R _414_ ( + .A1(_115_), + .A2(_116_), + .B(_146_), + .C(_111_), + .Y(_162_) + ); + OA21x2_ASAP7_75t_R _415_ ( + .A1(_027_), + .A2(_036_), + .B(_146_), + .Y(_163_) + ); + OR2x2_ASAP7_75t_R _416_ ( + .A(_162_), + .B(_163_), + .Y(_164_) + ); + OA21x2_ASAP7_75t_R _417_ ( + .A1(_060_), + .A2(_147_), + .B(_059_), + .Y(_165_) + ); + OA21x2_ASAP7_75t_R _418_ ( + .A1(_122_), + .A2(_165_), + .B(_056_), + .Y(_166_) + ); + OA21x2_ASAP7_75t_R _419_ ( + .A1(_161_), + .A2(_164_), + .B(_166_), + .Y(_167_) + ); + XNOR2x2_ASAP7_75t_R _420_ ( + .A(_160_), + .B(_167_), + .Y(resp_msg[11]) + ); + INVx1_ASAP7_75t_R _421_ ( + .A(_060_), + .Y(_168_) + ); + AO21x1_ASAP7_75t_R _422_ ( + .A1(_032_), + .A2(_033_), + .B(_030_), + .Y(_169_) + ); + OA211x2_ASAP7_75t_R _423_ ( + .A1(_027_), + .A2(_113_), + .B(_032_), + .C(_026_), + .Y(_170_) + ); + OAI21x1_ASAP7_75t_R _424_ ( + .A1(_169_), + .A2(_170_), + .B(_029_), + .Y(_171_) + ); + INVx1_ASAP7_75t_R _425_ ( + .A(_059_), + .Y(_172_) + ); + AO21x1_ASAP7_75t_R _426_ ( + .A1(_168_), + .A2(_171_), + .B(_172_), + .Y(_173_) + ); + XNOR2x2_ASAP7_75t_R _427_ ( + .A(_122_), + .B(_173_), + .Y(resp_msg[10]) + ); + OA31x2_ASAP7_75t_R _428_ ( + .A1(_124_), + .A2(_162_), + .A3(_163_), + .B1(_147_), + .Y(_174_) + ); + XNOR2x2_ASAP7_75t_R _429_ ( + .A(_168_), + .B(_174_), + .Y(resp_msg[9]) + ); + OA21x2_ASAP7_75t_R _430_ ( + .A1(_027_), + .A2(_113_), + .B(_026_), + .Y(_175_) + ); + OAI21x1_ASAP7_75t_R _431_ ( + .A1(_033_), + .A2(_175_), + .B(_032_), + .Y(_176_) + ); + XNOR2x2_ASAP7_75t_R _432_ ( + .A(_030_), + .B(_176_), + .Y(resp_msg[8]) + ); + XOR2x2_ASAP7_75t_R _433_ ( + .A(_033_), + .B(_164_), + .Y(resp_msg[7]) + ); + OR3x1_ASAP7_75t_R _434_ ( + .A(_048_), + .B(_125_), + .C(_133_), + .Y(_177_) + ); + OR3x1_ASAP7_75t_R _435_ ( + .A(_123_), + .B(_048_), + .C(_133_), + .Y(_178_) + ); + OA21x2_ASAP7_75t_R _436_ ( + .A1(_050_), + .A2(_045_), + .B(_044_), + .Y(_179_) + ); + OA21x2_ASAP7_75t_R _437_ ( + .A1(_024_), + .A2(_179_), + .B(_023_), + .Y(_180_) + ); + OA21x2_ASAP7_75t_R _438_ ( + .A1(_048_), + .A2(_180_), + .B(_047_), + .Y(_181_) + ); + OA21x2_ASAP7_75t_R _439_ ( + .A1(_166_), + .A2(_178_), + .B(_181_), + .Y(_182_) + ); + OA31x2_ASAP7_75t_R _440_ ( + .A1(_162_), + .A2(_163_), + .A3(_177_), + .B1(_182_), + .Y(_183_) + ); + XOR2x2_ASAP7_75t_R _441_ ( + .A(_054_), + .B(_183_), + .Y(resp_msg[15]) + ); + OA21x2_ASAP7_75t_R _442_ ( + .A1(_132_), + .A2(_134_), + .B(_139_), + .Y(_184_) + ); + OR3x1_ASAP7_75t_R _443_ ( + .A(_135_), + .B(_120_), + .C(_184_), + .Y(_064_) + ); + INVx1_ASAP7_75t_R _444_ ( + .A(_064_), + .Y(\ctrl$a_mux_sel[0] ) + ); + BUFx3_ASAP7_75t_R _445_ ( + .A(_120_), + .Y(req_rdy) + ); + AND2x4_ASAP7_75t_R _446_ ( + .A(_136_), + .B(_184_), + .Y(_185_) + ); + BUFx3_ASAP7_75t_R _447_ ( + .A(_185_), + .Y(_186_) + ); + BUFx2_ASAP7_75t_R _448_ ( + .A(_119_), + .Y(_187_) + ); + AND2x2_ASAP7_75t_R _449_ ( + .A(\dpath.a_lt_b$in0[14] ), + .B(_187_), + .Y(_188_) + ); + INVx1_ASAP7_75t_R _450_ ( + .A(_046_), + .Y(_189_) + ); + BUFx3_ASAP7_75t_R _451_ ( + .A(_119_), + .Y(_190_) + ); + AND3x1_ASAP7_75t_R _452_ ( + .A(_189_), + .B(_190_), + .C(_142_), + .Y(_191_) + ); + AO221x2_ASAP7_75t_R _453_ ( + .A1(req_msg[14]), + .A2(req_rdy), + .B1(_186_), + .B2(_188_), + .C(_191_), + .Y(_076_) + ); + AND2x2_ASAP7_75t_R _454_ ( + .A(\dpath.a_lt_b$in0[13] ), + .B(_187_), + .Y(_192_) + ); + INVx1_ASAP7_75t_R _455_ ( + .A(_022_), + .Y(_193_) + ); + AND3x1_ASAP7_75t_R _456_ ( + .A(_193_), + .B(_190_), + .C(_142_), + .Y(_194_) + ); + AO221x2_ASAP7_75t_R _457_ ( + .A1(req_rdy), + .A2(req_msg[13]), + .B1(_186_), + .B2(_192_), + .C(_194_), + .Y(_077_) + ); + AND2x2_ASAP7_75t_R _458_ ( + .A(\dpath.a_lt_b$in0[12] ), + .B(_187_), + .Y(_195_) + ); + INVx1_ASAP7_75t_R _459_ ( + .A(_043_), + .Y(_196_) + ); + AND3x1_ASAP7_75t_R _460_ ( + .A(_196_), + .B(_190_), + .C(_142_), + .Y(_197_) + ); + AO221x2_ASAP7_75t_R _461_ ( + .A1(req_rdy), + .A2(req_msg[12]), + .B1(_186_), + .B2(_195_), + .C(_197_), + .Y(_078_) + ); + AND2x2_ASAP7_75t_R _462_ ( + .A(\dpath.a_lt_b$in0[11] ), + .B(_187_), + .Y(_198_) + ); + INVx1_ASAP7_75t_R _463_ ( + .A(_049_), + .Y(_199_) + ); + AND3x1_ASAP7_75t_R _464_ ( + .A(_199_), + .B(_190_), + .C(_142_), + .Y(_200_) + ); + AO221x2_ASAP7_75t_R _465_ ( + .A1(req_rdy), + .A2(req_msg[11]), + .B1(_186_), + .B2(_198_), + .C(_200_), + .Y(_079_) + ); + BUFx2_ASAP7_75t_R _466_ ( + .A(_119_), + .Y(_201_) + ); + AND2x2_ASAP7_75t_R _467_ ( + .A(\dpath.a_lt_b$in0[10] ), + .B(_201_), + .Y(_202_) + ); + INVx1_ASAP7_75t_R _468_ ( + .A(_055_), + .Y(_203_) + ); + AND3x1_ASAP7_75t_R _469_ ( + .A(_203_), + .B(_190_), + .C(_142_), + .Y(_204_) + ); + AO221x2_ASAP7_75t_R _470_ ( + .A1(req_rdy), + .A2(req_msg[10]), + .B1(_186_), + .B2(_202_), + .C(_204_), + .Y(_080_) + ); + AND2x2_ASAP7_75t_R _471_ ( + .A(\dpath.a_lt_b$in0[9] ), + .B(_201_), + .Y(_205_) + ); + INVx1_ASAP7_75t_R _472_ ( + .A(_058_), + .Y(_206_) + ); + AND3x1_ASAP7_75t_R _473_ ( + .A(_206_), + .B(_190_), + .C(_142_), + .Y(_207_) + ); + AO221x2_ASAP7_75t_R _474_ ( + .A1(req_rdy), + .A2(req_msg[9]), + .B1(_186_), + .B2(_205_), + .C(_207_), + .Y(_081_) + ); + AND2x2_ASAP7_75t_R _475_ ( + .A(\dpath.a_lt_b$in0[8] ), + .B(_201_), + .Y(_208_) + ); + INVx1_ASAP7_75t_R _476_ ( + .A(_028_), + .Y(_209_) + ); + AND3x1_ASAP7_75t_R _477_ ( + .A(_209_), + .B(_190_), + .C(_142_), + .Y(_210_) + ); + AO221x2_ASAP7_75t_R _478_ ( + .A1(req_rdy), + .A2(req_msg[8]), + .B1(_186_), + .B2(_208_), + .C(_210_), + .Y(_082_) + ); + AND2x2_ASAP7_75t_R _479_ ( + .A(\dpath.a_lt_b$in0[7] ), + .B(_201_), + .Y(_211_) + ); + INVx1_ASAP7_75t_R _480_ ( + .A(_031_), + .Y(_212_) + ); + AND3x1_ASAP7_75t_R _481_ ( + .A(_212_), + .B(_190_), + .C(_142_), + .Y(_213_) + ); + AO221x2_ASAP7_75t_R _482_ ( + .A1(req_rdy), + .A2(req_msg[7]), + .B1(_186_), + .B2(_211_), + .C(_213_), + .Y(_083_) + ); + AND2x2_ASAP7_75t_R _483_ ( + .A(\dpath.a_lt_b$in0[6] ), + .B(_201_), + .Y(_214_) + ); + INVx1_ASAP7_75t_R _484_ ( + .A(_025_), + .Y(_215_) + ); + AND3x1_ASAP7_75t_R _485_ ( + .A(_215_), + .B(_190_), + .C(_141_), + .Y(_216_) + ); + AO221x1_ASAP7_75t_R _486_ ( + .A1(_121_), + .A2(req_msg[6]), + .B1(_186_), + .B2(_214_), + .C(_216_), + .Y(_084_) + ); + AND2x2_ASAP7_75t_R _487_ ( + .A(\dpath.a_lt_b$in0[5] ), + .B(_201_), + .Y(_217_) + ); + INVx1_ASAP7_75t_R _488_ ( + .A(_034_), + .Y(_218_) + ); + AND3x1_ASAP7_75t_R _489_ ( + .A(_218_), + .B(_190_), + .C(_141_), + .Y(_219_) + ); + AO221x1_ASAP7_75t_R _490_ ( + .A1(_121_), + .A2(req_msg[5]), + .B1(_186_), + .B2(_217_), + .C(_219_), + .Y(_085_) + ); + AND2x2_ASAP7_75t_R _491_ ( + .A(\dpath.a_lt_b$in0[4] ), + .B(_201_), + .Y(_220_) + ); + INVx1_ASAP7_75t_R _492_ ( + .A(_037_), + .Y(_221_) + ); + AND3x1_ASAP7_75t_R _493_ ( + .A(_221_), + .B(_187_), + .C(_141_), + .Y(_222_) + ); + AO221x1_ASAP7_75t_R _494_ ( + .A1(_121_), + .A2(req_msg[4]), + .B1(_185_), + .B2(_220_), + .C(_222_), + .Y(_086_) + ); + AND2x2_ASAP7_75t_R _495_ ( + .A(\dpath.a_lt_b$in0[3] ), + .B(_201_), + .Y(_223_) + ); + INVx1_ASAP7_75t_R _496_ ( + .A(_040_), + .Y(_224_) + ); + AND3x1_ASAP7_75t_R _497_ ( + .A(_224_), + .B(_187_), + .C(_141_), + .Y(_225_) + ); + AO221x1_ASAP7_75t_R _498_ ( + .A1(_121_), + .A2(req_msg[3]), + .B1(_185_), + .B2(_223_), + .C(_225_), + .Y(_087_) + ); + AND2x2_ASAP7_75t_R _499_ ( + .A(\dpath.a_lt_b$in0[2] ), + .B(_201_), + .Y(_226_) + ); + INVx1_ASAP7_75t_R _500_ ( + .A(_061_), + .Y(_227_) + ); + AND3x1_ASAP7_75t_R _501_ ( + .A(_227_), + .B(_187_), + .C(_141_), + .Y(_228_) + ); + AO221x1_ASAP7_75t_R _502_ ( + .A1(_121_), + .A2(req_msg[2]), + .B1(_185_), + .B2(_226_), + .C(_228_), + .Y(_088_) + ); + AND2x2_ASAP7_75t_R _503_ ( + .A(\dpath.a_lt_b$in0[1] ), + .B(_201_), + .Y(_229_) + ); + AND3x1_ASAP7_75t_R _504_ ( + .A(\dpath.a_lt_b$in1[1] ), + .B(_187_), + .C(_141_), + .Y(_230_) + ); + AO221x1_ASAP7_75t_R _505_ ( + .A1(_121_), + .A2(req_msg[1]), + .B1(_185_), + .B2(_229_), + .C(_230_), + .Y(_089_) + ); + AND2x2_ASAP7_75t_R _506_ ( + .A(\dpath.a_lt_b$in0[0] ), + .B(_119_), + .Y(_231_) + ); + AND3x1_ASAP7_75t_R _507_ ( + .A(\dpath.a_lt_b$in1[0] ), + .B(_187_), + .C(_141_), + .Y(_232_) + ); + AO221x1_ASAP7_75t_R _508_ ( + .A1(_121_), + .A2(req_msg[0]), + .B1(_185_), + .B2(_231_), + .C(_232_), + .Y(_090_) + ); + AND2x2_ASAP7_75t_R _509_ ( + .A(_135_), + .B(_119_), + .Y(_233_) + ); + BUFx2_ASAP7_75t_R _510_ ( + .A(_233_), + .Y(_234_) + ); + BUFx2_ASAP7_75t_R _511_ ( + .A(_066_), + .Y(_235_) + ); + BUFx2_ASAP7_75t_R _512_ ( + .A(_235_), + .Y(_236_) + ); + INVx1_ASAP7_75t_R _513_ ( + .A(_068_), + .Y(_237_) + ); + NAND2x1_ASAP7_75t_R _514_ ( + .A(_135_), + .B(_119_), + .Y(_238_) + ); + AND2x2_ASAP7_75t_R _515_ ( + .A(_237_), + .B(_238_), + .Y(_239_) + ); + OA21x2_ASAP7_75t_R _516_ ( + .A1(req_msg[30]), + .A2(_236_), + .B(_239_), + .Y(_240_) + ); + INVx1_ASAP7_75t_R _517_ ( + .A(_066_), + .Y(_241_) + ); + BUFx2_ASAP7_75t_R _518_ ( + .A(_241_), + .Y(_242_) + ); + AND2x2_ASAP7_75t_R _519_ ( + .A(req_msg[30]), + .B(_242_), + .Y(_243_) + ); + INVx1_ASAP7_75t_R _520_ ( + .A(_065_), + .Y(_244_) + ); + BUFx2_ASAP7_75t_R _521_ ( + .A(_244_), + .Y(_245_) + ); + AND3x1_ASAP7_75t_R _522_ ( + .A(_189_), + .B(_245_), + .C(_235_), + .Y(_246_) + ); + BUFx2_ASAP7_75t_R _523_ ( + .A(_238_), + .Y(_247_) + ); + OA21x2_ASAP7_75t_R _524_ ( + .A1(_243_), + .A2(_246_), + .B(_247_), + .Y(_248_) + ); + AO221x1_ASAP7_75t_R _525_ ( + .A1(\dpath.a_lt_b$in0[14] ), + .A2(_234_), + .B1(_240_), + .B2(resp_msg[14]), + .C(_248_), + .Y(_091_) + ); + OA21x2_ASAP7_75t_R _526_ ( + .A1(_235_), + .A2(req_msg[29]), + .B(_239_), + .Y(_249_) + ); + AND2x2_ASAP7_75t_R _527_ ( + .A(_241_), + .B(req_msg[29]), + .Y(_250_) + ); + AND3x1_ASAP7_75t_R _528_ ( + .A(_193_), + .B(_244_), + .C(_066_), + .Y(_251_) + ); + OA21x2_ASAP7_75t_R _529_ ( + .A1(_250_), + .A2(_251_), + .B(_238_), + .Y(_252_) + ); + AO221x1_ASAP7_75t_R _530_ ( + .A1(\dpath.a_lt_b$in0[13] ), + .A2(_233_), + .B1(_249_), + .B2(_159_), + .C(_252_), + .Y(_253_) + ); + AO21x1_ASAP7_75t_R _531_ ( + .A1(_157_), + .A2(_249_), + .B(_253_), + .Y(_092_) + ); + AND2x2_ASAP7_75t_R _532_ ( + .A(_235_), + .B(_238_), + .Y(_254_) + ); + OAI21x1_ASAP7_75t_R _533_ ( + .A1(_043_), + .A2(_065_), + .B(_254_), + .Y(_255_) + ); + AO21x1_ASAP7_75t_R _534_ ( + .A1(_237_), + .A2(resp_msg[12]), + .B(_255_), + .Y(_256_) + ); + OA21x2_ASAP7_75t_R _535_ ( + .A1(_236_), + .A2(req_msg[28]), + .B(_247_), + .Y(_257_) + ); + AO21x1_ASAP7_75t_R _536_ ( + .A1(\dpath.a_lt_b$in0[12] ), + .A2(_234_), + .B(_257_), + .Y(_258_) + ); + AND2x2_ASAP7_75t_R _537_ ( + .A(_256_), + .B(_258_), + .Y(_093_) + ); + OR3x1_ASAP7_75t_R _538_ ( + .A(_066_), + .B(req_msg[27]), + .C(_233_), + .Y(_259_) + ); + OAI21x1_ASAP7_75t_R _539_ ( + .A1(\dpath.a_lt_b$in0[11] ), + .A2(_238_), + .B(_259_), + .Y(_260_) + ); + OR3x1_ASAP7_75t_R _540_ ( + .A(_068_), + .B(_123_), + .C(_260_), + .Y(_261_) + ); + INVx1_ASAP7_75t_R _541_ ( + .A(_261_), + .Y(_262_) + ); + OA211x2_ASAP7_75t_R _542_ ( + .A1(_161_), + .A2(_164_), + .B(_262_), + .C(_166_), + .Y(_263_) + ); + OR3x1_ASAP7_75t_R _543_ ( + .A(_068_), + .B(_160_), + .C(_260_), + .Y(_264_) + ); + NOR3x1_ASAP7_75t_R _544_ ( + .A(_161_), + .B(_164_), + .C(_264_), + .Y(_265_) + ); + OA21x2_ASAP7_75t_R _545_ ( + .A1(_049_), + .A2(_065_), + .B(_254_), + .Y(_266_) + ); + OAI22x1_ASAP7_75t_R _546_ ( + .A1(_260_), + .A2(_266_), + .B1(_264_), + .B2(_166_), + .Y(_267_) + ); + OR3x1_ASAP7_75t_R _547_ ( + .A(_263_), + .B(_265_), + .C(_267_), + .Y(_094_) + ); + OA21x2_ASAP7_75t_R _548_ ( + .A1(_169_), + .A2(_170_), + .B(_029_), + .Y(_268_) + ); + INVx1_ASAP7_75t_R _549_ ( + .A(_122_), + .Y(_269_) + ); + OA21x2_ASAP7_75t_R _550_ ( + .A1(_235_), + .A2(req_msg[26]), + .B(_239_), + .Y(_270_) + ); + AND3x1_ASAP7_75t_R _551_ ( + .A(_059_), + .B(_269_), + .C(_270_), + .Y(_271_) + ); + AND2x2_ASAP7_75t_R _552_ ( + .A(_122_), + .B(_168_), + .Y(_272_) + ); + AND3x1_ASAP7_75t_R _553_ ( + .A(_059_), + .B(_269_), + .C(_060_), + .Y(_273_) + ); + AO221x1_ASAP7_75t_R _554_ ( + .A1(_172_), + .A2(_122_), + .B1(_171_), + .B2(_272_), + .C(_273_), + .Y(_274_) + ); + AND2x2_ASAP7_75t_R _555_ ( + .A(_242_), + .B(req_msg[26]), + .Y(_275_) + ); + AND3x1_ASAP7_75t_R _556_ ( + .A(_203_), + .B(_245_), + .C(_235_), + .Y(_276_) + ); + OA21x2_ASAP7_75t_R _557_ ( + .A1(_275_), + .A2(_276_), + .B(_238_), + .Y(_277_) + ); + AO21x1_ASAP7_75t_R _558_ ( + .A1(\dpath.a_lt_b$in0[10] ), + .A2(_233_), + .B(_277_), + .Y(_278_) + ); + AO221x1_ASAP7_75t_R _559_ ( + .A1(_268_), + .A2(_271_), + .B1(_274_), + .B2(_270_), + .C(_278_), + .Y(_095_) + ); + OR2x2_ASAP7_75t_R _560_ ( + .A(_236_), + .B(req_msg[25]), + .Y(_279_) + ); + AND3x1_ASAP7_75t_R _561_ ( + .A(_206_), + .B(_245_), + .C(_235_), + .Y(_280_) + ); + AO221x1_ASAP7_75t_R _562_ ( + .A1(_242_), + .A2(req_msg[25]), + .B1(_119_), + .B2(_135_), + .C(_280_), + .Y(_281_) + ); + NAND2x1_ASAP7_75t_R _563_ ( + .A(_010_), + .B(_233_), + .Y(_282_) + ); + AO32x1_ASAP7_75t_R _564_ ( + .A1(resp_msg[9]), + .A2(_239_), + .A3(_279_), + .B1(_281_), + .B2(_282_), + .Y(_096_) + ); + OAI21x1_ASAP7_75t_R _565_ ( + .A1(_066_), + .A2(req_msg[24]), + .B(_238_), + .Y(_283_) + ); + OA21x2_ASAP7_75t_R _566_ ( + .A1(_009_), + .A2(_238_), + .B(_283_), + .Y(_284_) + ); + OA21x2_ASAP7_75t_R _567_ ( + .A1(_028_), + .A2(_065_), + .B(_254_), + .Y(_285_) + ); + NOR2x1_ASAP7_75t_R _568_ ( + .A(_284_), + .B(_285_), + .Y(_286_) + ); + INVx1_ASAP7_75t_R _569_ ( + .A(_284_), + .Y(_287_) + ); + AND4x1_ASAP7_75t_R _570_ ( + .A(_030_), + .B(_237_), + .C(_176_), + .D(_287_), + .Y(_288_) + ); + OR3x1_ASAP7_75t_R _571_ ( + .A(_030_), + .B(_068_), + .C(_284_), + .Y(_289_) + ); + NOR2x1_ASAP7_75t_R _572_ ( + .A(_176_), + .B(_289_), + .Y(_290_) + ); + OR3x1_ASAP7_75t_R _573_ ( + .A(_286_), + .B(_288_), + .C(_290_), + .Y(_097_) + ); + OR3x1_ASAP7_75t_R _574_ ( + .A(_235_), + .B(req_msg[23]), + .C(_233_), + .Y(_291_) + ); + OAI21x1_ASAP7_75t_R _575_ ( + .A1(\dpath.a_lt_b$in0[7] ), + .A2(_247_), + .B(_291_), + .Y(_292_) + ); + NOR2x1_ASAP7_75t_R _576_ ( + .A(_068_), + .B(_292_), + .Y(_293_) + ); + OA21x2_ASAP7_75t_R _577_ ( + .A1(_031_), + .A2(_065_), + .B(_254_), + .Y(_294_) + ); + NOR2x1_ASAP7_75t_R _578_ ( + .A(_292_), + .B(_294_), + .Y(_295_) + ); + AO21x1_ASAP7_75t_R _579_ ( + .A1(resp_msg[7]), + .A2(_293_), + .B(_295_), + .Y(_098_) + ); + AO221x1_ASAP7_75t_R _580_ ( + .A1(_215_), + .A2(_245_), + .B1(resp_msg[6]), + .B2(_237_), + .C(_242_), + .Y(_296_) + ); + OA211x2_ASAP7_75t_R _581_ ( + .A1(_236_), + .A2(req_msg[22]), + .B(_247_), + .C(_296_), + .Y(_297_) + ); + AO21x1_ASAP7_75t_R _582_ ( + .A1(\dpath.a_lt_b$in0[6] ), + .A2(_234_), + .B(_297_), + .Y(_099_) + ); + OAI21x1_ASAP7_75t_R _583_ ( + .A1(_034_), + .A2(_065_), + .B(_254_), + .Y(_298_) + ); + AO21x1_ASAP7_75t_R _584_ ( + .A1(_237_), + .A2(resp_msg[5]), + .B(_298_), + .Y(_299_) + ); + OA21x2_ASAP7_75t_R _585_ ( + .A1(_236_), + .A2(req_msg[21]), + .B(_238_), + .Y(_300_) + ); + AO21x1_ASAP7_75t_R _586_ ( + .A1(\dpath.a_lt_b$in0[5] ), + .A2(_234_), + .B(_300_), + .Y(_301_) + ); + AND2x2_ASAP7_75t_R _587_ ( + .A(_299_), + .B(_301_), + .Y(_100_) + ); + AO221x1_ASAP7_75t_R _588_ ( + .A1(_221_), + .A2(_245_), + .B1(resp_msg[4]), + .B2(_237_), + .C(_242_), + .Y(_302_) + ); + OA211x2_ASAP7_75t_R _589_ ( + .A1(_236_), + .A2(req_msg[20]), + .B(_247_), + .C(_302_), + .Y(_303_) + ); + AO21x1_ASAP7_75t_R _590_ ( + .A1(\dpath.a_lt_b$in0[4] ), + .A2(_234_), + .B(_303_), + .Y(_101_) + ); + AO221x1_ASAP7_75t_R _591_ ( + .A1(_224_), + .A2(_245_), + .B1(resp_msg[3]), + .B2(_237_), + .C(_242_), + .Y(_304_) + ); + OA211x2_ASAP7_75t_R _592_ ( + .A1(_236_), + .A2(req_msg[19]), + .B(_247_), + .C(_304_), + .Y(_305_) + ); + AO21x1_ASAP7_75t_R _593_ ( + .A1(\dpath.a_lt_b$in0[3] ), + .A2(_234_), + .B(_305_), + .Y(_102_) + ); + AO22x1_ASAP7_75t_R _594_ ( + .A1(_227_), + .A2(_245_), + .B1(resp_msg[2]), + .B2(_237_), + .Y(_306_) + ); + OR2x2_ASAP7_75t_R _595_ ( + .A(_235_), + .B(req_msg[18]), + .Y(_307_) + ); + OA211x2_ASAP7_75t_R _596_ ( + .A1(_242_), + .A2(_306_), + .B(_307_), + .C(_247_), + .Y(_308_) + ); + AO21x1_ASAP7_75t_R _597_ ( + .A1(\dpath.a_lt_b$in0[2] ), + .A2(_234_), + .B(_308_), + .Y(_103_) + ); + AO221x1_ASAP7_75t_R _598_ ( + .A1(\dpath.a_lt_b$in1[1] ), + .A2(_245_), + .B1(resp_msg[1]), + .B2(_237_), + .C(_242_), + .Y(_309_) + ); + OA211x2_ASAP7_75t_R _599_ ( + .A1(_236_), + .A2(req_msg[17]), + .B(_247_), + .C(_309_), + .Y(_310_) + ); + AO21x1_ASAP7_75t_R _600_ ( + .A1(\dpath.a_lt_b$in0[1] ), + .A2(_234_), + .B(_310_), + .Y(_104_) + ); + AO221x1_ASAP7_75t_R _601_ ( + .A1(\dpath.a_lt_b$in1[0] ), + .A2(_245_), + .B1(resp_msg[0]), + .B2(_237_), + .C(_242_), + .Y(_311_) + ); + OA211x2_ASAP7_75t_R _602_ ( + .A1(_236_), + .A2(req_msg[16]), + .B(_247_), + .C(_311_), + .Y(_312_) + ); + AO21x1_ASAP7_75t_R _603_ ( + .A1(\dpath.a_lt_b$in0[0] ), + .A2(_234_), + .B(_312_), + .Y(_105_) + ); + INVx1_ASAP7_75t_R _604_ ( + .A(req_val), + .Y(_313_) + ); + NOR2x1_ASAP7_75t_R _605_ ( + .A(_017_), + .B(_247_), + .Y(resp_val) + ); + AO221x1_ASAP7_75t_R _606_ ( + .A1(_121_), + .A2(_313_), + .B1(resp_rdy), + .B2(resp_val), + .C(reset), + .Y(_073_) + ); + AND4x1_ASAP7_75t_R _607_ ( + .A(_031_), + .B(_028_), + .C(_058_), + .D(_046_), + .Y(_314_) + ); + AND5x1_ASAP7_75t_R _608_ ( + .A(_055_), + .B(_049_), + .C(_043_), + .D(_022_), + .E(_314_), + .Y(_315_) + ); + AND4x1_ASAP7_75t_R _609_ ( + .A(_052_), + .B(_069_), + .C(_021_), + .D(_025_), + .Y(_316_) + ); + AND5x1_ASAP7_75t_R _610_ ( + .A(_061_), + .B(_040_), + .C(_037_), + .D(_034_), + .E(_316_), + .Y(_317_) + ); + NAND2x1_ASAP7_75t_R _611_ ( + .A(_315_), + .B(_317_), + .Y(_318_) + ); + OR3x1_ASAP7_75t_R _612_ ( + .A(_135_), + .B(_184_), + .C(_318_), + .Y(_319_) + ); + AOI221x1_ASAP7_75t_R _613_ ( + .A1(resp_rdy), + .A2(_234_), + .B1(_319_), + .B2(_017_), + .C(reset), + .Y(_074_) + ); + AOI22x1_ASAP7_75t_R _614_ ( + .A1(req_rdy), + .A2(req_val), + .B1(_318_), + .B2(_136_), + .Y(_320_) + ); + AOI21x1_ASAP7_75t_R _615_ ( + .A1(_142_), + .A2(_320_), + .B(reset), + .Y(_075_) + ); + AND2x2_ASAP7_75t_R _616_ ( + .A(\dpath.a_lt_b$in0[15] ), + .B(_119_), + .Y(_321_) + ); + INVx1_ASAP7_75t_R _617_ ( + .A(_052_), + .Y(_322_) + ); + AND3x1_ASAP7_75t_R _618_ ( + .A(_322_), + .B(_187_), + .C(_141_), + .Y(_323_) + ); + AO221x1_ASAP7_75t_R _619_ ( + .A1(_121_), + .A2(req_msg[15]), + .B1(_185_), + .B2(_321_), + .C(_323_), + .Y(_106_) + ); + OR2x2_ASAP7_75t_R _620_ ( + .A(_236_), + .B(req_msg[31]), + .Y(_324_) + ); + AND3x1_ASAP7_75t_R _621_ ( + .A(_322_), + .B(_245_), + .C(_235_), + .Y(_325_) + ); + AO221x1_ASAP7_75t_R _622_ ( + .A1(_135_), + .A2(_119_), + .B1(req_msg[31]), + .B2(_242_), + .C(_325_), + .Y(_326_) + ); + NAND2x1_ASAP7_75t_R _623_ ( + .A(_001_), + .B(_233_), + .Y(_327_) + ); + AO32x1_ASAP7_75t_R _624_ ( + .A1(resp_msg[15]), + .A2(_239_), + .A3(_324_), + .B1(_326_), + .B2(_327_), + .Y(_107_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) + FAx1_ASAP7_75t_R _625_ ( + .A(_018_), + .B(\dpath.a_lt_b$in1[1] ), + .CI(_019_), + .CON(_000_), + .SN(resp_msg[1]) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _626_ ( + .A(_022_), + .B(\dpath.a_lt_b$in0[13] ), + .CON(_023_), + .SN(_024_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _627_ ( + .A(_025_), + .B(\dpath.a_lt_b$in0[6] ), + .CON(_026_), + .SN(_027_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _628_ ( + .A(_028_), + .B(\dpath.a_lt_b$in0[8] ), + .CON(_029_), + .SN(_030_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _629_ ( + .A(_031_), + .B(\dpath.a_lt_b$in0[7] ), + .CON(_032_), + .SN(_033_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _630_ ( + .A(_034_), + .B(\dpath.a_lt_b$in0[5] ), + .CON(_035_), + .SN(_036_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _631_ ( + .A(_037_), + .B(\dpath.a_lt_b$in0[4] ), + .CON(_038_), + .SN(_039_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _632_ ( + .A(_040_), + .B(\dpath.a_lt_b$in0[3] ), + .CON(_041_), + .SN(_042_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _633_ ( + .A(_043_), + .B(\dpath.a_lt_b$in0[12] ), + .CON(_044_), + .SN(_045_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _634_ ( + .A(_046_), + .B(\dpath.a_lt_b$in0[14] ), + .CON(_047_), + .SN(_048_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _635_ ( + .A(_049_), + .B(\dpath.a_lt_b$in0[11] ), + .CON(_050_), + .SN(_051_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _636_ ( + .A(_052_), + .B(\dpath.a_lt_b$in0[15] ), + .CON(_053_), + .SN(_054_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _637_ ( + .A(_055_), + .B(\dpath.a_lt_b$in0[10] ), + .CON(_056_), + .SN(_057_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _638_ ( + .A(_058_), + .B(\dpath.a_lt_b$in0[9] ), + .CON(_059_), + .SN(_060_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _639_ ( + .A(_061_), + .B(\dpath.a_lt_b$in0[2] ), + .CON(_062_), + .SN(_063_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _640_ ( + .A(_064_), + .B(\ctrl$a_mux_sel[1] ), + .CON(_065_), + .SN(_066_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _641_ ( + .A(\ctrl$a_mux_sel[0] ), + .B(_067_), + .CON(_068_), + .SN(_328_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _642_ ( + .A(_069_), + .B(\dpath.a_lt_b$in0[0] ), + .CON(_329_), + .SN(resp_msg[0]) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _643_ ( + .A(\dpath.a_lt_b$in1[0] ), + .B(_070_), + .CON(_020_), + .SN(_330_) + ); + (* module_not_derived = 32'b00000000000000000000000000000001 *) + (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) + HAxp5_ASAP7_75t_R _644_ ( + .A(_021_), + .B(\dpath.a_lt_b$in0[1] ), + .CON(_071_), + .SN(_072_) + ); + DFFHQNx1_ASAP7_75t_R \ctrl.state.out[0]$_DFF_P_ ( + .CLK(clk), + .D(_073_), + .QN(_016_) + ); + DFFHQNx1_ASAP7_75t_R \ctrl.state.out[1]$_DFF_P_ ( + .CLK(clk), + .D(_074_), + .QN(_017_) + ); + DFFHQNx1_ASAP7_75t_R \ctrl.state.out[2]$_DFF_P_ ( + .CLK(clk), + .D(_075_), + .QN(_002_) + ); + (* src = "/workspace/ws10/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(_105_), + .QN(_070_) + ); + (* src = "/workspace/ws10/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(_095_), + .QN(_011_) + ); + (* src = "/workspace/ws10/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(_094_), + .QN(_012_) + ); + (* src = "/workspace/ws10/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(_093_), + .QN(_013_) + ); + (* src = "/workspace/ws10/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(_092_), + .QN(_014_) + ); + (* src = "/workspace/ws10/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(_091_), + .QN(_015_) + ); + (* src = "/workspace/ws10/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(_107_), + .QN(_001_) + ); + (* src = "/workspace/ws10/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(_104_), + .QN(_019_) + ); + (* src = "/workspace/ws10/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(_103_), + .QN(_003_) + ); + (* src = "/workspace/ws10/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(_102_), + .QN(_004_) + ); + (* src = "/workspace/ws10/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(_101_), + .QN(_005_) + ); + (* src = "/workspace/ws10/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(_100_), + .QN(_006_) + ); + (* src = "/workspace/ws10/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(_099_), + .QN(_007_) + ); + (* src = "/workspace/ws10/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(_098_), + .QN(_008_) + ); + (* src = "/workspace/ws10/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(_097_), + .QN(_009_) + ); + (* src = "/workspace/ws10/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(_096_), + .QN(_010_) + ); + (* src = "/workspace/ws10/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(_090_), + .QN(_069_) + ); + (* src = "/workspace/ws10/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(_080_), + .QN(_055_) + ); + (* src = "/workspace/ws10/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(_079_), + .QN(_049_) + ); + (* src = "/workspace/ws10/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(_078_), + .QN(_043_) + ); + (* src = "/workspace/ws10/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(_077_), + .QN(_022_) + ); + (* src = "/workspace/ws10/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(_076_), + .QN(_046_) + ); + (* src = "/workspace/ws10/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(_106_), + .QN(_052_) + ); + (* src = "/workspace/ws10/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(_089_), + .QN(_021_) + ); + (* src = "/workspace/ws10/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(_061_) + ); + (* src = "/workspace/ws10/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(_087_), + .QN(_040_) + ); + (* src = "/workspace/ws10/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(_086_), + .QN(_037_) + ); + (* src = "/workspace/ws10/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(_085_), + .QN(_034_) + ); + (* src = "/workspace/ws10/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(_084_), + .QN(_025_) + ); + (* src = "/workspace/ws10/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(_083_), + .QN(_031_) + ); + (* src = "/workspace/ws10/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(_082_), + .QN(_028_) + ); + (* src = "/workspace/ws10/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(_081_), + .QN(_058_) + ); +endmodule From 005c3c6e1f0425d7dfdf21f2a6a4c9a5ad5ea20e Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Thu, 23 Apr 2026 16:09:01 +0900 Subject: [PATCH 2/5] Apply review feedback Signed-off-by: Jaehyun Kim --- src/rsz/src/RepairHold.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rsz/src/RepairHold.cc b/src/rsz/src/RepairHold.cc index 6745fc87a3b..c6ac99f5142 100644 --- a/src/rsz/src/RepairHold.cc +++ b/src/rsz/src/RepairHold.cc @@ -580,7 +580,7 @@ void RepairHold::repairEndHold(sta::Vertex* end_vertex, if (load_pin == nullptr) { continue; } - if (network_->direction(load_pin)->isAnyOutput() + if (!network_->direction(load_pin)->isAnyInput() && !network_->isTopLevelPort(load_pin)) { continue; } From 83aab973b34f0972db9a331b380cb4c1ac96b691 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Thu, 23 Apr 2026 16:19:01 +0900 Subject: [PATCH 3/5] Adjust `repair_hold_multi_output_load.tcl` test case Signed-off-by: Jaehyun Kim --- src/rsz/test/repair_hold_multi_output_load.ok | 13 ++----------- src/rsz/test/repair_hold_multi_output_load.tcl | 6 +++--- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/rsz/test/repair_hold_multi_output_load.ok b/src/rsz/test/repair_hold_multi_output_load.ok index 98ac5ea41f4..4c1b9cc4c52 100644 --- a/src/rsz/test/repair_hold_multi_output_load.ok +++ b/src/rsz/test/repair_hold_multi_output_load.ok @@ -422,16 +422,7 @@ Iteration | Resized | Buffers | Cloned Gates | Area | WNS | TNS | En 30 | 0 | 69 | 0 | +10.1% | -68.808 | -1711.372 | ctrl.state.out[2]$_DFF_P_/D 40 | 0 | 107 | 0 | +15.6% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D 50 | 0 | 151 | 0 | +22.0% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D - 60 | 0 | 39 | 0 | +29.3% | -58.289 | -1169.735 | dpath.b_reg.out[1]$_DFFE_PP_/D - 70 | 0 | 79 | 0 | +35.1% | -55.042 | -695.836 | dpath.b_reg.out[11]$_DFFE_PP_/D - 80 | 0 | 131 | 0 | +42.7% | -29.893 | -316.407 | dpath.a_reg.out[4]$_DFFE_PP_/D - 90 | 0 | 206 | 0 | +53.6% | -22.586 | -199.672 | ctrl.state.out[2]$_DFF_P_/D - 100 | 0 | 10 | 0 | +59.9% | -22.586 | -199.672 | ctrl.state.out[2]$_DFF_P_/D - 110 | 0 | 80 | 0 | +70.1% | -10.084 | -101.509 | dpath.b_reg.out[4]$_DFFE_PP_/D - 120 | 0 | 160 | 0 | +81.7% | -7.518 | -14.716 | dpath.b_reg.out[12]$_DFFE_PP_/D - 130 | 0 | 264 | 0 | +96.9% | 41.395 | 0.000 | dpath.a_reg.out[6]$_DFFE_PP_/D - 140 | 0 | 11 | 0 | +109.3% | 69.917 | 0.000 | ctrl.state.out[2]$_DFF_P_/D - final | 0 | 16 | 0 | +110.0% | 69.917 | 0.000 | ctrl.state.out[2]$_DFF_P_/D + final | 0 | 13 | 0 | +25.5% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D -------------------------------------------------------------------------------------- [WARNING RSZ-0064] Unable to repair all hold checks within margin. -[INFO RSZ-0032] Inserted 16 hold buffers. +[INFO RSZ-0032] Inserted 13 hold buffers. diff --git a/src/rsz/test/repair_hold_multi_output_load.tcl b/src/rsz/test/repair_hold_multi_output_load.tcl index c376ce483fd..8c813dd2e44 100644 --- a/src/rsz/test/repair_hold_multi_output_load.tcl +++ b/src/rsz/test/repair_hold_multi_output_load.tcl @@ -48,8 +48,8 @@ estimate_parasitics -placement repair_timing -hold -allow_setup_violations \ -hold_margin 124 \ - -setup_margin -31000 \ + -setup_margin -1000 \ -max_buffer_percent 80 \ - -max_passes 10000 \ - -max_iterations 200000 \ + -max_passes 3 \ + -max_iterations 3 \ -verbose From fb939e957964fa30ef8381e1684201fa5d2637e6 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Fri, 24 Apr 2026 10:00:42 +0900 Subject: [PATCH 4/5] Reduce `repair_hold_multi_output_load.tcl` Signed-off-by: Jaehyun Kim --- src/rsz/test/repair_hold_multi_output_load.ok | 505 +--- .../test/repair_hold_multi_output_load.tcl | 72 +- src/rsz/test/repair_hold_multi_output_load.v | 2528 +---------------- 3 files changed, 151 insertions(+), 2954 deletions(-) diff --git a/src/rsz/test/repair_hold_multi_output_load.ok b/src/rsz/test/repair_hold_multi_output_load.ok index 4c1b9cc4c52..183e88c1847 100644 --- a/src/rsz/test/repair_hold_multi_output_load.ok +++ b/src/rsz/test/repair_hold_multi_output_load.ok @@ -1,339 +1,21 @@ [INFO ODB-0227] LEF file: asap7/asap7_tech_1x_201209.lef, created 30 layers, 9 vias -[INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_L_1x_220121a.lef, created 212 library cells -[INFO ODB-0394] Duplicate site asap7sc7p5t in asap7sc7p5t_28_R_1x_220121a already seen in asap7sc7p5t_28_L_1x_220121a [INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_R_1x_220121a.lef, created 212 library cells -[INFO ODB-0394] Duplicate site asap7sc7p5t in asap7sc7p5t_28_SL_1x_220121a already seen in asap7sc7p5t_28_L_1x_220121a -[INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_SL_1x_220121a.lef, created 212 library cells -[INFO IFP-0001] Added 29 rows of 146 site asap7sc7p5t. -[INFO IFP-0100] Die BBox: ( 0.000 0.000 ) ( 8.977 8.977 ) um -[INFO IFP-0101] Core BBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um -[INFO IFP-0102] Core area: 61.732 um^2 -[INFO IFP-0103] Total instances area: 41.363 um^2 -[INFO IFP-0104] Effective utilization: 0.670 -[INFO IFP-0105] Number of instances: 349 -[INFO GPL-0001] ---- Initialize GPL Main Data Structures -[INFO GPL-0002] DBU: 1000 -[INFO GPL-0003] SiteSize: ( 0.054 0.270 ) um -[INFO GPL-0004] CoreBBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um -[INFO GPL-0036] Movable instances area: 41.363 um^2 -[INFO GPL-0037] Total instances area: 41.363 um^2 -[INFO GPL-0035] Pin density area adjust: 5.068 um^2 -[INFO GPL-0032] ---- Initialize Region: Top-level -[INFO GPL-0006] Number of instances: 349 -[INFO GPL-0007] Movable instances: 349 -[INFO GPL-0008] Fixed instances: 0 -[INFO GPL-0009] Dummy instances: 0 -[INFO GPL-0010] Number of nets: 405 -[INFO GPL-0011] Number of pins: 1258 -[INFO GPL-0012] Die BBox: ( 0.000 0.000 ) ( 8.977 8.977 ) um -[INFO GPL-0013] Core BBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um -[INFO GPL-0016] Core area: 61.732 um^2 -[INFO GPL-0014] Region name: top-level. -[INFO GPL-0015] Region area: 61.732 um^2 -[INFO GPL-0017] Fixed instances area: 0.000 um^2 -[INFO GPL-0018] Movable instances area: 46.431 um^2 -[INFO GPL-0019] Utilization: 75.214 % -[INFO GPL-0020] Standard cells area: 46.431 um^2 -[INFO GPL-0021] Large instances area: 0.000 um^2 -[INFO GPL-0005] ---- Execute Conjugate Gradient Initial Placement. -[INFO GPL-0051] Source of initial instance position counters: - Odb location = 0 Core center = 349 Region center = 0 -[INFO GPL-0033] ---- Initialize Nesterov Region: Top-level -[WARNING GPL-0302] Target density 0.3500 is too low for the available free area. -Automatically adjusting to uniform density 0.7600. -[INFO GPL-0023] Placement target density: 0.7600 -[INFO GPL-0024] Movable insts average area: 0.133 um^2 -[INFO GPL-0025] Ideal bin area: 0.175 um^2 -[INFO GPL-0026] Ideal bin count: 352 -[INFO GPL-0027] Total bin area: 61.732 um^2 -[INFO GPL-0028] Bin count (X, Y): 16 , 16 -[INFO GPL-0029] Bin size (W * H): 0.493 * 0.489 um -[INFO GPL-0030] Number of bins: 256 -[INFO GPL-0007] ---- Execute Nesterov Global Placement. -[INFO GPL-0031] HPWL: Half-Perimeter Wirelength -Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group ---------------------------------------------------------------- - 0 | 0.9295 | 2.699840e+02 | +0.00% | 1.54e-11 | - 10 | 0.9683 | 8.746600e+01 | -67.60% | 2.51e-11 | - 20 | 0.9680 | 8.618100e+01 | -1.47% | 4.09e-11 | - 30 | 0.9682 | 8.601200e+01 | -0.20% | 6.67e-11 | - 40 | 0.9680 | 8.610800e+01 | +0.11% | 1.09e-10 | - 50 | 0.9679 | 8.617800e+01 | +0.08% | 1.77e-10 | - 60 | 0.9676 | 8.634600e+01 | +0.19% | 2.88e-10 | - 70 | 0.9674 | 8.657900e+01 | +0.27% | 4.70e-10 | - 80 | 0.9674 | 8.699300e+01 | +0.48% | 7.65e-10 | - 90 | 0.9673 | 8.806500e+01 | +1.23% | 1.25e-09 | - 100 | 0.9661 | 9.437300e+01 | +7.16% | 2.03e-09 | - 110 | 0.9515 | 1.133230e+02 | +20.08% | 3.31e-09 | - 120 | 0.9479 | 1.253280e+02 | +10.59% | 5.38e-09 | - 130 | 0.9093 | 1.603990e+02 | +27.98% | 8.77e-09 | - 140 | 0.8562 | 2.068080e+02 | +28.93% | 1.43e-08 | - 150 | 0.8295 | 2.331990e+02 | +12.76% | 2.33e-08 | - 160 | 0.7922 | 2.660500e+02 | +14.09% | 3.79e-08 | - 170 | 0.7565 | 2.996020e+02 | +12.61% | 6.17e-08 | - 180 | 0.7111 | 3.315970e+02 | +10.68% | 1.01e-07 | - 190 | 0.6646 | 3.611590e+02 | +8.92% | 1.64e-07 | - 200 | 0.6171 | 3.894800e+02 | +7.84% | 2.67e-07 | - 210 | 0.5658 | 4.188750e+02 | +7.55% | 4.35e-07 | - 220 | 0.5117 | 4.467690e+02 | +6.66% | 7.08e-07 | - 230 | 0.4575 | 4.728460e+02 | +5.84% | 1.15e-06 | - 240 | 0.3991 | 4.948510e+02 | +4.65% | 1.88e-06 | - 250 | 0.3474 | 5.156300e+02 | +4.20% | 3.06e-06 | - 260 | 0.3033 | 5.274350e+02 | +2.29% | 4.55e-06 | - 270 | 0.2725 | 5.424420e+02 | +2.85% | 6.71e-06 | - 280 | 0.2422 | 5.516920e+02 | +1.71% | 9.88e-06 | - 290 | 0.2117 | 5.611930e+02 | +1.72% | 1.46e-05 | - 300 | 0.1787 | 5.698620e+02 | +1.54% | 2.14e-05 | - 310 | 0.1536 | 5.752120e+02 | +0.94% | 3.16e-05 | - 320 | 0.1336 | 5.819390e+02 | +1.17% | 4.65e-05 | - 330 | 0.1074 | 5.876440e+02 | +0.98% | 6.86e-05 | - 334 | 0.0994 | 5.887700e+02 | | 8.32e-05 | ---------------------------------------------------------------- -[INFO GPL-1001] Global placement finished at iteration 334 -[INFO GPL-1002] Placed Cell Area 46.4310 -[INFO GPL-1003] Available Free Area 61.7317 -[INFO GPL-1004] Minimum Feasible Density 0.7600 (cell_area / free_area) -[INFO GPL-1006] Suggested Target Densities: -[INFO GPL-1007] - For 90% usage of free space: 0.8357 -[INFO GPL-1008] - For 80% usage of free space: 0.9402 -[INFO GPL-1014] Final placement area: 46.43 (+0.00%) -Found 0 macro blocks. -Using 2 tracks default min distance between IO pins. -[INFO PPL-0001] Number of available slots 312 -[INFO PPL-0002] Number of I/O 54 -[INFO PPL-0003] Number of I/O w/sink 54 -[INFO PPL-0004] Number of I/O w/o sink 0 -[INFO PPL-0005] Slots per section 200 -[INFO PPL-0008] Successfully assigned pins to sections. -[INFO PPL-0012] I/O nets HPWL: 131.38 um. -[INFO GPL-0001] ---- Initialize GPL Main Data Structures -[INFO GPL-0002] DBU: 1000 -[INFO GPL-0003] SiteSize: ( 0.054 0.270 ) um -[INFO GPL-0004] CoreBBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um -[INFO GPL-0036] Movable instances area: 41.363 um^2 -[INFO GPL-0037] Total instances area: 41.363 um^2 -[INFO GPL-0035] Pin density area adjust: 5.068 um^2 -[INFO GPL-0032] ---- Initialize Region: Top-level -[INFO GPL-0006] Number of instances: 349 -[INFO GPL-0007] Movable instances: 349 -[INFO GPL-0008] Fixed instances: 0 -[INFO GPL-0009] Dummy instances: 0 -[INFO GPL-0010] Number of nets: 405 -[INFO GPL-0011] Number of pins: 1312 -[INFO GPL-0012] Die BBox: ( 0.000 0.000 ) ( 8.977 8.977 ) um -[INFO GPL-0013] Core BBox: ( 0.540 0.540 ) ( 8.424 8.370 ) um -[INFO GPL-0016] Core area: 61.732 um^2 -[INFO GPL-0014] Region name: top-level. -[INFO GPL-0015] Region area: 61.732 um^2 -[INFO GPL-0017] Fixed instances area: 0.000 um^2 -[INFO GPL-0018] Movable instances area: 46.431 um^2 -[INFO GPL-0019] Utilization: 75.214 % -[INFO GPL-0020] Standard cells area: 46.431 um^2 -[INFO GPL-0021] Large instances area: 0.000 um^2 -[INFO GPL-0005] ---- Execute Conjugate Gradient Initial Placement. -[INFO GPL-0051] Source of initial instance position counters: - Odb location = 0 Core center = 349 Region center = 0 -[InitialPlace] Iter: 1 conjugate gradient residual: 0.00000010 HPWL: 996574 -[InitialPlace] Iter: 2 conjugate gradient residual: 0.00000009 HPWL: 758793 -[InitialPlace] Iter: 3 conjugate gradient residual: 0.00000007 HPWL: 772303 -[InitialPlace] Iter: 4 conjugate gradient residual: 0.00000011 HPWL: 777754 -[InitialPlace] Iter: 5 conjugate gradient residual: 0.00000008 HPWL: 783266 -[INFO GPL-0033] ---- Initialize Nesterov Region: Top-level -[WARNING GPL-0302] Target density 0.3500 is too low for the available free area. -Automatically adjusting to uniform density 0.7600. -[INFO GPL-0023] Placement target density: 0.7600 -[INFO GPL-0024] Movable insts average area: 0.133 um^2 -[INFO GPL-0025] Ideal bin area: 0.175 um^2 -[INFO GPL-0026] Ideal bin count: 352 -[INFO GPL-0027] Total bin area: 61.732 um^2 -[INFO GPL-0028] Bin count (X, Y): 16 , 16 -[INFO GPL-0029] Bin size (W * H): 0.493 * 0.489 um -[INFO GPL-0030] Number of bins: 256 -[INFO GPL-0007] ---- Execute Nesterov Global Placement. -[INFO GPL-0031] HPWL: Half-Perimeter Wirelength -Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group ---------------------------------------------------------------- - 0 | 0.7176 | 6.017690e+02 | +0.00% | 7.76e-11 | - 10 | 0.6944 | 5.494480e+02 | -8.69% | 1.26e-10 | - 20 | 0.6930 | 5.486010e+02 | -0.15% | 2.06e-10 | - 30 | 0.6924 | 5.488630e+02 | +0.05% | 3.36e-10 | - 40 | 0.6921 | 5.489170e+02 | +0.01% | 5.47e-10 | - 50 | 0.6923 | 5.489870e+02 | +0.01% | 8.90e-10 | - 60 | 0.6911 | 5.493070e+02 | +0.06% | 1.45e-09 | - 70 | 0.6892 | 5.497550e+02 | +0.08% | 2.36e-09 | - 80 | 0.6870 | 5.505000e+02 | +0.14% | 3.85e-09 | - 90 | 0.6834 | 5.516510e+02 | +0.21% | 6.27e-09 | - 100 | 0.6777 | 5.534870e+02 | +0.33% | 1.02e-08 | - 110 | 0.6692 | 5.562510e+02 | +0.50% | 1.66e-08 | - 120 | 0.6577 | 5.601340e+02 | +0.70% | 2.71e-08 | - 130 | 0.6406 | 5.655200e+02 | +0.96% | 4.41e-08 | -[INFO GPL-0100] Timing-driven iteration 1/2, virtual: false. -[INFO GPL-0101] Iter: 134, overflow: 0.635, keep resizer changes at: 1, HPWL: 567581 -Iteration | Area | Resized | Buffers | Nets repaired | Remaining ---------------------------------------------------------------------- - 0 | +0.0% | 0 | 0 | 0 | 405 - final | +0.0% | 0 | 0 | 0 | 0 ---------------------------------------------------------------------- - Iter | Area | Removed | Inserted | Pins - | | Buffers | Buffers | Remaining -------------------------------------------------------- - 0 | +0.0% | 0 | 0 | 352 - 35 | +0.0% | 0 | 0 | 317 - 70 | +0.0% | 0 | 0 | 282 - 105 | +2.2% | 4 | 13 | 247 - 140 | +2.4% | 5 | 15 | 212 - 175 | +3.5% | 6 | 22 | 177 - 210 | +4.4% | 6 | 26 | 142 - 245 | +5.6% | 6 | 32 | 107 - 280 | +10.6% | 10 | 59 | 72 - 315 | +14.1% | 12 | 77 | 37 - 350 | +17.9% | 13 | 96 | 2 - final | +17.3% | 17 | 97 | 0 -------------------------------------------------------- -[INFO GPL-0106] Timing-driven: worst slack -3.4588613e-10 -[INFO GPL-0107] Timing-driven: repair_design delta area: 7.144 um^2 (+15.39%) -[INFO GPL-0108] Timing-driven: repair_design, gpl delta gcells: 80 (+22.92%) -[INFO GPL-0109] Timing-driven: repair_design, gcells created: 97, deleted: 17 -[INFO GPL-0110] Timing-driven: new target density: 0.8757298 -Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group ---------------------------------------------------------------- - 140 | 0.6255 | 5.963320e+02 | +5.45% | 7.19e-08 | -[INFO GPL-0038] Routability snapshot saved at iter = 147 - 146 | 0.5977 | 5.932590e+02 | | | - 150 | 0.5909 | 5.932700e+02 | -0.51% | 1.17e-07 | - 160 | 0.5660 | 6.013600e+02 | +1.36% | 1.91e-07 | - 170 | 0.5272 | 6.119740e+02 | +1.76% | 3.11e-07 | - 180 | 0.4796 | 6.262580e+02 | +2.33% | 5.06e-07 | - 190 | 0.4388 | 6.398320e+02 | +2.17% | 8.24e-07 | - 200 | 0.3900 | 6.511390e+02 | +1.77% | 1.34e-06 | - 210 | 0.3445 | 6.669490e+02 | +2.43% | 2.19e-06 | - 220 | 0.3088 | 6.746220e+02 | +1.15% | 3.25e-06 | -[INFO GPL-0040] Routability iteration: 1 -[INFO GPL-0041] Total routing overflow: 0.0000 -[INFO GPL-0042] Number of overflowed tiles: 0 (0.00%) -[INFO GPL-0043] Average top 0.5% routing congestion: 0.2119 -[INFO GPL-0044] Average top 1.0% routing congestion: 0.2067 -[INFO GPL-0045] Average top 2.0% routing congestion: 0.1994 -[INFO GPL-0046] Average top 5.0% routing congestion: 0.1826 -[INFO GPL-0047] Routability iteration weighted routing congestion: 0.2093 -[INFO GPL-0050] Weighted routing congestion is lower than target routing congestion(1.0100), end routability optimization. -[INFO GPL-0090] Routability finished. Target routing congestion achieved succesfully. -Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group ---------------------------------------------------------------- - 230 | 0.2721 | 6.837910e+02 | +1.36% | 4.79e-06 | - 240 | 0.2486 | 6.949490e+02 | +1.63% | 7.06e-06 | - 250 | 0.2237 | 7.061460e+02 | +1.61% | 1.04e-05 | - 260 | 0.1996 | 7.129480e+02 | +0.96% | 1.53e-05 | -[INFO GPL-0100] Timing-driven iteration 2/2, virtual: false. -[INFO GPL-0101] Iter: 263, overflow: 0.194, keep resizer changes at: 1, HPWL: 713693 -Iteration | Area | Resized | Buffers | Nets repaired | Remaining ---------------------------------------------------------------------- - 0 | +0.0% | 0 | 0 | 0 | 485 - final | +0.0% | 0 | 0 | 0 | 0 ---------------------------------------------------------------------- - Iter | Area | Removed | Inserted | Pins - | | Buffers | Buffers | Remaining -------------------------------------------------------- - 0 | +0.0% | 0 | 0 | 352 - 35 | +0.0% | 0 | 0 | 317 - 70 | +0.0% | 0 | 0 | 282 - 105 | -0.5% | 13 | 10 | 247 - 140 | -0.5% | 15 | 12 | 212 - 175 | -0.5% | 22 | 19 | 177 - 210 | -0.5% | 26 | 23 | 142 - 245 | -0.5% | 32 | 29 | 107 - 280 | +0.5% | 59 | 62 | 72 - 315 | +1.4% | 77 | 85 | 37 - 350 | +1.6% | 96 | 105 | 2 - final | +1.6% | 97 | 106 | 0 -------------------------------------------------------- -[INFO GPL-0106] Timing-driven: worst slack -3.3670816e-10 -[INFO GPL-0107] Timing-driven: repair_design delta area: 0.787 um^2 (+1.47%) -[INFO GPL-0108] Timing-driven: repair_design, gpl delta gcells: 9 (+2.10%) -[INFO GPL-0109] Timing-driven: repair_design, gcells created: 106, deleted: 97 -[INFO GPL-0110] Timing-driven: new target density: 0.8884837 -Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group ---------------------------------------------------------------- - 270 | 0.1789 | 7.349510e+02 | +3.09% | 2.26e-05 | - 280 | 0.1560 | 7.315510e+02 | -0.46% | 3.33e-05 | - 290 | 0.1288 | 7.379490e+02 | +0.87% | 4.90e-05 | - 300 | 0.1101 | 7.424660e+02 | +0.61% | 7.22e-05 | - 307 | 0.0992 | 7.439900e+02 | | 9.84e-05 | ---------------------------------------------------------------- -[INFO GPL-1001] Global placement finished at iteration 307 -[INFO GPL-1003] Routability mode iteration count: 77 -[INFO GPL-1005] Routability final weighted congestion: 0.1794 -[INFO GPL-1002] Placed Cell Area 54.3626 -[INFO GPL-1003] Available Free Area 61.7317 -[INFO GPL-1004] Minimum Feasible Density 0.7600 (cell_area / free_area) -[INFO GPL-1006] Suggested Target Densities: -[INFO GPL-1007] - For 90% usage of free space: 0.9785 -[INFO GPL-1008] - For 80% usage of free space: 1.1008 -[INFO GPL-1011] Original area (um^2): 46.43 -[INFO GPL-1012] Total routability artificial inflation: 0.00 (+0.00%) -[INFO GPL-1013] Total timing-driven delta area: 7.93 (+17.08%) -[INFO GPL-1014] Final placement area: 54.36 (+17.08%) -Iteration | Area | Resized | Buffers | Nets repaired | Remaining ---------------------------------------------------------------------- - 0 | +0.0% | 0 | 0 | 0 | 494 - 10 | +0.0% | 0 | 0 | 0 | 484 - 20 | +0.0% | 0 | 0 | 0 | 474 - 30 | +0.0% | 0 | 0 | 0 | 464 - 40 | +0.0% | 0 | 0 | 0 | 454 - 50 | +0.0% | 0 | 0 | 0 | 444 - 60 | +0.0% | 0 | 0 | 0 | 434 - 70 | +0.0% | 0 | 0 | 0 | 424 - 80 | +0.0% | 0 | 0 | 0 | 414 - 90 | +0.0% | 0 | 0 | 0 | 404 - 100 | +0.0% | 0 | 0 | 0 | 394 - 110 | +0.0% | 0 | 0 | 0 | 384 - 120 | +0.0% | 0 | 0 | 0 | 374 - 130 | +0.0% | 0 | 0 | 0 | 364 - 140 | +0.0% | 0 | 0 | 0 | 354 - 150 | +0.0% | 0 | 0 | 0 | 344 - 160 | +0.0% | 0 | 0 | 0 | 334 - 170 | +0.0% | 0 | 0 | 0 | 324 - 180 | +0.0% | 0 | 0 | 0 | 314 - 190 | +0.0% | 0 | 0 | 0 | 304 - 200 | +0.0% | 0 | 0 | 0 | 294 - 210 | +0.0% | 0 | 0 | 0 | 284 - 220 | +0.0% | 0 | 0 | 0 | 274 - 230 | +0.0% | 0 | 0 | 0 | 264 - 240 | +0.0% | 0 | 0 | 0 | 254 - 250 | +0.0% | 0 | 0 | 0 | 244 - 260 | +0.0% | 0 | 0 | 0 | 234 - 270 | +0.0% | 0 | 0 | 0 | 224 - 280 | +0.0% | 0 | 0 | 0 | 214 - 290 | +0.0% | 0 | 0 | 0 | 204 - 300 | +0.0% | 0 | 0 | 0 | 194 - 310 | +0.0% | 0 | 0 | 0 | 184 - 320 | +0.0% | 0 | 0 | 0 | 174 - 330 | +0.0% | 0 | 0 | 0 | 164 - 340 | +0.0% | 0 | 0 | 0 | 154 - 350 | +0.0% | 0 | 0 | 0 | 144 - 360 | +0.0% | 0 | 0 | 0 | 134 - 370 | +0.0% | 0 | 0 | 0 | 124 - 380 | +0.0% | 0 | 0 | 0 | 114 - 390 | +0.0% | 0 | 0 | 0 | 104 - 400 | +0.0% | 0 | 0 | 0 | 94 - 410 | +0.0% | 0 | 0 | 0 | 84 - 420 | +0.0% | 0 | 0 | 0 | 74 - 430 | +0.0% | 0 | 0 | 0 | 64 - 440 | +0.0% | 0 | 0 | 0 | 54 - 450 | +0.0% | 0 | 0 | 0 | 44 - 460 | +0.0% | 0 | 0 | 0 | 34 - 470 | +0.0% | 0 | 0 | 0 | 24 - 480 | +0.0% | 0 | 0 | 0 | 14 - 490 | +0.0% | 0 | 0 | 0 | 4 - final | +0.0% | 0 | 0 | 0 | 0 ---------------------------------------------------------------------- -[INFO DPL-0006] Core area: 61.73 um^2, Instances area: 49.29 um^2, Utilization: 79.9% +[INFO IFP-0001] Added 14 rows of 370 site asap7sc7p5t. +[INFO IFP-0100] Die BBox: ( 0.000 0.000 ) ( 20.000 4.000 ) um +[INFO IFP-0101] Core BBox: ( 0.000 0.000 ) ( 19.980 3.780 ) um +[INFO IFP-0102] Core area: 75.524 um^2 +[INFO IFP-0103] Total instances area: 1.079 um^2 +[INFO IFP-0104] Effective utilization: 0.014 +[INFO IFP-0105] Number of instances: 4 +[WARNING DPL-0387] BTerm clk is unplaced. +[WARNING DPL-0387] BTerm d_in is unplaced. +[INFO DPL-0006] Core area: 75.52 um^2, Instances area: 1.08 um^2, Utilization: 1.4% [INFO DPL-0005] Diamond search max displacement: +/- 500 sites horizontally, +/- 100 rows vertically. [INFO DPL-1101] Legalizing using diamond search. Movements Summary --------------------------------------- -Total cells: 438 -Diamond Move Success: 438 (100.00%) +Total cells: 4 +Diamond Move Success: 4 (100.00%) Diamond Move Failure: 0 Rip-up and replace Success: 0 ( 0.00% of diamond failures) Rip-up and replace Failure: 0 @@ -341,88 +23,91 @@ Total Placement Failures: 0 --------------------------------------- Placement Analysis --------------------------------- -total displacement 118.3 u -average displacement 0.3 u -max displacement 1.6 u -original HPWL 745.9 u -legalized HPWL 863.2 u -delta HPWL 16 % - -[INFO CTS-0050] Root buffer is BUFx2_ASAP7_75t_R. -[INFO CTS-0051] Sink buffer is BUFx4_ASAP7_75t_R. -[INFO CTS-0052] The following clock buffers will be used for CTS: - BUFx2_ASAP7_75t_R - BUFx4_ASAP7_75t_R -[INFO CTS-0049] Characterization buffer is BUFx4_ASAP7_75t_R. -[INFO CTS-0007] Net "clk" found for clock "core_clock". -[INFO CTS-0010] Clock net "clk" has 35 sinks. -[INFO CTS-0008] TritonCTS found 1 clock nets. -[INFO CTS-0097] Characterization used 2 buffer(s) types. -[INFO CTS-0201] 0 blockages from hard placement blockages and placed macros will be used. -[INFO CTS-0027] Generating H-Tree topology for net clk. -[INFO CTS-0028] Total number of sinks: 35. -[INFO CTS-0090] Sinks will be clustered based on buffer max cap. -[INFO CTS-0030] Number of static layers: 0. -[INFO CTS-0020] Wire segment unit: 1350 dbu (1 um). -[INFO CTS-0023] Original sink region: [(637, 675), (7441, 7965)]. -[INFO CTS-0024] Normalized sink region: [(0.471852, 0.5), (5.51185, 5.9)]. -[INFO CTS-0025] Width: 5.0400. -[INFO CTS-0026] Height: 5.4000. - Level 1 - Direction: Vertical - Sinks per sub-region: 18 - Sub-region size: 5.0400 X 2.7000 -[INFO CTS-0034] Segment length (rounded): 1. - Level 2 - Direction: Horizontal - Sinks per sub-region: 9 - Sub-region size: 2.5200 X 2.7000 -[INFO CTS-0034] Segment length (rounded): 1. -[INFO CTS-0032] Stop criterion found. Max number of sinks is 15. -[INFO CTS-0035] Number of sinks covered: 35. -[INFO CTS-0018] Created 5 clock buffers. -[INFO CTS-0012] Minimum number of buffers in the clock path: 2. -[INFO CTS-0013] Maximum number of buffers in the clock path: 2. -[INFO CTS-0015] Created 5 clock nets. -[INFO CTS-0016] Fanout distribution for the current clock = 7:1, 9:2, 10:1.. -[INFO CTS-0017] Max level of the clock tree: 2. -[INFO CTS-0098] Clock net "clk" -[INFO CTS-0099] Sinks 38 -[INFO CTS-0100] Leaf buffers 0 -[INFO CTS-0101] Average sink wire length 12.23 um -[INFO CTS-0102] Path depth 2 - 2 -[INFO CTS-0207] Dummy loads inserted 3 -[INFO DPL-0006] Core area: 61.73 um^2, Instances area: 50.04 um^2, Utilization: 81.1% -[INFO DPL-0005] Diamond search max displacement: +/- 500 sites horizontally, +/- 100 rows vertically. -[INFO DPL-1101] Legalizing using diamond search. -Movements Summary ---------------------------------------- -Total cells: 446 -Diamond Move Success: 446 (100.00%) -Diamond Move Failure: 0 -Rip-up and replace Success: 0 ( 0.00% of diamond failures) -Rip-up and replace Failure: 0 -Total Placement Failures: 0 ---------------------------------------- -Placement Analysis ---------------------------------- -total displacement 7.1 u -average displacement 0.0 u -max displacement 1.0 u -original HPWL 884.9 u -legalized HPWL 888.8 u +total displacement 0.2 u +average displacement 0.1 u +max displacement 0.1 u +original HPWL 25.1 u +legalized HPWL 25.1 u delta HPWL 0 % -[INFO RSZ-0046] Found 53 endpoints with hold violations. +Startpoint: u_launch (rising edge-triggered flip-flop clocked by clk) +Endpoint: u_capture_con (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: min + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 ^ u_launch/CLK (DFFHQNx1_ASAP7_75t_R) + 38.23 38.23 ^ u_launch/QN (DFFHQNx1_ASAP7_75t_R) + 18.85 57.08 v u_fa/CON (FAx1_ASAP7_75t_R) + 0.14 57.22 v u_capture_con/D (DFFHQNx1_ASAP7_75t_R) + 57.22 data arrival time + + 80.00 80.00 min_delay + 0.00 80.00 clock reconvergence pessimism + 5.89 85.89 library hold time + 85.89 data required time +--------------------------------------------------------- + 85.89 data required time + -57.22 data arrival time +--------------------------------------------------------- + -28.67 slack (VIOLATED) + + +Startpoint: u_launch (rising edge-triggered flip-flop clocked by clk) +Endpoint: u_capture_sn (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: min + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 ^ u_launch/CLK (DFFHQNx1_ASAP7_75t_R) + 37.06 37.06 v u_launch/QN (DFFHQNx1_ASAP7_75t_R) + 24.47 61.53 ^ u_fa/CON (FAx1_ASAP7_75t_R) + 20.68 82.21 v u_fa/SN (FAx1_ASAP7_75t_R) + 0.35 82.56 v u_capture_sn/D (DFFHQNx1_ASAP7_75t_R) + 82.56 data arrival time + + 80.00 80.00 min_delay + 0.00 80.00 clock reconvergence pessimism + 5.71 85.71 library hold time + 85.71 data required time +--------------------------------------------------------- + 85.71 data required time + -82.56 data arrival time +--------------------------------------------------------- + -3.16 slack (VIOLATED) + + +[INFO RSZ-0046] Found 2 endpoints with hold violations. Iteration | Resized | Buffers | Cloned Gates | Area | WNS | TNS | Endpoint -------------------------------------------------------------------------------------- - 0 | 0 | 0 | 0 | +0.0% | -95.106 | -2511.337 | ctrl.state.out[2]$_DFF_P_/D - 10 | 0 | 19 | 0 | +2.8% | -80.443 | -2293.314 | dpath.b_reg.out[6]$_DFFE_PP_/D - 20 | 0 | 39 | 0 | +5.7% | -71.323 | -2058.381 | dpath.a_reg.out[15]$_DFFE_PP_/D - 30 | 0 | 69 | 0 | +10.1% | -68.808 | -1711.372 | ctrl.state.out[2]$_DFF_P_/D - 40 | 0 | 107 | 0 | +15.6% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D - 50 | 0 | 151 | 0 | +22.0% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D - final | 0 | 13 | 0 | +25.5% | -68.808 | -1451.085 | ctrl.state.out[2]$_DFF_P_/D + 0 | 0 | 0 | 0 | +0.0% | -28.672 | -31.828 | u_capture_con/D + final | 0 | 2 | 0 | +18.9% | 16.822 | 0.000 | u_capture_con/D -------------------------------------------------------------------------------------- -[WARNING RSZ-0064] Unable to repair all hold checks within margin. -[INFO RSZ-0032] Inserted 13 hold buffers. +[INFO RSZ-0032] Inserted 2 hold buffers. +Startpoint: u_launch (rising edge-triggered flip-flop clocked by clk) +Endpoint: u_capture_con (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: min + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 ^ u_launch/CLK (DFFHQNx1_ASAP7_75t_R) + 38.23 38.23 ^ u_launch/QN (DFFHQNx1_ASAP7_75t_R) + 17.19 55.42 v u_fa/CON (FAx1_ASAP7_75t_R) + 49.11 104.53 v hold1/Y (HB4xp67_ASAP7_75t_R) + 0.06 104.59 v u_capture_con/D (DFFHQNx1_ASAP7_75t_R) + 104.59 data arrival time + + 80.00 80.00 min_delay + 0.00 80.00 clock reconvergence pessimism + 7.77 87.77 library hold time + 87.77 data required time +--------------------------------------------------------- + 87.77 data required time + -104.59 data arrival time +--------------------------------------------------------- + 16.82 slack (MET) + + diff --git a/src/rsz/test/repair_hold_multi_output_load.tcl b/src/rsz/test/repair_hold_multi_output_load.tcl index 8c813dd2e44..591cafd37c7 100644 --- a/src/rsz/test/repair_hold_multi_output_load.tcl +++ b/src/rsz/test/repair_hold_multi_output_load.tcl @@ -1,55 +1,41 @@ -# Netlist-based regression for issue #10213: repair_timing -hold must not pass -# internal output pins from multi-output cells to insertBufferBeforeLoads. +# Targeted regression for issue #10213. A tiny ASAP7 design contains one +# FAx1_ASAP7_75t_R whose CON output drives the repaired endpoint and whose +# SN output is on a different net. The launch net is marked dont_touch so +# repair_timing -hold must attempt repair on the FA CON net itself. source "helpers.tcl" source asap7/asap7.vars -foreach lib [concat [list $liberty_file] $extra_liberty] { - read_liberty $lib -} -read_lef $tech_lef -read_lef $std_cell_lef -foreach lef $extra_lef { read_lef $lef } +read_liberty asap7/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz +read_liberty asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz +read_liberty asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib +read_lef asap7/asap7_tech_1x_201209.lef +read_lef asap7/asap7sc7p5t_28_R_1x_220121a.lef read_verilog repair_hold_multi_output_load.v -link_design gcd - -set clk_period 77.5 -create_clock -name core_clock -period $clk_period [get_ports clk] -set non_clock_inputs [all_inputs -no_clocks] -set_input_delay [expr $clk_period * 0.2] -clock core_clock $non_clock_inputs -set_output_delay [expr $clk_period * 0.2] -clock core_clock [all_outputs] -set_clock_uncertainty -hold 62 [all_clocks] - -source asap7/setRC.tcl +link_design repair_hold_multi_output_load initialize_floorplan \ -site $site \ - -die_area {0 0 8.977 8.977} \ - -core_area {0.540 0.540 8.424 8.370} -source asap7/asap7.tracks.tcl -set_dont_use $dont_use - -global_placement -skip_io -density 0.35 -pad_left 0 -pad_right 0 -place_pins -hor_layers $io_placer_hor_layer -ver_layers $io_placer_ver_layer -global_placement -density 0.35 -pad_left 0 -pad_right 0 \ - -routability_driven \ - -timing_driven \ - -force_center_initial_place \ - -min_phi_coef 0.95 \ - -max_phi_coef 1.05 -repair_design -verbose -detailed_placement -estimate_parasitics -placement + -die_area {0 0 20 4} \ + -core_area {0 0 20 4} -clock_tree_synthesis -sink_clustering_enable -repair_clock_nets -estimate_parasitics -placement +place_inst -name u_launch -location {1 0.5} +place_inst -name u_fa -location {4 0.5} +place_inst -name u_capture_con -location {8 0.5} +place_inst -name u_capture_sn -location {12 0.5} detailed_placement + +create_clock -name clk -period 10 [get_ports clk] +set_min_delay 80 -from [get_clocks clk] -to [get_clocks clk] + +source asap7/setRC.tcl estimate_parasitics -placement -repair_timing -hold -allow_setup_violations \ - -hold_margin 124 \ - -setup_margin -1000 \ - -max_buffer_percent 80 \ - -max_passes 3 \ - -max_iterations 3 \ - -verbose +set_dont_touch launch_qn + +report_checks -path_delay min -to [get_pins u_capture_con/D] +report_checks -path_delay min -to [get_pins u_capture_sn/D] + +repair_timing -hold -allow_setup_violations + +report_checks -path_delay min -to [get_pins u_capture_con/D] diff --git a/src/rsz/test/repair_hold_multi_output_load.v b/src/rsz/test/repair_hold_multi_output_load.v index b778c3b836b..87b362d7cff 100644 --- a/src/rsz/test/repair_hold_multi_output_load.v +++ b/src/rsz/test/repair_hold_multi_output_load.v @@ -1,2510 +1,36 @@ -/* Generated by Yosys 0.64 (git sha1 8449dd470, g++ 13.3.0-6ubuntu2~24.04.1 -fPIC -O3) [the-openroad-project/yosys] */ +module repair_hold_multi_output_load ( + input clk, + input d_in +); + wire launch_qn; + wire con_net; + wire sn_net; + wire capture_con_qn; + wire capture_sn_qn; -(* hdlname = "gcd" *) -(* top = 1 *) -(* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:11.1-102.10" *) -module gcd(clk, req_msg, req_rdy, req_val, reset, resp_msg, resp_rdy, resp_val); - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:13.15-13.18" *) - input clk; - wire clk; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:14.24-14.31" *) - input [31:0] req_msg; - wire [31:0] req_msg; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:15.15-15.22" *) - output req_rdy; - wire req_rdy; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:16.15-16.22" *) - input req_val; - wire req_val; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:17.15-17.20" *) - input reset; - wire reset; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:18.24-18.32" *) - output [15:0] resp_msg; - wire [15:0] resp_msg; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:19.15-19.23" *) - input resp_rdy; - wire resp_rdy; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:20.15-20.23" *) - output resp_val; - wire resp_val; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:752.12-752.19|/workspace/ws10/OpenROAD-flow-scripts/tools/install/yosys/bin/../share/yosys/techmap.v:274.23-274.25" *) - 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_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _018_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.31-6.32" *) - wire _019_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _020_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.28-6.29" *) - wire _021_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _022_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _023_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _024_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _025_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _026_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _027_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _028_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _029_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _030_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _031_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _032_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _033_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _034_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _035_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _036_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _037_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _038_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _039_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _040_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _041_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _042_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _043_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _044_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _045_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _046_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _047_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _048_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _049_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _050_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _051_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _052_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _053_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _054_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _055_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _056_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _057_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _058_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _059_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _060_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _061_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _062_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _063_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _064_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _065_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - wire _066_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.28-6.29" *) - wire _067_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _068_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.25-6.26" *) - wire _069_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:6.28-6.29" *) - wire _070_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - wire _071_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - 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_; - wire _215_; - wire _216_; - wire _217_; - wire _218_; - wire _219_; - wire _220_; - wire _221_; - wire _222_; - wire _223_; - wire _224_; - wire _225_; - wire _226_; - wire _227_; - wire _228_; - wire _229_; - wire _230_; - wire _231_; - wire _232_; - wire _233_; - wire _234_; - wire _235_; - wire _236_; - wire _237_; - wire _238_; - wire _239_; - wire _240_; - wire _241_; - wire _242_; - wire _243_; - wire _244_; - wire _245_; - wire _246_; - wire _247_; - wire _248_; - wire _249_; - wire _250_; - wire _251_; - wire _252_; - wire _253_; - wire _254_; - wire _255_; - wire _256_; - wire _257_; - wire _258_; - wire _259_; - wire _260_; - wire _261_; - wire _262_; - wire _263_; - wire _264_; - wire _265_; - wire _266_; - wire _267_; - wire _268_; - wire _269_; - wire _270_; - wire _271_; - wire _272_; - wire _273_; - wire _274_; - wire _275_; - wire _276_; - wire _277_; - wire _278_; - wire _279_; - wire _280_; - wire _281_; - wire _282_; - wire _283_; - wire _284_; - wire _285_; - wire _286_; - wire _287_; - wire _288_; - wire _289_; - wire _290_; - wire _291_; - wire _292_; - wire _293_; - wire _294_; - wire _295_; - wire _296_; - wire _297_; - wire _298_; - wire _299_; - wire _300_; - wire _301_; - wire _302_; - wire _303_; - wire _304_; - wire _305_; - wire _306_; - wire _307_; - wire _308_; - wire _309_; - wire _310_; - wire _311_; - wire _312_; - wire _313_; - wire _314_; - wire _315_; - wire _316_; - wire _317_; - wire _318_; - wire _319_; - wire _320_; - wire _321_; - wire _322_; - wire _323_; - wire _324_; - wire _325_; - wire _326_; - wire _327_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - (* unused_bits = "0" *) - wire _328_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.22-10.24" *) - (* unused_bits = "0" *) - wire _329_; - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:10.26-10.28" *) - (* unused_bits = "0" *) - wire _330_; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:30.19-30.33" *) - wire \ctrl$a_mux_sel[0] ; - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:30.19-30.33" *) - wire \ctrl$a_mux_sel[1] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[0] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[10] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[11] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[12] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[13] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[14] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[15] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[1] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[2] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[3] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[4] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[5] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[6] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[7] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[8] ; - (* hdlname = "dpath a_lt_b$in0" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:408.19-408.29" *) - wire \dpath.a_lt_b$in0[9] ; - (* hdlname = "dpath a_lt_b$in1" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:409.19-409.29" *) - wire \dpath.a_lt_b$in1[0] ; - (* hdlname = "dpath a_lt_b$in1" *) - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:409.19-409.29" *) - wire \dpath.a_lt_b$in1[1] ; - INVx1_ASAP7_75t_R _331_ ( - .A(_001_), - .Y(\dpath.a_lt_b$in0[15] ) - ); - INVx1_ASAP7_75t_R _332_ ( - .A(_019_), - .Y(\dpath.a_lt_b$in0[1] ) - ); - INVx1_ASAP7_75t_R _333_ ( - .A(_003_), - .Y(\dpath.a_lt_b$in0[2] ) - ); - INVx1_ASAP7_75t_R _334_ ( - .A(_004_), - .Y(\dpath.a_lt_b$in0[3] ) - ); - INVx1_ASAP7_75t_R _335_ ( - .A(_005_), - .Y(\dpath.a_lt_b$in0[4] ) - ); - INVx1_ASAP7_75t_R _336_ ( - .A(_006_), - .Y(\dpath.a_lt_b$in0[5] ) - ); - INVx1_ASAP7_75t_R _337_ ( - .A(_007_), - .Y(\dpath.a_lt_b$in0[6] ) - ); - INVx1_ASAP7_75t_R _338_ ( - .A(_008_), - .Y(\dpath.a_lt_b$in0[7] ) - ); - INVx1_ASAP7_75t_R _339_ ( - .A(_009_), - .Y(\dpath.a_lt_b$in0[8] ) - ); - INVx1_ASAP7_75t_R _340_ ( - .A(_010_), - .Y(\dpath.a_lt_b$in0[9] ) - ); - INVx1_ASAP7_75t_R _341_ ( - .A(_011_), - .Y(\dpath.a_lt_b$in0[10] ) - ); - INVx1_ASAP7_75t_R _342_ ( - .A(_012_), - .Y(\dpath.a_lt_b$in0[11] ) - ); - INVx1_ASAP7_75t_R _343_ ( - .A(_013_), - .Y(\dpath.a_lt_b$in0[12] ) - ); - INVx1_ASAP7_75t_R _344_ ( - .A(_014_), - .Y(\dpath.a_lt_b$in0[13] ) - ); - INVx1_ASAP7_75t_R _345_ ( - .A(_015_), - .Y(\dpath.a_lt_b$in0[14] ) - ); - INVx1_ASAP7_75t_R _346_ ( - .A(_069_), - .Y(\dpath.a_lt_b$in1[0] ) - ); - INVx1_ASAP7_75t_R _347_ ( - .A(_021_), - .Y(\dpath.a_lt_b$in1[1] ) - ); - INVx1_ASAP7_75t_R _348_ ( - .A(_020_), - .Y(_018_) - ); - INVx1_ASAP7_75t_R _349_ ( - .A(_000_), - .Y(_108_) - ); - OA21x2_ASAP7_75t_R _350_ ( - .A1(_108_), - .A2(_063_), - .B(_062_), - .Y(_109_) - ); - OR3x1_ASAP7_75t_R _351_ ( - .A(_036_), - .B(_039_), - .C(_042_), - .Y(_110_) - ); - OA21x2_ASAP7_75t_R _352_ ( - .A1(_039_), - .A2(_041_), - .B(_038_), - .Y(_111_) - ); - OA21x2_ASAP7_75t_R _353_ ( - .A1(_036_), - .A2(_111_), - .B(_035_), - .Y(_112_) - ); - OA21x2_ASAP7_75t_R _354_ ( - .A1(_109_), - .A2(_110_), - .B(_112_), - .Y(_113_) - ); - XOR2x2_ASAP7_75t_R _355_ ( - .A(_027_), - .B(_113_), - .Y(resp_msg[6]) - ); - OA21x2_ASAP7_75t_R _356_ ( - .A1(_018_), - .A2(_072_), - .B(_071_), - .Y(_114_) - ); - OA21x2_ASAP7_75t_R _357_ ( - .A1(_063_), - .A2(_114_), - .B(_062_), - .Y(_115_) - ); - OR2x2_ASAP7_75t_R _358_ ( - .A(_039_), - .B(_042_), - .Y(_116_) - ); - OA21x2_ASAP7_75t_R _359_ ( - .A1(_115_), - .A2(_116_), - .B(_111_), - .Y(_117_) - ); - XOR2x2_ASAP7_75t_R _360_ ( - .A(_036_), - .B(_117_), - .Y(resp_msg[5]) - ); - OA21x2_ASAP7_75t_R _361_ ( - .A1(_042_), - .A2(_109_), - .B(_041_), - .Y(_118_) - ); - XOR2x2_ASAP7_75t_R _362_ ( - .A(_039_), - .B(_118_), - .Y(resp_msg[4]) - ); - XOR2x2_ASAP7_75t_R _363_ ( - .A(_042_), - .B(_115_), - .Y(resp_msg[3]) - ); - XNOR2x2_ASAP7_75t_R _364_ ( - .A(_000_), - .B(_063_), - .Y(resp_msg[2]) - ); - INVx1_ASAP7_75t_R _365_ ( - .A(_070_), - .Y(\dpath.a_lt_b$in0[0] ) - ); - BUFx4f_ASAP7_75t_R _366_ ( - .A(_016_), - .Y(_119_) - ); - INVx1_ASAP7_75t_R _367_ ( - .A(_119_), - .Y(_120_) - ); - BUFx2_ASAP7_75t_R _368_ ( - .A(_120_), - .Y(_121_) - ); - BUFx2_ASAP7_75t_R _369_ ( - .A(_057_), - .Y(_122_) - ); - BUFx2_ASAP7_75t_R _370_ ( - .A(_051_), - .Y(_123_) - ); - OR2x2_ASAP7_75t_R _371_ ( - .A(_030_), - .B(_033_), - .Y(_124_) - ); - OR4x1_ASAP7_75t_R _372_ ( - .A(_122_), - .B(_123_), - .C(_060_), - .D(_124_), - .Y(_125_) - ); - OR2x2_ASAP7_75t_R _373_ ( - .A(_027_), - .B(_125_), - .Y(_126_) - ); - OA21x2_ASAP7_75t_R _374_ ( - .A1(_026_), - .A2(_033_), - .B(_032_), - .Y(_127_) - ); - OR5x1_ASAP7_75t_R _375_ ( - .A(_057_), - .B(_030_), - .C(_123_), - .D(_060_), - .E(_127_), - .Y(_128_) - ); - OA211x2_ASAP7_75t_R _376_ ( - .A1(_056_), - .A2(_123_), - .B(_128_), - .C(_050_), - .Y(_129_) - ); - OA21x2_ASAP7_75t_R _377_ ( - .A1(_029_), - .A2(_060_), - .B(_059_), - .Y(_130_) - ); - OR3x4_ASAP7_75t_R _378_ ( - .A(_122_), - .B(_123_), - .C(_130_), - .Y(_131_) - ); - OA211x2_ASAP7_75t_R _379_ ( - .A1(_113_), - .A2(_126_), - .B(_129_), - .C(_131_), - .Y(_132_) - ); - OR2x2_ASAP7_75t_R _380_ ( - .A(_045_), - .B(_024_), - .Y(_133_) - ); - OR3x2_ASAP7_75t_R _381_ ( - .A(_054_), - .B(_048_), - .C(_133_), - .Y(_134_) - ); - BUFx2_ASAP7_75t_R _382_ ( - .A(_002_), - .Y(_135_) - ); - INVx1_ASAP7_75t_R _383_ ( - .A(_135_), - .Y(_136_) - ); - OA21x2_ASAP7_75t_R _384_ ( - .A1(_044_), - .A2(_024_), - .B(_023_), - .Y(_137_) - ); - OA21x2_ASAP7_75t_R _385_ ( - .A1(_048_), - .A2(_137_), - .B(_047_), - .Y(_138_) - ); - OA21x2_ASAP7_75t_R _386_ ( - .A1(_054_), - .A2(_138_), - .B(_053_), - .Y(_139_) - ); - AND2x2_ASAP7_75t_R _387_ ( - .A(_136_), - .B(_139_), - .Y(_140_) - ); - OAI21x1_ASAP7_75t_R _388_ ( - .A1(_132_), - .A2(_134_), - .B(_140_), - .Y(_141_) - ); - BUFx6f_ASAP7_75t_R _389_ ( - .A(_141_), - .Y(_142_) - ); - OR2x4_ASAP7_75t_R _390_ ( - .A(_121_), - .B(_142_), - .Y(_067_) - ); - INVx2_ASAP7_75t_R _391_ ( - .A(_067_), - .Y(\ctrl$a_mux_sel[1] ) - ); - OA21x2_ASAP7_75t_R _392_ ( - .A1(_132_), - .A2(_133_), - .B(_137_), - .Y(_143_) - ); - XOR2x2_ASAP7_75t_R _393_ ( - .A(_048_), - .B(_143_), - .Y(resp_msg[14]) - ); - OR3x1_ASAP7_75t_R _394_ ( - .A(_027_), - .B(_036_), - .C(_125_), - .Y(_144_) - ); - OA21x2_ASAP7_75t_R _395_ ( - .A1(_059_), - .A2(_122_), - .B(_056_), - .Y(_145_) - ); - OA21x2_ASAP7_75t_R _396_ ( - .A1(_027_), - .A2(_035_), - .B(_026_), - .Y(_146_) - ); - OA21x2_ASAP7_75t_R _397_ ( - .A1(_030_), - .A2(_032_), - .B(_029_), - .Y(_147_) - ); - OA21x2_ASAP7_75t_R _398_ ( - .A1(_124_), - .A2(_146_), - .B(_147_), - .Y(_148_) - ); - OR4x1_ASAP7_75t_R _399_ ( - .A(_122_), - .B(_123_), - .C(_060_), - .D(_148_), - .Y(_149_) - ); - OA21x2_ASAP7_75t_R _400_ ( - .A1(_123_), - .A2(_145_), - .B(_149_), - .Y(_150_) - ); - OAI21x1_ASAP7_75t_R _401_ ( - .A1(_117_), - .A2(_144_), - .B(_150_), - .Y(_151_) - ); - INVx1_ASAP7_75t_R _402_ ( - .A(_045_), - .Y(_152_) - ); - AND2x2_ASAP7_75t_R _403_ ( - .A(_152_), - .B(_024_), - .Y(_153_) - ); - OAI21x1_ASAP7_75t_R _404_ ( - .A1(_050_), - .A2(_045_), - .B(_044_), - .Y(_154_) - ); - NOR2x1_ASAP7_75t_R _405_ ( - .A(_024_), - .B(_154_), - .Y(_155_) - ); - OA211x2_ASAP7_75t_R _406_ ( - .A1(_117_), - .A2(_144_), - .B(_155_), - .C(_150_), - .Y(_156_) - ); - AO21x1_ASAP7_75t_R _407_ ( - .A1(_151_), - .A2(_153_), - .B(_156_), - .Y(_157_) - ); - AND2x2_ASAP7_75t_R _408_ ( - .A(_024_), - .B(_154_), - .Y(_158_) - ); - AO21x1_ASAP7_75t_R _409_ ( - .A1(_045_), - .A2(_155_), - .B(_158_), - .Y(_159_) - ); - OR2x2_ASAP7_75t_R _410_ ( - .A(_157_), - .B(_159_), - .Y(resp_msg[13]) - ); - XNOR2x2_ASAP7_75t_R _411_ ( - .A(_152_), - .B(_132_), - .Y(resp_msg[12]) - ); - INVx1_ASAP7_75t_R _412_ ( - .A(_123_), - .Y(_160_) - ); - OR3x1_ASAP7_75t_R _413_ ( - .A(_122_), - .B(_060_), - .C(_124_), - .Y(_161_) - ); - OA211x2_ASAP7_75t_R _414_ ( - .A1(_115_), - .A2(_116_), - .B(_146_), - .C(_111_), - .Y(_162_) - ); - OA21x2_ASAP7_75t_R _415_ ( - .A1(_027_), - .A2(_036_), - .B(_146_), - .Y(_163_) - ); - OR2x2_ASAP7_75t_R _416_ ( - .A(_162_), - .B(_163_), - .Y(_164_) - ); - OA21x2_ASAP7_75t_R _417_ ( - .A1(_060_), - .A2(_147_), - .B(_059_), - .Y(_165_) - ); - OA21x2_ASAP7_75t_R _418_ ( - .A1(_122_), - .A2(_165_), - .B(_056_), - .Y(_166_) - ); - OA21x2_ASAP7_75t_R _419_ ( - .A1(_161_), - .A2(_164_), - .B(_166_), - .Y(_167_) - ); - XNOR2x2_ASAP7_75t_R _420_ ( - .A(_160_), - .B(_167_), - .Y(resp_msg[11]) - ); - INVx1_ASAP7_75t_R _421_ ( - .A(_060_), - .Y(_168_) - ); - AO21x1_ASAP7_75t_R _422_ ( - .A1(_032_), - .A2(_033_), - .B(_030_), - .Y(_169_) - ); - OA211x2_ASAP7_75t_R _423_ ( - .A1(_027_), - .A2(_113_), - .B(_032_), - .C(_026_), - .Y(_170_) - ); - OAI21x1_ASAP7_75t_R _424_ ( - .A1(_169_), - .A2(_170_), - .B(_029_), - .Y(_171_) - ); - INVx1_ASAP7_75t_R _425_ ( - .A(_059_), - .Y(_172_) - ); - AO21x1_ASAP7_75t_R _426_ ( - .A1(_168_), - .A2(_171_), - .B(_172_), - .Y(_173_) - ); - XNOR2x2_ASAP7_75t_R _427_ ( - .A(_122_), - .B(_173_), - .Y(resp_msg[10]) - ); - OA31x2_ASAP7_75t_R _428_ ( - .A1(_124_), - .A2(_162_), - .A3(_163_), - .B1(_147_), - .Y(_174_) - ); - XNOR2x2_ASAP7_75t_R _429_ ( - .A(_168_), - .B(_174_), - .Y(resp_msg[9]) - ); - OA21x2_ASAP7_75t_R _430_ ( - .A1(_027_), - .A2(_113_), - .B(_026_), - .Y(_175_) - ); - OAI21x1_ASAP7_75t_R _431_ ( - .A1(_033_), - .A2(_175_), - .B(_032_), - .Y(_176_) - ); - XNOR2x2_ASAP7_75t_R _432_ ( - .A(_030_), - .B(_176_), - .Y(resp_msg[8]) - ); - XOR2x2_ASAP7_75t_R _433_ ( - .A(_033_), - .B(_164_), - .Y(resp_msg[7]) - ); - OR3x1_ASAP7_75t_R _434_ ( - .A(_048_), - .B(_125_), - .C(_133_), - .Y(_177_) - ); - OR3x1_ASAP7_75t_R _435_ ( - .A(_123_), - .B(_048_), - .C(_133_), - .Y(_178_) - ); - OA21x2_ASAP7_75t_R _436_ ( - .A1(_050_), - .A2(_045_), - .B(_044_), - .Y(_179_) - ); - OA21x2_ASAP7_75t_R _437_ ( - .A1(_024_), - .A2(_179_), - .B(_023_), - .Y(_180_) - ); - OA21x2_ASAP7_75t_R _438_ ( - .A1(_048_), - .A2(_180_), - .B(_047_), - .Y(_181_) - ); - OA21x2_ASAP7_75t_R _439_ ( - .A1(_166_), - .A2(_178_), - .B(_181_), - .Y(_182_) - ); - OA31x2_ASAP7_75t_R _440_ ( - .A1(_162_), - .A2(_163_), - .A3(_177_), - .B1(_182_), - .Y(_183_) - ); - XOR2x2_ASAP7_75t_R _441_ ( - .A(_054_), - .B(_183_), - .Y(resp_msg[15]) - ); - OA21x2_ASAP7_75t_R _442_ ( - .A1(_132_), - .A2(_134_), - .B(_139_), - .Y(_184_) - ); - OR3x1_ASAP7_75t_R _443_ ( - .A(_135_), - .B(_120_), - .C(_184_), - .Y(_064_) - ); - INVx1_ASAP7_75t_R _444_ ( - .A(_064_), - .Y(\ctrl$a_mux_sel[0] ) - ); - BUFx3_ASAP7_75t_R _445_ ( - .A(_120_), - .Y(req_rdy) - ); - AND2x4_ASAP7_75t_R _446_ ( - .A(_136_), - .B(_184_), - .Y(_185_) - ); - BUFx3_ASAP7_75t_R _447_ ( - .A(_185_), - .Y(_186_) - ); - BUFx2_ASAP7_75t_R _448_ ( - .A(_119_), - .Y(_187_) - ); - AND2x2_ASAP7_75t_R _449_ ( - .A(\dpath.a_lt_b$in0[14] ), - .B(_187_), - .Y(_188_) - ); - INVx1_ASAP7_75t_R _450_ ( - .A(_046_), - .Y(_189_) - ); - BUFx3_ASAP7_75t_R _451_ ( - .A(_119_), - .Y(_190_) - ); - AND3x1_ASAP7_75t_R _452_ ( - .A(_189_), - .B(_190_), - .C(_142_), - .Y(_191_) - ); - AO221x2_ASAP7_75t_R _453_ ( - .A1(req_msg[14]), - .A2(req_rdy), - .B1(_186_), - .B2(_188_), - .C(_191_), - .Y(_076_) - ); - AND2x2_ASAP7_75t_R _454_ ( - .A(\dpath.a_lt_b$in0[13] ), - .B(_187_), - .Y(_192_) - ); - INVx1_ASAP7_75t_R _455_ ( - .A(_022_), - .Y(_193_) - ); - AND3x1_ASAP7_75t_R _456_ ( - .A(_193_), - .B(_190_), - .C(_142_), - .Y(_194_) - ); - AO221x2_ASAP7_75t_R _457_ ( - .A1(req_rdy), - .A2(req_msg[13]), - .B1(_186_), - .B2(_192_), - .C(_194_), - .Y(_077_) - ); - AND2x2_ASAP7_75t_R _458_ ( - .A(\dpath.a_lt_b$in0[12] ), - .B(_187_), - .Y(_195_) - ); - INVx1_ASAP7_75t_R _459_ ( - .A(_043_), - .Y(_196_) - ); - AND3x1_ASAP7_75t_R _460_ ( - .A(_196_), - .B(_190_), - .C(_142_), - .Y(_197_) - ); - AO221x2_ASAP7_75t_R _461_ ( - .A1(req_rdy), - .A2(req_msg[12]), - .B1(_186_), - .B2(_195_), - .C(_197_), - .Y(_078_) - ); - AND2x2_ASAP7_75t_R _462_ ( - .A(\dpath.a_lt_b$in0[11] ), - .B(_187_), - .Y(_198_) - ); - INVx1_ASAP7_75t_R _463_ ( - .A(_049_), - .Y(_199_) - ); - AND3x1_ASAP7_75t_R _464_ ( - .A(_199_), - .B(_190_), - .C(_142_), - .Y(_200_) - ); - AO221x2_ASAP7_75t_R _465_ ( - .A1(req_rdy), - .A2(req_msg[11]), - .B1(_186_), - .B2(_198_), - .C(_200_), - .Y(_079_) - ); - BUFx2_ASAP7_75t_R _466_ ( - .A(_119_), - .Y(_201_) - ); - AND2x2_ASAP7_75t_R _467_ ( - .A(\dpath.a_lt_b$in0[10] ), - .B(_201_), - .Y(_202_) - ); - INVx1_ASAP7_75t_R _468_ ( - .A(_055_), - .Y(_203_) - ); - AND3x1_ASAP7_75t_R _469_ ( - .A(_203_), - .B(_190_), - .C(_142_), - .Y(_204_) - ); - AO221x2_ASAP7_75t_R _470_ ( - .A1(req_rdy), - .A2(req_msg[10]), - .B1(_186_), - .B2(_202_), - .C(_204_), - .Y(_080_) - ); - AND2x2_ASAP7_75t_R _471_ ( - .A(\dpath.a_lt_b$in0[9] ), - .B(_201_), - .Y(_205_) - ); - INVx1_ASAP7_75t_R _472_ ( - .A(_058_), - .Y(_206_) - ); - AND3x1_ASAP7_75t_R _473_ ( - .A(_206_), - .B(_190_), - .C(_142_), - .Y(_207_) - ); - AO221x2_ASAP7_75t_R _474_ ( - .A1(req_rdy), - .A2(req_msg[9]), - .B1(_186_), - .B2(_205_), - .C(_207_), - .Y(_081_) - ); - AND2x2_ASAP7_75t_R _475_ ( - .A(\dpath.a_lt_b$in0[8] ), - .B(_201_), - .Y(_208_) - ); - INVx1_ASAP7_75t_R _476_ ( - .A(_028_), - .Y(_209_) - ); - AND3x1_ASAP7_75t_R _477_ ( - .A(_209_), - .B(_190_), - .C(_142_), - .Y(_210_) - ); - AO221x2_ASAP7_75t_R _478_ ( - .A1(req_rdy), - .A2(req_msg[8]), - .B1(_186_), - .B2(_208_), - .C(_210_), - .Y(_082_) - ); - AND2x2_ASAP7_75t_R _479_ ( - .A(\dpath.a_lt_b$in0[7] ), - .B(_201_), - .Y(_211_) - ); - INVx1_ASAP7_75t_R _480_ ( - .A(_031_), - .Y(_212_) - ); - AND3x1_ASAP7_75t_R _481_ ( - .A(_212_), - .B(_190_), - .C(_142_), - .Y(_213_) - ); - AO221x2_ASAP7_75t_R _482_ ( - .A1(req_rdy), - .A2(req_msg[7]), - .B1(_186_), - .B2(_211_), - .C(_213_), - .Y(_083_) - ); - AND2x2_ASAP7_75t_R _483_ ( - .A(\dpath.a_lt_b$in0[6] ), - .B(_201_), - .Y(_214_) - ); - INVx1_ASAP7_75t_R _484_ ( - .A(_025_), - .Y(_215_) - ); - AND3x1_ASAP7_75t_R _485_ ( - .A(_215_), - .B(_190_), - .C(_141_), - .Y(_216_) - ); - AO221x1_ASAP7_75t_R _486_ ( - .A1(_121_), - .A2(req_msg[6]), - .B1(_186_), - .B2(_214_), - .C(_216_), - .Y(_084_) - ); - AND2x2_ASAP7_75t_R _487_ ( - .A(\dpath.a_lt_b$in0[5] ), - .B(_201_), - .Y(_217_) - ); - INVx1_ASAP7_75t_R _488_ ( - .A(_034_), - .Y(_218_) - ); - AND3x1_ASAP7_75t_R _489_ ( - .A(_218_), - .B(_190_), - .C(_141_), - .Y(_219_) - ); - AO221x1_ASAP7_75t_R _490_ ( - .A1(_121_), - .A2(req_msg[5]), - .B1(_186_), - .B2(_217_), - .C(_219_), - .Y(_085_) - ); - AND2x2_ASAP7_75t_R _491_ ( - .A(\dpath.a_lt_b$in0[4] ), - .B(_201_), - .Y(_220_) - ); - INVx1_ASAP7_75t_R _492_ ( - .A(_037_), - .Y(_221_) - ); - AND3x1_ASAP7_75t_R _493_ ( - .A(_221_), - .B(_187_), - .C(_141_), - .Y(_222_) - ); - AO221x1_ASAP7_75t_R _494_ ( - .A1(_121_), - .A2(req_msg[4]), - .B1(_185_), - .B2(_220_), - .C(_222_), - .Y(_086_) - ); - AND2x2_ASAP7_75t_R _495_ ( - .A(\dpath.a_lt_b$in0[3] ), - .B(_201_), - .Y(_223_) - ); - INVx1_ASAP7_75t_R _496_ ( - .A(_040_), - .Y(_224_) - ); - AND3x1_ASAP7_75t_R _497_ ( - .A(_224_), - .B(_187_), - .C(_141_), - .Y(_225_) - ); - AO221x1_ASAP7_75t_R _498_ ( - .A1(_121_), - .A2(req_msg[3]), - .B1(_185_), - .B2(_223_), - .C(_225_), - .Y(_087_) - ); - AND2x2_ASAP7_75t_R _499_ ( - .A(\dpath.a_lt_b$in0[2] ), - .B(_201_), - .Y(_226_) - ); - INVx1_ASAP7_75t_R _500_ ( - .A(_061_), - .Y(_227_) - ); - AND3x1_ASAP7_75t_R _501_ ( - .A(_227_), - .B(_187_), - .C(_141_), - .Y(_228_) - ); - AO221x1_ASAP7_75t_R _502_ ( - .A1(_121_), - .A2(req_msg[2]), - .B1(_185_), - .B2(_226_), - .C(_228_), - .Y(_088_) - ); - AND2x2_ASAP7_75t_R _503_ ( - .A(\dpath.a_lt_b$in0[1] ), - .B(_201_), - .Y(_229_) - ); - AND3x1_ASAP7_75t_R _504_ ( - .A(\dpath.a_lt_b$in1[1] ), - .B(_187_), - .C(_141_), - .Y(_230_) - ); - AO221x1_ASAP7_75t_R _505_ ( - .A1(_121_), - .A2(req_msg[1]), - .B1(_185_), - .B2(_229_), - .C(_230_), - .Y(_089_) - ); - AND2x2_ASAP7_75t_R _506_ ( - .A(\dpath.a_lt_b$in0[0] ), - .B(_119_), - .Y(_231_) - ); - AND3x1_ASAP7_75t_R _507_ ( - .A(\dpath.a_lt_b$in1[0] ), - .B(_187_), - .C(_141_), - .Y(_232_) - ); - AO221x1_ASAP7_75t_R _508_ ( - .A1(_121_), - .A2(req_msg[0]), - .B1(_185_), - .B2(_231_), - .C(_232_), - .Y(_090_) - ); - AND2x2_ASAP7_75t_R _509_ ( - .A(_135_), - .B(_119_), - .Y(_233_) - ); - BUFx2_ASAP7_75t_R _510_ ( - .A(_233_), - .Y(_234_) - ); - BUFx2_ASAP7_75t_R _511_ ( - .A(_066_), - .Y(_235_) - ); - BUFx2_ASAP7_75t_R _512_ ( - .A(_235_), - .Y(_236_) - ); - INVx1_ASAP7_75t_R _513_ ( - .A(_068_), - .Y(_237_) - ); - NAND2x1_ASAP7_75t_R _514_ ( - .A(_135_), - .B(_119_), - .Y(_238_) - ); - AND2x2_ASAP7_75t_R _515_ ( - .A(_237_), - .B(_238_), - .Y(_239_) - ); - OA21x2_ASAP7_75t_R _516_ ( - .A1(req_msg[30]), - .A2(_236_), - .B(_239_), - .Y(_240_) - ); - INVx1_ASAP7_75t_R _517_ ( - .A(_066_), - .Y(_241_) - ); - BUFx2_ASAP7_75t_R _518_ ( - .A(_241_), - .Y(_242_) - ); - AND2x2_ASAP7_75t_R _519_ ( - .A(req_msg[30]), - .B(_242_), - .Y(_243_) - ); - INVx1_ASAP7_75t_R _520_ ( - .A(_065_), - .Y(_244_) - ); - BUFx2_ASAP7_75t_R _521_ ( - .A(_244_), - .Y(_245_) - ); - AND3x1_ASAP7_75t_R _522_ ( - .A(_189_), - .B(_245_), - .C(_235_), - .Y(_246_) - ); - BUFx2_ASAP7_75t_R _523_ ( - .A(_238_), - .Y(_247_) - ); - OA21x2_ASAP7_75t_R _524_ ( - .A1(_243_), - .A2(_246_), - .B(_247_), - .Y(_248_) - ); - AO221x1_ASAP7_75t_R _525_ ( - .A1(\dpath.a_lt_b$in0[14] ), - .A2(_234_), - .B1(_240_), - .B2(resp_msg[14]), - .C(_248_), - .Y(_091_) - ); - OA21x2_ASAP7_75t_R _526_ ( - .A1(_235_), - .A2(req_msg[29]), - .B(_239_), - .Y(_249_) - ); - AND2x2_ASAP7_75t_R _527_ ( - .A(_241_), - .B(req_msg[29]), - .Y(_250_) - ); - AND3x1_ASAP7_75t_R _528_ ( - .A(_193_), - .B(_244_), - .C(_066_), - .Y(_251_) - ); - OA21x2_ASAP7_75t_R _529_ ( - .A1(_250_), - .A2(_251_), - .B(_238_), - .Y(_252_) - ); - AO221x1_ASAP7_75t_R _530_ ( - .A1(\dpath.a_lt_b$in0[13] ), - .A2(_233_), - .B1(_249_), - .B2(_159_), - .C(_252_), - .Y(_253_) - ); - AO21x1_ASAP7_75t_R _531_ ( - .A1(_157_), - .A2(_249_), - .B(_253_), - .Y(_092_) - ); - AND2x2_ASAP7_75t_R _532_ ( - .A(_235_), - .B(_238_), - .Y(_254_) - ); - OAI21x1_ASAP7_75t_R _533_ ( - .A1(_043_), - .A2(_065_), - .B(_254_), - .Y(_255_) - ); - AO21x1_ASAP7_75t_R _534_ ( - .A1(_237_), - .A2(resp_msg[12]), - .B(_255_), - .Y(_256_) - ); - OA21x2_ASAP7_75t_R _535_ ( - .A1(_236_), - .A2(req_msg[28]), - .B(_247_), - .Y(_257_) - ); - AO21x1_ASAP7_75t_R _536_ ( - .A1(\dpath.a_lt_b$in0[12] ), - .A2(_234_), - .B(_257_), - .Y(_258_) - ); - AND2x2_ASAP7_75t_R _537_ ( - .A(_256_), - .B(_258_), - .Y(_093_) - ); - OR3x1_ASAP7_75t_R _538_ ( - .A(_066_), - .B(req_msg[27]), - .C(_233_), - .Y(_259_) - ); - OAI21x1_ASAP7_75t_R _539_ ( - .A1(\dpath.a_lt_b$in0[11] ), - .A2(_238_), - .B(_259_), - .Y(_260_) - ); - OR3x1_ASAP7_75t_R _540_ ( - .A(_068_), - .B(_123_), - .C(_260_), - .Y(_261_) - ); - INVx1_ASAP7_75t_R _541_ ( - .A(_261_), - .Y(_262_) - ); - OA211x2_ASAP7_75t_R _542_ ( - .A1(_161_), - .A2(_164_), - .B(_262_), - .C(_166_), - .Y(_263_) - ); - OR3x1_ASAP7_75t_R _543_ ( - .A(_068_), - .B(_160_), - .C(_260_), - .Y(_264_) - ); - NOR3x1_ASAP7_75t_R _544_ ( - .A(_161_), - .B(_164_), - .C(_264_), - .Y(_265_) - ); - OA21x2_ASAP7_75t_R _545_ ( - .A1(_049_), - .A2(_065_), - .B(_254_), - .Y(_266_) - ); - OAI22x1_ASAP7_75t_R _546_ ( - .A1(_260_), - .A2(_266_), - .B1(_264_), - .B2(_166_), - .Y(_267_) - ); - OR3x1_ASAP7_75t_R _547_ ( - .A(_263_), - .B(_265_), - .C(_267_), - .Y(_094_) - ); - OA21x2_ASAP7_75t_R _548_ ( - .A1(_169_), - .A2(_170_), - .B(_029_), - .Y(_268_) - ); - INVx1_ASAP7_75t_R _549_ ( - .A(_122_), - .Y(_269_) - ); - OA21x2_ASAP7_75t_R _550_ ( - .A1(_235_), - .A2(req_msg[26]), - .B(_239_), - .Y(_270_) - ); - AND3x1_ASAP7_75t_R _551_ ( - .A(_059_), - .B(_269_), - .C(_270_), - .Y(_271_) - ); - AND2x2_ASAP7_75t_R _552_ ( - .A(_122_), - .B(_168_), - .Y(_272_) - ); - AND3x1_ASAP7_75t_R _553_ ( - .A(_059_), - .B(_269_), - .C(_060_), - .Y(_273_) - ); - AO221x1_ASAP7_75t_R _554_ ( - .A1(_172_), - .A2(_122_), - .B1(_171_), - .B2(_272_), - .C(_273_), - .Y(_274_) - ); - AND2x2_ASAP7_75t_R _555_ ( - .A(_242_), - .B(req_msg[26]), - .Y(_275_) - ); - AND3x1_ASAP7_75t_R _556_ ( - .A(_203_), - .B(_245_), - .C(_235_), - .Y(_276_) - ); - OA21x2_ASAP7_75t_R _557_ ( - .A1(_275_), - .A2(_276_), - .B(_238_), - .Y(_277_) - ); - AO21x1_ASAP7_75t_R _558_ ( - .A1(\dpath.a_lt_b$in0[10] ), - .A2(_233_), - .B(_277_), - .Y(_278_) - ); - AO221x1_ASAP7_75t_R _559_ ( - .A1(_268_), - .A2(_271_), - .B1(_274_), - .B2(_270_), - .C(_278_), - .Y(_095_) - ); - OR2x2_ASAP7_75t_R _560_ ( - .A(_236_), - .B(req_msg[25]), - .Y(_279_) - ); - AND3x1_ASAP7_75t_R _561_ ( - .A(_206_), - .B(_245_), - .C(_235_), - .Y(_280_) - ); - AO221x1_ASAP7_75t_R _562_ ( - .A1(_242_), - .A2(req_msg[25]), - .B1(_119_), - .B2(_135_), - .C(_280_), - .Y(_281_) - ); - NAND2x1_ASAP7_75t_R _563_ ( - .A(_010_), - .B(_233_), - .Y(_282_) - ); - AO32x1_ASAP7_75t_R _564_ ( - .A1(resp_msg[9]), - .A2(_239_), - .A3(_279_), - .B1(_281_), - .B2(_282_), - .Y(_096_) - ); - OAI21x1_ASAP7_75t_R _565_ ( - .A1(_066_), - .A2(req_msg[24]), - .B(_238_), - .Y(_283_) - ); - OA21x2_ASAP7_75t_R _566_ ( - .A1(_009_), - .A2(_238_), - .B(_283_), - .Y(_284_) - ); - OA21x2_ASAP7_75t_R _567_ ( - .A1(_028_), - .A2(_065_), - .B(_254_), - .Y(_285_) - ); - NOR2x1_ASAP7_75t_R _568_ ( - .A(_284_), - .B(_285_), - .Y(_286_) - ); - INVx1_ASAP7_75t_R _569_ ( - .A(_284_), - .Y(_287_) - ); - AND4x1_ASAP7_75t_R _570_ ( - .A(_030_), - .B(_237_), - .C(_176_), - .D(_287_), - .Y(_288_) - ); - OR3x1_ASAP7_75t_R _571_ ( - .A(_030_), - .B(_068_), - .C(_284_), - .Y(_289_) - ); - NOR2x1_ASAP7_75t_R _572_ ( - .A(_176_), - .B(_289_), - .Y(_290_) - ); - OR3x1_ASAP7_75t_R _573_ ( - .A(_286_), - .B(_288_), - .C(_290_), - .Y(_097_) - ); - OR3x1_ASAP7_75t_R _574_ ( - .A(_235_), - .B(req_msg[23]), - .C(_233_), - .Y(_291_) - ); - OAI21x1_ASAP7_75t_R _575_ ( - .A1(\dpath.a_lt_b$in0[7] ), - .A2(_247_), - .B(_291_), - .Y(_292_) - ); - NOR2x1_ASAP7_75t_R _576_ ( - .A(_068_), - .B(_292_), - .Y(_293_) - ); - OA21x2_ASAP7_75t_R _577_ ( - .A1(_031_), - .A2(_065_), - .B(_254_), - .Y(_294_) - ); - NOR2x1_ASAP7_75t_R _578_ ( - .A(_292_), - .B(_294_), - .Y(_295_) - ); - AO21x1_ASAP7_75t_R _579_ ( - .A1(resp_msg[7]), - .A2(_293_), - .B(_295_), - .Y(_098_) - ); - AO221x1_ASAP7_75t_R _580_ ( - .A1(_215_), - .A2(_245_), - .B1(resp_msg[6]), - .B2(_237_), - .C(_242_), - .Y(_296_) - ); - OA211x2_ASAP7_75t_R _581_ ( - .A1(_236_), - .A2(req_msg[22]), - .B(_247_), - .C(_296_), - .Y(_297_) - ); - AO21x1_ASAP7_75t_R _582_ ( - .A1(\dpath.a_lt_b$in0[6] ), - .A2(_234_), - .B(_297_), - .Y(_099_) - ); - OAI21x1_ASAP7_75t_R _583_ ( - .A1(_034_), - .A2(_065_), - .B(_254_), - .Y(_298_) - ); - AO21x1_ASAP7_75t_R _584_ ( - .A1(_237_), - .A2(resp_msg[5]), - .B(_298_), - .Y(_299_) - ); - OA21x2_ASAP7_75t_R _585_ ( - .A1(_236_), - .A2(req_msg[21]), - .B(_238_), - .Y(_300_) - ); - AO21x1_ASAP7_75t_R _586_ ( - .A1(\dpath.a_lt_b$in0[5] ), - .A2(_234_), - .B(_300_), - .Y(_301_) - ); - AND2x2_ASAP7_75t_R _587_ ( - .A(_299_), - .B(_301_), - .Y(_100_) - ); - AO221x1_ASAP7_75t_R _588_ ( - .A1(_221_), - .A2(_245_), - .B1(resp_msg[4]), - .B2(_237_), - .C(_242_), - .Y(_302_) - ); - OA211x2_ASAP7_75t_R _589_ ( - .A1(_236_), - .A2(req_msg[20]), - .B(_247_), - .C(_302_), - .Y(_303_) - ); - AO21x1_ASAP7_75t_R _590_ ( - .A1(\dpath.a_lt_b$in0[4] ), - .A2(_234_), - .B(_303_), - .Y(_101_) - ); - AO221x1_ASAP7_75t_R _591_ ( - .A1(_224_), - .A2(_245_), - .B1(resp_msg[3]), - .B2(_237_), - .C(_242_), - .Y(_304_) - ); - OA211x2_ASAP7_75t_R _592_ ( - .A1(_236_), - .A2(req_msg[19]), - .B(_247_), - .C(_304_), - .Y(_305_) - ); - AO21x1_ASAP7_75t_R _593_ ( - .A1(\dpath.a_lt_b$in0[3] ), - .A2(_234_), - .B(_305_), - .Y(_102_) - ); - AO22x1_ASAP7_75t_R _594_ ( - .A1(_227_), - .A2(_245_), - .B1(resp_msg[2]), - .B2(_237_), - .Y(_306_) - ); - OR2x2_ASAP7_75t_R _595_ ( - .A(_235_), - .B(req_msg[18]), - .Y(_307_) - ); - OA211x2_ASAP7_75t_R _596_ ( - .A1(_242_), - .A2(_306_), - .B(_307_), - .C(_247_), - .Y(_308_) - ); - AO21x1_ASAP7_75t_R _597_ ( - .A1(\dpath.a_lt_b$in0[2] ), - .A2(_234_), - .B(_308_), - .Y(_103_) - ); - AO221x1_ASAP7_75t_R _598_ ( - .A1(\dpath.a_lt_b$in1[1] ), - .A2(_245_), - .B1(resp_msg[1]), - .B2(_237_), - .C(_242_), - .Y(_309_) - ); - OA211x2_ASAP7_75t_R _599_ ( - .A1(_236_), - .A2(req_msg[17]), - .B(_247_), - .C(_309_), - .Y(_310_) - ); - AO21x1_ASAP7_75t_R _600_ ( - .A1(\dpath.a_lt_b$in0[1] ), - .A2(_234_), - .B(_310_), - .Y(_104_) - ); - AO221x1_ASAP7_75t_R _601_ ( - .A1(\dpath.a_lt_b$in1[0] ), - .A2(_245_), - .B1(resp_msg[0]), - .B2(_237_), - .C(_242_), - .Y(_311_) - ); - OA211x2_ASAP7_75t_R _602_ ( - .A1(_236_), - .A2(req_msg[16]), - .B(_247_), - .C(_311_), - .Y(_312_) - ); - AO21x1_ASAP7_75t_R _603_ ( - .A1(\dpath.a_lt_b$in0[0] ), - .A2(_234_), - .B(_312_), - .Y(_105_) - ); - INVx1_ASAP7_75t_R _604_ ( - .A(req_val), - .Y(_313_) - ); - NOR2x1_ASAP7_75t_R _605_ ( - .A(_017_), - .B(_247_), - .Y(resp_val) - ); - AO221x1_ASAP7_75t_R _606_ ( - .A1(_121_), - .A2(_313_), - .B1(resp_rdy), - .B2(resp_val), - .C(reset), - .Y(_073_) - ); - AND4x1_ASAP7_75t_R _607_ ( - .A(_031_), - .B(_028_), - .C(_058_), - .D(_046_), - .Y(_314_) - ); - AND5x1_ASAP7_75t_R _608_ ( - .A(_055_), - .B(_049_), - .C(_043_), - .D(_022_), - .E(_314_), - .Y(_315_) - ); - AND4x1_ASAP7_75t_R _609_ ( - .A(_052_), - .B(_069_), - .C(_021_), - .D(_025_), - .Y(_316_) - ); - AND5x1_ASAP7_75t_R _610_ ( - .A(_061_), - .B(_040_), - .C(_037_), - .D(_034_), - .E(_316_), - .Y(_317_) - ); - NAND2x1_ASAP7_75t_R _611_ ( - .A(_315_), - .B(_317_), - .Y(_318_) - ); - OR3x1_ASAP7_75t_R _612_ ( - .A(_135_), - .B(_184_), - .C(_318_), - .Y(_319_) - ); - AOI221x1_ASAP7_75t_R _613_ ( - .A1(resp_rdy), - .A2(_234_), - .B1(_319_), - .B2(_017_), - .C(reset), - .Y(_074_) - ); - AOI22x1_ASAP7_75t_R _614_ ( - .A1(req_rdy), - .A2(req_val), - .B1(_318_), - .B2(_136_), - .Y(_320_) - ); - AOI21x1_ASAP7_75t_R _615_ ( - .A1(_142_), - .A2(_320_), - .B(reset), - .Y(_075_) - ); - AND2x2_ASAP7_75t_R _616_ ( - .A(\dpath.a_lt_b$in0[15] ), - .B(_119_), - .Y(_321_) - ); - INVx1_ASAP7_75t_R _617_ ( - .A(_052_), - .Y(_322_) - ); - AND3x1_ASAP7_75t_R _618_ ( - .A(_322_), - .B(_187_), - .C(_141_), - .Y(_323_) - ); - AO221x1_ASAP7_75t_R _619_ ( - .A1(_121_), - .A2(req_msg[15]), - .B1(_185_), - .B2(_321_), - .C(_323_), - .Y(_106_) - ); - OR2x2_ASAP7_75t_R _620_ ( - .A(_236_), - .B(req_msg[31]), - .Y(_324_) - ); - AND3x1_ASAP7_75t_R _621_ ( - .A(_322_), - .B(_245_), - .C(_235_), - .Y(_325_) - ); - AO221x1_ASAP7_75t_R _622_ ( - .A1(_135_), - .A2(_119_), - .B1(req_msg[31]), - .B2(_242_), - .C(_325_), - .Y(_326_) - ); - NAND2x1_ASAP7_75t_R _623_ ( - .A(_001_), - .B(_233_), - .Y(_327_) - ); - AO32x1_ASAP7_75t_R _624_ ( - .A1(resp_msg[15]), - .A2(_239_), - .A3(_324_), - .B1(_326_), - .B2(_327_), - .Y(_107_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:44.26-46.12" *) - FAx1_ASAP7_75t_R _625_ ( - .A(_018_), - .B(\dpath.a_lt_b$in1[1] ), - .CI(_019_), - .CON(_000_), - .SN(resp_msg[1]) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _626_ ( - .A(_022_), - .B(\dpath.a_lt_b$in0[13] ), - .CON(_023_), - .SN(_024_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _627_ ( - .A(_025_), - .B(\dpath.a_lt_b$in0[6] ), - .CON(_026_), - .SN(_027_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _628_ ( - .A(_028_), - .B(\dpath.a_lt_b$in0[8] ), - .CON(_029_), - .SN(_030_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _629_ ( - .A(_031_), - .B(\dpath.a_lt_b$in0[7] ), - .CON(_032_), - .SN(_033_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _630_ ( - .A(_034_), - .B(\dpath.a_lt_b$in0[5] ), - .CON(_035_), - .SN(_036_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _631_ ( - .A(_037_), - .B(\dpath.a_lt_b$in0[4] ), - .CON(_038_), - .SN(_039_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _632_ ( - .A(_040_), - .B(\dpath.a_lt_b$in0[3] ), - .CON(_041_), - .SN(_042_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _633_ ( - .A(_043_), - .B(\dpath.a_lt_b$in0[12] ), - .CON(_044_), - .SN(_045_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _634_ ( - .A(_046_), - .B(\dpath.a_lt_b$in0[14] ), - .CON(_047_), - .SN(_048_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _635_ ( - .A(_049_), - .B(\dpath.a_lt_b$in0[11] ), - .CON(_050_), - .SN(_051_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _636_ ( - .A(_052_), - .B(\dpath.a_lt_b$in0[15] ), - .CON(_053_), - .SN(_054_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _637_ ( - .A(_055_), - .B(\dpath.a_lt_b$in0[10] ), - .CON(_056_), - .SN(_057_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _638_ ( - .A(_058_), - .B(\dpath.a_lt_b$in0[9] ), - .CON(_059_), - .SN(_060_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _639_ ( - .A(_061_), - .B(\dpath.a_lt_b$in0[2] ), - .CON(_062_), - .SN(_063_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _640_ ( - .A(_064_), - .B(\ctrl$a_mux_sel[1] ), - .CON(_065_), - .SN(_066_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _641_ ( - .A(\ctrl$a_mux_sel[0] ), - .B(_067_), - .CON(_068_), - .SN(_328_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _642_ ( - .A(_069_), - .B(\dpath.a_lt_b$in0[0] ), - .CON(_329_), - .SN(resp_msg[0]) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _643_ ( - .A(\dpath.a_lt_b$in1[0] ), - .B(_070_), - .CON(_020_), - .SN(_330_) - ); - (* module_not_derived = 32'b00000000000000000000000000000001 *) - (* src = "./platforms/asap7/yoSys/cells_adders_R.v:20.29-24.14" *) - HAxp5_ASAP7_75t_R _644_ ( - .A(_021_), - .B(\dpath.a_lt_b$in0[1] ), - .CON(_071_), - .SN(_072_) - ); - DFFHQNx1_ASAP7_75t_R \ctrl.state.out[0]$_DFF_P_ ( - .CLK(clk), - .D(_073_), - .QN(_016_) - ); - DFFHQNx1_ASAP7_75t_R \ctrl.state.out[1]$_DFF_P_ ( - .CLK(clk), - .D(_074_), - .QN(_017_) - ); - DFFHQNx1_ASAP7_75t_R \ctrl.state.out[2]$_DFF_P_ ( - .CLK(clk), - .D(_075_), - .QN(_002_) - ); - (* src = "/workspace/ws10/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(_105_), - .QN(_070_) - ); - (* src = "/workspace/ws10/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(_095_), - .QN(_011_) - ); - (* src = "/workspace/ws10/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(_094_), - .QN(_012_) - ); - (* src = "/workspace/ws10/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(_093_), - .QN(_013_) - ); - (* src = "/workspace/ws10/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(_092_), - .QN(_014_) - ); - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) - DFFHQNx1_ASAP7_75t_R \dpath.a_reg.out[14]$_DFFE_PP_ ( + DFFHQNx1_ASAP7_75t_R u_launch ( .CLK(clk), - .D(_091_), - .QN(_015_) + .D(d_in), + .QN(launch_qn) ); - (* src = "/workspace/ws10/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(_107_), - .QN(_001_) - ); - (* src = "/workspace/ws10/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(_104_), - .QN(_019_) - ); - (* src = "/workspace/ws10/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(_103_), - .QN(_003_) - ); - (* src = "/workspace/ws10/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(_102_), - .QN(_004_) - ); - (* src = "/workspace/ws10/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(_101_), - .QN(_005_) - ); - (* src = "/workspace/ws10/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(_100_), - .QN(_006_) - ); - (* src = "/workspace/ws10/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(_099_), - .QN(_007_) - ); - (* src = "/workspace/ws10/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(_098_), - .QN(_008_) - ); - (* src = "/workspace/ws10/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(_097_), - .QN(_009_) - ); - (* src = "/workspace/ws10/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(_096_), - .QN(_010_) - ); - (* src = "/workspace/ws10/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(_090_), - .QN(_069_) - ); - (* src = "/workspace/ws10/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(_080_), - .QN(_055_) - ); - (* src = "/workspace/ws10/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(_079_), - .QN(_049_) - ); - (* src = "/workspace/ws10/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(_078_), - .QN(_043_) - ); - (* src = "/workspace/ws10/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(_077_), - .QN(_022_) - ); - (* src = "/workspace/ws10/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(_076_), - .QN(_046_) - ); - (* src = "/workspace/ws10/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(_106_), - .QN(_052_) - ); - (* src = "/workspace/ws10/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(_089_), - .QN(_021_) - ); - (* src = "/workspace/ws10/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(_061_) - ); - (* src = "/workspace/ws10/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(_087_), - .QN(_040_) - ); - (* src = "/workspace/ws10/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(_086_), - .QN(_037_) - ); - (* src = "/workspace/ws10/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(_085_), - .QN(_034_) - ); - (* src = "/workspace/ws10/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(_084_), - .QN(_025_) - ); - (* src = "/workspace/ws10/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(_083_), - .QN(_031_) + + FAx1_ASAP7_75t_R u_fa ( + .A(launch_qn), + .B(1'b1), + .CI(1'b0), + .CON(con_net), + .SN(sn_net) ); - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) - DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[8]$_DFFE_PP_ ( + + DFFHQNx1_ASAP7_75t_R u_capture_con ( .CLK(clk), - .D(_082_), - .QN(_028_) + .D(con_net), + .QN(capture_con_qn) ); - (* src = "/workspace/ws10/OpenROAD-flow-scripts/flow/designs/src/gcd/gcd.v:571.3-577.6" *) - DFFHQNx1_ASAP7_75t_R \dpath.b_reg.out[9]$_DFFE_PP_ ( + + DFFHQNx1_ASAP7_75t_R u_capture_sn ( .CLK(clk), - .D(_081_), - .QN(_058_) + .D(sn_net), + .QN(capture_sn_qn) ); endmodule From 9ed4780b6c1facdd2f236c85301f8a4d993e67dc Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Mon, 27 Apr 2026 09:51:31 +0900 Subject: [PATCH 5/5] rsz: Use placed DEF for multi-output hold test Signed-off-by: Jaehyun Kim --- .../test/repair_hold_multi_output_load.def | 29 +++++++++++++++ src/rsz/test/repair_hold_multi_output_load.ok | 34 +++--------------- .../test/repair_hold_multi_output_load.tcl | 21 +++-------- src/rsz/test/repair_hold_multi_output_load.v | 36 ------------------- 4 files changed, 37 insertions(+), 83 deletions(-) create mode 100644 src/rsz/test/repair_hold_multi_output_load.def delete mode 100644 src/rsz/test/repair_hold_multi_output_load.v diff --git a/src/rsz/test/repair_hold_multi_output_load.def b/src/rsz/test/repair_hold_multi_output_load.def new file mode 100644 index 00000000000..51df15ac376 --- /dev/null +++ b/src/rsz/test/repair_hold_multi_output_load.def @@ -0,0 +1,29 @@ +VERSION 5.8 ; +DIVIDERCHAR "/" ; +BUSBITCHARS "[]" ; +DESIGN repair_hold_multi_output_load ; +UNITS DISTANCE MICRONS 1000 ; +DIEAREA ( 0 0 ) ( 20000 1000 ) ; +ROW ROW_0 asap7sc7p5t 0 0 N DO 370 BY 1 STEP 54 0 ; +COMPONENTS 4 ; + - u_capture_con DFFHQNx1_ASAP7_75t_R + PLACED ( 7992 0 ) N ; + - u_capture_sn DFFHQNx1_ASAP7_75t_R + PLACED ( 11988 0 ) N ; + - u_fa FAx1_ASAP7_75t_R + PLACED ( 3996 0 ) N ; + - u_launch DFFHQNx1_ASAP7_75t_R + PLACED ( 1026 0 ) N ; +END COMPONENTS +PINS 2 ; + - clk + NET clk + DIRECTION INPUT + USE SIGNAL ; + - d_in + NET d_in + DIRECTION INPUT + USE SIGNAL ; +END PINS +NETS 9 ; + - capture_con_qn ( u_capture_con QN ) + USE SIGNAL ; + - capture_sn_qn ( u_capture_sn QN ) + USE SIGNAL ; + - clk ( PIN clk ) ( u_launch CLK ) ( u_capture_sn CLK ) ( u_capture_con CLK ) + USE SIGNAL ; + - con_net ( u_fa CON ) ( u_capture_con D ) + USE SIGNAL ; + - d_in ( PIN d_in ) ( u_launch D ) + USE SIGNAL ; + - launch_qn ( u_launch QN ) ( u_fa A ) + USE SIGNAL ; + - one_ ( u_fa B ) + USE POWER ; + - sn_net ( u_fa SN ) ( u_capture_sn D ) + USE SIGNAL ; + - zero_ ( u_fa CI ) + USE GROUND ; +END NETS +END DESIGN diff --git a/src/rsz/test/repair_hold_multi_output_load.ok b/src/rsz/test/repair_hold_multi_output_load.ok index 183e88c1847..811f3ffa20d 100644 --- a/src/rsz/test/repair_hold_multi_output_load.ok +++ b/src/rsz/test/repair_hold_multi_output_load.ok @@ -1,35 +1,9 @@ [INFO ODB-0227] LEF file: asap7/asap7_tech_1x_201209.lef, created 30 layers, 9 vias [INFO ODB-0227] LEF file: asap7/asap7sc7p5t_28_R_1x_220121a.lef, created 212 library cells -[INFO IFP-0001] Added 14 rows of 370 site asap7sc7p5t. -[INFO IFP-0100] Die BBox: ( 0.000 0.000 ) ( 20.000 4.000 ) um -[INFO IFP-0101] Core BBox: ( 0.000 0.000 ) ( 19.980 3.780 ) um -[INFO IFP-0102] Core area: 75.524 um^2 -[INFO IFP-0103] Total instances area: 1.079 um^2 -[INFO IFP-0104] Effective utilization: 0.014 -[INFO IFP-0105] Number of instances: 4 -[WARNING DPL-0387] BTerm clk is unplaced. -[WARNING DPL-0387] BTerm d_in is unplaced. -[INFO DPL-0006] Core area: 75.52 um^2, Instances area: 1.08 um^2, Utilization: 1.4% -[INFO DPL-0005] Diamond search max displacement: +/- 500 sites horizontally, +/- 100 rows vertically. -[INFO DPL-1101] Legalizing using diamond search. -Movements Summary ---------------------------------------- -Total cells: 4 -Diamond Move Success: 4 (100.00%) -Diamond Move Failure: 0 -Rip-up and replace Success: 0 ( 0.00% of diamond failures) -Rip-up and replace Failure: 0 -Total Placement Failures: 0 ---------------------------------------- -Placement Analysis ---------------------------------- -total displacement 0.2 u -average displacement 0.1 u -max displacement 0.1 u -original HPWL 25.1 u -legalized HPWL 25.1 u -delta HPWL 0 % - +[INFO ODB-0128] Design: repair_hold_multi_output_load +[INFO ODB-0130] Created 2 pins. +[INFO ODB-0131] Created 4 components and 22 component-terminals. +[INFO ODB-0133] Created 9 nets and 14 connections. Startpoint: u_launch (rising edge-triggered flip-flop clocked by clk) Endpoint: u_capture_con (rising edge-triggered flip-flop clocked by clk) Path Group: clk diff --git a/src/rsz/test/repair_hold_multi_output_load.tcl b/src/rsz/test/repair_hold_multi_output_load.tcl index 591cafd37c7..03f91660c3e 100644 --- a/src/rsz/test/repair_hold_multi_output_load.tcl +++ b/src/rsz/test/repair_hold_multi_output_load.tcl @@ -1,6 +1,6 @@ -# Targeted regression for issue #10213. A tiny ASAP7 design contains one -# FAx1_ASAP7_75t_R whose CON output drives the repaired endpoint and whose -# SN output is on a different net. The launch net is marked dont_touch so +# Targeted regression for issue #10213. The placed DEF contains one +# FAx1_ASAP7_75t_R whose CON output drives the repaired endpoint and whose SN +# output is on a different net. The launch net is marked dont_touch so # repair_timing -hold must attempt repair on the FA CON net itself. source "helpers.tcl" source asap7/asap7.vars @@ -10,20 +10,7 @@ read_liberty asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz read_liberty asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib read_lef asap7/asap7_tech_1x_201209.lef read_lef asap7/asap7sc7p5t_28_R_1x_220121a.lef - -read_verilog repair_hold_multi_output_load.v -link_design repair_hold_multi_output_load - -initialize_floorplan \ - -site $site \ - -die_area {0 0 20 4} \ - -core_area {0 0 20 4} - -place_inst -name u_launch -location {1 0.5} -place_inst -name u_fa -location {4 0.5} -place_inst -name u_capture_con -location {8 0.5} -place_inst -name u_capture_sn -location {12 0.5} -detailed_placement +read_def repair_hold_multi_output_load.def create_clock -name clk -period 10 [get_ports clk] set_min_delay 80 -from [get_clocks clk] -to [get_clocks clk] diff --git a/src/rsz/test/repair_hold_multi_output_load.v b/src/rsz/test/repair_hold_multi_output_load.v deleted file mode 100644 index 87b362d7cff..00000000000 --- a/src/rsz/test/repair_hold_multi_output_load.v +++ /dev/null @@ -1,36 +0,0 @@ -module repair_hold_multi_output_load ( - input clk, - input d_in -); - wire launch_qn; - wire con_net; - wire sn_net; - wire capture_con_qn; - wire capture_sn_qn; - - DFFHQNx1_ASAP7_75t_R u_launch ( - .CLK(clk), - .D(d_in), - .QN(launch_qn) - ); - - FAx1_ASAP7_75t_R u_fa ( - .A(launch_qn), - .B(1'b1), - .CI(1'b0), - .CON(con_net), - .SN(sn_net) - ); - - DFFHQNx1_ASAP7_75t_R u_capture_con ( - .CLK(clk), - .D(con_net), - .QN(capture_con_qn) - ); - - DFFHQNx1_ASAP7_75t_R u_capture_sn ( - .CLK(clk), - .D(sn_net), - .QN(capture_sn_qn) - ); -endmodule