tnt
08/08/2020, 8:55 AMMET1 = tech.findLayer('met1')
VIA = tech.findVia('L1M1_PR')
encoder = odb.dbWireEncoder()
encoder.begin(wire)
encoder.newPath(MET1, "ROUTED")
encoder.addPoint(x0,y)
encoder.addTechVia(VIA)
encoder.addPoint(x1,y)
encoder.addTechVia(VIA)
encoder.end()
Ahmed Ghazy
08/08/2020, 2:12 PMtnt
08/08/2020, 2:14 PMli1
to met1
, move some horizontal distance, go back down to li1
Ahmed Ghazy
08/08/2020, 4:45 PM+ ROUTED met1 ( 209862 226950 ) L1M1_PR ( 212255 * ) L1M1_PR ;
) the same way magic did, which is consistent with what is in the LEF/DEF reference:
viaName
Specifies a via to place at the last point. If
you specify a via, layerName for the next
routing coordinates (if any) is implicitly
changed to the other routing layer for the via.
For example, if the current layer is metal1, a
via12 changes the layer to metal2 for the
next routing coordinates.I am gonna say that klayout is the one in the wrong here; magic is parsing the statement correctly, in my opinion. (@User can maybe also confirm this?). The conclusion is, the code above is not doing what you described; every time you place a via, you switch the layer. You started with met1 and then placed a via, so you are on li1 now. Changing the first layer to li1 does the opposite and shows, at least in magic, correctly, which would generate the GDS view.
tnt
08/08/2020, 4:47 PMTim Edwards
08/09/2020, 2:40 PMtnt
08/09/2020, 2:55 PM