(57)【要約】【課題】効率よく半導体集積回路を検証することができ、高品質で流用性の高いテストが可能なテストベンチを提供する。【解決手段】  ＡＳＩＣを検証するためのバスモデルを有するテストベンチにおいて、前記バスモデルが、ＡＳＩＣからの動作信号に基づいて複数の動作機能のどれを優先するかを決定する調停手段と、前記調整手段から送られてきた優先情報に基づいて動作機能を選択する動作機能選択手段と、動作トランザクションのタイミングの優先度を決定するタイミング調停手段と、前記タイミング調停手段から送られてきた情報に基づいて動作機能の動作タイミングを決定するタイミング選択手段とを備えた。【選択図】図２
2006018585.tif 000002
【特許請求の範囲】
【請求項１】
ＡＳＩＣを検証するためのバスモデルを有するテストベンチにおいて、
前記バスモデルが、
ＡＳＩＣからの動作信号に基づいて複数の動作機能のどれを優先するかを決定する調停手段と、
前記調整手段から送られてきた優先情報に基づいて動作機能を選択する動作機能選択手段と、
動作トランザクションのタイミングの優先度を決定するタイミング調停手段と、
前記タイミング調停手段から送られてきた情報に基づいて動作機能の動作タイミングを決定するタイミング選択手段と、
を備えていることを特徴とするテストベンチ。
【請求項２】
前記調停手段は、動作機能の動作情報を蓄積し、その蓄積された動作情報に基づいて前記動作機能選択手段に選択情報を送信することを特徴とする請求項１記載のテストベンチ。
【請求項３】
前記タイミング調停手段は、動作機能の動作情報を蓄積し、その蓄積された動作情報に基づいて前記タイミング選択手段に選択情報を送信することを特徴とする請求項１記載のテストベンチ。
【請求項４】
前記調停手段及び前記タイミング調停手段に動作機能選択の優先度及び前記タイミング選択手段の優先度を変更させる時間制御手段を備えていることを特徴とする請求項１ないし３のいずれか１項に記載のテストベンチ。
【請求項５】
前記時間制御手段に時間及び／又は調停情報を入力する入力手段を備えていることを特徴とする請求項４記載のテストベンチ。
【請求項６】
アービトレーションの切替条件に時間条件を追加し、ある一定時間ごとに、記憶された情報をもとにアービトレーションを切替、動作機能、タイミング変動の優先度を変更することを特徴とした請求項４記載のテストベンチ。
【請求項７】
バスモデルのアービトレーションを固定することを特徴とした請求項１ないし６のいずれか１項に記載のテストベンチ。
【請求項８】
バスモデルの記憶された動作情報、タイミング情報を出力することによりテストベンチの機能カバレッジを確認することを特徴とする請求項１ないし６のいずれか１項に記載のテストべンチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路検証技術に係り、特に、バスモデルを検証するためのテストベンチに関する。
【背景技術】
【０００２】
ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｅｄ  Ｉ．Ｃ．）やプリント基板等の論理回路を検証するための従来技術として、オペレータがシミュレーション時のテストパターン修正前後のシミュレーション結果を比較して検証する検証システムが提案されている（例えば、特許文献１を参照）。
【０００３】
また、複数の機能ブロックを組み込んだ半導体集積装置の検証についての従来技術として（例えば、特許文献２を参照）、テスト用プログラムであるテストベンチを用い、テスト用ブロックを機能ブロックに並置させてコンピュータシミュレーションすることが提案されている。
【特許文献１】特開平０６−０９６１５３号公報
【特許文献２】特開２００２−８３０１０公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１の開示技術は、論理回路の検証を対象としてはいるが、修正前テストパターンと修正後テストパターンを用いて検証するものであり、Ｖｅｒｉｌｏｇ等の言語で作成したテストベンチを用いてＡＳＩＣを検証するものとは、テストベンチのパターン作成について異なるものである。
【０００５】
また、特許文献２は、テスト用ブロックが機能ブロックに入出力される信号をチェックし、正常の場合、半導体集積回路装置全体としての動作をテストベンチによってチェックして、正常であるか否かを判断するものであり、テスト用プログラムによってＩＰそれ自体の動作検証を行って短時間で効率良く検証しようとするものであって、テスト用プログラム自体の生産性や再利用性を図るものではない。
【０００６】
一方、ＬＳＩ（大規模集積回路）は、動作速度は高速化し、微細加工技術の向上により多くの機能が、１つのＬＳＩに集積される方向にある。そのため、ＡＳＩＣを検証するテストベンチの技術向上、精度向上、生産性向上などが重要な課題となっている。
【０００７】
本発明は、このような背景に鑑みてなされたもので、その目的は、効率よく半導体集積回路を検証することができ、高品質で流用性の高いテストが可能なテストベンチを提供することにある。
【課題を解決するための手段】
【０００８】
前記目的を達成するため、第１の手段は、ＡＳＩＣを検証するためのバスモデルを有するテストベンチにおいて、前記バスモデルが、ＡＳＩＣからの動作信号に基づいて複数の動作機能のどれを優先するかを決定する調停手段と、前記調整手段から送られてきた優先情報に基づいて動作機能を選択する動作機能選択手段と、動作トランザクションのタイミングの優先度を決定するタイミング調停手段と、前記タイミング調停手段から送られてきた情報に基づいて動作機能の動作タイミングを決定するタイミング選択手段とを備えていることを特徴とする。
【０００９】
第２の手段は、第１の手段において、前記調停手段は、動作機能の動作情報を蓄積し、その蓄積された動作情報に基づいて前記動作機能選択手段に選択情報を送信することを特徴とする。
【００１０】
第３の手段は、第１の手段において、前記タイミング調停手段は、動作機能の動作情報を蓄積し、その蓄積された動作情報に基づいて前記タイミング選択手段に選択情報を送信することを特徴とする。
【００１１】
第４の手段は、第１ないし第３のいずれかの手段において、前記調停手段及び前記タイミング調停手段に動作機能選択の優先度及び前記タイミング選択手段の優先度を変更させる時間制御手段を備えていることを特徴とする。
【００１２】
第５の手段は、第４の手段において、前記時間制御手段に時間及び／又は調停情報を入力する入力手段を備えていることを特徴とする。
【００１３】
第６の手段は、第４の手段において、アービトレーションの切替条件に時間条件を追加し、ある一定時間ごとに、記憶された情報をもとにアービトレーションを切替、動作機能、タイミング変動の優先度を変更することを特徴とする。
【００１４】
第７の手段は、第１ないし第６のいずれかの手段において、バスモデルのアービトレーションを固定することを特徴とする。
【００１５】
第８の手段は、第１ないし第６のいずれかの手段において、バスモデルの記憶された動作情報、タイミング情報を出力することによりテストベンチの機能カバレッジを確認することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、効率よく半導体集積回路を検証することができ、高品質で流用性の高いテストが可能なテストベンチを提供することができる。
【発明を実施するための最良の形態】
【００１７】
前記課題を解決するために、検証対象のＡＳＩＣにバス接続されるバスモデルと各種設定を行うテストシナリオを別物として取り扱い、テストベンチの生産性や再利用性を向上させるとともに、複数のデータパスの存在するＡＳＩＣにおける同時動作の検証を行えるようにすることもできる。例えば、ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、Ｃ／Ｃ＋＋、Ｅ言語、又はＶｅｒａの言語を用いてコーディングされたテストベンチにおいて、前記ＡＳＩＣに種々のテスト動作を実行させるための指示を出すソフトウェア化されたテストシナリオと、前記ＡＳＩＣにバス接続されたＣＰＵを含むバス接続体のソフトウェア化されたバスモデルとを備え、前記テストシナリオと前記バスモデルとは、別個のファイル又は関数として作成し、前記バスモデルと前記テストシナリオとの間の通信をパラメータ又はフラグで行うように構成することもできる。
【００１８】
他方、バスモデルには、複数の動作機能をもちデータリード・データライトなどでも複数の動作機能（たとえコマンド情報が同じでも）を仕様上許されているものがある。この複数の機能を切り替えるために、従来では、テストシナリオでフラグを切り替えてテストしていた。このようなテストでは、テストシナリオで画一したテストになりがちで、シナリオの構成でも大きく変わる可能性がある。また、動作トランザクションのタイミング制約は、幅（ＭＩＮ−ＭＡＸなど）をもっており、ランダムでタイミング変動したり、固定されていたり、テストシナリオで設定したりしている。これも動作機能の切り替えと同様の問題が発生する可能性がる。
【００１９】
ＣＰＵモデル４は、図２のＣＰＵ２０をソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なＣＰＵ）であり、ＣＰＵモデル４もバス接続されたもの（ＨＤＤやメモリシステム等もＡＳＩＣにバス接続されたもの）の内の１つである。図１でバスモデル３は、ＡＳＩＣ１０にバス接続された、例えばＨＤＤをソフトウェアでモデル化したものである（図１のバスモデル３は図２のメモリシステム２２をソフトウェアで書いた仮想メモリシステムであっても良い）。テストシナリオ１は検証対象ＡＳＩＣ１０に種々の動作をさせるためのプログラムである。このようなテストベンチは、ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、Ｃ／Ｃ＋＋、Ｅ言語、Ｖｅｒａ等の言語を用いてコーディングされたものである。
【００２０】
ここで、ＡＳＩＣ５にはレジスタ（ＡＳＩＣの種々動作を司る機能）が内蔵されていて、このレジスタへテストシナリオからのアクセス又は指示によってＡＳＩＣが所望の動作を実行するのである。また、フラグは二値の信号で動作させるものであり、共有パラメータは多値信号で動作させるものである（例えば、３秒後にエラー信号を応答せよというような動作指示）。なお、テストシナリオ１とバスモデル３間に特に通信が必要なければ、共有パラメータやフラグ２はなくてもよい。テストシナリオ１とＣＰＵモデル４との間には、テストシナリオからのリード、ライトの指示しかないので、特に、共有パラメータ又はフラグを介在させていない。
【００２１】
そこで、バスモデル自体に動作機能切り替えのアービトレーション機能を追加し、バスモデル自体が、アービトレーション条件により自動で動作機能を切り替えたり、タイミング変動切り替えにアービトレーション機能を追加し、バスモデルが自動で切り替えて動作することにより、テストシナリオに依存する検証精度、検証品質部分を削減し、より安定した検証精度が得られるようにしたのが、本実施形態である。
【００２２】
＜第１の実施形態＞
以下、図面を参照し、本発明の実施形態について説明する。
【００２３】
図１はＡＳＩＣに接続されたテストベンチの概略構成を示すブロック図である。同図において、テストベンチ１００は、第１及び第２のテストシナリオ１１０，１２０、ＣＰＵバスモデル１３０、第１及び第２のＩ／Ｆバスモデル１４０，１５０、期待値関数群１６０、データ生成関数群１７０、及び共通Ｉ／Ｆバスモデル１８０を備え、ＡＳＩＣ２００はアービタ回路２１０を備えている。なお、図では第１及び第２のテストシナリオ１１０，１２０はテストシナリオ（１）、テストシナリオ（２）として示し、第１及び第２のＩ／Ｆバスモデル１４０，１５０はＩ／Ｆバスモデル（１）、Ｉ／Ｆバスモデル（２）として示す。テストシナリオ１１０，１２０はＡＳＩＣ２００に種々のテスト動作を実行させるための指示を出すソフトウェア化されたもので、ＣＰＵバスモデル１３０は、ＣＰＵをソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なＣＰＵ）であり、ＣＰＵバスモデル１３０もバス接続されたもの（ＨＤＤやメモリシステム等もＡＳＩＣにバス接続されたもの）の内の１つである。
【００２４】
ＡＳＩＣ２００にはレジスタ（ＡＳＩＣの種々動作を司る機能）が内蔵されていて、このレジスタへテストシナリオ１１０，１２０からのアクセス又は指示によってＡＳＩＣ２００が所望の動作を実行する。また、フラグは二値の信号で動作させるものであり、共有パラメータは多値信号で動作させるものである（例えば、３秒後にエラー信号を応答せよというような動作指示）。なお、テストシナリオ１１０，１２０とバスモデル３間に特に通信が必要なければ、共有パラメータやフラグ２はなくてもよい。テストシナリオ１１０，１２０とＣＰＵバスモデル１３０との間には、テストシナリオ１１０，１２０からのリード、ライトの指示しかないので、特に、共有パラメータ又はフラグを介在させていない。
【００２５】
第１及び第２のテストシナリオ１１０，１２０はそれぞれ第１及び第２のＩ／Ｆバスモデル１４０，１５０に対応したテストシナリオである。第１及び第２のテストシナリオ１１０，１２０はＣＰＵバスモデル１３０に対してそれぞれ起動をかけ、ＡＳＩＣ２００の設定及び動作起動を行う。また各Ｉ／Ｆの動作起動を各対応するテストシナリオが行う。
【００２６】
各Ｉ／Ｆの動作起動が設定されると、第１のＩ／Ｆバスモデル１４０及び第２のＩ／Ｆバスモデル１５０がそれぞれＡＳＩＣ２００に対して動作を開始する。ＡＳＩＣ２００は、アービタ回路部２１０によりそのときの優先度により、共通バスにバスアクセスする要求を選択し、選ばれたＩ／Ｆの要求に応じてバス動作を行う。
【００２７】
図２はＩ／Ｆバスモデルの内部構成を概念的に示すブロック図である。これはＩ／Ｆが異なったとしても概念は変わらないため１つ（図では第１のＩ／Ｆバスモデル１４０を例に取る。）で示している。図２中、機能アービタ１４１は動作機能１〜動作機能Ｎ（１４５−１〜１４５−Ｎ）のどれを優先するかを決定し、動作機能選択部１４２に選択情報を送る。動作機能選択部１４２は、その情報により動作機能１〜動作機能Ｎ（１４５−１〜１４５−Ｎ）のどれかを選択する。動作機能１〜動作機能Ｎは実際にＡＳＩＣ２００に対して動作すると、その動作したという情報を機能アービタ１４１に送る。機能アービタ１４１はその情報に基づいてアービトレーションを行い、動作機能選択部１４２に選択情報を送る。機能アービタ１４１は送られてきた情報を蓄積する。機能アービタ１４１、動作機能選択部１４２では、この動作を繰り返し、条件により選択する動作機能を順次変更していく。その際、アービトレーション条件は限定されない。また、タイミングアービタ１４３は、動作トランザクションのタイミング制約を仕様の幅で優先度を決定し、タイミング選択情報をタイミング選択部１４４に送る。タイミング選択部１４４は、動作機能１４５−１〜Ｎに動作タイミングを決定するパラメータを送る。動作機能１４５−１〜Ｎは、実際にそのタイミングでＡＳＩＣ２００に動作すると、動作したことをタイミングアービタ１４３に情報として送る。タイミングアービタ１４３は、その情報に基づいてアービトレーションを行い、またタイミング選択部１４４に選択情報を送る。タイミングアービタ１４３は送られてきた情報を蓄積する。タイミングアービタ１４３及びタイミング選択部１４４では、この動作を繰り返し、条件により選択するタイミングを順次変更していく。その際、アービトレーション条件は限定されない。そして機能アービタ１４１及び動作機能選択部１４２、並びにタイミングアービタ１４３及びタイミング選択部１４４のそれぞれ２つのアービトレーション結果の組合せにより、バスモデルの動作が確定しＡＳＩＣ２００に対して動作する。
【００２８】
この実施形態では、バスモデル（１４０）自体が動作した動作機能、タイミング変動を記憶し（前者は機能アービタ１４１が、後者はタイミングアービタ１４３がそれぞれ記憶し）、その情報をもとに、アービトレーション条件を切り換える（動作機能は動作機能選択部１４２が、タイミングはタイミング選択部１４４が切り換える）ので、効率よく、高品質の検証を行うことができる。このように構成したテストベンチ１００は、テストシナリオ１１０，１２０への依存が少ないことから、検証精度、品質を極力低下させずに、流用できるバスモデルでもある。
【００２９】
なお、図１では、バスモデルを３個、テストシナリオを２個図示しているが、これらの数が図１の構成に限定されるものではないことは言うまでもない。
【００３０】
＜第２の実施形態＞
第１の実施形態において、図１に示すように複数のバスモデルが並列動作するＡＳＩＣ２００に共有バスが存在する場合は、個々のテストシナリオの状態によりＡＳＩＣ２００内部の動作が変動してくる。この状態で動作している時間は、限られている可能性があり、コーナーケースになっている場合もある。そこで、この第２の実施形態では、アービトレーションの切り替え条件に時間条件を追加した。これにより、ある特定動作している状態で、動作機能、タイミング変動の優先度を切り替えることが可能になり、より効率よく検証精度を向上させることができる。
【００３１】
図３はこの第２の実施形態に係るＩ／Ｆバスモデルとテストシナリオとの構成を示すブロック図である。この図３では、Ｉ／Ｆバスモデル１４０には、時間制御部１４６が追加され、テストシナリオ１１０（第１のテストシナリオを例に取る。）は、機能アービタ固定部１１１、時間入力／アービタ情報入力部１１２、及びタイミングアービタ固定部１１３を含む。
【００３２】
図３において、時間制御部１４６にはテストシナリオ１１０から時間入力により特定の時間情報が送られる。Ｉ／Ｆバスモデル１４０では、時間制御部１４６が予め設定された時間が経過すると（予め設定された時刻になると）、機能アービタ１４１及びタイミングアービタ１４３に、テストシナリオ１１０から入力されるアービタ情報をそれぞれ送る。機能アービタ１４１及びタイミングアービタ１４３は、それぞれ送られたアビータ情報を起点にアービトレーションを行い、それぞれ動作機能選択部１４２及びタイミング選択部１４４に情報を送る。動作機能１４５１〜Ｎは動作機能した情報をそれぞれ機能アービタ１４１とタイミングアービタ１４３に送る。機能アービタ１４１及びタイミングアービタ１４３はそれぞれ情報の蓄積を行うが、時間制御される以前の蓄積情報とは別の蓄積情報を新規に作成し蓄積する。
【００３３】
上記動作を繰り返し、検証を行う。これによりＡＳＩＣ２００のある特定条件で新たなアービトレーションで検証の途中で切り替えることができ、検証効率を大幅に向上させることができる。
【００３４】
また、テストシナリオ１１０から機能アービタ固定部１１１から機能アービタ１４１に機能アービタ固定入力があると、Ｉ／Ｆバスモデル１４０の機能アービタ１４１は動作機能１〜Ｎの動作情報をアービトレーション条件から切り離し、いつも固定のアービトレーションを行うようになる。また、同様にタイミングアービタ固定入力がタイミングアービタ固定部１１３からあると、タイミングアービタ１４３は、いつも固定のアービトレーションをするようになる。
【００３５】
そして、前述のように各アービタ１４１，１４３が蓄積した動作情報を出力することにより、検証で実際に動作した情報が確認できるようになり、機能カバレッジとして情報提供を行うことができるようになる。
【００３６】
以上のように第１の実施形態によれば、テストベンチのバスモデルにおいて複数ある動作機能、タイミング変動の切替を、アービトレーション機能をもたせ、またバスモデルが動作した内容を記憶しその記憶された情報をもとにアービトレーションを切り替えることにより、効率よく検証することができ、高品質な流用性の高いバスモデルが提供できる。
【００３７】
また、第２の実施形態によれば、Ｉ／Ｆバスモデル１４０のアービトレーションの切替条件に時間条件を追加し、ある一定時間ごとに、機能アービタ１４１あるいはタイミングアービタ１４３記憶された情報にに基づいてアービトレーションを切り替え、動作機能、タイミング変動の優先度を変更し、より効率よく検証することが可能となる。これにより、コーナーケースの検証実施が期待でき、より高品質の検証が可能となる。
【００３８】
また、第２の実施形態によれば、Ｉ／Ｆバスモデル１４０のアービトレーションを固定することにより、条件限定（注力）した検証ができ、またシステムのパフォーマンス検証で、動作条件の限界などの確認が効率よく検証できる。
【００３９】
また、Ｉ／Ｆバスモデル１４０の記憶された動作情報、タイミング情報を出力することによりテストベンチの機能カバレッジを確認できるようになる。
【００４０】
また、ある限定条件で検証させるために、機能アービタ固定部１１１及びタイミングアービタ固定部１１３を設けることにより、すなわち、アービトレーションを固定する機能を追加することにより、限定条件での検証効率を向上させ、また、システムのパフォーマンスを検証する場合に、システムの動作条件を確認するのに役立つ検証バスモデルを提供できる。
【００４１】
さらに、動作機能選択部１４１及びタイミング選択部１４４を設け、動作機能選択情報及びタイミング選択情報を出力する機能をＩ／Ｆバスモデル１４０に持たせたので、バスモデルがどのような動作検証をしたかを機能カバレッジにより判断することが可能となり、効率よく検証することができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の第１の実施形態に係るＡＳＩＣに接続されたテストベンチの概略構成を示すブロック図である。
【図２】Ｉ／Ｆバスモデルの内部構成を概念的に示すブロック図である。
【図３】本発明の第２の実施形態に係るＩ／Ｆバスモデルとテストシナリオとの構成を示すブロック図である。
【符号の説明】
【００４３】
１００  テストベンチ
１１０，１２０  テストシナリオ
１１１  機能アービタ固定部
１１２  時間入力／アービタ情報入力部
１１３  タイミングアービタ固定部
１３０  ＣＰＵバスモデル
１４０，１５０  Ｉ／Ｆバスモデル
１４１  機能アービタ
１４２  動作機能選択部
１４３  タイミングアービタ
１４４  タイミング選択部
１４５  動作機能
１４６  時間ン制御部
１６０  期待値関数群
１７０  データ生成関数群
１８０  共通Ｉ／Ｆバスモデル
２００  ＡＳＩＣ
２１０  アービタ回路
【図１】
2006018585.tif 000003
【図２】
2006018585.tif 000004
【図３】
2006018585.tif 000005