attempt better grid alignment for fake cells
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 25 May 2021 15:01:46 +0000 (15:01 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 25 May 2021 15:01:46 +0000 (15:01 +0000)
experiments9/LibreSOCMem.py
experiments9/pll.py

index eadff7eb4ae58eaf9b9792222a0b1bd2f0821f4c..b5c27644778e0f079409ac9c9e8fb1b8b80ed974 100644 (file)
@@ -209,10 +209,12 @@ def _load():
     lib = Library.create(rootlib, 'LibreSOCMem')
 
     cell = Cell.create(lib, 'spblock_512w64b8w')
+    space = 0.1
+
     with UpdateSession():
         cell.setAbutmentBox(Box(
             #u(0.0), u(0.0), u(110.025), u(2.025),
-            u(0.0), u(0.0), u(110.0), u(2.5),
+            u(0.0), u(0.0), u(space*1000), u(space*25),
         ))
         nets = {
             '*': Net.create(cell, '*'),
@@ -230,9 +232,9 @@ def _load():
                 nets[cname] = Net.create(cell, cname)
 
         # create series of stepped pins
-        x = 0.135*20
-        wid = 0.135 / 2
-        step = wid*10
+        x = space*20
+        wid = space
+        step = wid*5
         for name, qty in (('a', 9),
                           ('d', 64),
                           ('q', 64),
@@ -243,7 +245,7 @@ def _load():
                 net = nets[cname]
                 pin = Vertical.create(
                     net, tech.getLayer('metal1'),
-                    u(x), u(wid), u(0), u(3.455),
+                    u(x), u(wid), u(0), u(space*25),
                 )
                 x += step
                 net.setExternal(True)
index 39ea520c1e0313c8791597552316850413ce30d8..ec317551ac0b1b0442f6ab95940edab4233b2136 100644 (file)
@@ -208,11 +208,13 @@ def _load():
 
     lib = Library.create(rootlib, 'pll')
 
+    space = 0.1
+
     cell = Cell.create(lib, 'pll')
     with UpdateSession():
         cell.setAbutmentBox(Box(
             #u(0.0), u(0.0), u(13.5), u(2.025),
-            u(0.0), u(0.0), u(13.5), u(2.5),
+            u(0.0), u(0.0), u(space*100), u(space*25),
         ))
         nets = {
             #'*': Net.create(cell, '*'),
@@ -225,15 +227,15 @@ def _load():
         }
 
         # create series of stepped pins
-        x = 0.135*20
-        wid = 0.135 / 2
-        step = wid*10
+        x = space*20
+        wid = space
+        step = wid*5
         for cname in ['ref', 'div_out_test', 'a0', 'a1', 'vco_test_ana',
                       'out_v']:
             net = nets[cname]
             pin = Vertical.create(
                 net, tech.getLayer('metal1'),
-                u(x), u(wid), u(0), u(3.455),
+                u(x), u(wid), u(0), u(space*15),
             )
             x += step
             net.setExternal(True)