DRUC(1)
π DRUC(1) β the druc girlies' guide π
ALLIANCE USER COMMANDS Β· manual page for druc
β¨ NAME β¨
druc β Design Rule Checker π
πΈ SYNOPSIS πΈ
druc input_name [ -v ] [ -h ]
π¦ ORIGIN π¦
okay so this software is part of the ALLIANCE CAD SYSTEM, and it was built by the ASIM team over at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. π₯β¨
- Web:
http://asim.lip6.fr/recherche/alliance/ - E-mail:
alliance-users@asim.lip6.fr
π DESCRIPTION π
bestie. listen. DRuC is a general parametrized VLSI design rule checker β like, it checks your design rules, generally, and it's parametrized, and it's iconic. π
This tool replaces the VERSATIL tool, which is not supported anymore. rip to VERSATIL, but druc is different fr fr. πͺ¦β¨
This manual presents the layout rules for the ALLIANCE symbolic layout approach. The rules are described in a technology file, and that file is defined by the environment variable RDS_TECHNO_NAME (see below, babes π).
The root cell and all the instantiated cells (except the instantiated library cells, not those ones) must be in the current directory. no cap. like, that's not a vibe suggestion, that's a requirement. π
The default mode of DRuC is (currently) full flat π« β meaning it first flattens all the hierarchy, so it can obtain a flat, rectangle level description. everything. flattened. every time. until further notice.
π OPTIONS π
-vβ Verbose mode: ON β¨. Each step of the DRC gets output on the standard output, so you can literally watch it do the thing. obsessed.-hβ Hierarchical design rule checking π¦. Generates lots of files locally, to be used by future invocations ofdruc. And, quoting the source of truth here: don't ask me if and how this works, but since you also fetched the sources, ... ππ
π quick vibe check: RDS_TECHNO_NAME is the environment variable that points at the technology file where the layout rules live. keep that in mind, bestie.
β¨ DESIGN RULES DESCRIPTION β¨
okay bestie, buckle UP, this is the part where DRuC tells you every single rule it's checking against, and honestly? it's giving β¨design rule bibleβ¨. every rule has its own little error codes so when it yells at you, you know exactly which one you broke π
π 0: LAYER NAME
this bit is literally just the glossary β here's the layer name that gets used in all the rules below π«Ά
NWELLβ N wellNTIEβ N well polarisationPTIEβ P substrat polarisationNDIFβ N diffusionPDIFβ P diffusionGATEβ transistor gatePOLYβ polysilicon wireALU1β first level of metalALU2β second level of metalCONTβ contact betweenALU1andPOLYorDIFFVIAβ contact betweenALU1andALU2
πΈ I: LAYER WIDTH
this class of rules deals with the width limits of a layer, plus the conditions for equipotentiality between two overlapping or abutting segments. slay π
rule 1β the minimum width for a segment ofNWELLis4. corresponding error codes are:100101rule 2β the minimum width for a segment ofNTIEis2. corresponding error code is:119rule 3β the minimum width for a segment ofPTIEis2. corresponding error codes are:122123rule 4β the minimum width for a segment ofNDIFis2. corresponding error codes are:140141rule 5β the minimum width for a segment ofPDIFis2. corresponding error codes are:165166rule 6β the minimum width for a segment ofGATEis1. corresponding error codes are:234235rule 7β the minimum width for a segment ofPOLYis1. corresponding error codes are:234235rule 8β the minimum width for a segment ofALU1is1. corresponding error codes are:238239rule 9β the minimum width for a segment ofALU2is2. corresponding error codes are:242243rule 10β the width of aCONTmust be equal to1. corresponding error codes are:246247rule 11β the width of aVIAmust be equal to1. corresponding error codes are:261262
π II: FORBIDDEN OVERLAP
this class of rules specifies the forbidden overlaps between two layers. (the distance between them must be strictly positive) β so like, they can be next to each other but they cannot TOUCH, periodt π«
rule 12β contact betweenPTIEandNWELLis forbidden. corresponding error codes are:126127128129130131rule 13β contact betweenPTIEandNTIEis forbidden. corresponding error codes are:133134135136137138rule 14β contact betweenNDIFandNWELLis forbidden. corresponding error codes are:144145146147148149rule 15β contact betweenNDIFandNTIEis forbidden. corresponding error codes are:151152153154155156rule 16β contact betweenNDIFandPTIEis forbidden. corresponding error codes are:158159160161162163rule 17β contact betweenPDIFandNTIEis forbidden. corresponding error codes are:169170171172173174rule 18β contact betweenPDIFandPTIEis forbidden. corresponding error codes are:176177178179180181rule 19β contact betweenPDIFandNDIFis forbidden. corresponding error codes are:183184185186187188rule 20β contact betweenGATEandNTIEis forbidden. corresponding error codes are:191192193194195196rule 21β contact betweenGATEandPTIEis forbidden. corresponding error codes are:198199200201202203rule 22β contact betweenPOLYandNTIEis forbidden. corresponding error codes are:207208209210211212rule 23β contact betweenPOLYandPTIEis forbidden. corresponding error codes are:214215216217218219rule 24β contact betweenPOLYandNDIFis forbidden. corresponding error codes are:221222223224225226rule 25β contact betweenPOLYandPDIFis forbidden. corresponding error codes are:228229230231232233rule 26β contact betweenCONTandGATEorPOLYis forbidden. corresponding error codes are:249250251252253rule 27β contact betweenVIAandGATEis forbidden. corresponding error codes are:264265266267268269rule 28β contact betweenVIAandPOLYis forbidden. corresponding error codes are:271272273274275276rule 29β contact betweenVIAandCONTis forbidden. corresponding error codes are:278279280281282283rule 30β contact betweenNTIEandNWELLis forbidden. corresponding error code is:109rule 31β contact betweenPDIFandNWELLis forbidden. corresponding error code is:117
π¦ III: LAYER NOTCH
this class of rules deals with the notch limits of a layer. little nooks and crannies got LIMITS, bestie β¨
rule 32β the minimum notch for a segment ofNWELLis4. corresponding error code is:102rule 33β the minimum notch for a segment ofNTIEis2. corresponding error code is:120rule 34β the minimum notch for a segment ofPTIEis2. corresponding error code is:124rule 35β the minimum notch for a segment ofNDIFis2. corresponding error code is:142rule 36β the minimum notch for a segment ofPDIFis2. corresponding error code is:167rule 37β the minimum notch for a segment ofPOLYis1. corresponding error code is:236rule 38β the minimum notch for a segment ofALU1is2.5. corresponding error code is:240rule 39β the minimum notch for a segment ofALU2is2. corresponding error code is:244
π₯ IV: MINIMUM SPACING
this class of rules specifies the minimum edge-to-edge distance allowed between two layers. personal space matters π
rule 40β the minimum distance betweenNWELLandNWELLis12. corresponding error code is:118rule 42β the minimum distance betweenNTIEandNTIEis3. corresponding error code is:121rule 43β the minimum distance betweenPTIEandNWELLis7.5. corresponding error code is:125rule 44β the minimum distance betweenPTIEandNTIEis8. corresponding error code is:132rule 45β the minimum distance betweenPTIEandPTIEis3. corresponding error code is:139rule 46β the minimum distance betweenNDIFandNWELLis7.5. corresponding error code is:143rule 47β the minimum distance betweenNDIFandNTIEis8. corresponding error code is:150rule 48β the minimum distance betweenNDIFandPTIEis3. corresponding error code is:157rule 49β the minimum distance betweenNDIFandNDIFis3. corresponding error code is:164rule 51β the minimum distance betweenPDIFandNTIEis3. corresponding error code is:168rule 52β the minimum distance betweenPDIFandPTIEis8. corresponding error code is:175rule 53β the minimum distance betweenPDIFandNDIFis8. corresponding error code is:182rule 54β the minimum distance betweenPDIFandPDIFis3. corresponding error code is:189rule 55β the minimum distance betweenGATEandNTIEis1. corresponding error code is:190rule 56β the minimum distance betweenGATEandPTIEis1. corresponding error code is:197rule 57β the minimum distance betweenGATEandNDIFis1. corresponding error code is:204rule 58β the minimum distance betweenGATEandPDIFis1. corresponding error code is:205rule 59β the minimum distance betweenGATEandGATEis2. corresponding error code is:237rule 60β the minimum distance betweenPOLYandNTIEis1. corresponding error code is:206rule 61β the minimum distance betweenPOLYandPTIEis1. corresponding error code is:213rule 62β the minimum distance betweenPOLYandNDIFis1. corresponding error code is:220rule 63β the minimum distance betweenPOLYandPDIFis1. corresponding error code is:227rule 64β the minimum distance betweenPOLYandGATEis2. corresponding error code is:237rule 65β the minimum distance betweenPOLYandPOLYis2. corresponding error code is:237rule 66β the minimum distance betweenALU1andALU1is2.5. corresponding error code is:241rule 67β the minimum distance betweenALU2andALU2is2. corresponding error code is:245rule 68β the minimum distance betweenCONTandCONTis3. corresponding error code is:254rule 69β the minimum distance betweenVIAandGATEis2. corresponding error code is:263rule 70β the minimum distance betweenVIAandPOLYis2. corresponding error code is:270rule 71β the minimum distance betweenVIAandCONTis2. corresponding error code is:277rule 72β the minimum distance betweenVIAandVIAis3. corresponding error code is:284rule 73β the minimum distance betweenCONTandGATEorPOLYis1.5. corresponding error code is:248
π V: TOTAL INCLUSION
the last class of rules deals with the inclusion of a layer in another one. it's giving "you belong INSIDE me" energy π«Ά
rule 74βNTIEmust be included inNWELLwith a minimun margin of0.5. corresponding error code is:103rule 75βPDIFmust be included inNWELLwith a minimun margin of0.5. corresponding error code is:110
πΎ FILES
if design errors are found, DRuC produces the list of them in two files:
<root_name.drc>β this ascii file contains the list of DRC violations.<root_name.iii>β this gds ro cif file contains only rectangles detected in violation. (suffixiiiis defined with the environment)
RDS_OUT_PH is default setted to gds.
π ENVIRONMENT VARIABLES
DRuC uses several environment variables:
MBK_IN_PHβ defines the layout input format.RDS_OUT_PHβ defines the layout output format.RDS_TECHNO_NAMEβ defines the technology file.MBK_CATA_LIBβ defines the catalog directory.
see the corresponding manual pages for further information π
π EXAMPLE
druc register
π BUG REPORT
this tool is under development at the ASIM department of the LIP6 laboratory. we need your feedback to improve documentation and tools. fr fr, tell them what's broken, they're literally asking π
and that's the whole page bestie, we ate π
β¨ β this lil legend comes from ASIM/LIP6, dated October 1, 1997, and lives in section 1 as DRUC(1). iconic behavior, no cap π
π¦ where this page comes from
- fedora 43: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 43: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms