
1. Re: Calibre rule to measure separation based on an independent intervening layer
dan_liddell Oct 28, 2014 5:13 PM (in response to terry.lalonde)Hi Terry,
Do you have 2009.3 or later?
Thanks,
dan

2. Re: Calibre rule to measure separation based on an independent intervening layer
terry.lalonde Oct 29, 2014 7:28 AM (in response to dan_liddell)Hi Dan:
2009.2_27.17 so I guess no
Terry

3. Re: Calibre rule to measure separation based on an independent intervening layer
dan_liddell Oct 29, 2014 11:42 AM (in response to terry.lalonde)Hi Terry,
Reason I asked is, DFM SPACE was introduced in 9.3. It is more efficient than EXTernal when it comes to large measurement constraints such as what you want to use. Since DFM SPACE isn't an option for you in 9.2, we'll go with EXT.
For your item 3, I think you're going to have to specify an upper limit to the measurement constraint range. Right now you have no upper bound to your interval. In order to satisfy the condition of testing for the existence of S1 between well polygons, somehow you're going to have to construct regions to check for the presence of S1 between wells. The only way to do this that I know of is to have a bounded constraint interval.
Here are some ideas to try out. You may need to modify them to get the exact thing you're looking for.
// these edges are from wells that are inside the minimum spacing
min_well_edge = EXT [well] < 10
// filter out the polygons you've already checked to reduce the data set for following operations.
// this is important, because using EXT with huge measurement constraint values is compute intensive.
not_min_well = well NOT WITH EDGE min_well_edge
// well edges in the "middle" measurement interval
mid_well_edge = EXT [not_min_well] >= 10 < 15
// form regions to test for the presence of S1 and S2; EXPAND EDGE has additional options that might be helpful to get the precise regions you want.
mid_well_region = EXPAND EDGE mid_well_edge OUTSIDE BY 7.501
// test for S1
mid_well_region_S1 = mid_well_region INTERACT S1
// test for S2
mid_well_region_S1_S2 = mid_well_region_S1 INTERACT S2
// these regions are bad.
// if a polygonal result is OK for debug purposes, output this layer in a rule check.
bad_mid_well_region = mid_well_region NOT mid_well_region_S1_S2
// if you prefer an edge result layer, output the following derived edge layer instead of the previous one.
bad_mid_well_edge = mid_well_edge COINCIDENT EDGE bad_mid_well_region
// again, filter out the polygons that you don't need to check again. this reduces the data set.
not_mid_well = not_min_well NOT WITH EDGE mid_well_edge
To check your condition #3, you can proceed with pretty much the same ideas above for the "mid" derived layers. You don't need to check for S2, so that derivation you can skip. As I mention previously, you'll have to pick an upper bound for the measurement constraint interval in order to test for S1.
Output the required layers using COPY in a rule check, or use DFM RDB if that works better.
Hope this helps.
dan

4. Re: Calibre rule to measure separation based on an independent intervening layer
terry.lalonde Oct 29, 2014 11:54 AM (in response to dan_liddell)Hi Dan:
Thanks so much for spending time on this.
My concern with your solution, is the “interact” check. I don’t think it will ensure that the S1 or S2 layers provide a complete shield in the region between the Wells. The width of the shield is not important but it should shield the other edge completely. I really hope my explanation is clear. If nit please ask follow on questions.
Terry

5. Re: Calibre rule to measure separation based on an independent intervening layer
dan_liddell Oct 29, 2014 2:51 PM (in response to terry.lalonde)Hi Terry,
You're welcome.
DFM SPACE is probably the best tool for shielded measurement applications. But it appeared in 9.3
Here are some other ideas just off the top of my head. Not really tested, but might help give some other insights into a solution.
There is the TDDRC operation which has the EXCLUDE_SHIELDED option. The shielding level is adjustable. The challenge with this operation for your check is, it checks only one layer. If you derive a layer such that it's the union of appropriate well, S1, and S2 polygons and then use TDDRC on that union, I think you'll be able to find true (unshielded) errors. I think you're well on your way to finding the appropriate polygons from all the layers.
The problem is, you'll also have false errors involving original polygons on S1 and S2. So you'll want to filter those out. Using to ensure derived layer output or possibly some of the other output options may enable you to filter the false results. Otherwise whoever is looking at the results will have to determine which errors are true and which are false "shielding" errors involving S1 and S2 original polygons.
Ideally, it would be nice to use just topological operations to detect shielding. I had this thought:
…
mid_well_region = EXPAND EDGE mid_well_edge OUTSIDE BY 7.501
// localize the interactions of S1 with mid_well_region.
// need this in case an S1 polygon interacts with more than one mid_well_region polygon.
a = S1 AND mid_well_region
// find the regions that are not "a". this includes regions completely split by "a" (shielding occurs), which is what we're after.
b = mid_well_region NOT a
// these are the S1 intersections that split the mid_well_regions into 2
c = a INTERACT b == 2
// these are the mid_well_region polygons that represent full S1 shielding
mid_well_region_c = mid_well_region INTERACT c
This may be overly simplistic. But if it works, then carry it forward with the test for S2 and check just the nonshielded regions.
dan

6. Re: Calibre rule to measure separation based on an independent intervening layer
terry.lalonde Oct 30, 2014 9:06 AM (in response to dan_liddell)Dan:
Thanks again for spending time on this. I think I have a solution. I’m not 100% happy with it but it does seem to work on my test cases. The “REGION” output can be messy; I could not get EXPAND to cover the midwell region properly with corner to corner test cases.
Rule_1.2.B {@ NWELL (different potential) spaced between 21.0 and 25.0 must be separated by both S1 and S2.
xx = EXT z >=21 <25 REGION NOT CONNECTED // Some of these are violations
//(used REGION rather than EXPAND
// as it seems to output “directional”
// error polygons
x = SIZE xx BY .01 UNDEROVER // minor cleanup of “region” output
w = x AND S1 // S1 cuts violations
v = x NOT S1 // violations with S1 cut out
u = w INTERACT v>1 // S1 cuts which form complete shields
t = x NOT INTERACT u // violations which are not completely shielded by S1
s = x AND S2 // S2 cuts violations
r = x NOT S2 // violations with S2 cut out
q = s INTERACT r>1 // S2 cuts which form complete shieldsp = x NOT INTERACT q // violations which are not completely shielded by S2
t OR p
}
Terry

7. Re: Calibre rule to measure separation based on an independent intervening layer
dan_liddell Oct 30, 2014 10:17 AM (in response to terry.lalonde)Hi Terry,
Again, you're welcome.
EXPAND EDGE does have the EXTEND BY and CORNER FILL options, which could help your cornertocorner cases in certain situations. Whether they will cover all your cases is an open question. : )
dan