(57)【要約】      （修正有）【課題】素子プロパティの値が入力された後に回路図の検査を行う場合に、最新の設計規則に従った検査を容易に行う。【解決手段】回路図を読み込む回路図読込手段２０２と、検査ルールを読み込む検査ルール読込手段２０１と、前記回路図読込手段によって読み込まれた回路図に含まれる素子の特性を示す素子特性情報、及び当該素子と他の素子を関連付けるグループ情報を含むプロパティを取得するプロパティ取得手段２１４と、前記回路図読込手段２０２によって読み込まれた回路図について、前記検査ルール読込手段２０１によって読み込まれた検査ルール及び前記プロパティ取得手段２１４によって取得されたプロパティに基づいて検査を実行する検査実行手段２０７と、前記検査実行手段２０７の検査結果のうちエラー判定をされた素子のプロパティを参照し、当該素子についてエラー表示を行う表示手段２０８と、を備えたＣＡＤ回路図検査装置。【選択図】図２
2008287341.tif 000002
【特許請求の範囲】
【請求項１】
複数の素子を含む回路図について検査を行うＣＡＤ回路図検査装置であって、
前記回路図を読み込む回路図読込手段と、
検査ルールを読み込む検査ルール読込手段と、
前記回路図読込手段によって読み込まれた回路図に含まれる素子の特性を示す素子特性情報、及び当該素子と他の素子を関連付けるグループ情報を含むプロパティを取得するプロパティ取得手段と、
前記回路図読込手段によって読み込まれた回路図について、前記検査ルール読込手段によって読み込まれた検査ルール及び前記プロパティ取得手段によって取得されたプロパティに基づいて検査を実行する検査実行手段と、
前記検査実行手段の検査結果のうちエラー判定をされた素子のプロパティを参照し、当該素子についてエラー表示を行う表示手段と、を備えたことを特徴とするＣＡＤ回路図検査装置。
【請求項２】
前記検査実行手段は、前記回路図読込手段によって読み込まれた回路図について、前記検査ルール及び前記素子特性情報に基づいて検査を実行し、
前記表示手段は、前記検査実行手段の検査結果のうちエラー判定をされた素子のグループ情報を参照し、当該グループ情報によって関連づけられた他の素子についてエラー表示を行う請求項１に記載のＣＡＤ回路図検査装置。
【請求項３】
前記表示手段は、前記検査実行手段の検査結果のうちエラー判定をされた素子及び当該素子のグループ情報によって関連付けられた他の素子について強調表示する請求項２に記載のＣＡＤ回路図検査装置。
【請求項４】
前記検査実行手段の検査結果のうちエラー判定をされた素子について、前記素子特性情報を修正する修正手段をさらに備えた請求項１乃至３のいずれか１項に記載のＣＡＤ回路図検査装置。
【請求項５】
複数の検査ルールの中から一の検査ルールを選択する検査ルール選択手段をさらに備え、
前記検査ルール読込手段は、前記選択手段によって選択された検査ルールを読み込む請求項１乃至４の何れか１項に記載のＣＡＤ回路図検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＤ回路図検査装置に関し、特に、複数の素子をグループ化し、エラー表示を行うＣＡＤ回路図検査装置に関する。
【背景技術】
【０００２】
近年の集積回路の回路設計では、電子計算機を利用した設計の自動化が進んでいる。回路を電子計算機に入力するためには、回路編集アプリケーション・プログラムが使われる。電子計算機に入力された回路は、紙の上に描かれたものとの相似性から回路図と呼ばれる。
【０００３】
回路図は、回路シミュレーションで期待される機能・性能を満足するか否かについての検証、素子マスクレイアウトの自動生成、及び集積回路マスクレイアウトが設計回路通りに作成されていることの確認のために使われる。電子計算機に入力された回路図は、このように、回路設計の全ての後工程に渡って利用されるため、誤りの無いことが重要である。誤りがあると、工程の逆戻りが起こり、集積回路設計期間の増大を招くことになるからである。
【０００４】
回路図には、マスクレイアウトを設計するために必要な情報が入力される。特に、回路図を編集するためのＣＡＤプログラムでは、これらの情報のうち素子情報は、回路図に置かれた素子シンボルにプロパティ（素子プロパティ）として付加される。また、回路の製造プロセスの情報は、回路図のプロパティ（回路図プロパティ）として付加される。そして、これらの情報は、素子のマスクレイアウトの設計及びマスクレイアウトが回路図通りに設計されていることの検証のために使われる。マスクレイアウトが正しく設計されることは、半導体集積回路の動作や特性にとって重要である。従って、これらのプロパティが素子シンボルや回路図に誤り無く付加されていることを検査することにより、設計の後戻りを防止し、設計期間の短縮に寄与することになる。
【０００５】
また、近年の半導体集積回路の製造プロセスは、実現する素子の種類、性能、及び微細化の世代などにより多様化している。素子シンボルや回路図に付加されるプロパティ（マスクレイアウト情報やプロセス情報の種類、及びそれらの値）は製造プロセスに依存して定められるものであるから、プロパティに誤りが無いことを検査する方法も多様化している。従って、検査装置の利用者が容易に正しい検査手順を選択できること、及び検査結果から誤りのある回路の個所を短時間に特定し、正しい値に修正できるようにすることも設計期間の短縮に寄与することになる。
【０００６】
抵抗素子を例にとると、抵抗素子には製造精度に由来して最短の長さの制限がある。抵抗素子のマスクレイアウトを表現するために抵抗値と抵抗幅のプロパティを用いる。抵抗素子の長さが最短の長さ以上であることを検査するためには、抵抗値と抵抗幅に基づいて抵抗素子の長さを求め、求められた抵抗素子の長さが最短の長さ以上であることを確認する必要がある。すなわち、プロパティの値に誤りがないことは、複数のプロパティの値の関係演算を通じて検査する必要がある。
【０００７】
また、アナログ回路では、同じ特性の素子を組み合わせることにより、高精度な回路特性が作りこまれる。素子特性は素子マスクレイアウトの形状により制御される。このため、マスクレイアウトのプロパティは、同じ特性が与えられる素子（整合素子グループ）同士の間で強い関連性がある。すなわち、素子プロパティの値は、整合素子グループを考慮して定められる必要があり、プロパティの誤りを修正する際にも整合素子グループを考慮する必要がある。
【０００８】
これに対して、特許文献１及び２では、素子プロパティの値を入力する時点でその値の検査を行う方法が提案されている。しかし、集積回路の設計は１年以上の長期にわたる場合がある。その間に、設計途中の回路の製造プロセスの設計規則が歩留まり向上などを目的に変更され、素子プロパティの値を入力した時点では正しかった値が、設計規則変更後にエラーとなることがしばしば起こる。このため、素子プロパティの値の入力時点での検査だけでは不十分であり、素子プロパティの値が入力された後であっても、その時点での最新の設計規則に従って検査する必要がある。
【特許文献１】特開平９−１２８４２４号公報
【特許文献２】特開平１１−１８４９０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、素子プロパティの値が入力された後に回路図の検査を行う場合に、最新の設計規則に従った検査を容易に行うことである。
【課題を解決するための手段】
【００１０】
本発明の第１態様によれば、複数の素子を含む回路図について検査を行うＣＡＤ回路図検査装置であって、前記回路図を読み込む回路図読込手段と、検査ルールを読み込む検査ルール読込手段と、前記回路図読込手段によって読み込まれた回路図に含まれる素子の特性を示す素子特性情報、及び当該素子と他の素子を関連付けるグループ情報を含むプロパティを取得するプロパティ取得手段と、前記回路図読込手段によって読み込まれた回路図について、前記検査ルール読込手段によって読み込まれた検査ルール及び前記プロパティ取得手段によって取得されたプロパティに基づいて検査を実行する検査実行手段と、前記検査実行手段の検査結果のうちエラー判定をされた素子のプロパティを参照し、当該素子についてエラー表示を行う表示手段と、を備えたことを特徴とするＣＡＤ回路図検査装置が提供される。
【発明の効果】
【００１１】
本発明によれば、素子プロパティの値が入力された後に検査を行う場合に、最新の設計規則に従った検査を容易に行うことができ、ひいては、回路の設計期間を短縮することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
【実施例１】
【００１３】
はじめに、本発明の実施例１について説明する。図１は、本発明の実施例１のＣＡＤ回路検査装置１００の構成を示すブロック図である。
【００１４】
本発明の実施例１のＣＡＤ回路検査装置１００は、表示装置１０１、キーボード１０２、マウス１０３、及びプリンタ１１７と接続されている。本発明の実施例１のＣＡＤ回路検査装置１００は、画面表示制御部１０４、制御部（ＣＰＵ）１０５、メモリ１０６、入出力制御部１０７、及び記憶部１０８を備えている。本発明の実施例１のＣＡＤ回路検査装置１００は、表示装置１０１に所定の画面を表示するとともに、キーボード１０２又はマウス１０３を介してオペレータの指示を受け付ける。
【００１５】
記憶部１０８は、本発明の実施例１のＣＡＤ回路検査装置１００の検査対象となる回路図データ１１０が格納された回路図ライブラリ１０９、回路図検査プログラム１１２を含む回路図編集プログラム１１１、回路図ライブラリ１０９により参照される素子シンボルデータ１１４が格納された素子シンボルライブラリ１１３、ＣＡＤ回路検査装置１００に検査内容を指示する製造プロセス毎のマクロプログラム１１６が格納された回路図検査マクロプログラム１１５を記憶する。
【００１６】
制御部１０５は、キーボード１０２又はマウス１０３を介して受け付けられたオペレータの指示に従って、回路図編集プログラム１１１をメモリ１０６に読み込んで実行する。
【００１７】
本発明の実施例１のＣＡＤ回路図検査装置１００の起動は、回路図編集プログラム１１１が実行され、次に、本発明の実施例１のＣＡＤ回路図検査装置１００を起動するためのコマンドが回路図編集プログラム１１１に与えられることにより行われる。なお、本発明の実施例１のＣＡＤ回路図検査装置１００の起動は、回路図編集プログラム１１１へのテキストコマンド入力を通じて行われても良いし、回路図編集プログラム１１１が表示装置１０１に画面表示するコマンド選択用グラフィックユーザインターフェイスを通じて行われても良い。
【００１８】
図２は、本発明の実施例１の制御部１０５の機能ブロックを示すブロック図である。この機能ブロックは、本発明の実施例１の制御部１０５により回路図検査プログラム１１２が実行された場合に実現される手段であって、検査ルール選択手段２０１、検査ルール読込手段２０２、検査プログラム翻訳手段２０３、検査回路選択手段２０４、検査回路階層読込手段２０５、一時記憶手段２０６、検査実行手段２０７、エラー画面表示手段２０８、エラー回路図表示手段２０９、エラーファイル出力手段２１０、プロパティ自動修正可否設定手段２１７、プロパティ自動修正可否確認手段２１８、修正後回路図書出手段２２１、及び整合素子検索手段２２２を備えている。
【００１９】
一時記憶手段２０６には、回路図データ２１１、翻訳後マクロプログラム２１２、及びエラー情報２１３が記憶される。検査実行手段２０７は、プロパティ取得手段２１４、数値・論理演算手段２１５、エラー判定手段２１６、修正プロパティ計算手段２１９、及びプロパティ修正手段２２０を有している。
【００２０】
検査ルール選択手段２０１は、検査ルールに関するオペレータの指示を検査ルール読込手段２０２に送る。
【００２１】
検査ルール読込手段２０２は、検査ルール選択手段２０１から送られた指示に従って、製造プロセス毎のマクロプログラム１１６を記憶部１０８から読み込んで検査プログラム翻訳手段２０３に送る。
【００２２】
検査プログラム翻訳手段２０３は、検査ルール読込手段２０２から送られた製造プロセス毎のマクロプログラム１１６を翻訳し、実行オブジェクトである翻訳後マクロプログラム２１２として一時記憶手段２０６に登録する。
【００２３】
検査回路選択手段２０４は、検査対象とする回路図に関するオペレータの指示を検査回路階層読込手段２０５に送る。検査回路選択手段２０４は、検査対象とする回路図が複数の回路図データ１１０により階層的に構成されている場合には、各々の回路図データ１１０を順次読み込む。
【００２４】
検査回路階層読込手段２０５は、検査回路選択手段２０４から送られた指示に従って検査対象とする回路図の回路図データ１１０を記憶部１０８から読み込み、回路図データ２１１として一時記憶手段２０６に登録する。
【００２５】
検査実行手段２０７は、一時記憶手段２０６に登録された翻訳後マクロプログラム２１２を実行して本発明の実施例１の回路図検査処理を行う。このとき、回路階層を構成している各々の回路図データ２１１が検査回路階層読込手段２０５により順次読み込まれ、検査実行手段２０７により順次検査される。
【００２６】
プロパティ取得手段２１４は、回路図データ２１１における回路図プロパティ及び素子プロパティを取得し、数値・論理演算手段２１５が利用できるように加工する。
【００２７】
数値・論理演算手段２１５は、プロパティを用いて演算を行うとともに、演算結果を用いた条件判断により演算式を選択し、演算結果をエラー判定手段２１６に送る。
【００２８】
エラー判定手段２１６は、数値・論理演算手段２１５から送られた演算結果に基づいてエラーの該当／非該当を判定する。エラー判定手段２１６は、「エラー検査」を示すコマンドが与えられて「エラーに該当する」と判定した場合には、エラーを起こしている対象の種別（回路図／素子）、エラーを含む回路図の属する回路図ライブラリ１０９の名称、及びエラーを含む回路図の名称をエラー情報２１３として一時記憶手段２０６に登録する。エラー判定手段２１６は、素子にエラーが含まれる場合には、エラーを含む素子の名称と翻訳後マクロプログラム２１２において指示されたエラーメッセージとをエラー情報２１３として一時記憶手段２０６に登録する。
【００２９】
プロパティ自動修正可否設定手段２１７は、キーボード１０２又はマウス１０３を介して受け付けられたオペレータの指示に従って、回路図検査中のプロパティ自動修正を許可するか否かを設定する。プロパティ自動修正が許可されていない場合には、エラーが発生した場合のプロパティ自動修正は行われず、エラー情報２１３として一時記憶手段２０６に登録される。一方、プロパティ自動修正が許可されている場合には、プロパティ自動修正可否確認手段２１８により修正を行うかどうかをオペレータに確認するための画面が表示装置１０１に画面表示される。
【００３０】
修正プロパティ計算手段２１９は、プロパティ自動修正が許可されている場合に、プロパティの修正値を計算し、計算結果をプロパティ修正手段２２０に送る。
【００３１】
プロパティ修正手段２２０は、プロパティ計算手段２１９から送られた計算結果を用いて、一時記憶手段２０６に登録された回路図データ２１１のプロパティを修正する。
【００３２】
エラー画面表示手段２０８は、全ての回路図検査が終了した場合に、エラー回路図表示手段２０９により作成されたエラー画面を表示装置１０１に画面表示する。また、エラー画面表示手段２０８は、エラーがなかった場合には、エラーがなかった旨のメッセージを表示装置１０１に画面表示する。
【００３３】
エラーファイル出力手段２１０は、一時記憶手段２０６に登録されたエラー情報２１３をテキストファイルとして記憶部１０８に記憶するとともに、プリンタ１１７に出力して印刷する。
【００３４】
修正後回路図書出手段２２１は、プロパティ自動修正された後の回路図を記憶部１０８に記憶するとともに、プリンタ１１７に出力して印刷する。
【００３５】
整合素子検査手段２２２は、エラー画面を画面表示する場合に、エラーを含む素子の属する回路図内において当該素子と整合関係にある素子（整合素子）を検索する。エラー回路図表示手段２０９は、エラーを含む素子及び検索された整合素子を表示装置１０１に画面表示する。
【００３６】
なお、本発明の実施例１のＣＡＤ回路図検査装置１００は、キーボード１０２又はマウス１０３を介して受け付けられたオペレータの指示に従って、修正が許可されている場合にプロパティ自動修正を行う動作モードと、プロパティ自動修正可否確認手段２１８を使わずにプロパティ自動修正を全て許可する動作モードとを選択するように構成されても良い。ここで、プロパティ自動修正が許可された場合には、エラー情報２１３が一時記憶手段２０６に登録されることはない。一方、プロパティ自動修正が許可されていない場合には、プロパティ計算手段２１９における計算とプロパティ修正手段２２０による修正は行われず、エラー情報２１３が一時記憶手段２０６に登録される。
【００３７】
図３は、本発明の実施例１の検査ルール選択手段２０１、検査回路選択手段２０４、及びプロパティ自動修正可否設定手段２１７により表示装置１０１に画面表示される回路図検査設定ウィンドウ３０１の一例を示す。回路図検査設定ウィンドウ３０１の各部３０２〜３０９には、キーボード１０２又はマウス１０３を介して受け付けられたオペレータの指示が入力される。
【００３８】
本発明の実施例１の検査ルール選択手段２０１は、回路図検査設定ウィンドウ３０１のプロセス選択部３０３、耐圧系選択部３０４、及びオプション選択部３０５に入力された内容に従って、検査ルールを選択する。
【００３９】
本発明の実施例１の検査回路選択手段２０４は、回路図検査設定ウィンドウ３０１のライブラリ名称部３０６及び回路名称部３０７に入力された対象回路が存在する回路のライブラリ名称及び階層最上位の回路図の回路名称に従って、検査対象とする回路図を選択する。また、本発明の実施例１の検査回路選択手段２０４は、階層検査スイッチ部３０８に入力された内容に従って、回路階層にある回路図を全て検査するか又は最上位階層の回路図のみを検査するかを選択する。
【００４０】
本発明の実施例１のプロパティ自動修正可否設定手段２１７は、回路図検査設定ウィンドウ３０１のエラー修正部３０９に入力された内容に従って、プロパティ自動修正における動作を設定する。例えば、プロパティ自動修正可否確認手段２１８は、プロパティ自動修正の可否を修正毎に問い合わせる動作モードが設定された場合には、修正を開始する前にプロパティ自動修正の可否をオペレータに問い合わせるためのエラー修正許可ウィンドウ４０１（図４を参照）を表示装置１０１に画面表示する。一方、プロパティ自動修正可否確認手段２１８は、プロパティ自動修正を一括許可する動作モードが設定された場合には、表示装置１０１に画面表示することなく、プロパティ自動修正を許可する。
【００４１】
なお、修正プロパティ計算手段２１９は、プロパティ自動修正が許可された場合には、新しいプロパティを計算し、プロパティ修正部２２０は、一時記憶２０６の回路図データ２１１の内容を計算されたプロパティを用いて修正する。一方、修正プロパティ計算手段２１９は、プロパティ自動修正が許可されなかった場合には、プロパティの修正を行うことなく、エラー情報２１３を一時記憶手段２０６に登録する。
【００４２】
本発明の実施例１の検査実行手段２０７は、回路図検査設定ウィンドウ３０１の実行ボタン３０２が押下された場合には、回路図検査を開始する。
【００４３】
図４は、本発明の実施例１のプロパティ自動修正可否確認手段２１８により表示装置１０１に画面表示されるプロパティ自動修正の可否をオペレータに問い合わせるためのエラー修正許可ウィンドウ４０１の一例を示す概略図である。エラー修正許可ウィンドウ４０１の各部４０５〜４０９には、キーボード１０２又はマウス１０３を介して受け付けられたオペレータの指示が入力される。
【００４４】
エラー修正許可ウィンドウ４０１には、エラー素子部４０２、エラーメッセージ部４０３、及び修正後のプロパティの名称と修正値を表示する修正値部４０４、並びに「回路図表示」ボタン４０５、「修正しない」ボタン４０６、「このエラーのみ修正」ボタン４０７、「全て修正する」ボタン４０８、及び「全て修正しない」ボタン４０９が表示される。
【００４５】
「回路図表示」ボタン４０５が押下された場合には、プロパティ自動修正の対象となっている素子を含む回路図が表示装置１０１に画面表示され、そのエラー素子がズームされ、エラーマークが表示される。
【００４６】
「修正しない」ボタン４０６が押下された場合には、この素子に対してプロパティ自動修正は行われない。
【００４７】
「このエラーのみ修正」ボタン４０７が押下された場合には、エラー素子部４０２、エラーメッセージ部４０３、及び修正値部４０４に表示されたエラーのみに自動修正が行われる。
【００４８】
「全て修正する」ボタン４０８が押下された場合には、以後の全てのプロパティエラーにおいてプロパティ自動修正が許可され、それ以後は、エラー修正許可ウィンドウ４０１は表示されなくなる。
【００４９】
「全て修正しない」ボタン４０９が押下された場合には、以後全てのプロパティエラーにおいてプロパティ自動修正が不許可となり、それ以後は、エラー修正許可ウィンドウ４０１は表示されなくなる。
【００５０】
各ボタン４０６〜４０９が押下された場合には、図３の回路図検査設定ウィンドウ３０１のエラー修正部３０９のモード選択の設定を回路図検査中に変更することになる。
【００５１】
図５は、図４の各ボタン４０６〜４０９が押下された後のエラー修正モードの概略を示す概略図である。
【００５２】
（１）エラー修正許可ウィンドウ４０１の「修正しない」ボタン４０６が押下された場合には、変更後のエラー修正モードでは、修正時にエラー修正許可ウィンドウ４０１が表示される。
【００５３】
（２）「このエラーのみ修正」ボタン４０７が押下された場合には、変更後のエラー修正モードでは、修正時にエラー修正許可ウィンドウ４０１が表示される。
【００５４】
（３）「全て修正する」ボタン４０８が押下された場合には、変更後のエラー修正モードでは、エラー修正許可ウィンドウ４０１が表示されることなく修正が行われる。
【００５５】
（４）「全て修正しない」ボタン４０９が押下された場合には、変更後のエラー修正モードでは、エラー修正許可ウィンドウ４０１が表示されることなく、修正も行われない。
【００５６】
図６（Ａ）及び（Ｂ）は、エラー画面表示手段２０８により表示装置１０１に画面表示される画面の一例を示す。エラー表示ウィンドウ６０１の各部６０２〜６０９には、キーボード１０２又はマウス１０３を介して受け付けられたオペレータの指示が入力される。
【００５７】
回路図検査が終了し、回路にエラーがあった場合には、自動的に図６（Ａ）のエラー表示ウィンドウ６０１が表示装置１０１に画面表示される。一方、回路にエラーがなかった場合には、自動的に図６（Ｂ）のエラー無し表示ウィンドウ６１１が表示装置１０１に画面表示される。
【００５８】
エラー表示ウィンドウ６０１のエラー個所表示部６０４には、上から下に向けて回路のエラー個所がリスト表示される。エラー個所表示部６０４に表示されたエラー箇所が選択された場合には、選択されたエラー箇所が反転表示される。この反転表示と同時に、エラーメッセージ表示部６０５に選択されたエラー個所のエラー原因が表示され、それと共に選択されたエラー個所を含む回路図が表示装置１０１に画面表示される。回路図のエラーであれば、回路図が表示装置１０１に画面表示される。一方、素子のエラーであれば、図７に示すように、エラー箇所を持つ素子がズームされ、エラーマークが表示される。１つの素子に複数のエラーがある場合には、エラー個所表示部６０４には、１つの素子がリスト表示され、複数のエラー原因がエラーメッセージ表示部６０５に表示される。
【００５９】
エラー表示ウィンドウ６０１の整合素子表示スイッチ６０７がチェックされた場合には、エラー箇所を持つ素子のみではなく、図８に示すように、整合素子の整合マーク８０７、８０８、及び８０９が表示される。
【００６０】
ＮＰＮトランジスタ８０１は、エラーの見つけられた素子であり、エラーマーク８１０が表示されている。３個のＮＰＮトランジスタ８０１、８０２、及び８０３は、それぞれの素子プロパティ８０４、８０５、及び８０６に同一の整合素子グループの名称「Ａ１」が与えられており、同一の整合素子グループを構成している。
【００６１】
ＮＰＮトランジスタ８０１のエラー表示に伴い、整合素子検索手段２２２は、ＮＰＮトランジスタ８０１と同一の整合素子グループの名称「Ａ１」をプロパティに持つ素子を回路図内で検索する。検索の結果、ＮＰＮトランジスタ８０１が属している整合素子グループ「Ａ１」の素子としてＮＰＮトランジスタ８０１、８０２、及び８０３が判明し、整合素子マーク８０７、８０８、及び８０９が表示される。整合素子グループの情報は、図８に示すように、整合素子グループを表すプロパティ「ｐａｉｒ」という素子プロパティとして素子に付加されている。
【００６２】
図９は、回路図内の全素子に渡って整合素子グループを示すプロパティｐａｉｒの値を見ることでエラー素子と同じ整合素子グループに属す素子を検索し、整合素子グループを表示する本発明の実施例１の整合素子表示処理における制御部１０５の処理手順を示すフローチャートである。
【００６３】
はじめに、図６のエラー表示ウィンドウ６０１の整合素子表示スイッチ６０７がチェックされた場合には（Ｓ９０１−Ｙｅｓ）、エラー表示ウィンドウ６０１において選択された素子の整合素子グループプロパティの値を取得する（Ｓ９０２）。
【００６４】
続いて、Ｓ９０２において取得された整合素子グループプロパティの値が存在する場合には（Ｓ９０３−Ｙｅｓ）、回路図を検索し、同じ整合素子グループプロパティの値を持つ素子のリストをメモリ１０６に作成する（Ｓ９０４）。
【００６５】
続いて、同一の整合素子グループプロパティ値を有する素子が存在する場合には（Ｓ９０５−Ｙｅｓ）、Ｓ９０４において作成されたリストに挙げられた素子を回路図中でハイライト表示し（Ｓ９０６）、本発明の実施例１の整合素子表示処理を終了する。
【００６６】
図６のエラー表示ウィンドウ６０１のエラーファイル出力ボタン６０６が押下された場合には、一時記憶手段２０６に登録されたエラー情報２１３がテキストファイルとして出力される。
【００６７】
図６のエラー表示ウィンドウ６０１の次ボタン６０２が押下された場合には、現在表示されているエラー箇所の次のエラー個所へエラー表示ウィンドウ６０４の反転部分を移動させる。すなわち、エラー表示ウィンドウ６０４で現在表示されているエラー箇所の次のエラー個所が選択された状態となる。その結果、エラー表示ウィンドウ６０４の反転表示が移動し、エラーメッセージ表示部６０５に移動先のエラー個所のエラー原因が表示される。続いて、移動先のエラー個所を含む回路図が表示され、素子がエラーの場合には、エラー素子がズームされエラーマークが表示される。また、前ボタン６０３は、次ボタン６０２とは逆に、現在表示されているエラー箇所の前のエラー個所へエラー表示ウィンドウ６０４の反転部分を移動させる。
【００６８】
自動修正結果セーブボタン６０９が押下された場合には、一時記憶手段２０６に登録された回路図データ２１１に保存されているプロパティ自動修正後の回路図データが記憶装置１０８に書き出される。
【００６９】
なお、自動修正結果セーブボタン６０９が押下されることなくエラー表示終了ボタン６０８が押下されたことによりエラー表示ウィンドウ６０１が閉じた場合でも、一時記憶手段２０６に登録された回路図データ２１１は、回路図編集プログラム１１１と記憶領域を共有しているので、回路図編集プログラム１１１の記憶装置１０８への書き出しコマンドを用いて書き出すことができる。
【００７０】
図１０は、本発明の実施例１の検査マクロプログラム読込処理における検査ルール選択手段２０１及び検査ルール読込手段２０２の処理手順を示すフローチャートである。検査マクロプログラム読込処理は、ＣＡＤ回路図検査装置１００が起動された場合に行われる処理である。なお、検査マクロプログラム読込処理において用いられる検査マクロプログラムファイルの名称は、プロセス、耐圧系、及びオプションの値に基づいて所定の規則（ファイル名規則）により与えられるものとする。
【００７１】
はじめに、図２の検査ルール選択手段２０１は、記憶装置１０８の回路図検査マクロプログラム領域１１５を検索し、登録されている回路図検査マクロプログラム１１６を認識する（Ｓ１００１）。このとき、検査ルール選択手段２０１は、記憶装置１０８の回路図検査マクロプログラム領域１１５内を、回路図検査プログラム１１２の格納位置からの相対ディレクトリ位置を用いて検索する。
【００７２】
続いて、検査ルール選択手段２０１は、Ｓ１００１において認識された回路図検査マクロプログラム１１６に基づいて、回路図検査設定ウィンドウ３０１のプロセス選択部３０３、耐圧系選択部３０４、及びオプション選択部３０５の選択肢に表示する文字列を作成し、選択できるもののみを回路図検査ウィンドウ３０１の各部３０３〜３０５の選択肢として表示するように、回路図検査マクロプログラム１１６を翻訳する（Ｓ１００２）。このとき、検査プログラム翻訳手段２０３は、ファイル名規則を逆に適用し、回路図検査マクロプログラム１１６の名称を用いて製造プロセス、耐圧系及びオプションの値を特定し、プロセス、耐圧系、及びオプションの値と元のファイル名から構成されるテーブルを検査ルール選択手段２０１内の一時記憶領域に作成する。
【００７３】
続いて、検査ルール選択手段２０１は、Ｓ１００２において作成されたテーブルを構成するプロセス、耐圧系、及びオプションの選択肢を回路図検査設定ウィンドウ３０１の各部３０３〜３０５に表示する（Ｓ１００３）。
【００７４】
続いて、検査ルール読込手段２０２は、オペレータの指示（プロセス、耐圧系、及びオプションの値）が入力された後に（Ｓ１００４）、Ｓ１００２において検査ルール選択手段２０１内の一時記憶領域に作成されたテーブルの逆引きにより検査マクロプログラム１１６のファイル名称に逆翻訳する（Ｓ１００５）。
【００７５】
続いて、検査ルール読込手段２０２は、Ｓ１００５において逆翻訳された検査マクロプログラム１１６を読み込む（Ｓ１００６）。
【００７６】
図１１は、本発明の実施例１の階層検査処理における制御部１０５の処理手順を示すフローチャートである。階層検査処理は、上位階層の回路図において検査が実行された後に、当該回路図の一階層下の回路図の検査が実行される時に行われる処理である。
【００７７】
はじめに、現在の検査対象となっている回路図に対して検査を実行する（Ｓ１１０１）。
【００７８】
現在の検査対象となっている回路図の下位階層の回路図の検査が全て完了していない場合には（Ｓ１１０２−Ｎｏ）、一階層下の回路図を検査対象として選択する（Ｓ１１０３）。続いて、Ｓ１１０３において選択された回路図の検査が完了していない場合には（Ｓ１１０４−Ｎｏ）、当該回路図の検査を実行し（Ｓ１１０５）、Ｓ１１０２へ戻る。一方、Ｓ１１０３において選択された回路図の検査が完了している場合には（Ｓ１１０４−Ｙｅｓ）、当該回路図の検査を実行することなく、Ｓ１１０２へ戻る。
【００７９】
他方、現在の検査対象となっている回路図の下位階層の回路図の検査が全て完了している場合には（Ｓ１１０２−Ｙｅｓ）、階層検査処理を終了する。
【００８０】
すなわち、一階層下の各回路図に対して階層検査処理が再帰的に繰り返される。再帰の終端は、対応する下位階層の回路がない素子シンボル、又は後述する検査マクロプログラム１２０１の使用できる素子シンボルの定義部１２０３に定義されている素子シンボルとなる。
【００８１】
図１２は、本発明の実施例１の回路図検査マクロプログラム１２０１の構成を示す概略図である。
【００８２】
本発明の実施例１の回路図検査マクロプログラム１２０１は、プロセス、耐圧系、及びオプションの定義部（Ｐｒｏｃｅｓｓ、ＭａｘＶｏｌｔ、Ｏｐｔｉｏｎ）１２０２、回路図で使用できる素子シンボルの定義部（Ｅｌｅｍｅｎｔｓ）１２０３、回路図の検査定義部（ＳｃｈＲｕｌｅ）１２０４、並びに素子の検査定義部（ＩｎｓｔａｎｃｅＲｕｌｅ）１２０５から構成されている。
【００８３】
Ｐｒｏｃｅｓｓ、ＭａｘＶｏｌｔ、Ｏｐｔｉｏｎ１２０２は、検査対象の製造プロセス、耐圧系、及びオプションを検査マクロプログラム１２０１内部で明確にする。
【００８４】
Ｅｌｅｍｅｎｔｓ１２０３は、回路図で使用できる素子シンボルを素子シンボルライブラリ名称と素子シンボルの組み合わせで網羅的に指定する。ここで指定される素子シンボルは、回路階層の最下層に存在する素子を表すものである。なお、回路階層の中間層に存在する回路ブロックの素子シンボルは、自動的に使用可能と検査装置により判断される。また、Ｅｌｅｍｅｎｔｓ１２０３に登録されているか、又は素子シンボルが対応する回路を持たない場合には、素子シンボルは回路の最下層にあると判断される。
【００８５】
ＳｃｈＲｕｌｅ１２０４は、回路図のプロパティ値の取得と変数への代入部（ｓｃｈＰａｒａｍ）１２０６と、変数値の演算によるプロパティ値の検査を含む回路図検査部（ｃｈｅｃｋ）１２０７とに分類される。
【００８６】
ＩｎｓｔａｎｃｅＲｕｌｅ１２０５は、素子タイプ毎に素子タイプ１の検査定義部１２０８、素子タイプ２の検査定義部１２０９から構成される。ＩｎｓｔａｎｃｅＲｕｌｅ１２０５は、素子タイプ毎に検査を記述する。素子タイプとは、同じ検査ルールを共有できるグループを指し、例えば、抵抗、コンデンサ、バイポーラＮＰＮトランジスタ、ＰＮＰトランジスタ、ＮＭＯＳトランジスタ、ＰＭＯＳトランジスタなどの分類に相当する。
【００８７】
素子タイプ１の検査定義部１２０８は、検査対象となる素子シンボルの定義部（ｅｌｅｍｅｎｔＬｉｓｔ）１２１０、素子プロパティの取得と変数の代入部（ｅｌｅｍＰａｒａｍ）１２１１、及び変数値の演算によるプロパティ値の検査を含む素子検査部（ｃｈｅｃｋ）１２１２を指定する。なお、素子タイプ２の検査定義部１２０９は、素子タイプ１の検査定義部１２０８と同様の構成である。
【００８８】
ｅｌｅｍｅｎｔＬｉｓｔ１２１０は、素子タイプ１に含まれる素子シンボルを素子シンボルライブラリ名称と素子シンボル名称で指定する。ｅｌｅｍｅｎｔＬｉｓｔ１２１０にリスト化された素子シンボルには、ｅｌｅｍＰａｒａｍ１２１１及びｃｈｅｃｋ１２１２を含む素子検査が適用される。
【００８９】
図１３は、検査マクロプログラムの抜粋を示す概略図である。検査マクロプログラムは、ＬＩＳＰ言語やＣ言語に似た構文で記述される。
【００９０】
図１４は、抵抗素子についての検査プログラムの抜粋を示す概略図である。１〜５行目は、図１２の素子プロパティの取得と変数への代入部（ｅｌｅｍＰａｒａｍ）１２１１であって、ｇｅｔＩｎｓｔＰａｒａｍ(「プロパティ名」) 関数を用いて素子のｒプロパティ及びｗｒプロパティを、それぞれｒ変数及びｗｒ変数に代入する。ｓｈｅｅｔＲ変数には、素子プロパティの値ではなく、定数１２００．０が代入される。この定義により、変数ｒ、ｗｒ、ｓｈｅｅｔＲは検査対象についてローカルな変数となる。
【００９１】
６〜１３行目は、変数値の演算によるプロパティ値の検査を含む素子検査部（ｃｈｅｃｋ）１２１２であって、７〜１２行目は、１個の検査コマンドを含んでいる。具体的には、７〜１２行目は、シート抵抗（ｓｈｅｅｔＲ）と抵抗値（ｒ）、抵抗幅（ｗｒ）より抵抗の長さを計算し、値が５未満の場合に「ｅｒｒｏｒ」となるような検査コマンドを含んでいる。
【００９２】
この検査でエラーと判定された場合のエラーメッセージには、「抵抗の長さ不足≦５．０」に加えて、修正するためのヒント「抵抗幅≧値にせよ」が出力される。ヒントの値の部分には最短の抵抗長５．０とシート抵抗及び抵抗値を使った計算式で求められた数値がはめこまれる。このエラーメッセージは、図６のエラーメッセージ表示部６０５に表示される。
【００９３】
図１５は、プロパティエラー自動修正のためのマクロプログラムの一部分の一例を示す概略図である。８行目には、図２のエラー判定手段２１６に相当する命令が記述されている。８行目の式の値が偽の偽でない場合には、プロパティエラー自動修正が行われる。以下、検査マクロプログラム内及びフローチャートにおいて、偽はｎｉｌと表記する。この例では、自動修正により値が変更されるプロパティの名称は９行目に示されたｗｒであって、修正後の値は式１により求められる
［式１］  int((5.0*sheetR/r+0.0999)/0.1)*0.1
【００９４】
図１６は、本発明の実施例１において使用される検査マクロプログラムのマクロコマンドを示す概略図である。図１７は、図１６に続く検査マクロプログラムのマクロコマンドを示す概略図である。
【００９５】
このマクロコマンドは、プロセス、耐圧系、及びオプションの定義部１６０１、回路図で使用できる素子シンボルの定義部１６０２、回路図のプロパティの検査部１６０３、並びに素子のプロパティの検査部１７０１から構成されている。
【００９６】
プロセス、耐圧系、及びオプションの定義部１６０１は、検査対象の製造プロセス、耐圧系、及びオプションを検査マクロプログラム内部で明確にする。
【００９７】
回路図で使用できる素子シンボルの定義部１６０２は、回路図で使用できる素子シンボルを素子シンボルライブラリ名称と素子シンボルの組み合わせで網羅的に指定する。
【００９８】
回路図のプロパティの検査部１６０３では、プロパティの値を検査するｃｈｅｃｋコマンドと、検査装置に内蔵された検査項目を呼び出すｂｕｉｌｔＩｎＳｃｈコマンドが用いられる。
【００９９】
ｃｈｅｃｋコマンドのエラー条件部には、単なる演算式だけではなくｉｆ−ｔｈｅｎ−ｅｌｓｅを使った条件分岐や、ｗｈｉｌｅを使った条件ループが記述される。エラー条件部の値がｎｉｌ以外の場合にはエラーと判定される。エラーと判定された場合には、検査対象の回路図のライブラリ名称と回路図名称と共に、エラーメッセージ部に記述されたエラーメッセージと重要度部に記述されたエラーの重要度が図２のエラー情報２１３として一時記憶手段２０６に登録される。重要度は、警告、エラー、重大エラーに分類されている。重大エラーは、その後の検査を無用とする程度のエラーを言い、重大エラーが発生すると、検査マクロプログラムのそれ以降の検査がスキップされる。ｂｕｉｌｔＩｎＳｃｈコマンドは、その引数により、ノード名称の検査及び外部接続端子名称の検査に用いられる。
【０１００】
図１７の素子のプロパティの検査部１７０１では、プロパティの値を検査するｃｈｅｃｋコマンド、プロパティの値の修正に対してオペレータにヒントを与えるｈｉｎｔ コマンド、及び内蔵の検査コマンドを呼び出すｂｕｉｌｔＩｎＩｎｓｔコマンドが用いられる。
【０１０１】
ｃｈｅｃｋコマンドは、メッセージ部に演算処理が用いることができないが、ｈｉｎｔコマンドは、メッセージ部に演算処理を用いることができる。ｂｕｉｌｔＩｎＩｎｓｔコマンドは、その引数により動作が定められる。
【０１０２】
引数には、素子名の検査を行うｉｎｓｔ、素子に与えられてはいけないプロパティが付いていないかを検査するｆｏｒｂｉｄｄｅｎＰａｒａｍ、値が固定のプロパティの固定値でつけられているかを検査するｆｉｘｅｄＰａｒａｍ、プロパティ値を使った条件式でエラー判定し、エラーの場合にプロパティの値を修正するｆｉｘｅｄＰａｒａｍＣｏｎｄがある。
【０１０３】
ｆｏｒｂｉｄｄｅｎＰａｒａｍ、ｆｉｘｅｄＰａｒａｍ、及びｆｉｘｅｄＰａｒａｍＣｏｎｄは、プロパティ値自動修正機能を持つ。ｆｏｒｂｉｄｄｅｎＰａｒａｍは、不要なプロパティの削除を行う。ｆｉｘｅｄＰａｒａｍは、プロパティ値の固定値への修正を行う。これら２つの引数には、プロパティを消去したり、固定値に修正する機能であるので、新しいプロパティ値を演算により求める機能はない。一方、ｆｉｘｅｄＰａｒａｍＣｏｎｄは、演算により新しいプロパティ値の計算と、指定のプロパティ名にプロパティ値を与える修正を行う。ｆｉｘｅｄＰａｒａｍＣｏｎｄには、プロパティ名とプロパティ値を求める演算式を一組として、１又は複数の組が記述される。
【０１０４】
図１８は、本発明の実施例１の回路図検査処理における検査実行手段２０７の処理手順を示すフローチャートである。
【０１０５】
はじめに、回路図プロパティの検査を行う（Ｓ１８０１）。続いて、Ｓ１９０１において検査された回路図の回路素子の検査を行い（Ｓ１８０２）、本発明の実施例１の回路図検査処理を終了する。
【０１０６】
図１９は、回路図プロパティ検査処理（図１８のＳ１８０１）における検査実行手段２０７の処理手順を示すフローチャートである。
【０１０７】
はじめに、回路図プロパティを取得する（Ｓ１９０１）。続いて、Ｓ１９０１において取得された回路図プロパティ値を検査する（Ｓ１９０２）。Ｓ１９０２が終了した後は、図１８のＳ１８０２へ進む。
【０１０８】
図２０は、回路図プロパティ取得処理（図１９のＳ１９０１）におけるプロパティ取得手段２１４の処理手順を示すフローチャートである。
【０１０９】
はじめに、ＳｃｈＲｕｌｅのｓｃｈＰａｒａｍの命令を取得する（Ｓ２００１）。続いて、代入式の左辺の変数をローカル変数に加える（Ｓ２００２）。続いて、オブジェクトを回路図とする（Ｓ２００３）。続いて、ｇｅｔＳｃｈＰａｒａｍ関数の引数の最も左のプロパティ名を取得する（Ｓ２００４）。続いて、ｇｅｔＳｃｈＰａｒａｍ関数の引数の最も左のプロパティ名を引数リストから削除する（Ｓ２００５）。
【０１１０】
ｇｅｔＳｃｈＰａｒａｍ関数にプロパティ名引数が残っている場合には（Ｓ２００６−Ｙｅｓ）、オブジェクトのプロパティ値を新たにオブジェクトとする（Ｓ２００７）。一方、ｇｅｔＳｃｈＰａｒａｍにプロパティ名引数が残っていない場合には（Ｓ２００６−Ｎｏ）、左辺の変数名の変数値をオブジェクトのプロパティ名のプロパティ値とする（Ｓ２００８）。
【０１１１】
ｓｃｈＰａｒａｍ関数の命令実行が全て終了していない場合には（Ｓ２００９−Ｎｏ）、Ｓ２００１へ戻る。ｓｃｈＰａｒａｍ関数の命令実行が全て終了した場合には（Ｓ２００９−Ｙｅｓ）、回路図プロパティ取得処理を終了する。回路図プロパティ取得処理が終了した後は、図１９のＳ１９０２へ進む。
【０１１２】
なお、回路図の検査には、プロパティ値をチェックするためのコマンドｃｈｅｃｋ や、ノード名称が許容される文字列で与えられていることを検査するコマンドｂｕｉｌｔＩｎＳｃｈ(ｎｏｄｅＮａｍｅ…)、及び端子名称が許容される文字列で与えられていることを検査するコマンドｂｕｉｌｔＩｎＳｃｈ(ｔｅｒｍｉｎａｌＮａｍｅ…) などが用いられる。
【０１１３】
図２１は、回路図プロパティ値検査処理（図１９のＳ１９０２）における検査実行手段２０７の処理手順を示すフローチャートである。
【０１１４】
はじめに、ｓｃｈＲｕｌｅのｃｈｅｃｋ部の命令を一つ取り出す（Ｓ２１０１）。Ｓ２１０１において取り出された命令がｂｕｉｔＩｎＳｃｈコマンドでもなく（Ｓ２１０２−Ｎｏ）、ｃｈｅｃｋコマンドでもない場合には（Ｓ２１０３−Ｎｏ）、コマンドエラーメッセージを表示装置１０１に画面表示する（Ｓ２１０４）。続いて、全命令の実行が終了した場合には（Ｓ２１０５−Ｙｅｓ）、回路図プロパティ値検査処理を終了する。一方、全命令の実行が終了していない場合には（Ｓ２１０５−Ｎｏ）、Ｓ２１０１へ戻る。
【０１１５】
Ｓ２１０１において取り出された命令がｂｕｉｔＩｎＳｃｈコマンドではなく（Ｓ２１０２−Ｎｏ）、ｃｈｅｃｋコマンドである場合には（Ｓ２１０３−Ｙｅｓ）、エラー条件式の値を計算する（Ｓ２１０６）。Ｓ２１０６の計算結果がｎｉｌ以外である場合には（Ｓ２１０７−Ｙｅｓ）、エラーのあった回路図のライブラリ名、セル名及びエラーメッセージ、並びに重要度をエラー情報２１３として一時記憶手段２０６に登録し（Ｓ２１０８）、Ｓ２１０５へ進む。
【０１１６】
Ｓ２１０１において取り出された命令がｂｕｉｔＩｎＳｃｈコマンドである場合には（Ｓ２１０２−Ｙｅｓ）、チェック項目に応じて処理を切り替える。
【０１１７】
チェック項目がｎｏｄｅＮａｍｅである場合には（Ｓ２１０９−Ｙｅｓ）、回路図中の未検査のノードのノード名称を取り出す（Ｓ２１１０）。続いて、ノード名称に禁止文字が使われていないこと、及び文字数が長過ぎないことを検査する（Ｓ２１１１）。Ｓ２１１１において禁止文字が使われていること、又は文字数が長過ぎることが検出された場合には（Ｓ２１１２−Ｙｅｓ）、エラーノードを含む回路図のライブラリ名、セル名、エラーノードのノード名称、ノード名エラーのメッセージ、及び重要度をエラー情報２１３として一時記憶手段２０６に登録する（Ｓ２１１３）。Ｓ２１１０〜Ｓ２１１３の検査は、全てのノードについて行われるまで繰り返される（Ｓ２１１４−Ｎｏ）。
【０１１８】
全てのノードについてＳ２１１０〜Ｓ２１１３の検査が終了した後に（Ｓ２１１４−Ｙｅｓ）、エラーノードが存在し、かつ、重要度がｆａｔａｌを示す場合には（Ｓ２１１５−Ｙｅｓ）、回路図プロパティ値検査処理を終了する。一方、全てのノードについてＳ２１１０〜Ｓ２１１３の検査が終了した後に（Ｓ２１１４−Ｙｅｓ）、エラーノードが存在しないか、又は重要度がｆａｔａｌを示さない場合には（Ｓ２１１５−Ｎｏ）、Ｓ２１０５へ進む。
【０１１９】
他方、チェック項目がｔｅｒｍｉｎａｌＮａｍｅである場合には（Ｓ２１０９−Ｎｏ、Ｓ２１１６−Ｙｅｓ）、回路図中の未検査のターミナルのターミナル名称を取り出す（Ｓ２１１７）。続いて、ターミナル名称に禁止文字が使われていないこと、又は文字数が長過ぎないことを検査する（Ｓ２１１８）。Ｓ２１１８において禁止文字が使われていること、又は文字数が長過ぎることが検出された場合には（Ｓ２１１９−Ｙｅｓ）、エラーターミナルを含む回路図のライブラリ名、セル名、エラーターミナルのターミナル名称、ターミナル名エラーのメッセージ、及び重要度をエラー情報２１３として一時記憶手段２０６に登録する（Ｓ２１２０）。Ｓ２１１７〜Ｓ２１２０の検査は、全てのターミナルについて行われるまで繰り返される（Ｓ２１２１−Ｎｏ）。
【０１２０】
全てのターミナルについてＳ２１１７〜Ｓ２１２０の検査が終了した後に（Ｓ２１２１−Ｙｅｓ）、エラーターミナルが存在し、かつ、重要度がｆａｔａｌを示す場合には（Ｓ２１２２−Ｙｅｓ）、回路図プロパティ値検査処理を終了する。一方、全てのターミナルについてＳ２１１７〜Ｓ２１２０の検査が終了した後に（Ｓ２１２１−Ｙｅｓ）、エラーターミナルが存在しないか、又は重要度がｆａｔａｌを示さない場合には（Ｓ２１２２−Ｎｏ）、Ｓ２１０５へ進む。
【０１２１】
他方、チェック項目がｎｏｄｅＮａｍｅでもなく、ｔｅｒｍｉｎａｌＮａｍｅでもない場合には（Ｓ２１０９−Ｎｏ、Ｓ２１１６−Ｎｏ）、コマンドエラーメッセージを表示装置１０１に画面表示をし（Ｓ２１２３）、Ｓ２１０５へ進む。
【０１２２】
図２２は、回路素子検査処理（図１８のＳ１８０２）における検査実行手段２０７の処理手順を示すフローチャートである。
【０１２３】
はじめに、検査が終了していない素子が存在する場合には（Ｓ２２０１−Ｙｅｓ）、回路図中の未検査の素子１個を検査対象として選択する（Ｓ２２０２）。
【０１２４】
素子シンボルがＥｌｅｍｅｎｔｓに羅列されたライブラリ・素子シンボルのリスクに含まれる場合には（Ｓ２２０３−Ｙｅｓ）、ｉｎｓｔＲｕｌｅの中で、素子シンボルのライブラリ名及びシンボル名称がｅｌｅｍｅｎｔｓにリストされている素子タイプ検査ルールを選択する（Ｓ２２０４）。続いて、選択された素子タイプ検査ルールのｅｌｅｍＰａｒａｍ部分の記述に従い、素子プロパティの値を内部変数に取り込む（Ｓ２２０５）。続いて、Ｓ２２０４において選択された素子タイプ検査ルールのｃｈｅｃｋ部を実行し（Ｓ２２０６）、Ｓ２２０１へ戻る。
【０１２５】
一方、素子シンボルがＥｌｅｍｅｎｔｓに羅列されたライブラリ・素子シンボルのリスクに含まれない場合には（Ｓ２２０３−Ｎｏ）、利用できない素子が回路図にあるエラーとしてエラー素子を含む回路図のライブラリ名、セル名、及びエラー素子の素子名称をえらー情報２１３として一時記憶手段２０６に登録する（Ｓ２２０７）。
【０１２６】
全ての素子についてＳ２２０２〜Ｓ２２０６の検査が終了した場合には（Ｓ２２０１−Ｎｏ）、回路素子検査処理を終了する。
【０１２７】
図２３は、ｅｌｅｍＰａｒａｍ部分の記述に従って実行される素子プロパティ取得処理における検査実行手段２０７の処理手順を示すフローチャートである。
【０１２８】
はじめに、ｅｌｅｍＰａｒｍ部の命令を取得する（Ｓ２３０１）。続いて、代入式の左辺の変数をローカル変数に加える（Ｓ２３０２）。続いて、ｇｅｔＩｎｓｔＰａｒａｍ関数の引数のプロパティ名を取得する（Ｓ２３０３）。続いて、Ｓ２３０３において取得された引数のプロパティ名に基づいて素子のプロパティ値を取得し、左辺の変数名の変数の値とする（Ｓ２３０４）。Ｓ２３０１〜Ｓ２３０４は、ｅｌｅｍＰａｒａｍ部の命令の実行が全て終了するまで繰り返される（Ｓ２３０５−Ｎｏ）。
【０１２９】
図２４は、素子タイプ検査ｃｈｅｃｋ部の処理における検査実行手段２０７の処理手順を示すフローチャートである。
【０１３０】
はじめに、ｃｈｅｃｋ部の命令を一つ取り出す（Ｓ２４０１）。Ｓ２４０１において取り出された命令がｂｕｉｔＩｎｓｔコマンド、ｈｉｎｔコマンド、及びｃｈｅｃｋコマンドのいずれでもない場合には（Ｓ２４０２−Ｎｏ、Ｓ２４０３−Ｎｏ、Ｓ２４０４−Ｎｏ）、コマンドエラーメッセージを表示装置１０１に画面表示する（Ｓ２４０５）。
【０１３１】
全ての命令が終了した場合には、素子タイプ検査ｃｈｅｃｋ部の処理を終了する（Ｓ２４０６−Ｙｅｓ）。Ｓ２４０１〜Ｓ２４０５は、全ての命令が終了するまで行われる（Ｓ２４０６−Ｎｏ）。
【０１３２】
一方、Ｓ２４０１において取り出された命令がｂｕｉｔＩｎＩｎｓｔコマンドである場合には（Ｓ２４０２−Ｙｅｓ）、ｂｕｉｌｔＩｎＩｎｓｔ検査を実行する（Ｓ２４０７）。Ｓ２４０７の結果がエラーを示し、自動修正されず、かつ、重要度がｆａｔａｌを示す場合には（Ｓ２４０８−Ｙｅｓ）、素子タイプ検査ｃｈｅｃｋ部の処理を終了する。また、Ｓ２４０７の結果がエラーを示さない場合、自動修正された場合、又は重要度がｆａｔａｌを示さない場合には（Ｓ２４０８−Ｎｏ）、Ｓ２４０６へ進む。
【０１３３】
他方、Ｓ２４０１において取り出された命令がｈｉｎｔコマンドである場合には（Ｓ２４０２−Ｎｏ、Ｓ２４０３−Ｙｅｓ）、ヒント値を計算する（Ｓ２４０９）。Ｓ２４０９の結果がｎｉｌ以外である場合には（Ｓ２４１０−Ｙｅｓ）、エラー素子を含む回路図のライブラリ名、セル名、エラー素子の素子名称、ｃｈｅｃｋコマンドのヒントメッセージ及びｈｉｎｔ値、並びに重要度をエラー情報２１３として一時記憶手段２０６に登録する（Ｓ２４１１）。続いて、Ｓ２４１１において登録された重要度がｆａｔａｌを示す場合には（Ｓ２４１２−Ｙｅｓ）、素子タイプ検査ｃｈｅｃｋ部の処理を終了する。また、Ｓ２４１１において登録された重要度がｆａｔａｌを示さない場合には（Ｓ２４１２−Ｎｏ）、Ｓ２４０６に進む。
【０１３４】
他方、Ｓ２４０１において取り出された命令がｃｈｅｃｋコマンドである場合には（Ｓ２４０２−Ｎｏ、Ｓ２４０３−Ｎｏ、Ｓ２４０４−Ｙｅｓ）、エラー条件部を計算する（Ｓ２４１３）。続いて、Ｓ２４１３の結果がｎｉｌ以外である場合には（Ｓ２４１４−Ｙｅｓ）、エラー素子を含む回路図のライブラリ名、セル名、エラー素子の素子名称、ｃｈｅｃｋコマンドのエラーメッセージ、及び重要度をエラー情報２１３として一時記憶手段２０６に登録する（Ｓ２４１５）。Ｓ２４１５において登録された重要度がｆａｔａｌを示す場合には（Ｓ２４１６−Ｙｅｓ）、素子タイプ検査ｃｈｅｃｋ部の処理を終了する。また、Ｓ２４１５において登録された重要度がｆａｔａｌを示さない場合には（Ｓ２４１６−Ｎｏ）、Ｓ２４０６に進む。
【０１３５】
図２５は、ｂｕｉｌｔＩｎＩｎｓｔ検査処理の処理手順を示すフローチャートである。ｂｕｉｌｔＩｎＩｎｓｔ検査処理では、チェック項目に応じて処理が切り替えられる。
【０１３６】
チェック項目がｉｎｓｔＮａｍｅである場合には（Ｓ２５０１−Ｙｅｓ）、図２６の処理へ進む。
【０１３７】
チェック項目がｆｏｒｂｉｄｄｅｎＰａｒａｍである場合には（Ｓ２５０１−Ｎｏ、Ｓ２５０２−Ｙｅｓ）、図２７の処理へ進む。
【０１３８】
チェック項目がｆｉｘｅｄＰａｒａｍである場合には（Ｓ２５０１−Ｎｏ、Ｓ２５０２−Ｎｏ、Ｓ２５０３−Ｙｅｓ）、図２８の処理へ進む。
【０１３９】
チェック項目がｆｉｘｅｄＰａｒａｍＣｏｎｄである場合には（Ｓ２５０１−Ｎｏ、Ｓ２５０２−Ｎｏ、Ｓ２５０３−Ｎｏ、Ｓ２５０４−Ｙｅｓ）、図２９の処理へ進む。
【０１４０】
チェック項目がｉｎｓｔＮａｍｅ、ｆｏｒｂｉｄｄｅｎＰａｒａｍ、ｆｉｘｅｄＰａｒａｍ、及びｆｉｘｅｄＰａｒａｍＣｏｎｄのいずれでもない場合には（Ｓ２５０１−Ｎｏ、Ｓ２５０２−Ｎｏ、Ｓ２５０３−Ｎｏ、Ｓ２５０４−Ｎｏ）、コマンドエラーを表示装置１０１に画面表示し（Ｓ２５０５）、ｂｕｉｌｔＩｎＩｎｓｔ検査処理を終了する。
【０１４１】
図２６は、チェック項目がｉｎｓｔＮａｍｅである場合の処理手順を示すフローチャートである。
【０１４２】
チェック項目がｉｎｓｔＮａｍｅである場合には、素子名称に禁止文字が使われていないこと、及び文字数が長過ぎないことを検査する（Ｓ２６０１）。Ｓ２６０１において禁止文字が使われていること、又は文字数が長過ぎることが検出された場合には（Ｓ２６０２−Ｙｅｓ）、エラー素子を含む回路図のライブラリ名、セル名、エラー素子の素子名称、及び素子名エラーのメッセージエラー情報２１３として一時記憶手段２０６に登録し（Ｓ２６０３）、図２６の処理を終了する。一方、Ｓ２６０１において禁止文字が使われていること、及び文字数が長過ぎることが検出されなかった場合には（Ｓ２６０２−Ｎｏ）、Ｓ２６０３を行うことなく図２６の処理を終了する。
【０１４３】
図２７は、チェック項目がｆｏｒｂｉｄｄｅｎＰａｒａｍである場合の処理手順を示すフローチャートである。
【０１４４】
チェック項目がｆｏｒｂｉｄｄｅｎＰａｒａｍである場合には、引数に与えられた名称の禁止プロパティが素子に付加されているか否かについて検査する（Ｓ２７０１）。Ｓ２７０１の結果に禁止プロパティがつけられていないことを示す場合には（Ｓ２７０２−Ｎｏ）、図２７の処理を終了する。
【０１４５】
一方、Ｓ２７０１の結果に禁止プロパティがつけられていることを示す場合には（Ｓ２７０２−Ｙｅｓ）、エラー修正モードに応じて処理を切り替える。
【０１４６】
エラー修正モードとして「エラー修正しない」が設定されている場合には（Ｓ２７０３−Ｙｅｓ）、エラー素子を含む回路図のライブラリ名、セル名、エラー素子の素子名称、コマンドのエラーメッセージ、及び重要度をエラー情報２１３として一時記憶手段２０６に登録し（Ｓ２７０４）、図２７の処理を終了する。
【０１４７】
エラー修正モードとして「エラー修正し、問い合わせず一括処理する」が設定されている場合には（Ｓ２７０３−Ｎｏ、Ｓ２７０５−Ｙｅｓ）、禁止プロパティを素子から削除し（Ｓ２７０６）、図２７の処理を終了する。
【０１４８】
エラー修正モードとして「エラー修正する、修正毎に問い合わせる」が設定されている場合には（Ｓ２７０３−Ｎｏ、Ｓ２７０５−Ｎｏ、Ｓ２７０７−Ｙｅｓ）、修正可否をオペレータに問い合わせる（Ｓ２７０８）。続いて、Ｓ２７０８に対するオペレータの応答に応じてエラー修正モードを変更する（Ｓ２７０９）。Ｓ２７０９の変更結果が「このエラーのみ修正する」又は「全て修正する」である場合には（Ｓ２７１０−Ｙｅｓ）、禁止プロパティを素子から削除し（Ｓ２７１１）、図２７の処理を終了する。また、Ｓ２７０９の変更結果が「このエラーのみ修正する」及び「全て修正する」のいずれでもない場合には（Ｓ２７１０−Ｎｏ）、Ｓ２７０４に進む。
【０１４９】
エラー修正モードとして上記のモードのいずれも設定されていない場合には（Ｓ２７０３−Ｎｏ、Ｓ２７０５−Ｎｏ、Ｓ２７０７−Ｎｏ）、プログラム内部エラーメッセージを表示装置１０１に表示し（Ｓ２７１２）、図２７の処理を終了する。
【０１５０】
図２８は、チェック項目がｆｉｘｅｄＰａｒａｍである場合の処理手順を示すフローチャートである。
【０１５１】
チェック項目がｆｉｘｅｄＰａｒａｍである場合には、引数に与えられた名称のプロパティが、引数に与えられた値と一致するか否かを検査する（Ｓ２８０１）。Ｓ２８０１の結果が一致する場合には（Ｓ２８０２−Ｙｅｓ）、図２８の処理を終了する。
【０１５２】
一方、Ｓ２８０１の結果が一致しない場合には（Ｓ２８０２−Ｎｏ）、エラー修正モードに応じて処理を切り替える。
【０１５３】
エラー修正モードとして「エラー修正しない」が設定されている場合には（Ｓ２８０３−Ｙｅｓ）、エラー素子を含む回路図のライブラリ名、セル名、エラー素子の素子名称、コマンドのエラーメッセージ、及び重要度をエラー情報２１３として一時記憶手段２０６に登録し（Ｓ２８０４）、図２８の処理を終了する。
【０１５４】
エラー修正モードとして「エラー修正し、問い合わせず一括処理する」が設定されている場合には（Ｓ２８０３−Ｎｏ、Ｓ２８０５−Ｙｅｓ）、引数で与えられた名称のプロパティ値を引数で与えられた値に変更し（Ｓ２８０６）、図２８の処理を終了する。
【０１５５】
エラー修正モードとして「エラー修正する、修正毎に問い合わせる」が設定されている場合には（Ｓ２８０３−Ｎｏ、Ｓ２８０５−Ｎｏ、Ｓ２８０７−Ｙｅｓ）、修正可否をオペレータに問い合わせる（Ｓ２８０８）。続いて、Ｓ２８０８に対するオペレータの応答に応じてエラー修正モードを変更する（Ｓ２８０９）。Ｓ２８０９の変更結果が「このエラーのみ修正する」又は「全て修正する」である場合には（Ｓ２８１０−Ｙｅｓ）、引数で与えられた名称のプロパティ値を引数で与えられた値に変更し（Ｓ２８１１）、図２８の処理を終了する。また、Ｓ２８０９の変更結果が「このエラーのみ修正する」及び「全て修正する」のいずれでもない場合には（Ｓ２８１０−Ｎｏ）、Ｓ２８０４に進む。
【０１５６】
エラー修正モードとして上記のモードのいずれも設定されていない場合には（Ｓ２８０３−Ｎｏ、Ｓ２８０５−Ｎｏ、Ｓ２８０７−Ｎｏ）、プログラム内部エラーメッセージを表示装置１０１に表示し（Ｓ２８１２）、図２８の処理を終了する。
【０１５７】
図２９は、チェック項目がｆｉｘｅｄＰａｒａｍＣｏｎｄである場合の処理手順を示すフローチャートである。
【０１５８】
チェック項目がｆｉｘｅｄＰａｒａｍＣｏｎｄである場合には、条件式の値を計算する（Ｓ２９０１）。Ｓ２９０１の結果がｎｉｌを示す場合には（Ｓ２９０２−Ｎｏ）、図２９の処理を終了する。
【０１５９】
一方、Ｓ２９０１の結果がｎｉｌ以外を示す場合には（Ｓ２９０２−Ｙｅｓ）、エラー修正モードに応じて処理を切り替える。
【０１６０】
エラー修正モードとして「エラー修正しない」が設定されている場合には（Ｓ２９０３−Ｙｅｓ）、エラー素子を含む回路図のライブラリ名、セル名、エラー素子の素子名称、コマンドのエラーメッセージ、及び重要度をエラー情報２１３として一時記憶手段２０６に登録し（Ｓ２９０４）、図２９の処理を終了する。
【０１６１】
エラー修正モードとして「エラー修正し、問い合わせず一括処理する」が設定されている場合には（Ｓ２９０３−Ｎｏ、Ｓ２９０５−Ｙｅｓ）、引数で与えられた名称のプロパティに正しい値で与えられた計算式の値を設定し（Ｓ２９０６）、図２９の処理を終了する。
【０１６２】
エラー修正モードとして「エラー修正する、修正毎に問い合わせる」が設定されている場合には（Ｓ２９０３−Ｎｏ、Ｓ２９０５−Ｎｏ、Ｓ２９０７−Ｙｅｓ）、修正可否をオペレータに問い合わせる（Ｓ２９０８）。続いて、Ｓ２９０８に対するオペレータの応答に応じてエラー修正モードを変更する（Ｓ２９０９）。Ｓ２９０９の変更結果が「このエラーのみ修正する」又は「全て修正する」である場合には（Ｓ２９１０−Ｙｅｓ）、引数で与えられた名称のプロパティに正しい値で与えられた計算式の値を設定し（Ｓ２９１１）、図２９の処理を終了する。また、Ｓ２９０９の変更結果が「このエラーのみ修正する」及び「全て修正する」のいずれでもない場合には（Ｓ２９１０−Ｎｏ）、Ｓ２９０４に進む。
【０１６３】
エラー修正モードとして上記のモードのいずれも設定されていない場合には（Ｓ２９０３−Ｎｏ、Ｓ２９０５−Ｎｏ、Ｓ２９０７−Ｎｏ）、プログラム内部エラーメッセージを表示装置１０１に表示し（Ｓ２９１２）、図２９の処理を終了する。
【０１６４】
なお、図１８〜図２９のフローチャートは、検査プログラム翻訳手段２０３により回路図検査マクロプログラムが翻訳されることにより実行される。検査プログラム翻訳手段２０３は、図１８〜図２９のフローチャートに示した機能が実現されるように実行言語の命令列に検査マクロプログラムを変換し、翻訳後マクロプログラム２１２として一時記憶手段２０６に保持する。
【０１６５】
本発明の実施例１によれば、素子プロパティの値が入力された後に回路図の検査を行う場合に、製造プロセス毎の検査マクロプログラム１１６に記述された手順に従って検査を行うので、最新の設計規則に従った検査を容易に行うことができる。
【０１６６】
また、製造プロセスに応じた精度の高いプロパティ検査が容易に実現でき、プロパティ誤りを含んだ回路を下流工程に渡してしまうことによって生じる工程の逆戻りを未然に防ぐことができる。
【０１６７】
また、複数枚の回路図で階層的に構成された回路を一括して検査することができ、回路図の検査漏れを防ぐことができる。
【０１６８】
また、検査マクロプログラム１１６内でプロパティエラーの自動修正コマンドを用いるので、複雑な条件でのプロパティ値の自動修正が可能となり、プロパティ値修正に要する時間を削減又は短縮することができる。
【０１６９】
また、オペレータの指示に従ってプロパティエラーの自動修正の許可を設定するので、意図しないプロパティ値の修正を防ぐことができる。
【０１７０】
また、プロパティエラーの自動修正結果を一時記憶手段２０６に登録するので、プロパティエラー自動修正コマンドの実行許可が誤って与えられてしまった場合でも、修正前の回路へ容易に復元することができる。
【０１７１】
また、エラー画面表示手段２０８及びエラー回路図表示手段２０９がエラーマーク、ズーム表示、ハイライト表示等を行うので、エラー部分が回路の階層のどの回路図なのか、どの回路図のどの素子なのかを容易に特定することができ、エラーの修正に要する時間を短縮することができる。
【０１７２】
また、エラー回路図表示手段２０９が整合素子検索手段２２２を用いて、整合素子表示を行うので、素子プロパティエラーの場合に整合素子間のプロパティの関連性を保持したプロパティ修正を容易に行うことができ、エラーの修正に要する時間を短縮することができる。
【０１７３】
また、回路図検査設定ウィンドウ３０１において、回路図検査に使われる検査マクロプログラムを選択する際に、検査マクロプログラム自体の名称ではなく、操作する人間により理解されやすい製造プロセス名称により選択させるので、検査マクロプログラム１１６の取り違いによる誤検査の発生を防ぐことができる。
【０１７４】
本発明の実施例１によれば、以上の効果を奏することによって、結果的に回路の設計期間を短縮することができる。
【図面の簡単な説明】
【０１７５】
【図１】本発明の実施例１のＣＡＤ回路検査装置１００の構成を示すブロック図である。
【図２】本発明の実施例１の制御部１０５の機能ブロックを示すブロック図である。
【図３】本発明の実施例１の検査ルール選択手段２０１、検査回路選択手段２０４、及びプロパティ自動修正可否設定手段２１７により表示装置１０１に画面表示される回路図検査設定ウィンドウ３０１の一例を示す。
【図４】本発明の実施例１のプロパティ自動修正可否確認手段２１８により表示装置１０１に画面表示されるプロパティ自動修正の可否をオペレータに問い合わせるためのエラー修正許可ウィンドウ４０１の一例を示す概略図である。
【図５】図４の各ボタン４０６〜４０９が押下された後のエラー修正モードの概略を示す概略図である。
【図６】（Ａ）及び（Ｂ）は、エラー画面表示手段２０８により表示装置１０１に画面表示される画面の一例を示す。
【図７】ズーム表示の一例を示す概略図である。
【図８】整合素子表示の一例を示す概略図である。
【図９】回路図内の全素子に渡って整合素子グループを示すプロパティｐａｉｒの値を見ることでエラー素子と同じ整合素子グループに属す素子を検索し、整合素子グループを表示する本発明の実施例１の整合素子表示処理における制御部１０５の処理手順を示すフローチャートである。
【図１０】本発明の実施例１の検査マクロプログラム読込処理における検査ルール選択手段２０１及び検査ルール読込手段２０２の処理手順を示すフローチャートである。
【図１１】本発明の実施例１の階層検査処理における制御部１０５の処理手順を示すフローチャートである。
【図１２】本発明の実施例１の回路図検査マクロプログラム１２０１の構成を示す概略図である。
【図１３】検査マクロプログラムの抜粋を示す概略図である。
【図１４】抵抗素子についての検査プログラムの抜粋を示す概略図である。
【図１５】プロパティエラー自動修正のためのマクロプログラムの一部分の一例を示す概略図である。
【図１６】本発明の実施例１において使用される検査マクロプログラムのマクロコマンドを示す概略図である。
【図１７】図１６に続く検査マクロプログラムのマクロコマンドを示す概略図である。
【図１８】本発明の実施例１の回路図検査処理における検査実行手段２０７の処理手順を示すフローチャートである。
【図１９】回路図プロパティ検査処理（図１８のＳ１８０１）における検査実行手段２０７の処理手順を示すフローチャートである。
【図２０】回路図プロパティ取得処理（図１９のＳ１９０１）におけるプロパティ取得手段２１４の処理手順を示すフローチャートである。
【図２１】回路図プロパティ値検査処理（図１９のＳ１９０２）における検査実行手段２０７の処理手順を示すフローチャートである。
【図２２】回路素子検査処理（図１８のＳ１８０２）における検査実行手段２０７の処理手順を示すフローチャートである。
【図２３】ｅｌｅｍＰａｒａｍ部分の記述に従って実行される素子プロパティ取得処理における検査実行手段２０７の処理手順を示すフローチャートである。
【図２４】素子タイプ検査ｃｈｅｃｋ部の処理における検査実行手段２０７の処理手順を示すフローチャートである。
【図２５】ｂｕｉｌｔＩｎＩｎｓｔ検査処理の処理手順を示すフローチャートである。
【図２６】チェック項目がｉｎｓｔＮａｍｅである場合の処理手順を示すフローチャートである。
【図２７】チェック項目がｆｏｒｂｉｄｄｅｎＰａｒａｍである場合の処理手順を示すフローチャートである。
【図２８】チェック項目がｆｉｘｅｄＰａｒａｍである場合の処理手順を示すフローチャートである。
【図２９】チェック項目がｆｉｘｅｄＰａｒａｍＣｏｎｄである場合の処理手順を示すフローチャートである。
【符号の説明】
【０１７６】
１０１  表示装置
１０２  キーボード
１０３  マウス
１０４  画面表示制御部
１０５  制御部（ＣＰＵ）
１０６  メモリ
１０７  入出力制御部
１０８  記憶装置
【図１】
2008287341.tif 000003
【図２】
2008287341.tif 000004
【図３】
2008287341.tif 000005
【図４】
2008287341.tif 000006
【図５】
2008287341.tif 000007
【図６】
2008287341.tif 000008
【図７】
2008287341.tif 000009
【図８】
2008287341.tif 000010
【図９】
2008287341.tif 000011
【図１０】
2008287341.tif 000012
【図１１】
2008287341.tif 000013
【図１２】
2008287341.tif 000014
【図１３】
2008287341.tif 000015
【図１４】
2008287341.tif 000016
【図１５】
2008287341.tif 000017
【図１６】
2008287341.tif 000018
【図１７】
2008287341.tif 000019
【図１８】
2008287341.tif 000020
【図１９】
2008287341.tif 000021
【図２０】
2008287341.tif 000022
【図２１】
2008287341.tif 000023
【図２２】
2008287341.tif 000024
【図２３】
2008287341.tif 000025
【図２４】
2008287341.tif 000026
【図２５】
2008287341.tif 000027
【図２６】
2008287341.tif 000028
【図２７】
2008287341.tif 000029
【図２８】
2008287341.tif 000030
【図２９】
2008287341.tif 000031