(57)【特許請求の範囲】
【請求項１】
データを保持してパイプラインを構成するレジスタと、
各レジスタに対応して設けられて、１ウェイ目に前段への転送許可が与えられるとき前段のレジスタからのデータ出力と共に前段から転送要求を入力し、該転送要求を入力したとき２ウェイ目に前段に転送受領を与え、前段が該転送受領を入力したとき３ウェイ目に前段から転送完了を入力し、該転送完了を入力したとき４ウェイ目に次段から転送許可が与えられたとき前段へ転送許可を与えると共に前段からのデータをレジスタに取り込ませ保持させて次段へデータ出力させて次段へ転送要求を与える４ウェイハンドシェイクを行う自己同期信号制御回路とを備える自己同期型論理回路において、
前記レジスタは通常時およびテスト時に前記データを逐次転送する機能を有し、
テスト時に全ての前記自己同期信号制御回路を前記ハンドシェイクの３ウェイ目の状態に設定した後、前記パイプラインの最終段の前記自己同期信号制御回路に対して前記転送許可と転送受領を与えることを特徴とする、テスト回路を有する自己同期型論理回路。
【請求項２】
前記テスト時に全ての前記自己同期信号制御回路を前記ハンドシェイクの３ウェイ目の状態に設定することと、前記最終段の前記自己同期信号制御回路に対して前記転送許可と転送受領を与えることが繰返し行われることを特徴とする、請求項１に記載のテスト回路を有する自己同期型論理回路。
【請求項３】
前記テスト時に、前記最終段の自己同期信号制御回路が次段に出力する前記転送要求を、次段からの前記転送受領として該自己同期信号制御回路に与えるための最終段信号処理部をさらに備える、請求項１に記載のテスト回路を有する自己同期型論理回路。
【請求項４】
前記テスト時に全ての前記自己同期信号制御回路を前記ハンドシェイクの３ウェイ目の状態に設定することと、前記パイプラインの最終段の前記自己同期信号制御回路に対して前記転送許可と転送受領を与えることに加えて、前記パイプラインの先頭段の前記自己同期信号制御回路に対して前記転送要求が繰返し与えられることを特徴とする、請求項１から３のいずれか１項に記載のテスト回路を有する自己同期型論理回路。
【請求項５】
前記テスト時に、前記パイプラインの先頭段の前記自己同期信号制御回路が次段に出力する前記転送要求と転送完了を、該自己同期信号制御回路に前記転送要求と転送完了として与えるための先頭段信号処理部をさらに備える、請求項１から３のいずれか１項に記載のテスト回路を有する自己同期型論理回路。
【請求項６】
データを保持してパイプラインを構成するレジスタと、
各レジスタに対応して設けられて、１ウェイ目に前段への転送許可が与えられるとき前段のレジスタからのデータ出力と共に前段から転送要求を入力し、該転送要求を入力したとき２ウェイ目に前段に転送受領を与え、前段が該転送受領を入力したとき３ウェイ目に前段から転送完了を入力し、該転送完了を入力したとき４ウェイ目に次段から転送許可が与えられたとき前段へ転送許可を与えると共に前段からのデータをレジスタに取り込ませ保持させて次段へデータ出力させて次段へ転送要求を与える４ウェイハンドシェイクを行う自己同期信号制御回路とを備える自己同期型論理回路のテスト方法であって、
前記レジスタは通常時およびテスト時に前記データを逐次転送する機能を有し、
テスト時に全ての前記自己同期信号制御回路を前記ハンドシェイクの３ウェイ目の状態に設定する状態設定ステップと、
前記状態設定ステップによる設定後、前記パイプラインの最終段の前記自己同期信号制御回路に対して前記転送許可と転送受領を与えるステップとを有する、自己同期型論理回路のテスト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はテスト回路を有する自己同期型論理回路および自己同期型論理回路のテスト方法に関し、特に、自己同期型のパイプラインを有する論理回路をテストするためのテスト回路を有する自己同期型論理回路および自己同期型論理回路のテスト方法に関する。
【０００２】
【従来の技術】
論理回路のＬＳＩ（大規模集積回路）は大規模化、微細化、高速化が進み、同期回路の物理設計において必要となる遅延を揃えたクロック分配をチップまたはモジュール全体に渡って行なうことが困難になってきている。そのため、クロック分配はパイプラインステージ内のみ行ない、パイプライン間はハンドシェイクによりクロック転送を行なうことで同期を取るための共通クロックが不要な自己同期型のパイプラインを持つ論理回路のＬＳＩ、たとえばデータ駆動プロセッサが検討されている。
【０００３】
図８は従来の自己同期型パイプラインを持つ論理回路の特徴部分を示す図である。図８において、パイプラインレジスタ（以下、単にレジスタと呼ぶ）８０４と８０５と８０６は、前段から入力されたデータパスを順次次段に転送するパイプラインを構成し、レジスタ８０４の出力とレジスタ８０５の入力との間には組合せ回路１０７が接続され、レジスタ８０５の出力とレジスタ８０６の入力との間には組合せ回路１０８が接続されている。組合せ回路１０７と１０８はそれぞれ前段のレジスタ８０４と８０５から出力されたデータを処理するものであり、フリップフロップのような内部状態を保持する回路を持たずに基本ゲート回路のみの組合せで構成されている。
【０００４】
レジスタ８０４、８０５および８０６のそれぞれに対応して自己同期信号制御回路８０１、８０２および８０３が設けられており、自己同期信号制御回路８０１、８０２および８０３は互いにハンドシェイクを行ないながら対応するレジスタに端子ＣＰからクロックパルスを出力する。レジスタ８０４、８０５および８０６それぞれは対応の自己同期信号制御回路からクロックパルスが与えられると、前段からのデータを取り込み保持して次段に出力する。
【０００５】
図９は図８に示した自己同期信号制御回路の具体的なブロック図である。図９において、ＣＩ入力端子２０１には転送要求と転送完了を信号の２状態で示すリクエスト信号ＣＩが前段から入力され、ＲＯ出力端子２０２は前段からの転送要求信号ＣＩの転送要求の出力を許可する転送許可と転送要求を受取ったことを示す転送受領を信号の２状態で示すアクノリッジ信号ＲＯを前段に返す。ＣＰ出力端子２０５は前段からのリクエスト信号ＣＩによる転送完了と次段からのアクノリッジ信号ＲＩによる転送許可によりレジスタへデータを格納するためのクロックパルスを送出する。ＣＯ出力端子２０３は転送要求と転送完了を信号の２状態で示すリクエスト信号を遅延素子２１０を介して次段に与え、ＲＩ入力端子２０４はＣＯ出力端子２０３から次段への転送要求の出力を許可する転送許可と次段が転送要求を受け取ったことを示す転送受領を信号の２状態で示すアクノリッジ信号ＲＩを次段から受取る。
【０００６】
さらに、自己同期信号制御回路はフリップフロップ９０１と４入力ＮＡＮＤゲート２０９とフリップフロップ２０８とを含む。フリップフロップ９０１は転送要求受付状態を保持し、フリップフロップ２０８は次段への転送要求状態を保持し、ＮＡＮＤゲート２０９はフリップフロップ９０１と２０８及びＣＩ入力とＲＩ入力の同期をとる。フリップフロップ９０１のＳ入力端にはリクエスト信号ＣＩが入力され、このリクエスト信号ＣＩはＮＡＮＤゲート２０９の１つの入力端にも与えられる。フリップフロップ９０１のＱ出力信号はＮＡＮＤゲート２０９の１つの入力端に与えられ、フリップフロップ９０１のＱ反転出力信号はＲＯ出力端子２０２に出力される。ＲＩ入力端子２０４に入力されたＲＩ信号はＮＡＮＤゲート２０９の１つの入力とフリップフロップ２０８のリセット入力端に与えられる。ＮＡＮＤゲート２０９の出力信号はフリップフロップ９０１のリセット入力端とフリップフロップ２０８のセット入力端とに与えられる。フリップフロップ２０８のＱ出力はＣＰ出力端子２０５に出力され、そのＱ反転出力はＣＯ出力端子２０３に与えられるとともに、ＮＡＮＤゲート２０９にも与えられる。
【０００７】
ＭＲＢ入力端子２０６はフリップフロップ９０１と２０８に対して、初期状態に設定するリセット信号ＭＲＢを供給する。
【０００８】
図１０（Ａ）〜（Ｌ）は図８および図９の動作を説明するためのタイミングチャートであり、パイプラインが空いている状態で１回転送要求／完了入力を行った場合の動作を示す。図１０（Ｂ）と（Ｃ）には動作を説明するためのタイミングＴ１〜Ｔ４が示される。次に、図８、図９および図１０（Ａ）〜（Ｌ）を参照して動作について説明する。
【０００９】
最初に、全パイプラインの自己同期制御回路内の転送要求受付状態を保持するフリップフロップ９０１と転送要求送出状態を保持するフリップフロップ２０８は図１０（Ａ）に示すリセット信号ＭＲＢのパルス入力によりリセットされる。この時、全自己同期信号制御回路内のＲＯ出力端子は転送許可状態Ｈ、ＣＯ出力は転送完了状態Ｈとなっている。
【００１０】
図８における１段目のパイプラインの自己同期信号制御回路８０１のＣＩ入力端子８０１ＣＩへ、図１０（Ｂ）に示されるリクエスト信号ＣＩによる転送要求(タイミングＴ１参照:ＨからＬへの変化、入力-１段目間ハンドシェイク１ウェイ目)が入力することにより、自己同期信号制御回路８０１の転送要求受付状態を保持するフリップフロップ９０１がセットされ、自己同期信号制御回路８０１のＲＯ出力端子８０１ＲＯから前段パイプラインへ、図１０（Ｃ）に示されるアクノリッジ信号ＲＯによる転送受領(タイミングＴ２参照:ＨからＬへの変化、入力-１段目間ハンドシェイク２ウェイ目)が出力される。これに前後して、同レジスタ８０４のデータパス入力に処理データが入力される。
【００１１】
その後、自己同期信号制御回路８０１のＣＩ入力端子８０１ＣＩへ、図１０（Ｂ）に示すリクエスト信号ＣＩによる転送完了入力(タイミングＴ３参照:ＬからＨへの変化、入力-１段目間ハンドシェイク３ウェイ目)をもって、ＮＡＮＤゲート２０９がアクティブになる。このことにより、自己同期信号制御回路８０１の転送要求送出状態を保持するフリップフロップ２０８がセットされ、自己同期信号制御回路８０１のＣＰ出力端子８０１ＣＰが図１０（Ｄ）に示すようにＬからＨに変化し（クロックパルスが出力されて）、同レジスタ８０４にデータがラッチされる。これと同時に自己同期信号制御回路８０１のＣＯ出力端子８０１ＣＯから２段目パイプラインへ図１０（Ｅ）に示すリクエスト信号ＣＯによる転送要求（ＨからＬへの変化、１段目-２段目間ハンドシェイク１ウェイ目)が遅延素子２１０を通して出力されると共に、自己同期信号制御回路８０１のＮＡＮＤゲート２０９が非アクティブになることで、転送要求受付状態を保持するフリップフロップ９０１がリセットされ、自己同期信号制御回路８０１のＲＯ出力端子８０１ＲＯから前段へ図１０（Ｃ）に示すアクノリッジ信号ＲＯによる転送許可(タイミングＴ４参照:ＬからＨへの変化、入力-１段目間ハンドシェイク４ウェイ目)が出力される。
【００１２】
２段目のパイプラインの自己同期信号制御回路８０２のＣＩ入力端子８０２ＣＩへの図１０（Ｅ）に示すリクエスト信号ＣＩによる転送要求入力(ＨからＬへの変化、同１段目-２段目間ハンドシェイク１ウェイ目)により、自己同期信号制御回路８０２の転送要求受付状態を保持するフリップフロップ９０１がセットされ、自己同期信号制御回路８０２のＲＯ出力端子８０２ＲＯから１段目パイプラインへ図１０（Ｆ）に示すアクノリッジ信号ＲＯによる転送受領(ＨからＬへの変化、１段目-２段目間ハンドシェイク２ウェイ目)が出力される。
【００１３】
これに前後して、レジスタ８０５のデータ入力に組み合わせ回路１０７で処理された処理データが入力される。１段目パイプラインの自己同期信号制御回路８０１のＲＩ入力端子８０１ＲＩへの図１０（Ｆ）に示すアクノリッジ信号ＲＩによる転送受領(ＨからＬへの変化、同１段目-２段目間ハンドシェイク２ウェイ目)の入力により、自己同期信号制御回路８０１の転送要求送出状態を保持するフリップフロップ２０８がリセットされ、自己同期信号制御回路８０１のＣＰ出力端子８０１ＣＰがＨからＬとなり、これと同時に自己同期信号制御回路８０１のＣＯ出力端子８０１ＣＯから２段目パイプラインへ図１０（Ｅ）に示すリクエスト信号ＣＯによる転送完了(ＬからＨへの変化、１段目-２段目間ハンドシェイク３ウェイ目)が遅延素子２１０を通して出力される。
【００１４】
この２段目パイプラインの自己同期信号制御回路８０２のＣＩ入力端子８０２ＣＩへの転送完了(ＬからＨへの変化、同１段目-２段目間ハンドシェイク３ウェイ目)の入力をもって、自己同期信号制御回路８０２のＮＡＮＤゲート２０９がアクティブになる。このことにより、自己同期信号制御回路８０２の転送要求送出状態を保持するフリップフロップ２０８がセットされ、自己同期信号制御回路８０２のＣＰ出力端子８０２ＣＰが図１０（Ｇ）に示すようにＬからＨとなり、レジスタ８０５にデータがラッチされる。これと同時に自己同期信号制御回路８０２のＣＯ出力端子８０２ＣＯから３段目パイプラインへ図１０（Ｈ）に示すリクエスト信号ＣＯによる転送要求(ＨからＬへの変化、２段目-３段目間ハンドシェイク１ウェイ目)が遅延素子２１０を通して出力されると共に自己同期信号制御回路８０２のＮＡＮＤゲート２０９が非アクティブになる。このことで、自己同期信号制御回路８０２の転送要求受付状態を保持するフリップフロップ９０１がリセットされ、自己同期信号制御回路８０２のＲＯ出力端子８０２ＲＯから１段目パイプランへ図１０（Ｆ）に示すアクノリッジ信号ＲＯによる転送許可(ＬからＨへの変化、１段目-２段目間ハンドシェイク４ウェイ目)が出力される。
【００１５】
２段目パイプラインから３段目パイプラインへのやり取りも同様で、自己同期信号制御回路８０２のＣＰ出力端子８０２ＣＰが図１０（Ｇ）に示すようにＨからＬに変化、自己同期信号制御回路８０３のＣＰ出力端子８０３ＣＰが図１０（Ｊ）に示すようにＬからＨに変化、さらにＨからＬに変化する。この時、自己同期制御回路８０２のＣＯ出力端子８０２ＣＯとＲＩ入力端子８０２ＲＩは図１０（Ｈ）と（Ｉ）に示すように変化する。その後、自己同期制御回路８０３のＣＯ出力端子８０３ＣＯとＲＩ入力端子８０３ＲＩは図１０（Ｋ）と（Ｌ）に示すように変化する。
【００１６】
このようにして転送要求信号ＣＩとＣＯで示す転送要求に対して自己同期信号制御回路間の４ウェイハンドシェイクを介して、クロックパルスとデータがパイプラインを転送されていく。
【００１７】
図１１（Ａ）〜（Ｌ）は図８の自己同期信号制御回路の動作タイミングチャートの別の例で、パイプラインにデータが充填されている状態で１回転送許可/受領入力を行なった場合の動作を示す。図１１（Ａ）に示すリセット信号ＭＲＢ を通して回路全体をリセット後、アクノリッジ信号ＲＩを通して最終段の３段目パイプラインの自己同期信号制御回路８０３のＲＩ入力端子８０３ＲＩに図１１（Ｌ）に示す転送受領状態Ｌを入力する。この状態で、転送要求信号ＣＩを通して１段目パイプラインの自己同期信号制御回路８０１のＣＩ入力端子８０１ＣＩに図１１（Ｂ）に示す転送要求(ＨからＬへの変化)/完了(ＬからＨへの変化)を３回入力する。これによりパイプラインは充填され、回路は図１１（Ｌ）に示すアクノリッジ信号ＲＩからの転送許可を待っている状態(全段間ハンドシェイク３ウェイ目後の状態)となる。
【００１８】
この後、アクノリッジ信号ＲＩを通して最終段の３段目パイプラインの自己同期信号制御回路８０３のＲＩ入力端子８０３ＲＩに転送許可(ＬからＨへの変化)/受領(ＨからＬへの変化)を入力すると、アクノリッジ信号ＲＯからＲＩへの接続を通じて転送許可/受領信号が図１１（Ｉ）の８０３ＲＯ→図１１（Ｉ）の８０２ＲＩ→図１１（Ｆ）の８０２ＲＯ→図１１（Ｆ）の８０１ＲＩ→図１１（Ｃ）の８０１ＲＯの順でパイプラインとは逆方向に伝播する。これに伴いクロックパルスもそれに合わせて図１１（Ｊ）の８０３ＣＰ→図１１（Ｇ）の８０２ＣＰ→図１１（Ｄ）の８０１ＣＰの順でパイプラインとは逆方向に生成される。
【００１９】
この時のレジスタ側も含めた動作は、次段パイプラインの転送許可を受けて最終段の３段目パイプランが組み合わせ回路１０８からの出力をレジスタ８０６にラッチしてから２段目パイプラインに転送許可を与え、これを受けて２段目パイプラインが組み合わせ回路１０７からの出力をレジスタ８０５にラッチしてから１段目パイプラインに転送許可を与え、これを受けて１段目パイプラインがデータパス入力からのデータをラッチする動作となり、レジスタにとっては最もホールドタイミングが厳しい条件での動作になる。
図８のようなパイプラインを、必要な段数だけ接続することで一連のデータ処理をチップないしはモジュール全体に渡ったクロック分配が不要な形で実現することができる。
【００２０】
一般的に、ＬＳＩは出荷前に全ての論理回路にテスト信号を入力して、回路が故障無く製造されているかどうか確認するテストを実施する。ＬＳＩ内のパイプライン間の組み合わせ回路の故障を検出するテストを行なうためには、各々のパイプライン毎に組み合わせ回路の入力に対して必要十分な組み合わせを入力し、その出力を期待値と比較する必要がある。
【００２１】
しかし、ＬＳＩの大規模化に伴いパイプライン段数が多段になると中間段のパイプラインの組み合わせ回路に所望の入力を与え、そこから出力を取り出すことが困難となり、長いテストベクタ長とベクタ開発期間が必要となる。
【００２２】
このため、共通クロックで動作する同期回路では、各レジスタに通常入力とテスト時の入力を切り替えられる機能を持たせ、テスト時の入力に他のレジスタの出力を数珠繋ぎに繋いだ構成を取るスキャンテスト手法が一般的に用いられている。ここで、レジスタを数珠繋ぎに繋いでできるシフトレジスタ経路は一般的にスキャンチェーンと呼ばれる。
【００２３】
図１２にはスキャンテスト手法に対応した共通クロックで動作する同期回路の例を示す。図１２の同期回路はスキャンチェーンを含むスキャン対応レジスタ（以下、単にレジスタと呼ぶ）１０４、１０５および１０６、ならびにパイプライン間で演算などを行なう内部状態を持たない組み合わせ回路１０７および１０８を備える。図１２では、共通クロックＣＬＫとスキャンテストイネーブル信号ＳＥは、レジスタ１０４〜１０６のそれぞれに供給される。スキャンテストイネーブル信号ＳＥはスキャンチェーンを有効にするかどうかを切り替える信号である。
【００２４】
スキャンチェーンを含むレジスタ１０４、１０５および１０６それぞれの構造は同じであって図１３に示される。図１３を参照して、各レジスタは、セレクタ１３０１１、１３０１２、１３０１３〜１３０１ｎ、レジスタ１３０２１、１３０２２、１３０２３〜１３０２ｎ、共通クロックＣＬＫを入力する端子１３０８、通常データＤ０、Ｄ１、Ｄ２〜Ｄｎを入力する端子１３０３１、１３０３２、１３０３３〜１３０３ｎ、通常データＤ０、Ｄ１、Ｄ２〜Ｄｎを出力する端子１３０４１、１３０４２、１３０４３〜１３０４ｎ、スキャンチェーンへの入力データＳＩが供給される端子１３０５、スキャンチェーンからの出力データＳＯを導出する端子１３０６、およびスキャンテストイネーブル信号ＳＥを入力する端子１３０７を備える。
【００２５】
各レジスタは、スキャンチェーンが無効な時は、共通クロックＣＬＫが入る毎に入力する通常データＤ０、Ｄ１、Ｄ２〜Ｄｎをラッチする通常動作を行なうが、スキャンチェーンが有効な時は、共通クロックＣＬＫが入る毎にスキャンチェーンの接続順に従ってレジスタの値がスキャンチェーンへのデータ入力からシフトインされると同時にスキャンチェーンからのデータ出力へシフトアウトされる。
【００２６】
全体のスキャンテスト手順は、まずスキャンテストイネーブル信号ＳＥを入力してスキャンチェーンを有効にして、所望のテスト入力値に設定された入力データＳＩをスキャンチェーンを通して内部レジスタに設定する。その後、スキャンテストイネーブル信号ＳＥを入力してスキャンチェーンを無効にして、共通クロックＣＬＫを１パルス入力し各パイプライン間の組み合わせ回路の出力をラッチし、その後、再度、スキャンテストイネーブル信号ＳＥを入力してスキャンチェーンを有効にして、レジスタにラッチされた値をスキャンチェーンを通して取り出し期待値と比較する、同時に次のテスト入力値をスキャンチェーンを通して内部レジスタに設定し、この繰り返しにより回路のテストを行う。
【００２７】
このスキャンテスト手法を用いることにより、多段パイプラインの中間段のパイプラインに対して、スキャンチェーンを通して所望の入力値の設定、出力値の取り出しが可能となるので、大規模回路に対しても、テストが容易となる。
【００２８】
しかし、上述のスキャンテストはテスト時に共通クロックＣＬＫを要求するため、図８の自己同期型パイプラインには適用することができない。自己同期型パイプラインは、ＬＳＩの大規模化、微細化、高速化に伴う物理設計を容易にするものの、一方で大規模化に伴うテストの容易化に課題を残していた。
【００２９】
そこで、出願人は特開２００２−００５９９７公報の「テスト回路を有する自己同期型論理回路」において、この課題を解決するために図１４に示す回路構成を提案した。
【００３０】
図１４の回路は、スキャンチェーンを含む図１３と同様の構成のレジスタ１０４、１０５および１０６、スキャンテスト対応自己同期信号制御回路１４０１、１４０２および１４０３、パイプライン間で演算などを行なう内部状態を持たない組み合わせ回路は１０７および１０８、ならびにセレクタ１４０６を備える。
【００３１】
セレクタ１４０６は、与えられる通常のハンドシェイクのアクノリッジ信号ＲＩとスキャンテストクロック１４０５との一方を、入力したスキャンクロック切替え信号１４０４に基づいて切り替えて出力する。
【００３２】
図１４のスキャンテスト対応自己同期信号制御回路１４０１〜１４０３は同様な構成を有し、その構成は図１５に示される。図１５において、回路は前段パイプラインからの転送要求と転送完了をリクエスト信号ＣＩの２状態で入力するＣＩ入力端子２０１、通常時にＣＩ入力端子２０１からの転送要求の出力を許可する転送許可と転送要求を受け取ったことを示す転送受領を信号の２状態で前段パイプラインに返し、スキャンテスト時は後述のＲＩ入力端子２０４から入力されるスキャンクロック信号をそのまま出力するＲＯ出力端子２０２、次段パイプラインに転送要求と転送完了を伝えるＣＯ出力端子２０３、通常時はＣＯ出力端子２０３からの転送要求の出力を許可する転送許可と転送要求を受け取ったことを示す転送受領を信号の２状態で次段パイプラインから受け取り、スキャンテスト時はスキャンクロックを入力するＲＩ入力端子２０４、通常時は前段パイプラインからの転送完了と次段パイプラインからの転送許可を受けて当段レジスタにクロックパルスを供給しテスト時はＲＩ入力端子２０４から入力されるスキャンクロック信号をそのまま出力するＣＰ端子２０５、リセット信号ＭＲＢの入力端子２０６およびスキャンクロック切替信号１４０４を入力する端子１５０３を備える。
【００３３】
さらに図１５の回路は、転送要求/完了信号を遅延させる遅延素子２１０、前段パイプラインからの転送要求の受付状態を保持するフリップフロップ９０１、次段パイプラインへの転送要求の送出状態を保持するフリップフロップ２０８、ＣＩ入力とＲＩ入力とフリップフロップ９０１とフリップフロップ２０８の間で同期を取るＮＡＮＤゲート２０９、転送許可/受領信号と次段パイプラインからＲＩ入力端子２０４を通して入力されたスキャンクロックとのどちらをＲＯ出力端子２０２へ導出するかを切り替えるためのセレクタ１５０１、およびハンドシェイクの結果生成される通常クロックと次段パイプラインからＲＩ入力端子２０４を通して入力されたスキャンクロックのどちらをＣＰ出力端子２０５へ導出するかを切り替えるためのセレクタ１５０２を備える。リセット信号ＭＲＢはフリップフロップ９０１と２０８を初期状態に設定するように作用する。
【００３４】
この構成によれば、スキャンテスト時にスキャンテスト対応自己同期信号制御回路のＲＩ入力端子２０４からＲＯ出力端子２０２を介して接続されたスキャンクロックによりスキャンテスト対応自己同期信号制御回路１４０１、１４０２および１４０３それぞれのＣＰ出力端子２０５を乗っ取ることで、スキャンテスト対応レジスタ１０４、１０５および１０６に共通のクロックを供給でき、これにより、スキャンテスト手法を該回路に適用できる。
【００３５】
【発明が解決しようとする課題】
図１４と図１５の構成により、自己同期型パイプラインにスキャンテストを適用する１構成が示されたが、該構成ではスキャンテスト時に使用されるスキャンクロックに対して、ある程度遅延を揃えたクロック分配を行なうかアクノリッジ信号ＲＩ入力からアクノリッジ信号ＲＯ出力へスキャンクロックを伝播させる経路内に遅延セルを追加して故意にパイプライン間のスキャンクロックの位相をずらすかして、スキャンテスト時にホールドタイミングの問題が生じないようにタイミングケアを行なう必要があった。
【００３６】
加えて前者であればパイプラインステージ内のみクロック分配を行なうことで物理設計を容易にする自己同期型パイプラインの特性を活かせなくなり、また後者であれば比較的大きな遅延セルが別途必要となっていた。
【００３７】
また、該構成では、スキャンテスト時と通常時に使用されるクロック系統が根本的に切り替わることから、スキャンテスト時のパイプライン間のクロックの位相関係が通常動作と異なるものになるため、通常動作でのタイミングテストを別途行なう必要があった。特にホールドタイミングテストは、図１１（Ａ）〜（Ｌ）のタイミングチャートの様にテストの際にパイプラインに処理データを充填させてパイプラインを動作させる必要があるため、困難なテストとなっていた。
【００３８】
それゆえに、この発明の目的は、簡単な構成で容易なテストを可能にするテスト回路を有する自己同期型論理回路および自己同期型論理回路のテスト方法を提供することである。
【００３９】
【課題を解決するための手段】
本発明のある局面に係るテスト回路を有する自己同期型論理回路は、データを保持してパイプラインを構成するレジスタと、各レジスタに対応して設けられた自己同期信号制御回路とを備える。
【００４０】
自己同期信号制御回路は、１ウェイ目に前段への転送許可が与えられるとき前段のレジスタからのデータ出力と共に前段から転送要求を入力し、該転送要求を入力したとき２ウェイ目に前段に転送受領を与え、前段が該転送受領を入力したとき３ウェイ目に前段から転送完了を入力し、該転送完了を入力したとき４ウェイ目に次段から転送許可が与えられたとき前段へ転送許可を与えると共に前段からのデータをレジスタに取り込ませ保持させて次段へデータ出力させて次段へ転送要求を与える
レジスタは通常時およびテスト時に前記データを逐次転送する機能を有する。テスト時には、全ての自己同期信号制御回路をハンドシェイクの３ウェイ目の状態に設定した後、パイプラインの最終段の自己同期信号制御回路に対して転送許可と転送受領を与える。
【００４１】
したがって、テスト時には、全ての自己同期信号制御回路が３ウェイ目に状態に設定された後、パイプラインの最終段の自己同期信号制御回路に対して転送許可と転送受領が与えられると、パイプラインの全ての自己同期信号制御回路が最終段から先頭段方向に向けて順次４ウェイ目移行して、前段からのデータをレジスタに取り込まれて保持されて順次、次段のレジスタに出力される。
【００４２】
それゆえに、テスト時でも４ウェイハンドシェイクによるデータ転送手順を利用できるから、別途、データ転送のタイミングケアを採る必要はなく、通常の４ウェイハンドシェイクと同じタイミングでデータのホールドタイミングテストを行うことができる。
【００４３】
上述のテスト回路を有する自己同期型論理回路は、好ましくは、テスト時に全ての自己同期信号制御回路をハンドシェイクの３ウェイ目の状態に設定することとと、最終段の自己同期信号制御回路に対しての転送許可と転送受領を与えることは繰返し行われる。
【００４４】
したがって、テスト時には、特別なタイミング信号を与えなくても、パイプラインの全ての自己同期信号制御回路が最終段から先頭段方向に向けて順次、かつ繰返し４ウェイ目に移行して、該パイプラインに保持されていた全てのデータを転送して導出できる。
【００４５】
上述のテスト回路を有する自己同期型論理回路は、好ましくは、テスト時に、最終段の自己同期信号制御回路が次段に出力する転送要求を、次段からの転送許可として該自己同期信号制御回路に与えるための最終段信号処理部をさらに備える。
【００４６】
したがって、テスト時には、最終段の自己同期信号制御回路は４ウェイ目に移行して次段に転送要求を与えるごとに、最終段信号処理部により該転送要求が自動的に自己へ転送許可として与えられるから、特別なタイミング信号を与えなくても、該パイプラインに保持されていた全てのデータを確実に転送して導出できる。
【００４７】
上述のテスト回路を有する自己同期型論理回路は、好ましくは、テスト時に全ての自己同期信号制御回路をハンドシェイクの３ウェイ目の状態に設定することと、パイプラインの最終段の自己同期信号制御回路に対して転送許可と転送受領を与えることと、パイプラインの先頭段の自己同期信号制御回路に対して転送要求と転送完了を与えることは繰返し行われる。
【００４８】
したがって、テスト時には、パイプラインの全ての自己同期信号制御回路が最終段から先頭段方向に向けて順次、かつ繰返し４ウェイ目移行した後は、先頭段の自己同期信号制御回路に対して転送要求と転送完了が繰返し与えられるから、パイプラインの全ての自己同期信号制御回路が最終段から先頭段方向に向けて順次、かつ繰返し１ウェイ目〜３ウェイ目に移行する。それゆえに、該パイプラインに先頭段からデータを供給しながら、転送し、最終段でデータを導出する動作を、特別なタイミング信号を与えなくても繰返すことができる。
【００４９】
上述のテスト回路を有する自己同期信号型論理回路は、好ましくは、テスト時に、パイプラインの先頭段の自己同期信号制御回路が次段に出力する転送要求を、該自己同期信号制御回路に転送要求として与えるための先頭段信号処理部をさらに備える。
【００５０】
したがって、テスト時には、先頭段の自己同期信号制御回路は４ウェイ目に移行して次段に転送要求を与えるごとに、先頭段信号処理部により該転送要求が自動的に自己へ転送要求として与えられるから、先頭段の自己同期信号制御回路に対して転送要求と転送完了を与えなくとも、パイプラインの全ての自己同期信号制御回路が最終段から先頭段方向に向けて順次、かつ繰返し１ウェイ目〜３ウェイ目に移行する。それゆえに、該パイプラインに先頭段からデータを供給しながら、転送し、最終段でデータを導出する動作を、特別なタイミング信号を与えなくても繰返すことができる。
【００５１】
この発明の他の局面に係る自己同期型論理回路のテスト方法は、データを保持してパイプラインを構成するレジスタと、各レジスタに対応して設けられて、１ウェイ目に前段への転送許可が与えられるとき前段のレジスタからのデータ出力と共に前段から転送要求を入力し、該転送要求を入力したとき２ウェイ目に前段に転送受領を与え、前段が該転送受領を入力したとき３ウェイ目に前段から転送完了を入力し、該転送完了を入力したとき４ウェイ目に次段から転送許可が与えられたとき前段へ転送許可を与えると共に前段からのデータをレジスタに取り込ませ保持させて次段へデータ出力させて次段へ転送要求を与える４ウェイハンドシェイクを行いながらデータ処理する自己同期信号制御回路とを備える自己同期型論理回路のテスト方法であって、レジスタは通常時およびテスト時に前記データを逐次転送する機能を有し、方法は、テスト時に全ての自己同期信号制御回路をハンドシェイクの３ウェイ目の状態に設定する状態設定ステップと、状態設定ステップによる設定後、パイプラインの最終段の自己同期信号制御回路に対して転送許可と転送受領を与えるステップとを有する。
【００５２】
したがって、テスト時には、全ての自己同期信号制御回路が３ウェイ目に状態に設定された後、パイプラインの最終段の自己同期信号制御回路に対して転送許可と転送受領が与えられると、パイプラインの全ての自己同期信号制御回路が最終段から先頭段方向に向けて順次４ウェイ目移行して、各レジスタに保持されていたデータは順次、次段のレジスタに転送される。
【００５３】
それゆえに、テスト時でも４ウェイハンドシェイクによるデータ転送手順を利用できるから、別途、データ転送のタイミングケアを採る必要はなく、通常の４ウェイハンドシェイクに従いデータのホールドタイミングテストを行うことができる。
【００５４】
【発明の実施の形態】
以下、この発明の各実施の形態について図面を参照して説明する。
【００５５】
（実施の形態１）
本実施の形態では、パイプライン間で４ウェイハンドシェイクを行なってクロックパルスを転送するための自己同期信号制御回路を持ち、自己同期信号制御回路により転送されたクロックパルスに従ってレジスタ間のデータ処理を進めていく自己同期型論理回路において、レジスタに通常のデータ処理の他に、テスト時その内容を逐次に転送する機能を持たせ、自己同期信号制御回路に、スキャンテスト時に３ウェイまでハンドシェイクが終了した状態に設定できる機能を持たせる。
【００５６】
図１に実施の形態１に係るテスト回路を有した自己同期型論理回路の構成が示される。図１において、回路はスキャンチェーンを含む図１３と同様構成のレジスタ１０４、１０５および１０６、スキャンテスト対応自己同期信号制御回路１０１、１０２および１０３、ならびにパイプライン間で演算などを行なう内部状態を持たない組み合わせ回路１０７と１０８を備える。図１中のデータ入力パスＤＩおよびデータ出力パスＤＯは、自己同期型論理回路への通常のデータ入力およびデータ出力を示し、スキャンデータ入力および出力ＳＩおよびＳＯはスキャンチェーンへのデータ入力および出力を示し、スキャンテストイネーブル信号ＳＥはスキャンチェーンを有効にするかどうかを切り替える信号を示し、他にハンドシェイクのための信号として、自己同期型論理回路に入力するリクエスト信号ＣＩ、自己同期型論理回路から出力されるリクエスト信号ＣＯ、自己同期型論理回路に入力するアクノリッジ信号ＲＩおよび自己同期型論理回路から出力されるアクノリッジ信ＲＯが示されて、さらに前述の信号ＭＲＢならびにスキャンリセット信号ＳＲＢが示される。ここでは、自己同期型論理回路に入力のアクノリッジ信号ＲＩの入力はスキャンテスト時にスキャンクロックを入力するためのトリガ信号としても用いられる。
【００５７】
図２には、図１のスキャンテスト対応自己同期信号制御回路の内部構成が示される。図１のスキャンテスト対応自己同期信号制御回路１０１〜１０３のそれぞれは図２と同様の構成を有する。
【００５８】
図２において、スキャンテスト対応自己同期信号制御回路は、前段パイプラインからの転送要求と転送完了を信号の２状態で入力するＣＩ入力端子２０１、ＣＩ入力端子２０１からの転送要求の出力を許可する転送許可と転送要求を受け取ったことを示す転送受領を信号の２状態で前段パイプラインに返すＲＯ出力端子２０２、次段パイプラインに転送要求と転送完了を伝えるＣＯ出力端子２０３、ＣＯ出力端子からの転送要求の出力を許可する転送許可と転送要求を受け取ったことを示す転送受領を信号の２状態で次段パイプラインから受け取るＲＩ入力端子２０４、前段パイプラインからの転送完了と次段パイプラインからの転送許可を受けて当段レジスタのクロックパルスを供給するＣＰ端子２０５、リセット信号ＭＲＢを入力する端子２０６およびスキャンリセット信号ＳＲＢを入力する端子２１１を備える。
【００５９】
端子２０６から入力されたリセット信号ＭＲＢは、フリップフロップ２０７と２０８に与えられて、これらを初期状態に設定する。端子２１１から入力されたスキャンリセット信号ＳＲＢは、転送要求受付状態を保持するフリップフロップ２０７に与えられて、これをセットすることで、該スキャンテスト対応自己同期信号制御回路を４ウェイハンドシェイクの３ウェイ目まで終了した状態に設定する。
【００６０】
さらに回路は、転送要求/完了信号を遅延させる遅延素子２１０、前段パイプラインからの転送要求の受付状態を保持するフリップフロップ２０７、次段パイプラインへの転送要求の送出状態を保持するフリップフロップ２０８およびＮＡＮＤゲート２０９を備える。ＮＡＮＤゲート２０９は、ＣＩ入力、ＲＩ入力、フリップフロップ２０７およびフリップフロップ２０８の間で同期を取る。
【００６１】
図２のスキャン対応自己同期信号制御回路は、スキャンリセット信号ＳＲＢ は非アクティブ値としてＨ固定で、スキャンチェーンも無効な状態であれば、図１０および図１１と同様な通常動作を行なう。
【００６２】
テスト手法は、まず初めの段階で、全自己同期信号制御回路をリセット後、最後尾のパイプラインの自己同期信号制御回路の転送受領/許可入力をＬにする。その後の段階で、全自己同期信号制御回路を３ウェイ目までハンドシェイクが終了した状態に設定して、最後尾のパイプラインの自己同期信号制御回路の転送受領/許可入力をＬ→Ｈ→Ｌにして、全パイプラインの自己同期信号制御回路からレジスタにクロックパルスを供給する。テスト時には、上述の最初の段階を１回実行し、その後の段階を繰り返し実行する。
【００６３】
スキャンテスト時の図１と図２のスキャンテスト対応自己同期信号制御回路の動作を図３（Ａ）〜（Ｍ）のタイミングチャートを参照して説明する。図３（Ａ）〜（Ｍ）のタイミングチャートでは動作を説明するためにタイミングＴ３が示される。
【００６４】
まず、図３（Ａ）に示すリセットＭＲＢの入力により回路がリセットされる。その後、図１の最終段の３段目パイプラインのスキャン対応自己同期信号制御回路１０３の図３（Ｍ）に示すＲＩ入力１０３ＲＩを回路のＲＩ入力ＲＩを通して転送受領状態Ｌに設定してから、スキャンリセット信号ＳＲＢを図３（Ｂ）に示すアクティブパルスＨ→Ｌ→Ｈとして入力することで、全てのスキャン対応自己同期信号制御回路内の前段パイプラインからの転送要求受付状態を保持するフリップフロップ２０７がセットされる。これにより全てのスキャン対応自己同期信号制御回路は、タイミングＴ３の遷移で示すように、図３（Ｄ）、（Ｇ）および（Ｊ）の出力されるアクノリッジ信号ＲＯが転送受領状態Ｌかつ図３（Ｆ）、（Ｉ）および（Ｌ）の出力されるリクエスト信号ＣＯが転送完了状態Ｈとなり、４ウェイハンドシェイクの３ウェイ目まで終了した状態に設定される。
【００６５】
この時、入力される図３（Ｃ）、（Ｆ）および（Ｉ）のリクエスト信号ＣＩ(前段から出力のリクエスト信号ＣＯ)がＨであり、かつ要求受付状態を保持するフリップフロップ２０７はセットされているが、図３（Ｇ）、（Ｊ）および（Ｍ）の入力されるアクノリッジ信号ＲＩ(次段から出力のアクノリッジ信号ＲＯ)がＬになるため、ＮＡＮＤゲート２０９はアクティブにならず、入力されるアクノリッジ信号ＲＩ(次段から出力のアクノリッジ信号ＲＯ)がＨになるまでは、リクエスト信号ＣＯによる次段への転送要求(Ｈ→Ｌへの変化)はなされない。
【００６６】
リセット信号ＭＲＢの入力によるリセット後の最初のスキャンリセット信号ＳＲＢ入力のＨ→Ｌ変化においては、各スキャンテスト対応自己同期制御回路が出力するアクノリッジ信号ＲＯが転送受領状態Ｌになるまでの遅延及び遅延差に起因して、前段スキャンテスト対応自己同期制御回路に入力するアクノリッジ信号ＲＩのＨ→Ｌの変化が遅れることにより、最終段を除く幾つかの段のスキャンテスト対応自己同期制御回路のクロックパルスＣＰの出力および転送要求信号ＣＯの出力が過渡的に変化する可能性があるが、後述のスキャンテスト全体の動作で説明するように、該過渡的変化はテスト動作に影響を与えない。
【００６７】
この後、回路に入力される図３（Ｍ）に示すアクノリッジ信号ＲＩを転送許可状態に(ＬからＨへの変化)させる。これにより、最終段の３段目パイプラインのスキャン対応自己同期信号制御回路１０３においては、以下のように動作する。
【００６８】
つまり、図３（Ｍ）に示すアクノリッジ信号ＲＩが転送許可状態になることでＮＡＮＤゲート２０９がアクティブになり、転送要求送出状態を保持するフリップフロップ２０８がセットされ、図３（Ｋ）に示すＣＰ出力端子１０３ＣＰがＬからＨとなる。これと同時にＣＯ出力端子１０３ＣＯから次段パイプラインへの転送要求信号である図３（Ｌ）に示すリクエスト信号ＣＯのＨからＬへの変化が遅延素子２１０を通して出力されると共に、ＮＡＮＤゲート２０９が非アクティブになることで、転送要求受付状態を保持するフリップフロップ２０７がリセットされて、ＲＯ出力端子１０３ＲＯから前段２段目パイプラインへの転送許可信号である図３（Ｊ）に示すアクノリッジ信号ＲＯのＬからＨへの変化が出力される。これにより、２段目パイプラインのスキャン対応自己同期信号制御回路１０２においては、以下のように動作する。
【００６９】
２段目パイプラインのスキャン対応自己同期信号制御回路１０２では、ＲＯ出力端子１０３ＲＯから出力された図３（Ｊ）のアクノリッジ信号ＲＯによる転送許可をアクノリッジ信号ＲＩの転送許可として入力してＮＡＮＤゲート２０９がアクティブになる。これにより、転送要求送出状態を保持するフリップフロップ２０８はセットされ、図３（Ｈ）に示すＣＰ出力端子１０２ＣＰはＬからＨとなる。これと同時に、図３（Ｉ）に示すようにＣＯ出力端子１０２ＣＯから次段３段目パイプラインへの転送要求信号である図３（Ｉ）に示すリクエスト信号ＣＯのＨからＬへの変化が遅延素子２１０を通して出力されると共にＮＡＮＤゲート２０９が非アクティブになる。これにより、転送要求受付状態を保持するフリップフロップ２０７はリセットされ、図３（Ｇ）に示すようにＲＯ出力端子１０２ＲＯから前段１段目パイプラインへの転送許可を示すアクノリッジ信号ＲＯのＬからＨへの変化が出力される。
【００７０】
以降、同様にして、１段目パイプラインのスキャン対応自己同期信号制御回路１０１における動作が以下のように行われる。
【００７１】
つまり、図３（Ｅ）に示すようにＣＰ出力端子１０１ＣＰはＬからＨとなり、同時に図３（Ｆ）に示す転送要求(ＨからＬへの変化)がＣＯ出力端子１０１ＣＯから遅延素子２１０を通して次段の２段目パイプラインへ出力される。これと共に、ＲＯ出力端子１０１ＲＯから前段パイプラインへ図３（Ｄ）に示すアクノリッジ信号ＲＯによる転送許可(ＬからＨへの変化)が出力される。
【００７２】
以上のように、回路の図３（Ｍ）に示すアクノリッジ信号ＲＩ入力による転送許可(ＬからＨへの変化)をトリガにして、最終段の３段目パイプラインから２段目パイプラインを経由して１段目パイプラインに向かってパイプラインのデータフローとは逆方向に、ＣＰ出力端子１０３ＣＰ、１０２ＣＰおよび１０１ＣＰの変化が、すなわちクロックパルスのＬからＨへの変化が伝播する。
【００７３】
このようなＣＰ出力端子変化の伝播と並行して各スキャン対応自己同期信号制御回路では、ＣＩ入力端子１０３ＣＩおよび１０２ＣＩへのリクエスト信号ＣＩによる転送要求(ＨからＬへの変化)の入力により、転送要求受付状態を保持するフリップフロップ２０７がセットされ、ＲＯ出力端子１０３ＲＯおよび１０２ＲＯから各前段パイプラインへのアクノリッジ信号ＲＯによる転送受領(ＨからＬへの変化)が出力される。
【００７４】
最終段パイプラインを除くパイプラインのスキャン対応自己同期回路では、各次段パイプラインからのアクノリッジ信号ＲＯを、ＲＩ入力端子１０２ＲＩおよび１０１ＲＩにおいてアクノリッジ信号ＲＩによる転送受領(ＨからＬへの変化)で入力する。したがって、転送要求送出状態を保持するフリップフロップ２０８はリセットされ、ＣＰ出力端子１０２ＣＰおよび１０１ＣＰはＨからＬとなり、これと同時にＣＯ出力端子１０２ＣＯおよび１０１ＣＯから各次段パイプラインへリクエスト信号ＣＯによる転送完了(ＬからＨへの変化)が遅延素子２１０を通して出力される。
【００７５】
その後、回路に入力するアクノリッジ信号ＲＩを転送受領状態(ＨからＬへの変化)にすると、最終段の３段目パイプラインのスキャン対応自己同期回路１０３では、以下のように動作する。
【００７６】
まず、ＲＩ入力端子１０３ＲＩにアクノリッジ信号ＲＩは転送受領(ＨからＬへの変化)として入力するので、転送要求送出状態を保持するフリップフロップ２０８はリセットされ、ＣＰ出力端子１０３ＣＰがＨからＬとなり、これと同時にＣＯ出力端子１０３ＣＯから 次段パイプラインへ転送完了(ＬからＨへの変化)を示すリクエスト信号ＣＯが遅延素子２１０を通して出力される。
【００７７】
この状態で、図３（Ｂ）のスキャンリセット信号ＳＲＢをアクティブパルスＨ→Ｌ→Ｈとして入力することで、再度、全てのスキャン対応自己同期信号制御回路内の前段パイプラインからの転送要求受付状態を保持するフリップフロップ２０７はセットされ、ＲＯ出力が転送受領状態、ＣＯ出力が転送完了状態といった、４ウェイハンドシェイクの３ウェイ目まで終了した状態に再度設定される。
【００７８】
そこで、図３（Ｂ）のスキャンリセット信号ＳＲＢをアクティブパルスＨ→Ｌ→Ｈとして入力し、図３（Ｍ）のアクノリッジ信号ＲＩをＬ→Ｈ→Ｌとして入力し、入力されるアクノリッジ信号ＲＩのＬからＨへの変化をトリガにして、繰り返し最終段パイプラインから２段目パイプラインを経由して１段目パイプラインにデータフローを溯って、ＣＰ出力によるクロックパルスを伝播させることができる。
【００７９】
また、この時のＣＰ出力によるクロックパルスの伝播タイミングは、図１１（Ａ）〜（Ｌ）のパイプラインにデータが充填されている状態で転送許可/受領入力を行なった場合の通常動作と同じである。したがって、この転送許可入力をトリガにクロックパルスを伝播させる上述の動作と図１と図２の回路構成を用いて、テストのために別途タイミングケアを行なう必要の無いスキャンテスト回路とが実現できる。またスキャンテストを用いて、通常動作と等価なホールドタイミングテストを実現できる。
【００８０】
つづいて、上述の動作を用いたスキャンテスト全体の動作を図４（Ａ）〜（Ｍ）のタイミングチャートと図１を用いて説明する。図４（Ａ）のリセット信号ＭＲＢの入力による回路のリセット後、回路に図４（Ｃ）に示すアクノリッジ信号ＲＩを転送受領状態Ｌに設定して入力するから、図４（Ｄ）のスキャンテストイネーブル信号ＳＥをＨにして入力することで、まずスキャンチェーンが有効にされる。
【００８１】
そして、所望のテストパターンデータをスキャンデータ入力ＳＩを介してスキャンチェーンを通してレジスタ１０４、１０５および１０６に設定する。この時のクロックパルス入力には上述の転送許可入力をトリガにクロックを伝播させるシーケンス、すなわち図４（Ｂ）に示すスキャンリセット信号ＳＲＢをＨ→Ｌ→Ｈとして入力し、図４（Ｃ）に示すアクノリッジ信号ＲＩをＬ→Ｈ→Ｌとして入力するシーケンスを、１テストサイクルとして、図４（Ｋ）、（Ｉ）および（Ｇ）に示す各スキャンテスト対応自己同期信号制御回路のＣＰ出力１０３ＣＰ、１０２ＣＰおよび１０１ＣＰにクロックを伝播させて、テストパターンデータのロードを行なう。
【００８２】
このテストパターンデータのロード動作により、１０４Ｑ、１０４ＳＯ、１０５Ｑ、１０５ＳＯ、１０６Ｑ、１０６ＳＯが順々に確定していく。リセット後の最初に入力される図４（Ｂ）に示すスキャンリセット信号ＳＲＢのＨ→Ｌへの変化にて、最終段を除く幾つかの段のスキャンテスト対応自己同期信号制御回路のＣＰ出力およびＣＯ出力に過渡的な変化が発生する可能性があるが、このＣＰ上の過渡的な変化で仮に内部レジスタの状態が不定になったとしても、テスト開始前の事象であり、その後のパターンデータのロード動作によりレジスタが所望の状態に確定するので、テスト動作に対してＣＰ上の過渡的な変化による影響は無い。
【００８３】
レジスタ１０４および１０５および１０６にパターンデータのロードが終了したら、次の（ａ）テスト動作で、図４（Ｄ）のスキャンテストイネーブル信号ＳＥをＬにして入力してスキャンチェーンを無効にし、上述と同様のクロック入力方法で１クロック入力し、データパス入力ＤＩによる通常入力データと各パイプライン間の組み合わせ回路１０７および１０８の出力を、レジスタ１０４、１０５および１０６それぞれにラッチする。
【００８４】
その後、（ｂ）再度スキャンテストイネーブル信号ＳＥをＨにして入力することで、スキャンチェーンを有効にして、各レジスタにラッチされた値をスキャンチェーンを通して、スキャンデータ出力ＳＯから取り出し期待値と比較する。同時に次のテストパターンデータをスキャンチェーンを通して内部レジスタに設定する。この時のクロック入力にも上述と同様の方法を用いる。以降、上述の動作（ａ）と（ｂ）の繰り返しによりスキャンテストを行なうことができる。
【００８５】
（実施の形態２）
次に実施の形態２について説明する。
【００８６】
図５に実施の形態２に係るテスト回路を有する自己同期型論理回路の構成が示される。図５の構成は、図１の構成にセレクタ５０１および５０３、レジスタ５０４およびゲート５０５を追加して備える。
【００８７】
セレクタ５０１は、入力するスキャンテストモード信号ＳＭに基づいて、スキャンテスト時に１段目のパイプラインのスキャンテスト対応自己同期信号制御回路１０１において、転送要求/完了信号出力１０１ＣＯを自分自身の転送要求/完了信号入力１０１ＣＩにフィードバックさせるように作用する。スキャンテストモード信号ＳＭは、スキャンテスト回路を有効にするかどうかを切り替える信号である。セレクタ５０３、レジスタ５０４およびゲート５０５は、スキャンテスト時に最終段である３段目のパイプラインのスキャンテスト対応自己同期信号制御回路１０３において、転送要求信号出力１０１ＣＯ(ＨからＬへの変化)を自分自身の転送受領信号入力１０１ＲＩ(ＨからＬへの変化)にフィードバックするための回路である。
【００８８】
回路は、スキャンリセット信号ＳＲＢの入力は非アクティブ値Ｈ固定で、かつスキャンチェーンも無効な状態であれば、実施の形態１と同様に通常動作を行なう。
【００８９】
図５のセレクタ５０１のスキャンテストモード信号ＳＭのレベルに応じた動作を説明する。スキャンテストモード信号ＳＭがＨレベル（スキャンテスト動作のためのレベル）が設定されるとき、パイプラインの先頭段のスキャンテスト対応自己同期信号制御回路１０１のＣＩ入力１０１ＣＩに、自身が次段のスキャンテスト対応自己同期信号制御回路１０２に出力した転送要求１０１ＣＯがセレクタ５０１を介して入力（フィードバック）される。
【００９０】
このセレクタ５０１を介したフィードバックが無い(又はスキャンテストモード信号ＳＭがＬレベルの)場合、該自己同期型論理回路に入力のアクノリッジ信号ＲＩのＬ→Ｈ→Ｌのシーケンスのみでは、スキャンテスト対応自己同期信号制御回路１０１がリセット信号ＳＲＢとしてアクティブパルスＨ→Ｌ→Ｈを入力した後と同じ状態(アクノリッジ信号ＲＯが転送受領状態Ｌ、リクエスト信号ＣＯが転送完了状態Ｈ)に復帰しないため、スキャンクロックを入力するには、該自己同期型論理回路に入力のアクノリッジ信号ＲＩのＬ→Ｈ→Ｌのシーケンス入力と交互にリセット信号ＳＲＢとしてアクティブパルスＨ→Ｌ→Ｈを入力する必要がある(図３（Ａ）〜（Ｍ）と図４（Ａ）〜（Ｍ）参照)。
【００９１】
しかし、セレクタ５０１を介したフィードバックが有る(且つスキャンテストモード信号ＳＭがＨレベルの)場合は、１段目から２段目への転送要求/完了信号である転送要求ＣＯが自身の１段目にも入るため、該自己同期型論理回路に入力のアクノリッジ信号ＲＩのＬ→Ｈ→Ｌのシーケンスのみで、先頭段目のスキャン対応自己同期信号制御回路１０１もリセット信号ＳＲＢにアクティブパルスＨ→Ｌ→Ｈを入力した後の状態(アクノリッジ信号ＲＯが転送受領状態Ｌ、リクエスト信号ＣＯが転送完了状態Ｈ)に復帰することになる。結果、この構成を取ることで、リセット信号ＳＲＢへのアクティブパルス入力は最初の１回だけで良くなる。
【００９２】
一方、スキャンテストモード信号ＳＭがＬレベル（通常動作のためのレベル）設定の時、図１と同様にリセット信号ＳＲＢが非アクティブ値Ｈ固定で且つスキャンチェーンも無効な状態である。
【００９３】
このときは、先頭段目のスキャンテスト対応自己同期信号制御回路１０１のＣＩ入力１０１ＣＩにセレクタ５０１を介して該自己同期型論理回路に入力の転送要求ＣＩが入力される。この時の回路動作は通常動作（図１０（Ａ）〜（Ｌ）、図１１（Ａ）〜（Ｌ）参照)と同じである。
【００９４】
次に、図５のセレクタ５０３、レジスタ５０４およびゲート５０５の動作について説明する。
【００９５】
スキャンテストモード信号ＳＭがＨレベル（スキャンテスト動作のためのレベル設定）のとき、パイプラインの最終段(図では３段目)のスキャンテスト対応自己同期信号制御回路１０３のＲＩ入力１０３ＲＩに、自身からの転送要求(１０３ＣＯのＨ→Ｌへの変化)がセレクタ５０３、レジスタ５０４およびゲート５０５を介してアクノリッジ信号ＲＩに転送受領(１０３ＲＩのＨ→Ｌへの変化)として入力（フィードバック）される。
【００９６】
セレクタ５０３、レジスタ５０４およびゲート５０５を介したフィードバックが無い(又はスキャンテストモード信号ＳＭがＬレベルの)場合は、最終段のスキャンテスト対応自己同期信号制御回路１０３のクロックパルスＣＰ(１０３ＣＰ)の立ち下がりは、該自己同期型論理回路に入力のアクノリッジ信号ＲＩの立ち下がりをトリガにした動作になる(図３（Ｍ）参照)。この時、クロックパルスＣＰの立上がりは回路１０３→１０２→１０１の順で伝播するものの、クロックパルスＣＰの立ち下がりの方は回路１０２→１０１の順であるが、回路１０３は該自己同期型論理回路に入力のアクノリッジ信号ＲＩのＨ→Ｌ変化タイミングに依存する。
【００９７】
パイプラインレジスタで立ち上がりエッジしか使用していなければ、この構成でも全く問題無いが、立ち下がりエッジを使用していた場合、スキャンテスト時にホールドタイミングの問題が生じる。しかし、回路５０３〜５０５を介したフィードバックが有る(且つスキャンテストモード信号ＳＭがＨレベルの)場合は、最終段の転送要求(１０３ＣＯのＨ→Ｌへの変化)がゲート５０５を通して、レジスタ５０４のリセット端子ＲＢをアクティブとしレジスタ５０４の出力をリセットし(→Ｌ)、これがセレクタ５０３を介して自身の転送受領(１０３ＲＩのＨ→Ｌへの変化)として入力される。これにより、スキャンテスト対応自己同期信号制御回路１０３内の転送要求送出状態を保持するフリップフロップ２０８がＮＡＮＤゲート２０９を介してリセットされ、スキャン対応自己同期信号制御回路１０３のクロックパルス出力(１０３ＣＰ)がＨ→Ｌとなり、これと同時に転送完了(１０３ＣＯのＬ→Ｈへの変化)が最終段から出力される。
【００９８】
最終段の転送完了は、ゲート５０５を通して、レジスタ５０４の端子ＲＢを非アクティブとするがレジスタ５０４の出力は変化しないため、セレクタ５０３を介した１０３ＲＩも変化しない。結果、この構成を取ることで、該自己同期型論理回路に入力のアクノリッジ信号ＲＩのＨ→Ｌ変化を待たずにクロックパルス１０３ＣＰがＨ→Ｌに変化するため、クロックパルスＣＰの立ち下がりも回路１０３→１０２→１０１の順で伝播するようになる。それゆえに、パイプラインレジスタで立ち下がりエッジを使用していた場合でもスキャンテスト時のホールドタイミングの問題を回避できる。
【００９９】
上述の一連の変化の後、該自己同期型論理回路に入力のアクノリッジ信号ＲＩにＨ→Ｌ変化が入ると、レジスタ５０４のクロック端子に立ち下がりが入るが、レジスタ５０４の出力は変化しないため、セレクタ５０３を介したアクノリッジ信号１０３ＲＩも変化しない。
【０１００】
次のスキャンクロック投入のため、該自己同期型論理回路に入力のアクノリッジ信号ＲＩにＬ→Ｈ変化が入るとレジスタ５０４のクロック端子に立ち上がりが入り、Ｈに固定された入力値がレジスタ５０４の出力に導出され、これがセレクタ５０３を介して最終段の回路１０３への転送許可(１０３ＲＩのＬ→Ｈへの変化)として入力される。
【０１０１】
回路５０３〜５０５の機能(１０３ＲＩの制御)を端的にまとめると、スキャンテスト対応自己同期信号制御回路１０３の１段から入力するアクノリッジ信号ＲＩである転送受領(１０３ＲＩのＨ→Ｌへの変化)←回路１０３の次段回路への転送要求ＣＯ(１０３ＣＯのＨ→Ｌへの変化)、およびスキャンテスト対応自己同期信号制御回路１０３に与えるアクノリッジ信号ＲＩである転送許可(１０３ＲＩのＬ→Ｈへの変化)←外部から与えられるアクノリッジ信号ＲＩである転送許可(該自己同期型論理回路に入力のアクノリッジ信号ＲＩのＬ→Ｈへの変化)となる。
【０１０２】
一方、スキャンテストモード信号ＳＭがＬレベル（通常動作のためのレベル設定）の時、図１と同様にリセット信号ＳＲＢ入力が非アクティブ値Ｈ固定で、かつスキャンチェーンも無効な状態であることが必要とされる。
【０１０３】
最終段のスキャンテスト対応自己同期信号制御回路１０３の１０３入力１０３ＲＩに、セレクタ５０３を介して該自己同期型論理回路に入力のアクノリッジ信号ＲＩが入力される。この時の回路動作は通常動作(図１０（Ａ）〜（Ｌ）、図１１（Ａ）〜（Ｌ）参照)と同じである。
【０１０４】
スキャンテスト時の該スキャンテスト対応自己同期信号制御回路の動作を図６（Ａ）〜（Ｏ）のタイミングチャートに示す。スキャンテスト回路を有効にするスキャンテストモード信号ＳＭが図６（Ｏ）に示すＨ固定で入力されていること以外の実施の形態１との動作の違いに着目する。
【０１０５】
違いの１点目は、セレクタ５０１を用いた転送要求/完了信号のフィードバックにより、１段目のパイプラインのスキャンテスト対応自己同期信号制御回路１０１の図６（Ｃ）に示すＣＩ入力１０１ＣＩに自身からの転送要求(ＨからＬへの変化)/完了(ＬからＨへの変化)であるリクエスト信号ＣＯが入力されることで、ＲＯ出力端子１０１ＲＯから前段パイプラインへの転送受領(ＨからＬへの変化)を示す図６（Ｄ）のアクノリッジ信号ＲＯが出力される。これにより、図６（Ｎ）のアクノリッジ信号ＲＩのＬ→Ｈ→Ｌのシーケンスに従う入力のみで、図６（Ｂ）のスキャンリセット信号ＳＲＢをアクティブパルスＨ→Ｌ→Ｈとして入力した後の状態に復帰する。
【０１０６】
そのため、スキャンリセット信号ＳＲＢのアクティブパルスは最初の１回のみ入力すれば、以降はアクノリッジ信号ＲＩのＬ→Ｈ→Ｌのシーケンスに従う入力のみで、アクノリッジ信号ＲＩのＬからＨへの変化をトリガにして繰り返し最終段パイプラインから１段目パイプラインにデータフローを溯ってクロックパルスＣＰ出力を伝播させることが可能となる。
【０１０７】
違いの２点目は、セレクタ５０３、レジスタ５０４およびゲート５０５を用いた転送要求信号ＣＯ出力から転送受領信号入力へのフィードバックにより、最終段である３段目のパイプラインのスキャンテスト対応自己同期信号制御回路１０３のＲＩ入力１０３ＲＩに自身からの転送要求(ＨからＬへの変化)が入力されることで、回路へのアクノリッジ信号ＲＩの図６（Ｎ）に示す転送受領入力(ＨからＬへの変化)に先じてＣＰ出力端子１０３ＣＰが図６（Ｋ）に示すようにＨからＬに変わると共に、図６（Ｌ）に示すようにＣＯ出力端子１０３ＣＯから次段パイプラインへの転送完了(ＬからＨへの変化)が出力される。これにより、入力されるアクノリッジ信号ＲＩのＨからＬへの変化を待たずに最終段である３段目のパイプラインのＣＰ出力端子１０３ＣＰをＨからＬに変化させることができるため、最終段のパイプラインで立ち下がりエッジを用いている回路にもスキャンテストを適用することが可能となる。
【０１０８】
次に、実施の形態２におけるスキャンテスト全体の動作を図７（Ａ）〜（Ｎ）のタイミングチャートに示す。スキャンテスト回路を有効にするスキャンテストモード信号ＳＭが図７（Ｎ）に示すようにＨ固定で入力されていること以外の実施の形態１との動作の違いに着目すると、スキャンリセット信号ＳＲＢの図７（Ｂ）に示すアクティブパルス入力が最初の１回のみで、以降はアクノリッジ信号ＲＩの図７（Ｃ）に示すＬ→Ｈ→Ｌのシーケンスに従うクロック入力を繰返し行なっている。これによりアクノリッジ信号ＲＩ入力を単純にスキャンクロックと見立ててスキャンテストを行なうことが可能となっている。
【０１０９】
上述の実施の形態の自己同期型論理回路をデータ駆動プロセッサに適用すれば、大規模なクロック分配を必要としないことから大規模ＬＳＩの物理設計が容易であるといったデータ駆動プロセッサの特徴を活かしたまま、スキャンクロックのタイミング調整が不要なスキャンテスト回路を僅かな回路追加により実現できる。また、自己同期型論理回路を用いてホールドテストタイミングを容易に行なうことができ、大規模データ駆動プロセッサの開発期間短縮と機能/タイミング両面からの信頼性向上に寄与することができる。
【０１１０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１１１】
【発明の効果】
発明によれば、テスト時でも４ウェイハンドシェイクによるデータ転送手順を利用できるから、別途、データ転送のタイミングケアを採る必要はなく、通常の４ウェイハンドシェイクに従いデータのホールドタイミングテストを僅かな回路追加により行うことができる。
【図面の簡単な説明】
【図１】  実施の形態１に係るテスト回路を有した自己同期型論理回路の構成図である。
【図２】  図１のスキャンテスト対応自己同期信号制御回路の内部構成図である。
【図３】  （Ａ）〜（Ｍ）はスキャンテスト時の図１と図２のスキャンテスト対応自己同期信号制御回路の動作を示すタイミングチャートである。
【図４】  （Ａ）〜（Ｍ）はスキャンテスト全体の動作を示すタイミングチャートである。
【図５】  実施の形態２に係るテスト回路を有する自己同期型論理回路の構成図である。
【図６】  （Ａ）〜（Ｏ）はスキャンテスト時の図５のスキャンテスト対応自己同期信号制御回路の動作を示すタイミングチャートである。
【図７】  （Ａ）〜（Ｎ）は実施の形態２におけるスキャンテスト全体の動作を示すタイミングチャートである。
【図８】  従来の自己同期型パイプラインを持つ論理回路の特徴部分を示す図である。
【図９】  図８に示した自己同期信号制御回路の具体的なブロック図である。
【図１０】  （Ａ）〜（Ｌ）は図８および図９の動作を説明するためのタイミングチャートである。
【図１１】  （Ａ）〜（Ｌ）は図８の自己同期信号制御回路の別の例を示す動作タイミングチャートである。
【図１２】  スキャンテスト手法に対応した共通クロックで動作する同期回路の例を示す図である。
【図１３】  図１２のスキャンチェーンを含むレジスタのブロック図である。
【図１４】  従来のテスト回路を有する自己同期型論理回路のブロック図である。
【図１５】  図１４のスキャンテスト対応自己同期信号制御回路のブロック図である。
【符号の説明】
１０１、１０２、１０３  スキャンテスト対応自己同期制御回路、１０４、１０５、１０６  スキャンテスト対応レジスタ、５０１、５０３  セレクタ、５０４  レジスタ、５０５  ゲート、ＣＩ、ＣＯ  リクエスト信号、ＲＩ、ＲＯ  アクノリッジ信号、ＤＩ  データパス入力、ＤＯ  データパス出力、ＳＩ  スキャンデータ入力、ＳＯ  スキャンデータ出力、ＳＥ  スキャンテストイネーブル信号、ＭＲＢ  リセット信号、ＳＲＢ  スキャンリセット信号、ＳＭ  スキャンテストモード信号。
【図１】
0003860075.tif 000002
【図２】
0003860075.tif 000003
【図３】
0003860075.tif 000004
【図４】
0003860075.tif 000005
【図５】
0003860075.tif 000006
【図６】
0003860075.tif 000007
【図７】
0003860075.tif 000008
【図８】
0003860075.tif 000009
【図９】
0003860075.tif 000010
【図１０】
0003860075.tif 000011
【図１１】
0003860075.tif 000012
【図１２】
0003860075.tif 000013
【図１３】
0003860075.tif 000014
【図１４】
0003860075.tif 000015
【図１５】
0003860075.tif 000016