(57)【要約】【課題】異なるクロックドメイン間のデータ転送の安定性を損なうことなく、消費電力を抑えることができるハンドシェイク型のデータ転送を行う半導体装置を提供する。【解決手段】データ転送元の第１クロックドメインに属し、クロック信号とは異なるゲート信号がアサートされているとき、入力データを転送データとして出力し、ゲート信号がネゲートされているとき、転送データを保持するラッチ回路と、データ転送先の第２クロックドメインに属し、イネーブル信号及びクロック信号に応答して、ラッチ回路から出力される転送データを保持して出力データとして出力するフリップフロップ回路と、入力データが有効であることを示す信号に基づいて、ゲート信号をパルス状にアサートし、ゲート信号に基づいて、転送データが安定していることを示すイネーブル信号を生成して出力する制御回路とを有する。【選択図】図１
2015149599.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック信号が供給される第１クロックドメインと、
前記第１のクロック信号とは異なる第２のクロック信号が供給される第２クロックドメインとを有し、
前記第１クロックドメインから前記第２クロックドメインへのデータ転送を行う半導体装置であって、
前記第１クロックドメインに属し、前記第１のクロック信号とは異なる第１のゲート信号がアサートされているとき、前記第１のクロック信号に同期した入力データを転送データとして出力し、前記第１のゲート信号がネゲートされているとき、前記転送データを保持するラッチ回路と、
前記第２クロックドメインに属し、イネーブル信号及び前記第２のクロック信号に応答して、前記ラッチ回路から出力される前記転送データを保持して出力データとして出力するフリップフロップ回路と、
前記入力データが有効であることを示す信号に基づいて、前記第１のゲート信号をパルス状にアサートして前記ラッチ回路に供給し、前記第１のゲート信号に基づいて、前記転送データが安定していることを示す前記イネーブル信号を生成して前記フリップフロップ回路に供給する制御回路とを有することを特徴とする半導体装置。
【請求項２】
第１のクロック信号が供給される第１クロックドメインと、
前記第１のクロック信号とは異なる第２のクロック信号が供給される第２クロックドメインとを有し、
前記第１クロックドメインから前記第２クロックドメインへのデータ転送を行う半導体装置であって、
前記第１クロックドメインに属し、前記第１のクロック信号とは異なる第１のゲート信号がアサートされているとき、前記第１のクロック信号に同期した入力データを転送データとして出力し、前記第１のゲート信号がネゲートされているとき、前記転送データを保持する第１のラッチ回路と、
前記第２クロックドメインに属し、前記第２のクロック信号とは異なる第２のゲート信号がアサートされているとき、前記第１のラッチ回路から出力される前記転送データを出力データとして出力し、前記第２のゲート信号がネゲートされているとき、前記出力データを保持する第２のラッチ回路と、
前記入力データが有効であることを示す信号に基づいて、前記第１のゲート信号をパルス状にアサートして前記第１のラッチ回路に供給し、前記第１のゲート信号に基づいて、前記転送データが安定していることを示すパルス状にアサートした前記第２のゲート信号を前記第２のラッチ回路に供給し、前記第２のゲート信号に基づいて、前記出力データが有効であることを示すバリッド信号を生成して出力する制御回路とを有することを特徴とする半導体装置。
【請求項３】
前記制御回路は、前記第１クロックドメインから前記第２クロックドメインへのデータ転送中にアサートされる信号がネゲートされているとき、前記入力データが有効であることを示す信号に応じて、前記第１のクロック信号の１周期の期間、前記第１のゲート信号をアサートすることを特徴とする請求項１又は２記載の半導体装置。
【請求項４】
第１のクロック信号が供給される第１クロックドメインと、
前記第１のクロック信号とは異なる第２のクロック信号が供給される第２クロックドメインとを有し、
前記第１クロックドメインから前記第２クロックドメインへのデータ転送を行う半導体装置であって、
前記第１クロックドメインに属し、イネーブル信号及び前記第１のクロック信号に応答して、前記第１のクロック信号に同期した前記入力データを保持して転送データとして出力するフリップフロップ回路と、
前記第２クロックドメインに属し、前記第２のクロック信号とは異なるゲート信号がアサートされているとき、前記フリップフロップ回路から出力される前記転送データを出力データとして出力し、前記ゲート信号がネゲートされているとき、前記出力データを保持するラッチ回路と、
前記入力データが有効であることを示す信号に基づいて、前記イネーブル信号を生成して前記フリップフロップ回路に供給し、前記イネーブル信号に基づいて、前記転送データが安定していることを示すパルス状にアサートした前記ゲート信号を前記ラッチ回路に供給し、前記ゲート信号に基づいて、前記出力データが有効であることを示すバリッド信号を生成して出力する制御回路とを有することを特徴とする半導体装置。
【請求項５】
第１のクロック信号及び前記第１のクロック信号とは異なる第２のクロック信号を生成するクロック生成回路を有することを特徴とする請求項１乃至４の何れか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるクロックドメイン間でのデータ転送を行う半導体装置に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）等の半導体装置は、内部に異なるクロック信号で動作する回路ブロックを有する、すなわち複数のクロックドメインを有するものがある。異なるクロックドメイン間（ＣＤＣ：Clock Domain Crossing）のデータ転送（非同期データ転送）は、転送元の回路のクロック信号と転送先の回路のクロック信号とが異なるためにメタステーブルが発生し得る。異なるクロックドメイン間のデータ転送において、データを同期化しメタステーブルの発生を回避するデータ同期化回路が提案されている（例えば、特許文献１、２参照）。
【０００３】
また、異なるクロックドメイン間の多ビットデータの転送方法の一つに、ハンドシェイク（Handshake）制御を行う方法がある。図６は、ハンドシェイク型のデータ転送装置の構成例を示す概念図である。図６において、転送元ハンドシェイク制御回路２０１、フリップフロップ回路２０５、２０６、ＳＦＦは、第１クロックドメインに属し、第１のクロック信号ＣＫ１で動作する。また、転送先ハンドシェイク制御回路２０４、フリップフロップ回路２０２、２０３、ＤＦＦは、第２クロックドメインに属し、第１のクロック信号ＣＫ１とは異なる第２のクロック信号ＣＫ２で動作する。
【０００４】
第１クロックドメインから第２のクロックドメインへデータを転送する、すなわち第１のクロック信号ＣＫ１に同期するデータを第２のクロック信号ＣＫ２に同期させる場合について説明する。送信側のフリップフロップ回路ＳＦＦは、転送元ハンドシェイク制御回路２０１からのイネーブル信号に従って、転送するデータＤＡＴＡを保持し、さらにデータ信号として出力する。
【０００５】
また、転送元ハンドシェイク制御回路２０１は、イネーブル信号を出力するとともに、データが安定しているタイミングを示す信号ＲＥＱを出力する。転送元ハンドシェイク制御回路２０１から出力された信号ＲＥＱは、第２クロックドメインへ伝送され、メタステーブル対策回路としてのフリップフロップ回路２０２、２０３を介して転送先ハンドシェイク制御回路２０４に入力される。
【０００６】
転送先ハンドシェイク制御回路２０４は、データが安定しているタイミングを示す信号ＲＥＱを受けると、イネーブル信号を出力する。この転送先ハンドシェイク制御回路２０４からのイネーブル信号に従って、受信側のフリップフロップ回路ＤＦＦは、送信側のフリップフロップ回路ＳＦＦが出力するデータを保持し、データ信号として出力する。
【０００７】
また、転送先ハンドシェイク制御回路２０４は、イネーブル信号を出力するとともに、データが保持されたことを示す信号ＡＣＫを出力する。転送先ハンドシェイク制御回路２０４から出力された信号ＡＣＫは、第１クロックドメインへ伝送され、メタステーブル対策回路としてのフリップフロップ回路２０５、２０６を介して転送元ハンドシェイク制御回路２０１に入力される。このように、転送元の回路と転送先の回路との間で信号ＲＥＱ、ＡＣＫを用いてハンドシェイクを行うことで、第１のクロック信号ＣＫ１に同期したデータを第２のクロック信号ＣＫ２に同期させる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１０−１１７１８５号公報
【特許文献２】特開２００３−１４３１１７号公報
【特許文献３】特開平８−３２０８４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
異なるクロックドメイン間のデータ転送に用いる一般的なハンドシェイク型のデータ転送装置は、データ転送にそれぞれのクロック信号で動作するフリップフロップを使用しており、クロック駆動の度にフリップフロップ回路が電力を消費し、消費電力が大きい。本発明の目的は、異なるクロックドメイン間のデータ転送の安定性を損なうことなく、消費電力を抑えることができるハンドシェイク型のデータ転送を行う半導体装置を提供することにある。
【課題を解決するための手段】
【００１０】
半導体装置の一態様は、データ転送元の第１クロックドメインに属し、第１のクロック信号とは異なる第１のゲート信号がアサートされているとき、入力データを転送データとして出力し、第１のゲート信号がネゲートされているとき、転送データを保持するラッチ回路と、データ転送先の第２クロックドメインに属し、イネーブル信号及び第２のクロック信号に応答して、ラッチ回路から出力される転送データを保持して出力データとして出力するフリップフロップ回路と、制御回路とを有する。制御回路は、入力データが有効であることを示す信号に基づいて、第１のゲート信号をパルス状にアサートし、第１のゲート信号に基づいて、転送データが安定していることを示すイネーブル信号を生成して出力する。
【発明の効果】
【００１１】
開示の半導体装置は、データ転送に係るフリップフロップに換えてゲート信号の変化時に電力が消費されるラッチ回路を用いることで、異なるクロックドメイン間のデータ転送の安定性を損なうことなく、消費電力を抑えることができるとともに、半導体装置の回路面積を縮小することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態における半導体装置の構成例を示す図である。
【図２】図１に示す半導体装置の動作例を示すタイミングチャートである。
【図３】本発明の第２の実施形態における半導体装置の構成例を示す図である。
【図４】図３に示す半導体装置の動作例を示すタイミングチャートである。
【図５】本発明の他の実施形態における半導体装置の構成例を示す図である。
【図６】ハンドシェイク型のデータ転送装置の構成例を示す概念図である。
【図７】参考技術によるデータ転送装置の構成例を示す図である。
【図８】図７に示すデータ転送装置の動作例を示すタイミングチャートである。
【図９】Ｄ型フリップフロップ回路の構成及び動作を説明するための図である。
【図１０】ゲーテッドＤラッチ回路の構成及び動作を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面に基づいて説明する。
本実施形態に係る半導体装置は、例えば複数の機能を１つのチップ上に実装したＳｏＣ（System on a Chip）であり、異なるクロックで動作する複数のクロックドメインを有する。さらに、本実施形態に係る半導体装置は、異なるクロックドメイン間でデータ信号の送受信が行われる場合に、データ信号が正しく送受信されるように、メタステーブルの発生を防止するためのメタステーブル対策回路を有する。すなわち、本実施形態に係る半導体装置は、データ同期化制御信号をメタステーブル対策回路を使用して異なるクロックドメインに同期化し、また同期化後の制御信号を再びメタステーブル対策回路を使用して元のクロックドメインに同期化した制御信号でデータを制御する、ハンドシェイク型のデータ転送を実行する。
【００１４】
例えば、本実施形態に係る半導体装置においては、ある複数の回路ブロックが、第１クロックドメインに属し、クロック生成回路としての位相ロックループ（ＰＬＬ：Phase Locked Loop）回路から供給される第１のクロック信号で動作する。また、別の複数の回路ブロックが、第２クロックドメインに属し、クロック生成回路としての別のＰＬＬ回路から供給される第２のクロック信号で動作する。
【００１５】
例えば、第１クロックドメインに同期したデータを、第２クロックドメインへ同期化するには、データ同期化制御信号をメタステーブル対策回路を使用して同期化し、同期化後の制御信号を使用してデータを第２クロックドメイン回路へ取り込む。同様に第２クロックドメインに同期したデータを第１クロックドメインへ同期化するには、データ同期化制御信号をメタステーブル対策回路を使用して同期化し、同期化した制御信号を使用してデータを第１クロックドメイン回路へ取り込む。本実施形態に係るハンドシェイク型データ転送に関しては、後で詳細に説明する。
【００１６】
次に、本発明に至る参考技術について説明する。なお、以下の参考技術及び実施形態における説明において、各信号はアサートされているときハイレベルであり、ネゲートされているときローレベルであるとする。図７は、参考技術による多ビットデータの転送を行うハンドシェイク型のデータ転送装置の構成例を示す図である。図７に示すハンドシェイク型のデータ転送装置は、送信側（転送元）のフリップフロップ回路ＳＦＦ−ｉ及びセレクタＳＳＥＬ−ｉと、受信側（転送先）のフリップフロップ回路ＤＦＦ−ｉ及びセレクタＤＳＥＬ−ｉと、制御回路としてのメタステーブル対策回路１３とを有する。なお、ｉは添え字であり、ｉ＝１〜Ｎ（例えば、８、１６、３２、６４等）である（以下においても同様）。メタステーブル対策回路１３は、論理積演算回路（ＡＮＤ回路）１０１、１０３、１１１、インバータ１０２、１０４、１１２、論理和演算回路（ＯＲ回路）１０５、セレクタ１０６、及びフリップフロップ回路１０７〜１１０、１１３〜１１５を有する。
【００１７】
送信側のフリップフロップ回路ＳＦＦ−ｉ、メタステーブル対策回路１３のフリップフロップ回路１０７、１１４、１１５は、第１クロックドメインに属し、第１のクロック信号ＣＫ１で動作する。また、受信側のフリップフロップ回路ＤＦＦ−ｉ、メタステーブル対策回路１３のフリップフロップ回路１０８〜１１０、１１３は、第２クロックドメインに属し、第２のクロック信号ＣＫ２で動作する。
【００１８】
送信側のフリップフロップ回路ＳＦＦ−ｉの各々は、第１のクロック信号ＣＫ１に同期して、セレクタＳＳＥＬ−ｉの出力を保持し、転送データ信号ＳＤＡＴＡｉとして出力する。セレクタＳＳＥＬ−ｉの各々は、メタステーブル対策回路１３からのリクエスト信号Ｒｅｑ１に応じて、入力データ信号ＩＤＡＴＡｉ又は転送データ信号ＳＤＡＴＡｉを出力する。ここで、入力データ信号ＩＤＡＴＡｉは、第１のクロック信号ＣＫ１に同期したデータ信号である。図７に示した例では、セレクタＳＳＥＬ−ｉは、リクエスト信号Ｒｅｑ１が“１”（ハイレベル）である場合に入力データ信号ＩＤＡＴＡｉを出力し、リクエスト信号Ｒｅｑ１が“０”（ローレベル）である場合に転送データ信号ＳＤＡＴＡｉを出力する。すなわち、送信側のフリップフロップ回路ＳＦＦ−ｉ及びセレクタＳＳＥＬ−ｉは、信号Ｒｅｑ１をイネーブル信号とするイネーブル信号付きのフリップフロップ回路に相当する。
【００１９】
受信側のフリップフロップ回路ＤＦＦ−ｉの各々は、第２のクロック信号ＣＫ２に同期して、セレクタＤＳＥＬ−ｉの出力を保持し、出力データ信号ＯＤＡＴＡｉとして出力する。セレクタＤＳＥＬ−ｉの各々は、メタステーブル対策回路１３からのイネーブル信号Ｅｎａｂｌｅに応じて、転送データ信号ＳＤＡＴＡｉ又は出力データ信号ＯＤＡＴＡｉを出力する。ここで、出力データ信号ＯＤＡＴＡｉは、第２のクロック信号ＣＫ２に同期したデータ信号である。図７に示した例では、セレクタＤＳＥＬ−ｉは、イネーブル信号Ｅｎａｂｌｅが“１”（ハイレベル）である場合に転送データ信号ＳＤＡＴＡｉを出力し、イネーブル信号Ｅｎａｂｌｅが“０”（ローレベル）である場合に出力データ信号ＯＤＡＴＡｉを出力する。すなわち、受信側のフリップフロップ回路ＤＦＦ−ｉ及びセレクタＤＳＥＬ−ｉは、信号Ｅｎａｂｌｅをイネーブル信号とするイネーブル信号付きのフリップフロップ回路に相当する。
【００２０】
ＡＮＤ回路１０１は、セット信号ＳＥＴとインバータ１０２により反転されたビジィ信号ＢＵＳＹとが入力され、演算結果をリクエスト信号Ｒｅｑ１として出力する。つまり、ビジィ信号ＢＵＳＹがハイレベルである場合には、セット信号ＳＥＴにかかわらずリクエスト信号Ｒｅｑ１がローレベルとなり、ビジィ信号ＢＵＳＹがローレベルである場合には、セット信号ＳＥＴがリクエスト信号Ｒｅｑ１として出力される。
【００２１】
ここで、セット信号ＳＥＴは、入力データ信号ＩＤＡＴＡｉが有効であることを示す信号であり、入力データ信号ＩＤＡＴＡｉが有効である場合にハイレベルとなる。また、ビジィ信号ＢＵＳＹは、図７に示したデータ転送装置において、第１クロックドメインから第２クロックドメインへデータ転送中であることを示す信号であり、データ転送中にハイレベルとなる。
【００２２】
ＡＮＤ回路１０３は、リクエスト信号Ｒｅｑ１とインバータ１０４により反転されたアクノリッジ信号Ａｃｋ２とが入力され、演算結果を出力する。ＯＲ回路１０５は、リクエスト信号Ｒｅｑ１とアクノリッジ信号Ａｃｋ２とが入力され、演算結果を出力する。セレクタ１０６は、ＯＲ回路１０５の出力に応じて、ＡＮＤ回路１０３の出力又はリクエスト信号Ｒｅｑ２を出力する。
【００２３】
図７に示した例では、セレクタ１０６は、ＯＲ回路１０５の出力がハイレベル、すなわちリクエスト信号Ｒｅｑ１又はアクノリッジ信号Ａｃｋ２がハイレベルである場合にＡＮＤ回路１０３の出力を出力する。また、セレクタ１０６は、ＯＲ回路１０５の出力がローレベル、すなわちリクエスト信号Ｒｅｑ１及びアクノリッジ信号Ａｃｋ２がともにローレベルである場合にリクエスト信号Ｒｅｑ２を出力する。
【００２４】
フリップフロップ回路１０７は、第１のクロック信号ＣＫ１に同期して、セレクタ１０６の出力を保持し、リクエスト信号Ｒｅｑ２として出力する。したがって、リクエスト信号Ｒｅｑ２は、リクエスト信号Ｒｅｑ１がハイレベルになった次の第１のクロック信号ＣＫ１の立ち上がりでハイレベルになり、アクノリッジ信号Ａｃｋ２がハイレベルになった次の第１のクロック信号ＣＫ１の立ち上がりでローレベルになる。
【００２５】
メタステーブル対策回路のフリップフロップ回路１０８、１０９は、第１のクロック信号ＣＫ１に同期したリクエスト信号Ｒｅｑ２を第２のクロック信号ＣＫ２に同期させる。フリップフロップ回路１０８は、第２のクロック信号ＣＫ２に同期して、リクエスト信号Ｒｅｑ２を保持し、リクエスト信号Ｒｅｑ３として出力する。また、フリップフロップ回路１０９は、第２のクロック信号ＣＫ２に同期して、リクエスト信号Ｒｅｑ３を保持し、リクエスト信号Ｒｅｑ４として出力する。
【００２６】
フリップフロップ回路１１０は、第２のクロック信号ＣＫ２に同期して、リクエスト信号Ｒｅｑ４を保持し、リクエスト信号Ｒｅｑ５として出力する。ＡＮＤ回路１１１は、リクエスト信号Ｒｅｑ４とインバータ１１２により反転されたリクエスト信号Ｒｅｑ５とが入力され、演算結果をイネーブル信号Ｅｎａｂｌｅとして出力する。したがって、イネーブル信号Ｅｎａｂｌｅは、リクエスト信号Ｒｅｑ４がハイレベルになってから第２のクロック信号ＣＫ２における１周期の期間においてパルス状にハイレベルとなる。
【００２７】
フリップフロップ回路１１３は、第２のクロック信号ＣＫ２に同期して、イネーブル信号Ｅｎａｂｌｅを保持し、バリッド信号ＶＡＬＩＤとして出力する。ここで、バリッド信号ＶＡＬＩＤは、出力データ信号ＯＤＡＴＡｉが有効であることを示す信号であり、出力データ信号ＯＤＡＴＡｉが有効である場合にハイレベルとなる。なお、本例及び以下に説明する実施形態では、バリッド信号ＶＡＬＩＤが第２のクロック信号ＣＫ２における１周期の期間においてパルス状にハイレベルとする例を示す。しかし、これに限定されず、バリッド信号ＶＡＬＩＤをハイレベルとする期間は出力データ信号ＯＤＡＴＡｉを受ける後段の回路の仕様等に応じて変更可能であり、期間に応じてバリッド信号ＶＡＬＩＤの出力に係る回路構成を適宜変更しても良い。
【００２８】
メタステーブル対策回路のフリップフロップ回路１１４、１１５は、第２のクロック信号ＣＫ２に同期したリクエスト信号Ｒｅｑ４を第１のクロック信号ＣＫ１に同期させる。フリップフロップ回路１１４は、第１のクロック信号ＣＫ１に同期して、リクエスト信号Ｒｅｑ４を保持し、アクノリッジ信号Ａｃｋ１として出力する。また、フリップフロップ回路１１５は、第１のクロック信号ＣＫ１に同期して、アクノリッジ信号Ａｃｋ１を保持し、アクノリッジ信号Ａｃｋ２として出力する。
【００２９】
ＯＲ回路１１６は、リクエスト信号Ｒｅｑ２とアクノリッジ信号Ａｃｋ２とが入力され、演算結果をビジィ信号ＢＵＳＹとして出力する。つまり、ビジィ信号ＢＵＳＹは、リクエスト信号Ｒｅｑ２及びアクノリッジ信号Ａｃｋ２の少なくとも一方がハイレベルである場合にハイレベルとなり、リクエスト信号Ｒｅｑ２及びアクノリッジ信号Ａｃｋ２がともにローレベルである場合にローレベルとなる。
【００３０】
図８は、図７に示したデータ転送装置の動作例を示すタイミングチャートである。時刻Ｔ５１において、入力データ信号ＩＤＡＴＡが有効であることを示すセット信号ＳＥＴがハイレベルとされる。このとき、ビジィ信号ＢＵＳＹがローレベルであるので、リクエスト信号Ｒｅｑ１がセット信号ＳＥＴに応じてハイレベルになり、セレクタＳＳＥＬは、入力データ信号ＩＤＡＴＡをフリップフロップ回路ＳＦＦに出力する。
【００３１】
リクエスト信号Ｒｅｑ１がハイレベルになった後の第１のクロック信号ＣＫ１の立ち上がりである時刻Ｔ５２において、フリップフロップ回路ＳＦＦは、第１のクロック信号ＣＫ１に同期して、入力データ信号ＩＤＡＴＡを保持し、転送データ信号ＳＤＡＴＡとして出力する。また、リクエスト信号Ｒｅｑ１がハイレベルであるので、リクエスト信号Ｒｅｑ２がハイレベルになり、これによりデータ転送中であることを示すビジィ信号ＢＵＳＹがハイレベルになる。なお、セット信号ＳＥＴは、ビジィ信号ＢＵＳＹがローレベルであったので、時刻Ｔ５２においてローレベルとされ、リクエスト信号Ｒｅｑ１がローレベルになる。
【００３２】
リクエスト信号Ｒｅｑ２がハイレベルになった後の第２のクロック信号ＣＫ２の立ち上がりである時刻Ｔ６１において、リクエスト信号Ｒｅｑ３がハイレベルになり、続く時刻Ｔ６２、Ｔ６３において、リクエスト信号Ｒｅｑ４、Ｒｅｑ５が順次ハイレベルになる。したがって、時刻Ｔ６２〜時刻Ｔ６３の期間において、イネーブル信号Ｅｎａｂｌｅがハイレベルになり、セレクタＤＳＥＬは、転送データ信号ＳＤＡＴＡをフリップフロップ回路ＤＦＦに出力する。
【００３３】
イネーブル信号Ｅｎａｂｌｅがハイレベルになった後の第２のクロック信号ＣＫ２の立ち上がりである時刻Ｔ６３において、フリップフロップ回路ＤＦＦは、第２のクロック信号ＣＫ２に同期して、転送データ信号ＳＤＡＴＡを保持し、出力データ信号ＯＤＡＴＡとして出力する。また、イネーブル信号Ｅｎａｂｌｅがハイレベルであるので、出力データ信号ＯＤＡＴＡが有効であることを示すバリッド信号ＶＡＬＩＤがハイレベルになる。
【００３４】
リクエスト信号Ｒｅｑ４がハイレベルになった後の第１のクロック信号ＣＫ１の立ち上がりである時刻Ｔ５３において、アクノリッジ信号Ａｃｋ１がハイレベルになり、続く時刻Ｔ５４において、アクノリッジ信号Ａｃｋ２がハイレベルになる。そして、時刻Ｔ５５において、アクノリッジ信号Ａｃｋ２がハイレベルであるので、リクエスト信号Ｒｅｑ２がローレベルになる。
【００３５】
これにより、リクエスト信号Ｒｅｑ２がローレベルになった後の第２のクロック信号ＣＫ２の立ち上がりである時刻Ｔ６５において、リクエスト信号Ｒｅｑ３がローレベルになり、続く時刻Ｔ６６、Ｔ６７において、リクエスト信号Ｒｅｑ４、Ｒｅｑ５が順次ローレベルになる。また、リクエスト信号Ｒｅｑ４がローレベルになった後の第１のクロック信号ＣＫ１の立ち上がりである時刻Ｔ５６において、アクノリッジ信号Ａｃｋ１がローレベルになり、続く時刻Ｔ５７において、アクノリッジ信号Ａｃｋ２がローレベルになる。また、時刻Ｔ５７において、リクエスト信号Ｒｅｑ２及びアクノリッジ信号Ａｃｋ２がともにローレベルになることで、ビジィ信号ＢＵＳＹがローレベルになる。
【００３６】
ここで、時刻Ｔ５５において、入力データ信号ＩＤＡＴＡが有効であることを示すセット信号ＳＥＴがハイレベルとされるが、時刻Ｔ５７まではビジィ信号ＢＵＳＹがハイレベルであるので、リクエスト信号Ｒｅｑ１はローレベルに維持される。時刻Ｔ５７においてビジィ信号ＢＵＳＹがローレベルになると、リクエスト信号Ｒｅｑ１がセット信号ＳＥＴに応じてハイレベルになり、セレクタＳＳＥＬは、入力データ信号ＩＤＡＴＡをフリップフロップ回路ＳＦＦに出力する。
【００３７】
そして、リクエスト信号Ｒｅｑ１がハイレベルになった後の第１のクロック信号ＣＫ１の立ち上がりである時刻Ｔ５８において、フリップフロップ回路ＳＦＦは、第１のクロック信号ＣＫ１に同期して、入力データ信号ＩＤＡＴＡを保持し、転送データ信号ＳＤＡＴＡとして出力する。以降、前述した動作と同様にしてデータ転送を行う。
【００３８】
ここで、図７に示したようなハンドシェイク型のデータ転送装置における送信側のフリップフロップ回路ＳＦＦ及び受信側のフリップフロップ回路ＤＦＦには、図９（Ａ）に示すＤ型フリップフロップ回路が用いられる。Ｄ型フリップフロップ回路は、図９（Ａ）に示すように接続された８個の否定論理積演算回路（ＮＡＮＤ回路）３０１〜３０８及び２つのインバータ３０９、３１０を有する。図９（Ａ）に示すＤ型フリップフロップ回路は、図９（Ｂ）に示すように、入力されるクロック信号ＣＫの立ち上がりエッジにおいて、Ｄ入力の値がＱ出力として保持される。Ｄ型フリップフロップ回路では、クロック駆動の度に電力が消費されるので、送信側のフリップフロップ回路ＳＦＦ及び受信側のフリップフロップ回路ＤＦＦにＤ型フリップフロップ回路を使用するとデータ転送装置の消費電力が大きくなってしまう。
【００３９】
（第１の実施形態）
図１は、本発明の第１の実施形態におけるハンドシェイク型のデータ転送を行う半導体装置の構成例を示す図である。この図１において、図７に示した構成要素と同じ構成要素には同一の符号を付し、重複する説明は省略する。第１の実施形態における半導体装置は、図７に示したデータ転送装置における送信側のフリップフロップ回路ＳＦＦ−ｉ（及びセレクタＳＳＥＬ−ｉ）に換えて、ラッチ回路ＳＬ−ｉを用いたものである。すなわち、第１の実施形態における半導体装置は、図１に示すように送信側のラッチ回路ＳＬ−ｉと、受信側のフリップフロップ回路ＤＦＦ−ｉ及びセレクタＤＳＥＬ−ｉと、制御回路としてのメタステーブル対策回路１３とを有する。
【００４０】
ラッチ回路ＳＬ−ｉの各々は、図１０（Ａ）に示すようなゲーテッドＤラッチ回路である。ゲーテッドＤラッチ回路は、図１０（Ａ）に示すように接続された４個のＮＡＮＤ回路３２１〜３２４を有する。図１０（Ａ）に示すゲーテッドＤラッチ回路は、図１０（Ｂ）に示すように、入力されるゲート信号ＧがハイレベルであるときにＤ入力の値がＱ出力に伝わり、ゲート信号ＧがローレベルであるときにＱ出力を保持する。ゲーテッドＤラッチ回路では、ゲート信号Ｇが変化したときに電力が消費される。
【００４１】
ここで、Ｄ型フリップフロップ回路とゲーテッドＤラッチ回路とは、タイミング特性が異なる。通常、Ｄ型フリップフロップ回路をゲーテッドＤラッチ回路に置き換えるには、異なるタイミング特性に対応するために信号のタイミングを合わせる制御回路等を新たに追加する。
【００４２】
しかし、ハンドシェイク型のデータ転送を行う半導体装置では、メタステーブル対策回路１３から出力される信号によってデータの取り込み等が制御されるので、Ｄ型フリップフロップ回路をゲーテッドＤラッチ回路に置き換えたとしても、異なるタイミング特性を考慮する必要がない。したがって、フリップフロップ回路に換えてラッチ回路を用いても新たな制御回路を追加することなく、異なるクロックドメイン間のデータ転送が可能である。また、フリップフロップ回路に換えてラッチ回路を用いることで、半導体装置の回路面積を縮小できるとともに、消費電力を抑えることができる。
【００４３】
図１に示すように、ラッチ回路ＳＬ−ｉの各々は、ゲート信号としてメタステーブル対策回路１３から出力されるリクエスト信号Ｒｅｑ１が入力されるとともに、Ｄ入力として入力データ信号ＩＤＡＴＡｉが入力される。また、ラッチ回路ＳＬ−ｉの各々は、Ｑ出力として転送データ信号ＳＤＡＴＡｉを出力する。
【００４４】
なお、図１に示す第１の実施形態におけるハンドシェイク型のデータ転送を行う半導体装置において、異なるクロックドメイン間で伝送される信号は、配線遅延が信号を受ける側のクロックドメインのクロック信号の２周期以内であるとする。すなわち、送信側のラッチ回路ＳＬ−ｉの出力と受信側のフリップフロップ回路ＤＦＦ−ｉの入力との間の配線遅延は、第２のクロック信号ＣＫ２の２周期以内とする。
【００４５】
図２は、図１に示した半導体装置の動作例を示すタイミングチャートである。時刻Ｔ１１において、入力データ信号ＩＤＡＴＡが有効であることを示すセット信号ＳＥＴがハイレベルとされる。このとき、ビジィ信号ＢＵＳＹがローレベルであるので、リクエスト信号Ｒｅｑ１がセット信号ＳＥＴに応じてハイレベルになる。ゲート信号として入力されるリクエスト信号Ｒｅｑ１がハイレベルになったことにより、ラッチ回路ＳＬは、入力データ信号ＩＤＡＴＡを転送データ信号ＳＤＡＴＡとして出力する。
【００４６】
続く、時刻Ｔ１２において、リクエスト信号Ｒｅｑ２がハイレベルになり、これによりデータ転送中であることを示すビジィ信号ＢＵＳＹがハイレベルになる。なお、セット信号ＳＥＴは、ビジィ信号ＢＵＳＹがローレベルであったので、時刻Ｔ１２においてローレベルとされ、リクエスト信号Ｒｅｑ１がローレベルになる。また、ゲート信号として入力されるリクエスト信号Ｒｅｑ１がローレベルになったことにより、ラッチ回路ＳＬは、リクエスト信号Ｒｅｑ１がローレベルになったときの入力データ信号ＩＤＡＴＡを保持し、転送データ信号ＳＤＡＴＡとして出力する。
【００４７】
リクエスト信号Ｒｅｑ２がハイレベルになった後の第２のクロック信号ＣＫ２の立ち上がりである時刻Ｔ２１において、リクエスト信号Ｒｅｑ３がハイレベルになり、続く時刻Ｔ２２、Ｔ２３において、リクエスト信号Ｒｅｑ４、Ｒｅｑ５が順次ハイレベルになる。したがって、時刻Ｔ２２〜時刻Ｔ２３の期間において、イネーブル信号Ｅｎａｂｌｅがハイレベルになり、セレクタＤＳＥＬは、転送データ信号ＳＤＡＴＡをフリップフロップ回路ＤＦＦに出力する。
【００４８】
イネーブル信号Ｅｎａｂｌｅがハイレベルになった後の第２のクロック信号ＣＫ２の立ち上がりである時刻Ｔ２３において、フリップフロップ回路ＤＦＦは、第２のクロック信号ＣＫ２に同期して、転送データ信号ＳＤＡＴＡを保持し、出力データ信号ＯＤＡＴＡとして出力する。また、イネーブル信号Ｅｎａｂｌｅがハイレベルであるので、出力データ信号ＯＤＡＴＡが有効であることを示すバリッド信号ＶＡＬＩＤがハイレベルになる。
【００４９】
リクエスト信号Ｒｅｑ４がハイレベルになった後の第１のクロック信号ＣＫ１の立ち上がりである時刻Ｔ１３において、アクノリッジ信号Ａｃｋ１がハイレベルになり、続く時刻Ｔ１４において、アクノリッジ信号Ａｃｋ２がハイレベルになる。そして、時刻Ｔ１５において、アクノリッジ信号Ａｃｋ２がハイレベルであるので、リクエスト信号Ｒｅｑ２がローレベルになる。
【００５０】
これにより、リクエスト信号Ｒｅｑ２がローレベルになった後の第２のクロック信号ＣＫ２の立ち上がりである時刻Ｔ２５において、リクエスト信号Ｒｅｑ３がローレベルになり、続く時刻Ｔ２６、Ｔ２７において、リクエスト信号Ｒｅｑ４、Ｒｅｑ５が順次ローレベルになる。また、リクエスト信号Ｒｅｑ４がローレベルになった後の第１のクロック信号ＣＫ１の立ち上がりである時刻Ｔ１６において、アクノリッジ信号Ａｃｋ１がローレベルになり、続く時刻Ｔ１７において、アクノリッジ信号Ａｃｋ２がローレベルになる。また、時刻Ｔ１７において、リクエスト信号Ｒｅｑ２及びアクノリッジ信号Ａｃｋ２がともにローレベルになることで、ビジィ信号ＢＵＳＹがローレベルになる。
【００５１】
ここで、時刻Ｔ１５において、入力データ信号ＩＤＡＴＡが有効であることを示すセット信号ＳＥＴがハイレベルとされるが、時刻Ｔ１７まではビジィ信号ＢＵＳＹがハイレベルであるので、リクエスト信号Ｒｅｑ１はローレベルに維持される。時刻Ｔ１７においてビジィ信号ＢＵＳＹがローレベルになると、リクエスト信号Ｒｅｑ１がセット信号ＳＥＴに応じてハイレベルになり、ラッチ回路ＳＬは、新たな入力データ信号ＩＤＡＴＡを転送データ信号ＳＤＡＴＡとして出力する。
【００５２】
そして、時刻１８において、リクエスト信号Ｒｅｑ１がローレベルになり、ラッチ回路ＳＬは、リクエスト信号Ｒｅｑ１がローレベルになったときの入力データ信号ＩＮＤＡＴＡを保持し、転送データ信号ＳＤＡＴＡとして出力する。以降、前述した動作と同様にしてデータ転送を行う。
【００５３】
第１の実施形態における半導体装置では、メタステーブル対策回路１３からのリクエスト信号Ｒｅｑ１がハイレベルになったときから（例えば図２に示す時刻Ｔ１１から）、ラッチ回路ＳＬは、入力データ信号ＩＤＡＴＡを転送データ信号ＳＤＡＴＡとして出力する。すなわち、前述した参考技術のように送信側のフリップフロップ回路ＳＦＦを用いた場合と比較すると、第１の実施形態における半導体装置では、第１のクロック信号ＣＫ１の１周期分早く、入力データ信号ＩＤＡＴＡが転送データ信号ＳＤＡＴＡとして出力されることとなる。
【００５４】
しかし、受信側のフリップフロップ回路ＤＦＦは、メタステーブル対策回路１３からのイネーブル信号Ｅｎａｂｌｅがハイレベルになった後の第２のクロック信号ＣＫ２の立ち上がりにおいて、転送データ信号ＳＤＡＴＡを保持し、出力データ信号ＯＤＡＴＡとして出力する。つまり、第１のクロック信号ＣＫ１の１周期分早く、入力データ信号ＩＤＡＴＡが転送データ信号ＳＤＡＴＡとして出力されても、受信側のフリップフロップ回路ＤＦＦは、適切な転送データ信号ＳＤＡＴＡを保持し、出力データ信号ＯＤＡＴＡとして出力することができる。また、送信側のフリップフロップ回路ＳＦＦに換えてラッチ回路ＳＬを用いたことで、第１のクロック信号ＣＫ１の駆動の度に電力が消費されることもない。
【００５５】
このように第１の実施形態における半導体装置によれば、異なるクロックドメイン間のデータ転送の安定性を損なうことなく、消費電力を抑えることができるとともに、半導体装置の回路面積を縮小することができる。
【００５６】
（第２の実施形態）
図３は、本発明の第２の実施形態におけるハンドシェイク型のデータ転送を行う半導体装置の構成例を示す図である。この図３において、図１、図７に示した構成要素と同じ構成要素には同一の符号を付し、重複する説明は省略する。第２の実施形態における半導体装置は、さらに受信側のフリップフロップ回路ＤＦＦ−ｉ（及びセレクタＤＳＥＬ−ｉ）に換えて、ラッチ回路ＤＬ−ｉを用いたものである。すなわち、第２の実施形態における半導体装置は、図３に示すように送信側のラッチ回路ＳＬ−ｉと、受信側のラッチ回路ＤＬ−ｉと、制御回路としてのメタステーブル対策回路１３とを有する。
【００５７】
ラッチ回路ＤＬ−ｉの各々は、ラッチ回路ＳＬ−ｉと同様に図１０（Ａ）に示したようなゲーテッドＤラッチ回路である。ラッチ回路ＤＬ−ｉの各々は、ゲート信号としてメタステーブル対策回路１３から出力されるイネーブル信号Ｅｎａｂｌｅが入力されるとともに、Ｄ入力として転送データ信号ＳＤＡＴＡｉが入力される。また、ラッチ回路ＤＬ−ｉの各々は、Ｑ出力として出力データ信号ＯＤＡＴＡｉを出力する。
【００５８】
図４は、図３に示した半導体装置の動作例を示すタイミングチャートである。図４における時刻Ｔ３１〜Ｔ３８、Ｔ４１〜Ｔ４７は、図２における時刻Ｔ１１〜Ｔ１８、Ｔ２１〜Ｔ２７にそれぞれ相当する。図３に示した半導体装置の動作は、図１に示した半導体装置の動作と基本的には同様である。
【００５９】
ただし、第２の実施形態における半導体装置では、図４に示すように、時刻Ｔ４２において、ゲート信号として入力されるイネーブル信号Ｅｎａｂｌｅがハイレベルになることにより、ラッチ回路ＤＬは、転送データ信号ＳＤＡＴＡを出力データ信号ＯＤＡＴＡとして出力する。つまり、受信側のフリップフロップ回路ＤＦＦを用いた場合と比較すると、第２の実施形態における半導体装置では、第２のクロック信号ＣＫ２の１周期分早く、転送データ信号ＳＤＡＴＡが出力データ信号ＯＤＡＴＡとして出力されることとなる。
【００６０】
しかし、半導体装置は、メタステーブル対策回路１３からのバリッド信号ＶＡＬＩＤにより出力データ信号ＯＤＡＴＡが有効であることを示す。言い換えれば、半導体装置において出力データ信号ＯＤＡＴＡを受ける後段の回路は、バリッド信号ＶＡＬＩＤに基づいて出力データ信号ＯＤＡＴＡの有効性を判断する。したがって、第２のクロック信号ＣＫ２の１周期分早く、出力データ信号ＯＤＡＴＡを出力しても、後段の回路は、半導体装置において受信側のフリップフロップ回路ＤＦＦを用いた場合と同様に出力データ信号ＯＤＡＴＡを得ることができる。また、受信側のフリップフロップ回路ＤＦＦに換えてラッチ回路ＤＬを用いたことで、第２のクロック信号ＣＫ２の駆動の度に電力が消費されることもない。
【００６１】
このように第２の実施形態における半導体装置によれば、異なるクロックドメイン間のデータ転送の安定性を損なうことなく、さらに、消費電力を抑えることができるとともに、半導体装置の回路面積を縮小することができる。
【００６２】
なお、送信側でラッチ回路ＳＬを用い受信側でフリップフロップ回路ＤＦＦを用いる場合、及び送信側と受信側ともにラッチ回路ＳＬ、ＤＬを用いる場合について示したが、送信側でフリップフロップ回路ＳＦＦを用い受信側でラッチ回路ＤＬを用いるようにしても良い。
【００６３】
また、前述したハンドシェイク型のデータ転送を行う半導体装置では、リクエスト信号Ｒｅｑ２とアクノリッジ信号Ａｃｋ２とをＯＲ回路１１６により論理和演算することでビジィ信号ＢＵＳＹを生成している。第２のクロック信号ＣＫ２の周波数が、第１のクロック信号ＣＫ１の周波数より高い場合には、連続するデータ転送であってもリクエスト信号Ｒｅｑ２がローレベルになったことを第２のクロック信号ＣＫ２で動作する回路で検出することが可能であるので、図５に示すようにＯＲ回路１１６を設けずに、リクエスト信号Ｒｅｑ２をビジィ信号ＢＵＳＹとして出力するようにしても良い。
【００６４】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６５】
１１  回路ブロック（回路モジュール）
１２  位相ロックループ（ＰＬＬ）回路
１３  メタステーブル対策回路
ＳＬ  ラッチ回路（送信側）
ＤＬ  ラッチ回路（受信側）
ＳＦＦ  フリップフロップ回路（送信側）
ＤＦＦ  フリップフロップ回路（受信側）
ＩＤＡＴＡ  入力データ信号
ＳＤＡＴＡ  転送データ信号
ＯＤＡＴＡ  出力データ信号
【図１】
2015149599.tif 000003
【図２】
2015149599.tif 000004
【図３】
2015149599.tif 000005
【図４】
2015149599.tif 000006
【図５】
2015149599.tif 000007
【図６】
2015149599.tif 000008
【図７】
2015149599.tif 000009
【図８】
2015149599.tif 000010
【図９】
2015149599.tif 000011
【図１０】
2015149599.tif 000012