(57)【要約】【課題】クロック分周回路において動作電圧を低下させて消費電力を削減すること。【解決手段】クロック分周回路は、入力クロック信号をカウントしてＤ進カウント値とするカウンタと、出力クロック信号をカウントしてＮ進カウント値とするカウンタと、出力クロック信号と出力クロックの最小周期と出力クロックの半周期精度差分とＤ進カウント値とＮ進カウント値とから立ち上がり及び立ち下がりトグルイネーブル信号を求めるトグル位置解析部と、入力クロック信号の立ち上がりエッジにおいて立ち上がりトグルイネーブル信号に応じてトグルする第１のフリップフロップと、入力クロック信号の立ち下がりエッジにおいて立ち下がりトグルイネーブル信号に応じてトグルする第２のフリップフロップと、第１及び第２のフリップフロップの出力の間における排他的論理和を求めて出力クロックする排他的論理和回路と、を備えている。【選択図】図１
2011188026.tif 000002
【特許請求の範囲】
【請求項１】
入力クロック信号を分周して出力クロック信号として出力するクロック分周回路において、
前記入力クロック信号をカウントしてＤ進カウント値として出力するＤ進カウンタと、
前記出力クロック信号をカウントしてＮ進カウント値として出力するＮ進カウンタと、
前記出力クロック信号と前記出力クロックの最小周期と前記出力クロックの半周期精度差分と前記Ｄ進カウント値と前記Ｎ進カウント値とに基づいて、立ち上がりトグルイネーブル信号及び立ち下がりトグルイネーブル信号を求めて出力するトグル位置解析部と、
前記入力クロック信号の立ち上がりエッジにおいて前記立ち上がりトグルイネーブル信号に応じてトグルする第１のフリップフロップと、
前記入力クロック信号の立ち下がりエッジにおいて前記立ち下がりトグルイネーブル信号に応じてトグルする第２のフリップフロップと、
前記第１のフリップフロップの出力と前記第２のフリップフロップの出力との間における排他的論理和を前記出力クロックとして出力する排他的論理和回路と、を備えていることを特徴とするクロック分周回路。
【請求項２】
前記トグル位置解析部は、前記Ｎ進カウント値と前記出力クロック信号の最小周期と前記出力クロック信号の半周期精度差分とに基づいて前記出力クロックの半周期精度差分を均等に分配した出力クロック周期を求め、該出力クロック周期と前記出力クロック信号のレベルとに基づいて出力クロック半周期を求め、該出力クロック半周期に基づいて出力クロックのトグルポイントを求め、該トグルポイントと前記Ｄ進カウント値とに基づいて前記立ち上がりトグルイネーブル信号及び前記立ち下がりトグルイネーブル信号を求めることを特徴とする、請求項１に記載のクロック分周回路。
【請求項３】
入力クロック周期設定値及び出力クロック周期設定値を参照し、前記出力クロックの最小周期を求める最小周期算出部をさらに備えていることを特徴とする、請求項１又は２に記載のクロック分周回路。
【請求項４】
入力クロック周期設定値及び出力クロック周期設定値を参照し、前記出力クロックの半周期精度差分を求める半周期精度差分算出部をさらに備えていることを特徴とする、請求項１乃至３のいずれか１項に記載のクロック分周回路。
【請求項５】
コンピュータが、入力クロック周期設定値と出力クロック周期設定値から最小周期と半周期精度差分を算出する工程と、
前記最小周期と前記半周期精度差分から出力クロック周期を算出する工程と、
前記出力クロック周期から、ハイレベル信号に対する第１の幅とロウレベル信号に対する第２の幅とを算出する工程と、
入力クロック信号の立ち上がりエッジと立ち下がりエッジをカウントし、前記第１の幅のカウント値の期間だけハイレベルの信号を出力し、前記第２の幅のカウント値の期間だけロウレベル信号を出力する工程と、を含むことを特徴とするクロック分周方法。
【請求項６】
入力クロック周期設定値と出力クロック周期設定値から最小周期と半周期精度差分を算出する処理と、
前記最小周期と前記半周期精度差分から出力クロック周期を算出する処理と、
前記出力クロック周期から、ハイレベル信号に対する第１の幅とロウレベル信号に対する第２の幅とを算出する処理と、
入力クロック信号の立ち上がりエッジと立ち下がりエッジをカウントし、前記第１の幅のカウント値の期間だけハイレベルの信号を出力し、前記第２の幅のカウント値の期間だけロウレベル信号を出力する処理と、をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック分周回路、クロック分周方法及びプログラムに関し、特に、半導体回路におけるクロック分周回路、クロック分周方法及びプログラムに関する。
【背景技術】
【０００２】
従前のモバイル機器においては、最高の処理負荷を要する動作が問題なく行われるクロック周波数にまで動作周波数を高くして、すべての動作処理を行っていた。
【０００３】
しかし、今日では、電池の稼動時間を延ばすために低消費電力化の要求が高まっている。低消費電力化の要求に応える方法の１つとして、ＣＰＵ信号処理量又はシステムバス使用帯域に応じて動作周波数及び電源電圧を制御する方法がある。例えば、携帯電話に搭載されるアプリケーションチップにおいては、待ち受け状態、音楽再生状態、動画再生状態等に応じて、必要なデータ処理量及び転送量が変動することから、これらの状態に連動して動作周波数を適切な値に調整することが好ましい。
【０００４】
これを実現する技術としてＰＬＬ（Ｐｈａｓｅ−Ｌｏｃｋｅｄ  Ｌｏｏｐ）を用いた分周回路が挙げられる。しかし、ＰＬＬによると、周波数を変更する際に一時的にアイドルさせる時間が必要とされ、システム制御が複雑となり、素早い周波数変更に対応することができない。そこで、短い変更時間で最適な分周比に切り替えられる分周回路が望まれている。
【０００５】
特許文献１に、クロック信号を任意の分周比率で分周し、所望の周波数のクロック信号を発生させるクロック分周回路が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１４８８０７号公報（第６〜１１頁、図１、２）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明者によってなされたものである。
【０００８】
特許文献１に記載されたクロック分周回路は、入力クロック信号を任意の有理数で分周して出力クロック信号を生成する場合に、入力クロック信号を取捨選択する方式を採用している。このとき、分周精度は入力クロック信号の一周期の精度となるため、ＣＰＵ処理速度及びバス使用帯域と連動したクロック周波数制御に伴う電源電圧制御ができず、消費電力を低減することができない。
【０００９】
特許文献１に記載された回路構成によると、入力クロック信号のパルスを出力するか停止するかの制御で出力クロックの生成をするため、入力クロック信号のハイレベルのパルス幅と同一のパルス幅の信号が出力クロックに出力される。具体的には、分周比設定値を加減算して生成したイネーブル信号によって、入力クロック信号のハイレベルのパルス幅の信号がＤ回入力される期間にＮ回のハイレベルのパルス幅の信号を出力することでＤ／Ｎ分周の出力クロックの生成をしている。したがって、どのような分周比の設定においても、必ず入力クロック信号のハイレベルのパルス幅と同一のパルス幅の信号が出力クロックに出力される。
【００１０】
特許文献１に記載されたクロック分周回路によると、出力クロックのハイレベルのパルス幅は、入力クロック信号のハイレベルのパルス幅と同一となるため、立ち上がりエッジと立ち下がりエッジ間のセットアップタイミングは、分周前と同じになり、動作電圧を下げた場合に内部回路素子の遅延が増加することでセットアップタイミングを満足できない可能性がある。
【００１１】
そこで、クロック分周回路において、動作電圧を低下させて消費電力を削減することが課題となる。本発明の目的は、かかる課題を解決するクロック分周回路、クロック分周方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の第１の視点に係るクロック分周回路は、
入力クロック信号を分周して出力クロック信号として出力するクロック分周回路において、
前記入力クロック信号をカウントしてＤ進カウント値として出力するＤ進カウンタと、
前記出力クロック信号をカウントしてＮ進カウント値として出力するＮ進カウンタと、
前記出力クロック信号と前記出力クロックの最小周期と前記出力クロックの半周期精度差分と前記Ｄ進カウント値と前記Ｎ進カウント値とに基づいて、立ち上がりトグルイネーブル信号及び立ち下がりトグルイネーブル信号を求めて出力するトグル位置解析部と、
前記入力クロック信号の立ち上がりエッジにおいて前記立ち上がりトグルイネーブル信号に応じてトグルする第１のフリップフロップと、
前記入力クロック信号の立ち下がりエッジにおいて前記立ち下がりトグルイネーブル信号に応じてトグルする第２のフリップフロップと、
前記第１のフリップフロップの出力と前記第２のフリップフロップの出力との間における排他的論理和を前記出力クロックとして出力する排他的論理和回路と、を備えている。
【００１３】
本発明の第２の視点に係るクロック分周方法は、
コンピュータが、入力クロック周期設定値と出力クロック周期設定値から最小周期と半周期精度差分を算出する工程と、
前記最小周期と前記半周期精度差分から出力クロック周期を算出する工程と、
前記出力クロック周期から、ハイレベル信号に対する第１の幅とロウレベル信号に対する第２の幅とを算出する工程と、
入力クロック信号の立ち上がりエッジと立ち下がりエッジをカウントし、前記第１の幅のカウント値の期間だけハイレベルの信号を出力し、前記第２の幅のカウント値の期間だけロウレベル信号を出力する工程と、を含む。
【００１４】
本発明の第３の視点に係るプログラムは、
入力クロック周期設定値と出力クロック周期設定値から最小周期と半周期精度差分を算出する処理と、
前記最小周期と前記半周期精度差分から出力クロック周期を算出する処理と、
前記出力クロック周期から、ハイレベル信号に対する第１の幅とロウレベル信号に対する第２の幅とを算出する処理と、
入力クロック信号の立ち上がりエッジと立ち下がりエッジをカウントし、前記第１の幅のカウント値の期間だけハイレベルの信号を出力し、前記第２の幅のカウント値の期間だけロウレベル信号を出力する処理と、をコンピュータに実行させる。
【発明の効果】
【００１５】
本発明に係るクロック分周回路及びクロック分周方法によると、クロック分周回路において、動作電圧を低下させて消費電力を削減することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態に係るクロック分周回路の構成を示す回路図である。
【図２】本発明の第１の実施形態に係るクロック分周回路の動作を示すタイミング図である。
【図３】本発明の第２の実施形態に係るクロック分周回路の構成を示す回路図である。
【図４】本発明の第２の実施形態に係るクロック分周回路の動作を示すタイミング図である。
【図５】本発明の第３の実施形態に係るクロック分周方法を示すフロー図である。
【発明を実施するための形態】
【００１７】
本発明の第１の展開形態によると、上記第１の視点に係るクロック分周回路が提供される。
【００１８】
本発明の第２の展開形態によると、前記トグル位置解析部は、前記Ｎ進カウント値と前記出力クロック信号の最小周期と前記出力クロック信号の半周期精度差分とに基づいて前記出力クロックの半周期精度差分を均等に分配した出力クロック周期を求め、該出力クロック周期と前記出力クロック信号のレベルとに基づいて出力クロック半周期を求め、該出力クロック半周期に基づいて出力クロックのトグルポイントを求め、該トグルポイントと前記Ｄ進カウント値とに基づいて前記立ち上がりトグルイネーブル信号及び前記立ち下がりトグルイネーブル信号を求める、クロック分周回路が提供される。
【００１９】
本発明の第３の展開形態によると、入力クロック周期設定値及び出力クロック周期設定値を参照し、前記出力クロックの最小周期を求める最小周期算出部をさらに備えている、クロック分周回路が提供される。
【００２０】
本発明の第４の展開形態によると、入力クロック周期設定値及び出力クロック周期設定値を参照し、前記出力クロックの半周期精度差分を求める半周期精度差分算出部をさらに備えている、クロック分周回路が提供される。
【００２１】
本発明の第５の展開形態によると、上記第２の視点に係るクロック分周方法が提供される。
【００２２】
本発明の第６の展開形態によると、上記第３の視点に係るプログラムが提供される。
【００２３】
本発明の第７の展開形態によると、上記プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００２４】
本発明に係るクロック分周回路、クロック分周方法及びプログラムによると、出力クロックのパルス幅を入力クロック信号のパルス幅と比較して広くすることができる。したがって、立ち上がりエッジと立ち下がりエッジ間のセットアップタイミングが緩和でき、動作電圧を下げることができ、結果として電源電圧制御による消費電力の低減が可能となる。
【００２５】
（実施形態１）
本発明の第１の実施形態に係るクロック分周回路について、図面を参照して説明する。図１は、本実施形態に係るクロック分周回路の構成を示す回路図である。図１を参照すると、クロック分周回路は、設定値解析部１５０、Ｄ進カウンタ２００、Ｎ進カウンタ３００、トグル位置解析部４００、立ち上がりトグルＦＦ５００、立ち下がりトグルＦＦ６００及び排他的論理和回路７００を有する。
【００２６】
設定値解析部１５０は、最小周期算出部１６０と半周期精度差分算出部１７０を含む。
【００２７】
最小周期算出部１６０は、入力クロック周期設定値Ｄと出力クロック周期設定値Ｎから、最小周期ＭＩＮ＿ＣＹＣを算出して、トグル位置解析部４００に出力する。
【００２８】
半周期精度差分算出部１７０は、入力クロック周期設定値Ｄと出力クロック周期設定値Ｎから、半周期精度差分ＤＥＦ＿ＳＹＮＣを算出して、トグル位置解析部４００に出力する。
【００２９】
Ｄ進カウンタ２００は、入力クロック周期設定値Ｄを入力とし、その値に応じた入力クロック信号周期数をカウントし、Ｄ進カウント値Ｄ＿ＣＯＵＮＴとしてトグル位置解析部４００に出力する。
【００３０】
Ｎ進カウンタ３００は、出力クロック周期設定値Ｎを入力とし、その値に応じた出力クロック信号周期数をカウントし、Ｎ進カウント値Ｎ＿ＣＯＵＮＴとしてトグル位置解析部４００に出力する。
【００３１】
トグル位置解析部４００は、最小周期算出部１６０から出力される最小周期ＭＩＮ＿ＣＹＣと、半周期精度差分算出部１７０から出力される半周期精度差分ＤＥＦ＿ＳＹＮＣと、Ｄ進カウンタ２００から出力されるＤ進カウント値Ｄ＿ＣＯＵＮＴと、Ｎ進カウンタ３００から出力されるＮ進カウント値Ｎ＿ＣＯＵＮＴと、出力クロックとに基づいて、出力クロック信号のトグルポイントを算出し、立ち上がりトグルＦＦ５００のトグルイネーブル端子に立ち上がりのトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐを出力し、立ち下がりトグルＦＦ６００のトグルイネーブル端子に立ち下がりのトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎを出力する。
【００３２】
立ち上がりトグルＦＦ５００は、トグルイネーブル機能付トグルＦＦであり、トグル位置解析部４００からの立ち上がりのトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐをトグルイネーブル入力とし、トグルイネーブル状態に応じて入力クロック信号の立ち上がりに同期してトグル動作し、立ち上がり同期トグルクロック信号ＴＦＦ＿Ｐを排他的論理和回路７００に出力する。
【００３３】
立ち下がりトグルＦＦ６００は、トグルイネーブル機能付トグルＦＦであり、トグル位置解析部４００からの立ち下がりのトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎをトグルイネーブル入力とし、トグルイネーブル状態に応じて入力クロック信号の立ち下がりに同期してトグル動作し、立ち下がり同期トグルクロック信号ＴＦＦ＿Ｎを排他的論理和回路７００に出力する。
【００３４】
排他的論理和回路７００は、立ち上がりトグルＦＦ５００の立ち上がり同期トグルクロック信号ＴＦＦ＿Ｐと、立ち下がりトグルＦＦ６００の立ち下がり同期トグルクロック信号ＴＦＦ＿Ｎとを入力とし、これらの排他的論理和を求めて出力クロック信号として出力する。
【００３５】
また、リセット信号は、Ｄ進カウンタ２００、Ｎ進カウンタ３００、トグル位置解析部４００、立ち上がりトグルＦＦ５００及び立ち下がりトグルＦＦ６００に入力され、リセット信号が０の場合、各部を初期化する。
【００３６】
図２は、本実施形態に係るクロック分周回路の動作を示すタイミング図である。図１の回路図と図２のタイミングチャートを参照して、７／３分周（入力クロック周期設定値Ｄが７、出力クロック周期設定値Ｎが３）の場合の動作について説明する。
【００３７】
時刻Ｔ０では、リセット信号に０が入力される。入力クロック周期設定値Ｄと出力クロック周期設定値Ｎが入力される。
【００３８】
最小周期算出部１６０は、入力クロック周期設定値Ｄと出力クロック周期設定値Ｎから、式（１）に基づいて最小周期ＭＩＮ＿ＣＹＣを算出する。
ＭＩＮ＿ＣＹＣ＝ＩＮＴ（Ｄ＊２／Ｎ）・・・（１）
ここで、式（１）におけるＩＮＴ（）は小数点以下を切り捨てる関数である。
【００３９】
入力クロック周期設定値Ｄが７であり、出力クロック周期設定値Ｎが３である場合には、最小周期ＭＩＮ＿ＣＹＣは４となる。最小周期算出部１６０は、この値を最小周期ＭＩＮ＿ＣＹＣとしてトグル位置解析部４００に出力する。
【００４０】
半周期精度差分算出部１７０は、入力クロック周期設定値Ｄと出力クロック周期設定値Ｎから、式（２）により半周期精度差分ＤＥＦ＿ＳＹＮＣを算出する。
ＤＥＦ＿ＳＹＮＣ＝Ｄ＊２−ＩＮＴ（Ｄ＊２／Ｎ）＊Ｎ・・・（２）
【００４１】
入力クロック周期設定値Ｄが７であり、出力クロック周期設定値Ｎが３である場合には、半周期精度差分ＤＥＦ＿ＳＹＮＣは２となる。半周期精度差分算出部１７０は、この値を半周期精度差分ＤＥＦ＿ＳＹＮＣとしてトグル位置解析部４００に出力する。Ｄ進カウンタ２００は、リセットされＤ進カウンタＤ＿ＣＯＵＮＴに初期値０が設定される。Ｎ進カウンタ３００は、リセットされＮ進カウンタＮ＿ＣＯＵＮＴに初期値０が設定される。
【００４２】
トグル位置解析部４００は、Ｎ進カウント値Ｎ＿ＣＯＵＮＴと半周期精度差分ＤＥＦ＿ＳＹＮＣと最小周期ＭＩＮ＿ＣＹＣから式（３）及び式（４）により出力クロック周期ＣＹＣＬＥを算出する。
Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＜半周期精度差分ＤＥＦ＿ＳＹＮＣの場合には、
出力クロック周期ＣＹＣＬＥ＝最小周期ＭＩＮ＿ＣＹＣ＋１・・・（３）
一方、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ≧半周期精度差分ＤＥＦ＿ＳＹＮＣの場合には、
出力クロック周期ＣＹＣＬＥ＝最小周期ＭＩＮ＿ＣＹＣ・・・（４）
【００４３】
ここでは、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝０、半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＜半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、式（３）より出力クロック周期ＣＹＣＬＥは最小周期ＭＩＮ＿ＣＹＣ＋１、すなわち５となる。
【００４４】
トグル位置解析部４００は、出力クロック周期ＣＹＣＬＥから式（５）及び式（６）により半周期ＨＡＬＦを算出する。
出力クロック信号が０である場合には、
半周期ＨＡＬＦ＝出力クロック周期ＣＹＣＬＥ−ＩＮＴ（出力クロック周期ＣＹＣＬＥ／２）・・・（５）
一方、出力クロック信号が１である場合には、
半周期ＨＡＬＦ＝ＩＮＴ（出力クロック周期ＣＹＣＬＥ／２）・・・式（６）
【００４５】
ここでは、出力クロック信号が０であるため、式（５）により半周期ＨＡＬＦは３となる。
【００４６】
トグル位置解析部４００は、Ｄ進カウント値Ｄ＿ＣＯＵＮＴから式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰを算出する。
Ｄ＿ＣＯＵＮＴ＿ＴＰＰ＝Ｄ＿ＣＯＵＮＴ＊２・・・（７）
【００４７】
トグル位置解析部４００は、Ｄ進カウント値Ｄ＿ＣＯＵＮＴから式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮを算出する。
Ｄ＿ＣＯＵＮＴ＿ＴＰＮ＝Ｄ＿ＣＯＵＮＴ＊２＋１・・・（８）
【００４８】
ここでは、Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝０であるため、Ｄ＿ＣＯＵＮＴ＿ＴＰＰは０となり、Ｄ＿ＣＯＵＮＴ＿ＴＰＮは１となる。
【００４９】
トグルポイントＴＰ＿Ｐは、リセットにより初期値０が設定される。トグルポイントＴＰ＿Ｎは、リセットにより初期値０が設定される。
【００５０】
トグル位置解析部４００は、偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰとトグルポイントＴＰ＿Ｎから式（９−１）及び式（９−２）よりトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐを算出する。
偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰ＝トグルポイントＴＰ＿Ｎである場合には、
Ｅｎａｂｌｅ＿Ｐ＝１・・・（９−１）
一方、偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰ≠トグルポイントＴＰ＿Ｎである場合には、
Ｅｎａｂｌｅ＿Ｐ＝０・・・（９−２）
【００５１】
ここでは、トグルポイントＴＰ＿Ｐの基準タイミングとなる偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰ＝０とトグルポイントＴＰ＿Ｎ＝０が一致するため、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは１に設定される。
【００５２】
トグル位置解析部４００は、奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮとトグルポイントＴＰ＿Ｐから式（１０−１）及び式（１０−２）よりトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎを算出する。
奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮ＝トグルポイントＴＰ＿Ｐである場合には、
Ｅｎａｂｌｅ＿Ｎ＝１・・・（１０−１）
一方、奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮ≠トグルポイントＴＰ＿Ｐである場合には、
Ｅｎａｂｌｅ＿Ｎ＝０・・・（１０−２）
【００５３】
ここでは、トグルポイントＴＰ＿Ｎの基準タイミングとなる奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮ＝１とトグルポイントＴＰ＿Ｐ＝０とが不一致であるため、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００５４】
立ち上がりトグルＦＦ５００は、リセットにより出力ＴＦＦ＿Ｐは初期値０に設定される。立ち下がりトグルＦＦ６００は、リセットにより出力ＴＦＦ＿Ｎは初期値０に設定される。排他的論理和回路７００は、立ち上がりトグルＦＦ５００の出力ＴＦＦ＿Ｐが０と立ち下がりトグルＦＦ６００の出力ＴＦＦ＿Ｎが０から出力クロック信号として０が出力される。
【００５５】
時刻Ｔ１では、リセット信号が０から１に変化する。
【００５６】
時刻Ｔ２では、入力クロック信号が０から１に立ち上がる。立ち上がりトグルＦＦ５００は、入力クロック信号の立ち上がり時にトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１のため出力ＴＦＦ＿Ｐは１に変化する。排他的論理和回路７００は、立ち上がりトグルＦＦ５００の出力ＴＦＦ＿Ｐが１と立ち下がりトグルＦＦ６００の出力ＴＦＦ＿Ｎが０により出力クロック信号として１が出力される。トグル位置解析部４００では、出力クロック信号が１であるため、式（６）により半周期ＨＡＬＦは、２となる。
偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが０とトグルポイントＴＰ＿Ｎが０から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。
奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが１とトグルポイントＴＰ＿Ｐが０から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００５７】
トグルポイントＴＰ＿Ｐは、入力クロック信号の立が上がりで、式（１１）、式（１２）又は式（１３）より設定される。
トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１の場合において、
入力クロック周期設定Ｄ＊２＞トグルポイントＴＰ＿Ｎ＋半周期ＨＡＬＦである場合には、
トグルポイントＴＰ＿Ｐ＝トグルポイントＴＰ＿Ｎ＋半周期ＨＡＬＦ  ・・・（１１）
入力クロック周期設定Ｄ＊２≦トグルポイントＴＰ＿Ｎ＋半周期ＨＡＬＦである場合には、
トグルポイントＴＰ＿Ｐ＝０・・・（１２）
一方、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが０である場合には、
トグルポイントＴＰ＿Ｐ＝トグルポイントＴＰ＿Ｎ・・・（１３）
【００５８】
ここでは、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１で、入力クロック周期設定Ｄが７とトグルポイントＴＰ＿Ｎが０と半周期ＨＡＬＦが２から入力クロック周期設定Ｄ＊２＞トグルポイントＴＰ＿Ｎ＋半周期ＨＡＬＦの条件を満たすため、式（１１）よりトグルポイントＴＰ＿Ｐは３となる。
【００５９】
時刻Ｔ３では、入力クロック信号が１から０に立ち下がる。Ｄ進カウンタ２００は、入力クロック信号の立ち下がりでカウントアップし、Ｄ＿ＣＯＵＮＴは１になる。立ち下がりトグルＦＦ６００は、入力クロック信号の立ち下がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０で出力ＴＦＦ＿Ｎは０が保持される。トグル位置解析部４００では、Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝１から式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰは、２となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝１から式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮは、３となる。
【００６０】
トグルポイントＴＰ＿Ｎは、入力クロック信号の立ち下がりで、式（１４）、式（１５）又は式（１６）により設定される。
トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが１の場合において、
入力クロック周期設定Ｄ＊２＞トグルポイントＴＰ＿Ｐ＋半周期ＨＡＬＦである場合には、
トグルポイントＴＰ＿Ｎ＝トグルポイントＴＰ＿Ｐ＋半周期ＨＡＬＦ・・・（１４）
入力クロック周期設定Ｄ＊２≦トグルポイントＴＰ＿Ｐ＋半周期ＨＡＬＦである場合には、
トグルポイントＴＰ＿Ｎ＝０・・・（１５）
一方、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０の場合には、
トグルポイントＴＰ＿Ｎ＝トグルポイントＴＰ＿Ｐ・・・（１６）
【００６１】
ここでは、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０の条件を満たすため、式（１６）よりトグルポイントＴＰ＿Ｎは３となる。
偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが２とトグルポイントＴＰ＿Ｎが３から、式（９−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、０に設定される。
奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが３とトグルポイントＴＰ＿Ｐが３から、式（１０−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、１に設定される。
【００６２】
時刻Ｔ４では、入力クロック信号が０から１に立ち上がる。立ち上がりトグルＦＦ５００は、入力クロック信号の立ち上がり時にトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが０のため出力ＴＦＦ＿Ｐは１が保持される。トグル位置解析部４００では、偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが２とトグルポイントＴＰ＿Ｎが３から式（９−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、０に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが３とトグルポイントＴＰ＿Ｐが３から式（１０−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、１に設定される。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが０の条件を満たすため、式（１３）よりトグルポイントＴＰ＿Ｐは３になる。
【００６３】
時刻Ｔ５では、入力クロック信号が１から０に立ち下がる。Ｄ進カウンタ２００は、入力クロック信号の立ち下がりでカウントアップし、Ｄ＿ＣＯＵＮＴは２になる。立ち下がりトグルＦＦ６００は、入力クロック信号の立ち下がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが１で出力ＴＦＦ＿Ｎは１に変化する。排他的論理和回路７００は、立ち上がりトグルＦＦ５００の出力ＴＦＦ＿Ｐが１と立ち下がりトグルＦＦ６００の出力ＴＦＦ＿Ｎが１から出力クロック信号として０が出力される。Ｎ進カウンタ３００は、出力クロック信号の立ち下がりでカウントアップし、Ｎ＿ＣＯＵＮＴは１になる。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝１と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＜半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（３）より出力クロック周期ＣＹＣＬＥは、５となる。出力クロック信号が０であるため、式（５）により半周期ＨＡＬＦは、３となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝２から式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰは、４となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝２から式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮは、５となる。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが１で、入力クロック周期設定Ｄが７とトグルポイントＴＰ＿Ｐが３と半周期ＨＡＬＦが２から入力クロック周期設定Ｄ＊２＞トグルポイントＴＰ＿Ｐ＋半周期ＨＡＬＦの条件を満たすため、式（１４）よりトグルポイントＴＰ＿Ｎは５となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが４とトグルポイントＴＰ＿Ｎが５から式（９−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、０に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが５とトグルポイントＴＰ＿Ｐが３から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００６４】
時刻Ｔ６では、入力クロック信号が０から１に立ち上がる。立ち上がりトグルＦＦ５００は、入力クロック信号の立ち上がり時にトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが０で出力ＴＦＦ＿Ｐは１が保持される。トグル位置解析部４００では、偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが４とトグルポイントＴＰ＿Ｎが５から式（９−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、０に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが５とトグルポイントＴＰ＿Ｐが５から式（１０−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、１に設定される。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが０の条件を満たすため、式（１３）よりトグルポイントＴＰ＿Ｐは５になる。
【００６５】
時刻Ｔ７では、入力クロック信号が１から０に立ち下がる。Ｄ進カウンタ２００は、入力クロック信号の立ち下がりでカウントアップし、Ｄ＿ＣＯＵＮＴは３になる。立ち下がりトグルＦＦ６００は、入力クロック信号の立ち下がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが１で出力ＴＦＦ＿Ｎは０に変化する。排他的論理和回路７００は、立ち上がりトグルＦＦ５００の出力ＴＦＦ＿Ｐが１と立ち下がりトグルＦＦ６００の出力ＴＦＦ＿Ｎが０から出力クロック信号として１が出力される。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝１と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＜半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（３）より出力クロック周期ＣＹＣＬＥは、５となる。出力クロック信号が１であるため、式（６）により半周期ＨＡＬＦは、２となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝３から式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰは、６となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝３から式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮは、７となる。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが１で、入力クロック周期設定Ｄが７とトグルポイントＴＰ＿Ｐが５と半周期ＨＡＬＦが３から入力クロック周期設定Ｄ＊２＞トグルポイントＴＰ＿Ｐ＋半周期ＨＡＬＦの条件を満たすため、式（１４）よりトグルポイントＴＰ＿Ｎは８となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが６とトグルポイントＴＰ＿Ｎが８から式（９−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、０に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが７とトグルポイントＴＰ＿Ｐが５から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００６６】
時刻Ｔ８では、入力クロック信号が０から１に立ち上がる。立ち上がりトグルＦＦ５００は、入力クロック信号の立ち上がり時にトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが０で出力ＴＦＦ＿Ｐは１が保持される。トグル位置解析部４００では、偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが６とトグルポイントＴＰ＿Ｎが８から式（９−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、０に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが７とトグルポイントＴＰ＿Ｐが８から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが０の条件を満たすため、式（１３）よりトグルポイントＴＰ＿Ｐは８になる。
【００６７】
時刻Ｔ９では、入力クロック信号が１から０に立ち下がる。Ｄ進カウンタ２００は、入力クロック信号の立ち下がりでカウントアップし、Ｄ＿ＣＯＵＮＴは４になる。立ち下がりトグルＦＦ６００は、入力クロック信号の立ち下がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０で出力ＴＦＦ＿Ｎは０が保持される。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝１と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＜半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（３）より出力クロック周期ＣＹＣＬＥは、５となる。出力クロック信号が１であるため、式（６）により半周期ＨＡＬＦは、２となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝４から式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰは、８となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝４から式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮは、９となる。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０の条件を満たすため、式（１６）よりトグルポイントＴＰ＿Ｎは８となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが８とトグルポイントＴＰ＿Ｎが８から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが９とトグルポイントＴＰ＿Ｐが８から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００６８】
時刻Ｔ１０では、入力クロック信号が０から１に立ち上がる。立ち上がりトグルＦＦ５００は、入力クロック信号の立ち上がり時にトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１で出力ＴＦＦ＿Ｐは０に変化する。排他的論理和回路７００は、立ち上がりトグルＦＦ５００の出力ＴＦＦ＿Ｐが０と立ち下がりトグルＦＦ６００の出力ＴＦＦ＿Ｎが０から出力クロック信号として０が出力される。Ｎ進カウンタ３００は、出力クロック信号の立ち下がりでカウントアップし、Ｎ＿ＣＯＵＮＴは２になる。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝２と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ≧半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（４）より出力クロック周期ＣＹＣＬＥは、４となる。出力クロック信号が０であるため、式（５）により半周期ＨＡＬＦは、２となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが８とトグルポイントＴＰ＿Ｎが８から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが９とトグルポイントＴＰ＿Ｐが８から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１で入力クロック周期設定Ｄが７とトグルポイントＴＰ＿Ｎが８と半周期ＨＡＬＦが２から入力クロック周期設定Ｄ＊２＞トグルポイントＴＰ＿Ｎ＋半周期ＨＡＬＦの条件を満たすため、式（１１）よりトグルポイントＴＰ＿Ｐは１０になる。
【００６９】
時刻Ｔ１１では、入力クロック信号が１から０に立ち下がる。Ｄ進カウンタ２００は、入力クロック信号の立ち下がりでカウントアップし、Ｄ＿ＣＯＵＮＴは５になる。立ち下がりトグルＦＦ６００は、入力クロック信号の立ち下がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０で出力ＴＦＦ＿Ｎは０が保持される。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝２と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ≧半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（４）より出力クロック周期ＣＹＣＬＥは、４となる。出力クロック信号が０であるため、式（５）により半周期ＨＡＬＦは、２となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝５から式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰは、１０となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝５から式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮは、１１となる。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０の条件を満たすため、式（１６）よりトグルポイントＴＰ＿Ｎは１０となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが１０とトグルポイントＴＰ＿Ｎが１０から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが１１とトグルポイントＴＰ＿Ｐが１０から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００７０】
時刻Ｔ１２では、入力クロック信号が０から１に立ち上がる。立ち上がりトグルＦＦ５００は、入力クロック信号の立ち上がり時にトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１で出力ＴＦＦ＿Ｐは１に変化する。排他的論理和回路７００は、立ち上がりトグルＦＦ５００の出力ＴＦＦ＿Ｐが１と立ち下がりトグルＦＦ６００の出力ＴＦＦ＿Ｎが０から出力クロック信号として１が出力される。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝２と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ≧半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（４）より出力クロック周期ＣＹＣＬＥは、４となる。出力クロック信号が１であるため、式（６）により半周期ＨＡＬＦは、２となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが１０とトグルポイントＴＰ＿Ｎが１０から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが１１とトグルポイントＴＰ＿Ｐが１２から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１で入力クロック周期設定Ｄが７とトグルポイントＴＰ＿Ｎが１０と半周期ＨＡＬＦが２から入力クロック周期設定Ｄ＊２＞トグルポイントＴＰ＿Ｎ＋半周期ＨＡＬＦの条件を満たすため、式（１１）よりトグルポイントＴＰ＿Ｐは１２になる。
【００７１】
時刻Ｔ１３では、入力クロック信号が１から０に立ち下がる。Ｄ進カウンタ２００は、入力クロック信号の立ち下がりでカウントアップし、Ｄ＿ＣＯＵＮＴは６になる。立ち下がりトグルＦＦ６００は、入力クロック信号の立ち下がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０で出力ＴＦＦ＿Ｎは０が保持される。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝２と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ≧半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（４）より出力クロック周期ＣＹＣＬＥは、４となる。出力クロック信号が１であるため、式（６）により半周期ＨＡＬＦは、２となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝６から式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰは、１２となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝６から式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮは、１３となる。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０の条件を満たすため、式（１６）よりトグルポイントＴＰ＿Ｎは１２となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが１２とトグルポイントＴＰ＿Ｎが１２から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが１３とトグルポイントＴＰ＿Ｐが１２から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００７２】
時刻Ｔ１４では、入力クロック信号が０から１に立ち上がる。立ち上がりトグルＦＦ５００は、入力クロック信号の立ち上がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１で出力ＴＦＦ＿Ｐは０に変化する。排他的論理和回路７００は、立ち上がりトグルＦＦ５００の出力ＴＦＦ＿Ｐが０と立ち下がりトグルＦＦ６００の出力ＴＦＦ＿Ｎが０から、出力クロック信号として０が出力される。Ｎ進カウンタ３００は、出力クロック信号の立ち下がりでカウントアップし、Ｎ＿ＣＯＵＮＴは０になる。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝０と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＜半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（３）より出力クロック周期ＣＹＣＬＥは、５となる。出力クロック信号が０であるため、式（５）により半周期ＨＡＬＦは、３となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが１２とトグルポイントＴＰ＿Ｎが１２から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが１３とトグルポイントＴＰ＿Ｐが１２から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐが１で入力クロック周期設定Ｄが７とトグルポイントＴＰ＿Ｎが１２と半周期ＨＡＬＦが３から入力クロック周期設定Ｄ＊２≦トグルポイントＴＰ＿Ｎ＋半周期ＨＡＬＦの条件を満たすため、式（１２）よりトグルポイントＴＰ＿Ｐは０になる。
【００７３】
時刻Ｔ１５では、入力クロック信号が１から０に立ち下がる。Ｄ進カウンタ２００は、入力クロック信号の立ち下がりでカウントアップし、Ｄ＿ＣＯＵＮＴは０になる。立ち下がりトグルＦＦ６００は、入力クロック信号の立ち下がりでトグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０で出力ＴＦＦ＿Ｎは０が保持される。トグル位置解析部４００では、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＝０と半周期精度差分ＤＥＦ＿ＳＹＮＣ＝２であるため、Ｎ進カウント値Ｎ＿ＣＯＵＮＴ＜半周期精度差分ＤＥＦ＿ＳＹＮＣの条件を満たし、最小周期ＭＩＮ＿ＣＹＣ＝４から式（３）より出力クロック周期ＣＹＣＬＥは、３となる。出力クロック信号が０であるため、式（５）により半周期ＨＡＬＦは、３となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝０から式（７）より偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰは、０となる。Ｄ進カウント値Ｄ＿ＣＯＵＮＴ＝０から式（８）より奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮは、１となる。トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎが０の条件を満たすため、式（１６）よりトグルポイントＴＰ＿Ｎは０となる。偶数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＰが０とトグルポイントＴＰ＿Ｎが０から式（９−１）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｐは、１に設定される。奇数Ｄ進カウンタ値Ｄ＿ＣＯＵＮＴ＿ＴＰＮが１とトグルポイントＴＰ＿Ｐが０から式（１０−２）により、トグルイネーブル信号Ｅｎａｂｌｅ＿Ｎは、０に設定される。
【００７４】
時刻Ｔ１６以降は、時刻Ｔ２から時刻Ｔ１５の動作を繰り返す。
【００７５】
以上より、本実施形態のクロック分周回路は、入力クロック信号を７／３分周して、出力クロック信号とする。
【００７６】
本実施形態のクロック分周回路は、半導体回路に搭載されるクロック分周回路であって、
入力クロックのサイクルをカウントするＤ進カウンタと、
出力クロックのサイクルをカウントするＮ進カウンタと、
入力クロック周期設定値と出力クロック周期設定値から出力クロックの最小周期を求める最小周期算出部と、
入力クロック周期設定値と出力クロック周期設定値から出力クロックの半周期精度差分を求める半周期精度差分算出部と、
出力クロックのサイクルカウンタと出力クロックの最小周期と出力クロックの半周期精度差分から出力クロックの半周期精度差分を均等に分配した出力クロック周期を求めて、求めた出力クロック周期と出力クロックのレベルから出力クロック半周期を求めて、さらに求めた出力クロック半周期から出力クロックのトグルポイントを求めるトグル位置解析部と、
入力クロック信号のサイクルカウンタと求めたトグルポイントから入力クロックの立ち上がりと立ち下がりに同期してトグルするフリップフロップと、
入力クロック信号の立ち上がりと立ち下がりに同期してトグルするフリップフロップの出力を入力とする排他的論理和回路と、を有する。
【００７７】
したがって、本実施形態のクロック分周回路によると、出力クロック信号のハイレベルのパルス幅とロウレベルのパルス幅を同じ幅、あるいは、出力クロック信号のハイレベルのパルス幅とロウレベルのパルス幅の差分を入力クロックの半周期にすることができる。このとき、立ち上がりエッジと立ち下がりエッジ間のセットアップタイミングが緩和でき、動作電圧を下げることが可能となるため、電源電圧制御による省電力化が可能となる。
【００７８】
本実施形態の回路構成（図１）によると、出力クロックのサイクルカウンタと出力クロックの最小周期と出力クロックの半周期精度差分から、出力クロックの半周期精度差分を均等に分配した出力クロック周期と、出力クロックの出力レベルから求めた出力クロック半周期から出力クロックのトグルポイントを求めることができるので、出力クロック信号のハイレベルのパルス幅とロウレベルのパルス幅を同一の幅とし、又は、出力クロック信号のハイレベルのパルス幅とロウレベルのパルス幅の差分を入力クロック信号の半周期にすることができる。
【００７９】
入力クロック信号を１００ＭＨｚとし、デューティ比（Ｄｕｔｙ  Ｒａｔｉｏ）５０％で、分周比が７／３分周の出力クロックを出力する場合には、特許文献１に記載されたクロック分周回路によると、出力クロックの最小パルス幅は５ｎｓとなる。一方、本実施形態のクロック分周回路によると、出力クロックの最小パルス幅は１０ｎｓとなり、セットアップタイミングの緩和により、動作電圧を下げることができるため、電源電圧制御による消費電力の低減が可能となる。
【００８０】
（実施形態２）
本発明の第２の実施形態に係るクロック分周回路について、図面を参照して説明する。図３は、本実施形態に係るクロック分周回路の構成を示す回路図である。
【００８１】
図３を参照すると、クロック分周回路は、Ｄ進カウンタ２００、Ｎ進カウンタ３００、トグル位置解析部４００、立ち上がりトグルＦＦ５００、立ち下がりトグルＦＦ６００、及び、排他的論理和回路７００を有する。
【００８２】
図４は、本実施形態に係るクロック分周回路の動作を示すタイミング図である。
【００８３】
実施形態１では、設定値解析部１５０が、入力クロック周期設定値Ｄと出力クロック周期設定値Ｎから最小周期ＭＩＮ＿ＣＹＣと半周期精度差分ＤＥＦ＿ＳＹＮＣを算出している。
【００８４】
一方、本実施形態では、最小周期ＭＩＮ＿ＣＹＣと半周期精度差分ＤＥＦ＿ＳＹＮＣを予めＣＰＵ等で算出しておくことにより、設定値解析部１５０が省略されている。トグル位置解析部４００は、予め算出しておいた、最小周期ＭＩＮ＿ＣＹＣと半周期精度差分ＤＥＦ＿ＳＹＮＣと
を入力とする。
【００８５】
本実施形態のクロック分周回路の動作は、最小周期ＭＩＮ＿ＣＹＣと半周期精度差分ＤＥＦ＿ＳＹＮＣとが入力信号として与えられる以外、第１の実施形態のクロック分周回路の動作と同様である。
【００８６】
本実施形態のクロック分周回路によると、実施形態１のクロック分周回路よりも回路構成を小さくすることができる。
【００８７】
（実施形態３）
本発明の第３の実施形態に係るクロック分周方法について、図面を参照して説明する。図５は、本実施形態に係るクロック分周方法を示すフロー図である。
【００８８】
図５を参照すると、入力クロック周期設定値Ｄと出力クロック周期設定値Ｎを設定する（ステップＳ３０）。
【００８９】
入力クロック周期設定値Ｄと出力クロック周期設定値Ｎから、式（１７）、式（１８）により、最小周期ＭＩＮ＿ＣＹＣと半周期精度差分ＤＥＦ＿ＳＹＮＣを算出する（ステップＳ３１）。
ＭＩＮ＿ＣＹＣ＝ＩＮＴ（Ｄ＊２／Ｎ）・・・（１７）
ＤＥＦ＿ＳＹＮＣ＝Ｄ＊２−ＩＮＴ（Ｄ＊２／Ｎ）＊Ｎ・・・（１８）
【００９０】
変数ｍと半周期精度変数ＨＡＩＦ＿ＶＡＬに初期値を設定  式（１９）、式（２０）する（ステップＳ３２）。
ｍ＝１・・・（１９）
半周期精度変数ＨＡＩＦ＿ＶＡＬ＝半周期精度差分ＤＦＥ＿ＳＹＮＣ・・・（２０）
【００９１】
半周期精度変数ＨＡＩＦ＿ＶＡＬ＝０かを判定する（ステップＳ３３）。
【００９２】
半周期精度変数ＨＡＩＦ＿ＶＡＬ＝０である場合には（ステップＳ３３のＹｅｓ）、最小周期ＭＩＮ＿ＣＹＣから、式（２１）により周期を算出する（ステップＳ３４）。
周期ＣＹＣ＝最小周期ＭＩＮ＿ＣＹＣ・・・（２１）
【００９３】
一方、半周期精度変数ＨＡＩＦ＿ＶＡＬ≠０でない場合には（ステップＳ３３のＮｏ）、最小周期ＭＩＮ＿ＣＹＣから、式（２２）により周期ＣＹＣを算出し、半周期精度変数ＨＡＩＦ＿ＶＡＬを式（２３）により減算する（ステップＳ３５）。
周期ＣＹＣ＝最小周期ＭＩＮ＿ＣＹＣ＋１・・・（２２）
半周期精度変数ＨＡＩＦ＿ＶＡＬ＝半周期精度変数ＨＡＩＦ＿ＶＡＬ−１・・・（２３）
【００９４】
周期ＣＹＣから式（２４）、式（２５）より、出力クロック信号のハイレベル幅ＨＩＧＨ＿Ｐとロウレベル幅ＬＯＷ＿Ｐを算出する（ステップＳ３６）。
ハイレベル幅ＨＩＧＨ＿Ｐ＝ＩＮＴ（周期ＣＹＣ／２）・・・（２４）
ロウレベル幅ＬＯＷ＿Ｐ＝周期ＣＹＣ−ＩＮＴ（周期ＣＹＣ／２）・・・（２５）
【００９５】
入力クロック信号の両エッジを使いステップＳ３６で求めたハイレベル幅ＨＩＧＨ＿Ｐをカウントし、カウント中は、ハイレベル信号Ｈｉを出力する。次にステップＳ３６で求めたロウレベル幅ＬＯＷ＿Ｐをカウントし、カウント中は、ロウレベル信号Ｌｏｗを出力する（ステップＳ３７）。
【００９６】
次に、変数ｍを式（２６）によりカウントアップする（ステップＳ３８）。
ｍ＝ｍ＋１・・・（２６）
【００９７】
次に、ｍ＞Ｎか否かを判定する（ステップＳ３９）。
【００９８】
ｍ＞Ｎである場合には（ステップＳ３９のＹｅｓ）、ステップＳ３１に進む。一方、ｍ≦Ｎである場合には（ステップＳ３９のＮｏ）、ステップＳ３３に進む。
【００９９】
本実施形態によると、クロック分周処理をソフト的に行うことにより、小さい回路規模で実現することができる。
【０１００】
上記実施形態に係るクロック分周回路によって、以下の効果がもたらされる。
【０１０１】
第１の効果として電源電圧制御による省電力化がある。出力クロックのサイクルカウンタと出力クロックの最小周期と出力クロックの半周期精度差分から出力クロックの半周期精度差分を均等に分配した出力クロック周期と出力クロックの出力レベルから求めた出力クロック半周期から出力クロックのトグルポイントを求めることができる。したがって、出力クロック信号のハイレベルのパルス幅とロウレベルのパルス幅をできるだけ同じにすることにより、立ち上がりエッジと立ち下がりエッジ間のセットアップタイミングが緩和でき、動作電圧を下げることが可能となるため、結果として電源電圧制御による省電力化が可能となるからである。
【０１０２】
第２の効果として、出力クロック信号にグリッジノイズを出さないようにすることができる。出力クロック信号を出力が、排他的論理和回路で構成され、その排他的論理和回路の入力が入力クロック信号の立ち上がりで動作するイネーブル機能付トグルＦＦと入力クロック信号の立ち下がりで動作するイネーブル機能付トグルＦＦで構成されているからである。
【０１０３】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１０４】
１５０    設定値解析部
１６０    最小周期算出部
１７０    半周期精度差分算出部
２００    Ｄ進カウンタ
３００    Ｎ進カウンタ
４００    トグル位置解析部
５００    立ち上がりトグルＦＦ
６００    立ち下がりトグルＦＦ
７００    排他的論理和回路
ＣＹＣ    周期
ＣＹＣＬＥ    出力クロック周期
Ｄ    入力クロック周期設定値
ＤＥＦ＿ＳＹＮＣ    半周期精度差分
Ｄ＿ＣＯＵＮＴ    Ｄ進カウント値
Ｄ＿ＣＯＵＮＴ＿ＴＰＰ    偶数Ｄ進カウンタ値
Ｄ＿ＣＯＵＮＴ＿ＴＰＮ    奇数Ｄ進カウンタ値
Ｅｎａｂｌｅ＿Ｎ    立ち下がりトグルイネーブル信号
Ｅｎｅｂｌｅ＿Ｐ    立ち上がりトグルイネーブル信号
ＨＡＬＦ    半周期
ＨＡＩＦ＿ＶＡＬ    半周期精度変数
ＨＩＧＨ＿Ｐ    ハイレベル幅
ＬＯＷ＿Ｐ    ロウレベル幅
ＭＩＮ＿ＣＹＣ  最小周期
Ｎ    出力クロック周期設定値
Ｎ＿ＣＯＵＮＴ    Ｎ進カウント値
ＴＦＦ＿Ｎ  立ち下がり同期トグルクロック信号
ＴＦＦ＿Ｐ  立ち上がり同期トグルクロック信号
ＴＰ＿Ｎ、ＴＰ＿Ｐ    トグルポイント
【図１】
2011188026.tif 000003
【図２】
2011188026.tif 000004
【図３】
2011188026.tif 000005
【図４】
2011188026.tif 000006
【図５】
2011188026.tif 000007