(57)【要約】  異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を行うことを可能とするクロック信号を生成することができる本発明にかかるクロック分周回路は、マスク制御回路２０とマスク回路１０を有する。マスク制御回路２０は、通信タイミング信号２６に基づいて、入力クロック信号のＭ個のクロックパルスのうち通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号２９を生成するマスクタイミング信号生成回路２２と、通信タイミングではクロックパルスのマスクを抑制する処理をするマスク抑制回路６２を有する。マスク回路１０は、マスク制御回路で生成されたマスク信号５０に応じて、入力クロック信号のクロックパルスをマスクして出力クロック信号を生成する。
2010070830.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周回路であって、
前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号に基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成するマスクタイミング信号生成回路と、当該マスクタイミング信号に対して前記通信タイミングでは前記クロックパルスのマスクを抑制する処理をしたマスク信号を生成するマスク抑制回路と、を備えるマスク制御回路と、
前記マスク制御回路によって生成されたマスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成するマスク回路と、
を有するクロック分周回路。
【請求項２】
前記マスク制御回路は、前記入力クロック信号のクロックパルスをカウントし、当該カウント値が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、前記入力クロック信号に対する前記通信タイミングの相対的な位相を示すカウント値を生成するカウンタを有し、当該カウント値に基づいて前記マスク信号を生成する請求項１に記載のクロック分周回路。
【請求項３】
前記通信タイミングに対して前記カウント値が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットするように前記カウンタを制御するエラー検出回路を備える請求項２に記載のクロック分周回路。
【請求項４】
Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周回路であって、
前記入力クロック信号のクロックパルスをカウントし、当該カウント値が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、前記入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値を生成するカウンタと、
前記カウント値と前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号とに基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成するマスクタイミング信号生成回路と、
前記通信タイミングに対して前記カウント値が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットするように前記カウンタを制御するエラー検出回路と、を備えるマスク制御回路と、
前記マスク制御回路によって生成されたマスクタイミング信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成するマスク回路と、
を有するクロック分周回路。
【請求項５】
前記マスクタイミング信号生成回路は、少なくとも前記カウント値と分周比の分母Ｍおよび分周比の分子Ｎの組合せごとにマスクの要否を示すテーブルデータを予め保持するテーブル回路を備え、入力されたこれら組合せに応じて前記テーブル回路から出力されたテーブルデータを前記マスクタイミング信号として出力する請求項２乃至４のいずれか１項に記載のクロック分周回路。
【請求項６】
通信タイミングの基準として入力したクロック信号の立ち上がりタイミングを検出して前記通信タイミング信号を生成する通信タイミング検出回路を備える請求項１乃至５のいずれか１項に記載のクロック分周回路。
【請求項７】
Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、
前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号に基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成し、
前記マスクタイミング信号に対して前記通信タイミングでは前記クロックパルスのマスクを抑制する処理をしたマスク信号を生成し、
前記マスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成する、
クロック分周方法。
【請求項８】
前記入力クロック信号のクロックパルスをカウントし、当該カウント値が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、前記入力クロック信号に対する前記通信タイミングの相対的な位相を示すカウント値を生成し、当該カウント値に基づいて前記マスク信号を生成する請求項７に記載のクロック分周方法。
【請求項９】
前記通信タイミングに対して前記カウント値が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットする請求項８に記載のクロック分周方法。
【請求項１０】
Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、
前記入力クロック信号のクロックパルスをカウントし、当該カウント値が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、前記入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値を生成し、
前記カウント値と前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号とに基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成し、
前記通信タイミングに対して前記カウント値が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットするように前記カウンタを制御し、
前記マスクタイミング信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成する、
クロック分周方法。
【請求項１１】
少なくとも前記カウント値と分周比の分母Ｍおよび分周比の分子Ｎの組合せごとにマスクの要否を示すテーブルデータを予め保持し、入力されたこれら組合せに応じて当該テーブルデータを前記マスクタイミング信号として出力する請求項８乃至１０のいずれか１項に記載のクロック分周方法。
【請求項１２】
通信タイミングの基準として入力したクロック信号の立ち上がりタイミングを検出して前記通信タイミング信号を生成する請求項７乃至１１のいずれか１項に記載のクロック分周方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック分周回路、及びクロック分周方法に関し、特にクロック信号を任意の有理数分周比で分周するクロック分周回路、及びクロック分周方法に関する。
【背景技術】
【０００２】
任意の周波数のクロック信号から、より低い周波数のクロック信号を分周するクロック分周回路において、分周比、すなわち分周前のクロック信号の周波数と分周後のクロック信号の周波数の比が１／Ｍ (Ｍは整数）の分周回路（整数分周回路）は、カウンタ回路を用いて容易に実現することができる。【０００３】
一方、分周比がＮ／Ｍ（Ｎは正の整数、ＭはＮより大きい正の整数）からなる有理数であっても、分周が可能な分周回路（有理数分周回路）が提案されている（特許文献１、特許文献２参照）。これらの背景技術によると、まず、分周比の分子を設定する値Ｎを、入力クロック信号のサイクル毎に累積的に加算する。次に、その加算結果が分周比の分母を設定する値Ｍより大きくなった場合には、その加算結果からＭを引く。これらの動作を行い、その加算結果を参照して、入力クロック信号のクロックパルスを適切にマスクする（間引く）ことにより有理数分周を実現している。【０００４】
図１７および図１８を参照して、上記背景技術によるクロック分周回路における問題の具体例を説明する。図１７は、背景技術のクロック分周回路を用いた半導体集積回路例である。図１８は、背景技術のクロック分周回路の動作を示す図である。【０００５】
図１７に示すように、背景技術のクロック分周回路２００は、入力する分周比設定に基づいて、クロックＳを有理数分周することでクロックＢを生成する。回路Ａ（相手回路）と回路Ｂ（対象回路）は、信号ＡｏｕｔおよびＢｏｕｔを通じて互いに通信する。信号Ａｏｕｔは、回路ＡがクロックＡのタイミングで出力し、回路ＢがクロックＢのタイミングで入力する信号である。信号Ｂｏｕｔは、回路ＢがクロックＢのタイミングで出力し、回路ＡがクロックＡのタイミングで入力する信号である。【０００６】
図１８に、クロックＳを分周比１１／１２〜４／１２で分周して生成したクロックＢを示す。クロックＢは、入力するクロックＳのクロックパルスを適切にマスクすることにより生成することができる。例えば、分周比が９／１２のクロックＢは、クロックＳのタイミングＴ０〜Ｔ１１にある１２個のクロックパルスのうち、タイミングＴ３、Ｔ８、Ｔ１１にある３個のクロックパルスをマスクすることで生成している。【０００７】
ここで、クロックＡの周波数はクロックＳの１／３であるとする。すなわち、クロックＡのクロックＳに対する分周比は１／３（＝４／１２）である。このとき、クロックＡとクロックＢの位相関係は、クロックＳの１２サイクルで一巡する。この位相関係が一巡する１２サイクルのタイミングを、Ｔ０〜Ｔ１１で示している。【０００８】
また、回路Ａと回路Ｂは、クロックＡのすべての立ち上がりのタイミングであるタイミングＴ０、Ｔ３、Ｔ６、Ｔ９、で通信するとする。すなわち、回路Ａは、クロックＡの立ち上がりのタイミングであり、通信のタイミングであるタイミングＴ０、Ｔ３、Ｔ６、Ｔ９で、信号Ａｏｕｔを出力し、信号Ｂｏｕｔを入力する。【０００９】
ところが、上記背景技術のクロック分周回路は、異なる周波数のクロックを有する回路との通信を考慮していない。そのため、この通信のタイミングにおいても、クロックＳのクロックパルスをマスクしてクロックＢを生成してしまう場合がある。図１８の場合、通信のタイミングのうち、Ｔ３、Ｔ６、Ｔ９において、クロックＳのクロックパルスをマスクしてクロックＢを生成している場合がある。【００１０】
具体的には、タイミングＴ３において、分周比が９／１２の場合（９１）、６／１２の場合（９２）、５／１２の場合（９３）にクロックパルスをマスクしている。同様に、タイミングＴ６において、５／１２の場合（９４）にクロックパルスをマスクしている。同様に、タイミングＴ９において、分周比が７／１２の場合（９５）、６／１２の場合（９６）、５／１２の場合（９７）にクロックパルスをマスクしている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−４５５０７号公報
【特許文献２】特開２００６−１４８８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記の場合のように、通信のタイミングでクロックＳのクロックパルスをマスクしてクロックＢを生成した場合、クロックＡで動作する回路Ａが信号Ａｏｕｔに出力した信号を、クロックＢで動作する回路Ｂが期待したタイミングで入力できないことになる。同様に、クロックＡで動作する回路Ａが期待したタイミングで、クロックＢで動作する回路Ｂが信号Ｂｏｕｔに信号を出力できないことになる。【００１３】
従って、上記背景技術のクロック分周回路では、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を実現するために、特別なクロック乗せ換え回路や、特別なタイミング設計が必要となる。その結果、通信性能が低下し、消費電力、回路規模、さらには設計コストが増大するという問題が発生する。【００１４】
本発明は上記課題に鑑みなされたものであり、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を行うことを可能とするクロック信号を生成するクロック分周回路、及びクロック分周方法を提供することである。
【課題を解決するための手段】
【００１５】
本発明にかかるクロック分周回路は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周回路であって、前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号に基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成するマスクタイミング信号生成回路と、当該マスクタイミング信号に対して前記通信タイミングでは前記クロックパルスのマスクを抑制する処理をしたマスク信号を生成するマスク抑制回路と、を備えるマスク制御回路と、前記マスク制御回路によって生成されたマスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成するマスク回路と、を有する。【００１６】
本発明にかかるクロック分周回路は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周回路であって、前記入力クロック信号のクロックパルスをカウントし、当該カウント値が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、前記入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値を生成するカウンタと、前記カウント値と前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号とに基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成するマスクタイミング信号生成回路と、前記通信タイミングに対して前記カウント値が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットするように前記カウンタを制御するエラー検出回路と、を備えるマスク制御回路と、前記マスク制御回路によって生成されたマスクタイミング信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成するマスク回路と、を有する。【００１７】
本発明にかかるクロック分周方法は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号に基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成し、前記マスクタイミング信号に対して前記通信タイミングでは前記クロックパルスのマスクを抑制する処理をしたマスク信号を生成し、前記マスク信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成する、クロック分周方法である。【００１８】
本発明にかかるクロック分周方法は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、前記入力クロック信号のクロックパルスをカウントし、当該カウント値が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、前記入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値を生成し、前記カウント値と前記出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す通信タイミング信号とに基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号を生成し、前記通信タイミングに対して前記カウント値が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットするように前記カウンタを制御し、前記マスクタイミング信号に応じて、前記入力クロック信号のクロックパルスをマスクすることによって前記出力クロック信号を生成する、クロック分周方法である。
【発明の効果】
【００１９】
本発明により、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を行うことを可能とするクロック信号を生成するクロック分周回路、及びクロック分周方法を提供することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態１にかかるクロック分周回路の構成を示すブロック図である。
【図２】実施の形態１にかかるクロック分周回路の動作を示すタイミングチャートである。
【図３】実施の形態１にかかるクロック分周回路の構成を示すブロック図である。
【図４】実施の形態１にかかる通信タイミング検出回路の構成を示すブロック図である。
【図５】実施の形態１にかかるエラー検出回路の動作を示す動作遷移図である。
【図６】実施の形態１にかかるクロック分周回路の動作を示すタイミングチャートである。
【図７】実施の形態１にかかるクロック分周回路の動作を示すタイミングチャートである。
【図８】実施の形態１にかかるクロック分周回路の動作を示すタイミングチャートである。
【図９】実施の形態１にかかるクロック分周回路の動作を示すタイミングチャートである。
【図１０】実施の形態２にかかるクロック分周回路の構成を示すブロック図である。
【図１１】実施の形態３にかかるクロック分周回路の構成を示すブロック図である。
【図１２】実施の形態４にかかるクロック分周回路の構成を示すブロック図である。
【図１３】実施の形態４にかかるクロック分周回路の動作を示すタイミングチャートである。
【図１４】実施の形態４にかかるクロック分周回路の動作を示すタイミングチャートである。
【図１５】実施の形態５にかかるクロック分周回路の構成を示すブロック図である。
【図１６】実施の形態５にかかるクロック分周回路の動作を示すタイミングチャートである。
【図１７】背景技術のクロック分周回路の構成を示すブロック図である。
【図１８】背景技術のクロック分周回路の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００２１】
発明の実施の形態１．
以下、図面を参照して本発明の実施の形態１について説明する。
図１は、本発明の第１の実施の形態にかかるクロック分周回路の構成を示すブロック図である。図１には、クロックＡで動作する回路Ａ（相手回路）と、クロックＢで動作する回路Ｂ（対象回路）とを含む半導体集積回路例が示されており、回路Ｂに本実施の形態にかかるクロック分周回路１００が設けられている。
【００２２】
クロック分周回路１００は、分周比設定情報４０のＮ／Ｍ（Ｎは正の整数、ＭはＮより大きい正の整数）で規定された分周比に基づいて、クロックＳ（入力クロック信号）の連続するＭ個のクロックパルスのうち、Ｍ−Ｎ個分のクロックパルスをマスクすることにより、クロックＳをＮ／Ｍの分周比で有理数分周したクロックＢ（出力クロック信号）を生成する回路である。
【００２３】
このクロック分周回路１００は、主な回路として、マスク回路１０とマスク制御回路２０とを含んでいる。マスク回路１０は、入力されたマスク信号５０に応じてクロックＳのクロックパルスをマスクすることによりクロックＢを生成して出力する機能を有する。
【００２４】
マスク制御回路２０は、クロックＢを用いる回路ＢとクロックＡを用いる回路Ａとのデータ通信の通信タイミングに基づいて、マスク信号５０を生成し当該マスク信号５０をマスク回路１０へ出力する機能を有する。ここで、マスク信号５０は、クロックＳの連続するＭ個のクロックパルスのタイミングのうち、当該データ通信が行われる通信タイミングを除く他のタイミングに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てた信号である。
【００２５】
回路Ａと回路Ｂは、クロックＡの立ち上がりのタイミングで、信号ＡｏｕｔおよびＢｏｕｔを通じて互いに通信する。この例では、回路Ａは、クロックＡでフリップフロップ回路Ａ１を駆動して信号Ａｏｕｔを出力し、回路Ｂは、クロックＢでフリップフロップ回路Ｂ１を駆動して信号Ａｏｕｔを入力する。また、回路Ｂは、クロックＢでフリップフロップ回路Ｂ２を駆動して信号Ｂｏｕｔを出力し、回路Ａは、クロックＡでフリップフロップ回路Ａ２を駆動して信号Ｂｏｕｔを入力する。
【００２６】
クロック分周回路１００は、分周比設定情報４０に加えて、回路Ｂと回路Ａとの通信タイミングを示すクロックＡを入力し、このクロックＡに基づいてクロックＳを、Ｎ／Ｍ分周比で有理数分周することでクロックＢを生成する。
なお、クロックＳ、クロックＡ、および分周比設定情報４０については、上位回路（図示せず）から供給されるものとする。
【００２７】
また、回路ＡにおけるクロックＡの位相と回路ＢにおけるクロックＢの位相が一致するように、クロックＡとクロックＢの分配遅延は、クロックツリー合成などを用いて、同等になるように設計されるものとする。すわなち、クロックＡ、クロックＢおよびクロックＳは同期している。
【００２８】
次に、図２を参照して、本実施の形態にかかるクロック分周回路の動作について説明する。図２は、本実施の形態にかかるクロック分周回路の動作を示すタイミングチャートである。ここでは、分周比分母Ｍ＝１２、分周比分子Ｎ＝１１〜４とし、クロックＳを分周比１１／１２〜４／１２で分周してクロックＢを生成する場合を例として説明する。
【００２９】
クロック分周回路１００には、クロックＳ、クロックＡ、および分周比設定情報４０が入力されている。分周比設定情報４０は、クロックＢのクロックＳに対する分周比Ｎ／Ｍ、およびクロックＡのクロックＳに対する分周比Ｃ／Ｍを示す信号である。
クロックＳは、所定周波数の連続したクロックパルスからなる信号である。クロックＡは、回路Ｂと回路Ａとの通信タイミングを示す。分周比設定情報４０は、分周比分母Ｍ、分周比分子Ｎおよび分周比分子Ｃの値を示す数ビット分の並列データからなり、分周比が変更されない限りこの分周比設定情報４０の値は変化しない。
【００３０】
クロック分周回路１００のマスク制御回路２０は、クロックＡが示す通信タイミングおよび分周比設定情報４０に基づいて、回路Ｂと回路Ａとでデータ通信が行われる通信タイミングを除く他のタイミングにおいて、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てたマスク信号５０をマスク回路１０へ出力する。
この際、前述のように、回路ＡにおいてクロックＡの立ち上がりタイミングでデータ通信が行われる場合、マスク制御回路２０は、これら通信タイミング以外のタイミング、すなわちクロックＡの立ち上がりタイミング以外のタイミングに対して、クロックＳのクロックパルスをマスクするマスクタイミングが割り当てられる。
【００３１】
図２では、クロックＡの周波数がクロックＳの１／３、すなわちクロックＡのクロックＳに対する分周比が１／３（＝４／１２）で、クロックＡとクロックＢが同期している場合が示されている。この際、クロックＡとクロックＢの位相関係は、クロックＳの１２サイクルで一巡する。図２では、この位相関係が一巡する１２サイクルのタイミングがＴ０〜Ｔ１１で示されている。したがって、回路Ａと回路Ｂは、クロックＡの立ち上がりタイミングに相当するタイミングＴ０、Ｔ３、Ｔ６、Ｔ９でデータ通信を行うことになる。
【００３２】
マスク制御回路２０は、この通信タイミング以外におけるクロックＳのクロックパルスの立ち上がりタイミング、すなわちタイミングＴ１、Ｔ２、Ｔ４、Ｔ５、Ｔ７、Ｔ８、Ｔ１０、Ｔ１１のいずれかに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てたマスク信号５０を生成する。
【００３３】
例えば、クロックＳのタイミングＴ０〜Ｔ１１にある１２個のクロックパルスのうち、Ｔ０、Ｔ３、Ｔ６、Ｔ９以外のタイミング、例えばタイミングＴ２に対してマスクタイミングを割り当てれば、分周比１１／１２のクロックＢを生成できる。さらに、Ｔ８に対してマスクタイミングを追加割り当てすれば、分周比１０／１２のクロックＢを生成できる。さらにＴ５に対して追加割り当てすれば、分周比の９／１２のクロックＢを生成できる。さらにＴ１１に対して追加割り当てすれば、分周比の８／１２のクロックＢを生成できる。
【００３４】
また、Ｔ０、Ｔ３、Ｔ６、Ｔ９以外のタイミングのうち、Ｔ１、Ｔ２、Ｔ５、Ｔ８、Ｔ１１に対してマスクタイミングを割り当てれば、分周比７／１２のクロックＢを生成できる。さらに、Ｔ７に対して追加割り当てすれば、分周比６／１２のクロックＢを生成できる。さらにＴ４に対して追加割り当てすれば、分周比の５／１２のクロックＢを生成できる。さらにＴ１０に対して追加割り当てすれば、分周比の４／１２のクロックＢを生成できる。
【００３５】
このように、本実施の形態では、回路Ｂ（対象回路）と回路Ａ（相手回路）とでデータ通信が行われる通信タイミングを除く他のタイミングに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てたマスク信号５０を、マスク制御回路２０で生成してマスク回路１０へ出力している。これにより、データ通信が行われる通信タイミングを除く他のタイミングにおいて、クロックＳからＭ−Ｎ個分のクロックパルスがマスクされてクロックＢが生成される。
【００３６】
このため、通信タイミングでは、クロックＳのクロックパルスがマスクされなくなり、通信タイミングには必ずクロックＢにクロックパルスが出力される。これに応じて、回路Ｂは、回路Ａが信号Ａｏｕｔに出力した信号を、期待したタイミングで受け取ることができる。同様に、回路Ｂは、回路Ａが期待したタイミングで、信号Ｂｏｕｔに信号を出力することができる。
【００３７】
したがって、本実施の形態にかかるクロック分周回路によれば、異なる周波数のクロック信号（クロックＡ）で動作する相手回路（回路Ａ）との間でも、通信性能を低下させずにデータ通信を行える出力クロック信号（クロックＢ）を生成することが可能となる。
【００３８】
さらに、異なる周波数のクロック信号で動作する回路との通信のために、特別なタイミング設計や特別なクロック乗せ換え回路が不要となり、低電力、低面積かつ低設計コストで、クロック信号を有理数分周することが可能となる。
【００３９】
また、本実施の形態では、マスク制御回路２０において、分周比設定情報４０に応じて、相手回路でデータ通信が行われる通信タイミングを除く他のタイミングに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングを割り当てるようにしたので、例えば分周比Ｎ／Ｍが１１／１２〜４／１２のうちのいずれかに変更される場合でも、回路Ｂの通信タイミングＴ０、Ｔ３、Ｔ６、Ｔ９以外のタイミングでクロックＳをマスクすることができる。したがって、分周比を変更する場合でも、回路ＡのクロックＡや通信タイミングを変更する必要がなくなり、極めて柔軟に対応することが可能となる。
【００４０】
次に、図３を用いてクロック分周回路１００のマスク回路１０およびマスク制御回路２０について詳細に説明する。
図３は本実施の形態にかかるクロック分周回路の構成を示すブロック図である。
図３において、マスク回路１０は、入力するマスク信号５０を参照して、クロックＳのパルスをマスクするか、あるいはマスクせずにそのままクロックＢに出力するか、のいずれかを選択する機能を有している。本実施の形態において、このマスク回路１０は、ラッチ回路１１とゲート回路１２とから構成されている。
【００４１】
ラッチ回路１１は、ゲート回路１２に入力されるマスク信号５０の遷移を、クロックＳの値が「０」であるタイミングに限定する機能を有している。
ゲート回路１２は、ラッチ回路１１でラッチされたマスク信号５０に基づいてクロックＳをマスクする機能を有する。マスク信号５０の値が「０」の場合、クロックＳをマスクする。マスク信号５０の値が「１」の場合、クロックＳをマスクしない。
【００４２】
ラッチ回路１１を設けることで、クロックＢにグリッチが発生することを抑制できる。これによりタイミング設計が容易になるという効果があるが、タイミング設計を厳密に行うことでグリッチの発生を回避する場合には、ラッチ回路１１を省略してもよい。
また、図３では、クロックＳをマスクするゲート回路１２としてＡＮＤ回路が用いられているが、これに限るものではない。ＯＲ回路を用いてもよいし、その他、同等の機能を有する回路を用いてもよい。
【００４３】
また、マスク制御回路２０は、通信タイミングおよび分周比設定情報４０に基づいて、クロックＳのクロックパルスをカウントすることで、クロックＳに対する回路Ｂでの通信タイミングの相対的な位相を示すカウント値を生成する。そして、このカウント値に基づいてマスクタイミングを割り当てたマスク信号５０を生成して出力する機能を有している。
【００４４】
本実施の形態において、このマスク制御回路２０は、カウンタ２１、テーブル回路２２、エラー検出回路６０、通信タイミング検出回路６１、マスク抑制回路６２、を有する。また、分周比設定情報４０は、複数ビットの並列ビットデータからなる、分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃとから構成されている。
【００４５】
カウンタ２１は、いずれかの通信タイミングでカウント値を「０」にリセットし、その後クロックＳのクロックパルスをカウントするとともに、当該カウント値２３が分周比分母Ｍに達した時点で、カウント値を「０」にリセットする。これにより、クロックＳに対する回路Ａの通信タイミングの相対的な位相を示す「０」から「Ｍ−１」までのカウント値２３を出力することができる。よって、カウンタ２１から、クロックＡとクロックＢの位相関係が一巡するサイクル数がカウント値２３として出力される。
【００４６】
テーブル回路２２は、カウント値２３、および分周比設定情報４０である分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃの組合せごとに、マスクの要否を示すテーブルデータ２４を予めテーブル形式で保持する機能を有する。更に、テーブル回路２２は、入力されたこれら値の組合せに応じたテーブルデータをマスクタイミング信号２９として出力する機能とを有している。これにより、分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃ、カウント値２３に応じて、クロックＳのクロックパルスをマスク回路１０でマスクすることを要求するマスクタイミング信号２９が、テーブル回路２２からクロックＳのクロックパルスごとに出力される。
【００４７】
ここで、マスクタイミング信号２９は通信タイミング信号に基づいてリセットされるカウント値２３を参照することにより、通信タイミングに基づいて生成される。つまり、テーブル回路２２は、入力クロック信号のクロックパルスのうち通信タイミング以外のクロックパルスを優先的にマスクするようなマスクタイミング信号を生成する。
【００４８】
通信タイミング検出回路６１は、入力するクロックＡを参照して、クロックＡの立ち上がりタイミングから通信タイミングを検出し、通信タイミング信号２６として出力する機能を有している。
【００４９】
図４は通信タイミング検出回路６１の具体例である。通信タイミング検出回路６１は、トグル回路６５とトグル検出回路７０から構成される。
トグル回路６５は、クロックＡで動作し、クロックＡの各立ち上がりタイミングで値がトグルするトグル信号６７を生成する。トグル検出回路７０は、トグル信号６７を入力して、トグル信号６７のトグルタイミングである立ち上がりおよび立下りタイミングを検出する。次に、そのトグルタイミングより、クロックＡの立ち上がりタイミングで「１」、それ以外のタイミングで「０」となる通信タイミング信号２６を生成する。すなわち、通信タイミング信号２６が「１」の場合は、通信タイミングであることを示す。一方、通信タイミング信号２６が「０」の場合は、通信タイミングではないことを示す。
【００５０】
図３のエラー検出回路６０は、カウント値２３と通信タイミング信号２６を参照して、通信タイミングに対してカウント値が正常な値であるか否かを判定し、カウント値２３が正常な値でないエラーが検出された場合には、リセット信号２７を通じてカウンタ２１をリセットする機能を有している。
【００５１】
図５を参照して、エラー検出回路６０の動作の具体例を説明する。図５は、エラー検出回路６０の動作を示す動作遷移図である。
エラー検出回路６０は、「正常」および「異常」の２つの状態を持つ制御回路である。具体的には、まず、「正常」状態では、入力するカウント値２３と通信タイミング信号２６を参照して、カウント値２３がカウンタ２１のリセット値である「０」になるタイミングで、通信タイミング信号２６が通信タイミングを示す「１」であるか否かを判定する。
【００５２】
カウント値２３が「０」になるタイミングで、通信タイミング信号２６が「１」の場合、カウント値２３は正常な値を示していると判断して、エラー検出回路６０は「正常」状態に留まる。「正常」状態では、リセット信号２７には、カウンタ２１をリセットしないように制御する「０」が出力され、カウンタ２１は通常のカウント動作を行う。
【００５３】
一方、カウント値２３が「０」になるタイミングで、通信タイミング信号２６が「０」の場合、カウント値２３は異常な値を示していると判断して、エラー検出回路６０は「異常」状態に遷移する。「異常」状態では、リセット信号２７には、カウンタ２１をリセットするように制御する「１」が出力され、カウンタ２１はリセット動作を行う。通信タイミングではない、すわなち、通信タイミング信号２６が「０」である間は、エラー検出回路６０は「異常」状態に留まる。
一方、通信タイミング信号２６が「１」である通信タイミングになると、エラー検出回路６０は「正常」状態に遷移し、カウンタ２１は通常のカウント動作を再開する。
【００５４】
以上説明したように、エラー検出回路６０は、カウント値２３がカウンタ２１のリセット値となるタイミングが、カウンタ２１をリセットするタイミングである通信タイミングと等しいか否かを判定することで、カウント値２３が正常な値であるか否かを判定する。
さらに、カウンタ値２３が正常な値でないと判定した場合には、カウンタ２１をリセットするタイミング（通信タイミング）においてリセットする。そのため、仮にカウンタ２１が誤動作して、カウント値が異常な値を示した場合でも、それを自律的に検出し、カウンタ２１を正常動作に回復することができる。
【００５５】
マスク抑制回路６２は、マスクタイミング信号２９と通信タイミング信号２６を参照して、マスク信号５０を生成する。このとき、通信タイミングでは、マスクタイミング信号２９の値によらず常にマスクしないようにマスク回路１０を制御するマスク信号５０を生成する。一方、通信タイミング以外ではマスクタイミング信号２９の値に応じて、マスクの要否を制御するマスク信号５０を生成する。
【００５６】
したがって、仮にカウンタ２１やテーブル回路２２などが誤動作して、マスクタイミング信号２９が異常な値を示した場合でも、少なくとも通信タイミングではクロックパルスがマスクされないので、回路Ｂと回路Ａとでデータ通信を正常に行うことができる。
マスク抑制回路６２は、例えば図３に示すように、マスクタイミング信号２９と通信タイミング信号２６とを入力とする否定論理和ゲート回路で実現することができる。
【００５７】
次に、図６を参照して、本実施の形態にかかるクロック分周回路の正常時の動作について説明する。図６は、本実施の形態にかかるクロック分周回路の動作を示すタイミングチャートである。
【００５８】
ここでは、クロックＳから分周比９／１２のクロックＢを生成する場合について説明する。なお、回路Ａと回路Ｂは、クロックＡのすべての立ち上がりのタイミングでデータ通信を行うものとし、クロックＡとクロックＢは同期しており、その分周比が１／３（＝４／１２）であるものとする。
【００５９】
このとき、クロックＢの分周比Ｎ／Ｍ＝９／１２、クロックＡの分周比Ｃ／Ｍ＝４／１２であるので、分周比設定情報４０を構成する分周比分母Ｍには「１２」、分周比分子Ｎには「９」、分周比分子Ｃには「４」が与えられている。
通信タイミング信号２６は、クロックＡの立ち上がりのタイミングで「１」となり、それ以外で「０」となり、回路Ａと回路Ｂとの間の通信タイミングを示している。
【００６０】
カウンタ２１は、いずれかの通信タイミングでカウント値が「０」になり、その後、クロックＡとクロックＢの位相関係が一巡する１２サイクル分を繰り返してクロックＳのクロックパルスをカウントする。これにより、クロックＡとクロックＢの相対的な位相関係を示すカウント値２３がカウンタ２１から出力される。
図６では、カウント値２３が「０」〜「１１」の値をとるタイミングとタイミングＴ０〜Ｔ１１とが対応している。すなわち、カウント値２３は、タイミングＴ０で「０」、タイミングＴ１で「１」、タイミングＴ１１で「１１」となり、再びタイミングＴ０'で「０」になる。
また、カウント値２３は、カウンタ２１をリセットするタイミングである通信タイミングで、リセット値である「０」となる。
【００６１】
テーブル回路２２のテーブルデータ２４は、カウント値２３、分周比分母Ｍ、分周比分子Ｎ、および分周比分子Ｃの組合せごとに、クロックＳの次のサイクルのパルスをマスクする場合は「０」、マスクしない場合は「１」が予め設定されている。したがって、各時刻に入力された、カウント値２３、分周比分母Ｍ、分周比分子Ｎ、および分周比分子Ｃの組合せに応じたテーブルデータ２４の値が、マスクタイミング信号２９として出力される。
【００６２】
図６の場合、テーブル回路２２には、クロック信号Ｓの連続するＭ個のクロックパルスのタイミングＴ０〜Ｔ１１のうち、回路Ａと回路Ｂとの間で行うデータ通信の通信タイミングを除く他のタイミングＴ２、Ｔ５、Ｔ８に対してマスクタイミングを割り当てたテーブルデータ２４が予め設定されている。また、これら以外のタイミングＴ０、Ｔ１、Ｔ３、Ｔ４、Ｔ６、Ｔ７、Ｔ９、Ｔ１０、Ｔ１１については、非マスクタイミングが割り当てられている。
【００６３】
これにより、例えばカウント値２３が「２」、「５」、「８」の場合は、テーブルデータ２４としてマスクタイミングを示す「０」、それ以外の場合は、テーブルデータ２４として非マスクタイミングを示す「１」が、テーブル回路２２からマスクタイミング信号２９として出力される。
【００６４】
カウント値２３が「２」、「５」、「８」であるタイミングＴ２、Ｔ５、Ｔ８は、通信タイミング（Ｔ０、Ｔ３、Ｔ６、Ｔ９）ではないので、マスク抑制回路６２は、マスクタイミング信号２９の値をそのままマスク信号５０として出力する。すなわち、タイミングＴ２、Ｔ５、Ｔ８では、マスクタイミングを示す「０」が、マスク抑制回路６２からマスク信号５０として出力される。それ以外のタイミングでは、非マスクタイミングを示す「１」が、マスク抑制回路６２からマスク信号５０として出力される。
【００６５】
マスク回路１０は、このマスク信号５０を参照して、タイミングＴ２、Ｔ５、Ｔ８において、クロックＳのパルスをマスクし、それ以外のタイミングではパルスをマスクしないで、クロックＢに出力する。
したがって、連続するＭ個のクロックパルスのタイミングＴ０〜Ｔ１１のうち、タイミングＴ０、Ｔ３、Ｔ６、Ｔ９では、常にクロックＳのクロックパルスがマスクされずクロックＢとして出力される。一方、通信タイミングではないそれ以外のタイミング、ここではタイミングＴ２、Ｔ５、Ｔ８にあるクロックパルスがマスクされてクロックＢとして出力されない。
【００６６】
図６では、クロックＢの分周比が９／１２、クロックＡの周波数がクロックＳの１／３である場合の生成例を示したが、その他の場合であっても同様である。分周比設定情報４０、およびクロックＡとクロックＢの相対的な位相関係の組合せごとにテーブルデータ２４の値を適切に設定することで、通信タイミングにあるクロックパルスは常にマスクがされず、また、通信タイミングにないクロックパルスがマスクされることで、任意の有理数分周を実現することができる。
【００６７】
また、図６では、マスク制御回路２０に入力される、分周比分母Ｍ、分周比分子Ｎ、分周比分子Ｃなどの値は一定であったが、テーブル回路２２がそれらの値に対応するテーブルデータ２４を保持する範囲内であれば、適宜動作中に変更することもできる。
また、クロックＳのクロックパルスをマスクするタイミングは、通信のタイミング以外であれば、いずれのタイミングであってもよい。
【００６８】
図７および図８は、本実施の形態にかかるクロック分周回路の他の動作を示すタイミングチャートである。
例えば図７は、図２と同じ条件である、クロックＡの周波数がクロックＳの１／３である場合における、クロックＳを分周比１１／１２〜４／１２で分周して生成したクロックＢの別の生成例である。通信のタイミングではないタイミングＴ１、Ｔ２、Ｔ４、Ｔ５、Ｔ７、Ｔ８、Ｔ１０、Ｔ１１にあるパルスのうち、図２の生成例とは別のタイミングのパルスをマスクしている。
【００６９】
一方、図８は、クロックＡの周波数がクロックＳの１／４である場合における、クロックＳを分周比１１／１２〜３／１２で分周して生成したクロックＢの生成例である。図７の生成例と図８の生成例では、クロックＡの周波数が異なり、その結果通信のタイミングも異なるが、分周比が１１／１２〜６／１２の場合のクロックＢを、同じタイミングのパルスをマスクすることで生成していることを特徴としている。
したがって、クロックＡの周波数がクロックＳの１／３の場合と１／４の場合とで、分周比が１１／１２〜６／１２のクロックＢを生成するためのテーブルデータ２４を共有できるため、テーブル回路２２のハードウェア量を小さくできるという効果がある。
【００７０】
次に、図９を参照して、本実施の形態にかかるクロック分周回路が誤動作した場合の動作について説明する。図９は、本実施の形態にかかるクロック分周回路の誤動作発生時の動作を示すタイミングチャートである。
図６の場合と同様に、ここでは、クロックＳから分周比９／１２のクロックＢを生成する場合について説明する。なお、回路Ａと回路Ｂは、クロックＡのすべての立ち上がりのタイミングでデータ通信を行うものとし、クロックＡとクロックＢは同期しており、その分周比が１／３（＝４／１２）であるものとする。
【００７１】
図９では、図６で示した信号の値に加えて、図５に示したエラー検出回路６０の状態、およびリセット信号２７の値を図示している。
カウンタ２１は、正常な動作では、いずれかの通信タイミングでカウント値が「０」になり、その後、クロックＡとクロックＢの位相関係が一巡する１２サイクル分を繰り返してクロックＳのクロックパルスをカウントする。これにより、クロックＡとクロックＢの相対的な位相関係を示すカウント値２３がカウンタ２１から出力される。
【００７２】
それに対して図９では、タイミングＴ４において、例えば電源ノイズなどの影響により、カウンタ２１が誤動作したとする。その結果、タイミングＴ４におけるカウント値２３は、正常動作時の「４」に対して、不正な値である「６」になり、さらにその後、不正な値がカウントされるとする。
【００７３】
そのため、例えば、通信タイミングであるタイミングＴ６では、カウント値２３は「８」であるため、テーブルデータ２４としてマスクタイミングを示す「０」が、テーブル回路２２からマスクタイミング信号２９として出力されるというエラーが発生する。その結果、仮にこのままマスクタイミング信号２９がマスク信号５０として出力され、マスク回路１０がクロックパルスをマスクした場合、回路Ａと回路Ｂとのデータ通信が正常に行われなくなるというエラーが発生する。
【００７４】
それに対して、本実施の形態によるクロック分周回路は、通信タイミングにおいて、マスク抑制回路６２が、マスクタイミング信号２９の値によらず常にマスクしないようにマスク回路１０を制御するマスク信号５０を生成する。したがって、例えばタイミングＴ６において、マスクタイミング信号２９がマスクタイミングを示す「０」であるにもかかわらず、マスク信号５０には非マスクタイミングを示す「１」が出力される。
【００７５】
すわなち、本実施の形態によるクロック分周回路では、通信タイミングでは常にクロックパルスがマスクされないので、仮にカウンタ２１が誤動作し、カウント値が不正な値である場合でも、回路Ａと回路Ｂとのデータ通信を正常に行うことができる。
一方、エラー検出回路６０は、通信タイミングに対してカウント値が正常な値であるか否かを判定し、カウント値２３が正常な値でないエラーが検出された場合には、リセット信号２７を通じてカウンタ２１をリセットする。
【００７６】
具体的には、タイミングＴ４で誤動作が発生した後、カウント値２３が「０」になるタイミングＴ１０で、エラー検出回路６０は、通信タイミング信号２６が「１」であるか否かを判定する。タイミングＴ１０では、カウント値２３は「０」であるので、カウント値２３は異常な値を示していると判断し、エラー検出回路６０は「正常」状態から「異常」状態に遷移する。
【００７７】
「異常」状態では、リセット信号２７には、カウンタ２１をリセットするように制御する「１」が出力され、これによりカウンタ２１はリセット動作を行う。通信タイミングではない、すわなち、通信タイミング信号２６が「０」であるタイミングＴ１１までは、エラー検出回路６０は「異常」状態に留まる。次のタイミングＴ０'は、通信タイミングであり、通信タイミング信号２６は「１」になる。エラー検出回路６０は「正常」状態に遷移する。その結果、タイミングＴ０'以降において、カウンタ２１は正常なカウント動作を再開する。
【００７８】
以上説明したように、仮にカウンタ２１が誤動作して、カウント値が異常な値を示した場合でも、エラー検出回路６０がそれを自律的に検出し、カウンタ２１をリセットすることで、カウンタ２１を正常動作に回復することができる。
さらに、誤動作が発生してから、エラー検出回路６０がそれを検出し、正常状態に回復するまでの誤動作している状態においても、マスク抑制回路６２が、通信タイミングでは常にマスクしないようにマスク回路１０を制御するマスク信号５０を生成する。これにより、回路Ａと回路Ｂとのデータ通信を正常に行うことができる。
さらに、カウンタ２１以外に誤動作が発生した場合でも、マスク抑制回路６２は、通信タイミングでは常にマスクしないようにマスク回路１０を制御するマスク信号５０を生成するので、回路Ａと回路Ｂとのデータ通信を正常に行うことができる。
【００７９】
このように、本実施の形態では、マスク制御回路において、入力クロック信号のクロックパルスをカウンタでカウントするとともに、当該カウント値が分周比分母Ｍに達した時点でカウント値をリセットしている。更に、入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値を生成し、このカウント値に基づいてマスクタイミングを割り当てたマスク信号を生成している。これにより、カウンタという極めて簡単な回路構成で、入力クロック信号に対する通信タイミングの相対的な位相を導出でき、通信タイミング以外のタイミングからマスクタイミングを正確に割り当てることが可能となる。
【００８０】
また、本実施の形態では、マスク制御回路において、少なくとも分周比設定情報、およびカウント値の組合せごとにマスクの要否を示すテーブルデータを予めテーブル回路で保持している。そして、入力されたこれら組合せに応じてテーブル回路から出力されたテーブルデータをマスク信号として出力している。これにより、テーブル回路という極めて簡単な回路構成で、通信タイミング以外のタイミングから所望のマスクタイミングを正確に割り当てることが可能となる。
【００８１】
また、本実施の形態によるクロック分周回路１００は、ディジタル論理回路のみで構成され、クロックＳをマスクするか否かのいずれかを選択することで有理数分周を実現している。これにより、消費電力を低減でき、また、レイアウト面積を小さくすることができる。更に、アナログ回路や専用設計を必要とする回路を使用していないので、設計・検証コストが小さいという特徴がある。
【００８２】
また、本実施の形態では、通信タイミングにおいて、マスク抑制回路６２が、マスクタイミング信号２９の値によらず常にクロックパルスをマスクしないようにマスク信号５０を生成している。よって、仮に回路が誤動作してマスクタイミング信号２９が異常な値を示した場合でも、回路Ｂと回路Ａとでデータ通信を正常に行うことができる。その結果、信頼性の高いデータ通信を実現することができる。
【００８３】
また、本実施の形態では、仮にカウンタ２１が誤動作して、カウント値が異常な値を示した場合でも、エラー検出回路６０がそれを自律的に検出し、カウンタ２１をリセットすることで、カウンタ２１を正常動作に回復することができる。その結果、回路Ｂと回路Ａとで信頼性の高いデータ通信を実現することができる。
【００８４】
発明の実施の形態２． 
次に、図１０を用いて、本発明の実施の形態２にかかるクロック分周回路について説明する。図１０に示す本実施の形態にかかるクロック分周回路は、実施の形態１で説明したクロック分周回路の構成のうち、エラー検出回路６０を除いた構成となっている。本実施形態にかかるクロック分周回路のうち実施の形態１と共通の構成部分については、重複した説明を省略する。
【００８５】
本実施の形態にかかるクロック分周回路は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号（クロックＳ）のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、入力クロック信号をＮ／Ｍ分周した出力クロック信号（クロックＢ）を生成するクロック分周回路である。
【００８６】
本実施の形態にかかるクロック分周回路は、マスク制御回路２０とマスク回路１０を有する。
マスク回路１０は、マスク制御回路２０によって生成されたマスク信号５０に応じて、入力クロック信号（クロックＳ）のクロックパルスをマスクすることによって出力クロック信号（クロックＢ）を生成する。
【００８７】
マスク制御回路２０は、通信タイミング信号２６に基づいて、入力クロック信号のＭ個のクロックパルスのうち通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号２９を生成するマスクタイミング信号生成回路２２を有する。ここで、通信タイミング信号２６は、出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す信号である。
【００８８】
また、マスク制御回路２０は、マスクタイミング信号２９に対して通信タイミングではクロックパルスのマスクを抑制する処理をしたマスク信号５０を生成するマスク抑制回路を有する。
【００８９】
つまり、マスク抑制回路６２は、マスクタイミング信号２９と通信タイミング信号２６を参照して、マスク信号５０を生成する。このとき、通信タイミングでは、マスクタイミング信号２９の値によらず常にマスクしないようにマスク回路１０を制御するマスク信号５０を生成する。一方、通信タイミング以外ではマスクタイミング信号２９の値に応じて、マスクの要否を制御するマスク信号５０を生成する。
【００９０】
したがって、仮にカウンタ２１やマスクタイミング信号生成回路２２などが誤動作して、マスクタイミング信号２９が異常な値を示した場合でも、少なくとも通信タイミングではクロックパルスがマスクされないので、図１の回路Ｂと回路Ａとでデータ通信を正常に行うことができる。
マスク抑制回路６２は、例えば図１０に示すように、マスクタイミング信号２９と通信タイミング信号２６とを入力とする否定論理和ゲート回路で実現することができる。
【００９１】
また、本実施形態にかかるクロック分周方法は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、次の工程を有する。
【００９２】
入力クロック信号（クロックＳ）のＭ個のクロックパルスのうち通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号２９を生成する工程。
マスクタイミング信号２９に対して、通信タイミングではクロックパルスのマスクを抑制する処理をしたマスク信号５０を生成する工程。
マスク信号５０に応じて、入力クロック信号のクロックパルスをマスクすることによって出力クロック信号（クロックＢ）を生成する工程。
ここで、通信タイミング信号２６は、出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す信号である。
【００９３】
以上で説明した本実施形態にかかる発明により、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を行うことを可能とするクロック信号を生成するクロック分周回路、及びクロック分周方法を提供することが可能となる。なお、発明の実施の形態１と共通する部分については、発明の実施の形態１と同等の効果が得られることは明らかである。
【００９４】
発明の実施の形態３． 
次に、図１１を用いて、本発明の実施の形態３にかかるクロック分周回路について説明する。図１１に示す本実施の形態にかかるクロック分周回路は、実施の形態１で説明したクロック分周回路の構成のうち、マスク抑制回路６２を除いた構成となっている。本実施形態にかかるクロック分周回路のうち実施の形態１と共通の構成部分については、重複した説明を省略する。
【００９５】
本実施の形態にかかるクロック分周回路は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号（クロックＳ）のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、入力クロック信号をＮ／Ｍ分周した出力クロック信号（クロックＢ）を生成するクロック分周回路である。
【００９６】
本実施の形態にかかるクロック分周回路は、マスク制御回路２０とマスク回路１０を有する。
マスク回路１０は、マスク制御回路２０によって生成されたマスクタイミング信号２９に応じて、入力クロック信号（クロックＳ）のクロックパルスをマスクすることによって出力クロック信号（クロックＢ）を生成する。尚、本実施の形態では、マスク抑制回路がないため、マスクタイミング信号生成回路２２から出力されるマスクタイミング信号２９が直接マスク回路１０に入力される。
【００９７】
マスク制御回路２０は、入力クロック信号（クロックＳ）のクロックパルスをカウントし、当該カウント値２３が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値２３を生成するカウンタ２１を有する。
【００９８】
また、マスク制御回路２０は、当該カウント値２３と通信タイミング信号２６とに基づいて、入力クロック信号のＭ個のクロックパルスのうち通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号２９を生成するマスクタイミング信号生成回路２２を有する。ここで、通信タイミング信号２６は、出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す信号である。
【００９９】
また、マスク制御回路２０は、通信タイミングに対してカウント値２３が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットするように前記カウンタを制御するエラー検出回路６０を有する。
【０１００】
図５を参照して、エラー検出回路６０の動作の具体例を説明する。図５は、エラー検出回路６０の動作を示す動作遷移図である。
エラー検出回路６０は、「正常」および「異常」の２つの状態を持つ制御回路である。具体的には、まず、「正常」状態では、入力するカウント値２３と通信タイミング信号２６を参照して、カウント値２３がカウンタ２１のリセット値である「０」になるタイミングで、通信タイミング信号２６が通信タイミングを示す「１」であるか否かを判定する。
【０１０１】
カウント値２３が「０」になるタイミングで、通信タイミング信号２６が「１」の場合、カウント値２３は正常な値を示していると判断して、エラー検出回路６０は「正常」状態に留まる。「正常」状態では、リセット信号２７には、カウンタ２１をリセットしないように制御する「０」が出力され、カウンタ２１は通常のカウント動作を行う。
【０１０２】
一方、カウント値２３が「０」になるタイミングで、通信タイミング信号２６が「０」の場合、カウント値２３は異常な値を示していると判断して、エラー検出回路６０は「異常」状態に遷移する。「異常」状態では、リセット信号２７には、カウンタ２１をリセットするように制御する「１」が出力され、カウンタ２１はリセット動作を行う。通信タイミングではない、すわなち、通信タイミング信号２６が「０」である間は、エラー検出回路６０は「異常」状態に留まる。
一方、通信タイミング信号２６が「１」である通信タイミングになると、エラー検出回路６０は「正常」状態に遷移し、カウンタ２１は通常のカウント動作を再開する。
【０１０３】
以上説明したように、エラー検出回路６０は、カウント値２３がカウンタ２１のリセット値となるタイミングが、カウンタ２１をリセットするタイミングである通信タイミングと等しいか否かを判定することで、カウント値２３が正常な値であるか否かを判定する。
さらに、カウンタ値２３が正常な値でないと判定した場合には、カウンタ２１をリセットするタイミング（通信タイミング）においてリセットする。そのため、仮にカウンタ２１が誤動作して、カウント値が異常な値を示した場合でも、それを自律的に検出し、カウンタ２１を正常動作に回復することができる。
【０１０４】
また、本実施形態にかかるクロック分周方法は、Ｎ／Ｍ（Ｎは正整数、ＭはＮより大きい正整数）により規定された分周比に基づいて、入力クロック信号のＭ個のクロックパルスのうち、（Ｍ−Ｎ）個分のクロックパルスをマスクすることにより、入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック分周方法であって、次の工程を有する。
【０１０５】
入力クロック信号（クロックＳ）のクロックパルスをカウントし、当該カウント値２３が分周比の分母Ｍに達した時点でカウント値をリセットすることにより、前記入力クロック信号に対する通信タイミングの相対的な位相を示すカウント値を生成する工程。
前記カウント値２３と通信タイミング信号２６とに基づいて、前記入力クロック信号のＭ個のクロックパルスのうち前記通信タイミング以外のクロックパルスを優先的にマスクするマスクタイミング信号２９を生成する工程。
前記通信タイミングに対して前記カウント値が正常な値であるか否かを判定し、正常な値でないと判定した場合には、前記カウント値をリセットするように前記カウンタを制御する工程。
前記マスクタイミング信号２９に応じて、前記入力クロック信号（クロックＳ）のクロックパルスをマスクすることによって出力クロック信号（クロックＢ）を生成する工程。
ここで、通信タイミング信号２６は、出力クロック信号を用いる対象回路が行うデータ通信の通信タイミングを示す信号である。
【０１０６】
以上で説明した本実施形態にかかる発明により、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を行うことを可能とするクロック信号を生成するクロック分周回路、及びクロック分周方法を提供することが可能となる。なお、発明の実施の形態１と共通する部分については、発明の実施の形態１と同等の効果が得られることは明らかである。
【０１０７】
発明の実施の形態４． 
次に、図１２を用いて、本発明の実施の形態４にかかるクロック分周回路について説明する。なお、実施の形態１と共通の構成部分については、重複した説明を省略する。
図１２は、本発明の実施の形態４にかかるクロック分周回路の適用例を示す説明図である。
【０１０８】
図１２には、クロックＡで動作する回路Ａと、クロックＢで動作する回路Ｂを含んだ半導体集積回路の例が示されている。このうち、回路Ａには図１のクロック分周回路１００と同様のクロック分周回路１００Ａが設けられ、回路Ｂには図１のクロック分周回路１００と同様のクロック分周回路１００Ｂが設けられている。
【０１０９】
クロック分周回路１００Ｂには、クロックＢの分周比を設定する分周比設定情報Ｂ（４０Ｂ）に加えて、回路Ａと回路Ｂ間の通信のタイミングを示すクロックＮが入力されている。クロック分周回路１００Ｂは、これら分周比設定情報Ｂ（４０Ｂ）とクロックＮとに基づいてクロックＳを有理数分周することでクロックＢを生成する。
【０１１０】
一方、クロック分周回路１００Ａには、クロックＡの分周比を設定する分周比設定情報Ａ（４０Ａ）に加えて、回路Ａと回路Ｂ間の通信のタイミングを示すクロックＮが入力されている。クロック分周回路１００Ａは、これら分周比設定情報Ａ（４０Ａ）とクロックＮとに基づいてクロックＳを有理数分周することでクロックＡを生成する。
【０１１１】
回路Ａと回路Ｂは、クロックＮの立ち上がりタイミングで、信号ＡｏｕｔおよびＢｏｕｔを通じて互いに通信する。この例では、回路Ａは、クロックＡでフリップフロップ回路Ａ１を駆動して信号Ａｏｕｔを出力し、回路Ｂは、クロックＢでフリップフロップ回路Ｂ１を駆動して信号Ａｏｕｔを入力する。また、回路Ｂは、クロックＢでフリップフロップ回路Ｂ２を駆動して信号Ｂｏｕｔを出力し、回路Ａは、クロックＡでフリップフロップ回路Ａ２を駆動して信号Ｂｏｕｔを入力する。
【０１１２】
図１３および図１４は、本実施の形態にかかるクロック分周回路の動作を示すタイミングチャートである。
図１３および図１４を用いて、クロックＡ及びクロックＢを生成する場合の一例について説明する。このとき、クロックＮの周波数はクロックＳの１／４（＝３／１２）であり、クロックＡ及びクロックＢは、クロックＳを分周比１１／１２〜３／１２で分周することで生成されている。
【０１１３】
クロックＡ、クロックＢおよびクロックＮのクロックＳに対する分周比分母Ｍは共に１２であるので、クロックＡとクロックＮ、およびクロックＢとクロックＮの位相関係は、クロックＳの１２サイクルで一巡する。この位相関係が一巡する１２サイクルのタイミングを、Ｔ０〜Ｔ１１で示している。回路Ａと回路Ｂは、クロックＮのすべての立ち上がりのタイミングであるタイミングＴ０、Ｔ４、Ｔ８で通信する。
【０１１４】
クロック分周回路１００Ａおよびクロック分周回路１００Ｂは、上記通信タイミングを示すクロックＮをそれぞれのマスク制御回路２０に入力する。マスク制御回路２０は、両者間の通信タイミングにおけるクロックパルスを常にマスクしないようにマスク回路１０を制御し、通信タイミング以外のタイミングのいずれかのクロックパルスをマスクするようにマスク回路１０を制御する。
【０１１５】
それぞれのマスク制御回路２０は、クロックＳのクロックパルスのうち、これら通信タイミング以外のタイミングにおけるクロックパルスをマスクするマスク信号５０を生成する。すなわち通信タイミングＴ０、Ｔ４、Ｔ８以外のいずれかに対して、Ｍ−Ｎ個分のクロックパルスをマスクするマスクタイミングが割り当てられる。
【０１１６】
例えば、図１３において、クロックＳのタイミングＴ０〜Ｔ１１にある１２個のクロックパルスのうち、Ｔ０、Ｔ４、Ｔ８以外のタイミング、例えばＴ６にマスクタイミングを割り当てた場合、分周比１１／１２のクロックＡを生成できる。さらにＴ１０を追加割り当てすれば、分周比１０／１２のクロックＡを生成できる。
【０１１７】
同様に、図１４において、クロックＳのタイミングＴ０〜Ｔ１１にある１２個のクロックパルスのうち、Ｔ０、Ｔ４，Ｔ８以外のタイミング、例えばＴ９にマスクタイミングを割り当てた場合、分周比１１／１２のクロックＢを生成できる。さらにＴ５を追加割り当てすれば、分周比１０／１２のクロックＢを生成できる。
【０１１８】
本実施の形態にかかる発明においても、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を行うことを可能とするクロック信号を生成するクロック分周回路を提供することが可能となる。なお、他の発明の実施の形態と共通する部分については、他の発明の実施の形態と同等の効果が得られることは明らかである。
【０１１９】
発明の実施の形態５．
次に、図１５を用いて、本発明の実施の形態５にかかるクロック分周回路について説明する。図１５は、本発明の実施の形態５にかかるクロック分周回路を示す図である。
実施の形態４では、クロックＡで動作する回路Ａと、クロックＢで動作する回路Ｂの２つの回路が互いに通信する場合について説明した。実施の形態５では、クロックおよび回路が３つ以上の場合について説明する。なお、実施の形態１、実施の形態４と共通の構成部分については、重複した説明を省略する。
【０１２０】
図１５に、クロックＡで動作する回路Ａ、クロックＢで動作する回路Ｂ、クロックＣで動作する回路Ｃの３つの回路を含んだ半導体集積回路を示す。このうち、回路Ａにはクロック分周回路１００と同様のクロック分周回路１００Ａが設けられ、回路Ｂにはクロック分周回路１００と同様のクロック分周回路１００Ｂが設けられ、回路Ｃにはクロック分周回路１００と同様のクロック分周回路１００Ｃが設けられている。
【０１２１】
クロック分周回路１００Ａは、クロックＡの分周比を設定する分周比設定Ａに加えて、クロックＡ、クロックＢ、クロックＣ間の通信のタイミングを示すクロックＮを入力している。そして、クロック分周回路１００Ａは、それらに基づいてクロックＳを有理数分周することでクロックＡを生成している。同様にクロック分周回路１００Ｂは、クロックＢの分周比を設定する分周比設定Ｂに加えて、上記通信のタイミングを示すクロックＮを入力し、それらに基づいてクロックＳを有理数分周することでクロックＢを生成する。同様にクロック分周回路１００Ｃは、クロックＣの分周比を設定する分周比設定Ｃに加えて、上記通信タイミングを示すクロックＮを入力し、それらに基づいてクロックＳを有理数分周することでクロックＣを生成する。
【０１２２】
回路Ａ、回路Ｂ、回路Ｃは、クロックＮに基づく通信のタイミングで、相互に通信する。このうち、回路Ａと回路Ｂは、信号Ａｏｕｔ０およびＢｏｕｔ０を通じて互いに通信する。この際、回路Ａは、クロックＡの立ち上がりタイミングでフリップフロップ回路Ａ１０を駆動して信号Ａｏｕｔ０を出力し、回路Ｂは、クロックＢの立ち上がりタイミングでフリップフロップ回路Ｂ１０を駆動して信号Ａｏｕｔ０を入力する。また、回路Ｂは、クロックＢの立ち上がりタイミングでフリップフロップ回路Ｂ２０を駆動して信号Ｂｏｕｔ０を出力し、回路Ａは、立ち上がりクロックＡのタイミングでフリップフロップ回路Ａ２０を駆動して信号Ｂｏｕｔ０を入力する。
【０１２３】
また、回路Ａと回路Ｃは、信号Ａｏｕｔ１およびＣｏｕｔ０を通じて互いに通信する。この際、回路Ａは、クロックＡの立ち上がりタイミングでフリップフロップ回路Ａ１１を駆動して信号Ａｏｕｔ１を出力し、回路Ｃは、クロックＣの立ち上がりタイミングでフリップフロップ回路Ｃ１０を駆動して信号Ａｏｕｔ１を入力する。また、回路Ｃは、クロックＣの立ち上がりタイミングでフリップフロップ回路Ｃ２０を駆動して信号Ｃｏｕｔ０を出力し、回路Ａは、立ち上がりクロックＡのタイミングでフリップフロップ回路Ａ２１を駆動して信号Ｃｏｕｔ０を入力する。
【０１２４】
また、回路Ｂと回路Ｃは、信号Ｂｏｕｔ１およびＣｏｕｔ１を通じて互いに通信する。この際、回路Ｂは、クロックＢの立ち上がりタイミングでフリップフロップ回路Ｂ２１を駆動して信号Ｂｏｕｔ１を出力し、回路Ｃは、クロックＣの立ち上がりタイミングでフリップフロップ回路Ｃ１１を駆動して信号Ｂｏｕｔ１を入力する。また、回路Ｃは、クロックＣの立ち上がりタイミングでフリップフロップ回路Ｃ２１を駆動して信号Ｃｏｕｔ１を出力し、回路Ｂは、立ち上がりクロックＢのタイミングでフリップフロップ回路Ｂ２１を駆動して信号Ｃｏｕｔ１を入力する。
【０１２５】
図１６は、本実施の形態にかかるクロック分周回路の動作を示すタイミングチャートである。この例では、クロックＳを分周比１１／１２〜４／１２で分周して生成したクロックＡ、クロックＢ、クロックＣを示している。回路Ａ、回路Ｂ、回路Ｃは、タイミングＴ０、Ｔ３、Ｔ６、Ｔ９で通信するものとする。
【０１２６】
本実施の形態においても、クロック分周回路１００Ａ、クロック分周回路１００Ｂ、クロック分周回路１００Ｃは、上記通信のタイミングを示すクロックＮを入力している。そして、クロック分周回路は、クロックＮに基づき、通信のタイミングにあるクロックパルスを常にマスクしないように制御し、通信タイミング以外のタイミングのいずれかのクロックパルスをマスクするように制御することで、有理数分周を実現している。
【０１２７】
具体的には、通信のタイミングであるタイミングＴ０、Ｔ３、Ｔ６、Ｔ９では、常にクロックパルスをマスクせず、通信のタイミングではないタイミングＴ１、Ｔ２、Ｔ４，Ｔ５、Ｔ７、Ｔ８、Ｔ１０、Ｔ１１のいずれかにあるクロックパルスをマスクすることで、クロックＡ、クロックＢ、クロックＣを生成する。
【０１２８】
このように、本実施の形態においても、クロック分周回路が生成するクロックは、通信のタイミングで必ずクロックパルスが存在するので、異なる周波数のクロックを有する回路との通信において、期待した正しい通信動作を実現することができる。
また、異なる周波数のクロックを有する回路との通信において、通信性能が低下せず、効率的な通信を行うことができる。さらに、分周比を変更する場合でも、それに応じて異なる周波数のクロックを有する回路との通信のタイミングを変更する必要がない。例えば、図１６のクロック分周例では、クロックＡ、クロックＢ、クロックＣの分周比を１１／１２〜４／１２のいずれに変更する場合でも、通信タイミングＴ０、Ｔ３、Ｔ６、Ｔ９を変更する必要がなく、柔軟に対応できる。
【０１２９】
本実施の形態にかかる発明においても、異なる周波数のクロックにより動作する回路との通信において、期待した正しい通信動作を行うことを可能とするクロック信号を生成するクロック分周回路を提供することが可能となる。なお、他の発明の実施の形態と共通する部分については、他の発明の実施の形態と同等の効果が得られることは明らかである。
【０１３０】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１３１】
この出願は、２００８年１２月１７日に出願された日本出願特願２００８−３２１１２９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１３２】
１０  マスク回路
１１  ラッチ回路
１２  ゲート回路
２０  マスク制御回路
２１  カウンタ
２２  テーブル回路（マスクタイミング信号生成回路）
２３  カウント値
２４  テーブルデータ
２６  通信タイミング信号
２７  リセット信号
２９  マスクタイミング信号
４０  分周比設定情報
５０  マスク信号
６０  エラー検出回路
６１  通信タイミング検出回路
６２  マスク抑制回路
６５  トグル回路
７０  トグル検出回路
１００、１００Ａ、１００Ｂ、１００Ｃ  クロック分周回路
【図１】
2010070830.tif 000003
【図２】
2010070830.tif 000004
【図３】
2010070830.tif 000005
【図４】
2010070830.tif 000006
【図５】
2010070830.tif 000007
【図６】
2010070830.tif 000008
【図７】
2010070830.tif 000009
【図８】
2010070830.tif 000010
【図９】
2010070830.tif 000011
【図１０】
2010070830.tif 000012
【図１１】
2010070830.tif 000013
【図１２】
2010070830.tif 000014
【図１３】
2010070830.tif 000015
【図１４】
2010070830.tif 000016
【図１５】
2010070830.tif 000017
【図１６】
2010070830.tif 000018
【図１７】
2010070830.tif 000019
【図１８】
2010070830.tif 000020
【国際調査報告】
2010070830.tif 000021
2010070830.tif 000022
2010070830.tif 000023