from Hurricane import Instance
from Hurricane import Contact
from Hurricane import Vertical
+from Hurricane import Horizontal
from Hurricane import Pin
from Hurricane import NetExternalComponents
import Viewer
for i in range(1,len(contacts)):
Horizontal.create( contacts[i-1], contacts[i], layer, y, width )
+
+def build_crosstrace(net, via, layer, x, x1, y):
+
+ contacts = \
+ [ Contact.create( net, via, l(x), l(y), l(1.0), l(1.0) )
+ , Contact.create( net, via, l(x1), l(y), l(1.0), l(1.0) )
+ ]
+
+ createHorizontal( contacts, l(y), layer )
+ print "slaves", contacts[-1].getSlaveComponents()
+ for component in contacts[-1].getSlaveComponents():
+ NetExternalComponents.setExternal(component)
+
def build_downtrace(net, via, layer, x, y, y1):
contacts = \
]
createVertical( contacts, l(x), layer )
- #print "slaves", contacts[-1].getSlaveComponents()
- #for component in contacts[-1].getSlaveComponents():
- #NetExternalComponents.setExternal(component)
+ print "slaves", contacts[-1].getSlaveComponents()
+ for component in contacts[-1].getSlaveComponents():
+ NetExternalComponents.setExternal(component)
#print "af", dir(af)
#sys.exit(0)
if True:
VIA23 = DataBase.getDB().getTechnology().getLayer( 'VIA23' )
UpdateSession.open()
+ #net = cell.getNet('b(%d)' % 0)
+ net = cell.getNet('vdd')
+ build_downtrace(net, VIA23, metal3, 5, 10, 20)
build_downtrace(net, VIA23, metal3, 10, 10, 20)
- cell.setAbutmentBox( ab )
+ build_crosstrace(net, VIA23, metal3, 5, 10, 10)
+ build_crosstrace(net, VIA23, metal3, 5, 10, 20)
for i in range(16):
if False:
net = cell.getNet('b(%d)' % i)
x = 20.0*i + 10.0 + 10
y = height-10
build_downtrace(net, metal2, x, y, y+10)
+ ab.inflate ( l(2.0) )
+ cell.setAbutmentBox( ab )
UpdateSession.close()
#af.saveCell( cell, CRL.Catalog.State.Views )