(57)【要約】【課題】非同期クロック領域間のデータ転送時のレイテンシを増加を抑制し、非同期クロック領域間で生じるメタ・ステーブルの発生を防止する。【解決手段】クロック位相判定回路３０は、第１回路１０において第１エッジでデータをラッチする第１クロックの第１周期と第２回路２０において第２エッジでデータをラッチする第２クロックの第２周期の周期差に基づいて、所定の周期後の第１エッジと第２エッジとの時間差が、入力部のセットアップ時間及びホールド時間より大きいか否かを判定する。クロック位相判定回路３０は、所定の周期後の第１エッジと第２エッジとの時間差が、セットアップ時間及びホールド時間より大きいと判定したときに、所定の周期後に入力部がデータをラッチするように制御信号を第２回路２０に出力し、小さいと判定したときに、所定の周期後に入力部がデータをラッチすることを禁止する制御信号を第２回路２０に出力する。【選択図】図１
2015211385.tif 000002
【特許請求の範囲】
【請求項１】
第１周期を持つ第１クロックの第１エッジに同期してデータを出力する出力部を有する第１回路と、
前記第１周期と相違する第２周期を持つ第２クロックと、制御信号とが入力され、前記第２クロックの第２エッジと前記制御信号によって動作が制御される入力部を有する第２回路と、
所定の周期後の前記第１エッジと前記第２エッジとの時間差が、所定時間よりも大きいか否かを判定し、前記時間差が前記所定時間より大きいと判定したときに、前記所定の周期後に前記制御信号により前記入力部が前記データを受け取ることを許可し、前記時間差が前記所定時間以下であると判定したときに、前記所定の周期後に前記制御信号により前記入力部が前記データを受け取ることを禁止する、クロック位相判定回路と、
を有する回路。
【請求項２】
前記クロック位相判定回路は、前記所定の周期数に対応する前記第１クロックの周期数に応じた時間と、前記所定の周期数に応じた時間との差から位相関係をもとめ、前記位相関係に基づいて前記時間差が前記所定時間よりも大きいか否かを判定する、請求項１に記載の回路。
【請求項３】
前記所定時間は、セットアップ時間とホールド時間を含み、
前記クロック位相判定回路は、前記位相関係と前記セットアップ時間分とに応じた位相で前記第１クロックを位相シフトしたセットアップエッジ信号と、前記位相関係と前記ホールド時間分とに応じた位相で前記第１クロックを位相シフトしたホールドエッジ信号とを生成し、前記第２エッジにおける前記セットアップエッジ信号の第１レベルと前記ホールド信号の第２レベルが同じときには、前記時間差が前記所定時間よりも大きいと判定し、前記第１レベルと前記第２レベルが異なるときには、前記時間差が前記所定時間以下であると判定する、請求項２に記載の回路。
【請求項４】
前記クロック位相判定回路は、
直列接続され且つそれぞれが入力された信号を第１時間遅延させる複数の第１遅延素子を有し、前記第１クロックが入力されると共に、入力された前記第１クロックを遅延する前記第１遅延素子の段数が変更可能である第１遅延回路を有し、
前記第１周期を前記第１時間で正規化した第１正規化周期、前記第２周期を前記第１時間で正規化した第２正規化周期、及び前記所定の周期数を使用して、前記所定の周期数に対応する前記第１クロックの周期数である第１位相判定周期数を演算し、
前記第１正規化周期と前記第１位相判定周期数を使用して、前記第１クロックの周期数に応じた時間を演算し、
前記第２正規化周期と前記所定の周期の周期数とを使用して、前記所定の周期数に応じた時間を演算する、請求項２又は３に記載の回路。
【請求項５】
前記クロック位相判定回路は、
直列接続され且つそれぞれが入力された信号を前記第１時間遅延させる複数の第２遅延素子を有し、前記第２クロックが入力されると共に、入力された前記第２クロックを遅延する前記第２遅延素子の段数が変更可能である第２遅延回路を更に有し、
前記第１クロックを前記第１遅延回路で遅延させた遅延時間が、前記第１周期に一致したと判定するまで、前記第１クロックを遅延する前記第１遅延素子の段数を変更しながら前記第１周期と該遅延時間とを比較して、前記第１正規化周期を決定し、
前記第２クロックを前記第２遅延回路で遅延させた遅延時間が、前記第２周期に一致したと判定するまで、前記第２クロックを遅延する前記第２遅延素子の段数を変更しながら前記第２周期と該遅延時間とを比較して、前記第２正規化周期を決定する、請求項４に記載の回路。
【請求項６】
第１周期を持つ第１クロックの第１エッジに同期してデータを出力する出力部を有する第１回路と、前記第１周期と相違する第２周期を持つ第２クロックと、制御信号とが入力され、前記第２クロックの第２エッジと前記制御信号によって動作が制御される入力部を有する第２回路とを有する回路において、
前記所定の周期後の前記第１エッジと前記第２エッジとの時間差が、所定時間よりも大きいか否かを判定し、
前記時間差が所定時間より大きいと判定したときに、前記所定の周期後に前記制御信号により前記入力部が前記データを受け取ることを許可し、
前記時間差が前記所定時間以下であると判定したときに、前記所定の周期後に前記制御信号により前記入力部が前記データを受け取ることを禁止する、
ことを有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路及びクロック及びその制御方法に関する。より詳細には、本発明は、クロックの周波数が異なる非同期のクロック領域を有する回路及びその制御方法に関する。
【背景技術】
【０００２】
半導体装置の内部で周波数が異なる複数のクロックが使用される場合、クロックの周波数が異なる非同期のクロック領域の間でデータを転送するときにメタ・ステーブルが発生するおそれがある。メタ・ステーブルは、一方のクロック領域から出力されたデータを他方のクロック領域に入力するときに、他方のクロック領域のクロックによりデータの遷移中にラッチされることにより、入力されたデータが不安定なデータになる状態である。メタ・ステーブルが解消するまでの時間は、出力側のクロックの周波数及び入力側のクロックの周波数のそれぞれが高くなるほど、長くなる。
【０００３】
データが入力されるクロック領域の入力部に直列接続された複数のフリップフロップを配置することにより、データが入力されたクロック領域の内部にメタ・ステーブルが伝搬することを防止するメタ・ステーブル対策が知られている。メタ・ステーブルが解消するまでの時間に対応する時間、入力されたデータを直列接続された複数のフリップフロップで順次ラッチさせることにより、データが入力されたクロック領域の内部にメタ・ステーブルが伝搬することを防止する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−４５８８０号公報
【特許文献２】特開平１１−３１２０２７号公報
【特許文献３】特開２０００−８２９４０号公報
【特許文献４】特開２００３−６９５４０号公報
【非特許文献】
【０００５】
【非特許文献１】「ＬＳＩ設計の基本ＲＴＬ設計スタイルガイド」（ＳＴＡＲＣ編、培風館、２０１１年）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のメタ・ステーブル対策では、出力側のクロックの周波数及び入力側のクロックの周波数のそれぞれが高くなると、データが入力されるクロック領域の入力部に配置されるフリップフロップの段数が増加するおそれがある。また、半導体装置の製造プロセスが進歩することによりフリップフロップの動作速度が速くなると、データが入力されるクロック領域の入力部に配置されるフリップフロップの段数が更に増加するおそれがある。
【０００７】
従来のメタ・ステーブル対策には、非同期のクロック領域の間でデータを転送するときに、複数段のフリップフロップを介してデータが転送されるため、非同期のクロック領域間のデータ転送のレイテンシが大きくなるという課題がある。
【０００８】
一実施形態では、非同期クロック領域間のデータ転送時のレイテンシの増加を抑制しつつ、非同期クロック領域間で生じるメタ・ステーブルの発生を防止する回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、回路は、第１回路と、第２回路と、クロック位相判定回路とを有する。第１回路は、第１周期を持つ第１クロックの第１エッジに同期してデータを出力する出力部を有する。第２回路は、第１周期と相違する第２周期を持つ第２クロックと、制御信号とが入力される入力部を有する。第２回路の入力部は、第２クロックの第２エッジと制御信号によって動作が制御される。クロック位相判定回路は、所定の周期後の第１エッジと第２エッジとの時間差が、所定時間よりも大きいか否かを判定する。クロック位相判定回路は、時間差が所定時間よりも大きいと判定したときに、所定の周期後に制御信号により入力部がデータを受け取ることを許可する。クロック位相判定回路は、時間差が所定時間以下であると判定したときに、所定の周期後に制御信号により入力部がデータを受け取ることを禁止する。
【発明の効果】
【００１０】
一実施形態では、非同期クロック領域間のデータ転送時のレイテンシの増加を抑制しつつ、非同期クロック領域間で生じるメタ・ステーブルの発生を防止することが可能になった。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る回路を有する半導体装置の回路ブロック図である。
【図２】図１に示すクロック位相判定回路の内部回路ブロック図である。
【図３】図２に示す第１クロック周期判定回路の内部回路ブロック図である。
【図４】図３に示す位相比較回路の内部回路ブロック図である。
【図５】図３に示すアップダウンカウンタの内部回路ブロック図である。
【図６】図３に示すデコーダの内部回路ブロック図である。
【図７】図２に示す位相関係演算回路の機能ブロック図である。
【図８】第１エッジと第２エッジの位相関係について説明する図である。
【図９】図２に示すエッジ選択回路の内部回路ブロック図である。
【図１０】図９に示す第１セットアップエッジ選択回路の内部回路ブロック図である。
【図１１】図１０に示す出力信号選択回路の内部回路ブロック図である。
【図１２】演算された位相関係より１を減算した値が選択素子番号Ｌ１よりも大きい場合に生じる現象について説明する図である。
【図１３】第１セットアップエッジ、第２セットアップエッジ、第１ホールドエッジ及び第２ホールドエッジと、第１クロック及び第２クロックとの位相関係を示す図である。
【図１４】（ａ）〜（ｃ）は図２に示すセットアップホールド判定回路の初段のフリップフロップのデータとクロックとの関係を示す図であり、（ｄ）は図２に示すセットアップホールド判定回路の初段のフリップフロップにおいてデータとクロックの時間差がセットアップ時間又はホールド時間以下であるときの真理値表を示す図である。
【図１５】図２に示す非同期位相比較回路の内部回路ブロック図である。
【図１６】図２に示すセットアップホールド判定回路が第１クロックの第１エッジと第２クロックの第２エッジとの時間差がセットアップ時間又はホールド時間以下であると判定するときのタイミングチャートを示す図である。
【図１７】図２に示すクロック位相判定回路の処理フローを示す図である。
【図１８】クロック位相判定回路の変形例を示す図である。
【発明を実施するための形態】
【００１２】
以下図面を参照して、回路及びその制御方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
【００１３】
回路は、第１回路と、第２回路と、クロック位相判定回路とを有する。第１回路は、第１クロックの立上がりエッジである第１エッジに同期してデータを出力する。第２回路は、イネーブル信号が入力されているときに、第１クロックと周期が異なる第２クロックの立上がりエッジである第２エッジでデータをラッチする。クロック位相判定回路は、第２クロックの所定の周期後の第１クロックの第１エッジと第２クロックの第２エッジとの時間差が所定時間、例えば、セットアップ時間及びホールド時間より大きいか否かを判定する。クロック位相判定回路は、第１エッジと第２エッジとの時間差と所定時間との大小関係に応じて、所定の周期後にデータをラッチするか否かを判定してメタ・ステーブルの発生を防止する。すなわち、クロック位相判定回路は、入力されるデータのメタ・ステーブル対策を所定の周期前に実行していることになる。クロック位相判定回路は、第２回路に入力されるデータのメタ・ステーブル対策を所定の周期前に実行するので、入力されたデータのメタ・ステーブル対策用に複数段のフリップフロップを、第２回路の入力部に配置しなくてもよい。回路は、メタ・ステーブル対策用に複数段のフリップフロップが第２回路の入力部に配置されないので、入力部へのデータ転送時のレイテンシの増加を抑制できる。
【００１４】
図１は実施形態に係る回路を有する半導体装置の回路ブロック図である。
【００１５】
半導体装置１は、第１回路１０と、第２回路２０と、クロック位相判定回路３０と、原クロック生成器４０を有する。第１回路１０は、第１クロック生成器１１と、第１論理部１２と、出力部１３とを有する。第２回路２０は、第２クロック生成器２１と、第２論理部２２と、入力部２３とを有する。
【００１６】
第１クロック生成器１１は、原クロック生成器４０から入力される原クロックＣＬＫを分周して、第１周期を持つ第１クロックＣＬＫＡを生成し、生成した第１クロックＣＬＫＡを第１論理部１２、出力部１３及びクロック位相判定回路３０に出力する。第１論理部１２は、組み合わせ回路及び順序回路を有し、第１論理部１２の順序回路は、第１クロックＣＬＫＡに同期して動作する。出力部１３は、第１論理部１２から入力されたデータを第１クロックＣＬＫＡの立上がりエッジである第１エッジでラッチして入力部２３に出力する複数のフリップフロップ１４を有する。第１論理部１２から入力されたデータは、第１クロックＣＬＫＡの立上がりエッジに同期して出力される。
【００１７】
第２クロック生成器２１は、原クロック生成器４０から入力される原クロックＣＬＫを分周して、第１周期と相違する第２周期を持つ第２クロックＣＬＫＢを生成する。第２クロック生成器２１は、生成した第２クロックＣＬＫＢを第２論理部２２、入力部２３及びクロック位相判定回路３０に出力する。第２論理部２２は、組み合わせ回路及び順序回路を有し、第２論理部２２の順序回路は、第２クロックＣＬＫＢに同期して動作する。入力部２３は、イネーブル信号がクロック位相判定回路３０から入力されているときに、出力部１３から入力されたデータを第２クロックＣＬＫＢの立上がりエッジである第２エッジでラッチして第２論理部２２に出力する複数のフリップフロップ２４を有する。イネーブル信号は、前記第１クロックＣＬＫＡの第１エッジと前記第２クロックＣＬＫＢの第２エッジとの時間差が、セットアップ時間及びホールド時間よりも大きいときに出力されてラッチを許可する信号である。
【００１８】
クロック位相判定回路３０は、第１クロックＣＬＫＡの第１周期と第２クロックＣＬＫＢの第２周期の周期差に基づいて、第２クロックＣＬＫＢの所定の周期後における第１エッジと第２エッジとの位相関係を演算する。そして、クロック位相判定回路３０は、演算された位相関係に基づいて、所定の周期後に第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの時間差が、入力部２３のセットアップ時間及びホールド時間より大きいか否かを判定する。クロック位相判定回路３０は、第１クロックＣＬＫＡの第１エッジと第２エッジとの時間差がセットアップ時間及びホールド時間より大きいと判定すると、所定の周期後にイネーブル信号を第２回路２０に出力する。一方、クロック位相判定回路３０は、第１クロックＣＬＫＡの第１エッジと第２エッジとの時間差がセットアップ時間及びホールド時間以下であると判定すると、所定の周期後にイネーブル信号を第２回路２０に出力しない。
【００１９】
図２は、クロック位相判定回路３０の内部回路ブロック図である。
【００２０】
クロック位相判定回路３０は、第１クロック周期判定回路３１と、第２クロック周期判定回路３２と、位相関係演算回路３３と、エッジ選択回路３４と、セットアップホールド判定回路３５とを有する。
【００２１】
図３は、第１クロック周期判定回路３１の内部回路ブロック図である。
【００２２】
第１クロック周期判定回路３１は、ＤＬＬ（Dely Locked Loop）とも称される回路であり、遅延回路３１０と、位相比較回路３１４と、アップダウンカウンタ３１５と、デコーダ３１６とを有する。遅延回路３１０は、第１遅延素子列３１１と、第２遅延素子列３１２と、折り返し回路３１３とを有する。
【００２３】
第１遅延素子列３１１及び第２遅延素子列３１２のそれぞれは、直列接続され且つそれぞれの遅延時間が所定の時間である単位時間であるＴ個の遅延素子３１７を有する。折り返し回路３１３は、遅延時間が遅延素子３１７と同様に単位時間であると見なせるＴ個の接続回路３１８を有する。折り返し回路３１３の接続回路３１８のそれぞれは、第１遅延素子列３１１の初段からＮ段目の遅延素子３１７の出力端子と第２遅延素子列３１２の最終段からＮ段目の遅延素子３１７の入力端子との間を接続する。例えば、制御信号Ｃｔｌ０が入力される接続回路３１８が選択されたとき、折り返し回路３１３は、第１遅延素子列３１１の初段の遅延素子３１７の出力端子と第２遅延素子列３１２の最終段の遅延素子３１７の入力端子との間を接続する。このとき、入力クロックＣＬＫinと出力クロックＣＬＫoutとの間の遅延時間は、遅延素子３１７の遅延時間である単位時間の３倍となる。制御信号Ｃｔｌ０〜Ｃｔｌ（Ｔ−１）は、選択された接続回路３１８が、第１遅延素子列３１１の初段から何段目の第１遅延素子列３１１を選択するかを示す信号である。すなわち、制御信号ＣｔｌＮが入力される接続回路３１８が選択されたとき、入力クロックＣＬＫinと出力クロックＣＬＫoutとの間の遅延時間は、遅延素子３１７の遅延時間である単位時間の（２Ｎ＋１）倍となる。
【００２４】
第１遅延素子列３１１の遅延素子３１７の出力信号ｔａｐ０〜ｔａｐ（Ｔ−１）及び第２遅延素子列３１２の遅延素子３１７の出力信号ｔａｐＴ〜ｔａｐ（２Ｔ−１）のそれぞれは、エッジ選択回路３４に出力される。信号ｔａｐ０〜ｔａｐ（２Ｔ−１）のそれぞれは、遅延素子３１７の段数に応じて第１クロックＣＬＫＡがデータをラッチする第１エッジを位相シフトした第１エッジ位相シフト信号である。
【００２５】
図４は、位相比較回路３１４の内部回路ブロック図である。
【００２６】
位相比較回路３１４は、入力クロックＣＬＫinがＣＫ端子に入力される第１フリップフロップ３１４１と、出力クロックＣＬＫoutがＣＫ端子に入力される第２フリップフロップ３１４２と、ＮＡＮＤ素子３１４３と、インバータ素子３１４４とを有する。位相比較回路３１４は、第１フリップフロップ３１４１が「１」を出力する周期とされる第２フリップフロップ３１４２が「１」を出力する周期とを比較し、比較結果に基づいてアップダウン信号を出力する。第１フリップフロップ３１４１が「１」を出力する周期は第１クロックＣＬＫＡの第１周期であり、第２フリップフロップ３１４２が「１」を出力する周期は遅延回路３１０の遅延量に対応する時間である。すなわち、位相比較回路３１４は、遅延回路３１０の遅延量が第１クロックＣＬＫＡの第１周期より小さいとき、遅延回路３１０の遅延量が大きくなるようにアップダウン信号を出力する。この場合のアップダウン信号は「０」である。位相比較回路３１４は、遅延回路３１０の遅延量が第１クロックＣＬＫＡの第１周期より大きいとき、遅延回路３１０の遅延量が小さくなるようにアップダウン信号を出力する。この場合のアップダウン信号は「１」である。位相比較回路３１４が生成したアップダウン信号は、アップダウンカウンタ３１５に出力される。
【００２７】
図５は、アップダウンカウンタ３１５の内部回路ブロック図である。
【００２８】
アップダウンカウンタ３１５は、アップダウン信号が入力される加算回路３１５１と、それぞれが加算回路３１５１の加算結果をラッチするｒ＋１個のフリップフロップ３１５２とを有する。ここで、ｒは、第１遅延素子列３１１及び第２遅延素子列３１２のそれぞれが有する遅延素子３１７の数である「Ｔ」に対して「Ｔ＋１＜２r＋１」の関係を満たす整数である。加算回路３１５１は第１入力端子群Ａ0〜Ａrと、第２入力端子群Ｂ0〜Ｂrと、第１入力端子群Ａ0〜Ａr及び第２入力端子群Ｂ0〜Ｂrのそれぞれ入力されたデータを加算したデータが出力される出力端子群Ｙ0〜Ｙrとを有する。加算回路３１５１の出力端子Ｙnは、第１入力端子Ａnに入力されたデータと第２入力端子Ｂnに入力されたデータとを加算したデータが出力される。加算回路３１５１のＡ0には常に「１」が入力され、加算回路３１５１の第１入力端子群Ａ1〜Ａrのそれぞれは位相比較回路３１４からアップダウン信号が入力される。加算回路３１５１の第２入力端子群Ｂ0〜Ｂrには、ｒ＋１個のフリップフロップ３１５２のそれぞれから出力されるカウント値Ｑ0〜Ｑrが入力される。
【００２９】
加算回路３１５１は、アップダウン信号として「０」が位相比較回路３１４から入力されると、現在のカウント値Ｑ0〜Ｑrに「１」を加算した値を新たなカウント値として出力する。加算回路３１５１は、アップダウン信号として「１」が位相比較回路３１４から入力されると、第１入力端子群Ａ0〜Ａrに「１１・・・１１」が入力されるので、現在のカウント値Ｑ0〜Ｑrに「１」を減算した値を新たなカウント値Ｑ0〜Ｑrとして出力する。カウント値Ｑ0〜Ｑrは、アップダウンカウンタ３１５からデコーダ３１６に出力される。
【００３０】
図６は、デコーダ３１６の内部回路ブロック図である。
【００３１】
デコーダ３１６は、Ｔ個のＮＡＮＤ素子３１６１を有する。Ｔ個のＮＡＮＤ素子３１６１のそれぞれは、アップダウンカウンタ３１５から入力されたカウント値Ｑ0〜Ｑr、カウント値Ｑ0〜Ｑrのそれぞれの反転データの何れかが入力され、Ｔ個のＮＡＮＤ素子３１６１の何れか１つが「１」を出力する。例えば、制御信号ｃｔｌ０を出力するＮＡＮＤ素子３１６１は、カウント値Ｑ0〜Ｑrの全てが「０」のときに「１」を出力する。また、制御信号ｃｔｌ１を出力するＮＡＮＤ素子３１６１は、カウント値Ｑ0が「１」であり且つ他のカウント値Ｑ0〜Ｑrの全て「０」のときに「１」を出力する。デコーダ３１６は、制御信号Ｃｔｌ０〜Ｃｔｌ（Ｔ−１）を選択遅延素子番号Ｌ１として、位相関係演算回路３３に出力する。
【００３２】
第１クロック周期判定回路３１では、位相比較回路３１４が遅延回路３１０の遅延量と第１クロックＣＬＫＡの第１周期の比較結果に応じてアップダウン信号をアップダウンカウンタ３１５に出力する。アップダウンカウンタ３１５は、アップダウン信号に応じてアップダウンしたカウント値Ｑ0〜Ｑrをデコーダ３１６に出力する。デコーダ３１６は、カウント値Ｑ0〜Ｑrに応じて、遅延回路３１０の遅延量を増減するように、制御信号Ｃｔｌ０〜Ｃｔｌ（Ｔ−１）を遅延回路３１０に出力する。第１クロック周期判定回路３１は、このような構成を有することにより、遅延回路３１０の遅延量が遅延回路３１０に入力された第１クロックＣＬＫＡの第１周期に等しくなるように調整する。第１クロック周期判定回路３１は、遅延回路３１０の遅延量が第１クロックＣＬＫＡの第１周期に等しくなるように調整されたときの制御信号Ｃｔｌ０〜Ｃｔｌ（Ｔ−１）を、選択遅延素子番号Ｌ１として位相関係演算回路３３に出力する。
【００３３】
第２クロック周期判定回路３２は、第１クロック周期判定回路３１と同様に、遅延回路３１０と、位相比較回路３１４と、アップダウンカウンタ３１５と、デコーダ３１６とを有する。遅延回路３１０の遅延素子３１７及び接続回路３１８の遅延量は、第１クロック周期判定回路３１と同様に単位時間である。第２クロック周期判定回路３２は、第１クロック周期判定回路３１と同様な回路構成を有するので、第２クロック周期判定回路３２の構成についての詳細な説明は省略する。
【００３４】
第２クロック周期判定回路３２では、遅延回路３１０の遅延量が遅延回路３１０に入力された第２クロックＣＬＫＢの第２周期に等しくなるように調整する。第２クロック周期判定回路３２は、遅延回路３１０の遅延量が第２クロックＣＬＫＢの第２周期に等しくなるように調整されたときの制御信号Ｃｔｌ０〜Ｃｔｌ（Ｔ−１）を選択遅延素子番号Ｌ２として、位相関係演算回路３３に出力する。
【００３５】
図７は、位相関係演算回路３３の機能ブロック図である。
【００３６】
位相関係演算回路３３は、第１クロック乗算器３３１と、第１クロック加算器３３２と、第２クロック乗算器３３３と、第２クロック加算器３３４と、第２周期数乗算器３３５とを有する。位相関係演算回路３３は、第１周期数除算器３３６と、第１周期数加算器３３７と、第１周期数乗算器３３８と、位相減算器３３９とを更に有する。
【００３７】
第１クロック乗算器３３１は第１クロック周期判定回路３１から入力される選択素子番号Ｌ１を２倍し、第１クロック加算器３３２は２倍にされた選択素子番号Ｌ１に１を加算して正規化された第１クロックの周期である第１正規化周期ｍを決定する。ここで、選択素子番号Ｌ１は、第１クロック周期判定回路３１において第１遅延素子列３１１の初段から何段目の第１遅延素子列３１１を選択するかを示す信号である。第１クロック加算器３３２が第１正規化周期ｍとして決定した２×Ｌ１＋１は、第１クロック周期判定回路３１が遅延回路３１０の遅延量を第１クロックＣＬＫＡの第１周期に等しくなるように調整したときの遅延素子３１７の段数に相当する。
【００３８】
第２クロック乗算器３３３は第２クロック周期判定回路３２から入力される選択素子番号Ｌ２を２倍し、第２クロック加算器３３４は２倍にされた選択素子番号Ｌ２に１を加算して正規化された第２クロックの周期である第２正規化周期ｎを決定する。第２クロック加算器３３４が第２正規化周期ｎとして決定した２×Ｌ２＋１は、第２クロック周期判定回路３２が遅延回路３１０の遅延量を第２クロックＣＬＫＢの第２周期に等しくなるように調整したときの遅延素子３１７の段数に相当する。
【００３９】
第２周期数乗算器３３５は、第２クロック加算器３３４が決定した第２正規化周期ｎに第２位相判定周期数Ｎを乗算して、第２クロックシフト量ｎ×Ｎを生成する。ここで、第２位相判定周期数Ｎは、クロック位相判定回路３０が第１クロックＣＬＫＡと第２クロックＣＬＫＢとの位相関係を演算する周期が、第２クロックＣＬＫＢの周期で現在から何周期後であるかを示すものである。また、第２クロックシフト量ｎ×Ｎは、第２位相判定周期数Ｎに応じた時間を正規化したものである。例えば、クロック位相判定回路３０が第１クロックＣＬＫＡと第２クロックＣＬＫＢとの位相関係を演算する周期が、第２クロックＣＬＫＢの周期で現在から３周期後である場合、第２位相判定周期数Ｎは３になる。
【００４０】
第１周期数除算器３３６は、第２周期数乗算器３３５が生成した第２クロックシフト量ｎ×Ｎを第１クロック加算器３３２が決定した第１正規化周期ｍで除する。次いで、第１周期数加算器３３７は、第１周期数除算器３３６が除算することにより得られる商に１を加算して第１位相判定周期数Ｍとする。第１位相判定周期数Ｍは、位相関係演算回路３３が第１クロックＣＬＫＡと第２クロックＣＬＫＢとの位相関係を演算する周期が、第１クロックＣＬＫＡの周期で現在から何周期後であるかを示すものである。
【００４１】
第１周期数乗算器３３８は、第１クロック加算器３３２が決定した第１正規化周期ｍに第１位相判定周期数Ｍを乗算して、第１クロックシフト量ｍ×Ｍを生成する。ここで、第１クロックシフト量ｍ×Ｍは、第２位相判定周期数Ｎに応じた第１位相判定周期数Ｍに応じた時間を正規化したものである。
【００４２】
そして、位相減算器３３９は、第１周期数乗算器３３８が生成した第１クロックシフト量ｍ×Ｍから第２周期数乗算器３３５が生成した第２クロックシフト量ｎ×Ｎを減算することにより、位相関係ｍ×Ｍ―ｎ×Ｎを演算する。位相減算器３３９は演算した位相関係ｍ×Ｍ―ｎ×Ｎを示す位相関係信号Ｇ0〜Ｇsをエッジ選択回路３４に出力する。ここで、ｓは、第１遅延素子列３１１及び第２遅延素子列３１２のそれぞれが有する遅延素子３１７の数である「Ｔ」に対して「２Ｔ＋１＜２s＋１」の関係を満たす整数である。
【００４３】
図８は、位相関係ｍ×Ｍ―ｎ×Ｎについて説明する図である。図８では、第２位相判定周期数Ｎは３であり、第１クロックＣＬＫＡの第１エッジ及び第２クロックＣＬＫＢの第２エッジは共に立上がりエッジである。また、第１位相判定周期数Ｍは３である。第２位相判定周期数Ｎである３周期後において、第１クロックＣＬＫＡの第１エッジ及び第２クロックＣＬＫＢの第２エッジは位相が一致している。
【００４４】
位相関係演算回路３３は、第１クロックシフト量ｍ×３から第２クロックシフト量ｎ×３を減算することにより、第２クロックＣＬＫＢの３周期後における第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの位相関係を演算する。位相関係演算回路３３は、第１クロックシフト量ｍ×３から第２クロックシフト量ｎ×３を減算するので、現在の第２クロックＣＬＫＢの第２エッジに対する３周期後のＣＬＫＡの第１エッジの相対的な位置を演算することができる。
【００４５】
図９は、エッジ選択回路３４の内部回路ブロック図である。
【００４６】
エッジ選択回路３４は、第１セットアップエッジ選択回路３４１と、第２セットアップエッジ選択回路３４２と、第１ホールドエッジ選択回路３４３と、第２ホールドエッジ選択回路３４４とを有する。
【００４７】
エッジ選択回路３４は、第１クロックＣＬＫＡを位相シフトした第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）と、位相関係ｍ×Ｍ―ｎ×Ｎと、選択素子番号Ｌ１とが入力される。エッジ選択回路３４は、入力された信号から第１セットアップエッジ信号ｎｓｔａ０と、第２セットアップエッジ信号ｎｓｔａ１と、第１ホールドエッジ信号ｎｈｌｄ０と、第２ホールドエッジ信号ｎｈｌｄ１を生成する。第１セットアップエッジ選択回路３４１は、位相関係ｍ×Ｍ―ｎ×Ｎに応じて選択されることにより位相シフトされた第１エッジをセットアップ時間分の位相を位相シフトした第１セットアップエッジ信号ｎｓｔａ０を生成する。ここで、セットアップ時間は、出力部１３において第１クロックＣＬＫＡの第１エッジでラッチされ、入力部２３に入力されるデータと第２クロックＣＬＫＢの第２エッジとの間のセットアップ時間である。第２セットアップエッジ選択回路３４２は、第１セットアップエッジ信号ｎｓｔａ０に対してセットアップ余裕時間分の位相を更に位相シフトした第２セットアップエッジ信号ｎｓｔａ１を生成する。第１ホールドエッジ選択回路３４３は、位相関係ｍ×Ｍ―ｎ×Ｎに応じて選択されることにより位相シフトされた第１エッジをホールド時間分の位相を位相シフトした第１ホールドエッジ信号ｎｈｌｄ０を生成する。ここで、ホールド時間は、出力部１３において第１クロックＣＬＫＡの第１エッジでラッチされ、入力部２３に入力されるデータと第２クロックＣＬＫＢの第２エッジとの間のホールド時間である。第２ホールドエッジ選択回路３４４は、第１ホールドエッジ信号ｎｈｌｄ０に対してホールド余裕時間分の位相を更に位相シフトした第２ホールドエッジ信号ｎｈｌｄ１を生成する。
【００４８】
図１０は、第１セットアップエッジ選択回路３４１の内部回路ブロック図である。
【００４９】
第１セットアップエッジ選択回路３４１は、コンパレータ３４１１と、減算器３４１２と、ビットシフト回路３４１３と、加算器３４１４と、位相選択回路３４１５と、出力信号選択回路３４１６とを有する。コンパレータ３４１１は、位相関係ｍ×Ｍ―ｎ×Ｎから１を減算した（ｍ×Ｍ―ｎ×Ｎ−１）と、選択素子番号Ｌ１とを比較し、比較結果を位相選択回路３４１５に出力する。減算器３４１２は、第１クロック周期判定回路３１の第１遅延素子列３１１の最終段の遅延素子３１７の出力信号の番号である（Ｔ−１）から選択素子番号Ｌ１を減算して、（Ｔ−１−Ｌ１）を演算する。ビットシフト回路３４１３は、（Ｔ−１−Ｌ１）は上位方向に１ビットシフトして２（Ｔ−１−Ｌ１）を演算する。加算器３４１４は、ビットシフト回路３４１３が演算した２（Ｔ−１−Ｌ１）に位相関係ｍ×Ｍ―ｎ×Ｎを加算して（ｍ×Ｍ―ｎ×Ｎ＋２（Ｔ−１−Ｌ１））を演算する。位相選択回路３４１５は、コンパレータ３４１１が選択素子番号Ｌ１は（ｍ×Ｍ―ｎ×Ｎ−１）以上であると判定したときには、位相関係ｍ×Ｍ―ｎ×Ｎを選択して出力する。また、位相選択回路３４１５は、コンパレータ３４１１が選択素子番号Ｌ１は（ｍ×Ｍ―ｎ×Ｎ−１）よりも小さいと判定したときには、（ｍ×Ｍ―ｎ×Ｎ＋２（Ｔ−１−Ｌ１））を選択して出力する。
【００５０】
出力信号選択回路３４１６は、位相選択回路３４１５から入力される位相関係ｍ×Ｍ―ｎ×Ｎ又は（ｍ×Ｍ―ｎ×Ｎ＋２（Ｔ−１−Ｌ１））に基づいて、第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）の何れか１つを選択して出力する。ここでは、遅延素子３１７の遅延量とセットアップ時間とが等しいものとして、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対して遅延素子３１７の遅延量分の位相を減算した信号を第１セットアップエッジ信号ｎｓｔａ０としている。したがって、出力信号選択回路３４１６の入力端子Ｔ0には第１エッジ位相シフト信号はｔａｐ（２Ｔ−１）が入力され、出力信号選択回路３４１６の入力端子Ｔ1には第１エッジ位相シフト信号はｔａｐ０が入力される。また、出力信号選択回路３４１６の入力端子Ｔ2には第１エッジ位相シフト信号はｔａｐ１が入力される。出力信号選択回路３４１６の入力端子Ｔ1〜Ｔ2T-1のそれぞれには、端子番号から１を減算した第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）が入力される。
【００５１】
図１１は、出力信号選択回路３４１６の内部回路ブロック図である。
【００５２】
出力信号選択回路３４１６は、多段接続された複数の２入力選択回路３４１７を有し、位相関係ｍ×Ｍ―ｎ×Ｎ又は（ｍ×Ｍ―ｎ×Ｎ＋２（Ｔ−１−Ｌ１））に応じた第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）を選択する。出力信号選択回路３４１６の入力端子Ｔ1〜Ｔ2T-1には、端子番号から１を減算した第１エッジ位相シフト信号が入力される。これにより、出力信号選択回路３４１６は、位相関係ｍ×Ｍ―ｎ×Ｎにより選択される経路よりも遅延素子３１７の数が１つ少ない経路を有する第１エッジ位相シフト信号を選択する。そして、出力信号選択回路３４１６は、選択した第１エッジ位相シフト信号を第１セットアップエッジ信号ｎｓｔａ０として出力する。例えば、位相関係ｍ×Ｍ―ｎ×Ｎが０のとき、出力信号選択回路３４１６は、第１エッジ位相シフト信号ｔａｐ（２Ｔ−１）を選択して第１セットアップエッジ信号ｎｓｔａ０として出力する。第１セットアップエッジ信号ｎｓｔａ０は、第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）及び位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対して遅延素子３１７の遅延量分の位相を減算した信号である。
【００５３】
ここでは、遅延素子３１７の遅延量とセットアップ時間とが等しいものとして、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対して遅延素子３１７の遅延量分の位相を減算した信号を第１セットアップエッジ信号ｎｓｔａ０としている。しかしながら、セットアップ時間と遅延素子３１７の遅延量との関係に応じた値となるように、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対してシフトさせる量は設定可能である。遅延素子３１７の遅延量を「ｄ」とし、セットアップ時間を「ｔsta」とした場合、セットアップ時間に応じた遅延素子３１７の数「ｎtsta」は、
ｎtsta  ＝  ｔsta／ｄ
で示される。例えば、セットアップ時間が遅延素子３１７の遅延量の３倍の長さに相当するとき、出力信号選択回路３４１６は、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対して３つシフトして第１セットアップエッジ信号ｎｓｔａ０を出力する。
【００５４】
図１２は、位相関係ｍ×Ｍ―ｎ×Ｎより１を減算した値が選択素子番号Ｌ１よりも大きい場合に生じる現象について説明する図である。より詳細には、位相関係ｍ×Ｍ―ｎ×Ｎより１を減算した値に対応する第１エッジ位相シフト信号が出力されるノードを第１クロックＣＬＫＡが通過しない現象について説明する図である。ここでは、位相関係ｍ×Ｍ―ｎ×Ｎより１を減算した値が４、選択素子番号Ｌ１が３である場合を例にして説明する。
【００５５】
選択素子番号Ｌ１が３であるときは、制御信号Ｃｔｌ３が「１」となり、他の制御信号Ｃｔｌ０〜Ｃｔｌ２及びＣｔｌ４〜Ｃｔｌ（Ｔ−１）は「０」となる。このとき、第１遅延素子列３１１の初段から３段目の遅延素子３１７の出力信号を折り返す折り返し回路３１３の接続回路３１８がオンし、他の接続回路３１８はオフして図１２において太線矢印で示される経路を介して第１クロックＣＬＫＡは遅延される。一方、位相関係ｍ×Ｍ―ｎ×Ｎより１を減算した値により選択される第１エッジ位相シフト信号は、図１２において太線矢印で示される第１クロックＣＬＫＡの経路から外れている第１エッジ位相シフト信号ｔａｐ４である。したがって、位相関係ｍ×Ｍ―ｎ×Ｎより１を減算した値により選択される第１エッジ位相シフト信号ｔａｐ４は、第１クロックＣＬＫＡが通過しないノードからの出力信号になり、第１セットアップエッジ信号ｎｓｔａ０は有効なエッジ信号とならない。
【００５６】
そこで、出力信号選択回路３４１６は、コンパレータ３４１１〜位相選択回路３４１５により、選択素子番号Ｌ１が（ｍ×Ｍ―ｎ×Ｎ−１）よりも小さいと判定したときに（ｍ×Ｍ―ｎ×Ｎ＋２（Ｔ−１−Ｌ１））を選択して出力している。図１２の例では、（ｍ×Ｍ―ｎ×Ｎ＋２（Ｔ−１−Ｌ１））は（２Ｔ−４）となり、図１２において太線矢印で示される第１クロックＣＬＫＡの経路上の位置に変更される。コンパレータ３４１１〜位相選択回路３４１５による処理により、位相関係ｍ×Ｍ―ｎ×Ｎより１を減算した値が選択素子番号Ｌ１よりも小さい場合において、出力信号選択回路３４１６は、有効な第１セットアップエッジ信号ｎｓｔａ０を出力する。
【００５７】
第２セットアップエッジ選択回路３４２は、第１セットアップエッジ選択回路３４１と対応する構成を有する。第２セットアップエッジ選択回路３４２は、第１セットアップエッジ信号ｎｓｔａ０に対してセットアップ余裕時間分の位相を更に位相シフトして第２セットアップエッジ信号ｎｓｔａ１を出力する。このため、第２セットアップエッジ選択回路３４２には、端子番号から２を減算した第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）が入力される。また、第２セットアップエッジ選択回路３４２では、コンパレータ３４１１は、位相関係ｍ×Ｍ―ｎ×Ｎから２を減算した（ｍ×Ｍ―ｎ×Ｎ−２）と、選択素子番号Ｌ１とを比較する。
【００５８】
第１ホールドエッジ選択回路３４３は、第１セットアップエッジ選択回路３４１と対応する構成を有する。第１ホールドエッジ選択回路３４３は、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジをホールド時間分に相当する位相だけ位相シフトする。ここでは、遅延素子３１７の遅延量とセットアップ時間とが等しいものとして、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対して遅延素子３１７の遅延量分の位相を加算した信号を第１ホールドエッジ信号ｎｈｌｄ０としている。このため、第２セットアップエッジ選択回路３４２には、端子番号から１を加算した第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）が入力される。また、第２セットアップエッジ選択回路３４２では、コンパレータ３４１１は、位相関係ｍ×Ｍ―ｎ×Ｎに１を加算した（ｍ×Ｍ―ｎ×Ｎ＋１）と、選択素子番号Ｌ１とを比較する。
【００５９】
ここでは、遅延素子３１７の遅延量とホールド時間とが等しいものとして、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対して遅延素子３１７の遅延量分の位相を減算した信号第１ホールドエッジ信号ｎｈｌｄ０としている。しかしながら、ホールド時間と遅延素子３１７の遅延量との関係に応じた値となるように、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対してシフトさせる量は設定可能である。遅延素子３１７の遅延量を「ｄ」とし、ホールド時間を「ｔhld」とした場合、ホールド時間に応じた遅延素子３１７の数「ｎthld」は、
ｎthld  ＝  ｔhld／ｄ
で示される。例えば、ホールド時間が遅延素子３１７の遅延量の３倍の長さに相当するとき、出力信号選択回路３４１６は、位相関係ｍ×Ｍ―ｎ×Ｎに応じて位相シフトされた第１エッジに対して３つシフトして第１ホールドエッジ信号ｎｈｌｄ０を出力する。
【００６０】
第２ホールドエッジ選択回路３４４は、第１セットアップエッジ選択回路３４１と対応する構成を有する。第２ホールドエッジ選択回路３４４は、第１ホールドエッジ信号ｎｈｌｄ０に対してセットアップ余裕時間分の位相を更に位相シフトして第２ホールドエッジ信号ｎｈｌｄ１を出力する。このため、第２ホールドエッジ選択回路３４４には、端子番号に２を加算した第１エッジ位相シフト信号ｔａｐ０〜ｔａｐ（２Ｔ−１）が入力される。また、第２ホールドエッジ選択回路３４４では、コンパレータ３４１１は、位相関係ｍ×Ｍ―ｎ×Ｎに２を加算した（ｍ×Ｍ―ｎ×Ｎ＋２）と、選択素子番号Ｌ１とを比較する。
【００６１】
図１３は、第１セットアップエッジ信号ｎｓｔａ０、第２セットアップエッジ信号ｎｓｔａ１、第１ホールドエッジ信号ｎｈｌｄ０及び第２ホールドエッジ信号ｎｈｌｄ１と、第１クロックＣＬＫＡ及び第２クロックＣＬＫＢとの位相関係を示す図である。図１３では、図８と同様に、第２位相判定周期数Ｎは３であり、第１クロックＣＬＫＡの第１エッジ及び第２クロックＣＬＫＢの第２エッジは共に立上がりエッジである。また、第１位相判定周期数Ｍは３である。第２位相判定周期数Ｎである３周期後において、第１クロックＣＬＫＡの第１エッジ及び第２クロックＣＬＫＢの第２エッジは位相が一致している。
【００６２】
第１セットアップエッジ信号ｎｓｔａ０は、位相関係ｍ×Ｍ―ｎ×Ｎに応じて選択されることにより位相シフトされた第１エッジからセットアップ時間分位相シフトしている。第２セットアップエッジ信号ｎｓｔａ１は、第１セットアップエッジ信号ｎｓｔａ０に対してセットアップ余裕時間分位相シフトしている。第１ホールドエッジ信号ｎｈｌｄ０は、位相関係ｍ×Ｍ―ｎ×Ｎに応じて選択されることにより位相シフトされた第１エッジをホールド時間分位相シフトしている。第２ホールドエッジ信号ｎｈｌｄ１は、第１ホールドエッジ信号ｎｈｌｄ０に対してホールド余裕時間分位相シフトしている。
【００６３】
セットアップホールド判定回路３５は、第２位相判定周期数Ｎに対応するＮ段直列接続されたフリップフロップ３５１−１〜３５１−Ｎと、非同期位相比較回路３５２とを有する。フリップフロップ３５１−１〜３５１−Ｎのそれぞれは、第２クロックＣＬＫＢの第２エッジでデータをラッチする。初段のフリップフロップ３５１−１には、第１セットアップエッジ信号ｎｓｔａ０、第２セットアップエッジ信号ｎｓｔａ１、第１ホールドエッジ信号ｎｈｌｄ０及び第２ホールドエッジ信号ｎｈｌｄ１が入力される。
【００６４】
図１４（ａ）〜１４（ｃ）は、初段のフリップフロップ３５１−１に入力される第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１のエッジと第２クロックＣＬＫＢの第２エッジとの関係を示す図である。図１４（ｄ）は、初段のフリップフロップ３５１−１において第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１のエッジと第２エッジとの時間差が、セットアップ時間又はホールド時間より大きいか否かを示す真理値表である。図１４（ａ）〜１４（ｃ）において、破線は第２クロックＣＬＫＢの第２エッジを示し、一点鎖線は位相関係ｍ×Ｍ―ｎ×Ｎによって位相シフトした第１クロックＣＬＫＡの第１エッジを示す。
【００６５】
図１４（ａ）では、第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１のエッジは第２エッジの前に位置する。この状態では、第２エッジの時刻における第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１のレベルはすべて「１」であり、所定周期後の第１エッジと第２エッジとの時間差は、セットアップ時間及びホールド時間より大きいと判定される。図１４（ｂ）では、第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１のエッジは第２エッジの後ろに位置する。この状態では、第２エッジの時刻における第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１のレベルはすべて「０」であり、所定周期後の第１エッジと第２エッジとの時間差は、セットアップ時間及びホールド時間より大きいと判定される。図１４（ｃ）では、第１セットアップエッジ信号ｎｓｔａ０のエッジと第１ホールドエッジ信号ｎｈｌｄ０のエッジとの間に第２エッジが位置する。この状態では、第２エッジの時刻における第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１のレベルには「０」と「１」が混在し、所定周期後の第１エッジと第２エッジとの時間差は、セットアップ時間及びホールド時間以下であると判定される。第１セットアップエッジ信号ｎｓｔａ０〜第２ホールドエッジ信号ｎｈｌｄ１の第２エッジの時刻におけるレベルから、所定周期後の第１エッジと第２エッジとの時間差がセットアップ時間及びホールド時間より大きいか否かを判定する論理を、図１４（ｄ）に示す。
【００６６】
図１５は、非同期位相比較回路３５２の内部回路ブロック図である。
【００６７】
非同期位相比較回路３５２は、２入力ＮＯＲ素子３５２１と、３入力ＮＡＮＤ素子３５２２とを有する。非同期位相比較回路３５２は、図１４（ｄ）に示す真理値表に示される論理を論理回路で実現したものであり、最終段のフリップフロップ３５１−Ｎの出力信号に応じて、第２位相判定周期数Ｎ後に第２回路２０の入力部２３にイネーブル信号を出力する。非同期位相比較回路３５２は、図１４（ｄ）に示す真理値表に従って、第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの時間差がセットアップ時間及びホールド時間より大きいかを判定することにより、イネーブル信号を出力する。非同期位相比較回路３５２は、第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの間の時間差がセットアップ時間及びホールド時間より大きいと判定したとき、出力信号を「１」としてイネーブル信号を入力部２３に出力する。非同期位相比較回路３５２は、第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの間の時間差がセットアップ時間又はホールド時間以下であると判定したとき、出力信号を「０」としてイネーブル信号を入力部２３に出力しない。非同期位相比較回路３５２では、第１セットアップエッジ信号ｎｓｔａ０等４つの信号の全てが第２クロックＣＬＫＢの第２エッジと所定の位相関係となるときにイネーブル信号を出力する。しかしながら、セットアップエッジ信号ｎｓｔａ０又はｎｓｔａ１の何れか一方及びホールドエッジ信号ｎｈｌｄ０又はｎｈｌｄ１の何れか一方が第２クロックＣＬＫＢの第２エッジと所定の位相関係となるときにイネーブル信号を出力する構成としてもよい。
【００６８】
図１６は、セットアップホールド判定回路３５が第１エッジと第２エッジとの時間差がセットアップ時間又はホールド時間以下であると判定するときのタイミングチャートを示す図である。図１６では、図８と同様に、第２位相判定周期数Ｎは３であり、第１クロックＣＬＫＡの第１エッジ及び第２クロックＣＬＫＢの第２エッジは共に立上がりエッジである。第２位相判定周期数Ｎは３であるので、セットアップホールド判定回路３５には、３つのフリップフロップ３５１−１〜３５１−３が配置される。また、第１位相判定周期数Ｍは３である。第２位相判定周期数Ｎである３周期後において、第１クロックＣＬＫＡの第１エッジ及び第２クロックＣＬＫＢの第２エッジは位相が一致している。
【００６９】
現在の周期において、初段のフリップフロップ３５１−１が第１セットアップエッジ信号ｎｓｔａ０及び第２セットアップエッジ信号ｎｓｔａ１として「１」をラッチし、第１ホールドエッジ信号ｎｈｌｄ０及び第２ホールドエッジ信号ｎｈｌｄ１として「０」をラッチする。２段目のフリップフロップ３５１−２及び３段目のフリップフロップ３５１−３は、初段のフリップフロップ３５１−１と同一のデータをラッチする。そして、非同期位相比較回路３５２は、第２クロックＣＬＫＢの３周期後の第２エッジにおいて、第２回路２０の入力部２３がデータをラッチにないように出力信号のレベルを「０」にし、イネーブル信号を出力しない。
【００７０】
図１７は、クロック位相判定回路３０の処理フローを示す図である。
【００７１】
位相関係演算回路３３は、第１クロック周期判定回路３１の遅延回路３１０の遅延量が第１クロックＣＬＫＡの第１周期に等しくなるように調整された選択素子番号Ｌ１から第１クロックＣＬＫの第１正規化周期ｍを演算する（Ｓ１０１）。次いで、位相関係演算回路３３は、第２クロック周期判定回路３２の遅延回路３１０の遅延量が第２クロックＣＬＫＢの第２周期に等しくなるように調整された選択素子番号Ｌ２から第２クロックＣＬＫの第２正規化周期ｎを演算する（Ｓ１０２）。次いで、位相関係演算回路３３は、第２クロック加算器３３４が決定した第２正規化周期ｎに第２位相判定周期数Ｎを乗算して第２クロックシフト量ｎ×Ｎを演算する（Ｓ１０３）。次いで、位相関係演算回路３３は、第２クロックシフト量ｎ×Ｎと第１正規化周期ｍとを使用して、第１位相判定周期数Ｍを演算する（Ｓ１０４）。次いで、位相関係演算回路３３は、Ｓ１０１で演算した第１正規化周期ｍと、Ｓ１０４で演算した第１位相判定周期数Ｍとから第１クロックシフト量ｍ×Ｍを演算する（Ｓ１０５）。次いで、位相関係演算回路３３は、Ｓ１０３で演算した第２クロックシフト量ｎ×Ｎと、Ｓ１０５で演算した第１クロックシフト量ｍ×Ｍとを使用して、位相関係ｍ×Ｍ―ｎ×Ｎを演算する（Ｓ１０６）。
【００７２】
次いで、エッジ選択回路３４は、位相関係ｍ×Ｍ―ｎ×Ｎ等を使用して、第１セットアップエッジ信号ｎｓｔａ０と、第２セットアップエッジ信号ｎｓｔａ１と、第１ホールドエッジ信号ｎｈｌｄ０と、第２ホールドエッジ信号ｎｈｌｄ１とを生成する（Ｓ１０７）。次いで、Ｓ１０７で生成された４つの信号は、出力信号選択回路３４１６のＮ個のフリップフロップ３５１−１〜３５１−Ｎにおいて第２クロックＣＬＫＢにより順次ラッチして、Ｎ周期後まで遅延される（Ｓ１０８）。次いで、非同期位相比較回路３５２は、第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの時間差が、セットアップ時間及びホールド時間より大きいか否かを判定する（Ｓ１０９）。そして、非同期位相比較回路３５２は、第１エッジと第２エッジとの時間差がセットアップ時間及びホールド時間よりも大きいと判定したときに、入力部２３がデータをラッチするようにイネーブル信号を第２回路２０に出力する（Ｓ１１０）。
【００７３】
図１８は、クロック位相判定回路３０の変形例を示す図である。
【００７４】
クロック位相判定回路５０は、正規化された第１クロックＣＬＫＡの周期である第１正規化周期ｍ及び正規化された第２クロックＣＬＫＢの周期である第２正規化周期ｎが半導体装置１の外部から入力されることがクロック位相判定回路３０と相違する。第１正規化周期ｍ及び第２正規化周期ｎが外部から入力されるため、クロック位相判定回路５０は、第１クロック周期判定回路３１及び第２クロック周期判定回路３２を有さない。しかしながら、クロック位相判定回路５０は、直列接続された複数の遅延素子３１７を有する遅延列５１を有する。第１正規化周期ｍ及び第２正規化周期ｎのそれぞれは、遅延素子３１７の遅延量で正規化された値である。また、位相関係演算回路５３は、第１クロック乗算器３３１、第１クロック加算器３３２、第２クロック乗算器３３３及び第２クロック加算器３３４を有さない。エッジ選択回路５４は、エッジ選択回路３４と同様に、位相関係ｍ×Ｍ―ｎ×Ｎから第１セットアップエッジ信号ｎｓｔａ０と、第２セットアップエッジ信号ｎｓｔａ１と、第１ホールドエッジ信号ｎｈｌｄ０と、第２ホールドエッジ信号ｎｈｌｄ１を生成する。クロック位相判定回路５０では、図１２を参照して説明したような現象は生じないので、エッジ選択回路５４は、コンパレータ３４１１〜位相選択回路３４１５は有さない。
【００７５】
クロック位相判定回路３０の代わりにクロック位相判定回路５０を配置する場合には、半導体装置１の外部で遅延素子３１７の遅延量を検出し、検出した遅延量を使用して第１正規化周期ｍ及び第２正規化周期ｎが決定される。例えば、半導体装置１に遅延素子３１７で形成されるリング発振器を形成し、半導体装置１の外部でリング発振器の発振周波数を測定することにより、遅延素子３１７の遅延量が検出される。遅延素子３１７の遅延量の変化に応じて、第１正規化周期ｍ及び第２正規化周期ｎを変更することにより、半導体装置１の電源電圧条件、温度条件及びプロセス条件による遅延量の変化に応じた第１正規化周期ｍ及び第２正規化周期ｎを入力できる。
【００７６】
半導体装置１では、第１周期と第２周期の周期差から、例えば位相関係ｍ×Ｍ―ｎ×Ｎに基づいて、所定の周期後の第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの時間差が、所定時間、例えば入力部２３のセットアップ時間及びホールド時間、より大きいか否かが判定される。半導体装置１では、所定の周期前の状態に基づいて、第１クロックＣＬＫＡの第１エッジと第２クロックＣＬＫＢの第２エッジとの時間差が判定されるので、メタ・ステーブル対策のために数段のフリップフロップを介してデータが転送されることはない。半導体装置１では、非同期のクロック領域間のデータ転送時に数段のフリップフロップを介してデータが転送されることはないので、レイテンシの増加を抑制することができ、また、第１エッジと第２エッジとの時間差が所定時間以下のときにはラッチが禁止されるので、非同期クロック領域間で生じるメタ・ステーブルの発生を防止することができる。
【００７７】
また、半導体装置１では、演算される位相関係ｍ×Ｍ―ｎ×Ｎは、所定の周期に対応する第１クロックの周期数に応じた時間と、所定の周期数に応じた時間との差から演算される。半導体装置１では、所定の周期に対応する第１クロックの周期数に応じた時間と、所定の周期数に応じた時間との差から演算された位相関係ｍ×Ｍ―ｎ×Ｎに応じて第１クロックＣＬＫＡの第１エッジを位相シフトした信号を生成する。しかしながら、半導体装置１では、第２クロックＣＬＫＢを位相シフトした信号を生成しない。尚、半導体装置１の例として、位相関係ｍ×Ｍ―ｎ×Ｎを用いる場合を示したが、位相関係ｍ×Ｍ―ｎ×Ｎを用いずに、第１エッジ及び第２エッジの双方を位相シフトした信号を用いることも可能である。位相関係ｍ×Ｍ―ｎ×Ｎを用いる場合では、第１エッジを位相シフトした信号を使用して第１エッジと第２エッジとの時間差の判定処理を実行するため、第１エッジ及び第２エッジの双方を位相シフトした信号を使用する場合に比べて回路構成が簡素化される。
【００７８】
また、半導体装置１では、第１セットアップエッジ信号ｎｓｔａ０及び第１ホールドエッジ信号ｎｈｌｄ０と共に、第２セットアップエッジ信号ｎｓｔａ１及び第２ホールドエッジ信号ｎｈｌｄ１を使用して第１エッジと第２エッジとの時間差を判定している。したがって、第１セットアップエッジ信号ｎｓｔａ０又は第１ホールドエッジ信号ｎｈｌｄ０の何れかがメタ・ステーブルにより不定となった場合でも、第２セットアップエッジ信号ｎｓｔａ１及び第２ホールドエッジ信号ｎｈｌｄ１を使用して時間差を判定できる。また、半導体装置１では、非同期位相比較回路３５２は、第１セットアップエッジ信号ｎｓｔａ０等４つの信号がＮ段のフリップフロップ３５１−１〜３５１−Ｎのそれぞれでラッチされた後のデータを使用して第１エッジと第２エッジとの時間差を判定する。非同期位相比較回路３５２は、Ｎ段のフリップフロップを通過したデータを使用して時間差を判定するので、初段のフリッププロップでメタ・ステーブルが発生した場合でも、メタ・ステーブルが解消したデータを使用できる可能性が高い。
【００７９】
また、半導体装置１では、第１クロックＣＬＫＡ及び第２クロックＣＬＫＢのそれぞれの周期を正規化した第１正規化周期及び第２正規化周期を使用して位相関係が演算される。半導体装置１では、正規化した第１正規化周期及び第２正規化周期を使用して位相関係が演算されるので、位相関係を演算するときに使用されるデータ量が小さくなり、位相関係を演算する位相関係演算回路の回路規模を小さくすることができる。
【００８０】
また、半導体装置１では、第１クロック周期判定回路３１及び第２クロック周期判定回路３２の遅延素子３１７の遅延量で正規化された第１クロックＣＬＫＡ及び第２クロックＣＬＫＢの周期を使用して第１正規化周期及び第２正規化周期を決定している。半導体装置１では、装置内部に配置される素子の遅延量で正規化されたクロックの周期を使用して正規化周期を決定するので、半導体装置１の電源条件、温度条件及び製造プロセス条件により素子の遅延量が変動した場合でも正規化周期は自動的に較正される。
【符号の説明】
【００８１】
１    半導体装置
１０    第１回路
１３    出力部
２０    第２回路
２３    入力部
３０    クロック位相判定回路
３１    第１クロック周期判定回路（第１遅延回路）
３２    第２クロック周期判定回路（第２遅延回路）
３３    位相関係演算回路
３４    エッジ選択回路
３５    セットアップホールド判定回路
【図１】
2015211385.tif 000003
【図２】
2015211385.tif 000004
【図３】
2015211385.tif 000005
【図４】
2015211385.tif 000006
【図５】
2015211385.tif 000007
【図６】
2015211385.tif 000008
【図７】
2015211385.tif 000009
【図８】
2015211385.tif 000010
【図９】
2015211385.tif 000011
【図１０】
2015211385.tif 000012
【図１１】
2015211385.tif 000013
【図１２】
2015211385.tif 000014
【図１３】
2015211385.tif 000015
【図１４】
2015211385.tif 000016
【図１５】
2015211385.tif 000017
【図１６】
2015211385.tif 000018
【図１７】
2015211385.tif 000019
【図１８】
2015211385.tif 000020