(57)【要約】【課題】膨大な数の非同期データ転送パスのうちで、シンクロナイザ挿入がメタステーブル問題の対策とならないパスを自動的に除外し、その他のパスにシンクロナイザを挿入する。【解決手段】非同期データ転送パスのうちで非同期クロックが原因となるメタステーブル問題に対する対策が行われていない未対策パスを記憶し、記憶されている未対策パスにシンクロナイザを挿入してもメタステーブル問題の対策とならないパスを自動的に判定し、その他のパスにシンクロナイザを挿入する。【選択図】図１
2009037384.tif 000002
【特許請求の範囲】
【請求項１】
一定のクロック周波数で動作しているデータ転送元から、該一定のクロック周波数と異なるクロック周波数で動作しているデータ転送先へのデータパスとしての非同期クロックデータ転送パスのうちで、該非同期クロックが原因となるメタステーブル問題に対する対策が行われていない非同期未対策パスのデータをメモリに記憶させる非同期未対策パス記憶ステップと、
該メモリに記憶されている非同期未対策パスのうちで、該未対策パスにシンクロナイザを挿入しても前記メタステーブル問題への対策とならないシンクロナイザ挿入不要パスを判定し、該シンクロナイザ挿入不要パスのデータを前記メモリから削除するシンクロナイザ挿入不要パス判定ステップと、
該シンクロナイザ挿入不要パス以外の非同期未対策パスにシンクロナイザを挿入するシンクロナイザ挿入ステップとを備えることを特徴とするシンクロナイザ自動挿入方法。
【請求項２】
前記シンクロナイザ挿入不要パス判定ステップにおいて、前記データ転送先における前記非同期未対策パスの接続先としての転送先フリップ・フロップの出力信号が該転送先の異なるフリップ・フロップのクリア／プリセット端子に到達する時、該非同期未対策パスをシンクロナイザ挿入不要パスと判定することを特徴とする請求項１に記載のシンクロナイザ自動挿入方法。
【請求項３】
前記シンクロナイザ挿入不要パス判定ステップにおいて、前記データ転送先における前記非同期未対策パスの接続先としての転送先フリップ・フロップへの入力信号が該転送先フリップ・フロップの入力側にあるセレクタを経由し、かつ該セレクタの制御端子への信号が他のセレクタの制御端子を通過している時、または前記入力側にあるセレクタを経由せず、かつ転送先フリップ・フロップの出力信号が該フリップ・フロップの出力側にある２段のセレクタの制御端子を通過して異なるフリップ・フロップに入力されている時、該未対策パスをシンクロナイザ挿入不要パスと判定することを特徴とする請求項１に記載のシンクロナイザ自動挿入方法。
【請求項４】
前記シンクロナイザ挿入不要パス判定ステップにおいて、前記データ転送先における前記非同期未対策パスの接続先が該データ転送先においてフリップ・フロップの２次元配列を構成するフリップ・フロップである時、該非同期未対策パスをシンクロナイザ挿入不要パスと判定することを特徴とする請求項１に記載のシンクロナイザ自動挿入方法。
【請求項５】
一定のクロック周波数で動作しているデータ転送元から、該一定のクロック周波数と異なるクロック周波数で動作しているデータ転送先へのデータパスとしての非同期クロックデータ転送パスのうちで、該非同期クロックが原因となるメタステーブル問題に対する対策が行われていない非同期未対策パスのデータを記憶する非同期未対策パス記憶手段と、
該記憶されている非同期未対策パスのうちで、該未対策パスにシンクロナイザを挿入しても前記メタステーブル問題への対策とならないシンクロナイザ挿入不要パスを判定し、該シンクロナイザ挿入不要パスのデータを前記非同期未対策パス記憶手段の記憶内容から削除するするシンクロナイザ挿入不要パス判定手段と、
該シンクロナイザ挿入不要パス以外の非同期未対策パスにシンクロナイザを挿入するシンクロナイザ挿入手段とを備えることを特徴とするシンクロナイザ自動挿入装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送方式に係り、さらに詳しくは、異なる周波数の独立のクロック信号で動作している２つの回路の間のデータ転送パスに対して、メタステーブル問題を回避するためのシンクロナイザの挿入が必要か否かを判定し、シンクロナイザ挿入パスの絞込みを行うシンクロナイザ自動挿入方法、および挿入装置に関する。
【背景技術】
【０００２】
周波数の異なる、互いに独立のクロック信号で動作している装置の間、回路の間、またはＬＳＩチップの間でデータ転送を行う場合に、メタステーブルという問題が発生する可能性がある。例えばデータ転送元のクロック周波数よりデータ転送先のクロック周波数が高い場合には、例えばデータ転送元のクロック信号の立ち上がりに同期して転送されるデータをデータ転送先のクロック信号の立ち上がりにおいて適切に受信することができず、例えばデータ転送元から“１”というデータを送っても、データ転送先において“０”でも“１”でもない不明なデータとして受信されてしまうことがある。逆にデータ転送元のクロック信号の周波数がデータ転送先のクロック信号の周波数より高い場合には、データ転送先のクロック信号がデータ転送元のクロック信号の分周信号であるような場合を除いて、クロック信号の立ち上がり時点のずれのために、正しいデータ転送を行うことができない場合もある。
【０００３】
このようなメタステーブル問題の発生を回避するために、周波数の異なるクロック信号で動作している回路の間のデータ転送パス、すなわち非同期データ転送パスに、例えば複数段のフリップ・フロップ（ＦＦ）によって構成されるシンクロナイザを挿入することによって、正しいデータ転送を実現する方法がある。従来のシンクロナイザ挿入方法においては、非同期データ転送パスの全てを検出し、その全てのパスにシンクロナイザを自動的に挿入する方法が用いられていた。
【０００４】
しかしながら、例えばデータ転送先のデータ受け側のフリップ・フロップの出力が、データ転送先の他のフリップ・フロップのクリア端子などに接続されているような場合には、本来、例えば受信側のクロック信号を送信側のクロック信号の分周信号とする必要があり、非同期データ転送パスにシンクロナイザを挿入してもメタステーブル問題の対策にならないことがある。従来のシンクロナイザ自動挿入方法では、例えばこのようにシンクロナイザを挿入してもメタステーブル問題の対策にならない箇所にも全てシンクロナイザが挿入されてしまい、データ転送回路の面積が大きくなってしまうという問題点があった。
【０００５】
従来においても、このようにシンクロナイザを挿入してもメタステーブル問題の対策とならない非同期データ転送パスについては、例えば設計者が、シンクロナイザ挿入の可否を判定する方法もあったが、このような場合には非同期データ転送パスとして検出される膨大な数の全てのパスを対象としてシンクロナイザ挿入の可否を判定する必要があり、工数が大きくなり、また設計者の判定ミスの発生確率も大きくなってしまうという問題点があった。
【０００６】
このような非同期データ転送方式やメタステーブル問題解決のための従来技術として特許文献１から特許文献３がある。特許文献１では、全てが立ち上がりで動作するフリップ・フロップのみで、最小構成の非同期信号同期化回路を提供する技術が開示されている。
【０００７】
特許文献２では、異なるクロック周波数で動作している２回路間のデータ転送において、転送先でのデータ取り込みの有無をデータ転送基準信号によってデータ転送元が認識す
ることによって、１つのデータ転送にかかるオーバーヘッドを少なくするデータ転送方法が開示されている。
【０００８】
特許文献３では、ＣＰＵがマクロ回路からマクロデータを読み込む場合に、少ないリードクロック数で読込みを完了することができ、マルチビットに対応するメタステーブル回避機能をもったバスインターフェース回路が開示されている。
【０００９】
しかしながらこのような従来技術を用いても、非同期データ転送パスにシンクロナイザを挿入すべきか否かを自動的に判定し、挿入すべきパスにのみシンクロナイザを挿入することはできないという問題点を解決することができなかった。
【特許文献１】特開平１０−１３５９３８号公報  「非同期信号同期化回路」
【特許文献２】特開平１１−１６１５９９号公報  「データ転送方法」
【特許文献３】特開２００６−２３６０６０号公報  「バスインターフェース回路」
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の課題は、上述の問題点に鑑み、膨大な数の非同期データ転送パスのうちで、シンクロナイザ挿入がメタステーブル問題の対策とならないパスを自動的に判定し、そのようなパスを除いて自動的にシンクロナイザの挿入を行うことである。
【課題を解決するための手段】
【００１１】
本発明のシンクロナイザ自動挿入方法においては、まず第１ステップとして非同期未対策パスのデータを記憶する。すなわち一定のクロック周波数で動作しているデータ転送元から、その一定のクロック周波数と異なるクロック周波数で動作しているデータ転送先へのデータパスとしての非同期（クロック）データ転送パスのうちで、非同期クロックが原因となるメタステーブル問題に対する対策が行われていない非同期（クロック）未対策パスのデータを記憶する。
【００１２】
第２ステップとして記憶されている非同期未対策パスのうちで、その未対策パスにシンクロナイザを挿入してもメタステーブル問題への対策とならないシンクロナイザ挿入不要パスを判定し、例えば第１ステップで非同期未対策パスのデータを記憶しているメモリからそのパスのデータを削除する。
【００１３】
最後に第３ステップとしてシンクロナイザ挿入不要パス以外の、例えばメモリに削除されずに残っている非同期未対策パスに対してシンクロナイザを挿入する。
本発明のシンクロナイザ自動挿入装置は、以上のシンクロナイザ自動挿入方法を実現するための装置である。
【００１４】
以上のように本発明によれば、非同期（クロック）データ転送パスのうちで、シンクロナイザを挿入してもメタステーブル問題の対策にならないシンクロナイザ挿入不要パスを自動的に判定し、それ以外の非同期未対策パスの全てに対してシンクロナイザが自動的に挿入されることになる。
【発明の効果】
【００１５】
本発明によれば、膨大な数の非同期データ転送パスのうちで、シンクロナイザを挿入してもメタステーブル問題の対策にならないパスが自動的に判定される。それ以外のパスに対してはシンクロナイザの挿入が自動的に行われるため、例えば設計者がシンクロナイザ挿入不要パスの判定を行う場合に比べて、設計者によるミスの発生確率が大幅に減少し、また工数も大幅に削減することが可能となる。
【発明を実施するための最良の形態】
【００１６】
図１は、本実施形態におけるシンクロナイザ自動挿入方法の基本的な機能ブロック図である。同図はデータ転送元のクロック信号とデータ転送先のクロック信号との周波数が異なる非同期クロックデータ転送系、例えば２つの装置の間、２つの回路の間、あるいは２つのＬＳＩチップの間などにおけるデータ転送系において、データ転送パスのうちでシンクロナイザを挿入すべきパスを自動的に判定して、そのパスにシンクロナイザを挿入するためのシンクロナイザ自動挿入方法の機能ブロック図である。
【００１７】
図１において、まずステップＳ１で、データ転送元におけるクロック周波数と異なるクロック周波数で動作しているデータ転送先へのデータパスとしての非同期データ転送パスのうちで、非同期クロックに対する対策（メタステーブル問題への対策）が行われていない非同期未対策パスのデータが記憶され、ステップＳ２で記憶されている非同期未対策パスのうちで、その未対策パスにシンクロナイザを挿入しても非同期クロック対策、すなわちメタステーブル問題の対策とならないシンクロナイザ挿入不要パスが判定され、ステップＳ３でそのシンクロナイザ挿入不要パスを除いて、非同期未対策パスへのシンクロナイザ自動挿入が行われる。
【００１８】
図２は、本実施形態においてシンクロナイザ自動挿入装置として使用されるコンピュータシステムの一般的な構成ブロック図である。同図においてコンピュータシステムは、中央処理装置（ＣＰＵ）１、リード・オンリー・メモリ（ＲＯＭ）２、ランダム・アクセス・メモリ（ＲＡＭ）３、必要に応じて外部との通信を行うための通信インターフェース４、各種のデータを記憶するための記憶装置５、入出力装置６、およびこれらの全てを接続するためのバス７によって構成されている。
【００１９】
図３は、本実施形態におけるシンクロナイザ自動挿入装置の機能的な構成ブロック図である。同図においてシンクロナイザ自動挿入装置１０は、基本的な構成要素としてクロック定義ファイル・ＨＤＬ読込み部１１、非同期データ転送パス抽出部１２、シンクロナイザ挿入要否判定部１３、およびシンクロナイザ挿入部１４を備えている。
【００２０】
クロック定義ファイル・ＨＤＬ読込み部１１は、例えばデータ転送元とデータ転送先のクロック信号の周波数などの定義データを格納したクロック定義ファイル１５、およびデータ転送元とデータ転送先を含む回路のデータとしてのハードウェア・デスクリプション・ランゲージ（ＨＤＬ）データ１６とを読み込み、回路情報１７を作成する。回路情報１７にはＨＤＬの回路接続情報とクロック定義情報が格納されており、シンクロナイザ自動挿入装置１０の内部の各構成部が回路接続情報を参照、および更新するために使用される。
【００２１】
非同期データ転送パス抽出部１２は、回路情報１７を用いてデータ転送元とデータ転送先の間の非同期データ転送パスを抽出し、非同期データ転送パス情報テーブル１８にそのパスのデータを設定する。ここでクロック定義ファイル１５、ＨＤＬデータ１６は、図２の、例えば記憶装置５に格納されているものとし、また非同期データ転送パス情報テーブル１８はＲＡＭ３に格納されるものとする。
【００２２】
図４は、非同期データ転送パス情報テーブル１８の格納内容の例である。このテーブルにはそれぞれの非同期未対策パスに対応して、データ転送元の回路モジュールとその端子名、データ転送先の回路モジュールとその端子名が格納されている。ここで回路モジュールは、データ転送元とデータ転送先でそれぞれ階層構造を持っているものとし、例えばＦＦ１はトップの階層の次の階層を、ＦＦ２はさらにその下の階層を表わすものとし、図４のテーブルの第１行は、データ転送元のＦＦ１の出力端子Ｑと、データ転送先のＦＦ２のデータ入力端子Ｄとの間のパスが非同期未対策バスとなっていることを示している。
【００２３】
図３に戻り、シンクロナイザ挿入要否判定部１３は、非同期データ転送パス情報テーブル１８に設定されているそれぞれのパスに対して、回路情報１７を用いてシンクロナイザの挿入の必要があるか否かを判定し、シンクロナイザを挿入すべきパスを示すシンクロナイザ挿入テーブル１９を作成する。このシンクロナイザ挿入テーブルも、例えば図２のＲＡＭ３に格納される。
【００２４】
図５は、シンクロナイザ挿入テーブル１９に格納されるデータの例である。同図において挿入場所はデータ転送先、すなわち受信側のモジュールにおける非同期データ転送パスの接続端子名であり、シンクロナイザはこの手前に挿入される。図５の第１行は図４の第１行に対応し、受信側のＦＦ２のデータ入力端子の前にシンクロナイザが挿入されることになる。
【００２５】
同期クロック端子名はシンクロナイザとして使用されるＦＦに対するクロック信号を与える端子名であり、ここでは受信側のＦＦ２のクロック端子ＣＫからクロック信号がシンクロナイザを構成するＦＦに与えられることになる。シンクロナイザ用ＦＦ数はシンクロナイザを構成するＦＦの段数である。
【００２６】
図３に戻り、シンクロナイザ挿入部１４は、シンクロナイザ挿入テーブル１９と回路情報１７との内容を用いて、シンクロナイザを挿入すべき非同期データ転送パスに対するシンクロナイザ自動挿入を行い、最終的にシンクロナイザ挿入後のＨＤＬデータ２０を出力する。
【００２７】
図６は、図３のシンクロナイザ挿入要否判定部１３による処理の詳細フローチャートである。同図において処理が開始されると、まずステップＳ１０でメモリパス除外処理、ステップＳ１１で２段セレクタパス除外処理、ステップＳ１２でクリア／プリセットパス除外処理が行われる。これら３つの処理の詳細は後述するが、いずれの処理も図３の非同期データ転送パス情報テーブル１８に格納されているパスのそれぞれに対して、そのパスをシンクロナイザ挿入対象から除外すべきか否かを判定し、除外すべきパスについては非同期データ転送パス情報テーブル１８から削除する処理を行うものである。
【００２８】
これらの３つの処理が終了すると、ステップＳ１３で非同期データ転送パス情報テーブル１８に残っているパスから１つずつパスの読込みが行われ、ステップＳ１４でパスがなくなったか否かが判定され、まだなくなっていないときにはステップＳ１５で読み込まれたパスに対して挿入すべきシンクロナイザを構成するＦＦの段数が決定され、ステップＳ１６でシンクロナイザ挿入テーブル、すなわち図５の内容がセットされ、ステップＳ１３以降の処理が繰り返され、ステップＳ１４で読み込むべきパスがなくなったと判定された時点で処理を終了する。
【００２９】
図７は、図６のステップＳ１０におけるメモリパス除外処理の詳細フローチャートである。同図において処理が開始されると、まずステップＳ２０で非同期データ転送パス情報テーブル１８からパスが１つずつ読み込まれ、ステップＳ２１でパスがなくなったか否かが判定され、なくなっていない場合にはステップＳ２２で、データ転送先のデータ受け側のＦＦが、後述するようにＦＦの２次元配列を構成するＦＦであるか否かが判定される。その判定結果がＮｏのときには直ちに、ＹｅｓのときにはステップＳ２３で該当のパスが非同期データ転送パス情報テーブル１８から削除された後にステップＳ２０以降の処理が繰り返され、ステップＳ２１で読み込むべきパスがなくなったと判定されると処理を終了する。
【００３０】
図８は、２段セレクタパス除外処理の詳細フローチャートである。この処理においては
、データの転送先、すなわち受信側のＦＦの入力先、または出力先をトレースし、セレクタを２段経由するか、特に２段のセレクタの制御端子を経由するかを判定し、経由する場合に非同期データ転送パス情報テーブル１８からそのパスを削除することを基本として、処理が行われる。
【００３１】
処理が開始されると、まずステップＳ２５で非同期データ転送パス情報テーブル１８から１つずつパスが読み込まれ、ステップＳ２６で読み込むべきパスがなくなったか否かが判定され、なくなっていないときにはステップＳ２７でデータ転送先、すなわち受信側のＦＦ、例えば非同期データ転送パスが接続されたＦＦの入力先としての非同期データ転送パスの一部がトレースされる。ステップＳ２８で受信側ＦＦへの入力信号がセレクタを経由しているか否かが判定され、経由している場合にはステップＳ２９でそのセレクタの制御端子、すなわち制御信号入力端子がトレースされ、ステップＳ３０でその制御信号入力端子への入力信号が他のセレクタの制御端子を通過しているか否かが判定され、通過している場合にはステップＳ３１で非同期データ転送パス情報テーブル１８からそのパスが削除された後に、通過していない時には直ちにステップＳ２５以降の処理が繰り返される。
【００３２】
ステップＳ２８で受信側ＦＦへの入力信号がセレクタを経由していないと判定されると、ステップＳ３２でそのＦＦの信号出力先がトレースされ、ステップＳ３３でそのＦＦの出力信号がセレクタの制御端子を経由するか否かが判定される。経由する場合にはそのセレクタの信号出力先がトレースされ、ステップＳ３５でその出力信号が他のセレクタの制御端子を通過するか否かが判定される。通過する場合にはさらにそのセレクタの信号出力先がトレースされ、ステップＳ３７でその出力信号が前述の受信側ＦＦと異なるＦＦに接続されているか否かが判定される。接続されている場合には非同期データ転送パス情報テーブル１８からそのパスが削除された後に、またステップＳ３３でセレクタの制御端子を経由しない場合、ステップＳ３５でセレクタの制御端子を通過しない場合、およびステップＳ３７で他のＦＦに接続されていない場合には、直ちにステップＳ２５からの処理が繰り返され、ステップＳ２６で読み込むべきパスがなくなったと判定されると処理を終了する。
【００３３】
なお、このようにセレクタを２段経由する非同期データ転送パスは、そもそも回路構成として不適切であり、回路構成を変更する必要がある。シンクロナイザ挿入をメタステーブル問題の対策とすることは不適切であるために、このようなパスは非同期データ転送パス情報テーブル１８から削除されることになる。
【００３４】
図９は、クリア／プリセットパス除外処理の詳細フローチャートである。処理が開始されると、まずステップＳ４０で非同期データ転送パス情報テーブル１８から１つずつパスが読み込まれ、ステップＳ４１でパスがなくなったか否かが判定され、なくなっていない場合にはステップＳ４２で受信側ＦＦの信号出力先がトレースされる。ステップＳ４３でその信号が他のＦＦのクリア端子、またはプリセット端子に到達するか否かが判定され、到達する場合にはステップＳ４４でそのパスがテーブル１８から削除された後に、到達していない場合には直ちにステップＳ４０からの処理が繰り返され、ステップＳ４１でパスがなくなったと判定された時点で処理を終了する。なお、このようにクリア端子、またはプリセット端子に受信側ＦＦの出力信号が到達する場合には、例えば受信側のクロックＲＣＬＫを送信側のクロックＴＣＬＫの分周信号とする必要があり、非同期データ転送パスにシンクロナイザを挿入することは不必要となる。
【００３５】
以下図１０から図１７を用いてシンクロナイザ挿入の必要性の判定の具体例について説明する。図１０は、非同期データ転送パスの一例である。同図において送信側でクロックＴＣＬＫによって動作するＦＦ３０と、受信側でクロックＲＣＬＫで動作するＦＦ３１との間のパスが非同期データ転送パス３２となっている。
【００３６】
図１１は、図１０の非同期データ転送パス３２に対するシンクロナイザモジュールの挿入例である。図１０の非同期データ転送パス３２に対しては、図６のＳ１０からＳ１２における３つのパス除外処理のいずれにおいても非同期データ転送パス情報テーブル１８からの削除が行われず、その結果、この非同期データ転送パス３２に対してシンクロナイザモジュール３３が挿入される。ここでこのモジュールを構成するＦＦの段数は２段となっているが、この段数の決定については後述する。
【００３７】
図１２は、シンクロナイザ挿入要否判定の対象となるパスの異なる具体例である。同図においては、クロックＴＣＬＫで動作する送信側のＦＦ３５と、クロックＲＣＬＫで動作する受信側のＦＦ３６の前段にあるセレクタ３８の制御信号入力端子Ｓまでのパス３７が、シンクロナイザの挿入要否の判定となる非同期データ転送パスである。なお、送信側のＦＦ４０から受信側のセレクタ３８のデータ入力端子Ｄ１までのパスは、送信側から受信側にデータが送られるパスであり、このデータパスに対してはその制御側のパス、すなわちパス３７側の制御データが先に確定していることが普通であり、この制御側のパス３７にシンクロナイザを挿入するか否かを決定することがメタステーブル問題の解消に有効であり、このパス３７に対してシンクロナイザを挿入すべきか否かが判定される。
【００３８】
図１３は、図１２の非同期データ転送パス３７に対するシンクロナイザモジュールの挿入の説明図である。まず図７のメモリパス除外処理において、ステップＳ２２でデータの受け側ＦＦ３６が２次元配列でないと判定され、次に図８のセレクタ２段パス除外処理において、ステップＳ２８で受け側ＦＦ３６の入力先がセレクタ３８を経由すると判定されるが、ステップＳ３０で他のセレクタの制御端子を通過しないと判定される。さらに図９のクリア／プリセットパス除外処理において、ステップＳ４３で受け側ＦＦ３６の出力が他のＦＦのクリア／プリセット端子に到達しないと判定され、その結果非同期データ転送パス３７は、非同期データ転送パス情報テーブル１８から削除されることなく、図１３に示すようにシンクロナイザモジュール３３がこのパスに挿入される。
【００３９】
図１４は、メモリパス除外処理の対象となる回路の具体例の説明図である。同図においてはそれぞれ送信側でクロックＴＣＬＫで動作する２つのＦＦ４３、４４と、受信側でクロックＲＣＬＫで動作する２つのＦＦ４６、４７とがそれぞれ接続され、点線の矢印で示すように、ＦＦ４３の出力はＦＦ４７のデータ入力端子に与えられ、またＦＦ４４の出力は、ＦＦ４６のイネーブル端子に与えられている。
【００４０】
ここで受信側のＦＦ４６、４７は、ＦＦの２次元配列を構成している。この２次元配列のＦＦによって、通常のＲＡＭなどのメモリ構造が表わされる。２次元配列の行を示すのがアドレスであり、列を示すのがデータとなる。ＲＡＭなどのメモリにアクセスする信号は、全て単一クロックに基づいて動作しなければ、アクセスの正常動作が行われない、またアドレス、データ、イネーブルの各信号は予め意図した組合せで同期して変化しなければ意図したアドレスにデータの読み書きを行うことはできない。
【００４１】
例えば非同期データ転送パスがアドレスの転送パスである場合には、そこにシンクロナイザが挿入されても、データやイネーブルの信号とのタイミングにずれが生じれば、正しい動作は行われないため、アドレス以外のデータのタイミングも考慮した回路の修正が必要となる。
【００４２】
すなわち受信側ＦＦが２次元配列の場合には、メタステーブル問題の対策としてはシンクロナイザの挿入を行うのではなく、クロックの同期、すなわち送信側のクロックＴＣＬＫと受信側のクロックＲＣＬＫとを同一とすることが必要である。したがって図７のステップＳ２２で説明したように、データの受け側ＦＦが２次元配列を構成するＦＦである場
合には、その非同期データ転送パスは非同期データ転送パス情報テーブル１８から削除されてシンクロナイザ挿入の対象からはずされる。
【００４３】
図１５は、図８のセレクタ２段パス除外処理の対象となる非同期データ転送パスの具体例である。同図においては、送信側ＦＦ５０と受信側ＦＦ５１との間のデータ転送パス上に、２つのセレクタ５２、５３が存在する。
【００４４】
図８のステップＳ２７で、受信側ＦＦ５１の入力先が、点線の矢印で示すようにトレースされ、ステップＳ２８でセレクタ５２を経由することが判定され、さらにステップＳ３０で他のセレクタ５３の制御端子を通過することが判定される。その結果、この非同期データ転送パス、すなわち受け側ＦＦ５１の手前へのシンクロナイザ挿入は行われない。
【００４５】
図１６は、図８のセレクタ２段パス除外処理の対象となる別の非同期データ転送パスの例である。この例では、送信側ＦＦ５５と受信側ＦＦ５６との間のパスが非同期データ転送パスであるが、図８のステップＳ２８で受信側ＦＦ５６の入力先にセレクタが存在しないと判定されるため、ステップＳ３２でこのＦＦ５６の信号出力先が点線で示すようにトレースされ、ステップＳ３３でセレクタ５７の制御端子を経由すると判定される。このセレクタ５７の信号出力先がステップＳ３５で他のセレクタ５８の制御端子を通過すると判定され、さらにこのセレクタ５８の出力先がステップＳ３７でＦＦ５９に接続されていることが判定され、ステップＳ３１で非同期データ転送パス情報テーブル１８から対象の非同期データ転送パスが削除され、結果としてこのパスにはシンクロナイザの挿入は行われない。
【００４６】
図１７は、図９のクリア／プリセットパス除外処理の対象となる非同期データ転送パスの例である。この例では受信側ＦＦ６２の出力先が図９のステップＳ４２でトレースされ、ＦＦ６３のクリア端子にその信号が到達することがステップＳ４３で判定されて、対象となる非同期データ転送パス６４、すなわち受信側ＦＦ６２の手前にはシンクロナイザの挿入は行われない。
【００４７】
図１８は、図３のシンクロナイザ挿入部１４による処理の詳細フローチャートである。同図において処理が開始されると、ステップＳ５０でシンクロナイザ挿入テーブル１９、すなわち図５の各行について、挿入場所としての非同期データ転送パスの受信側のモジュールの入力端子名が取得され、ステップＳ５１で挿入場所がなくなったか否かが判定され、なくなっていない場合には、ステップＳ５２で挿入場所に対応するシンクロナイザ用ＦＦの段数が、後述するように送信側クロックと受信側クロックの周波数によって決定され、ステップＳ５３で挿入場所にシンクロナイザモジュール、すなわちＦＦのデータ入力、および出力端子が接続され、回路情報１７が変更され、ステップＳ５４でシンクロナイザモジュールのＦＦのクロック端子と図５の同期クロック端子とが接続され、回路情報１７が変更された後にステップＳ５０からの処理が繰り返され、ステップＳ５１で挿入場所がなくなったと判定されると、ステップＳ５５で変更された回路情報がシンクロナイザ挿入後のＨＤＬデータ２０として出力され、処理を終了する。
【００４８】
最後に非同期データ転送パスに挿入されるシンクロナイザモジュールを構成するＦＦの段数決定方法について説明する。このＦＦの段数は、本実施形態では受信側ＦＦに対するクロックＲＣＬＫの周波数と、送信側ＦＦに対するクロックＴＣＬＫの周波数の比を基として計算することにし、この比の値が２以上の場合は小数点以下を切り捨てて整数の値とし、計算結果が２以下の場合は、データ転送を確実にする観点から段数を２とすることとする。
【００４９】
例えばＴＣＬＫ＝１００ＭＨｚ、ＲＣＬＫ＝１５０ＭＨｚの場合、この比は１．５とな
り、ＦＦの段数は２となる。
逆にＴＣＬＫ＝１５０ＭＨｚ、ＲＣＬＫ＝１００ＭＨｚの場合はこの比は０．６６６となり、ＦＦの段数は２となる。
【００５０】
次にＴＣＬＫ１００ＭＨｚ、ＲＣＬＫ＝３３０ＭＨｚの場合にはこの比は３．３となり、小数点以下を切り捨てることによって、ＦＦの段数は３となる。
さらに逆にＴＣＬＫ＝３３０ＭＨｚ、ＴＣＬＫ＝１００ＭＨｚの場合にはこの比は０．３０３０となり、その結果としてＦＦの段数は２となる。
【図面の簡単な説明】
【００５１】
【図１】シンクロナイザ自動挿入方法の基本的な機能ブロック図である。
【図２】本実施形態においてシンクロナイザ自動挿入を行う計算機の構成ブロック図である。
【図３】シンクロナイザ自動挿入装置の構成ブロック図である。
【図４】非同期データ転送パス情報テーブルの格納内容の例である。
【図５】シンクロナイザ挿入テーブルの格納内容の例である。
【図６】シンクロナイザ挿入要否判定部の処理フローチャートである。
【図７】メモリパス除外処理の詳細フローチャートである。
【図８】セレクタ２段パス除外処理の詳細フローチャートである。
【図９】クリア／プリセットパス除外処理の詳細フローチャートである。
【図１０】シンクロナイザ挿入要否判定対象となる非同期データ転送パスの例である。
【図１１】図１０の非同期データ転送パスに対するシンクロナイザモジュールの挿入を説明する図である。
【図１２】シンクロナイザ挿入要否判定対象となる非同期データ転送パスの他の例を示す図である。
【図１３】図１２の非同期データ転送パスに対するシンクロナイザ挿入の説明図である。
【図１４】メモリパス除外処理の対象となる回路の具体例の説明図である。
【図１５】セレクタ２段パス除外処理の対象となる回路の具体例の説明図である。
【図１６】セレクタ２段パス除外処理の対象となる回路の異なる具体例の説明図である。
【図１７】クリア／プリセットパス除外処理の対象となる回路の具体例の説明図である。
【図１８】シンクロナイザ挿入部の処理フローチャートである。
【符号の説明】
【００５２】
１  中央処理装置（ＣＰＵ）
２  リード・オンリ・メモリ（ＲＯＭ）
３  ランダム・アクセス・メモリ（ＲＡＭ）
４  通信インターフェース
５  記憶装置
６  入出力装置
７  バス
１０  シンクロナイザ自動挿入装置
１１  クロック定義ファイル・ＨＤＬ読込み部
１２  非同期データ転送パス抽出部
１３  シンクロナイザ挿入要否判定部
１４  シンクロナイザ挿入部
１５  クロック定義ファイル
１６  ＨＤＬデータ
１７  回路情報
１８  非同期データ転送パス情報テーブル
１９  シンクロナイザ挿入テーブル
２０  シンクロナイザ挿入後のＨＤＬデータ
【図１】
2009037384.tif 000003
【図２】
2009037384.tif 000004
【図３】
2009037384.tif 000005
【図４】
2009037384.tif 000006
【図５】
2009037384.tif 000007
【図６】
2009037384.tif 000008
【図７】
2009037384.tif 000009
【図８】
2009037384.tif 000010
【図９】
2009037384.tif 000011
【図１０】
2009037384.tif 000012
【図１１】
2009037384.tif 000013
【図１２】
2009037384.tif 000014
【図１３】
2009037384.tif 000015
【図１４】
2009037384.tif 000016
【図１５】
2009037384.tif 000017
【図１６】
2009037384.tif 000018
【図１７】
2009037384.tif 000019
【図１８】
2009037384.tif 000020