(57)【要約】【課題】LSIのデバイス特性に依存せず、設計容易で低コストのデータ／ストローブエンコーディング方式を実現することができるデータ／ストローブエンコーディング方式回路およびデータ／ストローブエンコーディング方法を提供する。【解決手段】データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、所定のデータをフリップフロップでラッチ後、データをラッチし保持していることを示す信号と、ラッチ後のデータと、を対として後段回路に渡し、後段回路から、データを受け取ったことを示す信号のアサートを受け取り、データをラッチして停止しているフリップフロップを再度動作させて新たなデータを受け取る。【選択図】図１
2007300151.tif 000002
【特許請求の範囲】
【請求項１】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、
所定のデータをフリップフロップでラッチ後、前記データをラッチし保持していることを示す信号と、ラッチ後のデータと、を対として前記後段回路に渡し、
該後段回路から、前記データを受け取ったことを示す信号のアサートを受け取り、前記データをラッチして停止しているフリップフロップを再度動作させて新たなデータを受け取ることを特徴とするデータ／ストローブエンコーディング方式回路。
【請求項２】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、
所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、前記データまたは前記ストローブ信号が変化した時には前記クロックを変化させるクロック生成回路と、
前記データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成回路と、
前記クロック生成回路から出力されるクロックの変化を受けて、前記クロックイネーブル生成回路と同期して、どのフリップフロップに受け取るべきデータをラッチしているかを示すフリップフロップデータ有効フラグを生成し出力するフリップフロップ有効フラグ生成回路と、
複数のフリップフロップで構成され、前記クロックイネーブル生成回路から出力されるイネーブル信号で選択されたフリップフロップで前記データをラッチし、フリップフロップ出力データとして出力するデータラッチ用フリップフロップアレイと、
前記フリップフロップ有効フラグ生成回路から出力されるフリップフロップデータ有効フラグに対してメタ・ステーブル対策を施すフリップフロップデータ有効フラグ用メタ・ステーブル対策回路と、
前記データラッチ用フリップフロップアレイから出力されたフリップフロップ出力データと、前記フリップフロップデータ有効フラグ用メタ・ステーブル対策回路でメタ・ステーブル対策を施されたフリップフロップデータ有効フラグとを受け取るコマンドデコーダ回路と、
前記コマンドデコーダ回路から出力されるフリップフロップデータアクノレッジ信号に対してメタ・ステーブル対策を施すフリップフロップデータアクノレッジ用メタ・ステーブル対策回路と、を有し、
前記コマンドデコーダ回路は、
前記フリップフロップデータ有効フラグを参照しアサートされたビットに対して、前記データラッチ用フリップフロップアレイから受け取ったフリップフロップ出力データを前記後段回路のクロックでラッチし、
各フリップフロップからのデータを受け取る度に、前記フリップフロップデータアクノレッジ信号を前記フリップフロップ有効フラグ生成回路に対してアサートし、
前記フリップフロップ有効フラグ生成回路は、
前記コマンドデコーダ回路から出力され、前記フリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施されたフリップフロップデータアクノレッジ信号を受けて、どのフリップフロップが未読データを保持していないかを示す空フリップフロップ指示を前記クロックイネーブル生成回路に与え、
前記クロックイネーブル生成回路は、
前記フリップフロップ有効フラグ生成回路から前記空フリップフロップ指示信号を受けて、順番にイネーブル信号を生成し、新たなデータを受け付けない状態だった前記データラッチ用フリップフロップアレイのフリップフロップを再びデータ入力可能状態にすることを特徴とするデータ／ストローブエンコーディング方式回路。
【請求項３】
前記コマンドデコーダ回路は、
前記データラッチ用フリップフロップアレイから受け取った複数ビットデータから、デコードすべきデータビット量が揃った時点でコマンドデコードを行い、前記後段回路に対してコマンドデータを確定し、コマンドイネーブル信号をアサートし、
前記後段回路からコマンドアクノレッジ信号のアサートを受けた場合に前記コマンドイネーブル信号のアサートを止めることを特徴とする請求項２記載のデータ／ストローブエンコーディング方式回路。
【請求項４】
前記フリップフロップデータ有効フラグ用メタ・ステーブル対策回路及び前記フリップフロップデータアクノレッジ用メタ・ステーブル対策回路は、動作周波数等に応じた段数のフリップフロップで構成されることを特徴とする請求項２又は３記載のデータ／ストローブエンコーディング方式回路。
【請求項５】
前記データラッチ用フリップフロップアレイのフリップフロップの数は、前記クロック生成回路で生成されたクロック及び前記後段回路のクロックの動作周波数により決定されることを特徴とする請求項２から４のいずれか１項に記載のデータ／ストローブエンコーディング方式回路。
【請求項６】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、
前記後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートに他のステートから遷移した場合に擬似クロックを前段回路に与えることにより、最終デコード結果を前記後段回路に渡すことを特徴とするデータ／ストローブエンコーディング方式回路。
【請求項７】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、
所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、前記データまたは前記ストローブ信号が変化した時には前記クロックを変化させるクロック生成回路と、
前記データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成回路と、
複数のフリップフロップで構成され、前記クロックイネーブル生成回路から出力されるイネーブル信号で選択されたフリップフロップで、コマンドを構成する連続した複数ビットデータをラッチし、フリップフロップ出力データとして出力するデータラッチ用フリップフロップアレイと、
前記データラッチ用フリップフロップアレイから出力されたフリップフロップ出力データを受け取るコマンドデコーダ回路と、
前記コマンドデコーダ回路から出力されるコマンドイネーブル信号に対してメタ・ステーブル対策を施すフリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路と、
前記後段回路から出力されるフリップフロップデータアクノレッジ信号に対してメタ・ステーブル対策を施すフリップフロップデータアクノレッジ用メタ・ステーブル対策回路と、
前記後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートにある場合にアサートするステータス信号を監視し、アサートに変化した場合には１パルスを発生させ、前記ストローブ信号とXORすることで、擬似的にクロックパルスを発生させるクロック発生回路と、を有し、
前記コマンドデコーダ回路は、
前記データラッチ用フリップフロップアレイから出力されるフリップフロップ出力データを受け取り、かつ、前記クロック生成回路で生成された前記クロックに基づいて前記複数ビットデータの個数をカウントし、デコードすべきデータビット量が揃った時点で前記フリップフロップ出力データのコマンドデコードを行い、
前記コマンドデコードの結果、最終コマンドではない場合は、次以降のクロックでデコード結果をラッチし、前記後段回路に対してコマンドデータを確定し、前記フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、
前記後段回路から出力されたコマンドアクノレッジ信号に対して前記フリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、前記コマンドイネーブル信号のアサートを止め、再び前記フリップフロップ出力データのコマンドデコードを行い、
前記コマンドデコードの結果、最終コマンドである場合は、前記クロック発生回路により、前記後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートにある場合にアサートするステータス信号を監視し、アサートに変化した場合にはリンクは切断したとみなし、前記クロック発生回路から１パルスを発生させ、前記ストローブ信号とXORすることで、擬似クロックを発生させ、
前記擬似クロックにより、デコードした最終コマンドをラッチし、前記後段回路に対してコマンドデータを確定し、前記フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、
前記後段回路から出力されたコマンドアクノレッジ信号に対して前記フリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、前記コマンドイネーブル信号のアサートを止め、次のコマンドが入力されるのを待つことを特徴とするデータ／ストローブエンコーディング方式回路。
【請求項８】
前記フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路及び前記フリップフロップデータアクノレッジ用メタ・ステーブル対策回路は、動作周波数等に応じた段数のフリップフロップで構成されることを特徴とする請求項７記載のデータ／ストローブエンコーディング方式回路。
【請求項９】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、
所定のデータをフリップフロップでラッチ後、前記データをラッチし保持していることを示す信号と、ラッチ後のデータと、を対として前記後段回路に渡し、
該後段回路から、前記データを受け取ったことを示す信号のアサートを受け取り、前記データをラッチして停止しているフリップフロップを再度動作させて新たなデータを受け取ることを特徴とするデータ／ストローブエンコーディング方法。
【請求項１０】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、
所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、前記データまたは前記ストローブ信号が変化した時には前記クロックを変化させるクロック生成ステップと、
前記データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成ステップと、
前記クロック生成ステップで出力されるクロックの変化を受けて、前記クロックイネーブル生成ステップと同期して、どのフリップフロップに受け取るべきデータをラッチしているかを示すフリップフロップデータ有効フラグを生成し出力するフリップフロップ有効フラグ生成ステップと、
前記クロックイネーブル生成ステップで出力されるイネーブル信号で選択されたフリップフロップで前記データをラッチし、フリップフロップ出力データとして出力するフリップフロップデータ出力ステップと、
前記フリップフロップ有効フラグ生成ステップで出力されるフリップフロップデータ有効フラグに対してメタ・ステーブル対策を施すフリップフロップデータ有効フラグ用メタ・ステーブル対策ステップと、
前記フリップフロップデータ有効フラグ用メタ・ステーブル対策ステップでメタ・ステーブル対策を施されたフリップフロップデータ有効フラグを参照しアサートされたビットに対して、前記フリップフロップデータ出力ステップから出力されたフリップフロップ出力データを前記後段回路のクロックでラッチするフリップフロップ出力データラッチステップと、
各フリップフロップからのデータを受け取る度に、フリップフロップデータアクノレッジ信号を出力するフリップフロップデータアクノレッジ信号出力ステップと、
前記フリップフロップデータアクノレッジ信号出力ステップで出力されるフリップフロップデータアクノレッジ信号に対してメタ・ステーブル対策を施すフリップフロップデータアクノレッジ用メタ・ステーブル対策ステップと、
前記フリップフロップデータアクノレッジ用メタ・ステーブル対策ステップでメタ・ステーブル対策を施されたフリップフロップデータアクノレッジ信号を受けて、どのフリップフロップが未読データを保持していないかを示す空フリップフロップ指示を出力する空フリップフロップ指示出力ステップと、
前記空フリップフロップ指示出力ステップで出力される空フリップフロップ指示信号を受けて、順番にイネーブル信号を生成し、新たなデータを受け付けない状態だったフリップフロップを再びデータ入力可能状態にする再データ入力可能状態ステップと、
を実行することを特徴とするデータ／ストローブエンコーディング方法。
【請求項１１】
前記フリップフロップデータ出力ステップで受け取った複数ビットデータから、デコードすべきデータビット量が揃った時点でコマンドデコードを行い、前記後段回路に対してコマンドデータを確定し、コマンドイネーブル信号をアサートするコマンドイネーブル信号アサートステップと、
前記後段回路からコマンドアクノレッジ信号のアサートを受けた場合に前記コマンドイネーブル信号のアサートを止める前記コマンドイネーブル信号アサート停止ステップと、
をさらに実行することを特徴とする請求項１０記載のデータ／ストローブエンコーディング方法。
【請求項１２】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、
前記後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートに他のステートから遷移した場合に擬似クロックを前段回路に与えることにより、最終デコード結果を前記後段回路に渡すことを特徴とするデータ／ストローブエンコーディング方法。
【請求項１３】
データとストローブ信号を別々な線路で伝送し、前記データ自身の変化と前記ストローブ信号の変化とをラッチのクロックに用い、前記データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、
所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、前記データまたは前記ストローブ信号が変化した時には前記クロックを変化させるクロック生成ステップと、
前記データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成ステップと、
前記クロックイネーブル生成ステップで出力されるイネーブル信号で選択されたフリップフロップで、コマンドを構成する連続した複数ビットデータをラッチし、フリップフロップ出力データとして出力するフリップフロップデータ出力ステップと、
前記データラッチ用フリップフロップ出力ステップで出力されるフリップフロップ出力データを受け取り、かつ、前記クロック生成ステップで生成された前記クロックに基づいて前記複数ビットデータの個数をカウントし、デコードすべきデータビット量が揃った時点で前記フリップフロップ出力データのコマンドデコードを行うコマンドデコードステップと、を実行し、
前記コマンドデコードの結果、最終コマンドではない場合は、次以降のクロックでデコード結果をラッチし、前記後段回路に対してコマンドデータを確定し、前記フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、
前記後段回路から出力されたコマンドアクノレッジ信号に対して前記フリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、前記コマンドイネーブル信号のアサートを止め、再び前記フリップフロップ出力データのコマンドデコードを行い、
前記コマンドデコードの結果、最終コマンドである場合は、前記後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートにある場合にアサートするステータス信号を監視し、アサートに変化した場合にはリンクは切断したとみなし、１パルスを発生させて前記ストローブ信号とXORすることで、擬似クロックを発生させ、
前記擬似クロックにより、デコードした最終コマンドをラッチし、前記後段回路に対してコマンドデータを確定し、前記フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、
前記後段回路から出力されたコマンドアクノレッジ信号に対して前記フリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、前記コマンドイネーブル信号のアサートを止め、次のコマンドが入力されるのを待つことを特徴とすることを特徴とするデータ／ストローブエンコーディング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ／ストローブエンコーディング方式回路およびデータ／ストローブエンコーディング方法に関する。
【背景技術】
【０００２】
インターフェース規格であるSpaceWire（スペースワイヤー）の伝送方式は、IEEE1394などにも利用されているシリアルデータ（Data）とストローブ信号（Strobe）を別々な線路で伝送し、データが変化する時はストローブを変化させないという符号化方式（D/S(Data strobe) encoding（DS-Link方式）：データ／ストローブエンコーディング方式）である。従来、このD/S encoding方式（DS-Link方式）の受信回路において、受信したコマンドをラッチして後段の回路（以下、後段回路という）に受け渡すために、最終ビットを含めたコマンドデコードを行った後にFlop-flop（フリップフロップ）でラッチを行い、後段回路にコマンドを渡す必要があった。
【０００３】
しかし、ストローブが変化しない時にはデータの変化をクロック（データとストローブのXOR（eXclusive OR operation）にて生成）として用い、変化後のデータ値をFlip-flopでラッチしなければならず、この時のデータのセットアップ時間は１つのXOR分の遅延時間に等しくなる。さらに、連続した複数ビットからコマンドをデコードし後段回路に出力する必要があり、コマンド最終ビットデータの場合には、ラッチしてから次のクロック（データまたはストローブの変化）が必ず発生する保証が無いため、コマンドを構成する最後のデータビットをFlip-flopにラッチしたと同時にデコード値を得る必要があった。この時、何ら対策を行わないと入力データに対するセットアップ時間が足りず、デコードが正しく行われない問題が発生する。
【０００４】
この問題の従来の解決方法としては、D/S encoding方式（DS-Link方式）の受信回路において、受信したコマンドをラッチして後段の回路に受け渡す処理で、データビット列の最終ビットを含めたコマンドデコードを行うために、データとストローブのXORにて生成したクロックに対して遅延素子を用いたアナログ回路を適用した遅延制御回路を用いて、データに対するセットアップ時間を満たす対策が施されていた。
【０００５】
しかし、この方式でLSI（Large Scale Integration）化する場合には、遅延がLSIのデバイス特性に依存するためにデバイス特性毎に遅延回路を新規設計する必要があった。もしくは、データとストローブのXORにてクロックを生成する回路部分を、遅延時間を制御する機能をもった専用のLSIと置き換えることで、遅延を付加したクロックを生成する必要があった。
【０００６】
よって、従来技術では、LSI毎の遅延回路新規設計や専用LSIの使用により、設計期間増やコスト高を招くという課題があった。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上記事情に鑑みてなされたものであり、LSIのデバイス特性に依存せず、設計容易で低コストのD/S encoding方式（DS-Link方式）を実現することができるデータ／ストローブエンコーディング方式回路およびデータ／ストローブエンコーディング方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために、請求項１記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、所定のデータをフリップフロップでラッチ後、データをラッチし保持していることを示す信号と、ラッチ後のデータと、を対として後段回路に渡し、後段回路から、データを受け取ったことを示す信号のアサートを受け取り、データをラッチして停止しているフリップフロップを再度動作させて新たなデータを受け取ることを特徴とする。
【０００９】
請求項２記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、データまたはストローブ信号が変化した時にはクロックを変化させるクロック生成回路と、データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成回路と、クロック生成回路から出力されるクロックの変化を受けて、クロックイネーブル生成回路と同期して、どのフリップフロップに受け取るべきデータをラッチしているかを示すフリップフロップデータ有効フラグを生成し出力するフリップフロップ有効フラグ生成回路と、複数のフリップフロップで構成され、クロックイネーブル生成回路から出力されるイネーブル信号で選択されたフリップフロップでデータをラッチし、フリップフロップ出力データとして出力するデータラッチ用フリップフロップアレイと、フリップフロップ有効フラグ生成回路から出力されるフリップフロップデータ有効フラグに対してメタ・ステーブル対策を施すフリップフロップデータ有効フラグ用メタ・ステーブル対策回路と、データラッチ用フリップフロップアレイから出力されたフリップフロップ出力データと、フリップフロップデータ有効フラグ用メタ・ステーブル対策回路でメタ・ステーブル対策を施されたフリップフロップデータ有効フラグとを受け取るコマンドデコーダ回路と、コマンドデコーダ回路から出力されるフリップフロップデータアクノレッジ信号に対してメタ・ステーブル対策を施すフリップフロップデータアクノレッジ用メタ・ステーブル対策回路と、を有し、コマンドデコーダ回路は、フリップフロップデータ有効フラグを参照しアサートされたビットに対して、データラッチ用フリップフロップアレイから受け取ったフリップフロップ出力データを後段回路のクロックでラッチし、各フリップフロップからのデータを受け取る度に、フリップフロップデータアクノレッジ信号をフリップフロップ有効フラグ生成回路に対してアサートし、フリップフロップ有効フラグ生成回路は、コマンドデコーダ回路から出力され、フリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施されたフリップフロップデータアクノレッジ信号を受けて、どのフリップフロップが未読データを保持していないかを示す空フリップフロップ指示をクロックイネーブル生成回路に与え、クロックイネーブル生成回路は、フリップフロップ有効フラグ生成回路から空フリップフロップ指示信号を受けて、順番にイネーブル信号を生成し、新たなデータを受け付けない状態だったデータラッチ用フリップフロップアレイのフリップフロップを再びデータ入力可能状態にすることを特徴とする。
【００１０】
請求項３記載の発明は、請求項２記載の発明において、コマンドデコーダ回路は、データラッチ用フリップフロップアレイから受け取った複数ビットデータから、デコードすべきデータビット量が揃った時点でコマンドデコードを行い、後段回路に対してコマンドデータを確定し、コマンドイネーブル信号をアサートし、後段回路からコマンドアクノレッジ信号のアサートを受けた場合にコマンドイネーブル信号のアサートを止めることを特徴とする。
【００１１】
請求項４記載の発明は、請求項２又は３記載の発明において、フリップフロップデータ有効フラグ用メタ・ステーブル対策回路及びフリップフロップデータアクノレッジ用メタ・ステーブル対策回路は、動作周波数等に応じた段数のフリップフロップで構成されることを特徴とする。
【００１２】
請求項５記載の発明は、請求項２から４のいずれか１項に記載の発明において、データラッチ用フリップフロップアレイのフリップフロップの数は、クロック生成回路で生成されたクロック及び後段回路のクロックの動作周波数により決定されることを特徴とする。
【００１３】
請求項６記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートに他のステートから遷移した場合に擬似クロックを前段回路に与えることにより、最終デコード結果を後段回路に渡すことを特徴とする。
【００１４】
請求項７記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方式回路において、所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、データまたはストローブ信号が変化した時にはクロックを変化させるクロック生成回路と、データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成回路と、複数のフリップフロップで構成され、クロックイネーブル生成回路から出力されるイネーブル信号で選択されたフリップフロップで、コマンドを構成する連続した複数ビットデータをラッチし、フリップフロップ出力データとして出力するデータラッチ用フリップフロップアレイと、データラッチ用フリップフロップアレイから出力されたフリップフロップ出力データを受け取るコマンドデコーダ回路と、コマンドデコーダ回路から出力されるコマンドイネーブル信号に対してメタ・ステーブル対策を施すフリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路と、後段回路から出力されるフリップフロップデータアクノレッジ信号に対してメタ・ステーブル対策を施すフリップフロップデータアクノレッジ用メタ・ステーブル対策回路と、後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートにある場合にアサートするステータス信号を監視し、アサートに変化した場合には１パルスを発生させ、ストローブ信号とXORすることで、擬似的にクロックパルスを発生させるクロック発生回路と、を有し、コマンドデコーダ回路は、データラッチ用フリップフロップアレイから出力されるフリップフロップ出力データを受け取り、かつ、クロック生成回路で生成されたクロックに基づいて複数ビットデータの個数をカウントし、デコードすべきデータビット量が揃った時点でフリップフロップ出力データのコマンドデコードを行い、コマンドデコードの結果、最終コマンドではない場合は、次以降のクロックでデコード結果をラッチし、後段回路に対してコマンドデータを確定し、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、後段回路から出力されたコマンドアクノレッジ信号に対してフリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、コマンドイネーブル信号のアサートを止め、再びフリップフロップ出力データのコマンドデコードを行い、コマンドデコードの結果、最終コマンドである場合は、クロック発生回路により、後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートにある場合にアサートするステータス信号を監視し、アサートに変化した場合にはリンクは切断したとみなし、クロック発生回路から１パルスを発生させ、ストローブ信号とXORすることで、擬似クロックを発生させ、擬似クロックにより、デコードした最終コマンドをラッチし、後段回路に対してコマンドデータを確定し、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、後段回路から出力されたコマンドアクノレッジ信号に対してフリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、コマンドイネーブル信号のアサートを止め、次のコマンドが入力されるのを待つことを特徴とする。
【００１５】
請求項８記載の発明は、請求項７記載の発明において、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路及びフリップフロップデータアクノレッジ用メタ・ステーブル対策回路は、動作周波数等に応じた段数のフリップフロップで構成されることを特徴とする。
【００１６】
請求項９記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、所定のデータをフリップフロップでラッチ後、データをラッチし保持していることを示す信号と、ラッチ後のデータと、を対として後段回路に渡し、後段回路から、データを受け取ったことを示す信号のアサートを受け取り、データをラッチして停止しているフリップフロップを再度動作させて新たなデータを受け取ることを特徴とする。
【００１７】
請求項１０記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、データまたはストローブ信号が変化した時にはクロックを変化させるクロック生成ステップと、データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成ステップと、クロック生成ステップで出力されるクロックの変化を受けて、クロックイネーブル生成ステップと同期して、どのフリップフロップに受け取るべきデータをラッチしているかを示すフリップフロップデータ有効フラグを生成し出力するフリップフロップ有効フラグ生成ステップと、クロックイネーブル生成ステップで出力されるイネーブル信号で選択されたフリップフロップでデータをラッチし、フリップフロップ出力データとして出力するフリップフロップデータ出力ステップと、フリップフロップ有効フラグ生成ステップで出力されるフリップフロップデータ有効フラグに対してメタ・ステーブル対策を施すフリップフロップデータ有効フラグ用メタ・ステーブル対策ステップと、フリップフロップデータ有効フラグ用メタ・ステーブル対策ステップでメタ・ステーブル対策を施されたフリップフロップデータ有効フラグを参照しアサートされたビットに対して、フリップフロップデータ出力ステップから出力されたフリップフロップ出力データを後段回路のクロックでラッチするフリップフロップ出力データラッチステップと、各フリップフロップからのデータを受け取る度に、フリップフロップデータアクノレッジ信号を出力するフリップフロップデータアクノレッジ信号出力ステップと、フリップフロップデータアクノレッジ信号出力ステップで出力されるフリップフロップデータアクノレッジ信号に対してメタ・ステーブル対策を施すフリップフロップデータアクノレッジ用メタ・ステーブル対策ステップと、フリップフロップデータアクノレッジ用メタ・ステーブル対策ステップでメタ・ステーブル対策を施されたフリップフロップデータアクノレッジ信号を受けて、どのフリップフロップが未読データを保持していないかを示す空フリップフロップ指示を出力する空フリップフロップ指示出力ステップと、空フリップフロップ指示出力ステップで出力される空フリップフロップ指示信号を受けて、順番にイネーブル信号を生成し、新たなデータを受け付けない状態だったフリップフロップを再びデータ入力可能状態にする再データ入力可能状態ステップと、を実行することを特徴とする。
【００１８】
請求項１１記載の発明は、請求項１０記載の発明において、フリップフロップデータ出力ステップで受け取った複数ビットデータから、デコードすべきデータビット量が揃った時点でコマンドデコードを行い、後段回路に対してコマンドデータを確定し、コマンドイネーブル信号をアサートするコマンドイネーブル信号アサートステップと、後段回路からコマンドアクノレッジ信号のアサートを受けた場合にコマンドイネーブル信号のアサートを止めるコマンドイネーブル信号アサート停止ステップと、をさらに実行することを特徴とする。
【００１９】
請求項１２記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートに他のステートから遷移した場合に擬似クロックを前段回路に与えることにより、最終デコード結果を後段回路に渡すことを特徴とする。
【００２０】
請求項１３記載の発明は、データとストローブ信号を別々な線路で伝送し、データ自身の変化とストローブ信号の変化とをラッチのクロックに用い、データを別クロックで動作している後段回路に伝送するデータ／ストローブエンコーディング方法において、所定のデータと所定のストローブ信号に基づいてクロックを生成して出力し、データまたはストローブ信号が変化した時にはクロックを変化させるクロック生成ステップと、データをラッチ有効とするイネーブル信号を生成して出力するクロックイネーブル生成ステップと、クロックイネーブル生成ステップで出力されるイネーブル信号で選択されたフリップフロップで、コマンドを構成する連続した複数ビットデータをラッチし、フリップフロップ出力データとして出力するフリップフロップデータ出力ステップと、データラッチ用フリップフロップ出力ステップで出力されるフリップフロップ出力データを受け取り、かつ、クロック生成ステップで生成されたクロックに基づいて複数ビットデータの個数をカウントし、デコードすべきデータビット量が揃った時点でフリップフロップ出力データのコマンドデコードを行うコマンドデコードステップと、を実行し、コマンドデコードの結果、最終コマンドではない場合は、次以降のクロックでデコード結果をラッチし、後段回路に対してコマンドデータを確定し、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、後段回路から出力されたコマンドアクノレッジ信号に対してフリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、コマンドイネーブル信号のアサートを止め、再びフリップフロップ出力データのコマンドデコードを行い、コマンドデコードの結果、最終コマンドである場合は、後段回路のデータ転送を制御するステートマシンのステートが、初期状態およびリセット状態を示すステートであるエラーリセットステートにある場合にアサートするステータス信号を監視し、アサートに変化した場合にはリンクは切断したとみなし、１パルスを発生させてストローブ信号とXORすることで、擬似クロックを発生させ、擬似クロックにより、デコードした最終コマンドをラッチし、後段回路に対してコマンドデータを確定し、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドイネーブル信号をアサートし、後段回路から出力されたコマンドアクノレッジ信号に対してフリップフロップデータアクノレッジ用メタ・ステーブル対策回路でメタ・ステーブル対策を施したコマンドアクノレッジ信号を受けて、コマンドイネーブル信号のアサートを止め、次のコマンドが入力されるのを待つことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、LSIのデバイス特性に依存せず、設計容易で低コストのデータ／ストローブエンコーディング方式回路を実現することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を実施するための最良の形態について添付図面を参照して詳細に説明する。
【００２３】
本発明は、D/S encoding方式（DS-Link方式）を実現するために、回路実装を行うLSIのデバイス特性に合わせた遅延回路の新規設計や、遅延を調整するための専用LSIの設置により、設計期間増やコスト高になるという従来の問題を、遅延考慮の専用アナログ回路設計を行わず論理設計のみで解決できるため、LSIのデバイス特性に依存せず設計容易で低コストのD/S encoding方式（DS-Link方式）受信回路を実現できることを特徴とする。
【実施例１】
【００２４】
まず、実施例１の概要について説明する。
データ（1bit）をFlip-flopでラッチ後、ラッチ後のデータと、データをラッチし保持していることを示す信号とを対として後段回路に渡し、別クロックで動作している後段回路から、そのデータを受け取ったことを示す信号のアサートを受け取り、データをラッチして停止しているFlip-flopを再度動作させて新たなデータを受け取る。コマンドのデコードは後段回路で行う。
【００２５】
次に、実施例１の構成について図１を参照して説明する。
図１を参照すると、本実施例は、クロック生成回路１、クロックイネーブル生成回路２、フリップフロップ有効フラグ生成回路３、データラッチ用フリップフロップアレイ４、フリップフロップデータ有効フラグ用メタ・ステーブル対策回路５、フリップフロップデータアクノレッジ用メタ・ステーブル対策回路６、コマンドデコーダ回路７から構成される。
【００２６】
図１において、クロック生成回路１、クロックイネーブル生成回路２、フリップフロップ有効フラグ生成回路３、データラッチ用フリップフロップアレイ４、およびフリップフロップデータアクノレッジ用メタ・ステーブル対策回路６は、データとストローブから生成されるクロックで動作する。本実施例ではこれらの回路をまとめて「D/S encoding I/F側」と呼ぶこととする。
【００２７】
また、図１において、フリップフロップデータ有効フラグ用メタ・ステーブル対策回路５、コマンドデコーダ回路７は、後段回路と同じクロックで動作する。本実施例ではこれらの回路をまとめて「System側」と呼ぶこととする。
【００２８】
クロック生成回路１は、シリアルデータとストローブ信号を別々な線路で伝送するD/S encoding方式（DS-Link方式）のクロック生成回路である。データまたはストローブが変化した時に出力クロック信号（CLK0,CLK1）を変化させる。また、CLK1はCLK0の反転信号である。
【００２９】
クロックイネーブル生成回路２は、データラッチ用フリップフロップアレイ４の各フリップフロップ（FF）のいずれかに、データ（1bit）をラッチ有効とするイネーブル信号（Flip-flop Clock イネーブル）をアサート（assert）する。どのフリップフロップを有効にするかは、未読データを保持していないフリップフロップを示す信号（空FF指示信号）をフリップフロップ有効フラグ生成回路３から受けて決定され、順番にイネーブル信号を生成する。
【００３０】
フリップフロップ有効フラグ生成回路３は、どのFlip-flopが未読データを保持していないか（コマンドデコーダがデータを受け取り済み）を示す信号（空FF指示信号）をクロックイネーブル生成回路２に与え、クロック生成回路１から出力されるCLK0またはCLK1の変化を受けて、クロックイネーブル生成回路２と同期して、どのFlip-flopに受け取るべきデータをラッチしているかを示す信号（Flip-flopデータ有効フラグ）をコマンドデコーダ回路７にアサートする。
【００３１】
データラッチ用フリップフロップアレイ４は、クロックイネーブル生成回路２から出力されるイネーブル信号（Flip-flop Clock イネーブル）で選択されたFlip-flopでデータ（1bit）をラッチする。
【００３２】
フリップフロップデータ有効フラグ用メタ・ステーブル対策回路５は、"Flip-flopデータ有効フラグ信号"が、フリップフロップ有効フラグ生成回路３とコマンドデコーダ回路７の間で非同期に受け渡されるため、メタ・ステーブル発生時の影響を抑えるために挿入される。この回路はFlip-flopで構成され、一般的にはFlip-flopが２段縦続に接続されるが、動作周波数等に応じて段数は増減させてよい。
【００３３】
フリップフロップデータアクノレッジ用メタ・ステーブル対策回路６は、"Flip-flopデータアクノレッジ信号"が、コマンドデコーダ回路７とフリップフロップ有効フラグ生成回路３の間で非同期に受け渡されるため、メタ・ステーブル発生時の影響を抑えるために挿入される。この回路はFlip-flopで構成され、一般的にはFlip-flopが２段縦続に接続されるが、動作周波数等に応じて段数は増減させてよい。
【００３４】
コマンドデコーダ回路７は、データラッチ用フリップフロップアレイ４から受け取った複数ビットデータからコマンドをデコードし、図示しない後段回路に対して"コマンドデータ"を確定し、"コマンドイネーブル"信号をアサートする。また、後段回路から"コマンドアクノレッジ"信号のアサートを受けて、"コマンドイネーブル"のアサートを止める。
【００３５】
次に、実施例１の動作について図１及び図２を参照して説明する。
データ（1bit）をデータラッチ用フリップフロップアレイ４でラッチ後（ステップＳ１）、データラッチ用フリップフロップアレイ４は"Flip-flop出力データ"信号として出力し、また、フリップフロップ有効フラグ生成回路３は、"Flip-flop出力データ"信号と対となるデータとして、Flip-flopにデータをラッチしていることを示す"Flip-flopデータ有効フラグ"信号をコマンドデコーダ回路７にアサート（例えば、データのビットレート100Mbps）する（ステップＳ２）。このアサートはレベル出力であり、アサート中はこのFlip-flopは新たなデータを受け付けない。新たなデータは、まだデータをラッチしていない他のFlip-flopにラッチされる。
【００３６】
コマンドデコーダ回路７は別クロック（例えば25MHz）で動作しており、フリップフロップ有効フラグ生成回路３から出力された後、フリップフロップデータ有効フラグ用メタ・ステーブル対策回路５でメタ・ステーブル対策を施した"Flip-flopデータ有効フラグ"信号を参照しアサートされたビットに対して、データラッチ用フリップフロップアレイ４からの"Flip-flop出力データ"信号をSystem側のクロックでラッチする（ステップＳ３）。
【００３７】
コマンドデコーダ回路７は、各Flip-flopからのデータを受け取り後、その都度、値が確定されたことを示す"Flip-flopデータアクノレッジ"信号をフリップフロップ有効フラグ生成回路３に対してアサートする（ステップＳ４）。
【００３８】
フリップフロップ有効フラグ生成回路３は、コマンドデコーダ回路７から出力された後、フリップフロップデータアクノレッジ用メタ・ステーブル対策回路６でメタ・ステーブル対策を施した"Flip-flopデータアクノレッジ"信号を受けて"空FF指示"信号をクロックイネーブル生成回路２に与え（ステップＳ５）、新たなデータを受け付けない状態だったFlip-flopを再びデータ入力可能状態にする（ステップＳ６）。
【００３９】
ここで、データラッチ用フリップフロップアレイ４内のFlip-flopはデータラッチ後、再びデータ入力可能状態となるまでには、コマンドデコーダ回路７からの"Flip-flopデータアクノレッジ"信号が返るまでの時間がかかることから、複数個のFlip-flopを用意して、FIFO的な動作を行う必要がある。用意するFlip-flopの個数は、D/S encoding I/F側とSystem側の動作周波数により決定する。
【００４０】
また、受信データは、連続で来る場合も有り得るから、コマンドデコーダ回路７はD/S encoding I/F側からのデータを待たせることなく受け取る必要がある。
【００４１】
コマンドデコーダ回路７は、データラッチ用フリップフロップアレイ４から受け取った複数ビットデータから、デコードすべきデータビット量が揃った時点でコマンドデコードを行い、後段回路に対して"コマンドデータ"を確定し、"コマンドイネーブル"信号をアサートする（ステップＳ７）。その後、後段回路から"コマンドアクノレッジ"信号のアサートを受けたら"コマンドイネーブル"信号のアサートを止める（ステップＳ８）。
【実施例２】
【００４２】
まず、実施例２の概要について説明する。
データとストローブから生成したクロックを用いてデータをラッチし、その次以降のクロックでデコードしたコマンドをラッチして後段回路に渡す。通常は、コマンドデータを全て受け取った後でも、NULLパケットが伝送路に存在しているため、クロックを生成可能であるが、最終データを受け取った後に伝送路が物理的に切断した場合には、コマンドをデコードできずにロック状態となる。この場合のFail-safeとして、後段回路のデータ転送を制御するステートマシン（SpaceWire規格におけるリンクインタフェース用ステートマシン）のステートが、初期状態およびリセット状態を示すステートである「ErrorReset（エラーリセット）ステート」に他のステートから遷移した場合に擬似クロックを前段回路に与える。この結果、最終デコード結果を後段回路に渡すことが可能となる。本実施例２は、実施例１よりも必要なデータ転送用のFlip-flopの数が少ない。
【００４３】
次に、実施例２の構成について図３を参照して説明する。
図３を参照すると、本実施例は、クロック生成回路１、クロックイネーブル生成回路２、データラッチ用フリップフロップアレイ４、フリップフロップデータアクノレッジ用メタ・ステーブル対策回路６、コマンドデコーダ回路７、クロック発生回路９、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路１０から構成される。
【００４４】
図３において、クロック生成回路１、クロックイネーブル生成回路２、データラッチ用フリップフロップアレイ３、コマンドデコーダ回路７、クロック発生回路９、およびフリップフロップデータアクノレッジ用メタ・ステーブル対策回路６は、データとストローブから生成されるクロックで動作する。本実施例ではこれらの回路をまとめて「D/S encoding I/F側」と呼ぶこととする。
【００４５】
また、図３において、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路１０は、後段回路と同じクロックで動作する。本実施例ではこの回路を「System側」と呼ぶこととする。
【００４６】
クロック生成回路１は、シリアルデータとストローブ信号を別々な線路で伝送するD/S encoding方式（DS-Link方式）のクロック生成回路である。データまたはストローブが変化した時に出力クロック信号（CLK0,CLK1）を変化させる。また、CLK1はCLK0の反転信号である。
【００４７】
クロックイネーブル生成回路２は、データラッチ用フリップフロップアレイ４のフリップフロップのいずれかに、データ（1bit）をラッチ有効とするイネーブル信号（Flip-flop CLock イネーブル）をアサートする。どのフリップフロップを有効にするかは、CLK0およびCLK1を用いて順番に決定する。
【００４８】
データラッチ用フリップフロップアレイ４は、クロックイネーブル生成回路２から出力されるイネーブル信号（Flip-flop Clock イネーブル）で選択されたFlip-flopで、コマンドを構成する連続した複数ビットデータをラッチし、ラッチした"Flip-flop出力データ"をコマンドデコーダ回路７へ出力する。
【００４９】
コマンドデコーダ回路７は、データラッチ用フリップフロップアレイ４から受け取った複数ビットデータである"Flip-flop出力データ"からコマンドをデコードし、図示しない後段回路に対して"コマンドデータ"を確定し、"コマンドイネーブル"信号をアサートする。その後、後段回路から"コマンドアクノレッジ"信号のアサートを受けて、"コマンドイネーブル"のアサートを止め、"コマンドデータ"を更新してから、"コマンドイネーブル"を再度アサートする。
【００５０】
クロック発生回路９は、後段回路のデータ転送を制御するステートマシン（SpaceWire規格におけるリンクインタフェース用ステートマシン）のステートが、初期状態およびリセット状態を示すステートである「ErrorReset（エラーリセット）ステート」にある場合にアサートするステータス信号を監視し、アサートに変化した場合には１パルスを発生させ、ストローブ信号とXORすることで、擬似的にクロックパルスを発生させる。
【００５１】
フリップフロップデータアクノレッジ用メタ・ステーブル対策回路６は、"コマンドアクノレッジ"信号が、System側とコマンドデコーダ回路７との間で非同期に受け渡されるため、メタ・ステーブル発生時の影響を抑えるために挿入される。この回路はFlip-flopで構成され、一般的にはFlip-flopが２段縦続に接続されるが、動作周波数等に応じて段数は増減させてよい。
【００５２】
フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路１０は、"コマンドイネーブル"信号が、コマンドデコーダ回路７とSystem側との間で非同期に受け渡されるため、メタ・ステーブル発生時の影響を抑えるために挿入される。この回路はFlip-flopで構成され、一般的にはFlip-flopが２段縦続に接続されるが、動作周波数等に応じて段数は増減させてよい。
【００５３】
次に、実施例２の動作について図３及び図４を参照して説明する。
クロックイネーブル生成回路２からの"Flip-flop Clock イネーブル"信号により、コマンドを構成する連続した複数ビットデータをデータラッチ用フリップフロップアレイ４でラッチ後、コマンドデコーダ回路７は、データラッチ用フリップフロップアレイ４からラッチ後の複数ビットデータ（"Flip-flop出力データ"）を受け取る。これと同時にコマンドデコーダ回路７でも、クロック生成回路で生成された各クロックに基づいて複数ビットデータの個数をカウントし、デコードすべきデータビット量が揃った時点で"Flip-flop出力データ"のコマンドデコードを行う（ステップＳ１１）。
【００５４】
コマンドデコードの結果、最終コマンドではない場合は（ステップＳ１２／ＮＯ）、次以降のクロック（データまたはストローブの変化）でデコード結果をコマンドデコード回路７内のFlip-flopでラッチして、後段回路に対して"コマンドデータ"を確定し、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路１０でメタ・ステーブル対策を施した"コマンドイネーブル"信号をアサートする（ステップＳ１３）。
【００５５】
その後、コマンドデコーダ回路７は、後段回路からの"コマンドアクノレッジ"信号にフリップフロップデータアクノレッジ用メタ・ステーブル対策回路６でメタ・ステーブル対策を施した信号を受けて、"コマンドイネーブル"信号のアサートを止め、ステップＳ１１へ戻る（ステップＳ１４）。このように、複数受信されたコマンドのうち最終のコマンド以外のコマンドについては、"コマンドイネーブル"信号と“コマンドアクノレッジ"信号を用いて、１つのコマンドデータ毎にハンドシェイクする。
【００５６】
一方、コマンドデコードの結果、最終コマンドである場合は（ステップＳ１２／ＹＥＳ）、次以降のクロックが存在しない可能性があるため、クロック発生回路９により、後段回路のデータ転送を制御するステートマシン（SpaceWire規格におけるリンクインタフェース用ステートマシン）のステートが、初期状態およびリセット状態を示すステートである「ErrorReset（エラーリセット）ステート」にある場合にアサートするステータス信号を監視し（ステップＳ１５）、アサートに変化した場合にはリンクは切断したとみなし、クロック発生回路９から１パルスを発生させ、ストローブ信号とXORすることで、擬似的にクロックパルスを発生させる（ステップＳ１６）。
【００５７】
擬似発生したクロックにより、通常動作と同様に、デコードした最終コマンドをコマンドデコーダ回路７内のFlip-flopでラッチし、後段回路に対して"コマンドデータ"を確定し、フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路１０でメタ・ステーブル対策を施した"コマンドイネーブル"信号をアサートする（ステップＳ１７）。
【００５８】
その後、コマンドデコーダ回路７は、後段回路からの"コマンドアクノレッジ"信号にフリップフロップデータアクノレッジ用メタ・ステーブル対策回路６でメタ・ステーブル対策を施した信号を受けて、"コマンドイネーブル"信号のアサートを止め、次のコマンドが入力されるのを待つ"（ステップＳ１８）。
【００５９】
以上説明したように、本発明の各実施例によれば、従来のような遅延素子等を用いた遅延制御の必要がないため、実装するLSIが変わる度にデバイス特性に依存した遅延設計を行う必要が無い。そのため、ディジタルLSI用の論理設計で容易にD/S encoding方式（DS-Link方式）を実装したLSIを設計可能となり設計期間の短縮が図られる。また、遅延制御専用LSIを用いる必要が無いため、システムの費用削減効果もある。
【００６０】
以上、本発明の実施例について説明したが、上記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。
【産業上の利用可能性】
【００６１】
本発明は、データ自身の変化とストローブ信号の変化をラッチのクロックに用いるD/S encoding方式（DS-Link方式）等のシリアルデータ伝送方式において、最終データ受信後にシリアルデータ転送が発生しない場合でも、最終データを受信側でコマンドとして確実に受け取る必要がある場合に適用できる。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施例１に係る全体構成を示すブロック図である。
【図２】本発明の実施例１に係る動作を示すフローチャートである。
【図３】本発明の実施例２に係る全体構成を示すブロック図である。
【図４】本発明の実施例２に係る動作を示すフローチャートである。
【符号の説明】
【００６３】
１    クロック生成回路
２    クロックイネーブル生成回路
３    フリップフロップ有効フラグ生成回路
４    データ用ラッチフリップフロップアレイ
５    フリップフロップデータ有効フラグ用メタ・ステーブル対策回路
６    フリップフロップデータアクノレッジ用メタ・ステーブル対策回路
７    コマンドデコーダ回路
８    コマンドデータ
９    クロック発生回路
１０    フリップフロップデータコマンドイネーブル用メタ・ステーブル対策回路
【図１】
2007300151.tif 000003
【図２】
2007300151.tif 000004
【図３】
2007300151.tif 000005
【図４】
2007300151.tif 000006