(57)【特許請求の範囲】
【請求項１】
階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作を検証するための論理シミュレータによる論理検証方法であって、
前記論理シミュレータの実行するステップは、
前記論理シミュレータの備える処理装置が、
前記下位階層論理の第１入力端子の情報が与えられる第２出力端子と、該下位階層論理の第１出力端子へ情報を与える第２入力端子と、前記上位階層論理の第３入力端子へ情報を与える第４入力端子と、該上位階層論理の第３出力端子の情報が与えられる第４出力端子との論理を有する第１の検証用論理と、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除した第２の検証用論理と、を作成し、それら第１の検証用論理及び第２の検証用論理を記憶装置に格納するステップと、
前記処理装置が、前記第１及び第２の検証用論理を用いて、前記第４入力端子に与えられる入力値を前記第２出力端子からの出力値に基づいて検証し、前記第２入力端子に与えられる入力値を前記第４出力端子からの出力値に基づいて検証し、前記上位階層論理の動作検証を行うステップと、を含み、
前記動作検証は、
前記処理装置が、記憶装置に格納されている、前記上位階層論理に与える入力値及び該入力値に対する前記上位階層論理からの出力されるべき期待値が定義されたテストベンチを読み出すステップと、
前記処理装置が、前記テストベンチに基づいて前記第２入力端子及び前記第４入力端子に与えられる入力値に対して、前記第４出力端子及び前記第２出力端子から出力される出力値が期待値と等しいか否かを判定するステップと、を含むことを特徴とする論理検証方法。
【請求項２】
前記下位階層論理の前記第１出力端子から出力される信号値を前記第１の検証用論理の前記第２入力端子から与える信号値により設定可能としたことを特徴とする請求項１記載の論理検証方法。
【請求項３】
階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作を検証するための論理シミュレータによる論理検証方法であって、
前記論理シミュレータの実行するステップは、
前記論理シミュレータの備える処理装置が、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除し、該下位階層論理の第１入力端子の情報が与えられる第２出力端子及び該下位階層論理の第１出力端子へ情報を与える第２入力端子の論理を追加した検証用論理と、
第３入力端子と、第３出力端子と、前記検証用論理に新たに追加される前記第２入力端子へ情報を与える第４入力端子と、前記第２出力端子の情報が与えられる第４出力端子との論理を有する前記上位階層論理と、を作成し、前記検証用論理を記憶装置に格納するステップと、
前記処理装置が、前記検証用論理を用いて、前記第３入力端子に与えられる入力値を前記第４出力端子からの出力値に基づいて検証し、前記第４入力端子に与えられる入力値を前記第３出力端子からの出力値に基づいて検証し、前記上位階層論理の動作検証を行うステップと、を含み、
前記動作検証は、
前記処理装置が、記憶装置に格納されている、前記上位階層論理に与える入力値及び該入力値に対する前記上位階層論理からの出力されるべき期待値が定義されたテストベンチを読み出すステップと、
前記処理装置が、前記テストベンチに基づいて前記第３入力端子及び前記第４入力端子に与えられる入力値に対して、前記第４出力端子及び前記第３出力端子から出力される出力値が期待値と等しいか否かを判定するステップと、を含むことを特徴とする論理検証方法。
【請求項４】
前記下位階層論理の第１出力端子から出力される信号値を前記上位階層論理の第４入力端子から与える信号値により設定可能としたことを特徴とする請求項３記載の論理検証方法。
【請求項５】
階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作検証をコンピュータに実行させるためのプログラムであって、
前記プログラムは、
前記下位階層論理の第１入力端子の情報が与えられる第２出力端子と、該下位階層論理の第１出力端子へ情報を与える第２入力端子と、前記上位階層論理の第３入力端子へ情報を与える第４入力端子と、該上位階層論理の第３出力端子の情報が与えられる第４出力端子との論理を有する第１の検証用論理と、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除した第２の検証用論理と、を作成するステップと、
前記上位階層論理に与える入力値及び該入力値に対する前記上位階層論理からの出力されるべき期待値が定義されたテストベンチを読み出すステップと、
前記テストベンチに基づいて前記第４入力端子に与えられる入力値に対して、前記第２出力端子から出力される出力値が期待値と等しいか否かを判定するとともに、前記テストベンチに基づいて前記第２入力端子に与えられる入力値に対して、前記第４出力端子から出力される出力値が期待値と等しいか否かを判定することにより、前記上位階層論理の動作検証を行うステップと、
を前記コンピュータに実行させるためのプログラム。
【請求項６】
階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作検証をコンピュータに実行させるためのプログラムであって、
前記プログラムは、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除し、該下位階層論理の第１入力端子の情報が与えられる第２出力端子及び該下位階層論理の第１出力端子へ情報を与える第２入力端子の論理を追加した検証用論理と、
第３入力端子と、第３出力端子と、前記検証用論理に新たに追加される前記第２入力端子へ情報を与える第４入力端子と、前記第２出力端子の情報が与えられる第４出力端子との論理を有する前記上位階層論理と、を作成するステップと、
前記上位階層論理に与える入力値及び該入力値に対する前記上位階層論理からの出力されるべき期待値が定義されたテストベンチを読み出すステップと、
前記テストベンチに基づいて前記第３入力端子に与えられる入力値に対して、前記第４出力端子から出力される出力値が期待値と等しいか否かを判定するとともに、前記テストベンチに基づいて前記第４入力端子に与えられる入力値に対して、前記第３出力端子から出力される出力値が期待値と等しいか否かを判定することにより、前記上位階層論理の動作検証を行うステップと、
を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は論理検証手法及びプログラムに係り、詳しくは階層的に論理記述される半導体装置の論理検証方法及びプログラムに関する。
【０００２】
近年、半導体装置は高性能化及び多機能化が進み、論理記述された半導体装置の動作検証にかかる時間が増大してきている。このため、論理シミュレータによる論理検証を効率良く行うことが要求されている。
【０００３】
【従来の技術】
半導体装置（ＬＳＩ）の設計に際しては、論理記述された回路の動作検証（論理シミュレーション）が行われる。一般に、ＬＳＩの論理はハードウェア記述言語（ＨＤＬ）により階層構造を有して記述される。特に、近年のＬＳＩは１チップ上でシステムレベルの機能を実現するシステムＬＳＩが主流であり、こうしたシステムＬＳＩでは、各種機能マクロ単位毎に階層的に論理が記述され、それらの上位階層にて各機能マクロ間の接続関係を示す論理が記述される。従来、このようなＬＳＩの論理検証は論理シミュレータを用いて行われる。論理シミュレータは、検証対象となるＬＳＩの論理に対して各種の入力値を与え、そのとき出力される出力値が該ＬＳＩの正常な論理動作として期待される値と等しいかどうかを比較することにより論理検証を行う。
【０００４】
【発明が解決しようとする課題】
ところで、従来、階層構造を持つＬＳＩの論理を検証する際には、それら階層毎に記述された論理をあらかじめ作成しておく必要がある。具体的には、検証対象の論理に対して、それに論理合成される（接続関係にある）下位階層の論理が存在する場合には、それら該当する下位階層の論理が全て必要である。即ち、上位階層の論理（各機能マクロ間の配線論理）のみを検証対象とする場合にも、それに含まれる下位階層の論理が全て存在しなければ、検証を行うことはできない。従って、検証対象の論理に対して下位階層の論理がまだ作成されていない場合は、その下位階層の論理動作を擬似的に置き換えた動作モデルを作成する必要がある。
【０００５】
その結果、上位階層の論理のみを検証する際にも、検証対象外である下位階層の論理を含む状態で全ての論理検証が実施されるため、検証時間（論理シミュレーションの実行時間）が必要以上に長くなり、論理検証を効率的に行うことができなかった。また、この場合、論理シミュレータは、検証対象外である下位階層の論理をメモリに格納するため、論理検証時におけるメモリの消費量が大きくなる。このことは、論理シミュレーションの実行速度を低下させ、検証効率を低下させる。さらに、こうした検証対象外の下位階層の論理を含む状態で論理検証を行う場合は、その下位階層の論理から任意の出力値を得るために、さまざまな信号を組み合わせて入力値を作成する必要があり、結果として論理検証を効率的に行うことができなかった。
【０００６】
本発明は上記問題点を解決するためになされたものであって、その目的は半導体装置の論理検証を効率良く行うことのできる論理検証方法及びプログラムを提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１，５に記載の発明によれば、階層論理構造を有する半導体装置の上位階層論理の動作検証時には、前記下位階層論理の第１入力端子の情報が与えられる第２出力端子と、該下位階層論理の第１出力端子へ情報を与える第２入力端子と、前記上位階層論理の第３入力端子へ情報を与える第４入力端子と、該上位階層論理の第３出力端子の情報が与えられる第４出力端子との論理を有する第１の検証用論理と、下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除した第２の検証用論理とが作成される。また、前記第１及び第２の検証用論理を用いて、前記第４入力端子に与えられる入力値を前記第２出力端子からの出力値に基づいて検証し、前記第２入力端子に与えられる入力値を前記第４出力端子からの出力値に基づいて検証し、前記上位階層論理の動作検証が行われる。なお、この動作検証では、前記上位階層論理に与える入力値及び該入力値に対する前記上位階層論理からの出力されるべき期待値が定義されたテストベンチが読み出され、その読み出されたテストベンチに基づいて前記第２入力端子及び前記第４入力端子に与えられる入力値に対して、前記第４出力端子及び前記第２出力端子から出力される出力値が期待値と等しいか否かが判定される。これにより、検証対象外の下位階層論理をその入出力端子以外の論理を含むことなく上位階層論理の動作検証を実施することができる。その結果、検証対象外の論理は論理シミュレータのメモリに読み込まれず、論理シミュレーションの実行時間及び該論理シミュレーション実行時におけるメモリの消費量が抑えられる。従って、論理検証を効率良く行うことが可能である。
【０００９】
請求項２に記載の発明のように、前記下位階層論理の前記第１出力端子から出力される信号値を前記第１の検証用論理の前記第２入力端子から与える信号値により任意に設定可能であるため、論理検証時の処理を簡易化させることが可能である。
【００１１】
請求項３，６に記載の発明によれば、階層論理構造を有する半導体装置の上位階層論理の動作検証時には、下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除し、該下位階層論理の第１入力端子の情報が与えられる第２出力端子及び該下位階層論理の第１出力端子へ情報を与える第２入力端子の論理を追加した検証用論理と、第３入力端子と、第３出力端子と、前記検証用論理に新たに追加される前記第２入力端子へ情報を与える第４入力端子と、前記第２出力端子の情報が与えられる第４出力端子との論理を有する前記上位階層論理と、が作成される。また、前記検証用論理を用いて、前記第３入力端子に与えられる入力値を前記第４出力端子からの出力値に基づいて検証し、前記第４入力端子に与えられる入力値を前記第３出力端子からの出力値に基づいて検証し、前記上位階層論理の動作検証が行われる。なお、この動作検証では、前記上位階層論理に与える入力値及び該入力値に対する前記上位階層論理からの出力されるべき期待値が定義されたテストベンチが読み出され、その読み出されたテストベンチに基づいて前記第３入力端子及び前記第４入力端子に与えられる入力値に対して、前記第４出力端子及び前記第３出力端子から出力される出力値が期待値と等しいか否かが判定される。これにより、検証対象外の下位階層論理をその入出力端子以外の論理を含むことなく上位階層論理の動作検証を実施することができる。その結果、検証対象外の論理は論理シミュレータのメモリに読み込まれず、論理シミュレーションの実行時間及び該論理シミュレーション実行時におけるメモリの消費量が抑えられる。従って、論理検証を効率良く行うことが可能である。
【００１２】
請求項４に記載の発明のように、前記下位階層論理の前記第１出力端子から出力される信号値を前記上位階層論理の前記第４入力端子から与える信号値により任意に設定可能であるため、論理検証時の処理を簡易化させることが可能である。
【００１４】
【発明の実施の形態】
（第一実施形態）
以下、本発明を具体化した第一実施形態を図１〜図５に従って説明する。
【００１５】
図１は、半導体装置（ＬＳＩ）の論理検証を行う論理シミュレータの概略構成を示すブロック図である。
論理シミュレータ１１は、処理装置１２、入力装置１３、出力装置１４、記憶装置１５、メモリ１６、ドライブ装置１７を備え、処理装置１２と各装置１３〜１７とは相互に接続されている。
【００１６】
入力装置１３は、キーボード、マウス装置等を含み、プログラムの起動、パラメータの入力等のユーザからの要求や指示に用いられる。出力装置１４は、ＣＲＴ，ＬＣＤ，ＰＤＰ等の表示装置、プリンタ等を含み、回路図形の表示、データ入力画面の表示等に用いられる。
【００１７】
記憶装置１５は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置を含み、該記憶装置１５には、論理検証プログラム、論理マクロデータ及びテストベンチとしての入出力データ等が格納されている。
【００１８】
論理マクロデータには、ＬＳＩに含まれる各種機能マクロを例えばハードウェア記述言語（ＨＤＬ）にて論理記述した論理マクロがネットリストとして記録されている。入出力データには、論理シミュレーションの実行時に各種論理マクロに与える入力値及びそのときの出力値（期待値）等が記録されている。論理検証プログラムは、論理シミュレータ１１が論理シミュレーションを実行するためのプログラムデータである。
【００１９】
処理装置１２は、論理検証プログラムに従って論理シミュレーションを実行する。具体的には、処理装置１２は、論理マクロデータや入出力データ等を読み出してメモリ１６に格納し、そのメモリ１６のデータを利用して論理検証のために必要な処理を実現する。尚、メモリ１６は、通常、キャッシュ・メモリ、システム・メモリおよびディスプレイ・メモリを含む。
【００２０】
ドライブ装置１７は、記録媒体１８を駆動し、その記憶内容にアクセスする。記録媒体１８としては、磁気テープ（MT）、メモリカード、光ディスク（CD-ROM,DVD-ROM,…）、光磁気ディスク（MO,MD,… ）等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体１８に、上述の論理マクロデータや入出力データ等を格納しておき、必要に応じて、メモリ１６にロードして使用することもできる。
【００２１】
次に、本実施形態の論理検証方法について図２〜図５に従って詳述する。
図２は、論理記述されたシステムＬＳＩの階層構造を示す概念図である。このシステムＬＳＩ２１は、例えば上位階層の論理マクロ（以下、上位論理）２２と下位階層の論理マクロ（以下、下位論理）２３とから構成されている。ここで、上位論理２２は、システムＬＳＩ２１のチップレベルを記述した最上位階層の論理データであり、下位論理２３は、その上位論理２２に論理合成される（接続関係にある）論理データである。上位論理２２は入力端子２２ａ及び出力端子２２ｂ（図ではそれぞれ２つずつ）を記述した論理データと下位論理２３を呼び出すための記述及び下位論理２３との接続の記述とを含み、同様に下位論理２３は入力端子２３ａ及び出力端子２３ｂを記述した論理データを含む。
【００２２】
以下、図２の論理構造を持つシステムＬＳＩ２１の上位論理２２の検証（論理シミュレーション）を行う場合について説明する。
図３は、論理シミュレーション実行時の論理構造（ネットリスト）を示す概念図である。同図に示すように、本実施形態では、論理シミュレータ１１は、検証対象の上位論理２２に対し、該上位論理２２と下位論理２３との接続関係を示す入出力端子の論理データを記述した第１及び第２の検証用論理２５，２６を作成する。
【００２３】
詳述すると、第１の検証用論理２５は、検証対象である上位論理２２を含むさらに上位の階層論理として作成される論理データである。この第１の検証用論理２５は、上位論理２２の入力端子２２ａ及び出力端子２２ｂとそれぞれ等価な入力端子２５ａ及び出力端子２５ｂと、下位論理２３の出力端子２３ｂと等価な入力端子２５ｃと、同下位論理２３の入力端子２３ａと等価な出力端子２５ｄとを記述した論理データを含む。尚、等価な端子とは、それに入出力される信号値が同じになるように同一の論理データにて記述される端子である。
【００２４】
第２の検証用論理２６は、上位論理２２と接続される端子のみが記述された論理データである。即ち、第２の検証用論理２６は、下位論理２３の入力端子２３ａ及び出力端子２３ｂの記述を含み、それら入力端子２３ａ及び出力端子２３ｂ以外の記述を含まない。
【００２５】
図４は、図３を用いた論理シミュレーションの概念図である。
論理シミュレータ１１は、検証対象の上位論理２２に対して、第１及び第２の検証用論理２５，２６を作成した後、テストパターンデータが記述されたテストベンチ２７を用いて上位論理２２の論理シミュレーションを行う。上記したようにテストベンチ２７には、該シミュレーション時にシステムＬＳＩ２１の外部から与える入力値及びシステムＬＳＩ２１から出力される期待値等の入出力データが記述されている。
【００２６】
図５は、論理シミュレータ１１による上位階層の論理検証時（上位論理２２のシミュレーション時）の処理を示すフローチャートである。
論理シミュレータ１１は、まずシステムＬＳＩ２１にて検証対象となる論理のネットリストを作成する（ステップ３１）。即ち、論理シミュレータ１１は、検証対象の上位論理２２の論理データを記憶装置１５から読み出し、それをメモリ１６に格納する。
【００２７】
次いで、論理シミュレータ１１は、検証対象の上位論理２２に対して検証用の論理階層、即ち、図３に示す第１及び第２の検証用論理２５，２６を作成し、それをメモリ１６に格納する（ステップ３２）。
【００２８】
その後、論理シミュレータ１１は、テストベンチ２７を用いて上位論理２２のシミュレーションを実行し（ステップ３３）、その実行結果に基づいて上位論理２２の論理動作が正常であるか否かを判断する（ステップ３４）。具体的には、テストベンチ２７を介して第１の検証用論理２５の入力端子２５ａ，２５ｃから入力した入力値に対して、該検証用論理２５の出力端子２５ｂ，２５ｄから出力される出力値が期待値と等しいか否かを判定することにより、シミュレーション結果が正しいか否かを判定する。その結果、シミュレーション結果が期待値と異なる場合には、上記ステップ３１〜ステップ３３を再度実行し、論理シミュレーションを繰り返し実施する。
【００２９】
尚、図６には、従来の論理検証方法にて上位階層の論理シミュレーションを行う際の処理フローチャートを示す。ここでは、説明の便宜上、図２のシステムＬＳＩ２１の論理を用いて同様に上位論理２２の検証を行うものとする。
【００３０】
まず、論理シミュレータは、システムＬＳＩ２１の論理ネットリストを作成する。具体的には、論理シミュレータは、システムＬＳＩ２１にて検証対象となる上位階層の論理に含まれる全ての下位階層の論理を記憶装置から読み出し、それらをメモリに格納する（ステップ４１）。その後、論理シミュレータは、検証対象の上位階層の論理に対して下位階層の論理が全て揃っているか否かを判断する。即ち、図２に示す検証対象の上位論理２２とともに下位論理２３が存在するか否かを判定する（ステップ４２）。その結果、論理シミュレータは、下位階層の論理が全て存在している場合にシミュレーションを実行し（ステップ４３）、その実行結果に基づいて論理動作が正常か否かを判断する（ステップ４４）。
【００３１】
こうした検証方法では、検証対象となる上位階層の論理に対して下位階層の論理が全て必要であり、下位階層の論理が存在しない場合には、その論理を疑似的に置き換えた動作モデル等を作成して、検証対象外であるそれら下位階層の論理を全てメモリに格納する必要がある。このため、メモリの消費量が増大して論理シミュレータの実行速度が低下する。また、検証対象としない下位階層の論理検証等が全て行われるために、論理検証時間が長くなる。
【００３２】
図７〜図９は、本実施形態の論理検証方法を別のシステムＬＳＩの論理に適用した例を示す説明図である。
図７に示すシステムＬＳＩ５１は、例えば論理５２と論理５３とを備え、論理５２は論理５４，５５を含む。論理５４，５５は同一階層の論理データであり、論理５３は各論理５４，５５（即ち論理５２）に対して下位階層の論理データである（以下では、上位論理５２、下位論理５３と記述する）。上位論理５２は、入力端子５２ａ及び出力端子５２ｂの論理データを含み、下位論理５３は、入力端子５３ａ及び出力端子５３ｂの論理データを含む。
【００３３】
このようなシステムＬＳＩ５１に対して、上位論理５２（論理５４，５５）の検証を行う際には、図８に示すように、前記と同様（図３参照）にして検証用論理５６，５７が作成される。
【００３４】
即ち、検証用論理５６は、上位論理５２を含むさらに上位階層の論理として作成され、該上位論理５２の入力端子５２ａ及び出力端子５２ｂと等価な入力端子５６ａ及び出力端子５６ｂを記述した論理データを含む。また、検証用論理５６は、下位論理５３の出力端子５３ｂと等価な入力端子５６ｃと、同下位論理５３の入力端子５３ａと等価な出力端子５６ｄとを記述した論理データを含む。
【００３５】
検証用論理５７は、下位論理５３の入力端子５３ａ及び出力端子５３ｂが記述され、それら入力端子５３ａ及び出力端子５３ｂ以外の論理を除いて作成される論理データである。
【００３６】
図９は、図８を用いた論理シミュレーションの概念図であり、論理シミュレータ１１は、前記と同様（図４参照）に、上位論理５２の論理シミュレーションを検証用論理５６，５７を用いて行う。即ち、論理シミュレータ１１は、テストベンチ５８を介して最上位階層の検証用論理５６の入力端子５６ａ，５６ｃから入力値を与え、該検証用論理５６の出力端子５６ｂ，５６ｄから出力される出力値と期待値とを比較することにより、上位論理５２（論理５４，５５）の動作を検証する。
【００３７】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）システムＬＳＩ２１の上位論理２２のシミュレーション実行時には、該上位論理２２と下位論理２３との接続関係を示す入出力端子の論理を記述した第１及び第２の検証用論理２５，２６が作成される。これにより、論理シミュレータ１１は、検証対象外である下位論理２３の入力端子２３ａ及び出力端子２３ｂ以外の論理を不要としながら上位論理２２の動作検証を行うことができる。従って、上位論理２２の検証時において、検証対象外の下位論理２３の検証が行われないため、必要以上に論理シミュレーションの実行時間が長くなることが防止され、論理検証を効率的に行うことが可能である。
【００３８】
（２）上位論理２２の検証時において、上位論理２２と共に端子２５ａ〜２５ｄを含む第１の検証用論理２５及び端子２３ａ，２３ｂを含む第２の検証用論理２６が論理シミュレータ１１のメモリ１６に読み込まれる。第１及び第２の検証用論理２５，２６のデータ量は、下位論理２３のそれよりも遙かに少ないため、論理シミュレーションの実行時におけるメモリの消費量を低減することができる。これにより、論理シミュレーションの実行速度の低下が防止され、その結果、検証効率の低下を防止することができる。
【００３９】
（３）第１の検証用論理２５は、下位論理２３の出力端子２３ｂと等価な入力端子２５ｃが記述された論理データを含む。これにより、第１の検証用論理２５の入力端子２５ｃを介して入力するさまざまな入力値によって、下位論理２３からの出力値を任意に得ることが可能である。
【００４０】
（４）第１の検証用論理２５は、上位論理２２の入力端子２２ａ及び出力端子２２ｂにそれぞれ対応する等価な入力端子２５ａ及び出力端子２５ｂが記述された論理データを含む。これにより、論理シミュレーションの実行時には、テストベンチ２７等の既存のシミュレーション環境を利用することが可能であるため、論理検証時の工数が増大することもない。
【００４１】
（第二実施形態）
以下、本発明を具体化した第二実施形態を図１０、図１１に従って説明する。尚、本実施形態は、図２に示すシステムＬＳＩ２１の上位論理２２の検証方法を一部変更したものであり、第一実施形態と同様の構成部分については同一符号を付して説明する。
【００４２】
図１０は、本実施形態におけるシミュレーション実行時の論理構造（ネットリスト）を示す概念図である。同図に示すように、本実施形態では、論理シミュレータ１１は、検証用に上位論理２２を一部変更して作成した論理（以下、検証用上位論理）６１と、下位論理２３と同階層の検証用論理６２を作成する。
【００４３】
詳述すると、検証用上位論理６１は、上位論理２２に新たに入力端子６１ａ及び出力端子６１ｂの記述を追加して作成される論理データである。また、検証用論理６２は、その検証用上位論理６１と接続される端子のみが記述された論理データである。即ち、検証用論理６２は、下位論理２３の入力端子２３ａ及び出力端子２３ｂの記述と共に、新規に追加した入力端子６２ａ及び出力端子６２ｂの記述を含む論理データであり、それら端子２３ａ，２３ｂ，６２ａ，６２ｂ以外の記述を含まない。ここで、検証用上位論理６１の入力端子６１ａと検証用論理６２の入力端子６２ａとは互いに等価な端子である。同様に、それらの各論理６１，６２の出力端子６１ｂ，６２ｂは互いに等価な端子である。
【００４４】
図１１は、図１０を用いた論理シミュレーションの概念図である。
論理シミュレータ１１は、検証対象の上位論理２２に対して、上述の検証用上位論理６１及び検証用論理６２を作成した後、第一実施形態と同様にして、テストパターンデータが記述されたテストベンチ６３を用いて論理シミュレーションを行う。
【００４５】
以上記述したように、本実施形態の論理検証方法を用いても、既存のシミュレーション環境を用いて論理検証を行うことが可能であり、そのシミュレーション実行時には論理シミュレータ１１のメモリ１６に格納される論理量が検証時に必要とする最小限の論理に抑えられる。従って、第一実施形態と同様の効果を奏することができる。
【００４６】
（第三実施形態）
以下、本発明を具体化した第三実施形態を図１２に従って説明する。
図１２は、第三実施形態の論理検証方法を示す説明図である。
【００４７】
本実施形態は、上記の検証用上位論理６１及び検証用論理６２を含む（論理合成した）階層論理（図１０参照）の機能を持つＬＳＩ７１及び下位論理２３（図２参照）の機能を持つＬＳＩ７２をプログラミング可能な半導体装置を用いて作成し、それらのＬＳＩ７１，７２を用いて上位論理２２の検証を行う。例えば、本実施形態において、各ＬＳＩ７１，７２は、ＦＰＧＡ（Field Programmable Gate Array ）を用いて作成されている。尚、説明の便宜上、図１２に示すＬＳＩ７１，７２において、図２及び図１０に示す論理に対応する機能を持つ箇所には同一符号を付している。
【００４８】
各ＬＳＩ７１，７２は図示しない基板上に搭載され、ＬＳＩ７１の入力端子６１ａは、ＬＳＩ７２の出力端子２３ｂと接続され、ＬＳＩ７１の出力端子６１ｂは、ＬＳＩ７２の入力端子２３ａと接続されている。そして、ＬＳＩ７１の入力端子２２ａに所定の入力値を持つテスト信号を入力し、該ＬＳＩ７１の出力端子２２ｂから出力される出力信号の値を期待値と比較することにより、システムＬＳＩ２１の上位論理２２の検証を行う。このような実動作するＬＳＩ７１，７２を用いて上位論理２２の検証を行う方法では、上位論理２２に対し下位論理２３が実際に組み込まれた場合における動作検証を実質的に行うことができるため、より精度の高い動作検証を行うことが可能である。
【００４９】
尚、上記各実施形態は、以下の態様で実施してもよい。
・第一実施形態のように作成される第１及び第２の検証用論理２５，２６を用いれば、第１の検証用論理２５の上位階層における論理検証を行うことも可能である。同様に、第二実施形態のように作成される検証用論理６２を用いることにより、上位論理２２（検証用上位論理６１）の上位階層における論理検証を行うことも可能である。
【００５０】
・上記各実施形態における論理検証方法を用いれば、システムＬＳＩ２１の設計段階において、検証対象外である下位論理２３がまだ存在していない場合においても、該下位論理２３の入力端子２３ａ及び出力端子２３ｂの論理さえ存在すれば、上位論理２２の動作検証を実行することは可能である。
【００５１】
・第三実施形態では、第二実施形態で説明した論理の機能を持つ実動作可能なＬＳＩ７１，７２を用いて上位論理２２の動作検証を行うようにしたが、それのみに限定されるものではない。即ち、第一実施形態で説明した論理の機能を持つＬＳＩ、具体的には図３に示す論理の機能を持つＬＳＩと下位論理２３の機能を持つＬＳＩとを作成し、それら実動作可能な２つのＬＳＩを互いに接続して上位論理２２の動作検証を同様に行ってもよい。
【００５２】
上記各実施形態の特徴をまとめると以下のようになる。
（付記１）  階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作を検証するための論理検証方法であって、
前記下位階層論理の入力端子に対応する等価な出力端子及び該下位階層論理の出力端子に対応する等価な入力端子の論理を有する第１の検証用論理と、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除した第２の検証用論理と、を作成し、
前記第１及び第２の検証用論理を用いて前記上位階層論理の動作検証を行うようにしたことを特徴とする論理検証方法。
（付記２）  前記第１の検証用論理は、前記上位階層論理の入出力端子にそれぞれ対応する等価な入出力端子の論理を含むことを特徴とする付記１記載の論理検証方法。
（付記３）  前記第１の検証用論理は前記上位階層論理の上位階層に作成される論理であることを特徴とする付記１又は２記載の論理検証方法。
（付記４）  前記下位階層論理の出力端子から出力される信号値を前記第１の検証用論理の入力端子から与える信号値により設定可能としたことを特徴とする付記１乃至３の何れか一記載の論理検証方法。
（付記５）  前記上位階層論理及び前記第１及び第２の検証用論理を含む階層論理の機能を持つ第１の半導体装置と、
前記下位階層論理の機能を持つ第２の半導体装置と、をプログラミング可能な半導体装置を用いて作成し、
前記第１及び第２の半導体装置を用いて前記上位階層論理の動作検証を行うようにしたことを特徴とする付記１乃至４の何れか一記載の論理検証方法。
（付記６）  階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作を検証するための論理検証方法であって、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除し、該下位階層論理の入力端子に対応する等価な出力端子及び該下位階層論理の出力端子に対応する等価な入力端子の論理を追加して作成した検証用論理を用いて前記上位階層論理の動作検証を行うようにしたことを特徴とする論理検証方法。
（付記７）  前記上位階層論理には、前記検証用論理に新たに追加される入出力端子にそれぞれ対応する等価な入出力端子が作成されることを特徴とする付記６記載の論理検証方法。
（付記８）  前記検証用論理は前記下位階層論理と同階層に作成される論理であることを特徴とする付記６又は７記載の論理検証方法。
（付記９）  前記下位階層論理の出力端子から出力される信号値を前記上位階層論理の入力端子から与える信号値により設定可能としたことを特徴とする付記６乃至８の何れか一記載の論理検証方法。
（付記１０）  前記上位階層論理及び検証用論理を含む階層論理の機能を持つ第１の半導体装置と、
前記下位階層論理の機能を持つ第２の半導体装置と、をプログラミング可能な半導体装置を用いて作成し、
前記第１及び第２の半導体装置を用いて前記上位階層論理の動作検証を行うようにしたことを特徴とする付記６乃至９の何れか一記載の論理検証方法。
（付記１１）  前記上位階層論理に与える入力値及び該入力値に対する前記上位階層論理からの出力されるべき期待値が定義された汎用のテストベンチを用いて動作検証を行うことを特徴とする付記１乃至４，６乃至９の何れか一記載の論理検証方法。
（付記１２）  階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作を検証する際に用いられる論理検証プログラムであって、
前記プログラムは、
前記下位階層論理の入力端子に対応する等価な出力端子及び該下位階層論理の出力端子に対応する等価な入力端子の論理を有する第１の検証用論理と、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除した第２の検証用論理と、を作成するステップを含むことを特徴とするプログラム。
（付記１３）  階層構造を有して記述される半導体装置の各階層論理のうち少なくとも１つの下位階層論理を含む上位階層論理の動作を検証する際に用いられる論理検証プログラムであって、
前記プログラムは、
前記下位階層論理内に含まれる入力端子及び出力端子以外の論理を削除し、該下位階層論理の入力端子に対応する等価な出力端子及び該下位階層論理の出力端子に対応する等価な入力端子の論理を含む検証用論理を作成するステップを含むことを特徴とするプログラム。
【００５３】
【発明の効果】
以上詳述したように、本発明によれば、半導体装置の論理検証を効率良く行うことのできる論理検証方法及びプログラムを提供することができる。
【図面の簡単な説明】
【図１】  論理シミュレータの概略構成図である。
【図２】  システムＬＳＩの論理構造を示す概念図である。
【図３】  第一実施形態の論理検証方法を示す説明図である。
【図４】  図３を用いた論理シミュレーションの概念図である。
【図５】  上位階層の論理検証時の処理フローチャートである。
【図６】  従来の上位階層の論理検証時の処理フローチャートである。
【図７】  別のシステムＬＳＩの論理構造を示す概念図である。
【図８】  図７の上位階層の論理検証方法を示す説明図である。
【図９】  図８を用いた論理シミュレーションの概念図である。
【図１０】  第二実施形態の論理検証方法を示す説明図である。
【図１１】  図１０を用いた論理シミュレーションの概念図である。
【図１２】  第三実施形態の論理検証方法を示す説明図である。
【符号の説明】
２１，５１  半導体装置としてのシステムＬＳＩ
２２，５２，５４，５５  上位階層論理としての上位論理
２３，５３  下位階層論理としての下位論理
２５，５６  第１の検証用論理
２６，５７  第２の検証用論理
６２  検証用論理
２５ｃ，５６ｃ，６２ａ  下位階層論理の出力端子に対応する等価な入力端子２５ｄ，５６ｄ，６２ｂ  下位階層論理の入力端子に対応する等価な出力端子
【図１】
0004182279.tif 000002
【図２】
0004182279.tif 000003
【図３】
0004182279.tif 000004
【図４】
0004182279.tif 000005
【図５】
0004182279.tif 000006
【図６】
0004182279.tif 000007
【図７】
0004182279.tif 000008
【図８】
0004182279.tif 000009
【図９】
0004182279.tif 000010
【図１０】
0004182279.tif 000011
【図１１】
0004182279.tif 000012
【図１２】
0004182279.tif 000013