python-klayout
create layout
ly = db.Layout()
ly.dbu = 0.001
define layer
AA = ly.layer(1, 1,“AA”)
Create a cell
BitCell_Unit= ly.create_cell(“BitCell_Unit”)
setup CT060 instance and insert CT as instance
CT060 = ly.create_cell(“CT060”)
width = CD_CT060
height = CD_CT060
pt = db.DPoint(0, 0)
box_CT060 = db.DBox(pt, pt + db.DVector(width, height))
CT060.shapes(CT).insert(box_CT060)
xPosition= (Len_AA_BL - CD_CT040)/2
yPosition= CD_CT040/2*-1
xPitch=0
yPitch=Width_AA_BL
CTBL = db.DCellInstArray(
CT040.cell_index(),
db.DTrans(db.DTrans.R0, xPosition, yPosition),
db.DVector(0, yPitch),
db.DVector(xPitch, 0),
2,
2
)
BitCell_Unit.insert(CTBL)
Insert a layer
width = 0.1
length = 10
xPosition=0
yPosition=0
pt = db.DPoint(xPosition,yPosition)
box_M1_BL = db.DBox(pt, pt + db.DVector(length, width))
BitCell_Unit.shapes(M1).insert(box_M1_BL)
copy an instance
BitCell1_Unit= ly.create_cell(“BitCell1_Unit”)
BitCell1_Unit.copy_tree(BitCell_Unit)
flatten an instance and delete a layer
BitCell1_Unit.flatten(-1)
BitCell1_Unit.clear(CT)
write to a GDS
ly.write(“TEST.gds”)