Skip to content

Commit df79955

Browse files
committed
ol2/tt_top: make analog wires 0.9 um wide
1 parent 605e9cc commit df79955

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

ol2/tt_top/odb_route_analog_pins.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,24 @@ def route_analog_pins(
3232
via4 = tech.findVia("Via4_YX_so")
3333
via3 = tech.findVia("Via3_XY_so")
3434

35+
analog_track = odb.dbTechNonDefaultRule_create(reader.block, 'analog_track')
36+
for layer in ['Metal1', 'Metal2', 'Metal3', 'Metal4', 'Metal5', 'TopMetal1']:
37+
layer_rule = odb.dbTechLayerRule_create(analog_track, tech.findLayer(layer))
38+
layer_rule.setWidth(900)
39+
layer_rule.setSpacing(2700)
40+
3541
for inst in reader.block.getInsts():
3642
if inst.getMaster().getName() == "tt_um_htfab_r2r_dac":
3743
for term in inst.getITerms():
3844
net = term.getNet()
3945
if net.getName() == "pad_raw[58]":
4046
net.clearSpecial()
47+
net.setNonDefaultRule(analog_track)
4148
bbox = term.getBBox()
4249
wire = odb.dbWire.create(net)
4350
encoder = odb.dbWireEncoder()
4451
encoder.begin(wire)
45-
encoder.newPath(metal5, "FIXED")
52+
encoder.newPath(metal5, "FIXED", analog_track.getLayerRule(metal5))
4653
encoder.addPoint(bbox.xMin(), bbox.yCenter())
4754
encoder.addPoint(bbox.xMin() - 50000, bbox.yCenter())
4855
encoder.addTechVia(via4)
@@ -56,26 +63,28 @@ def route_analog_pins(
5663
net = term.getNet()
5764
if net.getName() == "pad_raw[59]":
5865
net.clearSpecial()
66+
net.setNonDefaultRule(analog_track)
5967
bbox = term.getBBox()
6068
wire = odb.dbWire.create(net)
6169
encoder = odb.dbWireEncoder()
6270
encoder.begin(wire)
63-
encoder.newPath(metal5, "FIXED")
71+
encoder.newPath(metal5, "FIXED", analog_track.getLayerRule(metal5))
6472
encoder.addPoint(bbox.xMin(), bbox.yCenter())
65-
encoder.addPoint(bbox.xMin() - 49000, bbox.yCenter())
73+
encoder.addPoint(bbox.xMin() - 47300, bbox.yCenter())
6674
encoder.addTechVia(via4)
67-
encoder.addPoint(bbox.xMin() - 49000, 886490)
75+
encoder.addPoint(bbox.xMin() - 47300, 886490)
6876
encoder.addPoint(319855, 886490)
6977
encoder.addTechVia(via3)
7078
encoder.addPoint(319855, 884490)
7179
encoder.end()
7280
if net.getName() == "pad_raw[60]":
7381
net.clearSpecial()
82+
net.setNonDefaultRule(analog_track)
7483
bbox = term.getBBox()
7584
wire = odb.dbWire.create(net)
7685
encoder = odb.dbWireEncoder()
7786
encoder.begin(wire)
78-
encoder.newPath(metal5, "FIXED")
87+
encoder.newPath(metal5, "FIXED", analog_track.getLayerRule(metal5))
7988
encoder.addPoint(bbox.xMin(), bbox.yCenter())
8089
encoder.addPoint(bbox.xMin() - 50000, bbox.yCenter())
8190
encoder.addTechVia(via4)
@@ -86,11 +95,12 @@ def route_analog_pins(
8695
encoder.end()
8796
if net.getName() == "pad_raw[61]":
8897
net.clearSpecial()
98+
net.setNonDefaultRule(analog_track)
8999
bbox = term.getBBox()
90100
wire = odb.dbWire.create(net)
91101
encoder = odb.dbWireEncoder()
92102
encoder.begin(wire)
93-
encoder.newPath(metal5, "FIXED")
103+
encoder.newPath(metal5, "FIXED", analog_track.getLayerRule(metal5))
94104
encoder.addPoint(bbox.xMin(), bbox.yCenter())
95105
encoder.addPoint(bbox.xMin() - 50000, bbox.yCenter())
96106
encoder.addTechVia(via4)

0 commit comments

Comments
 (0)