(57)【要約】【課題】観測したい信号がシステムクロックに同期して動作するフリップフロップの出力である場合、たとえシステムデータバス上に観測したい信号を抽出するシステムを構築したとしても、抽出した信号をバスマスタがラッチする時点で値の変化が起こってしまう可能性がある。【解決手段】システムクロックに同期して動作する組合せ回路１１、例えばステートマシンを検証対象とするテスト回路において、そのテストモード時には、シミュレーション実行結果を保持するフリップフロップ１２にはそのクロックとして、クロックイネーブル信号がセットされることでアクティブとなるクロックイネーブラ１３２を通してそのアクティブ期間においてのみシステムクロックを供給するようにする。【選択図】　　　　図１
2004127058.tif 000002
【特許請求の範囲】
【請求項１】
システムクロックに同期して動作する検証対象回路の論理設計のシミュレーションを行うテスト回路であって、
前記検証対象回路のシミュレーション実行結果を保持する保持手段と、
テストモード時に前記保持手段への前記システムクロックの供給をコントロールするクロック制御手段と
を備えたことを特徴とするテスト回路。
【請求項２】
前記検証対象回路が組合せ回路である
ことを特徴とする請求項１記載のテスト回路。
【請求項３】
前記組合せ回路がステートマシンである
ことを特徴とする請求項２記載のテスト回路。
【請求項４】
前記クロック制御手段は、クロックイネーブル信号が与えられたときアクティブ状態となり、そのアクティブ期間においてのみ前記システムクロックを前記保持手段に供給する
ことを特徴とする請求項１記載のテスト回路。
【請求項５】
前記クロックイネーブル信号は、前記システムクロックの１サイクル分を単位とする信号である
ことを特徴とする請求項４記載のテスト回路。
【請求項６】
システムクロックを分周して得られる分周クロックに同期して動作を行う検証対象回路の論理設計のシミュレーションを行うテスト回路であって、
テストモード時に前記検証対象回路への前記システムクロックの供給をコントロールするクロック制御手段
を備えたことを特徴とするテスト回路。
【請求項７】
前記検証対象回路が前記分周クロックに同期してカウント動作を行うカウンタ回路である
ことを特徴とする請求項６記載のテスト回路。
【請求項８】
前記クロック制御手段は、クロックイネーブル信号が与えられたときアクティブ状態となり、そのアクティブ期間においてのみ前記システムクロックを前記検証対象回路に供給する
ことを特徴とする請求項６記載のテスト回路。
【請求項９】
前記クロックイネーブル信号は、前記システムクロックの１サイクル分を単位とする信号である
ことを特徴とする請求項８記載のテスト回路。
【請求項１０】
システムクロックに同期して動作する検証対象回路と、
前記検証対象回路の論理設計のシミュレーション実行結果を保持する保持手段およびテストモード時に前記保持手段への前記システムクロックの供給をコントロールするクロック制御手段を有し、前記検証対象回路と同一チップ上に実装されたテスト回路と
を備えたことを特徴とする半導体装置。
【請求項１１】
システムクロックを分周して得られる分周クロックに同期して動作を行う検証対象回路と、
テストモード時に前記検証対象回路への前記システムクロックの供給をコントロールするクロック制御手段を有し、前記検証対象回路と同一チップ上に実装されたテスト回路と
を備えたことを特徴とする半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テスト回路および半導体装置に関し、特にＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｅｄ　ｃｉｒｃｕｉｔ）等の半導体装置についての論理設計の検証を行うテスト回路およびこれを搭載した半導体装置に関する。
【０００２】
【従来の技術】
半導体装置、特にＬＳＩの論理設計の検証を、マイクロプロセッサを含むシステムで行う場合、検証対象のデザインがその機能を十全に果たしているか否かをシミュレーションし、そのシミュレーション実行結果をシステムデータバス上に抽出してマイクロプロセッサで判断することになる。このシステムの構築が回路構成上不可能であれば、シミュレーション実行結果を波形出力し、その波形を目視で確認しなければならない。このように、シミュレーション実行結果の確認作業を目視で行うのでは非常に効率が悪い。
【０００３】
そのため、特にＬＳＩの論理設計の検証を行うテスト回路について、デザイン内の観測（検証）したい回路部分のシミュレーション実行結果をシステムデータバス上に抽出できるように構成する場合が多い。この種のテスト回路として、テストモードを持ち、通常のパスとは別経路でテストデータを入力し、その値をフリップフロップで保持し、当該フリップフロップにシステムクロックを与えてその出力をシミュレーション実行結果としてシステムデータバス上に抽出する構成のものが知られている（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開平１１−１１１９２４号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来例に係るテスト回路では、システムデータバス上に抽出するシミュレーション実行結果が、システムクロックに同期して動作するフリップフロップの出力であるため、ある程度の出力変化を予測できるとしても、クロックサイクルベースでの予測は困難である。何故ならば、図３に示すように、フリップフロップ１０１の入力値（Ｄ）は組合せ回路１０２の出力である場合が多いことから、当該入力値に多くの信号が関係するため、その信号が変化する時間を把握しなければいけないからである。
【０００６】
そのため、観測したい信号が上述したようにシステムクロックに同期して動作するフリップフロップ１０１の出力である場合には、たとえ観測したい信号をシステムデータバス上に抽出するシステムを構築したとしても、抽出した信号をバスマスタがラッチする時点では値の変化が起こってしまうかもしれず、検証対象のデザインがその機能を十全に果たしているか否かのシミュレーションを確実に行えないことになる。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、特にＬＳＩの論理設計の検証を確実に行うことが可能なテスト回路およびこれを搭載した半導体装置を提供することにある。
【０００８】
【課題を解決するための手段】
本発明によるテスト回路は、システムクロックに同期して動作する検証対象回路の論理設計のシミュレーションを行うテスト回路であって、この検証対象回路のシミュレーション実行結果を保持する保持手段と、テストモード時に前記保持手段への前記システムクロックの供給をコントロールするクロック制御手段とを備えた構成となっている。
【０００９】
本発明による他のテスト回路は、システムクロックを分周して得られる分周クロックに同期して動作を行う検証対象回路の論理設計のシミュレーションを行うテスト回路であって、テストモード時に前記検証対象回路への前記システムクロックの供給をコントロールするクロック制御手段を備えた構成となっている。
【００１０】
このように、検証対象回路のシミュレーション実行結果を保持する手段または当該検証対象回路へのシステムクロックの供給をコントロールする回路を実装することにより、任意のクロックサイクルタイミングで任意の回数だけシステムクロックの供給が可能になる。これにより、テスト時の論理変化を目視確認で検証するのではなく、バスマスタによって比較演算することで論理設計の検証を行うことができる。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１２】
［第１実施形態］
図１は、本発明の第１実施形態に係るテスト回路の構成例を示すブロック図である。本実施形態に係るテスト回路は組合せ回路を検証対象とし、当該組合せ回路の論理設計のシミュレーションを行う。
【００１３】
図１から明らかなように、本実施形態に係るテスト回路は、システムクロックに同期して動作する例えば３入力の組合せ回路１１を検証対象としており、当該組合せ回路１１のシミュレーション実行結果を保持する保持回路、例えばフリップフロップ１２と、このフリップフロップ１２へのクロックの供給を制御するクロック制御回路１３と、テストレジスタ１４−１，１４−２，１４−３およびセレクタ１５−１，１５−２，１５−３を有する構成となっている。
【００１４】
組合せ回路１１としては、例えばステートマシンが挙げられる。ステートマシンは、あらかじめ決められた複数の状態を、決められた条件にしたがって、決められた順番で遷移していくデジタル・デバイスである。セレクタ１５−１，１５−２，１５−３は、モード切り替え信号に応じて通常モード時には入力１，２，３を、テストモード時にはテスト入力１，２，３をそれぞれ選択して組合せ回路１１に与える。
【００１５】
テストレジスタ１４−１，１４−２，１４−３は、バスマスタ、即ちマイクロプロセッサ（図示せず）からシステムデータバス１６を介して任意に与えられるテストデータ（値）をシステムクロックに同期して取り込んでこれをセレクタ１５−１，１５−２，１５−３にテスト入力１，２，３として与える。組合せ回路１１は、セレクタ１５−１，１５−２，１５−３による切り替えにより、通常モード時には入力１，２，３に応じた回路動作を行う一方、テストモード時にはテスト入力１，２，３に応じた回路動作を行う。
【００１６】
クロック制御回路１３は、フリップフロップ１２に与えるクロックを制御するために設けられたものであって、本実施形態の特徴とする回路部分である。このクロック制御回路１３は、図１から明らかなように、セレクタ１３１およびクロックイネーブラ１３２によって構成されている。セレクタ１３１は、電源電圧ＶＤＤおよびクロックイネーブル信号を２入力とし、モード切り替え信号に応じてその一方を選択する。具体的には、通常モード時には電源電圧ＶＤＤを選択し、テストモード時にはクロックイネーブル信号を選択してクロックイネーブラ１３２に与える。
【００１７】
クロックイネーブラ１３２は、通常モード時にはセレクタ１３１から電源電圧ＶＤＤが与えられることで常時アクティブ状態となり、フリップフロップ１２にそのクロックとしてシステムクロックを供給する。一方、テストモード時には、クロックイネーブラ１３２は、セレクタ１３１からクロックイネーブル信号がセットされたときにのみアクティブ状態となり、そのアクティブ期間においてのみフリップフロップ１２にシステムクロックを供給する。
【００１８】
すなわち、クロックイネーブル信号は、システムクロックがクロックイネーブラ１３２を通過するのをクロック単位で許容する、換言すればフリップフロップ１２に供給するシステムクロックをクロック単位で制御するための信号である。したがって、クロックイネーブル信号は、システムクロックの１サイクル分を単位とする信号である必要がある。クロックイネーブル信号の生成については、クロックイネーブルレジスタとしてアドレスマッピングし、レジスタアクセスイネーブルなどを使用して、１クロックサイクルのイネーブル信号として生成すれば良い。
【００１９】
フリップフロップ１２は、クロック制御回路１３から供給されるクロック、即ち通常モード時には常時供給されるシステムクロック、テストモード時にはクロックイネーブル信号によってクロックイネーブラ１３２がアクティブとなる期間だけ供給されるシステムクロックに同期して組合せ回路１１の出力を取り込む。このときのフリップフロップ１２の出力（Ｑ）がシミュレーション実行結果となる。このシミュレーション実行結果については、システムデータバス１６上に抽出してバスマスタであるマイクロプロセッサ（図示せず）からその値を読み出せるようにアドレスマッピングしておく必要がある。
【００２０】
上記構成の第１実施形態に係るテスト回路において、通常モードでは、セレクタ１５−１，１５−２，１５−３によって入力１，２，３が選択されることで、組合せ回路１１は入力１，２，３の値に応じた論理動作を行う。一方、テストモードでは、マイクロプロセッサからシステムデータバス１６を介して任意の値をテスト入力１，２，３にセットされ、当該テスト入力１，２，３がセレクタ１５−１，１５−２，１５−３によって選択されることで、組合せ回路１１はテスト入力１，２，３の値に応じた論理動作を行う。
【００２１】
このとき、フリップフロップ１２にはそのクロックとして、クロックイネーブル信号がセットされることでアクティブとなるクロックイネーブラ１３２を通してシステムクロックが供給される。これにより、フリップフロップ１２は、クロックイネーブル信号がクロックイネーブラ１３２にセットされる期間、即ちクロックイネーブラ１３２のアクティブ期間だけシステムクロックに同期して組合せ回路１１の出力を取り込む。
【００２２】
フリップフロップ１２の出力（Ｑ）、即ちシミュレーション実行結果は、システムデータバス１６上に抽出され、バスマスタであるマイクロプロセッサによって観測される。これにより、マイクロプロセッサによって任意の値をセットし、そのセットした値に応じて動作する組合せ回路１１の論理変化をマイクロプロセッサによって観測して、セットした値に応じた論理変化が行われているか否か、即ち検証対象のデザインがその機能を十全に果たしているか否かを比較演算することができる。
【００２３】
このように、フリップフロップ１２へのシステムクロックの供給をコントロールする回路、即ちクロックイネーブラ１３２を実装することにより、任意のクロックサイクルタイミングで任意の回数だけフリップフロップ１２に対してシステムクロックの供給を行うことができる。これにより、デザインの毎クロックによる論理変化を目視確認で検証するのではなく、マイクロプロセッサによって比較演算することにより、組合せ回路１１について論理設計の検証を行うことができるので、論理設計中のデバッグ効率の向上を図ることができる。
【００２４】
しかも、テストモードでは、シミュレーション実行結果を出力するフリップフロップ１２に対して常にシステムクロックを供給するのではなく、クロックイネーブル信号によってその供給を制御するようにしている。したがって、システムデータバス１６上に抽出したシミュレーション実行結果をバスマスタであるマイクロプロセッサがラッチする時点でその値が変化するような不具合は起こらないため、組合せ回路１１について論理設計の検証を確実に行うことができる。
【００２５】
［第２実施形態］
図２は、本発明の第２実施形態に係るテスト回路の構成例を示すブロック図である。本実施形態に係るテスト回路はカウンタ回路を検証対象とし、当該カウンタ回路の論理設計のシミュレーションを行う。
【００２６】
図２から明らかなように、本実施形態に係るテスト回路は、システムクロックの分周クロックに同期して動作するカウンタ回路２１を検証対象としており、当該カウンタ回路２１に与えるクロックをモード切り替え信号に応じて切り替えるセレクタ２２と、テストモード時にカウンタ回路２１に対して供給するクロックを制御するクロック制御回路２３とを有する構成となっている。
【００２７】
なお、通常、カウンタ回路２１は、プリスケーラ（図示せず）において任意の分周比で分周して得られる周期の異なる複数のプリスケーラ出力クロック（分周クロック）の中から、セレクタ２４によって選択された周期のプリスケーラ出力クロックに同期してカウント動作を行うようになっている。したがって、セレクタ２２はモード切り替え信号に応じて、通常モード時にはセレクタ２４で選択されたクロックを、テストモード時にはクロック制御回路２３で制御されたクロックをそれぞれ選択してカウンタ回路２１に与えることになる。
【００２８】
クロック制御回路２３は、カウンタ回路２１の通常動作時のクロックよりも周期の短いクロックをカウンタ３１に供給するためのものであって、本実施形態の特徴とする回路部分である。このクロック制御回路２３は、図２から明らかなように、クロックイネーブラ２３１によって構成されている。クロックイネーブラ２３１は、クロックイネーブル信号がセットされたときにのみアクティブ状態となり、そのアクティブ期間においてのみシステムクロックを出力する。
【００２９】
すなわち、クロックイネーブル信号は、システムクロックがクロックイネーブラ２３１を通過するのをクロック単位で許容する、換言すればカウンタ回路２１に供給するシステムクロックをクロック単位で制御するための信号である。したがって、クロックイネーブル信号は、システムクロックの１サイクル分を単位とする信号である必要がある。クロックイネーブル信号の生成については、第１実施形態に係るテスト回路と同様に、クロックイネーブルレジスタとしてアドレスマッピングし、レジスタアクセスイネーブルなどを使用して、１クロックサイクルのイネーブル信号として生成すれば良い。
【００３０】
カウンタ回路２１は、通常モード時には周期の異なる複数のプリスケーラ出力クロックの中から、セレクタ２４によって選択された周期のプリスケーラ出力クロックに同期してカウント動作を行い、テストモード時にはクロックイネーブラ２３１を通過したシステムクロックに同期してカウント動作を行う。そして、テストモードにおけるカウンタ回路２１のカウント値がシミュレーション実行結果となる。このシミュレーション実行結果については、システムデータバス２５上に抽出してマイクロプロセッサ（図示せず）からその値を読み出せるようにアドレスマッピングしておく必要がある。
【００３１】
上記構成の第２実施形態に係るテスト回路では、テストモード時にカウンタ回路２１へのシステムクロックの供給をコントロールする回路、即ちクロックイネーブラ２３１を実装することにより、システムクロックのクロックサイクルベースでカウンタ回路２１のカウント動作が可能となるのでそのカウント値を任意の値のまま保持でき、またカウンタ回路２１自身についても同じであるが、そのカウント値による他の回路部分の振る舞いをバスマスタであるマイクロプロセッサによって観測することができるとともに、完全にカウント値の制御が可能なためデバッグ効率の向上を図ることができる。
【００３２】
また、先述したように、プリスケーラ出力クロックはシステムクロックを分周して得られるクロックであることから、システムクロックはプリスケーラ出力クロックに比べて周期の非常に短いクロックである。したがって、システムクロックを用いてカウンタ回路２１のテストを行うことにより、プリスケーラ出力クロックをそのまま用いてカウンタ回路２１のテストを行う場合に比べて、カウンタ回路２１が所望のカウント値に早く到達できるため、テスト時間を短縮できるという利点もある。
【００３３】
［適用例］
上述した第１，第２実施形態に係るテスト回路については、マイクロプロセッサ（ＣＰＵ）を含むバスアーキテクチャの半導体装置、例えばＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ用のＬＳＩにおいて、ステートマシンなど回路の機能上重要な論理回路（検証対象回路）に対して当該回路と同一チップ上に実装して用いると非常に有利である。すなわち、これらのテスト回路を実装することにより、検証対象回路のすべてのケース（状態）に対してシミュレーションを行うことができるため、バグの早期発見につながるという利点がある。しかも、いずれのテスト回路も完全にＬＳＩ内部でコントロールできる構成であるため、ＬＳＩ外部にテスト用の端子を設ける必要がないという利点もある。
【００３４】
【発明の効果】
以上説明したように、本発明によれば、検証対象回路のシミュレーション実行結果を保持する手段または当該検証対象回路へのシステムクロックの供給をコントロールする回路を実装することにより、任意のクロックサイクルタイミングで任意の回数だけシステムクロックの供給が可能になるため、テストモード時の論理変化を目視確認で検証するのではなく、バスマスタによって比較演算することで論理設計の検証を行うことができ、しかもシステムデータバス上に抽出したシミュレーション実行結果をバスマスタがラッチする時点でその値が変化するようなことは起こらないためその検証を確実に行うことができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るテスト回路の構成例を示すブロック図である。
【図２】本発明の第２実施形態に係るテスト回路の構成例を示すブロック図である。
【図３】従来技術の課題を説明するためのブロック図である。
【符号の説明】
１１…組合せ回路、１２…フリップフロップ、１３，２３…クロック生成回路、２１…カウンタ回路、１３２，２３１…クロックイネーブラ
【図１】
2004127058.tif 000003
【図２】
2004127058.tif 000004
【図３】
2004127058.tif 000005