From 6e468b43e0ae2b0b79e2fae7e17e25daaac74265 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 5 Jan 2019 10:12:55 +0100 Subject: [PATCH] WIP: bugfix - local to instance interaction did shortcut too early. --- src/db/db/dbHierNetworkProcessor.cc | 5 ++--- src/db/unit_tests/dbHierNetworkProcessorTests.cc | 6 ++++++ testdata/algo/hc_test_au15.gds | Bin 0 -> 3198 bytes testdata/algo/hc_test_au15b.gds | Bin 0 -> 2818 bytes testdata/algo/hc_test_l15.gds | Bin 0 -> 898 bytes 5 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 testdata/algo/hc_test_au15.gds create mode 100644 testdata/algo/hc_test_au15b.gds create mode 100644 testdata/algo/hc_test_l15.gds diff --git a/src/db/db/dbHierNetworkProcessor.cc b/src/db/db/dbHierNetworkProcessor.cc index e0f1a447b..155e76e92 100644 --- a/src/db/db/dbHierNetworkProcessor.cc +++ b/src/db/db/dbHierNetworkProcessor.cc @@ -1203,12 +1203,11 @@ private: box_type bb2 = (*mp_cbc) (i2.cell_index ()); - db::ICplxTrans t2i = t2 * i2.complex_trans (); const db::Cell &cell2 = mp_layout->cell (i2.cell_index ()); box_type b2 = i2.cell_inst ().bbox (*mp_cbc).transformed (t2); - if (! b1.touches (b2) || ! c1.interacts (cell2, t2i, *mp_conn)) { + if (! b1.touches (b2)) { return; } @@ -1222,7 +1221,7 @@ private: db::ICplxTrans tt2 = t2 * i2.complex_trans (*ii2); box_type ib2 = bb2.transformed (tt2); - if (b1.touches (ib2)) { + if (b1.touches (ib2) && c1.interacts (cell2, tt2, *mp_conn)) { pp2.back () = db::InstElement (i2, ii2); add_single_pair (c1, i2.cell_index (), pp2, tt2); diff --git a/src/db/unit_tests/dbHierNetworkProcessorTests.cc b/src/db/unit_tests/dbHierNetworkProcessorTests.cc index c376f26f1..a16a73294 100644 --- a/src/db/unit_tests/dbHierNetworkProcessorTests.cc +++ b/src/db/unit_tests/dbHierNetworkProcessorTests.cc @@ -1027,3 +1027,9 @@ TEST(114_HierClusters) run_hc_test_with_backannotation (_this, "hc_test_l14.gds", "hc_test_au14b.gds"); } +TEST(115_HierClusters) +{ + run_hc_test (_this, "hc_test_l15.gds", "hc_test_au15.gds"); + run_hc_test_with_backannotation (_this, "hc_test_l15.gds", "hc_test_au15b.gds"); +} + diff --git a/testdata/algo/hc_test_au15.gds b/testdata/algo/hc_test_au15.gds new file mode 100644 index 0000000000000000000000000000000000000000..15cd28050d2a46835307605d547b1d2a861d6dff GIT binary patch literal 3198 zcma);Pe>I}6vn?h?>P=-VJWnE&_AK52NJv}rG(Nz(@5eG6+s1Uf)+0baw!C1`v@V5 z7J)7bTC{NC(jr>5aN({+F08CvxDXQTe0SzB_wl^LMdYX7edn9=op(9rCl^{ToRXkByuMx=U>X=boM#{WP=IH#FD#`o)bpDsBF{IF1KTpqv2lu1LJ& z-4TFlXK8C|{jL529h2^_>Lkj0fO0zuuad-Z{qnecZl_#lFRz$%MUo*xrLzPKZUBcC zV7^RS+W#BNsdLs@ly?T4tpi7vQeKz>Miv33>O$MucJ=orfFAK6hi8F?q*JOc^wvM? zNIy?rng`~GbJ8bU_troE3>=iKWfAsxI`_PgK+X$v&CG<4R8UpRGIfrJwHn0{f4T^NvcY+1}@UlGyvK)lIwB z6iU^Ffo_4>0^Kfl0|S#Vj4{1u0 z=^jnxWXf#aH~$tdreO`!(Mzd%LCQaF%D~gqpR&pA-C~-OWXg}TIhitB_oZy|da{su zk@R{cXSR}F*}Bi`hntdTy`Jp_XTCpWliR;_doO{MxtlI=S91Q@dQfMJ%c&R1?{IZ4 zC%v-uATLgrH6*<_eWmKcATLgrH6%SaeWmIJUMueO1D}}w>AP;B&(A=&!)3e63@N+I z^e^RG{Z)rJ1)H@QvM(&>{-_ddxf9hq$1H~khbPMI~FI=z&t7fgT6P06Pu kuTQcsJ}s517fkH0>&2%xuTQccKE;))Z`YT+)tAfo4=%sW!vFvP literal 0 HcmV?d00001 diff --git a/testdata/algo/hc_test_au15b.gds b/testdata/algo/hc_test_au15b.gds new file mode 100644 index 0000000000000000000000000000000000000000..bfde53a73b21f1db19f5ee4453d9027631890ba1 GIT binary patch literal 2818 zcmbW3Pe@cz6vn^%W_%81VJWm3=$}x8Ac0Xz38jIik;D)cK?VIGXfZ*MOCbo`hX_%$ z2y{`%gH! zxGyuF{_px~vU7T}C_5Q&rUo2YNqBw=7+D5H#f|=C|I$C00J>}sa(E7?TXmx1#-RR1 zTe6j_`+J%{#_c&4%~$zCz3uPUnZMVIiWm9c{FwNY^nEgwk^X5u z=+8WTNcvJQDqiIOemU_c>HldiBmL8S(Er(Dq9>_;ZU2iR^=Uq+|Gk!+pR{wkj-`w| zf0_^Kmsb-#$+~~eXQV#O2lcFv>qzQZzo@t|sAqj#M^eZ7Ma2vB?r_=n&(r$m`d57a zJgtAqhx~os_V+YjuM-t7@b~@Y_ryNapZymVH-`Luf4Po*=J(G2i;5TM-Ar#%KS|#Y zm5ioSKIHH7tdn}yO}(giLH+*Tpbzg4`t$w}6)!qJ?=AX}^yU2}D!#@4Uhe*DX8tzl zo0z{1`X=UYgMQkc7tPsi&ff+-=dR}LHs|mCT>t#s)11@X6BXYw|Nhcz&S~z6if@^J Y4f-bLUxU7h_lE}k|GYogn`OC-KZaVKfB*mh literal 0 HcmV?d00001 diff --git a/testdata/algo/hc_test_l15.gds b/testdata/algo/hc_test_l15.gds new file mode 100644 index 0000000000000000000000000000000000000000..ff5f9ece9558ed08204916f020aec470c98760c4 GIT binary patch literal 898 zcmaKqF-yZh6vzK}Nv}bxRPC5SrJzVbgo;E|&{k+^#UdS492{H(hYk)M3og2g2qL)E z!4J@(qlh>;IJi0J2XJt3DAadJ9?9T!NPfxx@_YAQI4DTD3s=bGCj=50qI)L(3`eSJ zc>~B;iM92MrOH$L+beeF?{4<%a1&-vDOFg2?Eq>-QdKo70p!wFzyI^V7m#YjFU~b# zj{$ZP19x$hs&CimyJ6aAT<_>iNSZ>zOu%3)_R>I_(|12gXd zH_w6c8^Gk8=y&#?f7}GJR710L4>V{xCg((>f0+ut*WBs?-BLtdCtNrBSI@u{&8j)O z0^yuS$s5SrB- zM4Rd{IVT$Z9rC;r2+hh7#2y_DCg;R~e!d&{%RPt|_08m*X!M)8pnpw|{==CYQTHFN K`#zm)+r}TDZHQI? literal 0 HcmV?d00001