(57)【要約】【課題】動作回路の通信タイミングを考慮すると共に、分周時に出力クロック信号の位相調整が可能なクロック分周回路、及びクロック分周方法を提供することである。【解決手段】本発明にかかるクロック分周回路１００は、入力クロック信号（クロックＳ）のクロックパルスと、通信タイミング信号２６と、位相調整信号６０に応じて生成されたリセット値８１と、に基づき、入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値５５を生成し、カウント値５５に基づき入力クロック信号のＭ個のクロックパルスのうち通信タイミング以外のクロックパルスに対してクロックパルスをマスクするマスク信号２５を生成するマスク制御回路２０を有する。更に、マスク信号２５に応じて入力クロック信号のクロックパルスをマスクするマスク回路１０を有する。【選択図】図１
2010177751.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周回路であって、
前記入力クロック信号のクロックパルスと、前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号と、入力された位相調整信号に応じて生成されたリセット値と、に基づき、前記入力クロック信号に対する前記通信タイミングの相対的な位相を示すカウント値を生成し、当該カウント値に基づき前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスに対して（Ｍ−Ｎ）個分のクロックパルスをマスクするマスクタイミングを割り当てるマスク信号を生成するマスク制御回路と、
前記マスク制御回路によって生成された前記マスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成するマスク回路と、
を有するクロック分周回路。
【請求項２】
前記マスク制御回路は、前記入力された位相調整信号に応じてリセット値を生成するリセット値生成回路を有し、
前記リセット値生成回路は、
前記入力された位相調整信号の値が位相調整を行わないことを示す値の場合は、値が０のリセット値を生成し、
前記入力された位相調整信号の値が、出力クロック信号の位相を入力クロック信号のＤサイクル（Ｄは正整数）進めることを示す値である場合は、値がＤのリセット値を生成し、
前記入力された位相調整信号の値が、出力クロック信号の位相を入力クロック信号のＤサイクル遅らせることを示す値である場合は、値が（Ｍ−Ｄ）のリセット値を生成する、
請求項１に記載のクロック分周回路。
【請求項３】
前記マスク制御回路は、少なくとも前記カウント値と分周比分母Ｍおよび分周比分子Ｎの組合せごとにマスクの要否を示すテーブルデータを予め保持するテーブル回路を有し、
入力された前記組合せに応じて前記テーブル回路から出力されたテーブルデータに基づいて前記マスク信号を生成する、請求項１または２に記載のクロック分周回路。
【請求項４】
前記マスク制御回路は、通信タイミングの基準として入力したクロック信号の立ち上がりタイミングを検出することで前記通信タイミング信号を生成する通信タイミング検出回路を有する請求項１乃至３のいずれか一項に記載のクロック分周回路。
【請求項５】
前記クロック分周回路は、通信タイミングの基準となるクロック信号に基づく第１のクロックと、前記出力クロック信号に基づく第２のクロックの位相を比較し、当該比較結果に基づき前記位相調整信号を生成する位相調整信号生成回路を有する、請求項１乃至４のいずれか一項に記載のクロック分周回路。
【請求項６】
前記第１のクロックは、前記通信タイミングの基準となるクロック信号が分配遅延されたクロックであり、
前記第２のクロックは、前記出力クロック信号が分配遅延されたクロックである、請求項５に記載のクロック分周回路。
【請求項７】
Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、
前記入力クロック信号のクロックパルスと、前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号と、入力された位相調整信号に応じて生成されたリセット値と、に基づき、前記入力クロック信号に対する前記通信タイミングの相対的な位相を示すカウント値を生成し、
前記カウント値に基づき前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスに対して（Ｍ−Ｎ）個分のクロックパルスをマスクするマスクタイミングを割り当てるマスク信号を生成し、
前記マスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成する、
クロック分周方法。
【請求項８】
前記入力された位相調整信号の値が位相調整を行わないことを示す値の場合は、値が０のリセット値を生成し、
前記入力された位相調整信号の値が、出力クロック信号の位相を入力クロック信号のＤサイクル（Ｄは正整数）進めることを示す値である場合は、値がＤのリセット値を生成し、
前記入力された位相調整信号の値が、出力クロック信号の位相を入力クロック信号のＤサイクル遅らせることを示す値である場合は、値が（Ｍ−Ｄ）のリセット値を生成する、
請求項７に記載のクロック分周方法。
【請求項９】
少なくとも前記カウント値と分周比分母Ｍおよび分周比分子Ｎの組合せごとにマスクの要否を示すテーブルデータを予め保持し、
入力された前記組合せに応じて出力されたテーブルデータに基づいて前記マスク信号を生成する、請求項７または８に記載のクロック分周方法。
【請求項１０】
通信タイミングの基準として入力したクロック信号の立ち上がりタイミングを検出することで前記通信タイミング信号を生成する、請求項７乃至９のいずれか一項に記載のクロック分周方法。
【請求項１１】
通信タイミングの基準となるクロック信号に基づく第１のクロックと、前記出力クロック信号に基づく第２のクロックの位相を比較し、当該比較結果に基づき前記位相調整信号を生成する、請求項７乃至１０のいずれか一項に記載のクロック分周方法。
【請求項１２】
前記通信タイミングの基準となるクロック信号を分配遅延することで前記第１のクロックを生成し、
前記出力クロック信号を分配遅延することで前記第２のクロックを生成する、請求項１１に記載のクロック分周方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック分周回路、及びクロック分周方法に関し、特にクロック信号を任意の有理数分周比で分周するクロック分周回路、及びクロック分周方法に関する。
【背景技術】
【０００２】
任意の周波数のクロック信号から、より低い周波数のクロック信号を分周するクロック分周回路において、分周比、すなわち分周前のクロック信号の周波数と分周後のクロック信号の周波数の比が１／Ｍ (Ｍは整数）の分周回路（整数分周回路）は、カウンタ回路を用いて容易に実現することができる。
【０００３】
一方、分周比がＮ／Ｍ（Ｎは正の整数、ＭはＮより大きい正の整数）からなる有理数であっても、分周が可能な分周回路（有理数分周回路）が提案されている（特許文献１、特許文献２参照）。これらの背景技術によると、まず、分周比の分子を設定する値Ｎを、入力クロック信号のサイクル毎に累積的に加算する。次に、その加算結果が分周比の分母を設定する値Ｍより大きくなった場合には、その加算結果からＭを引く。これらの動作を行い、その加算結果を参照して、入力クロック信号のクロックパルスを適切にマスクする（間引く）ことにより有理数分周を実現している。
【０００４】
図１１および図１２を参照して、上記背景技術によるクロック分周回路について説明する。図１１は、背景技術のクロック分周回路を用いた半導体集積回路例である。図１２は、背景技術のクロック分周回路の動作を示す図である。
図１１に示すように、背景技術のクロック分周回路２００は、入力する分周比設定に基づいて、クロックＳを有理数分周することでクロックＢを生成する。回路Ａ（相手回路）と回路Ｂ（対象回路）は、信号ＡｏｕｔおよびＢｏｕｔを通じて互いに通信する。
【０００５】
回路Ａは、クロックＡをクロック分配回路２１０によって分配したクロックＡ'のタイミングで動作する。一方、回路Ｂは、クロックＢをクロック信号回路２１１によって分配したクロックＢ'のタイミングで動作する。クロック分配回路２１０および２１１は、例えばクロックツリー回路から構成されている。そして、各クロック分配対象までの分配遅延が同一になるように、クロック分配回路の設計レイアウトを行うことで、クロックＡ'およびクロックＢ'のクロックスキューを低減することができる。これにより、回路Ａと回路Ｂとが同期的に通信することが可能となる。
【０００６】
信号Ａｏｕｔは、回路ＡがクロックＡ'のタイミングで出力し、回路ＢがクロックＢ'のタイミングで入力する信号である。信号Ｂｏｕｔは、回路ＢがクロックＢ'のタイミングで出力し、回路ＡがクロックＡ'のタイミングで入力する信号である。
【０００７】
図１２に、クロックＳを分周比１１／１２〜４／１２で分周して生成したクロックＢを示す。クロックＢは、入力するクロックＳのクロックパルスを適切にマスクすることにより生成することができる。例えば、分周比が９／１２のクロックＢは、クロックＳのタイミングＴ０〜Ｔ１１にある１２個のクロックパルスのうち、タイミングＴ３、Ｔ８、Ｔ１１にある３個のクロックパルスをマスクすることで生成している。
【０００８】
ここで、クロックＡの周波数はクロックＳの１／３であるとする。すなわち、クロックＡのクロックＳに対する分周比は１／３（＝４／１２）である。このとき、クロックＡとクロックＢの位相関係は、クロックＳの１２サイクルで一巡する。この位相関係が一巡する１２サイクルのタイミングを、Ｔ０〜Ｔ１１で示している。
【０００９】
また、回路Ａと回路Ｂは、クロックＡ'のすべての立ち上がりのタイミングであるタイミングＴ０、Ｔ３、Ｔ６、Ｔ９、で通信するとする。すなわち、回路Ａは、クロックＡ'の立ち上がりのタイミングであり、通信のタイミングであるタイミングＴ０、Ｔ３、Ｔ６、Ｔ９で、信号Ａｏｕｔを出力し、信号Ｂｏｕｔを入力する。
【００１０】
ところが、上記背景技術のクロック分周回路は、異なる周波数のクロックを有する回路との通信を考慮していない。そのため、この通信のタイミングにおいても、クロックＳのクロックパルスをマスクしてクロックＢを生成してしまう場合がある。図１２の場合、通信のタイミングのうち、Ｔ３、Ｔ６、Ｔ９において、クロックＳのクロックパルスをマスクしてクロックＢを生成している場合がある。
【００１１】
具体的には、タイミングＴ３において、分周比が９／１２の場合（９１）、６／１２の場合（９２）、５／１２の場合（９３）にクロックパルスをマスクしている。同様に、タイミングＴ６において、５／１２の場合（９４）にクロックパルスをマスクしている。同様に、タイミングＴ９において、分周比が７／１２の場合（９５）、６／１２の場合（９６）、５／１２の場合（９７）にクロックパルスをマスクしている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−４５５０７号公報
【特許文献２】特開２００６−１４８８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記の場合のように、通信のタイミングでクロックＳのクロックパルスをマスクしてクロックＢを生成した場合、クロックＡ'で動作する回路Ａが信号Ａｏｕｔに出力した信号を、クロックＢ'で動作する回路Ｂが期待したタイミングで入力できないことになる。同様に、クロックＡ'で動作する回路Ａが期待したタイミングで、クロックＢ'で動作する回路Ｂが信号Ｂｏｕｔに信号を出力できないことになる。
【００１４】
従って、上記背景技術のクロック分周回路では、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を実現するために、特別なクロック乗せ換え回路や、特別なタイミング設計が必要となる。その結果、通信性能が低下し、消費電力、回路規模、さらには設計コストが増大する。
【００１５】
また、特許文献１や特許文献２に記載のクロック分周回路は、分周クロック信号の位相を調整する機能を持たない。そのため、他のクロック信号とのクロックスキューを補償する場合、クロック信号の分配経路上にスキュー補償のためのバッファ回路（例えば図１１のクロックバッファ２０１）を挿入する必要がある。しかし、クロックスキューの量が大きい場合、スキュー調整のために多くのバッファ回路を必要とし、面積や電力コストが増大するという問題がある。また、バッファ回路は動作中にその遅延量を調整できない。そのため、電力を削減するためにサイクル時間に応じて電圧を制御する動的周波数電圧制御（ＤＶＦＳ：Dynamic Voltage and Frequency Scaling）技術を使用する場合など、動作中に電源電圧を変更する場合には対応できないという問題ある。
【００１６】
本発明の目的は、大きな回路規模を必要とすることなく、異なる周波数のクロックで動作する回路同士の通信タイミングを考慮すると共に、分周時に出力クロック信号の位相を調整し、クロックスキューを低減することができるクロック分周回路、及びクロック分周方法を提供することである。
【課題を解決するための手段】
【００１７】
本発明にかかるクロック分周回路は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周回路であって、
前記入力クロック信号のクロックパルスと、前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号と、入力された位相調整信号に応じて生成されたリセット値と、に基づき、前記入力クロック信号に対する前記通信タイミングの相対的な位相を示すカウント値を生成し、当該カウント値に基づき前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスに対して（Ｍ−Ｎ）個分のクロックパルスをマスクするマスクタイミングを割り当てるマスク信号を生成するマスク制御回路と、
前記マスク制御回路によって生成された前記マスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成するマスク回路と、を有する。
【００１８】
また、本発明にかかるクロック分周方法は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、
前記入力クロック信号のクロックパルスと、前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号と、入力された位相調整信号に応じて生成されたリセット値と、に基づき、前記入力クロック信号に対する前記通信タイミングの相対的な位相を示すカウント値を生成し、
前記カウント値に基づき前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスに対して（Ｍ−Ｎ）個分のクロックパルスをマスクするマスクタイミングを割り当てるマスク信号を生成し、
前記マスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成する。
【発明の効果】
【００１９】
本発明により、大きな回路規模を必要とすることなく、異なる周波数のクロックで動作する回路同士の通信タイミングを考慮すると共に、分周時に出力クロック信号の位相を調整し、クロックスキューを低減することができるクロック分周回路、及びクロック分周方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態にかかるクロック分周回路の構成を示すブロック図である。
【図２】実施の形態にかかるクロック分周回路の動作を示すタイミングチャートである。
【図３】実施の形態にかかるクロック分周回路の構成を示すブロック図である。
【図４】実施の形態にかかる通信タイミング検出回路の構成を示すブロック図である。
【図５】実施の形態にかかるクロック分周回路の動作（位相ずれなし、位相調整なし）を示すタイミングチャートである。
【図６】実施の形態にかかるクロック分周回路の動作（位相遅れあり、位相調整なし）を示すタイミングチャートである。
【図７】実施の形態にかかるクロック分周回路の動作（位相遅れあり、位相調整あり）を示すタイミングチャートである。
【図８】実施の形態にかかるクロック分周回路の動作（位相進みあり、位相調整なし）を示すタイミングチャートである。
【図９】実施の形態にかかるクロック分周回路の動作（位相進みあり、位相調整あり）を示すタイミングチャートである。
【図１０】実施の形態にかかるクロック分周回路の他の構成を示すブロック図である。
【図１１】背景技術のクロック分周回路の構成を示すブロック図である。
【図１２】背景技術のクロック分周回路の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本発明の実施の形態にかかるクロック分周回路の構成を示すブロック図である。図１には、クロックＡで動作する回路Ａ（相手回路）と、クロックＢで動作する回路Ｂ（対象回路）とを含む半導体集積回路例が示されており、回路Ｂに本実施の形態にかかるクロック分周回路１００が設けられている。
【００２２】
回路Ａは、クロックＡをクロック分配回路２１０によって分配したクロックＡ'のタイミングで動作する。一方、回路Ｂは、クロックＢをクロック信号回路２１１によって分配したクロックＢ'のタイミングで動作する。
【００２３】
クロック分周回路１００は、分周比設定情報４０のＮ／Ｍ（Ｎは正の整数、ＭはＮより大きい正の整数）で規定された分周比に基づいて、クロックＳ（入力クロック信号）の連続するＭ個のクロックパルスのうち、Ｍ−Ｎ個分のクロックパルスをマスクすることにより、クロックＳをＮ／Ｍの分周比で有理数分周したクロックＢ（出力クロック信号）を生成する回路である。
【００２４】
このクロック分周回路１００は、主な回路として、マスク回路１０とマスク制御回路２０とを含んでいる。マスク回路１０は、入力されたマスク信号２５に応じてクロックＳのクロックパルスをマスクすることによりクロックＢを生成して出力する機能を有する。
【００２５】
マスク制御回路２０は、クロックＢ'を用いる回路ＢとクロックＡ'を用いる回路Ａとのデータ通信の通信タイミングに基づいて、マスク信号２５を生成し当該マスク信号２５をマスク回路１０へ出力する機能を有する。ここで、マスク信号２５は、クロックＳの連続するＭ個のクロックパルスのタイミングのうち、当該データ通信が行われる通信タイミングを除くタイミングに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てた信号である。
【００２６】
また、クロック分配回路２１０および２１１は、例えばクロックツリー回路から構成されている。そして、回路ＡにおけるクロックＡ'の位相と回路ＢにおけるクロックＢ'の位相が一致するように、クロックＡとクロックＢの分配遅延が同等になるように設計されている。この場合、クロックＡ'およびクロックＢ'のクロックスキューが低減し、回路Ａと回路Ｂとが同期的に通信することができる。
【００２７】
回路Ａと回路Ｂは、クロックＡ'の立ち上がりのタイミングで、信号ＡｏｕｔおよびＢｏｕｔを通じて互いに通信する。この例では、回路Ａは、クロックＡ'でフリップフロップ回路Ａ１を駆動して信号Ａｏｕｔを出力し、回路Ｂは、クロックＢ'でフリップフロップ回路Ｂ１を駆動して信号Ａｏｕｔを入力する。また、回路Ｂは、クロックＢ'でフリップフロップ回路Ｂ２を駆動して信号Ｂｏｕｔを出力し、回路Ａは、クロックＡ'でフリップフロップ回路Ａ２を駆動して信号Ｂｏｕｔを入力する。
【００２８】
クロック分周回路１００は、分周比設定情報４０に加えて、回路Ｂと回路Ａとの通信タイミングを示すクロックＡを入力し、このクロックＡに基づいてクロックＳを、Ｎ／Ｍ分周比で有理数分周することでクロックＢを生成する。
なお、回路ＡにおけるクロックＡ'の位相と回路ＢにおけるクロックＢ'の位相がずれている場合、クロック分周回路１００は位相調整信号６０を入力し、クロックＡ'とクロックＢ'の位相のずれを考慮したクロックＢを生成する。位相調整信号６０については後で詳細に説明する。
また、クロックＳ、クロックＡ、分周比設定情報４０については、上位回路（図示せず）から供給されるものとする。
【００２９】
次に、図２を参照して、本実施の形態にかかるクロック分周回路の動作について説明する。図２は、本実施の形態にかかるクロック分周回路の動作を示すタイミングチャートである。ここでは、分周比分母Ｍ＝１２、分周比分子Ｎ＝１１〜４とし、クロックＳを分周比１１／１２〜４／１２で分周してクロックＢを生成する場合を例として説明する。
【００３０】
クロック分周回路１００には、クロックＳ、クロックＡ、分周比設定情報４０、及び位相調整信号６０が入力されている。分周比設定情報４０は、クロックＢのクロックＳに対する分周比Ｎ／Ｍ、およびクロックＡのクロックＳに対する分周比Ｃ／Ｍを示す信号である。
クロックＳは、所定周波数の連続したクロックパルスからなる信号である。クロックＡは、回路Ｂと回路Ａとの通信タイミングを示す。分周比設定情報４０は、分周比分母Ｍ、分周比分子Ｎおよび分周比分子Ｃの値を示す数ビット分の並列データからなり、分周比が変更されない限りこの分周比設定情報４０の値は変化しない。
【００３１】
また、位相調整信号６０は、回路ＡにおけるクロックＡ'の位相と回路ＢにおけるクロックＢ'の位相がずれている場合に出力される信号である。なお、図２のタイミングチャートは、クロックＡ'とクロックＢ'の位相がずれていない場合の例である。よって、図２の場合、位相調整信号６０は位相がずれていないことを示す値「０」となる。
【００３２】
クロック分周回路１００のマスク制御回路２０は、クロックＡが示す通信タイミングおよび分周比設定情報４０に基づいて、回路Ｂと回路Ａとでデータ通信が行われる通信タイミングを除くタイミングにおいて、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てたマスク信号２５をマスク回路１０へ出力する。
この際、前述のように、回路ＡにおいてクロックＡの立ち上がりタイミングでデータ通信が行われる場合、マスク制御回路２０は、これら通信タイミング以外のタイミング、すなわちクロックＡ'に対応するクロックＡの立ち上がりタイミング以外のタイミングに対して、クロックＳのクロックパルスをマスクするマスクタイミングが割り当てられる。
【００３３】
図２では、クロックＡの周波数がクロックＳの１／３、すなわちクロックＡのクロックＳに対する分周比が１／３（＝４／１２）で、クロックＡとクロックＢが同期している場合が示されている。この際、クロックＡとクロックＢの位相関係は、クロックＳの１２サイクルで一巡する。図２では、この位相関係が一巡する１２サイクルのタイミングがＴ０〜Ｔ１１で示されている。したがって、回路Ａと回路Ｂは、クロックＡ'の立ち上がりタイミングに相当するタイミングＴ０、Ｔ３、Ｔ６、Ｔ９でデータ通信を行うことになる。
【００３４】
マスク制御回路２０は、この通信タイミング以外におけるクロックＳのクロックパルスの立ち上がりタイミング、すなわちタイミングＴ１、Ｔ２、Ｔ４、Ｔ５、Ｔ７、Ｔ８、Ｔ１０、Ｔ１１のいずれかに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てたマスク信号２５を生成する。
【００３５】
例えば、クロックＳのタイミングＴ０〜Ｔ１１にある１２個のクロックパルスのうち、Ｔ０、Ｔ３、Ｔ６、Ｔ９以外のタイミング、例えばタイミングＴ２に対してマスクタイミングを割り当てれば、分周比１１／１２のクロックＢを生成できる。さらに、Ｔ８に対してマスクタイミングを追加割り当てすれば、分周比１０／１２のクロックＢを生成できる。さらにＴ５に対して追加割り当てすれば、分周比の９／１２のクロックＢを生成できる。さらにＴ１１に対して追加割り当てすれば、分周比の８／１２のクロックＢを生成できる。
【００３６】
また、Ｔ０、Ｔ３、Ｔ６、Ｔ９以外のタイミングのうち、Ｔ１、Ｔ２、Ｔ５、Ｔ８、Ｔ１１に対してマスクタイミングを割り当てれば、分周比７／１２のクロックＢを生成できる。さらに、Ｔ７に対して追加割り当てすれば、分周比６／１２のクロックＢを生成できる。さらにＴ４に対して追加割り当てすれば、分周比の５／１２のクロックＢを生成できる。さらにＴ１０に対して追加割り当てすれば、分周比の４／１２のクロックＢを生成できる。
【００３７】
このように、本実施の形態では、回路Ｂ（対象回路）と回路Ａ（相手回路）とでデータ通信が行われる通信タイミングを除くタイミングに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てたマスク信号２５を、マスク制御回路２０で生成してマスク回路１０へ出力している。これにより、データ通信が行われる通信タイミングを除くタイミングにおいて、クロックＳからＭ−Ｎ個分のクロックパルスがマスクされてクロックＢが生成される。
【００３８】
このため、通信タイミングでは、クロックＳのクロックパルスがマスクされなくなり、通信タイミングには必ずクロックＢにクロックパルスが出力される。これに応じて、回路Ｂは、回路Ａが信号Ａｏｕｔに出力した信号を、期待したタイミングで受け取ることができる。同様に、回路Ｂは、回路Ａが期待したタイミングで、信号Ｂｏｕｔに信号を出力することができる。
【００３９】
したがって、本実施の形態にかかるクロック分周回路によれば、異なる周波数のクロック信号（クロックＡ）で動作する相手回路（回路Ａ）との間でも、通信性能を低下させずにデータ通信を行える出力クロック信号（クロックＢ）を生成することが可能となる。
【００４０】
さらに、異なる周波数のクロック信号で動作する回路との通信のために、特別なタイミング設計や特別なクロック乗せ換え回路が不要となり、低電力、低面積かつ低設計コストで、クロック信号を有理数分周することが可能となる。
【００４１】
また、本実施の形態では、マスク制御回路２０において、分周比設定情報４０に応じて、相手回路でデータ通信が行われる通信タイミングを除くタイミングに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てている。よって、例えば分周比Ｎ／Ｍが１１／１２〜４／１２のうちのいずれかに変更される場合でも、回路Ｂの通信タイミングＴ０、Ｔ３、Ｔ６、Ｔ９以外のタイミングでクロックＳをマスクすることができる。したがって、分周比を変更する場合でも、回路ＡのクロックＡや通信タイミングを変更する必要がなくなり、極めて柔軟に対応することが可能となる。
【００４２】
次に、図３を用いてクロック分周回路１００のマスク回路１０およびマスク制御回路２０について詳細に説明する。
図３は本実施の形態にかかるクロック分周回路の構成を示すブロック図である。
図３において、マスク回路１０は、入力するマスク信号２５を参照して、クロックＳのパルスをマスクするか、あるいはマスクせずにそのままクロックＢに出力するか、のいずれかを選択する機能を有している。本実施の形態において、このマスク回路１０は、ラッチ回路１１とゲート回路１２とから構成されている。
【００４３】
ラッチ回路１１は、ゲート回路１２に入力されるマスク信号２５の遷移を、クロックＳの値が「０」であるタイミングに限定する機能を有している。
ゲート回路１２は、ラッチ回路１１でラッチされたマスク信号２５に基づいてクロックＳをマスクする機能を有する。マスク信号２５の値が「０」の場合、クロックＳをマスクする。マスク信号２５の値が「１」の場合、クロックＳをマスクしない。
【００４４】
ラッチ回路１１を設けることで、クロックＢにグリッチが発生することを抑制できる。これによりタイミング設計が容易になるという効果があるが、タイミング設計を厳密に行うことでグリッチの発生を回避する場合には、ラッチ回路１１を省略してもよい。
また、図３では、クロックＳをマスクするゲート回路１２としてＡＮＤ回路が用いられているが、これに限るものではない。ＯＲ回路を用いてもよいし、その他、同等の機能を有する回路を用いてもよい。
【００４５】
また、マスク制御回路２０は、通信タイミング（クロックＡ）および分周比設定情報４０、位相調整信号６０に基づいて、クロックＳのクロックパルスをカウントすることで、クロックＳに対する回路Ｂでの通信タイミングの相対的な位相を示すカウント値を生成する。そして、このカウント値に基づいてマスクタイミングを割り当てたマスク信号２５を生成して出力する機能を有している。
【００４６】
本実施の形態において、このマスク制御回路２０は、カウンタ回路２１、テーブル回路２２、通信タイミング検出回路６１、リセット値生成回路８０、を有する。また、分周比設定情報４０は、複数ビットの並列ビットデータからなる、分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃとから構成されている。
【００４７】
リセット値生成回路８０は、位相調整信号６０と分周比分母Ｍを参照して、カウンタ回路２１のリセット時に設定するカウント値であるリセット値を生成して、リセット値８１としてカウンタ回路２１へ出力する機能を有している。
【００４８】
カウンタ回路２１は、分周比分母Ｍ、通信タイミング信号２６、リセット値８１を参照して、カウント値５５を生成する。例えば、クロックＳのクロックパルスを「０」から「Ｍ−１」までカウントすることで、クロックＳに対する回路Ａおよび回路Ｂの通信タイミングの相対的な位相を示す「０」から「Ｍ−１」までのカウント値５５を生成する。そして、生成されたカウント値５５はテーブル回路２２へ出力される。
【００４９】
テーブル回路２２は、カウント値５５、および分周比設定情報４０である分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃの組合せごとに、マスクの要否を示すテーブルデータ５６を予めテーブル形式で保持する機能を有する。更に、テーブル回路２２は、入力されたこれら値の組合せに応じたテーブルデータをマスク信号２５として出力する機能とを有している。これにより、分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃ、カウント値５５に応じて、クロックＳのクロックパルスをマスク回路１０でマスクすることを要求するマスク信号２５が、テーブル回路２２からクロックＳのクロックパルスごとに出力される。
【００５０】
通信タイミング検出回路６１は、入力するクロックＡを参照して、クロックＡの立ち上がりタイミングから通信タイミングを検出し、通信タイミング信号２６として出力する機能を有している。
【００５１】
図４は通信タイミング検出回路６１の具体例である。通信タイミング検出回路６１は、トグル回路６５とトグル検出回路７０から構成される。
トグル回路６５は、クロックＡで動作し、クロックＡの各立ち上がりタイミングで値がトグルするトグル信号６７を生成する。トグル検出回路７０は、トグル信号６７を入力して、トグル信号６７のトグルタイミングである立ち上がりおよび立下りタイミングを検出する。次に、そのトグルタイミングより、クロックＡの立ち上がりタイミングで「１」、それ以外のタイミングで「０」となる通信タイミング信号２６を生成する。すなわち、通信タイミング信号２６が「１」の場合は、通信タイミングであることを示す。一方、通信タイミング信号２６が「０」の場合は、通信タイミングではないことを示す。
【００５２】
次に、図５〜図９を参照して、本実施の形態にかかるクロック分周回路の動作について説明する。 図５は、クロック分周回路の動作（位相ずれなし、位相調整なし）を示すタイミングチャートである。図６は、クロック分周回路の他の動作（位相遅れあり、位相調整なし）を示すタイミングチャートである。図７は、クロック分周回路の他の動作（位相遅れあり、位相調整あり）を示すタイミングチャートである。図８は、クロック分周回路の他の動作（位相進みあり、位相調整なし）を示すタイミングチャートである。図９は、クロック分周回路の他の動作（位相進みあり、位相調整あり）を示すタイミングチャートである。
【００５３】
なお、図５〜図９において、回路Ａと回路Ｂは、クロックＡ'すべての立ち上がりのタイミングでデータ通信を行うものとする。また、クロックＡの分周比はクロックＳの１／３（＝４／１２）であり、クロックＢはクロックＳを分周比９／１２で分周して生成するものとする。
このとき、クロックＢの分周比Ｎ／Ｍ＝９／１２、クロックＡの分周比Ｃ／Ｍ＝４／１２であるので、分周比設定情報４０を構成する分周比分母Ｍには「１２」、分周比分子Ｎには「９」、分周比分子Ｃには「４」が与えられている。また、通信タイミング信号２６は、クロックＡの立ち上がりのタイミングで「１」となり、それ以外で「０」となり、回路Ａと回路Ｂとの間の通信タイミングを示している。
【００５４】
（１）図５のタイミングチャート（位相ずれなし、位相調整なし）の説明
まず、図５を参照して、クロックＡの分配遅延、すなわちクロック分配回路２１０の遅延と、クロックＢの分配遅延、すなわちクロック分配回路２１１の遅延が同等である場合のクロック分周回路１００の動作について説明する。この場合は、クロックＡ'とクロックＢ'の位相が一致しているので、位相調整は必要ない。
【００５５】
クロックＡ'とクロックＢ'の位相が一致しているので、位相調整信号６０には、位相調整が不要であることを示す「０」が出力される。リセット値生成回路８０は、位相調整信号６０の値「０」を参照して、リセット値８１に「０」を出力する。カウンタ回路２１は、いずれかの通信タイミング（図５ではタイミングＴ０、Ｔ０'）で、カウント値をリセット値８１が示す「０」にリセットする。
【００５６】
カウント値はその後、クロックＡとクロックＢの位相関係が一巡する１２サイクル分を繰り返してクロックＳのクロックパルスをカウントする。これにより、クロックＡとクロックＢの相対的な位相関係を示すカウント値５５がカウンタ回路２１から出力される。図５では、カウント値５５が「０」〜「１１」の値をとるタイミングとタイミングＴ０〜Ｔ１１とが対応している。すなわち、カウント値５５は、タイミングＴ０で「０」、タイミングＴ１で「１」、タイミングＴ１１で「１１」となり、再びタイミングＴ０'で「０」になる。図５から明らかのように、カウント値５５がリセット値である「０」となるのは、カウンタ回路２１をリセットするタイミングである通信タイミングである。
【００５７】
テーブル回路２２には、カウント値５５、分周比分母Ｍ、分周比分子Ｎ、および分周比分子Ｃの組合せに応じて、クロックＳの次のサイクルのパルスをマスクする場合は「０」、マスクしない場合は「１」とするテーブルデータ５６が予め設定されている。そして、各時刻に入力された、カウント値５５、分周比分母Ｍ、分周比分子Ｎ、および分周比分子Ｃの組合せに応じたテーブルデータ５６の値が、マスク信号２５として出力される。
【００５８】
図５の場合、テーブル回路２２には、クロック信号Ｓの連続するＭ個のクロックパルスのタイミングＴ０〜Ｔ１１のうち、回路Ａと回路Ｂとの間でデータ通信を行うタイミングを除くタイミングＴ２、Ｔ５、Ｔ８に対してマスクタイミングを割り当てたテーブルデータ５６が予め設定されている。また、これら以外のタイミングＴ０、Ｔ１、Ｔ３、Ｔ４、Ｔ６、Ｔ７、Ｔ９、Ｔ１０、Ｔ１１については、非マスクタイミングが割り当てられている。
【００５９】
これにより、例えばカウント値５５が「２」、「５」、「８」の場合は、テーブルデータ５６としてマスクタイミングを示す「０」、それ以外の場合は、テーブルデータ５６として非マスクタイミングを示す「１」が、テーブル回路２２からマスク信号２５として出力される。
【００６０】
マスク回路１０は、このマスク信号２５を参照して、タイミングＴ２、Ｔ５、Ｔ８において、クロックＳのパルスをマスクし、それ以外のタイミングではパルスをマスクすることなくクロックＢに出力する。
したがって、連続するＭ個のクロックパルスのタイミングＴ０〜Ｔ１１のうち、タイミングＴ０、Ｔ３、Ｔ６、Ｔ９では、常にクロックＳのクロックパルスがマスクされずクロックＢとして出力され、通信タイミングではないそれ以外のタイミング（ここではタイミングＴ２、Ｔ５、Ｔ８）にあるクロックパルスがマスクされてクロックＢとして出力されない。
【００６１】
図５では、クロックＢの分周比が９／１２、クロックＡの周波数がクロックＳの１／３である場合の生成例を示したが、その他の場合であっても同様である。分周比設定情報４０、およびクロックＡとクロックＢの相対的な位相関係の組合せごとにテーブルデータ５６の値を適切に設定することで、通信タイミングにあるクロックパルスは常にマスクがされず、また、通信タイミングにないクロックパルスがマスクされることで、任意の有理数分周を実現することができる。
【００６２】
また、図５では、マスク制御回路２０に入力される、分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃなどの値は一定であったが、テーブル回路２２がそれらの値に対応するテーブルデータ５６を保持する範囲内であれば、適宜動作中に変更することもできる。
また、クロックＳのクロックパルスをマスクするタイミングは、通信のタイミング以外であれば、いずれのタイミングであってもよい。
【００６３】
（２）図６のタイミングチャート（位相遅れあり、位相調整なし）の説明
次に、図６を用いて、クロックＡ'に対してクロックＢ'の位相が遅れており、更にクロック信号生成回路１００が位相調整を行わない場合の動作について説明する。
【００６４】
図６において、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクル大きいとする。ここで、位相調整信号６０が、位相調整が不要であることを示す「０」である場合、クロック信号生成回路１００は位相調整を行わず、図５で示した動作と同様の動作を行う。
【００６５】
その結果、クロックＡ'の位相よりもクロックＢ'の位相が遅れることになる。特にタイミングＴ０、Ｔ３、Ｔ６、Ｔ９などの通信タイミングでは、回路Ａと回路Ｂがデータ通信を行うクロックＡ'の立ち上がりタイミングとクロックＢ'の立ち上がりタイミングに、クロックＳの０．５サイクル以上のずれ（クロックスキュー）が生じる。よってこの場合は、正常に通信が行われない、通信性能が低下するという問題が発生する。
【００６６】
（３）図７のタイミングチャート（位相遅れあり、位相調整あり）の説明
次に、図７を用いて、クロックＡ'に対してクロックＢ'の位相が遅れており、更にクロック信号生成回路１００が位相調整を行う場合の動作について説明する。
【００６７】
図６と同様に図７においても、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクル大きいとする。一方、図７では図６と異なり、位相調整信号６０として「１」が出力されている。この信号は、位相がクロックＳの０．５サイクルから１．５サイクル遅れている場合に対応して、クロックＢの位相をクロックＳの１サイクル分だけ進めるような位相調整を行うための信号である。
【００６８】
この場合、リセット値生成回路８０は、位相調整信号６０の値「１」を参照して、リセット値８１に「１」を出力する。カウンタ回路２１は、いずれかの通信タイミング（図７ではタイミングＴ０、Ｔ０'）で、リセット値８１が示す「１」にカウント値をリセットする。カウント値はその後、クロックＡとクロックＢの位相関係が一巡する１２サイクル分を繰り返してクロックＳのクロックパルスをカウントする。これにより、クロックＡとクロックＢの相対的な位相関係を示すカウント値５５がカウンタ回路２１から出力される。
【００６９】
図７では、カウント値５５は、タイミングＴ０で「１」、タイミングＴ１で「２」、タイミングＴ１０で「１１」となり、タイミングＴ１１で「０」となり、再びタイミングＴ０'で「１」になる。図７から明らかのように、カウント値５５がリセット値である「１」となるタイミングは、カウンタ回路２１をリセットするタイミングである通信タイミングである。
【００７０】
テーブル回路２２が保持するテーブルデータ５６は、位相調整を行わない図５の場合と同一である。図５の場合と同様に、例えばカウント値５５が「２」、「５」、「８」の場合は、テーブルデータ５６としてマスクタイミングを示す「０」、それ以外の場合は、テーブルデータ５６として非マスクタイミングを示す「１」が、テーブル回路２２からマスク信号２５として出力される。
【００７１】
マスク回路１０は、このマスク信号２５を参照して、タイミングＴ１、Ｔ４、Ｔ７において、クロックＳのパルスをマスクし、それ以外のタイミングではパルスをマスクしないで、クロックＢに出力する。
したがって、クロックＳの連続するＭ個のクロックパルスのタイミングＴ０〜Ｔ１１のうち、タイミングＴ１、Ｔ４、Ｔ７にあるクロックパルスがマスクされてクロックＢとして出力されない。それ以外のタイミングでは、常にクロックパルスがマスクされることなくクロックＢとして出力される。
【００７２】
この結果、位相調整を行わなかった図６と比較して、位相調整を行った図７では、クロックＳの１サイクル分だけ位相の進んだクロックＢが出力される。これにより、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクルだけ大きいにもかかわらず、クロックＡ'とクロックＢ'の位相差を０．５サイクル以内にすることができる。
【００７３】
特に、タイミングＴ０、Ｔ３、Ｔ６、Ｔ９などの通信タイミングにおいて、回路Ａと回路Ｂとがデータ通信を行うクロックＡ'の立ち上がりタイミングとクロックＢ'の立ち上がりタイミングのずれ（クロックスキュー）が、クロックＳの０．５サイクル以内に調整されるので、回路Ａと回路Ｂとで通信性能を低下させずにデータ通信を行うことができる。
【００７４】
図６および図７では、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクルだけ大きい場合について説明した。しかし、分配遅延の差がそれ以上であっても、位相調整信号６０として適切な値を出力することで、同様に位相調整を行うことができる。
【００７５】
一般的には、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳのＤ−０．５サイクルからＤ＋０．５サイクルだけ大きい場合（Ｄは正の整数）、位相調整信号６０には、クロックＢの位相をクロックＳのＤサイクル分だけ進めることを示す値「Ｄ」を出力すればよい。
【００７６】
このとき、リセット値生成回路８０は、位相調整信号６０である「Ｄ」を参照して、リセット値８１に「Ｄ」を出力する。カウンタ回路２１は、いずれかの通信タイミングで、カウント値をリセット値８１が示す「Ｄ」にリセットする。
【００７７】
（４）図８のタイミングチャート（位相進みあり、位相調整なし）の説明
次に、図８を用いて、クロックＡ'に対してクロックＢ'の位相が進んでおり、更にクロック信号生成回路１００が位相調整を行わない場合の動作について説明する。
【００７８】
図８において、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクル小さいとする。ここで、位相調整信号６０が、位相調整が不要であることを示す「０」である場合、クロック信号生成回路１００は位相調整を行わず、図５で示した動作と同様の動作を行う。
【００７９】
その結果、クロックＡ'の位相よりもクロックＢ'の位相が進むことになる。特にタイミングＴ０、Ｔ３、Ｔ６、Ｔ９などの通信タイミングでは、回路Ａと回路Ｂがデータ通信を行うクロックＡ'の立ち上がりタイミングとクロックＢ'の立ち上がりタイミングに、クロックＳの０．５サイクル以上のずれ（クロックスキュー）が生じる。よってこの場合は、正常に通信が行われない、通信性能が低下するという問題が発生する。
【００８０】
（５）図９のタイミングチャート（位相進みあり、位相調整あり）の説明
次に、図９を用いて、クロックＡ'に対してクロックＢ'の位相が進んでおり、更にクロック信号生成回路１００が位相調整を行う場合の動作について説明する。
【００８１】
図８の場合と同様に図９においても、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクル小さいとする。一方、図８と異なり、位相調整信号６０として「−１」が出力されている。この信号は、位相がクロックＳの０．５サイクルから１．５サイクル進んでいる場合に対応して、クロックＢの位相をクロックＳの１サイクル分だけ遅らせるような位相調整を行うための信号である。
【００８２】
この場合、リセット値生成回路８０は、位相調整信号６０の値「−１」を参照して、リセット値８１に「１１」を出力する。この値は、位相調整信号６０の値に分周比分母Ｍの値を加算して生成される。すなわち、Ｍ＝１２の場合、−１＋１２＝１１となる。カウンタ回路２１は、いずれかの通信タイミング（図９ではタイミングＴ０、Ｔ０'）で、カウント値をリセット値８１が示す「１１」にリセットする。カウント値はその後、クロックＡとクロックＢの位相関係が一巡する１２サイクル分を繰り返してクロックＳのクロックパルスをカウントする。これにより、クロックＡとクロックＢの相対的な位相関係を示すカウント値５５がカウンタ回路２１から出力される。
【００８３】
図９では、カウント値５５は、タイミングＴ０で「１１」、タイミングＴ１で「０」、タイミングＴ２で「１」となり、タイミングＴ１１で「１０」となり、再びタイミングＴ０'で「１１」になる。図９から明らかのように、カウント値５５がリセット値である「１１」となるタイミングは、カウンタ回路２１をリセットするタイミングである通信タイミングである。
【００８４】
テーブル回路２２が保持するテーブルデータ５６は、位相調整を行わない図５の場合と同一である。図５の場合と同様に、例えばカウント値５５が「２」、「５」、「８」の場合は、テーブルデータ５６としてマスクタイミングを示す「０」、それ以外の場合は、テーブルデータ５６として非マスクタイミングを示す「１」が、テーブル回路２２からマスク信号２５として出力される。
【００８５】
マスク回路１０は、このマスク信号２５を参照して、タイミングＴ３、Ｔ６、Ｔ９において、クロックＳのパルスをマスクし、それ以外のタイミングではパルスをマスクしないで、クロックＢに出力する。
したがって、クロックＳの連続するＭ個のクロックパルスのタイミングＴ０〜Ｔ１１のうち、タイミングＴ３、Ｔ６、Ｔ９にあるクロックパルスがマスクされてクロックＢとして出力されない。それ以外のタイミングでは、常にクロックパルスがマスクされることなくクロックＢとして出力される。
【００８６】
この結果、位相調整を行わなかった図８と比較して、位相調整を行った図９では、クロックＳの１サイクル分だけ位相の遅れたクロックＢが出力される。これにより、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクルだけ小さいにもかかわらず、クロックＡ'とクロックＢ'の位相差を０．５サイクル以内にすることができる。
【００８７】
特に、タイミングＴ０、Ｔ３、Ｔ６、Ｔ９などの通信タイミングにおいて、回路Ａと回路Ｂとがデータ通信を行うクロックＡ'の立ち上がりタイミングとクロックＢ'の立ち上がりタイミングのずれ（クロックスキュー）が、クロックＳの０．５サイクル以内に調整されるので、回路Ａと回路Ｂとで通信性能を低下させずにデータ通信を行うことができる。
【００８８】
図８および図９では、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳの０．５サイクルから１．５サイクルだけ小さい場合について説明した。しかし、分配遅延の差がそれ以上であっても、位相調整信号６０に適切な値を出力することで、同様に位相調整を行うことができる。
【００８９】
一般的には、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳのＤ−０．５サイクルからＤ＋０．５サイクルだけ小さい場合（Ｄは正の整数）、位相調整信号６０として、クロックＢの位相をクロックＳのＤサイクル分だけ遅らせることを示す値「−Ｄ」を出力すればよい。
【００９０】
このとき、リセット値生成回路８０は、位相調整信号６０である「−Ｄ」を参照して、リセット値８１として「Ｍ−Ｄ」を出力する。ここで、「Ｍ−Ｄ」は位相調整信号６０の値に分周比分母Ｍの値を加算した値である。そして、カウンタ回路２１は、いずれかの通信タイミングで、カウント値をリセット値８１が示す「Ｍ−Ｄ」にリセットする。
【００９１】
ここで、位相調整信号６０は上位回路（図示せず）により供給される。上位回路は、クロックＡの分配遅延とクロックＢの分配遅延を比較して、位相調整信号６０の値を決定することができる。
すなわち、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳのＤ−０．５サイクルからＤ＋０．５サイクル大きい場合（Ｄは正の整数）は、位相調整信号６０として、クロックＢの位相をクロックＳのＤサイクル分だけ進めることを示す「Ｄ」が出力される。
一方、クロックＡの分配遅延よりも、クロックＢの分配遅延がクロックＳのＤ−０．５サイクルからＤ＋０．５サイクル小さい場合（Ｄは正の整数）は、位相調整信号６０として、クロックＢの位相をクロックＳのＤサイクル分だけ遅らせることを示す「−Ｄ」が出力される。また、それ以外の場合には、位相調整は不要なので、位相調整信号６０として「０」が出力される。
【００９２】
このとき、上位回路は、位相調整信号６０の値を、半導体集積回路の設計時にクロックＡの分配遅延とクロックＢの分配遅延を評価して決定しても良い。また、半導体集積回路の製造後にクロックＡの分配遅延とクロックＢの分配遅延を測定して決定しても良い。
【００９３】
また、上位回路は、回路の動作中に、クロックＡ'とクロックＢ'を観測して、クロックＡの分配遅延とクロックＢの分配遅延の差を測定し、それに基づいて位相調整信号６０の値を決定しても良い。
【００９４】
図１０は、位相調整信号６０を供給する上位回路として、位相調整信号生成回路１２０を備えた半導体集積回路の例であり、図１の半導体集積回路例に位相調整回路１２０を追加した構成である。位相調整信号生成回路１２０は、クロックＡ'とクロックＢ'を入力し、クロックＡ'とクロックＢ'の位相を比較することで、クロックＡの分配遅延とクロックＢの分配遅延の差を測定し、それに基づいて位相調整信号６０の値を決定する。このような回路は、位相比較回路を用いて容易に実現することができる。
【００９５】
ここで、クロックＡ´は、通信タイミングの基準となるクロック信号に基づくクロック（第１のクロック）である。つまり、第１のクロックは、通信タイミングの基準となるクロック信号（クロックＡ）が分配遅延されたクロックである。
また、クロックＢ´は、出力クロック信号に基づくクロック（第２のクロック）である。つまり、第２のクロックは、出力クロック信号（クロックＢ）が分配遅延されたクロックである。
【００９６】
このように、本実施の形態にかかるクロック分周回路では、マスク制御回路において、入力クロック信号のクロックパルスをカウンタ回路でカウントすることで、入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値を生成している。そして、マスクタイミングを割り当てたマスク信号をこのカウント値に基づいて生成している。これにより、カウンタ回路という極めて簡単な回路構成で、入力クロック信号に対する通信タイミングの相対的な位相を導出でき、通信タイミング以外のタイミングからマスクタイミングを正確に割り当てることが可能となる。
【００９７】
また、本実施の形態にかかるクロック分周回路では、マスク制御回路において、少なくとも分周比設定、およびカウント値の組合せごとにマスクの要否を示すテーブルデータを予めテーブル回路で保持している。そして、入力されたこれら組合せに応じてテーブル回路から出力されたテーブルデータをマスク信号として出力している。よって、テーブル回路という極めて簡単な回路構成で、通信タイミング以外のタイミングから、入力クロック信号に対する通信タイミングの相対的な位相に応じた所望のマスクタイミングを正確に割り当てることが可能となる。
【００９８】
また、本実施の形態にかかるクロック分周回路はディジタル論理回路のみで構成され、クロックＳをマスクするか否かのいずれかを選択して、有理数分周を実現するので、消費電力やレイアウト面積を小さくすることができる。また、アナログ回路や専用設計を必要とする回路を使用していないので、設計・検証コストを小くさくすることができる。
【００９９】
また、本実施の形態にかかるクロック分周回路は、出力クロック信号に対する位相制御を示す位相調整信号に応じてカウンタ回路のリセット値を生成することにより、入力クロック信号を有理数分周しつつ、出力クロック信号の位相を調整することができる。したがって、テーブル回路に位相調整のための特別なテーブルデータを追加する必要がなく、また位相調整のための特別な遅延回路等を備える必要もない。このため、レイアウト面積や消費電力を大幅に増大させることなく、設計・検証コストを小さくすることが可能な、位相調整機能付きの有理数分周回路を実現することができる。
【０１００】
次に、本実施の形態にかかるクロック分周方法について図１、図３を用いて説明する。
本実施の形態にかかるクロック分周方法は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号（クロックＳ）のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、入力クロック信号をＮ／Ｍ分周した出力クロック信号（クロックＢ）を生成するクロック分周方法であって、次の工程を有する。
入力クロック信号のクロックパルスと、出力クロック信号を用いる対象回路（回路Ｂ）が行うデータ通信の通信タイミングを示す通信タイミング信号２６と、入力された位相調整信号６０に応じて生成されたリセット値８１と、に基づき、入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値５５を生成する工程。
カウント値５５に基づき入力クロック信号のＭ個のクロックパルスのうち通信タイミング以外のクロックパルスに対して（Ｍ−Ｎ）個分のクロックパルスをマスクするマスクタイミングを割り当てるマスク信号２５を生成する工程。
マスク信号２５に応じて、入力クロック信号のクロックパルスをマスクすることによって出力クロック信号を生成する工程。
【０１０１】
本実施の形態にかかるクロック分周方法は、例えば図１、図３に示すクロック分周回路を用いて実施することができる。
【０１０２】
また、本実施の形態にかかるクロック分周方法では、次のようにしてリセット値を生成してもよい。入力された位相調整信号６０の値が位相調整を行わないことを示す値の場合は値が０のリセット値を生成する。入力された位相調整信号６０の値が、出力クロック信号の位相を入力クロック信号のＤサイクル（Ｄは正整数）進めることを示す値である場合は値がＤのリセット値を生成する。入力された位相調整信号６０の値が、出力クロック信号の位相を入力クロック信号のＤサイクル遅らせることを示す値である場合は、値が（Ｍ−Ｄ）のリセット値を生成する。
【０１０３】
また、本実施の形態にかかるクロック分周方法では、少なくともカウント値と分周比分母Ｍおよび分周比分子Ｎの組合せごとにマスクの要否を示すテーブルデータを予め保持しておき、入力された組合せに応じて出力されたテーブルデータに基づいてマスク信号を生成してもよい。
【０１０４】
また、本実施の形態にかかるクロック分周方法では、通信タイミングの基準として入力したクロック信号（クロックＡ）の立ち上がりタイミングを検出することで通信タイミング信号２６を生成してもよい。
【０１０５】
また、本実施の形態にかかるクロック分周方法では、通信タイミングの基準となるクロック信号に基づく第１のクロック（クロックＡ´）と、出力クロック信号に基づく第２のクロック（クロックＢ´）の位相を比較し、当該比較結果に基づき位相調整信号６０を生成してもよい。
【０１０６】
また、本実施の形態にかかるクロック分周方法では、通信タイミングの基準となるクロック信号（クロックＡ）を分配遅延することで第１のクロック（クロックＡ´）を生成し、出力クロック信号（クロックＢ）を分配遅延することで第２のクロック（クロックＢ´）を生成してもよい。
【０１０７】
本実施の形態にかかるクロック分周方法により、異なる周波数のクロックで動作する回路同士の通信タイミングを考慮すると共に、分周時に出力クロック信号の位相を調整し、クロックスキューを低減することが可能となる。
【０１０８】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【０１０９】
１０  マスク回路
１１  ラッチ回路
１２  ゲート回路
２０  マスク制御回路
２１  カウンタ回路
２２  テーブル回路
２５  マスク信号
２６  通信タイミング信号
４０  分周比設定情報
５５  カウント値
５６  テーブルデータ
６０  位相調整信号
６１  通信タイミング検出回路
６５  トグル回路
７０  トグル検出回路
８０  リセット値生成回路
８１  リセット値
１００  クロック分周回路
１２０  位相調整信号生成回路
２００  クロック分周回路
２０１  クロックバッファ
２１０、２１１  クロック分配回路
【図１】
2010177751.tif 000003
【図２】
2010177751.tif 000004
【図３】
2010177751.tif 000005
【図４】
2010177751.tif 000006
【図５】
2010177751.tif 000007
【図６】
2010177751.tif 000008
【図７】
2010177751.tif 000009
【図８】
2010177751.tif 000010
【図９】
2010177751.tif 000011
【図１０】
2010177751.tif 000012
【図１１】
2010177751.tif 000013
【図１２】
2010177751.tif 000014