(57)【要約】【課題】漏れがない設計検証を、作業者の負担を軽減して行うことができる回路設計検証方法を提供する。【解決手段】ライブラリ３にセルを登録する場合、標準セルの回路素子を製品の仕様に応じて変更したものを特殊セル４として登録し、特殊セル４のＧＤＳファイルについて素子のサイズを抽出する際に、バイポーラトランジスタ及びダイオードについては、セル単体ＧＤＳファイル５を作成すると共に、当該セルのデータとセル名とに基づいてセル単位でＬＶＳを実行するための分離スクリプトを作成すると、その分離スクリプトに基づいてＬＶＳ用のインクルードファイルを生成する。【選択図】図１
2009276987.tif 000002
【特許請求の範囲】
【請求項１】
回路図より抽出したネットリストデータと、前記回路図に基づいて設計を行ったレイアウトデータとを比較して検証するＬＶＳ（Layout Versus Schematic）処理と、
前記レイアウトデータと、前記回路図に使用する素子のデータがセルとして登録されるライブラリとを比較して検証するＸＯＲ処理とを実行する回路設計検証方法において、
前記ライブラリにセルを登録する場合、標準セルとして定義されている回路素子を、製品の仕様に応じて変更したものを特殊セルとして登録し、
前記特殊セルのＧＤＳ（Graphic Data Stream）ファイルについて、素子のサイズを抽出する際に、バイポーラトランジスタ及びダイオードについては、個別のセルのＧＤＳファイルを作成すると共に、当該セルのデータとセル名とに基づいて、セル単位でＬＶＳを実行するための分離スクリプトを作成すると、前記分離スクリプトに基づいてＬＶＳ用のインクルードファイルを生成し、
前記レイアウトデータより、バイポーラトランジスタ，ダイオードについては、それらのデバイス名を、前記個別のセル名と同じセル名とするように変更し、
前記バイポーラトランジスタ及び前記ダイオードについて、前記インクルードファイルをインクルードすることで呼び出したセル名と、前記レイアウトデータより生成したセル名とを比較するセル名比較ＬＶＳ処理を行い、
前記セル名比較ＬＶＳ処理を行った結果、エラーが発生しなかった場合は、全ての登録セルとレイアウトデータのセルの場所についてＸＯＲ処理を行うことを特徴とする回路設計検証方法。
【請求項２】
通常のＬＶＳ処理を先に実行し、その結果エラーが発生しなかった場合に、前記セル名比較ＬＶＳ処理を行うことを特徴とする請求項１記載の回路設計検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路図と、この回路図に基づいて設計を行ったレイアウトデータとを比較して検証する回路設計検証方法に関する。
【背景技術】
【０００２】
回路図に基づいて行った集積回路のレイアウト設計を検証する場合、接続状態と共に各デバイスのサイズを検証している。後者のサイズについては、ＭＯＳトランジスタ，抵抗素子，キャパシタであれば各デバイスの属性によって、例えば、ＭＯＳトランジスタであればゲート長Ｌやゲート幅Ｗ，抵抗素子やキャパシタであれば抵抗値や容量値によって検証を行うことができる。
【０００３】
しかしながら、バイポーラトランジスタやダイオードについては、属性としてエミッタ面積やアノード面積を用いて検証することはできるが、それ以外の部分で不一致が発生しても検出できない。これは、現状の検証アルゴリズムがデバイスの構造（バイポーラトランジスタであればＰＮＰ，ＮＰＮ，ダイオードであればツェナー，耐圧など）により分類を行うことを前提としているためである。
このように設計の検証を行う従来技術として、例えば特許文献１に開示されているものがある。
【特許文献１】特開平７−９３３９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１によって検証を行うとすれば、結局は、バイポーラトランジスタやダイオードについては、デバイスの細部が異なっているもの全て（例えば１００〜数１００種類程度）を予め個別のセルとして作成した上で設計を行う必要があり、その作業負担が非常に大きく、時間を要するという問題がある。
本発明は上記事情に鑑みてなされたものであり、その目的は、漏れがない設計検証を、作業者の負担を軽減して行うことができる回路設計検証方法を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載の回路設計検証方法によれば、ライブラリにセルを登録する場合、標準セルの回路素子を製品の仕様に応じて変更したものを特殊セルとして登録し、特殊セルのＧＤＳファイルについて素子のサイズを抽出する際に、バイポーラトランジスタ及びダイオードについては、個別のセルのＧＤＳファイルを作成すると共に、当該セルのデータとセル名とに基づいてセル単位でＬＶＳを実行するための分離スクリプトを作成すると、その分離スクリプトに基づいてＬＶＳ用のインクルードファイルを生成する。
【０００６】
また、レイアウトデータより、バイポーラトランジスタ，ダイオードについては、それらのデバイス名を前記個別のセル名と同じセル名とするように変更し、インクルードファイルをインクルードすることで呼び出したセル名と、レイアウトデータより生成したセル名とを比較するセル名比較ＬＶＳ処理を行う。そして、セル名比較ＬＶＳ処理でエラーが発生しなかった場合は、全ての登録セルとレイアウトデータのセルの場所についてＸＯＲ処理を行う。
【０００７】
以上のように検証を行えば、バイポーラトランジスタ及びダイオードについて細部の構成が相違する素子が多数存在する場合でも、各素子にはそれぞれ異なるセル名が自動的に付与されてセル名で比較が行われる。また、ＸＯＲ処理も各セル毎に行われるので、より詳細なレベルで検証が行われる。したがって、ユーザは、特許文献１のように仕様が異なる素子毎に個別のセルを予め作成する必要がなく、漏れがない設計検証をより簡単に行うことができる。
【０００８】
請求項２記載の回路設計検証方法によれば、通常の（デバイス単位で分離して比較する）ＬＶＳ処理を先に実行し、その結果エラーが発生しなかった場合にセル名比較ＬＶＳ処理を行う。すなわち、より粗いデバイスレベルでのＬＶＳ処理が通った後に、バイポーラトランジスタ及びダイオードについて詳細なセルレベルでのＬＶＳ処理を行うことにより、手順を最適化して検証効率を向上させることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施例について図面を参照して説明する。図１は、回路設計検証方法の処理手順を概念的に示すフローチャートである。回路図１に基づいて、半導体集積回路のレイアウト２を設計するが、その設計の際に、使用する回路素子のデータをデバイス単位のセル（ＧＤＳ，又はＧＤＳ２形式）としてセルライブラリ（マスタファイル）３に登録する。また、レイアウト２のデータは、設計で使用したセルのＧＤＳファイルとして見ることもできる。
【００１０】
また、上記設計に使用した素子は、標準素子として予め用意されている標準セルを、設計仕様に応じて変更したものを多数使用するのが一般的であり、それらを追加登録することで特殊セルライブラリ４が構成される（セルライブラリ３の一部となる）。そして、特殊セルライブラリ４について、デバイス単位のセル毎のサイズを抽出する際に（ステップＳ１）、バイポーラトランジスタとダイオードについては、個別の素子毎に分割したセル単体ＧＤＳファイル５を作成する（ステップＳ２）。そして、これらの処理が完了すると、デバイス単位のサイズ情報と共に、セル単体ＧＤＳファイル５をセルライブラリ３に登録する（ステップＳ３）。
【００１１】
また、ステップＳ２においてセル分割を行う際に、セルのデータとセル名とから分離スクリプトを作成する（ステップＳ４）。分離スクリプトは、セルの外形をセル名で選択するもので、その分離スクリプトによって生成されたインクルードファイルがセルライブラリ３（検証用マスタファイル）に配置される。
そして、従来行われているＬＶＳ処理は（ステップＳ５）、回路図１に基づいて生成され、デバイス名で記述されているネットリストと、レイアウト２のＧＤＳファイルと、セルライブラリ３のＧＤＳファイルとをデバイス名毎に、記述されているサイズが一致するか否かを検証する。エラーが発生すれば（ステップＳ６→あり）設計データを修正した後、再度ＬＶＳ処理を行う。
【００１２】
ここで、図２は、上記ＬＶＳ処理の詳細をモデル化して示すものである。先ず、入力されたレイアウトデータ２を、デバイスの構造によって、ＭＯＳデバイス，抵抗素子・容量素子，バイポーラデバイス，ダイオードデバイスに分離する。それから、各デバイスを更に詳細に分離する。ＭＯＳデバイスについては、Ｎチャネル，Ｐチャネルと、低耐圧，高耐圧との組合せにより４種類に分離し、抵抗素子・容量素子については、拡散抵抗別，キャパシタの構造別に分離する。そして、ＭＯＳデバイスについては、ゲート長Ｌ，ゲート幅Ｗを検証し、抵抗素子については抵抗値及び素子幅を検証し、容量素子については容量値を検証する。以上が、従来のＬＶＳ処理に相当する内容である。
【００１３】
バイポーラデバイスについては、ラテラルＰＮＰ，バーティカルＰＮＰ，ＮＰＮと耐圧との組み合わせで分離し、ダイオードデバイスについては、ＥＳＤ用ダイオード，ツェナーダイオードと耐圧との組み合わせで分離するが、これらのデバイスは、設計パラメータが非常に多く、従来のＬＶＳ処理における特定箇所の値だけでは検証が不十分となる。そこで、ステップＳ５のＬＶＳ処理が通れば（ステップＳ６→なし）、本発明独自の処理であるセル名比較ＬＶＳ処理を実行する（ステップＳ７）。
【００１４】
そのため、回路図１に基づいて生成されるネットリスト（デバイス名で記述）を、変換プログラムによって（ステップＳ１１）バイポーラトランジスタ及びダイオードについてのみセル名で記述されるネットリスト６に変換する。ここで、図４は、上記変換プログラムによって変換されるネットリストの一例であり、（ａ）は変換前，（ｂ）は変換後のリストを示す。
【００１５】
図４（ａ）において、矢印で示す行の「ＨＳ」がデバイス名（例えばＮＰＮトランジスタを示す）で、その後に記号「＄」で挟まれている「Ｔ４Ｎ４」が回路図１より生成される際に付されたコメントであり、このコメントは、ステップＳ２で分割されたセル単体ＧＤＳファイル５における各セル名に対応する名称が付与されている。この処理は、図４（ａ）のネットリストを生成するプログラムのオプション設定により実現される。
そして、図４（ｂ）に示す変換後のリストでは、矢印で示す行のデバイス名「ＨＳ」がセル名「Ｔ４Ｎ４」に置き換えられている。すなわち、変換プログラムは、図４（ａ）のリスト中にあるコメントを抽出して、デバイス名をそのコメントに置き換える処理を行う。
【００１６】
再び図１を参照する。ステップＳ７のセル名比較ＬＶＳ処理を実行するには、ＬＶＳルールファイルを変更する必要がある。この変更は、ステップＳ４で作成した分離スクリプトからインクルードファイルを生成し、ＬＶＳルールファイルに取り込ませることで行う。図１に示すＬＶＳルールファイル７は、インクルードファイルを取り込んだ結果変更されたものを示している。尚、上記のファイル取り込み（インクルード）は、セル名比較ＬＶＳ処理の実行を開始する際にインクルードを行うプログラムが用意されており、そのプログラムの実行により行われる。
【００１７】
また、図５（ａ）はＬＶＳルールファイルの変更前、図５（ｂ）は変更後の一例を示す。図５（ａ）は、ステップＳ５における従来のＬＶＳを行う場合に使用されるファイルであり、デバイス名「ＨＤ」が記述されている。そして、（ｂ）に示す変更後のファイル７は、デバイス名がセル名「Ｔ４ＰＢ１」に置き換えられていると共に、テキスト「ＬＡＹＯＵＴ  ＴＥＸＴ“Ｔ４ＰＢ１”…」が追加されている。
【００１８】
そして、ステップＳ７では、セル名ネットリスト６と、セルライブラリ（マスタファイル）３のセル単体ＧＤＳファイル５とが比較されて、バイポーラトランジスタ及びダイオードについてセル名での比較が行われる。そして、エラーがなければ（ステップＳ８→なし）続いてＸＯＲ（ＣＯＭＰ）処理を行う（ステップＳ９）。セルライブラリ３には、セル単体ＧＤＳファイル５が含まれているので、バイポーラトランジスタ及びダイオードに関しては、個別のセル毎にＸＯＲ処理が行われる。
【００１９】
すなわち、レイアウト２に使用されているセルと、従来のセルライブラリに登録されているセルとでＸＯＲ処理を実行すると、レイアウト２を設計する際にセルを展開（階層構造を崩す）したり、セルの上位階層に不必要なデータが存在している場合には、それらを検証することができない。そこで、本発明では、階層がない状態からセル領域を個別に分離したセルライブラリ３のデータと、レイアウト２のデータとを比較する。図６は、セル名Ｔ４ＰＬ１，Ｔ４ＰＢ１毎に、分離した領域のイメージを示す。
【００２０】
図３は、ステップＳ９のＸＯＲ処理をモデル的に示すものである。ステップＳ７のセル名比較ＬＶＳを実行した際に、比較したセルのリスト８を作成する。そして、レイアウト２のＧＤＳファイル，セルライブラリ３のＧＤＳファイル，セルリスト８を比較する。ここでエラーが出なければ（ステップＳ１０→なし）一連の検証処理を終了する。
【００２１】
図７乃至図９は、図１のフローを実行した結果、検証装置のモニタ画面に表示されるリストの一例を示す。図７（ａ）は、最初のＬＶＳルールファイル（ｌｖｓ．ｃａｌ）の指定入力、及び検証対象とするプロセスファイル（ＡＡＡ）の指定入力と、ステップＳ７のセル名比較ＬＶＳ処理の実行結果であり、図７（ｂ）は、ステップＳ９のＸＯＲ処理の実行結果である。また、図７（ｃ）は、全ての検証処理が終了した時点で出力されるアウトプットファイルを示している。
【００２２】
また、図８は、セル名比較ＬＶＳ処理の実行結果の様々なパターンを示しており、（ａ）は図７（ａ）と同様にエラーがない場合（CORRECT）である。（ｂ）はエラーがある場合（INCORRECT）、（ｃ）はＬＶＳ処理が中止された場合（NOT＿COMPARED）、（ｄ）はＬＶＳ処理が実行されなかった場合（NOT＿EXCUTE）を示す。（ｅ），（ｄ）は、（ｂ）のエラーがある場合におけるレポートファイルの一例であり、登録されていないセルを使用している場合，異なるセルを使用している場合のメッセージである。
また、図９は、ステップＳ９のＸＯＲ処理の実行結果にエラーが含まれている場合であり、エラーがある場合は「ERROR」が表示され、セルのＧＤＳファイルが存在しない場合は「FAILED」が表示される。
【００２３】
以上のように本実施例によれば、ライブラリ３にセルを登録する場合、標準セルの回路素子を製品の仕様に応じて変更したものを特殊セル４として登録し、特殊セル４のＧＤＳファイルについて素子のサイズを抽出する際に、バイポーラトランジスタ及びダイオードについては、セル単体ＧＤＳファイル５を作成すると共に、当該セルのデータとセル名とに基づいてセル単位でＬＶＳを実行するための分離スクリプトを作成すると、その分離スクリプトに基づいてＬＶＳ用のインクルードファイルを生成する。
また、レイアウト２のデータより、バイポーラトランジスタ，ダイオードについては、それらのデバイス名を前記個別のセル名と同じセル名とするように変更し、インクルードファイルをインクルードすることで呼び出したセル名と、レイアウト２のデータより生成したセル名とを比較するセル名比較ＬＶＳ処理を行い、エラーが発生しなかった場合は、全ての登録セルとレイアウトデータのセルの場所についてＸＯＲ処理を行うようにした。
【００２４】
以上のように検証を行えば、バイポーラトランジスタ及びダイオードについて細部の構成が相違する素子が多数存在する場合でも、各素子にはそれぞれ異なるセル名が付与されてセル名で比較が行われる。また、ＸＯＲ処理も各セル毎に行われるので、より詳細なレベルで検証が行われる。したがって、ユーザは、特許文献１のように仕様が異なる素子毎に個別のセルを予め作成する必要がなく、漏れがない設計検証をより簡単に行うことができる。
そして、通常のＬＶＳ処理を先に実行し、その結果エラーが発生しなかった場合にセル名比較ＬＶＳ処理を行うので、より粗いデバイスレベルでのＬＶＳ処理が通った後に、バイポーラトランジスタ及びダイオードについて詳細なセルレベルでのＬＶＳ処理を行うことにより、手順を最適化して検証効率を向上させることができる。
【００２５】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
ステップＳ７のセル名比較ＬＶＳ処理は、ステップＳ５のＬＶＳ処理を実行する前に実行しても良い。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例であり、回路設計検証方法の処理手順を概念的に示すフローチャート
【図２】ＬＶＳ処理の詳細をモデル化して示す図
【図３】ステップＳ９のＸＯＲ処理をモデル的に示す図
【図４】（ａ）は変換プログラムにより変換される前、（ｂ）は変換後のネットリストを示す図
【図５】（ａ）はＬＶＳルールファイルの変更前、（ｂ）は変更後の一例を示す図
【図６】セル名毎に分離した領域のイメージを示す図
【図７】図１のフローを実行した結果、モニタ画面に表示されるリストの一例を示す図
【図８】セル名比較ＬＶＳ処理の実行結果の様々なパターンを示す図７相当図
【図９】ＸＯＲ処理の実行結果にエラーが含まれている場合の図７相当図
【符号の説明】
【００２７】
図面中、１は回路図、２はレイアウト、３はセルライブラリ、５はセル単体ＧＤＳファイル、６はセル名ネットリストを示す。
【図１】
2009276987.tif 000003
【図２】
2009276987.tif 000004
【図３】
2009276987.tif 000005
【図４】
2009276987.tif 000006
【図５】
2009276987.tif 000007
【図６】
2009276987.tif 000008
【図７】
2009276987.tif 000009
【図８】
2009276987.tif 000010
【図９】
2009276987.tif 000011