(57)【要約】【課題】非同期クロック間のデータ転送で発生するメタステーブルを速やかに収束させることが可能な半導体装置を提供すること。【解決手段】一実施の形態によれば、半導体装置は、データＤ１をクロック信号ＣＬＫ１に同期して取り込み出力する第１フリップフロップ１１と、第１フリップフロップ１１から出力されたデータＤ２をクロック信号ＣＬＫ１と非同期のクロック信号ＣＬＫ２に同期して取り込み出力する第２フリップフロップ２１と、を備え、第２フリップフロップ２１は、クロック信号ＣＬＫ２に同期して取り込んだデータを、反転出力するインバータ２１２と、インバータ２１２の出力を反転させてインバータ２１２の入力に帰還する、第１フリップフロップ１１に設けられたクロックドインバータ１１３よりもゲインの大きなクロックドインバータ２１３と、を有する。【選択図】図４
2014087008.tif 000002
【特許請求の範囲】
【請求項１】
データを第１クロックに同期して取り込み出力する第１フリップフロップと、
前記第１フリップフロップから出力されたデータを前記第１クロックと非同期の第２クロックに同期して取り込み出力する第２フリップフロップと、を備え、
前記第１フリップフロップは、
第１マスターラッチ及び第１スレーブラッチを有し、
前記第１マスターラッチは、
前記第１クロックに同期して取り込んだデータを、反転出力する第１インバータと、
前記第１インバータの出力を反転させて当該第１インバータの入力に帰還する第１帰還回路と、を有し、
前記第２フリップフロップは、
第２マスターラッチ及び第２スレーブラッチを有し、
前記第２マスターラッチは、
前記第２クロックに同期して取り込んだデータを、反転出力する第２インバータと、
前記第２インバータの出力を反転させて当該第２インバータの入力に帰還する、前記第１帰還回路よりもゲインの大きな第２帰還回路と、を有する、半導体装置。
【請求項２】
前記第１帰還回路は、第３インバータであって、
前記第２帰還回路は、前記第３インバータよりサイズの大きな第４インバータである、請求項１に記載の半導体装置。
【請求項３】
前記第１帰還回路は、第３インバータであって、
前記第２帰還回路は、
前記第２インバータの出力を増幅するバッファと、
前記バッファの出力を反転出力する第４インバータと、を有する、請求項１に記載の半導体装置。
【請求項４】
前記第２フリップフロップから出力されたデータを前記第２クロックに同期して取り込み出力する、前記第１フリップフロップと同一構成の第３フリップフロップをさらに備えた、請求項１に記載の半導体装置。
【請求項５】
前記第２フリップフロップから出力されたデータを前記第２クロックに同期して取り込み出力する、前記第２フリップフロップと同一構成の第３フリップフロップをさらに備えた、請求項１に記載の半導体装置。
【請求項６】
クロック信号に同期して取り込んだデータを反転出力する第１インバータ及び前記第１インバータの出力を反転させて当該第１インバータの入力に帰還する第１帰還回路を有する第１マスターラッチと、第１スレーブラッチと、からなる第１フリップフロップと、
クロック信号に同期して取り込んだデータを反転出力する第２インバータ及び前記第２インバータの出力を反転させて当該第２インバータの入力に帰還する前記第１帰還回路よりもゲインの大きな第２帰還回路を有する第２マスターラッチと、第２スレーブラッチと、からなる第２フリップフロップと、を用いた半導体装置の設計方法であって、
論理合成時において、
ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、
前記複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、前記第２フリップフロップに変換し、
それ以外のレジスタ記述を前記第１フリップフロップに変換する、半導体装置の設計方法。
【請求項７】
論理合成時において、
ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、
前記複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、共通の前記クロック信号に同期して動作する縦続接続された２つの前記第２フリップフロップに変換し、
それ以外のレジスタ記述を前記第１フリップフロップに変換する、請求項６に記載の半導体装置の設計方法。
【請求項８】
論理合成時において、
ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、
前記複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、共通の前記クロック信号に同期して動作する縦続接続された前記第２及び前記第１フリップフロップに変換し、
それ以外のレジスタ記述を前記第１フリップフロップに変換する、請求項６に記載の半導体装置の設計方法。
【請求項９】
クロック信号に同期して取り込んだデータを反転出力する第１インバータ及び前記第１インバータの出力を反転させて当該第１インバータの入力に帰還する第１帰還回路を有する第１マスターラッチと、第１スレーブラッチと、からなる第１フリップフロップと、
クロック信号に同期して取り込んだデータを反転出力する第２インバータ及び前記第２インバータの出力を反転させて当該第２インバータの入力に帰還する前記第１帰還回路よりもゲインの大きな第２帰還回路を有する第２マスターラッチと、第２スレーブラッチと、からなる第２フリップフロップと、を用いた半導体装置の設計方法であって、
論理合成時において、
ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、
前記複数のレジスタ記述のそれぞれを前記第１フリップフロップに変換し、
複数の前記第１フリップフロップのうち送信側フリップフロップとは異なるクロック信号に同期して動作する受信側フリップフロップを、前記第２フリップフロップに置き換える、半導体装置の設計方法。
【請求項１０】
論理合成時において、
ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、
前記複数のレジスタ記述のそれぞれを前記第１フリップフロップに変換し、
複数の前記第１フリップフロップのうち送信側フリップフロップとは異なるクロック信号に同期して動作する受信側フリップフロップを、共通の前記クロック信号に同期して動作する縦続接続された２つの前記第２フリップフロップに置き換える、請求項９に記載の半導体装置の設計方法。
【請求項１１】
論理合成時において、
ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、
前記複数のレジスタ記述のそれぞれを前記第１フリップフロップに変換し、
複数の前記第１フリップフロップのうち送信側フリップフロップとは異なるクロック信号に同期して動作する受信側フリップフロップを、共通の前記クロック信号に同期して動作する縦続接続された前記第２及び前記第１フリップフロップに置き換える、請求項９に記載の半導体装置の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、例えば非同期クロック間のデータ転送で発生するメタステーブルの抑制に適した半導体装置及びその設計方法に関する。
【背景技術】
【０００２】
非同期クロック間のデータ転送では、受信側フリップフロップの出力が発振したり不定値を示したりするメタステーブルが発生する可能性がある。このメタステーブルは一定期間経過すると収束するが、高周波数化及び低電圧化した近年の半導体装置では、高い信頼性を確保するため、できるだけ速くメタステーブルを収束させることが求められている。
【０００３】
ところで、特許文献１には、クロックパルスに同期して入力信号に対応したレベルの信号を出力する論理回路と、この論理回路の出力信号が供給される第１のインバータ回路と、クロックパルスの反転信号に同期して第１のインバータ回路の出力信号に対応したレベルの信号を出力し、その出力信号が第１のインバータ回路の入力端子に伝えられる第２のインバータ回路と、第１及び第２のインバータ回路で構成された正帰還ループ内に直列形態に挿入された遅延手段と、を備えたフリップフロップが開示されている。このフリップフロップは、第１及び第２のインバータ回路及び遅延手段で構成された正帰還ループでの信号伝送遅延時間をクロックパルスの不定レベル遷移時間より大きくしている。
【０００４】
また、特許文献２には、データ入力信号をクロックパルスのタイミングでラッチし出力データ信号として後段回路に出力する少なくとも１つのＤ型フリップフロップを含む回路装置において、データ入力信号の所定の状態変化を検出して、上記Ｄ型フリップフロップに供給されるクロックパルスの出力タイミングを所定時間遅延させる同期化回路を備えたＤ型フリップフロップ回路装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭５７−１６０２１４号公報
【特許文献２】特開２００２−３００００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したように、高周波数化及び低電圧化した近年の半導体装置では、非同期クロック間のデータ転送で発生するメタステーブルをできるだけ速く収束させることが求められている。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、第１クロックに同期してデータを取り込み出力する第１フリップフロップと、前記第１クロックと非同期の第２クロックに同期して前記第１フリップフロップから出力されたデータを取り込み出力する第２フリップフロップと、を備え、前記第２フリップフロップは、前記第２クロックに同期して取り込んだデータを、反転出力する第２インバータと、前記第２インバータの出力を反転させて前記第２インバータの入力に帰還する、前記第１フリップフロップに設けられた第１帰還回路よりもゲインの大きな第２帰還回路と、を有する。
【０００８】
一実施の形態によれば、半導体装置の設計方法は、論理合成時において、ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、前記複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、第２フリップフロップに変換し、それ以外のレジスタ記述を第１フリップフロップに変換する。
【０００９】
一実施の形態によれば、半導体装置の設計方法は、論理合成時において、ＲＴＬ記述からフリップフロップに相当する複数のレジスタ記述を抽出し、前記複数のレジスタ記述のそれぞれを第１フリップフロップに変換し、複数の前記第１フリップフロップのうち送信側フリップフロップとは異なるクロック信号に同期して動作する受信側フリップフロップを、第２フリップフロップに置き換える。
【００１０】
なお、上記実施の形態の装置を方法やシステムに置き換えて表現したもの、該装置または該装置の一部の処理をコンピュータに実行せしめるプログラム、該装置を備えた撮像装置なども、本発明の態様としては有効である。
【発明の効果】
【００１１】
前記一実施の形態によれば、非同期クロック間のデータ転送で発生するメタステーブルを速やかに収束させることが可能な半導体装置及びその設計方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる半導体装置１の構成例を示す図である。
【図２】第１フリップフロップの具体的構成例を示す回路図である。
【図３】クロックドインバータの具体的構成例を示す回路図である。
【図４】第２フリップフロップの第１の具体的構成例を示す回路図である。
【図５】第２フリップフロップの第２の具体的構成例を示す回路図である。
【図６】図２に示す第１フリップフロップの一部のレイアウト構成例を示す図である。
【図７】図５に示す第２フリップフロップの一部のレイアウト構成例を示す図である。
【図８】比較例の受信側フリップフロップの動作を示すタイミングチャートである。
【図９】比較例の受信側フリップフロップの動作を示すタイミングチャートである。
【図１０】実施の形態１にかかる受信側フリップフロップの動作を示すタイミングチャートである。
【図１１】実施の形態２にかかる半導体装置２の構成例を示す図である。
【図１２】実施の形態３にかかる半導体装置３の構成例を示す図である。
【図１３】実施の形態４にかかる半導体装置の第１の論理合成フローを示す図である。
【図１４】実施の形態４にかかる半導体装置の第２の論理合成フローを示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しつつ、実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として実施の形態の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１４】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１５】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１６】
＜実施の形態１＞
図１は、実施の形態１にかかる半導体装置１の構成例を示す図である。本実施の形態にかかる半導体装置１は、非同期回路として、データを第１クロックに同期して取り込み出力する第１フリップフロップと、第１フリップフロップから出力されたデータを第１クロックと非同期の第２クロックに同期して取り込み出力する第２フリップフロップと、を備える。第２フリップフロップは、第２クロックに同期して取り込んだデータを、反転出力する第２インバータと、第２インバータの出力を反転させて第２インバータの入力に帰還する、第１フリップフロップに設けられた第１帰還回路よりもゲイン（増幅率）の大きな第２帰還回路と、を有する。それにより、本実施の形態にかかる半導体装置１は、非同期クロック間のデータ転送で発生するメタステーブルを速やかに収束させることができる。以下、具体的に説明する。
【００１７】
図１に示す半導体装置１は、マスタースレーブ方式の第１フリップフロップ１１と、マスタースレーブ方式の第２フリップフロップ２１と、を備える。なお、実際には、半導体装置１は、複数の第１フリップフロップと、複数の第２フリップフロップと、複数の組合せ回路と、を備えているが、図１には、非同期クロック間のデータパスを形成する一組の第１及び第２フリップフロップのみを図示している。
【００１８】
第１フリップフロップ１１は、クロック信号（第１クロック）ＣＬＫ１に同期してデータＤ１を取り込みデータＤ２として出力する。第２フリップフロップ２１は、クロック信号ＣＬＫ１と非同期のクロック信号（第２クロック）ＣＬＫ２に同期してデータＤ２を取り込みデータＤ３として出力する。
【００１９】
（第１フリップフロップ１１の具体的構成例）
図２は、第１フリップフロップ１１の具体的構成例を示す回路図である。
【００２０】
図２に示す第１フリップフロップ１１は、クロックドインバータ１１１と、インバータ（第１インバータ）１１２と、クロックドインバータ（第１帰還回路；第３インバータ）１１３と、トランスファゲート１１４と、インバータ１１５と、クロックドインバータ１１６と、インバータ１１７〜１２２と、を有する。クロックドインバータ１１１、インバータ１１２及びクロックドインバータ１１３によりマスターラッチ（第１マスターラッチ）が構成される。トランスファゲート１１４、インバータ１１５及びクロックドインバータ１１６によりスレーブラッチ（第１スレーブラッチ）が構成される。
【００２１】
インバータ１２１は、クロック入力端子ＣＬＫに供給されたクロック信号（ここではクロック信号ＣＬＫ１）を反転させてクロック信号ＣＬＫ＿Ｎとして出力する。インバータ１２２は、クロック信号ＣＬＫ＿Ｎを反転させてクロック信号ＣＬＫ＿Ｐとして出力する。
【００２２】
クロックドインバータ１１１は、クロック信号ＣＬＫ＿ＰがＬレベル（及びクロック信号ＣＬＫ＿ＮがＨレベル、以下省略）の場合に、データ入力端子Ｄに供給されたデータ（ここではデータＤ１）の反転信号をノードＮ１に出力する。
【００２３】
インバータ１１２は、ノードＮ１の電圧レベルに応じた信号をノードＮ２に出力する。例えば、ノードＮ１の電圧レベルが閾値電圧Ｖｔ未満である場合、インバータ１１２はＨレベルの信号をノードＮ２に出力し、ノードＮ１の電圧レベルが閾値電圧Ｖｔ以上である場合、インバータ１１２はＬレベルの信号をノードＮ２に出力する。
【００２４】
クロックドインバータ１１３は、クロック信号ＣＬＫ＿ＰがＨレベル（及びクロック信号ＣＬＫ＿ＮがＬレベル、以下省略）の場合に、インバータ１１２の出力信号（ノードＮ２に記憶されたデータ）の反転信号をノードＮ１に出力する（帰還する）。
【００２５】
つまり、クロックドインバータ１１１，１１３及びインバータ１１２により構成されるマスターラッチは、データ入力端子Ｄに供給されるデータをクロック信号ＣＬＫ＿Ｐの立ち上がりに同期して取り込み、クロック信号ＣＬＫ＿Ｐが立ち下がるまで取り込んだデータを記憶する。
【００２６】
トランスファゲート１１４は、クロック信号ＣＬＫ＿ＰがＨレベルの期間中、ノードＮ２に記憶されたデータをノードＮ３に伝搬する。
【００２７】
インバータ１１５は、ノードＮ３の電圧レベルに応じた信号をノードＮ４に出力する。例えば、ノードＮ３の電圧レベルが閾値電圧Ｖｔ未満である場合、インバータ１１５はＨレベルの信号をノードＮ４に出力し、ノードＮ３の電圧レベルが閾値電圧Ｖｔ以上である場合、インバータ１１５はＬレベルの信号をノードＮ４に出力する。
【００２８】
クロックドインバータ１１６は、クロック信号ＣＬＫ＿ＰがＬレベルの場合に、インバータ１１５の出力信号（ノードＮ４に記憶されたデータ）の反転信号をノードＮ３に出力する（帰還する）。
【００２９】
つまり、トランスファゲート１１４、インバータ１１５及びクロックドインバータ１１６により構成されるスレーブラッチは、クロック信号ＣＬＫ＿Ｐの立ち下がりに同期してマスターラッチに記憶されているデータ（ノードＮ２に記憶されているデータ）を取り込み、クロック信号ＣＬＫ＿Ｐが立ち上がるまで取り込んだデータを記憶する。
【００３０】
そして、スレーブラッチに記憶されているデータ（ノードＮ４に記憶されているデータ）は、インバータ１１７〜１１９を介して出力端子Ｑから（ここではデータＤ２として）出力されるとともに、インバータ１１７，１２０を介して出力端子ＱＢから出力される。
【００３１】
このようにして、第１フリップフロップ１１は、クロック信号ＣＬＫ１に同期してデータＤ１を取り込みデータＤ２として出力する。
【００３２】
（クロックドインバータの具体的構成例）
図３は、クロックドインバータ１１３の具体的構成例を示す回路図である。図３に示すクロックドインバータ１１３は、ＰチャネルＭＯＳトランジスタであるトランジスタＭＰ１，ＭＰ２と、ＮチャネルＭＯＳトランジスタであるトランジスタＭＮ１，ＭＮ２と、を有する。
【００３３】
トランジスタＭＰ１，ＭＮ１によりインバータが構成される。トランジスタＭＰ２は、トランジスタＭＰ１，ＭＮ１により構成されるインバータと電源電圧端子ＶＤＤとの間に設けられ、クロック信号ＣＬＫ＿Ｎ（クロック信号ＣＬＫ１の反転信号）に基づいてオンオフが制御される。トランジスタＭＮ２は、トランジスタＭＰ１，ＭＮ１により構成されるインバータと接地電圧端子ＧＮＤとの間に設けられ、クロック信号ＣＬＫ＿Ｐ（クロック信号ＣＬＫ１の正転信号）に基づいてオンオフが制御される。
【００３４】
例えば、クロック信号ＣＬＫ＿ＰがＨレベル、クロック信号ＣＬＫ＿ＮがＬレベルの場合、トランジスタＭＰ２，ＭＮ２は何れもオンする。このとき、クロックドインバータ１１３は、通常のインバータとして動作する。つまり、クロックドインバータ１１３は、入力信号（ＩＮ）の反転信号（ＯＵＴ）を出力する。一方、クロック信号ＣＬＫ＿ＰがＬレベル、クロック信号ＣＬＫ＿ＮがＨレベルの場合、トランジスタＭＰ２，ＭＮ２は何れもオフする。このとき、クロックドインバータ１１３は、入力信号（ＩＮ）に関わらず、出力（ＯＵＴ）をＨｉＺにする。
【００３５】
その他のクロックドインバータの具体的構成については、図３に示すクロックドインバータ１１３の場合と同様であるため、その説明を省略する。なお、クロックドインバータ１１３を含む各クロックドインバータの構成は、図３に示す構成に限られず、同等の動作を実現可能な他の構成に適宜変更可能である。
【００３６】
（第２フリップフロップ２１の第１の具体的構成例）
続いて、図４を参照して、第２フリップフロップ２１の第１の具体的構成例を説明する。図４は、第２フリップフロップ２１の第１の具体的構成例を示す回路図である。
【００３７】
図４に示す第２フリップフロップ２１は、クロックドインバータ２１１と、インバータ（第２インバータ）２１２と、クロックドインバータ（第２帰還回路；第４インバータ）２１３と、トランスファゲート２１４と、インバータ２１５と、クロックドインバータ２１６と、インバータ２１７〜２２２と、を有する。クロックドインバータ２１１、インバータ２１２及びクロックドインバータ２１３によりマスターラッチ（第２マスターラッチ）が構成される。トランスファゲート２１４、インバータ２１５及びクロックドインバータ２１６によりスレーブラッチ（第２スレーブラッチ）が構成される。
【００３８】
なお、クロックドインバータ２１１、インバータ２１２、クロックドインバータ２１３、トランスファゲート２１４、インバータ２１５、クロックドインバータ２１６、及び、インバータ２１７〜２２２は、それぞれ、クロックドインバータ１１１、インバータ１１２、クロックドインバータ１１３、トランスファゲート１１４、インバータ１１５、クロックドインバータ１１６、及び、インバータ１１７〜１２２に対応する。
【００３９】
ここで、クロックドインバータ２１３のトランジスタサイズは、第１フリップフロップ１１に設けられたクロックドインバータ１１３のトランジスタサイズよりも大きい。つまり、クロックドインバータ２１３のゲインは、第１フリップフロップ１１に設けられたクロックドインバータ１１３のゲインよりも大きい。そのため、クロックドインバータ２１３は、クロックドインバータ１１３よりも速やかにノードＮ２の電位に応じたＨレベル又はＬレベルの信号を出力することができる。
【００４０】
それにより、図４に示す第２フリップフロップ２１は、非同期クロック間のデータ転送でメタステーブルが発生しても第１フリップフロップの構成の場合よりも速やかにメタステーブルを収束させることができる。図４に示す第２フリップフロップ２１のその他の構成については、第１フリップフロップ１１の場合と同様であるため、その説明を省略する。
【００４１】
（第２フリップフロップ２１の第２の具体的構成例）
図５は、第２フリップフロップ２１の第２の具体的構成例を示す回路図である。
【００４２】
図５に示す第２フリップフロップ２１は、クロックドインバータ２１１と、インバータ（第２インバータ）２１２と、クロックドインバータ（第４インバータ）２１３と、トランスファゲート２１４と、インバータ２１５と、クロックドインバータ２１６と、インバータ２１７〜２２２と、バッファ２２３と、を有する。
【００４３】
クロックドインバータ２１１、インバータ２１２、クロックドインバータ２１３及びバッファ２２３によりマスターラッチ（第２マスターラッチ）が構成される。トランスファゲート２１４、インバータ２１５及びクロックドインバータ２１６によりスレーブラッチ（第２スレーブラッチ）が構成される。バッファ２２３及びクロックドインバータ２１３により帰還回路（第２帰還回路）が構成される。
【００４４】
なお、クロックドインバータ２１１、インバータ２１２、クロックドインバータ２１３、トランスファゲート２１４、インバータ２１５、クロックドインバータ２１６、及び、インバータ２１７〜２２２は、それぞれ、クロックドインバータ１１１、インバータ１１２、クロックドインバータ１１３、トランスファゲート１１４、インバータ１１５、クロックドインバータ１１６、及び、インバータ１１７〜１２２に対応する。
【００４５】
図５に示す第２フリップフロップ２１は、インバータ２１２及びクロックドインバータ２１３からなるデータ記憶部の帰還経路上にバッファ２２３を備える。バッファ２２３は、速やかにノードＮ２の電位に応じたＨレベル又はＬレベルの信号を生成し、クロックドインバータ２１３に対して出力する。
【００４６】
それにより、図５に示す第２フリップフロップ２１は、非同期クロック間のデータ転送でメタステーブルが発生しても第１フリップフロップの構成の場合よりも速やかにメタステーブルを収束させることができる。図５に示す第２フリップフロップ２１のその他の構成については、第１フリップフロップ１１の場合と同様であるため、その説明を省略する。
【００４７】
（第１及び第２フリップフロップのレイアウト構成例）
図６は、図２に示す第１フリップフロップ１１のマスターラッチのレイアウト構成例を示す図である。図７は、図５に示す第２フリップフロップ２１のマスターラッチのレイアウト構成例を示す図である。図７に示す第２フリップフロップ２１のレイアウト構成では、図６に示す第１フリップフロップ１１のレイアウト構成と比較して、バッファ２２３がさらに設けられているのがわかる。
【００４８】
（半導体装置１の動作）
続いて、図８〜図１０を参照して、半導体装置１の動作について説明する。図８は、比較例として、受信側フリップフロップ（第２フリップフロップ２１）がクロック信号ＣＬＫ１に同期して動作する場合における当該受信側フリップフロップの動作を示すタイミングチャートである。図９は、比較例として、受信側フリップフロップが第１フリップフロップである場合における当該受信側フリップフロップの動作を示すタイミングチャートである。図１０は、本実施の形態にかかる受信側フリップフロップの動作を示すタイミングチャートである。
【００４９】
まず、図８の比較例では、受信側フリップフロップ（第２フリップフロップ２１）は、送信側フリップフロップ（第１フリップフロップ１１）から出力されたデータＤ２をクロック信号ＣＬＫ１に同期して取り込み、データＤ３として出力する。ここで、同期クロック間のデータ転送では、受信側フリップフロップにメタステーブルが発生する可能性は低い。
【００５０】
次に、図９の比較例では、受信側フリップフロップ（第１フリップフロップ）は、送信側フリップフロップ（第１フリップフロップ１１）から出力されたデータＤ２をクロック信号ＣＬＫ２に同期して取り込み、データＤ３として出力する。ここで、非同期クロック間のデータ転送では、受信側フリップフロップにメタステーブルが発生する可能性がある。具体的には、送信側フリップフロップから受信側フリップフロップへのデータ転送タイミングがタイミング制約（セットアップタイミング制約やホールドタイミング制約）に違反すると、受信側フリップフロップには、出力が発振したり不定値を示したりするメタステーブルが発生する。
【００５１】
さらに、図９の比較例では、メタステーブルが収束する（即ち、出力データＤ３が確定する）までの時間が長い（ここでは、３クロックサイクルを要する）。このような動作では、半導体装置の高い信頼性を確保することができない。
【００５２】
次に、図１０の例では、受信側フリップフロップ（第２フリップフロップ２１）は、送信側フリップフロップ（第１フリップフロップ１１）から出力されたデータＤ２をクロック信号ＣＬＫ２に同期して取り込み、データＤ３として出力する。ここで、非同期クロック間のデータ転送では、図９の比較例の場合と同様に、受信側フリップフロップにメタステーブルが発生する可能性がある。
【００５３】
しかしながら、図１０の例では、受信側フリップフロップ（第２フリップフロップ２１）は、インバータ２１２及びクロックドインバータ２１３からなるデータ記憶部の帰還経路上に設けられた帰還回路のゲインが大きい。そのため、図１０の例では、メタステーブルが収束する（即ち、出力データＤ３が確定する）までの時間が短い（ここでは、１クロックサイクルを要する）。このような動作により、半導体装置の高い信頼性を確保することができる。
【００５４】
このように、本実施の形態にかかる半導体装置１は、非同期回路として、データを第１クロックに同期して取り込み出力する第１フリップフロップと、第１フリップフロップから出力されたデータを第１クロックと非同期の第２クロックに同期して取り込み出力する第２フリップフロップと、を備える。第２フリップフロップは、第２クロックに同期して取り込んだデータを、反転出力する第２インバータと、第２インバータの出力を反転させて第２インバータの入力に帰還する、第１フリップフロップに設けられた第１帰還回路よりもゲイン（増幅率）の大きな第２帰還回路と、を有する。それにより、本実施の形態にかかる半導体装置１は、非同期クロック間のデータ転送で発生するメタステーブルを速やかに収束させることができる。
【００５５】
＜実施の形態２＞
図１１は、実施の形態２にかかる半導体装置２の構成例を示す図である。図１１に示す半導体装置２は、半導体装置１の場合と比較して、第２フリップフロップ２１と同じクロック信号ＣＬＫ２に同期して動作する、第２フリップフロップ２１に縦続接続された第３フリップフロップ１２をさらに備える。
【００５６】
第３フリップフロップ１２は、第１フリップフロップ１１と同一構成であって、第２フリップフロップ２１から出力されたデータＤ３をクロック信号（第２クロック）ＣＬＫ２に同期して取り込み、データＤ３'として出力する。図１１に示す半導体装置２のその他の構成及び動作については、図１に示す半導体装置１の場合と同様であるため、その説明を省略する。
【００５７】
このように、本実施の形態にかかる半導体装置２は、送信側フリップフロップ（１１）とは異なるクロック信号（ＣＬＫ２）で動作する受信側フリップフロップ（２１）の後段に当該受信側フリップフロップ（２１）と同じクロック信号（ＣＬＫ２）で動作する第３フリップフロップ（１２）をさらに備える。それにより、本実施の形態にかかる半導体装置２は、受信側フリップフロップ（２１）に発生するメタステーブルを第３フリップフロップ（１２）でさらに速やかに収束させることができる。
【００５８】
＜実施の形態３＞
図１２は、実施の形態３にかかる半導体装置３の構成例を示す図である。図１２に示す半導体装置３は、半導体装置１の場合と比較して、第２フリップフロップ２１と同じクロック信号ＣＬＫ２に同期して動作する、第２フリップフロップ２１に縦続接続された第３フリップフロップ２２をさらに備える。
【００５９】
第３フリップフロップ２２は、第２フリップフロップ２１と同一構成であって、第２フリップフロップ２１から出力されたデータＤ３をクロック信号（第２クロック）ＣＬＫ２に同期して取り込み、データＤ３'として出力する。図１２に示す半導体装置３のその他の構成及び動作については、図１に示す半導体装置１の場合と同様であるため、その説明を省略する。
【００６０】
このように、本実施の形態にかかる半導体装置３は、送信側フリップフロップ（１１）とは異なるクロック信号（ＣＬＫ２）で動作する受信側フリップフロップ（２１）の後段に当該受信側フリップフロップ（２１）と同じクロック信号（ＣＬＫ２）で動作する第３フリップフロップ（２２）をさらに備える。それにより、本実施の形態にかかる半導体装置３は、受信側フリップフロップ（２１）に発生するメタステーブルを第３フリップフロップ（２２）でさらに速やかに収束させることができる。
【００６１】
＜実施の形態４＞
本実施の形態では、図１３及び図１４を参照して、上記実施の形態にかかる半導体装置の設計方法について説明する。ここでは、代表して半導体装置３の設計方法について説明するが、基本的な流れはどの半導体装置の設計方法でも同じである。
【００６２】
（第１の設計方法）
まず、図１３を参照して、半導体装置３の設計方法の一部である論理合成フローについて説明する。図１３は、半導体装置３の第１の論理合成フローを示す図である。
【００６３】
まず、論理合成ツール等の論理合成手段は、否定回路、論理積回路、順序回路（第１及び第２フリップフロップ含む）等の基本論理回路に関する設計情報が格納されたライブラリ１０１を参照してＲＴＬ記述１００を論理合成し、ネットリスト１０２として出力する（図１３のステップＳ１０１）。
【００６４】
なお、図１３の例では、論理合成手段は、ＲＴＬ記述１００からフリップフロップに相当する複数のレジスタ記述を抽出する。そして、この論理合成手段は、抽出された複数のレジスタ記述のすべてを第１フリップフロップに変換し、ネットリスト１０２として出力する。
【００６５】
特に、この論理合成手段は、抽出された複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、共通のクロック信号に同期して動作する縦続接続された２つの第１フリップフロップに変換し、ネットリスト１０２として出力する（なお、半導体装置１の論理合成ではこの処理は行われない）。
【００６６】
次に、フリップフロップ置換手段は、ネットリスト１０２に含まれる複数の第１フリップフロップのうち、送信側フリップフロップとは異なるクロック信号に同期して動作する受信側フリップフロップ及びそれに縦続接続されたフリップフロップをそれぞれ第１フリップフロップから第２フリップフロップに置き換え、ネットリスト１０３として出力する（図１３のステップＳ１０２）。
【００６７】
このようにして半導体装置３の論理合成が実施される。
【００６８】
図１３の例では、論理合成手段が、抽出された複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、共通のクロック信号に同期して動作する縦続接続された２つの第１フリップフロップに変換する場合を例に説明したが、これに限られない。論理合成手段がこのような処理を行う代わりに、抽出された複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、予め縦続接続された２つのレジスタ記述としてＲＴＬ記述に記載しておいてもよい。
【００６９】
（第２の設計方法）
次に、図１４を参照して、半導体装置３の設計方法の一部である論理合成フローについて説明する。図１４は、半導体装置３の第２の論理合成フローを示す図である。
【００７０】
まず、論理合成ツール等の論理合成手段は、否定回路、論理積回路、順序回路（第１及び第２フリップフロップ含む）等の基本論理回路に関する設計情報が格納されたライブラリ１０１を参照してＲＴＬ記述１００を論理合成し、ネットリスト１０３として出力する（図１４のステップＳ２０１）。
【００７１】
なお、図１４の例では、論理合成手段は、ＲＴＬ記述１００からフリップフロップに相当する複数のレジスタ記述を抽出する。そして、この論理合成手段は、抽出された複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を第２フリップフロップに変換するとともに、それ以外のレジスタ記述を第１フリップフロップに変換して、ネットリスト１０３として出力する。
【００７２】
特に、この論理合成手段は、抽出された複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、共通のクロック信号に同期して動作する縦続接続された２つの第２フリップフロップに変換し、ネットリスト１０３として出力する（なお、半導体装置１の論理合成ではこの処理は行われない）。
【００７３】
このようにして半導体装置３の論理合成が実施される。
【００７４】
図１４の例では、論理合成手段が、抽出された複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、共通のクロック信号に同期して動作する縦続接続された２つの第２フリップフロップに変換する場合を例に説明したが、これに限られない。論理合成手段がこのような処理を行う代わりに、抽出された複数のレジスタ記述のうちデータ送信側のレジスタ記述とは異なるクロック信号に同期して動作するデータ受信側のレジスタ記述を、予め縦続接続された２つのレジスタ記述としてＲＴＬ記述に記載しておいてもよい。
【００７５】
以上のように、上記実施の形態１〜４にかかる半導体装置は、非同期回路として、データを第１クロックに同期して取り込み出力する第１フリップフロップと、第１フリップフロップから出力されたデータを第１クロックと非同期の第２クロックに同期して取り込み出力する第２フリップフロップと、を備える。第２フリップフロップは、第２クロックに同期して取り込んだデータを、反転出力する第２インバータと、第２インバータの出力を反転させて第２インバータの入力に帰還する、第１フリップフロップに設けられた第１帰還回路よりもゲイン（増幅率）の大きな第２帰還回路と、を有する。それにより、上記実施の形態１〜４にかかる半導体装置は、非同期クロック間のデータ転送で発生するメタステーブルを速やかに収束させることができる。
【００７６】
なお、平均故障間隔（ＭＴＢＦ：Mean Time Between Failures）評価により、上記実施の形態１〜４にかかる半導体装置が非同期クロック間のデータ転送で発生するメタステーブルを速やかに収束させたことが確認されている。
【００７７】
上記実施の形態１〜４にかかる半導体装置の構成は、例えば、マイクロコンピュータやデータプロセッサ等のデータ処理用半導体装置に適用される。
【００７８】
また、上記実施の形態１〜４にかかる半導体装置に用いられる第２フリップフロップの構成は、スキャンフリップフロップや非同期セット／リセット付きフリップフロップにも応用可能である。
【００７９】
（関連技術との差異）
特許文献１に開示されたフリップフロップは、正帰還ループ上に遅延回路（Ｄ）を設けて帰還信号を意図的に遅延させることにより、入力信号（ｉｎ）と帰還信号との衝突（レーシング）を防止している。一方、上記実施の形態１〜４にかかる第２フリップフロップは、クロックドインバータ２１３のゲインを大きくしたりバッファ２２３を設けたりして帰還信号を高いゲイン（増幅率）で増幅させることにより、メタステーブルを速やかに収束させている。つまり、上記実施の形態１〜４にかかる第２フリップフロップは、帰還信号を遅延させようとしているのではなく、帰還信号を高いゲインで増幅させようとしているのであり、特許文献１の場合とではその目的及び動作が全く異なる。
【００８０】
また、上記実施の形態１〜４にかかる半導体装置は、非同期クロック間のデータ転送でのみ発生し得るメタステーブルの問題を解決するものであり、特許文献１の場合とではその解決しようとする技術内容が異なる。
【００８１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００８２】
１〜３  半導体装置
１１，１２  第１フリップフロップ
２１，２２  第２フリップフロップ
１００  ＲＴＬ記述
１０１  ライブラリ
１０２，１０３  ネットリスト
１１１，２１１  クロックドインバータ
１１２，２１２  インバータ
１１３，２１３  クロックドインバータ
１１４，２１４  トランスファゲート
１１５，２１５  インバータ
１１６，２１６  クロックドインバータ
１１７〜１２２，２１７〜２２２  インバータ
２２３  バッファ
【図１】
2014087008.tif 000003
【図２】
2014087008.tif 000004
【図３】
2014087008.tif 000005
【図４】
2014087008.tif 000006
【図５】
2014087008.tif 000007
【図６】
2014087008.tif 000008
【図７】
2014087008.tif 000009
【図８】
2014087008.tif 000010
【図９】
2014087008.tif 000011
【図１０】
2014087008.tif 000012
【図１１】
2014087008.tif 000013
【図１２】
2014087008.tif 000014
【図１３】
2014087008.tif 000015
【図１４】
2014087008.tif 000016