From 14b040720b3547b14900f0329758c3646fc62a0d Mon Sep 17 00:00:00 2001 From: mguthaus Date: Wed, 24 May 2017 13:57:27 -0700 Subject: [PATCH] Add some router tests for SCMOS. Not all are there. Found bug in off-grid pin access for one test that is still there. --- compiler/router/tests/01_no_blockages_test.py | 3 +-- ...st.gds => 01_no_blockages_test_freepdk45.gds} | Bin .../tests/01_no_blockages_test_scn3me_subm.gds | Bin 0 -> 2048 bytes compiler/router/tests/02_blockages_test.py | 2 +- ..._test.gds => 02_blockages_test_freepdk45.gds} | Bin .../tests/02_blockages_test_scn3me_subm.gds | Bin 0 -> 2048 bytes compiler/router/tests/03_same_layer_pins_test.py | 2 +- ...gds => 03_same_layer_pins_test_freepdk45.gds} | Bin .../03_same_layer_pins_test_scn3me_subm.gds | Bin 0 -> 4096 bytes compiler/router/tests/04_diff_layer_pins_test.py | 4 +--- ...gds => 04_diff_layer_pins_test_freepdk45.gds} | Bin .../04_diff_layer_pins_test_scn3me_subm.gds | Bin 0 -> 4096 bytes compiler/router/tests/05_two_nets_test.py | 2 +- ...s_test.gds => 05_two_nets_test_freepdk45.gds} | Bin .../tests/05_two_nets_test_scn3me_subm.gds | Bin 0 -> 6144 bytes compiler/router/tests/06_pin_location_test.py | 9 ++++++--- .../tests/06_pin_location_test_freepdk45.gds | Bin 0 -> 2048 bytes .../tests/06_pin_location_test_scn3me_subm.gds | Bin 0 -> 2048 bytes .../{07_big_scmos_test.py => 07_big_test.py} | 7 ++++--- ...cmos_test.gds => 07_big_test_scn3me_subm.gds} | Bin 20 files changed, 15 insertions(+), 14 deletions(-) rename compiler/router/tests/{01_no_blockages_test.gds => 01_no_blockages_test_freepdk45.gds} (100%) create mode 100644 compiler/router/tests/01_no_blockages_test_scn3me_subm.gds rename compiler/router/tests/{02_blockages_test.gds => 02_blockages_test_freepdk45.gds} (100%) create mode 100644 compiler/router/tests/02_blockages_test_scn3me_subm.gds rename compiler/router/tests/{03_same_layer_pins_test.gds => 03_same_layer_pins_test_freepdk45.gds} (100%) create mode 100644 compiler/router/tests/03_same_layer_pins_test_scn3me_subm.gds rename compiler/router/tests/{04_diff_layer_pins_test.gds => 04_diff_layer_pins_test_freepdk45.gds} (100%) create mode 100644 compiler/router/tests/04_diff_layer_pins_test_scn3me_subm.gds rename compiler/router/tests/{05_two_nets_test.gds => 05_two_nets_test_freepdk45.gds} (100%) create mode 100644 compiler/router/tests/05_two_nets_test_scn3me_subm.gds create mode 100644 compiler/router/tests/06_pin_location_test_freepdk45.gds create mode 100644 compiler/router/tests/06_pin_location_test_scn3me_subm.gds rename compiler/router/tests/{07_big_scmos_test.py => 07_big_test.py} (91%) rename compiler/router/tests/{07_big_scmos_test.gds => 07_big_test_scn3me_subm.gds} (100%) diff --git a/compiler/router/tests/01_no_blockages_test.py b/compiler/router/tests/01_no_blockages_test.py index c5694a8e..a5efebc4 100644 --- a/compiler/router/tests/01_no_blockages_test.py +++ b/compiler/router/tests/01_no_blockages_test.py @@ -56,8 +56,7 @@ class no_blockages_test(unittest.TestCase): r.route(layer_stack,src="A",dest="B") r.add_route(self) - - r = routing("test1", "01_no_blockages_test") + r = routing("test1", "01_no_blockages_test_{0}".format(OPTS.tech_name)) self.local_check(r) # fails if there are any DRC errors on any cells diff --git a/compiler/router/tests/01_no_blockages_test.gds b/compiler/router/tests/01_no_blockages_test_freepdk45.gds similarity index 100% rename from compiler/router/tests/01_no_blockages_test.gds rename to compiler/router/tests/01_no_blockages_test_freepdk45.gds diff --git a/compiler/router/tests/01_no_blockages_test_scn3me_subm.gds b/compiler/router/tests/01_no_blockages_test_scn3me_subm.gds new file mode 100644 index 0000000000000000000000000000000000000000..a94ec07c09475a019cc6f05b71c51e6056aff5d5 GIT binary patch literal 2048 zcmeH@p-#h46o$Xuws#|x(S-$QH$e!FC1i>;Fv1#wK@Ni)Fc6H)fFpPwVPNKXg*^d5 zBXM{PnviiycL6a3{$6pu+mrtHKj%lI&{T7ZfN5qa6S7JPk43rXso^Vq+&O7qb}yjp zcw5bz^}UDt*LY{RHn=-@r0V@>BYEw&wy5=a{jl3RI%}VHa0{Sk6m@h_0ky!9DrcjS zG1&+22@FkN=$4qIAB{fx5VtZm=0v{>hNd64{?bFV49-%!D{+34?Z-5I;lJH0w@|oF Y-IK9>14G`(yn=X`L zz(~{&gD=qX=rXW|z*Y8o`h9-#lZMxzUx z_#Nlt5;7&1D|xUF!O-ZLlIsut&flr$S6x26_vk&?YtJQ$#gdc+buRuJSeQX2R7NIm zJiX(*okKM1GFgE3S4rT9MvrFy-@SKPUZt$N&;RW{UjKF>xnpVwG^e&qQSDsQ-cB z#e<-yDxN$Df(PkYJopa?9z0a-Rmb=C<(Wy!u4ENK$iU9Ge7oPyydU#s76u*+3JDK4 zk-{!yu^R=91ot`Yp}UM{8qG`fYfCFYE}5F1xj%XC?UTcl_zw)*`=qk-;3V6AbLUN0}RzKtjXLL)@1IDvZC?Tl@WK{P7#>L5yRLZ|&w8;Mk}5 tqcgNLfU>Nsy+o;wN7VpkD_4D5d4+x;^0-n{u{7776rim3oM zkiib*uoFcL+uwQY!X69+s@b~OxVpFu3b7r-#q?w{M3uX4+|@gMbo5Q*aGKTkAvW@?QY#BrTJ>>+13x1jp-9#C6x|DSAE2mLUIFK_ zP@`(b#N~|5$&J?Er+~4Lv2@qO`Pw9{jlz$GK0R>kCb0i9_@c!Qq)NoV?g z$NJzr>luZ&=+)1!^4RBBdF;)Kpzs!B^uRuy{e4Ku=#(ARmY3?s92?`&VKdnEnbNqxf z_oNr3`1!dne(po+OzKWh_+I__^Vh4tKdC=p=_PQ+tUJP4<7Ky=Mku^NyZ+mbYrOr} zj$8Nu^ySELr#l_DV>cK%X_oq1fN;w!us0K-@CIGSarB8+jH73#C1)V#7N-^zzRNMX z^kxj3bL|#sZ`!dPy*M)CZ#s5|o_0)t=i$H+c1uCw%?qCSgOk5r{Uva0Cx2XbQfE?kg2Maf z@Bga5EKu0$JL|X4y2Z@Q9M!#P_S{RSNAa&DdOH2>d(Z19ncmKkU4KdR%{8sRJxShw zbIs0i!v3}1I1L>An7sd9{{LS7`}rHs+@r7AZ5yW2?*N3^6Tt3A5eje6&cFGZ3`4s# H{_X7tz}~%x literal 0 HcmV?d00001 diff --git a/compiler/router/tests/05_two_nets_test.py b/compiler/router/tests/05_two_nets_test.py index f4dc9526..d9120465 100644 --- a/compiler/router/tests/05_two_nets_test.py +++ b/compiler/router/tests/05_two_nets_test.py @@ -62,7 +62,7 @@ class two_nets_test(unittest.TestCase): - r = routing("test1", "05_two_nets_test") + r = routing("test1", "05_two_nets_test_{0}".format(OPTS.tech_name)) self.local_check(r) # fails if there are any DRC errors on any cells diff --git a/compiler/router/tests/05_two_nets_test.gds b/compiler/router/tests/05_two_nets_test_freepdk45.gds similarity index 100% rename from compiler/router/tests/05_two_nets_test.gds rename to compiler/router/tests/05_two_nets_test_freepdk45.gds diff --git a/compiler/router/tests/05_two_nets_test_scn3me_subm.gds b/compiler/router/tests/05_two_nets_test_scn3me_subm.gds new file mode 100644 index 0000000000000000000000000000000000000000..03d837c6b3edfafcc08eae83332e1a889c2b7fce GIT binary patch literal 6144 zcmeH~!Alfj7{(uGXGhyqG&aj^!$XJCq}r9zmM}FTBZ&-x^s-tS2o@5SU5bdJ`VWK- zbqMNY(WyfabcoK;p?@Ig(81DcP47G3KJB-gv$b2$Wd?SB>ofcKeeXN(_s%!);J`z= z&cQXru@z0&hBR7(?@4sYUyY78J#&8Q^4tQDjK%v0@AV#k^Z4_@;TL-!-k%siI_{u- zUGH|JJnzEH!qi+Qe`R(mlMlXU^O>s|xD9~Uin`9sIzE8uiO9YY1jule`=@BKihYuJ5Pa`{?r zOo7xp-IDy3+`j|Yfn65?X6}>AX71Bj zl6t@jexNrAs6V#^sGp=R4DtK^${wA&Vb1aW)#n<6A$7@3h~HG0=1C9DTXRd1)GOsr zf3LrzuW!KkmDDTw`vy#&^!Ix2&(4$7E9KAkzpR+}m3r^hPip+;dRY8s4AvRzj-(#d zUwHna`um&u1Lj`>$7J0p$EAned|D)RVd(ljdJfny3MgA|04Jn9lhlQwew+kG#j8BE z3N%PBB&iE+zxDhweFreqwXFSzq%QwG#BchZTo3x6_5kgFBz0k^U;Dlu%C3E8?UU4n zA%3&|b)NbhQlIu9l6ob74fSv3&&16>&%RGmFYEthelzzfo+YXB*6QPr^8YXM-(cQjPOy~T{l=7(J9J6lz}J%Q3j$6L>c&>8TbK_xzIZR literal 0 HcmV?d00001 diff --git a/compiler/router/tests/06_pin_location_test.py b/compiler/router/tests/06_pin_location_test.py index 69a43d58..4ba9a81c 100644 --- a/compiler/router/tests/06_pin_location_test.py +++ b/compiler/router/tests/06_pin_location_test.py @@ -60,9 +60,12 @@ class pin_location_test(unittest.TestCase): #r.route(layer_stack,src="A",dest="B") r.add_route(self) - - r = routing("test1", "01_no_blockages_test") - self.local_check(r) + # This only works for freepdk45 since the coordinates are hard coded + if OPTS.tech_name == "freepdk45": + r = routing("test1", "06_pin_location_test_{0}".format(OPTS.tech_name)) + self.local_check(r) + else: + debug.warning("This test does not support technology {0}".format(OPTS.tech_name)) # fails if there are any DRC errors on any cells globals.end_openram() diff --git a/compiler/router/tests/06_pin_location_test_freepdk45.gds b/compiler/router/tests/06_pin_location_test_freepdk45.gds new file mode 100644 index 0000000000000000000000000000000000000000..cbad1838203f2d606bd649fabff854b779162e68 GIT binary patch literal 2048 zcmeH@F-ikL7=^#g&W;xH>)l-778Ji*r*Y)@dTDpqll3pXseBlM~F7*yn-k2 z0N%h}L=T|&Ph?%22=+5D^9_%AGjARSg&{2|BFaorCuWHnnu;izfKZu(?qTPmcMf&W zUu)m2>^$DTtZqFthj+Vgq<-N|4e$joVKest literal 0 HcmV?d00001 diff --git a/compiler/router/tests/06_pin_location_test_scn3me_subm.gds b/compiler/router/tests/06_pin_location_test_scn3me_subm.gds new file mode 100644 index 0000000000000000000000000000000000000000..cbad1838203f2d606bd649fabff854b779162e68 GIT binary patch literal 2048 zcmeH@F-ikL7=^#g&W;xH>)l-778Ji*r*Y)@dTDpqll3pXseBlM~F7*yn-k2 z0N%h}L=T|&Ph?%22=+5D^9_%AGjARSg&{2|BFaorCuWHnnu;izfKZu(?qTPmcMf&W zUu)m2>^$DTtZqFthj+Vgq<-N|4e$joVKest literal 0 HcmV?d00001 diff --git a/compiler/router/tests/07_big_scmos_test.py b/compiler/router/tests/07_big_test.py similarity index 91% rename from compiler/router/tests/07_big_scmos_test.py rename to compiler/router/tests/07_big_test.py index 83086327..46f5ffa9 100644 --- a/compiler/router/tests/07_big_scmos_test.py +++ b/compiler/router/tests/07_big_test.py @@ -12,7 +12,7 @@ import calibre OPTS = globals.OPTS -class big_scmos_test(unittest.TestCase): +class big_test(unittest.TestCase): """ Simplest two pin route test with no blockages using the pin locations instead of labels. """ @@ -58,11 +58,12 @@ class big_scmos_test(unittest.TestCase): r.route(layer_stack,src="A",dest="B") r.add_route(self) + # This test only runs on scn3me_subm tech if OPTS.tech_name=="scn3me_subm": - r = routing("test1", "07_big_scmos_test") + r = routing("test1", "07_big_test_{0}".format(OPTS.tech_name)) self.local_check(r) else: - debug.warning("Test must be run in scn3me_subm") + debug.warning("This test does not support technology {0}".format(OPTS.tech_name)) # fails if there are any DRC errors on any cells globals.end_openram() diff --git a/compiler/router/tests/07_big_scmos_test.gds b/compiler/router/tests/07_big_test_scn3me_subm.gds similarity index 100% rename from compiler/router/tests/07_big_scmos_test.gds rename to compiler/router/tests/07_big_test_scn3me_subm.gds