(57)【要約】【課題】多電源が入力される半導体集積回路内で種々の耐圧を有したＥＳＤ保護素子が適切なＥＳＤ保護素子であるか否かを容易に検証するＥＳＤ保護素子検証方法を得ること。【解決手段】半導体回路の回路図内の素子と素子耐圧情報とを対応付けするステップＳ１０と、使用者からの指示情報に基づいて、回路図内のピンに、電源ピン、ＧＮＤピンまたは信号ピンの何れかを設定するとともに電源ピンには印加電圧を設定するステップＳ２２と、ネットリストに基づいて、信号ピンと電源ピンとの間に接続されてＰＮ接合を有している素子を抽出するステップＳ３０と、耐圧情報、電源ピンへの印加電圧およびネットリストに基づいて、抽出した素子が適切な耐圧を有しているか否かを判定するステップ５０と、耐圧の判定結果に基づいて、回路図内から不適切な電源側のＥＳＤ保護素子を抽出して登録するステップＳ７０と、を含む。【選択図】        図３
2010160686.tif 000002
【特許請求の範囲】
【請求項１】
半導体回路の回路図内の素子と当該素子の耐圧に関する耐圧情報とを対応付けする対応付けステップと、
入力された指示情報に基づいて、前記回路図内のピンに、電源ピン、ＧＮＤピンまたは信号ピンのいずれかを設定するとともに、前記電源ピンには当該電源ピンに印加される電圧に関する電源ピン電圧情報を設定するピン設定ステップと、
前記素子間の接続関係に関する情報であるネットリストに基づいて、前記信号ピンと前記電源ピンとの間に接続されるとともにＰＮ接合を有した素子を、電源側のＥＳＤ保護素子の候補である電源側ＥＳＤ保護素子候補として抽出する保護素子候補抽出ステップと、
前記耐圧情報、前記電源ピン電圧情報および前記ネットリストに基づいて、前記電源側ＥＳＤ保護素子候補が適切な耐圧を有しているか否かを判定する耐圧判定ステップと、
前記電源側ＥＳＤ保護素子候補に対する耐圧の判定結果に基づいて、前記回路図内のＥＳＤ保護素子として不適切な電源側のＥＳＤ保護素子を前記電源側ＥＳＤ保護素子候補から抽出するエラー素子抽出ステップと、
を含むことを特徴とするＥＳＤ保護素子検証方法。
【請求項２】
前記保護素子候補抽出ステップは、前記ネットリストに基づいて、前記信号ピンと前記ＧＮＤピンとの間に接続されるとともにＰＮ接合を有した素子をＧＮＤ側のＥＳＤ保護素子の候補であるＧＮＤ側ＥＳＤ保護素子候補として抽出し、
前記耐圧判定ステップは、前記耐圧情報および前記ネットリストに基づいて、前記ＧＮＤ側ＥＳＤ保護素子候補が適切な耐圧を有しているか否かを判定し、
前記エラー素子抽出ステップは、前記ＧＮＤ側ＥＳＤ保護素子候補に対する耐圧の判定結果に基づいて、前記回路図内のＥＳＤ保護素子として不適切なＧＮＤ側のＥＳＤ保護素子を前記ＧＮＤ側ＥＳＤ保護素子候補から抽出することを特徴とする請求項１に記載のＥＳＤ保護素子検証方法。
【請求項３】
前記ネットリストに基づいて、前記信号ピンおよび前記電源ピンへの前記電源側ＥＳＤ保護素子候補の接続方向が適切であるか否かを判定する電源側接続方向判定ステップをさらに含み、
前記エラー素子抽出ステップは、前記電源側ＥＳＤ保護素子候補に対する接続方向の判定結果に基づいて、前記回路図内のＥＳＤ保護素子として不適切な電源側のＥＳＤ保護素子を抽出することを特徴とする請求項１に記載のＥＳＤ保護素子検証方法。
【請求項４】
前記ネットリストに基づいて、前記信号ピンおよび前記ＧＮＤピンへの前記ＧＮＤ側ＥＳＤ保護素子候補の接続方向が適切であるか否かを判定するＧＮＤ側接続方向判定ステップをさらに含み、
前記エラー素子抽出ステップは、前記ＧＮＤ側ＥＳＤ保護素子候補に対する接続方向の判定結果に基づいて、前記回路図内のＥＳＤ保護素子として不適切なＧＮＤ側のＥＳＤ保護素子を抽出することを特徴とする請求項２に記載のＥＳＤ保護素子検証方法。
【請求項５】
前記保護素子候補抽出ステップの前に、前記ネットリスト内のシンボルを抽出するとともに、抽出したシンボル間の接続情報を展開し、各シンボルが何れの端子に接続されているかをネットリストに登録することによって、前記ネットリストの階層構造をフラット化するネットリストフラット化ステップをさらに含み、
前記保護素子候補抽出ステップは、階層構造がフラット化されたネットリストを用いて、前記電源側ＥＳＤ保護素子候補および前記ＧＮＤ側ＥＳＤ保護素子候補を抽出することを特徴とする請求項２に記載のＥＳＤ保護素子検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＳＤ保護素子検証方法に関するものである。
【背景技術】
【０００２】
人体や機械などに帯電する静電気から半導体集積回路を保護するために、半導体集積回路の入出力端子や電源端子に静電気保護素子が接続されている。この静電気保護素子はＥＳＤ（Electro  Static  Discharge）保護素子とも呼ばれ、ＰＮ接合を有した素子、ＰＮＰ接合を有した素子、ＮＰＮ接合を有した素子などによって構成されている。
【０００３】
ＥＳＤ保護素子は、所定のピンと電源ピンとの間や、所定のピンとＧＮＤピンとの間に配置され、これらのピン間に静電気による高い電圧が印加された場合に、ブレークダウンして、回路内のトランジスタ類を過電圧から保護している。このため、ＥＳＤ保護素子は、回路内の適切な位置に正しく配置される必要があり、半導体集積回路を設計する際には、ＥＳＤ保護素子が回路内の適切な位置に正しく配置されているかを検証しておかなければならない。
【０００４】
例えば、特許文献１に記載のＥＳＤ検証装置は、半導体装置の回路図からパッドシンボルを検索するとともに、検索したパッドシンボルに繋がる素子シンボルを検索している。そして、検索した素子シンボル中に、内部回路保護用の素子シンボルが存在するか否かを判定し、素子シンボルが存在しない場合にエラー処理を行なっている。
【０００５】
しかしながら、上記従来の技術では、多電源（多種類の電圧）が印加される半導体集積回路に対してはＥＳＤ保護素子の検証を行うことができないという問題があった。また、内部回路保護用の素子シンボルが存在するか否かを判定しているにすぎず、ＥＳＤ保護素子の特性に応じた検証を行うことはできないという問題があった。
【０００６】
【特許文献１】特開２００５−５０２０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、多電源が入力される半導体集積回路内で種々の耐圧を有したＥＳＤ保護素子が、適切なＥＳＤ保護素子であるか否かを容易に検証するＥＳＤ保護素子検証方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、半導体回路の回路図内の素子と当該素子の耐圧に関する耐圧情報とを対応付けする対応付けステップと、使用者からの指示情報に基づいて、前記回路図内のピンに、電源ピン、ＧＮＤピンまたは信号ピンのいずれかを設定するとともに前記電源ピンには当該電源ピンに印加される電圧に関する電源ピン電圧情報を設定するピン設定ステップと、前記素子間の接続関係に関する情報であるネットリストに基づいて、前記信号ピンと前記電源ピンとの間に接続されるとともにＰＮ接合を有した素子を、電源側のＥＳＤ保護素子の候補である電源側ＥＳＤ保護素子候補として抽出する保護素子候補抽出ステップと、前記耐圧情報、前記電源ピン電圧情報および前記ネットリストに基づいて、前記電源側ＥＳＤ保護素子候補が適切な耐圧を有しているか否かを判定する耐圧判定ステップと、前記電源側ＥＳＤ保護素子候補に対する耐圧の判定結果に基づいて、前記回路図内のＥＳＤ保護素子として不適切な電源側のＥＳＤ保護素子を前記電源側ＥＳＤ保護素子候補から抽出するエラー素子抽出ステップと、を含むことを特徴とするＥＳＤ保護素子検証方法が提供される。
【発明の効果】
【０００９】
この発明によれば、多電源が入力される半導体集積回路内で種々の耐圧を有したＥＳＤ保護素子が、適切なＥＳＤ保護素子であるか否かを容易に検証することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明に係るＥＳＤ保護素子検証方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
（実施の形態）
図１は、本発明の実施の形態に係るＥＳＤ保護素子検証装置の概念を示す機能ブロック図である。ＥＳＤ保護素子検証装置１は、多電源が入力される半導体集積回路内に配置される種々の耐圧を有した各ＥＳＤ保護素子が、適切なＥＳＤ保護素子であるか否かを検証する装置であり、ネットリスト作成装置４、回路図作成装置３に接続されている。
【００１２】
本実施の形態では、検証対象となる半導体集積回路の回路図に、半導体集積回路内に配置されている各素子の耐圧に関する情報（素子耐圧情報）を付加しておく。そして、ＥＳＤ保護素子検証装置１は、使用者によって設定されるパッド（ピン）毎の耐圧と、素子耐圧情報が付加された回路図と、を用いて回路図内のＥＳＤ保護素子が適切なＥＳＤ保護素子であるか否かを検証する。
【００１３】
回路図作成装置３は、回路図を作成する装置であり、例えば回路図設計エディタ装置である。回路図作成装置３が作成する回路図は、回路記号などの電子データと、各素子の素子耐圧情報と、を含んで構成されている。また、回路図は、シンボルを単位とした階層構造を有している。回路図作成装置３は、作成した回路図をネットリスト作成装置４とＥＳＤ保護素子検証装置１に送信する。
【００１４】
ネットリスト作成装置４は、回路図作成装置３から送られてくる回路図を用いて回路図のネットリストを作成する装置である。ネットリスト作成装置４が作成するネットリストは、回路図内での素子間の接続に関する情報（素子接続情報）であり、ネットリスト内では、素子名と、素子の種類と、素子間の端子の接続関係に関する情報と、が対応付けされている。ネットリスト作成装置４は、作成したネットリストをＥＳＤ保護素子検証装置１に送信する。
【００１５】
ＥＳＤ保護素子検証装置１は、ネットリスト入力部１１、回路図入力部１２、指示入力部１３、ノード電圧設定部１４、素子情報抽出部１５、ネットリストフラット化部１６、素子分類部１７、素子検証部１８、検証結果表示部１９を有している。
【００１６】
ネットリスト入力部１１は、ネットリスト作成装置４から送られてくるネットリストを入力してネットリストフラット化部１６へ送る。回路図入力部１２は、回路図作成装置３から送られてくる回路図を入力してノード電圧設定部１４と素子情報抽出部１５に送る。
【００１７】
指示入力部１３は、ＥＳＤ保護素子検証装置１の使用者によって入力される指示情報を入力してノード電圧設定部１４に送る。指示入力部１３へは、回路図内の各ノード（パッド、ピン）に対してノードの種類を指定する情報と、このノードに設定する電圧値に関する情報と、が指示情報として入力される。ノードに設定する電圧値は、素子の電源（動作電圧）に関する情報であり、高電圧の電源ノード（「高」）、中電圧の電源ノード（「中」）、低電圧の電源ノード（低）、ＧＮＤノードなどの何れかである。
【００１８】
ノード電圧設定部１４は、指示入力部１３から送られてくる指示情報と、回路図入力部１２から送られてくる回路図と、を用いて、各ノードの動作電圧を設定する。例えば、電源が０〜１０Ｖである場合、電源ノードには動作電圧（電源ピン電圧情報）として「低」が設定され、電源が１０〜２０Ｖである場合、電源ノードには動作電圧として「中」が設定され、電源が２０〜３０Ｖである場合、電源ノードには動作電圧として「高」が設定される。また、ノードがＧＮＤである場合には、ＧＮＤノードが設定される。ノード電圧設定部１４は、設定した動作電圧を、ノード電圧情報として素子分類部１７に送る。
【００１９】
素子情報抽出部１５は、回路図入力部１２から送られてくる回路図から、素子の種類に関する情報（素子種類情報）と素子耐圧情報を抽出する。素子情報抽出部１５は、抽出した素子種類情報を、ネットリストフラット化部１６に送信し、抽出した素子耐圧情報を、素子検証部１８に送信する。
【００２０】
ネットリストフラット化部１６は、ネットリスト入力部１１から送られてくるネットリストを、フラット化（階層構造を平坦化）するとともに、素子情報抽出部１５からの素子種類情報に基づいて、ＥＳＤ保護素子の検証に不要な抵抗をネットリストから除外する。ネットリストフラット化部１６は、ツリー構造が平坦化されるとともに不要な抵抗が除外されたネットリストを素子分類部１７に送る。
【００２１】
素子分類部１７は、ネットリストフラット化部１６からのネットリストに基づいて、ネットリスト内の素子の端子を抽出するとともに、この端子に接続されている素子を、素子の種類毎に分類する。素子分類部１７は、ネットリスト内の素子を電源側のＥＳＤ素子（電源側ＥＳＤ保護素子）、ＧＮＤ側のＥＳＤ素子（ＧＮＤ側のＥＳＤ保護素子）、ＥＳＤ保護素子として不適切な素子、内部素子の何れかに分類する。素子分類部１７は、素子の接合先のノードの種類や接合の極性（接合方向）に基づいて、各素子の分類を行なう。素子分類部１７は、素子の分類結果の情報（素子分類結果）とノード電圧設定部１４からのノード電圧情報とを対応付けて素子検証部１８に送る。
【００２２】
素子検証部１８は、素子分類部１７からの素子分類結果と、素子情報抽出部１５からの素子耐圧情報と、を用いて、ＥＳＤ保護素子の正当性を検証する。例えば、素子検証部１８は、電源側ＥＳＤ保護素子の耐圧が電源電圧よりも低い場合に、この電源側ＥＳＤ保護素子は不適切であると判定する。また、素子検証部１８は、ＧＮＤ側ＥＳＤ保護素子の耐圧が内部素子の耐圧よりも高い場合に、このＧＮＤ側ＥＳＤ保護素子は不適切であると判定する。素子検証部１８は、ＥＳＤ保護素子の検証結果および素子分類部１７からの素子分類結果に基づいて、ＥＳＤ保護素子の検証結果情報（素子リスト）を作成する。素子検証部１８は、作成した検証結果情報を検証結果表示部１９に送る。検証結果表示部１９は、素子検証部１８からの検証結果情報を表示させる。
【００２３】
図２は、実施の形態に係るＥＳＤ保護素子検証装置のハードウェア構成を示す図である。ＥＳＤ保護素子検証装置１は、ＣＰＵ（Central  Processing  Unit）９１、ＲＯＭ（Read  Only  Memory）９２、ＲＡＭ（Random  Access  Memory）９３、表示部９４、入力部９５を有している。ＥＳＤ保護素子検証装置１では、これらのＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、表示部９４、入力部９５がバスラインを介して接続されている。
【００２４】
ＣＰＵ９１は、ＥＳＤ保護素子の検証を行うコンピュータプログラムであるＥＳＤ保護素子検証プログラム９７を用いて集積回路内のＥＳＤ保護素子の検証を行う。表示部９４は、液晶モニタなどの表示装置であり、ＣＰＵ９１からの指示に基づいて、ＥＳＤ保護素子を検証する際の種々の情報（回路図、素子耐圧情報、ノード電圧情報、ネットリスト、素子種類情報、素子分類結果、検証結果情報など）を表示する。入力部９５は、マウスやキーボードを備えて構成され、使用者から外部入力される指示情報を入力する。入力部９５へ入力された指示情報は、ＣＰＵ９１へ送られる。
【００２５】
ＥＳＤ保護素子検証プログラム９７は、ＲＯＭ９２内に格納されており、バスラインを介してＲＡＭ９３へロードされる。ＣＰＵ９１はＲＡＭ９３内にロードされたＥＳＤ保護素子検証プログラム９７を実行する。具体的には、ＥＳＤ保護素子検証装置１では、使用者による入力部９５からの指示入力に従って、ＣＰＵ９１がＲＯＭ９２内からＥＳＤ保護素子検証プログラム９７を読み出してＲＡＭ９３内のプログラム格納領域に展開して各種処理を実行する。ＣＰＵ９１は、この各種処理に際して生じる各種データをＲＡＭ９３内に形成されるデータ格納領域に一時的に記憶させておく。
【００２６】
本実施の形態のＥＳＤ保護素子検証装置１で実行されるＥＳＤ保護素子検証プログラム９７は、前述の各部（ネットリスト入力部１１、回路図入力部１２、指示入力部１３、ノード電圧設定部１４、素子情報抽出部１５、ネットリストフラット化部１６、素子分類部１７、素子検証部１８、検証結果表示部１９）を含むモジュール構成となっており、上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
【００２７】
なお、本実施形態のＥＳＤ保護素子検証装置１で実行されるＥＳＤ保護素子検証プログラム９７を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態のＥＳＤ保護素子検証装置１で実行されるＥＳＤ保護素子検証プログラム９７をインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のＥＳＤ保護素子検証プログラム９７を、ＲＯＭ等に予め組み込んでＥＳＤ保護素子検証装置１に提供するように構成してもよい。
【００２８】
図３は、ＥＳＤ保護素子の検証手順を示すフローチャートである。回路図作成装置３は、検証対象となる半導体集積回路の回路図を作成するとともに、作成した回路図に半導体集積回路内に配置されている素子耐圧情報を付加しておく（ステップＳ１０）。回路図作成装置３が作成する回路図は、シンボルを単位とした階層構造を有している。
【００２９】
ここで、回路図の階層構造について説明する。図４は、ＴＯＰ回路図の一例を示す図である。図４に示すＴＯＰ回路図１０１は、最上層の回路図であり、複数のノード（パッドシンボル）Ｐ１〜Ｐ３と、複数の素子シンボルと、を含んで構成されている。そして、素子シンボルとしては、サブサーキットＸ１〜Ｘ３や抵抗Ｒ２などが接続されて配置されている。
【００３０】
サブサーキットＸ１〜Ｘ３内には、抵抗、トランジスタ、サブサーキットなどの素子シンボルが接続されて配置されている。図５は、サブサーキットの一例を示す図である。ここでは、サブサーキットの構成の一例として、サブサーキットＸ１の構成について説明する。サブサーキットＸ１は、トランジスタＱ１、抵抗Ｒ１、トランジスタＱ２を有している。トランジスタＱ１は、コレクタが（１）の端子に接続され、ベースが（２）の端子に接続され、エミッタが（３）の端子に接続されている。また、抵抗Ｒ１は、（３）の端子と（４）の端子に接続されている。また、トランジスタＱ２は、コレクタが（４）の端子に接続され、ベースが（５）の端子に接続され、エミッタが（６）の端子に接続されている。すなわち、サブサーキットＸ１では、トランジスタＱ１とトランジスタＱ２とが、抵抗Ｒ１を介して接続されている。サブサーキットＸ１〜Ｘ３内にサブサーキットが配置されている場合には、サブサーキットＸ１〜Ｘ３内のサブサーキットにも、抵抗、トランジスタ、サブサーキットなどの素子シンボルが配置される。このように、サブサーキット内にサブサーキットが配置されることによって、回路図は階層構造をなしている。
【００３１】
回路図作成装置３は、作成した回路図をネットリスト作成装置４に送るとともに、素子耐圧情報を付加した回路図をＥＳＤ保護素子検証装置１に送る。ネットリスト作成装置４は、回路図作成装置３から送られてくる回路図を用いて回路図のネットリストを作成する（ステップＳ２１）。ネットリスト作成装置４が作成するネットリストは、シンボルを単位とした階層構造を有している。ネットリスト作成装置４は、作成したネットリストをＥＳＤ保護素子検証装置１に送信する。
【００３２】
ＥＳＤ保護素子検証装置１は、ネットリスト入力部１１からネットリストを入力してネットリストフラット化部１６へ送る。また、ＥＳＤ保護素子検証装置１は、回路図入力部１２から回路図を入力してノード電圧設定部１４と素子情報抽出部１５に送る。
【００３３】
この後、ＥＳＤ保護素子検証装置１は、ＥＳＤ保護素子の検証処理を開始する。指示入力部１３へは、ＥＳＤ保護素子検証装置１の使用者によって指示情報が入力される。指示入力部１３への指示情報としては、回路図内の各ノードに対してノードの種類（電源ノードまたはＧＮＤノード）を指定する情報と、このノードに設定する動作電圧（「高」、「中」、「低」またはＧＮＤ）とが入力される。指示入力部１３へ入力された指示情報は、ノード電圧設定部１４に送られる。
【００３４】
ノード電圧設定部１４は、指示入力部１３から送られてくる指示情報と、回路図入力部１２から送られてくるＴＯＰ回路図と、を用いて、各ノードの動作電圧を設定する。これにより、例えば動作電圧が「高」である電源ノード、動作電圧が「中」である電源ノード、動作電圧が「低」である電源ノード、ＧＮＤノードが設定される。また、ノード電圧設定部１４は、回路図内の全てのノードから電源ノードとＧＮＤノードを除いた他のノードを信号端子に設定する。これにより、ノード電圧設定部１４は、電源ノード、ＧＮＤノード、その他の端子の指定を行う。そして、ノード電圧設定部１４は、各ノードに設定した動作電圧に関する情報を、ノード電圧情報として作成する（ステップＳ２２）。
【００３５】
素子情報抽出部１５は、回路図入力部１２から送られてくる回路図から、素子種類情報と素子耐圧情報を抽出する（ステップＳ２３）。素子情報抽出部１５は、抽出した素子種類情報をネットリストフラット化部１６に送信し、抽出した素子耐圧情報を素子検証部１８に送信する。また、素子情報抽出部１５は、抽出した素子種類情報と素子耐圧情報を回路図内素子リストに登録する。
【００３６】
ネットリストフラット化部１６は、ネットリスト入力部１１から送られてくるネットリストの階層構造をフラット化する。ここで、ネットリストの階層構造とフラット化について説明する。図６は、階層構造を有したネットリストの一例を示す図である。
【００３７】
階層構造を有したネットリスト１０２は、ＴＯＰ回路図内に配置される素子シンボルのリストである。ネットリスト１０２は、素子名、ノード名、シンボル間の接続に関する情報、サブサーキット内のシンボルの情報などを有している。図６では、ＴＯＰ回路図内にサブサーキットＸ１，Ｘ２が配置され、サブサーキットＸ１とサブサーキットＸ２が接続されている場合を示している。サブサーキットＸ１とサブサーキットＸ２とは、サブサーキットＸ１の端子（２）と、サブサーキットＸ２の端子（２）で接続されている場合を示している。さらに、サブサーキットＸ１は、トランジスタＱ１，Ｑ２と抵抗Ｒ１を有し、サブサーキットＸ２は、トランジスタＱ１と抵抗Ｒ１を有している。また、本実施の形態では、ネットリスト１０２は、ＴＯＰ回路図より下の階層構造として、サブサーキットＸ１内に配置される素子シンボル間の接続情報（図示せず）や、サブサーキットＸ２内に配置されるシンボル間の接続情報（図示せず）を有している。
【００３８】
ネットリストフラット化部１６は、ネットリストのフラット化処理として、サブサーキットの階層を平坦化する。図７は、平坦化されたネットリストの一例を示す図である。ここでは、平坦化されたネットリストの一例として、階層構造を有したネットリスト１０２を平坦化した場合のネットリスト１０３について説明する。ネットリスト１０２は、素子名、ノード名、シンボル間の接続に関する情報などを有している。
【００３９】
ネットリストフラット化部１６は、サブサーキットＸ１内のシンボルを抽出するとともに、抽出したシンボル間の接続情報を展開する。また、ネットリストフラット化部１６は、サブサーキットＸ２内のシンボルを抽出するとともに、抽出したシンボル間の接続情報を展開する。これにより、ネットリストフラット化部１６は、サブサーキットＸ１，Ｘ２内の各シンボルが何れの端子に接続されているかをネットリスト１０３に登録する。このとき、ネットリストフラット化部１６は、シンボルの素子名とノード名を一意的な値に付け替える。ネットリストフラット化部１６は、例えばサブサーキットＸ１内のトランジスタＱ１、抵抗Ｒ１、トランジスタＱ２を、それぞれトランジスタＱ１１、抵抗Ｒ１１、トランジスタＱ１２に置換する。さらに、ネットリストフラット化部１６は、サブサーキットＸ２内のトランジスタＱ１、抵抗Ｒ１を、それぞれトランジスタＱ２１、抵抗Ｒ２１に置換する。
【００４０】
さらに、ネットリストフラット化部１６は、ネットリストのフラット化とともに、素子情報抽出部１５からの素子種類情報に基づいて、ＥＳＤ保護素子の検証に不要な抵抗をネットリストから除外する（抵抗処理）（ステップＳ３０）。ネットリストフラット化部１６は、平坦化されるとともに不要な抵抗が除外されたネットリストを素子分類部１７に送る。
【００４１】
素子分類部１７は、ネットリストフラット化部１６からのネットリストに基づいて、ネットリスト内の素子の端子を抽出する。そして、素子分類部１７は、抽出した端子にＰＮ接合、ＰＮＰ接合、ＮＰＮ接合が接続されている場合に、この素子を素子の種類毎に分類する。素子分類部１７は、ネットリストから抽出した素子を、電源側ＥＳＤ保護素子、ＧＮＤ側のＥＳＤ保護素子、ＥＳＤ保護素子として不適切な素子、内部素子の何れかに分類する。具体的には、素子分類部１７は、素子の種類と、この素子がＰＮ接合などを介して接続されているノードのノード電圧情報と、を対応付けし、素子分類結果として素子検証部１８に送る（ステップＳ４０）。
【００４２】
素子検証部１８は、素子分類部１７からの素子分類結果と、素子情報抽出部１５からの素子耐圧情報と、を用いて、ＥＳＤ保護素子の正当性（適切か否か）を検証する。素子検証部１８は、ＥＳＤ保護素子の正当性検証として、電源側ＥＳＤ保護素子の正当性を確認する（ステップＳ５０）。
【００４３】
電源側ＥＳＤ保護素子が適切なＥＳＤ保護素子であれば（ステップＳ５０、ＯＫ）、素子検証部１８は、この電源側ＥＳＤ保護素子をＥＳＤ素子情報リスト内に登録する（ステップＳ７０）。
【００４４】
一方、電源側ＥＳＤ保護素子が不適切なＥＳＤ保護素子であれば（ステップＳ５０、ＮＧ）、素子検証部１８は、この電源側ＥＳＤ保護素子をＥＳＤ素子エラーリスト内に登録する（ステップＳ８０）。
【００４５】
また、素子検証部１８は、ＧＮＤ側ＥＳＤ保護素子の正当性を確認する（ステップＳ６０）。ＧＮＤ側ＥＳＤ保護素子が適切なＧＮＤ保護素子であれば（ステップＳ５０、ＯＫ）、素子検証部１８は、このＧＮＤ側ＥＳＤ保護素子をＥＳＤ素子情報リスト内に登録する（ステップＳ７０）。
【００４６】
一方、ＧＮＤ側ＥＳＤ保護素子が不適切なＥＳＤ保護素子であれば（ステップＳ６０、ＮＧ）、素子検証部１８は、このＧＮＤ側ＥＳＤ保護素子をＥＳＤ素子エラーリスト内に登録する（ステップＳ８０）。
【００４７】
素子検証部１８は、回路図内素子リスト、ＥＳＤ素子情報リスト、ＥＳＤ素子エラーリストを用いて、検証結果情報を作成し、検証結果表示部１９に送る。検証結果表示部１９は、素子検証部１８からの検証結果情報を表示させる。このとき、検証結果表示部１９は、回路図内でエラー素子（不適切な電源側ＥＳＤ保護素子、不適切なＧＮＤ側ＥＳＤ保護素子）を強調表示させる（ステップＳ９０）。
【００４８】
つぎに、図３のフローチャートで説明した、ＥＳＤ保護素子の検証処理を詳細に説明する。まず、ステップＳ２２の処理（ノードへの電圧設定処理）について説明する。図８は、ノードへの電圧設定処理手順を示すフローチャートである。
【００４９】
ノード電圧設定部１４は、回路図入力部１２から送られてくるＴＯＰ回路図を開く（ステップＳ２１０）。これにより、表示部９４は、ＴＯＰ回路図を画面上に表示させる。ＥＳＤ保護素子検証装置１は、使用者によって入力される指示情報に基づいて、回路図内のノードに電圧設定を行う。
【００５０】
ＥＳＤ保護素子検証装置１の使用者によって、ＴＯＰ回路図内で電源ノードやＧＮＤノードが指定される。具体的には、指示入力部１３からＴＯＰ回路図上のノードを指定する指示情報が入力され、これによりノード電圧設定部１４は、このノードをノード電圧情報の設定対象に設定する。指示入力部１３から電源ノードを指定する指示情報が入力されると、ノード電圧設定部１４は、指示入力部１３から指定されたノードを電源ノードに設定する。また、指示入力部１３からＧＮＤノードを指定する指示情報が入力されると、ノード電圧設定部１４は、指示入力部１３から指定されたノードをＧＮＤノードに設定する（ステップＳ２２０）。
【００５１】
さらに、ＥＳＤ保護素子検証装置１の使用者によって、電源ノードの電圧値（動作電圧）が指定される（ステップＳ２３０）。具体的には、指示入力部１３から電圧値（「高」、「中」、「低」の何れか）を指定する指示情報が入力され、これによりノード電圧設定部１４は、指定された電圧値（「高」、「中」、「低」の何れか）を電源ノードに設定する。また、ノード電圧設定部１４は、ＧＮＤノードの動作電圧として「ＧＮＤ」を設定する。
【００５２】
ここで、電源ノード、ＧＮＤノード、動作電圧の設定画面の一例について説明する。図９は、ノードの種類を設定するための入力画面の一例を示す図である。同図に示すように、入力画面１０４には、ノードを電源ノードであって電圧値の「高」に設定するためのノード名入力欄、電源ノードであって電圧値の「中」に設定するためのノード名入力欄、電源ノードであって電圧値の「低」に設定するためのノード名入力欄が設けられている。また、入力画面１０４には、ノードをＧＮＤノードに設定するためのノード名入力欄が設けられている。例えば、ノードＰ１とノードＰ４を、電源ノードであって電圧値の「高」に設定する場合には、電圧値の「高」に対応するノード名入力欄にノードＰ１、ノードＰ４を指定する情報が入力される。これにより、ノードＰ１とノードＰ４は、電圧値として「高」が設定される。
【００５３】
ノード電圧設定部１４は、全ての電源ノード、全てのＧＮＤノードを指定したかを確認する（ステップＳ２４０）。ノード電圧設定部１４は、回路図内で電源ノードまたはＧＮＤノードに指定していないノードがあれば（ステップＳ２４０、Ｎｏ）、ステップＳ２２０〜Ｓ２４０の処理を行う。ノード電圧設定部１４は、回路図内で全ての電源ノード、全てのＧＮＤノードの指定を行なうまで、ステップＳ２２０〜Ｓ２４０の処理を繰り返す。
【００５４】
ノード電圧設定部１４は、回路図内で全ての電源ノード、全てのＧＮＤノードを指定するとともに、全ての電源ノードに動作電圧を設定すると（ステップＳ２４０、Ｙｅｓ）、回路図から全てのパッドシンボル（ノード）を検索して抽出する（ステップＳ２５０）。
【００５５】
ノード電圧設定部１４は、抽出した全てのノードの中から電源ノードにもＧＮＤノードにも設定されていないノードを信号端子に設定する（ステップＳ２６０）。ノード電圧設定部１４は、設定したノードの種類や動作電圧に基づいて、ノード電圧情報（電源・ＧＮＤ・信号端子情報）を作成する（ステップＳ２７０）。
【００５６】
ここで、ノード電圧情報の構成の一例について説明する。図１０は、ノード電圧情報の構成の一例を示す図である。ノード電圧情報１０５は、電源ノード、ＧＮＤノード、その他のノード（信号端子）を分類した情報であり、各ノードが電源ノード、ＧＮＤノード、信号端子の何れであるかを示している。ノード電圧情報１０５内では、電源ノードやＧＮＤノードの情報として、電源ノードまたはＧＮＤノードのノード名と、このノードの電圧値とが対応付けられている。電圧値として０Ｖが設定されているノードがＧＮＤノードであり、０Ｖ以外の電圧値が設定されているノードが電源ノードである。例えば、図１０では、ノード名が「Ｐ１」のノードは、電源ノードであり、５．０Ｖが電圧値として設定されている。また、ノード電圧情報１０５内では、信号端子の情報として、信号端子の端子名が設定されている。例えば、図１０では、ノード名が「Ｐ２」のノードが信号端子に設定されている。
【００５７】
つぎに、ステップＳ２３の処理である、素子の特性などに関する素子特性情報（素子種類情報や素子耐圧情報）の抽出処理について説明する。図１１は、素子特性情報の抽出処理手順を示すフローチャートである。素子情報抽出部１５は、回路図入力部１２から送られてくるＴＯＰ回路図を開く（ステップＳ３１０）。素子情報抽出部１５は、ＴＯＰ回路図から最初の素子を選択する（ステップＳ３２０）。素子情報抽出部１５は、選択した素子がサブサーキット（ｓｕｂｃｋｔ）であるか否かを判断する（ステップＳ３３０）。選択した素子がサブサーキットでなければ（ステップＳ３３０、Ｎｏ）、素子情報抽出部１５は、選択した素子のプロパティをＴＯＰ回路図内から調べる。そして、素子情報抽出部１５は、選択した素子のプロパティから、選択した素子の特性などに関する素子特性情報として、素子名、素子の種類（素子種類情報）、素子の耐圧値（素子耐圧情報）を抽出し、回路図内素子リストに登録する（ステップＳ３４０）。
【００５８】
素子情報抽出部１５は、ＴＯＰ回路図内の全素子に対して素子特性情報の抽出処理を行ったか否かを確認する（ステップＳ３５０）。素子情報抽出部１５は、ＴＯＰ回路図内の全素子に対して素子特性情報の抽出処理を行っていなければ（ステップＳ３５０、Ｎｏ）、次の素子を選択する（ステップＳ３６０）。そして、素子情報抽出部１５は、ステップＳ３３０〜Ｓ３５０の処理を繰り返す。素子情報抽出部１５は、ＴＯＰ回路図内の全素子に対して素子特性情報の抽出処理を完了するまでステップＳ３６０，Ｓ３３０〜Ｓ３５０の処理を繰り返す。
【００５９】
一方、素子情報抽出部１５の選択した素子がサブサーキットであれば（ステップＳ３３０、Ｙｅｓ）（Ａ１）、素子情報抽出部１５は、サブサーキットの回路図（サブサーキット回路図）を開く（ステップＳ４１０）。そして、素子情報抽出部１５は、サブサーキット回路図（ＴＯＰ回路図よりも１階層下の回路図）に対して素子特性情報の抽出処理を行う。このとき、素子情報抽出部１５は、ＴＯＰ回路図から素子特性情報を抽出した際の処理と同様の処理によってサブサーキット回路図から素子特性情報を抽出する。
【００６０】
具体的には、素子情報抽出部１５は、サブサーキット回路図から最初の素子を選択する（ステップＳ４２０）。素子情報抽出部１５は、選択した素子がサブサーキットであるか否かを判断する（ステップＳ４３０）。選択した素子がサブサーキットでなければ（ステップＳ４３０、Ｎｏ）、素子情報抽出部１５は、選択した素子のプロパティをサブサーキット回路図内から調べる。そして、素子情報抽出部１５は、選択した素子のプロパティから、選択した素子の素子特性情報を抽出し、回路図内素子リストに登録する（ステップＳ４４０）。
【００６１】
素子情報抽出部１５は、サブサーキット回路図内の全素子に対して素子特性情報の抽出処理を行ったか否かを確認する（ステップＳ４５０）。素子情報抽出部１５は、サブサーキット回路図内の全素子に対して素子特性情報の抽出処理を行っていなければ（ステップＳ４５０、Ｎｏ）、次の素子を選択する（ステップＳ４６０）。そして、素子情報抽出部１５は、ステップＳ４３０〜Ｓ４５０の処理を繰り返す。素子情報抽出部１５は、サブサーキット回路図内の全素子から素子特性情報を抽出するまでステップＳ４６０，Ｓ４３０〜Ｓ４５０の処理を繰り返す。
【００６２】
ステップＳ４３０の処理で、素子情報抽出部１５の選択した素子がサブサーキットであれば（ステップＳ４３０、Ｙｅｓ）、素子情報抽出部１５は、Ａ１の工程に戻る。素子情報抽出部１５は、選択した素子のサブサーキット回路図（サブサーキット回路図よりも１階層下の回路図）を開く（ステップＳ４１０）。そして、素子情報抽出部１５は、サブサーキット回路図に対して素子特性情報の抽出処理を行う。このとき、素子情報抽出部１５は、ＴＯＰ回路図から素子特性情報を抽出した際の処理と同様の処理によってサブサーキット回路図から素子特性情報を抽出する。
【００６３】
素子情報抽出部１５は、選択した素子がサブサーキットであれば、ステップＳ４１０〜Ｓ４３０の処理を行うことによって、１階層下のサブサーキット回路図から素子特性情報を抽出する。この１階層下のサブサーキット回路図から素子特性情報を抽出する処理は、最下層のサブサーキット回路図から素子特性情報を抽出するまで繰り返される。換言すると、素子情報抽出部１５は、上層側から下層側への順番でサブサーキット回路図を開いていき、サブサーキット内の素子を選択していく。そして、選択した素子がサブサーキットでなければ（ステップＳ４３０、Ｎｏ）、選択した素子の素子特性情報を回路図内素子リストに登録する（ステップＳ４４０）。一方、選択した素子がサブサーキットであれば（ステップＳ４３０、Ｙｅｓ）、１階層下のサブサーキット回路図から素子特性情報を抽出する。これにより、素子情報抽出部１５は、ステップＳ４２０の処理で選択した素子がサブサーキットであれば、Ａ１の工程に戻り、ステップＳ４１０〜Ｓ４３０の処理を行う。
【００６４】
素子情報抽出部１５は、サブサーキット回路図内の全素子に対して素子特性情報の抽出処理を完了すると（ステップＳ４５０、Ｙｅｓ）、素子情報抽出部１５は、１階層上の階層に戻ってＡ２の工程から再開する。例えば、ｎ（ｎは２以上の自然数）階層目のサブサーキット回路図から全素子の素子特性情報を抽出すると、素子情報抽出部１５は、（ｎ−１）階層目のサブサーキット回路図に戻ってＡ２の処理（ステップＳ３４０の後の処理）から再開する。また、ＴＯＰ回路図よりも１階層下のサブサーキット回路図から全素子の素子特性情報を抽出すると、ＴＯＰ回路図に戻ってＡ２の工程（ステップＳ３４０の後の処理）から再開する。
【００６５】
素子情報抽出部１５は、ＴＯＰ回路図に戻ってＡ２の工程から再開すると、ＴＯＰ回路図内の全素子に対して素子特性情報の抽出処理を行ったか否かを確認する（ステップＳ３５０）。素子情報抽出部１５は、ＴＯＰ回路図内の全素子に対して素子特性情報の抽出処理を行っていなければ（ステップＳ３５０、Ｎｏ）、次の素子を選択する（ステップＳ３６０）。そして、素子情報抽出部１５は、ステップＳ３３０〜Ｓ３５０の処理を繰り返す。素子情報抽出部１５は、ＴＯＰ回路図内の全素子に対して素子特性情報と素子耐圧情報の抽出処理を完了するまでステップＳ３６０，Ｓ３３０〜Ｓ３５０の処理を繰り返す。ＴＯＰ回路図内の全素子に対して素子特性情報と素子耐圧情報の抽出処理を完了すると（ステップＳ３５０、Ｙｅｓ）、素子情報抽出部１５は、素子特性情報の抽出処理を終了する。
【００６６】
ここで、回路図内素子リストの構成について説明する。図１２は、回路図内素子リストの構成の一例を示す図である。回路図内素子リスト１０６は、回路図内で素子が配置されている階層の位置と、素子名と、素子の種類と、素子の耐圧値と、が対応付けされた情報である。図１２では、ＴＯＰ階層にＱ１の素子が配置され、このＱ１はｎｐｎトランジスタであって、耐圧が８Ｖである場合を示している。また、ｓｕｂｃｋｔ階層にＡＭＰのＱ１の素子が配置され、このＡＭＰのＱ１はｎｐｎトランジスタであって、耐圧が５Ｖである場合を示している。また、ｓｕｂｃｋｔ階層にＳＷのＱ１の素子が配置され、このＳＷのＱ１はｎｐｎトランジスタであって、耐圧が３０Ｖである場合を示している。
【００６７】
つぎに、ステップＳ３０のネットリストのフラット化処理について説明する。図１３は、ネットリストのフラット化処理手順を示すフローチャートである。ネットリストフラット化部１６は、ネットリスト入力部１１から送られてくるネットリストのＴＯＰ階層を抽出して開く（ステップＳ５１０）。ネットリストフラット化部１６は、ネットリストのＴＯＰ階層内から最初の素子を選択する（ステップＳ５２０）。ネットリストフラット化部１６は、選択した素子がサブサーキット（ｓｕｂｃｋｔ）であるか否かを判断する（ステップＳ５３０）。選択した素子がサブサーキットでなければ（ステップＳ５３０、Ｎｏ）、ネットリストフラット化部１６は、選択した素子の素子名とノード名を、一意的な値に付け替える。そして、ネットリストフラット化部１６は、フラット化した素子の情報を、フラット化前の素子の情報と置き換えることによってネットリストに登録する（フラット化する）。これにより、ネットリストフラット化部１６は、ＴＯＰ階層に登録されていた素子を１階層下の素子に変更する（ステップＳ５４０）。換言すると、ネットリストフラット化部１６は、ＴＯＰ階層に登録されていた素子内の素子をフラット化してＴＯＰ階層に追加登録（ＴＯＰ階層からの素子指定を追加）する。
【００６８】
ネットリストフラット化部１６は、ＴＯＰ階層内の全素子に対してフラット化処理を行なったか否かを確認する（ステップＳ５５０）。ネットリストフラット化部１６は、ＴＯＰ階層内の全素子に対してフラット化処理を行っていなければ（ステップＳ５５０、Ｎｏ）、次の素子を選択する（ステップＳ５６０）。そして、ネットリストフラット化部１６は、ステップＳ５３０〜Ｓ５５０の処理を繰り返す。ネットリストフラット化部１６は、ＴＯＰ階層内の全素子に対してフラット化処理を完了するまでステップＳ５６０，Ｓ５３０〜Ｓ５５０の処理を繰り返す。
【００６９】
一方、ネットリストフラット化部１６の選択した素子がサブサーキットであれば（ステップＳ５３０、Ｙｅｓ）（Ｂ１）、ネットリストフラット化部１６は、ネットリストのサブサーキット階層を抽出して開く（ステップＳ６１０）。そして、ネットリストフラット化部１６は、サブサーキット階層（ＴＯＰ階層よりも１階層下の階層）に対してフラット化処理を行う。このとき、素子情報抽出部１５は、ＴＯＰ階層をフラット化した際の処理と同様の処理によってサブサーキット階層をフラット化する。
【００７０】
具体的には、ネットリストフラット化部１６は、サブサーキット階層から最初の素子を選択する（ステップＳ６２０）。ネットリストフラット化部１６は、選択した素子がサブサーキットであるか否かを判断する（ステップＳ６３０）。選択した素子がサブサーキットでなければ（ステップＳ６３０、Ｎｏ）、ネットリストフラット化部１６は、選択した素子の素子名とノード名を、一意的な値に付け替えてフラット化する。そして、ネットリストフラット化部１６は、フラット化した素子の情報を、フラット化前の素子の情報と置き換えることによってネットリストに登録する。これにより、ネットリストフラット化部１６は、サブサーキット階層に登録されていた素子を１階層下の素子に変更（ＴＯＰ階層からの素子指定を追加）する（ステップＳ６４０）。
【００７１】
ネットリストフラット化部１６は、サブサーキット階層内の全素子に対してフラット化処理を行ったか確認する（ステップＳ６５０）。ネットリストフラット化部１６は、サブサーキット階層内の全素子に対してフラット化処理を行っていなければ（ステップＳ６５０、Ｎｏ）、次の素子を選択する（ステップＳ６６０）。そして、ネットリストフラット化部１６は、ステップＳ６３０〜Ｓ６５０の処理を繰り返す。ネットリストフラット化部１６は、サブサーキット階層内の全素子をフラット化するまでステップＳ６６０，Ｓ６３０〜Ｓ６５０の処理を繰り返す。
【００７２】
ステップＳ６３０の処理で、ネットリストフラット化部１６の選択した素子がサブサーキットであれば（ステップＳ６３０、Ｙｅｓ）、ネットリストフラット化部１６は、Ｂ１に戻る。そして、ネットリストフラット化部１６は、選択した素子のサブサーキット階層（サブサーキット階層よりも１階層下の階層）を開く（ステップＳ６１０）。そして、ネットリストフラット化部１６は、サブサーキット階層に対してフラット化処理を行う。このとき、素子情報抽出部１５は、ＴＯＰ階層をフラット化した際の処理と同様の処理によってサブサーキット階層をフラット化する。
【００７３】
素子情報抽出部１５は、選択した素子がサブサーキットであれば、ステップＳ６１０〜Ｓ６３０の処理を行うことによって、１階層下のサブサーキット階層をフラット化する。この１階層下のサブサーキット階層をフラット化する処理は、最下層のサブサーキット階層をフラット化するまで繰り返される。換言すると、素子情報抽出部１５は、上層側から下層側への順番でサブサーキット階層を開いていき、サブサーキット内の素子を選択していく。そして、選択した素子がサブサーキットでなければ（ステップＳ６３０、Ｎｏ）、選択した素子をフラット化する（ステップＳ６４０）。一方、選択した素子がサブサーキットであれば（ステップＳ６３０、Ｙｅｓ）、１階層下のサブサーキット階層をフラット化する。これにより、素子情報抽出部１５は、ステップＳ６２０の処理で選択した素子がサブサーキットであれば、Ｂ１の工程に戻って、ステップＳ６１０〜Ｓ６３０の処理を行う。
【００７４】
ネットリストフラット化部１６は、サブサーキット階層内の全素子に対してフラット化処理を完了すると（ステップＳ６５０、Ｙｅｓ）、１階層上の階層に戻ってＢ２の工程から再開する。例えば、ｍ（ｍは２以上の自然数）階層目のサブサーキット階層をフラット化すると、ネットリストフラット化部１６は、（ｍ−１）階層目のサブサーキット階層に戻ってＢ２の工程（ステップＳ５４０の後の処理）から再開する。また、ＴＯＰ階層よりも１階層下のサブサーキット階層をフラット化すると、ＴＯＰ階層に戻ってＢ２の工程（ステップＳ５４０の後の処理）から再開する。
【００７５】
ネットリストフラット化部１６は、ＴＯＰ階層に戻ってＢ２の工程から再開すると、ＴＯＰ階層内の全素子に対してフラット化処理を行ったか否かを確認する（ステップＳ５５０）。ネットリストフラット化部１６は、ＴＯＰ階層内の全素子に対してフラット化処理を行っていなければ（ステップＳ５５０、Ｎｏ）、次の素子を選択する（ステップＳ５６０）。そして、ネットリストフラット化部１６は、ステップＳ５３０〜Ｓ５５０の処理を繰り返す。ネットリストフラット化部１６は、ＴＯＰ階層内の全素子に対してフラット化処理を完了するまでステップＳ５６０，Ｓ５３０〜Ｓ５５０の処理を繰り返す。ＴＯＰ階層内の全素子に対してフラット化処理を完了すると（ステップＳ５５０、Ｙｅｓ）、ネットリストフラット化部１６は、フラット化処理を終了する。
【００７６】
つぎに、ステップＳ３０の抵抗処理（ＥＳＤ保護素子の検証に不要な抵抗をネットリストから除外する処理）について説明する。図１４は、不要な抵抗の除外処理を説明するための図である。ネットリストフラット化部１６は、一方の端部がピン（Ｐｉｎ）に直接接続されている抵抗であって、他方の端部が電源ノード、ＧＮＤノード、他のピンに接続されていない抵抗をショートさせる。（ｂ）に示すように、ネットリストフラット化部１６は、一方の端部がピンに直接接続されている抵抗であって、他方の端部が内部素子や他ノード（電源ノードやＧＮＤノード以外のノード）に接続されている抵抗をショートさせる。このとき、ネットリストフラット化部１６は、他の抵抗がショートさせられることによって、自らの抵抗の端部がピンに直接接続され、かつ他方の端部が内部素子や他ノードに接続されることとなった抵抗もショートさせる。これにより、ネットリストフラット化部１６は、ＥＳＤ保護素子の検証に不要な抵抗をネットリストから除外する。
【００７７】
（ａ）に示すように、ネットリストフラット化部１６は、一方の端部がピン（Ｐｉｎ１）に直接接続されている抵抗であっても、他方の端部が電源ノード（Ｖｃｃ）、ＧＮＤノード、他のピン（Ｐｉｎ２）の何れかに接続されていれば、この抵抗をショートさせることなく残しておく。このように、本実施の形態では、ＥＳＤ保護素子の検証に不要な抵抗をネットリストから除外しておくので、ＥＳＤ保護素子検索の効率が向上する。
【００７８】
つぎに、ステップＳ４０の処理（素子の分類処理）について説明する。図１５は、素子の分類処理手順を示すフローチャートである。素子分類部１７は、フラット化されたネットリストに登録されている素子の端子毎に、端子に接続されている素子を検索する。具体的には、素子分類部１７は、端子に接続されている全素子の結線を調べる（ステップＳ７１０）。そして、端子に接続されている素子の結線が、ＰＮ接合、ＰＮＰ接合またはＮＰＮ接合の何れかであるか否かを判定する（ステップＳ７２０）。
【００７９】
ここで、ＥＳＤ保護素子の候補となるＰＮ接合、ＰＮＰ接合、ＮＰＮ接合（以下、ＥＳＤ保護素子候補という）について説明する。図１６は、ＥＳＤ保護素子候補となる素子を説明するための図である。ＥＳＤ保護素子候補となる素子は、ｎｐｎ、ｐｎｐ、ｎｍｏｓ、ｐｍｏｓ、ｄｉｏｄｅで構成されるＰＮ接合、ベースオープンのｎｐｎで構成されるＮＰＮ接合、ベースオープンのｐｎｐで構成されるＰＮＰ接合の何れかを有している。換言すると、これらのＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の結線を有した素子が、ＥＳＤ保護素子候補となる。
【００８０】
具体的には、（ａ）や（ｂ）に示すｎｐｎトランジスタ内のＰＮ接合、（ｃ）や（ｄ）に示すｐｎｐトランジスタ内のＰＮ接合がＥＳＤ保護素子候補となる。また、（ｋ）や（ｌ）に示すｎｍｏｓ内のＰＮ接合、（ｍ）や（ｎ）に示すｐｍｏｓ内のＰＮ接合がＥＳＤ保護素子候補となる。また、（ｏ）に示すｄｉｏｄｅ内のＰＮ接合がＥＳＤ保護素子候補となる。さらに、（ｉ）に示すベースオープンのｎｐｎトランジスタ内のＮＰＮ接合、（ｊ）に示すベースオープンのｐｎｐトランジスタ内のＰＮＰ接合がＥＳＤ保護素子候補となる。一方、（ｅ）、（ｆ）、（ｇ）、（ｈ）に示す接合はＥＳＤ保護素子候補から除外しておく。
【００８１】
図１７は、ｍｏｓトランジスタのＰＮ接合を説明するための図である。図１７の（Ｘ）は、図１６の（ｋ）、（ｌ）に示したｎｍｏｓの回路図と、（ｋ）に示したｎｍｏｓの断面図を示している。また、図１７の（Ｙ）は、図１６の（ｍ）、（ｎ）に示したｐｍｏｓの回路図と、（ｍ）に示したｐｍｏｓの断面図を示している。（Ｘ）、（Ｙ）に示すように、ｎｍｏｓやｐｍｏｓでは、ｍｏｓトランジスタのバックゲートを利用してＰＮ接合を構成している。
【００８２】
ここで、複数個の素子列がＥＳＤ保護素子候補となる場合について説明する。図１８は、複数個の素子列がＥＳＤ保護素子候補となる場合を説明するための図である。同図に示すように、ｐｉｎからＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の何れかを介して電源ピン（Ｖｃｃ）、ＧＮＤピン（ＧＮＤ）に接続されている素子や素子列がＥＳＤ保護素子候補となる。換言すると、ピンとＶｃｃとの間やピンとＧＮＤとの間であって、ピンから直近の位置に１〜複数の素子が直列接続されている場合、これらの直列接続されている素子列をそれぞれＥＳＤ保護素子候補としてもよい。
【００８３】
このように、ＥＳＤ保護素子候補は、１個の素子であってもよいし、２個以上の素子列であってもよい。例えば、ｐｉｎとＶｃｃとの間やｐｉｎとＧＮＤとの間にＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の何れかが１個だけ配置されている場合は、この１個の素子がＥＳＤ保護素子候補となる。また、ｐｉｎとＶｃｃとの間やｐｉｎとＧＮＤとの間にＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の何れかが２個配置されている場合は、この２個からなる素子列をＥＳＤ保護素子候補としてもよい。さらに、ｐｉｎとＶｃｃとの間やｐｉｎとＧＮＤとの間にＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の何れかが３個配置されている場合は、この３個からなる素子列をＥＳＤ保護素子候補としてもよい。以下では、ＥＳＤ保護素子候補を、１個の素子または２個の素子からなる素子列に設定した場合について説明する。
【００８４】
端子の接続先が、ＥＳＤ保護素子候補（ＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の何れか）である場合（ステップＳ７２０、Ｙｅｓ）、素子分類部１７は、このＥＳＤ保護素子候補の接合先のノードを調べる（ステップＳ７３０）。
【００８５】
ＥＳＤ保護素子候補の接合先のノードが、電源ノードである場合（ステップＳ７４１）、素子分類部１７は、ＥＳＤ保護素子候補と電源ノードとの間の接合の極性を判定する（ステップＳ７５１）。ＥＳＤ保護素子候補と電源ノードとの間の接合の極性が適切な場合（ステップＳ７５１、ＯＫ）、素子分類部１７は、電源ノードを接合先としたＥＳＤ保護素子候補を電源側ＥＳＤ素子と判定する（ステップＳ７６１）。
【００８６】
また、ＥＳＤ保護素子候補の接合先のノードが、ＧＮＤノードである場合（ステップＳ７４２）、素子分類部１７は、ＥＳＤ保護素子候補とＧＮＤノードとの間の接合の極性を判定する（ステップＳ７５２）。ＥＳＤ保護素子候補とＧＮＤノードとの間の接合の極性が適切な場合（ステップＳ７５２、ＯＫ）、素子分類部１７は、ＧＮＤノードを接合先としたＥＳＤ保護素子候補をＧＮＤ側ＥＳＤ素子と判定する（ステップＳ７６２）。
【００８７】
ＥＳＤ保護素子候補と電源ノードとの間の接合の極性が不適切な場合（ステップＳ７５１、ＮＧ）、素子分類部１７は、電源ノードを接合先としたＥＳＤ保護素子候補をＥＳＤエラーのノードであると判定する（ステップＳ７６３）。また、ＥＳＤ保護素子候補とＧＮＤノードとの間の接合の極性が不適切な場合（ステップＳ７５２、ＮＧ）、素子分類部１７は、ＧＮＤノードを接合先としたＥＳＤ保護素子候補をＥＳＤエラーのノードであると判定する（ステップＳ７６３）。
【００８８】
端子の接続先が、ＥＳＤ保護素子候補でない場合（ステップＳ７２０、Ｎｏ）、素子分類部１７は、この端子の接合先は内部素子であると判定する（ステップＳ７６４）。ＥＳＤ保護素子候補の接合先ノードが、電源ノードやＧＮＤノード以外のその他のノードである場合（ステップＳ７４３）、素子分類部１７は、その他のノードの先に接続されている素子の結線を調べる（ステップＳ８１０）。そして、素子分類部１７は、その他のノードの先に接続されている素子の結線が、ＰＮ接合、ＰＮＰ接合またはＮＰＮ接合の何れかであるか否かを判定する（ステップＳ８２０）。
【００８９】
端子の接続先が、ＥＳＤ保護素子候補（ＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の何れか）である場合（ステップＳ８２０、Ｙｅｓ）、素子分類部１７は、このＥＳＤ保護素子候補の接合先のノードを調べる（ステップＳ８３０）。
【００９０】
ＥＳＤ保護素子候補の接合先のノードが、電源ノードである場合（ステップＳ８４１）、素子分類部１７は、ＥＳＤ保護素子候補と電源ノードとの間の接合の極性を判定する（ステップＳ８５１）。接合の極性が適切な場合（ステップＳ８５１、ＯＫ）、素子分類部１７は、電源ノードを接合先としたＥＳＤ保護素子候補を電源側ＥＳＤ素子と判定する（ステップＳ７６１）。
【００９１】
また、ＥＳＤ保護素子候補の接合先のノードが、ＧＮＤノードである場合（ステップＳ８４２）、素子分類部１７は、ＥＳＤ保護素子候補とＧＮＤノードとの間の接合の極性を判定する（ステップＳ８５２）。接合の極性が適切な場合（ステップＳ８５２、ＯＫ）、素子分類部１７は、ＧＮＤノードを接合先としたＥＳＤ保護素子候補をＧＮＤ側ＥＳＤ素子と判定する（ステップＳ７６２）。
【００９２】
ＥＳＤ保護素子候補と電源ノードとの間の接合の極性が不適切な場合（ステップＳ８５１、ＮＧ）、素子分類部１７は、電源ノードを接合先としたＥＳＤ保護素子候補をＥＳＤエラーのノードであると判定する（ステップＳ７６３）。また、ＥＳＤ保護素子候補とＧＮＤノードとの間の接合の極性が不適切な場合（ステップＳ８５２、ＮＧ）、素子分類部１７は、ＧＮＤノードを接合先としたＥＳＤ保護素子候補をＥＳＤエラーのノードであると判定する（ステップＳ７６３）。
【００９３】
その他のノードの先に接続されている素子の結線が、ＰＮ接合、ＰＮＰ接合、ＮＰＮ接合の何れでも無く、その他のノードの先に接続されている素子がＥＳＤ保護素子候補でない場合（ステップＳ８２０、Ｎｏ）、素子分類部１７は、この端子の接合先は内部素子であると判定する（ステップＳ７６４）。
【００９４】
なお、図１５のフローチャートでは、ＥＳＤ保護素子候補が１個の素子または２個の素子からなる素子列である場合について説明したが、ＥＳＤ保護素子候補を１個の素子としてもよい。この場合、ＥＳＤ保護素子候補の接合先ノードが、その他のノードであれば（ステップＳ８４３）、素子分類部１７は、その他のノードを内部素子と判定する（ステップＳ７６４）。
【００９５】
また、ＥＳＤ保護素子候補を１〜Ｌ個（Ｌは３以上の自然数）の素子からなる素子列としてもよい。この場合、ＥＳＤ保護素子候補の接合先ノードが、その他のノードであれば（ステップＳ７４３）、素子分類部１７はステップＳ８１０の処理に戻る。ＥＳＤ保護素子候補の接合先ノードが、その他のノードである場合にステップＳ７４３からステップＳ８１０の処理へ戻る工程は、（Ｌ−２）回まで繰り返される。そして、ステップＳ７４３からステップＳ８１０の処理へ戻る工程が（Ｌ−２）回繰り返された後に、再びＥＳＤ保護素子候補の接合先ノードが、その他のノードであると判定されれば、素子分類部１７は、その他のノードを内部素子と判定する（ステップＳ７６４）。
【００９６】
つぎに、ＥＳＤ保護素子の正当性判定方法について説明する。まず、電源側ＥＳＤ保護素子の正当性判定処理について説明する。図１９は、電源側ＥＳＤ保護素子の正当性判定処理を説明するための図である。
【００９７】
素子検証部１８は、フラット化されたネットリストに基づいて、Ｐｉｎと内部素子との間に電源側ＥＳＤ保護素子があるか否かを確認し、Ｐｉｎと内部素子との間に電源側ＥＳＤ保護素子が無い場合に、電源側のＥＳＤエラーと判定する（Ａ）。
【００９８】
また、素子検証部１８は、素子分類結果と素子耐圧情報とに基づいて、ＥＳＤ保護素子の正当性を検証する。素子検証部１８は、電源側ＥＳＤ保護素子の耐圧が電源電圧よりも低い場合に、この電源側ＥＳＤ保護素子は不適切であると判定する（Ｂ）。
【００９９】
例えば、電源電圧（Ｖｃｃ）が２０〜３０Ｖであり、電源ノードに「高」の動作電圧が設定されている場合、電源側ＥＳＤ保護素子の耐圧が８Ｖであれば、素子検証部１８は、電源側ＥＳＤ保護素子の耐圧が電源電圧よりも低い場合に、この電源側ＥＳＤ保護素子は不適切であると判定する。
【０１００】
さらに、素子検証部１８は、ＥＳＤ保護素子候補と電源ノードとの間の接合の極性が逆であり、ＥＳＤ保護素子候補がＥＳＤエラーのノードであると判定した場合に、電源側ＥＳＤ保護素子は不適切であると判定する（Ｃ）。また、複数個の素子列が電源側ＥＳＤ保護素子候補となった場合、素子検証部１８は、素子列内の各素子に対して電源側ＥＳＤ保護素子が不適切であるか否かを判定する。
【０１０１】
つぎに、ＧＮＤ側ＥＳＤ保護素子の正当性判定処理について説明する。図２０は、ＧＮＤ側ＥＳＤ保護素子の正当性判定処理を説明するための図である。素子検証部１８は、フラット化されたネットリストに基づいて、Ｐｉｎと内部素子との間にＧＮＤ側ＥＳＤ保護素子があるか否かを確認し、Ｐｉｎと内部素子との間にＧＮＤ側ＥＳＤ保護素子が無い場合に、ＧＮＤ側のＥＳＤエラーと判定する（Ｄ）。
【０１０２】
また、素子検証部１８は、素子分類結果と素子耐圧情報とに基づいて、ＧＮＤ側ＥＳＤ保護素子の正当性を検証する。素子検証部１８は、ＧＮＤ側ＥＳＤ保護素子の耐圧が内部素子の耐圧よりも低い場合に、このＧＮＤ側ＥＳＤ保護素子は不適切であると判定する（Ｆ）。このとき、素子検証部１８は、ＧＮＤ側ＥＳＤ保護素子の耐圧が、Ｐｉｎに接続されている何れか内部素子の耐圧よりも小さければ、このＧＮＤ側ＥＳＤ保護素子は不適切であると判定する。
【０１０３】
また、素子検証部１８は、ＥＳＤ保護素子候補と電源ノードとの間の接合の極性が不適切な場合であって、素子分類部１７が、ＥＳＤ保護素子候補をＥＳＤエラーのノードであると判定した場合に、電源側ＥＳＤ保護素子は不適切であると判定する（Ｅ）。また、複数個の素子列がＧＮＤ側ＥＳＤ保護素子候補となった場合、素子検証部１８は、素子列内の各素子に対してＧＮＤ側ＥＳＤ保護素子が不適切であるか否かを判定する。
【０１０４】
なお、本実施の形態では、ＥＳＤ保護素子検証装置１がネットリスト作成装置４や回路図作成装置３と接続されている場合について説明したが、ＥＳＤ保護素子検証装置１はネットリスト作成装置４や回路図作成装置３と接続されていなくてもよい。この場合、ＥＳＤ保護素子検証装置１は、可搬性の記録媒体などを介してネットリスト作成装置４からネットリストを取得し、回路図作成装置３から回路図を取得する。また、耐圧情報を有した回路図は、ネットリスト作成装置４からＥＳＤ保護素子検証装置１に入力してもよい。
また、本実施の形態では、ステップＳ２１〜Ｓ２３の処理を、ステップＳ２１〜Ｓ２３の順番で行う場合について説明したが、ステップＳ２１〜Ｓ２３の処理は何れの順番で行ってもよい。
また、本実施の形態では、回路図内の電源ノードに「高」、「中」、「低」の動作電圧を設定する場合について説明したが、回路図内の電源ノードには具体的な動作電圧値を設定してもよい。
【０１０５】
このように実施の形態によれば、素子耐圧情報や素子分類情報を用いて素子検証を行うので、多電源が入力される半導体集積回路内に配置された種々の耐圧を有したＥＳＤ保護素子が、適切なＥＳＤ保護素子であるか否かを容易に検証することが可能となる。
【０１０６】
また、電源側ＥＳＤ保護素子候補やＧＮＤ側ＥＳＤ保護素子候補の極性が適切であるか否かに基づいて、エラーノードを判別するので、ＥＳＤ保護素子が適切なＥＳＤ保護素子であるか否かを容易に検証することが可能となる。
【０１０７】
また、ネットリストの階層構造をフラット化してから回路図内の各素子を電源側ＥＳＤ素子、ＧＮＤ側ＥＳＤ素子、内部素子の何れかに分類するので、回路図内の全ての素子を容易に分類することが可能となる。
【図面の簡単な説明】
【０１０８】
【図１】実施の形態に係るＥＳＤ保護素子検証装置の概念を示す機能ブロック図である。
【図２】実施の形態に係るＥＳＤ保護素子検証装置のハードウェア構成を示す図である。
【図３】ＥＳＤ保護素子の検証手順を示すフローチャートである。
【図４】ＴＯＰ回路図の一例を示す図である。
【図５】サブサーキットの一例を示す図である。
【図６】階層構造を有したネットリストの一例を示す図である。
【図７】平坦化されたネットリストの一例を示す図である。
【図８】ノードへの電圧設定処理手順を示すフローチャートである。
【図９】ノードの種類を設定するための入力画面の一例を示す図である。
【図１０】ノード電圧情報の構成の一例を示す図である。
【図１１】素子特性情報の抽出処理手順を示すフローチャートである。
【図１２】回路図内素子リストの構成の一例を示す図である。
【図１３】ネットリストのフラット化処理手順を示すフローチャートである。
【図１４】不要な抵抗の除外処理を説明するための図である。
【図１５】素子の分類処理手順を示すフローチャートである。
【図１６】ＥＳＤ保護素子候補となる素子を説明するための図である。
【図１７】ｍｏｓトランジスタのＰＮ接合を説明するための図である。
【図１８】複数個の素子列がＥＳＤ保護素子候補となる場合を説明するための図である。
【図１９】電源側ＥＳＤ保護素子の正当性判定処理を説明するための図である。
【図２０】ＧＮＤ側ＥＳＤ保護素子の正当性判定処理を説明するための図である。
【符号の説明】
【０１０９】
１  ＥＳＤ保護素子検証装置、３  回路図作成装置、４  ネットリスト作成装置、１３  指示入力部、１４  ノード電圧設定部、１５  素子情報抽出部、１６  ネットリストフラット化部、１７  素子分類部、１８  素子検証部、１０２，１０３  ネットリスト、１０５  ノード電圧情報、１０６  回路図内素子リスト
【図１】
2010160686.tif 000003
【図２】
2010160686.tif 000004
【図３】
2010160686.tif 000005
【図４】
2010160686.tif 000006
【図５】
2010160686.tif 000007
【図６】
2010160686.tif 000008
【図７】
2010160686.tif 000009
【図８】
2010160686.tif 000010
【図９】
2010160686.tif 000011
【図１０】
2010160686.tif 000012
【図１１】
2010160686.tif 000013
【図１２】
2010160686.tif 000014
【図１３】
2010160686.tif 000015
【図１４】
2010160686.tif 000016
【図１５】
2010160686.tif 000017
【図１６】
2010160686.tif 000018
【図１７】
2010160686.tif 000019
【図１８】
2010160686.tif 000020
【図１９】
2010160686.tif 000021
【図２０】
2010160686.tif 000022