Hi all, I work on the MOSIS 0.5um technology and we use the NCSU cadence development kit. Mosis defines rules when you want to make denser contacts with more constraints on the surrounding areas. These are called alternative contacts and the rules in terms of lambda are defined here: [URL]http://www.mosis.com/Technical/Designrules/scmos/scmos-contact.html[/URL] I want to export my design to Tanner tools. I have a MOSIS PDK from tanner but in the DRC rule deck, the DRC rules for the above mentioned contacts is not defined. I defined most of the rules, but I am stuck on one rule which says that if you many contacts on say poly then the distance from contacts to active should be 3 lambda. Idea is to detect that you have multiple contacts and run the rule. The Diva DRC rule from NCSU kit checks this error with following command: ;; 5.7.b sprintf( errMesg "(SCMOS Rule 5.7.b) poly contact to active spacing, many contacts: %.2f um" (lambda*3.0)) saveDerived( geomGetLength( drc(cpEdge activeEdge sep < (lambda * 3.0)) length > (lambda * 7.0) fig ) errMesg ) Can somebody please help me understand how this is checking the above rule. Here's what I understand: 1. first check separation of poly contact edge(cpEdge) to edge of active (activeEdge) 2. DRC command generates an error layer if this separation is less than 3 lambda 3. Use geomGetLength command to find edges in the error layer whose length are greater than 7 lambda and return error as a figure and save it in the database. What I don't understand, that how does checking for edge lengths greater 7 lamda accomplishes this rule. What does the DRC command return on which the geomGetLength operates on? I would appreciate if any body could shed light on this. Thanks Vaibhav Garg