(57)【要約】【課題】従来のＩＰコアでは、ＩＰコアを利用する際にその機能検証にかける時間が増大してしまうという問題があった。【解決手段】本発明の機能検証方法では、半導体集積回路内で要求された機能を実行することが可能な第１の機能ブロック１００ａを用意する工程と、第１の機能ブロックと実質的に同一の構成を有する検証対象となる第２の機能ブロック１００ｂを用意する工程と、第１の機能ブロック１００ａによって第２の機能ブロック１００ｂの機能を検証する工程を有している。この方法により第２の機能ブロック１００ｂの機能検証を行うための検証期間が短縮される。【選択図】  図１
2005321861.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路内で要求された機能を実行することが可能な第１の機能ブロックを用意する工程と、
前記第１の機能ブロックと実質的に同一の構成を有する検証対象となる第２の機能ブロックを用意する工程と、
前記第１の機能ブロックを用いて前記第２の機能ブロックの機能を検証する工程とを有する機能検証方法。
【請求項２】
前記第１の機能ブロックと前記第２の機能ブロックは互いに接続され、前記第１の機能ブロックで生成したテスト用のデータを第２の機能ブロックに入力する工程と、
該テスト用データに基づいた前記第２の機能ブロックの出力データに基づいて、前記第２の機能ブロックの機能を検証する工程とを有することを特徴とする請求項１に記載の機能検証方法。
【請求項３】
前記第１および第２の機能ブロックはデータ通信を行う機能ブロックであることを特徴とする請求項１あるいは２に記載の機能検証方法。
【請求項４】
前記第１および第２の機能ブロックを用意する工程は、前記第１および第２の機能ブロックをＲＴＬにより記述する工程であることを特徴とする請求項１乃至３に記載の機能検証方法。
【請求項５】
第１の機能ブロックでテスト用のフレームを生成する工程と、
前記テスト用のフレームを前記第１の機能ブロックと実質的に同一の構成を有する第２の機能ブロックに入力する工程と、
前記テスト用のフレームに基づいて前記第２の機能ブロックが出力する出力データに基づいて前記第２の機能ブロックの機能を検証する工程とを有する機能検証方法。
【請求項６】
前記第１の機能ブロックでテスト用のフレームを生成する工程は、前記第１の機能ブロックのレジスタから前記テスト用のフレームに対応するデータを読み出す工程と、前記データに基づいてフレームを組み立てる工程とを有することを特徴とする請求項５に記載の機能検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能検証方法に関するものであり、特に半導体集積回路の機能ブロックの機能検証に関するものである。
【背景技術】
【０００２】
近年、システムを高密度集積回路（ＬＳＩ）上に搭載するという意味のＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）という言葉で代表される様に、 ＬＳＩ上に多くの機能ブロックを搭載することが一般的である。大規模なＬＳＩを設計する場合、過去に設計した回路機能ブロック（以降、ＩＰコアと称す）を用いて設計することが主流となりつつある。図１０は、ＩＰコア１０００に関しての機能検証を行うために構築されたテストベンチ１０１０、テストパタン１０２０の関係を示す構成図である。一般にテストベンチ１０１０は、ＩＰコア１０００への入力データの生成を行うブロック１０１１、出力データの期待値チェックを行うブロック１０１２、及びリファレンスモデル１０１３を有している。
【０００３】
入力データの生成を行うブロック１０１１ではテストパタン１０２０に基づいて、ＩＰコア１０００への入力データの生成を行う。ＩＰコア１０００の出力データの期待値チェックを行うブロック１０１２では、リファレンスモデルの出力を基準として、ＩＰコア１０００の出力が正しいかどうかを確認する。
【０００４】
図１１は、図１０に示されるようなＩＰコア１０００とテストベンチ１０１０の具体例を示す構成図である。図１１に示すテストベンチ１０１０は、イーサネット（登録商標）の様なフレームを単位とした通信インターフェース機能を実現するＩＰコア１０００と、テストベンチ１０１０の関係を明示するための図である。図１１には示されていないが、テストベンチ１０１０は、検証対象のＩＰコア１０００へ入力される入力データ生成ブロック１０１１と、ＩＰコア１０００からの出力データのチェックブロック１０１２が含まれるのは図１０と同じである。図１１では、ＩＰコア１０００への入力データがフレーム１０１５として、ＩＰコア１０００からの出力データがフレーム１０１６として示されている。これはイーサネット（登録商標）が、フレームを単位として通信を行うインターフェースであるためである。テストベンチ１０１０とテストベンチ１０１０に接続されたＩＰコア１０００との間のデータの授受は全てフレーム単位で行われる。図１１中の破線はテストベンチ１０１０とＩＰコア１０００の境界を表しており、図１１における破線から左側がテストベンチ１０１０で、破線から右側がＩＰコア１０００である。
【０００５】
図１１において、テストベンチ１０１０は、検証対象のＩＰコア１０００に対してフレームデータ１０１５を与える。これはＩＰコア１０００への入力となる。図１１において、テストベンチ１０１０は、検証対象のＩＰコア１０００よりフレームデータ１０１６を受け取る。これは検証対象のＩＰコア１０００からの出力となる。テストベンチ１０１０は、ＩＰコア１０００からの出力データのフレームと出力の期待値照合を行い、ＩＰコア１０００の動作を検証する。
【０００６】
ＬＳＩ設計時に、既に設計されている機能ブロックとして上述のようなＩＰコアをＬＳＩに組み込んだ場合、ＬＳＩに組み込んだ後にＬＳＩ全体の機能検証を行う必要がある。しかしながら、従来では、ＬＳＩの機能を検証するテストベンチを構築するためには、上述のようなＩＰコア１０００のテストベンチ１０１０や、テストパタン１０２０をそのまま流用することは出来ない場合がほとんどであった。またＩＰコアのみの機能検証を行うにしてもテストベンチ１０１０やテストパタン１０２０を利用する上で不具合が生じることがあった。その理由は、テストベンチ１０１０、テストパタン１０２０などは、ＩＰコア１０００を設計したときに、他のＬＳＩの内部でのＩＰコア１０００の機能を検証するために設計、開発されているためである。新たに設計されたＬＳＩ全体の検証環境の構築をするには、テストベンチ１０１０の機能から必要な機能をＬＳＩ全体の検証環境に組み込むか、最初からテストベンチを構築する必要がある。しかしながら、このようなテストベンチの構築は開発期間や開発コストを増大させるという問題を引き起こしていた。
【０００７】
上述のようなＬＳＩの機能を検証する背景技術は非特許文献１乃至４に記載されている。
【非特許文献１】日経マイクロデバイス2003年1月号、日経ＢＰ社発行、pp146-149
【非特許文献２】日経マイクロデバイス 2003年2月号、日経ＢＰ社発行、pp133-136
【非特許文献３】日経マイクロデバイス 2003年3月号、日経ＢＰ社発行、pp126-130
【非特許文献４】”Ｒｅｕｓｅ Ｍｅｔｈｏｄｏｌｏｇｙ Ｍａｎｕａｌ” ｔｈｉｒｄ ｅｄｉｔｉｏｎ, 2002, Ｋｌｕｗｅｒ Ａｃａｄｅｍｉｃ Ｐｕｂｌｉｓｈｅｒｓ. ISBN 1-4020-7141-8. pp239-263
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述のように、従来のＩＰコアでは、ＩＰコアを利用する際にその機能検証にかける時間が増大してしまうという問題があった。
【課題を解決するための手段】
【０００９】
本発明の機能検証方法では、半導体集積回路内で要求された機能を実行することが可能な第１の機能ブロックを用意する工程と、前記第１の機能ブロックと実質的に同一の構成を有する検証対象となる第２の機能ブロックを用意する工程と、前記第１の機能ブロックによって前記第２の機能ブロックの機能を検証する工程を有している。この方法により第２の機能ブロックの機能検証を行うための検証期間が短縮される。
【００１０】
さらに、前記第１の機能ブロックと前記第２の機能ブロックは互いに接続され、前記第１の機能ブロックで生成したテスト用のデータを第２の機能ブロックに入力する工程と、該テスト用データに基づいた前記第２の機能ブロックの出力データに基づいて、前記第２の機能ブロックの機能を検証する工程とを有することか可能である。このような工程により第２の機能ブロックの機能検証が第１の機能ブロックにより確実に行われる。
【００１１】
さらに、前記第１および第２の機能ブロックはデータ通信を行う機能ブロックであるとすることができる。この構成によりデータ通信の機能を検証することが可能となる
【００１２】
さらに、前記第１および第２の機能ブロックを用意する工程は、前記第１および第２の機能ブロックをＲＴＬにより記述する工程とすることが可能である。ＲＴＬによる記述により容易に第１および第２の機能ブロックを用意することが可能となる。
【００１３】
また、本発明の機能検証方法は、第１の機能ブロックでテスト用のフレームを生成する工程と、前記テスト用のフレームを前記第１の機能ブロックと実質的に同一の構成を有する第２の機能ブロックに入力する工程と、前記テスト用のフレームに基づいて前記第２の機能ブロックが出力する出力データに基づいて前記第２の機能ブロックの機能を検証する工程とを有する。この方法により第２の機能ブロックの機能検証を行うための検証期間が短縮される。
【００１４】
さらに、前記第１の機能ブロックでテスト用のフレームを生成する工程は、前記第１の機能ブロックのレジスタから前記テスト用のフレームに対応するデータを読み出す工程と、前記データに基づいてフレームを組み立てる工程とを有するとすることが可能である。この工程によりレジスタに設定する値を変えることで異なるテスト用のフレームとすることが可能である。
【発明の効果】
【００１５】
本発明により、半導体集積回路の機能ブロック（ＩＰコア）の機能検証に要する時間を短縮することが可能である。
【発明を実施するための最良の形態】
【００１６】
以下、図面を用いて本発明の実施の形態について詳細に説明する。なお、図面中、同一の構成要素に関しては同一の参照符号を付して説明する。この発明のＬＳＩ設計では、まず、ハードウェア記述言語（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ、以下ＨＤＬと称す）と呼ばれるプログラミング言語を用いて、論理合成が可能なレベルまで記述するＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ：）でＬＳＩ回路を記述し、論理設計する。次に、論理検証装置を用いて、各ブロックレベル、１チップレベルで、ＲＴＬ記述で設計された回路記述（以下、ＲＴＬ記述と称す）の機能検証が行われるものとする。つまりこの実施の形態で説明されるＩＰコアはその機能ブロックの中身としてＲＴＬ記述された複数のレジスタや組み合わせ回路を有するものである。
【００１７】
図1は本発明の実施の形態に関するＩＰコア１００を模式的に表した図である。このＩＰコア１００は、上述のとおりＲＴＬ記述により設計されており、ＬＳＩ回路が形成されるチップ内でのある要求された機能を実現する機能ブロックに対応している。この実施の形態によるＩＰコア１００は、その回路内に、機能検証を実行するテスト部１１０が実装されている。テスト部１１０の詳細は後述する。つまり本発明のＩＰコア１００の設計の段階で、ＩＰコア１００内にテストベンチの機能の（あるいはその一部）に相当する回路が含まれている。つまり、ＩＰコア１００の回路を記述するＲＴＬ記述内に、このテスト部１１０に対応する記述が含まれることでＩＰコア１００が用意される。
【００１８】
具体的にはこの実施の形態のテスト部１１０は、ＩＰコア１００の機能を検証する際にＩＰコア１００へ送信するテスト用のデータを設定するためのレジスタ群、テストデータ生成ブロックなどを有している。このテスト部１１０についての詳細は後述する。
【００１９】
なお、テスト部１１０が検証可能なＩＰコア１００の機能は、ＩＰコア１００が機能ブロックとして実行する機能の基本的な機能に関するものである。ＩＰコア１００が組み込まれたＬＳＩ全体の機能検証は他のテストベンチによって行われる。また、ＩＰコア１００が過去に組み込まれたＬＳＩ全体の機能検証に関する部分等は、このテスト部１１０には含まれない。
【００２０】
このように形成されたＩＰコア１００に関して機能検証を行う動作について以下に説明する。図２は本発明の実施の形態のＩＰコア１００の機能検証を行う際の構成を示す図である。図２に示されるように、この実施の形態では同一構成のＩＰコア１００が２つ互いに接続されている。図２に示された構成ではＲＴＬ記述された第１のＩＰコア１００ａ（図２、破線より左側）は第２のＩＰコア１００ｂの機能を検証するテストベンチとして用いられている。一方、ＲＴＬ記述された第２のＩＰコア１００ｂ（図２、破線より右側）はＩＰコア１００の本来の機能を実行する機能ブロックとして動作している。
【００２１】
つまり、ＩＰコア１００ａは図１に示したＩＰコア１００に実装されたテスト部１１０を用いた検証動作に用いられている。ＩＰコア１００ａは、ＩＰコア１００ｂの機能検証用テストベンチ、あるいはＬＳＩ全体のテストベンチの一部として動作している。したがって、ＩＰコア１００ａは、最終的なＬＳＩ全体の動作の一部の機能を実施するものではない。一方、ＩＰコア１００ｂはＬＳＩ内での機能ブロックとして動作するので、基本的にＩＰコア１００ｂが単独で動作することはない。ＩＰコア１００ｂには用途に従って他の回路機能、例えばメモリ機能の様なフレームデータの蓄積を行う機能、あるいはフレーム処理機能等が付加されている。図２に示すユーザ設計回路２０１は、この付加回路を表している。
【００２２】
上述のように、このテストベンチ用のＩＰコア１００ａは、ＩＰコア１００ｂのみの基本機能検証を行うためのテストベンチとしては単独でも使用可能である。一方、ＬＳＩ全体のテストベンチ内に組み込まれて、ＬＳＩ全体の機能検証時にＬＳＩのテストベンチの一部としても動作が可能である。これはＩＰコア１００に組み込まれているテスト部１１０がＩＰコア１００の基本機能を検証するためのテスト部１１０であるためである。なお、この実施の形態で図２に示したＩＰコア１００ｂはデータ通信を行う回路である。より詳細にはイーサネット（登録商標）などのようにデータをフレーム単位で通信する場合の通信インターフェイス回路であり、フレームデータを送信、受信する機能を実行するものである。
【００２３】
図３は図２に示した構成をより詳細に示したものである。以下図３を用いて、本発明の検証方法に関わるこのフレームデータの送受信の機能を検証する際の動作について説明する。図３において、ＩＰコア１００ａではテストベンチとして動作する部分に関わる構成が主に示されており、ＩＰコア１００ｂでは通常のフレームデータの送受信動作時に関わる構成が主に示されている。ＩＰコア１００ａおよび１００ｂは基本的には同一のＲＴＬ記述に基づいて設計される同一の回路である。ただし、図３では説明を分かりやすくするため、ＩＰコア１００ｂ内のテスト部１１０と対応する構成は枠のみ示され、その詳細は説明しないものとする。
【００２４】
図３に示すようにＩＰコア１００ａとＩＰコア１００ｂはそれぞれ送信ポート３０１ａ、３０１ｂ、受信ポート３０２ａ、３０２ｂを有している。ＩＰコア１００ａの送信ポート３０１ａはＩＰコア１００ｂへ、後述するテストフレームなどのフレームデータ３０３を送信する。ＩＰコア１００ｂの送信ポート３０１ｂは、ＩＰコア１００ｂの出力データに相当するフレームデータ３０４を、テストベンチ用のＩＰコア１００ａへと送信する。ＩＰコア１００ａの受信ポート３０２ａはＩＰコア１００ｂから送信されてきたフレームデータ３０４を受信するためのポートである。ＩＰコア１００ｂの受信ポート３０２ｂはＩＰコア１００ａから送信されてきたフレームデータ３０３を受信するためのポートである。
【００２５】
ＩＰコア１００ａはレジスタ群３０５、テストフレーム生成ブロック３０６、送信フレームの履歴情報ブロック３０７ａ、送信データパスブロック３０８ａ、受信データパスブロック３０９ａ、受信フレーム履歴情報ブロック３１０ａを有している。またＩＰコア１００ａには機能検証時のテストフレームの生成要求信号３１１と、通常のフレームデータ入力信号３１２とが与えられる。
【００２６】
レジスタ群３０５は後述の図６に示される各種レジスタの集合である。テストフレーム生成ブロック３０６は、テストフレームの生成要求があった時（テストフレームの生成要求信号３１１が与えられた時）にテスト用のフレームを生成する部分である。送信フレーム履歴ブロック３０７ａは、ＩＰコア１００ａが送信したフレームデータ３０３の履歴情報を蓄積する。送信データパスブロック３０８ａは、ＩＰコア１００ｂに送信するフレームデータ３０３のフォーマットを整えることを目的として配置される。受信データパスブロック３０９ａは、受信したフレーム３０４から必要な情報を取り出すことを目的として配置される。受信フレーム履歴ブロック３１０ａは、受信フレーム３０４の履歴情報を蓄積する。ここでＩＰコア内でレジスタ群３０５およびテストフレーム生成ブロック３０６を有している部分が、図１におけるテスト部１１０に相当するブロックである。
【００２７】
次に、このテスト部１１０（レジスタ群３０５、およびテストフレーム生成ブロック３０６）からテストフレームデータが生成され、ＩＰコア１００ｂの検証のためにデータが送受信される動作について説明する。図７（ａ）〜（ｃ）はこの、テストフレームデータの送信に関しての、各段階での動作を表した概略図である。
【００２８】
なお、この実施の形態では、テストベンチ機能を有する回路（ＩＰコア１００ａ）と機能ブロック（ＩＰコア１００ｂ）との間とでやり取りされるデータの基本単位は上述のとおりフレームである。図４は１０ギガビットイーサネット（登録商標）フレームを例にした一般的なフレームフォーマットを表している。
【００２９】
図４に示すようにフレーム４００は、プリアンブルフィールド（Ｐｒｅａｍｂｌｅ：ＰＡ）、ＳＦＤ（Ｓｔａｒｔ  Ｆｉｅｌｄ  Ｄｅｌｉｍｉｔｅｒ）フィールド、宛先アドレスフィールド（Ｄｅｔｅｒｍｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ：ＤＡ）、送信元フィールド（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ：ＳＡ）、レングスタイプフィールド（Ｌｅｎｇｔｈ  Ｔｙｐｅ：ＬＴ）、データフィールド（ＤＡＴＡ）、ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）フィールドから構成されている。
【００３０】
ＰＡフィールドはフレームの先頭を表すフィールドであり、ＳＦＤフィールドは有効データの開始部分を示すフィールドである。ＤＡフィールド、ＳＡフィールドはそれぞれ宛先、送信元を表すフィールドであり、ＬＴフィールドはフレーム中のデータまたは種類を表すフィールドである。またＤＡＴＡフィールドはデータの内容を、ＦＣＳフィールドは正しいフレームデータであることをチェックするためのフィールドである。データのやり取りはこのようなフレーム単位で行われるが、イーサネット（登録商標）を例にすればＤＡフィールド長は可変であるため、全体のフレームサイズが常に一様であるとは限らない。
【００３１】
図５は、図４に示すフォーマットに基づいた本発明の実施の形態におけるテストフレーム５００のフォーマットを示している。図５におけるテストフレーム５００のフォーマットは、図３のテストフレーム生成ブロック３０６で生成されるテストフレーム５００である。図５にはこのテストフレーム５００とレジスタ群３０５との関係も示されている。図５に示すレジスタ群３０５とテストフレーム５００の関係は、レジスタ群３０５の各レジスタに保持されているパターンがテストフレーム５００のＤＡ、ＳＡ、ＤＡＴＡフィールドとして構成されることを示している。
【００３２】
まずこの実施の形態では、テストベンチの機能を実行するＩＰコア１００ａに対してテストフレームの生成要求信号３１１が与えられる。この生成要求信号３１１に基づいてレジスタ群３０５に設定されているレジスタ値が読み出される。ここで読み出されるレジスタ値は、基本的にはＩＰコア１００が設計された時点で予め定められたものであり、フレーム単位でデータを送受信する際の送受信に関わる機能を検証するための基本的なテスト用のデータである。（図７（ａ）参照）
【００３３】
ここで図６は、テストフレーム５００の生成に用いる上述のレジスタ群３０５の構成を示す図である。レジスタ６０１〜６０８はそれぞれテストフレームのＤＡフィールド、ＳＡフィールド、ＤＡＴＡフィールドに相当するテスト用のデータ（ビットパタン）を設定するレジスタである。レジスタ６０９はレジスタ６０１〜６０８で指定される具体的なビットパタン以外のフレームの属性（エラー挿入の有無など）を指定するレジスタである。またレジスタ６１０はテストフレームの生成要求信号３１１を受け付けるレジスタである。
【００３４】
レジスタ６１０にフラグとなる値が書き込まれることによりレジスタ６０１〜６０８、６０９の設定に基づいたテストフレーム５００の生成が開始される。このテストフレーム５００の作成はレジスタ６０１〜６０８および６０９に保持されていたデータを基にしてテストフレーム生成ブロック３０６にて行われる。（図７（ｂ）参照）
【００３５】
その後、図３に示す送信データバスブロック３０８ａ、送信ポート３０１ａを介して生成されたテストフレーム５００がＩＰコア１００ａからＩＰコア１００ｂにフレームデータ３０３（テストフレーム５００）として送信される。（図７（ｃ）参照）。
【００３６】
この送信されたテストフレーム５００に基づいた出力データをＩＰコア１００ｂがフレームデータ３０４として出力する。このフレームデータ３０４はＩＰコア１００ａによって受信される。このフレームデータ３０４は、その後、出力データの期待値と比較されることにより、ＩＰコア１００ｂの機能の検証が行われる。つまりテストフレーム５００にと出力されたフレームデータ３０４に基づいて、フレーム単位での送受信が正確に行えたかどうかがチェックされる。なおこの実施の形態では出力の期待値を保持するレジスタ群はＩＰコア１００ａ内に設けられてはいないが、レジスタに保持される値なので、ＩＰコア１００ａ内にテストフレーム生成用のレジスタ群３０５とは別に期待値レジスタ群を設けることも可能である。この場合、ＩＰコア１００ａ内にて、ＩＰコア１００ｂの基本機能検証（この実施の形態ではフレーム単位の導通チェック）を行うことも可能である。
【００３７】
図８は、図３におけるＩＰコア１００ａを用いて生成できる検証用のテストフレームの例を示した図である。フレーム８０１は通常フレームであり、データフィールドは可変である。フレーム８０２はポーズコントロールフレームを示している。ポーズコントロールフレームとは、接続された相手側デバイス（図３ではＩＰコア１００ｂ）に対してフレーム生成を抑制するために使用されるフレームである。相手側デバイスがフレーム生成を抑制する期間は、フレームのＰＲＭフィールド領域に指定された数値により決定される。８０３はＶＬＡＮフレームを表している。このフレームは通常フレームにＶＬＡＮ（仮想ＬＡＮ）タグと呼ばれるフィールドを追加したフレームである。
【００３８】
図８に示したような、この実施の形態で生成可能なテストフレームは、上述のように予めレジスタ群３０５に保持されているものであるが、レジスタ群３０５がＩＰコア１００内に設けられていれば、ＲＴＬ記述において必要に応じてそのレジスタの内容を書き換えることが可能である。よって、レジスタ設定により，フレームの種類、サイズ、エラー挿入の有り無しなどのバリエーションを持ったフレーム生成をすることができる。
【００３９】
このように本発明では、テストフレーム生成機能を内蔵したＩＰコア１００をテストベンチ機能が実行できるように、同一構成の他のＩＰコア１００と接続する。このことにより新たなテストベンチを構築することなく、基本的な機能検証を実行することが可能となる。このため、テストベンチ構築にかかる工数を削減することができ、開発期間の短縮化が可能となる。この実施の形態では、レジスタ群３０５に値を書き込むという方法で、バリエーションのあるフレーム生成をすることが可能となる。
【００４０】
言い換えれば、本発明のＩＰコア１００は、第１の機能ブロック（ＩＰコア１００ａ）に出力データの期待値を比較するブロックなどを伴うことにより一種の機能検証装置として動作する。そして、本発明の機能検証装置では、第１の機能ブロックであるテストベンチ（ＩＰコア１００ａ）は、検証対象となる第２の機能ブロック（ＩＰコア１００ｂ）と同一の構成を有している。そして、この機能検証装置を用いた本発明による機能検証方法では、まず半導体集積回路内である機能を実行する検証対象となる第２の機能ブロック（ＩＰコア１００ｂ）を用意する。さらにこの第２の機能ブロック（ＩＰコア１００ｂ）と同一の構成を有する検証装置となる第１の機能ブロック（ＩＰコア１００ａ）を用意する。この第１の機能ブロックと第２の機能ブロックを用意する工程は、ＲＴＬ記述によってＩＰコアを設計することに対応し、第１および第２の機能ブロックはＨＤＬというプログラミング言語で用意されることとなる。この第１の機能ブロックと第２の機能ブロックは機能検証時に互いに接続される。その後、第１の機能ブロックで生成したテスト用のデータ（テストフレーム）を第２の機能ブロックに入力し、このテスト用データに基づいた第２の機能ブロックの出力データに基づいて、第２の機能ブロックの機能検証が行われる。このようにして第１の機能ブロックによって第２の機能ブロックの検証動作が行われることで、第１の機能ブロックが検証装置として利用でき、機能検証に要する開発期間を短縮することが可能となる。
【００４１】
図９は、本発明の効果を示すために、回路設計全体に占める機能検証期間の割合と、機能検証期間の中での検証の内訳の概要を示した図である。機能検証期間は設計期間Ｔ１全体の７０％を占めるといわれている。本発明のＩＰコア１００をテストベンチとして使うことにより、基本的なフレームの送受信機能の確認と、エラーを含むフレームの対処機能の確認までの機能検証をカバーすることができる。機能検証期間全体Ｔ２の中で、図９のＴ３に示される検証領域までを容易にテストすることが可能となる。
【００４２】
以上説明したように、本発明によれば、テストベンチ機能の一部を容易に実現することができる。そのため、機能検証の特に初期段階における期間短縮が可能となる。また機能の一部としてＩＰコアが、ＦＰＧＡやＡＳＩＣに組み込まれた場合においても、レジスタに所定の値を書き込むという方法で、機能検証にかかる工数を削減できる。このようなＩＰコアがフレーム単位でデータ通信が行われるデータ通信に関するＩＰコアに用いられた場合は容易にフレーム単位の導通チェックが可能となり、機能検証のための開発期間を短縮することが可能となる。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態に関わるＩＰコアの概略図である。
【図２】本発明のＩＰコアを用いてＩＰコアの機能検証を行う際の構成図である。
【図３】図２に示す構成を詳細に表した構成図である。
【図４】イーサネット（登録商標）におけるフレームのフォーマットを示す図である。
【図５】本発明の実施の形態のテストフレームのフォーマットを表す図である。
【図６】本発明の実施の形態のレジスタ群の構成を示す図である。
【図７】本発明の実施の形態のテストフレームの送信動作を示す図である。
【図８】本発明の実施の形態のテストフレームの他の例を示す図である。
【図９】本発明の実施の形態により短縮される開発期間を示す図である。
【図１０】従来のテストベンチとＩＰコアを示す図である。
【図１１】従来のテストベンチとＩＰコアを示す図である。
【符号の説明】
【００４４】
１００ａ、ｂ    ＩＰコア
１１０    テスト部
２０１    ユーザ設計回路
３０１ａ、ｂ    送信ポート
３０２ａ、ｂ    受信ポート
３０３、３０４    フレームデータ
３０５    レジスタ群
３０６    テストフレーム生成ブロック
３１１    生成要求信号
５００    テストフレーム
６０１-６０８    レジスタ
６０９    レジスタ
６１０    レジスタ
【図１】
2005321861.tif 000003
【図２】
2005321861.tif 000004
【図３】
2005321861.tif 000005
【図４】
2005321861.tif 000006
【図５】
2005321861.tif 000007
【図６】
2005321861.tif 000008
【図７】
2005321861.tif 000009
【図８】
2005321861.tif 000010
【図９】
2005321861.tif 000011
【図１０】
2005321861.tif 000012
【図１１】
2005321861.tif 000013