(57)【要約】【課題】論理回路の論理検証において、不要な遅延を生じさせる要因を排除する。【解決手段】テスト回路は、外部端子から入力された入力データを論理回路および比較回路に出力し、該入力データの出力後に、該外部端子から入力された、該入力データに対する所定の演算の結果に相当する期待値データを論理回路および比較回路に出力するデータ線と、前記データ線から前記入力データが出力されたとき、該入力データを使用して前記演算を実行し、該演算の結果である演算結果データを前記比較回路へ出力する論理回路と、前記データ線から前記期待値データが出力されたとき、該期待値データと、前記論理回路から出力された前記演算結果データとを比較し、比較した結果である比較結果データを出力する比較回路と、を有する。【選択図】図１
2011033458.tif 000002
【特許請求の範囲】
【請求項１】
外部端子から入力された入力データを論理回路および比較回路に出力し、該入力データの出力後に、該外部端子から入力された、該入力データに対する所定の演算の結果に相当する期待値データを論理回路および比較回路に出力するデータ線と、
前記データ線から前記入力データが出力されたとき、該入力データを使用して前記演算を実行し、該演算の結果である演算結果データを前記比較回路へ出力する論理回路と、
前記データ線から前記期待値データが出力されたとき、該期待値データと、前記論理回路から出力された前記演算結果データとを比較し、比較した結果である比較結果データを出力する比較回路と、
を有するテスト回路。
【請求項２】
前記期待値データは、前記データ線から前記入力データを入力してから所定時間が経過したときに入力され、
前記比較回路は、前記入力データが出力されてから前記所定時間が経過したとき、前記論理回路から出力されたデータと、前記期待値データとを比較する、請求項１に記載のテスト回路。
【請求項３】
前記所定時間は、前記論理回路の前記論理演算におけるレイテンシ以上の時間に設定された時間である、請求項２に記載のテスト回路。
【請求項４】
前記比較回路は、
前記入力データが出力された時点から計時を開始する計時手段と、
前記計時手段により所定時間が計時されたとき、前記論理回路から出力されたデータと、前記期待値データとを比較する結果比較回路と、
を有する、請求項２又は３に記載のテスト回路。
【請求項５】
前記テスト回路は、
前記データ線から前記入力データが出力されたとき、該データ線から出力されたデータを前記論理回路において有効にする旨を指示し、前記期待値データが出力されたとき、前記データ線から出力されたデータを該演算回路において無効にする旨を指示する論理回路用制御信号を該論理回路へ出力する第１の信号線を更に有し、
前記論理回路は、第１の信号線から出力された前記論理回路用制御信号に従って、前記データ線から出力されたデータを有効又は無効にし、有効にした該データに対して前記演算を実行する、請求項１乃至４のいずれか１項に記載のテスト回路。
【請求項６】
前記テスト回路は
前記入力データが出力されたとき、前記データ線から出力されたデータを前記比較回路において無効にする旨を指示し、前記期待値データが出力されたとき、該データ線から出力されたデータを該比較回路において有効にする旨を指示する比較回路用制御信号を該比較回路へ出力する第２の信号線を更に有し、
前記比較回路は、前記第２の信号線から出力された前記比較回路用制御信号に従って、前記データ線から出力されたデータを有効又は無効にし、有効にした該データと前記演算結果データとを比較する、請求項１乃至５のいずれか１項に記載のテスト回路。
【請求項７】
複数段の前記論理回路を有し、
前記データ線は、それぞれの論理回路に対応する入力データ又は期待値データを、１段目の前記論理回路と前記比較回路とへ出力し、
それぞれの前記論理回路は、自身に対応するデータ入力データ又は期待値データが出力された場合、前記論理演算を実行し、他の論理回路に対応する入力データ、演算結果データ又は期待値データが出力された場合、該入力データ、該演算結果データ又は該期待値データを、自身より後段の回路へスルー出力する、請求項１乃至６のいずれか１項に記載のテスト回路。
【請求項８】
それぞれの前記論理回路に、該論理回路以外の論理回路に対応する入力データ、演算結果データ又は期待値データが入力されたとき、該入力データ、該演算結果データ又は該期待値データをスルー出力するように、該論理回路に指示する制御回路を更に有し、
それぞれの前記論理回路は、前記制御手段によりスルー出力するように指示されたとき、前記入力データ、前記演算結果データ又は前記期待値データを、自身より後段の回路へスルー出力する、請求項７に記載のテスト回路。
【請求項９】
複数段の前記比較回路を有し、
前記データ線は、それぞれの論理回路に対応する入力データ及び期待値データを、１段目の論理回路と１段目の前記比較回路とへ出力し、
それぞれの前記比較回路は、自身が論理検証する論理回路に対応する入力データ及び演算結果データが入力された場合、該期待値データと、該演算結果データとを比較し、自身が論理検証しない論理回路に対応する入力データ、期待値データ、演算結果データ、又は比較結果データが入力された場合、該入力データ、該期待値データ、該演算結果データ、又は比較結果データを、自身より後段の回路へスルー出力する、請求項８に記載のテスト回路。
【請求項１０】
前記制御回路は、それぞれの前記比較回路に、該比較回路以外の比較回路に対応する該入力データ、該期待値データ、該演算結果データ、又は比較結果データが入力されたとき、該入力データ、該期待値データ、該演算結果データ、又は比較結果データをスルー出力するように、該比較回路に指示し、
それぞれの前記比較回路は、前記制御手段によりスルー出力するように指示されたとき、前記入力データ、前記期待値データ、前記演算結果データ、又は前記比較結果データを、自身より後段の回路へスルー出力する、請求項９に記載のテスト回路。
【請求項１１】
入力された入力データを論理回路及び比較回路へデータ線から出力し、
前記入力データの出力後に、該入力データに対する所定の演算の結果に相当する期待値データを前記データ線から該論理回路及び該比較回路に出力し、
論理回路が、前記入力データが出力されたとき、該入力データを使用して前記演算を実行し、
前記論理回路が、該演算の結果である演算結果データを前記比較回路へ出力し、
前記期待値データが出力されたとき、比較回路が、該期待値データと、前記論理回路により出力された前記演算結果データとを比較し、
前記比較回路が、比較した結果である比較結果データを出力する、テスト回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路をテストする技術に関する。
【背景技術】
【０００２】
近年のLSI（Large Scale Integration）の高集積化、高速化に伴い、論理回路の処理は複雑化し高性能化の一途をたどっている。このため、適用が容易で確実性の高い論理検証方法が望まれており、通常動作と同一速度（at speed）でのテストが、より重要視されている。
【０００３】
ここで、論理回路のテストにおいて、論理回路以外に、テストを容易にするための回路の実装を要することがあった。しかし、At speedでのテストにおいて、必要な論理回路以外の余分な回路の実装は、遅延を生じさせるので、望ましくない。このため、装置は、なるべく小規模の回路で論理検証を行う必要がある。
【０００４】
特許文献１に記載されたテスト装置は、通常データと、テストデータとが入力されるセレクタを備え、セレクタは、これらのデータを切り替えて検査対象回路に出力している。検査対象回路は、テストデータを使用して論理検証を行う。
【０００５】
特許文献２に記載された半導体装置には、内部回路が生成した内部信号と対応する期待値を入力するための外部端子が設けられる。この半導体装置は、外部端子から入力された期待値と、自身が生成した内部信号の値とを比較することにより内部回路の論理検証を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３００７９号公報
【特許文献２】特開２００８−３０４３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１や２に記載された装置では、論理回路の論理検証・実機評価のためのテスト回路の実装によって、遅延が大きくなりやすいという問題があった。
【０００８】
特許文献１に記載された装置では、セレクタ回路自体のゲート遅延が大きい。また、特許文献２に記載された装置でも、期待値入力用の外部端子と外部機器との間の接続不良などに起因して、遅延が生じうる。この外部端子を、他の端子と共用にした場合には、他の端子と接続された回路等の遅延により、更に遅延が大きくなる。
【０００９】
これらの遅延によりat speedでのテストに支障が生じることがあった。また、遅延が生じる箇所が複数ある場合、どこで遅延が生じているかの検証は高集積、高速なLSI/FPGA(Field Programmable Gate Array)であるほど時間がかかり、解決が容易でなかった。
【００１０】
本発明は、論理回路の論理検証において、不要な遅延を生じさせる要因を排除するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明のテスト回路は、外部端子から入力された入力データを論理回路および比較回路に出力し、該入力データの出力後に、該外部端子から入力された、該入力データに対する所定の演算の結果に相当する期待値データを論理回路および比較回路に出力するデータ線と、前記データ線から前記入力データが出力されたとき、該入力データを使用して前記演算を実行し、該演算の結果である演算結果データを前記比較回路へ出力する論理回路と、前記データ線から前記期待値データが出力されたとき、該期待値データと、前記論理回路から出力された前記演算結果データとを比較し、比較した結果である比較結果データを出力する比較回路と、を有する。
【００１２】
本発明のテスト回路の制御方法は、入力データを信号線から論理回路及び比較回路に入力し、該入力データを入力した後、該入力データに対する所定の論理演算の結果として期待されるデータである期待値データを該信号線から該論理回路及び該比較回路に入力し、論理回路が、前記入力データが入力されたとき、該入力データを使用して前記論理演算を実行し、前記論理回路が、該論理演算の結果を示す演算結果データを前記比較回路に入力し、比較回路が、前記期待値データが入力されたとき、該期待値データと、前記論理回路により出力された前記演算結果データとを比較し、前記比較回路が、比較した結果を示す比較結果データを出力する、テスト回路の制御方法である。
【発明の効果】
【００１３】
本発明によれば、データ線から入力データが入力された場合、論理回路が論理演算を行い、同じ信号線から期待値データが入力されたとき、比較回路が、論理演算の結果と期待値データを比較する。テスト回路は、期待値データのみを入力するための外部端子やセレクタを要しないので、不要な遅延が生じることがなくなる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態のテスト装置の一構成例を示すブロック図である。
【図２】本発明の第１の実施形態のテスト回路の一構成例を示すブロック図である。
【図３】本発明の第１の実施形態のテスト回路の動作の一例を示すタイミングチャートである。
【図４】本発明の第１の実施形態のテスト回路の動作の一例を示すタイミングチャートである。
【図５】本発明の第２の実施形態のテスト回路の一構成例を示すブロック図である。
【図６】本発明の第２の実施形態の論理回路ブロックの動作を説明するための表である。
【図７】本発明の第２の実施形態のテスト比較回路の動作を説明するための表である。
【図８】本発明の第２の実施形態のテスト結果出力回路の動作を説明するための表である。
【図９】本発明の第２の実施形態のテスト制御データの示す内容をまとめた表である。
【図１０】本発明の第２の実施形態のテスト回路の動作の一例を示すタイミングチャートである。
【図１１】本発明の第３の実施形態のテスト回路の一構成例を示すブロック図である。
【図１２】本発明の第３の実施形態のテスト比較回路の一構成例を示すブロック図である。
【図１３】本発明の第３の実施形態のカウンタ比較回路の動作の一例を示すフローチャートである。
【図１４】本発明の第３の実施形態のＲＳ−ＦＦの動作を説明するための表である。
【図１５】本発明の第３の実施形態の結果比較回路の動作を説明するための表である。
【図１６】本発明の第３の実施形態のテスト回路の動作の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
本発明を実施するための第１の実施形態について図面を参照して詳細に説明する。図１は、本実施形態のテスト装置の構成を示す図である。同図を参照すると、テスト装置は、信号発生部２、およびテスト回路１を有する。信号発生部２には、プログラムを格納するためのメモリと、そのプログラムにしたがって処理を実行するＣＰＵ（Central Processing Unit）が設けられている。信号発生部２は、プログラムに従って、所定のタイミングでテスト回路１が使用する信号を生成し、テスト回路１へ送信する。信号発生部２は、通常入力データ、期待値データ、データイネーブル信号ＤＥ１０１、ＤＥ１１１を生成する。これらの信号の詳細については、図２で後述する。各信号を送信するタイミングについては、図３、４で後述する。
【００１６】
なお、信号発生部１は、所定のタイミングで種々のデータを出力する回路であればＣＰＵ、およびプログラムに限らず、専用の回路であってもよい。
【００１７】
図２は、テスト回路１の一構成例を示すブロック図である。テスト回路１は、論理回路の検証、評価を行うための回路である。同図を参照すると、テスト回路１は、論理回路ブロック１０、テスト比較回路１１、データ線１０１、１１１、および各回路にデータイネーブル信号を入力するための信号線を有する。
【００１８】
外部端子から通常入力データが入力され、そのデータは、データ線１０１から論理回路ブロック１０およびテスト比較回路１１へ出力される。外部端子は図１において省略されている。
【００１９】
次いで、通常入力データの入力時から所定の期間が経過したときに、同じデータ線１０１から、期待値データが、論理回路ブロック１０およびテスト比較回路１１出力される。この期間は、論理回路ブロック１０の論理演算におけるレイテンシと予想される時間以上の値に設定される。
【００２０】
つまり、通常入力データを入力するパス（信号線１０１）は、期待値データを入力するパスとしても使用される。
【００２１】
データ線１１１は、論理回路ブロック１０の出力端子とテスト比較回路１１の入力端子とを接続している。
【００２２】
通常入力データは、論理回路ブロック１０における論理演算の処理対象となるデータである。期待値データは、その論理演算の結果として期待されるデータである。
【００２３】
論理回路ブロック１０は、処理単位にブロック化した、１以上の論理回路から構成される回路ブロックである。論理回路ブロック１０には、データイネーブル信号ＤＥ１０１と、通常入力データまたは期待値データとが入力される。
【００２４】
データイネーブル信号ＤＥ１０１は、データ線１０１からの入力データ（通常入力データ、または期待値データ）を論理回路ブロック１０において有効または無効にするための制御信号である。本実施形態では、データイネーブル信号ＤＥ１０１は、入力データを有効にする場合、ハイレベルに設定され、入力データを無効にする場合、ローレベルに設定される。
【００２５】
そして、データイネーブル信号ＤＥ１０１は、信号線１０１から通常入力データが出力されたときハイレベルに設定される。そして、データイネーブル信号ＤＥ１０１は、ハイレベルとなってからレイテンシ以上の時間が経過して、期待値データが出力されるタイミングでローレベルに設定される。
【００２６】
データイネーブル信号ＤＥ１０１がハイレベルの場合、論理回路ブロック１０は、信号線１０１からの入力データに対して、所定の論理演算を実行する。論理回路ブロック１０は、論理演算の結果を示す通常処理データを、データ線１１１を介してテスト比較回路１１へ出力する。論理回路ブロック１０に通常入力データが入力されてから、論理演算後、通常処理データが出力されるまでには、一定の遅延時間（レイテンシ）が生じる。
【００２７】
データイネーブル信号ＤＥ１０１がローレベルの場合、論理回路ブロック１０において、入力データは無効となり、論理演算は実行されない。
【００２８】
テスト比較回路１１には、通常処理データと、データイネーブル信号ＤＥ１１１と、通常入力データまたは期待値データとが入力される。
【００２９】
データイネーブル信号ＤＥ１１１は、データ線１１１からの通常処理データを論理回路ブロック１０において有効または無効にするための制御信号である。本実施形態では、データイネーブル信号ＤＥ１１１は、通常処理データを有効にする場合、ハイレベルに設定され、通常処理データを無効にする場合、ローレベルに設定される。
【００３０】
そして、データイネーブル信号ＤＥ１１１は、データ線１１１から通常入力データが出力されたときハイレベルに設定される。そして、データイネーブル信号ＤＥ１１１は、ハイレベルとなってからレイテンシ以上の時間が経過して、期待値データが出力されるタイミングでローレベルに設定される。
【００３１】
データイネーブル信号ＤＥ１１１がハイレベルの場合、テスト比較回路１１は、データ線１１１からの通常処理データと、データ線１０１からの期待値データとを比較する。テスト比較回路１１は、比較した結果を示す比較結果データを出力する。例えば、テスト比較回路１１は、通常処理データと期待値データが一致した場合、パスしたことを示し、一致しない場合、フェイルしたことを示す比較結果データを出力する。
【００３２】
データイネーブル信号ＤＥ１１１がローレベルの場合、テスト比較回路１１において、通常処理データは無効となり、比較結果データは生成されない。
【００３３】
次に、本実施形態のテスト回路１の動作手順を説明する。図３は、テスト回路１の動作を示すタイミングチャートである。同図に示すように、ＣＰＵ等は、論理回路ブロック１０の論理演算におけるレイテンシの期間だけ、ハイレベルのデータイネーブル信号ＤＥ１０１を論理回路ブロック１０に入力する。次いで、ＣＰＵ等は、ローレベルのデータイネーブル信号ＤＥ１０１を論理回路ブロック１０に入力する。
【００３４】
また、ＣＰＵ等は、ＤＥ１０１をハイレベルとしたときから、論理回路ブロック１０のレイテンシが経過するまで、データ線１０１から通常処理データを出力する。次いで、ＣＰＵ等は、そのデータ線１０１から期待値データを出力する。
【００３５】
ＣＰＵ等は、ＤＥ１０１をハイレベルからローレベルに切り替えた後、所定期間だけ、ハイレベルのデータイネーブル信号ＤＥ１１１を論理回路ブロック１０およびテスト比較回路１１に入力する。
【００３６】
論理回路ブロック１０は、データイネーブル信号ＤＥ１０１がハイレベルになったとき、データ線１０１からの入力データ（通常処理データ）に対して論理演算を実行する。論理回路ブロック１０の論理演算におけるレイテンシが経過したとき、データ線１１１から通常処理データが出力される。
【００３７】
テスト比較回路１１は、データイネーブル信号ＤＥ１１１がハイレベルになったとき、データ線１０１からの入力データ（期待値データ）と、データ線１１１からの通常処理データとを比較し、比較結果データを出力する。
【００３８】
なお、本実施形態では、ＣＰＵ等が、データ線１０１を介して通常入力データを出力してから、レイテンシが経過した後、期待値データを出力しているが、図４に示すように、レイテンシが経過するたびに、通常入力データ、期待値データを交互に複数回出力する構成としてもよい。繰り返し、比較を行うことにより、論理検証の信頼性が向上する。
【００３９】
本実施形態の通常入力データが本発明の入力データに相当し、本実施形態の論理回路ブロックが本発明の論理回路に相当する。本実施形態のテスト比較回路は、本発明の比較回路に相当する。
【００４０】
以上説明したように、本実施形態によれば、入力データがデータ線から出力されている間、論理回路が論理演算を行い、同じデータ線から期待値データが出力されたとき、比較回路が、論理演算の結果と期待値データを比較する。テスト回路は、期待値データのみを入力するための外部端子やセレクタを要しないので、外部端子等によって不要な遅延が生じることがなくなる。
【００４１】
想定したレイテンシが経過してから、ＣＰＵ等が期待値データを送信するので、テスト回路は、比較結果データに基づいて、実際のレイテンシが想定した時間より長いか否かを検証することができる。例えば、比較結果データが、パスしたことを示す場合、実際のレイテンシは、想定した時間以下であるが、フェイルしたことを示す場合、テスト回路は、実際のレイテンシは想定した時間より長いと判断できる。テスト対象の論理回路ブロックの処理レイテンシは処理性能のパラメータのひとつであり、仕様通りに設計されているかを検証することは重要である。
【００４２】
これに対して、特許文献１、２に記載された装置では、入力データ、期待値データを異なるパスから同時に入力している。このため、期待値比較は可能であるが、テスト対象の処理性能を正確に検証することができない。これらの装置は、テスト対象の処理に関して処理レイテンシなどの要求仕様がある場合に、通常処理動作のシミュレーション時間や実機動作での時間を計測することでは要求仕様通りであることが正確には検証できない。
【００４３】
また、データイネーブル信号をレイテンシの周期でハイレベル、ローレベルに制御することで、テストを複数回行う場合であっても、入力データ、期待値データの出力タイミングを容易に合わせることができる。
【００４４】
更に、本実施形態によれば、テスト回路は、論理検証と実機評価においてテスト対象の機能を同条件で検証することができる。詳細には、期待値データを通常入力のデータパスから入力するため、テスト回路は、外部機器によるキャプチャやテスト用の内部メモリに一時保存することなく機能テストが可能であり、実機評価において内蔵回路によるAt speedでの機能テストを容易に実現することができる。このため、論理検証と同条件でのテストが可能となる。
【００４５】
これに対して、特許文献１に記載の構成では、論理検証において出力データを保存して期待値データと比較をする方法はＲＴＬ（Register Transfer Level）シミュレーションでのみ有効であり、実機評価においては論理検証時のテスト構成をそのまま活用することができない。ＬＳＩテスタにおいてはファンクションテストにて出力端子の期待値比較をすることが可能であるが、実機評価においては、特許文献１に記載された装置は、期待値比較のために外部機器によってデータをキャプチャして保存したり、テスト対象の内蔵メモリに一時保存して外部インタフェースからの読み出しをしたりする必要がある。
【００４６】
（第２の実施形態）
本発明の第２の実施形態について説明する。本実施形態のテスト回路は、複数段の論理回路ブロックの動作を検証する点で第１の実施形態と異なる。なお、本実施形態のテスト回路について、図２で説明した構成と同様な構成の詳細な説明を省略し、第１の実施形態と異なる点について詳しく説明する。
【００４７】
図５は、本実施形態のテスト回路１ａの一構成例を示すブロック図である。同図を参照すると、テスト回路１ａは、論理回路ブロック１０ａ、１２、１３と、テスト比較回路１１ａ、１４と、テスト結果出力回路１５と、テスト制御回路２０と、データ線１０１、１１１、１２１、１３１、１４１、１５１、２０１、２１１、２１２、２１３、２１４、２１５と、各回路に制御信号およびデータイネーブル信号を入力するための信号線とを有する。
【００４８】
テスト比較回路１１ａは、論理回路ブロック１０ａの論理検証を行う回路であり、テスト比較回路１４は、論理回路ブロック１２、１３の論理検証を行う回路である。
【００４９】
また、テスト回路１ａには、論理回路ブロック１０ａ、１２、１３と、テスト比較回路１１ａ、１４とのそれぞれにデータイネーブル信号を入力するための信号線が設けられている。これらの信号線は、図４において省略されている。
【００５０】
図６を参照して、論理回路ブロック１０ａの動作について説明する。同図は、論理回路ブロック１０ａの動作を説明するための表である。論理回路ブロック１２、１３の動作も論理回路ブロック１０ａと同様である。論理回路ブロック１０ａには、データ線１０１からの入力データと、スルー動作制御信号と、データイネーブル信号ＤＥ１０１とが入力される。
【００５１】
スルー動作制御信号は、テスト制御回路２０が論理回路ブロック１０ａにスルー動作、または論理演算の実行を指示するための制御信号である。本実施形態では、スルー動作制御信号は、論理回路ブロック１０ａにスルー動作させる場合にハイレベル、論理演算を実行させる場合はローレベルに設定される。
【００５２】
データイネーブル信号ＤＥ１０１は、前述したように、データ線１０１からの入力データを論理回路ブロック１０ａにおいて有効または無効にするための制御信号である。
【００５３】
図６に示すように、スルー動作制御信号、データイネーブル信号ＤＥ１０１がともにハイレベル（「１」）である場合、論理回路ブロック１０ａは、データ線１０１からの入力データを、そのまま出力する。このスルー動作におけるレイテンシは、論理演算におけるレイテンシより小さい。
【００５４】
スルー動作制御信号がローレベル（「０」）で、データイネーブル信号ＤＥ１０１がハイレベル（「１」）である場合、論理回路ブロック１０ａは、データ線１０１からの入力データに対して、論理演算を実行し、演算結果データを出力する。
【００５５】
データイネーブル信号ＤＥ１０１がローレベル（「０」）である場合、論理回路ブロック１０ａにおいて、データ線１０１からの入力データが無効になり、スルー動作出力、論理演算は実行されない。
【００５６】
図７を参照して、テスト比較回路１１ａの動作について説明する。同図は、テスト比較回路１１ａの動作を説明するための表である。テスト比較回路１４の動作もテスト比較回路１１ａと同様である。テスト比較回路１１ａには、データ線１０１、１１１からの入力データと、比較動作制御信号と、データイネーブル信号ＤＥ１１１とが入力される。
【００５７】
比較動作制御信号は、テスト制御回路２０が論理回路ブロック１０ａに比較動作、またはスルー動作を指示するための制御信号である。本実施形態では、比較動作制御信号は、テスト比較回路１１ａに比較動作させる場合にハイレベル、スルー動作させる場合はローレベルに設定される。
【００５８】
図７に示すように、比較動作制御信号、データイネーブル信号ＤＥ１１１がともにハイレベル（「１」）である場合、テスト比較回路１１ａは、データ線１１１からの通常処理データと、データ線１０１からの期待値データとを比較し、比較結果データを出力する。
【００５９】
比較動作制御信号がローレベル（「０」）で、データイネーブル信号ＤＥ１０１がともにハイレベル（「１」）である場合、論理回路ブロック１０ａは、データ線１１１からの入力データを、そのまま出力する。
【００６０】
データイネーブル信号ＤＥ１１１がローレベル（「０」）である場合、テスト比較回路１１ａにおいて、データ線１０１からの入力データが無効になり、スルー動作出力、比較動作は行われない。
【００６１】
図８を参照して、テスト結果出力回路１５の動作について説明する。同図は、テスト結果出力回路１５の動作を説明するための表である。テスト結果出力回路１５には、データ線１５１からの比較結果データと、テスト結果出力制御信号とが入力される。
【００６２】
テスト結果出力制御信号は、テスト制御回路２０がテスト結果出力回路１５に、外部出力する否かを指示するための制御信号である。本実施形態では、テスト結果出力制御信号は、テスト結果出力回路１５に外部出力させる場合にハイレベル、そうでない場合はローレベルに設定される。
【００６３】
図８に示すように、テスト結果出力制御信号がハイレベル（「１」）である場合、テスト結果出力回路１５は、データ線１５１からの比較結果データを内部出力するとともに外部出力する。
【００６４】
テスト結果出力制御信号がローレベル（「０」）である場合、テスト結果出力回路１５は、データ線１５１からの比較結果データを、テスト回路１ａを実装した装置の内部にのみ出力する。
【００６５】
図９を参照して、テスト制御回路２０の動作について説明する。テスト制御回路２０には、テスト制御データが入力される。テスト制御データは、テスト制御回路２０が、論理回路ブロック、テスト比較回路、およびテスト結果出力回路のそれぞれを制御するためのデータである。テスト制御回路２０は、このテスト制御データをデコードし、テスト制御データの示す内容に従って、論理回路ブロック、テスト比較回路、テスト結果出力回路のそれぞれに、スルー動作制御信号、比較動作制御信号、テスト結果出力制御信号を出力する。
【００６６】
図９は、テスト制御回路２０に入力されるテスト制御データの示す内容をまとめた表である。同図を参照すると、テスト制御データにおいて、１以上の「テスト対象回路」が設定される。「テスト対象回路」は、論理検証の対象となる論理回路ブロックである。
【００６７】
例えば、「論理回路ブロック１０ａ」、「論理回路ブロック１２」、「論理回路ブロック１３」、および「論理回路ブロック１２、１３」がテスト対象回路として設定される。
【００６８】
そして、テスト対象回路ごとに、「スルー動作制御信号」、「比較動作制御信号」、および「外部出力」が設定される。
【００６９】
「スルー動作制御信号」は、論理回路ブロックが、それぞれスルー動作すべきか否かを示す信号である。各論理回路ブロックについて、スルー動作すべき場合、「１」が設定され、そうでない場合「０」が設定される。
【００７０】
「比較動作制御信号」は、テスト比較回路が、それぞれ比較動作すべきか否かを示す信号である。各テスト比較回路について、比較動作すべき場合、「１」が設定され、そうでない場合「０」が設定される。
【００７１】
「外部出力」は、「テスト対象回路」についての比較結果データを外部出力すべきか否かを示す信号である。各テスト対象回路について、外部出力すべき場合、「１」が設定され、そうでない場合「０」が設定される。テスト制御回路２０は、「外部出力」に設定された内容の外部出力制御信号をテスト結果出力回路１５へ出力する。
【００７２】
例えば、論理回路ブロック１０ａについて、論理検証が必要で、その結果を外部出力すべき場合について考える。この場合、論理回路ブロック１０ａに対応する「スルー動作制御信号」には「０」が設定され、それ以外の論理回路ブロック１２、１３に対応する「スルー動作制御信号」には「１」が設定される。
【００７３】
また、テスト比較回路１１ａに対応する「比較動作制御信号」には「１」が設定され、テスト比較回路１４に対応する「比較動作制御信号」には「０」が設定される。「外部出力」には、「１」が設定される。
【００７４】
この設定により、論理回路ブロック１０ａは、演算処理を行ってテスト結果データを出力し、テスト比較回路１１ａは、比較結果データを出力する。そして、論理回路ブロック１２、１３およびテスト比較回路１４は、比較結果データをスルー出力する。
【００７５】
図１０を参照して、テスト回路１ａの動作結果の一例について説明する。同図は、テスト回路１ａの動作結果の一例を示すタイミングチャートである。
【００７６】
テスト制御データとして、論理回路ブロック１０ａを「テスト対象回路」とするデータが入力された場合について考える。
【００７７】
この場合、ＣＰＵ等は、論理回路ブロック１０ａの論理演算におけるレイテンシの間、ハイレベルのデータイネーブル信号ＤＥ１０１を論理回路ブロック１０ａに入力する。そして、ＣＰＵ等は、同じ期間の間、ローレベルのデータイネーブル信号ＤＥ１０１を論理回路ブロック１０ａに入力する。ＣＰＵ等は、この動作を所定回数繰り返す。
【００７８】
ＣＰＵ等は、ＤＥ１０１をハイレベルにしたときから論理回路ブロック１０のレイテンシの間、データ線１０１から、通常入力データを論理回路ブロック１０ａおよびテスト比較回路１１ａに入力する。そして、ＣＰＵ等は、同じ期間の間、期待値データを論理回路ブロック１０ａおよびテスト比較回路１１ａに入力する。ＣＰＵ等は、この動作を所定回数繰り返す。
【００７９】
ＣＰＵ等は、ＤＥ１０１をハイレベルからローレベルに切り替えたときから論理回路ブロック１０のレイテンシが経過するまで、ハイレベルのデータイネーブル信号ＤＥ１１１をテスト比較回路１１ａに入力する。そして、ＣＰＵ等は、同じ期間の間、ローレベルのデータイネーブル信号ＤＥ１１１をテスト比較回路１１ａに入力する。ＣＰＵ等は、この動作を所定回数繰り返す。
【００８０】
論理回路ブロック１０ａは、データイネーブル信号ＤＥ１０１がハイレベルならば、通常入力データに対する論理演算を実行し、レイテンシ経過後に、データ線１１１から通常処理データを出力する。
【００８１】
ＣＰＵ等は、ハイレベルのスルー動作出力制御信号（不図示）を論理回路ブロック１２に入力する。また、ＣＰＵ等は、ＤＥ１１１と同じタイミングで、ハイレベル、ローレベルのデータイネーブル信号ＤＥ１２１を論理回路ブロック１２に入力する。
【００８２】
論理回路ブロック１２は、データイネーブル信号ＤＥ１２１がハイレベルならば、データ線１２１から、比較結果データを論理回路ブロック１３へスルー出力する。論理回路ブロック１３も論理回路ブロック１２と同様にスルー出力動作を行う。
【００８３】
ＣＰＵ等は、ハイレベルのスルー動作出力制御信号（不図示）をテスト比較回路１４に入力する。また、ＣＰＵ等は、ＤＥ１２１をハイレベルにした時点から、論理回路ブロック１２、１３のスルー動作におけるレイテンシが経過したとき、論理回路ブロック１０ａのレイテンシの期間だけ、ハイレベルのデータイネーブル信号ＤＥ１４１をテスト比較回路１４に入力する。
【００８４】
テスト比較回路１４は、データイネーブル信号ＤＥ１４１がハイレベルであるとき比較結果データをテスト結果出力回路１５へスルー出力する。
【００８５】
なお、本実施形態では、テスト比較回路１４が、２つの論理回路ブロック（１２、１３）をまとめて論理検証する構成としているが、論理回路ブロック１つに対してテスト比較回路を１つ設ける構成としてもよい。
【００８６】
論理回路ブロックごとに、テスト比較回路を設けることにより、テスト回路は、その論理回路ブロックの論理演算におけるレイテンシを個別に検証することができる。
【００８７】
一方、本実施形態のように、１つのテスト比較回路で複数の論理回路ブロックをまとめて論理検証する構成とすれば、配線数やテスト比較回路の個数が少なくて済み、コストが低減する。
【００８８】
本実施形態では、テスト制御回路がスルー動作制御信号、テスト結果制御信号を出力する構成としているが、ＣＰＵ等が通常処理データ、期待値データ、またはデータイネーブル信号に加えて、スルー動作制御信号、テスト結果制御信号を出力する構成としてもよい。
【００８９】
逆に、テスト制御回路が、スルー動作制御信号、テスト結果制御信号に加えて、通常処理データ、期待値データ、またはデータイネーブル信号を出力する構成としてもよい。
【００９０】
以上説明したように、本実施形態によれば、複数の論理回路ブロックを１つの比較回路でまとめて論理検証するので、テスト比較回路の実装数が少なくて済み、コストが低減する。
【００９１】
また、各論理回路ブロック、テスト比較回路をスルー出力制御するので、論理回路ブロック、テスト比較回路の組を、複数個設けて、それらを直列に接続できる。このため、各組を並列に設ける構成に比較して、配線数が減少し、実装が容易となる。
【００９２】
（第３の実施形態）
本発明の第３の実施形態について説明する。本実施形態のテスト回路は、ＳＲＡＭ（Static Random Access Memory）を内蔵し、テスト比較回路にカウンタ回路を設ける点で第２の実施形態と異なる。なお、本実施形態のテスト回路について、図５で説明した構成と同様な構成の詳細な説明を省略し、第２の実施形態と異なる点について詳しく説明する。
【００９３】
図１１は、本実施形態のテスト回路１ｂの一構成例を示すブロック図である。同図を参照すると、テスト回路１ｂは、論理回路ブロック１２の代わりに、内蔵ＳＲＡＭ１２ａを備え、テスト比較回路１４の代わりに、テスト比較回路１４ｂを備える点以外は、第２の実施形態のテスト回路１ａと同様である。
【００９４】
内蔵ＳＲＡＭ１２ｂには、ライトイネーブル信号ＷＥ、リードイネーブル信号ＲＥ、テスト比較回路１１ａからのデータが入力される。
【００９５】
内蔵ＳＲＡＭ１２ｂは、ライトイネーブル信号ＷＥがハイレベルとなったとき、テスト比較回路１１ａからのデータを保持する。そして、リードイネーブル信号ＲＥがハイレベルになったとき、保持したデータを論理回路ブロック１３へ出力する。
【００９６】
ＣＰＵ等は、テスト比較回路１４ｂに、比較動作またはスルー動作をさせる場合、ハイレベル、比較動作およびスルー動作のいずれも停止させる場合、ローレベルのデータイネーブル信号ＤＥ１４１を入力する。
【００９７】
テスト比較回路１４ｂは、データイネーブル信号ＤＥ１４１がハイレベルになっている間、論理回路ブロック１３の論理演算のレイテンシの周期で、比較動作とスルー動作とを交互に行う。
【００９８】
図１２は、テスト比較回路１４ｂの一構成例を示すブロック図である。同図を参照すると、テスト比較回路１４ｂは、カウンタ回路１４５、ＲＳ−ＦＦ（Reset Set Flip Flop）１４６、および結果比較回路１４７を有する。
【００９９】
カウンタ回路１４５には、データイネーブル信号ＤＥ１４１が入力される。カウンタ回路１４５は、データイネーブル信号ＤＥ１４１がハイレベルであれば、カウント動作を開始し、ローレベルであれば、ＲＳ−ＦＦ１４６をリセットするとともにカウント動作を停止する。
【０１００】
カウント動作において、カウンタ回路１４５は、所定値に達するまで数値を計数し、所定値になったとき、数値を初期値に設定（リセット）するとともにＲＳ−ＦＦ１４６をセットする動作を繰り返す。計数開始から、数値のリセットまでの時間は、論理回路ブロック１３の論理演算のレイテンシとなるように設定される。
【０１０１】
ＲＳ−ＦＦ１４６は、レイテンシマスク信号をＲＳ−ＦＦ１４６は、リセットされたとき、ローレベルのレイテンシマスク信号を結果比較回路１４７へ出力し、セットされるたびに、前回値を反転させたレイテンシマスク信号を出力する。
【０１０２】
結果比較回路１４７には、データ線１４１、１３１が接続される。レイテンシマスク信号がハイレベルの場合、結果比較回路１４７は、データ線１４１からの通常処理データと、データ線１３１からの期待値データとを比較し、比較結果データを出力する。レイテンシマスク信号がローレベルの場合、結果比較回路１４７は、比較動作を停止する。
【０１０３】
図１３を参照して、カウンタ回路１４５の動作について詳細に説明する。同図は、カウンタ回路１４５の動作の一例を示すフローチャートである。この動作は、ハイレベルのデータイネーブル信号ＤＥ１４１がカウンタ回路１４５に入力されたときに開始する。
【０１０４】
図１３を参照すると、カウンタ回路１４５は、カウンタ値を初期値「０」に設定（プリセット）し、ＲＳ−ＦＦ１４６をリセットする（ステップＳ１）。
【０１０５】
カウンタ回路１４５は、カウンタ値を「１」だけカウントアップする（ステップＳ２）。カウンタ回路１４５は、カウンタ値が３」に達したか否かを判断する（ステップＳ３）。カウンタ値が「３」未満であれば（ステップＳ３：ＮＯ）、カウンタ回路１４５は、ステップＳ２に戻る。
【０１０６】
カウンタ値が「３」であれば（ステップＳ３：ＹＥＳ）、カウンタ回路１４５は、データイネーブル信号ＤＥ１４１がハイレベル（オン）であるか否かを判断する（ステップＳ４）。
【０１０７】
データイネーブル信号ＤＥ１４１がオンであれば（ステップＳ４：ＹＥＳ）、カウンタ回路１４５は、カウンタ値を初期値に戻し（リセットし）、ＲＳ−ＦＦ１４６をセットする（ステップＳ５）。ステップＳ５の後、カウンタ回路１４５は、ステップＳ２に戻る。
【０１０８】
データイネーブル信号ＤＥ１４１がローレベルであれば（ステップＳ３：ＮＯ）、カウンタ回路１４５は、動作を終了する。
【０１０９】
図１４を参照して、ＲＳ−ＦＦ１４６の動作について説明する。同図は、ＲＳ−ＦＦ１４６の動作の一例を示す真理値表である。
【０１１０】
図１４において、「Ｑ」は、レイテンシマスク信号の前回値であり、「Ｑｎ」は、ＲＳ−ＦＦ１４６が出力するレイテンシマスク信号の値である。同図に示すように、ＲＳ−ＦＦ１４６は、リセットされた場合、ローレベル（「０」）のレイテンシマスク信号を出力する。ＲＳ−ＦＦ１４６は、セットされるたびに、前回値を反転させた値のレイテンシマスク信号を出力する。
【０１１１】
図１５を参照して、結果比較回路１４７の動作について説明する。同図は、結果比較回路１４７の動作を説明するための表である。同図に示すように、比較動作制御信号がハイレベル（「１」）、レイテンシマスク信号がローレベル（「０」）である場合、結果比較回路１４７は、データ線１４１からの通常処理データと、データ線１３１からの期待値データとを比較し、比較結果データを出力する。
【０１１２】
比較動作制御信号、レイテンシマスク信号ＤＥ１４１がともにローレベル（「０」）である場合、結果比較回路１４７は、データ線１４１からの入力データを、そのまま出力する。
【０１１３】
レイテンシマスク信号がハイレベル（「０」）である場合、結果比較回路１４７において、データ線１４１からの入力データが無効になり、スルー動作出力、比較動作は行われない。
【０１１４】
図１６を参照して、テスト回路１ｂの動作結果の一例について説明する。同図は、テスト回路１ｂの動作結果の一例を示すタイミングチャートである。
【０１１５】
テスト制御データとして、論理回路ブロック１３を「テスト対象回路」とするデータが入力された場合について考える。
【０１１６】
この場合、ＣＰＵ等は、ハイレベルのスルー動作出力制御信号（不図示）を論理回路ブロック１０ａに入力する。また、論理回路ブロック１３の論理演算におけるレイテンシの整数倍の期間だけ、ハイレベルのデータイネーブル信号ＤＥ１０１を論理回路ブロック１０ａに入力する。そして、ＣＰＵ等は、データイネーブル信号ＤＥ１０１をローレベルにする。
【０１１７】
ＣＰＵ等は、ＤＥ１０１をハイレベルにしたときから、論理回路ブロック１３の論理演算におけるレイテンシの期間が経過するまで、データ線１０１から、通常入力データを論理回路ブロック１０ａおよびテスト比較回路１１ａに入力する。そして、ＣＰＵ等は、同じ期間の間、期待値データを論理回路ブロック１０ａおよびテスト比較回路１１ａに入力する。ＣＰＵ等は、この動作を所定回数繰り返す。
【０１１８】
論理回路ブロック１０ａは、データイネーブル信号ＤＥ１０１がハイレベルならば、データ線１０１を介して入力されたデータを、データ線１１１からスルー出力する。テスト比較回路１１ａも、論理回路ブロック１０ａからのデータをスルー出力する。
【０１１９】
ＣＰＵ等は、ＤＥ１０１をハイレベルにした時点から論理回路ブロック１０ａおよびテスト比較回路１１ａのスルー動作におけるレイテンシが経過したとき、ハイレベルのライトイネーブル信号ＷＥを内蔵ＳＲＡＭ１２ｂに入力する。
【０１２０】
内蔵ＳＲＡＭ１２ｂは、ライトイネーブル信号ＷＥがハイレベルならば、データ線１１１からの通常入力データまたは期待値データを保持する。
【０１２１】
ＣＰＵ等は、ライトイネーブル信号ＷＥをハイレベルにした時点から、内蔵ＳＲＡＭ１２ｂの書き込み動作におけるレイテンシが経過したとき、ハイレベルのリードイネーブル信号ＲＥを内蔵ＳＲＡＭ１２ｂに入力する。
【０１２２】
内蔵ＳＲＡＭ１２ｂは、リードイネーブル信号ＲＥがハイレベルならば、データ線１３１を介して、保持しているデータを論理回路ブロック１３へ出力する。
【０１２３】
ＣＰＵ等は、ＲＥをハイレベルにしたときから、論理回路ブロック１３のレイテンシが経過するまで、ハイレベルのデータイネーブル信号ＤＥ１３１（不図示）を論理回路ブロック１３に入力する。そして、ＣＰＵ等は、同じ期間の間、ローレベルのデータイネーブル信号ＤＥ１３１を論理回路ブロック１３に入力する。ＣＰＵ等は、この動作を所定回数繰り返す。
【０１２４】
ＣＰＵ等は、ＲＥをハイレベルにした時点から論理回路ブロック１３のレイテンシが経過したとき、ハイレベルのデータイネーブル信号１４１をテスト比較回路１４ｂに入力する。
【０１２５】
論理回路ブロック１３は、データイネーブル信号ＤＥ１３１がハイレベルならば、データ線１３１からの入力データ（通常入力データ）に対して論理演算を実行し、レイテンシが経過したとき、データ線１４１から通常処理データを出力する。
【０１２６】
テスト比較回路１４ｂにおいて、データイネーブル信号ＤＥ１４１がハイレベルになったとき、カウンタ回路１４５はカウントを開始し、ＲＳ−ＦＦ１４６をリセットする。データイネーブル信号ＤＥ１４１がハイレベルである間、カウンタ回路１４５は、論理回路ブロック１３のレイテンシの周期が経過するたびに、カウンタ値をリセットし、ＲＳ−ＦＦ１４６をセットする。
【０１２７】
テスト比較回路１４ｂにおいて、ＲＳ−ＦＦ１４６は、セットされるたびに、レイテンシマスク信号を反転させる。
【０１２８】
テスト比較回路１４ｂにおいて、結果比較回路１４７は、レイテンシマスク信号がローレベルであるとき、データ線１４１からの通常処理データと、データ線１３１からの期待値データとを比較し、比較結果データをデータ線１５１から出力する。
【０１２９】
なお、本実施形態では、テスト比較回路１４ｂは、カウンタ回路を用いてレイテンシ周期を計時しているが、タイマを使用して、レイテンシ周期を計時してもよい。
【０１３０】
また、本実施形態では、テスト比較回路１４ｂは、カウンタ回路、ＲＳ−ＦＦを用いてレイテンシマスク信号を生成しているが、レイテンシ周期ごとに、反転するレイテンシマスク信号を生成できるのであれば、他の回路を使用してもよいのは勿論である。
【０１３１】
以上説明したように、本実施形態によれば、テスト回路は、ＳＲＡＭを内蔵するので、テスト結果データを保持する回路を外部に接続する必要がなくなる。
【０１３２】
また、テスト結果比較回路１４ｂは、カウンタ回路を内蔵し、カウンタ回路がカウンタ値リセットしたとき、比較動作を行うので、ＣＰＵ等は、レイテンシ周期ごとにデータイネーブル信号ＤＥ１４１のオンオフを切り替えなくて済む。
【符号の説明】
【０１３３】
１、１ａ、１ｂ    テスト回路
２    信号発生部
１０、１０ａ、１２、１３、１２ｂ    論理回路ブロック
１１、１１ａ、１４、１４ｂ    テスト比較回路
１５    テスト結果出力回路
２０    デコーダ
１４５    カウンタ回路
１４６    ＲＳ−ＦＦ
１４７    結果比較回路
１０１、１１１、１２１、１３１、１４１、１５１、２０１、２１０、２１１、２１２、２１３、２１４、２１５    データ線
【図１】
2011033458.tif 000003
【図２】
2011033458.tif 000004
【図３】
2011033458.tif 000005
【図４】
2011033458.tif 000006
【図５】
2011033458.tif 000007
【図６】
2011033458.tif 000008
【図７】
2011033458.tif 000009
【図８】
2011033458.tif 000010
【図９】
2011033458.tif 000011
【図１０】
2011033458.tif 000012
【図１１】
2011033458.tif 000013
【図１２】
2011033458.tif 000014
【図１３】
2011033458.tif 000015
【図１４】
2011033458.tif 000016
【図１５】
2011033458.tif 000017
【図１６】
2011033458.tif 000018