fixed purposes for gdsMill

This commit is contained in:
Joey Kunzler 2020-02-15 15:00:30 -08:00
parent 87b5a48f9e
commit 125bcafb3e
3 changed files with 114 additions and 109 deletions

View File

@ -198,7 +198,7 @@ class Gds2reader:
self.layoutObject.layerNumbersInUse += [drawingLayer] self.layoutObject.layerNumbersInUse += [drawingLayer]
if(self.debugToTerminal==1): if(self.debugToTerminal==1):
print("\t\tDrawing Layer: "+str(drawingLayer)) print("\t\tDrawing Layer: "+str(drawingLayer))
elif(idBits==b'\x16\x02'): #Purpose elif(idBits==b'\x0E\x02'): #Purpose DATATYPE
purposeLayer = struct.unpack(">h",record[2:4])[0] purposeLayer = struct.unpack(">h",record[2:4])[0]
thisBoundary.purposeLayer=purposeLayer thisBoundary.purposeLayer=purposeLayer
if(self.debugToTerminal==1): if(self.debugToTerminal==1):
@ -419,7 +419,7 @@ class Gds2reader:
self.layoutObject.layerNumbersInUse += [drawingLayer] self.layoutObject.layerNumbersInUse += [drawingLayer]
if(self.debugToTerminal==1): if(self.debugToTerminal==1):
print("\t\tDrawing Layer: "+str(drawingLayer)) print("\t\tDrawing Layer: "+str(drawingLayer))
elif(idBits==b'\x16\x02'): #Purpose elif(idBits==b'\x16\x02'): #Purpose TEXTTYPE
purposeLayer = struct.unpack(">h",record[2:4])[0] purposeLayer = struct.unpack(">h",record[2:4])[0]
thisText.purposeLayer=purposeLayer thisText.purposeLayer=purposeLayer
if(self.debugToTerminal==1): if(self.debugToTerminal==1):
@ -570,7 +570,7 @@ class Gds2reader:
self.layoutObject.layerNumbersInUse += [drawingLayer] self.layoutObject.layerNumbersInUse += [drawingLayer]
if(self.debugToTerminal==1): if(self.debugToTerminal==1):
print("\t\tDrawing Layer: "+str(drawingLayer)) print("\t\tDrawing Layer: "+str(drawingLayer))
elif(idBits==b'\x16\x02'): #Purpose elif(idBits==b'\x16\x02'): #Purpose TEXTYPE
purposeLayer = struct.unpack(">h",record[2:4])[0] purposeLayer = struct.unpack(">h",record[2:4])[0]
thisBox.purposeLayer=purposeLayer thisBox.purposeLayer=purposeLayer
if(self.debugToTerminal==1): if(self.debugToTerminal==1):
@ -833,4 +833,3 @@ class Gds2reader:
else: else:
#print("\tDone with collectting bound. Return") #print("\tDone with collectting bound. Return")
return [0,wantedtexts] return [0,wantedtexts]

View File

@ -379,9 +379,8 @@ class Gds2writer:
idBits=b'\x0D\x02' #drawing layer idBits=b'\x0D\x02' #drawing layer
drawingLayer = struct.pack(">h",thisText.drawingLayer) drawingLayer = struct.pack(">h",thisText.drawingLayer)
self.writeRecord(idBits+drawingLayer) self.writeRecord(idBits+drawingLayer)
# TextType is always a 0 per GDS specification idBits=b'\x16\x02' #purpose layer TEXTTYPE
idBits=b'\x16\x02' #purpose layer purposeLayer = struct.pack(">h",thisText.purposeLayer)
purposeLayer = struct.pack(">h",0)
self.writeRecord(idBits+purposeLayer) self.writeRecord(idBits+purposeLayer)
if(thisText.transFlags != ""): if(thisText.transFlags != ""):
idBits=b'\x1A\x01' idBits=b'\x1A\x01'

View File

@ -1,5 +1,12 @@
import math import math
from globals import OPTS
# default purpose layer is used for addText() in vlsiLayout.py
if OPTS.tech_name == "s8":
purposeLayer=20
else:
purposeLayer=0
class GdsStructure: class GdsStructure:
"""Class represent a GDS Structure Object""" """Class represent a GDS Structure Object"""
def __init__(self): def __init__(self):
@ -140,7 +147,7 @@ class GdsText:
self.elementFlags="" self.elementFlags=""
self.plex="" self.plex=""
self.drawingLayer="" self.drawingLayer=""
self.purposeLayer=0 self.purposeLayer=purposeLayer
self.transFlags=[0,0,0] self.transFlags=[0,0,0]
self.magFactor="" self.magFactor=""
self.rotateAngle="" self.rotateAngle=""