mirror of
https://github.com/KLayout/klayout.git
synced 2026-09-07 03:21:34 +02:00
WIP: DRC properties constraints now need explicit generation of output properties.
This commit is contained in:
Vendored
+15
-15
@@ -40,15 +40,15 @@ l4_wp.output(16, 0)
|
||||
|
||||
# booleans with properties constraints
|
||||
|
||||
l3_wp.and(l4_wp, props_eq).output(20, 0)
|
||||
l3_wp1.and(l4_wp, props_eq).output(21, 0)
|
||||
l3_wp2as1.and(l4_wp, props_eq).output(22, 0)
|
||||
l3_nowp.and(l4_wp, props_eq).output(23, 0)
|
||||
l3_wp.and(l4_wp, props_eq + props_copy).output(20, 0)
|
||||
l3_wp1.and(l4_wp, props_eq + props_copy).output(21, 0)
|
||||
l3_wp2as1.and(l4_wp, props_eq + props_copy).output(22, 0)
|
||||
l3_nowp.and(l4_wp, props_eq + props_copy).output(23, 0)
|
||||
|
||||
l3_wp.and(l4_wp, props_ne).output(30, 0)
|
||||
l3_wp1.and(l4_wp, props_ne).output(31, 0)
|
||||
l3_wp2as1.and(l4_wp, props_ne).output(32, 0)
|
||||
l3_nowp.and(l4_wp, props_ne).output(33, 0)
|
||||
l3_wp.and(l4_wp, props_ne + props_copy).output(30, 0)
|
||||
l3_wp1.and(l4_wp, props_ne + props_copy).output(31, 0)
|
||||
l3_wp2as1.and(l4_wp, props_ne + props_copy).output(32, 0)
|
||||
l3_nowp.and(l4_wp, props_ne + props_copy).output(33, 0)
|
||||
|
||||
l3_wp.and(l4_wp, props_copy).output(40, 0)
|
||||
l3_wp1.and(l4_wp, props_copy).output(41, 0)
|
||||
@@ -79,15 +79,15 @@ l1.nets("NOTEXIST", "NOTEXIST").output(113, 0)
|
||||
l1_nets = l1.nets
|
||||
|
||||
l1_nets.space(1.0.um, projection).polygons.output(200, 0)
|
||||
l1_nets.space(1.0.um, projection, props_eq).polygons.output(201, 0)
|
||||
l1_nets.space(1.0.um, projection, props_ne).polygons.output(202, 0)
|
||||
l1_nets.space(1.0.um, projection, props_eq + props_copy).polygons.output(201, 0)
|
||||
l1_nets.space(1.0.um, projection, props_ne + props_copy).polygons.output(202, 0)
|
||||
l1_nets.space(1.0.um, projection, props_copy).polygons.output(203, 0)
|
||||
l1_nets.width(1.0.um, projection).polygons.output(204, 0)
|
||||
l1_nets.width(1.0.um, projection, props_copy).polygons.output(205, 0)
|
||||
|
||||
l1_nets.drc(space(projection) < 1.0.um).polygons.output(210, 0)
|
||||
l1_nets.drc(space(projection) < 1.0.um, props_eq).polygons.output(211, 0)
|
||||
l1_nets.drc(space(projection) < 1.0.um, props_ne).polygons.output(212, 0)
|
||||
l1_nets.drc(space(projection) < 1.0.um, props_eq + props_copy).polygons.output(211, 0)
|
||||
l1_nets.drc(space(projection) < 1.0.um, props_ne + props_copy).polygons.output(212, 0)
|
||||
l1_nets.drc(space(projection) < 1.0.um, props_copy).polygons.output(213, 0)
|
||||
l1_nets.drc(width(projection) < 1.0.um).polygons.output(214, 0)
|
||||
l1_nets.drc(width(projection) < 1.0.um, props_copy).polygons.output(215, 0)
|
||||
@@ -103,10 +103,10 @@ l1_nets.space(1.0.um, projection, props_copy).edges.extended_in(10.nm).output(22
|
||||
# sizing with properties
|
||||
|
||||
l1_nets_sized = l1_nets.sized(0.2.um)
|
||||
l1_nets_sized.and(l1_nets_sized, props_ne).output(300, 0) # overlap of different nets, same layer
|
||||
l1_nets_sized.and(l1_nets_sized, props_ne + props_copy).output(300, 0) # overlap of different nets, same layer
|
||||
|
||||
l1_nets.drc(primary.sized(0.2.um) & foreign.sized(0.2.um)).output(310, 0)
|
||||
l1_nets.drc(primary.sized(0.2.um) & foreign.sized(0.2.um), props_ne).output(311, 0)
|
||||
l1_nets.drc(primary.sized(0.2.um) & foreign.sized(0.2.um), props_eq).output(312, 0)
|
||||
l1_nets.drc(primary.sized(0.2.um) & foreign.sized(0.2.um), props_ne + props_copy).output(311, 0)
|
||||
l1_nets.drc(primary.sized(0.2.um) & foreign.sized(0.2.um), props_eq + props_copy).output(312, 0)
|
||||
l1_nets.drc(primary.sized(0.2.um) & foreign.sized(0.2.um), props_copy).output(313, 0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user