(57)【要約】【課題】ＬＳＩの検査および論理検証を、ＩＰのバージョンアップや追加等に対応させて効率的に行う。【解決手段】検査対象のＬＳＩに利用されているＩＰのコア番号及びバージョン番号とに対応付けられたテストパタン１１４の参照先がテストベクタテーブル１１５に登録されている。また、検査対象ＬＳＩ１０１には、利用されているＩＰのコア番号及びバージョン番号を登録したレジスタブロック１０６が備えられている。ＬＳＩテスタ１１１は、レジスタブロック１０６を参照して、利用されているＩＰのコア番号及びバージョン番号を獲得し、それによりテストベクタテーブル１１５を参照してテストパタン１１４を獲得する。ＬＳＩテスタ１１１は獲得したテストパタン１１４を用いてテストプログラム１１３を実行し、ＬＳＩ１０１のテストを行う。【選択図】図１
2006201088.tif 000002
【特許請求の範囲】
【請求項１】
集積回路に内蔵された情報レジスタから、その集積回路に内蔵された回路ブロックのテストパタンを特定するための情報を読み出す読み出し手段と、
前記情報レジスタから読み出された情報に応じたテストパタンを選択する選択手段と、
前記選択手段により選択されたテストパタンを前記集積回路により実行させる実行手段と
を有する集積回路の検査装置。
【請求項２】
前記テストパタンを特定するための情報は、前記回路ブロックの種類とそのバージョンとを示す情報であることを特徴とする請求項１に記載の集積回路の検査装置。
【請求項３】
前記回路ブロックの種類とそのバージョンとに関する情報と前記テストパタンとを関連付けるための関連付け情報を記憶する第１の記憶手段と、
前記関連づけ情報により前記回路ブロックの種類とそのバージョンとに関連付けられたテストパタンを記憶する第２の記憶手段と、
前記第１の記憶手段に前記関連づけ情報を登録するとともに、前記第１の記憶手段に登録された前記関連づけ情報により前記回路ブロックの種類とそのバージョンとに関連付けられるテストパタンを前記第２の記憶手段に登録する登録工程とをさらに備え、
前記選択手段は、前記第１の記憶手段に記憶された関連づけ情報により、前記レジスタから読み出された情報に関連づけられたテストパタンを選択することを特徴とする請求項２に記載の集積回路の検査装置。
【請求項４】
前記読み出し手段は、前記集積回路に代えて、当該集積回路の論理シミュレーション回路に内蔵された情報レジスタからその集積回路に内蔵された回路ブロックのテストパタンを特定するための情報を読み出し、前記実行手段は、前記集積回路に代えて、当該集積回路の論理シミュレーション回路により、選択されたテストパタンを実行させることを特徴とする請求項１乃至３のいずれか１項に記載の集積回路の検査装置。
【請求項５】
集積回路に内蔵された情報レジスタから、その集積回路に内蔵された回路ブロックのテストパタンを特定するための情報を読み出す読み出し工程と、
前記情報レジスタから読み出された情報に応じたテストパタンを選択する選択工程と、
前記選択工程により選択されたテストパタンを前記集積回路により実行させる実行工程と
を有する集積回路の検査方法。
【請求項６】
前記読み出し工程では、前記集積回路に代えて、当該集積回路の論理シミュレーション回路に内蔵された情報レジスタからその集積回路に内蔵された回路ブロックのテストパタンを特定するための情報を読み出し、前記実行工程では、前記集積回路に代えて、当該集積回路の論理シミュレーション回路により、選択されたテストパタンを実行させることを特徴とする請求項５に記載の集積回路の検査方法。
【請求項７】
請求項１乃至４に記載の集積回路の検査装置の備える読み出し手段により読み出される、当該集積回路の有する回路ブロックのテストパタンを特定するための情報を登録したレジスタを備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路、たとえばシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）の検査装置及び検査方法に関するものであり、特に回路ブロックの設計データすなわちＩＰ（Ｉｎｔｅｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ：設計資産）の種類とバージョン情報を有するレジスタを利用してシステムＬＳＩのテスト及び検証を行って検証の工数削減と信頼性向上を実現するための集積回路とその検査装置および検査方法に関する。
【背景技術】
【０００２】
従来ＬＳＩにバージョンを格納したレジスタを内蔵し、このレジスタをＬＳＩのバージョン確認、およびバージョンの管理のために使ってきた（特許文献１等参照）。
【０００３】
一方、近年ＬＳＩ開発において高集積化が進み、現在ではシステムを構成する多様な機能を１つのＬＳＩに集積したＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）開発が多く行われている。多様な機能を盛り込むＳＯＣの設計では製品ごとに新規設計を行うと多大な時間を費やすため、一度設計した回路ブロックについては、その設計資産（以下ＩＰと呼ぶ。）たとえば回路図等を再利用できる。したがって、１つのＬＳＩチップに複数のＩＰが内蔵される場合もある。そして通常、ＬＳＩに内蔵されるＩＰは、そのリリース時にそれを検証するテストパタンのセットとともに供給される。
【０００４】
ＩＰは、それぞれ独立して個々のＩＰの不具合修正や機能追加によりバージョンが変更されていく。そのためそれらを再利用しているＬＳＩは、個々のＩＰのバージョン変更に応じて頻繁に設計データが変更される。ＩＰのバージョン変更により、ＩＰとともに提供される検証のためのテストパタンのセットも変更されるので、それらを再利用しているＬＳＩのテスト（たとえば半導体テスタによる検査）及び検証（たとえば論理シミュレータによる検査）環境も変更する必要が生じる。
【特許文献１】特開２０００−１３７６７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように、ＩＰのバージョン変更とともに、それを利用したＬＳＩのテスト及び検証環境を頻繁に変更する必要があるが、テスト及び検証環境の変更は検査者がＩＰのバージョンに合わせて行う必要があった。このため、実際に検証対象のＬＳＩに内蔵しているＩＰと、そのＩＰをテストするためのテストパタンとの不整合が起こり、テストすべき項目に漏れが生じたり、擬似的なエラーが発生する、などという問題が起こる。テストすべき項目の漏れによりテスト及び検証の信頼性が損なわれ、擬似的なエラーを解決するための無駄な工数が生じることとなる。
【０００６】
本発明は上記従来例に鑑みてなされたもので、ＬＳＩの検証を行う際に、検証対象のＬＳＩの設計変更に対応した検証情報を利用することで、ＬＳＩの設計変更があっても、変更後の設計に対応した検証環境を利用することで、ＬＳＩ検証の工数削減と信頼性向上を実現できる集積回路とその検証装置及び検証方法を提供することを目的とする。
【０００７】
特に、検証対象のシステムＬＳＩに、それが内蔵しているＩＰの種類とバージョンの情報を保持するレジスタを内蔵し、そのレジスタに保持されたＩＰの種類とバージョンに応じて検証情報、たとえばテストパタンの選択を行うことで、内蔵しているＩＰとＩＰをテスト及び検証するためのテストパタンの不整合をなくし、テスト漏れを防止して、テスト及び検証の信頼性を向上させるとともに、擬似エラーの発生を防止し、その解決のための無駄な工数を削減して生産性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は以下の構成を備える。
【０００９】
集積回路の検査装置であって、集積回路に内蔵された情報レジスタから、その集積回路に内蔵された回路ブロックのテストパタンを特定するための情報を読み出す読み出し手段と、
前記情報レジスタから読み出された情報に応じたテストパタンを選択する選択手段と、
前記選択手段により選択されたテストパタンを前記集積回路により実行させる実行手段とを有する。
【００１０】
あるいは、集積回路であって、上記集積回路の検査装置の備える読み出し手段により読み出される、当該集積回路の有する回路ブロックのテストパタンを特定するための情報を登録したレジスタを備える。
【発明の効果】
【００１１】
本発明によれば、集積回路の頻繁な設計データの変更に応じた検証環境を用いてその検証を行うことにより、検査のための工数を削減して生産性を向上させ、また、生産物の信頼性を向上させることができるという効果を奏する。
【００１２】
さらに本発明によれば、集積回路に、その集積回路に内蔵している回路ブロックの種類とバージョンの情報を持つレジスタを内蔵し、集積回路の検査においては、そのレジスタに保持された情報を参照してテストパタンの選択を行うことで、検証対象の集積回路とテストパタンとの不整合を防止してテスト漏れを防止でき、検査の信頼性が向上する。
【００１３】
また、検査対象の集積回路とテストパタンとの不整合がなくなるので、不整合による擬似エラーの発生がなくなり、解決のための無駄な工数が削減でき、生産性を向上できる。
【００１４】
また、本発明の集積回路の検査装置及び検査方法は、集積回路に対応するテストパタンを選択するシーケンスを有しているので、集積回路に利用されている回路ブロックのバージョン変更や、回路ブロック自体の追加や入れ替え、削除などがあったとしても、検査の操作者が検査環境を変更する必要がない。すなわち、操作者は、集積回路の検査を、そのバージョンにかかわらず共通の環境で行えるために、検査環境等を変更するための工数が削減でき、生産性を向上させることができる。
【００１５】
また検査対象の集積回路に用いられている回路ブロックの種類とバージョンの情報を検査対象の集積回路のレジスタで持つことで、集積回路の設計のフェーズに関わらず、レジスタに保持された情報を参照して検査を行うことができる。
【発明を実施するための最良の形態】
【００１６】
［第１実施形態］
＜検査対象ＬＳＩの構成＞
添付の図１乃至図８を参照して本発明の好適な実施形態を説明する。図１に本発明の一実施形態として、テスタ及び検証装置の構成を示す。なお、この明細書では、半導体テスタで行われる集積回路チップの検査をテストと呼び、半導体そのものではなく論理シミュレータなどで行われる集積回路の検査を検証と呼ぶ。また、これらをまとめて検査と呼ぶ。
【００１７】
図１において、ＬＳＩ１０１は、テスト対象のシステムＬＳＩであり、このシステムＬＳＩにはデータバス、アドレスバスなどからなるバス１０２を介して以下の回路ブロックが接続されている。すなわちこれら回路ブロックのＩＰが利用されている。なお、ＩＰとは上述のとおり回路ブロックそのものではなく、その設計データ等の設計資産を指すが、本実施形態では回路ブロックそのものをＩＰと呼ぶ場合もある。もちろん図１の構成は一例に過ぎない。
（１）ＣＰＵ１０３（バージョン０．０）
（２）ブロックＡ１０４（バージョン０．１）
（３）ブロックＢ１０５（バージョン０．０）。
【００１８】
レジスタブロック１０６は、本発明の構成要素であるＩＰの種類とバージョンを示す情報を格納するレジスタ群（レジスタブロック）である。レジスタブロック１０６に含まれる各レジスタ１０６ａには、各回路ブロックのＩＰの種類とバージョンを示す情報が格納される。ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ、）テスト用の入出力端子１０７は、ＬＳＩテスタ１１１でレジスタブロック１０６を読み出す手段として利用される。ＪＴＡＧはＩＥＥＥ１１４９．１で規格化されており、集積回路のロジック部周辺にレジスタを配し、その入出力端子及びレジスタを介してロジック部に対してテストパターンに従った信号を入力し、それに対する出力信号をレジスタおよび入出力端子を介してモニタするバウンダリスキャンテスト等を可能とする。
【００１９】
このように、検査対象となるシステムＬＳＩ１０１には、利用されているＩＰの種類とバージョンのデータが、内蔵するレジスタブロック１０６に登録されている。このレジスタブロック１０６へのデータの登録は、たとえばＬＳＩの設計時に決定されたＩＰの種類とバージョンを示すデータを固定的に出力可能な回路が、ＬＳＩ１０１の製造時に一定のアドレスが割り当てられたレジスタブロック１０６として形成されることで行われる。このようにすれば、論理合成の段階でレジスタにＩＰの種類とバージョンのデータを示す値が登録されるために、論理シミュレータで回路の検証を行う場合にも、ＬＳＩに利用されているＩＰの種類とバージョンのデータを参照できる。また、ＬＳＩ製造時も、ＬＳＩに利用されているＩＰの種類とバージョンのデータを登録するために余計な工程を行う必要がない。
【００２０】
ＩＰの種類（コア番号）とバージョン情報（バージョン番号）を持ったレジスタブロック１０６に含まれる各レジスタの仕様の一例として、図５の仕様を定義する。レジスタ１０６ａは１６ビット構成であり、下位８ビットがコア番号５０２の値、上位８ビットがバージョン番号５０１の値を示す。アクセスの属性（５０４）はソフトウェアで書き換えることができないようにリードオンリーにする。これは、ＬＳＩ設計時に読み出しのみ可能なレジスタとして設計しておくことで実現できる。図１のシステムＬＳＩ１０１は、ＩＰコアとしてＣＰＵ（バージョン０．０）、ブロックＡ（バージョン０．１）、ブロックＢ（バージョン０．０）を利用しているので、ＣＰＵバージョン０．０の情報を持つレジスタ、ブロックＡバージョン０．１の情報を持つレジスタ、ブロックＢバージョン０．０の情報を持つ３つのレジスタを用意する。３つのレジスタの名前をそれぞれＩＤＮＵＭ１、ＩＤＮＵＭ２、ＩＤＮＵＭ３とすると、ＩＤＮＵＭ１にはＣＰＵ（コア番号１）バージョン０．０（バージョン番号０）を示す値０ｘ００＿００（１６進表記）が、ＩＤＮＵＭ２にはブロックＡ（コア番号１）バージョン０．１（バージョン番号１）を示す値０ｘ０１＿０１（１６進表記）が、ＩＤＮＵＭ３にはブロックＢ（コア番号２）バージョン０．０（バージョン番号０）を示す値０ｘ００＿０２（１６進表記）がそれぞれ与えられる。これらレジスタには、任意のアドレスを割り当てる。ただし割り当てられたレジスタのアドレスはＬＳＩテスタ１１１にも通知されて保持される。もちろんこれらレジスタのアドレスを一定のアドレス範囲に割り当てておいてもよい。こうすれば、ＬＳＩテスタ１１１に対するレジスタアドレスの通知は不要となる。これらレジスタのアドレス領域は連続な領域とし、アドレスをバイト単位で割り付けるとすると、ＩＤＮＵＭ１のアドレスがアドレスＡｄｄｒであれば、ＩＤＮＵＭ２のアドレスはＡｄｄｒ＋２、ＩＤＮＵＭ３のアドレスはＡｄｄｒ＋４となる。これらのレジスタＩＤＮＵＭ１，ＩＤＮＵＭ２，ＤＮＵＭ３により１つのレジスタブロック１０６が構成され、システムバス１０２に接続されている。もちろん、ＩＰを利用した回路ブロックの数が増えれば、その数に応じてレジスタの数も増加する。
【００２１】
＜ＬＳＩ検査システムの構成＞
ＬＳＩテスタ１１１は、システムＬＳＩ１０１をテストするテスト環境を有する。ドライバ１１２はＬＳＩのピンのドライバであり、ＪＴＡＧの入出力端子１０７に接続される。テストプログラム１１３は、ドライバの制御及びテストパタンの選択や実行命令が含まれる。テストパタン１１４は、たとえばコンピュータ１２０に、ファイル名等により特定して読み出し可能に格納されている。テストパタン１１４としては、テスト対象のＬＳＩに使用されている全てのＩＰに対するテストパタンが含まれる。そして、ＬＳＩテスタ１１１により選択されたテストパタンが、ダウンロードされる。テストベクタテーブル１１５は、テスト対象のＬＳＩに含まれるＩＰの種類およびバージョンの情報と、テストパタンとを関連づけたテーブルである。ＬＳＩテスタ１１１は、レジスタブロック１０６から読み出したデータを保存する領域１１６ａや、図４に例示するテストベクタテーブル１１６ｂを保存する領域を含むメモリ１１６を備えている。このほか、メモリ１１６には、読み込んだテストパタンも必要なだけ格納される。
【００２２】
ＬＳＩテスタ１１１は、テストベクタテーブル１１５およびレジスタブロック１０６から読み出したＩＰの種類及びバージョン情報に従ってテストパタン１１４を選択してダウンロードする。そしてプログラム１１３を実行する。プログラム１１３は、ダウンロードされたテストパタン１１４に従って、ドライバ１１２および入出力端子１０７を介して信号をＬＳＩ１０１に入力し、それに対して出力される信号を、入出力端子１０７およびドライバ１１２を介して受信して格納する。そして入力信号と出力信号とが所定のパターンであれば、検査対象のＬＳＩは良品であると判定して、その旨を示す信号を出力する。もちろん不良の場合にもその旨を示す信号を出力する。
【００２３】
＜ＬＳＩ検査前処理＞
次に図２を参照して、ＬＳＩテスタ１１１によるＬＳＩ１０１の検査手順を説明する。検査に先立って、回路ブロックとして用いられているＩＰの種類のそれぞれに対して固有のコア番号を、各ＩＰの各バージョンに対して固有のバージョン番号を割り当てる。この作業は、たとえば新たな回路ブロックのＬＳＩへの追加、既存の回路ブロックのバージョンアップ等が行われた場合に行われる。この割り当てはマニュアルによって行っても良いが、新たな回路ブロックのＬＳＩへの追加や、既存の回路ブロックのバージョンアップを示す情報をＬＳＩテスタ１１１やコンピュータ１２０に入力し、所定のプログラムを実行することで、固有のコア番号およびバージョン番号を割り当てることもできる。前処理工程で作成される構成表の一例を図３に示す。図３の構成表には、検査対象のシステムＬＳＩが保有するＩＰの種類とバージョン情報とがまとめられている。この図３の構成表に基づいて図４のテストベクタテーブル１１６ｂが作成される。
【００２４】
図３においては、ＩＰの種類３０１ごとに各々コア番号３０３が、各種類のＩＰのバージョン３０２ごとにバージョン番号３０４が割り当てられ、各ＩＰのバージョン毎に、それぞれに対応するテストパタンの情報３０５（たとえば端末名やディレクトリ等のファイルの所在とファイル名など）が関連づけられている。図３は図１に対応した構成表である。システムＬＳＩ１０１に利用されているＩＰとして、ＣＰＵ、ブロックＡ、ブロックＢが存在する。コア番号３０３はＩＰの種類３０１と一対一に対応する任意の番号であるが、この例ではＣＰＵ、ブロックＡ、ブロックＢそれぞれのコア番号は０，１，２である。また、ＣＰＵのバージョンは０．０であり、対応するバージョン番号は０とされている。バージョン番号３０４は、ＩＰの種類３０１のバージョン３０２と一対一に対応する任意の番号である。他のＩＰもこの規則に従いバージョン番号が与えられている。ブロックＡ、ブロックＢのバージョンはそれぞれ０．１および０．０であり、バージョン番号はそれぞれ１，０である。なお、ブロックＡに関しては、古いバージョン０．０とそのバージョン番号０も表に残っている。しかし、バージョンアップ後に古いバージョンのＩＰが使用されることはないのであれば、古いバージョン、たとえばブロックＡのバージョン０．０については、その項目を削除してもかまわない。
【００２５】
さらに、コア番号とバージョン番号の組み合わせに対応するテストパタンを特定する情報、たとえばテストパタンのファイルの名前や所在情報が、コア番号とバージョン番号の組み合わせと一対一に関連づけて登録されている。テストパタンが複数本ある場合は一本にまとめて一対一に対応させる。前処理工程ではこうして図３に示す構成表が作成される。
【００２６】
そしてこの図３の構成表にしたがって、ＬＳＩの設計段階でレジスタブロック１０６に登録するコア番号及びバージョン番号が決定され、検査対象となり得るＬＳＩの論理合成が行われたり、あるいはＬＳＩが製造される。上述したレジスタＩＤＮＵＭ１，ＩＤＮＵＭ２，ＤＮＵＭ３の値も、この図３の構成表に基づいて与えられる。
【００２７】
＜ＬＳＩ検査手順＞
まず図２のステップＳ２０１において、図３の構成表に基づいて図４に例示するテストベクタテーブル１１６ｂが作成される。テストベクタテーブル１１６ｂでは、コア番号とバージョン番号の組み合わせと、テストパタンとが一意に対応付けられている。図４は、コア番号とバージョン番号とをインデックスとする二次元配列でテストパタンを対応付けたテーブルの例である。第一要素（第１インデックス）として図３のコア番号３０３を用い、第二要素（第２インデックス）としてバージョン番号３０４を用いて、二次元配列ＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］を定義する。コア番号はＩＰの種類と一対一対応し、バージョン番号はＩＰのバージョンと一対一対応している。そのため、ＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］は一意に定まる。そしてたとえばＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］として、当該コア番号及びバージョン番号を有する回路ブロックのためのテストパタンの参照先、たとえばファイル名とその格納場所を示すデータを登録しておく。そしてさらにその参照先にテストパタンを格納しておくことで、コア番号およびバージョン番号とテストパタンとを一意に対応付けている。
【００２８】
なおステップＳ２０１は、ＬＳＩ検査工程の一部としてＬＳＩテスタ１１１により行われるのではなく、前述した前処理の一部として行われる。その場合には、図２にかかわらず、ＬＳＩの検査手順はステップＳ２０２から開始され、ステップＳ２０４で終了する。そしてもし検査対象のＬＳＩが多数あれば、ステップＳ２０２から繰り返されることになる。しかしながら、図３の構成表が電子的に作成され、コンピュータ読み取り可能なデータとして構成されていれば、その表を用いて図４のテストベクタテーブル１１６ｂを作成することは、コンピュータ等で容易に実現できる。したがって、ステップＳ２０１を検査工程の一部としてＬＳＩテスタ１１１により行うこともできる。その場合の手順を図６に示す。ステップＳ６０１ではコア（すなわちＩＰ）が追加されているか判定する。判定基準は、たとえば電子化された図３の構成表に、新規であることを示す情報を付加しておけばよい。そしてその情報を参照して新規コアであることを判定する。その情報は、テストベクタテーブル作成後に、新規でないことを示す情報に書き替えておく必要がある。新規コアであれば、テストベクタテーブルに登録されている既存のコアのコア番号＋１の値を式コアに割り当てて、テストベクタテーブルに新たなコアとして登録する（Ｓ６０２）。そして、バージョン番号については、０として登録する。そして、そのコアに対応するテストパタンの所在情報も登録する（Ｓ６０３）。一方、新規コアがなければバージョンアップが合ったか判定する（Ｓ６０４）。この判定基準にも電子化した構成表をステップＳ６０１と同じ容量で利用できる。新バージョンがあれば、そのコアの新たなバージョン番号をテストベクタテーブルに登録する。そして、そのバージョンに対応するテストパタンの構成情報も登録する（Ｓ６０５）。このようにしても、テストベクタテーブルを構成できる。
【００２９】
次にステップＳ２０２では、ＬＳＩテスタ１１１で、テストベクタテーブルを参照するために用いるレジスタブロック１０６の各レジスタ値をＬＳＩ１０１から読み出す。この工程の実施形態として、レジスタブロック１０６の値を読み出すための仕掛けは、ＬＳＩテスタ１１１によるテストではＪＴＡＧ規格（ＩＥＥＥ１１４９．１）を用いる。実際に読み出す工程はテストプログラム１１３中のテストシーケンスの中に組み込まれている。読むべきレジスタの数は、図３の表に従ってあらかじめ決定されているが、たとえばレジスタの値などによって動的に決定されるように構成することもできる。読み出したレジスタの値は、ＩＰごとに、コア番号とバージョン番号とを組にしたＩＰバージョンデータ１１６ｃとしてメモリ１１６に保存する。
【００３０】
このようにして、検査対象のＬＳＩに含まれるレジスタブロック１０６から、そのＬＳＩ利用されているＩＰのコア番号およびバージョン番号を得ることができる。
【００３１】
次にステップＳ２０３では、読み出したコア番号およびバージョン番号に応じてテストパタンを選択する。ステップＳ２０３では、テストステップＳ２０２で保存したコア番号およびバージョン番号をインデックスとして、図４のテストベクタテーブルを検索し、テストパタンの所在情報を得る。得られた所在情報により特定されるテストパタンをテストのために選択し、コンピュータ１２０から読み出してＬＳＩテスタ１１１にロードする。
【００３２】
次にステップＳ２０４では、選択したテストパタンを用いてテストプログラム１１３を実行する。これによって検査対象のＬＳＩ１０１の検査が遂行される。
【００３３】
＜テストシーケンスの例＞
図２の手順を実現するためのテストシーケンスの例を図７に示す。図７の手順はＬＳＩテスタ１１１により実行される。同図においてステップＳ７０１のプロセスで、リセットやクロック供給などの検査対象のＬＳＩ１０１のイニシャライズを行う。ステップＳ６０２のプロセスで、レジスタブロック群１０６のアドレス領域の先頭アドレスＡｄｄｒから最終アドレス（図１の例ではＡｄｄｒ＋４）までハーフワード単位（本例ではレジスタブロック１０６の各レジスタ長）でアクセスしつつ、ステップＳ７０３〜ステップＳ７０６のプロセスを繰り返し処理する。アドレスの増加単位はレジスタの仕様に依存するので可変であるが、レジスタブロック６０４の全てのレジスタのアドレスを処理する。
【００３４】
ステップＳ７０３のプロセスで、アクセス先のレジスタに対してハーフワードリードアクセスし、読み出した値を変数ＩＤ１１６ａに格納する。ステップＳ７０４のプロセスで、変数ＩＤ１１６ａの上位８ビットをマスクして、下位８ビットを抽出し、変数コアに格納する。変数コアはメモリ１１６に確保されたＩＰバージョンデータ１１６ｃの一部である。ステップＳ７０５のプロセスでは、メモリ１１６の変数“ＩＤ”１１６ａの内容を８ビット右シフトして、残り８ビットを抽出し、変数“バージョン”に格納する。変数“バージョン”もメモリ１１６に確保されたＩＰバージョンデータ１１６ｃの一部である。変数“コア”および変数“バージョン”は、たとえば検査対象のＬＳＩに利用されているＩＰごとにペアとして確保されている。そして、読み出したレジスタの数に対応して、保存されたコア番号およびバージョン番号の数も別途メモリ１１６に保存しておく。これにより、テストパタンを用いてテストすべきコアの数を管理できる。
【００３５】
なお図７の例では、読み込むべきレジスタの数はあらかじめ決められている。これに対して、たとえばレジスタブロック１０６のうち、有効な値が登録された最後のレジスタの次のアドレスのレジスタのコア番号をＦＦとしておき、コア番号がＦＦのレジスタを読み込んだ場合に、有効な値のレジスタの読み込みを終了したものと判断することもできる。
【００３６】
次にステップＳ７０６のプロセスで、変数コアおよび変数バージョンの値をインデックスとして図４のテストベクタテーブル１１６ｂを参照し、変数ＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］で一意に定められるテストパタンを選択する。すなわち、コア番号とバージョン番号とをインデックスとしてテストベクタテーブル１１６ｂから特定されるたとえばファイル名とその所在情報（ディレクトリ情報等）を用いて、コンピュータ１２０に対して該当するファイルを要求し、そのファイルをダウンロードする。
【００３７】
ステップＳ７０７では、テストプログラム１１３を実行してテストパタンの内容に応じてドライバ１１２によりＬＳＩ１０１に対して信号を印加し、テストパタンを用いた試験を行う。そして、たとえばその入力信号に対する出力信号のパタンを基準パタンと比較して、一致していれば良品、不一致であれば不良品としてその判定結果を出力する。その出力を基に、不良品は修理され、あるいは廃棄されることになる。
【００３８】
以上の工程より、内蔵しているＩＰのコアとそのバージョンからテストパタンを選択でき、不整合をなくすことができる。なお、図２のステップＳ２０３が図７のステップＳ７０３−Ｓ７０５に、ステップＳ２０４がステップＳ７０６に、ステップＳ２０５がステップＳ７０７に相当する。
【００３９】
＜具体例＞
図１のシステムＬＳＩ１０１の場合では、ＬＳＩテスタ１１１は、図７のステップＳ７０２（すなわち図２のステップＳ２０３−Ｓ２０５）のプロセスの繰り返し処理を次のように実行する。
（１回目）アドレスＡｄｄｒで指定されるレジスタの値を読み出し、その値に基づいて図４のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［０］［０］に対応する所在情報で示されるテストパタンＣＰＵ＿ＴＥＳＴＰＡＴ０を選択し、テストを実行する。
（２回目）アドレスＡｄｄｒ＋２で指定されるレジスタの値を読み出し、その値に基づいて図４のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［１］［１］に対応する所在情報で示されるテストパタンＢｌｏｃｋＡ＿ＴＥＳＴＰＡＴ１を選択し、テストを実行する。
（３回目）アドレスＡｄｄｒ＋４で指定されるレジスタの値を読み出し、その値に基づいて図４のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［２］［０］に対応する所在情報で示されるテストパタンＢｌｏｃｋＢ＿ＴＥＳＴＰＡＴ０を選択し、テストを実行する。
【００４０】
一方、図８に、システムＬＳＩ１０１のＣＰＵのバージョンが０．２に、ブロックＡのバージョンが０．２にアップした構成図を示す。その構成における構成表を図９（Ａ）に、テストベクタテーブルを図９（Ｂ）に示す。図９（Ａ）に示すとおり、ＣＰＵのバージョン番号が２に、ブロックＡのバージョン番号も２になる。
【００４１】
この構成表を本発明を適用すると、ＬＳＩの設計時あるいは製造時において、ＬＳＩのレジスタＩＤＮＵＭ１にはＣＰＵバージョン０．２を示す値０ｘ０２＿００（１６進表記）が、ＩＤＮＵＭ２にはブロックＡバージョン０．２を示す値０ｘ０２＿０１（１６進表記）が登録される。ＩＤＮＵＭ３は変わらない。そしてＬＳＩテスタ１１１は、図７のステップＳ７０２（すなわち図２のステップＳ２０３−Ｓ２０５）のプロセスの繰り返し処理を次のように実行する。
（１回目）アドレスＡｄｄｒで指定されるレジスタの値を読み出し、その値に基づいて図９（Ｂ）のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［０］［２］に対応する所在情報で示されるテストパタンＣＰＵ＿ＴＥＳＴＰＡＴ２を選択し、テストを実行する。
（２回目）アドレスＡｄｄｒ＋２で指定されるレジスタの値を読み出し、その値に基づいて図９（Ｂ）のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［１］［２］に対応する所在情報で示されるテストパタンＢｌｏｃｋＡ＿ＴＥＳＴＰＡＴ２を選択し、テストを実行する。
（３回目）アドレスＡｄｄｒ＋４で指定されるレジスタの値を読み出し、その値に基づいて図９（Ｂ）のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［２］［０］に対応する所在情報で示されるテストパタンＢｌｏｃｋＢ＿ＴＥＳＴＰＡＴ０を選択し、テストを実行する。
【００４２】
以上の工程に示す通り、ＬＳＩテスタ１１１により実行されるテストシーケンスは変更する必要がなく、図１と図８のＬＳＩのテスト及び検証で共通に使用することを可能にしている。
【００４３】
さらに、図１０として、図８の構成にＩＰであるブロックＣバージョン０．１が追加されたシステムＬＳＩの構成図を示す。その構成における構成表を図１１（Ａ）に、テストベクタテーブルを図１１（Ｂ）に示す。図１１（Ａ）に示すとおり、図８の各回路ブロックについてはバージョンは変わらないが、ブロックＣが追加されている。
【００４４】
この構成表を本発明を適用すると、ＬＳＩの設計時あるいは製造時において、ＬＳＩのレジスタＩＤＮＵＭ１−ＩＤＮＵＭ３の値は図８の構成と変わらない。加えて、レジスタブロック１０６に、ブロックＣバージョン０．１の情報を持つレジスタＩＤＮＵＭ４が追加される。ＩＤＮＵＭ４には、図１１（Ａ）の構成表と図５のレジスタ仕様に従い、コア番号３，バージョン１を意味する値０ｘ０１０３を持たせる。アドレスは、ＩＤＮＵＭ３に連続した領域のＡｄｄｒ＋６が与えられる。したがってＬＳＩテスタ１１１は、図７のステップＳ７０２（すなわち図２のステップＳ２０３−Ｓ２０５）のプロセスの繰り返し処理を、レジスタブロック１０６の最終アドレスをＡｄｄｒ＋６として、繰り返し処理を次のように実行する。
（１回目）アドレスＡｄｄｒで指定されるレジスタの値を読み出し、その値に基づいて図１１（Ｂ）のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［０］［２］に対応する所在情報で示されるテストパタンＣＰＵ＿ＴＥＳＴＰＡＴ２を選択し、テストを実行する。
（２回目）アドレスＡｄｄｒ＋２で指定されるレジスタの値を読み出し、その値に基づいて図１１（Ｂ）のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［１］［２］に対応する所在情報で示されるテストパタンＢｌｏｃｋＡ＿ＴＥＳＴＰＡＴ２を選択し、テストを実行する。
（３回目）アドレスＡｄｄｒ＋４で指定されるレジスタの値を読み出し、その値に基づいて図１１（Ｂ）のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［２］［０］に対応する所在情報で示されるテストパタンＢｌｏｃｋＢ＿ＴＥＳＴＰＡＴ０を選択し、テストを実行する。
（４回目）アドレスＡｄｄｒ＋６で指定されるレジスタの値を読み出し、その値に基づいて図１１（Ｂ）のテストベクタテーブルＴｅｓｔＶｅｃｔｏｒ［３］［１］に対応する所在情報で示されるテストパタンＢｌｏｃｋＣ＿ＴＥＳＴＰＡＴ１を選択し、テストを実行する。
【００４５】
以上の工程に示す通り、ＬＳＩテスタ１１１により実行されるテストシーケンスは変更する必要がなく、図１と図１０のＬＳＩのテスト及び検証で共通に使用することを可能にしている。
【００４６】
［変形例］
なお本実施形態では、検査対象がＪＴＡＧを用いた半導体集積回路であるので、単体のＬＳＩのみならず、基板に実装された複数の集積回路を検査対象として、本実施形態を適用することができる。その場合であっても、各集積回路に含まれる回路ブロックのテストパターンを特定するための情報、たとえば回路ブロックの種類はバージョンを示す情報を、それが登録されたレジスタから読み出して、本実施形態と同様の要領で検査を行うことができる。
【００４７】
また、本実施形態ではＪＴＡＧを採用した半導体集積回路の検査装置について説明したが、もちろんＪＴＡＧを採用していない半導体集積回路についても、本実施形態と同様にして、内蔵する回路ブロックの種類やバージョンに適したテストパタンを用いた検査を実現できる。
【００４８】
また本実施形態ではＬＳＩテスタや論理シミュレータがテストベクタテーブルを有しているが、テストパタン１１４を、ＩＰのコア番号及びバージョン番号をキーとするデータベースに登録しておくことで、テストベクタテーブルを持たずに済む。この場合には、レジスタブロック１０６から読み込んだコア番号及びバージョン番号をキーとして、コンピュータ１２０のテストパタンデータベースにクエリを発行する。そしてそれに対する応答としてテストパタンそのもの或いはテストパタンに対するベクタ情報を得る。ベクタ情報を得た場合には、ＬＳＩテスタ１１１あるいは検証システム１０８はそれに基づいてテストパタンそのものを読み出し、実施形態の容量で検査を行う。
【００４９】
＜効果＞
以上の構成及びテストシーケンスにより、本発明では、頻繁な設計データの変更によるテスト環境の変更を防ぎ、工数削減と信頼性向上を実現できる。
【００５０】
さらに、システムＬＳＩに「ＬＳＩに内蔵しているＩＰの種類とバージョン」の情報を持つレジスタを内蔵し、テストのシーケンスでそのレジスタの値を読み出し、読み出した値、つまりＩＰの種類とバージョンに応じてテストパタンの選択を行う。その結果以下の効果を生み出す。
（１）内蔵しているＩＰとＩＰをテストするためのテストパタンの不整合がなくなるので、テスト漏れがなくなり、テストの信頼性が向上する。
（２）内蔵しているＩＰとＩＰをテスト及び検証するためのテストパタンの不整合がなくなるので、不整合による擬似エラーの発生がなくなり、解決のための無駄な工数が削減できる。
（３）ＩＰのバージョンが変わっても、バージョンに応じてテストパタンを選択するシーケンスを有しているのでテスト環境を変更する必要がない。つまり、変更前のシステムＬＳＩのテストとシステムＬＳＩのテストを共通の環境で行え、テストを変更するための工数が削減できる。
（４）ＩＰの追加や削除があっても、ＩＰの種類に応じてテストパタンを選択するシーケンスを有しているのでテスト環境を変更する必要がない。つまり、変更前のシステムＬＳＩのテストとシステムＬＳＩのテストを共通の環境で行え、テスト及び検証を変更するための工数が削減できる。
（５）ＩＰの種類とバージョンという情報をレジスタで持つことで、ＬＳＩに内蔵しているＩＰの種類とバージョンの情報管理をレジスタで行うため、ＬＳＩ設計のフェーズ（ＲＴＬ検証、ゲート検証、ＬＳＩテスタ、ボード評価）に関わらず情報の参照を可能にする。
【００５１】
＜第２実施形態＞
図１２に本発明に係る第２実施形態を示す。本実施形態では、検査対象はシステムＬＳＩの半導体チップそのものではなく、論理合成された回路をシミュレータにより実行することで実現される論理モデルである。すなわち、検証システム１０８により、論理シミュレータにより実現された検査対象であるＬＳＩの論理モデルの検証が行われる。
【００５２】
図１２において、ＬＳＩ論理モデル１０１’は、検査対象のシステムＬＳＩのシミュレータにより実現される。図１２においては半導体装置のように記載しているが、コンピュータにより論理回路のシミュレーションを行うことにより実現される。しかしながら、論理的には半導体と等価な回路であるので、入出力端子などのインターフェースのハードウエア等を除けば、第１実施形態の検査対象のＬＳＩと論理的には同様に検証可能である。この論理モデルでは、データバス、アドレスバスなどからなるバス１０２’を介して以下の回路ブロック、すなわちＩＰが接続されている。
（１）ＣＰＵ１０３’（バージョン０．０）
（２）ブロックＡ１０４’（バージョン０．１）
（３）ブロックＢ１０５’（バージョン０．０）。
【００５３】
レジスタブロック１０６’は、本発明の構成要素である、ＩＰの種類とバージョンを示す情報を格納するレジスタ群（レジスタブロック）である。レジスタブロック１０６’に含まれる各レジスタ１０６ａ’には、各回路ブロックのＩＰの種類とバージョンを示す情報が格納される。
【００５４】
また、検証システム１０８は、システムＬＳＩ１０１の論理モデルをシミュレーションにより検証する。バスファンクションモデル１０９は、シミュレーションによる検証でレジスタブロック１０６’を読み出す手段として利用される。シミュレーションによる検証では直接バスを制御してレジスタのアクセスを行う。検証プログラム１１０は、バスファンクションモデル１０９の制御およびテストパタン１１４の選択や検証の実行を行う。
【００５５】
このように、検証対象となるシステムＬＳＩ１０１の論理モデルにおいて、利用されているＩＰの種類とバージョンのデータが内蔵するレジスタブロック１０６’に登録されている。このレジスタブロック１０６’へのデータの登録は、たとえばＬＳＩの設計時に決定されたＩＰの種類とバージョンを示すデータを固定的に出力可能な回路が、ＬＳＩ１０１のシミュレーション時に一定のアドレスが割り当てられたレジスタブロック１０６’としてシミュレーションされることで行われる。このようにすれば、論理合成の段階でレジスタにＩＰの種類とバージョンのデータを示す値が登録されるために、論理シミュレータで回路の検証を行う場合にも、ＬＳＩに利用されているＩＰの種類とバージョンのデータを参照できる。
【００５６】
ＩＰの種類（コア番号）とバージョン情報（バージョン番号）を持ったレジスタブロック１０６’に含まれる各レジスタの仕様は、第１実施形態の図５と同様である。
【００５７】
＜検証システムの構成＞
検証システム１０８は、システムＬＳＩの論理モデル１０１’を検証する検証環境を有する。検証プログラム１１０は、ドライバの制御及びテストパタンの選択や実行命令が含まれる。テストパタン１１０は、たとえばコンピュータ１２０に、ファイル名等により特定して読み出し可能に格納されている。テストパタン１１４としては、検証対象のＬＳＩに使用されている全てのＩＰに対するテストパタンが含まれる。そして、検証システム１０８により、選択されたテストパタンがダウンロードされる。テストベクタテーブル１１５は、検証対象のＬＳＩの論理モデル１０１’に含まれるＩＰの種類およびバージョンの情報と、テストパタンとを関連づけたテーブルであり、第１実施形態と同様の構成を有する。検証システム１０８は、レジスタブロック１０６’から読み出したデータを保存する領域１１７ａや、図４に例示するテストベクタテーブル１１７ｂ（図４では参照番号が１１６ｂとなっているが、本実施形態では参照番号は１１７ｂである。）を保存する領域を含むメモリ１１７を備えている。このほか、メモリ１１７には、読み込んだテストパタンも必要なだけ格納される。
【００５８】
検証システム１０８は、テストベクタテーブル１１５およびレジスタブロック１０６’から読み出したＩＰの種類及びバージョン情報に従ってテストパタン１１４を選択してダウンロードする。そしてプログラム１１０を実行する。プログラム１１０は、ダウンロードされたテストパタン１１４に従って、バスファンクションモデル１０９によりシミュレーションされるバスを介して信号をＬＳＩの論理モデル１０１’に入力し、それに対して出力される信号を、バスを介して受信して格納する。そして入力信号と出力信号とが所定のパターンであれば、検証対象の論理モデルは良品であると判定して、その旨を示す信号を出力する。もちろん不良の場合にもその旨を示す信号を出力する。
【００５９】
＜論理モデル検証前処理＞
次に図２を参照して、検証システム１０８によるＬＳＩの論理モデル１０１’の検証手順を説明する。検証に先立って、回路ブロックとして用いられているＩＰの種類のそれぞれに対して固有のコア番号を、各ＩＰの各バージョンに対して固有のバージョン番号を割り当てる。この作業は、たとえば新たな回路ブロックのＬＳＩへの追加、既存の回路ブロックのバージョンアップが行われた場合に行われる。この割り当てはマニュアルによって行っても良いが、新たな回路ブロックのＬＳＩへの追加や、既存の回路ブロックのバージョンアップを示す情報を検証システム１０８やコンピュータ１２０に入力し、所定のプログラムを実行することで、固有のコア番号およびバージョン番号を割り当てることもできる。前処理工程で作成される構成表の一例を図３に示す。構成表は第１実施形態と同様である。
【００６０】
そしてこの図３の構成表にしたがって、ＬＳＩの設計段階でレジスタブロック１０６’に登録するコア番号及びバージョン番号が決定され、検証対象となり得るＬＳＩの論理合成が行われたり、あるいはＬＳＩが製造される。レジスタブロック１０６’のレジスタＩＤＮＵＭ１，ＩＤＮＵＭ２，ＤＮＵＭ３の値も、この図３の構成表に基づいて与えられる。
【００６１】
＜論理モデル検証手順＞
検証システム１０８においては、図３の表に基づいて、図２のステップＳ２０１において、図４に例示するテストベクタテーブル１１７ｂが作成される。テストベクタテーブル１１７ｂでは、コア番号とバージョン番号の組み合わせと、テストパタンとが一意に対応付けられている。図４は、コア番号とバージョン番号とをインデックスとする二次元配列でテストパタンを対応付けたテーブルの例である。第一要素（第１インデックス）として図３のコア番号３０３を用い、第二要素（第２インデックス）としてバージョン番号３０４を用いて、二次元配列ＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］を定義する。コア番号はＩＰの種類と一対一対応し、バージョン番号はＩＰのバージョンと一対一対応している。そのため、ＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］は一意に定まる。そしてたとえばＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］として、当該コア番号及びバージョン番号を有する回路ブロックのためのテストパタンの参照先、たとえばファイル名とその格納場所を示すデータを登録しておく。そしてさらにその参照先にテストパタンを格納しておくことで、コア番号およびバージョン番号とテストパタンとを一意に対応付けている。
【００６２】
なおステップＳ２０１は、ＬＳＩの論理検証工程の一部としてではなく、前述した前処理の一部として行われる。その場合には、図２にかかわらず、検証手順はステップＳ２０２から開始され、ステップＳ２０４で終了する。そしてもし検証対象のＬＳＩが多数あれば、ステップＳ２０２から繰り返されることになる。しかしながら、図３の構成表が電子的に作成され、コンピュータ読み取り可能なデータとして構成されていれば、その表を用いて図４のテストベクタテーブル１１６ｂを作成することは、コンピュータ等で容易に実現できる。したがって、ステップＳ２０１を検証工程の一部として行うこともできる。特に論理シミュレータを用いた検証の場合には、ＬＳＩを製造する工程は存在せず、ＬＳＩの論理モデルの構築もコンピュータにより実現可能であるために、設計−検証を一連の手順の中で実行することは、生産性向上のために非常に効果的である。テストベクタテーブルをコンピュータにより作成する場合には、図６の手順が利用できる。
【００６３】
次にステップＳ２０２では、検証システム１０８で、テストベクタテーブルを参照するために用いるレジスタブロック１０６’の各レジスタ値をＬＳＩの論理モデル１０１’から読み出す。この工程の実施形態として、レジスタブロック１０６’の値を読み出すための仕掛けは、検証システム１０８による検証ではバスファンクションモデル１０９を用いる。実際に読み出す工程はテストプログラム１１０中の検証シーケンスの中に組み込まれている。読むべきレジスタの数は、図３の表に従ってあらかじめ決定されているが、たとえばレジスタの値などによって動的に決定されるように構成することもできる。読み出したレジスタの値は、ＩＰごとに、コア番号とバージョン番号とを組にしてメモリ１１７に保存する。
【００６４】
このようにして、検証対象のＬＳＩに含まれるレジスタブロック１０６’から、そのＬＳＩ利用されているＩＰのコア番号およびバージョン番号を得ることができる。
【００６５】
次にステップＳ２０３では、読み出したコア変数およびバージョン変数値に応じてテストパタンを選択する。ステップＳ２０３では、テストステップＳ２０２で保存したコア変数およびバージョン変数をインデックスとして、図４のテストベクタテーブルを検索し、テストパタンへの参照情報を得る。得られた参照情報により特定されるテストパタンを検証のために選択し、コンピュータ１２０から読み出して検証システム１０８にロードする。
【００６６】
次にステップＳ２０４では、選択したテストパタンを用いて検証プログラム１１０を実行する。これによって検証対象のＬＳＩの論理モデル１０１’の検証が遂行される。
【００６７】
＜検証シーケンスの例＞
図２の手順を実現するための検証シーケンスの例を図７に示す。図７の手順は検証システム１０８により実行される。同図においてステップＳ７０１のプロセスで、リセットやクロック供給などの検証対象のＬＳＩの論理モデル１０１’のイニシャライズを行う。ステップＳ６０２のプロセスで、レジスタブロック群１０６’のアドレス領域の先頭アドレスＡｄｄｒから最終アドレス（図１の例ではＡｄｄｒ＋４）までハーフワード単位（すなわち本例ではレジスタブロック１０６’の各レジスタ長）でアクセスしつつ、ステップＳ７０３〜ステップＳ７０６のプロセスを繰り返し処理する。アドレスの増加単位はレジスタの仕様に依存するので可変であるが、レジスタブロック６０４の全てのレジスタのアドレスを処理する。
【００６８】
ステップＳ７０３のプロセスで、アクセス先のレジスタに対してハーフワードリードアクセスし、読み出した値を変数ＩＤ１１７ａに格納する。ステップＳ７０４のプロセスで、変数ＩＤ１１７ａの上位８ビットをマスクして、下位８ビットを抽出し、変数コアに格納する。変数コアはメモリ１１７に確保されている。ステップＳ７０５のプロセスでは、変数ＩＤ１１７ａの内容を８ビット右シフトして、残り８ビットを抽出し、変数バージョンに格納する。変数バージョンもメモリ１１７に確保されている。変数コアおよび変数バージョンは、たとえば検証対象のＬＳＩに利用されているＩＰごとにペアとして確保されている。そして、読み出したレジスタの数に対応して、保存されたコア変数およびバージョン変数の数を、別途メモリ１１７に保存しておく。これにより、テストパタンを用いて検証すべきコアの数を管理できる。
【００６９】
なお図７の例では、読み込むべきレジスタの数をあらかじめ決めてある。これに対して、たとえばレジスタブロック１０６’のうち、有効な値が登録された最後のレジスタの次のアドレスのレジスタのコア番号をＦＦとしておき、コア番号がＦＦのレジスタを読み込んだ場合に、有効な値のレジスタの読み込みを終了したものと判断することもできる。
【００７０】
次にステップＳ７０６のプロセスで、変数コアおよび変数バージョンの値をインデックスとしてテストベクタテーブル１１７ｂを参照し、変数ＴｅｓｔＶｅｃｔｏｒ［コア番号］［バージョン番号］で一意に定められるテストパタンを選択する。すなわち、コア番号とバージョン番号とをインデックスとしてテストベクタテーブル１１７ｂから特定されるたとえばファイル名とその所在情報（ディレクトリ情報等）を用いて、コンピュータ１２０に対して該当するファイルを要求し、そのファイルをダウンロードする。
【００７１】
ステップＳ７０７では、検証プログラム１１０を実行してテストパタンの内容に応じてＬＳＩの論理モデル１０１’に対して信号を印加し、テストパタンを用いた試験を行う。そして、たとえばその入力信号に対する出力信号のパタンを基準パタンと比較して、一致していれば良品、不一致であれば不良品としてその判定結果を出力する。その出力を基に、不良品は修理され、あるいは廃棄されることになる。
【００７２】
以上の工程より、内蔵しているＩＰのコアとそのバージョンからテストパタンを選択でき、不整合をなくすことができる。なお、図２のステップＳ２０３が図７のステップＳ７０３−Ｓ７０５に、ステップＳ２０４がステップＳ７０６に、ステップＳ２０５がステップＳ７０７に相当する。
【００７３】
図８及び図１０に示すように検査対象のＬＳＩの論理モデルの回路が変更された場合であっても、上述したように第１実施形態と同じ要領で、論理モデルの検証を実行することができる。
【００７４】
また、第１実施形態の変形例も本実施形態に適用することができる。また、本実施形態における論理モデルの検証における効果も第１実施形態に記載した効果と同様である。
【図面の簡単な説明】
【００７５】
【図１】検証対象のシステムＬＳＩとそのテスト装置を示すブロック図である。
【図２】テストまたは検証の工程を示す図である。
【図３】ＩＰの種類とバージョンに対応するテストパタンの表（構成表）の一例を示す図である。
【図４】ＩＰのコア番号とバージョン番号に対応するテストパタンを対応付けたテストベクタテーブルの一例を示す図である。
【図５】ＩＰの種類とバージョンの情報をレジスタ化したレジスタの仕様の一例を示す図である。
【図６】テストベクタテーブルを作成する手順の流れ図である。
【図７】レジスタ値からテストパタンを選択・実行するテストシーケンスの図である。
【図８】システムＬＳＩ（１０１）のＣＰＵのバージョンが０．２に、ブロックＡのバージョンが０．２にアップしたシステムＬＳＩの構成図である。
【図９】図８の構成に対応する構成表及びテストベクタテーブルを示す図である。
【図１０】システムＬＳＩ（１０１）にブロックＣが追加された構成図である。
【図１１】図１０の構成に対応する構成表及びテストベクタテーブルを示す図である。
【図１２】検証対象のシステムＬＳＩとそのテスト及び検証装置を示す図である。
【符号の説明】
【００７６】
１０１  検証対象のシステムＬＳＩ
１０２  システムバス。
１０３  システムバスに接続するＩＰであるＣＰＵ。
１０４  システムバスに接続するＩＰであるブロックＡ。
１０５  システムバスに接続するＩＰであるブロックＢ。
１０６  システムバスに接続するレジスタブロック。
１０７  ＪＴＡＧポート。
１０８  検証環境。
１０９  バスファンクションモデル。
１１０  検証用プログラム。
１１１  ＬＳＩテスト環境。
１１２  ドライバ部
１１３  ＬＳＩテスタ用プログラム。
１１４  テストパタン。
１１５  ＩＰのＣＯＲＥ番号とＶＥＲＳＩＯＮ番号に対応するテストパタンを対応付けたテーブル。
【図１】
2006201088.tif 000003
【図２】
2006201088.tif 000004
【図３】
2006201088.tif 000005
【図４】
2006201088.tif 000006
【図５】
2006201088.tif 000007
【図６】
2006201088.tif 000008
【図７】
2006201088.tif 000009
【図８】
2006201088.tif 000010
【図９】
2006201088.tif 000011
【図１０】
2006201088.tif 000012
【図１１】
2006201088.tif 000013
【図１２】
2006201088.tif 000014