(57)【特許請求の範囲】
【請求項１】
コマンドがシリアルに供給されるテスト端子と、
上記テスト端子に結合され、上記コマンドに応答して制御信号を供給するテスト制御回路と、
テストデータ入力端子、テストデータ出力端子及び複数の信号端子とを有する機能モジュールと、
上記複数の信号端子に結合される入力を有するバスインターフェイス回路と、
上記テストデータ入力端子に結合される出力と上記バスインターフェイス回路に結合される出力とを有する第1セレクタと、上記テストデータ出力端子に結合される入力と上記バスインターフェイス回路に結合される入力とを有する第2セレクタと、を含む切換え回路と、
上記第1セレクタの入力と上記第2セレクタの出力とに結合された外部端子と、を含み、
上記第1セレクタは、上記制御信号に応答して、上記外部端子を上記テストデータ入力端子に結合される出力へ接続し、
上記第2セレクタは、上記制御信号に応答して、上記テストデータ出力端子に結合される入力を上記外部端子へ接続する
半導体集積回路。
【請求項２】
コマンドがシリアルに供給されるテスト端子と、
上記テスト端子に結合され、上記コマンドに応答して制御信号を供給するテスト制御回路と、
第1テストデータ入力端子、第1テストデータ出力端子及び複数の第1信号端子とを有する第1機能モジュールと、
第2テストデータ入力端子、第2テストデータ出力端子及び複数の第2信号端子とを有する第2機能モジュールと、
上記複数の第1信号端子に結合される第1入力と上記複数の第2信号端子に結合される第2入力を有するバスインターフェイス回路と、
上記第1テストデータ入力端子に結合される第1出力と上記バスインターフェイス回路の第1入力に結合される第2出力とを有する第1セレクタと、上記第1テストデータ出力端子に結合される第1入力と上記バスインターフェイス回路の第1出力に結合される第2入力とを有する第2セレクタと、上記第2テストデータ入力端子に結合される第3出力と上記バスインターフェイス回路の第2入力に結合される第4出力とを有する第3セレクタと、上記第2テストデータ出力端子に結合される第3入力と上記バスインターフェイス回路の第2出力に結合される第4入力とを有する第4セレクタと、を含む切換え回路と、
上記第1セレクタの入力と上記第2セレクタの出力とに結合された第1外部端子と、
上記第3セレクタの入力と上記第4セレクタの出力とに結合された第2外部端子と、を含み、
上記第1セレクタは、上記制御信号に応答して、上記第1外部端子を上記第1出力へ接続し、
上記第2セレクタは、上記制御信号に応答して、上記第1入力を上記第1外部端子へ接続し、
上記第3セレクタは、上記制御信号に応答して、上記第2外部端子を上記第3出力へ接続し、
上記第4セレクタは、上記制御信号に応答して、上記第3入力を上記第2外部端子へ接続する、
半導体集積回路。
【請求項３】
第1テストデータ入力端子、第1テストデータ出力端子及び複数の第1信号端子とを有する第1機能モジュールと、
第2テストデータ入力端子、第2テストデータ出力端子及び複数の第2信号端子とを有する第2機能モジュールと、
上記複数の第1信号端子に結合される第1入力と上記複数の第2信号端子に結合される第2入力を有するバスインターフェイス回路と、
外部端子と、
上記第1テストデータ入力端子及び第1テストデータ出力端子を上記外部端子へ結合する第1モードと、上記第2テストデータ入力端子及び上記第2テストデータ出力端子を上記外部端子へ結合する第2モードと、上記複数の第1信号端子を上記外部端子へ結合する第3モードと、上記複数の第2信号端子を上記外部端子へ結合する第4モードと、上記バスインターフェイス回路の出力を上記外部端子へ結合する第5モードと、を有する切換え回路と、
を含む半導体集積回路。
【請求項４】
コマンドがシリアルに供給されるテスト端子と、
上記テスト端子に結合され、上記コマンドに応答して制御信号を供給するテスト制御回路と、をさらに含み、
上記切換え回路は、上記制御信号にしたがって上記第１乃至第５モードを制御される、
請求項３に記載の半導体集積回路。
【発明の詳細な説明】
技術分野
本発明は、半導体集積回路（ＩＣ：Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）におけるテスト技術に関し、特に複数の機能モジュールによって構成されるデータ処理装置、マイクロプロセッサ、シングルチップ・マイクロコンピュータのようなシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）のテスト方式に適用して有効な技術に関する。
背景技術
半導体集積回路は、微細加工技術の発展により１つの半導体チップ上に搭載できる論理規模が次第に増加してきている。そのため、従来は複数のチップで実現していたマイクロプロセッサやシングルチップ・マイクロコンピュータのようなシステム的な機能を１つの半導体チップに搭載した半導体集積回路（以下、システムＬＳＩとも称する）も提供されるようになって来ている。
中央処理装置（ＣＰＵ）やリード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）等さまざまな機能を有する回路を１つの半導体チップ上に搭載する場合、互いの結合の仕方を決めておいて機能毎に分けて設計するのが効率的である。そして、そのような所定の機能を有するように設計された回路ブロック（本明細書ではこれを機能モジュールと称する）をデータベース等に登録し、後に類似の半導体集積回路を開発する際に登録されている複数のモジュールの中から所望の機能を有するものを選択して組み合せることによって、所望の仕様を満たす半導体集積回路を得ることができる。そのため、上記のようなデータベースの利用は、開発期間を短縮する上で極めて有効である。
データプロセッサやシングルチップ・マイクロコンピュータなどの論理集積回路の開発においては、開発の最終段階で内部論理回路が期待どおりに論理機能動作するかを検証（故障検出）するためロジックテストが行なわれる。小規模な論理集積回路のテストは、テストパターンを入力して出力信号を期待値と比較する方法を適用できる。しかし、大規模な論理集積回路ではテストパターンが膨大になり故障検出率も低下する。そのため、システムＬＳＩのような論理集積回路ではシフトスキャン方式のテスト機能を設けるようにしたものがある。
シフトスキャン方式のテスト回路は、論理回路を構成する複数のフリップフロップを直列形態に接続してシフトレジスタを構成可能にする。そして、テスト時、このシフトレジスタに入力ピンからテストデータをスキャンインして論理回路の内部に直接データを入れて動作させるとともに、ある時点でフリップフロップに保持されているデータを、シフトレジスタを利用して出力ピンにスキャンアウトさせることで、効率の良いテストを行なえるようにした技術である。
発明が解決しようとする課題
複数の機能モジュールからなる論理集積回路のテスト方法としては、各モジュールの入出力端子を外部端子に引き出して各モジュール毎にテストパターンを入力して検査する方法も考えられる。この方法は、一度作成したテストパターンを利用することができるという利点があるものの、端子数が大幅に増加し、ひいてはチップサイズが増大するという問題点がある。
また、各機能モジュール毎にシフトスキャン方式のテスト回路を設けて一度作成したテストパターンを別の半導体集積回路の開発のときに再利用することで開発期間の短縮を図ることも考えられる。しかしながら、複数の機能モジュールを組み合わせて半導体集積回路を開発する技術においては、テスト用のインターフェイス回路が半導体集積回路毎に異なる、すなわち半導体集積回路毎に異なる仕様のインターフェイス回路を設計していたため、スキャンパスも半導体集積回路毎に作成し直す必要があった。そのため、開発期間が充分に短縮されないという問題点があった。
本発明の目的は、複数の機能モジュールを使用して半導体集積回路を構成する場合の開発期間を短縮できるようにする技術を提供することにある。
この発明の他の目的は、外部端子数を増加させることなく各モジュールのテストを行なえる技術を提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
発明の開示
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
すなわち、複数の機能モジュールを使用してシステムＬＳＩなどの半導体集積回路を構成する場合に、各機能モジュールにはシフトスキャンパスが組み込まれる。また、各機能モジュールには、通常動作時の入出力端子と別に上記シフトスキャンパスに接続されたテスト用入出力端子が設けられる。さらに、半導体集積回路には、複数の機能モジュールの通常動作時の入出力端子をバスに接続するためのバスインターフェイス回路と、このバスインターフェイス回路のバス側入出力端子と各機能モジュールのテスト用入出力端子とを切り換えて外部端子に接続させる外部インターフェイス切換え回路と、この外部インターフェイス回路の切り換え制御を行なうインターフェイス制御回路とが設けられ、それらが１つの半導体チップ上に形成される。
また、上記インターフェイス制御回路として、ＩＥＥＥ１１４９．１規格で規定されているＪＴＡＧインターフェイスの制御回路が利用され、この制御回路に対するコマンドの一つとして上記外部インターフェイス切換え回路を切換え制御するための切換えコマンドが設けられる。上記インターフェイス制御回路はこの切換えコマンドが入力された場合、上記インターフェイス切換え回路を制御するための制御信号を形成するようにしたものである。
上記バスインターフェイス回路は、半導体集積回路の仕様に応じて入出力信号のレベルを変換したりタイミングを設定したり通信プロトコルを制御するものである。従来の半導体集積回路においては、半導体集積回路毎に異なる仕様のテスト用のインターフェイス回路を設計していたが、上記した手段によれば、半導体集積回路毎に異なる仕様のテスト用のインターフェイス回路を設計する必要がなくなる。さらに、スキャンパスに関しても各機能モジュールのテスト動作時の入出力端子を上記外部インターフェイス切換え回路に接続するパスを設けるだけで良い。そのため、従来のシフトスキャン方式を組み込んだ半導体集積回路のように半導体集積回路毎にスキャンパスやテストパターンを作成し直す必要がなくなる。従って、半導体集積回路の開発期間を大幅に短縮することができる。
また、上記外部インターフェイス切換え回路が、テスト動作時には上記モジュールのテスト用の入出力端子を上記外部端子に接続するので、外部端子数を増加させることなく各モジュールのテストを行なえる。さらに、インターフェイス制御回路として、ＩＥＥＥ１１４９．１規格で規定されているＪＴＡＧインターフェイスの制御回路を利用すれば汎用性を高めることができ、半導体集積回路の設計はもちろんテストも容易になる。
また、本発明では、ＩＥＥＥ１１４９．１規格によるＪＴＡＧインターフェイスを例として開示するが、同様の機能を有する専用インターフェイス制御回路を使用してもよい。また、これらのインターフェイス制御回路を有せず、中央処理装置で処理可能なテスト用コマンドを設け、当該コマンドにより、又は制御レジスタ等との組合せにより同様のテスト機能を実現しても良い。
発明を実施するため最良の形態
以下、本発明の好適な実施例を図面に基づいて説明する。
図１は、本発明を適用した半導体集積回路の一例としてのシステムＬＳＩの一実施例のブロック図で、公知の半導体集積回路の製造技術により単結晶シリコンのような１個の半導体チップ１００上に構成される。
図１には、システムＬＳＩの一例として、マイクロプロセッサもしくはシングルチップ・マイクロコンピュータに本発明を適用した場合の概略構成が示されている。
図１の符号１１０〜１４０は上記半導体チップ１００上に形成され所望の機能を有するシステムを構成する機能モジュール、１５０はこれらのモジュールと上記半導体チップ１００の外部に設けられた外部装置との間の信号の入出力を行なうバスインターフェイス回路、１６０は信号を入出力するための複数の外部端子である。この外部端子１６０には外部バスが接続される。
マイクロプロセッサもしくはシングルチップ・マイクロコンピュータを構成する機能モジュールとしては、プログラムの命令を解読して対応する処理や演算を実行する中央処理ユニット（ＣＰＵコア）の他に、プログラムや固定データを格納する読出し専用メモリＲＯＭと、ＣＰＵの作業領域やデータの一次格納領域を提供する随時読出し書込み可能なメモリＲＡＭと、バスの使用権の管理等を行なうバスコントローラと、シリアルコミュニケーションインターフェイス，タイマー回路，ＤＭＡ（ダイレクトメモリアクセス）コントローラ，デジタル・アナログ変換回路，アナログ・デジタル変換回路などの周辺回路モジュール（ＩＰ）がある。図１においては、１１０がＣＰＵコアであり、ＩＰ１２０〜１４０が上記周辺回路モジュールである。
この実施例のシステムＬＳＩにおいては、上記各機能モジュール１１０〜１４０およびバスインターフェイス回路１５０と外部端子１６０との間に、バスインターフェイス回路１５０のための本来の信号パス１７０と、上記各機能モジュール１１０〜１４０へ直接信号の入出力を可能にするための直結パス１７１と、上記各機能モジュールのために設けられたシフトスキャン用のスキャンパス１７２，１７３，１７４，１７５とを切り換える外部インターフェイス切換え回路１８０と、この外部インターフェイス切換え回路１８０の切り換え制御信号を形成するインターフェイス制御回路１９０が設けられている。上記スキャンパス１７２〜１７５は、それぞれテストデータを入力するためのテストデータ入力配線（スキャンインパス）及びテストデータを出力するためのテストデータ出力配線（スキャンアウトパス）を含む。
上記インターフェイス制御回路１９０は、図７で説明されるように、テストモード制御信号ＴＣＫ，ＴＲＳＴ，ＴＭＳ及びテストデータ入力信号ＴＤＩ、テストデータ出力信号ＴＤＯのための複数の外部端子１９５に結合される。上記制御回路１９０は、ＩＥＥＥ１１４９．１規格で規定されているＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）のインターフェイス制御回路が使用され、この制御回路に対するコマンドの一つとして上記外部インターフェイス切換え回路１８０を切り換えるための切換えコマンドが設けられている。インターフェイス制御回路１９０は、この切換えコマンドが上記外部端子１９５から入力されると上記外部インターフェイス切換え回路１８０に対するインターフェイス切換え制御信号ＩＮＣを形成して制御するように構成されている。
なお、図１において、上記モジュールの他に、ユーザが要求する論理機能を有する論理回路（いわゆるユーザ論理回路）がモジュールとして搭載されることもある。また、各モジュール１１０〜１４０に設けられるスキャンパスは１本に限定されるものでなく、各モジュール毎に必要に応じた本数だけ設けられても良い。そして、複数本のスキャンパスが設けられた場合、上記外部インターフェイス切換え回路１８０はそれぞれのスキャンパスに対するインターフェイスの切換えを行なうことになる。外部端子１６０がスキャンパスの本数以上あれば、これらのスキャンパスを同時にテストすることができる。
図２は、図１に示されているシステムＬＳＩを構成する一つ一つの機能モジュール１１０〜１４０をその論理構成に着目して模式的に示したものである。
図２に示されているように、各機能モジュール１１０〜１４０は、ラッチ回路もしくはフリップフロップを含み、ある時点での出力がそのときの入力信号のみでは決定されず入力信号と直前の内部状態によって決定される順序回路２１０と、ある時点での出力がそのときの入力信号のみで決定されるデコーダや演算器などの組合せ回路２２０とで構成される。図２において、符号ＦＦ１〜ＦＦｎが付されているのは、順序回路２１０の論理を構成するとともにスキャンパス用のシフトレジスタを構成可能なフリップフロップである。
図２には、フリップフロップＦＦ１〜ＦＦｎがスキャンパス用のシフトレジスタを構成している様子が示されている。２３１はこのシフトレジスタに対するテストデータのスキャンインパス、２３２はこのシフトレジスタからのデータのスキャンアウトパス、２４０はモジュール１１０〜１４０の本来の入出力信号である。入出力信号２４０は組合せ回路２２０に対して入力されたり出力されることもあるが、一般にはクロック信号に同期して動作する順序回路２１０に対して入力され、また出力信号は一旦フリップフロップにラッチされてから所定のタイミングで出力されることが多い。上記スキャンインパス２３１及びスキャンアウトパス２３２は、図１のスキャンパス１７１〜１７５のいずれかを構成するものとみなされる。
図３には、上記フリップフロップＦＦ１〜ＦＦｎの具体例が示されている。同図に示すように、各フリップフロップは、マスタラッチＭＬＴとスレーブラッチＳＬＴのダブルラッチ構成とされている。
このうちマスタラッチＭＬＴは、２つのデータ入力端子３０１，３０３と、データ入力端子３０１へのデータラッチタイミングを与えるクロックＣＫ１の入力端子３０２と、データ入力端子３０３へのデータラッチタイミングを与えるクロックＣＫ２の入力端子３０４とを備える。マスタラッチＭＬＴは、上記データ端子３０１に入力されるデータ信号Ｄおよびその反転信号とクロック端子３０２に入力されるクロック信号ＣＫ１とを入力とするＮＡＮＤゲートＧ１，Ｇ２と、上記データ端子３０３に入力されるデータ信号ＳＩＮおよびその反転信号とクロック端子３０４に入力されるクロック信号ＣＫ２とを入力とするＮＡＮＤゲートＧ５，Ｇ６、これらのＮＡＮＤゲートＧ１，Ｇ２，Ｇ５，Ｇ６の出力信号を入力とし互いに出力端子が他方のゲートの入力端子の一つに交差結合されたＮＡＮＤゲートＧ３，Ｇ４とにより構成されている。
マスタラッチＭＬＴの上記データ入力端子３０１には、内部論理回路を構成する前段の論理ゲートからの信号Ｄが入力され、データ入力端子３０３にはスキャンパスを構成する前段のフリップフロップからの信号ＳＩＮが入力される。
一方、スレーブラッチＳＬＴは、上記マスタラッチＭＬＴの出力ノードＮ１，Ｎ２に接続された２つのデータ入力端子と、該データ入力端子のデータラッチタイミングを与えるクロック端子３０６と、１つのデータ出力端子３０５とを備える。そして、スレーブラッチＳＬＴは、マスタラッチＭＬＴの出力信号とクロック端子３０６に入力されるクロック信号ＣＫ３とを入力とするＮＡＮＤゲートＧ７，Ｇ８と、これらのＮＡＮＤゲートＧ７，Ｇ８の出力信号を入力とし互いに出力端子が他方のゲートの入力端子の一つに交差結合されたＮＡＮＤゲートＧ９，Ｇ１０とにより構成されている。
このスレーブラッチＳＬＴの出力端子３０５は、内部論理回路を構成する後段の論理ゲートの入力端子と、スキャンパスを構成する後段のフリップフロップのデータ入力端子に共通に接続される。このように接続されていても、マスタラッチＭＬＴに対してクロックＣＫ１またはＣＫ２のいずれかを適切なタイミングで与えることで、通常動作時にスキャンパス上の前段フリップフロップからの信号をマスタラッチＭＬＴに取り込んでしまうのを回避することができる。
なお、図３に示されているフリップフロップにおいては、通常動作時の信号の出力端子Ｑとスキャンテスト時の信号の出力端子ＳＯＵＴとを共通にしているが、別々に出力端子を設けるようにしてもよいことはいうまでもない。
図４（ａ）には、内部スキャンパスを構成するフリップフロップＦＦｉ（ｉ＝１〜ｎ）にテストデータをスキャン入力させて内部論理回路に供給する場合の各クロック信号ＣＫ１〜ＣＫ３とデータ信号ＳＩＮのタイミングが、図４（ｂ）には内部論理回路内の論理ゲートの出力（データＤ）をフリップフロップＦＦｉに取り込み、取り込んだデータをスキャン出力させる場合の各クロック信号ＣＫ１〜ＣＫ３とデータ信号Ｄのタイミングが、また図４（ｃ）には通常動作時に前段の論理ゲートの出力をフリップフロップＦＦｉに取り込んで次段の論理ゲートに出力させる場合の各クロック信号ＧＫ１〜ＣＫ３とデータ信号Ｄのタイミングが示されている。
スキャンパスよりフリップフロップへテストデータをスキャン入力する際には、図４（ａ）に示すように、先ずクロックＣＫ２でスキャンインデータの入力端子３０３のデータＳＩＮをマスタラッチＭＬＴへ取り込んでから、クロックＣＫ３でマスタラッチＭＬＴの保持データをスレーブラッチＳＬＴへ転送する。これを繰り返すことで、テストデータがスキャンパス上のフリップフロップＦＦ１〜ＦＦｎによって次々とシフトされて行く。
テストデータのスキャン入力が終了すると、そのデータが本来の論理回路に入力され、その出力が変化する。その出力Ｄを、図４（ｂ）に示すように、クロックＣＫ１でデータ入力端子３０１よりマスタラッチＭＬＴへ取り込んでから、クロックＣＫ３でマスタラッチＭＬＴの保持データをスレーブラッチＳＬＴへ転送する。これにより内部論理回路内の論理ゲートの出力をデータ入力端子３０１よりフリップフロップに取り込むことができる。
次に、再びクロックＣＫ２とＣＫ３を交互にフリップフロップＦＦ１〜ＦＦｎに与えることで、フリップフロップＦＦ１〜ＦＦｎに取り込まれたデータをスキャンパスに沿ってシフトさせる。これによって、スキャンインデータに基づく内部論理回路の動作結果をスキャンパスを介して外部端子へ出力させることができる。
一方、通常動作時には図４（ｃ）に示すタイミングによるデータ入力端子Ｄのデータの取込みとマスタラッチＭＬＴからスレーブラッチＳＬＴへのデータ転送を繰り返すことで論理動作を行なわせることができる。
図５は、図１に示されている外部インターフェイス切換え回路１８０の具体例である。
この実施例の外部インターフェイス切換え回路１８０は、複数のセレクタによって構成されている。図５には２つの外部端子１６１，１６２に対応して４つのセレクタ４１１〜４１４が示されているが、セレクタの数は４個に限定されるものでない。図５に示されている外部端子１６１，１６２は入力と出力で端子を共有する端子であるため、各外部端子毎にそれぞれ２つずつセレクタが設けられているが、入力専用または出力専用の端子ではそれぞれ１つずつセレクタが設けられる。
セレクタ４１１は、テスト時、切換え制御信号ＩＮＣに応答して、
（１）モジュール１１０（ＣＰＵコア）に結合されたスキャンアウトパス（テスト信号出力配線）４０２からのテスト結果出力信号（スキャンアウト信号）、
（２）各モジュール１２０（１３０、１４０）に結合されたスキャンアウトパス（テスト信号出力配線）４０８からのテスト結果出力信号（スキャンアウト信号）、又は、
（３）上記モジュール１１０に結合された信号用配線４０３からの出力信号及び上記モジュール１１０に結合された信号用配線４０４の内、上記バスインターフェイス回路１５０を介さない出力信号を、
選択的に、上記外部端子１６１へ結合させるために設けられる。
一方、セレクタ４１１は、通常動作時、上記バスインターフェイス回路１５０に結合される通常信号配線１７０からの通常出力信号を、上記外部端子１６１へ出力させるために設けられる。
セレクタ４１２は、テスト時、外部端子１６１から入力されるテスト入力信号を、
（４）スキャンイン信号として、モジュール１１０（ＣＰＵコア）に結合されたスキャンインパス（テスト信号入力配線）４０１、
（５）スキャンイン信号として、モジュール１２０（１３０、１４０）に結合されたスキャンインパス（テスト信号入力配線）４０７、
（６）テスト信号として、モジュール１１０に結合された信号用配線４０３及び上記モジュール１１０に結合された信号用配線４０４へ、選択的に、供給するために設けられる。
一方、上記セレクタ４１２は、通常動作時、外部端子１６１から入力される通常入力信号を上記バスインターフェイス回路１５０に結合される通常信号配線１７０へ入力するために設けられる。
したがって、セレクタ４１１及び４１２には、図５において図示されるように、複数の機能モジュールのスキャンインパス及びスキャンアウトパスが接続されても良く、また、一の機能モジュールのスキャンインパス及びスキャンアウトパスに接続されても良い。
セレクタ４１３及び４１４は、外部端子１６２のために設けられ、上記機能モジュール１１０及び１２０以外の機能モジュール１３０又は１４０に結合される。
図５には複雑さをさけるために図示されていないが、以下のようにされる。
すなわち、セレクタ４１３は、テスト時、
（７）モジュール１３０又は１４０に結合されたスキャンアウトパス（テスト信号出力配線）からのテスト結果出力信号（スキャンアウト信号）、
（８）上記モジュール１１０、１２０、１３０又は１４０に結合された信号用配線（４０３、４０６などに対応する通常信号用配線）から選択された出力信号、及び、上記モジュール１１０、１２０、１３０又は１４０に結合された信号用配線（４０４、４０５などに対応する信号配線）の内、上記バスインターフェイス回路１５０を介さない出力信号を、
選択的に、上記外部端子１６２へ出力させるために設けられる。
一方、セレクタ４１３は、通常動作時、上記バスインターフェイス回路１５０に結合される通常信号配線１７０からの通常出力信号を、上記外部端子１６２へ結合させるために設けられる。すなわち、この場合、セレクタ４１３は、実施例の半導体集積回路の通常動作モードにおける機能を満足するように、外部端子１６２に信号出力機能を割り当てる。したがって、外部端子１６２の接続先は、上記モジュール１１０、１２０、１３０及び１４０から選択された任意の機能モジュールとされる。
セレクタ４１４は、テスト時、外部端子１６２から入力されるテスト入力信号を、
（９）スキャンイン信号として、モジュール１３０又は１４０に結合されたスキャンインパス（テスト信号入力配線）へ、又は、
（１０）テスト入力信号として、外部端子１６２から入力される通常入力信号を、上記モジュール１１０、１２０、１３０又は１４０に結合された信号用配線（４０３、４０６などに対応する信号用配線）、及び、上記モジュール１１０、１２０、１３０又は１４０に結合された信号用配線（４０４、４０５などに対応する信号配線）へ、
選択的に、供給するために設けられる。
一方、上記セレクタ４１４は、通常動作時、外部端子１６２から入力される通常信号を、上記バスインターフェイス回路１５０に結合される通常信号配線１７０へ供給するために設けられる。すなわち、この場合、セレクタ４１４は、実施例の半導体集積回路の通常動作モードにおける機能を満足するように、外部端子１６２に信号入力機能を割り当てる。したがって、外部端子の１６２の接続先は、上記モジュール１１０、１２０、１３０及び１４０から選択された任意の機能モジュールとされる。
なお、図５において、４２１はセレクタ４１１の出力信号を外部端子１６１へ供給する出力バッファ回路、４２２は外部端子１６１から入力された信号をセレクタ４１２へ供給する入力バッファ回路、４２３はセレクタ４１３の出力信号を外部端子１６２へ供給する出力バッファ回路、４２４は外部端子１６２から入力された信号をセレクタ４１４へ供給する入力バッファ回路である。
上記セレクタ４１１〜４１４は、ＪＴＡＧインターフェイス制御回路１９０からの複数の切換え制御信号ＩＮＣによってその切換え動作が制御される。セレクタ４１１〜４１４による切換え動作によって、図６（ａ）〜（ｅ）に示すような５つの入出力モードを達成することができる。以下各モードについて説明する。
（ａ）モジュール１１０（ＣＰＵコア）および周辺モジュール１２０の入出力端子を、バスインターフェイス回路１５０を介して外部端子１６１，１６２に接続する通常動作モード。このモードは、セレクタ４１１〜４１４の通常動作によって達成される。
（ｂ）モジュール１１０（ＣＰＵコア）の入出力端子を、直接外部端子１６１，１６２に接続して入出力を行なって当該モジュールの機能をテストする単独ＣＰＵテストモード。このモードは、セレクタ４１１〜４１４の前記（３），（６），（８）及び（１０）などの動作によって達成される。
（ｃ）周辺モジュール１２０（１３０，１４０）の入出力端子を、直接外部端子１６１（１６２）に接続して入出力を行なって当該モジュールの機能をテストする単独周辺モジュールテストモード。このモードは、セレクタ４１３及び４１４の前記（８）及び（１０）の動作によって達成される。
（ｄ）モジュール１１０（ＣＰＵコア）のスキャンパス４０１，４０２を、直接外部端子１６１に接続してテスト信号のスキャンインおよびスキャンアウトを行なうＣＰＵシフトスキャンテストモード。このモードは、セレクタ４１１及び４１２の前記（１）及び（５）の動作によって達成される。
（ｅ）周辺モジュール１２０（１３０，１４０）のスキャンパス４０７，４０８を、直接外部端子１６１，１６２に接続してテスト信号のスキャンインおよびスキャンアウトを行なう周辺モジュールシフトスキャンテストモード。このモードは、セレクタ４１１〜４１４の前記（２），（５），（７）及び（９）の動作によって達成される。
図７は、図１に示されているＪＴＡＧインターフェイス制御回路１９０の具体例を示す。
ＪＴＡＧインターフェイス制御回路１９０は、ＩＥＥＥ１１４９．１規格で規定されている内部シフトスキャンテストやバウンダリスキャンテスト回路のためのインターフェイスを達成する制御回路である。上記制御回路１９０は外部からシリアルに入力されるテストデータやコマンドの取り込み及びチップ内のモジュールからのテスト結果データのシリアル出力のためのＴＡＰ（Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｐｏｒｔ）とされるコマンド・データ入出力回路５１０と、該入出力回路５１０を制御するＴＡＰコントローラ５２０と、コマンド・データ入出力回路５１０により取り込まれた命令（コマンド）を解読し上記命令に対応するテスト制御を行なうテスト制御部５３０とから構成される。
ＴＡＰコントローラ５２０は、３つの専用外部端子５０１〜５０３に接続され、これらの端子５０１〜５０３から、テストモードを指定するためのテストモードセレクト信号ＴＭＳ、テスト用クロックＴＣＫ、非同期リセット信号ＴＲＳＴをそれぞれ入力可能に構成されている。ＴＡＰコントローラ５２０は、これらの信号ＴＭＳ，ＴＣＫ及びＴＲＳＴの信号レベルに基づいてコマンド・データ入出力回路５１０内のレジスタ５１１〜５１５やマルチプレクサ５１６を制御する制御信号５２０１を形成する。特に制限されるものでないが、ＴＡＰコントローラ５２０はテストモードセレクト信号ＴＭＳのパルスが１つ入るたびにテストモードの切り換えを行うように構成されている。
コマンド・データ入出力回路５１０は、入力ポート用端子５０４からのテストデータを出力ポート用端子５０５へシフトするときに使用するバイパスレジスタ５１１、入出力データのシリアル／パラレル変換を行なうシフトレジスタ５１２、内部のテスト方法を制御するコマンドが格納されるインストラクションレジスタ（ＳＤＩＲ）５１３、チップ固有の製造識別番号を設定するためのデバイスＩＤレジスタ（ＩＤＣＯＤＥ）５１４、各モジュールへ特定の信号を伝える場合に使用するデータレジスタ（ＳＤＤＲ）５１５、バイパスレジスタ５１１とシフトレジスタ５１２のパスの切り換えを行なうマルチプレクサ５１６（ＭＵＸ）等により構成されている。
また、コマンド・データ入出力回路５１０には、コマンドまたはデータＴＤＩの入力端子５０４とテスト結果データＴＤＯの出力端子５０５が設けられており、入力されたテストデータＴＤＩは上記シフトレジスタ５１２を介して各レジスタ５１３〜５１５へ供給される。また、コマンド・データ入出力回路５１０内の上記レジスタ５１３〜５１５には信号線５４０を介してチップ内の各モジュールからの値を格納することができるように構成されている。
ＪＴＡＧ規格では、上記インストラクションレジスタ５１３に設定される命令として、幾つかの必須命令が用意されているが、その他にオプション命令を何個か設けることができるようにされている。この実施例では、そのオプション命令の一つとして上記外部インターフェイス切換え回路１８０を切換え制御するための切換えコマンドが設けられる。この切換えコマンドがデータ入力端子５０４よりコマンド・データ入出力回路５１０に入力されると、インストラクションレジスタ５１３に格納され、コマンドデコーダ５３１がこのコマンドをデコードする。テストモード判定回路５３２は、コマンドデータ５３１のデコード結果よりテストモードの種類とどのモジュールのテストが実行されるのかを判定し、例えば、外部インターフェイス切換え回路１８０の切換え制御信号ＩＮＧを出力する。
テスト制御部５３０は、上記コマンドデコーダ５３１およびテストモード判定回路５３２の他に、他の半導体集積回路との信号のやり取りをテストするためのバウンダリスキャンパスを制御するバウンダリスキャン制御回路５３３と、シフトスキャンテストの際にスキャンパスを構成する前記フリップフロップ（図３）のスキャン用クロック信号ＣＫ２，ＣＫ３およびモニタ信号の取込みを行なわせるクロック信号ＣＫ１等、テスト用のクロック信号および制御信号を生成するテスト回路５３４が設けられている。
図１の実施例では説明しなかったが、このバウンダリスキャン制御回路５３３の制御機能を使用したバウンダリスキャンテストを行なう機能を半導体集積回路に持たせる場合には、例えば外部インターフェイス切換え回路１８０内にバウンダリスキャンパスを構成するシフトレジスタが設けられる。
図８は上述した実施例の変形例を示すもので、ＪＴＡＧインターフェイス制御回路１９０をモジュール１１０（ＣＰＵコア）内に一体に設けたものである。このように構成することにより、一旦かかるインターフェイス制御回路内蔵モジュールを設計すれば、それをデータベース等に登録しておくことにより、他のシステムＬＳＩを開発する際にこのモジュールを使用することでインターフェイス制御回路を設計する手間も省くことができる。インターフェイス制御回路を一体に設けておくモジュールはＣＰＵコアに限定されず、任意の周辺モジュールであってもよい。特にシステムＬＳＩを開発する際に使用される頻度が高いモジュールが最も望ましい。
図９は、本発明を適用したシステムＬＳＩの他の実施例を示す。この実施例は、モジュール内部のスキャンパス（４０１，４０２）の他に、モジュール周りの信号すなわち外部端子を介してモジュールに入出力される信号（４０３，４０４）およびモジュール間の信号（８０３）をラッチするフリップフロップ８０１を設け、これらを直列形態に接続してテスト信号をスキャンインしたりモニタ信号をスキャンアウトするスキャンパス（８０２）を設け、このスキャンパスも外部インターフェイス切換え回路１８０で切り換える他の信号パスと切り換えることができるようにしたものである。
なお、このモジュール周りの信号のスキャンパスの制御は、図７に示されているバウンダリスキャン制御回路５３３の機能を用いて行なうようにすることも可能である。モジュール内部のスキャンパスは、そのスキャンパスを構成するフリップフロップよりも後段の論理ゲートの出力信号をモニタすることができないが、図９のようにモジュール周りの信号をモニタ可能なスキャンパスを設けることにより、より確実なテストを行なうことができる。本実施例と図１の実施例と組み合わせて適用する場合、図９の信号パス４０３，４０４上の信号をラッチするフリップフロップは省略して純粋なモジュール間の信号のみモニタするフリップフロップからなるスキャンパスを設けるようにしてもよい。
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば上記実施例ではシフトスキャンテストの際のスキャンインデータを外部端子１６０から外部インターフェイス切換え回路１８０を介して各スキャンパスに入れるようにしているが、チップ内部にランダムパターン発生回路のようなテスト信号を発生する回路を設けてそこから各スキャンパスにテスト信号を入れるように構成することも可能である。
また、インターフェイス制御回路として、ＩＥＥＥ１１４９．１規格によるＪＴＡＧインターフェイスに代わり、専用のインターフェイス制御回路を用いて外部インターフェイス切換え回路の制御等を行うことも可能である。更に、インターフェイス制御回路を有する代わりに、中央処理装置が実行可能なテスト用コマンドを予め組み込んでおき、当該コマンドの実行により又は制御レジスタ等との組み合わせにより、中央処理装置又は、テスト用の制御回路が、外部インターフェイス切換え回路の制御等を行うことも可能である。
産業上の利用可能性
以上の説明では主として本発明者によってなされた発明をその背景となったマイクロプロセッサないしはシングルチップ・マイクロコンピュータを例にとって説明したが、この発明はそれに限定されず、複数のモジュールを内蔵するＬＳＩに広く利用することができる。
発明の効果
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、本発明に従うと、複数の機能モジュールを使用してシステムＬＳＩを構成する場合の開発期間を短縮することができる。また、外部インターフェイス切換え回路が、テスト動作時には上記モジュールのテスト用の入出力端子を外部端子に接続するので、外部端子数を増加させることなく各モジュールのテストを行なえる。
【図面の簡単な説明】
図１は、本発明を適用して好適な半導体集積回路の一実施例のブロック図である。
図２は、半導体集積回路を構成する機能モジュールの概略構成を示す概念図である。
図３は、シフトスキャン方式のテスト用シフトレジスタを構成可能なフリップフロップの具体例を示す論理構成図である。
図４は、シフトスキャン用のフリップフロップの動作タイミングを示すタイミングチャートである。
図５は、外部インターフェイス切換え回路の構成と機能モジュールとの関係を表わす概略構成図である。
図６は、本発明を適用した半導体集積回路における信号パスの切換え状態を示す説明図である。
図７は、ＪＴＡＧインターフェイス制御回路の構成例を示すブロック図である。
図８は、本発明の他の実施例を示すブロック図である。
図９は、本発明を適用した半導体集積回路における機能モジュール間の信号の観測方法の一例を示す説明図である。
【図１】
0003966453.tif 000002
【図２】
0003966453.tif 000003
【図３】
0003966453.tif 000004
【図４】
0003966453.tif 000005
【図５】
0003966453.tif 000006
【図６】
0003966453.tif 000007
【図７】
0003966453.tif 000008
【図８】
0003966453.tif 000009
【図９】
0003966453.tif 000010