(57)【要約】  【課題】検査対象の集積回路の規模を増大させることなく、高速で、検査内容の変更にも柔軟に対応することができる検査システムとその方法ならびに検査装置を提供する。  【解決手段】検査モードにおいて、制御部２０から集積回路１０に対して検査プログラムが供給され、この検査プログラムが集積回路１０のプロセッサ１１において実行される。そして、制御部２０からプロセッサ１１に対して所望の検査手順に応じた制御信号が出力されると、プロセッサ１１では、供給された検査プログラムに基づいてこの制御信号に応じた処理が行われる。これにより、回路ブロックに検査信号を入力してその処理動作を開始させる処理や、回路ブロックの出力結果を出力結果取得部６０に出力する処理が実行される。【選択図】      図１
2005077259.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに基づいた処理を実行するプロセッサを有した集積回路の検査システムであって、
入力される制御信号に応じて、上記集積回路に供給する検査信号を生成する検査信号生成手段と、
上記制御信号に応じて、上記集積回路の出力結果を取得する出力結果取得手段と、
上記集積回路へ検査プログラムを供給してその起動を指示し、所定の検査手順に応じて、上記検査信号生成手段、出力結果取得手段、および上記集積回路を制御するための上記制御信号を生成する制御手段と、
を有し、
上記集積回路は、
１つまたは複数の回路ブロックと、
上記制御手段からの起動指示に応じて、上記制御手段より供給される上記検査プログラムを上記プロセッサに実行させるプログラム起動手段と、
を含み、
上記プロセッサは、上記制御信号に応じて、少なくとも、上記回路ブロックに上記検査信号を入力してその動作を開始させる処理、または、上記回路ブロックの出力結果を上記出力結果取得手段に出力する処理を、上記検査プログラムに基づき実行する、
検査システム。
【請求項２】
上記プロセッサは、上記回路ブロックの出力信号が所定の条件を満たすか否かを判定し、当該判定結果を上記出力結果取得手段に出力する処理を、上記検査プログラムに基づき実行する、
請求項１に記載の検査システム。
【請求項３】
上記出力結果取得手段において取得された上記集積回路の出力結果が所定の条件を満たすか否かを判定する判定手段を有する、
請求項２に記載の検査システム。
【請求項４】
上記制御手段は、上記集積回路の動作モードを通常モードまたは検査モードに設定し、それぞれのモードを開始するときに、上記集積回路へプログラムの起動を指示し、
上記集積回路は、
所定のプログラムを格納する第１の記憶手段と、
第２の記憶手段とを含み、
上記プログラム起動手段は、動作モードが上記通常モードの場合、上記制御手段からの起動指示に応じて、上記第１の記憶手段に格納されるプログラムを上記プロセッサに実行させ、動作モードが上記検査モードの場合、上記制御手段より供給される上記検査プログラムを上記第２の記憶手段にロードし、上記制御手段からの起動指示に応じて、上記第２の記憶手段にロードされた上記検査プログラムを上記プロセッサに実行させる、
請求項１に記載の検査システム。
【請求項５】
上記第２の記憶手段は、上記通常モードにおいて、上記プロセッサからのアクセスが可能である、
請求項４に記載の検査システム。
【請求項６】
プログラムに基づいた処理を実行するプロセッサを有した集積回路であって、
１つまたは複数の回路ブロックと、
所定のプログラムを格納する第１の記憶手段と、
動作モードが検査モードの場合、プログラムの起動指示に応じて、供給される検査プログラムを上記プロセッサに実行させ、動作モードが通常モードの場合、プログラムの起動指示に応じて、上記第１の記憶手段に格納されるプログラムを上記プロセッサに実行させるプログラム起動手段と、
を有し、
上記プロセッサは、上記検査モードにおいて、入力される制御信号に応じて、少なくとも、入力される検査信号を上記回路ブロックに与えてその動作を開始させる処理、または、上記回路ブロックの出力結果を集積回路の外部に出力する処理を、上記検査プログラムに基づき実行する、
集積回路。
【請求項７】
上記プロセッサは、上記検査モードにおいて、上記回路ブロックの出力信号が所定の条件を満たすか否かを判定し、当該判定結果を集積回路の外部に出力する処理を、上記検査プログラムに基づき実行する、
請求項６に記載の集積回路。
【請求項８】
第２の記憶手段を含み、
上記プログラム起動手段は、動作モードが上記検査モードの場合、供給される上記検査プログラムを上記第２の記憶手段にロードし、プログラムの起動指示に応じて、上記第２の記憶手段にロードされた上記検査プログラムを上記プロセッサに実行させる、
請求項６に記載の集積回路。
【請求項９】
プログラムに基づいた処理を実行するプロセッサと、１つまたは複数の回路ブロックとを有する集積回路の検査装置であって、
入力される制御信号に応じて、上記集積回路に供給する検査信号を生成する検査信号生成手段と、
上記制御信号に応じて、上記集積回路の出力結果を取得する出力結果取得手段と、
上記制御信号に応じて、少なくとも、上記回路ブロックに上記検査信号を入力してその動作を開始させる処理、または、上記回路ブロックの出力結果を上記出力結果取得手段に出力する処理を上記プロセッサに実行させる検査プログラムを上記集積回路に供給し、上記供給した検査プログラムを上記集積回路において起動させ、所定の検査手順に応じて、上記検査信号生成手段、出力結果取得手段、および上記集積回路を制御するための上記制御信号を生成する制御手段と、
を有する検査装置。
【請求項１０】
上記出力結果取得手段において取得された上記集積回路の出力結果が所定の条件を満たすか否かを判定する判定手段を有する、
請求項９に記載の検査装置。
【請求項１１】
プログラムに基づいた処理を実行するプロセッサと、１つまたは複数の回路ブロックとを有した集積回路の検査方法であって、
上記集積回路に検査プログラムを供給する第１の工程と、
供給した上記検査プログラムを上記プロセッサにおいて起動させる第２の工程と、
上記回路ブロックに検査信号を入力してその動作を開始させる処理を、上記検査プログラムに基づいて上記プロセッサに実行させる第３の工程と、
上記回路ブロックの出力結果を上記集積回路の外部に出力させる処理を、上記検査プログラムに基づいて上記プロセッサに実行させる第４の工程と、
を有する検査方法。
【請求項１２】
上記回路ブロックの出力信号が所定の条件を満たすか否かを判定し、当該判定結果を上記集積回路の外部に出力させる処理を、上記検査プログラムに基づいて上記プロセッサに実行させる第５の工程を有する、
検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムに基づいて処理を実行するプロセッサを備えた集積回路とその検査システム、検査装置、および検査方法に関するものである。
【背景技術】
【０００２】
半導体集積回路の検査手法として、例えば、ＢＩＳＴ（built-in self test）と称される内部組み込み型の検査手法や、一般にＪＴＡＧ（joint test action group）と称される国際規格（ＩＥＥＥ１１４９．１）において標準化された検査手法がある。
【０００３】
図６は、ＢＩＳＴ型の検査を説明するための図である。
ＢＩＳＴ型の検査では、集積回路の内部に検査用の回路と検査対象の回路とが組み込まれる。図６の例では、集積回路１の内部に、検査対象の回路ブロック１−３と共に、検査用の回路として、検査信号発生器１−１、セレクタ１−２および判定器１−４が組み込まれている。
【０００４】
検査信号発生器１−１は、回路ブロック１−３に与える検査用の信号Ｄｔを発生する。
セレクタ１−２は、回路ブロック１−３に入力する信号の選択を行なう。通常動作時において外部より集積回路１に入力される信号Ｄｉｎを選択し、検査時において検査信号Ｄｔを選択する。
判定器１−４は、回路ブロック１−３に入力される検査信号Ｄｔに対し、その出力信号Ｄｏｕｔが所定の条件を満たしているか否かを判定する。
【０００５】
ＢＩＳＴ型の検査では、例えば上記のような構成により、被検査回路に対する検査信号の供給と検査結果の判定とが集積回路の内部において自動的に行なわれる。このため、比較的高速な検査が可能であり、また、検査装置の構成を簡易化することができる。
【０００６】
図７は、ＪＴＡＧ型の検査を説明するための図である。
図７に示すように、ＪＴＡＧ型の検査では、集積回路２の外部端子Ｔ３〜Ｔ１０と内部回路２−１とをつなぐ配線上に、検査用のレジスタ２−３〜２−１０がそれぞれ挿入される。これらのレジスタ２−３〜２−１０は縦続に接続されており、１本のシフトレジスタを構成している。また、集積回路２の内部には、これらのレジスタを制御するためのＴＡＰ（test access port）と称される制御回路２−２が設けられている。制御回路２−２は、例えば、レジスタ２−３〜２−１０に保持される検査データを内部回路２−１へ入力させたり、内部回路２−１の出力信号をレジスタ２−３〜２−１０に保持させたり、更には、上述したシフトレジスタのシフト動作によって集積回路２にデータを入出力させるなどの制御を行なう。
【０００７】
このような検査用の回路を集積回路２の内部に設けることにより、外部の検査信号発生器３において発生させた検査信号をレジスタ２−３〜２−１０に転送して内部回路２−１に入力し、これに応じた内部回路２−１の出力信号を集積回路２の外部に取り出して判定器４により判定することが可能になる。
【０００８】
ＪＴＡＧ型の検査では、ＢＩＳＴ型のように集積回路内部に検査用の回路を設けずに済むため、チップ面積を小型化することができる。
特許文献１は、このようなＪＴＡＧ型の検査手法に係わる半導体製品の試験回路についての発明が記載されている。
【０００９】
【特許文献１】特開２００３−６６１０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したＢＩＳＴ型の検査およびＪＴＡＧ型の検査には、次に述べるような不利益がある。
【００１１】
ＢＩＳＴ型の検査において、集積回路２の内部に組み込まれる検査用の回路は、集積回路２の通常の機能を果たすためには使用できないため、出荷後の製品においては無駄な回路となり、コストを上昇させる要因となる。このため、検査用の回路は極力コンパクトであることが要求されるが、回路をコンパクトにするためには、検査内容を簡易化せざるを得ないため、詳細な検査結果を得ることができないという不利益が生じる。また、集積回路の詳細な設計が完了した後で検査項目を追加することが非常に困難であり、そのような柔軟性に欠けるという不利益もある。
【００１２】
ＪＴＡＧ型の検査では、集積回路の内部の被検査回路に検査信号を入力する場合、検査信号をシフトレジスタ上でシフトさせて目的の入力端子に伝送する必要があり、また、被検査回路からの出力信号を取得する場合にも、シフトレジスタ上でデータをシフトさせて外部に出力させる必要がある。そのため、例えば画像データを符号化する回路のように、大量のデータが入出力される回路では、このような検査専用のインターフェース回路を通じて被検査回路にデータを入出力させようとすると、検査時間が膨大になってしまうという不利益がある。
【００１３】
また、上述の検査用インターフェース回路では、被検査回路の状態を外部の検査装置においてリアルタイムで監視することが困難である。例えば、被検査回路に対する信号の入力や、被検査回路からの処理結果の出力が現在可能であるか否かといった情報を、検査装置で把握することが困難である。したがって、検査装置では、検査信号の供給や処理結果の収集を行なう際に時間的な余裕を持つ必要が生じ、そのため検査時間が遅くなるという不利益が存在する。
【００１４】
本発明はかかる事情に鑑みてなされたものであり、その目的は、検査対象の集積回路の規模を増大させることなく、高速で、検査内容の変更にも柔軟に対応することができる検査システムとその方法ならびに検査装置を提供することにある。
また、本発明の他の目的は、回路規模を増大させることなく、高速で、検査内容の変更にも柔軟に対応することができる検査を可能にする集積回路を提供することにある。
【課題を解決するための手段】
【００１５】
上記の目的を達成するため、本発明の第１の観点の検査システムは、入力される制御信号に応じて、上記集積回路に供給する検査信号を生成する検査信号生成手段と、上記制御信号に応じて、上記集積回路の出力結果を取得する出力結果取得手段と、上記集積回路へ検査プログラムを供給してその起動を指示し、所定の検査手順に応じて、上記検査信号生成手段、出力結果取得手段、および上記集積回路を制御するための上記制御信号を生成する制御手段とを有する。上記集積回路は、プログラムに基づいた処理を実行するプロセッサと、１つまたは複数の回路ブロックと、上記制御手段からの起動指示に応じて、上記制御手段より供給される上記検査プログラムを上記プロセッサに実行させるプログラム起動手段とを含む。また、上記プロセッサは、上記制御信号に応じて、少なくとも、上記回路ブロックに上記検査信号を入力してその動作を開始させる処理、または、上記回路ブロックの出力結果を上記出力結果取得手段に出力する処理を、上記検査プログラムに基づき実行する。
【００１６】
本発明の第１の観点によれば、上記制御手段から上記集積回路へ検査プログラムが供給されその起動が指示されると、上記プログラム起動手段の制御によって、上記制御手段より供給される上記検査プログラムが上記プロセッサにおいて実行される。また、上記制御手段では、所定の検査手順に基づいて、上記検査信号生成手段、出力結果取得手段、および上記集積回路を制御するための制御信号が生成される。上記プロセッサでは、この制御信号に応じて、少なくとも、上記回路ブロックに上記検査信号生成手段の検査信号を入力してその処理動作を開始させる処理、または、上記回路ブロックの出力結果を上記出力結果取得手段に出力する処理が、上記検査プログラムに基づき実行される。
【００１７】
また、上記した第１の観点において、上記プロセッサは、上記回路ブロックの出力信号が所定の条件を満たすか否かを判定し、当該判定結果を上記出力結果取得手段に出力する処理を、上記検査プログラムに基づき実行しても良い。
【００１８】
本発明の第２の観点の集積回路は、プログラムに基づいた処理を実行するプロセッサと、１つまたは複数の回路ブロックと、所定のプログラムを格納する第１の記憶手段と、動作モードが検査モードの場合、プログラムの起動指示に応じて、供給される検査プログラムを上記プロセッサに実行させ、動作モードが通常モードの場合、プログラムの起動指示に応じて、上記第１の記憶手段に格納されるプログラムを上記プロセッサに実行させるプログラム起動手段とを有する。また、上記プロセッサは、上記検査モードにおいて、入力される制御信号に応じて、少なくとも、入力される検査信号を上記回路ブロックに与えてその動作を開始させる処理、または、上記回路ブロックの出力結果を集積回路の外部に出力する処理を、上記検査プログラムに基づき実行する。
【００１９】
本発明の第３の観点の検査装置は、プログラムに基づいた処理を実行するプロセッサと、１つまたは複数の回路ブロックとを有する集積回路の検査装置であって、入力される制御信号に応じて、上記集積回路に供給する検査信号を生成する検査信号生成手段と、上記制御信号に応じて、上記集積回路の出力結果を取得する出力結果取得手段と、上記制御信号に応じて、少なくとも、上記回路ブロックに上記検査信号を入力してその動作を開始させる処理、または、上記回路ブロックの出力結果を上記出力結果取得手段に出力する処理を上記プロセッサに実行させる検査プログラムを上記集積回路に供給し、上記供給した検査プログラムを上記集積回路において起動させ、所定の検査手順に応じて、上記検査信号生成手段、出力結果取得手段、および上記集積回路を制御するための上記制御信号を生成する制御手段とを有する。
【００２０】
本発明の第４の観点の検査方法は、プログラムに基づいた処理を実行するプロセッサと、１つまたは複数の回路ブロックとを有した集積回路の検査方法であって、上記集積回路に検査プログラムを供給する第１の工程と、供給した上記検査プログラムを上記プロセッサにおいて起動させる第２の工程と、上記回路ブロックに検査信号を入力してその動作を開始させる処理を、上記検査プログラムに基づいて上記プロセッサに実行させる第３の工程と、上記回路ブロックの出力結果を上記集積回路の外部に出力させる処理を、上記検査プログラムに基づいて上記プロセッサに実行させる第４の工程とを有する。
【発明の効果】
【００２１】
本発明によれば、検査対象の集積回路の規模を増大させることなく、高速で、検査内容の変更にも柔軟に対応することができる検査システムとその方法ならびに検査装置を提供することができる。
また、回路規模を増大させることなく、高速で、検査内容の変更にも柔軟に対応することができる検査を可能にする集積回路を提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態について、図面を参照して説明する。
【００２３】
図１は、本発明の実施形態に係る集積回路の検査システムの構成の一例を示すブロック図である。
【００２４】
図１に示す検査システムは、検査装置２００として、制御部２０と、検査信号生成部３０と、入力部５０と、出力結果取得部６０と、映像・音声出力部８０と、記憶部４０，７０，９０と、インターフェース部１００とを有するとともに、検査対象の集積回路１０を有する。
図１の例において、この集積回路１０は、プロセッサ１１と、プロセッサ起動部１２と、ＲＯＭ１３と、フラッシュＲＯＭ１４と、ＲＡＭ１５と、回路ブロック１６−１，…，１６−ｎ（ｎは自然数を示す）とを有する。
また、図１の例において、集積回路１０には外部ＲＡＭ１１０が接続されている。
【００２５】
なお、制御部２０は、本発明の制御手段の一実施形態であるとともに、本発明の判定手段の一実施形態である。。
検査信号生成部３０は、本発明の検査信号生成手段の一実施形態である。
出力結果取得部６０は、本発明の出力結果取得手段の一実施形態である。
プロセッサ１１は、本発明のプロセッサの一実施形態である。
プロセッサ起動部１２は、本発明のプロセッサ起動手段の一実施形態である。
ＲＯＭ１３は、本発明の第１の記憶手段の一実施形態である。
ＲＡＭ１５は、本発明の第２の記憶手段の一実施形態である。
【００２６】
［制御部２０］
制御部２０は、検査システムの全体の動作に係わる制御を行う。
例えば、集積回路１０の動作モードを通常モードまたは検査モードに設定し、それぞれのモードを開始するときに、集積回路１０へプログラムの起動を指示する信号を出力する。ただし、検査モードに設定した場合は、集積回路１０へ後述する検査プログラムを供給した上で、その検査プログラムの起動を指示する信号を集積回路１０へ出力する。
【００２７】
また、集積回路１０において検査プログラムが起動されて検査が実行される場合、制御部２０は、所定の検査手順に基づいて、検査信号生成部３０や、出力結果取得部６０、集積回路１０を制御するための制御信号を生成する。
【００２８】
例えば、（１）回路ブロック１６−１に画像データＡを入力してその処理結果を判定し、続いて、（２）回路ブロック１６−１に画像データＢを入力してその処理結果を判定する、といった検査手順を指示する情報が、制御部２０に対してあらかじめ与えられている。
制御部２０は、この検査手順の情報に基づいて、検査を遂行するために必要な制御信号を順次生成する。
例えば（１）の検査の場合、制御部２０は、まず回路ブロック１６−１の状態を制御部２０に問い合わせる制御信号を生成する。この問い合わせに応じて、回路ブロック１６−１に信号の入力が可能になったことを通知する信号が集積回路１０から出力された場合、制御部２０は、検査信号生成部３０に対して画像データＡの準備を指示する制御信号を生成する。この指示に応じて、検査信号生成部３０から画像データＡの準備が完了したことを通知する信号が出力されると、制御部２０は、検査信号生成部３０に対して検査信号の生成開始を指示するとともに、集積回路１０に対して処理の開始を指示する制御信号を生成する。その後、集積回路１０から処理結果のデータが出力可能になったことを通知する信号が出力された場合、制御部２０は、集積回路１０に対して処理結果の出力を指示するとともに、処理結果取得部６０に対して処理結果の取得を指示する制御信号を生成する。
【００２９】
このように、制御部２０は、検査信号生成部３０や出力結果取得部６０とともに、検査対象の集積回路１０とも協調しながら、与えられた検査手順を実行するために必要な制御信号を生成する。
【００３０】
また、制御部２０は、出力結果取得部６０において取得された集積回路１０の出力結果が所定の条件を満たすか否かを判定する処理も行う。すなわち、出力結果取得部６０において取得され、記憶部７０に格納されたデータと、記憶部９０に格納された期待値のデータとを比較し、この比較結果に応じて、集積回路１０の出力結果が所定の条件を満たすか否かを判定する。
【００３１】
なお、図１の例において、制御部２０、検査信号生成部３０、出力結果取得部６０、記憶部９０、およびインターフェース部１００は、共通のバスＢ１に接続されている。制御部２０において生成される制御信号や、他の機器から制御部２０へ出力される信号は、このバスＢ１を介して伝送される。
バスＢ１は、例えばＰＣＩ（peripheral component interconnect）バスなどの汎用的なバスを用いることができる。
【００３２】
［検査信号生成部３０］
検査信号生成部３０は、バスＢ１を介して入力される制御部２０からの制御信号に応じて、集積回路１０に供給する検査信号を生成する。検査信号を生成するために必要なデータは、記憶部４０から読み出すか、あるいは、入力部５０を介して他の機器から入力する。
【００３３】
［記憶部４０］
記憶部４０は、検査信号生成部３０において検査信号を生成するために必要なデータ、例えば画像データや音声データなどを格納する。
【００３４】
［入力部５０］
入力部５０は、検査信号生成部３０において検査信号を生成するために必要なデータを外部の機器から入力するための処理を行う。例えば、ネットワークを介して他の記憶装置にアクセスする処理や、ＣＤ−ＲＯＭなどの記録媒体からデータを読み出す処理、信号発生装置から信号を入力する処理などを行なう。
【００３５】
［出力結果取得部６０］
出力結果取得部６０は、バスＢ１を介して入力される制御部２０からの制御信号に応じて、集積回路１０の出力結果を取得する。取得したデータは、記憶部７０に格納するか、または映像・音声出力部８０に供給する。
【００３６】
［記憶部７０］
記憶部７０は、出力結果取得部６０において取得される集積回路１０の出力結果のデータを格納する。
【００３７】
［映像・音声出力部８０］
映像・音声出力部８０は、出力結果取得部６０において取得されるデータが画像データや音声データの場合において、これを画像や音声に再生して出力する。
【００３８】
［インターフェース部１００］
インターフェース部１００は、検査装置２００のバスＢ１と集積回路１０の内部バスＢ２との間でデータを受け渡すためのインターフェース処理を行う。
【００３９】
［プロセッサ１１］
プロセッサ１１は、プロセッサ起動部１２によって指定されたメモリに格納されるプログラムを読み出して、これに応じた処理を実行する。
【００４０】
なお、図１の例において、プロセッサ１１、プロセッサ起動部１２、ＲＯＭ１３、フラッシュＲＯＭ１４、ＲＡＭ１５、回路ブロック１６−１〜１６−ｎは、何れも集積回路１０の内部バスＢ２に接続されている。
プロセッサ１１は、この内部バスＢ２を介して、集積回路１０の各ユニットにアクセスする。
【００４１】
［プロセッサ起動部１２］
プロセッサ起動部１２は、制御部２０からバスＢ１、Ｂ２を介して入力されるプロセッサの起動指示に応じて、動作モードに応じたプログラムをプロセッサ１１に実行させる。
すなわち、動作モードが通常モードの場合、プロセッサ起動部１２は、制御部２０からの起動指示に応じて、ＲＯＭ１３に格納される通常モード用のプログラムをプロセッサに実行させる。
動作モードが検査モードの場合は、制御部２０より供給される検査プログラムを例えばＲＡＭ１５にロードし、制御部２０からの起動指示に応じて、ＲＡＭ１５にロードされた検査プログラムをプロセッサに実行させる。
これにより、プロセッサ１１においては、通常モードの場合、ＲＯＭ１３に格納される通常モード用のプログラムが起動し、検査モードの場合、制御部２０より供給される検査プログラムが起動する。
【００４２】
なお、検査プログラムの実行に必要なプログラム以外の記憶領域がＲＡＭ１５だけでは得られない場合は、図１に示すように、外部ＲＡＭ１１０を設けてこれをプログラム以外の記憶領域に割り当てても良い。あるいは、検査プログラムの一部をフラッシュＲＯＭ１４とＲＡＭ１５に分けて格納しても良い。
【００４３】
［ＲＯＭ１３］
ＲＯＭ１３は、通常モードにおけるプロセッサ１１のプログラムを格納する。
【００４４】
［フラッシュＲＯＭ１４］
フラッシュＲＯＭ１４は、プロセッサ１１の処理に用いられるデータを格納するための不揮発性のメモリである。上述のように、このフラッシュＲＯＭ１４に検査プログラムの一部を格納させる構成としても良い。
【００４５】
［ＲＡＭ１５］
ＲＡＭ１５は、検査モードにおいて、バスＢ１、Ｂ２を介し制御部２０より供給される検査プログラムを格納する。検査プログラムを格納した残りの記憶領域は、検査プログラムの処理過程において一時的に記憶が必要なデータを格納するために用いられる。
また、通常モードにおいても、プロセッサ１１からアクセス可能であり、通常モード用プログラムの処理過程において一時的に記憶が必要なデータを格納するために用いられる。
【００４６】
［外部ＲＡＭ１１０］
外部ＲＡＭ１１０は、プロセッサ１１から読み書きアクセスが可能な記憶領域を拡張するためのメモリである。検査プログラムの処理過程において一時的に記憶が必要なデータを格納するために用いられる。
【００４７】
［回路ブロック１６−１〜１６−ｎ］
集積回路１０において、検査の対象となる回路ブロックである。図１の例では、何れの回路ブロックも内部バスＢ２を介してプロセッサ１１からアクセス可能であり、それぞれの回路ブロックにおける動作条件の設定や、動作状況の監視、信号の入出力などが、プロセッサ１１によって制御される。
【００４８】
次に、上述した構成を有する図１に示す検査システムの動作を説明する。
【００４９】
図２は、検査装置２００と集積回路１０との間でやり取りされる主な信号の例を示した図である。
検査入力信号Ｓ１は、主として検査信号生成部３０より供給される信号であり、検査出力信号Ｓ２は、検査入力信号Ｓ１を処理した結果として検査対象の回路ブロックから出力される信号である。例えば、画像データの符号化処理を行う回路ブロックでは、入力のテスト用画像データが検査入力信号Ｓ１に相当し、出力の符号化画像データが検査出力信号Ｓ２に相当する。
【００５０】
検査プログラムＳ３は、検査モードが開始されるときに、制御部２０から集積回路１０に対して与えられるプログラムである。
【００５１】
レスポンス信号Ｓ４は、検査の実行に伴って集積回路１０から出力される信号である。例えば、検査入力信号Ｓ１が画像データである場合、この画像データに異常な部分が含まれているか否かを示すエラー信号が、レスポンス信号Ｓ４に相当する。
【００５２】
制御信号Ｓ５は、検査の進行を制御するための信号であり、検査装置２００と集積回路１０との間で相互にやり取りされる。制御信号Ｓ５には、制御部２０において生成され、検査信号生成部３０や出力検査取得部６０、集積回路１０などに与えられる上述した制御信号のほか、制御部２０やプロセッサ１１において割り込み処理などを行わせる信号も含む。
例えば、プロセッサ１１においては、回路ブロックの出力信号の状態を制御部２０に対して通知する信号を出力した後、検査プログラムの進行を停止し、この状態通知信号に応答した制御信号が制御部２０より出力される場合に検査プログラムの進行を再開する割り込み待ちの処理が可能である。このような割り込み待ちの処理おいて、プロセッサ１１から制御部２０へ出力される状態通知信号や、制御部２０からプロセッサ１１へ出力される信号は、ここで言う制御信号Ｓ５に相当する。
【００５３】
図３は、図１に示す検査システムにおける検査の流れの一例を示すフローチャートである。
【００５４】
ステップＳＴ１０１：
検査を開始する場合、まず制御部２０から通常モードのプロセッサ１１に対して、その動作を停止させるための制御信号が出力される。これにより、プロセッサ１１の動作が停止される。
【００５５】
ステップＳＴ１０２：
プロセッサ１１の停止が制御部２０において確認された後、続けて、制御部２０からプロセッサ起動部１２に対して、通常モードから検査モードへのモード切り換えを指示する制御信号が出力される。これにより、プログラム起動部１２における起動プログラムの格納メモリの設定が、ＲＯＭ１３からＲＡＭ１５へ変更される。
【００５６】
ステップＳＴ１０３：
次いで、制御部２０から集積回路１０に対して検査プログラムが供給されると、この検査プログラムは、プロセッサ起動部１２の制御によってＲＡＭ２０にロードされる。
【００５７】
ステップＳＴ１０４：
検査プログラムのＲＡＭ２０へのロードが終了すると、制御部２０からプロセッサ起動部１２に対してプログラムの起動を指示する信号が与えられる。これを受けて、ＲＡＭ１５に格納される検査プログラムの実行指示がプロセッサ起動部１２からプロセッサ１１に対して与えられ、プロセッサ１１において検査プログラムが起動する。
【００５８】
ステップＳＴ１０５：
制御部２０において、所定の検査手順に応じた制御信号が生成され、これに応じた種々の検査処理が実行される。検査処理の詳細については、後に図４を参照して述べる。
また、この検査処理と並行して、制御部２０では、出力結果取得部６０において取得された集積回路１０の出力結果が所定の条件を満たすか否かを判定する処理が行なわれる。例えば、制御部２０から集積回路１０に検査信号を入力し、その出力結果が得られるまでの待ち時間において、制御部２０では以前に行なわれた検査の出力結果に対する判定処理が行われる。
【００５９】
ステップＳＴ１０６：
制御部２０において、予定された検査手順が終了したか否かの判定がなされ、まだ終了していないと判定された場合には、続けて検査・判定処理が行われる。予定された検査手順が終了したと判定された場合には、次のステップＳＴ１０７へ処理が移る。
【００６０】
ステップＳＴ１０７：
検査モードを終了するにあたり、制御部２０からプロセッサ１１に対して、その動作を停止させるための制御信号が出力される。これにより、プロセッサ１１の動作が停止される。
【００６１】
ステップＳＴ１０８：
プロセッサ１１の停止が制御部２０において確認された後、続けて、制御部２０からプロセッサ起動部１２に対して、検査モードから通常モードへのモード切り換えを指示する制御信号が出力される。これにより、プログラム起動部１２における起動プログラムの格納メモリの設定が、ＲＡＭ１５からＲＯＭ１３へ変更される。
【００６２】
ステップＳＴ１０９：
制御部２０からプロセッサ起動部１２に対してプログラムの起動を指示する信号が与えられる。これを受けて、ＲＯＭ１３に格納される通常モード用のプログラムの実行指示がプロセッサ起動部１２からプロセッサ１１に対して与えられ、プロセッサ１１において通常モード用のプログラムが起動する。
【００６３】
図４は、上述したステップＳＴ１０５における検査処理の一例を示すフローチャートである。
【００６４】
ステップＳＴ２０１：
制御部２０からプロセッサ１１に対して、ある条件の元に回路ブロックの検査を行なうことを指示する制御信号が与えられる。これを受けて、プロセッサ１１では、制御信号において指定された回路ブロックに対し、指定された条件の動作を行なわせるための設定を行なう。例えば、回路ブロックが有する制御用のレジスタに、制御信号において指定された値のデータを設定する。
【００６５】
ステップＳＴ２０２：
回路ブロックの設定が終了すると、プロセッサ１１から制御部２０に対して検査信号の入力が可能であることを示す制御信号が出力される。この制御信号の出力後、プロセッサ１１では検査プログラムの進行が停止され、検査信号の入力待ちの状態となる。
【００６６】
プロセッサ１１からこの制御信号を受けた制御部２０では、検査信号生成部３０に対して検査信号を準備するように指示する制御信号が生成される。これに応じて検査信号生成部３０から検査信号の準備が完了したことを示す制御信号が出力されると、制御部２０から検査信号生成部３０に対して検査信号の出力を指示する制御信号が出力されるとともに、制御部２０からプロセッサ１１に対して検査信号の出力開始を知らせる制御信号が出力される。これにより、プロセッサ１１では検査プログラムの進行が再開され、検査信号生成部３０より出力される検査信号を検査対象の回路ブロックに供給する処理が実行される。
【００６７】
次いで、制御部２０では、回路ブロックにおいて出力結果が得られたことを通知する割り込み信号が受信可能な状態となり、プロセッサ１１では、検査対象の回路ブロックの出力を監視する状態となる。プロセッサ１１において検査信号に応じた出力信号の生成が可能になると、プロセッサ１１はそのことを通知する割り込み信号を制御部２０へ出力する。これを受けて、制御部２０では、出力結果の取得を指示する制御信号を出力結果取得部６０に出力する。これにより、回路ブロックの出力結果は出力結果取得部６０によって取得される。
なお、検査信号の供給と出力結果の取得とを並行して実行することも可能である。
また、後述する内部判定によって判定結果が得られる場合には、その出力結果を出力結果取得部６０に取得させなくても良い。
【００６８】
ステップＳＴ２０３、２０４、２０５：
比較的データ量が少量であり、プロセッサ１１においても判定処理が可能な場合には、制御部２０に代わり、プロセッサ１１において判定処理が実行される（ステップＳＴ２０４）。すなわち、回路ブロックの出力信号が所定の条件を満たすか否かの判定が行なわれる。そして、その判定結果が出力結果取得部６０へ出力される（ステップＳＴ２０５）。これにより、検査結果の高速な判定が可能になる。
なお、この内部判定処理を行うか否かは、制御部２０からの制御信号に応じて決定される。
また、内部判定処理で得られる処理結果に基づいて、制御部２０における検査手順の流れを変更する分岐処理を実現することも可能である。
【００６９】
以上説明したように、図１に示す検査システムによれば、検査モードにおいて、制御部２０から集積回路１０に対して検査プログラムが供給され、この検査プログラムが集積回路１０のプロセッサ１１において実行される。そして、制御部２０からプロセッサ１１に対して所望の検査手順に応じた制御信号が出力されると、プロセッサ１１では、供給された検査プログラムに基づいてこの制御信号に応じた処理が行われる。これにより、回路ブロックに検査信号を入力してその処理動作を開始させる処理や、回路ブロックの出力結果を出力結果取得部６０に出力する処理が実行される。このように、通常モードにおいて使用されるプロセッサが回路ブロックの検査にも利用可能となるため、図７に示すＪＴＡＧ型の検査のように、検査用の低速なインターフェース回路によって検査信号を伝送する方法に比べて、回路ブロックへのアクセス、信号の入出力を高速化することができ、その結果、検査速度を大幅に高速化することができる。
【００７０】
また、図１に示す検査システムでは、検査対象の回路ブロックの状態をプロセッサ１１によりリアルタイムで監視することが可能であるため、この状態を制御部２０に通知することにより、割り込み処理を容易に実現することが可能である。これにより、回路ブロックの動作状態に応じて、検査信号の供給や出力結果の取得といった処理を、余計な待ち時間を挿入することなく、高速に実行することが可能になり、割り込み処理が困難な図７のＪＴＡＧ型の検査に比べて、検査処理を高速化することができる。
【００７１】
しかも、図１に示す集積回路１０によれば、検査モードにおいて利用されるプロセッサ１１やＲＡＭ１５が、通常モードでも利用されるため、検査のみに利用される回路が存在しない。したがって、検査用の回路を内蔵する必要がある検査手法に比べて、チップ面積を小型化することができる。
さらに、検査項目が非常に多い場合でも、チップ面積を増大させることがないため、より詳細な検査が可能となり、開発効率の向上や不良率の低減を図ることが可能である。
【００７２】
加えて、制御部２０における処理はコンピュータとプログラムによって実現可能であり、集積回路１０の内部における処理も検査プログラムに基づいているため、図６に示すような集積回路内部に検査用回路を組み込む検査手法に比べて、検査手順を容易に変更することができる。
【００７３】
図５は、図１に示す検査システムのプログラム・スタック構造の一例を示す図である。
プログラム・スタックＰＳ１は、ユーザによりディスプレイ画面上で入力または操作されるコマンド・インターフェースを有したＧＵＩ（graphical user interface）層である。
プログラム・スタックＰＳ２は、プログラム・スタックＰＳ１のＧＵＩ層から渡されるコマンドを分析してテストプロシジャを選択する、コマンド分析層である。
プログラム・スタックＰＳ３は、検査の実行に係わる情報を記述したテストプロシジャの集まりであり、検査の内容に応じて、複数のテストプロシジャが存在する。
プログラム・スタックＰＳ４は、テストプロシジャによって呼び出される、より基本的なサブルーチンの集まりである。
プログラム・スタックＰＳ５は、上位層のコマンドを、集積回路１０の内部におけるコマンドに変換するためのインターフェース層である。
プログラム・スタックＰＳ６は、バスＢ１と集積回路の内部バスとの間でアドレス変換を行なったり、ファイル操作等を行なうための共通ライブラリである。
【００７４】
このプログラム・スタック構造によると、プログラム・スタックＰＳ１より入力されたコマンドは、このインターフェース層を介してコマンド分析層であるプログラム・スタックＰＳ２に移る。そこで、コマンドの構文が分析され、コマンドに対応したテストプロシジャ（ＰＳ４）が選択される。このテストプロシジャからサブルーチン（ＰＳ５）が呼び出され、更にサブルーチンのコマンドが集積回路１０内部のコマンドに変換され（ＰＳ５）、これにより、ユーザの要求に応じた所望の処理が集積回路１０において実行される。
【００７５】
このようなプログラム・スタック構造を有するソフトウェアによって検査システムの処理を実現することにより、検査項目の追加や変更に対してより柔軟に対応することが可能になる。
【００７６】
なお、上述のプログラム・スタック構造では、制御部２０とプロセッサ１１との間に特別な区別を設ける必要はない。
また、プログラム・スタックＰＳ１のインターフェースとしては、ディスプレイ画面上のグラフィカルなインターフェースを必ずしも用意する必要はなく、たとえば単純にコマンドを入力するだけのインターフェースでも良い。
また、ＧＵＩ層のコマンドとテストプロシジャとが一対一に対応するように関数を設計し、テストプロシジャを関数ポインタによって表現しても良い。これにより、コマンドの増加にも柔軟に対応することが可能になる。
【００７７】
なお、本発明は上述した実施形態に限定されない。
たとえば、図１の例ではバスＢ１とバスＢ２との間にインターフェース部１００が設けられているが、集積回路内部に同様なインターフェース回路が存在する場合には、インターフェース部１００を省略しても良い。バスＢ１とバスＢ２とが同一の場合にも省略可能である。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態に係る集積回路の検査システムの構成の一例を示すブロック図である。
【図２】検査装置と集積回路との間でやり取りされる主な信号の例を示した図である。
【図３】図１に示す検査システムにおける検査の流れの一例を示すフローチャートである。
【図４】検査処理の一例を示すフローチャートである。
【図５】図１に示す検査システムのプログラム・スタック構造の一例を示す図である。
【図６】ＢＩＳＴ型の検査を説明するための図である。
【図７】ＪＴＡＧ型の検査を説明するための図である。
【符号の説明】
【００７９】
１０…集積回路、１１…プロセッサ、１２…プロセッサ起動部、１３…ＲＯＭ、１４…フラッシュＲＯＭ、１５…ＲＡＭ、１６−１，…，１６−ｎ…回路ブロック、２０…制御部、３０…検査信号生成部、５０…入力部、６０…出力結果取得部、８０…映像・音声出力部、４０，７０，９０…記憶部、１００…インターフェース部、１１０…外部ＲＡＭ、２００…検査装置
【図１】
2005077259.tif 000003
【図２】
2005077259.tif 000004
【図３】
2005077259.tif 000005
【図４】
2005077259.tif 000006
【図５】
2005077259.tif 000007
【図６】
2005077259.tif 000008
【図７】
2005077259.tif 000009