WGexの「DRC」ボタンを押すと、カレントディレクトリ(最後にGeXファイルを読み込んだディレクトリ)にある drc.mdl ファイルが読み込まれ、その中にあるスクリプトに従ってDRCが実行されます。
PACTとNACTを含むDRCぎりぎりのデザイン例を示します。(4月26日時点のルールではDRCを通りますが、ちょいまずい点があります。あとで修正します)
一番内側にある、NSLあるいはPSLと重なっているACTがNACTあるいはPACTになります。ACTは幅と間隔が4ミクロン以上である必要があります。スクリプト中では、以下のようなルールです。
#for (ACT) check_gap 4 [G] to (ACT) ; N/P-Diffusion #for (ACT) check_width 4 [G] and_gap 4 [G]
また、ACTの領域は全てNSLまたはPSLのどちらかに重なっている必要があります。スクリプト中では、
#for (NSL & ACT) convert (ACT) to (CDN) ; N-diffusion #for (PSL & ACT) convert (ACT) to (CDP) ; P-diffusion
というルールで変換されなかった部分が残っていると、最後の、
#for (ACT) warning Isolated_Active_Error
というルールでチェックされます。
続いて、NSLとPSLについてですが、NSLとPSLは論理的なものであるので直接の制限はあまりありません。幅が8ミクロン以上あること、と、NSLとPSLが重なっていないこと、というルールがある他は、図からもあきらかなように、ウェルとの関係などにはルールがありません。ルールは以下の通りです。
#for (NSL) check_width 8 [G] and_gap 0 [G] #for (PSL) check_width 8 [G] and_gap 0 [G]
#for (NSL & PSL) warning Nsel_Psel_Overslap_Error
NACTとPACTは、チャネルストップ(CST)で囲まれている必要があり、さらにマージンが3ミクロン必要です。以下のようなルールになっています。
#for (CDN) make_oversize 3 [G] as (ACO) #for (ACO & !CST) warning ChStp_Nact_Overslap_Error #for (CDP) make_oversize 3 [G] as (ACO) #for (ACO & !CST) warning ChStp_Pact_Overslap_Error
チャネルストップはウェル(NWLかPWL)で囲まれている必要があり、さらにマージンが2ミクロン必要です。以下のようなルールになっています。
#for (CST) make_oversize 2 [G] as (CSO) #for (CSO & !NWL & !PWL) warning Well_ChStp_Overslap_Error
(続く?)