(57)【要約】【課題】  ＡＳＩＣのチップ・テストのために、スキャン・パスから外れたＤＵＴを、特別なテスト・モヂュールなど無しに、簡単な機構で検査していく手段を実現すること。【解決手段】  ＡＳＩＣ内部のＭＰＵを用い、マイクロ・プログラムで自らチップ・テスト行えるような命令をそのＭＰＵに与えていく。検査の内容は、ＡＳＩＣの外部ピンを用いて出力する。【選択図】  図１
2006119023.tif 000002
【特許請求の範囲】
【請求項１】
ASICのテスト機構において、テストされるべきASICの内部に、マイクロ・プログラムを解析し、また、その上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段を有し、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段が、マイクロ・プログラムの内容に従って、上記テストされるべきASICに対しテスト入力信号を自動発生し、そして、また、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段が、自らが発したテスト入力信号の結果得られたテスト出力を上記テストされるべきASICの外部に出力させるという機能を特徴とするASICのテスト機構。
【請求項２】
上記請求項-1において、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段を有し、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段とは、MPUであることを特徴とするASICのテスト機構。
【請求項３】
ASICのテスト機構において、テストされるべきASICの内部に、マイクロ・プログラムを解析し、また、その上記マイクロ・プログラムの内容に従い制御動作を行うことが可能なMPUを有し、基本的にチップの検証は既知の技術であるバウンダリ・スキャンを用いて行う仕組みを有しながらも、そのスキャン・パスから外され、かつ、検証が必要とされる上記ASIC内部のロジック・モヂュールに対し、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段が、マイクロ・プログラムの内容に従って、上記ASIC内部のテストされるべきロジック・モヂュールに対してテスト入力信号を入力し、そして、また、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段が、上記入力行為の結果、得られた信号を上記ASIC内部のテストされるべきロジック・モヂュールより読み込み、上記出力信号を上記ASICの外部に出力させるという機能を特徴とするASICのテスト機構。
【請求項４】
上記請求項-3において、上記ASICの内部にMPUが含まれているのだが、そのMPU対応のROMが上記ASICの外付けのタイプの場合、上記ASICの外部ピンにあるインストラクション・バスを介して上記MPUが動作を行うのに必要とされるマイクロ・プログラムを読み込み、上記請求項-3における特徴的な機能を実現することを特徴とするASICのテスト機構。
【請求項５】
上記請求項-3において、上記ASICの内部にMPUと、そのMPU対応のROMが含まれている場合、上記MPUの持つインストラクション・バスと、上記ASICに含まれるROMに接続されるインストラクション・バスと、上記ASICの内部に含まれるある特定の制御バスと、上記ASICの外部ピン上にあるバスとを、上記ASICの外部ピン上にある特定のピンの状態によってマルチ・プレクス可能な手段を有し、上記ASICが通常の動作常態にあるかかテストの状態にあるかを、上記ASICの外部ピン上にある特定のピンの状態で判別し、もし、上記ASICが通常の動作常態にあると判断された場合、上記マルチ・プレクサは、上記MPUの持つインストラクション・バスと、上記ASICに含まれるROMに接続されるインストラクション・バスとを接続し、かつ、上記ASICの内部に含まれるある特定の制御バスと、上記ASICの外部ピン上にあるバスとを接続し、また、別の場合、上記ASICが通常のテストの状態にあると判断された場合、上記マルチ・プレクサは、上記MPUの持つインストラクション・バスと、上記ASICの外部ピン上にあるバスとを接続し、かつ、そのマルチ・プレクスされたASICの外部バスを通じて、上記MPUが動作を行うのに必要とされるマイクロ・プログラムを読み込み、上記請求項-3における特徴的な機能を実現することを特徴とするASICのテスト機構。
【請求項６】
上記請求項-5において、上記ASICの内部に含まれるある特定の制御バスとは、スキャン・テストの対象ロジック・モジュールの制御バスであることを特徴とするASICのテスト機構。
【請求項７】
上記請求項-5において、上記ASICのある特定の外部ピンのプル・アップ、もしくは、プル・ダウンの状態に基づいて、テストの状態に入ることを特徴としたASICのテスト機構。
【請求項８】
上記請求項-6において、上記ASICは、インク・ジェット・プリンタ専用のASICであることを特徴としたASICのテスト機構。
【発明の詳細な説明】
【技術分野】
【０００１】
本提案は、ASIC内部の論理回路テストの手段に関するものである。
【背景技術】
【０００２】
ASICの製造技術が進歩するにつれ、単一のASIC内に、より多くの論理機能が収容されるようになっている。現代のASICには、1つのシリコン・チップ上に多数のゲートが配置され、このようなゲートを相互接続することによって、例えば、プリンタ画像処理のような複雑な機能を実現可能となっている。そうした大規模ASICの製造には、その内部にミスがないことが要求されるため、チップの製造後に各種電気的テストを行う必要性が生じている。
【０００３】
しかしながら、機能がより複雑になるにつれ、回路内の各装置の検証や電気的テストにかかるコストならびに困難さも増している。電気的テストの観点から言えば、ASICの各ゲートが正しく機能していることを全体的に検証するためには、原則的に、(デジタル的に、各ゲートがスタックオープンにもスタッククローズにもなっていないと判断し、)ゲートの各々を個別的に実行できるだけでなく、回路内の他のゲートと関連性を保ちながら、想定可能なあらゆる演算の組み合わせによって実行できなければならない。
【０００４】
従来、このようなチップ・テストは、テスト・ベクタを用いて所望のテストを実行する自動検査装置(ATE)によって行われていた。ここで、テスト・ベクタとは、一定時間中のすべてのパッケージ・ピンに対する所望のテスト入力(または信号)、関連する１クロックパルス(または複数パルス)、予想されるテスト出力(または信号)のことを言い、また、ある特定のマクロの検査を試みる場合に用いられることも多い。複雑な機能を有するASICでは、膨大なテスト・ベクタを有することになり、従って、テスト時間が長くなることも多かった。また、このような膨大なテスト・ベクタを設計者が自ら作成することは、工数上、大変な負担を強いられるものであった。
【０００５】
このような問題より、近年では、テスト容易化設計(DFT)が推進されている。DFTの目的は、外部入力・出力からASICの内部を観察する能力を高めることにある。すなわち、本来、ASICに期待される機能(例：プリンタ画像処理、など)の他に、その機能をASICの特定のピンを通して透過させることが可能なモヂュールをも予め内蔵させ、簡単なテスト・ベクタ入出力にてチップ・テストを行うことを可能とする。
【０００６】
DFTで良く使用される例の1つに、スキャン・パスが挙げられる。スキャン・パスは、一連の同期クロック式マスタ・スレーブラッチ、または、レジスタによって構成され、各ラッチは、論理回路の特定ノードにそれぞれ接続されている。このようなラッチは、論理回路ノードを既定の状態に予め設定し、直列データストリーム(スキャンイン)によってロードすることができる。したがって、通常の方法で、論理回路のエクササイズを行うことができるうえ、(スキャンラッチを備えた各ノードの)演算結果は、各ラッチに記憶される。ラッチの内容を直列にアンロード(スキャンアウト)することによって、関連ノードの特定のテスト演算結果を読み出して、誤ったノード演算の分析を行うことができる。また、この時必要とされるテスト・ベクタは、通常、検査パターン自動生成ツール(ATPG)を使用することで、最も、合理的、かつ、縮小されたベクタが作成することが可能となっている。このようなデータのスキャン技法については、<<A Survey of Design for Testability Scan Techniques>>(VLSI Design：第5巻、No121-1684年12月)の中で、E.J.McCluskeyによって述べられている。
【０００７】
が、現状、このスキャン・パスによるASICテスト手法で、全てのASIC検査を行うことが可能かというと、そうではない。即ち、前述したように、スキャン・パスによるASICテスト手法は、一連の同期クロック式マスタ・スレーブラッチ、または、レジスタによって、テストされるべきモヂュール(DUT)が観察可能となっていることが大前提であるため、ASIC内に一連の同期クロックと非同期で動作するラッチが存在する場合、それに関連するモヂュールはスキャン・テストの対象とはならない。このような非同期動作のラッチが使用される要因として、(1)同期クロック式のラッチ、レジスタは、半導体チップ上で、非同期動作のラッチより多くの面積を消費するため、ASICの規模縮小を目的として非同期動作のラッチが推奨される場合がある、(2)同期クロック式のラッチ、レジスタは、熱的損失が大きく、プリンタのように筺体が比較的小さく半導体チップの発熱がクリティカルとなる機器用のASICでは、熱的損失の少ない非同期動作のラッチの使用が推奨される場合がある、などが挙げられる。
【０００８】
このように、1つのASIC内で、一連の同期クロック式のラッチと非同期動作のラッチを共用した場合、そのチップ・テストには、スキャン・テスト(一連の同期クロック式ラッチに関連するモヂュールのテストを行う)と、従来から存在した設計者が作成したテスト・ベクタにてATE検査を行う手法(非同期動作のラッチに関連するモヂュールのテストを行う)を併用するのが通常である。
【０００９】
例えば、弊社の場合、ASICの検査にて、スキャン・テストによりチップの約90%部分のテストを行い、残りの10%部分( = スキャン・パスより外れたモヂュール)を設計者が作成したテスト・ベクタにて検査していく場合が多い。
【特許文献１】特開２００１−３６３５５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のASIC検査手法には以下のような欠点が存在した。
【００１１】
まず、スキャン・テストは一連の同期クロック式ラッチの支配下にDUTが存在することが検査可能となる条件である。一方、設計者が作成したテスト・ベクタにてATE検査を行う手法では、検査は、あくまでASICパッケージ・ピンに依存していると言える。即ち、ASICパッケージ・ピンにて操作不可能なユニット、もしくは、ASICパッケージ・ピンにて操作可能でも、その出力がASICパッケージ・ピンにて観測不可能なユニットは、ATE検査の対象とはならない。以上から、以下のような不具合例が考えられる。
【００１２】
即ち、最近、1つのチップ内に、MPU、ユーザ・ロジック(UDL)、各種メモリなどが含まれたシステム・オン・チップ(SOC)と呼ばれるタイプのASICで、チップ内システム制御用のデータ・バスやアドレス・バスが内部で閉じている(パッケージの外部に開放されていない)場合が、多々見られる。例えば、画像制御・計算用のユニットなどは、メモリから読み出したデータを加工して、それを再度、メモリ上の別のエリアに書き込むことが主たる動作であるため、メモリ用のバスがASIC内部で閉じている場合、その動作は完全にASIC内部で完結してしまう。仮にこのようなモヂュール内で、スキャン・パスから外れたレジスタが存在する場合(理由としては、そのモヂュールの規模が大きすぎるため、高速な動作を要求されないレジスタを非同期動作のラッチに変更せざるを得なかったなど、幾つか考えられる)、まず、その内部機能を全て、スキャンで保証することは不可能となる。一方、設計者の作成したテスト・ベクタにて検査しようにも、ASICの外部に制御バスなどが開放されていなければ、テストのためのデータ入出力が行えないと言うことになる。即ち、チップ内に、現在ある手法では検査不能なDUTが存在することとなる。
【００１３】
当然、このような検査不能な部分がASIC内に存在しないよう、検査が必要で、かつ、スキャン・パスより外れたユニットの入出力は、設計上、ASICパッケージ・ピンにアサイン可能なようになっているのが普通である。即ち、ASICパッケージ・ピンの特定の数本をテスト・モード選定用に割り当て、そのピンの入力信号情報を基に、テスト・ベクタにより検査されるべきDUT(複数あると仮定)の内から、どのモヂュールの入出力をASICパッケージ・ピンにアサインするか(もしくは、本来のASICの機能ピンをアサインするか)をテスト専用マルチ・プレクス可能な構成で、検査を行えるようにしている。
【００１４】
が、このようなテスト専用マルチ・プレクサは各DUTのバスが集中するため、チップ上で膨大な面積を消費するユニットになりやすい。なので、このテスト・モヂュールの挿入は、直接的に作成されるASICのコスト・アップに跳ね返ってくる存在と言える。
【００１５】
また、このような比較的規模の大きなマルチ・プレクサは、設計変更にも対応し難いと言う欠点をも有する。例えば、設計変更にて、新たにテスト・ベクタにより検査されるべきユニットが追加されてしまった場合(経験上、このようなモヂュールは、特に、スキャン・パスから外されることが多い)、仮にこの時すでにASICのマスタ・フロア・プランが決まっていたりすると、他のモヂュールに影響を与えず、この新規モヂュールのためにテスト専用マルチ・プレクスを変更、もしくは、追加することは不可能に近い(理由は、その大きさ故、全体のフロア・マッピングが著しく乱される可能性が高いからである)。それ故、このような場合は(上記新規モヂュールのために、テスト専用マルチ・プレクスやスキャン・パスを、変更、もしくは、追加する場合)、全体のマスタ・フロア・プランニングに立ち戻って設計の変更を行わなければならない事態に陥りやすいのである(即ち、設計期間が大きく延長されてしまう)。
【００１６】
まとめると、現状の技術では、(1)スキャン・パスにて、ASIC内の全てのモヂュールを検査することは不可能、(2)しかし、スキャン・パスから外れたDUTの検証には、別途、大規模なテスト回路が必要となる、(3)さらに、設計変更時には、そのテスト・ユニット修正のため大幅な工数増大の可能性もある、と言った問題点が存在すると考えられる。
【００１７】
以上、本提案は、上記問題点を解決する手段を提供するものである。
【課題を解決するための手段】
【００１８】
本提案は、ASICのテスト機構において、テストされるべきASICの内部にマイクロ・プログラムを解析し、また、その上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段を有し、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段が、マイクロ・プログラムの内容に従って、上記テストされるべきASICに対しテスト入力信号を自動発生し、そして、また、上記マイクロ・プログラムの内容に従い制御動作を行うことが可能な手段が、自らが発したテスト入力信号の結果得られたテスト出力を上記テストされるべきASICの外部に出力させるという機能を特徴とするASICのテスト機構により、上記問題点の解決を図るものである。
【発明の効果】
【００１９】
上記のように、本提案では、ASICに元々備わっている機能を上手く使いまわし、特別なテスト用のロジックを追加することなく、スキャン・パスから外れたモヂュールの検査を可能にし、しかも、設計の変更に柔軟に対応可能なシステムを実現している。
【発明を実施するための最良の形態】
【００２０】
＜実施形態１＞
以下、本発案の実施例について説明する。本実施例では、プリンタ専用のASICを想定し、ASICのチップ内に、MPU、UDL、及び、メモリ含まれているが、MUP用のROM(フラッシュROMだと仮定)は外付けであると仮定して、説明を行っていく。
【００２１】
図-1は、本実施の代表的な構成を示したものである。まず、テストされるべきASIC1-1があり、これは、自動検査装置(ATE)1-2に、ASIC1-1の外部ピン1-3で接続され、テストが行われる。この外部ピンには、ASIC1-1の動作に必要なCLKピンやRESETピンなどが、含まれている。また、上記で想定した通り、ASIC1-1は、外付けのROM1-4と接続されるべきであり、これらはASIC1-1のパッケージに出ているROM専用のインストラクション・バス1-5にて接続されるようになっているものとする。ここで、ROM1-4の存在であるが、ASIC1-1のチップ検査時には、当然、テストはチップ単体で行われるはずなので、実際にはROM1-4は接続されていないことになる。が、テスト中、ATE1-2の入出力信号により、仮想的にROM1-4が接続されているような状態が作り出されるので、説明の便宜上、「ROM」と言う言葉を使用していくことにする。次に、ASIC1-1の内部であるが、これも上記で想定した通り、プリンタ全体のシステムを管理するMPU1-11、ユーザにより設計されたUDL1-12、そして、メモリ(これは、D-RAM、S-RAMのどちらでも構わない)1-13を含んでいるものとする。そして、MPU1-11と各種モヂュールとの関係であるが、UDL1-12とはペリフェラル・バス1-14で、メモリ1-13とはメモリ・バス1-15で、また、外部にある(ATE1-2上の仮想)ROM1-4とは、前述のインストラクション・バス1-5にて、接続されているものとする。ここでは、最新のハード構成のつもりで、ROM、メモリ、周辺モヂュールと別々のバスを持たせる仕組みにしたが、これは従来通りの1つのバスのみで全てのユニットとやり取りするような構成でも、本提案の内容に全く影響を与えない。
【００２２】
また、UDL1-12には、スキャン・パスから外れたモヂュール1-16が含まれているものとする。実際には、このようなDUT(スキャン・パスから外れており、かつ、別途、検査が必要となるモヂュール)がUDLの中に1つしかないと言うことは稀なのだが、ここは説明の便宜上、モヂュール1-16だけがこれに該当するものだと仮定する。
【００２３】
上記のようなスキャン・パスから外れたモヂュール1-16には、以下のような構成が考えられる(図2参照)。(1)非同期動作のラッチの出力に、なんらかのコンビネーション・ロジックが接続されているもの(例：マルチ・プライヤ、など)、(2)基本的にシーケンシャル動作なのだが、比較的変更回数の少ないレジスタのみを(例：印字モード毎に切り替わるマルチ・プレクス・パス、など) 非同期動作のラッチで構成したもの、(3)完全にシーケンシャル動作なのだが、設計変更時に付け加えられたモヂュールのため、スキャン・パスが貼れなかったもの、等である。
【００２４】
上記の構成について、テストを行うことを考えると、(1)の場合は、入力ベクタを非同期動作のラッチにラッチさせ、その直後に、出力(期待値)を読み取ることでDUTの検証が簡単に行える。(2)と(3)の場合は、モヂュールにある規定の数の同期クロックを与え、制御レジスタのポーリング、もしくは、割り込みハンドル処理にて出力(期待値)が得られたことを確認してから、その値を読み取ることが必要となる。どちらの場合でも、ASIC1-1に内蔵されているMPU1-11に付属している機能により、簡単に実現可能な行為である。
【００２５】
以上を踏まえて、本発案の実施例の基本的な動作について説明を行う。
図-3は、その一連の動作順序を書き表したフローチャートである。まず、ASIC1-1に対し、チップ検査開始を知らせる(S101)。これは、恐らく、ASICのパッケージ・ピン上に必ず存在する、リセット端子を用いて、リセット状態→リセット解除というタイミングを用いて行うことが可能である。その直後、MPU1-11は、リセット後のPC開始アドレスをインストラクション・バス1-5を介して発するはずである。
【００２６】
この時、その信号を受けたATE1-2上の仮想ROM1-4は、PCに応じてMPU1-11の制御命令を、順次、出力していくことになる(今後、特に詳しく言及しないが、ATE1-2上の仮想ROM1-4の出力するMPUの制御命令とは、ASIC1-1のパッケージ・ピンに与えられるテスト・ベクタだと考えてもらえればよいと思う)。
【００２７】
初めに行われるべき処理は、ASIC1-1システムの初期化処理(P101)である。MPU1-11は、ATE1-2上の仮想ROM1-4の出力する命令に応じて、検査に必要とされるチップの初期化処理を行う(例：ROM、メモリ、及び、周辺ユニットへのアクセス・クロック数の決定、割り込みの初期化、など)。次に、MPU1-11は検査のための入力データをATE1-2上の仮想ROM1-4より読み込む(P102)(即ち、予め、この動作を予想し、インストラクション・バス1-5に対して、入力のテスト・ベクタを作成しておくことになる)。MPU1-11は、読み込んだ値を自らの汎用レジスタにロードし、次に、そのデータをDUTの入力部に書き込んでいく(P103)。当然、１回のテスト(例：双方向印字4パス・モードのセレクタ出力を確認するテスト、通常文字印字のセレクタ出力を確認するテスト、など)を行うのに必要な入力パターン(即ち、設定すべきレジスタ数)は1つとは限らないので、テストに必要な設定が行えるまで、P102とP103の操作を繰り返すことになる(P104の判断と分岐)。
【００２８】
テストに必要な設定が終了した後、上記で図2を用いて説明したように、テスト出力を得るためにタイミング待ちが必要であれば、それを行う(P105の判断と分岐)。この場合、前述した通り、ポーリングか割り込みハンドルにてこれを行うと考えられるが、この操作はASIC1-1に内臓のMPU1-11を用いれば簡単に行える、既知の手順であるので、ここでは特に詳しい説明は記述しないことにする。
【００２９】
手順P105により、DUTからテスト出力が得られたことを知らされたMPU1-11は、そのテスト出力をDUTの読み取りレジスタから自らの汎用レジスタにロードさせる(この時、当然、前もってテストに使用されると考えられる出力は読み取り可能として設計されておくべきである)(107)。そして、次にMPU1-11は汎用レジスタにロードしたテスト出力をASIC1-1のパッケージの外部ピンにストアする(108)。例えば、上記外部にある(ATE1-2上の仮想)ROM1-4はフラッシュROMと言う仮定であったはずなので、ROM専用のインストラクション・バス1-5はMPU1-11のストア命令に対して開放されているはずである(もしくは、P101のシステム初期化設定で、書き込み可能アドレス領域に指定できるはずである)。即ち、外部にある(ATE1-2上の仮想)ROM1-4のアドレス領域に、上記汎用レジスタにロードしたテスト出力をストアすると言う操作により、(我々が目指すところである) ASIC1-1のパッケージの外部ピンへのテスト出力観測値の出力が可能となるはずである。そして、この操作(ASIC1-1のパッケージ外部ピンの信号変化)によって、ATE1-2がASIC1-1内の(スキャン・パスから外れた)モヂュール1-16のテスト出力の観測が行えるようになっている。
【００３０】
この時、当然、1回のテスト・モードによって得られる出力観測値は1つとは限らないので、検査されるべき出力観測値全てに対して、手順P106と手順P107の操作を行っていく(P108の判断と分岐)。
【００３１】
全ての出力観測値をASIC1-1のパッケージの外部ピンへ出力した後、仮に、まだ、検査されるべきテスト・モードがあるならば手順P102に操作を戻す(P109の判断と分岐)。全てのテスト・モードについて検査が完了していれば、ASIC1-1のテストを終了する(E101)。
【００３２】
上記の通り、テスト専用の特殊ロジックを持たせること無しに、かつ、基からASIC1-1に備わっている、MPU1-11のロード・ストア命令や、インストラクション・バス1-5などの仕組みを上手く利用することで、スキャン・パスから外れたDUTの検証を可能にしていることが分かる。また、この構成は、テスト専用の特殊ロジックを用いた検査を行っているわけでないので、仮に、ASIC設計の途中で、UDLの変更があったとしても(そして、それがスキャン・パスから外れたとしても)、外部にある(ATE1-2上の仮想)ROMのマイクロ・プログラムを変更することで、即ち、ATE1-2に与えるテスト・ベクタ入力を一部変更することで、設計変更したDUTへ検査が簡単に追加できることが分かると思う(つまり、P109の判断で、テスト・モードが増えることに等しいと考えられる)。
【００３３】
＜実施形態２＞
上記実施例-1では、ASIC内にフラッシュROMが内蔵されていないと言う仮定で話を進めたが、昨今のSOCチップでは、このフラッシュROMがASIC内に内蔵されている場合も多々ある。よって実施例-2として、このような場合の実現例について述べていく。
【００３４】
図-3は、本実施の代表的な構成を示したものである。基本的なASIC1-1の構成や、ATE1-2との関係などは、実施例-1と同じであるが、ASIC1-1の内部にROM2-1が内蔵となっていることが大きく異なる点である。」
ここで問題は、ROM2-1が内蔵であるため、ATE1-2からテスト用のマイクロ・プログラムを与えることができないことにある。この問題点に関する解決アプローチは多々あると考えられる。特に、昨今はフラッシュROMが一般的なため、予め、テスト用のマイクロ・プログラムをROM内に焼いておいて、ASIC1-1のテスト終了後に、それを消去し、その後、実際に使用する機器用のプログラムをセーブさせることも可能であろう。が、本実施例では、ROMを何度もそのように何度も書き換えるような手間を取らせない手法を提案することにする。
【００３５】
まず、この問題を解決するための必要な手段として、ASIC1-1の内部にテスト専用のマルチ・プレクサ2-2を持たせることにする。このテスト専用のマルチ・プレクサ2-2には、以下の信号群が制御される。まず、MPU1-11が持つ本来のインストラクション・バス2-21、そして、事実上、ASIC1-1の中で有効となる(即ち、命令セットのやり取りが行われる) インストラクション・バス2-22、次に、スキャンの対象となっていてATE1-2でのテストが不要であるユーザ定義のバス(例：インターフェイス系のバス、など)2-23、さらに、ASIC1-1の外部ピン1-3の一部であり、テスト専用のマルチ・プレクサ2-2でのセレクトが可能な外部パッケージ上のバス2-24、最後に、ASIC1-1の外部ピン1-3の一部であり信号線セレクト用の制御信号ピン2-25である。
【００３６】
このテスト専用のマルチ・プレクサ2-2は、以下のような機能を有する。まず、ASIC1-1の実際のユーザが使用する場合(例：プリンタ内に組み込んで使用する場合、など)、テスト・ピン2-25をプル・ダウンして使用することにする(当然、これは、プル・アップでも構わない)。この時、マルチ・プレクサ2-2は、MPU1-11のインストラクション・バス2-21とASIC1-1の中で有効となるインストラクション・バス2-22を接続し、さらに、ユーザ定義のバス2-23と外部ピン1-3上のバス2-24を接続する。この場合、MPU1-11は、ASIC1-1内のROM2-1からマイクロ・プログラムを読み出して、その動作を行い、また、ユーザ定義のバス2-23は、その本来の機能を果たすべく、ASIC1-1の外部に信号の入出力を行うように機能する。即ち、テスト・ピン2-25をプル・ダウンの場合は、ASICの通常の動作そのものを実現するモードとなる。
【００３７】
次に、その逆で、テスト・ピン2-25をプル・アップした場合、MPU1-11のインストラクション・バス2-21と外部ピン1-3上のバス2-24のみを接続し、ASIC1-1の中で有効となるインストラクション・バス2-22とユーザ定義のバス2-23はハイ・インピーダンス状態になるように、マルチ・プレクサ2-2はバスセレクトを行う。これにより、MPU1-11は、再び、ASIC1-1の外部ピン1-3からマイクロ・プログラムを読み出せる状態となり、即ち、ATE1-2の入出力ベクタで制御可能な状態となる。よって、この状態は、ASIC1-1のテスト・モードと言うことになる。
【００３８】
このテスト・モード時のテスト手順は実施例-1に同じである。一部、説明を付け加えると、ATEテストの状態でユーザ定義のバス2-23を殺していることから、このバス2-23に関連する場所はATEテストの対象にならない可能性が高い。よって、マルチ・プレクサ2-2によってセレクトされるユーザ定義のバス2-23は、可能な限り、スキャン・テストで検査可能であり、ATEテストの対象外であるモヂュールのバス(当然、これはASICの外部ピン上に公開されている必要がある)から選択されるべきであろう。
【００３９】
以上、本実施例は実施例-1とは異なり、1つだけテスト用の回路を設けることになってしまったが、このユニットも、一度、設計の前期に組み込んでおけば、後に、設計変更でテストすべき個所が増えた場合でも、テスト用の回路の変更無しに、その新たに検査すべき設計変更に柔軟に対応可能である(理由は、実施例-1に全く同じである、本提案の根幹部分の、なせる技と言える)。
【図面の簡単な説明】
【００４０】
【図１】本明細が提案するASICテスト機構の1実施形態の構成図
【図２】実施例-1の基本的な動作を説明するための補助的な図
【図３】本明細が提案するASICテスト機構の別実施形態の構成図
【図４】フローチャート
【符号の説明】
【００４１】
１−１  ASIC
１−２  ATE
１−３  ASICの外部ピン
１−４  ROM
１−５  インストラクション・バス
１−１１  MPU
１−１２  UDL
１−１３  RAM
１−１４  周辺バス
１−１５  メモリ・バス
１−１６  DUT
【図１】
2006119023.tif 000003
【図２】
2006119023.tif 000004
【図３】
2006119023.tif 000005
【図４】
2006119023.tif 000006