From dcf73e99ff16bd62d76b6cb7629232e2332f0399 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Wed, 4 Sep 2024 20:15:07 -0300 Subject: [PATCH 01/10] rsz: use only data buffers Signed-off-by: Arthur Koucher --- src/rsz/include/rsz/Resizer.hh | 2 +- src/rsz/src/Resizer.cc | 25 ++++++++++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/rsz/include/rsz/Resizer.hh b/src/rsz/include/rsz/Resizer.hh index 7e4e24d351d..9d90d090cf0 100644 --- a/src/rsz/include/rsz/Resizer.hh +++ b/src/rsz/include/rsz/Resizer.hh @@ -415,7 +415,7 @@ class Resizer : public dbStaState bool hasTristateOrDontTouchDriver(const Net* net); bool isTristateDriver(const Pin* pin); void checkLibertyForAllCorners(); - void findBuffers(); + void findDataBuffers(); bool isLinkCell(LibertyCell* cell); void findTargetLoads(); void balanceBin(const vector& bin); diff --git a/src/rsz/src/Resizer.cc b/src/rsz/src/Resizer.cc index 9eceaa18a9f..81e2652271a 100644 --- a/src/rsz/src/Resizer.cc +++ b/src/rsz/src/Resizer.cc @@ -58,6 +58,7 @@ #include "sta/Liberty.hh" #include "sta/Network.hh" #include "sta/Parasitics.hh" +#include "sta/PatternMatch.hh" #include "sta/PortDirection.hh" #include "sta/Sdc.hh" #include "sta/Search.hh" @@ -497,18 +498,31 @@ void Resizer::balanceRowUsage() //////////////////////////////////////////////////////////////// -void Resizer::findBuffers() +void Resizer::findDataBuffers() { if (buffer_cells_.empty()) { LibertyLibraryIterator* lib_iter = network_->libertyLibraryIterator(); + sta::PatternMatch clkbuf_pattern(".*CLKBUF.*", + /* is_regexp */ true, + /* nocase */ true, + /* Tcl_interp* */ nullptr); + while (lib_iter->hasNext()) { LibertyLibrary* lib = lib_iter->next(); + for (LibertyCell* buffer : *lib->buffers()) { + // is_clock_cell is a custom lib attribute that may not exist, + // so we also use the name pattern to help + if (buffer->isClockCell() || clkbuf_pattern.match(buffer->name())) { + continue; + } + if (!dontUse(buffer) && isLinkCell(buffer)) { buffer_cells_.emplace_back(buffer); } } } + delete lib_iter; if (buffer_cells_.empty()) { @@ -519,6 +533,7 @@ void Resizer::findBuffers() return bufferDriveResistance(buffer1) > bufferDriveResistance(buffer2); }); + buffer_lowest_drive_ = buffer_cells_[0]; } } @@ -534,7 +549,7 @@ bool Resizer::isLinkCell(LibertyCell* cell) void Resizer::bufferInputs() { init(); - findBuffers(); + findDataBuffers(); sta_->ensureClkNetwork(); inserted_buffer_count_ = 0; buffer_moved_into_core_ = false; @@ -659,7 +674,7 @@ Instance* Resizer::bufferInput(const Pin* top_pin, LibertyCell* buffer_cell) void Resizer::bufferOutputs() { init(); - findBuffers(); + findDataBuffers(); inserted_buffer_count_ = 0; buffer_moved_into_core_ = false; @@ -974,7 +989,7 @@ void Resizer::resizePreamble() sta_->ensureClkNetwork(); makeEquivCells(); checkLibertyForAllCorners(); - findBuffers(); + findDataBuffers(); findTargetLoads(); } @@ -2352,7 +2367,7 @@ double Resizer::findMaxWireLength() { init(); checkLibertyForAllCorners(); - findBuffers(); + findDataBuffers(); findTargetLoads(); return findMaxWireLength1(); } From e6acedfdd03d764aab59f83c7e2f89955e1c93b2 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Mon, 16 Sep 2024 14:41:13 -0300 Subject: [PATCH 02/10] rsz: update results for non-erroneous regression tests except for hold repairing tests Signed-off-by: Arthur Koucher --- src/rsz/test/buffer_ports4.ok | 2 +- src/rsz/test/buffer_varying_lengths.defok | 546 +++++++++++----------- src/rsz/test/buffer_varying_lengths.ok | 12 +- src/rsz/test/repair_cap3.ok | 2 +- src/rsz/test/repair_design2.ok | 2 +- src/rsz/test/repair_design3.ok | 2 +- src/rsz/test/repair_design3_verbose.ok | 2 +- src/rsz/test/repair_design4.ok | 4 +- src/rsz/test/repair_design5.ok | 4 +- src/rsz/test/repair_fanout1.ok | 2 +- src/rsz/test/repair_fanout5.ok | 2 +- src/rsz/test/repair_fanout6.ok | 4 +- src/rsz/test/repair_setup2.ok | 2 +- src/rsz/test/repair_setup4.ok | 2 +- src/rsz/test/repair_setup4_verbose.ok | 31 +- src/rsz/test/repair_setup7.ok | 4 +- src/rsz/test/repair_setup_undo.ok | 2 +- src/rsz/test/repair_slew13.ok | 2 +- src/rsz/test/repair_slew14.ok | 2 +- src/rsz/test/repair_slew6.ok | 2 +- src/rsz/test/repair_slew7.ok | 10 +- src/rsz/test/repair_slew8.ok | 2 +- src/rsz/test/repair_slew9.ok | 2 +- src/rsz/test/repair_wire1.ok | 26 +- src/rsz/test/repair_wire10.ok | 10 +- src/rsz/test/repair_wire6.ok | 22 +- src/rsz/test/repair_wire8.ok | 2 +- src/rsz/test/resize_slack2.ok | 76 +-- 28 files changed, 389 insertions(+), 392 deletions(-) diff --git a/src/rsz/test/buffer_ports4.ok b/src/rsz/test/buffer_ports4.ok index 960a29013a5..681561e53d6 100644 --- a/src/rsz/test/buffer_ports4.ok +++ b/src/rsz/test/buffer_ports4.ok @@ -11,7 +11,7 @@ Pin Limit Slew Slack ------------------------------------------------------------ input1/Z 0.20 1.15 -0.95 (VIOLATED) -[INFO RSZ-0058] Using max wire length 828um. +[INFO RSZ-0058] Using max wire length 833um. [INFO RSZ-0039] Resized 1 instances. max slew diff --git a/src/rsz/test/buffer_varying_lengths.defok b/src/rsz/test/buffer_varying_lengths.defok index ad256fb2d24..1eab3a48773 100644 --- a/src/rsz/test/buffer_varying_lengths.defok +++ b/src/rsz/test/buffer_varying_lengths.defok @@ -3,7 +3,7 @@ DIVIDERCHAR "|" ; BUSBITCHARS "[]" ; DESIGN top ; UNITS DISTANCE MICRONS 2000 ; -COMPONENTS 562 ; +COMPONENTS 561 ; - i1-1 BUF_X32 + PLACED ( 0 20000 ) N ; - i1-10 BUF_X32 + PLACED ( 0 200000 ) N ; - i1-100 BUF_X8 + PLACED ( 0 2000000 ) N ; @@ -92,18 +92,18 @@ COMPONENTS 562 ; - i1-176 BUF_X8 + PLACED ( 0 3520000 ) N ; - i1-177 BUF_X8 + PLACED ( 0 3540000 ) N ; - i1-178 BUF_X8 + PLACED ( 0 3560000 ) N ; - - i1-179 BUF_X8 + PLACED ( 0 3580000 ) N ; + - i1-179 BUF_X16 + PLACED ( 0 3580000 ) N ; - i1-18 BUF_X32 + PLACED ( 0 360000 ) N ; - - i1-180 BUF_X8 + PLACED ( 0 3600000 ) N ; - - i1-181 BUF_X8 + PLACED ( 0 3620000 ) N ; - - i1-182 BUF_X8 + PLACED ( 0 3640000 ) N ; - - i1-183 BUF_X8 + PLACED ( 0 3660000 ) N ; - - i1-184 BUF_X8 + PLACED ( 0 3680000 ) N ; - - i1-185 BUF_X8 + PLACED ( 0 3700000 ) N ; - - i1-186 BUF_X8 + PLACED ( 0 3720000 ) N ; - - i1-187 BUF_X8 + PLACED ( 0 3740000 ) N ; - - i1-188 BUF_X8 + PLACED ( 0 3760000 ) N ; - - i1-189 BUF_X8 + PLACED ( 0 3780000 ) N ; + - i1-180 BUF_X16 + PLACED ( 0 3600000 ) N ; + - i1-181 BUF_X16 + PLACED ( 0 3620000 ) N ; + - i1-182 BUF_X16 + PLACED ( 0 3640000 ) N ; + - i1-183 BUF_X16 + PLACED ( 0 3660000 ) N ; + - i1-184 BUF_X16 + PLACED ( 0 3680000 ) N ; + - i1-185 BUF_X16 + PLACED ( 0 3700000 ) N ; + - i1-186 BUF_X16 + PLACED ( 0 3720000 ) N ; + - i1-187 BUF_X16 + PLACED ( 0 3740000 ) N ; + - i1-188 BUF_X16 + PLACED ( 0 3760000 ) N ; + - i1-189 BUF_X16 + PLACED ( 0 3780000 ) N ; - i1-19 BUF_X32 + PLACED ( 0 380000 ) N ; - i1-190 BUF_X16 + PLACED ( 0 3800000 ) N ; - i1-191 BUF_X16 + PLACED ( 0 3820000 ) N ; @@ -392,170 +392,169 @@ COMPONENTS 562 ; - i2-86 BUF_X4 + PLACED ( 1720000 1720000 ) N ; - i2-87 BUF_X4 + PLACED ( 1740000 1740000 ) N ; - i2-88 BUF_X4 + PLACED ( 1760000 1760000 ) N ; - - i2-89 BUF_X4 + PLACED ( 1780000 1780000 ) N ; + - i2-89 BUF_X1 + PLACED ( 1780000 1780000 ) N ; - i2-9 BUF_X4 + PLACED ( 180000 180000 ) N ; - - i2-90 BUF_X4 + PLACED ( 1800000 1800000 ) N ; - - i2-91 BUF_X4 + PLACED ( 1820000 1820000 ) N ; - - i2-92 BUF_X4 + PLACED ( 1840000 1840000 ) N ; - - i2-93 BUF_X4 + PLACED ( 1860000 1860000 ) N ; - - i2-94 BUF_X4 + PLACED ( 1880000 1880000 ) N ; + - i2-90 BUF_X1 + PLACED ( 1800000 1800000 ) N ; + - i2-91 BUF_X1 + PLACED ( 1820000 1820000 ) N ; + - i2-92 BUF_X1 + PLACED ( 1840000 1840000 ) N ; + - i2-93 BUF_X1 + PLACED ( 1860000 1860000 ) N ; + - i2-94 BUF_X1 + PLACED ( 1880000 1880000 ) N ; - i2-95 BUF_X1 + PLACED ( 1900000 1900000 ) N ; - i2-96 BUF_X1 + PLACED ( 1920000 1920000 ) N ; - i2-97 BUF_X1 + PLACED ( 1940000 1940000 ) N ; - i2-98 BUF_X1 + PLACED ( 1960000 1960000 ) N ; - i2-99 BUF_X1 + PLACED ( 1980000 1980000 ) N ; - wire1 BUF_X8 + SOURCE TIMING + PLACED ( 1041175 1981285 ) N ; - - wire10 BUF_X8 + SOURCE TIMING + PLACED ( 945929 1801285 ) N ; + - wire10 BUF_X8 + SOURCE TIMING + PLACED ( 946675 1801285 ) N ; - wire100 BUF_X8 + SOURCE TIMING + PLACED ( 1671175 3181285 ) N ; - - wire101 BUF_X4 + SOURCE TIMING + PLACED ( 878911 3181317 ) N ; + - wire101 BUF_X8 + SOURCE TIMING + PLACED ( 878911 3181317 ) N ; - wire102 BUF_X8 + SOURCE TIMING + PLACED ( 1660675 3161285 ) N ; - - wire103 BUF_X4 + SOURCE TIMING + PLACED ( 873398 3161317 ) N ; + - wire103 BUF_X8 + SOURCE TIMING + PLACED ( 873398 3161317 ) N ; - wire104 BUF_X8 + SOURCE TIMING + PLACED ( 1650175 3141285 ) N ; - - wire105 BUF_X4 + SOURCE TIMING + PLACED ( 867886 3141317 ) N ; - - wire106 BUF_X8 + SOURCE TIMING + PLACED ( 1639675 3121285 ) N ; - - wire107 BUF_X8 + SOURCE TIMING + PLACED ( 1629175 3101285 ) N ; - - wire108 BUF_X8 + SOURCE TIMING + PLACED ( 1618675 3081285 ) N ; - - wire109 BUF_X8 + SOURCE TIMING + PLACED ( 1608175 3061285 ) N ; - - wire11 BUF_X8 + SOURCE TIMING + PLACED ( 935429 1781285 ) N ; - - wire110 BUF_X8 + SOURCE TIMING + PLACED ( 1597675 3041285 ) N ; - - wire111 BUF_X8 + SOURCE TIMING + PLACED ( 1587175 3021285 ) N ; - - wire112 BUF_X8 + SOURCE TIMING + PLACED ( 1576675 3001285 ) N ; - - wire113 BUF_X8 + SOURCE TIMING + PLACED ( 1566175 2981285 ) N ; - - wire114 BUF_X8 + SOURCE TIMING + PLACED ( 1555675 2961285 ) N ; - - wire115 BUF_X8 + SOURCE TIMING + PLACED ( 1545175 2941285 ) N ; - - wire116 BUF_X8 + SOURCE TIMING + PLACED ( 1534675 2921285 ) N ; - - wire117 BUF_X8 + SOURCE TIMING + PLACED ( 1524175 2901285 ) N ; - - wire118 BUF_X8 + SOURCE TIMING + PLACED ( 1513675 2881285 ) N ; - - wire119 BUF_X8 + SOURCE TIMING + PLACED ( 1503175 2861285 ) N ; + - wire105 BUF_X8 + SOURCE TIMING + PLACED ( 1639675 3121285 ) N ; + - wire106 BUF_X8 + SOURCE TIMING + PLACED ( 1629175 3101285 ) N ; + - wire107 BUF_X8 + SOURCE TIMING + PLACED ( 1618675 3081285 ) N ; + - wire108 BUF_X8 + SOURCE TIMING + PLACED ( 1608175 3061285 ) N ; + - wire109 BUF_X8 + SOURCE TIMING + PLACED ( 1597675 3041285 ) N ; + - wire11 BUF_X8 + SOURCE TIMING + PLACED ( 936175 1781285 ) N ; + - wire110 BUF_X8 + SOURCE TIMING + PLACED ( 1587175 3021285 ) N ; + - wire111 BUF_X8 + SOURCE TIMING + PLACED ( 1576675 3001285 ) N ; + - wire112 BUF_X8 + SOURCE TIMING + PLACED ( 1566175 2981285 ) N ; + - wire113 BUF_X8 + SOURCE TIMING + PLACED ( 1555675 2961285 ) N ; + - wire114 BUF_X8 + SOURCE TIMING + PLACED ( 1545175 2941285 ) N ; + - wire115 BUF_X8 + SOURCE TIMING + PLACED ( 1534675 2921285 ) N ; + - wire116 BUF_X8 + SOURCE TIMING + PLACED ( 1524175 2901285 ) N ; + - wire117 BUF_X8 + SOURCE TIMING + PLACED ( 1513675 2881285 ) N ; + - wire118 BUF_X8 + SOURCE TIMING + PLACED ( 1503175 2861285 ) N ; + - wire119 BUF_X8 + SOURCE TIMING + PLACED ( 1492675 2841285 ) N ; - wire12 BUF_X8 + SOURCE TIMING + PLACED ( 924929 1761285 ) N ; - - wire120 BUF_X8 + SOURCE TIMING + PLACED ( 1492675 2841285 ) N ; - - wire121 BUF_X8 + SOURCE TIMING + PLACED ( 1482175 2821285 ) N ; - - wire122 BUF_X8 + SOURCE TIMING + PLACED ( 1471675 2801285 ) N ; - - wire123 BUF_X8 + SOURCE TIMING + PLACED ( 1461175 2781285 ) N ; - - wire124 BUF_X8 + SOURCE TIMING + PLACED ( 1450675 2761285 ) N ; - - wire125 BUF_X8 + SOURCE TIMING + PLACED ( 1440175 2741285 ) N ; - - wire126 BUF_X8 + SOURCE TIMING + PLACED ( 1429675 2721285 ) N ; - - wire127 BUF_X8 + SOURCE TIMING + PLACED ( 1419175 2701285 ) N ; - - wire128 BUF_X8 + SOURCE TIMING + PLACED ( 1408675 2681285 ) N ; - - wire129 BUF_X8 + SOURCE TIMING + PLACED ( 1398175 2661285 ) N ; + - wire120 BUF_X8 + SOURCE TIMING + PLACED ( 1482175 2821285 ) N ; + - wire121 BUF_X8 + SOURCE TIMING + PLACED ( 1471675 2801285 ) N ; + - wire122 BUF_X8 + SOURCE TIMING + PLACED ( 1461175 2781285 ) N ; + - wire123 BUF_X8 + SOURCE TIMING + PLACED ( 1450675 2761285 ) N ; + - wire124 BUF_X8 + SOURCE TIMING + PLACED ( 1440175 2741285 ) N ; + - wire125 BUF_X8 + SOURCE TIMING + PLACED ( 1429675 2721285 ) N ; + - wire126 BUF_X8 + SOURCE TIMING + PLACED ( 1419175 2701285 ) N ; + - wire127 BUF_X8 + SOURCE TIMING + PLACED ( 1408675 2681285 ) N ; + - wire128 BUF_X8 + SOURCE TIMING + PLACED ( 1398175 2661285 ) N ; + - wire129 BUF_X8 + SOURCE TIMING + PLACED ( 1387675 2641285 ) N ; - wire13 BUF_X8 + SOURCE TIMING + PLACED ( 914429 1741285 ) N ; - - wire130 BUF_X8 + SOURCE TIMING + PLACED ( 1387675 2641285 ) N ; - - wire131 BUF_X8 + SOURCE TIMING + PLACED ( 1377175 2621285 ) N ; - - wire132 BUF_X8 + SOURCE TIMING + PLACED ( 1366675 2601285 ) N ; - - wire133 BUF_X8 + SOURCE TIMING + PLACED ( 1356175 2581285 ) N ; - - wire134 BUF_X8 + SOURCE TIMING + PLACED ( 1345675 2561285 ) N ; - - wire135 BUF_X8 + SOURCE TIMING + PLACED ( 1335175 2541285 ) N ; - - wire136 BUF_X8 + SOURCE TIMING + PLACED ( 1324675 2521285 ) N ; - - wire137 BUF_X8 + SOURCE TIMING + PLACED ( 1314175 2501285 ) N ; - - wire138 BUF_X8 + SOURCE TIMING + PLACED ( 1303675 2481285 ) N ; - - wire139 BUF_X8 + SOURCE TIMING + PLACED ( 1293175 2461285 ) N ; + - wire130 BUF_X8 + SOURCE TIMING + PLACED ( 1377175 2621285 ) N ; + - wire131 BUF_X8 + SOURCE TIMING + PLACED ( 1366675 2601285 ) N ; + - wire132 BUF_X8 + SOURCE TIMING + PLACED ( 1356175 2581285 ) N ; + - wire133 BUF_X8 + SOURCE TIMING + PLACED ( 1345675 2561285 ) N ; + - wire134 BUF_X8 + SOURCE TIMING + PLACED ( 1335175 2541285 ) N ; + - wire135 BUF_X8 + SOURCE TIMING + PLACED ( 1324675 2521285 ) N ; + - wire136 BUF_X8 + SOURCE TIMING + PLACED ( 1314175 2501285 ) N ; + - wire137 BUF_X8 + SOURCE TIMING + PLACED ( 1303675 2481285 ) N ; + - wire138 BUF_X8 + SOURCE TIMING + PLACED ( 1293175 2461285 ) N ; + - wire139 BUF_X8 + SOURCE TIMING + PLACED ( 1282675 2441285 ) N ; - wire14 BUF_X8 + SOURCE TIMING + PLACED ( 903929 1721285 ) N ; - - wire140 BUF_X8 + SOURCE TIMING + PLACED ( 1282675 2441285 ) N ; - - wire141 BUF_X8 + SOURCE TIMING + PLACED ( 1272175 2421285 ) N ; - - wire142 BUF_X8 + SOURCE TIMING + PLACED ( 1261675 2401285 ) N ; - - wire143 BUF_X8 + SOURCE TIMING + PLACED ( 1251175 2381285 ) N ; - - wire144 BUF_X8 + SOURCE TIMING + PLACED ( 1240675 2361285 ) N ; - - wire145 BUF_X8 + SOURCE TIMING + PLACED ( 1230175 2341285 ) N ; - - wire146 BUF_X8 + SOURCE TIMING + PLACED ( 1219675 2321285 ) N ; - - wire147 BUF_X8 + SOURCE TIMING + PLACED ( 1209175 2301285 ) N ; - - wire148 BUF_X8 + SOURCE TIMING + PLACED ( 1198675 2281285 ) N ; - - wire149 BUF_X8 + SOURCE TIMING + PLACED ( 1188175 2261285 ) N ; + - wire140 BUF_X8 + SOURCE TIMING + PLACED ( 1272175 2421285 ) N ; + - wire141 BUF_X8 + SOURCE TIMING + PLACED ( 1261675 2401285 ) N ; + - wire142 BUF_X8 + SOURCE TIMING + PLACED ( 1251175 2381285 ) N ; + - wire143 BUF_X8 + SOURCE TIMING + PLACED ( 1240675 2361285 ) N ; + - wire144 BUF_X8 + SOURCE TIMING + PLACED ( 1230175 2341285 ) N ; + - wire145 BUF_X8 + SOURCE TIMING + PLACED ( 1219675 2321285 ) N ; + - wire146 BUF_X8 + SOURCE TIMING + PLACED ( 1209175 2301285 ) N ; + - wire147 BUF_X8 + SOURCE TIMING + PLACED ( 1198675 2281285 ) N ; + - wire148 BUF_X8 + SOURCE TIMING + PLACED ( 1188175 2261285 ) N ; + - wire149 BUF_X8 + SOURCE TIMING + PLACED ( 1177675 2241285 ) N ; - wire15 BUF_X8 + SOURCE TIMING + PLACED ( 893429 1701285 ) N ; - - wire150 BUF_X8 + SOURCE TIMING + PLACED ( 1177675 2241285 ) N ; - - wire151 BUF_X8 + SOURCE TIMING + PLACED ( 1167175 2221285 ) N ; - - wire152 BUF_X8 + SOURCE TIMING + PLACED ( 1156675 2201285 ) N ; - - wire153 BUF_X8 + SOURCE TIMING + PLACED ( 1146175 2181285 ) N ; - - wire154 BUF_X8 + SOURCE TIMING + PLACED ( 1135675 2161285 ) N ; - - wire155 BUF_X8 + SOURCE TIMING + PLACED ( 1125175 2141285 ) N ; - - wire156 BUF_X8 + SOURCE TIMING + PLACED ( 1114675 2121285 ) N ; - - wire157 BUF_X8 + SOURCE TIMING + PLACED ( 1104175 2101285 ) N ; - - wire158 BUF_X8 + SOURCE TIMING + PLACED ( 1093675 2081285 ) N ; - - wire159 BUF_X8 + SOURCE TIMING + PLACED ( 1083175 2061285 ) N ; + - wire150 BUF_X8 + SOURCE TIMING + PLACED ( 1167175 2221285 ) N ; + - wire151 BUF_X8 + SOURCE TIMING + PLACED ( 1156675 2201285 ) N ; + - wire152 BUF_X8 + SOURCE TIMING + PLACED ( 1146175 2181285 ) N ; + - wire153 BUF_X8 + SOURCE TIMING + PLACED ( 1135675 2161285 ) N ; + - wire154 BUF_X8 + SOURCE TIMING + PLACED ( 1125175 2141285 ) N ; + - wire155 BUF_X8 + SOURCE TIMING + PLACED ( 1114675 2121285 ) N ; + - wire156 BUF_X8 + SOURCE TIMING + PLACED ( 1104175 2101285 ) N ; + - wire157 BUF_X8 + SOURCE TIMING + PLACED ( 1093675 2081285 ) N ; + - wire158 BUF_X8 + SOURCE TIMING + PLACED ( 1083175 2061285 ) N ; + - wire159 BUF_X8 + SOURCE TIMING + PLACED ( 1072675 2041285 ) N ; - wire16 BUF_X8 + SOURCE TIMING + PLACED ( 882929 1681285 ) N ; - - wire160 BUF_X8 + SOURCE TIMING + PLACED ( 1072675 2041285 ) N ; - - wire161 BUF_X8 + SOURCE TIMING + PLACED ( 1062175 2021285 ) N ; - - wire162 BUF_X8 + SOURCE TIMING + PLACED ( 1051675 2001285 ) N ; + - wire160 BUF_X8 + SOURCE TIMING + PLACED ( 1062175 2021285 ) N ; + - wire161 BUF_X8 + SOURCE TIMING + PLACED ( 1051675 2001285 ) N ; - wire17 BUF_X8 + SOURCE TIMING + PLACED ( 872429 1661285 ) N ; - - wire18 BUF_X16 + SOURCE TIMING + PLACED ( 2437968 4001136 ) N ; - - wire19 BUF_X8 + SOURCE TIMING + PLACED ( 1282994 4001071 ) N ; + - wire18 BUF_X16 + SOURCE TIMING + PLACED ( 2428188 4001136 ) N ; + - wire19 BUF_X8 + SOURCE TIMING + PLACED ( 1277860 4001071 ) N ; - wire2 BUF_X8 + SOURCE TIMING + PLACED ( 1030675 1961285 ) N ; - - wire20 BUF_X16 + SOURCE TIMING + PLACED ( 2417968 3981136 ) N ; - - wire21 BUF_X8 + SOURCE TIMING + PLACED ( 1272494 3981071 ) N ; - - wire22 BUF_X16 + SOURCE TIMING + PLACED ( 2397968 3961136 ) N ; - - wire23 BUF_X8 + SOURCE TIMING + PLACED ( 1261994 3961071 ) N ; - - wire24 BUF_X16 + SOURCE TIMING + PLACED ( 2377969 3941135 ) N ; - - wire25 BUF_X8 + SOURCE TIMING + PLACED ( 1251495 3941070 ) N ; - - wire26 BUF_X16 + SOURCE TIMING + PLACED ( 2357969 3921135 ) N ; - - wire27 BUF_X8 + SOURCE TIMING + PLACED ( 1240995 3921070 ) N ; - - wire28 BUF_X16 + SOURCE TIMING + PLACED ( 2337970 3901134 ) N ; - - wire29 BUF_X8 + SOURCE TIMING + PLACED ( 1230495 3901070 ) N ; + - wire20 BUF_X16 + SOURCE TIMING + PLACED ( 2408188 3981135 ) N ; + - wire21 BUF_X8 + SOURCE TIMING + PLACED ( 1267360 3981070 ) N ; + - wire22 BUF_X16 + SOURCE TIMING + PLACED ( 2388189 3961135 ) N ; + - wire23 BUF_X8 + SOURCE TIMING + PLACED ( 1256861 3961070 ) N ; + - wire24 BUF_X16 + SOURCE TIMING + PLACED ( 2368189 3941135 ) N ; + - wire25 BUF_X8 + SOURCE TIMING + PLACED ( 1246361 3941070 ) N ; + - wire26 BUF_X16 + SOURCE TIMING + PLACED ( 2348190 3921134 ) N ; + - wire27 BUF_X8 + SOURCE TIMING + PLACED ( 1235861 3921070 ) N ; + - wire28 BUF_X16 + SOURCE TIMING + PLACED ( 2328190 3901134 ) N ; + - wire29 BUF_X8 + SOURCE TIMING + PLACED ( 1225361 3901070 ) N ; - wire3 BUF_X8 + SOURCE TIMING + PLACED ( 1020175 1941285 ) N ; - - wire30 BUF_X16 + SOURCE TIMING + PLACED ( 2317970 3881134 ) N ; - - wire31 BUF_X8 + SOURCE TIMING + PLACED ( 1219995 3881070 ) N ; - - wire32 BUF_X16 + SOURCE TIMING + PLACED ( 2297971 3861133 ) N ; - - wire33 BUF_X8 + SOURCE TIMING + PLACED ( 1209496 3861069 ) N ; - - wire34 BUF_X16 + SOURCE TIMING + PLACED ( 2277971 3841133 ) N ; - - wire35 BUF_X8 + SOURCE TIMING + PLACED ( 1198996 3841069 ) N ; - - wire36 BUF_X16 + SOURCE TIMING + PLACED ( 2257972 3821132 ) N ; - - wire37 BUF_X8 + SOURCE TIMING + PLACED ( 1188496 3821069 ) N ; - - wire38 BUF_X8 + SOURCE TIMING + PLACED ( 2237972 3801132 ) N ; - - wire39 BUF_X8 + SOURCE TIMING + PLACED ( 1177996 3801069 ) N ; + - wire30 BUF_X16 + SOURCE TIMING + PLACED ( 2308191 3881133 ) N ; + - wire31 BUF_X8 + SOURCE TIMING + PLACED ( 1214862 3881069 ) N ; + - wire32 BUF_X16 + SOURCE TIMING + PLACED ( 2288191 3861133 ) N ; + - wire33 BUF_X8 + SOURCE TIMING + PLACED ( 1204362 3861069 ) N ; + - wire34 BUF_X16 + SOURCE TIMING + PLACED ( 2268192 3841132 ) N ; + - wire35 BUF_X8 + SOURCE TIMING + PLACED ( 1193862 3841069 ) N ; + - wire36 BUF_X16 + SOURCE TIMING + PLACED ( 2248192 3821132 ) N ; + - wire37 BUF_X8 + SOURCE TIMING + PLACED ( 1183362 3821069 ) N ; + - wire38 BUF_X16 + SOURCE TIMING + PLACED ( 2228192 3801131 ) N ; + - wire39 BUF_X8 + SOURCE TIMING + PLACED ( 1172862 3801068 ) N ; - wire4 BUF_X8 + SOURCE TIMING + PLACED ( 1009675 1921285 ) N ; - - wire40 BUF_X8 + SOURCE TIMING + PLACED ( 2217932 3781277 ) N ; - - wire41 BUF_X8 + SOURCE TIMING + PLACED ( 1165958 3781313 ) N ; - - wire42 BUF_X8 + SOURCE TIMING + PLACED ( 2197933 3761278 ) N ; - - wire43 BUF_X8 + SOURCE TIMING + PLACED ( 1155459 3761313 ) N ; - - wire44 BUF_X8 + SOURCE TIMING + PLACED ( 2177933 3741278 ) N ; - - wire45 BUF_X8 + SOURCE TIMING + PLACED ( 1144959 3741313 ) N ; - - wire46 BUF_X8 + SOURCE TIMING + PLACED ( 2157933 3721278 ) N ; - - wire47 BUF_X8 + SOURCE TIMING + PLACED ( 1134459 3721313 ) N ; - - wire48 BUF_X8 + SOURCE TIMING + PLACED ( 2137934 3701279 ) N ; - - wire49 BUF_X8 + SOURCE TIMING + PLACED ( 1123960 3701314 ) N ; + - wire40 BUF_X16 + SOURCE TIMING + PLACED ( 2208193 3781131 ) N ; + - wire41 BUF_X8 + SOURCE TIMING + PLACED ( 1162363 3781068 ) N ; + - wire42 BUF_X16 + SOURCE TIMING + PLACED ( 2188193 3761130 ) N ; + - wire43 BUF_X8 + SOURCE TIMING + PLACED ( 1151863 3761068 ) N ; + - wire44 BUF_X16 + SOURCE TIMING + PLACED ( 2168194 3741130 ) N ; + - wire45 BUF_X8 + SOURCE TIMING + PLACED ( 1141363 3741068 ) N ; + - wire46 BUF_X16 + SOURCE TIMING + PLACED ( 2148194 3721129 ) N ; + - wire47 BUF_X8 + SOURCE TIMING + PLACED ( 1130863 3721067 ) N ; + - wire48 BUF_X16 + SOURCE TIMING + PLACED ( 2128195 3701129 ) N ; + - wire49 BUF_X8 + SOURCE TIMING + PLACED ( 1120364 3701067 ) N ; - wire5 BUF_X8 + SOURCE TIMING + PLACED ( 999175 1901285 ) N ; - - wire50 BUF_X8 + SOURCE TIMING + PLACED ( 2117934 3681279 ) N ; - - wire51 BUF_X8 + SOURCE TIMING + PLACED ( 1113460 3681314 ) N ; - - wire52 BUF_X8 + SOURCE TIMING + PLACED ( 2097934 3661279 ) N ; - - wire53 BUF_X8 + SOURCE TIMING + PLACED ( 1102960 3661314 ) N ; - - wire54 BUF_X8 + SOURCE TIMING + PLACED ( 2077934 3641279 ) N ; - - wire55 BUF_X8 + SOURCE TIMING + PLACED ( 1092460 3641314 ) N ; - - wire56 BUF_X8 + SOURCE TIMING + PLACED ( 2057935 3621280 ) N ; - - wire57 BUF_X8 + SOURCE TIMING + PLACED ( 1081960 3621314 ) N ; - - wire58 BUF_X8 + SOURCE TIMING + PLACED ( 2037935 3601280 ) N ; - - wire59 BUF_X8 + SOURCE TIMING + PLACED ( 1071460 3601314 ) N ; - - wire6 BUF_X8 + SOURCE TIMING + PLACED ( 987929 1881285 ) N ; - - wire60 BUF_X8 + SOURCE TIMING + PLACED ( 2017935 3581280 ) N ; - - wire61 BUF_X8 + SOURCE TIMING + PLACED ( 1060960 3581314 ) N ; - - wire62 BUF_X8 + SOURCE TIMING + PLACED ( 1997936 3561281 ) N ; - - wire63 BUF_X8 + SOURCE TIMING + PLACED ( 1050461 3561315 ) N ; - - wire64 BUF_X8 + SOURCE TIMING + PLACED ( 1977936 3541281 ) N ; - - wire65 BUF_X8 + SOURCE TIMING + PLACED ( 1039961 3541315 ) N ; - - wire66 BUF_X8 + SOURCE TIMING + PLACED ( 1957936 3521281 ) N ; - - wire67 BUF_X8 + SOURCE TIMING + PLACED ( 1029461 3521315 ) N ; - - wire68 BUF_X8 + SOURCE TIMING + PLACED ( 1937937 3501282 ) N ; - - wire69 BUF_X8 + SOURCE TIMING + PLACED ( 1018961 3501315 ) N ; - - wire7 BUF_X8 + SOURCE TIMING + PLACED ( 977429 1861285 ) N ; - - wire70 BUF_X8 + SOURCE TIMING + PLACED ( 1917937 3481282 ) N ; - - wire71 BUF_X8 + SOURCE TIMING + PLACED ( 1008461 3481315 ) N ; - - wire72 BUF_X8 + SOURCE TIMING + PLACED ( 1897937 3461282 ) N ; - - wire73 BUF_X8 + SOURCE TIMING + PLACED ( 997961 3461315 ) N ; - - wire74 BUF_X8 + SOURCE TIMING + PLACED ( 1877938 3441283 ) N ; - - wire75 BUF_X8 + SOURCE TIMING + PLACED ( 987462 3441316 ) N ; - - wire76 BUF_X8 + SOURCE TIMING + PLACED ( 1857938 3421283 ) N ; - - wire77 BUF_X8 + SOURCE TIMING + PLACED ( 976962 3421316 ) N ; - - wire78 BUF_X8 + SOURCE TIMING + PLACED ( 1837938 3401283 ) N ; - - wire79 BUF_X8 + SOURCE TIMING + PLACED ( 966462 3401316 ) N ; - - wire8 BUF_X8 + SOURCE TIMING + PLACED ( 966929 1841285 ) N ; - - wire80 BUF_X8 + SOURCE TIMING + PLACED ( 1817939 3381284 ) N ; - - wire81 BUF_X8 + SOURCE TIMING + PLACED ( 955962 3381316 ) N ; - - wire82 BUF_X8 + SOURCE TIMING + PLACED ( 1797939 3361284 ) N ; - - wire83 BUF_X8 + SOURCE TIMING + PLACED ( 945462 3361316 ) N ; - - wire84 BUF_X8 + SOURCE TIMING + PLACED ( 1777939 3341284 ) N ; - - wire85 BUF_X8 + SOURCE TIMING + PLACED ( 934962 3341316 ) N ; - - wire86 BUF_X8 + SOURCE TIMING + PLACED ( 1757940 3321285 ) N ; - - wire87 BUF_X8 + SOURCE TIMING + PLACED ( 924463 3321317 ) N ; - - wire88 BUF_X8 + SOURCE TIMING + PLACED ( 1737940 3301285 ) N ; - - wire89 BUF_X8 + SOURCE TIMING + PLACED ( 913963 3301317 ) N ; - - wire9 BUF_X8 + SOURCE TIMING + PLACED ( 956429 1821285 ) N ; + - wire50 BUF_X16 + SOURCE TIMING + PLACED ( 2108196 3681128 ) N ; + - wire51 BUF_X8 + SOURCE TIMING + PLACED ( 1109864 3681067 ) N ; + - wire52 BUF_X16 + SOURCE TIMING + PLACED ( 2088196 3661128 ) N ; + - wire53 BUF_X8 + SOURCE TIMING + PLACED ( 1099364 3661067 ) N ; + - wire54 BUF_X16 + SOURCE TIMING + PLACED ( 2068197 3641127 ) N ; + - wire55 BUF_X8 + SOURCE TIMING + PLACED ( 1088865 3641066 ) N ; + - wire56 BUF_X16 + SOURCE TIMING + PLACED ( 2048197 3621127 ) N ; + - wire57 BUF_X8 + SOURCE TIMING + PLACED ( 1078365 3621066 ) N ; + - wire58 BUF_X16 + SOURCE TIMING + PLACED ( 2028198 3601126 ) N ; + - wire59 BUF_X8 + SOURCE TIMING + PLACED ( 1067865 3601066 ) N ; + - wire6 BUF_X8 + SOURCE TIMING + PLACED ( 988675 1881285 ) N ; + - wire60 BUF_X16 + SOURCE TIMING + PLACED ( 2008198 3581126 ) N ; + - wire61 BUF_X8 + SOURCE TIMING + PLACED ( 1057365 3581066 ) N ; + - wire62 BUF_X8 + SOURCE TIMING + PLACED ( 1988156 3561281 ) N ; + - wire63 BUF_X8 + SOURCE TIMING + PLACED ( 1045326 3561315 ) N ; + - wire64 BUF_X8 + SOURCE TIMING + PLACED ( 1968156 3541281 ) N ; + - wire65 BUF_X8 + SOURCE TIMING + PLACED ( 1034826 3541315 ) N ; + - wire66 BUF_X8 + SOURCE TIMING + PLACED ( 1948156 3521282 ) N ; + - wire67 BUF_X8 + SOURCE TIMING + PLACED ( 1024326 3521315 ) N ; + - wire68 BUF_X8 + SOURCE TIMING + PLACED ( 1928157 3501282 ) N ; + - wire69 BUF_X8 + SOURCE TIMING + PLACED ( 1013826 3501315 ) N ; + - wire7 BUF_X8 + SOURCE TIMING + PLACED ( 978175 1861285 ) N ; + - wire70 BUF_X8 + SOURCE TIMING + PLACED ( 1908157 3481282 ) N ; + - wire71 BUF_X8 + SOURCE TIMING + PLACED ( 1003326 3481315 ) N ; + - wire72 BUF_X8 + SOURCE TIMING + PLACED ( 1888157 3461283 ) N ; + - wire73 BUF_X8 + SOURCE TIMING + PLACED ( 992826 3461316 ) N ; + - wire74 BUF_X8 + SOURCE TIMING + PLACED ( 1868158 3441283 ) N ; + - wire75 BUF_X8 + SOURCE TIMING + PLACED ( 982327 3441316 ) N ; + - wire76 BUF_X8 + SOURCE TIMING + PLACED ( 1848158 3421283 ) N ; + - wire77 BUF_X8 + SOURCE TIMING + PLACED ( 971827 3421316 ) N ; + - wire78 BUF_X8 + SOURCE TIMING + PLACED ( 1828158 3401284 ) N ; + - wire79 BUF_X8 + SOURCE TIMING + PLACED ( 961327 3401316 ) N ; + - wire8 BUF_X8 + SOURCE TIMING + PLACED ( 967675 1841285 ) N ; + - wire80 BUF_X8 + SOURCE TIMING + PLACED ( 1808159 3381284 ) N ; + - wire81 BUF_X8 + SOURCE TIMING + PLACED ( 950827 3381316 ) N ; + - wire82 BUF_X8 + SOURCE TIMING + PLACED ( 1788159 3361284 ) N ; + - wire83 BUF_X8 + SOURCE TIMING + PLACED ( 940327 3361316 ) N ; + - wire84 BUF_X8 + SOURCE TIMING + PLACED ( 1768160 3341285 ) N ; + - wire85 BUF_X8 + SOURCE TIMING + PLACED ( 929828 3341317 ) N ; + - wire86 BUF_X8 + SOURCE TIMING + PLACED ( 1748160 3321285 ) N ; + - wire87 BUF_X8 + SOURCE TIMING + PLACED ( 919328 3321317 ) N ; + - wire88 BUF_X8 + SOURCE TIMING + PLACED ( 1734175 3301285 ) N ; + - wire89 BUF_X8 + SOURCE TIMING + PLACED ( 911986 3301317 ) N ; + - wire9 BUF_X8 + SOURCE TIMING + PLACED ( 957175 1821285 ) N ; - wire90 BUF_X8 + SOURCE TIMING + PLACED ( 1723675 3281285 ) N ; - wire91 BUF_X8 + SOURCE TIMING + PLACED ( 906473 3281317 ) N ; - wire92 BUF_X8 + SOURCE TIMING + PLACED ( 1713175 3261285 ) N ; @@ -565,7 +564,7 @@ COMPONENTS 562 ; - wire96 BUF_X8 + SOURCE TIMING + PLACED ( 1692175 3221285 ) N ; - wire97 BUF_X8 + SOURCE TIMING + PLACED ( 889936 3221317 ) N ; - wire98 BUF_X8 + SOURCE TIMING + PLACED ( 1681675 3201285 ) N ; - - wire99 BUF_X4 + SOURCE TIMING + PLACED ( 884423 3201317 ) N ; + - wire99 BUF_X8 + SOURCE TIMING + PLACED ( 884423 3201317 ) N ; END COMPONENTS PINS 400 ; - p1-1 + NET n1-1 + DIRECTION INPUT + USE SIGNAL @@ -2169,7 +2168,7 @@ PINS 400 ; + LAYER metal1 ( -50 -50 ) ( 50 50 ) + PLACED ( 1980050 1980050 ) N ; END PINS -NETS 762 ; +NETS 761 ; - n1-1 ( PIN p1-1 ) ( i1-1 A ) + USE SIGNAL ; - n1-10 ( PIN p1-10 ) ( i1-10 A ) + USE SIGNAL ; - n1-100 ( PIN p1-100 ) ( i1-100 A ) + USE SIGNAL ; @@ -2372,69 +2371,69 @@ NETS 762 ; - n1-99 ( PIN p1-99 ) ( i1-99 A ) + USE SIGNAL ; - n2-1 ( i2-1 A ) ( i1-1 Z ) + USE SIGNAL ; - n2-10 ( i2-10 A ) ( i1-10 Z ) + USE SIGNAL ; - - n2-100 ( wire162 A ) ( i1-100 Z ) + USE SIGNAL ; - - n2-101 ( wire161 A ) ( i1-101 Z ) + USE SIGNAL ; - - n2-102 ( wire160 A ) ( i1-102 Z ) + USE SIGNAL ; - - n2-103 ( wire159 A ) ( i1-103 Z ) + USE SIGNAL ; - - n2-104 ( wire158 A ) ( i1-104 Z ) + USE SIGNAL ; - - n2-105 ( wire157 A ) ( i1-105 Z ) + USE SIGNAL ; - - n2-106 ( wire156 A ) ( i1-106 Z ) + USE SIGNAL ; - - n2-107 ( wire155 A ) ( i1-107 Z ) + USE SIGNAL ; - - n2-108 ( wire154 A ) ( i1-108 Z ) + USE SIGNAL ; - - n2-109 ( wire153 A ) ( i1-109 Z ) + USE SIGNAL ; + - n2-100 ( wire161 A ) ( i1-100 Z ) + USE SIGNAL ; + - n2-101 ( wire160 A ) ( i1-101 Z ) + USE SIGNAL ; + - n2-102 ( wire159 A ) ( i1-102 Z ) + USE SIGNAL ; + - n2-103 ( wire158 A ) ( i1-103 Z ) + USE SIGNAL ; + - n2-104 ( wire157 A ) ( i1-104 Z ) + USE SIGNAL ; + - n2-105 ( wire156 A ) ( i1-105 Z ) + USE SIGNAL ; + - n2-106 ( wire155 A ) ( i1-106 Z ) + USE SIGNAL ; + - n2-107 ( wire154 A ) ( i1-107 Z ) + USE SIGNAL ; + - n2-108 ( wire153 A ) ( i1-108 Z ) + USE SIGNAL ; + - n2-109 ( wire152 A ) ( i1-109 Z ) + USE SIGNAL ; - n2-11 ( i2-11 A ) ( i1-11 Z ) + USE SIGNAL ; - - n2-110 ( wire152 A ) ( i1-110 Z ) + USE SIGNAL ; - - n2-111 ( wire151 A ) ( i1-111 Z ) + USE SIGNAL ; - - n2-112 ( wire150 A ) ( i1-112 Z ) + USE SIGNAL ; - - n2-113 ( wire149 A ) ( i1-113 Z ) + USE SIGNAL ; - - n2-114 ( wire148 A ) ( i1-114 Z ) + USE SIGNAL ; - - n2-115 ( wire147 A ) ( i1-115 Z ) + USE SIGNAL ; - - n2-116 ( wire146 A ) ( i1-116 Z ) + USE SIGNAL ; - - n2-117 ( wire145 A ) ( i1-117 Z ) + USE SIGNAL ; - - n2-118 ( wire144 A ) ( i1-118 Z ) + USE SIGNAL ; - - n2-119 ( wire143 A ) ( i1-119 Z ) + USE SIGNAL ; + - n2-110 ( wire151 A ) ( i1-110 Z ) + USE SIGNAL ; + - n2-111 ( wire150 A ) ( i1-111 Z ) + USE SIGNAL ; + - n2-112 ( wire149 A ) ( i1-112 Z ) + USE SIGNAL ; + - n2-113 ( wire148 A ) ( i1-113 Z ) + USE SIGNAL ; + - n2-114 ( wire147 A ) ( i1-114 Z ) + USE SIGNAL ; + - n2-115 ( wire146 A ) ( i1-115 Z ) + USE SIGNAL ; + - n2-116 ( wire145 A ) ( i1-116 Z ) + USE SIGNAL ; + - n2-117 ( wire144 A ) ( i1-117 Z ) + USE SIGNAL ; + - n2-118 ( wire143 A ) ( i1-118 Z ) + USE SIGNAL ; + - n2-119 ( wire142 A ) ( i1-119 Z ) + USE SIGNAL ; - n2-12 ( i2-12 A ) ( i1-12 Z ) + USE SIGNAL ; - - n2-120 ( wire142 A ) ( i1-120 Z ) + USE SIGNAL ; - - n2-121 ( wire141 A ) ( i1-121 Z ) + USE SIGNAL ; - - n2-122 ( wire140 A ) ( i1-122 Z ) + USE SIGNAL ; - - n2-123 ( wire139 A ) ( i1-123 Z ) + USE SIGNAL ; - - n2-124 ( wire138 A ) ( i1-124 Z ) + USE SIGNAL ; - - n2-125 ( wire137 A ) ( i1-125 Z ) + USE SIGNAL ; - - n2-126 ( wire136 A ) ( i1-126 Z ) + USE SIGNAL ; - - n2-127 ( wire135 A ) ( i1-127 Z ) + USE SIGNAL ; - - n2-128 ( wire134 A ) ( i1-128 Z ) + USE SIGNAL ; - - n2-129 ( wire133 A ) ( i1-129 Z ) + USE SIGNAL ; + - n2-120 ( wire141 A ) ( i1-120 Z ) + USE SIGNAL ; + - n2-121 ( wire140 A ) ( i1-121 Z ) + USE SIGNAL ; + - n2-122 ( wire139 A ) ( i1-122 Z ) + USE SIGNAL ; + - n2-123 ( wire138 A ) ( i1-123 Z ) + USE SIGNAL ; + - n2-124 ( wire137 A ) ( i1-124 Z ) + USE SIGNAL ; + - n2-125 ( wire136 A ) ( i1-125 Z ) + USE SIGNAL ; + - n2-126 ( wire135 A ) ( i1-126 Z ) + USE SIGNAL ; + - n2-127 ( wire134 A ) ( i1-127 Z ) + USE SIGNAL ; + - n2-128 ( wire133 A ) ( i1-128 Z ) + USE SIGNAL ; + - n2-129 ( wire132 A ) ( i1-129 Z ) + USE SIGNAL ; - n2-13 ( i2-13 A ) ( i1-13 Z ) + USE SIGNAL ; - - n2-130 ( wire132 A ) ( i1-130 Z ) + USE SIGNAL ; - - n2-131 ( wire131 A ) ( i1-131 Z ) + USE SIGNAL ; - - n2-132 ( wire130 A ) ( i1-132 Z ) + USE SIGNAL ; - - n2-133 ( wire129 A ) ( i1-133 Z ) + USE SIGNAL ; - - n2-134 ( wire128 A ) ( i1-134 Z ) + USE SIGNAL ; - - n2-135 ( wire127 A ) ( i1-135 Z ) + USE SIGNAL ; - - n2-136 ( wire126 A ) ( i1-136 Z ) + USE SIGNAL ; - - n2-137 ( wire125 A ) ( i1-137 Z ) + USE SIGNAL ; - - n2-138 ( wire124 A ) ( i1-138 Z ) + USE SIGNAL ; - - n2-139 ( wire123 A ) ( i1-139 Z ) + USE SIGNAL ; + - n2-130 ( wire131 A ) ( i1-130 Z ) + USE SIGNAL ; + - n2-131 ( wire130 A ) ( i1-131 Z ) + USE SIGNAL ; + - n2-132 ( wire129 A ) ( i1-132 Z ) + USE SIGNAL ; + - n2-133 ( wire128 A ) ( i1-133 Z ) + USE SIGNAL ; + - n2-134 ( wire127 A ) ( i1-134 Z ) + USE SIGNAL ; + - n2-135 ( wire126 A ) ( i1-135 Z ) + USE SIGNAL ; + - n2-136 ( wire125 A ) ( i1-136 Z ) + USE SIGNAL ; + - n2-137 ( wire124 A ) ( i1-137 Z ) + USE SIGNAL ; + - n2-138 ( wire123 A ) ( i1-138 Z ) + USE SIGNAL ; + - n2-139 ( wire122 A ) ( i1-139 Z ) + USE SIGNAL ; - n2-14 ( i2-14 A ) ( i1-14 Z ) + USE SIGNAL ; - - n2-140 ( wire122 A ) ( i1-140 Z ) + USE SIGNAL ; - - n2-141 ( wire121 A ) ( i1-141 Z ) + USE SIGNAL ; - - n2-142 ( wire120 A ) ( i1-142 Z ) + USE SIGNAL ; - - n2-143 ( wire119 A ) ( i1-143 Z ) + USE SIGNAL ; - - n2-144 ( wire118 A ) ( i1-144 Z ) + USE SIGNAL ; - - n2-145 ( wire117 A ) ( i1-145 Z ) + USE SIGNAL ; - - n2-146 ( wire116 A ) ( i1-146 Z ) + USE SIGNAL ; - - n2-147 ( wire115 A ) ( i1-147 Z ) + USE SIGNAL ; - - n2-148 ( wire114 A ) ( i1-148 Z ) + USE SIGNAL ; - - n2-149 ( wire113 A ) ( i1-149 Z ) + USE SIGNAL ; + - n2-140 ( wire121 A ) ( i1-140 Z ) + USE SIGNAL ; + - n2-141 ( wire120 A ) ( i1-141 Z ) + USE SIGNAL ; + - n2-142 ( wire119 A ) ( i1-142 Z ) + USE SIGNAL ; + - n2-143 ( wire118 A ) ( i1-143 Z ) + USE SIGNAL ; + - n2-144 ( wire117 A ) ( i1-144 Z ) + USE SIGNAL ; + - n2-145 ( wire116 A ) ( i1-145 Z ) + USE SIGNAL ; + - n2-146 ( wire115 A ) ( i1-146 Z ) + USE SIGNAL ; + - n2-147 ( wire114 A ) ( i1-147 Z ) + USE SIGNAL ; + - n2-148 ( wire113 A ) ( i1-148 Z ) + USE SIGNAL ; + - n2-149 ( wire112 A ) ( i1-149 Z ) + USE SIGNAL ; - n2-15 ( i2-15 A ) ( i1-15 Z ) + USE SIGNAL ; - - n2-150 ( wire112 A ) ( i1-150 Z ) + USE SIGNAL ; - - n2-151 ( wire111 A ) ( i1-151 Z ) + USE SIGNAL ; - - n2-152 ( wire110 A ) ( i1-152 Z ) + USE SIGNAL ; - - n2-153 ( wire109 A ) ( i1-153 Z ) + USE SIGNAL ; - - n2-154 ( wire108 A ) ( i1-154 Z ) + USE SIGNAL ; - - n2-155 ( wire107 A ) ( i1-155 Z ) + USE SIGNAL ; - - n2-156 ( wire106 A ) ( i1-156 Z ) + USE SIGNAL ; - - n2-157 ( wire105 A ) ( i1-157 Z ) + USE SIGNAL ; + - n2-150 ( wire111 A ) ( i1-150 Z ) + USE SIGNAL ; + - n2-151 ( wire110 A ) ( i1-151 Z ) + USE SIGNAL ; + - n2-152 ( wire109 A ) ( i1-152 Z ) + USE SIGNAL ; + - n2-153 ( wire108 A ) ( i1-153 Z ) + USE SIGNAL ; + - n2-154 ( wire107 A ) ( i1-154 Z ) + USE SIGNAL ; + - n2-155 ( wire106 A ) ( i1-155 Z ) + USE SIGNAL ; + - n2-156 ( wire105 A ) ( i1-156 Z ) + USE SIGNAL ; + - n2-157 ( wire104 A ) ( i1-157 Z ) + USE SIGNAL ; - n2-158 ( wire103 A ) ( i1-158 Z ) + USE SIGNAL ; - n2-159 ( wire101 A ) ( i1-159 Z ) + USE SIGNAL ; - n2-16 ( i2-16 A ) ( i1-16 Z ) + USE SIGNAL ; @@ -2777,70 +2776,69 @@ NETS 762 ; - net102 ( wire102 Z ) ( i2-158 A ) + USE SIGNAL ; - net103 ( wire103 Z ) ( wire102 A ) + USE SIGNAL ; - net104 ( wire104 Z ) ( i2-157 A ) + USE SIGNAL ; - - net105 ( wire105 Z ) ( wire104 A ) + USE SIGNAL ; - - net106 ( wire106 Z ) ( i2-156 A ) + USE SIGNAL ; - - net107 ( wire107 Z ) ( i2-155 A ) + USE SIGNAL ; - - net108 ( wire108 Z ) ( i2-154 A ) + USE SIGNAL ; - - net109 ( wire109 Z ) ( i2-153 A ) + USE SIGNAL ; + - net105 ( wire105 Z ) ( i2-156 A ) + USE SIGNAL ; + - net106 ( wire106 Z ) ( i2-155 A ) + USE SIGNAL ; + - net107 ( wire107 Z ) ( i2-154 A ) + USE SIGNAL ; + - net108 ( wire108 Z ) ( i2-153 A ) + USE SIGNAL ; + - net109 ( wire109 Z ) ( i2-152 A ) + USE SIGNAL ; - net11 ( wire11 Z ) ( i2-89 A ) + USE SIGNAL ; - - net110 ( wire110 Z ) ( i2-152 A ) + USE SIGNAL ; - - net111 ( wire111 Z ) ( i2-151 A ) + USE SIGNAL ; - - net112 ( wire112 Z ) ( i2-150 A ) + USE SIGNAL ; - - net113 ( wire113 Z ) ( i2-149 A ) + USE SIGNAL ; - - net114 ( wire114 Z ) ( i2-148 A ) + USE SIGNAL ; - - net115 ( wire115 Z ) ( i2-147 A ) + USE SIGNAL ; - - net116 ( wire116 Z ) ( i2-146 A ) + USE SIGNAL ; - - net117 ( wire117 Z ) ( i2-145 A ) + USE SIGNAL ; - - net118 ( wire118 Z ) ( i2-144 A ) + USE SIGNAL ; - - net119 ( wire119 Z ) ( i2-143 A ) + USE SIGNAL ; + - net110 ( wire110 Z ) ( i2-151 A ) + USE SIGNAL ; + - net111 ( wire111 Z ) ( i2-150 A ) + USE SIGNAL ; + - net112 ( wire112 Z ) ( i2-149 A ) + USE SIGNAL ; + - net113 ( wire113 Z ) ( i2-148 A ) + USE SIGNAL ; + - net114 ( wire114 Z ) ( i2-147 A ) + USE SIGNAL ; + - net115 ( wire115 Z ) ( i2-146 A ) + USE SIGNAL ; + - net116 ( wire116 Z ) ( i2-145 A ) + USE SIGNAL ; + - net117 ( wire117 Z ) ( i2-144 A ) + USE SIGNAL ; + - net118 ( wire118 Z ) ( i2-143 A ) + USE SIGNAL ; + - net119 ( wire119 Z ) ( i2-142 A ) + USE SIGNAL ; - net12 ( wire12 Z ) ( i2-88 A ) + USE SIGNAL ; - - net120 ( wire120 Z ) ( i2-142 A ) + USE SIGNAL ; - - net121 ( wire121 Z ) ( i2-141 A ) + USE SIGNAL ; - - net122 ( wire122 Z ) ( i2-140 A ) + USE SIGNAL ; - - net123 ( wire123 Z ) ( i2-139 A ) + USE SIGNAL ; - - net124 ( wire124 Z ) ( i2-138 A ) + USE SIGNAL ; - - net125 ( wire125 Z ) ( i2-137 A ) + USE SIGNAL ; - - net126 ( wire126 Z ) ( i2-136 A ) + USE SIGNAL ; - - net127 ( wire127 Z ) ( i2-135 A ) + USE SIGNAL ; - - net128 ( wire128 Z ) ( i2-134 A ) + USE SIGNAL ; - - net129 ( wire129 Z ) ( i2-133 A ) + USE SIGNAL ; + - net120 ( wire120 Z ) ( i2-141 A ) + USE SIGNAL ; + - net121 ( wire121 Z ) ( i2-140 A ) + USE SIGNAL ; + - net122 ( wire122 Z ) ( i2-139 A ) + USE SIGNAL ; + - net123 ( wire123 Z ) ( i2-138 A ) + USE SIGNAL ; + - net124 ( wire124 Z ) ( i2-137 A ) + USE SIGNAL ; + - net125 ( wire125 Z ) ( i2-136 A ) + USE SIGNAL ; + - net126 ( wire126 Z ) ( i2-135 A ) + USE SIGNAL ; + - net127 ( wire127 Z ) ( i2-134 A ) + USE SIGNAL ; + - net128 ( wire128 Z ) ( i2-133 A ) + USE SIGNAL ; + - net129 ( wire129 Z ) ( i2-132 A ) + USE SIGNAL ; - net13 ( wire13 Z ) ( i2-87 A ) + USE SIGNAL ; - - net130 ( wire130 Z ) ( i2-132 A ) + USE SIGNAL ; - - net131 ( wire131 Z ) ( i2-131 A ) + USE SIGNAL ; - - net132 ( wire132 Z ) ( i2-130 A ) + USE SIGNAL ; - - net133 ( wire133 Z ) ( i2-129 A ) + USE SIGNAL ; - - net134 ( wire134 Z ) ( i2-128 A ) + USE SIGNAL ; - - net135 ( wire135 Z ) ( i2-127 A ) + USE SIGNAL ; - - net136 ( wire136 Z ) ( i2-126 A ) + USE SIGNAL ; - - net137 ( wire137 Z ) ( i2-125 A ) + USE SIGNAL ; - - net138 ( wire138 Z ) ( i2-124 A ) + USE SIGNAL ; - - net139 ( wire139 Z ) ( i2-123 A ) + USE SIGNAL ; + - net130 ( wire130 Z ) ( i2-131 A ) + USE SIGNAL ; + - net131 ( wire131 Z ) ( i2-130 A ) + USE SIGNAL ; + - net132 ( wire132 Z ) ( i2-129 A ) + USE SIGNAL ; + - net133 ( wire133 Z ) ( i2-128 A ) + USE SIGNAL ; + - net134 ( wire134 Z ) ( i2-127 A ) + USE SIGNAL ; + - net135 ( wire135 Z ) ( i2-126 A ) + USE SIGNAL ; + - net136 ( wire136 Z ) ( i2-125 A ) + USE SIGNAL ; + - net137 ( wire137 Z ) ( i2-124 A ) + USE SIGNAL ; + - net138 ( wire138 Z ) ( i2-123 A ) + USE SIGNAL ; + - net139 ( wire139 Z ) ( i2-122 A ) + USE SIGNAL ; - net14 ( wire14 Z ) ( i2-86 A ) + USE SIGNAL ; - - net140 ( wire140 Z ) ( i2-122 A ) + USE SIGNAL ; - - net141 ( wire141 Z ) ( i2-121 A ) + USE SIGNAL ; - - net142 ( wire142 Z ) ( i2-120 A ) + USE SIGNAL ; - - net143 ( wire143 Z ) ( i2-119 A ) + USE SIGNAL ; - - net144 ( wire144 Z ) ( i2-118 A ) + USE SIGNAL ; - - net145 ( wire145 Z ) ( i2-117 A ) + USE SIGNAL ; - - net146 ( wire146 Z ) ( i2-116 A ) + USE SIGNAL ; - - net147 ( wire147 Z ) ( i2-115 A ) + USE SIGNAL ; - - net148 ( wire148 Z ) ( i2-114 A ) + USE SIGNAL ; - - net149 ( wire149 Z ) ( i2-113 A ) + USE SIGNAL ; + - net140 ( wire140 Z ) ( i2-121 A ) + USE SIGNAL ; + - net141 ( wire141 Z ) ( i2-120 A ) + USE SIGNAL ; + - net142 ( wire142 Z ) ( i2-119 A ) + USE SIGNAL ; + - net143 ( wire143 Z ) ( i2-118 A ) + USE SIGNAL ; + - net144 ( wire144 Z ) ( i2-117 A ) + USE SIGNAL ; + - net145 ( wire145 Z ) ( i2-116 A ) + USE SIGNAL ; + - net146 ( wire146 Z ) ( i2-115 A ) + USE SIGNAL ; + - net147 ( wire147 Z ) ( i2-114 A ) + USE SIGNAL ; + - net148 ( wire148 Z ) ( i2-113 A ) + USE SIGNAL ; + - net149 ( wire149 Z ) ( i2-112 A ) + USE SIGNAL ; - net15 ( wire15 Z ) ( i2-85 A ) + USE SIGNAL ; - - net150 ( wire150 Z ) ( i2-112 A ) + USE SIGNAL ; - - net151 ( wire151 Z ) ( i2-111 A ) + USE SIGNAL ; - - net152 ( wire152 Z ) ( i2-110 A ) + USE SIGNAL ; - - net153 ( wire153 Z ) ( i2-109 A ) + USE SIGNAL ; - - net154 ( wire154 Z ) ( i2-108 A ) + USE SIGNAL ; - - net155 ( wire155 Z ) ( i2-107 A ) + USE SIGNAL ; - - net156 ( wire156 Z ) ( i2-106 A ) + USE SIGNAL ; - - net157 ( wire157 Z ) ( i2-105 A ) + USE SIGNAL ; - - net158 ( wire158 Z ) ( i2-104 A ) + USE SIGNAL ; - - net159 ( wire159 Z ) ( i2-103 A ) + USE SIGNAL ; + - net150 ( wire150 Z ) ( i2-111 A ) + USE SIGNAL ; + - net151 ( wire151 Z ) ( i2-110 A ) + USE SIGNAL ; + - net152 ( wire152 Z ) ( i2-109 A ) + USE SIGNAL ; + - net153 ( wire153 Z ) ( i2-108 A ) + USE SIGNAL ; + - net154 ( wire154 Z ) ( i2-107 A ) + USE SIGNAL ; + - net155 ( wire155 Z ) ( i2-106 A ) + USE SIGNAL ; + - net156 ( wire156 Z ) ( i2-105 A ) + USE SIGNAL ; + - net157 ( wire157 Z ) ( i2-104 A ) + USE SIGNAL ; + - net158 ( wire158 Z ) ( i2-103 A ) + USE SIGNAL ; + - net159 ( wire159 Z ) ( i2-102 A ) + USE SIGNAL ; - net16 ( wire16 Z ) ( i2-84 A ) + USE SIGNAL ; - - net160 ( wire160 Z ) ( i2-102 A ) + USE SIGNAL ; - - net161 ( wire161 Z ) ( i2-101 A ) + USE SIGNAL ; - - net162 ( wire162 Z ) ( i2-100 A ) + USE SIGNAL ; + - net160 ( wire160 Z ) ( i2-101 A ) + USE SIGNAL ; + - net161 ( wire161 Z ) ( i2-100 A ) + USE SIGNAL ; - net17 ( wire17 Z ) ( i2-83 A ) + USE SIGNAL ; - net18 ( wire18 Z ) ( i2-200 A ) + USE SIGNAL ; - net19 ( wire19 Z ) ( wire18 A ) + USE SIGNAL ; diff --git a/src/rsz/test/buffer_varying_lengths.ok b/src/rsz/test/buffer_varying_lengths.ok index c27a570e61b..4f5e38b21c5 100644 --- a/src/rsz/test/buffer_varying_lengths.ok +++ b/src/rsz/test/buffer_varying_lengths.ok @@ -1,15 +1,15 @@ [INFO ODB-0227] LEF file: Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells -[INFO RSZ-0058] Using max wire length 822um. +[INFO RSZ-0058] Using max wire length 827um. [INFO RSZ-0037] Found 118 long wires. -[INFO RSZ-0038] Inserted 162 buffers in 118 nets. -[INFO RSZ-0039] Resized 183 instances. +[INFO RSZ-0038] Inserted 161 buffers in 118 nets. +[INFO RSZ-0039] Resized 184 instances. worst slack -0.266 -tns -28.587 +tns -28.551 [INFO RSZ-0094] Found 200 endpoints with setup violations. [INFO RSZ-0099] Repairing 200 out of 200 (100.00%) violating endpoints... -[INFO RSZ-0041] Resized 895 instances. +[INFO RSZ-0041] Resized 844 instances. [WARNING RSZ-0062] Unable to repair all setup violations. [INFO RSZ-0033] No hold violations found. worst slack -0.266 -tns -27.381 +tns -27.434 No differences found. diff --git a/src/rsz/test/repair_cap3.ok b/src/rsz/test/repair_cap3.ok index 959e69d160d..2b28528373c 100644 --- a/src/rsz/test/repair_cap3.ok +++ b/src/rsz/test/repair_cap3.ok @@ -7,7 +7,7 @@ [INFO ODB-0133] Created 2 nets and 105 connections. Found 105 slew violations Found 1 cap violations -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0034] Found 1 slew violations. [INFO RSZ-0036] Found 1 capacitance violations. [INFO RSZ-0038] Inserted 2 buffers in 1 nets. diff --git a/src/rsz/test/repair_design2.ok b/src/rsz/test/repair_design2.ok index 012d8b296d6..e967906a89d 100644 --- a/src/rsz/test/repair_design2.ok +++ b/src/rsz/test/repair_design2.ok @@ -5,5 +5,5 @@ [INFO ODB-0131] Created 3 components and 14 component-terminals. [INFO ODB-0132] Created 2 special nets and 0 connections. [INFO ODB-0133] Created 4 nets and 6 connections. -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0039] Resized 3 instances. diff --git a/src/rsz/test/repair_design3.ok b/src/rsz/test/repair_design3.ok index 5bfb25d528f..1f4bfe33765 100644 --- a/src/rsz/test/repair_design3.ok +++ b/src/rsz/test/repair_design3.ok @@ -5,5 +5,5 @@ [INFO ODB-0131] Created 1001 components and 5004 component-terminals. [INFO ODB-0132] Created 2 special nets and 0 connections. [INFO ODB-0133] Created 2 nets and 1001 connections. -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0039] Resized 1000 instances. diff --git a/src/rsz/test/repair_design3_verbose.ok b/src/rsz/test/repair_design3_verbose.ok index 78514203c45..b8ef3a2d110 100644 --- a/src/rsz/test/repair_design3_verbose.ok +++ b/src/rsz/test/repair_design3_verbose.ok @@ -5,7 +5,7 @@ [INFO ODB-0131] Created 1001 components and 5004 component-terminals. [INFO ODB-0132] Created 2 special nets and 0 connections. [INFO ODB-0133] Created 2 nets and 1001 connections. -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. Iteration | Resized | Buffers | Nets repaired | Remaining --------------------------------------------------------- 0 | 0 | 0 | 0 | 1002 diff --git a/src/rsz/test/repair_design4.ok b/src/rsz/test/repair_design4.ok index f9aec77bacd..3200051b001 100644 --- a/src/rsz/test/repair_design4.ok +++ b/src/rsz/test/repair_design4.ok @@ -10,8 +10,8 @@ Pin Limit Fanout Slack --------------------------------------------------------- drvr/Q 10 35 -25 (VIOLATED) -[INFO RSZ-0058] Using max wire length 527um. -[INFO RSZ-0058] Using max wire length 527um. +[INFO RSZ-0058] Using max wire length 530um. +[INFO RSZ-0058] Using max wire length 530um. [INFO RSZ-0035] Found 1 fanout violations. [INFO RSZ-0038] Inserted 4 buffers in 1 nets. [INFO RSZ-0039] Resized 4 instances. diff --git a/src/rsz/test/repair_design5.ok b/src/rsz/test/repair_design5.ok index 9f197955a7b..d31f05c3cd8 100644 --- a/src/rsz/test/repair_design5.ok +++ b/src/rsz/test/repair_design5.ok @@ -4,7 +4,7 @@ [INFO ODB-0131] Created 36 components and 216 component-terminals. [INFO ODB-0132] Created 2 special nets and 72 connections. [INFO ODB-0133] Created 2 nets and 72 connections. -[INFO RSZ-0058] Using max wire length 527um. +[INFO RSZ-0058] Using max wire length 530um. [INFO RSZ-0035] Found 1 fanout violations. [INFO RSZ-0038] Inserted 4 buffers in 1 nets. [INFO RSZ-0039] Resized 3 instances. @@ -18,7 +18,7 @@ Instance drvr Output pins: Q output net0 QN output (unconnected) -[INFO RSZ-0058] Using max wire length 527um. +[INFO RSZ-0058] Using max wire length 530um. [INFO RSZ-0039] Resized 1 instances. Instance drvr Cell: DFF_X2 diff --git a/src/rsz/test/repair_fanout1.ok b/src/rsz/test/repair_fanout1.ok index 91ab1466d85..bf558743e12 100644 --- a/src/rsz/test/repair_fanout1.ok +++ b/src/rsz/test/repair_fanout1.ok @@ -10,7 +10,7 @@ Pin Limit Fanout Slack --------------------------------------------------------- drvr/Q 10 35 -25 (VIOLATED) -[INFO RSZ-0058] Using max wire length 527um. +[INFO RSZ-0058] Using max wire length 530um. [INFO RSZ-0035] Found 1 fanout violations. [INFO RSZ-0038] Inserted 4 buffers in 1 nets. [INFO RSZ-0039] Resized 4 instances. diff --git a/src/rsz/test/repair_fanout5.ok b/src/rsz/test/repair_fanout5.ok index 3966e5c7408..021f0ad1f1b 100644 --- a/src/rsz/test/repair_fanout5.ok +++ b/src/rsz/test/repair_fanout5.ok @@ -10,7 +10,7 @@ Pin Limit Fanout Slack --------------------------------------------------------- in1 10 35 -25 (VIOLATED) -[INFO RSZ-0058] Using max wire length 527um. +[INFO RSZ-0058] Using max wire length 530um. [INFO RSZ-0035] Found 1 fanout violations. [INFO RSZ-0038] Inserted 4 buffers in 1 nets. [INFO RSZ-0039] Resized 3 instances. diff --git a/src/rsz/test/repair_fanout6.ok b/src/rsz/test/repair_fanout6.ok index c7cb55cfd7d..e177e184768 100644 --- a/src/rsz/test/repair_fanout6.ok +++ b/src/rsz/test/repair_fanout6.ok @@ -7,7 +7,7 @@ [INFO RSZ-0035] Found 1 fanout violations. [INFO RSZ-0038] Inserted 508 buffers in 1 nets. [INFO RSZ-0039] Resized 509 instances. -worst slack -8.65 +worst slack -8.67 max fanout Pin Limit Fanout Slack @@ -17,6 +17,6 @@ fanout1/X 20 20 0 (MET) [INFO RSZ-0094] Found 6400 endpoints with setup violations. [INFO RSZ-0099] Repairing 1 out of 6400 (0.00%) violating endpoints... [INFO RSZ-0045] Inserted 17 buffers, 1 to split loads. -[INFO RSZ-0041] Resized 150 instances. +[INFO RSZ-0041] Resized 162 instances. [WARNING RSZ-0062] Unable to repair all setup violations. worst slack -3.10 diff --git a/src/rsz/test/repair_setup2.ok b/src/rsz/test/repair_setup2.ok index 5e802c82816..be82bee5a0d 100644 --- a/src/rsz/test/repair_setup2.ok +++ b/src/rsz/test/repair_setup2.ok @@ -16,7 +16,7 @@ worst slack -0.28 --------------------------------------------------------------------------------------------------- 0 | 0 | 0 | 0 | 0 | 0 | -0.117 | -0.2 | 2 | y2 5 | 0 | 0 | 0 | 0 | 2 | -0.117 | -0.2 | 2 | y2 - 7 | 0 | 0 | 0 | 0 | 3 | -0.117 | -0.2 | 2 | y2 + 8 | 0 | 0 | 0 | 0 | 3 | -0.117 | -0.2 | 2 | y2 final | 0 | 0 | 0 | 0 | 3 | -0.117 | -0.2 | 2 | y2 --------------------------------------------------------------------------------------------------- [INFO RSZ-0043] Swapped pins on 3 instances. diff --git a/src/rsz/test/repair_setup4.ok b/src/rsz/test/repair_setup4.ok index 5b203ef828c..511a3c28eb3 100644 --- a/src/rsz/test/repair_setup4.ok +++ b/src/rsz/test/repair_setup4.ok @@ -10,7 +10,7 @@ tns -6.294 [INFO RSZ-0099] Repairing 6 out of 6 (100.00%) violating endpoints... [INFO RSZ-0059] Removed 4 buffers. [INFO RSZ-0040] Inserted 2 buffers. -[INFO RSZ-0041] Resized 3 instances. +[INFO RSZ-0041] Resized 2 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test worst slack -0.44 diff --git a/src/rsz/test/repair_setup4_verbose.ok b/src/rsz/test/repair_setup4_verbose.ok index 2000fefb719..056268d8119 100644 --- a/src/rsz/test/repair_setup4_verbose.ok +++ b/src/rsz/test/repair_setup4_verbose.ok @@ -11,25 +11,24 @@ worst slack -1.954 | Buffers | Gates | Buffers | Gates | Swaps | | | Endpts | Endpt --------------------------------------------------------------------------------------------------- 0 | 0 | 0 | 0 | 0 | 0 | -1.954 | -6.3 | 6 | r2/D - 9 | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 10 | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 10 | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 11 | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 12 | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 13 | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 14 | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 15* | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 16* | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 17* | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 18* | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 19* | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 20* | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - 20* | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D - final | 4 | 3 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 8 | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 9 | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 10 | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 10 | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 11 | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 12 | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 13 | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 14* | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 15* | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 16* | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 17* | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 18* | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + 19* | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D + final | 4 | 2 | 3 | 0 | 0 | -0.439 | -2.2 | 6 | r7/D --------------------------------------------------------------------------------------------------- [INFO RSZ-0059] Removed 4 buffers. [INFO RSZ-0040] Inserted 2 buffers. -[INFO RSZ-0041] Resized 3 instances. +[INFO RSZ-0041] Resized 2 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test worst slack -0.439 diff --git a/src/rsz/test/repair_setup7.ok b/src/rsz/test/repair_setup7.ok index 6904b25e978..fb6dabd911a 100644 --- a/src/rsz/test/repair_setup7.ok +++ b/src/rsz/test/repair_setup7.ok @@ -8,7 +8,7 @@ worst slack -1.95 [INFO RSZ-0094] Found 6 endpoints with setup violations. [INFO RSZ-0099] Repairing 6 out of 6 (100.00%) violating endpoints... [INFO RSZ-0040] Inserted 3 buffers. -[INFO RSZ-0041] Resized 44 instances. +[INFO RSZ-0041] Resized 41 instances. [WARNING RSZ-0062] Unable to repair all setup violations. Repair timing output passed/skipped equivalence test -worst slack -0.65 +worst slack -0.63 diff --git a/src/rsz/test/repair_setup_undo.ok b/src/rsz/test/repair_setup_undo.ok index 1962f73f049..ee3128e00e6 100644 --- a/src/rsz/test/repair_setup_undo.ok +++ b/src/rsz/test/repair_setup_undo.ok @@ -11,7 +11,7 @@ tns -6.294 [INFO RSZ-0099] Repairing 6 out of 6 (100.00%) violating endpoints... [INFO RSZ-0059] Removed 4 buffers. [INFO RSZ-0040] Inserted 2 buffers. -[INFO RSZ-0041] Resized 3 instances. +[INFO RSZ-0041] Resized 2 instances. [WARNING RSZ-0062] Unable to repair all setup violations. post repair_timing QoR worst slack -0.44 diff --git a/src/rsz/test/repair_slew13.ok b/src/rsz/test/repair_slew13.ok index 88c7b1bf2fe..b7c6f033f9e 100644 --- a/src/rsz/test/repair_slew13.ok +++ b/src/rsz/test/repair_slew13.ok @@ -12,7 +12,7 @@ Pin Limit Slew Slack ------------------------------------------------------------ b1/A 0.03 0.07 -0.04 (VIOLATED) -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0034] Found 1 slew violations. [INFO RSZ-0039] Resized 1 instances. max slew diff --git a/src/rsz/test/repair_slew14.ok b/src/rsz/test/repair_slew14.ok index 5e5c3c0edc1..16e955e987f 100644 --- a/src/rsz/test/repair_slew14.ok +++ b/src/rsz/test/repair_slew14.ok @@ -11,7 +11,7 @@ Pin Limit Slew Slack ------------------------------------------------------------ u2/A 1.50 1.81 -0.31 (VIOLATED) -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0034] Found 1 slew violations. [INFO RSZ-0036] Found 1 capacitance violations. [INFO RSZ-0038] Inserted 2 buffers in 1 nets. diff --git a/src/rsz/test/repair_slew6.ok b/src/rsz/test/repair_slew6.ok index 1aa8da4adbd..f9b3ee419b0 100644 --- a/src/rsz/test/repair_slew6.ok +++ b/src/rsz/test/repair_slew6.ok @@ -61,5 +61,5 @@ r7/D 1.50 3.33 -1.83 (VIOLATED) r8/D 1.50 3.33 -1.83 (VIOLATED) r9/D 1.50 3.33 -1.83 (VIOLATED) -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0039] Resized 1 instances. diff --git a/src/rsz/test/repair_slew7.ok b/src/rsz/test/repair_slew7.ok index 5a43917e90a..e56d3a8c431 100644 --- a/src/rsz/test/repair_slew7.ok +++ b/src/rsz/test/repair_slew7.ok @@ -34,8 +34,8 @@ Pin Limit Cap Slack ------------------------------------------------------------ u1/ZN 10.47 15.05 -4.58 (VIOLATED) -[INFO RSZ-0058] Using max wire length 1229um. -[INFO RSZ-0039] Resized 3 instances. +[INFO RSZ-0058] Using max wire length 1247um. +[INFO RSZ-0039] Resized 1 instances. Startpoint: u1/A4 (internal pin) Endpoint: out1 (output port) Path Group: unconstrained @@ -46,9 +46,9 @@ Corner: slow ----------------------------------------------------------------------- 0.00 0.00 0.00 v u1/A4 (NOR4_X4) 14.64 0.24 0.40 0.40 ^ u1/ZN (NOR4_X4) - 1.44 0.06 0.14 0.54 v u2/ZN (NAND4_X1) - 0.77 0.02 0.11 0.65 v x2/Z (CLKBUF_X1) - 0.02 0.00 0.65 v out1 (out) + 1.61 0.06 0.14 0.54 v u2/ZN (NAND4_X1) + 0.77 0.01 0.11 0.65 v x2/Z (BUF_X1) + 0.01 0.00 0.65 v out1 (out) 0.65 data arrival time ----------------------------------------------------------------------- (Path is unconstrained) diff --git a/src/rsz/test/repair_slew8.ok b/src/rsz/test/repair_slew8.ok index f2ac810f131..ecfdfa111c5 100644 --- a/src/rsz/test/repair_slew8.ok +++ b/src/rsz/test/repair_slew8.ok @@ -17,7 +17,7 @@ Pin Limit Cap Slack ------------------------------------------------------------ r0/Q 0.17 0.00 0.17 (MET) -[INFO RSZ-0058] Using max wire length 2395um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0034] Found 1 slew violations. [INFO RSZ-0037] Found 1 long wires. [INFO RSZ-0038] Inserted 14 buffers in 1 nets. diff --git a/src/rsz/test/repair_slew9.ok b/src/rsz/test/repair_slew9.ok index 959e69d160d..2b28528373c 100644 --- a/src/rsz/test/repair_slew9.ok +++ b/src/rsz/test/repair_slew9.ok @@ -7,7 +7,7 @@ [INFO ODB-0133] Created 2 nets and 105 connections. Found 105 slew violations Found 1 cap violations -[INFO RSZ-0058] Using max wire length 2393um. +[INFO RSZ-0058] Using max wire length 2406um. [INFO RSZ-0034] Found 1 slew violations. [INFO RSZ-0036] Found 1 capacitance violations. [INFO RSZ-0038] Inserted 2 buffers in 1 nets. diff --git a/src/rsz/test/repair_wire1.ok b/src/rsz/test/repair_wire1.ok index cff2f87b08a..7bae749ce31 100644 --- a/src/rsz/test/repair_wire1.ok +++ b/src/rsz/test/repair_wire1.ok @@ -46,19 +46,19 @@ Path Type: max Cap Slew Delay Time Description --------------------------------------------------------------------------- 0.000 0.000 ^ input external delay - 1.456 0.000 0.000 0.000 ^ in1 (in) - 0.000 0.000 0.000 ^ u1/A (CLKBUF_X2) - 12.443 0.017 0.035 0.035 ^ u1/Z (CLKBUF_X2) - 0.017 0.000 0.035 ^ u2/A (BUF_X16) - 61.238 0.007 0.025 0.060 ^ u2/Z (BUF_X16) - 0.076 0.062 0.122 ^ wire2/A (BUF_X16) - 56.314 0.010 0.032 0.153 ^ wire2/Z (BUF_X16) - 0.064 0.052 0.206 ^ wire1/A (BUF_X16) - 57.885 0.010 0.032 0.238 ^ wire1/Z (BUF_X16) - 0.070 0.057 0.295 ^ u3/A (BUF_X1) - 0.000 0.006 0.027 0.322 ^ u3/Z (BUF_X1) - 0.006 0.000 0.322 ^ out1 (out) - 0.322 data arrival time + 1.831 0.000 0.000 0.000 ^ in1 (in) + 0.000 0.000 0.000 ^ u1/A (BUF_X2) + 12.446 0.017 0.029 0.029 ^ u1/Z (BUF_X2) + 0.017 0.000 0.029 ^ u2/A (BUF_X16) + 61.238 0.007 0.025 0.054 ^ u2/Z (BUF_X16) + 0.076 0.062 0.116 ^ wire2/A (BUF_X16) + 56.314 0.010 0.032 0.147 ^ wire2/Z (BUF_X16) + 0.064 0.052 0.200 ^ wire1/A (BUF_X16) + 57.885 0.010 0.032 0.232 ^ wire1/Z (BUF_X16) + 0.070 0.057 0.289 ^ u3/A (BUF_X1) + 0.000 0.006 0.027 0.316 ^ u3/Z (BUF_X1) + 0.006 0.000 0.316 ^ out1 (out) + 0.316 data arrival time --------------------------------------------------------------------------- (Path is unconstrained) diff --git a/src/rsz/test/repair_wire10.ok b/src/rsz/test/repair_wire10.ok index 632ac4ffee7..58b288c39b5 100644 --- a/src/rsz/test/repair_wire10.ok +++ b/src/rsz/test/repair_wire10.ok @@ -56,10 +56,10 @@ Path Type: max 0.00 0.00 0.00 v u1/A (BUF_X1) 11.19 0.01 0.04 0.04 v u1/Z (BUF_X1) 0.01 0.00 0.04 v u2/A (BUF_X16) - 52.03 0.01 0.03 0.07 v u2/Z (BUF_X16) - 0.06 0.05 0.11 v wire2/A (BUF_X4) - 50.21 0.01 0.05 0.16 v wire2/Z (BUF_X4) - 0.06 0.05 0.21 v wire1/A (BUF_X8) + 54.83 0.01 0.03 0.07 v u2/Z (BUF_X16) + 0.06 0.05 0.12 v wire2/A (BUF_X8) + 50.19 0.01 0.05 0.17 v wire2/Z (BUF_X8) + 0.05 0.04 0.21 v wire1/A (BUF_X8) 58.05 0.01 0.05 0.26 v wire1/Z (BUF_X8) 0.07 0.06 0.32 v u3/A (BUF_X1) 0.24 0.01 0.05 0.36 v u3/Z (BUF_X1) @@ -72,4 +72,4 @@ Path Type: max Driver length delay wire1/Z manhtn 758.4 steiner 758.4 0.00 u2/Z manhtn 647.6 steiner 647.6 0.00 -wire2/Z manhtn 587.4 steiner 587.4 0.00 +wire2/Z manhtn 586.6 steiner 586.6 0.00 diff --git a/src/rsz/test/repair_wire6.ok b/src/rsz/test/repair_wire6.ok index d801c34c65f..8ab85f8f094 100644 --- a/src/rsz/test/repair_wire6.ok +++ b/src/rsz/test/repair_wire6.ok @@ -44,17 +44,17 @@ Path Type: max Cap Slew Delay Time Description --------------------------------------------------------------------------- 0.000 0.000 ^ input external delay - 1.456 0.000 0.000 0.000 ^ in1 (in) - 0.000 0.000 0.000 ^ u1/A (CLKBUF_X2) - 12.443 0.017 0.035 0.035 ^ u1/Z (CLKBUF_X2) - 0.017 0.000 0.035 ^ u2/A (BUF_X16) - 43.207 0.007 0.024 0.059 ^ u2/Z (BUF_X16) - 0.039 0.032 0.091 ^ wire2/A (BUF_X8) - 45.408 0.011 0.031 0.122 ^ wire2/Z (BUF_X8) - 0.044 0.035 0.157 ^ wire1/A (BUF_X16) - 42.637 0.008 0.029 0.186 ^ wire1/Z (BUF_X16) - 0.039 0.032 0.217 ^ out1 (out) - 0.217 data arrival time + 1.831 0.000 0.000 0.000 ^ in1 (in) + 0.000 0.000 0.000 ^ u1/A (BUF_X2) + 12.446 0.017 0.029 0.029 ^ u1/Z (BUF_X2) + 0.017 0.000 0.029 ^ u2/A (BUF_X16) + 43.207 0.007 0.024 0.053 ^ u2/Z (BUF_X16) + 0.039 0.032 0.085 ^ wire2/A (BUF_X8) + 45.408 0.011 0.031 0.116 ^ wire2/Z (BUF_X8) + 0.044 0.035 0.151 ^ wire1/A (BUF_X16) + 42.637 0.008 0.029 0.180 ^ wire1/Z (BUF_X16) + 0.039 0.032 0.211 ^ out1 (out) + 0.211 data arrival time --------------------------------------------------------------------------- (Path is unconstrained) diff --git a/src/rsz/test/repair_wire8.ok b/src/rsz/test/repair_wire8.ok index bf9c0826422..d0dc408f3f7 100644 --- a/src/rsz/test/repair_wire8.ok +++ b/src/rsz/test/repair_wire8.ok @@ -4,7 +4,7 @@ [INFO ODB-0131] Created 3 components and 12 component-terminals. [INFO ODB-0132] Created 2 special nets and 6 connections. [INFO ODB-0133] Created 4 nets and 6 connections. -[INFO RSZ-0058] Using max wire length 1229um. +[INFO RSZ-0058] Using max wire length 1247um. [INFO RSZ-0037] Found 1 long wires. [INFO RSZ-0038] Inserted 1 buffers in 1 nets. [INFO RSZ-0039] Resized 2 instances. diff --git a/src/rsz/test/resize_slack2.ok b/src/rsz/test/resize_slack2.ok index 86dcae44220..07068380ca1 100644 --- a/src/rsz/test/resize_slack2.ok +++ b/src/rsz/test/resize_slack2.ok @@ -5,41 +5,41 @@ [INFO ODB-0132] Created 5 special nets and 1142 connections. [INFO ODB-0133] Created 528 nets and 1412 connections. [INFO RSZ-0026] Removed 151 buffers. -_352_ 1.335 -_349_ 1.335 -resp_msg[15] 1.335 -_348_ 1.335 -_343_ 1.335 -_082_ 1.335 -_339_ 1.335 -_329_ 1.335 -_325_ 1.335 -_298_ 1.335 -_297_ 1.335 -_177_ 1.335 -_171_ 1.335 -dpath.a_lt_b$in1[4] 1.335 -_173_ 1.335 -_081_ 1.335 -_346_ 1.335 -resp_msg[14] 1.335 -_344_ 1.335 -_172_ 1.336 -dpath.a_lt_b$in1[5] 1.336 -_176_ 1.338 -_175_ 1.338 -dpath.a_lt_b$in1[7] 1.338 -dpath.a_lt_b$in0[7] 1.338 -dpath.a_lt_b$in0[4] 1.339 -_174_ 1.340 -dpath.a_lt_b$in1[6] 1.340 -_342_ 1.342 -dpath.a_lt_b$in0[6] 1.346 -dpath.a_lt_b$in0[5] 1.355 -_269_ 1.360 -_186_ 1.360 -dpath.a_lt_b$in0[2] 1.360 -_187_ 1.360 -_259_ 1.365 -_191_ 1.365 -dpath.a_lt_b$in0[1] 1.365 +_177_ 1.340 +_343_ 1.340 +_325_ 1.340 +_298_ 1.340 +_297_ 1.340 +_176_ 1.340 +_175_ 1.340 +_352_ 1.340 +_349_ 1.340 +resp_msg[15] 1.340 +_348_ 1.340 +_339_ 1.340 +_329_ 1.340 +dpath.a_lt_b$in1[7] 1.340 +_082_ 1.340 +dpath.a_lt_b$in0[7] 1.340 +_173_ 1.341 +_172_ 1.341 +dpath.a_lt_b$in1[5] 1.341 +_174_ 1.342 +dpath.a_lt_b$in1[6] 1.342 +_171_ 1.342 +dpath.a_lt_b$in1[4] 1.342 +dpath.a_lt_b$in0[4] 1.347 +dpath.a_lt_b$in0[5] 1.348 +dpath.a_lt_b$in0[6] 1.349 +_081_ 1.349 +_346_ 1.349 +_344_ 1.349 +resp_msg[14] 1.349 +_342_ 1.364 +_269_ 1.367 +_186_ 1.367 +dpath.a_lt_b$in0[2] 1.367 +_187_ 1.367 +_259_ 1.372 +_191_ 1.372 +dpath.a_lt_b$in0[1] 1.372 From 4568430c55917b81291a93a15013eaeb20ea24cc Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Mon, 16 Sep 2024 14:53:21 -0300 Subject: [PATCH 03/10] rsz: restrict use of clock buffers to hold repairing & update gcd_resize ok Signed-off-by: Arthur Koucher --- src/rsz/include/rsz/Resizer.hh | 4 ++- src/rsz/src/Resizer.cc | 55 ++++++++++++++++++++++++++-------- src/rsz/test/gcd_resize.ok | 12 ++++---- 3 files changed, 51 insertions(+), 20 deletions(-) diff --git a/src/rsz/include/rsz/Resizer.hh b/src/rsz/include/rsz/Resizer.hh index 9d90d090cf0..ebffe5448df 100644 --- a/src/rsz/include/rsz/Resizer.hh +++ b/src/rsz/include/rsz/Resizer.hh @@ -262,6 +262,7 @@ class Resizer : public dbStaState void removeBuffers(InstanceSeq insts, bool recordJournal = false); void bufferInputs(); void bufferOutputs(); + void setExcludeClockBuffers(bool exclude_clock_buffers); // Balance the usage of hybrid rows void balanceRowUsage(); @@ -415,7 +416,7 @@ class Resizer : public dbStaState bool hasTristateOrDontTouchDriver(const Net* net); bool isTristateDriver(const Pin* pin); void checkLibertyForAllCorners(); - void findDataBuffers(); + void findBuffers(); bool isLinkCell(LibertyCell* cell); void findTargetLoads(); void balanceBin(const vector& bin); @@ -712,6 +713,7 @@ class Resizer : public dbStaState int inserted_buffer_count_ = 0; int cloned_gate_count_ = 0; int removed_buffer_count_ = 0; + bool exclude_clock_buffers_ = true; bool buffer_moved_into_core_ = false; // Slack map variables. // This is the minimum length of wire that is worth while to split and diff --git a/src/rsz/src/Resizer.cc b/src/rsz/src/Resizer.cc index 81e2652271a..98017c6ef99 100644 --- a/src/rsz/src/Resizer.cc +++ b/src/rsz/src/Resizer.cc @@ -244,6 +244,11 @@ void Resizer::init() initDesignArea(); } +void Resizer::setExcludeClockBuffers(bool exclude_clock_buffers) +{ + exclude_clock_buffers_ = exclude_clock_buffers; +} + // remove all buffers if no buffers are specified void Resizer::removeBuffers(sta::InstanceSeq insts, bool recordJournal) { @@ -498,23 +503,30 @@ void Resizer::balanceRowUsage() //////////////////////////////////////////////////////////////// -void Resizer::findDataBuffers() +void Resizer::findBuffers() { if (buffer_cells_.empty()) { LibertyLibraryIterator* lib_iter = network_->libertyLibraryIterator(); - sta::PatternMatch clkbuf_pattern(".*CLKBUF.*", - /* is_regexp */ true, - /* nocase */ true, - /* Tcl_interp* */ nullptr); + std::unique_ptr clkbuf_pattern; + + if (exclude_clock_buffers_) { + clkbuf_pattern + = std::make_unique(".*CLKBUF.*", + /* is_regexp */ true, + /* nocase */ true, + /* Tcl_interp* */ nullptr); + } while (lib_iter->hasNext()) { LibertyLibrary* lib = lib_iter->next(); for (LibertyCell* buffer : *lib->buffers()) { - // is_clock_cell is a custom lib attribute that may not exist, - // so we also use the name pattern to help - if (buffer->isClockCell() || clkbuf_pattern.match(buffer->name())) { - continue; + if (exclude_clock_buffers_) { + // is_clock_cell is a custom lib attribute that may not exist, + // so we also use the name pattern to help + if (buffer->isClockCell() || clkbuf_pattern->match(buffer->name())) { + continue; + } } if (!dontUse(buffer) && isLinkCell(buffer)) { @@ -549,7 +561,7 @@ bool Resizer::isLinkCell(LibertyCell* cell) void Resizer::bufferInputs() { init(); - findDataBuffers(); + findBuffers(); sta_->ensureClkNetwork(); inserted_buffer_count_ = 0; buffer_moved_into_core_ = false; @@ -674,7 +686,7 @@ Instance* Resizer::bufferInput(const Pin* top_pin, LibertyCell* buffer_cell) void Resizer::bufferOutputs() { init(); - findDataBuffers(); + findBuffers(); inserted_buffer_count_ = 0; buffer_moved_into_core_ = false; @@ -989,7 +1001,7 @@ void Resizer::resizePreamble() sta_->ensureClkNetwork(); makeEquivCells(); checkLibertyForAllCorners(); - findDataBuffers(); + findBuffers(); findTargetLoads(); } @@ -2367,7 +2379,7 @@ double Resizer::findMaxWireLength() { init(); checkLibertyForAllCorners(); - findDataBuffers(); + findBuffers(); findTargetLoads(); return findMaxWireLength1(); } @@ -2826,6 +2838,13 @@ void Resizer::repairHold( int max_passes, bool verbose) { + // Some technologies such as nangate45 don't have delay cells. Hence, + // until we have a better approach, it's better to consider clock buffers + // for hold violation repairing as these buffers' delay may be slighty + // higher and we'll need fewer insertions. + buffer_cells_.clear(); + setExcludeClockBuffers(false); + resizePreamble(); if (parasitics_src_ == ParasiticsSrc::global_routing) { opendp_->initMacrosAndGrid(); @@ -2836,6 +2855,9 @@ void Resizer::repairHold( max_buffer_percent, max_passes, verbose); + + // Needed so the subsequent RSZ operation can exclude clock buffers. + buffer_cells_.clear(); } void Resizer::repairHold(const Pin* end_pin, @@ -2845,6 +2867,10 @@ void Resizer::repairHold(const Pin* end_pin, float max_buffer_percent, int max_passes) { + // See comment on previous method. + buffer_cells_.clear(); + setExcludeClockBuffers(false); + resizePreamble(); repair_hold_->repairHold(end_pin, setup_margin, @@ -2852,6 +2878,9 @@ void Resizer::repairHold(const Pin* end_pin, allow_setup_violations, max_buffer_percent, max_passes); + + // Ditto. + buffer_cells_.clear(); } int Resizer::holdBufferCount() const diff --git a/src/rsz/test/gcd_resize.ok b/src/rsz/test/gcd_resize.ok index 05378542a27..f0a4253803c 100644 --- a/src/rsz/test/gcd_resize.ok +++ b/src/rsz/test/gcd_resize.ok @@ -7,17 +7,17 @@ worst slack 1.34 [INFO RSZ-0028] Inserted 18 output buffers. [INFO RSZ-0058] Using max wire length 693um. -[INFO RSZ-0039] Resized 50 instances. +[INFO RSZ-0039] Resized 58 instances. [INFO RSZ-0098] No setup violations found [INFO RSZ-0046] Found 35 endpoints with hold violations. -[INFO RSZ-0032] Inserted 99 hold buffers. +[INFO RSZ-0032] Inserted 105 hold buffers. worst slack 0.20 -worst slack 1.24 +worst slack 1.25 max slew Pin Limit Slew Slack ------------------------------------------------------------ -_443_/ZN 0.20 0.06 0.14 (MET) +_443_/ZN 0.20 0.04 0.15 (MET) max fanout @@ -29,7 +29,7 @@ max capacitance Pin Limit Cap Slack ------------------------------------------------------------ -_443_/ZN 10.47 3.86 6.62 (MET) +_448_/ZN 10.47 1.92 8.55 (MET) Driver length delay _759_/Z manhtn 83.9 steiner 83.9 0.00 @@ -43,4 +43,4 @@ _461_/Z manhtn 63.8 steiner 84.8 0.00 req_msg[18] manhtn 61.4 steiner 61.4 0.00 _847_/Z manhtn 60.3 steiner 60.3 0.00 _851_/Z manhtn 58.3 steiner 58.3 0.00 -Design area 756 u^2 12% utilization. +Design area 772 u^2 12% utilization. From 495f8678f5ffa3afc1b310e252b83341dcc2b697 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Mon, 16 Sep 2024 15:16:48 -0300 Subject: [PATCH 04/10] rsz: reset strategy and clear buffer cells for next operation Signed-off-by: Arthur Koucher --- src/rsz/include/rsz/Resizer.hh | 1 - src/rsz/src/Resizer.cc | 19 +++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/rsz/include/rsz/Resizer.hh b/src/rsz/include/rsz/Resizer.hh index ebffe5448df..1c2e904b3d7 100644 --- a/src/rsz/include/rsz/Resizer.hh +++ b/src/rsz/include/rsz/Resizer.hh @@ -262,7 +262,6 @@ class Resizer : public dbStaState void removeBuffers(InstanceSeq insts, bool recordJournal = false); void bufferInputs(); void bufferOutputs(); - void setExcludeClockBuffers(bool exclude_clock_buffers); // Balance the usage of hybrid rows void balanceRowUsage(); diff --git a/src/rsz/src/Resizer.cc b/src/rsz/src/Resizer.cc index 98017c6ef99..b05fa545870 100644 --- a/src/rsz/src/Resizer.cc +++ b/src/rsz/src/Resizer.cc @@ -244,11 +244,6 @@ void Resizer::init() initDesignArea(); } -void Resizer::setExcludeClockBuffers(bool exclude_clock_buffers) -{ - exclude_clock_buffers_ = exclude_clock_buffers; -} - // remove all buffers if no buffers are specified void Resizer::removeBuffers(sta::InstanceSeq insts, bool recordJournal) { @@ -2838,12 +2833,13 @@ void Resizer::repairHold( int max_passes, bool verbose) { + buffer_cells_.clear(); + // Some technologies such as nangate45 don't have delay cells. Hence, // until we have a better approach, it's better to consider clock buffers // for hold violation repairing as these buffers' delay may be slighty // higher and we'll need fewer insertions. - buffer_cells_.clear(); - setExcludeClockBuffers(false); + exclude_clock_buffers_ = false; resizePreamble(); if (parasitics_src_ == ParasiticsSrc::global_routing) { @@ -2856,7 +2852,8 @@ void Resizer::repairHold( max_passes, verbose); - // Needed so the subsequent RSZ operation can exclude clock buffers. + // Reset buffer selection strategy for the subsequent RSZ operation. + exclude_clock_buffers_ = true; buffer_cells_.clear(); } @@ -2867,9 +2864,10 @@ void Resizer::repairHold(const Pin* end_pin, float max_buffer_percent, int max_passes) { - // See comment on previous method. buffer_cells_.clear(); - setExcludeClockBuffers(false); + + // See comments on previous method. + exclude_clock_buffers_ = false; resizePreamble(); repair_hold_->repairHold(end_pin, @@ -2880,6 +2878,7 @@ void Resizer::repairHold(const Pin* end_pin, max_passes); // Ditto. + exclude_clock_buffers_ = true; buffer_cells_.clear(); } From 20ab89f7988827ac03a6e6c1b3e92b9fafb49399 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Thu, 19 Sep 2024 11:17:04 -0300 Subject: [PATCH 05/10] rsz: refactor cell function checking into a separate mechanism Signed-off-by: Arthur Koucher --- src/dbSta/include/db_sta/dbSta.hh | 22 ++++++++++++++++++++++ src/dbSta/src/dbSta.cc | 28 ++++++++++++++++++++++++++++ src/rsz/src/Resizer.cc | 20 +++++++------------- 3 files changed, 57 insertions(+), 13 deletions(-) diff --git a/src/dbSta/include/db_sta/dbSta.hh b/src/dbSta/include/db_sta/dbSta.hh index da10083a2b0..194993a543a 100644 --- a/src/dbSta/include/db_sta/dbSta.hh +++ b/src/dbSta/include/db_sta/dbSta.hh @@ -58,6 +58,7 @@ class dbStaReport; class dbStaCbk; class AbstractPathRenderer; class AbstractPowerDensityDataSource; +class PatternMatch; using utl::Logger; @@ -83,6 +84,23 @@ class dbStaState : public sta::StaState dbSta* sta_ = nullptr; }; +enum CellFunction +{ + DATA, + CLOCK +}; + +class CellFunctionAnalyser +{ + public: + CellFunctionAnalyser(); + + CellFunction getCellFunction(sta::LibertyCell* lib_cell); + + private: + std::unique_ptr clkbuf_pattern_; +}; + class dbSta : public Sta, public ord::OpenRoadObserver { public: @@ -172,6 +190,8 @@ class dbSta : public Sta, public ord::OpenRoadObserver InstType getInstanceType(odb::dbInst* inst); void report_cell_usage(bool verbose); + CellFunction getCellFunction(sta::LibertyCell* lib_cell); + using Sta::netSlack; using Sta::replaceCell; @@ -192,6 +212,8 @@ class dbSta : public Sta, public ord::OpenRoadObserver std::unique_ptr db_cbk_; std::set sta_states_; + CellFunctionAnalyser cell_function_analyser_; + std::unique_ptr path_renderer_; std::unique_ptr power_density_data_source_; }; diff --git a/src/dbSta/src/dbSta.cc b/src/dbSta/src/dbSta.cc index 0dc3a0498de..03516708a08 100644 --- a/src/dbSta/src/dbSta.cc +++ b/src/dbSta/src/dbSta.cc @@ -60,6 +60,7 @@ #include "sta/Liberty.hh" #include "sta/PathExpanded.hh" #include "sta/PathRef.hh" +#include "sta/PatternMatch.hh" #include "sta/ReportTcl.hh" #include "sta/Sdc.hh" #include "sta/Search.hh" @@ -539,6 +540,11 @@ void dbSta::report_cell_usage(const bool verbose) } } +CellFunction dbSta::getCellFunction(sta::LibertyCell* lib_cell) +{ + return cell_function_analyser_.getCellFunction(lib_cell); +} + //////////////////////////////////////////////////////////////// // Network edit functions. @@ -869,4 +875,26 @@ void dbSta::highlight(PathRef* path) path_renderer_->highlight(path); } +//////////////////////////////////////////////////////////////// + +CellFunctionAnalyser::CellFunctionAnalyser() +{ + clkbuf_pattern_ + = std::make_unique(".*CLKBUF.*", + /* is_regexp */ true, + /* nocase */ true, + /* Tcl_interp* */ nullptr); +} + +CellFunction CellFunctionAnalyser::getCellFunction(sta::LibertyCell* lib_cell) +{ + // is_clock_cell is a custom lib attribute that may not exist, + // so we also use the name pattern to help + if (lib_cell->isClockCell() || clkbuf_pattern_->match(lib_cell->name())) { + return CLOCK; + } + + return DATA; +} + } // namespace sta diff --git a/src/rsz/src/Resizer.cc b/src/rsz/src/Resizer.cc index dc3b6100026..4c812420d27 100644 --- a/src/rsz/src/Resizer.cc +++ b/src/rsz/src/Resizer.cc @@ -105,7 +105,7 @@ using sta::Term; using sta::TimingArcSet; using sta::TimingArcSetSeq; using sta::TimingRole; -; + using sta::ArcDcalcResult; using sta::ArcDelayCalc; using sta::BfsBkwdIterator; @@ -126,6 +126,9 @@ using sta::stringPrint; using sta::VertexIterator; using sta::VertexOutEdgeIterator; +using sta::CellFunction; +using sta::CLOCK; + Resizer::Resizer() : recover_power_(new RecoverPower(this)), repair_design_(new RepairDesign(this)), @@ -502,24 +505,15 @@ void Resizer::findBuffers() { if (buffer_cells_.empty()) { LibertyLibraryIterator* lib_iter = network_->libertyLibraryIterator(); - std::unique_ptr clkbuf_pattern; - - if (exclude_clock_buffers_) { - clkbuf_pattern - = std::make_unique(".*CLKBUF.*", - /* is_regexp */ true, - /* nocase */ true, - /* Tcl_interp* */ nullptr); - } while (lib_iter->hasNext()) { LibertyLibrary* lib = lib_iter->next(); for (LibertyCell* buffer : *lib->buffers()) { if (exclude_clock_buffers_) { - // is_clock_cell is a custom lib attribute that may not exist, - // so we also use the name pattern to help - if (buffer->isClockCell() || clkbuf_pattern->match(buffer->name())) { + CellFunction cell_function = sta_->getCellFunction(buffer); + + if (cell_function == CLOCK) { continue; } } From c4bd606d38a690ed8e9b47e5cf19b1cbdd93da33 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Thu, 19 Sep 2024 12:40:46 -0300 Subject: [PATCH 06/10] cts & rsz: keep buffer list selected by cts in rsz so clk nets repairing uses the same buffers Signed-off-by: Arthur Koucher --- src/cts/src/TritonCTS.cpp | 24 ++++++++++++++++-------- src/rsz/include/rsz/Resizer.hh | 7 +++++++ src/rsz/src/Resizer.cc | 7 +++++++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/cts/src/TritonCTS.cpp b/src/cts/src/TritonCTS.cpp index 7578c726a30..6210153640a 100644 --- a/src/cts/src/TritonCTS.cpp +++ b/src/cts/src/TritonCTS.cpp @@ -587,13 +587,15 @@ void TritonCTS::setBufferList(const char* buffers) void TritonCTS::inferBufferList(std::vector& buffers) { + sta::Vector selected_buffers; + // first, look for buffers with "is_clock_cell: true" cell attribute sta::LibertyLibraryIterator* lib_iter = network_->libertyLibraryIterator(); while (lib_iter->hasNext()) { sta::LibertyLibrary* lib = lib_iter->next(); for (sta::LibertyCell* buffer : *lib->buffers()) { if (buffer->isClockCell() && isClockCellCandidate(buffer)) { - buffers.emplace_back(buffer->name()); + selected_buffers.emplace_back(buffer); // clang-format off debugPrint(logger_, CTS, "buffering", 1, "{} has clock cell attribute", buffer->name()); @@ -604,7 +606,7 @@ void TritonCTS::inferBufferList(std::vector& buffers) delete lib_iter; // second, look for all buffers with name CLKBUF or clkbuf - if (buffers.empty()) { + if (selected_buffers.empty()) { sta::PatternMatch patternClkBuf(".*CLKBUF.*", /* is_regexp */ true, /* nocase */ true, @@ -615,7 +617,7 @@ void TritonCTS::inferBufferList(std::vector& buffers) for (sta::LibertyCell* buffer : lib->findLibertyCellsMatching(&patternClkBuf)) { if (buffer->isBuffer() && isClockCellCandidate(buffer)) { - buffers.emplace_back(buffer->name()); + selected_buffers.emplace_back(buffer); } } } @@ -623,7 +625,7 @@ void TritonCTS::inferBufferList(std::vector& buffers) } // third, look for all buffers with name BUF or buf - if (buffers.empty()) { + if (selected_buffers.empty()) { sta::PatternMatch patternBuf(".*BUF.*", /* is_regexp */ true, /* nocase */ true, @@ -634,7 +636,7 @@ void TritonCTS::inferBufferList(std::vector& buffers) for (sta::LibertyCell* buffer : lib->findLibertyCellsMatching(&patternBuf)) { if (buffer->isBuffer() && isClockCellCandidate(buffer)) { - buffers.emplace_back(buffer->name()); + selected_buffers.emplace_back(buffer); } } } @@ -642,19 +644,19 @@ void TritonCTS::inferBufferList(std::vector& buffers) } // abandon attributes & name patterns, just look for all buffers - if (buffers.empty()) { + if (selected_buffers.empty()) { lib_iter = network_->libertyLibraryIterator(); while (lib_iter->hasNext()) { sta::LibertyLibrary* lib = lib_iter->next(); for (sta::LibertyCell* buffer : *lib->buffers()) { if (isClockCellCandidate(buffer)) { - buffers.emplace_back(buffer->name()); + selected_buffers.emplace_back(buffer); } } } delete lib_iter; - if (buffers.empty()) { + if (selected_buffers.empty()) { logger_->error( CTS, 110, @@ -662,6 +664,12 @@ void TritonCTS::inferBufferList(std::vector& buffers) } } + resizer_->setClockBuffersList(selected_buffers); + + for (sta::LibertyCell* buffer : selected_buffers) { + buffers.emplace_back(buffer->name()); + } + options_->setBufferListInferred(true); if (logger_->debugCheck(utl::CTS, "buffering", 1)) { for (const std::string& bufName : buffers) { diff --git a/src/rsz/include/rsz/Resizer.hh b/src/rsz/include/rsz/Resizer.hh index ff75ffd96fe..10e6f6d77a6 100644 --- a/src/rsz/include/rsz/Resizer.hh +++ b/src/rsz/include/rsz/Resizer.hh @@ -358,6 +358,10 @@ class Resizer : public dbStaState // Use max_wire_length zero for none (meters) void repairClkNets( double max_wire_length); // max_wire_length zero for none (meters) + void setClockBuffersList(const LibertyCellSeq& clk_buffers) + { + clk_buffers_ = clk_buffers; + } // Clone inverters next to the registers they drive to remove them // from the clock network. // yosys is too stupid to use the inverted clock registers @@ -706,6 +710,9 @@ class Resizer : public dbStaState const MinMax* max_ = MinMax::max(); LibertyCellSeq buffer_cells_; LibertyCell* buffer_lowest_drive_ = nullptr; + // Buffer list created by CTS kept here so that we use the + // exact same buffers when reparing clock nets. + LibertyCellSeq clk_buffers_; CellTargetLoadMap* target_load_map_ = nullptr; VertexSeq level_drvr_vertices_; diff --git a/src/rsz/src/Resizer.cc b/src/rsz/src/Resizer.cc index 4c812420d27..09e3efc5979 100644 --- a/src/rsz/src/Resizer.cc +++ b/src/rsz/src/Resizer.cc @@ -2663,7 +2663,14 @@ void Resizer::repairNet(Net* net, void Resizer::repairClkNets(double max_wire_length) { resizePreamble(); + + // Use the buffers that were selected by CTS. + buffer_cells_ = clk_buffers_; + repair_design_->repairClkNets(max_wire_length); + + // Reset so that the next preamble select data buffers again. + buffer_cells_.clear(); } //////////////////////////////////////////////////////////////// From 2a4f0ca7daab9c916b212ab50fa64bd22d25f0fb Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Thu, 19 Sep 2024 19:01:50 -0300 Subject: [PATCH 07/10] rsz & dbSta: rename new mechanism and remove unneeded include Signed-off-by: Arthur Koucher --- src/dbSta/include/db_sta/dbSta.hh | 12 ++++++------ src/dbSta/src/dbSta.cc | 10 +++++----- src/rsz/src/Resizer.cc | 7 +++---- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/dbSta/include/db_sta/dbSta.hh b/src/dbSta/include/db_sta/dbSta.hh index 194993a543a..e7bf216f3d7 100644 --- a/src/dbSta/include/db_sta/dbSta.hh +++ b/src/dbSta/include/db_sta/dbSta.hh @@ -84,18 +84,18 @@ class dbStaState : public sta::StaState dbSta* sta_ = nullptr; }; -enum CellFunction +enum BufferUse { DATA, CLOCK }; -class CellFunctionAnalyser +class BufferUseAnalyser { public: - CellFunctionAnalyser(); + BufferUseAnalyser(); - CellFunction getCellFunction(sta::LibertyCell* lib_cell); + BufferUse getBufferUse(sta::LibertyCell* buffer); private: std::unique_ptr clkbuf_pattern_; @@ -190,7 +190,7 @@ class dbSta : public Sta, public ord::OpenRoadObserver InstType getInstanceType(odb::dbInst* inst); void report_cell_usage(bool verbose); - CellFunction getCellFunction(sta::LibertyCell* lib_cell); + BufferUse getBufferUse(sta::LibertyCell* buffer); using Sta::netSlack; using Sta::replaceCell; @@ -212,7 +212,7 @@ class dbSta : public Sta, public ord::OpenRoadObserver std::unique_ptr db_cbk_; std::set sta_states_; - CellFunctionAnalyser cell_function_analyser_; + BufferUseAnalyser buffer_use_analyser_; std::unique_ptr path_renderer_; std::unique_ptr power_density_data_source_; diff --git a/src/dbSta/src/dbSta.cc b/src/dbSta/src/dbSta.cc index 03516708a08..7f9362aea66 100644 --- a/src/dbSta/src/dbSta.cc +++ b/src/dbSta/src/dbSta.cc @@ -540,9 +540,9 @@ void dbSta::report_cell_usage(const bool verbose) } } -CellFunction dbSta::getCellFunction(sta::LibertyCell* lib_cell) +BufferUse dbSta::getBufferUse(sta::LibertyCell* buffer) { - return cell_function_analyser_.getCellFunction(lib_cell); + return buffer_use_analyser_.getBufferUse(buffer); } //////////////////////////////////////////////////////////////// @@ -877,7 +877,7 @@ void dbSta::highlight(PathRef* path) //////////////////////////////////////////////////////////////// -CellFunctionAnalyser::CellFunctionAnalyser() +BufferUseAnalyser::BufferUseAnalyser() { clkbuf_pattern_ = std::make_unique(".*CLKBUF.*", @@ -886,11 +886,11 @@ CellFunctionAnalyser::CellFunctionAnalyser() /* Tcl_interp* */ nullptr); } -CellFunction CellFunctionAnalyser::getCellFunction(sta::LibertyCell* lib_cell) +BufferUse BufferUseAnalyser::getBufferUse(sta::LibertyCell* buffer) { // is_clock_cell is a custom lib attribute that may not exist, // so we also use the name pattern to help - if (lib_cell->isClockCell() || clkbuf_pattern_->match(lib_cell->name())) { + if (buffer->isClockCell() || clkbuf_pattern_->match(buffer->name())) { return CLOCK; } diff --git a/src/rsz/src/Resizer.cc b/src/rsz/src/Resizer.cc index 221bd4dcef5..4d8ec772698 100644 --- a/src/rsz/src/Resizer.cc +++ b/src/rsz/src/Resizer.cc @@ -58,7 +58,6 @@ #include "sta/Liberty.hh" #include "sta/Network.hh" #include "sta/Parasitics.hh" -#include "sta/PatternMatch.hh" #include "sta/PortDirection.hh" #include "sta/Sdc.hh" #include "sta/Search.hh" @@ -126,7 +125,7 @@ using sta::stringPrint; using sta::VertexIterator; using sta::VertexOutEdgeIterator; -using sta::CellFunction; +using sta::BufferUse; using sta::CLOCK; Resizer::Resizer() @@ -511,9 +510,9 @@ void Resizer::findBuffers() for (LibertyCell* buffer : *lib->buffers()) { if (exclude_clock_buffers_) { - CellFunction cell_function = sta_->getCellFunction(buffer); + BufferUse buffer_use = sta_->getBufferUse(buffer); - if (cell_function == CLOCK) { + if (buffer_use == CLOCK) { continue; } } From a0a65c6d3bb184bf8adc988144eeab8d5b2f7d23 Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Fri, 27 Sep 2024 10:55:53 -0300 Subject: [PATCH 08/10] dbSta: make analyser unique to instantiate along with other vars Signed-off-by: Arthur Koucher --- src/dbSta/include/db_sta/dbSta.hh | 2 +- src/dbSta/src/dbSta.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dbSta/include/db_sta/dbSta.hh b/src/dbSta/include/db_sta/dbSta.hh index e7bf216f3d7..b80755691cb 100644 --- a/src/dbSta/include/db_sta/dbSta.hh +++ b/src/dbSta/include/db_sta/dbSta.hh @@ -212,7 +212,7 @@ class dbSta : public Sta, public ord::OpenRoadObserver std::unique_ptr db_cbk_; std::set sta_states_; - BufferUseAnalyser buffer_use_analyser_; + std::unique_ptr buffer_use_analyser_; std::unique_ptr path_renderer_; std::unique_ptr power_density_data_source_; diff --git a/src/dbSta/src/dbSta.cc b/src/dbSta/src/dbSta.cc index 7f9362aea66..61526fa5792 100644 --- a/src/dbSta/src/dbSta.cc +++ b/src/dbSta/src/dbSta.cc @@ -189,6 +189,7 @@ void dbSta::initVars(Tcl_Interp* tcl_interp, db_report_->setLogger(logger); db_network_->init(db, logger); db_cbk_ = std::make_unique(this, logger); + buffer_use_analyser_ = std::make_unique(); } void dbSta::updateComponentsState() @@ -542,7 +543,7 @@ void dbSta::report_cell_usage(const bool verbose) BufferUse dbSta::getBufferUse(sta::LibertyCell* buffer) { - return buffer_use_analyser_.getBufferUse(buffer); + return buffer_use_analyser_->getBufferUse(buffer); } //////////////////////////////////////////////////////////////// From 5ee9d1616426650e4e060a81d307f2295d7ebf4f Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Fri, 27 Sep 2024 16:32:37 -0300 Subject: [PATCH 09/10] rsz: update gpl timing driven failling test and FlowTests for new buffer selection strategy Signed-off-by: Arthur Koucher --- src/gpl/test/simple01-td-tune.defok | 572 ++++++++++++++-------------- src/gpl/test/simple01-td-tune.ok | 94 ++--- src/gpl/test/simple01-td.ok | 100 ++--- test/aes_sky130hd.metrics | 144 +++---- test/aes_sky130hd.metrics_limits | 28 +- test/aes_sky130hs.metrics | 140 ++++--- test/aes_sky130hs.metrics_limits | 28 +- test/ibex_sky130hd.metrics | 164 ++++---- test/ibex_sky130hd.metrics_limits | 28 +- test/jpeg_sky130hd.metrics | 196 ++++------ test/jpeg_sky130hd.metrics_limits | 30 +- test/jpeg_sky130hs.metrics | 132 ++++--- test/jpeg_sky130hs.metrics_limits | 22 +- 13 files changed, 827 insertions(+), 851 deletions(-) diff --git a/src/gpl/test/simple01-td-tune.defok b/src/gpl/test/simple01-td-tune.defok index 65aee30b088..2cf121c6466 100644 --- a/src/gpl/test/simple01-td-tune.defok +++ b/src/gpl/test/simple01-td-tune.defok @@ -60,292 +60,292 @@ GCELLGRID Y 58940 DO 2 STEP 2660 ; GCELLGRID Y 140 DO 22 STEP 2800 ; GCELLGRID Y 0 DO 2 STEP 140 ; COMPONENTS 286 ; - - _276_ NOR2_X2 + PLACED ( 41516 9447 ) N ; - - _278_ INV_X1 + PLACED ( 9297 23118 ) N ; - - _279_ NOR2_X1 + PLACED ( 13254 25193 ) N ; - - _280_ INV_X1 + PLACED ( 15863 26096 ) N ; - - _281_ INV_X1 + PLACED ( 19560 53633 ) N ; - - _282_ NOR2_X1 + PLACED ( 22070 50215 ) N ; - - _283_ INV_X1 + PLACED ( 26966 48177 ) N ; - - _284_ NOR2_X1 + PLACED ( 25529 48756 ) N ; - - _285_ NOR2_X1 + PLACED ( 22706 48440 ) N ; - - _286_ INV_X1 + PLACED ( 16020 43305 ) N ; - - _287_ NOR2_X1 + PLACED ( 18653 42008 ) N ; - - _288_ INV_X1 + PLACED ( 19748 41479 ) N ; - - _289_ AND2_X1 + PLACED ( 20261 29671 ) N ; - - _290_ INV_X1 + PLACED ( 27724 9943 ) N ; - - _291_ NOR2_X1 + PLACED ( 20551 9870 ) N ; - - _292_ INV_X1 + PLACED ( 16133 7907 ) N ; - - _293_ AOI21_X1 + PLACED ( 20020 9660 ) N ; - - _294_ INV_X1 + PLACED ( 25663 11766 ) N ; - - _295_ NOR2_X1 + PLACED ( 24228 15067 ) N ; - - _296_ INV_X1 + PLACED ( 18277 16709 ) N ; - - _297_ NOR2_X1 + PLACED ( 19071 17880 ) N ; - - _298_ NOR2_X1 + PLACED ( 21676 19301 ) N ; - - _299_ AND2_X1 + PLACED ( 21880 33754 ) N ; - - _300_ INV_X16 + PLACED ( 55379 16566 ) N ; - - _301_ NOR2_X4 + PLACED ( 53127 18556 ) N ; - - _302_ INV_X16 + PLACED ( 47272 20043 ) N ; - - _303_ NOR3_X2 + PLACED ( 50656 19849 ) N ; - - _304_ AOI21_X1 + PLACED ( 48844 19377 ) N ; - - _305_ INV_X1 + PLACED ( 46966 21185 ) N ; - - _306_ INV_X32 + PLACED ( 49400 40156 ) N ; - - _307_ AND2_X4 + PLACED ( 56500 34664 ) N ; - - _308_ INV_X4 + PLACED ( 58253 33269 ) N ; - - _309_ INV_X32 + PLACED ( 49227 51773 ) N ; - - _310_ OAI211_X4 + PLACED ( 53379 40437 ) N ; - - _311_ NAND2_X4 + PLACED ( 56636 31207 ) N ; - - _312_ INV_X16 + PLACED ( 55266 23876 ) N ; - - _313_ NOR2_X1 + PLACED ( 56091 29171 ) N ; - - _314_ NOR3_X4 + PLACED ( 52249 30092 ) N ; - - _315_ NOR2_X2 + PLACED ( 38451 32665 ) N ; - - _316_ INV_X1 + PLACED ( 32234 40979 ) N ; - - _317_ NOR2_X1 + PLACED ( 31081 40166 ) N ; - - _318_ INV_X32 + PLACED ( 30031 26500 ) N ; - - _319_ NOR2_X4 + PLACED ( 32786 33346 ) N ; - - _320_ INV_X4 + PLACED ( 10311 30831 ) N ; - - _321_ NAND2_X1 + PLACED ( 12541 33702 ) N ; - - _322_ INV_X1 + PLACED ( 16423 37140 ) N ; - - _323_ OAI21_X4 + PLACED ( 12830 35341 ) N ; - - _324_ NOR4_X4 + PLACED ( 27364 34440 ) N ; - - _325_ NOR2_X1 + PLACED ( 13755 33698 ) N ; - - _326_ OAI21_X1 + PLACED ( 15195 35478 ) N ; - - _327_ INV_X1 + PLACED ( 14956 38530 ) N ; - - _328_ INV_X32 + PLACED ( 30812 48551 ) N ; - - _329_ NOR3_X2 + PLACED ( 31667 34000 ) N ; - - _330_ AOI21_X4 + PLACED ( 31484 33507 ) N ; - - _331_ OAI221_X4 + PLACED ( 16326 34883 ) N ; - - _332_ OAI211_X1 + PLACED ( 20444 28028 ) N ; - - _333_ AND2_X1 + PLACED ( 12569 24663 ) N ; - - _334_ INV_X1 + PLACED ( 14732 25518 ) N ; - - _335_ NAND2_X1 + PLACED ( 22441 50148 ) N ; - - _336_ NAND2_X1 + PLACED ( 25550 48207 ) N ; - - _337_ NAND2_X1 + PLACED ( 22969 46967 ) N ; - - _338_ INV_X1 + PLACED ( 22619 48795 ) N ; - - _339_ NAND3_X1 + PLACED ( 20850 42058 ) N ; - - _340_ NAND2_X1 + PLACED ( 18637 41954 ) N ; - - _341_ NAND2_X1 + PLACED ( 19697 41290 ) N ; - - _342_ INV_X1 + PLACED ( 21614 9402 ) N ; - - _343_ OAI211_X1 + PLACED ( 20233 10382 ) N ; - - _344_ NAND2_X1 + PLACED ( 20324 11848 ) N ; - - _345_ AOI211_X1 + PLACED ( 20913 18140 ) N ; - - _346_ NAND2_X1 + PLACED ( 24467 15073 ) N ; - - _347_ NAND2_X1 + PLACED ( 19704 18222 ) N ; - - _348_ OAI21_X1 + PLACED ( 22963 18610 ) N ; - - _349_ OR2_X1 + PLACED ( 22536 26129 ) N ; - - _350_ AOI21_X1 + PLACED ( 19541 27997 ) N ; - - _351_ AND4_X1 + PLACED ( 16405 26169 ) N ; - - _352_ AOI22_X1 + PLACED ( 16418 26283 ) N ; - - _353_ OR2_X1 + PLACED ( 17318 23791 ) N ; - - _355_ INV_X2 + PLACED ( 42265 10685 ) N ; - - _357_ AND3_X1 + PLACED ( 20272 28908 ) N ; - - _358_ OAI211_X4 + PLACED ( 21666 27650 ) N ; - - _359_ OAI21_X1 + PLACED ( 18278 27229 ) N ; - - _360_ OAI21_X1 + PLACED ( 22898 26560 ) N ; - - _361_ NAND3_X4 + PLACED ( 22853 27698 ) N ; - - _362_ NOR2_X1 + PLACED ( 42589 46794 ) N ; - - _363_ INV_X1 + PLACED ( 43455 45837 ) N ; - - _364_ NOR2_X4 + PLACED ( 43060 18100 ) N ; - - _365_ AOI221_X4 + PLACED ( 25585 40404 ) N ; - - _366_ AND2_X4 + PLACED ( 41495 46999 ) N ; - - _368_ OAI21_X1 + PLACED ( 15947 24355 ) N ; - - _370_ AOI22_X1 + PLACED ( 13339 24451 ) N ; - - _371_ NOR2_X2 + PLACED ( 23043 33609 ) N ; - - _372_ NAND3_X1 + PLACED ( 21809 34617 ) N ; - - _373_ OR2_X1 + PLACED ( 21834 38313 ) N ; - - _374_ AOI22_X1 + PLACED ( 21234 42512 ) N ; - - _375_ NAND2_X1 + PLACED ( 21309 41587 ) N ; - - _376_ XOR2_X1 + PLACED ( 10304 44232 ) N ; - - _377_ XNOR2_X1 + PLACED ( 11554 43411 ) N ; - - _378_ INV_X1 + PLACED ( 46075 53435 ) N ; - - _380_ NOR2_X1 + PLACED ( 18140 47547 ) N ; - - _381_ NAND2_X1 + PLACED ( 15304 45526 ) N ; - - _382_ AOI221_X4 + PLACED ( 13746 46266 ) N ; - - _383_ AOI21_X1 + PLACED ( 16064 47297 ) N ; - - _384_ INV_X1 + PLACED ( 23664 43634 ) N ; - - _385_ INV_X1 + PLACED ( 23016 42602 ) N ; - - _386_ OAI211_X1 + PLACED ( 23240 46012 ) N ; - - _387_ INV_X1 + PLACED ( 24260 48646 ) N ; - - _388_ AND4_X1 + PLACED ( 23243 48491 ) N ; - - _389_ AOI22_X1 + PLACED ( 23087 48592 ) N ; - - _390_ NOR2_X1 + PLACED ( 24320 48873 ) N ; - - _391_ NOR2_X1 + PLACED ( 20078 55092 ) N ; - - _392_ NAND2_X1 + PLACED ( 21532 53769 ) N ; - - _393_ AOI221_X4 + PLACED ( 14380 55437 ) N ; - - _394_ AOI21_X1 + PLACED ( 19378 55659 ) N ; - - _395_ OAI21_X1 + PLACED ( 23851 45563 ) N ; - - _396_ XOR2_X1 + PLACED ( 25699 55891 ) N ; - - _397_ XNOR2_X1 + PLACED ( 25332 55503 ) N ; - - _398_ NOR2_X1 + PLACED ( 27667 54687 ) N ; - - _399_ AOI221_X1 + PLACED ( 25341 55483 ) N ; - - _401_ OR3_X1 + PLACED ( 26341 47494 ) N ; - - _402_ AOI21_X1 + PLACED ( 27039 55197 ) N ; - - _403_ INV_X1 + PLACED ( 21763 19573 ) N ; - - _404_ OAI211_X1 + PLACED ( 20739 21873 ) N ; - - _405_ AOI21_X1 + PLACED ( 19825 17438 ) N ; - - _406_ AOI21_X1 + PLACED ( 18628 17592 ) N ; - - _407_ AND2_X1 + PLACED ( 18712 17628 ) N ; - - _408_ XNOR2_X1 + PLACED ( 24157 10337 ) N ; - - _409_ XNOR2_X1 + PLACED ( 18316 11680 ) N ; - - _410_ NOR2_X1 + PLACED ( 25312 11252 ) N ; - - _411_ AOI221_X1 + PLACED ( 15901 12960 ) N ; - - _412_ OR3_X1 + PLACED ( 24823 12495 ) N ; - - _413_ AOI21_X1 + PLACED ( 24196 11594 ) N ; - - _414_ OAI21_X1 + PLACED ( 22523 22352 ) N ; - - _415_ AND2_X1 + PLACED ( 21362 18065 ) N ; - - _416_ AND4_X1 + PLACED ( 23244 20232 ) N ; - - _417_ AOI22_X1 + PLACED ( 22995 20335 ) N ; - - _418_ OR2_X1 + PLACED ( 27769 21130 ) N ; - - _419_ NOR2_X1 + PLACED ( 30959 18104 ) N ; - - _420_ AOI221_X4 + PLACED ( 27931 16832 ) N ; - - _421_ OAI21_X1 + PLACED ( 27615 20090 ) N ; - - _422_ AOI21_X1 + PLACED ( 30020 18376 ) N ; - - _423_ AOI21_X1 + PLACED ( 20706 7068 ) N ; - - _424_ NOR2_X1 + PLACED ( 19884 7194 ) N ; - - _425_ NOR2_X1 + PLACED ( 21370 7924 ) N ; - - _426_ XNOR2_X1 + PLACED ( 27867 8900 ) N ; - - _427_ XNOR2_X1 + PLACED ( 28797 8686 ) N ; - - _428_ NOR2_X1 + PLACED ( 33913 10889 ) N ; - - _429_ AOI221_X2 + PLACED ( 36039 12738 ) N ; - - _430_ OR3_X1 + PLACED ( 30406 11742 ) N ; - - _431_ AOI21_X1 + PLACED ( 33156 11188 ) N ; - - _432_ XNOR2_X1 + PLACED ( 20075 3316 ) N ; - - _433_ XNOR2_X1 + PLACED ( 21064 3887 ) N ; - - _434_ AOI221_X2 + PLACED ( 13039 12552 ) N ; - - _435_ OR3_X1 + PLACED ( 24288 11491 ) N ; - - _436_ AOI22_X1 + PLACED ( 14542 10406 ) N ; - - _437_ NAND2_X1 + PLACED ( 36343 34273 ) N ; - - _438_ OAI221_X1 + PLACED ( 36549 32484 ) N ; - - _439_ NAND2_X1 + PLACED ( 26402 33286 ) N ; - - _440_ XOR2_X1 + PLACED ( 9453 31105 ) N ; - - _441_ XNOR2_X1 + PLACED ( 26144 32211 ) N ; - - _442_ AOI221_X2 + PLACED ( 41146 30916 ) N ; - - _443_ NAND2_X1 + PLACED ( 13609 30190 ) N ; - - _444_ AOI22_X1 + PLACED ( 12705 30764 ) N ; - - _445_ OAI21_X1 + PLACED ( 36738 34464 ) N ; - - _446_ NAND2_X1 + PLACED ( 36400 33318 ) N ; - - _447_ XNOR2_X1 + PLACED ( 34635 25313 ) N ; - - _448_ XNOR2_X1 + PLACED ( 34459 24960 ) N ; - - _449_ NOR2_X1 + PLACED ( 36972 20262 ) N ; - - _450_ AOI221_X1 + PLACED ( 33168 20840 ) N ; - - _451_ OR3_X1 + PLACED ( 34722 26273 ) N ; - - _452_ AOI21_X1 + PLACED ( 36089 20634 ) N ; - - _453_ XNOR2_X1 + PLACED ( 32985 41357 ) N ; - - _454_ XNOR2_X1 + PLACED ( 33507 41348 ) N ; - - _455_ AOI221_X2 + PLACED ( 30955 54456 ) N ; - - _456_ OR3_X1 + PLACED ( 31242 44486 ) N ; - - _457_ AOI22_X1 + PLACED ( 31859 47862 ) N ; - - _458_ AOI22_X1 + PLACED ( 56652 30740 ) N ; - - _459_ NOR2_X1 + PLACED ( 57173 29245 ) N ; - - _460_ XOR2_X1 + PLACED ( 56387 19179 ) N ; - - _461_ XNOR2_X1 + PLACED ( 57332 20127 ) N ; - - _462_ NOR2_X1 + PLACED ( 48084 13824 ) N ; - - _463_ AOI221_X1 + PLACED ( 44905 14319 ) N ; - - _464_ OR3_X1 + PLACED ( 47128 15327 ) N ; - - _465_ AOI21_X1 + PLACED ( 47754 14171 ) N ; - - _466_ XNOR2_X1 + PLACED ( 56173 25274 ) N ; - - _467_ XNOR2_X1 + PLACED ( 56962 28120 ) N ; - - _468_ AOI221_X4 + PLACED ( 46154 27651 ) N ; - - _469_ OR3_X1 + PLACED ( 47551 25773 ) N ; - - _470_ AOI22_X1 + PLACED ( 49805 26223 ) N ; - - _471_ XNOR2_X1 + PLACED ( 43588 36706 ) N ; - - _472_ INV_X1 + PLACED ( 53214 39778 ) N ; - - _473_ NOR2_X1 + PLACED ( 52315 39061 ) N ; - - _474_ XNOR2_X1 + PLACED ( 44353 37090 ) N ; - - _475_ AOI221_X4 + PLACED ( 45186 33108 ) N ; - - _476_ NAND3_X1 + PLACED ( 45716 34147 ) N ; - - _477_ AOI22_X1 + PLACED ( 47872 34607 ) N ; - - _478_ XOR2_X1 + PLACED ( 53088 47654 ) N ; - - _479_ AOI221_X4 + PLACED ( 46145 45896 ) N ; - - _480_ NAND3_X1 + PLACED ( 46992 47399 ) N ; - - _481_ AOI22_X1 + PLACED ( 47880 48205 ) N ; - - _482_ NOR2_X1 + PLACED ( 41629 10115 ) N ; - - _483_ NOR2_X1 + PLACED ( 54968 34758 ) N ; - - _484_ AND3_X1 + PLACED ( 53252 36723 ) N ; - - _485_ NAND3_X1 + PLACED ( 28912 39105 ) N ; - - _486_ NOR3_X1 + PLACED ( 26094 11377 ) N ; - - _487_ NAND2_X1 + PLACED ( 25336 11726 ) N ; - - _488_ NOR4_X1 + PLACED ( 26008 39886 ) N ; - - _489_ NAND3_X1 + PLACED ( 24325 40961 ) N ; - - _490_ NOR3_X1 + PLACED ( 34398 26609 ) N ; - - _491_ NAND3_X1 + PLACED ( 39833 14743 ) N ; - - _492_ AOI221_X4 + PLACED ( 40445 11798 ) N ; - - _493_ NAND3_X1 + PLACED ( 34455 54287 ) N ; - - _494_ AOI221_X1 + PLACED ( 36104 13592 ) N ; - - _495_ MUX2_X1 + PLACED ( 7196 57266 ) N ; - - _496_ NOR2_X4 + PLACED ( 41746 53081 ) N ; - - _498_ MUX2_X1 + PLACED ( 9641 56313 ) N ; - - _499_ MUX2_X1 + PLACED ( 5726 20398 ) N ; - - _500_ MUX2_X1 + PLACED ( 8654 20732 ) N ; - - _501_ MUX2_X1 + PLACED ( 5150 49550 ) N ; - - _502_ MUX2_X1 + PLACED ( 7266 48779 ) N ; - - _503_ MUX2_X1 + PLACED ( 33428 57478 ) N ; - - _504_ MUX2_X1 + PLACED ( 35005 56272 ) N ; - - _505_ MUX2_X1 + PLACED ( 27699 1993 ) N ; - - _506_ MUX2_X1 + PLACED ( 28809 2781 ) N ; - - _507_ MUX2_X1 + PLACED ( 4772 17552 ) N ; - - _508_ MUX2_X1 + PLACED ( 7384 15778 ) N ; - - _509_ MUX2_X1 + PLACED ( 4367 9701 ) N ; - - _510_ MUX2_X1 + PLACED ( 6581 9460 ) N ; - - _511_ MUX2_X1 + PLACED ( 13935 2184 ) N ; - - _512_ MUX2_X1 + PLACED ( 16038 2507 ) N ; - - _513_ MUX2_X1 + PLACED ( 7022 34746 ) N ; - - _514_ MUX2_X1 + PLACED ( 6671 35718 ) N ; - - _515_ MUX2_X1 + PLACED ( 3145 28096 ) N ; - - _516_ MUX2_X1 + PLACED ( 5486 27924 ) N ; - - _517_ MUX2_X1 + PLACED ( 41714 19800 ) N ; - - _518_ MUX2_X1 + PLACED ( 42150 24510 ) N ; - - _519_ MUX2_X1 + PLACED ( 36384 40329 ) N ; - - _520_ MUX2_X1 + PLACED ( 36768 40950 ) N ; - - _521_ MUX2_X1 + PLACED ( 54569 11137 ) N ; - - _522_ MUX2_X1 + PLACED ( 55305 11809 ) N ; - - _523_ MUX2_X1 + PLACED ( 48599 5997 ) N ; - - _524_ MUX2_X1 + PLACED ( 50714 6414 ) N ; - - _525_ MUX2_X1 + PLACED ( 41406 38936 ) N ; - - _526_ MUX2_X1 + PLACED ( 43143 40399 ) N ; - - _527_ MUX2_X1 + PLACED ( 54169 46400 ) N ; - - _528_ MUX2_X1 + PLACED ( 55213 46628 ) N ; - - _529_ AOI22_X1 + PLACED ( 15310 33777 ) N ; - - _530_ NOR2_X1 + PLACED ( 14330 35438 ) N ; - - _531_ XNOR2_X1 + PLACED ( 10933 38604 ) N ; - - _532_ XNOR2_X1 + PLACED ( 12182 39285 ) N ; - - _533_ AOI221_X2 + PLACED ( 12156 54020 ) N ; - - _534_ OR3_X1 + PLACED ( 24582 39112 ) N ; - - _535_ AOI22_X1 + PLACED ( 14229 40304 ) N ; - - _536_ DFF_X1 + PLACED ( 940 22776 ) N ; - - _537_ DFF_X1 + PLACED ( 12997 48837 ) N ; - - _538_ DFF_X1 + PLACED ( 17574 57281 ) N ; - - _539_ DFF_X1 + PLACED ( 26252 56871 ) N ; - - _540_ DFF_X1 + PLACED ( 22441 2387 ) N ; - - _541_ DFF_X1 + PLACED ( 28928 18003 ) N ; - - _542_ DFF_X1 + PLACED ( 31011 8833 ) N ; - - _543_ DFF_X1 + PLACED ( 10837 7724 ) N ; - - _544_ DFF_X1 + PLACED ( 0 30071 ) N ; - - _545_ DFF_X1 + PLACED ( 36154 19184 ) N ; - - _546_ DFF_X1 + PLACED ( 30734 48191 ) N ; - - _547_ DFF_X1 + PLACED ( 47967 13191 ) N ; - - _548_ DFF_X1 + PLACED ( 48292 25752 ) N ; - - _549_ DFF_X1 + PLACED ( 47438 35229 ) N ; - - _550_ DFF_X1 + PLACED ( 46623 50181 ) N ; - - _551_ DFF_X1 + PLACED ( 43405 9246 ) N ; - - _552_ DFF_X1 + PLACED ( 36146 7382 ) N ; - - _553_ DFF_X1 + PLACED ( 9581 56752 ) N ; - - _554_ DFF_X1 + PLACED ( 8971 20440 ) N ; - - _555_ DFF_X1 + PLACED ( 6423 48688 ) N ; - - _556_ DFF_X1 + PLACED ( 34899 56302 ) N ; - - _557_ DFF_X1 + PLACED ( 28583 2632 ) N ; - - _558_ DFF_X1 + PLACED ( 7389 15196 ) N ; - - _559_ DFF_X1 + PLACED ( 5946 9237 ) N ; - - _560_ DFF_X1 + PLACED ( 15912 1946 ) N ; - - _561_ DFF_X1 + PLACED ( 2196 36159 ) N ; - - _562_ DFF_X1 + PLACED ( 4457 27718 ) N ; - - _563_ DFF_X1 + PLACED ( 40234 25075 ) N ; - - _564_ DFF_X1 + PLACED ( 35842 41441 ) N ; - - _565_ DFF_X1 + PLACED ( 55212 11857 ) N ; - - _566_ DFF_X1 + PLACED ( 51190 6405 ) N ; - - _567_ DFF_X1 + PLACED ( 43453 41342 ) N ; - - _568_ DFF_X1 + PLACED ( 55480 46867 ) N ; - - _569_ DFF_X1 + PLACED ( 4617 40570 ) N ; + - _276_ NOR2_X2 + PLACED ( 42331 14105 ) N ; + - _278_ INV_X1 + PLACED ( 8902 35743 ) N ; + - _279_ NOR2_X1 + PLACED ( 11901 37248 ) N ; + - _280_ INV_X1 + PLACED ( 15421 36857 ) N ; + - _281_ INV_X1 + PLACED ( 21800 51787 ) N ; + - _282_ NOR2_X1 + PLACED ( 21994 48834 ) N ; + - _283_ INV_X1 + PLACED ( 28578 46357 ) N ; + - _284_ NOR2_X1 + PLACED ( 27095 47103 ) N ; + - _285_ NOR2_X1 + PLACED ( 21465 46850 ) N ; + - _286_ INV_X1 + PLACED ( 12913 45336 ) N ; + - _287_ NOR2_X1 + PLACED ( 16591 45227 ) N ; + - _288_ INV_X1 + PLACED ( 17913 44869 ) N ; + - _289_ AND2_X1 + PLACED ( 18826 38833 ) N ; + - _290_ INV_X1 + PLACED ( 21248 13407 ) N ; + - _291_ NOR2_X1 + PLACED ( 18755 13175 ) N ; + - _292_ INV_X1 + PLACED ( 14068 11449 ) N ; + - _293_ AOI21_X1 + PLACED ( 18017 13095 ) N ; + - _294_ INV_X1 + PLACED ( 26060 17220 ) N ; + - _295_ NOR2_X1 + PLACED ( 24771 20259 ) N ; + - _296_ INV_X1 + PLACED ( 17345 20595 ) N ; + - _297_ NOR2_X1 + PLACED ( 17578 21765 ) N ; + - _298_ NOR2_X1 + PLACED ( 20283 24320 ) N ; + - _299_ AND2_X1 + PLACED ( 20113 36162 ) N ; + - _300_ INV_X16 + PLACED ( 55480 15509 ) N ; + - _301_ NOR2_X4 + PLACED ( 53832 17640 ) N ; + - _302_ INV_X16 + PLACED ( 48846 18225 ) N ; + - _303_ NOR3_X2 + PLACED ( 51621 18613 ) N ; + - _304_ AOI21_X1 + PLACED ( 49676 18379 ) N ; + - _305_ INV_X1 + PLACED ( 43885 26903 ) N ; + - _306_ INV_X32 + PLACED ( 41522 39929 ) N ; + - _307_ AND2_X4 + PLACED ( 56662 34080 ) N ; + - _308_ INV_X4 + PLACED ( 58253 32744 ) N ; + - _309_ INV_X32 + PLACED ( 48881 52158 ) N ; + - _310_ OAI211_X4 + PLACED ( 53974 37873 ) N ; + - _311_ NAND2_X4 + PLACED ( 56211 30739 ) N ; + - _312_ INV_X16 + PLACED ( 55480 23184 ) N ; + - _313_ NOR2_X1 + PLACED ( 56572 27626 ) N ; + - _314_ NOR3_X4 + PLACED ( 53025 28475 ) N ; + - _315_ NOR2_X2 + PLACED ( 41010 29876 ) N ; + - _316_ INV_X1 + PLACED ( 34314 39902 ) N ; + - _317_ NOR2_X1 + PLACED ( 33270 37443 ) N ; + - _318_ INV_X32 + PLACED ( 33496 4465 ) N ; + - _319_ NOR2_X4 + PLACED ( 34298 28346 ) N ; + - _320_ INV_X4 + PLACED ( 28182 24113 ) N ; + - _321_ NAND2_X1 + PLACED ( 26118 27482 ) N ; + - _322_ INV_X1 + PLACED ( 26013 29787 ) N ; + - _323_ OAI21_X4 + PLACED ( 24354 29474 ) N ; + - _324_ NOR4_X4 + PLACED ( 30488 33268 ) N ; + - _325_ NOR2_X1 + PLACED ( 27460 27200 ) N ; + - _326_ OAI21_X1 + PLACED ( 26164 29346 ) N ; + - _327_ INV_X1 + PLACED ( 13390 30395 ) N ; + - _328_ INV_X32 + PLACED ( 31906 49291 ) N ; + - _329_ NOR3_X2 + PLACED ( 34577 31904 ) N ; + - _330_ AOI21_X4 + PLACED ( 35262 28197 ) N ; + - _331_ OAI221_X4 + PLACED ( 24976 29946 ) N ; + - _332_ OAI211_X1 + PLACED ( 19010 36268 ) N ; + - _333_ AND2_X1 + PLACED ( 11494 37216 ) N ; + - _334_ INV_X1 + PLACED ( 13866 37315 ) N ; + - _335_ NAND2_X1 + PLACED ( 23962 48847 ) N ; + - _336_ NAND2_X1 + PLACED ( 27095 46732 ) N ; + - _337_ NAND2_X1 + PLACED ( 23600 46194 ) N ; + - _338_ INV_X1 + PLACED ( 21910 47307 ) N ; + - _339_ NAND3_X1 + PLACED ( 19018 45211 ) N ; + - _340_ NAND2_X1 + PLACED ( 16653 45148 ) N ; + - _341_ NAND2_X1 + PLACED ( 18016 44666 ) N ; + - _342_ INV_X1 + PLACED ( 19449 13069 ) N ; + - _343_ OAI211_X1 + PLACED ( 18555 13907 ) N ; + - _344_ NAND2_X1 + PLACED ( 19015 14809 ) N ; + - _345_ AOI211_X1 + PLACED ( 19963 22635 ) N ; + - _346_ NAND2_X1 + PLACED ( 24978 20289 ) N ; + - _347_ NAND2_X1 + PLACED ( 17754 22132 ) N ; + - _348_ OAI21_X1 + PLACED ( 22833 22915 ) N ; + - _349_ OR2_X1 + PLACED ( 22282 36180 ) N ; + - _350_ AOI21_X1 + PLACED ( 18498 37753 ) N ; + - _351_ AND4_X1 + PLACED ( 16246 36245 ) N ; + - _352_ AOI22_X1 + PLACED ( 16197 36373 ) N ; + - _353_ OR2_X1 + PLACED ( 17506 34073 ) N ; + - _355_ INV_X2 + PLACED ( 43076 14264 ) N ; + - _357_ AND3_X1 + PLACED ( 19169 38314 ) N ; + - _358_ OAI211_X4 + PLACED ( 23481 36826 ) N ; + - _359_ OAI21_X1 + PLACED ( 17285 37787 ) N ; + - _360_ OAI21_X1 + PLACED ( 23038 36574 ) N ; + - _361_ NAND3_X4 + PLACED ( 24208 37946 ) N ; + - _362_ NOR2_X1 + PLACED ( 42357 44856 ) N ; + - _363_ INV_X1 + PLACED ( 42590 44278 ) N ; + - _364_ NOR2_X4 + PLACED ( 40914 45034 ) N ; + - _365_ AOI221_X4 + PLACED ( 9975 39660 ) N ; + - _366_ AND2_X4 + PLACED ( 41492 45351 ) N ; + - _368_ OAI21_X1 + PLACED ( 15638 35314 ) N ; + - _370_ AOI22_X1 + PLACED ( 11516 36469 ) N ; + - _371_ NOR2_X2 + PLACED ( 19561 30630 ) N ; + - _372_ NAND3_X1 + PLACED ( 19523 37771 ) N ; + - _373_ OR2_X1 + PLACED ( 19187 42570 ) N ; + - _374_ AOI22_X1 + PLACED ( 19169 45084 ) N ; + - _375_ NAND2_X1 + PLACED ( 18755 44155 ) N ; + - _376_ XOR2_X1 + PLACED ( 6998 45512 ) N ; + - _377_ XNOR2_X1 + PLACED ( 8244 44628 ) N ; + - _378_ INV_X1 + PLACED ( 46231 52439 ) N ; + - _380_ NOR2_X1 + PLACED ( 13800 47201 ) N ; + - _381_ NAND2_X1 + PLACED ( 11804 45619 ) N ; + - _382_ AOI221_X4 + PLACED ( 10369 45509 ) N ; + - _383_ AOI21_X1 + PLACED ( 12496 47046 ) N ; + - _384_ INV_X1 + PLACED ( 24002 44282 ) N ; + - _385_ INV_X1 + PLACED ( 23816 41639 ) N ; + - _386_ OAI211_X1 + PLACED ( 24071 45169 ) N ; + - _387_ INV_X1 + PLACED ( 25053 47015 ) N ; + - _388_ AND4_X1 + PLACED ( 24154 46955 ) N ; + - _389_ AOI22_X1 + PLACED ( 23970 47082 ) N ; + - _390_ NOR2_X1 + PLACED ( 25384 47260 ) N ; + - _391_ NOR2_X1 + PLACED ( 22024 53276 ) N ; + - _392_ NAND2_X1 + PLACED ( 23378 52183 ) N ; + - _393_ AOI221_X4 + PLACED ( 15912 53000 ) N ; + - _394_ AOI21_X1 + PLACED ( 21389 53709 ) N ; + - _395_ OAI21_X1 + PLACED ( 24735 44914 ) N ; + - _396_ XOR2_X1 + PLACED ( 27661 53960 ) N ; + - _397_ XNOR2_X1 + PLACED ( 27176 53393 ) N ; + - _398_ NOR2_X1 + PLACED ( 28900 53535 ) N ; + - _399_ AOI221_X1 + PLACED ( 26678 54388 ) N ; + - _401_ OR3_X1 + PLACED ( 27811 46037 ) N ; + - _402_ AOI21_X1 + PLACED ( 28162 54260 ) N ; + - _403_ INV_X1 + PLACED ( 19529 24669 ) N ; + - _404_ OAI211_X1 + PLACED ( 18759 28874 ) N ; + - _405_ AOI21_X1 + PLACED ( 18719 21418 ) N ; + - _406_ AOI21_X1 + PLACED ( 17567 21079 ) N ; + - _407_ AND2_X1 + PLACED ( 18245 20407 ) N ; + - _408_ XNOR2_X1 + PLACED ( 23256 16232 ) N ; + - _409_ XNOR2_X1 + PLACED ( 18344 16621 ) N ; + - _410_ NOR2_X1 + PLACED ( 25321 16502 ) N ; + - _411_ AOI221_X1 + PLACED ( 16306 16656 ) N ; + - _412_ OR3_X1 + PLACED ( 25968 17574 ) N ; + - _413_ AOI21_X1 + PLACED ( 24008 16486 ) N ; + - _414_ OAI21_X1 + PLACED ( 19552 29441 ) N ; + - _415_ AND2_X1 + PLACED ( 19525 22527 ) N ; + - _416_ AND4_X1 + PLACED ( 19784 24679 ) N ; + - _417_ AOI22_X1 + PLACED ( 19727 24763 ) N ; + - _418_ OR2_X1 + PLACED ( 22316 23406 ) N ; + - _419_ NOR2_X1 + PLACED ( 13654 21530 ) N ; + - _420_ AOI221_X4 + PLACED ( 10418 21481 ) N ; + - _421_ OAI21_X1 + PLACED ( 20639 23290 ) N ; + - _422_ AOI21_X1 + PLACED ( 12865 21837 ) N ; + - _423_ AOI21_X1 + PLACED ( 18424 10960 ) N ; + - _424_ NOR2_X1 + PLACED ( 17666 11215 ) N ; + - _425_ NOR2_X1 + PLACED ( 19104 9779 ) N ; + - _426_ XNOR2_X1 + PLACED ( 22370 10865 ) N ; + - _427_ XNOR2_X1 + PLACED ( 22832 11337 ) N ; + - _428_ NOR2_X1 + PLACED ( 30333 13807 ) N ; + - _429_ AOI221_X2 + PLACED ( 31305 13922 ) N ; + - _430_ OR3_X1 + PLACED ( 27190 14885 ) N ; + - _431_ AOI21_X1 + PLACED ( 29548 13636 ) N ; + - _432_ XNOR2_X1 + PLACED ( 18042 7344 ) N ; + - _433_ XNOR2_X1 + PLACED ( 19111 8131 ) N ; + - _434_ AOI221_X2 + PLACED ( 10417 14409 ) N ; + - _435_ OR3_X1 + PLACED ( 25447 14918 ) N ; + - _436_ AOI22_X1 + PLACED ( 12100 13806 ) N ; + - _437_ NAND2_X1 + PLACED ( 38204 32134 ) N ; + - _438_ OAI221_X1 + PLACED ( 39952 28633 ) N ; + - _439_ NAND2_X1 + PLACED ( 39460 27394 ) N ; + - _440_ XOR2_X1 + PLACED ( 34935 25104 ) N ; + - _441_ XNOR2_X1 + PLACED ( 40464 26296 ) N ; + - _442_ AOI221_X2 + PLACED ( 42407 24537 ) N ; + - _443_ NAND2_X1 + PLACED ( 31514 23607 ) N ; + - _444_ AOI22_X1 + PLACED ( 30478 23916 ) N ; + - _445_ OAI21_X1 + PLACED ( 38315 32405 ) N ; + - _446_ NAND2_X1 + PLACED ( 38422 30943 ) N ; + - _447_ XNOR2_X1 + PLACED ( 36733 19227 ) N ; + - _448_ XNOR2_X1 + PLACED ( 36702 19274 ) N ; + - _449_ NOR2_X1 + PLACED ( 35996 15865 ) N ; + - _450_ AOI221_X1 + PLACED ( 31363 18164 ) N ; + - _451_ OR3_X1 + PLACED ( 34551 16286 ) N ; + - _452_ AOI21_X1 + PLACED ( 34631 16180 ) N ; + - _453_ XNOR2_X1 + PLACED ( 36897 36951 ) N ; + - _454_ XNOR2_X1 + PLACED ( 37862 35466 ) N ; + - _455_ AOI221_X2 + PLACED ( 33422 53624 ) N ; + - _456_ OR3_X1 + PLACED ( 32879 43532 ) N ; + - _457_ AOI22_X1 + PLACED ( 33722 46861 ) N ; + - _458_ AOI22_X1 + PLACED ( 56987 30783 ) N ; + - _459_ NOR2_X1 + PLACED ( 57196 27937 ) N ; + - _460_ XOR2_X1 + PLACED ( 56759 18621 ) N ; + - _461_ XNOR2_X1 + PLACED ( 57913 19685 ) N ; + - _462_ NOR2_X1 + PLACED ( 48308 14036 ) N ; + - _463_ AOI221_X1 + PLACED ( 46129 14507 ) N ; + - _464_ OR3_X1 + PLACED ( 47647 15450 ) N ; + - _465_ AOI21_X1 + PLACED ( 47927 13982 ) N ; + - _466_ XNOR2_X1 + PLACED ( 55878 24503 ) N ; + - _467_ XNOR2_X1 + PLACED ( 56289 28825 ) N ; + - _468_ AOI221_X4 + PLACED ( 47136 29170 ) N ; + - _469_ OR3_X1 + PLACED ( 48547 24656 ) N ; + - _470_ AOI22_X1 + PLACED ( 49274 24818 ) N ; + - _471_ XNOR2_X1 + PLACED ( 46820 36495 ) N ; + - _472_ INV_X1 + PLACED ( 52747 37411 ) N ; + - _473_ NOR2_X1 + PLACED ( 52053 37323 ) N ; + - _474_ XNOR2_X1 + PLACED ( 48293 36144 ) N ; + - _475_ AOI221_X4 + PLACED ( 45644 31728 ) N ; + - _476_ NAND3_X1 + PLACED ( 47074 33266 ) N ; + - _477_ AOI22_X1 + PLACED ( 47249 34105 ) N ; + - _478_ XOR2_X1 + PLACED ( 52625 46713 ) N ; + - _479_ AOI221_X4 + PLACED ( 46352 45557 ) N ; + - _480_ NAND3_X1 + PLACED ( 48091 46141 ) N ; + - _481_ AOI22_X1 + PLACED ( 48569 47327 ) N ; + - _482_ NOR2_X1 + PLACED ( 42083 14398 ) N ; + - _483_ NOR2_X1 + PLACED ( 54031 33214 ) N ; + - _484_ AND3_X1 + PLACED ( 52393 34799 ) N ; + - _485_ NAND3_X1 + PLACED ( 30446 37133 ) N ; + - _486_ NOR3_X1 + PLACED ( 23264 15879 ) N ; + - _487_ NAND2_X1 + PLACED ( 25011 16079 ) N ; + - _488_ NOR4_X1 + PLACED ( 27234 39912 ) N ; + - _489_ NAND3_X1 + PLACED ( 26445 42896 ) N ; + - _490_ NOR3_X1 + PLACED ( 36307 22608 ) N ; + - _491_ NAND3_X1 + PLACED ( 39697 21752 ) N ; + - _492_ AOI221_X4 + PLACED ( 40138 20264 ) N ; + - _493_ NAND3_X1 + PLACED ( 34796 53046 ) N ; + - _494_ AOI221_X1 + PLACED ( 36841 20660 ) N ; + - _495_ MUX2_X1 + PLACED ( 13059 57478 ) N ; + - _496_ NOR2_X4 + PLACED ( 42040 52366 ) N ; + - _498_ MUX2_X1 + PLACED ( 14886 56299 ) N ; + - _499_ MUX2_X1 + PLACED ( 1407 34980 ) N ; + - _500_ MUX2_X1 + PLACED ( 3641 37590 ) N ; + - _501_ MUX2_X1 + PLACED ( 1407 49915 ) N ; + - _502_ MUX2_X1 + PLACED ( 3579 49066 ) N ; + - _503_ MUX2_X1 + PLACED ( 33225 57478 ) N ; + - _504_ MUX2_X1 + PLACED ( 34928 56539 ) N ; + - _505_ MUX2_X1 + PLACED ( 26631 4666 ) N ; + - _506_ MUX2_X1 + PLACED ( 27925 5641 ) N ; + - _507_ MUX2_X1 + PLACED ( 1407 21368 ) N ; + - _508_ MUX2_X1 + PLACED ( 3043 19791 ) N ; + - _509_ MUX2_X1 + PLACED ( 1407 10807 ) N ; + - _510_ MUX2_X1 + PLACED ( 3850 11248 ) N ; + - _511_ MUX2_X1 + PLACED ( 12159 5707 ) N ; + - _512_ MUX2_X1 + PLACED ( 13252 5999 ) N ; + - _513_ MUX2_X1 + PLACED ( 7689 27423 ) N ; + - _514_ MUX2_X1 + PLACED ( 9766 28091 ) N ; + - _515_ MUX2_X1 + PLACED ( 1407 25781 ) N ; + - _516_ MUX2_X1 + PLACED ( 2614 25940 ) N ; + - _517_ MUX2_X1 + PLACED ( 40270 10843 ) N ; + - _518_ MUX2_X1 + PLACED ( 41548 8019 ) N ; + - _519_ MUX2_X1 + PLACED ( 34986 39229 ) N ; + - _520_ MUX2_X1 + PLACED ( 34254 40280 ) N ; + - _521_ MUX2_X1 + PLACED ( 54862 9985 ) N ; + - _522_ MUX2_X1 + PLACED ( 55201 10332 ) N ; + - _523_ MUX2_X1 + PLACED ( 49497 6024 ) N ; + - _524_ MUX2_X1 + PLACED ( 51638 6411 ) N ; + - _525_ MUX2_X1 + PLACED ( 47264 39245 ) N ; + - _526_ MUX2_X1 + PLACED ( 54117 40432 ) N ; + - _527_ MUX2_X1 + PLACED ( 54419 46230 ) N ; + - _528_ MUX2_X1 + PLACED ( 55151 46345 ) N ; + - _529_ AOI22_X1 + PLACED ( 29518 27799 ) N ; + - _530_ NOR2_X1 + PLACED ( 27799 28740 ) N ; + - _531_ XNOR2_X1 + PLACED ( 11368 30195 ) N ; + - _532_ XNOR2_X1 + PLACED ( 11875 30784 ) N ; + - _533_ AOI221_X2 + PLACED ( 9855 53473 ) N ; + - _534_ OR3_X1 + PLACED ( 26222 32170 ) N ; + - _535_ AOI22_X1 + PLACED ( 11611 32066 ) N ; + - _536_ DFF_X1 + PLACED ( 1103 34969 ) N ; + - _537_ DFF_X1 + PLACED ( 10348 49903 ) N ; + - _538_ DFF_X1 + PLACED ( 20043 57478 ) N ; + - _539_ DFF_X1 + PLACED ( 26701 57478 ) N ; + - _540_ DFF_X1 + PLACED ( 21186 5251 ) N ; + - _541_ DFF_X1 + PLACED ( 6857 20722 ) N ; + - _542_ DFF_X1 + PLACED ( 26888 10828 ) N ; + - _543_ DFF_X1 + PLACED ( 8509 12469 ) N ; + - _544_ DFF_X1 + PLACED ( 29085 22782 ) N ; + - _545_ DFF_X1 + PLACED ( 33537 10449 ) N ; + - _546_ DFF_X1 + PLACED ( 31613 46808 ) N ; + - _547_ DFF_X1 + PLACED ( 47061 11290 ) N ; + - _548_ DFF_X1 + PLACED ( 47881 24547 ) N ; + - _549_ DFF_X1 + PLACED ( 41126 35631 ) N ; + - _550_ DFF_X1 + PLACED ( 47300 50655 ) N ; + - _551_ DFF_X1 + PLACED ( 42562 19784 ) N ; + - _552_ DFF_X1 + PLACED ( 37220 13836 ) N ; + - _553_ DFF_X1 + PLACED ( 15204 56722 ) N ; + - _554_ DFF_X1 + PLACED ( 3683 38519 ) N ; + - _555_ DFF_X1 + PLACED ( 3432 49074 ) N ; + - _556_ DFF_X1 + PLACED ( 35321 57002 ) N ; + - _557_ DFF_X1 + PLACED ( 28255 5406 ) N ; + - _558_ DFF_X1 + PLACED ( 2544 19333 ) N ; + - _559_ DFF_X1 + PLACED ( 3976 11342 ) N ; + - _560_ DFF_X1 + PLACED ( 13006 5658 ) N ; + - _561_ DFF_X1 + PLACED ( 10276 28282 ) N ; + - _562_ DFF_X1 + PLACED ( 1890 26091 ) N ; + - _563_ DFF_X1 + PLACED ( 41961 7531 ) N ; + - _564_ DFF_X1 + PLACED ( 34091 40797 ) N ; + - _565_ DFF_X1 + PLACED ( 55480 10303 ) N ; + - _566_ DFF_X1 + PLACED ( 52412 6245 ) N ; + - _567_ DFF_X1 + PLACED ( 55418 40935 ) N ; + - _568_ DFF_X1 + PLACED ( 55480 46552 ) N ; + - _569_ DFF_X1 + PLACED ( 1855 30993 ) N ; END COMPONENTS PINS 54 ; - clk + NET clk + DIRECTION INPUT + USE SIGNAL diff --git a/src/gpl/test/simple01-td-tune.ok b/src/gpl/test/simple01-td-tune.ok index 0db393d797e..f9f11650abd 100644 --- a/src/gpl/test/simple01-td-tune.ok +++ b/src/gpl/test/simple01-td-tune.ok @@ -38,61 +38,61 @@ [INFO GPL-0030] NumBins: 256 [NesterovSolve] Iter: 1 overflow: 0.832 HPWL: 3651238 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 +[INFO GPL-0101] Timing-driven: worst slack 1.42e-09 [INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 10 overflow: 0.727 HPWL: 4009562 -[NesterovSolve] Iter: 20 overflow: 0.731 HPWL: 3997062 -[NesterovSolve] Iter: 30 overflow: 0.732 HPWL: 3995030 -[NesterovSolve] Iter: 40 overflow: 0.732 HPWL: 3995509 -[NesterovSolve] Iter: 50 overflow: 0.732 HPWL: 3995892 -[NesterovSolve] Iter: 60 overflow: 0.732 HPWL: 3995872 -[NesterovSolve] Iter: 70 overflow: 0.732 HPWL: 3996181 -[NesterovSolve] Iter: 80 overflow: 0.732 HPWL: 3996488 -[NesterovSolve] Iter: 90 overflow: 0.731 HPWL: 3997248 -[NesterovSolve] Iter: 100 overflow: 0.731 HPWL: 3998505 -[NesterovSolve] Iter: 110 overflow: 0.731 HPWL: 4000492 -[NesterovSolve] Iter: 120 overflow: 0.730 HPWL: 4003750 -[NesterovSolve] Iter: 130 overflow: 0.728 HPWL: 4008578 -[NesterovSolve] Iter: 140 overflow: 0.726 HPWL: 4015524 -[NesterovSolve] Iter: 150 overflow: 0.722 HPWL: 4025227 -[NesterovSolve] Iter: 160 overflow: 0.714 HPWL: 4039990 -[NesterovSolve] Iter: 170 overflow: 0.703 HPWL: 4061044 +[NesterovSolve] Iter: 10 overflow: 0.730 HPWL: 4005677 +[NesterovSolve] Iter: 20 overflow: 0.733 HPWL: 3997290 +[NesterovSolve] Iter: 30 overflow: 0.733 HPWL: 3993695 +[NesterovSolve] Iter: 40 overflow: 0.733 HPWL: 3993836 +[NesterovSolve] Iter: 50 overflow: 0.733 HPWL: 3994417 +[NesterovSolve] Iter: 60 overflow: 0.733 HPWL: 3994620 +[NesterovSolve] Iter: 70 overflow: 0.733 HPWL: 3994826 +[NesterovSolve] Iter: 80 overflow: 0.733 HPWL: 3995249 +[NesterovSolve] Iter: 90 overflow: 0.733 HPWL: 3995756 +[NesterovSolve] Iter: 100 overflow: 0.732 HPWL: 3996951 +[NesterovSolve] Iter: 110 overflow: 0.732 HPWL: 3998841 +[NesterovSolve] Iter: 120 overflow: 0.731 HPWL: 4001676 +[NesterovSolve] Iter: 130 overflow: 0.730 HPWL: 4006153 +[NesterovSolve] Iter: 140 overflow: 0.727 HPWL: 4013202 +[NesterovSolve] Iter: 150 overflow: 0.723 HPWL: 4022941 +[NesterovSolve] Iter: 160 overflow: 0.715 HPWL: 4037658 +[NesterovSolve] Iter: 170 overflow: 0.704 HPWL: 4057804 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 +[INFO GPL-0101] Timing-driven: worst slack 1.42e-09 [INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 180 overflow: 0.676 HPWL: 4127122 -[NesterovSolve] Iter: 190 overflow: 0.664 HPWL: 4152168 -[NesterovSolve] Iter: 200 overflow: 0.640 HPWL: 4202374 -[NesterovSolve] Iter: 210 overflow: 0.610 HPWL: 4259798 +[NesterovSolve] Iter: 180 overflow: 0.686 HPWL: 4116142 +[NesterovSolve] Iter: 190 overflow: 0.671 HPWL: 4152992 +[NesterovSolve] Iter: 200 overflow: 0.649 HPWL: 4204028 +[NesterovSolve] Iter: 210 overflow: 0.618 HPWL: 4266347 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 [INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 220 overflow: 0.574 HPWL: 4317137 -[NesterovSolve] Iter: 230 overflow: 0.535 HPWL: 4384909 +[NesterovSolve] Iter: 220 overflow: 0.584 HPWL: 4328332 +[NesterovSolve] Iter: 230 overflow: 0.542 HPWL: 4396799 +[NesterovSolve] Iter: 240 overflow: 0.497 HPWL: 4448421 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 240 overflow: 0.485 HPWL: 4422542 -[NesterovSolve] Iter: 250 overflow: 0.433 HPWL: 4433114 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 +[INFO GPL-0103] Timing-driven: weighted 32 nets. +[NesterovSolve] Iter: 250 overflow: 0.437 HPWL: 4448351 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 260 overflow: 0.377 HPWL: 4431530 -[NesterovSolve] Iter: 270 overflow: 0.325 HPWL: 4435491 -[NesterovSolve] Iter: 280 overflow: 0.294 HPWL: 4464120 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 +[INFO GPL-0103] Timing-driven: weighted 32 nets. +[NesterovSolve] Iter: 260 overflow: 0.384 HPWL: 4438843 +[NesterovSolve] Iter: 270 overflow: 0.334 HPWL: 4468463 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 290 overflow: 0.269 HPWL: 4501197 -[NesterovSolve] Iter: 300 overflow: 0.235 HPWL: 4537610 -[NesterovSolve] Iter: 310 overflow: 0.201 HPWL: 4566148 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 +[INFO GPL-0103] Timing-driven: weighted 34 nets. +[NesterovSolve] Iter: 280 overflow: 0.295 HPWL: 4473639 +[NesterovSolve] Iter: 290 overflow: 0.273 HPWL: 4527743 +[NesterovSolve] Iter: 300 overflow: 0.248 HPWL: 4545364 +[NesterovSolve] Iter: 310 overflow: 0.216 HPWL: 4582655 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 [INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 320 overflow: 0.176 HPWL: 4597391 -[NesterovSolve] Iter: 330 overflow: 0.146 HPWL: 4619555 -[NesterovSolve] Iter: 340 overflow: 0.120 HPWL: 4633301 -[NesterovSolve] Iter: 350 overflow: 0.099 HPWL: 4657122 -[NesterovSolve] Finished with Overflow: 0.099412 -worst slack 1.37 +[NesterovSolve] Iter: 320 overflow: 0.190 HPWL: 4586173 +[NesterovSolve] Iter: 330 overflow: 0.164 HPWL: 4623569 +[NesterovSolve] Iter: 340 overflow: 0.140 HPWL: 4634976 +[NesterovSolve] Iter: 350 overflow: 0.114 HPWL: 4648027 +[NesterovSolve] Finished with Overflow: 0.098313 +worst slack 1.38 No differences found. diff --git a/src/gpl/test/simple01-td.ok b/src/gpl/test/simple01-td.ok index d7689ae4eb8..a57ef22b812 100644 --- a/src/gpl/test/simple01-td.ok +++ b/src/gpl/test/simple01-td.ok @@ -38,58 +38,60 @@ [INFO GPL-0030] NumBins: 256 [NesterovSolve] Iter: 1 overflow: 0.832 HPWL: 3651238 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 +[INFO GPL-0101] Timing-driven: worst slack 1.42e-09 [INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 10 overflow: 0.727 HPWL: 4009562 -[NesterovSolve] Iter: 20 overflow: 0.731 HPWL: 3997062 -[NesterovSolve] Iter: 30 overflow: 0.732 HPWL: 3995030 -[NesterovSolve] Iter: 40 overflow: 0.732 HPWL: 3995509 -[NesterovSolve] Iter: 50 overflow: 0.732 HPWL: 3995892 -[NesterovSolve] Iter: 60 overflow: 0.732 HPWL: 3995872 -[NesterovSolve] Iter: 70 overflow: 0.732 HPWL: 3996181 -[NesterovSolve] Iter: 80 overflow: 0.732 HPWL: 3996488 -[NesterovSolve] Iter: 90 overflow: 0.731 HPWL: 3997248 -[NesterovSolve] Iter: 100 overflow: 0.731 HPWL: 3998505 -[NesterovSolve] Iter: 110 overflow: 0.731 HPWL: 4000492 -[NesterovSolve] Iter: 120 overflow: 0.730 HPWL: 4003750 -[NesterovSolve] Iter: 130 overflow: 0.728 HPWL: 4008578 -[NesterovSolve] Iter: 140 overflow: 0.726 HPWL: 4015524 -[NesterovSolve] Iter: 150 overflow: 0.722 HPWL: 4025227 -[NesterovSolve] Iter: 160 overflow: 0.714 HPWL: 4039990 -[NesterovSolve] Iter: 170 overflow: 0.703 HPWL: 4061044 -[NesterovSolve] Iter: 180 overflow: 0.689 HPWL: 4091062 -[NesterovSolve] Iter: 190 overflow: 0.670 HPWL: 4129418 -[NesterovSolve] Iter: 200 overflow: 0.648 HPWL: 4183257 +[NesterovSolve] Iter: 10 overflow: 0.730 HPWL: 4005677 +[NesterovSolve] Iter: 20 overflow: 0.733 HPWL: 3997290 +[NesterovSolve] Iter: 30 overflow: 0.733 HPWL: 3993695 +[NesterovSolve] Iter: 40 overflow: 0.733 HPWL: 3993836 +[NesterovSolve] Iter: 50 overflow: 0.733 HPWL: 3994417 +[NesterovSolve] Iter: 60 overflow: 0.733 HPWL: 3994620 +[NesterovSolve] Iter: 70 overflow: 0.733 HPWL: 3994826 +[NesterovSolve] Iter: 80 overflow: 0.733 HPWL: 3995249 +[NesterovSolve] Iter: 90 overflow: 0.733 HPWL: 3995756 +[NesterovSolve] Iter: 100 overflow: 0.732 HPWL: 3996951 +[NesterovSolve] Iter: 110 overflow: 0.732 HPWL: 3998841 +[NesterovSolve] Iter: 120 overflow: 0.731 HPWL: 4001676 +[NesterovSolve] Iter: 130 overflow: 0.730 HPWL: 4006153 +[NesterovSolve] Iter: 140 overflow: 0.727 HPWL: 4013202 +[NesterovSolve] Iter: 150 overflow: 0.723 HPWL: 4022941 +[NesterovSolve] Iter: 160 overflow: 0.715 HPWL: 4037658 +[NesterovSolve] Iter: 170 overflow: 0.704 HPWL: 4057804 +[NesterovSolve] Iter: 180 overflow: 0.691 HPWL: 4088093 +[NesterovSolve] Iter: 190 overflow: 0.674 HPWL: 4128327 +[NesterovSolve] Iter: 200 overflow: 0.652 HPWL: 4181482 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 210 overflow: 0.604 HPWL: 4268793 -[NesterovSolve] Iter: 220 overflow: 0.575 HPWL: 4319755 -[NesterovSolve] Iter: 230 overflow: 0.535 HPWL: 4382648 -[NesterovSolve] Iter: 240 overflow: 0.486 HPWL: 4420453 +[INFO GPL-0101] Timing-driven: worst slack 1.42e-09 +[INFO GPL-0103] Timing-driven: weighted 31 nets. +[NesterovSolve] Iter: 210 overflow: 0.616 HPWL: 4268407 +[NesterovSolve] Iter: 220 overflow: 0.581 HPWL: 4334998 +[NesterovSolve] Iter: 230 overflow: 0.541 HPWL: 4395113 +[NesterovSolve] Iter: 240 overflow: 0.497 HPWL: 4450593 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 250 overflow: 0.431 HPWL: 4430170 -[NesterovSolve] Iter: 260 overflow: 0.381 HPWL: 4441333 -[NesterovSolve] Iter: 270 overflow: 0.326 HPWL: 4458862 -[NesterovSolve] Iter: 280 overflow: 0.290 HPWL: 4480268 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 +[INFO GPL-0103] Timing-driven: weighted 33 nets. +[NesterovSolve] Iter: 250 overflow: 0.439 HPWL: 4450155 +[NesterovSolve] Iter: 260 overflow: 0.384 HPWL: 4445562 +[NesterovSolve] Iter: 270 overflow: 0.331 HPWL: 4451501 +[NesterovSolve] Iter: 280 overflow: 0.303 HPWL: 4479178 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 290 overflow: 0.270 HPWL: 4517654 -[NesterovSolve] Iter: 300 overflow: 0.235 HPWL: 4553354 -[NesterovSolve] Iter: 310 overflow: 0.204 HPWL: 4579957 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 +[INFO GPL-0103] Timing-driven: weighted 29 nets. +[NesterovSolve] Iter: 290 overflow: 0.281 HPWL: 4494535 +[NesterovSolve] Iter: 300 overflow: 0.241 HPWL: 4523644 +[NesterovSolve] Iter: 310 overflow: 0.213 HPWL: 4546533 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 320 overflow: 0.176 HPWL: 4601768 -[NesterovSolve] Iter: 330 overflow: 0.150 HPWL: 4633587 +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 +[INFO GPL-0103] Timing-driven: weighted 34 nets. +[NesterovSolve] Iter: 320 overflow: 0.190 HPWL: 4581565 +[NesterovSolve] Iter: 330 overflow: 0.162 HPWL: 4603328 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. -[INFO GPL-0101] Timing-driven: worst slack 1.39e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 340 overflow: 0.122 HPWL: 4652410 -[NesterovSolve] Iter: 350 overflow: 0.101 HPWL: 4673183 -[NesterovSolve] Finished with Overflow: 0.098980 -worst slack 1.37 -No differences found. +[INFO GPL-0101] Timing-driven: worst slack 1.41e-09 +[INFO GPL-0103] Timing-driven: weighted 29 nets. +[NesterovSolve] Iter: 340 overflow: 0.141 HPWL: 4631258 +[NesterovSolve] Iter: 350 overflow: 0.116 HPWL: 4646352 +[NesterovSolve] Finished with Overflow: 0.098303 +worst slack 1.38 +Differences found at line 63. + - _276_ NOR2_X2 + PLACED ( 39960 53967 ) N ; + - _276_ NOR2_X2 + PLACED ( 42138 10000 ) N ; diff --git a/test/aes_sky130hd.metrics b/test/aes_sky130hd.metrics index e2cb4ea8e1d..4b69c815bd3 100644 --- a/test/aes_sky130hd.metrics +++ b/test/aes_sky130hd.metrics @@ -3,105 +3,87 @@ "IFP::instance_count": "17210", "floorplan__design__io": 388, "design__io__hpwl": 251942497, - "design__instance__displacement__total": 31886.5, - "design__instance__displacement__mean": 0.576, - "design__instance__displacement__max": 13.233, - "route__wirelength__estimated": 1.17088e+06, - "RSZ::repair_design_buffer_count": "281", - "RSZ::max_slew_slack": "20.003910859425865", + "design__instance__displacement__total": 31277, + "design__instance__displacement__mean": 0.565, + "design__instance__displacement__max": 13.012, + "route__wirelength__estimated": 1.16833e+06, + "RSZ::repair_design_buffer_count": "266", + "RSZ::max_slew_slack": "20.12071212132772", "RSZ::max_fanout_slack": "100.0", - "RSZ::max_capacitance_slack": "81.39344276789393", - "design__instance__displacement__total": 659.323, + "RSZ::max_capacitance_slack": "80.32046124492275", + "design__instance__displacement__total": 635.167, "design__instance__displacement__mean": 0.011, "design__instance__displacement__max": 9.306, - "route__wirelength__estimated": 1.18589e+06, - "design__instance__count__setup_buffer": 2587, - "design__instance__count__hold_buffer": 367, - "RSZ::worst_slack_min": "9.670042817972602e-5", - "RSZ::worst_slack_max": "-0.5546754323957981", - "RSZ::tns_max": "-24.738370274710263", - "RSZ::hold_buffer_count": "367", - "design__instance__displacement__total": 18541.3, - "design__instance__displacement__mean": 0.317, - "design__instance__displacement__max": 25.64, - "route__wirelength__estimated": 1.43389e+06, - "DPL::utilization": "8.1", - "DPL::design_area": "245599", - "route__net": 18331, + "route__wirelength__estimated": 1.18335e+06, + "design__instance__count__setup_buffer": 2507, + "design__instance__count__hold_buffer": 366, + "RSZ::worst_slack_min": "0.001450173355779083", + "RSZ::worst_slack_max": "-0.5947980054620754", + "RSZ::tns_max": "-22.046461280582342", + "RSZ::hold_buffer_count": "366", + "design__instance__displacement__total": 17495.5, + "design__instance__displacement__mean": 0.299, + "design__instance__displacement__max": 21.965, + "route__wirelength__estimated": 1.41928e+06, + "DPL::utilization": "7.9", + "DPL::design_area": "238858", + "route__net": 18235, "route__net__special": 2, - "grt__antenna_diodes_count": 4089, - "grt__antenna__violating__nets": 0, - "grt__antenna__violating__pins": 0, - "GRT::ANT::errors": "0", - "route__net": 18331, + "grt__antenna_diodes_count": 2980, + "grt__antenna__violating__nets": 1, + "grt__antenna__violating__pins": 1, + "GRT::ANT::errors": "1", + "route__net": 18235, "route__net__special": 2, - "route__drc_errors__iter:1": 7799, - "route__wirelength__iter:1": 1764253, - "route__drc_errors__iter:2": 2780, - "route__wirelength__iter:2": 1759628, - "route__drc_errors__iter:3": 2123, - "route__wirelength__iter:3": 1758315, - "route__drc_errors__iter:4": 122, - "route__wirelength__iter:4": 1758527, - "route__drc_errors__iter:5": 12, - "route__wirelength__iter:5": 1758473, - "route__drc_errors__iter:6": 3, - "route__wirelength__iter:6": 1758485, - "route__drc_errors__iter:7": 0, - "route__wirelength__iter:7": 1758485, + "route__drc_errors__iter:1": 7552, + "route__wirelength__iter:1": 1748040, + "route__drc_errors__iter:2": 2743, + "route__wirelength__iter:2": 1742962, + "route__drc_errors__iter:3": 2147, + "route__wirelength__iter:3": 1741356, + "route__drc_errors__iter:4": 124, + "route__wirelength__iter:4": 1741823, + "route__drc_errors__iter:5": 18, + "route__wirelength__iter:5": 1741837, + "route__drc_errors__iter:6": 0, + "route__wirelength__iter:6": 1741835, "route__drc_errors": 0, - "route__wirelength": 1758485, - "route__vias": 172005, - "route__vias__singlecut": 172005, + "route__wirelength": 1741835, + "route__vias": 169036, + "route__vias__singlecut": 169036, "route__vias__multicut": 0, "DRT::drv": "0", - "drt__repair_antennas__pre_repair__antenna__violating__nets": 36, - "drt__repair_antennas__pre_repair__antenna__violating__pins": 36, - "drt__repair_antennas__iter_0__antenna_diodes_count": 4143, - "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 319, - "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1758379, - "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 56, - "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1758351, - "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 32, - "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1758362, + "drt__repair_antennas__pre_repair__antenna__violating__nets": 40, + "drt__repair_antennas__pre_repair__antenna__violating__pins": 42, + "drt__repair_antennas__iter_0__antenna_diodes_count": 3042, + "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 417, + "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1741824, + "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 90, + "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1741777, + "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 61, + "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1741775, "drt__repair_antennas__iter_0__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1758340, + "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1741751, "drt__repair_antennas__iter_0__route__drc_errors": 0, - "drt__repair_antennas__iter_0__route__wirelength": 1758340, - "drt__repair_antennas__iter_0__route__vias": 172170, - "drt__repair_antennas__iter_0__route__vias__singlecut": 172170, + "drt__repair_antennas__iter_0__route__wirelength": 1741751, + "drt__repair_antennas__iter_0__route__vias": 169273, + "drt__repair_antennas__iter_0__route__vias__singlecut": 169273, "drt__repair_antennas__iter_0__route__vias__multicut": 0, - "drt__repair_antennas__iter_0__antenna__violating__nets": 1, - "drt__repair_antennas__iter_0__antenna__violating__pins": 1, - "drt__repair_antennas__iter_1__antenna_diodes_count": 4144, - "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 10, - "drt__repair_antennas__iter_1__route__wirelength__iter:1": 1758348, - "drt__repair_antennas__iter_1__route__drc_errors__iter:2": 1, - "drt__repair_antennas__iter_1__route__wirelength__iter:2": 1758347, - "drt__repair_antennas__iter_1__route__drc_errors__iter:3": 1, - "drt__repair_antennas__iter_1__route__wirelength__iter:3": 1758347, - "drt__repair_antennas__iter_1__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_1__route__wirelength__iter:4": 1758347, - "drt__repair_antennas__iter_1__route__drc_errors": 0, - "drt__repair_antennas__iter_1__route__wirelength": 1758347, - "drt__repair_antennas__iter_1__route__vias": 172176, - "drt__repair_antennas__iter_1__route__vias__singlecut": 172176, - "drt__repair_antennas__iter_1__route__vias__multicut": 0, - "drt__repair_antennas__iter_1__antenna__violating__nets": 0, - "drt__repair_antennas__iter_1__antenna__violating__pins": 0, + "drt__repair_antennas__iter_0__antenna__violating__nets": 0, + "drt__repair_antennas__iter_0__antenna__violating__pins": 0, "drt__antenna__violating__nets": 0, "drt__antenna__violating__pins": 0, "DRT::ANT::errors": "0", "design__violations": 0, "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.23077018726909443", - "DRT::worst_slack_max": "-1.0824150770955543", - "DRT::tns_max": "-93.10104595224331", - "DRT::clock_skew": "0.7292674448516125", - "DRT::max_slew_slack": "-9.561951955159504", + "DRT::worst_slack_min": "-0.26408842526960935", + "DRT::worst_slack_max": "-1.0221912494661214", + "DRT::tns_max": "-87.57209960610396", + "DRT::clock_skew": "0.7127054703687573", + "DRT::max_slew_slack": "6.643426915009816", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "-12.741991427941151", + "DRT::max_capacitance_slack": "6.814836480042465", "DRT::clock_period": "3.740000", "flow__warnings__count": 32, "flow__errors__count": 0 diff --git a/test/aes_sky130hd.metrics_limits b/test/aes_sky130hd.metrics_limits index c4d7f5c13d3..cb3aed98426 100644 --- a/test/aes_sky130hd.metrics_limits +++ b/test/aes_sky130hd.metrics_limits @@ -1,23 +1,23 @@ { "IFP::instance_count" : "20652.0" - ,"DPL::design_area" : "294718.8" - ,"DPL::utilization" : "9.719999999999999" - ,"RSZ::repair_design_buffer_count" : "337" + ,"DPL::design_area" : "286629.6" + ,"DPL::utilization" : "9.48" + ,"RSZ::repair_design_buffer_count" : "319" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-0.37390329957182034" - ,"RSZ::worst_slack_max" : "-0.9286754323957982" - ,"RSZ::tns_max" : "-668.3923702747104" - ,"RSZ::hold_buffer_count" : "440" - ,"GRT::ANT::errors" : "0" + ,"RSZ::worst_slack_min" : "-0.372549826644221" + ,"RSZ::worst_slack_max" : "-0.9687980054620755" + ,"RSZ::tns_max" : "-665.7004612805824" + ,"RSZ::hold_buffer_count" : "439" + ,"GRT::ANT::errors" : "1" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.6047701872690945" - ,"DRT::worst_slack_max" : "-1.4564150770955544" - ,"DRT::tns_max" : "-736.7550459522434" - ,"DRT::clock_skew" : "0.875120933821935" - ,"DRT::max_slew_slack" : "-11.474342346191404" - ,"DRT::max_capacitance_slack" : "-15.29038971352938" + ,"DRT::worst_slack_min" : "-0.6380884252696094" + ,"DRT::worst_slack_max" : "-1.3961912494661215" + ,"DRT::tns_max" : "-731.2260996061041" + ,"DRT::clock_skew" : "0.8552465644425088" + ,"DRT::max_slew_slack" : "0" + ,"DRT::max_capacitance_slack" : "0" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "3.74" ,"DRT::ANT::errors" : "0" diff --git a/test/aes_sky130hs.metrics b/test/aes_sky130hs.metrics index ab31df04455..f0bca3b9022 100644 --- a/test/aes_sky130hs.metrics +++ b/test/aes_sky130hs.metrics @@ -3,85 +3,101 @@ "IFP::instance_count": "16324", "floorplan__design__io": 388, "design__io__hpwl": 230332265, - "design__instance__displacement__total": 40109.7, - "design__instance__displacement__mean": 0.849, - "design__instance__displacement__max": 17.474, - "route__wirelength__estimated": 1.3173e+06, - "RSZ::repair_design_buffer_count": "518", - "RSZ::max_slew_slack": "19.68039721250534", + "design__instance__displacement__total": 41667.8, + "design__instance__displacement__mean": 0.881, + "design__instance__displacement__max": 15.54, + "route__wirelength__estimated": 1.32583e+06, + "RSZ::repair_design_buffer_count": "586", + "RSZ::max_slew_slack": "19.793567061424255", "RSZ::max_fanout_slack": "100.0", - "RSZ::max_capacitance_slack": "56.280056146899526", - "design__instance__displacement__total": 660.224, - "design__instance__displacement__mean": 0.013, - "design__instance__displacement__max": 11.549, - "route__wirelength__estimated": 1.33438e+06, - "design__instance__count__setup_buffer": 2776, - "design__instance__count__hold_buffer": 639, - "RSZ::worst_slack_min": "0.001537325865676999", - "RSZ::worst_slack_max": "-0.6326463976203923", - "RSZ::tns_max": "-46.67205776179698", - "RSZ::hold_buffer_count": "639", - "design__instance__displacement__total": 23081, - "design__instance__displacement__mean": 0.454, - "design__instance__displacement__max": 20.82, - "route__wirelength__estimated": 1.53239e+06, - "DPL::utilization": "11.4", - "DPL::design_area": "344145", - "route__net": 18547, + "RSZ::max_capacitance_slack": "58.36849213276933", + "design__instance__displacement__total": 671.219, + "design__instance__displacement__mean": 0.014, + "design__instance__displacement__max": 13.482, + "route__wirelength__estimated": 1.34294e+06, + "design__instance__count__setup_buffer": 2953, + "design__instance__count__hold_buffer": 635, + "RSZ::worst_slack_min": "0.0007621681279607567", + "RSZ::worst_slack_max": "-0.6438818549473593", + "RSZ::tns_max": "-48.00334488002319", + "RSZ::hold_buffer_count": "635", + "design__instance__displacement__total": 25930.8, + "design__instance__displacement__mean": 0.508, + "design__instance__displacement__max": 29.06, + "route__wirelength__estimated": 1.55196e+06, + "DPL::utilization": "12.0", + "DPL::design_area": "361737", + "route__net": 18788, "route__net__special": 2, - "grt__antenna_diodes_count": 1169, - "grt__antenna__violating__nets": 0, - "grt__antenna__violating__pins": 0, - "GRT::ANT::errors": "0", - "route__net": 18547, + "grt__antenna_diodes_count": 1310, + "grt__antenna__violating__nets": 1, + "grt__antenna__violating__pins": 1, + "GRT::ANT::errors": "1", + "route__net": 18788, "route__net__special": 2, - "route__drc_errors__iter:1": 5936, - "route__wirelength__iter:1": 1817763, - "route__drc_errors__iter:2": 1641, - "route__wirelength__iter:2": 1812536, - "route__drc_errors__iter:3": 1082, - "route__wirelength__iter:3": 1811270, - "route__drc_errors__iter:4": 5, - "route__wirelength__iter:4": 1811299, + "route__drc_errors__iter:1": 6337, + "route__wirelength__iter:1": 1831429, + "route__drc_errors__iter:2": 1421, + "route__wirelength__iter:2": 1826500, + "route__drc_errors__iter:3": 1018, + "route__wirelength__iter:3": 1824991, + "route__drc_errors__iter:4": 22, + "route__wirelength__iter:4": 1825042, "route__drc_errors__iter:5": 0, - "route__wirelength__iter:5": 1811288, + "route__wirelength__iter:5": 1825037, "route__drc_errors": 0, - "route__wirelength": 1811288, - "route__vias": 159119, - "route__vias__singlecut": 159119, + "route__wirelength": 1825037, + "route__vias": 160474, + "route__vias__singlecut": 160474, "route__vias__multicut": 0, "DRT::drv": "0", - "drt__repair_antennas__pre_repair__antenna__violating__nets": 23, - "drt__repair_antennas__pre_repair__antenna__violating__pins": 24, - "drt__repair_antennas__iter_0__antenna_diodes_count": 1193, - "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 86, - "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1811458, - "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 16, - "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1811445, - "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 5, - "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1811451, + "drt__repair_antennas__pre_repair__antenna__violating__nets": 31, + "drt__repair_antennas__pre_repair__antenna__violating__pins": 32, + "drt__repair_antennas__iter_0__antenna_diodes_count": 1342, + "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 138, + "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1825308, + "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 24, + "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1825268, + "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 17, + "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1825257, "drt__repair_antennas__iter_0__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1811452, + "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1825242, "drt__repair_antennas__iter_0__route__drc_errors": 0, - "drt__repair_antennas__iter_0__route__wirelength": 1811452, - "drt__repair_antennas__iter_0__route__vias": 159181, - "drt__repair_antennas__iter_0__route__vias__singlecut": 159181, + "drt__repair_antennas__iter_0__route__wirelength": 1825242, + "drt__repair_antennas__iter_0__route__vias": 160575, + "drt__repair_antennas__iter_0__route__vias__singlecut": 160575, "drt__repair_antennas__iter_0__route__vias__multicut": 0, - "drt__repair_antennas__iter_0__antenna__violating__nets": 0, - "drt__repair_antennas__iter_0__antenna__violating__pins": 0, + "drt__repair_antennas__iter_0__antenna__violating__nets": 1, + "drt__repair_antennas__iter_0__antenna__violating__pins": 1, + "drt__repair_antennas__iter_1__antenna_diodes_count": 1343, + "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 16, + "drt__repair_antennas__iter_1__route__wirelength__iter:1": 1825253, + "drt__repair_antennas__iter_1__route__drc_errors__iter:2": 11, + "drt__repair_antennas__iter_1__route__wirelength__iter:2": 1825243, + "drt__repair_antennas__iter_1__route__drc_errors__iter:3": 1, + "drt__repair_antennas__iter_1__route__wirelength__iter:3": 1825246, + "drt__repair_antennas__iter_1__route__drc_errors__iter:4": 0, + "drt__repair_antennas__iter_1__route__wirelength__iter:4": 1825249, + "drt__repair_antennas__iter_1__route__drc_errors": 0, + "drt__repair_antennas__iter_1__route__wirelength": 1825249, + "drt__repair_antennas__iter_1__route__vias": 160567, + "drt__repair_antennas__iter_1__route__vias__singlecut": 160567, + "drt__repair_antennas__iter_1__route__vias__multicut": 0, + "drt__repair_antennas__iter_1__antenna__violating__nets": 0, + "drt__repair_antennas__iter_1__antenna__violating__pins": 0, "drt__antenna__violating__nets": 0, "drt__antenna__violating__pins": 0, "DRT::ANT::errors": "0", "design__violations": 0, "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.2577800268429731", - "DRT::worst_slack_max": "-0.8949770067253983", - "DRT::tns_max": "-75.11843804050515", - "DRT::clock_skew": "0.46077598596411606", - "DRT::max_slew_slack": "-12.959744036197662", + "DRT::worst_slack_min": "-0.11352563654916473", + "DRT::worst_slack_max": "-0.926292402332845", + "DRT::tns_max": "-79.98534327930359", + "DRT::clock_skew": "0.5018906543532567", + "DRT::max_slew_slack": "-10.804902017116547", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "-14.604610715584986", + "DRT::max_capacitance_slack": "-12.25687574410669", "DRT::clock_period": "2.811000", "flow__warnings__count": 32, "flow__errors__count": 0 diff --git a/test/aes_sky130hs.metrics_limits b/test/aes_sky130hs.metrics_limits index f0549cffb3b..dd2696047b3 100644 --- a/test/aes_sky130hs.metrics_limits +++ b/test/aes_sky130hs.metrics_limits @@ -1,23 +1,23 @@ { "IFP::instance_count" : "19588.8" - ,"DPL::design_area" : "412974.0" - ,"DPL::utilization" : "13.68" - ,"RSZ::repair_design_buffer_count" : "621" + ,"DPL::design_area" : "434084.39999999997" + ,"DPL::utilization" : "14.399999999999999" + ,"RSZ::repair_design_buffer_count" : "703" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-0.279562674134323" - ,"RSZ::worst_slack_max" : "-0.9137463976203923" - ,"RSZ::tns_max" : "-505.539697761797" - ,"RSZ::hold_buffer_count" : "766" - ,"GRT::ANT::errors" : "0" + ,"RSZ::worst_slack_min" : "-0.28033783187203926" + ,"RSZ::worst_slack_max" : "-0.9249818549473593" + ,"RSZ::tns_max" : "-506.87098488002323" + ,"RSZ::hold_buffer_count" : "762" + ,"GRT::ANT::errors" : "1" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.5388800268429731" - ,"DRT::worst_slack_max" : "-1.1760770067253983" - ,"DRT::tns_max" : "-533.9860780405052" - ,"DRT::clock_skew" : "0.5529311831569392" - ,"DRT::max_slew_slack" : "-15.551692843437195" - ,"DRT::max_capacitance_slack" : "-17.525532858701983" + ,"DRT::worst_slack_min" : "-0.3946256365491647" + ,"DRT::worst_slack_max" : "-1.207392402332845" + ,"DRT::tns_max" : "-538.8529832793037" + ,"DRT::clock_skew" : "0.602268785223908" + ,"DRT::max_slew_slack" : "-12.965882420539856" + ,"DRT::max_capacitance_slack" : "-14.708250892928028" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "2.811" ,"DRT::ANT::errors" : "0" diff --git a/test/ibex_sky130hd.metrics b/test/ibex_sky130hd.metrics index 2d2ea3d97ad..a00df6ae54c 100644 --- a/test/ibex_sky130hd.metrics +++ b/test/ibex_sky130hd.metrics @@ -3,95 +3,93 @@ "IFP::instance_count": "15696", "floorplan__design__io": 264, "design__io__hpwl": 70142104, - "design__instance__displacement__total": 35861.1, - "design__instance__displacement__mean": 1.572, - "design__instance__displacement__max": 15.528, - "route__wirelength__estimated": 677795, - "RSZ::repair_design_buffer_count": "341", - "RSZ::max_slew_slack": "25.111780563990276", + "design__instance__displacement__total": 35506.7, + "design__instance__displacement__mean": 1.557, + "design__instance__displacement__max": 15.341, + "route__wirelength__estimated": 676844, + "RSZ::repair_design_buffer_count": "336", + "RSZ::max_slew_slack": "25.113141536712646", "RSZ::max_fanout_slack": "100.0", "RSZ::max_capacitance_slack": "84.7382111463397", - "design__instance__displacement__total": 1190.28, - "design__instance__displacement__mean": 0.051, - "design__instance__displacement__max": 12.589, - "route__wirelength__estimated": 697803, - "design__instance__count__setup_buffer": 193, - "design__instance__count__hold_buffer": 333, - "RSZ::worst_slack_min": "0.001111777368302843", - "RSZ::worst_slack_max": "-2.0787310239287486", - "RSZ::tns_max": "-33.48276417563329", - "RSZ::hold_buffer_count": "333", - "design__instance__displacement__total": 3174.95, - "design__instance__displacement__mean": 0.134, - "design__instance__displacement__max": 13.912, - "route__wirelength__estimated": 739954, - "DPL::utilization": "28.1", - "DPL::design_area": "170627", - "route__net": 15556, + "design__instance__displacement__total": 1173.67, + "design__instance__displacement__mean": 0.05, + "design__instance__displacement__max": 10.08, + "route__wirelength__estimated": 696723, + "design__instance__count__setup_buffer": 228, + "design__instance__count__hold_buffer": 323, + "RSZ::worst_slack_min": "0.0008064660278961306", + "RSZ::worst_slack_max": "-1.9395099408817325", + "RSZ::tns_max": "-31.608039746873583", + "RSZ::hold_buffer_count": "323", + "design__instance__displacement__total": 3758.09, + "design__instance__displacement__mean": 0.159, + "design__instance__displacement__max": 18.31, + "route__wirelength__estimated": 744296, + "DPL::utilization": "27.6", + "DPL::design_area": "167616", + "route__net": 15575, "route__net__special": 2, - "grt__antenna_diodes_count": 331, - "grt__antenna__violating__nets": 1, - "grt__antenna__violating__pins": 1, - "GRT::ANT::errors": "1", - "route__net": 15556, + "grt__antenna_diodes_count": 370, + "grt__antenna__violating__nets": 0, + "grt__antenna__violating__pins": 0, + "GRT::ANT::errors": "0", + "route__net": 15575, "route__net__special": 2, - "route__drc_errors__iter:1": 7073, - "route__wirelength__iter:1": 960877, - "route__drc_errors__iter:2": 1976, - "route__wirelength__iter:2": 956422, - "route__drc_errors__iter:3": 1613, - "route__wirelength__iter:3": 955299, - "route__drc_errors__iter:4": 236, - "route__wirelength__iter:4": 955357, - "route__drc_errors__iter:5": 76, - "route__wirelength__iter:5": 955308, - "route__drc_errors__iter:6": 6, - "route__wirelength__iter:6": 955317, - "route__drc_errors__iter:7": 1, - "route__wirelength__iter:7": 955323, - "route__drc_errors__iter:8": 1, - "route__wirelength__iter:8": 955323, - "route__drc_errors__iter:9": 0, - "route__wirelength__iter:9": 955320, + "route__drc_errors__iter:1": 7340, + "route__wirelength__iter:1": 965467, + "route__drc_errors__iter:2": 1996, + "route__wirelength__iter:2": 961211, + "route__drc_errors__iter:3": 1657, + "route__wirelength__iter:3": 960218, + "route__drc_errors__iter:4": 285, + "route__wirelength__iter:4": 960260, + "route__drc_errors__iter:5": 114, + "route__wirelength__iter:5": 960342, + "route__drc_errors__iter:6": 23, + "route__wirelength__iter:6": 960371, + "route__drc_errors__iter:7": 12, + "route__wirelength__iter:7": 960378, + "route__drc_errors__iter:8": 12, + "route__wirelength__iter:8": 960383, + "route__drc_errors__iter:9": 4, + "route__wirelength__iter:9": 960378, + "route__drc_errors__iter:10": 1, + "route__wirelength__iter:10": 960381, + "route__drc_errors__iter:11": 0, + "route__wirelength__iter:11": 960379, "route__drc_errors": 0, - "route__wirelength": 955320, - "route__vias": 131335, - "route__vias__singlecut": 131335, + "route__wirelength": 960379, + "route__vias": 131749, + "route__vias__singlecut": 131749, "route__vias__multicut": 0, "DRT::drv": "0", - "drt__repair_antennas__pre_repair__antenna__violating__nets": 31, - "drt__repair_antennas__pre_repair__antenna__violating__pins": 44, - "drt__repair_antennas__iter_0__antenna_diodes_count": 375, - "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 665, - "drt__repair_antennas__iter_0__route__wirelength__iter:1": 955481, - "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 143, - "drt__repair_antennas__iter_0__route__wirelength__iter:2": 955382, - "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 99, - "drt__repair_antennas__iter_0__route__wirelength__iter:3": 955360, - "drt__repair_antennas__iter_0__route__drc_errors__iter:4": 8, - "drt__repair_antennas__iter_0__route__wirelength__iter:4": 955351, + "drt__repair_antennas__pre_repair__antenna__violating__nets": 30, + "drt__repair_antennas__pre_repair__antenna__violating__pins": 33, + "drt__repair_antennas__iter_0__antenna_diodes_count": 413, + "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 727, + "drt__repair_antennas__iter_0__route__wirelength__iter:1": 960190, + "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 133, + "drt__repair_antennas__iter_0__route__wirelength__iter:2": 960078, + "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 104, + "drt__repair_antennas__iter_0__route__wirelength__iter:3": 960068, + "drt__repair_antennas__iter_0__route__drc_errors__iter:4": 18, + "drt__repair_antennas__iter_0__route__wirelength__iter:4": 960038, "drt__repair_antennas__iter_0__route__drc_errors__iter:5": 0, - "drt__repair_antennas__iter_0__route__wirelength__iter:5": 955350, + "drt__repair_antennas__iter_0__route__wirelength__iter:5": 960020, "drt__repair_antennas__iter_0__route__drc_errors": 0, - "drt__repair_antennas__iter_0__route__wirelength": 955350, - "drt__repair_antennas__iter_0__route__vias": 131660, - "drt__repair_antennas__iter_0__route__vias__singlecut": 131660, + "drt__repair_antennas__iter_0__route__wirelength": 960020, + "drt__repair_antennas__iter_0__route__vias": 131965, + "drt__repair_antennas__iter_0__route__vias__singlecut": 131965, "drt__repair_antennas__iter_0__route__vias__multicut": 0, "drt__repair_antennas__iter_0__antenna__violating__nets": 1, - "drt__repair_antennas__iter_0__antenna__violating__pins": 1, - "drt__repair_antennas__iter_1__antenna_diodes_count": 376, - "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 26, - "drt__repair_antennas__iter_1__route__wirelength__iter:1": 955350, - "drt__repair_antennas__iter_1__route__drc_errors__iter:2": 8, - "drt__repair_antennas__iter_1__route__wirelength__iter:2": 955356, - "drt__repair_antennas__iter_1__route__drc_errors__iter:3": 8, - "drt__repair_antennas__iter_1__route__wirelength__iter:3": 955353, - "drt__repair_antennas__iter_1__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_1__route__wirelength__iter:4": 955350, + "drt__repair_antennas__iter_0__antenna__violating__pins": 2, + "drt__repair_antennas__iter_1__antenna_diodes_count": 415, + "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 0, + "drt__repair_antennas__iter_1__route__wirelength__iter:1": 960026, "drt__repair_antennas__iter_1__route__drc_errors": 0, - "drt__repair_antennas__iter_1__route__wirelength": 955350, - "drt__repair_antennas__iter_1__route__vias": 131662, - "drt__repair_antennas__iter_1__route__vias__singlecut": 131662, + "drt__repair_antennas__iter_1__route__wirelength": 960026, + "drt__repair_antennas__iter_1__route__vias": 131970, + "drt__repair_antennas__iter_1__route__vias__singlecut": 131970, "drt__repair_antennas__iter_1__route__vias__multicut": 0, "drt__repair_antennas__iter_1__antenna__violating__nets": 0, "drt__repair_antennas__iter_1__antenna__violating__pins": 0, @@ -101,13 +99,13 @@ "design__violations": 0, "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.4897313804213718", - "DRT::worst_slack_max": "-3.201039524051817", - "DRT::tns_max": "-218.3931035608295", - "DRT::clock_skew": "2.7019136581749774", - "DRT::max_slew_slack": "-13.294514020284018", + "DRT::worst_slack_min": "-0.5658391693133459", + "DRT::worst_slack_max": "-3.0786556397832445", + "DRT::tns_max": "-203.24998792632425", + "DRT::clock_skew": "2.733567671814512", + "DRT::max_slew_slack": "-24.5124081770579", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "-2.6545293428182895", + "DRT::max_capacitance_slack": "-0.6559489051619369", "DRT::clock_period": "15.155000", "flow__warnings__count": 92, "flow__errors__count": 0 diff --git a/test/ibex_sky130hd.metrics_limits b/test/ibex_sky130hd.metrics_limits index 7557577dea1..f66fe5b207e 100644 --- a/test/ibex_sky130hd.metrics_limits +++ b/test/ibex_sky130hd.metrics_limits @@ -1,23 +1,23 @@ { "IFP::instance_count" : "18835.2" - ,"DPL::design_area" : "204752.4" - ,"DPL::utilization" : "33.72" - ,"RSZ::repair_design_buffer_count" : "409" + ,"DPL::design_area" : "201139.19999999998" + ,"DPL::utilization" : "33.12" + ,"RSZ::repair_design_buffer_count" : "403" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-1.5143882226316971" - ,"RSZ::worst_slack_max" : "-3.5942310239287485" - ,"RSZ::tns_max" : "-2412.2115641756336" - ,"RSZ::hold_buffer_count" : "399" - ,"GRT::ANT::errors" : "1" + ,"RSZ::worst_slack_min" : "-1.514693533972104" + ,"RSZ::worst_slack_max" : "-3.4550099408817325" + ,"RSZ::tns_max" : "-2410.336839746874" + ,"RSZ::hold_buffer_count" : "387" + ,"GRT::ANT::errors" : "0" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-2.005231380421372" - ,"DRT::worst_slack_max" : "-4.716539524051817" - ,"DRT::tns_max" : "-2597.1219035608297" - ,"DRT::clock_skew" : "3.242296389809973" - ,"DRT::max_slew_slack" : "-15.95341682434082" - ,"DRT::max_capacitance_slack" : "-3.185435211381947" + ,"DRT::worst_slack_min" : "-2.081339169313346" + ,"DRT::worst_slack_max" : "-4.594155639783245" + ,"DRT::tns_max" : "-2581.9787879263245" + ,"DRT::clock_skew" : "3.2802812061774143" + ,"DRT::max_slew_slack" : "-29.41488981246948" + ,"DRT::max_capacitance_slack" : "-0.7871386861943243" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "15.155" ,"DRT::ANT::errors" : "0" diff --git a/test/jpeg_sky130hd.metrics b/test/jpeg_sky130hd.metrics index c8df6458d92..20d9fb1fc5c 100644 --- a/test/jpeg_sky130hd.metrics +++ b/test/jpeg_sky130hd.metrics @@ -3,150 +3,114 @@ "IFP::instance_count": "45634", "floorplan__design__io": 47, "design__io__hpwl": 12947255, - "design__instance__displacement__total": 126711, - "design__instance__displacement__mean": 1.724, + "design__instance__displacement__total": 126218, + "design__instance__displacement__mean": 1.718, "design__instance__displacement__max": 14.617, - "route__wirelength__estimated": 1.46087e+06, - "RSZ::repair_design_buffer_count": "231", + "route__wirelength__estimated": 1.46041e+06, + "RSZ::repair_design_buffer_count": "230", "RSZ::max_slew_slack": "20.377322038014732", "RSZ::max_fanout_slack": "100.0", "RSZ::max_capacitance_slack": "22.00913149268759", - "design__instance__displacement__total": 3954.82, + "design__instance__displacement__total": 3940.83, "design__instance__displacement__mean": 0.053, - "design__instance__displacement__max": 13.995, - "route__wirelength__estimated": 1.51895e+06, - "design__instance__count__setup_buffer": 116, - "design__instance__count__hold_buffer": 42, - "RSZ::worst_slack_min": "0.005047518101909372", - "RSZ::worst_slack_max": "0.004650502337075044", - "RSZ::tns_max": "-9.50350935956894e-5", - "RSZ::hold_buffer_count": "42", - "design__instance__displacement__total": 1406.88, - "design__instance__displacement__mean": 0.018, + "design__instance__displacement__max": 11.04, + "route__wirelength__estimated": 1.51852e+06, + "design__instance__count__setup_buffer": 111, + "design__instance__count__hold_buffer": 94, + "RSZ::worst_slack_min": "0.012383650011507461", + "RSZ::worst_slack_max": "0.000604849520922098", + "RSZ::tns_max": "-6.21724911373669e-5", + "RSZ::hold_buffer_count": "94", + "design__instance__displacement__total": 1658.83, + "design__instance__displacement__mean": 0.022, "design__instance__displacement__max": 13.821, - "route__wirelength__estimated": 1.56407e+06, - "DPL::utilization": "23.5", - "DPL::design_area": "514687", - "route__net": 57232, + "route__wirelength__estimated": 1.55952e+06, + "DPL::utilization": "23.4", + "DPL::design_area": "512281", + "route__net": 57279, "route__net__special": 2, - "grt__antenna_diodes_count": 926, - "grt__antenna__violating__nets": 4, - "grt__antenna__violating__pins": 4, - "GRT::ANT::errors": "4", - "route__net": 57232, + "grt__antenna_diodes_count": 969, + "grt__antenna__violating__nets": 3, + "grt__antenna__violating__pins": 3, + "GRT::ANT::errors": "3", + "route__net": 57279, "route__net__special": 2, - "route__drc_errors__iter:1": 9314, - "route__wirelength__iter:1": 1755460, - "route__drc_errors__iter:2": 1257, - "route__wirelength__iter:2": 1746898, - "route__drc_errors__iter:3": 699, - "route__wirelength__iter:3": 1745861, - "route__drc_errors__iter:4": 17, - "route__wirelength__iter:4": 1745739, + "route__drc_errors__iter:1": 9292, + "route__wirelength__iter:1": 1750261, + "route__drc_errors__iter:2": 1285, + "route__wirelength__iter:2": 1741780, + "route__drc_errors__iter:3": 693, + "route__wirelength__iter:3": 1740889, + "route__drc_errors__iter:4": 13, + "route__wirelength__iter:4": 1740838, "route__drc_errors__iter:5": 0, - "route__wirelength__iter:5": 1745732, + "route__wirelength__iter:5": 1740842, "route__drc_errors": 0, - "route__wirelength": 1745732, - "route__vias": 308282, - "route__vias__singlecut": 308282, + "route__wirelength": 1740842, + "route__vias": 308471, + "route__vias__singlecut": 308471, "route__vias__multicut": 0, "DRT::drv": "0", - "drt__repair_antennas__pre_repair__antenna__violating__nets": 32, - "drt__repair_antennas__pre_repair__antenna__violating__pins": 36, - "drt__repair_antennas__iter_0__antenna_diodes_count": 982, - "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 550, - "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1746365, - "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 80, - "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1746249, - "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 47, - "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1746271, + "drt__repair_antennas__pre_repair__antenna__violating__nets": 36, + "drt__repair_antennas__pre_repair__antenna__violating__pins": 40, + "drt__repair_antennas__iter_0__antenna_diodes_count": 1029, + "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 603, + "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1741498, + "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 92, + "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1741302, + "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 52, + "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1741303, "drt__repair_antennas__iter_0__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1746282, + "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1741299, "drt__repair_antennas__iter_0__route__drc_errors": 0, - "drt__repair_antennas__iter_0__route__wirelength": 1746282, - "drt__repair_antennas__iter_0__route__vias": 308562, - "drt__repair_antennas__iter_0__route__vias__singlecut": 308562, + "drt__repair_antennas__iter_0__route__wirelength": 1741299, + "drt__repair_antennas__iter_0__route__vias": 308647, + "drt__repair_antennas__iter_0__route__vias__singlecut": 308647, "drt__repair_antennas__iter_0__route__vias__multicut": 0, - "drt__repair_antennas__iter_0__antenna__violating__nets": 3, - "drt__repair_antennas__iter_0__antenna__violating__pins": 3, - "drt__repair_antennas__iter_1__antenna_diodes_count": 985, - "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 153, - "drt__repair_antennas__iter_1__route__wirelength__iter:1": 1746316, + "drt__repair_antennas__iter_0__antenna__violating__nets": 5, + "drt__repair_antennas__iter_0__antenna__violating__pins": 6, + "drt__repair_antennas__iter_1__antenna_diodes_count": 1035, + "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 123, + "drt__repair_antennas__iter_1__route__wirelength__iter:1": 1741337, "drt__repair_antennas__iter_1__route__drc_errors__iter:2": 5, - "drt__repair_antennas__iter_1__route__wirelength__iter:2": 1746277, + "drt__repair_antennas__iter_1__route__wirelength__iter:2": 1741304, "drt__repair_antennas__iter_1__route__drc_errors__iter:3": 1, - "drt__repair_antennas__iter_1__route__wirelength__iter:3": 1746282, + "drt__repair_antennas__iter_1__route__wirelength__iter:3": 1741299, "drt__repair_antennas__iter_1__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_1__route__wirelength__iter:4": 1746285, + "drt__repair_antennas__iter_1__route__wirelength__iter:4": 1741299, "drt__repair_antennas__iter_1__route__drc_errors": 0, - "drt__repair_antennas__iter_1__route__wirelength": 1746285, - "drt__repair_antennas__iter_1__route__vias": 308554, - "drt__repair_antennas__iter_1__route__vias__singlecut": 308554, + "drt__repair_antennas__iter_1__route__wirelength": 1741299, + "drt__repair_antennas__iter_1__route__vias": 308630, + "drt__repair_antennas__iter_1__route__vias__singlecut": 308630, "drt__repair_antennas__iter_1__route__vias__multicut": 0, "drt__repair_antennas__iter_1__antenna__violating__nets": 1, "drt__repair_antennas__iter_1__antenna__violating__pins": 1, - "drt__repair_antennas__iter_2__antenna_diodes_count": 986, - "drt__repair_antennas__iter_2__route__drc_errors__iter:1": 69, - "drt__repair_antennas__iter_2__route__wirelength__iter:1": 1746317, - "drt__repair_antennas__iter_2__route__drc_errors__iter:2": 27, - "drt__repair_antennas__iter_2__route__wirelength__iter:2": 1746305, - "drt__repair_antennas__iter_2__route__drc_errors__iter:3": 4, - "drt__repair_antennas__iter_2__route__wirelength__iter:3": 1746303, - "drt__repair_antennas__iter_2__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_2__route__wirelength__iter:4": 1746301, + "drt__repair_antennas__iter_2__antenna_diodes_count": 1036, + "drt__repair_antennas__iter_2__route__drc_errors__iter:1": 8, + "drt__repair_antennas__iter_2__route__wirelength__iter:1": 1741304, + "drt__repair_antennas__iter_2__route__drc_errors__iter:2": 0, + "drt__repair_antennas__iter_2__route__wirelength__iter:2": 1741295, "drt__repair_antennas__iter_2__route__drc_errors": 0, - "drt__repair_antennas__iter_2__route__wirelength": 1746301, - "drt__repair_antennas__iter_2__route__vias": 308559, - "drt__repair_antennas__iter_2__route__vias__singlecut": 308559, + "drt__repair_antennas__iter_2__route__wirelength": 1741295, + "drt__repair_antennas__iter_2__route__vias": 308645, + "drt__repair_antennas__iter_2__route__vias__singlecut": 308645, "drt__repair_antennas__iter_2__route__vias__multicut": 0, - "drt__repair_antennas__iter_2__antenna__violating__nets": 1, - "drt__repair_antennas__iter_2__antenna__violating__pins": 1, - "drt__repair_antennas__iter_3__antenna_diodes_count": 987, - "drt__repair_antennas__iter_3__route__drc_errors__iter:1": 51, - "drt__repair_antennas__iter_3__route__wirelength__iter:1": 1746309, - "drt__repair_antennas__iter_3__route__drc_errors__iter:2": 42, - "drt__repair_antennas__iter_3__route__wirelength__iter:2": 1746293, - "drt__repair_antennas__iter_3__route__drc_errors__iter:3": 2, - "drt__repair_antennas__iter_3__route__wirelength__iter:3": 1746293, - "drt__repair_antennas__iter_3__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_3__route__wirelength__iter:4": 1746292, - "drt__repair_antennas__iter_3__route__drc_errors": 0, - "drt__repair_antennas__iter_3__route__wirelength": 1746292, - "drt__repair_antennas__iter_3__route__vias": 308547, - "drt__repair_antennas__iter_3__route__vias__singlecut": 308547, - "drt__repair_antennas__iter_3__route__vias__multicut": 0, - "drt__repair_antennas__iter_3__antenna__violating__nets": 1, - "drt__repair_antennas__iter_3__antenna__violating__pins": 1, - "drt__repair_antennas__iter_4__antenna_diodes_count": 988, - "drt__repair_antennas__iter_4__route__drc_errors__iter:1": 52, - "drt__repair_antennas__iter_4__route__wirelength__iter:1": 1746301, - "drt__repair_antennas__iter_4__route__drc_errors__iter:2": 42, - "drt__repair_antennas__iter_4__route__wirelength__iter:2": 1746289, - "drt__repair_antennas__iter_4__route__drc_errors__iter:3": 5, - "drt__repair_antennas__iter_4__route__wirelength__iter:3": 1746289, - "drt__repair_antennas__iter_4__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_4__route__wirelength__iter:4": 1746286, - "drt__repair_antennas__iter_4__route__drc_errors": 0, - "drt__repair_antennas__iter_4__route__wirelength": 1746286, - "drt__repair_antennas__iter_4__route__vias": 308555, - "drt__repair_antennas__iter_4__route__vias__singlecut": 308555, - "drt__repair_antennas__iter_4__route__vias__multicut": 0, - "drt__repair_antennas__iter_4__antenna__violating__nets": 1, - "drt__repair_antennas__iter_4__antenna__violating__pins": 1, - "drt__antenna__violating__nets": 1, - "drt__antenna__violating__pins": 1, - "DRT::ANT::errors": "1", + "drt__repair_antennas__iter_2__antenna__violating__nets": 0, + "drt__repair_antennas__iter_2__antenna__violating__pins": 0, + "drt__antenna__violating__nets": 0, + "drt__antenna__violating__pins": 0, + "DRT::ANT::errors": "0", "design__violations": 0, "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.09030665360008144", - "DRT::worst_slack_max": "-0.2586553267003427", - "DRT::tns_max": "-6.384671638763615", - "DRT::clock_skew": "0.6026450620220559", - "DRT::max_slew_slack": "-6.907378633817037", + "DRT::worst_slack_min": "-0.2778988229304138", + "DRT::worst_slack_max": "-0.6207932121850533", + "DRT::tns_max": "-20.527848446559247", + "DRT::clock_skew": "0.6122766911222901", + "DRT::max_slew_slack": "-7.6505690813064575", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "-7.58318952362972", + "DRT::max_capacitance_slack": "-7.005621233340539", "DRT::clock_period": "8.000000", - "flow__warnings__count": 231, + "flow__warnings__count": 175, "flow__errors__count": 0 } \ No newline at end of file diff --git a/test/jpeg_sky130hd.metrics_limits b/test/jpeg_sky130hd.metrics_limits index 374c9e35d09..e6f4f0f4c73 100644 --- a/test/jpeg_sky130hd.metrics_limits +++ b/test/jpeg_sky130hd.metrics_limits @@ -1,24 +1,24 @@ { "IFP::instance_count" : "54760.799999999996" - ,"DPL::design_area" : "617624.4" - ,"DPL::utilization" : "28.2" - ,"RSZ::repair_design_buffer_count" : "277" + ,"DPL::design_area" : "614737.2" + ,"DPL::utilization" : "28.08" + ,"RSZ::repair_design_buffer_count" : "276" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-0.7949524818980906" - ,"RSZ::worst_slack_max" : "-0.795349497662925" - ,"RSZ::tns_max" : "-3650.7200950350943" - ,"RSZ::hold_buffer_count" : "50" - ,"GRT::ANT::errors" : "4" + ,"RSZ::worst_slack_min" : "-0.7876163499884926" + ,"RSZ::worst_slack_max" : "-0.7993951504790779" + ,"RSZ::tns_max" : "-3650.720062172492" + ,"RSZ::hold_buffer_count" : "112" + ,"GRT::ANT::errors" : "3" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.8903066536000814" - ,"DRT::worst_slack_max" : "-1.0586553267003427" - ,"DRT::tns_max" : "-3657.104671638764" - ,"DRT::clock_skew" : "0.7231740744264671" - ,"DRT::max_slew_slack" : "-8.288854360580444" - ,"DRT::max_capacitance_slack" : "-9.099827428355663" + ,"DRT::worst_slack_min" : "-1.0778988229304138" + ,"DRT::worst_slack_max" : "-1.4207932121850533" + ,"DRT::tns_max" : "-3671.24784844656" + ,"DRT::clock_skew" : "0.7347320293467481" + ,"DRT::max_slew_slack" : "-9.180682897567749" + ,"DRT::max_capacitance_slack" : "-8.406745480008647" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "8.0" - ,"DRT::ANT::errors" : "1" + ,"DRT::ANT::errors" : "0" } diff --git a/test/jpeg_sky130hs.metrics b/test/jpeg_sky130hs.metrics index 5fa77c72bc3..3e89acdd99c 100644 --- a/test/jpeg_sky130hs.metrics +++ b/test/jpeg_sky130hs.metrics @@ -3,86 +3,100 @@ "IFP::instance_count": "49868", "floorplan__design__io": 47, "design__io__hpwl": 12228053, - "design__instance__displacement__total": 176718, - "design__instance__displacement__mean": 2.447, - "design__instance__displacement__max": 52.308, - "route__wirelength__estimated": 1.82277e+06, - "RSZ::repair_design_buffer_count": "356", + "design__instance__displacement__total": 179257, + "design__instance__displacement__mean": 2.481, + "design__instance__displacement__max": 64.52, + "route__wirelength__estimated": 1.82833e+06, + "RSZ::repair_design_buffer_count": "363", "RSZ::max_slew_slack": "22.398284077644348", "RSZ::max_fanout_slack": "100.0", "RSZ::max_capacitance_slack": "23.30268754088501", - "design__instance__displacement__total": 7091.98, - "design__instance__displacement__mean": 0.097, - "design__instance__displacement__max": 23.91, - "route__wirelength__estimated": 1.88919e+06, - "design__instance__count__setup_buffer": 15, - "design__instance__count__hold_buffer": 18, - "RSZ::worst_slack_min": "0.041185278575503886", - "RSZ::worst_slack_max": "0.0012772006036504801", + "design__instance__displacement__total": 6899.17, + "design__instance__displacement__mean": 0.094, + "design__instance__displacement__max": 16.616, + "route__wirelength__estimated": 1.89414e+06, + "design__instance__count__setup_buffer": 14, + "design__instance__count__hold_buffer": 17, + "RSZ::worst_slack_min": "0.0025577318764690334", + "RSZ::worst_slack_max": "0.0934932158154827", "RSZ::tns_max": "0.0", - "RSZ::hold_buffer_count": "18", - "design__instance__displacement__total": 300.328, + "RSZ::hold_buffer_count": "17", + "design__instance__displacement__total": 334.894, "design__instance__displacement__mean": 0.004, - "design__instance__displacement__max": 10.5, - "route__wirelength__estimated": 1.89414e+06, - "DPL::utilization": "33.9", - "DPL::design_area": "741007", - "route__net": 61478, + "design__instance__displacement__max": 13.38, + "route__wirelength__estimated": 1.89837e+06, + "DPL::utilization": "34.3", + "DPL::design_area": "749093", + "route__net": 61482, "route__net__special": 2, - "grt__antenna_diodes_count": 433, - "grt__antenna__violating__nets": 0, - "grt__antenna__violating__pins": 0, - "GRT::ANT::errors": "0", - "route__net": 61478, + "grt__antenna_diodes_count": 376, + "grt__antenna__violating__nets": 1, + "grt__antenna__violating__pins": 1, + "GRT::ANT::errors": "1", + "route__net": 61482, "route__net__special": 2, - "route__drc_errors__iter:1": 8669, - "route__wirelength__iter:1": 2109285, - "route__drc_errors__iter:2": 854, - "route__wirelength__iter:2": 2099122, - "route__drc_errors__iter:3": 431, - "route__wirelength__iter:3": 2098144, - "route__drc_errors__iter:4": 8, - "route__wirelength__iter:4": 2097935, - "route__drc_errors__iter:5": 0, - "route__wirelength__iter:5": 2097939, + "route__drc_errors__iter:1": 8521, + "route__wirelength__iter:1": 2114425, + "route__drc_errors__iter:2": 788, + "route__wirelength__iter:2": 2104462, + "route__drc_errors__iter:3": 406, + "route__wirelength__iter:3": 2103567, + "route__drc_errors__iter:4": 0, + "route__wirelength__iter:4": 2103517, "route__drc_errors": 0, - "route__wirelength": 2097939, - "route__vias": 336869, - "route__vias__singlecut": 336869, + "route__wirelength": 2103517, + "route__vias": 337012, + "route__vias__singlecut": 337012, "route__vias__multicut": 0, "DRT::drv": "0", - "drt__repair_antennas__pre_repair__antenna__violating__nets": 30, - "drt__repair_antennas__pre_repair__antenna__violating__pins": 35, - "drt__repair_antennas__iter_0__antenna_diodes_count": 477, - "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 336, - "drt__repair_antennas__iter_0__route__wirelength__iter:1": 2098347, - "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 54, - "drt__repair_antennas__iter_0__route__wirelength__iter:2": 2098349, + "drt__repair_antennas__pre_repair__antenna__violating__nets": 25, + "drt__repair_antennas__pre_repair__antenna__violating__pins": 29, + "drt__repair_antennas__iter_0__antenna_diodes_count": 405, + "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 311, + "drt__repair_antennas__iter_0__route__wirelength__iter:1": 2103729, + "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 47, + "drt__repair_antennas__iter_0__route__wirelength__iter:2": 2103678, "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 31, - "drt__repair_antennas__iter_0__route__wirelength__iter:3": 2098334, + "drt__repair_antennas__iter_0__route__wirelength__iter:3": 2103677, "drt__repair_antennas__iter_0__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_0__route__wirelength__iter:4": 2098340, + "drt__repair_antennas__iter_0__route__wirelength__iter:4": 2103678, "drt__repair_antennas__iter_0__route__drc_errors": 0, - "drt__repair_antennas__iter_0__route__wirelength": 2098340, - "drt__repair_antennas__iter_0__route__vias": 337070, - "drt__repair_antennas__iter_0__route__vias__singlecut": 337070, + "drt__repair_antennas__iter_0__route__wirelength": 2103678, + "drt__repair_antennas__iter_0__route__vias": 337154, + "drt__repair_antennas__iter_0__route__vias__singlecut": 337154, "drt__repair_antennas__iter_0__route__vias__multicut": 0, - "drt__repair_antennas__iter_0__antenna__violating__nets": 0, - "drt__repair_antennas__iter_0__antenna__violating__pins": 0, + "drt__repair_antennas__iter_0__antenna__violating__nets": 2, + "drt__repair_antennas__iter_0__antenna__violating__pins": 2, + "drt__repair_antennas__iter_1__antenna_diodes_count": 407, + "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 15, + "drt__repair_antennas__iter_1__route__wirelength__iter:1": 2103673, + "drt__repair_antennas__iter_1__route__drc_errors__iter:2": 9, + "drt__repair_antennas__iter_1__route__wirelength__iter:2": 2103662, + "drt__repair_antennas__iter_1__route__drc_errors__iter:3": 5, + "drt__repair_antennas__iter_1__route__wirelength__iter:3": 2103662, + "drt__repair_antennas__iter_1__route__drc_errors__iter:4": 0, + "drt__repair_antennas__iter_1__route__wirelength__iter:4": 2103662, + "drt__repair_antennas__iter_1__route__drc_errors": 0, + "drt__repair_antennas__iter_1__route__wirelength": 2103662, + "drt__repair_antennas__iter_1__route__vias": 337144, + "drt__repair_antennas__iter_1__route__vias__singlecut": 337144, + "drt__repair_antennas__iter_1__route__vias__multicut": 0, + "drt__repair_antennas__iter_1__antenna__violating__nets": 0, + "drt__repair_antennas__iter_1__antenna__violating__pins": 0, "drt__antenna__violating__nets": 0, "drt__antenna__violating__pins": 0, "DRT::ANT::errors": "0", "design__violations": 0, "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.03246780713960022", - "DRT::worst_slack_max": "-0.3903872891006405", - "DRT::tns_max": "-7.590849941252547", - "DRT::clock_skew": "0.41326676583919153", - "DRT::max_slew_slack": "16.186630725860596", + "DRT::worst_slack_min": "-0.09428746938976257", + "DRT::worst_slack_max": "0.0055129236069948045", + "DRT::tns_max": "0.0", + "DRT::clock_skew": "0.409020495716815", + "DRT::max_slew_slack": "14.398987591266632", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "24.486200938370924", + "DRT::max_capacitance_slack": "22.60311400941662", "DRT::clock_period": "6.387000", - "flow__warnings__count": 131, + "flow__warnings__count": 151, "flow__errors__count": 0 } \ No newline at end of file diff --git a/test/jpeg_sky130hs.metrics_limits b/test/jpeg_sky130hs.metrics_limits index b739d479acf..0cf425b365d 100644 --- a/test/jpeg_sky130hs.metrics_limits +++ b/test/jpeg_sky130hs.metrics_limits @@ -1,21 +1,21 @@ { "IFP::instance_count" : "59841.6" - ,"DPL::design_area" : "889208.4" - ,"DPL::utilization" : "40.68" - ,"RSZ::repair_design_buffer_count" : "427" + ,"DPL::design_area" : "898911.6" + ,"DPL::utilization" : "41.16" + ,"RSZ::repair_design_buffer_count" : "435" ,"RSZ::max_slew_slack" : "0" ,"RSZ::max_capacitance_slack" : "0" ,"RSZ::max_fanout_slack" : "0" - ,"RSZ::worst_slack_min" : "-0.5975147214244961" - ,"RSZ::worst_slack_max" : "-0.6374227993963496" + ,"RSZ::worst_slack_min" : "-0.636142268123531" + ,"RSZ::worst_slack_max" : "-0.5452067841845174" ,"RSZ::tns_max" : "-3185.0691600000005" - ,"RSZ::hold_buffer_count" : "21" - ,"GRT::ANT::errors" : "0" + ,"RSZ::hold_buffer_count" : "20" + ,"GRT::ANT::errors" : "1" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.6711678071396002" - ,"DRT::worst_slack_max" : "-1.0290872891006406" - ,"DRT::tns_max" : "-3192.660009941253" - ,"DRT::clock_skew" : "0.4959201190070298" + ,"DRT::worst_slack_min" : "-0.7329874693897627" + ,"DRT::worst_slack_max" : "-0.6331870763930052" + ,"DRT::tns_max" : "-3185.0691600000005" + ,"DRT::clock_skew" : "0.49082459486017793" ,"DRT::max_slew_slack" : "0" ,"DRT::max_capacitance_slack" : "0" ,"DRT::max_fanout_slack" : "0" From ee7fca9fd7c2fcce8204cee5aa963a12b94d5cdb Mon Sep 17 00:00:00 2001 From: Arthur Koucher Date: Tue, 1 Oct 2024 18:20:13 -0300 Subject: [PATCH 10/10] rsz: update failing tests Signed-off-by: Arthur Koucher --- src/gpl/test/simple01-td-tune.defok | 572 ++++++++++++++-------------- src/gpl/test/simple01-td-tune.ok | 38 +- test/aes_sky130hs.metrics | 88 +++-- test/aes_sky130hs.metrics_limits | 14 +- 4 files changed, 355 insertions(+), 357 deletions(-) diff --git a/src/gpl/test/simple01-td-tune.defok b/src/gpl/test/simple01-td-tune.defok index 2cf121c6466..b448305d570 100644 --- a/src/gpl/test/simple01-td-tune.defok +++ b/src/gpl/test/simple01-td-tune.defok @@ -60,292 +60,292 @@ GCELLGRID Y 58940 DO 2 STEP 2660 ; GCELLGRID Y 140 DO 22 STEP 2800 ; GCELLGRID Y 0 DO 2 STEP 140 ; COMPONENTS 286 ; - - _276_ NOR2_X2 + PLACED ( 42331 14105 ) N ; - - _278_ INV_X1 + PLACED ( 8902 35743 ) N ; - - _279_ NOR2_X1 + PLACED ( 11901 37248 ) N ; - - _280_ INV_X1 + PLACED ( 15421 36857 ) N ; - - _281_ INV_X1 + PLACED ( 21800 51787 ) N ; - - _282_ NOR2_X1 + PLACED ( 21994 48834 ) N ; - - _283_ INV_X1 + PLACED ( 28578 46357 ) N ; - - _284_ NOR2_X1 + PLACED ( 27095 47103 ) N ; - - _285_ NOR2_X1 + PLACED ( 21465 46850 ) N ; - - _286_ INV_X1 + PLACED ( 12913 45336 ) N ; - - _287_ NOR2_X1 + PLACED ( 16591 45227 ) N ; - - _288_ INV_X1 + PLACED ( 17913 44869 ) N ; - - _289_ AND2_X1 + PLACED ( 18826 38833 ) N ; - - _290_ INV_X1 + PLACED ( 21248 13407 ) N ; - - _291_ NOR2_X1 + PLACED ( 18755 13175 ) N ; - - _292_ INV_X1 + PLACED ( 14068 11449 ) N ; - - _293_ AOI21_X1 + PLACED ( 18017 13095 ) N ; - - _294_ INV_X1 + PLACED ( 26060 17220 ) N ; - - _295_ NOR2_X1 + PLACED ( 24771 20259 ) N ; - - _296_ INV_X1 + PLACED ( 17345 20595 ) N ; - - _297_ NOR2_X1 + PLACED ( 17578 21765 ) N ; - - _298_ NOR2_X1 + PLACED ( 20283 24320 ) N ; - - _299_ AND2_X1 + PLACED ( 20113 36162 ) N ; - - _300_ INV_X16 + PLACED ( 55480 15509 ) N ; - - _301_ NOR2_X4 + PLACED ( 53832 17640 ) N ; - - _302_ INV_X16 + PLACED ( 48846 18225 ) N ; - - _303_ NOR3_X2 + PLACED ( 51621 18613 ) N ; - - _304_ AOI21_X1 + PLACED ( 49676 18379 ) N ; - - _305_ INV_X1 + PLACED ( 43885 26903 ) N ; - - _306_ INV_X32 + PLACED ( 41522 39929 ) N ; - - _307_ AND2_X4 + PLACED ( 56662 34080 ) N ; - - _308_ INV_X4 + PLACED ( 58253 32744 ) N ; - - _309_ INV_X32 + PLACED ( 48881 52158 ) N ; - - _310_ OAI211_X4 + PLACED ( 53974 37873 ) N ; - - _311_ NAND2_X4 + PLACED ( 56211 30739 ) N ; - - _312_ INV_X16 + PLACED ( 55480 23184 ) N ; - - _313_ NOR2_X1 + PLACED ( 56572 27626 ) N ; - - _314_ NOR3_X4 + PLACED ( 53025 28475 ) N ; - - _315_ NOR2_X2 + PLACED ( 41010 29876 ) N ; - - _316_ INV_X1 + PLACED ( 34314 39902 ) N ; - - _317_ NOR2_X1 + PLACED ( 33270 37443 ) N ; - - _318_ INV_X32 + PLACED ( 33496 4465 ) N ; - - _319_ NOR2_X4 + PLACED ( 34298 28346 ) N ; - - _320_ INV_X4 + PLACED ( 28182 24113 ) N ; - - _321_ NAND2_X1 + PLACED ( 26118 27482 ) N ; - - _322_ INV_X1 + PLACED ( 26013 29787 ) N ; - - _323_ OAI21_X4 + PLACED ( 24354 29474 ) N ; - - _324_ NOR4_X4 + PLACED ( 30488 33268 ) N ; - - _325_ NOR2_X1 + PLACED ( 27460 27200 ) N ; - - _326_ OAI21_X1 + PLACED ( 26164 29346 ) N ; - - _327_ INV_X1 + PLACED ( 13390 30395 ) N ; - - _328_ INV_X32 + PLACED ( 31906 49291 ) N ; - - _329_ NOR3_X2 + PLACED ( 34577 31904 ) N ; - - _330_ AOI21_X4 + PLACED ( 35262 28197 ) N ; - - _331_ OAI221_X4 + PLACED ( 24976 29946 ) N ; - - _332_ OAI211_X1 + PLACED ( 19010 36268 ) N ; - - _333_ AND2_X1 + PLACED ( 11494 37216 ) N ; - - _334_ INV_X1 + PLACED ( 13866 37315 ) N ; - - _335_ NAND2_X1 + PLACED ( 23962 48847 ) N ; - - _336_ NAND2_X1 + PLACED ( 27095 46732 ) N ; - - _337_ NAND2_X1 + PLACED ( 23600 46194 ) N ; - - _338_ INV_X1 + PLACED ( 21910 47307 ) N ; - - _339_ NAND3_X1 + PLACED ( 19018 45211 ) N ; - - _340_ NAND2_X1 + PLACED ( 16653 45148 ) N ; - - _341_ NAND2_X1 + PLACED ( 18016 44666 ) N ; - - _342_ INV_X1 + PLACED ( 19449 13069 ) N ; - - _343_ OAI211_X1 + PLACED ( 18555 13907 ) N ; - - _344_ NAND2_X1 + PLACED ( 19015 14809 ) N ; - - _345_ AOI211_X1 + PLACED ( 19963 22635 ) N ; - - _346_ NAND2_X1 + PLACED ( 24978 20289 ) N ; - - _347_ NAND2_X1 + PLACED ( 17754 22132 ) N ; - - _348_ OAI21_X1 + PLACED ( 22833 22915 ) N ; - - _349_ OR2_X1 + PLACED ( 22282 36180 ) N ; - - _350_ AOI21_X1 + PLACED ( 18498 37753 ) N ; - - _351_ AND4_X1 + PLACED ( 16246 36245 ) N ; - - _352_ AOI22_X1 + PLACED ( 16197 36373 ) N ; - - _353_ OR2_X1 + PLACED ( 17506 34073 ) N ; - - _355_ INV_X2 + PLACED ( 43076 14264 ) N ; - - _357_ AND3_X1 + PLACED ( 19169 38314 ) N ; - - _358_ OAI211_X4 + PLACED ( 23481 36826 ) N ; - - _359_ OAI21_X1 + PLACED ( 17285 37787 ) N ; - - _360_ OAI21_X1 + PLACED ( 23038 36574 ) N ; - - _361_ NAND3_X4 + PLACED ( 24208 37946 ) N ; - - _362_ NOR2_X1 + PLACED ( 42357 44856 ) N ; - - _363_ INV_X1 + PLACED ( 42590 44278 ) N ; - - _364_ NOR2_X4 + PLACED ( 40914 45034 ) N ; - - _365_ AOI221_X4 + PLACED ( 9975 39660 ) N ; - - _366_ AND2_X4 + PLACED ( 41492 45351 ) N ; - - _368_ OAI21_X1 + PLACED ( 15638 35314 ) N ; - - _370_ AOI22_X1 + PLACED ( 11516 36469 ) N ; - - _371_ NOR2_X2 + PLACED ( 19561 30630 ) N ; - - _372_ NAND3_X1 + PLACED ( 19523 37771 ) N ; - - _373_ OR2_X1 + PLACED ( 19187 42570 ) N ; - - _374_ AOI22_X1 + PLACED ( 19169 45084 ) N ; - - _375_ NAND2_X1 + PLACED ( 18755 44155 ) N ; - - _376_ XOR2_X1 + PLACED ( 6998 45512 ) N ; - - _377_ XNOR2_X1 + PLACED ( 8244 44628 ) N ; - - _378_ INV_X1 + PLACED ( 46231 52439 ) N ; - - _380_ NOR2_X1 + PLACED ( 13800 47201 ) N ; - - _381_ NAND2_X1 + PLACED ( 11804 45619 ) N ; - - _382_ AOI221_X4 + PLACED ( 10369 45509 ) N ; - - _383_ AOI21_X1 + PLACED ( 12496 47046 ) N ; - - _384_ INV_X1 + PLACED ( 24002 44282 ) N ; - - _385_ INV_X1 + PLACED ( 23816 41639 ) N ; - - _386_ OAI211_X1 + PLACED ( 24071 45169 ) N ; - - _387_ INV_X1 + PLACED ( 25053 47015 ) N ; - - _388_ AND4_X1 + PLACED ( 24154 46955 ) N ; - - _389_ AOI22_X1 + PLACED ( 23970 47082 ) N ; - - _390_ NOR2_X1 + PLACED ( 25384 47260 ) N ; - - _391_ NOR2_X1 + PLACED ( 22024 53276 ) N ; - - _392_ NAND2_X1 + PLACED ( 23378 52183 ) N ; - - _393_ AOI221_X4 + PLACED ( 15912 53000 ) N ; - - _394_ AOI21_X1 + PLACED ( 21389 53709 ) N ; - - _395_ OAI21_X1 + PLACED ( 24735 44914 ) N ; - - _396_ XOR2_X1 + PLACED ( 27661 53960 ) N ; - - _397_ XNOR2_X1 + PLACED ( 27176 53393 ) N ; - - _398_ NOR2_X1 + PLACED ( 28900 53535 ) N ; - - _399_ AOI221_X1 + PLACED ( 26678 54388 ) N ; - - _401_ OR3_X1 + PLACED ( 27811 46037 ) N ; - - _402_ AOI21_X1 + PLACED ( 28162 54260 ) N ; - - _403_ INV_X1 + PLACED ( 19529 24669 ) N ; - - _404_ OAI211_X1 + PLACED ( 18759 28874 ) N ; - - _405_ AOI21_X1 + PLACED ( 18719 21418 ) N ; - - _406_ AOI21_X1 + PLACED ( 17567 21079 ) N ; - - _407_ AND2_X1 + PLACED ( 18245 20407 ) N ; - - _408_ XNOR2_X1 + PLACED ( 23256 16232 ) N ; - - _409_ XNOR2_X1 + PLACED ( 18344 16621 ) N ; - - _410_ NOR2_X1 + PLACED ( 25321 16502 ) N ; - - _411_ AOI221_X1 + PLACED ( 16306 16656 ) N ; - - _412_ OR3_X1 + PLACED ( 25968 17574 ) N ; - - _413_ AOI21_X1 + PLACED ( 24008 16486 ) N ; - - _414_ OAI21_X1 + PLACED ( 19552 29441 ) N ; - - _415_ AND2_X1 + PLACED ( 19525 22527 ) N ; - - _416_ AND4_X1 + PLACED ( 19784 24679 ) N ; - - _417_ AOI22_X1 + PLACED ( 19727 24763 ) N ; - - _418_ OR2_X1 + PLACED ( 22316 23406 ) N ; - - _419_ NOR2_X1 + PLACED ( 13654 21530 ) N ; - - _420_ AOI221_X4 + PLACED ( 10418 21481 ) N ; - - _421_ OAI21_X1 + PLACED ( 20639 23290 ) N ; - - _422_ AOI21_X1 + PLACED ( 12865 21837 ) N ; - - _423_ AOI21_X1 + PLACED ( 18424 10960 ) N ; - - _424_ NOR2_X1 + PLACED ( 17666 11215 ) N ; - - _425_ NOR2_X1 + PLACED ( 19104 9779 ) N ; - - _426_ XNOR2_X1 + PLACED ( 22370 10865 ) N ; - - _427_ XNOR2_X1 + PLACED ( 22832 11337 ) N ; - - _428_ NOR2_X1 + PLACED ( 30333 13807 ) N ; - - _429_ AOI221_X2 + PLACED ( 31305 13922 ) N ; - - _430_ OR3_X1 + PLACED ( 27190 14885 ) N ; - - _431_ AOI21_X1 + PLACED ( 29548 13636 ) N ; - - _432_ XNOR2_X1 + PLACED ( 18042 7344 ) N ; - - _433_ XNOR2_X1 + PLACED ( 19111 8131 ) N ; - - _434_ AOI221_X2 + PLACED ( 10417 14409 ) N ; - - _435_ OR3_X1 + PLACED ( 25447 14918 ) N ; - - _436_ AOI22_X1 + PLACED ( 12100 13806 ) N ; - - _437_ NAND2_X1 + PLACED ( 38204 32134 ) N ; - - _438_ OAI221_X1 + PLACED ( 39952 28633 ) N ; - - _439_ NAND2_X1 + PLACED ( 39460 27394 ) N ; - - _440_ XOR2_X1 + PLACED ( 34935 25104 ) N ; - - _441_ XNOR2_X1 + PLACED ( 40464 26296 ) N ; - - _442_ AOI221_X2 + PLACED ( 42407 24537 ) N ; - - _443_ NAND2_X1 + PLACED ( 31514 23607 ) N ; - - _444_ AOI22_X1 + PLACED ( 30478 23916 ) N ; - - _445_ OAI21_X1 + PLACED ( 38315 32405 ) N ; - - _446_ NAND2_X1 + PLACED ( 38422 30943 ) N ; - - _447_ XNOR2_X1 + PLACED ( 36733 19227 ) N ; - - _448_ XNOR2_X1 + PLACED ( 36702 19274 ) N ; - - _449_ NOR2_X1 + PLACED ( 35996 15865 ) N ; - - _450_ AOI221_X1 + PLACED ( 31363 18164 ) N ; - - _451_ OR3_X1 + PLACED ( 34551 16286 ) N ; - - _452_ AOI21_X1 + PLACED ( 34631 16180 ) N ; - - _453_ XNOR2_X1 + PLACED ( 36897 36951 ) N ; - - _454_ XNOR2_X1 + PLACED ( 37862 35466 ) N ; - - _455_ AOI221_X2 + PLACED ( 33422 53624 ) N ; - - _456_ OR3_X1 + PLACED ( 32879 43532 ) N ; - - _457_ AOI22_X1 + PLACED ( 33722 46861 ) N ; - - _458_ AOI22_X1 + PLACED ( 56987 30783 ) N ; - - _459_ NOR2_X1 + PLACED ( 57196 27937 ) N ; - - _460_ XOR2_X1 + PLACED ( 56759 18621 ) N ; - - _461_ XNOR2_X1 + PLACED ( 57913 19685 ) N ; - - _462_ NOR2_X1 + PLACED ( 48308 14036 ) N ; - - _463_ AOI221_X1 + PLACED ( 46129 14507 ) N ; - - _464_ OR3_X1 + PLACED ( 47647 15450 ) N ; - - _465_ AOI21_X1 + PLACED ( 47927 13982 ) N ; - - _466_ XNOR2_X1 + PLACED ( 55878 24503 ) N ; - - _467_ XNOR2_X1 + PLACED ( 56289 28825 ) N ; - - _468_ AOI221_X4 + PLACED ( 47136 29170 ) N ; - - _469_ OR3_X1 + PLACED ( 48547 24656 ) N ; - - _470_ AOI22_X1 + PLACED ( 49274 24818 ) N ; - - _471_ XNOR2_X1 + PLACED ( 46820 36495 ) N ; - - _472_ INV_X1 + PLACED ( 52747 37411 ) N ; - - _473_ NOR2_X1 + PLACED ( 52053 37323 ) N ; - - _474_ XNOR2_X1 + PLACED ( 48293 36144 ) N ; - - _475_ AOI221_X4 + PLACED ( 45644 31728 ) N ; - - _476_ NAND3_X1 + PLACED ( 47074 33266 ) N ; - - _477_ AOI22_X1 + PLACED ( 47249 34105 ) N ; - - _478_ XOR2_X1 + PLACED ( 52625 46713 ) N ; - - _479_ AOI221_X4 + PLACED ( 46352 45557 ) N ; - - _480_ NAND3_X1 + PLACED ( 48091 46141 ) N ; - - _481_ AOI22_X1 + PLACED ( 48569 47327 ) N ; - - _482_ NOR2_X1 + PLACED ( 42083 14398 ) N ; - - _483_ NOR2_X1 + PLACED ( 54031 33214 ) N ; - - _484_ AND3_X1 + PLACED ( 52393 34799 ) N ; - - _485_ NAND3_X1 + PLACED ( 30446 37133 ) N ; - - _486_ NOR3_X1 + PLACED ( 23264 15879 ) N ; - - _487_ NAND2_X1 + PLACED ( 25011 16079 ) N ; - - _488_ NOR4_X1 + PLACED ( 27234 39912 ) N ; - - _489_ NAND3_X1 + PLACED ( 26445 42896 ) N ; - - _490_ NOR3_X1 + PLACED ( 36307 22608 ) N ; - - _491_ NAND3_X1 + PLACED ( 39697 21752 ) N ; - - _492_ AOI221_X4 + PLACED ( 40138 20264 ) N ; - - _493_ NAND3_X1 + PLACED ( 34796 53046 ) N ; - - _494_ AOI221_X1 + PLACED ( 36841 20660 ) N ; - - _495_ MUX2_X1 + PLACED ( 13059 57478 ) N ; - - _496_ NOR2_X4 + PLACED ( 42040 52366 ) N ; - - _498_ MUX2_X1 + PLACED ( 14886 56299 ) N ; - - _499_ MUX2_X1 + PLACED ( 1407 34980 ) N ; - - _500_ MUX2_X1 + PLACED ( 3641 37590 ) N ; - - _501_ MUX2_X1 + PLACED ( 1407 49915 ) N ; - - _502_ MUX2_X1 + PLACED ( 3579 49066 ) N ; - - _503_ MUX2_X1 + PLACED ( 33225 57478 ) N ; - - _504_ MUX2_X1 + PLACED ( 34928 56539 ) N ; - - _505_ MUX2_X1 + PLACED ( 26631 4666 ) N ; - - _506_ MUX2_X1 + PLACED ( 27925 5641 ) N ; - - _507_ MUX2_X1 + PLACED ( 1407 21368 ) N ; - - _508_ MUX2_X1 + PLACED ( 3043 19791 ) N ; - - _509_ MUX2_X1 + PLACED ( 1407 10807 ) N ; - - _510_ MUX2_X1 + PLACED ( 3850 11248 ) N ; - - _511_ MUX2_X1 + PLACED ( 12159 5707 ) N ; - - _512_ MUX2_X1 + PLACED ( 13252 5999 ) N ; - - _513_ MUX2_X1 + PLACED ( 7689 27423 ) N ; - - _514_ MUX2_X1 + PLACED ( 9766 28091 ) N ; - - _515_ MUX2_X1 + PLACED ( 1407 25781 ) N ; - - _516_ MUX2_X1 + PLACED ( 2614 25940 ) N ; - - _517_ MUX2_X1 + PLACED ( 40270 10843 ) N ; - - _518_ MUX2_X1 + PLACED ( 41548 8019 ) N ; - - _519_ MUX2_X1 + PLACED ( 34986 39229 ) N ; - - _520_ MUX2_X1 + PLACED ( 34254 40280 ) N ; - - _521_ MUX2_X1 + PLACED ( 54862 9985 ) N ; - - _522_ MUX2_X1 + PLACED ( 55201 10332 ) N ; - - _523_ MUX2_X1 + PLACED ( 49497 6024 ) N ; - - _524_ MUX2_X1 + PLACED ( 51638 6411 ) N ; - - _525_ MUX2_X1 + PLACED ( 47264 39245 ) N ; - - _526_ MUX2_X1 + PLACED ( 54117 40432 ) N ; - - _527_ MUX2_X1 + PLACED ( 54419 46230 ) N ; - - _528_ MUX2_X1 + PLACED ( 55151 46345 ) N ; - - _529_ AOI22_X1 + PLACED ( 29518 27799 ) N ; - - _530_ NOR2_X1 + PLACED ( 27799 28740 ) N ; - - _531_ XNOR2_X1 + PLACED ( 11368 30195 ) N ; - - _532_ XNOR2_X1 + PLACED ( 11875 30784 ) N ; - - _533_ AOI221_X2 + PLACED ( 9855 53473 ) N ; - - _534_ OR3_X1 + PLACED ( 26222 32170 ) N ; - - _535_ AOI22_X1 + PLACED ( 11611 32066 ) N ; - - _536_ DFF_X1 + PLACED ( 1103 34969 ) N ; - - _537_ DFF_X1 + PLACED ( 10348 49903 ) N ; - - _538_ DFF_X1 + PLACED ( 20043 57478 ) N ; - - _539_ DFF_X1 + PLACED ( 26701 57478 ) N ; - - _540_ DFF_X1 + PLACED ( 21186 5251 ) N ; - - _541_ DFF_X1 + PLACED ( 6857 20722 ) N ; - - _542_ DFF_X1 + PLACED ( 26888 10828 ) N ; - - _543_ DFF_X1 + PLACED ( 8509 12469 ) N ; - - _544_ DFF_X1 + PLACED ( 29085 22782 ) N ; - - _545_ DFF_X1 + PLACED ( 33537 10449 ) N ; - - _546_ DFF_X1 + PLACED ( 31613 46808 ) N ; - - _547_ DFF_X1 + PLACED ( 47061 11290 ) N ; - - _548_ DFF_X1 + PLACED ( 47881 24547 ) N ; - - _549_ DFF_X1 + PLACED ( 41126 35631 ) N ; - - _550_ DFF_X1 + PLACED ( 47300 50655 ) N ; - - _551_ DFF_X1 + PLACED ( 42562 19784 ) N ; - - _552_ DFF_X1 + PLACED ( 37220 13836 ) N ; - - _553_ DFF_X1 + PLACED ( 15204 56722 ) N ; - - _554_ DFF_X1 + PLACED ( 3683 38519 ) N ; - - _555_ DFF_X1 + PLACED ( 3432 49074 ) N ; - - _556_ DFF_X1 + PLACED ( 35321 57002 ) N ; - - _557_ DFF_X1 + PLACED ( 28255 5406 ) N ; - - _558_ DFF_X1 + PLACED ( 2544 19333 ) N ; - - _559_ DFF_X1 + PLACED ( 3976 11342 ) N ; - - _560_ DFF_X1 + PLACED ( 13006 5658 ) N ; - - _561_ DFF_X1 + PLACED ( 10276 28282 ) N ; - - _562_ DFF_X1 + PLACED ( 1890 26091 ) N ; - - _563_ DFF_X1 + PLACED ( 41961 7531 ) N ; - - _564_ DFF_X1 + PLACED ( 34091 40797 ) N ; - - _565_ DFF_X1 + PLACED ( 55480 10303 ) N ; - - _566_ DFF_X1 + PLACED ( 52412 6245 ) N ; - - _567_ DFF_X1 + PLACED ( 55418 40935 ) N ; - - _568_ DFF_X1 + PLACED ( 55480 46552 ) N ; - - _569_ DFF_X1 + PLACED ( 1855 30993 ) N ; + - _276_ NOR2_X2 + PLACED ( 42354 14225 ) N ; + - _278_ INV_X1 + PLACED ( 9385 35614 ) N ; + - _279_ NOR2_X1 + PLACED ( 12045 37359 ) N ; + - _280_ INV_X1 + PLACED ( 15550 36873 ) N ; + - _281_ INV_X1 + PLACED ( 21594 52087 ) N ; + - _282_ NOR2_X1 + PLACED ( 22211 49249 ) N ; + - _283_ INV_X1 + PLACED ( 28527 46458 ) N ; + - _284_ NOR2_X1 + PLACED ( 27058 47233 ) N ; + - _285_ NOR2_X1 + PLACED ( 21815 47049 ) N ; + - _286_ INV_X1 + PLACED ( 13256 45340 ) N ; + - _287_ NOR2_X1 + PLACED ( 16844 45152 ) N ; + - _288_ INV_X1 + PLACED ( 18130 44804 ) N ; + - _289_ AND2_X1 + PLACED ( 18980 38772 ) N ; + - _290_ INV_X1 + PLACED ( 21131 13356 ) N ; + - _291_ NOR2_X1 + PLACED ( 18737 13110 ) N ; + - _292_ INV_X1 + PLACED ( 14020 11487 ) N ; + - _293_ AOI21_X1 + PLACED ( 18005 13082 ) N ; + - _294_ INV_X1 + PLACED ( 26003 17124 ) N ; + - _295_ NOR2_X1 + PLACED ( 24712 20139 ) N ; + - _296_ INV_X1 + PLACED ( 17375 20606 ) N ; + - _297_ NOR2_X1 + PLACED ( 17618 21756 ) N ; + - _298_ NOR2_X1 + PLACED ( 20373 24153 ) N ; + - _299_ AND2_X1 + PLACED ( 20175 36369 ) N ; + - _300_ INV_X16 + PLACED ( 55480 15491 ) N ; + - _301_ NOR2_X4 + PLACED ( 53842 17696 ) N ; + - _302_ INV_X16 + PLACED ( 48847 18091 ) N ; + - _303_ NOR3_X2 + PLACED ( 51618 18609 ) N ; + - _304_ AOI21_X1 + PLACED ( 49672 18398 ) N ; + - _305_ INV_X1 + PLACED ( 43799 26919 ) N ; + - _306_ INV_X32 + PLACED ( 41494 39812 ) N ; + - _307_ AND2_X4 + PLACED ( 56646 34091 ) N ; + - _308_ INV_X4 + PLACED ( 58253 32758 ) N ; + - _309_ INV_X32 + PLACED ( 48955 52163 ) N ; + - _310_ OAI211_X4 + PLACED ( 53973 37862 ) N ; + - _311_ NAND2_X4 + PLACED ( 56386 30778 ) N ; + - _312_ INV_X16 + PLACED ( 55480 23194 ) N ; + - _313_ NOR2_X1 + PLACED ( 56482 27704 ) N ; + - _314_ NOR3_X4 + PLACED ( 53023 28519 ) N ; + - _315_ NOR2_X2 + PLACED ( 40940 29906 ) N ; + - _316_ INV_X1 + PLACED ( 34345 39925 ) N ; + - _317_ NOR2_X1 + PLACED ( 33345 37563 ) N ; + - _318_ INV_X32 + PLACED ( 33402 4608 ) N ; + - _319_ NOR2_X4 + PLACED ( 34329 28310 ) N ; + - _320_ INV_X4 + PLACED ( 28088 24119 ) N ; + - _321_ NAND2_X1 + PLACED ( 26067 27523 ) N ; + - _322_ INV_X1 + PLACED ( 26029 29792 ) N ; + - _323_ OAI21_X4 + PLACED ( 24346 29504 ) N ; + - _324_ NOR4_X4 + PLACED ( 30520 33259 ) N ; + - _325_ NOR2_X1 + PLACED ( 27394 27244 ) N ; + - _326_ OAI21_X1 + PLACED ( 26145 29380 ) N ; + - _327_ INV_X1 + PLACED ( 13403 30479 ) N ; + - _328_ INV_X32 + PLACED ( 31769 49193 ) N ; + - _329_ NOR3_X2 + PLACED ( 34608 31819 ) N ; + - _330_ AOI21_X4 + PLACED ( 35302 28250 ) N ; + - _331_ OAI221_X4 + PLACED ( 25003 29980 ) N ; + - _332_ OAI211_X1 + PLACED ( 19078 36286 ) N ; + - _333_ AND2_X1 + PLACED ( 11653 37356 ) N ; + - _334_ INV_X1 + PLACED ( 14022 37407 ) N ; + - _335_ NAND2_X1 + PLACED ( 23889 49257 ) N ; + - _336_ NAND2_X1 + PLACED ( 27069 46837 ) N ; + - _337_ NAND2_X1 + PLACED ( 23663 46294 ) N ; + - _338_ INV_X1 + PLACED ( 22242 47535 ) N ; + - _339_ NAND3_X1 + PLACED ( 19240 45200 ) N ; + - _340_ NAND2_X1 + PLACED ( 16912 45080 ) N ; + - _341_ NAND2_X1 + PLACED ( 18233 44605 ) N ; + - _342_ INV_X1 + PLACED ( 19436 13048 ) N ; + - _343_ OAI211_X1 + PLACED ( 18570 13864 ) N ; + - _344_ NAND2_X1 + PLACED ( 19057 14772 ) N ; + - _345_ AOI211_X1 + PLACED ( 20035 22537 ) N ; + - _346_ NAND2_X1 + PLACED ( 24925 20171 ) N ; + - _347_ NAND2_X1 + PLACED ( 17792 22118 ) N ; + - _348_ OAI21_X1 + PLACED ( 22832 22825 ) N ; + - _349_ OR2_X1 + PLACED ( 22336 36084 ) N ; + - _350_ AOI21_X1 + PLACED ( 18643 37688 ) N ; + - _351_ AND4_X1 + PLACED ( 16340 36214 ) N ; + - _352_ AOI22_X1 + PLACED ( 16294 36342 ) N ; + - _353_ OR2_X1 + PLACED ( 17554 34041 ) N ; + - _355_ INV_X2 + PLACED ( 43100 14384 ) N ; + - _357_ AND3_X1 + PLACED ( 19347 38295 ) N ; + - _358_ OAI211_X4 + PLACED ( 23564 36873 ) N ; + - _359_ OAI21_X1 + PLACED ( 17467 37804 ) N ; + - _360_ OAI21_X1 + PLACED ( 23093 36542 ) N ; + - _361_ NAND3_X4 + PLACED ( 24286 37990 ) N ; + - _362_ NOR2_X1 + PLACED ( 42283 44790 ) N ; + - _363_ INV_X1 + PLACED ( 42546 44281 ) N ; + - _364_ NOR2_X4 + PLACED ( 40934 45041 ) N ; + - _365_ AOI221_X4 + PLACED ( 10073 39662 ) N ; + - _366_ AND2_X4 + PLACED ( 41447 45324 ) N ; + - _368_ OAI21_X1 + PLACED ( 15716 35251 ) N ; + - _370_ AOI22_X1 + PLACED ( 11627 36373 ) N ; + - _371_ NOR2_X2 + PLACED ( 19593 30586 ) N ; + - _372_ NAND3_X1 + PLACED ( 19619 37946 ) N ; + - _373_ OR2_X1 + PLACED ( 19314 42490 ) N ; + - _374_ AOI22_X1 + PLACED ( 19387 45128 ) N ; + - _375_ NAND2_X1 + PLACED ( 18929 44137 ) N ; + - _376_ XOR2_X1 + PLACED ( 7497 45520 ) N ; + - _377_ XNOR2_X1 + PLACED ( 8758 44628 ) N ; + - _378_ INV_X1 + PLACED ( 46193 52678 ) N ; + - _380_ NOR2_X1 + PLACED ( 14125 47268 ) N ; + - _381_ NAND2_X1 + PLACED ( 12097 45676 ) N ; + - _382_ AOI221_X4 + PLACED ( 10623 45637 ) N ; + - _383_ AOI21_X1 + PLACED ( 12867 47142 ) N ; + - _384_ INV_X1 + PLACED ( 24096 44348 ) N ; + - _385_ INV_X1 + PLACED ( 23935 41778 ) N ; + - _386_ OAI211_X1 + PLACED ( 24168 45257 ) N ; + - _387_ INV_X1 + PLACED ( 25115 47186 ) N ; + - _388_ AND4_X1 + PLACED ( 24205 47127 ) N ; + - _389_ AOI22_X1 + PLACED ( 24023 47255 ) N ; + - _390_ NOR2_X1 + PLACED ( 25410 47433 ) N ; + - _391_ NOR2_X1 + PLACED ( 21821 53508 ) N ; + - _392_ NAND2_X1 + PLACED ( 23260 52449 ) N ; + - _393_ AOI221_X4 + PLACED ( 15786 53358 ) N ; + - _394_ AOI21_X1 + PLACED ( 21202 53999 ) N ; + - _395_ OAI21_X1 + PLACED ( 24835 44985 ) N ; + - _396_ XOR2_X1 + PLACED ( 27628 54139 ) N ; + - _397_ XNOR2_X1 + PLACED ( 27156 53558 ) N ; + - _398_ NOR2_X1 + PLACED ( 28885 53702 ) N ; + - _399_ AOI221_X1 + PLACED ( 26624 54571 ) N ; + - _401_ OR3_X1 + PLACED ( 27769 46072 ) N ; + - _402_ AOI21_X1 + PLACED ( 28125 54418 ) N ; + - _403_ INV_X1 + PLACED ( 19583 24545 ) N ; + - _404_ OAI211_X1 + PLACED ( 18797 28814 ) N ; + - _405_ AOI21_X1 + PLACED ( 18770 21373 ) N ; + - _406_ AOI21_X1 + PLACED ( 17600 21072 ) N ; + - _407_ AND2_X1 + PLACED ( 18266 20408 ) N ; + - _408_ XNOR2_X1 + PLACED ( 23103 16137 ) N ; + - _409_ XNOR2_X1 + PLACED ( 18336 16537 ) N ; + - _410_ NOR2_X1 + PLACED ( 25241 16319 ) N ; + - _411_ AOI221_X1 + PLACED ( 16156 16563 ) N ; + - _412_ OR3_X1 + PLACED ( 25933 17460 ) N ; + - _413_ AOI21_X1 + PLACED ( 23956 16344 ) N ; + - _414_ OAI21_X1 + PLACED ( 19598 29382 ) N ; + - _415_ AND2_X1 + PLACED ( 19584 22437 ) N ; + - _416_ AND4_X1 + PLACED ( 19836 24588 ) N ; + - _417_ AOI22_X1 + PLACED ( 19778 24673 ) N ; + - _418_ OR2_X1 + PLACED ( 22357 23364 ) N ; + - _419_ NOR2_X1 + PLACED ( 13867 21559 ) N ; + - _420_ AOI221_X4 + PLACED ( 10535 21512 ) N ; + - _421_ OAI21_X1 + PLACED ( 20681 23251 ) N ; + - _422_ AOI21_X1 + PLACED ( 13031 21861 ) N ; + - _423_ AOI21_X1 + PLACED ( 18338 10494 ) N ; + - _424_ NOR2_X1 + PLACED ( 17538 10538 ) N ; + - _425_ NOR2_X1 + PLACED ( 19099 11405 ) N ; + - _426_ XNOR2_X1 + PLACED ( 22175 10988 ) N ; + - _427_ XNOR2_X1 + PLACED ( 22634 10799 ) N ; + - _428_ NOR2_X1 + PLACED ( 30294 13797 ) N ; + - _429_ AOI221_X2 + PLACED ( 31195 13949 ) N ; + - _430_ OR3_X1 + PLACED ( 27148 14861 ) N ; + - _431_ AOI21_X1 + PLACED ( 29514 13620 ) N ; + - _432_ XNOR2_X1 + PLACED ( 18038 7158 ) N ; + - _433_ XNOR2_X1 + PLACED ( 19115 7925 ) N ; + - _434_ AOI221_X2 + PLACED ( 10475 14449 ) N ; + - _435_ OR3_X1 + PLACED ( 25418 14897 ) N ; + - _436_ AOI22_X1 + PLACED ( 12116 13825 ) N ; + - _437_ NAND2_X1 + PLACED ( 37952 32055 ) N ; + - _438_ OAI221_X1 + PLACED ( 39891 28666 ) N ; + - _439_ NAND2_X1 + PLACED ( 39500 27471 ) N ; + - _440_ XOR2_X1 + PLACED ( 34841 25134 ) N ; + - _441_ XNOR2_X1 + PLACED ( 40539 26387 ) N ; + - _442_ AOI221_X2 + PLACED ( 42420 24480 ) N ; + - _443_ NAND2_X1 + PLACED ( 31427 23611 ) N ; + - _444_ AOI22_X1 + PLACED ( 30392 23897 ) N ; + - _445_ OAI21_X1 + PLACED ( 38045 32369 ) N ; + - _446_ NAND2_X1 + PLACED ( 38136 30887 ) N ; + - _447_ XNOR2_X1 + PLACED ( 36546 19269 ) N ; + - _448_ XNOR2_X1 + PLACED ( 36437 19295 ) N ; + - _449_ NOR2_X1 + PLACED ( 36037 15752 ) N ; + - _450_ AOI221_X1 + PLACED ( 31461 18117 ) N ; + - _451_ OR3_X1 + PLACED ( 34609 16183 ) N ; + - _452_ AOI21_X1 + PLACED ( 34691 16069 ) N ; + - _453_ XNOR2_X1 + PLACED ( 36787 37096 ) N ; + - _454_ XNOR2_X1 + PLACED ( 37732 35546 ) N ; + - _455_ AOI221_X2 + PLACED ( 33513 53761 ) N ; + - _456_ OR3_X1 + PLACED ( 32996 43603 ) N ; + - _457_ AOI22_X1 + PLACED ( 33821 47032 ) N ; + - _458_ AOI22_X1 + PLACED ( 56420 30791 ) N ; + - _459_ NOR2_X1 + PLACED ( 57930 28001 ) N ; + - _460_ XOR2_X1 + PLACED ( 56759 18616 ) N ; + - _461_ XNOR2_X1 + PLACED ( 57651 19654 ) N ; + - _462_ NOR2_X1 + PLACED ( 48302 14062 ) N ; + - _463_ AOI221_X1 + PLACED ( 46123 14557 ) N ; + - _464_ OR3_X1 + PLACED ( 47650 15453 ) N ; + - _465_ AOI21_X1 + PLACED ( 47921 14013 ) N ; + - _466_ XNOR2_X1 + PLACED ( 55885 24516 ) N ; + - _467_ XNOR2_X1 + PLACED ( 56173 28829 ) N ; + - _468_ AOI221_X4 + PLACED ( 47160 29135 ) N ; + - _469_ OR3_X1 + PLACED ( 48568 24597 ) N ; + - _470_ AOI22_X1 + PLACED ( 49316 24733 ) N ; + - _471_ XNOR2_X1 + PLACED ( 46792 36566 ) N ; + - _472_ INV_X1 + PLACED ( 52577 37474 ) N ; + - _473_ NOR2_X1 + PLACED ( 51948 37439 ) N ; + - _474_ XNOR2_X1 + PLACED ( 48268 36261 ) N ; + - _475_ AOI221_X4 + PLACED ( 45682 31682 ) N ; + - _476_ NAND3_X1 + PLACED ( 47070 33243 ) N ; + - _477_ AOI22_X1 + PLACED ( 47251 34092 ) N ; + - _478_ XOR2_X1 + PLACED ( 52580 46770 ) N ; + - _479_ AOI221_X4 + PLACED ( 46349 45495 ) N ; + - _480_ NAND3_X1 + PLACED ( 48069 46122 ) N ; + - _481_ AOI22_X1 + PLACED ( 48558 47265 ) N ; + - _482_ NOR2_X1 + PLACED ( 42062 14504 ) N ; + - _483_ NOR2_X1 + PLACED ( 53939 33192 ) N ; + - _484_ AND3_X1 + PLACED ( 52236 34811 ) N ; + - _485_ NAND3_X1 + PLACED ( 30429 37224 ) N ; + - _486_ NOR3_X1 + PLACED ( 23099 15812 ) N ; + - _487_ NAND2_X1 + PLACED ( 24893 16017 ) N ; + - _488_ NOR4_X1 + PLACED ( 27114 40103 ) N ; + - _489_ NAND3_X1 + PLACED ( 26316 42832 ) N ; + - _490_ NOR3_X1 + PLACED ( 36215 22638 ) N ; + - _491_ NAND3_X1 + PLACED ( 39623 21817 ) N ; + - _492_ AOI221_X4 + PLACED ( 40058 20364 ) N ; + - _493_ NAND3_X1 + PLACED ( 34828 53224 ) N ; + - _494_ AOI221_X1 + PLACED ( 36856 20737 ) N ; + - _495_ MUX2_X1 + PLACED ( 12422 57478 ) N ; + - _496_ NOR2_X4 + PLACED ( 42093 52804 ) N ; + - _498_ MUX2_X1 + PLACED ( 14393 56595 ) N ; + - _499_ MUX2_X1 + PLACED ( 1407 34649 ) N ; + - _500_ MUX2_X1 + PLACED ( 3423 38250 ) N ; + - _501_ MUX2_X1 + PLACED ( 1527 50042 ) N ; + - _502_ MUX2_X1 + PLACED ( 4011 49111 ) N ; + - _503_ MUX2_X1 + PLACED ( 33289 57478 ) N ; + - _504_ MUX2_X1 + PLACED ( 35074 56634 ) N ; + - _505_ MUX2_X1 + PLACED ( 26486 4579 ) N ; + - _506_ MUX2_X1 + PLACED ( 27758 5586 ) N ; + - _507_ MUX2_X1 + PLACED ( 1407 21503 ) N ; + - _508_ MUX2_X1 + PLACED ( 3090 19857 ) N ; + - _509_ MUX2_X1 + PLACED ( 1407 10782 ) N ; + - _510_ MUX2_X1 + PLACED ( 3817 11196 ) N ; + - _511_ MUX2_X1 + PLACED ( 12113 5627 ) N ; + - _512_ MUX2_X1 + PLACED ( 13172 5945 ) N ; + - _513_ MUX2_X1 + PLACED ( 7650 27393 ) N ; + - _514_ MUX2_X1 + PLACED ( 9768 28047 ) N ; + - _515_ MUX2_X1 + PLACED ( 1407 25795 ) N ; + - _516_ MUX2_X1 + PLACED ( 2634 25948 ) N ; + - _517_ MUX2_X1 + PLACED ( 40307 10878 ) N ; + - _518_ MUX2_X1 + PLACED ( 41591 8071 ) N ; + - _519_ MUX2_X1 + PLACED ( 35218 39256 ) N ; + - _520_ MUX2_X1 + PLACED ( 34119 40290 ) N ; + - _521_ MUX2_X1 + PLACED ( 54814 9978 ) N ; + - _522_ MUX2_X1 + PLACED ( 55194 10320 ) N ; + - _523_ MUX2_X1 + PLACED ( 49489 5965 ) N ; + - _524_ MUX2_X1 + PLACED ( 51634 6356 ) N ; + - _525_ MUX2_X1 + PLACED ( 47225 39185 ) N ; + - _526_ MUX2_X1 + PLACED ( 54179 40393 ) N ; + - _527_ MUX2_X1 + PLACED ( 54443 46210 ) N ; + - _528_ MUX2_X1 + PLACED ( 55174 46357 ) N ; + - _529_ AOI22_X1 + PLACED ( 29398 27839 ) N ; + - _530_ NOR2_X1 + PLACED ( 27714 28761 ) N ; + - _531_ XNOR2_X1 + PLACED ( 11368 30175 ) N ; + - _532_ XNOR2_X1 + PLACED ( 11889 30747 ) N ; + - _533_ AOI221_X2 + PLACED ( 9882 53714 ) N ; + - _534_ OR3_X1 + PLACED ( 26231 32286 ) N ; + - _535_ AOI22_X1 + PLACED ( 11696 32191 ) N ; + - _536_ DFF_X1 + PLACED ( 2308 34702 ) N ; + - _537_ DFF_X1 + PLACED ( 10835 50057 ) N ; + - _538_ DFF_X1 + PLACED ( 19800 57472 ) N ; + - _539_ DFF_X1 + PLACED ( 26663 57478 ) N ; + - _540_ DFF_X1 + PLACED ( 21167 5241 ) N ; + - _541_ DFF_X1 + PLACED ( 6770 20780 ) N ; + - _542_ DFF_X1 + PLACED ( 26882 10805 ) N ; + - _543_ DFF_X1 + PLACED ( 8384 12468 ) N ; + - _544_ DFF_X1 + PLACED ( 29015 22771 ) N ; + - _545_ DFF_X1 + PLACED ( 33588 10567 ) N ; + - _546_ DFF_X1 + PLACED ( 31706 47040 ) N ; + - _547_ DFF_X1 + PLACED ( 47062 11275 ) N ; + - _548_ DFF_X1 + PLACED ( 47974 24433 ) N ; + - _549_ DFF_X1 + PLACED ( 41073 35650 ) N ; + - _550_ DFF_X1 + PLACED ( 47299 50353 ) N ; + - _551_ DFF_X1 + PLACED ( 42507 19889 ) N ; + - _552_ DFF_X1 + PLACED ( 37278 14044 ) N ; + - _553_ DFF_X1 + PLACED ( 14669 57146 ) N ; + - _554_ DFF_X1 + PLACED ( 3229 39260 ) N ; + - _555_ DFF_X1 + PLACED ( 4071 49135 ) N ; + - _556_ DFF_X1 + PLACED ( 35550 57031 ) N ; + - _557_ DFF_X1 + PLACED ( 28090 5378 ) N ; + - _558_ DFF_X1 + PLACED ( 2661 19369 ) N ; + - _559_ DFF_X1 + PLACED ( 3924 11288 ) N ; + - _560_ DFF_X1 + PLACED ( 12906 5623 ) N ; + - _561_ DFF_X1 + PLACED ( 10300 28237 ) N ; + - _562_ DFF_X1 + PLACED ( 1931 26092 ) N ; + - _563_ DFF_X1 + PLACED ( 41985 7575 ) N ; + - _564_ DFF_X1 + PLACED ( 33865 40801 ) N ; + - _565_ DFF_X1 + PLACED ( 55480 10291 ) N ; + - _566_ DFF_X1 + PLACED ( 52396 6195 ) N ; + - _567_ DFF_X1 + PLACED ( 55437 40902 ) N ; + - _568_ DFF_X1 + PLACED ( 55480 46579 ) N ; + - _569_ DFF_X1 + PLACED ( 1727 31233 ) N ; END COMPONENTS PINS 54 ; - clk + NET clk + DIRECTION INPUT + USE SIGNAL diff --git a/src/gpl/test/simple01-td-tune.ok b/src/gpl/test/simple01-td-tune.ok index f9f11650abd..5c2234f5307 100644 --- a/src/gpl/test/simple01-td-tune.ok +++ b/src/gpl/test/simple01-td-tune.ok @@ -67,32 +67,32 @@ [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. [INFO GPL-0101] Timing-driven: worst slack 1.41e-09 [INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 220 overflow: 0.584 HPWL: 4328332 -[NesterovSolve] Iter: 230 overflow: 0.542 HPWL: 4396799 -[NesterovSolve] Iter: 240 overflow: 0.497 HPWL: 4448421 +[NesterovSolve] Iter: 220 overflow: 0.584 HPWL: 4328333 +[NesterovSolve] Iter: 230 overflow: 0.542 HPWL: 4396817 +[NesterovSolve] Iter: 240 overflow: 0.497 HPWL: 4448439 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. [INFO GPL-0101] Timing-driven: worst slack 1.41e-09 -[INFO GPL-0103] Timing-driven: weighted 32 nets. -[NesterovSolve] Iter: 250 overflow: 0.437 HPWL: 4448351 +[INFO GPL-0103] Timing-driven: weighted 31 nets. +[NesterovSolve] Iter: 250 overflow: 0.437 HPWL: 4448311 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. [INFO GPL-0101] Timing-driven: worst slack 1.41e-09 -[INFO GPL-0103] Timing-driven: weighted 32 nets. -[NesterovSolve] Iter: 260 overflow: 0.384 HPWL: 4438843 -[NesterovSolve] Iter: 270 overflow: 0.334 HPWL: 4468463 +[INFO GPL-0103] Timing-driven: weighted 33 nets. +[NesterovSolve] Iter: 260 overflow: 0.384 HPWL: 4438815 +[NesterovSolve] Iter: 270 overflow: 0.334 HPWL: 4468479 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. [INFO GPL-0101] Timing-driven: worst slack 1.41e-09 -[INFO GPL-0103] Timing-driven: weighted 34 nets. -[NesterovSolve] Iter: 280 overflow: 0.295 HPWL: 4473639 -[NesterovSolve] Iter: 290 overflow: 0.273 HPWL: 4527743 -[NesterovSolve] Iter: 300 overflow: 0.248 HPWL: 4545364 -[NesterovSolve] Iter: 310 overflow: 0.216 HPWL: 4582655 +[INFO GPL-0103] Timing-driven: weighted 32 nets. +[NesterovSolve] Iter: 280 overflow: 0.295 HPWL: 4473643 +[NesterovSolve] Iter: 290 overflow: 0.273 HPWL: 4527720 +[NesterovSolve] Iter: 300 overflow: 0.248 HPWL: 4545384 +[NesterovSolve] Iter: 310 overflow: 0.216 HPWL: 4582667 [INFO GPL-0100] Timing-driven: executing resizer for reweighting nets. [INFO GPL-0101] Timing-driven: worst slack 1.41e-09 -[INFO GPL-0103] Timing-driven: weighted 35 nets. -[NesterovSolve] Iter: 320 overflow: 0.190 HPWL: 4586173 -[NesterovSolve] Iter: 330 overflow: 0.164 HPWL: 4623569 -[NesterovSolve] Iter: 340 overflow: 0.140 HPWL: 4634976 -[NesterovSolve] Iter: 350 overflow: 0.114 HPWL: 4648027 -[NesterovSolve] Finished with Overflow: 0.098313 +[INFO GPL-0103] Timing-driven: weighted 31 nets. +[NesterovSolve] Iter: 320 overflow: 0.190 HPWL: 4586174 +[NesterovSolve] Iter: 330 overflow: 0.164 HPWL: 4623802 +[NesterovSolve] Iter: 340 overflow: 0.140 HPWL: 4634195 +[NesterovSolve] Iter: 350 overflow: 0.112 HPWL: 4648427 +[NesterovSolve] Finished with Overflow: 0.098509 worst slack 1.38 No differences found. diff --git a/test/aes_sky130hs.metrics b/test/aes_sky130hs.metrics index f0bca3b9022..202755d1020 100644 --- a/test/aes_sky130hs.metrics +++ b/test/aes_sky130hs.metrics @@ -29,59 +29,57 @@ "DPL::design_area": "361737", "route__net": 18788, "route__net__special": 2, - "grt__antenna_diodes_count": 1310, - "grt__antenna__violating__nets": 1, - "grt__antenna__violating__pins": 1, - "GRT::ANT::errors": "1", + "grt__antenna_diodes_count": 1270, + "grt__antenna__violating__nets": 0, + "grt__antenna__violating__pins": 0, + "GRT::ANT::errors": "0", "route__net": 18788, "route__net__special": 2, - "route__drc_errors__iter:1": 6337, - "route__wirelength__iter:1": 1831429, - "route__drc_errors__iter:2": 1421, - "route__wirelength__iter:2": 1826500, - "route__drc_errors__iter:3": 1018, - "route__wirelength__iter:3": 1824991, - "route__drc_errors__iter:4": 22, - "route__wirelength__iter:4": 1825042, + "route__drc_errors__iter:1": 6522, + "route__wirelength__iter:1": 1831609, + "route__drc_errors__iter:2": 1287, + "route__wirelength__iter:2": 1826279, + "route__drc_errors__iter:3": 1015, + "route__wirelength__iter:3": 1824833, + "route__drc_errors__iter:4": 18, + "route__wirelength__iter:4": 1824955, "route__drc_errors__iter:5": 0, - "route__wirelength__iter:5": 1825037, + "route__wirelength__iter:5": 1824940, "route__drc_errors": 0, - "route__wirelength": 1825037, - "route__vias": 160474, - "route__vias__singlecut": 160474, + "route__wirelength": 1824940, + "route__vias": 160442, + "route__vias__singlecut": 160442, "route__vias__multicut": 0, "DRT::drv": "0", "drt__repair_antennas__pre_repair__antenna__violating__nets": 31, "drt__repair_antennas__pre_repair__antenna__violating__pins": 32, - "drt__repair_antennas__iter_0__antenna_diodes_count": 1342, - "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 138, - "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1825308, - "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 24, - "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1825268, - "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 17, - "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1825257, + "drt__repair_antennas__iter_0__antenna_diodes_count": 1302, + "drt__repair_antennas__iter_0__route__drc_errors__iter:1": 234, + "drt__repair_antennas__iter_0__route__wirelength__iter:1": 1825214, + "drt__repair_antennas__iter_0__route__drc_errors__iter:2": 22, + "drt__repair_antennas__iter_0__route__wirelength__iter:2": 1825187, + "drt__repair_antennas__iter_0__route__drc_errors__iter:3": 25, + "drt__repair_antennas__iter_0__route__wirelength__iter:3": 1825178, "drt__repair_antennas__iter_0__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1825242, + "drt__repair_antennas__iter_0__route__wirelength__iter:4": 1825163, "drt__repair_antennas__iter_0__route__drc_errors": 0, - "drt__repair_antennas__iter_0__route__wirelength": 1825242, - "drt__repair_antennas__iter_0__route__vias": 160575, - "drt__repair_antennas__iter_0__route__vias__singlecut": 160575, + "drt__repair_antennas__iter_0__route__wirelength": 1825163, + "drt__repair_antennas__iter_0__route__vias": 160547, + "drt__repair_antennas__iter_0__route__vias__singlecut": 160547, "drt__repair_antennas__iter_0__route__vias__multicut": 0, "drt__repair_antennas__iter_0__antenna__violating__nets": 1, "drt__repair_antennas__iter_0__antenna__violating__pins": 1, - "drt__repair_antennas__iter_1__antenna_diodes_count": 1343, - "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 16, - "drt__repair_antennas__iter_1__route__wirelength__iter:1": 1825253, - "drt__repair_antennas__iter_1__route__drc_errors__iter:2": 11, - "drt__repair_antennas__iter_1__route__wirelength__iter:2": 1825243, - "drt__repair_antennas__iter_1__route__drc_errors__iter:3": 1, - "drt__repair_antennas__iter_1__route__wirelength__iter:3": 1825246, - "drt__repair_antennas__iter_1__route__drc_errors__iter:4": 0, - "drt__repair_antennas__iter_1__route__wirelength__iter:4": 1825249, + "drt__repair_antennas__iter_1__antenna_diodes_count": 1303, + "drt__repair_antennas__iter_1__route__drc_errors__iter:1": 13, + "drt__repair_antennas__iter_1__route__wirelength__iter:1": 1825173, + "drt__repair_antennas__iter_1__route__drc_errors__iter:2": 10, + "drt__repair_antennas__iter_1__route__wirelength__iter:2": 1825165, + "drt__repair_antennas__iter_1__route__drc_errors__iter:3": 0, + "drt__repair_antennas__iter_1__route__wirelength__iter:3": 1825169, "drt__repair_antennas__iter_1__route__drc_errors": 0, - "drt__repair_antennas__iter_1__route__wirelength": 1825249, - "drt__repair_antennas__iter_1__route__vias": 160567, - "drt__repair_antennas__iter_1__route__vias__singlecut": 160567, + "drt__repair_antennas__iter_1__route__wirelength": 1825169, + "drt__repair_antennas__iter_1__route__vias": 160544, + "drt__repair_antennas__iter_1__route__vias__singlecut": 160544, "drt__repair_antennas__iter_1__route__vias__multicut": 0, "drt__repair_antennas__iter_1__antenna__violating__nets": 0, "drt__repair_antennas__iter_1__antenna__violating__pins": 0, @@ -91,13 +89,13 @@ "design__violations": 0, "timing__drv__floating__nets": 0, "timing__drv__floating__pins": 0, - "DRT::worst_slack_min": "-0.11352563654916473", - "DRT::worst_slack_max": "-0.926292402332845", - "DRT::tns_max": "-79.98534327930359", - "DRT::clock_skew": "0.5018906543532567", - "DRT::max_slew_slack": "-10.804902017116547", + "DRT::worst_slack_min": "-0.11151613281776054", + "DRT::worst_slack_max": "-0.9078000830224802", + "DRT::tns_max": "-79.01700850619599", + "DRT::clock_skew": "0.4889109255829698", + "DRT::max_slew_slack": "-13.148938119411469", "DRT::max_fanout_slack": "100.0", - "DRT::max_capacitance_slack": "-12.25687574410669", + "DRT::max_capacitance_slack": "-14.814085186091063", "DRT::clock_period": "2.811000", "flow__warnings__count": 32, "flow__errors__count": 0 diff --git a/test/aes_sky130hs.metrics_limits b/test/aes_sky130hs.metrics_limits index dd2696047b3..eb474f703d1 100644 --- a/test/aes_sky130hs.metrics_limits +++ b/test/aes_sky130hs.metrics_limits @@ -10,14 +10,14 @@ ,"RSZ::worst_slack_max" : "-0.9249818549473593" ,"RSZ::tns_max" : "-506.87098488002323" ,"RSZ::hold_buffer_count" : "762" - ,"GRT::ANT::errors" : "1" + ,"GRT::ANT::errors" : "0" ,"DRT::drv" : "0" - ,"DRT::worst_slack_min" : "-0.3946256365491647" - ,"DRT::worst_slack_max" : "-1.207392402332845" - ,"DRT::tns_max" : "-538.8529832793037" - ,"DRT::clock_skew" : "0.602268785223908" - ,"DRT::max_slew_slack" : "-12.965882420539856" - ,"DRT::max_capacitance_slack" : "-14.708250892928028" + ,"DRT::worst_slack_min" : "-0.39261613281776053" + ,"DRT::worst_slack_max" : "-1.1889000830224803" + ,"DRT::tns_max" : "-537.8846485061961" + ,"DRT::clock_skew" : "0.5866931106995638" + ,"DRT::max_slew_slack" : "-15.778725743293762" + ,"DRT::max_capacitance_slack" : "-17.776902223309275" ,"DRT::max_fanout_slack" : "0" ,"DRT::clock_period" : "2.811" ,"DRT::ANT::errors" : "0"