(57)【特許請求の範囲】
【請求項１】
論理シミュレーション機能と、該論理シミュレーション機能の論理値の設定や参照、回路記述データの構文解析木情報の参照を可能とするＡＰＩを含む論理シミュレータと、
集積回路に対応する回路記述データを入力する手段と、
前記回路記述データから条件記述部を前記ＡＰＩを使って抽出する手段と、
前記抽出された条件記述部の各条件信号に対して、すべての論理値の組み合わせを前記ＡＰＩにより設定し、該論理値の組み合わせに対して、前記論理しュミレーション機能により論理シミュレーションを実施せしめる手段と、
前記条件記述部において代入先となっている信号の論理値を前記ＡＰＩにより読み出し、該読み出された論理値から、条件記述部に条件漏れがあるか否か判定する手段と、
を有することを特徴とする集積回路設計支援装置。
【請求項２】
論理シミュレーション機能と、該論理シミュレーション機能の任意の信号に対する論理値の設定や参照、回路記述データの構文解析木情報の参照を可能とするＡＰＩを含む論理シミュレータを備えたコンピュータが、
集積回路に対応する回路記述データを入力するステップと、
前記回路記述データから条件記述部を前記ＡＰＩを使って抽出するステップと、
前記抽出された条件記述部の各条件信号に対して、すべての論理値の組み合わせを前記ＡＰＩにより設定し、該論理値の組み合わせに対して、論理シミュレーションを実施せしめるステップと、
前記条件記述部において代入先となっている信号の論理値を前記ＡＰＩにより読み出し、該読み出された論理値から、条件記述部に条件漏れがあるか否か判定するステップと、
を実行することを特徴とする集積回路設計支援方法。
【請求項３】
請求項２記載の集積回路設計支援方法の各ステップをコンピュータで実行するためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを利用したＬＳＩ等の集積回路の設計を支援する技術に関し、特に集積回路に対応する回路記述データに基づき、集積回路の動作検証以外の項目を検証する技術に関する。
【０００２】
【従来の技術】
現在、ＬＳＩをはじめとする半導体デバイスの回路設計の主流は、回路の動作を、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：ハードウエア記述言語）によりＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ：レジスタ転送レベル）で記述し、それを論理合成技術によりゲートレベルのネットリストに変換する方法を採っている。図６にＲＴＬ記述例を示す。これは、図５の論理回路に対応するＲＴＬ記述例である。論理合成実施後、ゲートレベルのネットリストに対して各種設計ルールを満足しているか否かを検証する。
【０００３】
設計ルールの例としてはテスト容易化設計ルールがある。このルールは例えば、「外部入力クロック信号を使って、各フリップ・フロップのクロック端子を制御できる必要がある」などである。このクロック制御に関するルールについて図５を使って説明する。図５において、ａ、ｂ、ｃｋは外部信号であり、このうち、ｃｋがクロックである。図５の回路の場合、フリップフロップ（ＦＦ）のクロック信号はｃｋｎｅｔであるが、このｃｋｎｅｔは外部入力クロックｃｋにより制御することはできない。ここでいう制御とは、ｃｋの論理値が１の場合は、ｃｋｎｅｔは必ず１になり、ｃｋの論理値が０の場合は、ｃｋｎｅｔは必ず０になることをいう。しかし、図５では、外部入力ｂが０の場合、ｃｋの論理値に関係なく、ｃｋｎｅｔは０となる。したがって、図５の回路は上述のクロック制御ルールを満足していない。一方、外部入力ｂを１に固定した状況ではこのルールを満たす。
【０００４】
ゲートレベルにおいて各種設計ルールをチェックする場合、ルール違反が発見されると、ＲＴＬデータを修正し、再び論理合成を実施することになる。これではＬＳＩ設計にかかる期間を増大させるため、できればＲＴＬデータに対して直接各種設計ルールをチェックしたいところである。しかし、ＲＴＬデータに対して設計ルールチェックを実施する装置を一から開発するのは非常に手間がかかり、その実現が困難な状況にある。
【０００５】
【発明が解決しようとする課題】
本発明は、上述の事情に鑑みなされたもので、その目的は、既存の論理シミュレータおよび論理シミュレータにあらかじめ用意されているＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｄｕｒｅ  Ｉｎｔｅｒｆａｃｅ）を利用し、ＲＴＬデータに基づき、集積回路の動作検証以外の項目を検証する装置及び方法を実現することにある。詳しくは、既存の論理シュミレータおよび論理シュミレータにあらかじめ用意されているＡＰＩを利用し、ＲＴＬデータに対して、条件漏れチェックを実施する装置及び方法を実現することにある。
【０００６】
【課題を解決するための手段】
本発明は、論理シミュレーション機能と、該論理シミュレーション機能に対する論理値の設定や参照、回路記述データの構文解析木情報の参照を可能とするＡＰＩを含む論理シミュレータを利用して、集積回路に対応する回路記述データに基づき、該集積回路の動作検証以外の項目を検証することを特徴とする。
【０００７】
具体的には、を回路記述データから条件記述部前記ＡＰＩを使って抽出する手段と前記抽出された条件記述部の各条件信号に対して、すべての論理値の組み合わせを前記ＡＰＩにより設定し、該論理値の組み合わせに対して、シミュレーション機能により論理シミュレーションを実施せしめる手段、前記条件記述部において代入先となっている信号の論理値を前記ＡＰＩにより読み出し、該読み出された論理値から、条件記述部に条件漏れがあるか否か判定する手段等により、条件漏れチェックを実施する。
【０００８】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
図１は本発明にかかる集積回路設計支援装置の第１の実施例を示す構成図で、論理シミュレータ及びそれにあらかじめ用意されているＡＰＩを利用して、ＨＤＬ記述のＲＴＬデータに対し、テスト容易化設計ルールチェックを実施する場合の構成例を示したものである。図１において、１１０は回路記述データファイル、１２０は信号制約ファイル、１３０は信号制約ファイル読込み部、１４０は論理シミュレータ、１５０はフリップ・フロップ情報ファイル、１６０はテスト容易化設計ルール判定部を示している。
【０００９】
回路記述データファイル１１０には、設計対象の集積回路に対応する回路記述データであるＨＤＬ記述のＲＴＬデータが保持されている。ＨＤＬのフォーマットとしては、例えば、ＩＥＥＥ標準１３０４−１９９５であるＶｅｒｉｌｏｇ−ＨＤＬなどが挙げられる。信号制約ファイル１２０には、チェック対象ルールとともに、設計ルールチェックを行う際に固定すべき信号とその論理等が記述されている。また、外部入部クロック信号名も記述されている。
【００１０】
論理シミュレータ１４０は、論理シミュレーション部１４１とＡＰＩ部１４２で構成される。ここで、ＡＰＩ部１４２はＣ言語等のプログラミング言語で記述された関数として論理シミュレータ１４０の中に通常組み込まれているものである。この組み込まれた関数を使って、次のようなことが可能となっている。
(１)  論理シミュレーション部中で任意の信号に論理値を設定する。
(２)  論理シミュレーション部から任意の信号の論理値を参照する。
(３)  ＨＤＬ記述データの構文解析木情報を参照する。
【００１１】
ＡＰＩの例としては、Ｖｅｒｉｌｏｇ−ＨＤＬのＡＰＩであるＶＰＩ（Ｖｅｒｉｌｏｇ  Ｐｒｏｃｅｄｕｒｅ  Ｉｎｔｅｒｆａｃｅ）などが挙げられる。
【００１２】
本来、論理シミュレータ１４０は、回路が正しく動作するかどうかを検証するために用いられてきた。本実施例は、この論理シミュレータ１４０及びそれにあらかじめ組み込まれているＡＰＩ部１４２を利用して、ＨＤＬ記述のＲＴＬデータに対し、テスト容易化設計ルールチェックを実施するものである。図２に、クロック・ルール・チェックの処理手順を示す。以下、図２にもとづいて、図１の実施例の動作を具体的に説明する。
【００１３】
まず、論理シミュレーション部１４１では、回路記述データファイル１１０から回路記述データとしてＨＤＬ記述のＲＴＬデータを読み込む（Ｓ２０１）。次に、信号制約ファイル読込み部１３０では、信号制約ファイル１２０の信号制約情報を読み、論理シミュレータ１４０のＡＰＩ部１４２に渡す（Ｓ２０２）。先にも述べたように、信号制約ファイル１２０には、設計ルールチェックを行う際に固定すべき信号とその論理値等が記述されている。また、外部入力クロック信号名も記述されている。ここでは、図５の回路において、外部信号ｂが固定信号で、固定値は１であり、また、外部クロック信号はｃｋであるとする。
【００１４】
論理シミュレータ１４０のＡＰＩ部１４２では、論理シミュレーション部１４１に読み込まれたＲＴＬデータに対し、信号制約ファイル１２０の信号制約情報中の信号に論理値を設定する（Ｓ２０３）。さらに、外部クロック信号に、まず、論理値０を設定する（Ｓ２０４）。このステップＳ２０３、Ｓ２０４により、図５の回路では、外部信号ｂの論理値は０に固定され、外部クロック信号ｃｋは、論理値１に設定される。
【００１５】
論理シミュレーション部１４１では、回路記述データファイル１１０から読み込まれたＲＴＬデータにより、ＡＰＩ部１４２によって設定された条件のもとに、論理シミュレーションを実行する（Ｓ２０５）。論理シミュレーションの実行後、ＡＰＩ部１４２では、フリップ・フロップ情報を読み出し、フリップ・フロップ情報ファイル１５０に出力する（Ｓ２０６）。フリップフロップ名はＲＴＬデータから抽出することができる。フリップフロップ情報には、各フリップフロップの名前、そのクロック端子の論理値等が含まれる。ここでは、それに外部クロック信号の論理値も付加する。これにより、図５の回路では、フリップ・フロップＦＦのクロック信号ｃｋｎｅｔと人力クロック信号の論理値がともに０の情報がフリップ・フロップ情報ファイル１５０に出力される。
【００１６】
テスト容易化設計ルール判定部１６０では、フリップフロップ情報ファイル１５０を参照して、ＡＰＩ部１４２により検出されたフリップ・フロップのクロック端子が論理シミュレーション後にどのような論理になっているか調べる（Ｓ２０７）。ここで、外部入力クロック信号の論理値と、フリップ・フロップのクロック端子の論理値が同じであれば設計ルールを満たしていると判定する。図５の回路では、ｃｋ＝０、ｃｋｎｅｔ＝０が判定される。
【００１７】
次に、ＡＰＩ部１４２では、外部クロックを論理値１に設定する（Ｓ２０８）。これにより、図５の回路では、外部クロック信号ｃｋの論理値が０から１に変更される。外部入力信号ｂは１に固定のままである。
【００１８】
論理シミュレーション部１４１では、ＡＰＩ部１４２によって設定された条件のもとに、再び論理シミュレーションを実行し（Ｓ２０９）、論理シミュレーション実行後、ＳＰＩ部１４２では、再びフリップ・フロップの情報をフリップ・フロップ情報ファイル１５０に読み出す（Ｓ２１０）。そして、テスト容易化設計ルール判定部１６０では、再びフリップロップ情報ファイル１５０を参照して、フリップフロップのクロツク端子の論理値をチェックする（Ｓ２１１）。この結果、図５の回路では、ｃｋ＝１、ｃｋｎｅｔ＝１が判定される。
【００１９】
なお、図２の処理手順において、ステップ２０６の後、ステップＳ２０８〜２１０を実行し、外部クロックの論理値が０と１の場合のそれぞれの論理シミュレーション実行後、テスト容易化設計ルール設定部１６０において、ステップＳ２０７とＳ２１１のルール判定チェックをまとめて実施することでもよい。
【００２０】
図３は本発明にかかる集積回路設計支援装置の第２の実施例を示す構成図で、論理シミュレータ及びそれにあらかじめ用意されているＡＰＩを利用して、ＨＤＬ記述のＲＴＬデータについて、条件漏れチェックを実施する場合の構成例を示したものである。図３において、３１０は回路記述データファイル、３２０は論理シミュレータ、３３０は条件記述情報ファイル、３４０は論理値設定部、３５０は代入先信号チェック部を示している。
【００２１】
回路記述データファイル３１０には、図１の回路記述データファイル１１０と同様に、設計対象の集積回路に対応する回路記述データであるＨＤＬ記述のＲＴＬデータが保持されている。先にも述べたように、ＨＤＬのフォーマットとしては、例えば、ＩＥＥＥ標準１３６４−１９９５であるＶｅｒｉｌｏｇ−ＨＤＬなどが挙げられる。
【００２２】
論理回路シミュレータ３２０は、論理シミュレーション部３２１とＡＰＩ部３２２で構成される。ＡＰＩ部３２２は、先にも述べたように、Ｃ言語等のプログラミング言語で記述された関数として論理シミュレータ３２０の中に通常組み込まれているものであり、この関数を使って、論理シミュレーション部中の任意の信号に対する論理値の設定や参照、さらには、ＨＤＬ記述データの構文解析木情報の参照などを可能にするものである。
本実施例は、この論理シミュレータ３２０及びそれにあらかじめ組み込まれているＡＰＩ部３２２を利用して、回路記述データに対し、条件漏れチェックを実施するものである。図４に、条件漏れチェックの処理手順を示す。以下、図４にもとづいて、図３の実施例の動作を具体的に説明する。
【００２３】
ます、論理シミュレーション部３２１では、回路記述データファイル３１０から回路記述データとしてＨＤＬ記述のＲＴＬデータを読み込む（Ｓ４０１）。ＡＰＩ部３２２では、このＨＤＬ記述のＲＴＬデータ中におけるｉｆ文などの条件記述部分から条件記述情報を抽出し、条件記述情報ファイル３３０に出力する（Ｓ４０２）。
【００２４】
図７にｉｆ文の例を示す。以降、この図７のｉｆ文を例にとり説明する。ここで、条件記述情報とは、以下のような情報である。
(１)  条件記述信号はａ，ｂである。
(２)  代入先信号はｑ１である。
【００２５】
論理値設定部３４０では、条件記述情報ファイル３３０を参照して、まず、信号ｃ，ｄ，ｅを選択し、ＡＰＩ部３２２を使って、論理シミュレーション部３２１中の当該信号ｃ，ｄ，ｅを論理値０あるいは１で初期化する（Ｓ４０３）。次に、論理値設定部３４０では、同様にＡＰＩ部３２２を使って、論理シミュレーション部３２１の代入先信号ｑ１を論理値Ｘで初期化した後（Ｓ４０４）、条件記述信号ａ，ｂについて、そのすべての論理値の組み合わせを一つずつ選択し、ＡＰＩ部３２２により、論理シミュレーション部３２１中の該当信号ａ，ｂに該論理値を設定し（Ｓ４０５）、シミュレーション部３２１で論理シミュレーションを実施する（Ｓ４０６）。
【００２６】
ここで、条件記述信号ａ，ｂの取り得る論理値の組み合わせは、（ａ，ｂ）＝（０，０），（０，１），（１，０），（１，１）の４通りである。論理値設定部３４０では、４つの組み合わせのうちの１つ、例えば（０，０）を選択し、ＡＰＩ部３２２を使って論理シミュレーション部３２１の該当信号に論理値を設定する。そして、シミュレーション部３２１において、論理シミュレーションを実施する。ただし論理値設定部３４０では該当信号に論理値を代入する前に、代入先信号ｑ１を論理値Ｘで、その他の信号ｃ、ｄ、ｅは０あるいは１で必ず初期化する。
【００２７】
論理シミュレーション後、代入先信号チェック部３５０では、ＡＰＩ部３２０を使って信号ｑ１の論理値を取り込み、条件記述情報ファイル３３０の信号ｑ１を参照して、該信号ｑ１の論理値がＸから他の値に変化しているかどうかを調べ（Ｓ４０７）、Ｘのまま（初期値のまま）であれば、条件漏れがありと判定する（Ｓ４１０）。
【００２８】
上記ステップＳ４０４〜Ｓ４０５の処理を、（ａ，ｂ）＝（０，０），（０，１），（１，０），（１，１）の４通りすべてに対して繰り返し（Ｓ４０８）、いずれも信号ｑ１の論理値がＸから変化していれば、代入先信号チェック部３５０では、条件漏れなしと判定する（Ｓ４０９）。
【００２９】
図７のｉｆ文の例では、（ａ，ｂ）＝（０，０）の場合は、７００の文が実行され、ｑ１の論理値は１または０になる。また（ａ，ｂ）＝（１，０）の場合は、図７中のどの文も実行されることはなく、ｑ１の値はＸのままとなる。代入先信号チェック部３５０にて、ｑ１の論理値がＸであることが確認されると、条件漏れを検出したことになる。
【００３０】
なお、図１及び図３で示した装置における各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図２及び図４で示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、ＦＤや、ＭＯ、ＲＯＭ、メモリカード、ＣＤ、ＤＶＤ、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
【００３１】
【発明の効果】
本発明によれば、ＨＤＬ記述のＲＴＬデータの構文解析および論理値の伝播を論理シミュレータに実施させ、ＲＴＬデータの構文解析情報の取得や論理値の設定および観測を、論理シミュレータに組み込まれているＡＰＩにより行い、ｉｆ文中の条件漏れを検出するので、一から開発する場合に比べ容易に条件漏れチェック・システムを構築することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施例の構成図である。
【図２】  図１の第１の実施例の動作を説明するための処理フロー図である。
【図３】  本発明の第２の実施例の構成図である。
【図４】  図３の第２の実施例の動作を説明するための処理フロー図である。
【図５】  論理回路の一例を示す図である。
【図６】  図５に対するＲＴＬ記述例を示す図である。
【図７】  ＲＴＬデータのｉｆ文の例を示す図である。
【符号の説明】
１１０  回路記述データファイル
１２０  信号制約ファイル
１３０  信号制約ファイル読み込み部
１４０  論理シミュレータ
１５０  フリップ・フロップ情報ファイル
１６０  テスト容易化設計ルール判定部
３１０  回路記述データファイル
３２０  論理シミュレータ
３３０  条件記述情報ファイル
３４０  論理値設定部
３５０  代入先信号チェック部
【図１】
0004082568.tif 000002
【図２】
0004082568.tif 000003
【図３】
0004082568.tif 000004
【図４】
0004082568.tif 000005
【図５】
0004082568.tif 000006
【図６】
0004082568.tif 000007
【図７】
0004082568.tif 000008