(57)【特許請求の範囲】
【請求項１】
複数のソースシンクロナスインターフェイスの各々により接続された複数のＩＣ（Integrated Circuit）を搭載したマイクロコンピュータにおいて、
前記ソースシンクロナスインターフェイスによるデータの送り側のＩＣは、
通常動作における動作クロックを生成するＰＬＬ（Phase-Locked Loop）回路と、
前記ＰＬＬ回路が生成した動作クロックにしたがって、データを送出する第１のフリップフロップと、
前記ＰＬＬ回路が生成した動作クロックにしたがって、前記動作クロックと同じ周波数の同期クロックを送出する第２のフリップフロップと、
前記動作クロックから２つのパルス信号を抽出する２パルス生成回路とを備え、
前記第１のフリップフロップは、前記２パルス生成回路で抽出された前記２つのパルス信号にしたがって、前記データを送出し、
前記第２のフリップフロップは、前記２パルス生成回路で抽出された前記２つのパルス信号にしたがって、前記同期クロックを送出し、
前記送り側のＩＣの前記第１のフリップフロップは、前記同期クロックよりも前記２つのパルス信号の半サイクル分遅らせて前記データを送出し、
前記ソースシンクロナスインターフェイスによるデータの受け取り側のＩＣは、
前記第２のフリップフロップから送出された前記同期クロックにしたがって前記第１のフリップフロップから送出された前記データを取り込む第３のフリップフロップを備えることを特徴とするマイクロコンピュータ。
【請求項２】
前記送り側のＩＣの前記第１のフリップフロップは、セット／リセット付きフリップフロップであり、
前記送り側のＩＣは、保持する値に応じて前記第１のフリップフロップをセットまたはリセットすることにより当該第１のフリップフロップに前記データを保持させるデータレジスタをさらに備えることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記送り側のＩＣの前記第１のフリップフロップは、スキャンチェーンを構成し、当該スキャンチェーンを介してデータをスキャンシフトすることにより、当該第１のフリップフロップに前記データが入力されることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項４】
複数のソースシンクロナスインターフェイスの各々により接続された複数のＩＣ（Integrated Circuit）を搭載したマイクロコンピュータが実行する方法であって、
前記ソースシンクロナスインターフェイスによるデータの送り側のフリップフロップが、データを入力し保持するステップと、
通常動作における動作クロックを生成するステップと、
前記動作クロックから２つのパルス信号を抽出するステップと、
前記２つのパルス信号にしたがって、前記データを送出するステップと、
前記２つのパルス信号にしたがって、前記動作クロックと同じ周波数の同期クロックを送出するステップと、
前記ソースシンクロナスインターフェイスによるデータの受け取り側のフリップフロップが、前記同期クロックにしたがって前記データを取り込むステップと
を含み、
前記データを送出するステップは、前記同期クロックよりも前記２つのパルス信号の半サイクル分遅らせて前記データを送出することを特徴とする方法。
【請求項５】
前記送り側のフリップフロップがデータを入力するステップは、
前記送り側のフリップフロップに対応して設けられたデータレジスタに所定の値を保持させるステップと、
前記データレジスタが保持する値に応じて当該データレジスタが対応する前記送り側のフリップフロップをセットまたはリセットすることにより当該送り側のフリップフロップに前記データを保持させるステップと
を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記送り側のフリップフロップがデータを入力するステップでは、スキャンチェーンを構成する前記送り側のフリップフロップに対して、当該スキャンチェーンを介してデータをスキャンシフトすることにより、当該送り側のフリップフロップに前記データを保持させることを特徴とする請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩのテストに関し、特にＬＳＩの実動作状態でボードレベルのインターコネクトテストを実現するための回路構成およびそのテスト方法に関する。
【背景技術】
【０００２】
特定の用途のために設計・製造されるＡＳＩＣ（Application Specific Integrated Circuit）を実装したボードでは、その製造時に、ボードの良品・不良品を検査する手法と
して、ＪＴＡＧによるバウンダリスキャンテスト（Boundary Scan Test）が広く行われている。このＪＴＡＧによりボードレベルのインターコネクトテストを行う場合、ＡＳＩＣの本来の動作を実行する回路（以下、ユーザ回路）を動作させることなく、ＪＴＡＧ回路のみを用いて行われる。これにより、ユーザ回路の回路構成に関わらず汎用的にテストを実施することが可能である。テスト方法としては、ＩＥＥＥ１１４９のＥＸＴＥＳＴというテストがある（例えば非特許文献１参照）。【０００３】
ところで、今日、高速ＡＳＩＣのＩ／Ｏ（Input／Output）インターフェイスは、ＨＳ
Ｓまたはソースシンクロナスタイプが主に用いられている。ソースシンクロナスインターフェイス（Ｉ／Ｏ回路）は、高速動作に適しており、ＤＤＲ（Double Data Rate）やＱＤＲ（Quad Data Rate）などのＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）や各種の高速ＣＰＵバスで用いられる。このインターフェイスは、チップデータと同時にラッチするためのクロックを送り側（以下、ＴＲ側）チップから受け取り側（以下、ＲＥＣ側）チップへ送る。【０００４】
このような高速に動作する回路では、テストにおいても、論理の正否を確認するＥＸＴＥＳＴのような静的なテストだけではなく、実動作状態でのテスト（アットスピードテスト、At speed test）を実施することが重要と考えられる。【０００５】
従来は、ＡＳＩＣのボード設計者、システム設計者およびマイクロコード設計者がテスト用プログラムを開発してシステムレベルテストを行うことにより、ボードレベルのソースシンクロナスインターフェイスのアットスピードテストが行われていた。【０００６】
【非特許文献１】IEEE  STD1149.1−1990, "IEEE Standard Test Access Port and Boundary-Scan Architecture", published by IEEE, Inc., 345 East 47th Street, NY 10017, USA
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、高速で動作するＡＳＩＣのソースシンクロナスインターフェイスにおおいては、アットスピードテストを実行することが望まれる。しかし従来は、このインターフェイスに対してボードレベルでアットスピードテストを行う汎用的な方法は存在しなかった。【０００８】
また上述したように、システムレベルテストにより、ボードレベルでアットスピードテストが事実上行われるのであるが、この場合、次のような問題があった。システムレベルテストで結果がフェイルであった時、デバッグを行うことになるが、ソースシンクロナスインターフェイスに問題がある場合、このデバッグが容易ではない。なぜなら、インターフェイスの不良によりデータが化けるだけで、チップ内の状態レジスタは正常だからである。すなわち、コントロール信号は正しく動作するが、観察されるデータだけがおかしいということになる。したがって、問題の原因を特定することが非常に困難であった。【０００９】
そこで本発明は、システムレベルテストによらずに、ボードレベルで、ＡＳＩＣ内部のソースシンクロナスインターフェイスのアットスピードテストを実行するための汎用的な仕組み（回路構成および動作方法）を実現することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成する本発明は、次のような構成のマイクロコンピュータとして実現される。このマイクロコンピュータは、ソースシンクロナスインターフェイスにより接続された複数のＩＣ（Integrated Circuit）を搭載する。そして、ソースシンクロナスインターフェイスによるデータの送り側のＩＣは、実動作における動作クロックを発信するＰＬＬ（Phase-Locked Loop）回路と、このＰＬＬ回路から発信された動作クロックにしたが
って、テストデータを送出する第１のフリップフロップと、このＰＬＬ回路から発信された動作クロックにしたがって、ソースシンクロナスにおける同期クロックを送出する第２のフリップフロップとを備える。一方、ソースシンクロナスインターフェイスによるデータの受け取り側のＩＣは、第２のフリップフロップから送出された同期クロックにしたがって第１のフリップフロップから送出されたテストデータを取り込む第３のフリップフロップを備える。【００１１】
より詳しくは、送り側のＩＣは、ＰＬＬ回路から発信される動作クロックから２つのパルス信号を抽出する２パルス生成回路をさらに備える。そして、第１のフリップフロップは、この２パルス生成回路で抽出された２つのパルス信号にしたがって、テストデータを送出する。同様に、第２のフリップフロップは、２パルス生成回路で抽出された２つのパルス信号にしたがって、同期クロックを送出する。【００１２】
さらに詳しくは、送り側のＩＣの第１のフリップフロップは、第２のフリップフロップが送出する同期クロックよりも２つのパルス信号の半サイクル分遅らせてテストデータを送出する。あるいは、この第１のフリップフロップは、第２のフリップフロップが送出する同期クロックと同じクロックエッジでテストデータを送出する。後者の場合、受け取り側のＩＣは、ＤＤＬ（Digital Delay Line）回路等の遅延手段を備え、受信した同期クロックをπ／２だけ遅らせて第３のフリップフロップに供給する。【００１３】
この送り側のＩＣの第１のフリップフロップは、セット／リセット付きフリップフロップで構成することができる。この場合、送り側のＩＣは、ＪＴＡＧ  ＴＥＳＴ  ＤＡＴＡ  ＲＥＳＩＳＴＥＲ（以下ＪＴＡＧ＿ＴＤＲ、非特許文献１参照）をさらに備え、このＪＴＡＧ＿ＴＤＲに保持される値に応じて、第１のフリップフロップをセットまたはリセットすることにより、この第１のフリップフロップにテストデータを保持させる。また、送り側のＩＣの第１のフリップフロップによって構成されるスキャンチェーンを介してテストデータをスキャンシフトすることにより、第１のフリップフロップにテストデータを入力する構成とすることも可能である。【００１４】
また本発明は、マイクロコンピュータのテスト方法としても把握される。このテストの対象であるマイクロコンピュータは、ソースシンクロナスインターフェイスにより接続された複数のＩＣを搭載する。そして、ソースシンクロナスインターフェイスによるデータの送り側のＩＣにおいて、データ送出用の第１のフリップフロップおよび同期クロック送出用の第２のフリップフロップに初期値を設定するステップと、実動作における動作クロックを発信するＰＬＬ回路からクロック信号を発信し、このクロック信号にしたがって、第１のフリップフロップおよび第２のフリップフロップから初期値のデータおよび同期クロックを送出するステップとを含み、かつ、ソースシンクロナスインターフェイスによるデータの受け取り側のＩＣにおいて、データ受け取り用の第３のフリップフロップが、第２のフリップフロップから送出された同期クロックにしたがって第１のフリップフロップから送出された初期値のデータを取り込むステップを含む。【００１５】
ここで、第１、第２のフリップフロップに初期値を設定するステップは、これら第１、第２のフリップフロップに対応して設けられたＪＴＡＧ＿ＴＤＲに所定の値を保持させるステップと、このＪＴＡＧ＿ＴＤＲが保持する値に応じて対応する第１、第２のフリップフロップをセットまたはリセットすることによりこれら第１、第２のフリップフロップの初期値を設定するステップとを含む。あるいは、この第１、第２のフリップフロップに初期値を設定するステップでは、スキャンチェーンを構成する第１、第２のフリップフロップに対して、スキャンチェーンを介してテストデータをスキャンシフトすることにより、初期値を設定する。【００１６】
さらに本発明は、ソースシンクロナスインターフェイスにより接続された複数のＩＣを搭載するマイクロコンピュータに対する次のようなテスト方法としても把握される。このテスト方法は、ソースシンクロナスインターフェイスによるデータの送り側のフリップフロップが、テストデータを入力し保持するステップと、実動作における動作クロックを発信するＰＬＬ回路からクロック信号が発信され、クロック信号にしたがって、送り側のフリップフロップに保持されているテストデータおよびソースシンクロナスにおける同期クロックが送出されるステップと、ソースシンクロナスインターフェイスによるデータの受け取り側のフリップフロップが、同期クロックにしたがってテストデータを取り込むステップとを含む。【００１７】
ここで、送り側のフリップフロップがテストデータを入力するステップは、この送り側のフリップフロップに対応して設けられたＪＴＡＧ＿ＴＤＲに所定の値を保持させるステップと、このＪＴＡＧ＿ＴＤＲが保持する値に応じて対応する送り側のフリップフロップをセットまたはリセットすることにより送り側のフリップフロップにテストデータを保持させるステップとを含む。あるいは、この送り側のフリップフロップがテストデータを入力するステップでは、スキャンチェーンを構成する送り側のフリップフロップに対して、スキャンチェーンを介してテストデータをスキャンシフトすることにより、送り側のフリップフロップにテストデータを保持させる。
【発明の効果】
【００１８】
上記のように構成された本発明によれば、ＡＳＩＣ内部のソースシンクロナスインターフェイスで接続されたチップ間で、実動作と同じクロック信号にしたがってデータを伝送することができる。その後、受け取り側チップに設けた観測用のＪＴＡＧ＿ＴＤＲを用いてデータの伝送結果を取り出し評価することにより、システムレベルテストによらずに、ボードレベルでアットスピードテストを行うことが可能となる。
また、このテスト方法によれば、チップ間の各接続経路を伝送したデータを個別に評価できるため、システムレベルテストとは異なり、問題が発見された場合に、容易に、その原因を特定することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明する。
まず、本発明の概要を説明する。本発明のテストは、ＡＳＩＣ上の複数のチップ（回路）に対して、データのやり取りが行われる（ソースシンクロナスに関わる）２つのチップの組ごとに着目し、ＴＲ（送り）側のチップからＲＥＣ（受け取り）側のチップへの伝送をテストする。このテストでは、まずＴＲ側チップおよびＲＥＣ側チップ双方のソースシンクロナスに関わるフリップフロップが所定の値に初期化される。次に、実動作と同じスピードのクロックによってソースシンクロナスインターフェイスが駆動し、ＴＲ側フリップフロップの値（テストデータ）がＲＥＣ側フリップフロップに伝送される。そして、ＲＥＣ側フリップフロップに格納された結果が読み出されて観測される。【００２０】
このように、本発明では、ソースシンクロナスインターフェイスにおいて、実動作と同じスピードでテストデータが伝送されるため、アットスピードテストが実現される。テストで用いられるソースシンクロナスに関わるフリップフロップは、ＪＴＡＧ＿ＴＤＲを共有させる方法も可能である場合がある。【００２１】
ところで、ソースシンクロナスを実現する方式として、（ａ）ＴＲ側がデータとクロックを半サイクルずらして送り出す方式と、（ｂ）ＴＲ側がデータとクロックを同じクロックエッジで送り出す方式とがある。このうち、（ｂ）方式では多くの場合、ＲＥＣ側チップにおいて、ＤＤＬ（Digital Delay Line）回路などの遅延手段により同期クロックをπ／２（９０度）遅らせることによって、クロックエッジとデータのタイミングをずらし（以下、クロックをπ／２ずらす装置をＤＤＬと総称する）、この同期クロックによりデータをフリップフロップにラッチする。【００２２】
また、ソースシンクロナスに関わるフリップフロップに初期値（テストデータ）をセットする方法としては、ソースシンクロナスに関わるフリップフロップとしてセット／リセット付きフリップフロップを用い、セット／リセット信号を使って初期値をセットする方法がある。さらに、ソースシンクロナスを上記（ｂ）方式で実現する場合、ＴＲ側フリップフロップはＪＴＡＧ＿ＴＤＲをシェアさせる（すなわち、ＪＴＡＧでデータをシフトする手法を用いてＴＲ側フリップフロップに初期値をセットする）方法を行うことができる。したがって、本発明のテストを実現するために３種類の回路構成を想定することができる。以下、これらの回路構成に応じて第１−第３の実施形態を挙げ、本発明を説明する。【００２３】
＜第１の実施形態＞
第１の実施形態では、ソースシンクロナスを実現する方式として、ＴＲ側がデータとクロックを半サイクルずらして送り出す方式が用いられる場合について説明する。
図１は、本実施形態が適用されるソースシンクロナスに関わる回路の全体構成を示す図である。図１において、チップＡがＴＲ側チップ、チップＢがＲＥＣ側チップである。図１には、ソースシンクロナスに関わる回路部分のみが記載されているが、実際には、チップＡ、Ｂ共に、各々のシステム回路が存在していることは言うまでもない。なお、図１に示すチップＡ、チップＢの別は、ＴＲ側チップであるかＲＥＣ側チップであるかを示すに過ぎない。すなわち、ＡＳＩＣ内の各チップが、ソースシンクロナスインターフェイスにおける立場（ＴＲ側かＲＥＣ側か）に応じて、チップＡまたはチップＢとなる。【００２４】
チップＡにおいて、ＦＦ＿ＴはＴＲ側フリップフロップである。本実施形態で、ＴＲ側フリップフロップはセット／リセット付きフリップフロップであり、図８にその構成を示す。また、チップＢにおいて、ＦＦ＿ＲはＲＥＣ側フリップフロップである。ＲＥＣ側フリップフロップもセット／リセット付きフリップフロップであり、図９にその構成を示す。チップＡ、ＢのＴＤＲ＿ＦＦはＪＴＡＧ＿ＴＤＲであり、図１０にその構成を示す。【００２５】
図２は、図１に示した回路において、本実施形態の対象となる最も基本的なソースシンクロナスの回路要素を示す図である。図２には、ソースシンクロナスに関わるフリップフロップとして、チップＡ（ＴＲ側）にデータ送信用のフリップフロップＦ１と、同期クロック送信用のフリップフロップＦ２が示されており、チップＢ（ＲＥＣ側）にデータ受け取り用のＦ３およびＦ４が示されている。ＲＥＣ側フリップフロップＦ３、Ｆ４のうち、フリップフロップＦ３は、フリップフロップＦ２から送信される同期クロックの立ち上がりでフリップフロップＦ１から送信されるデータを取り込む。また、フリップフロップＦ４は、フリップフロップＦ２から送信される同期クロックの立ち下がりでフリップフロップＦ１から送信されるデータを取り込む。【００２６】
図２には、１つの同期クロック送信用フリップフロップＦ２に対して１つずつのフリップフロップＦ１、Ｆ３、Ｆ４が図示されているが、実際には、１つの同期クロック送信用フリップフロップＦ２に対して数個のデータ送信用フリップフロップＦ１が設けられ、チップＢにはフリップフロップＦ１に対応する数のフリップフロップＦ３、Ｆ４が設けられる（図１参照）。そして、チップＡ、Ｂには、このようなフリップフロップＦ１−Ｆ４のセットが数セット設けられる。例えば、フリップフロップＦ２に対して８個ずつのフリップフロップＦ１、Ｆ３、Ｆ４が設けられ、そのようなフリップフロップＦ１−Ｆ４のセットがチップＡ、Ｂに４セットあるならば、このチップＡ、Ｂ間のデータの転送レートは３２ビット（＝８ビット×４）／クロックエッジである。【００２７】
また、これら複数のＴＲ側フリップフロップＦ１、Ｆ２は、チップＡ内部で製造テスト用のスキャンチェーンを構成し、チップＡ上に設けられた入力端子（スキャンイン）および出力端子（スキャンアウト）に接続される。同様に、ＲＥＣ側フリップフロップＦ３、Ｆ４は、チップＢ内部でスキャンチェーンを構成し、チップＢ上に設けられた入力端子（スキャンイン）および出力端子（スキャンアウト）に接続される。本実施形態におけるフリップフロップＦ１、Ｆ２、Ｆ３、Ｆ４は、それぞれ対応するＪＴＡＧ＿ＴＤＲであるＴＤＲ＿ＦＦ（図１参照）の出力によりセット／リセットされる。また、Ｆ１、Ｆ２、Ｆ３、Ｆ４はＭＵＸＳＣＡＮ設計用フリップフロップであって、本テスト時には、Ｆ１、Ｆ２は選択信号ＳＥ＝‘１’であり、Ｆ３、Ｆ４は選択信号ＳＥ＝‘０’である。後述する他の実施形態を説明した図１３、図１８においても同様である。【００２８】
チップＡのフリップフロップＦ１、Ｆ２についてさらに説明する。
データ転送用のＴＲ側フリップフロップＦ１は、ＴＤＲ＿ＦＦの制御により値（テストデータ）をセットされる。そして、マルチプレクサＭ１が制御信号ＳＧ＿Ｐ＝「１」を入力することでフリップフロップＦ１自身の出力を反転して再入力し、さらにＰＬＬ（Phase-Locked Loop）回路１１からのクロック信号ＣＬＫ２のフォーリングエッジにて、保持
している値を出力する（ＤＡＴＡＯＵＴ）。
一方、同期クロック送信用のＴＲ側フリップフロップＦ２は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。そして、マルチプレクサＭ２が制御信号ＳＧ＿Ｐ＝「１」を入力することでフリップフロップＦ２自身の出力を反転して再入力し、さらにＰＬＬ回路１１からのクロック信号ＣＬＫ２をそのまま入力することによって、保持している値を同期クロックとして出力する（ＣＬＫＯＵＴ）。この構成により、フリップフロップＦ１の出力ＤＡＴＡＯＵＴと、フリップフロップＦ２の出力ＣＬＫＯＵＴとは、クロック信号ＣＬＫ２の半サイクル分ずれることとなる。
ここで、ＰＬＬ回路１１から出力されるクロック信号ＣＬＫ２は、実動作においてチップＡの動作を制御する動作クロックと同じ周波数のクロック信号である。【００２９】
次に、チップＢのフリップフロップＦ３、Ｆ４についてさらに説明する。
データ受信用のＲＥＣ側フリップフロップＦ３は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。そして、チップＡから受信したＣＬＫＯＵＴを動作クロックＳＴＢ＿ｃｌｋとして反転せずそのまま入力し、これに応じてチップＡから受信したＤＡＴＡＯＵＴを取り込む。これにより、フリップフロップＦ３からＤＡＴＡＯＵＴの値（テストデータ）が出力され（ＤＰ）、後に観測用のＴＤＲ＿ＤＰにラッチされる。
一方、もう一つのデータ受信用のＲＥＣ側フリップフロップＦ４は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。そして、チップＡから受信した同期クロックＣＬＫＯＵＴを動作クロックＳＴＢ＿ｃｌｋとして反転して入力し、これに応じてチップＡから受信したＤＡＴＡＯＵＴを取り込む。これにより、フリップフロップＦ４からＤＡＴＡＯＵＴの値（テストデータ）が出力され（ＤＮ）、後に観測用のＴＤＲ＿ＤＮにラッチされる。【００３０】
図３は、フリップフロップＦ３における信号波形を示す図である。
図３を参照すると、チップＡのＰＬＬ回路１１による２つのクロック信号ＣＬＫ２のうち、１つめの立ち上がりでフリップフロップＦ２から同期クロック（ＣＬＫＯＵＴ）が出力され、ＳＴＢ＿ｃｌｋが立ち下がっている。そして、この１つめのクロック信号ＣＬＫ２の立ち下がりでフリップフロップＦ１からテストデータ（ＤＡＴＡＯＵＴ）が出力されている。次に、２つめのクロック信号ＣＬＫ２の立ち上がりで同期クロックの出力が終わってＳＴＢ＿ｃｌｋが立ち上がり、これによりテストデータの値がチップＢのフリップフロップＦ３に取り込まれている（ＤＰ）。なお、図示の（Ｆ１＝‘０’）は、ＴＤＲ＿ＦＦによってＦ１が「０」に初期化されることを意味する。以下同様である。【００３１】
図４は、フリップフロップＦ４における信号波形を示す図である。
図４を参照すると、チップＡのＰＬＬ回路１１による２つのクロック信号ＣＬＫ２のうち、１つめの立ち上がりでフリップフロップＦ２から同期クロック（ＣＬＫＯＵＴ）が出力され、ＳＴＢ＿ｃｌｋが立ち上がっている。そして、この１つめのクロック信号ＣＬＫ２の立ち下がりでフリップフロップＦ１からテストデータ（ＤＡＴＡＯＵＴ）が出力されている。次に、２つめのクロック信号ＣＬＫ２の立ち上がりで同期クロックの出力が終わってＳＴＢ＿ｃｌｋが立ち下がり、これによりテストデータの値がチップＢのフリップフロップＦ４に取り込まれている（ＤＮ）。【００３２】
次に、本実施形態におけるソースシンクロナスに関わるフリップフロップＦ１−Ｆ４に対する初期値の設定方法について説明する。
図５は、チップＡのフリップフロップＦ１、Ｆ２を初期化する回路の構成を示す図である。図示のセット／リセット付きフリップフロップは、図２に示したチップＡのフリップフロップＦ１またはフリップフロップＦ２である。図５において、まずＴＤＲ＿ＦＦに値が格納される。そして、ＵｐｄａｔｅＤＲ＿Ｌ＝「１」で、ＴＤＲ＿ＦＦに格納された値により、フリップフロップＦ１、Ｆ２がセットあるいはリセットされる。ＵｐｄａｔｅＤＲ＿Ｌという信号は、図１１のように生成される。以下、同様である。図示の例では、ＴＤＲ＿ＦＦの値が「１」であればフリップフロップＦ１、Ｆ２はリセットされ、ＴＤＲ＿ＦＦの値が「０」であればフリップフロップＦ１、Ｆ２はセットされる。なお、図１１は、非特許文献１のＦｉｇ ５−５を参照しており、図中のＡ、Ｂ、Ｃ、Ｄ信号の生成、回
路表記方法は、Ｆｉｇ５−５に準じている。
以上はチップＡのフリップフロップＦ１、Ｆ２の初期化方法の説明であるが、本実施形態では、チップＢのフリップフロップＦ３、Ｆ４も同様の構成であり、チップＢにおけるＴＤＲ＿ＦＦによりセットあるいはリセットされる。そのため、図中では、Ｆ１、Ｆ２（Ｆ３、Ｆ４）と表記した。【００３３】
再度図１を参照し、本実施形態によるテストの対象であるソースシンクロナスに関わるフリップフロップを含むチップレベルの接続関係を説明する。
まずＴＲ側のチップＡを参照すると、このチップＡには、上述したＦＦ＿ＴおよびＴＤＲ＿ＦＦの他に、動作クロックを発信する動作クロック発信部としてのＰＬＬ回路１１および本テスト用のＰＬＬコントローラ１２と、ＰＬＬ回路１１から発信される動作クロックから２パルスを抽出して出力する２パルス生成部１３と、ＪＴＡＧの制御を行うためのＴＡＰコントローラ１４と、インストラクションレジスタ（Instruction Register：ＩＲ）１５とを備える。そして、ＴＡＰコントローラ１４およびインストラクションレジスタ１５の出力は、インストラクションデコーダおよびゲートＡ１、Ａ２、Ａ３を経て、ＴＤＲ＿ＦＦ、ＦＦ＿Ｔ、２パルス生成部１３等に供給される。【００３４】
ＰＬＬコントローラ１２は、本テストに割り当てられたＪＴＡＧインストラクションのビット列（以下テストビット）がインストラクションレジスタ１５に格納された後、ＰＬＬ回路１１が実動作と同じ周波数で発信するように制御する。
ＡＮＤゲートＡ１は、テストビットがインストラクションレジスタ１５に格納され、ＳｈｉｆｔＤＲ＝「１」である場合に、ＴＣＫをＴＤＲ＿ＦＦに供給する。
ＡＮＤゲートＡ２は、テストビットがインストラクションレジスタ１５に格納され、ＵｐｄａｔｅＤＲ＿Ｌ＝「１」である場合に、ＦＦ＿Ｔをセットまたはリセットするための制御信号をＴＤＲ＿ＦＦから供給する。ＦＦ＿Ｔがセットされるかリセットされるかは、上述したようにＴＤＲ＿ＦＦにセットされている値による。これにより、ＦＦ＿Ｔの初期値が決まる。
ＡＮＤゲートＡ３は、テストビットがインストラクションレジスタ１５に格納され、ＲｕｎＴｅｓｔＩｄｌｅ＝‘１’（図１１参照）で、ＦＦ＿Ｔに対して内部をループ状態にする制御信号ＳＧ＿Ｐを供給し、さらに２パルス生成部１３に対してＰＬＬ回路１１の出力から２パルスを取り出すためのトリガー信号を供給する。【００３５】
次に、ＲＥＣ側のチップＢを参照すると、このチップＢには、上述したＦＦ＿ＲおよびＴＤＲ＿ＦＦの他に、ＪＴＡＧの制御を行うためのＴＡＰコントローラ２１と、インストラクションレジスタ２２とを備える。ＴＡＰコントローラ２１およびインストラクションレジスタ２２の出力は、インストラクションデコーダおよびゲートＡ４、Ａ５を経てＴＤＲ＿ＦＦ等に供給される。【００３６】
ＡＮＤゲートＡ４は、テストビットがインストラクションレジスタ２２に格納され、ＳｈｉｆｔＤＲ＝「１」である場合に、マルチプレクサＭ１、Ｍ２に対して「１」のデータを選択させる制御信号を供給する。マルチプレクサＭ１、Ｍ２が「１」のデータを選択することで、テスト用クロックＴＣＫによりＴＤＩ（テストデータイン）−ＴＤＯ（テストデータアウト）のパスでスキャンが行われ、ＴＤＲ＿ＦＦに値がセットされる。
ＡＮＤゲートＡ５は、テストビットがインストラクションレジスタ２２に格納され、ＵｐｄａｔｅＤＲ＿Ｌ＝「１」で、ＦＦ＿Ｒをセットまたはリセットするための制御信号をＴＤＲ＿ＦＦに供給する。ＦＦ＿Ｒがセットされるかリセットされるかは、上述したようにＴＤＲ＿ＦＦにセットされている値による。これにより、ＦＦ＿Ｒの初期値が決まる。  また、ＴＡＰコントローラ２１は、ＴＤＲ＿ＦＦを動作制御するためのクロック信号ＣｌｏｃｋＤＲを供給している。【００３７】
次に、以上のように構成された回路によるテストの動作について説明する。
図６は、チップＡおよびチップＢにおけるテスト実行時の信号波形を示す図、図７は、テストの概略的な流れを示すフローチャートである。
本実施形態のテストは、大きく分けて、ソースシンクロナスに関わるフリップフロップ（ＴＲ側、ＲＥＣ側とも）に初期値を設定するフェーズ、実動作と同じスピードでソースシンクロナスインターフェイスを駆動するフェーズ、テスト結果を取り出すフェーズの３つのフェーズからなる。【００３８】
図７に示すように、本実施形態のテストでは、まずチップＡ、Ｂのインストラクションレジスタ１５、２２にテストビットが格納される。これをトリガーとして、チップＡ、ＢのＰＬＬ回路１１が動作クロックを発信する（ステップ７０１）。次に、ソースシンクロナスに関わるフリップフロップ（図１のＦＦ＿ＴおよびＦＦ＿Ｒ、図２のＦ１−Ｆ４）を任意の値に初期化する（ステップ７０２）。フリップフロップの初期化の方法は、上述したようにＪＴＡＧ１１４９標準の作法に準拠した方法によって行うことができる。図６を参照すると、チップＡにおいて、対応するＴＤＲ＿ＦＦにセットされた値に基づきフリップフロップＦ１、Ｆ２が初期化され、同様にチップＢにおいて、対応するＴＤＲ＿ＦＦにセットされた値に基づきフリップフロップＦ３、Ｆ４が初期化されていることがわかる。【００３９】
次に、ＴＲ側チップＡのＲｕｎＴｅｓｔＩｄｌｅ＝「１」をトリガーとして、２パルス生成部１３が、ＰＬＬ回路１１の出力から実動作のクロックと同じスピードの２発のパルスを送出する(ステップ７０３)。図６を参照すると、ＦＦ＿Ｔをループ状態にする制御信号ＳＧ＿Ｐが出力され、そのタイミングで２パルス分のクロック信号ＣＬＫ２が出力されている。なお、ＲｕｎＴｅｓｔＩｄｌｅは、図１１に示すようにして生成される。【００４０】
そして、この２パルスにしたがい、フリップフロップＦ１は、保持しているテストデータを、フリップフロップＦ２は同期クロックをそれぞれＲＥＣ側チップＢへ送出する（ステップ７０４）。チップＢのフリップフロップＦ３、Ｆ４は、チップＡのフリップフロップＦ１から送られたデータをフリップフロップＦ２から送られた同期クロックにしたがって取り込む（ステップ７０５）。【００４１】
この後、ＲＥＣ側チップＢにおいて、フリップフロップＦ３、Ｆ４に取り込まれた値がＴＤＲ＿ＤＰ、ＴＤＲ＿ＤＮにそれぞれＣｌｏｃｋＤＲでラッチされ、ＴＤＯから取り出されて観察される（ステップ７０６）。このＴＤＯからのデータの取り出しは、ＴＡＰコントローラ１４から供給される信号ＣｌｏｃｋＤＲを用いて、ＪＴＡＧ１１４９標準の作法に準拠した方法によって行うことができる。
以上のようにして、ソースシンクロナスに関わるＴＲ側フリップフロップとＲＥＣ側フリップフロップとの間で、実動作と同じスピードでテストデータが伝送される。そして、ＲＥＣ側に取り込まれた値（テスト結果）を評価することで、ソースシンクロナスインターフェイスのボードレベルでのアットスピードテストが実現される。【００４２】
＜第２の実施の形態＞
第２の実施形態では、ソースシンクロナスを実現する方式として、ＴＲ側がデータとクロックを同じクロックエッジで送り出す方式が用いられ、かつＴＲ側フリップフロップをＴＤＲ＿ＦＦの値によりセットリセットを使って初期化する場合について説明する。
図１２は、本実施形態が適用されるソースシンクロナスに関わる回路の全体構成を示す図である。図１２において、チップＡがＴＲ側チップ、チップＢがＲＥＣ側チップである。図１２には、ソースシンクロナスに関わる回路部分のみが記載されているが、実際には、チップＡ、Ｂ共に、各々のシステム回路が存在していることは言うまでもない。なお、図１２に示すチップＡ、チップＢの別は、ＴＲ側チップであるかＲＥＣ側チップであるかを示すに過ぎない。すなわち、ＡＳＩＣ内の各チップが、ソースシンクロナスインターフェイスにおける立場（ＴＲ側かＲＥＣ側か）に応じて、チップＡまたはチップＢとなる。  チップＡ、Ｂにおいて、ＦＦ＿ＴはＴＲ側フリップフロップであり、ＦＦ＿ＲはＲＥＣ側フリップフロップであり、ＴＤＲ＿ＦＦはＪＴＡＧ＿ＴＤＲである。これらの構成は、図８、図９および図１０に示した第１の実施形態のものと同様である。【００４３】
図１３は、図１２に示した回路において、本実施形態の対象となる最も基本的なソースシンクロナスの回路要素を示す図である。図１３には、ソースシンクロナスに関わるフリップフロップとして、チップＡ（ＴＲ側）にデータ送信用のフリップフロップＦ１１と、同期クロック送信用のフリップフロップＦ１２が示されており、チップＢ（ＲＥＣ側）にデータ受け取り用のＦ１３およびＦ１４が示されている。ＲＥＣ側フリップフロップＦ１３、Ｆ１４のうち、フリップフロップＦ１３は、フリップフロップＦ１２から送信される同期クロックの立ち上がりでフリップフロップＦ１１から送信されるデータを取り込む。また、フリップフロップＦ１４は、フリップフロップＦ１２から送信される同期クロックの立ち下がりでフリップフロップＦ１１から送信されるデータを取り込む。【００４４】
図１３には、１つの同期クロック送信用フリップフロップＦ１２に対して１つずつのフリップフロップＦ１１、Ｆ１３、Ｆ１４が図示されているが、実際には、１つの同期クロック送信用フリップフロップＦ１２に対して数個のデータ送信用フリップフロップＦ１１が設けられ、チップＢにはフリップフロップＦ１１に対応する数のフリップフロップＦ１３、Ｆ１４が設けられる（図１２参照）。そして、チップＡ、Ｂには、このようなフリップフロップＦ１１−Ｆ１４のセットが数セット設けられる。【００４５】
また、これら複数のＴＲ側フリップフロップＦ１１、Ｆ１２は、チップＡ内部で製造テスト用のスキャンチェーンを構成し、チップＡ上に設けられた入力端子（スキャンイン）および出力端子（スキャンアウト）に接続される。同様に、ＲＥＣ側フリップフロップＦ１３、Ｆ１４は、チップＢ内部でスキャンチェーンを構成し、チップＢ上に設けられた入力端子（スキャンイン）および出力端子（スキャンアウト）に接続される。本実施形態におけるフリップフロップＦ１１、Ｆ１２、Ｆ１３、Ｆ１４は、それぞれ対応するＴＤＲ＿ＦＦ（図１２参照）の出力によりセット／リセットされる。【００４６】
チップＡのフリップフロップＦ１１、Ｆ１２についてさらに説明する。
データ転送用のＴＲ側フリップフロップＦ１１は、ＴＤＲ＿ＦＦの制御により値（テストデータ）をセットされる。そして、マルチプレクサＭ１が制御信号ＳＧ＿Ｐ＝「１」を入力することでフリップフロップＦ１１自身の出力を反転して再入力し、さらにＰＬＬ回路１１からのクロック信号ＣＬＫ２を反転せずそのまま入力することによって、保持している値を出力する（ＤＡＴＡＯＵＴ）。
一方、同期クロック送信用のＴＲ側フリップフロップＦ１２は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。そして、マルチプレクサＭ２が制御信号ＳＧ＿Ｐ＝「１」を入力することでフリップフロップＦ１２自身の出力を反転して再入力し、さらにＰＬＬ回路１１からのクロック信号ＣＬＫ２を反転せずそのまま入力することによって、保持している値を同期クロックとして出力する（ＣＬＫＯＵＴ）。この構成により、フリップフロップＦ１１の出力ＤＡＴＡＯＵＴと、フリップフロップＦ１２の出力ＣＬＫＯＵＴとは、同じクロックエッジで出力されることとなる。
ここで、ＰＬＬ回路１１から出力されるクロック信号ＣＬＫ２は、実動作においてチップＡの動作を制御する動作クロックである。【００４７】
次に、チップＢのフリップフロップＦ１３、Ｆ１４についてさらに説明する。
データ受信用のＲＥＣ側フリップフロップＦ１３は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。次に、チップＡから受信したＣＬＫＯＵＴを、ＤＤＬ回路２３で周期をπ／２だけ遅らせ、動作クロックＤＤＬ＿ｃｌｋとして反転せずそのまま入力する。そして、この動作クロックＤＤＬ＿ｃｌｋに応じてチップＡから受信したＤＡＴＡＯＵＴを取り込む。これにより、フリップフロップＦ１３からＤＡＴＡＯＵＴの値（テストデータ）が出力され（ＤＰ）、後に観測用のＴＤＲ＿ＤＰにラッチされる。
一方、もう一つのデータ受信用のＲＥＣ側フリップフロップＦ１４は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。次に、チップＡから受信した同期クロックＣＬＫＯＵＴを、ＤＤＬ回路２３で周期をπ／２だけ遅らせ、動作クロックＤＤＬ＿ｃｌｋとする。そして、この動作クロックＤＤＬ＿ｃｌｋとして反転して入力し、これに応じてチップＡから受信したＤＡＴＡＯＵＴを取り込む。これにより、フリップフロップＦ１４からＤＡＴＡＯＵＴの値（テストデータ）が出力され（ＤＮ）、後に観測用のＴＤＲ＿ＤＮにラッチされる。【００４８】
図１４は、フリップフロップＦ１３における信号波形を示す図である。
図１４を参照すると、チップＡのＰＬＬ回路１１による２つのクロック信号ＣＬＫ２のうち、１つめの立ち上がりでフリップフロップＦ１１のテストデータ（ＤＡＴＡＯＵＴ）とフリップフロップＦ１２の同期クロック（ＣＬＫＯＵＴ）が同時に出力されている。そして、この同期クロックからπ／２周期だけ遅れてＤＤＬ＿ｃｌｋが立ち上がっている。この結果、ＤＤＬ＿ｃｌｋの立ち上がりのタイミングは、テストデータの真ん中になる。このＤＬＬ＿ｃｌｋが立ち上がりにより、テストデータの値がチップＢのフリップフロップＦ１３に取り込まれている（ＤＰ）。【００４９】
図１５は、フリップフロップＦ１４における信号波形を示す図である。
図１５を参照すると、チップＡのＰＬＬ回路１１による２つのクロック信号ＣＬＫ２のうち、１つめの立ち上がりでフリップフロップＦ１１のテストデータ（ＤＡＴＡＯＵＴ）とフリップフロップＦ１２の同期クロック（ＣＬＫＯＵＴ）が同時に出力されている。そして、この同期クロックからπ／２遅れてＤＤＬ＿ｃｌｋが立ち下がっている。この結果、ＤＤＬ＿ｃｌｋの立ち下がりのタイミングは、テストデータの真ん中になる。このＤＬＬ＿ｃｌｋが立ち下がりにより、テストデータの値がチップＢのフリップフロップＦ１４に取り込まれている（ＤＮ）。【００５０】
本実施形態において、ソースシンクロナスに関わるフリップフロップＦ１１−Ｆ１４は、上述したように、第１の実施形態のソースシンクロナスに関わるフリップフロップＦ１−Ｆ４と同じく、ＴＤＲ＿ＦＦの出力によりセット／リセットされる。したがって、図５に示した回路構成により、第１の実施形態と同様の方法でフリップフロップＦ１１−Ｆ１４の初期値が設定される。【００５１】
再度図１２を参照し、本実施形態によるテストの対象であるソースシンクロナスに関わるフリップフロップを含むチップレベルの接続関係を説明する。
まずＴＲ側のチップＡを参照すると、このチップＡには、上述したＦＦ＿ＴおよびＴＤＲ＿ＦＦの他に、動作クロック発信部としてのＰＬＬ回路１１およびＰＬＬコントローラ１２と、ＰＬＬ回路１１から発信される動作クロックから２パルスを抽出して出力する２パルス生成部１３と、ＪＴＡＧの制御を行うためのＴＡＰコントローラ１４と、インストラクションレジスタ（Instruction Register：ＩＲ）１５とを備える。ＴＡＰコントローラ１４およびインストラクションレジスタ１５の出力は、ゲートＡ１、Ａ２、Ａ３を経て、ＴＤＲ＿ＦＦ、ＦＦ＿Ｔ、２パルス生成部１３等に供給される。【００５２】
ＰＬＬコントローラ１２は、テストビットがインストラクションレジスタ１５に格納された後、ＰＬＬ回路１１が実動作と同じ周波数で発信するように制御する。
ＡＮＤゲートＡ１は、テストビットがインストラクションレジスタ１５に格納され、ＳｈｉｆｔＤＲ＝「１」である場合に、ＴＣＫをＴＤＲ＿ＦＦに供給する。
ＡＮＤゲートＡ２は、テストビットがインストラクションレジスタ１５に格納され、ＵｐｄａｔｅＤＲ＿Ｌ＝「１」である場合に、ＦＦ＿Ｔをセットまたはリセットするための制御信号をＴＤＲ＿ＦＦから供給する。ＦＦ＿Ｔがセットされるかリセットされるかは、上述したようにＴＤＲ＿ＦＦにセットされている値による。これにより、ＦＦ＿Ｔの初期値が決まる。ここで、図１３のフリップフロップＦ１が含まれるＦＦ＿Ｔの初期値はテストデータとなる。
ＡＮＤゲートＡ３は、テストビットがインストラクションレジスタ１５に格納され、ＲｕｎＴｅｓｔＩｄｌｅ＝「１」ならば、ＦＦ＿Ｔに対して内部をループ状態にする制御信号ＳＧ＿Ｐを供給し、さらに２パルス生成部１３に対してＰＬＬ回路１１の出力から２パルスを取り出すためのトリガー信号を供給する。【００５３】
次に、ＲＥＣ側のチップＢを参照すると、このチップＢには、上述したＦＦ＿ＲおよびＴＤＲ＿ＦＦの他に、ＪＴＡＧの制御を行うためのＴＡＰコントローラ２１と、インストラクションレジスタ２２と、同期クロックを遅らせるためのＤＤＬ回路２３と、ＤＤＬ回路２３および図示しないＰＬＬ回路を制御するクロック制御部２４とを備える。ＴＡＰコントローラ２１およびインストラクションレジスタ２２の出力は、ゲートＡ４、Ａ５を経てＴＤＲ＿ＦＦ等に供給される。【００５４】
クロック制御部２４は、テストビットがインストラクションレジスタ２２に格納された後、ＤＤＬ回路２３および図示しないＰＬＬ回路が実動作と同じ周波数で発信するように制御する。
ＡＮＤゲートＡ４は、テストビットがインストラクションレジスタ２２に格納され、ＳｈｉｆｔＤＲ＝「１」である場合に、マルチプレクサＭ１、Ｍ２に対して「１」のデータを選択させる制御信号を供給する。マルチプレクサＭ１、Ｍ２が「１」のデータを選択することで、テスト用クロックＴＣＫによりＴＤＩ（テストデータイン）−ＴＤＯ（テストデータアウト）のパスでスキャンが行われ、ＴＤＲ＿ＦＦに値がセットされる。
ＡＮＤゲートＡ５は、テストビットがインストラクションレジスタ２２に格納され、ＵｐｄａｔｅＤＲ＿Ｌ＝「１」で、ＦＦ＿Ｒをセットまたはリセットするための制御信号をＴＤＲ＿ＦＦから供給する。ＦＦ＿Ｒがセットされるかリセットされるかは、上述したようにＴＤＲ＿ＦＦにセットされている値による。これにより、ＦＦ＿Ｒの初期値が決まる。
ＴＡＰコントローラ２１のＣｌｏｃｋＤＲは、ＳｈｉｆｔＤＲ＝「１」またはＣａｐｔｕｒｅＤＲ＝「１」である場合に、テスト用クロックＴＣＫをＴＤＲ＿ＦＦに供給する。これにより、ＴＤＩ−ＴＤＯのパスでスキャンが行われたり、ＦＦ＿Ｒの格納データがＴＤＲ＿ＦＦに取り込まれたりする。【００５５】
以上のように構成された回路によるテストの動作は、図６、７を参照して説明した第１の実施形態における動作とほぼ同様である。
第１の実施形態の動作と第２の実施形態の動作との相異なる点は、以下の点である。
まず、図７のステップ７０４において、第１の実施形態では、フリップフロップＦ１から出力されるテストデータとフリップフロップＦ２から出力される同期クロックの出力タイミングは、半サイクルだけずれている。これに対し、第２の実施形態では、フリップフロップＦ１１から出力されるテストデータとフリップフロップＦ１２から出力される同期クロックとが同じクロックエッジで出力される。
また、図７のステップ７０５において、第１の実施形態では、フリップフロップＦ３、Ｆ４は、フリップフロップＦ２から送られた同期クロックにしたがってフリップフロップＦ１から送られたテストデータを取り込む。これに対し、第２の実施形態では、フリップフロップＦ１１から出力されたテストデータとフリップフロップＦ１２から出力された同期クロックとのクロックエッジが同じタイミングであるため、ＤＬＬ回路２３により同期クロックをπ／２だけ遅らせる。そして、この遅らせた同期クロックにしたがって、フリップフロップＦ１３、Ｆ１４がテストデータを取り込む。【００５６】
＜第３の実施の形態＞
第３の実施形態では、第２の実施形態と同様に、ソースシンクロナスを実現する方式として、ＴＲ側がデータとクロックを同じクロックエッジで送り出す方式が用いられる。ただし、第３の実施形態では、ＴＲ側フリップフロップをＪＴＡＧ＿ＴＤＲとしての役割も持たせることによって、ＪＴＡＧ＿ＴＤＲに値をセットする方法を用いて初期化する場合について説明する。
図１６は、本実施形態が適用されるソースシンクロナスに関わる回路の全体構成を示す図である。図１６において、チップＡがＴＲ側チップ、チップＢがＲＥＣ側チップである。図１６には、ソースシンクロナスに関わる回路部分のみが記載されているが、実際には、チップＡ、Ｂ共に、各々のシステム回路が存在していることは言うまでもない。なお、図１６に示すチップＡ、チップＢの別は、ＴＲ側チップであるかＲＥＣ側チップであるかを示すに過ぎない。すなわち、ＡＳＩＣ内の各チップが、ソースシンクロナスインターフェイスにおける立場（ＴＲ側かＲＥＣ側か）に応じて、チップＡまたはチップＢとなる。【００５７】
チップＡ、Ｂにおいて、ＦＦ＿ＴはＴＲ側フリップフロップであり、ＦＦ＿ＲはＲＥＣ側フリップフロップであり、ＴＤＲ＿ＦＦはＪＴＡＧ＿ＴＤＲである。本実施形態では、ＦＦ＿ＴがＴＤＲ＿ＦＦの役割を兼ねているので、チップＡにＴＤＲ＿ＦＦは存在しない。このＴＲ側フリップフロップＦＦ＿Ｔの構成を図１７に示す。チップＢにおけるＦＦ＿ＲおよびＴＤＲ＿ＦＦの構成は、図９および図１０に示した第１の実施形態のものと同様である。【００５８】
図１８は、図１６に示した回路において、本実施形態の対象となる最も基本的なソースシンクロナスの回路要素を示す図である。図１８には、ソースシンクロナスに関わるフリップフロップとして、チップＡ（ＴＲ側）にデータ送信用のフリップフロップＦ２１と、同期クロック送信用のフリップフロップＦ２２が示されており、チップＢ（ＲＥＣ側）にデータ受け取り用のＦ２３およびＦ２４が示されている。ＲＥＣ側フリップフロップＦ２３、Ｆ２４のうち、フリップフロップＦ２３は、フリップフロップＦ２２から送信される同期クロックの立ち上がりでフリップフロップＦ２１から送信されるデータを取り込む。また、フリップフロップＦ２４は、フリップフロップＦ２２から送信される同期クロックの立ち下がりでフリップフロップＦ２１から送信されるデータを取り込む。【００５９】
図１８には、１つの同期クロック送信用フリップフロップＦ２２に対して１つずつのフリップフロップＦ２１、Ｆ２３、Ｆ２４が図示されているが、実際には、１つの同期クロック送信用フリップフロップＦ２２に対して数個のデータ送信用フリップフロップＦ２１が設けられ、チップＢにはフリップフロップＦ２１に対応する数のフリップフロップＦ２３、Ｆ２４が設けられる（図１６参照）。そして、チップＡ、Ｂには、このようなフリップフロップＦ２１−Ｆ２４のセットが数セット設けられる。【００６０】
また、これら複数のＴＲ側フリップフロップＦ２１、Ｆ２２は、チップＡ内部で製造テスト用のスキャンチェーンを構成し、チップＡ上に設けられた入力端子（スキャンイン）および出力端子（スキャンアウト）に接続される。同様に、ＲＥＣ側フリップフロップＦ２３、Ｆ２４は、チップＢ内部でスキャンチェーンを構成し、チップＢ上に設けられた入力端子（スキャンイン）および出力端子（スキャンアウト）に接続される。本実施形態におけるフリップフロップＦ２１、Ｆ２２は、ＪＴＡＧのスキャンチェーンを介してデータをスキャンシフトすることにより初期値が設定される。一方、フリップフロップＦ２３、Ｆ２４は、それぞれ対応するＴＤＲ＿ＦＦ（図１６参照）の出力によりセット／リセットされる。【００６１】
チップＡのフリップフロップＦ２１、Ｆ２２についてさらに説明する。
データ転送用のＴＲ側フリップフロップＦ２１は、マルチプレクサＭ３／１、Ｍ１／０ピンを経由するＪＴＡＧ＿ＴＤＲのスキャンパスを介して値（テストデータ）をセットされる。そして、マルチプレクサＭ１が制御信号ＳＧ＿Ｐを入力することでフリップフロップＦ２１自身の出力を反転して再入力し、さらにＰＬＬ回路１１からのクロック信号ＣＬＫ２を反転せずそのまま入力することによって、保持している値を出力する（ＤＡＴＡＯＵＴ）。
一方、同期クロック送信用のＴＲ側フリップフロップＦ２２は、マルチプレクサＭ４／１、Ｍ２／０ピンを経由するＪＴＡＧ＿ＴＤＲのスキャンパスを介して初期値をセットされる。そして、マルチプレクサＭ２が制御信号ＳＧ＿Ｐを入力することでフリップフロップＦ２２自身の出力を反転して再入力し、さらにＰＬＬ回路１１からのクロック信号ＣＬＫ２を反転せずそのまま入力することによって、保持している値を同期クロックとして出力する（ＣＬＫＯＵＴ）。この構成により、フリップフロップＦ２１の出力ＤＡＴＡＯＵＴと、フリップフロップＦ２２の出力ＣＬＫＯＵＴとは、同じクロックエッジで出力されることとなる。
ここで、ＰＬＬ回路１１から出力されるクロック信号ＣＬＫ２は、実動作においてチップＡの動作を制御する動作クロックである。【００６２】
次に、チップＢのフリップフロップＦ２３、Ｆ２４についてさらに説明する。
データ受信用のＲＥＣ側フリップフロップＦ２３は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。次に、チップＡから受信したＣＬＫＯＵＴを、ＤＤＬ回路２３で周期をπ／２だけ遅らせ、動作クロックＤＤＬ＿ｃｌｋとして反転せずそのまま入力する。そして、この動作クロックＤＤＬ＿ｃｌｋに応じてチップＡから受信したＤＡＴＡＯＵＴを取り込む。これにより、フリップフロップＦ２３からＤＡＴＡＯＵＴの値（テストデータ）が出力され（ＤＰ）、後に観測用のＴＤＲ＿ＤＰにラッチされる。
一方、もう一つのデータ受信用のＲＥＣ側フリップフロップＦ２４は、ＴＤＲ＿ＦＦの制御により初期値をセットされる。次に、チップＡから受信した同期クロックＣＬＫＯＵＴを、ＤＤＬ回路２３で周期をπ／２だけ遅らせ、動作クロックＤＤＬ＿ｃｌｋとする。そして、この動作クロックＤＤＬ＿ｃｌｋとして反転して入力し、これに応じてチップＡから受信したＤＡＴＡＯＵＴを取り込む。これにより、フリップフロップＦ２４からＤＡＴＡＯＵＴの値（テストデータ）が出力され（ＤＮ）、後に観測用のＴＤＲ＿ＤＮにラッチされる。【００６３】
図１９は、フリップフロップＦ２３における信号波形を示す図である。
図１９を参照すると、チップＡのＰＬＬ回路１１による２つのクロック信号ＣＬＫ２のうち、１つめの立ち上がりでフリップフロップＦ２１のテストデータ（ＤＡＴＡＯＵＴ）とフリップフロップＦ２２の同期クロック（ＣＬＫＯＵＴ）が同時に出力されている。そして、この同期クロックからπ／２周期だけ遅れてＤＤＬ＿ｃｌｋが立ち上がっている。この結果、ＤＤＬ＿ｃｌｋの立ち上がりのタイミングは、テストデータの真ん中になる。このＤＬＬ＿ｃｌｋが立ち上がりにより、テストデータの値がチップＢのフリップフロップＦ２３に取り込まれている（ＤＰ）。【００６４】
図２０は、フリップフロップＦ２４における信号波形を示す図である。
図２０を参照すると、チップＡのＰＬＬ回路１１による２つのクロック信号ＣＬＫ２のうち、１つめの立ち上がりでフリップフロップＦ２１のテストデータ（ＤＡＴＡＯＵＴ）とフリップフロップＦ２２の同期クロック（ＣＬＫＯＵＴ）が同時に出力されている。そして、この同期クロックからπ／２周期だけ遅れてＤＤＬ＿ｃｌｋが立ち下がっている。この結果、ＤＤＬ＿ｃｌｋの立ち下がりのタイミングは、テストデータの真ん中になる。このＤＤＬ＿ｃｌｋが立ち下がりにより、テストデータの値がチップＢのフリップフロップＦ２４に取り込まれている（ＤＮ）。【００６５】
次に、本実施形態におけるソースシンクロナスに関わるフリップフロップＦ２１−Ｆ２４に対する初期値の設定方法について説明する。
図１７は、チップＡのフリップフロップＦ２１、Ｆ２２を初期化する回路の構成を示す図である。図１７において、ＳｈｉｆｔＤＲ＝「１」のときに、マルチプレクサＳ１に制御信号ＳＳ＿Ｐが供給され、ＣｌｏｃｋＤＲが選択されてフリップフロップＦ２１、Ｆ２２に供給される。フリップフロップＦ２１、Ｆ２２は、この信号ＣｌｏｃｋＤＲにしたがい、ＪＴＡＧのＴＤＩ（テストデータイン）からのデータを入力して初期化される。
一方、チップＢのフリップフロップＦ２３、Ｆ２４は、第１の実施形態のソースシンクロナスに関わるフリップフロップＦ１−Ｆ４と同じく、ＴＤＲ＿ＦＦの出力によりセット／リセットされる。したがって、図５に示した回路構成により、第１の実施形態と同様の方法で初期値が設定される。【００６６】
再度図１６を参照し、本実施形態によるテストの対象であるソースシンクロナスに関わるフリップフロップを含むチップレベルの接続関係を説明する。
まずＴＲ側のチップＡを参照すると、このチップＡには、上述したＦＦ＿Ｔの他に、動作クロック発信部としてのＰＬＬ回路１１およびＰＬＬコントローラ１２と、ＰＬＬ回路１１から発信される動作クロックから２パルスを抽出して出力する２パルス生成部１３と、ＪＴＡＧの制御を行うためのＴＡＰコントローラ１４と、インストラクションレジスタ（Instruction Register：ＩＲ）１５とを備える。ＴＡＰコントローラ１４およびインストラクションレジスタ１５の出力は、ゲートＡ１、Ａ３を経て、ＦＦ＿Ｔ、２パルス生成部１３等に供給される。【００６７】
ＰＬＬコントローラ１２は、テストビットがインストラクションレジスタ１５に格納された後、ＰＬＬ回路１１が実動作と同じ周波数で発信するように制御する。
ＡＮＤゲートＡ１は、テストビットがインストラクションレジスタ１５に格納され、ＳｈｉｆｔＤＲ＝「１」である場合に、クロック信号ＣｌｏｃｋＤＲをＦＦ＿Ｔに供給する。これにより、ＦＦ＿Ｔは直接初期化される。
ＡＮＤゲートＡ３は、テストビットがインストラクションレジスタ１５に格納され、ＲｕｎＴｅｓｔＩｄｌｅ＝「１」ならば、ＦＦ＿Ｔに対して内部をループ状態にする制御信号ＳＧ＿Ｐを供給し、さらに２パルス生成部１３に対してＰＬＬ回路１１の出力から２パルスを取り出すためのトリガー信号を供給する。【００６８】
次に、ＲＥＣ側のチップＢを参照すると、このチップＢには、上述したＦＦ＿ＲおよびＴＤＲ＿ＦＦの他に、ＪＴＡＧの制御を行うためのＴＡＰコントローラ２１と、インストラクションレジスタ２２と、同期クロックを遅らせるためのＤＤＬ回路２３と、ＤＤＬ回路２３および図示しないＰＬＬ回路を制御するクロック制御部２４とを備える。ＴＡＰコントローラ２１およびインストラクションレジスタ２２の出力は、ゲートＡ４、Ａ５を経てＴＤＲ＿ＦＦ等に供給される。【００６９】
クロック制御部２４は、テストビットがインストラクションレジスタ２２に格納された後、ＤＤＬ回路２３および図示しないＰＬＬ回路が実動作と同じ周波数で発信するように制御する。
ＡＮＤゲートＡ４は、テストビットがインストラクションレジスタ２２に格納され、ＳｈｉｆｔＤＲ＝「１」である場合に、マルチプレクサＭ１、Ｍ２に対して「１」のデータを選択させる制御信号を供給する。マルチプレクサＭ１、Ｍ２が「１」のデータを選択することで、テスト用クロックＴＣＫによりＴＤＩ（テストデータイン）−ＴＤＯ（テストデータアウト）のパスでスキャンが行われ、ＴＤＲ＿ＦＦに値がセットされる。
ＡＮＤゲートＡ５は、テストビットがインストラクションレジスタ２２に格納され、ＵｐｄａｔｅＤＲ＿Ｌ＝「１」で、ＦＦ＿Ｒをセットまたはリセットするための制御信号をＴＤＲ＿ＦＦから供給する。ＦＦ＿Ｒがセットされるかリセットされるかは、上述したようにＴＤＲ＿ＦＦにセットされている値による。これにより、ＦＦ＿Ｒの初期値が決まる。
ＴＡＰコントローラ２１のＣｌｏｃｋＤＲは、ＳｈｉｆｔＤＲ＝「１」またはＣａｐｔｕｒｅＤＲ＝「１」である場合に、テスト用クロックＴＣＫをＴＤＲ＿ＦＦに供給する。これにより、ＴＤＩ−ＴＤＯのパスでスキャンが行われたり、ＦＦ＿Ｒの格納データがＴＤＲ＿ＦＦに取り込まれたりする。【００７０】
次に、以上のように構成された回路によるテストの動作について説明する。
図２１は、チップＡおよびチップＢにおけるテスト実行時の信号波形を示す図である。テストの概略的な流れは、図７を参照して説明した第１の実施形態と同様であるので、ここでも図７を参照して説明する。
まずチップＡ、Ｂのインストラクションレジスタ１５、２２にテストビットが格納される。これをトリガーとして、チップＡ、ＢのＰＬＬ回路１１（チップＢのＰＬＬ回路は図示していない）が動作クロックを発信する（ステップ７０１）。次に、ソースシンクロナスに関わるフリップフロップ（図１６のＦＦ＿ＴおよびＦＦ＿Ｒ、図１８のＦ２１−Ｆ２４）を任意の値に初期化する（ステップ７０２）。【００７１】
ここで、本実施形態においても、各フリップフロップはＪＴＡＧ１１４９標準の作法に準拠した方法で初期化される。ただし、図２１を参照すると、チップＡにおいては、図１７に示したマルチプレクサＳ１がＳＳ＿Ｐ信号によりＴＡＰコントローラ１４から出力されるクロック信号ＣｌｏｃｋＤＲを選択し、このクロック信号ＣｌｏｃｋＤＲにしたがってデータがスキャンシフトされることにより、フリップフロップＦ２１、Ｆ２２が直接初期化されてテストデータが入力される。一方、チップＢにおいては、第１の実施形態と同様に、フリップフロップＦ２１、Ｆ２２に対応するＴＤＲ＿ＦＦに格納された値にしたがって、下の波形図に示すように、フリップフロップＦ２３、Ｆ２４が初期化される（ただし、時間的にはこちらの初期化がチップＡにおけるフリップフロップＦ２１、Ｆ２２の初期化よりも先に行われる）。【００７２】
次に、ＴＲ側チップＡのＲｕｎＴｅｓｔＩｄｌｅ＝「１」をトリガーとして、２パルス生成部１３が、ＰＬＬ回路１１の出力から２発のパルスを送出する(ステップ７０３)。本実施形態では、ＳｈｉｆｔＤＲ＝「０」で、図１７のマルチプレクサＳ１において２パルス生成部１３の出力ＣＬＫ２が選択される。図６を参照すると、ＦＦ＿Ｔをループ状態にする制御信号ＳＧ＿Ｐが出力され、その後、２パルス分のクロック信号ＣＬＫ２が出力されている。【００７３】
そして、この２パルスにしたがい、フリップフロップＦ１は、保持しているテストデータを、フリップフロップＦ２２は同期クロックをそれぞれＲＥＣ側チップＢへ送出する（ステップ７０４）。チップＢのフリップフロップＦ２３、Ｆ２４は、チップＡのフリップフロップＦ２１から送られたデータをフリップフロップＦ２２から送られた同期クロックにしたがって取り込む（ステップ７０５）。この後、ＲＥＣ側チップＢにおいて、フリップフロップＦ２３、Ｆ２４に取り込まれた値がＴＤＲ＿ＤＰ、ＴＤＲ＿ＤＮにそれぞれラッチされ、ＴＤＯから取り出されて観察される（ステップ７０６）。【００７４】
以上、第１−第３の実施形態において、ＪＴＡＧのスキャンチェーンを構成するフリップフロップをソースシンクロナスに関わるフリップフロップとして用いた場合を例として説明したが、本発明の技術思想にしたがう限り、これ以外の構成も可能であることは言うまでもない。つまり、ＪＴＡＧ以外のスキャンチェーンを用いて初期値設定、結果観測を実現することも容易である。今日、ＡＳＩＣでは、ＪＴＡＧによるスキャンテストを実施するための構成が設けられていることが通常であるため、このスキャンチェーンを構成するフリップフロップを用いてテストを実施可能とすることが極めて好ましい。しかしながら、これは本実施形態のインターコネクトテストを実施するための個別の回路構成をＡＳＩＣに設けることを排するものではない。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施形態が適用されるソースシンクロナスに関わる回路の全体構成を示す図である。
【図２】図１に示した回路において、本実施形態の対象となる最も基本的なソースシンクロナスの回路要素を示す図である。
【図３】図２に示したフリップフロップＦ３の信号波形を示す図である。
【図４】図２に示したフリップフロップＦ４の信号波形を示す図である。
【図５】本実施形態におけるチップのフリップフロップを初期化する回路の構成を示す図である。
【図６】本実施形態によるテスト実行時の信号波形を示す図である。
【図７】本実施形態のテストの概略的な流れを示すフローチャートである。
【図８】本実施形態に用いられるＴＲ側フリップフロップの回路構成を示す図である。
【図９】本実施形態に用いられるＲＥＣ側フリップフロップの回路構成を示す図である。
【図１０】本実施形態に用いられるＪＴＡＧ＿ＴＤＲの回路構成を示す図である。
【図１１】本実施形態に用いられる信号ＵｐｄａｔｅＤＲ＿ＬおよびＲｕｎＴｅｓｔＩｄｌｅを説明する図である。
【図１２】本発明の第２の実施形態が適用されるソースシンクロナスに関わる回路の全体構成を示す図である。
【図１３】図１２に示した回路において、本実施形態の対象となる最も基本的なソースシンクロナスの回路要素を示す図である。
【図１４】図１３に示したフリップフロップＦ１３の信号波形を示す図である。
【図１５】図１３に示したフリップフロップＦ１４の信号波形を示す図である。
【図１６】本発明の第３の実施形態が適用されるソースシンクロナスに関わる回路の全体構成を示す図である。
【図１７】本実施形態に用いられるＴＲ側フリップフロップの回路構成を示す図である。
【図１８】図１６に示した回路において、本実施形態の対象となる最も基本的なソースシンクロナスの回路要素を示す図である。
【図１９】図１８に示したフリップフロップＦ２３の信号波形を示す図である。
【図２０】図１８に示したフリップフロップＦ２４の信号波形を示す図である。
【図２１】本実施形態によるテスト実行時の信号波形を示す図である。
【符号の説明】
【００７６】
Ｆ１−Ｆ４、Ｆ１１−Ｆ１４、Ｆ２１−Ｆ２４…フリップフロップ、１１…ＰＬＬ回路、１２…ＰＬＬコントローラ、１３…２パルス生成部、１４、２１…ＴＡＰコントローラ、１５、２２…インストラクションレジスタ、２３…ＤＤＬ回路、２４…クロック制御部
【図１】
0004701244.tif 000002
【図２】
0004701244.tif 000003
【図３】
0004701244.tif 000004
【図４】
0004701244.tif 000005
【図５】
0004701244.tif 000006
【図６】
0004701244.tif 000007
【図７】
0004701244.tif 000008
【図８】
0004701244.tif 000009
【図９】
0004701244.tif 000010
【図１０】
0004701244.tif 000011
【図１１】
0004701244.tif 000012
【図１２】
0004701244.tif 000013
【図１３】
0004701244.tif 000014
【図１４】
0004701244.tif 000015
【図１５】
0004701244.tif 000016
【図１６】
0004701244.tif 000017
【図１７】
0004701244.tif 000018
【図１８】
0004701244.tif 000019
【図１９】
0004701244.tif 000020
【図２０】
0004701244.tif 000021
【図２１】
0004701244.tif 000022