mirror of https://github.com/KLayout/klayout.git
77 lines
3.3 KiB
Plaintext
77 lines
3.3 KiB
Plaintext
|
|
# Hierarchical antenna check
|
|
|
|
source($drc_test_source, "RINGO")
|
|
target($drc_test_target)
|
|
|
|
deep
|
|
|
|
diff = input(2, 0)
|
|
poly = input(3, 0)
|
|
diff_cont = input(4, 0)
|
|
poly_cont = input(5, 0)
|
|
metal1 = input(6, 0)
|
|
via1 = input(7, 0)
|
|
metal2 = input(8, 0)
|
|
diode = input(2, 10)
|
|
|
|
gate = diff & poly
|
|
|
|
connect(gate, poly)
|
|
connect(poly, poly_cont)
|
|
connect(diode, diff_cont)
|
|
connect(diff_cont, metal1)
|
|
connect(poly_cont, metal1)
|
|
connect(metal1, via1)
|
|
connect(via1, metal2)
|
|
|
|
antenna_check(gate, metal2, 1.0, diode).output(101)
|
|
values = labels
|
|
antenna_check(gate, metal2, 1.0, diode, values).output(101, 1)
|
|
values.output(101, 10)
|
|
antenna_check(gate, metal2, 1.5, diode).output(102)
|
|
antenna_check(gate, metal2, 2.0, diode).output(103)
|
|
antenna_check(gate, metal2, 5.0, diode).output(105)
|
|
antenna_check(gate, metal2, 10.0, diode).output(110)
|
|
antenna_check(gate, metal2, 50.0, diode).output(150)
|
|
|
|
antenna_check(gate, metal2, 1.0, [ diode, 0.5 ]).output(201)
|
|
values = labels
|
|
antenna_check(gate, metal2, 1.0, [ diode, 0.5 ], values).output(201, 1)
|
|
values.output(201, 10)
|
|
antenna_check(gate, metal2, 1.0, [ diode, 5.0 ]).output(202)
|
|
antenna_check(gate, metal2, 5.0, [ diode, 5.0 ]).output(205)
|
|
antenna_check(gate, metal2, 10.0, [ diode, 5.0 ]).output(210)
|
|
antenna_check(gate, metal2, 50.0, [ diode, 5.0 ]).output(250)
|
|
|
|
antenna_check(area_only(gate), area_and_perimeter(metal2, 0.2.um), 1.0, diode).output(301)
|
|
values = labels
|
|
antenna_check(area_only(gate), area_and_perimeter(metal2, 0.2.um), 1.0, diode, values).output(301, 1)
|
|
values.output(301, 10)
|
|
antenna_check(area_only(gate), area_and_perimeter(metal2, 0.2.um), 1.5, diode).output(302)
|
|
antenna_check(area_only(gate), area_and_perimeter(metal2, 0.2.um), 2.0, diode).output(303)
|
|
antenna_check(area_only(gate), area_and_perimeter(metal2, 0.2), 5.0, diode).output(305)
|
|
antenna_check(area_only(gate), area_and_perimeter(metal2, 0.0002.mm), 10.0, diode).output(310)
|
|
antenna_check(area_only(gate), area_and_perimeter(metal2, 200.nm), 50.0, diode).output(350)
|
|
|
|
antenna_check(area_and_perimeter(gate, 0.07.um), area_only(metal2), 1.0, diode).output(401)
|
|
values = labels
|
|
antenna_check(area_and_perimeter(gate, 0.07.um), area_only(metal2), 1.0, diode, values).output(401, 1)
|
|
values.output(401, 10)
|
|
antenna_check(area_and_perimeter(gate, 0.07.um), area_only(metal2), 1.5, diode).output(402)
|
|
antenna_check(area_and_perimeter(gate, 0.07.um), area_only(metal2), 2.0, diode).output(403)
|
|
antenna_check(area_and_perimeter(gate, 70.nm), area_only(metal2), 5.0, diode).output(405)
|
|
antenna_check(area_and_perimeter(gate, 0.07), area_only(metal2), 10.0, diode).output(410)
|
|
antenna_check(area_and_perimeter(gate, 0.07), area_only(metal2), 50.0, diode).output(450)
|
|
|
|
antenna_check(perimeter_only(gate, 0.07.um), area_only(metal2), 1.0, diode).output(501)
|
|
values = labels
|
|
antenna_check(perimeter_only(gate, 0.07.um), area_only(metal2), 1.0, diode, values).output(501, 1)
|
|
values.output(501, 10)
|
|
antenna_check(perimeter_only(gate, 0.07.um), area_only(metal2), 1.5, diode).output(502)
|
|
antenna_check(perimeter_only(gate, 0.07.um), area_only(metal2), 2.0, diode).output(503)
|
|
antenna_check(perimeter_only(gate, 70.nm), area_only(metal2), 5.0, diode).output(505)
|
|
antenna_check(perimeter_only(gate, 0.07), area_only(metal2), 10.0, diode).output(510)
|
|
antenna_check(perimeter_only(gate, 0.07), area_only(metal2), 50.0, diode).output(550)
|
|
|