JP2017021539A - クロック制御回路及び半導体装置 - Google Patents

クロック制御回路及び半導体装置 Download PDF

Info

Publication number
JP2017021539A
JP2017021539A JP2015138118A JP2015138118A JP2017021539A JP 2017021539 A JP2017021539 A JP 2017021539A JP 2015138118 A JP2015138118 A JP 2015138118A JP 2015138118 A JP2015138118 A JP 2015138118A JP 2017021539 A JP2017021539 A JP 2017021539A
Authority
JP
Japan
Prior art keywords
clock
timing
pulses
enable
pulse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015138118A
Other languages
English (en)
Inventor
稔彦 松田
Toshihiko Matsuda
稔彦 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Socionext Inc
Original Assignee
Socionext Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Socionext Inc filed Critical Socionext Inc
Priority to JP2015138118A priority Critical patent/JP2017021539A/ja
Publication of JP2017021539A publication Critical patent/JP2017021539A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】クロックイネーブルのタイミング条件を容易に収束可能なクロック制御回路を提供する。【解決手段】クロック制御回路10は、クロック生成部12、クロックイネーブル生成部13とを有する。クロック生成部12は、第1周期を有する第1クロックと、第1周期以上の長さを有する第2周期を有し、少なくとも1つのパルスの配置が第1クロックのパルスの何れか1つの配置と一致するパルスを含む第2クロックとを生成する。クロックイネーブル生成部13は、第1クロック及び第2クロックのパルスが一致するタイミングを第1クロック及び第2クロックのパルスの配置から予測する。クロックイネーブル生成部13は、予測したタイミングと第1クロックのパルスの配置とから、パルスが一致するタイミングの前の第1クロックのパルスでラッチ可能なクロックイネーブルを生成する。【選択図】図4

Description

本発明は、クロック制御回路及び半導体装置に関する。
CPU、メモリ及び論理回路等を、バスを介して接続することにより形成されたシステムオンチップ(system-on-a-chip、SoC)とも称される半導体装置が知られる。SoCにおいて、SoCに搭載されるモジュールの動作速度に応じたクロック信号を生成して、クロック信号を伝送するクロックツリーにおける消費電力を低減することが知られる。動作速度に応じたクロックによりモジュールを動作させるとき、モジュール間のデータ転送は、それぞれのクロック周波数の最大公約数に等しい動作周波数で行うことが知られる(例えば、特許文献1及び2を参照)。また、基本クロックとシステムクロックとの間の遅延ばらつきを解消するために、システムクロックの分周比に関する情報を含む選択信号に基づいて同期化信号を所定時間保持することが知られる(例えば、特許文献3を参照)。さらに、バスマスタとバススレーブとの周波数の組み合わせを自由に設定するために、バスマスタ及びバススレーブのクロックの周波数に応じてバス制御信号を生成することが知られる(例えば、特許文献4を参照)。
特開2008−41106号公報 特開2005−122374号公報 特開2012−32936号公報 特開2012−181724号公報
しかしながら、近年のSoCの高集積化、大規模化によって、クロック等の信号を伝送する配線の配線長が長くなり、信号間でタイミングのばらつきが発生するおそれがある。信号間のタイミングのばらつきが多く発生すると、回路を半導体装置として実装するときに信号間のタイミング条件を収束することが容易でなくなり、タイミング条件を充足するように回路を半導体装置として実装されないおそれがある。例えば、SoCに搭載されるモジュールを動作に応じたクロックで動作させ且つモジュール間のデータ転送をクロックイネーブルにより制御するとき、クロックイネーブルのタイミング条件が収束しないおそれがある。
一実施形態では、クロックイネーブルのタイミング条件を容易に収束可能なクロック制御回路を提供することを目的とする。
1つの態様では、クロック制御回路は、クロック生成部と、クロックイネーブル生成部とを有する。クロック生成部は、第1周期を有する第1クロックと、第1周期以上の長さを有する第2周期を有し、少なくとも1つのパルスの配置が第1クロックのパルスの何れか1つの配置と一致するパルスを含む第2クロックとを生成する。クロックイネーブル生成部は、第1クロック及び第2クロックのパルスが一致するタイミングを第1クロック及び第2クロックのパルスの配置から予測する。クロックイネーブル生成部は、予測したタイミングと第1クロックのパルスの配置とから、パルスが一致するタイミングの前の第1クロックのパルスでラッチ可能なクロックイネーブルを生成する。
一実施形態では、クロックイネーブルのタイミング条件を容易に収束可能なクロック制御回路を提供することができる。
(a)は関連するクロック制御回路を含むシステムの回路ブロック図であり、(b)は(a)に記載されるクロックイネーブル生成部の内部回路ブロック図である。 (a)は図1(a)に示すクロック制御回路が生成する第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの一例であり、(b)は(a)に示す第1クロック、第2クロック及びクロックイネーブル、並びに図1(a)に示すバスインタフェース部の動作に使用されるゲーティング第1クロックのタイミングチャートであり、(c)は、図1(a)に示すクロック制御回路が生成する第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの他の例であり、(d)は(c)に示す第1クロック、第2クロック及びクロックイネーブル、並びに図1(a)に示すクロック制御回路の動作に使用されるゲーティング第1クロックのタイミングチャートである。 (a)は第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの一例であり、(b)は(a)に示す第1クロック、第2クロック及びクロックイネーブル、並びに図1(a)に示すクロック制御回路の動作に使用されるゲーティング第1クロックのタイミングチャートであり、(c)は第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの他の例であり、(d)は(c)に示す第1クロック、第2クロック及びクロックイネーブル、並びに図1(a)に示すクロック制御回路の動作に使用されるゲーティング第1クロックのタイミングチャートである。 実施形態に係るクロック制御回路を含むシステムの回路ブロック図である。 (a)は図4に示すクロック生成部の内部回路ブロック図であり、(b)は(a)に示す第1クロック生成部の内部回路ブロック図である。 (a)は基準周期の指数Mが3であり、第1クロックのパルス数Naが5である場合の第1クロックを示す図であり(b)は基準周期の指数Mが3であり、第1クロックのパルス数Naが3である場合の第1クロックを示す図である。 基準周期の指数Mが3であるときに第1クロックのパルス数Naを1から8まで変化させたときの第1クロックのパルスの配置を示す図である。 図4に示すクロックイネーブル生成部の内部回路ブロック図である。 図8に示す間引完了タイミング演算部の内部回路ブロック図である。 図8に示す一致タイミング予測部、出力タイミング決定部及びクロックイネーブル出力部のより詳細な回路ブロック図である。 図9に示す第2クロック一致タイミング予測部の内部回路ブロック図である。 図9に示す第2クロック一致タイミング判定部の内部回路ブロック図である。 図4に示すクロックイネーブル生成部の動作の一例を示す図である。 (a)及び(b)のそれぞれは、図4に示すクロックイネーブル生成部の動作の一例を示す図である。 (a)及び(b)のそれぞれは、図4に示すクロックイネーブル生成部の動作の一例を示す図である。 (a)及び(b)のそれぞれは、図4に示すクロックイネーブル生成部の動作の一例を示す図である。 (a)及び(b)のそれぞれは、図4に示すクロックイネーブル生成部の動作の一例を示す図である。 (a)及び(b)のそれぞれは、図4に示すクロックイネーブル生成部の動作の一例を示す図である。 (a)及び(b)のそれぞれは、図4に示すクロックイネーブル生成部の動作の一例を示す図である。 (a)及び(b)のそれぞれは、図4に示すクロックイネーブル生成部の動作の一例を示す図である。
以下図面を参照して、本発明に係るクロック制御回路及び半導体装置について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
(実施形態に係るクロック制御回路の概要)
実施形態に係るクロック制御回路は、周波数が相違する2つの歯抜けクロックのパルスの配置から2つの歯抜けクロックのパルスが一致するタイミングを予測する。実施形態に係るクロック制御回路は、予測したタイミングと2つの歯抜けクロックのうち高周波数クロックのパルスの配置とから、歯抜けクロックのパルスが一致するタイミングの前の高周波クロックのパルスでラッチ可能なクロックイネーブルを生成する。実施形態に係るクロック制御回路は、2つの歯抜けクロックのパルスが一致するタイミングの1つ前のパルスでクロックイネーブルをラッチ可能とすることで、クロックイネーブルのタイミング条件の収束を容易にする。
(関連するクロック制御回路を含むシステムの構成及び機能)
図1(a)は関連するクロック制御回路を含むシステムの回路ブロック図であり、図1(b)は図1(a)に記載されるクロックイネーブル生成部の内部回路ブロック図である。
半導体装置に搭載されるシステム100は、クロック制御回路101と、CPU102と、メモリ103と、論理回路104と、バス105とを有する。
クロック制御回路101は、設定制御部106と、クロック生成部107と、クロックイネーブル生成部108とを有する。設定制御部106は、CPU102からバス105を介して入力される分周比指示に基づいて、CPU102に出力する第1クロックの分周比とバス105を介して論理回路104に出力する第2クロックの分周比を設定する。クロック生成部107は、PLLと分周回路とを有し、設定制御部106が設定した分周比に応じて第1クロック及び第2クロックを生成する。
クロックイネーブル生成部108は、分周比設定部111と、イネーブル周期演算部112と、イネーブル出力部113とを有し、第1クロックを有効化するクロックイネーブルをCPU102に出力する。分周比設定部111は、設定制御部106が設定した第1クロック及び第2クロックの分周比を取得し、取得した分周比をイネーブル周期演算部112に提供する。イネーブル周期演算部112は、分周比設定部111から提供された第1クロック及び第2クロックの分周比の最小公倍数を演算し、演算した最小公倍数に応じた周期毎でイネーブル出力部113にクロックイネーブルの出力を指示する。イネーブル出力部113は、イネーブル周期演算部112からクロックイネーブルの出力を指示される毎に1であるクロックイネーブルを出力する。
CPU102は、演算部109と、バスインタフェース部110とを有する。CPU102は、メモリ103に記憶されているプログラム等に応じて適切な手順で実行されるように、バス105を介して接続される論理回路104の動作を制御する。演算部109は、第1クロックに応じで動作する。バスインタフェース部110は、メモリ103及び論理回路104と演算部109との間でバス105を介して信号を入出力する。バスインタフェース部110は、第1クロックをクロックイネーブルでゲーティングしたゲーティング第1クロックに応じて動作する。
メモリ103は、CPU102による処理に用いられるプログラム及びCPU102及び論理回路104の処理で使用されるデータ等を記憶する。論理回路104は、メモリ103に記憶されるデータ等により所望の処理を実行する。論理回路104は、バス105を介してクロック制御回路101から入力される第2クロックに応じて動作する。
図2(a)は、クロック制御回路101が生成する第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの一例である。図2(a)に示す例では、第1クロックの分周比は1であり、第2クロックの分周比は2である。図2(b)は、図2(a)に示す第1クロック、第2クロック及びクロックイネーブル、並びにバスインタフェース部110の動作に使用されるゲーティング第1クロックのタイミングチャートである。図2(c)は、クロック制御回路101が生成する第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの他の例である。図2(c)に示す例では、第1クロックの分周比は2であり、第2クロックの分周比は3である。図2(d)は、図2(c)に示す第1クロック、第2クロック及びクロックイネーブル、並びにバスインタフェース部110の動作に使用されるゲーティング第1クロックのタイミングチャートである。図2(a)〜2(d)において、PLLで生成された生成クロックは「Generated Clock」で示され、第1クロックは「Clock0」で示され、第2クロックは「Clock1」で示され、クロックイネーブルは「Clock enable」で示される。また、図2(b)及び2(d)において、ゲーティング第1クロックは、「Gating Clock0」で示される。
図2(a)及び2(b)に示す例では、第1クロックClock0は、分周比が1なので、生成クロックGenerated Clockと同一の周期を有し、第2クロックClock1は、分周比が2なので、生成クロックGenerated Clockの2倍の周期を有する。第1クロックの分周比1と、第2クロックの分周比2との最小公倍数は2であるので、クロックイネーブルClock enableは、生成クロックGenerated Clockの周期の2倍の周期を有する。CPU102のバスインタフェース部110は、第1クロックClock0をクロックイネーブルClock enableでゲーティングしたゲーティング第1クロックGating Clock0に応じて動作するので、生成クロックGenerated Clockの2倍の周期で動作する。ゲーティング第1クロックGating Clock0で動作するCPU102のバスインタフェース部110及び第2クロックClock1で動作する論理回路104の双方は、生成クロックGenerated Clockの2倍の周期で動作するので同期動作が可能である。
図2(c)及び2(d)に示す例では、第1クロックClock0は、分周比が2なので、生成クロックGenerated Clockの2倍の周期を有し、第2クロックClock1は、分周比が3なので、生成クロックGenerated Clockの3倍の周期を有する。第1クロックの分周比2と、第2クロックの分周比3との最小公倍数は6であるので、クロックイネーブルClock enableは、生成クロックGenerated Clockの周期の6倍の周期を有する。CPU102のバスインタフェース部110は、第1クロックClock0をクロックイネーブルClock enableでゲーティングしたゲーティング第1クロックGating Clock0に応じて動作するので、生成クロックGenerated Clockの6倍の周期で動作する。CPU102のバスインタフェース部110は生成クロックGenerated Clockの6倍の周期で動作し、論理回路104は生成クロックGenerated Clockの3倍の周期で動作するので同期動作が可能である。
クロック制御回路101は、第1クロック及び第2クロックの分周比の最小公倍数の周期毎にクロックイネーブルを出力してCPU102のバスインタフェース部110の動作を制御する。システム100では、周期が相違するクロックの分周比の最小公倍数に応じた周期を有するクロックイネーブルを使用することにより、クロックの周期が相違するCPU102及び論理回路104の動作を同期させることが可能になる。
しかしながら、近年のSoCの高集積化、大規模化に伴って、クロック制御回路101の機能では対応が容易ではない課題が生じている。第1の課題は、SoCの高集積化、大規模化に伴って伝送される配線長が長くなるおそれがあることに起因するクロックイネーブルのタイミング条件を収束可能とする構成への対応である。第2の課題は、低電力化のためにCPUの負荷に応じてCPUの動作周波数をより細かい分周比で制御可能とする構成への対応である。
第1の課題への対応の一例は、クロック制御回路とCPUとの間に第1クロックで動作するフリップフロップを配置することによりクロックイネーブルをラッチすることである。クロック制御回路とCPUとの間に配置された第1クロックで動作するフリップフロップによりクロックイネーブルをラッチすることにより、クロックイネーブルのタイミング条件の収束が容易になる。
第2の課題への対応の一例は、PLLで生成された生成クロック信号からパルスを間引きして、いわゆる「歯抜けクロック」として第1クロック及び第2クロックを生成することである。「歯抜けクロック」として第1クロック及び第2クロックを生成することにより、CPUの負荷に応じてCPUの動作周波数をより細かい分周比で制御可能になる。
しかしながら、第1の課題をクロック制御回路101により解決することは容易ではなく、第1の課題及び第2の課題の双方をクロック制御回路101により同時に解決することは更に容易ではない。
図3(a)は、第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの一例である。図3(b)は、図3(a)に示す第1クロック、第2クロック及びクロックイネーブル、並びにバスインタフェース部110の動作に使用されるゲーティング第1クロックのタイミングチャートである。図3(c)は、第1クロック、第2クロック及びクロックイネーブルのタイミングチャートの他の例である。図3(d)は、図3(c)に示す第1クロック、第2クロック及びクロックイネーブル、並びにバスインタフェース部110の動作に使用されるゲーティング第1クロックのタイミングチャートである。図3(a)〜3(d)において、PLLで生成された生成クロックは「Generated Clock」で示され、第1クロックは「Clock0」で示され、第2クロックは「Clock1」で示され、クロックイネーブルは「Clock enable」で示される。また、図3(b)及び3(d)において、ゲーティング第1クロックは、「Gating Clock0」で示される。
図3(a)に示す例では、第1クロックの分周比は3/4であり、第2クロックの分周比は2/4である。第1クロックは2サイクル目のパルスを間引きし、第2クロックは2サイクル目及び4サイクル目のパルスを間引きして、「歯抜けクロック」として生成される。また、図3(a)に示す例では、クロックイネーブルは、第1クロック及び第2クロックの双方が同時に立上り遷移するときの立上りエッジを含むように出力される。図3(c)に示す例では、図3(a)に示す例と同様に、第1クロックの分周比は3/4であり、第2クロックの分周比は2/4である。しかしながら、図3(c)に示す例では、クロックイネーブルは、第1クロック及び第2クロックの双方が同時に立上り遷移するときの生成クロックの1周期前の立上りエッジを含むように出力される。
図3(a)及び3(b)に示す例では、「歯抜けクロック」として第1クロック及び第2クロックを生成することにより、第2の課題への対応が可能になる。しかしながら、図3(a)及び3(b)に示す例では、第1クロック及び第2クロックの双方が同時に立上り遷移するときの立上りエッジを含むように出力されるので、第2の課題は解決されない。
図3(c)及び3(d)に示す例では、「歯抜けクロック」として第1クロック及び第2クロックを生成することに加えて、第1クロック及び第2クロックが同時に遷移するときの生成クロックの1周期前にクロックイネーブルが出力される。しかしながら、図3(d)に示すように、第1クロック及び第2クロックが同時に遷移するときの生成クロックの1周期前にクロックイネーブルが出力されても、第1クロックが歯抜けクロックであるため、クロックイネーブルがラッチされないおそれがある。したがって、図3(c)及び3(d)に示す例においても、第2の課題は解決されない。
そこで、実施形態に係るクロック制御回路は、第1の課題を解決可能な構成、又は第1の課題及び第2の課題を同時に解決可能な構成を実現することを目的とするものである。
(実施形態に係るクロック制御回路を含むシステムの構成及び機能)
図4は、実施形態に係るクロック制御回路を含むシステムの回路ブロック図である。
半導体装置に搭載されるシステム1は、クロック制御回路101の代わりに実施形態に係るクロック制御回路10が配置されることが、関連するシステム100と相違する。また、半導体装置に搭載されるシステム1は、クロック制御回路10とCPU102との間に配置され、クロックイネーブルを第1クロックでラッチするフリップフロップ14を有することが、システム100と更に相違する。クロック制御回路10及びフリップフロップ14以外のシステム1の構成素子は、同一符号が付されたシステム100の構成素子と同様の構成及び機能を有するので、ここでは詳細な説明は省略する。
クロック制御回路10は、設定制御部11と、クロック生成部12と、クロックイネーブル生成部13とを有する。
設定制御部11は、CPU102からバス105を介して入力される分周比指示に基づいて、CPU102に出力する第1クロックの分周比とバス105を介して論理回路104に出力する第2クロックの分周比を設定する。第1クロック及び第2クロックの分周比は、基準周期2Mと、基準周期に含まれる第1クロックのパルス数Na及び第2クロックのパルス数Nbとにより設定される。例えば、第1クロックの分周比が5/8であり、第2クロックの分周比が3/8であるとき、基準周期の指数Mは3であり、第1クロックのパルス数Naは5であり、第2クロックのパルス数Nbは3である。
図5(a)はクロック生成部12の内部回路ブロック図であり、図5(b)は図5(a)に示す第1クロック生成部の内部回路ブロック図である。
クロック生成部12は、PLL20と、クロック生成カウンタ21と、第1クロック生成部22と、第2クロック生成部23とを有する。クロック生成部12は、所定の発振周期を有する生成クロックを生成し、クロック生成カウンタ21、第1クロック生成部22及び第2クロック生成部23に出力する。また、クロック生成部12は、生成クロックと同一の周期を有するクロックβaClockをクロックイネーブル生成部13に出力する。
クロック生成カウンタ21は、基準周期の指数Mと、PLL20が生成した生成クロックが入力され、生成クロックに応じて、基準周期2Mに応じて0から(2M−1)までの間を繰り返しカウントする。例えば、基準周期の指数Mは3であるとき、クロック生成カウンタ21は、基準周期8に応じて0から7までの間を繰り返しカウントする。クロック生成カウンタ21は、生成クロックに応じてカウントしたカウント値CNTVを第1クロック生成部22及び第2クロック生成部23に出力する。
第1クロック生成部22は、第1演算部24と、第2演算部25と、第3演算部26と、クロックゲーティングバッファ(以下、GCBとも称する)27とを有する。第1クロック生成部22は、以下に説明する所定のパルス配置アルゴリズムに従って生成クロックから間引くパルスを決定することにより、第1クロックのパルスの配置を決定する。
第1演算部24は、基準周期の指数Mと、第1クロックのパルス数Naとから分周比(Na/2M)が(2β-1/2M)<(Na/2M)≦(2β/2M)の関係を満たす指数βを演算する。すなわち、第1演算部24の演算式F1(M,Na)は、
Figure 2017021539
として規定される。
第2演算部25は、基準周期の指数Mと、第1クロックのパルス数Naと、第1演算部24が演算した指数βからパルスを間引く条件を相違させる境界Borderを演算する。すなわち、第2演算部25の演算式F2(M,Na,β)は、
Figure 2017021539
として規定される。
第3演算部26は、基準周期の指数M、指数β、クロック生成カウンタ21から入力されるカウント値CNTV及び境界Borderから、間引かずに出力するパルスの位置を規定するパルス通過条件enableを演算する。パルス通過条件enableは、カウント値CNTVが境界Border未満のときに、カウント値CNTVが2M+1-βとなるときにパルスを間引かずに出力することを示す1となる。また、パルス通過条件enableは、カウント値CNTVが境界Border以上のときに、カウント値CNTVが2M-βとなるときにパルスを間引かずに出力することを示す1となる。すなわち、第3演算部26の演算式F3(M,β,CNTV,Border)は、
Figure 2017021539
として規定される。
GCB27は、生成クロックGenerated Clockと、パルス通過条件enableとが入力され、パルス通過条件enableが1になった次の周期の生成クロックGenerated Clockを間引かずに出力する。
(第1クロック生成部22の動作)
基準周期の指数Mが3であり、第1クロックのパルス数Naが5である場合、及び基準周期の指数Mが3であり、第1クロックのパルス数Naが3である場合を例に第1クロック生成部22の動作を説明する。
図6(a)は、基準周期の指数Mが3であり、第1クロックのパルス数Naが5である場合に第1クロック生成部22が生成する第1クロックを示す図である。図6(b)は、基準周期の指数Mが3であり、第1クロックのパルス数Naが3である場合に第1クロック生成部22が生成する第1クロックを示す図である。図6(a)及び6(b)において、クロック生成カウンタ21がカウント値は「CNTV」で示され、第3演算部26が演算するパルス通過条件は「enable」で示される。また、PLL20が生成する生成クロックは「Generated Clock」で示され、生成される第1クロックは「Clock0」で示される。
基準周期の指数Mが3であり、第1クロックのパルス数Naが5である場合、基準周期の指数Mが3であるので、基準周期は23=8である。第1演算部24は、演算式F1(M,Na)により指数βを演算する。第1クロックのパルス数Naは5であるので、(22/23)<(5/23)≦(23/23)を充足するβは3となる。次いで、第2演算部25は、演算式F2(M,Na,β)により境界Borderを演算する。基準周期の指数Mは3であり、第1クロックのパルス数Naは5であり、第1演算部24が演算した指数βは3であるので、(23-5)×23+1-3から、境界Borderは6になる。次いで、第3演算部26は、演算式F3(M,β,CNTV,Border)によりパルス通過条件enableが1になるカウント値CNTVを演算する。基準周期の指数Mは3であり、第1演算部24が演算した指数βは3であり、第2演算部25が演算した境界Borderが6であるので、演算式F3(M,β,CNTV,Border)は以下のようになる。
Figure 2017021539
そして、GCB27は、パルス通過条件enableが1になった次の周期の生成クロックGenerated Clockを間引かずに出力する。
基準周期の指数Mが3であり、第1クロックのパルス数Naが3である場合、第1クロックのパルス数Naは3であるので、第1演算部24は、演算式F1(M,Na)が示す(21/23)<(3/23)≦(22/23)を充足するβは2であると演算する。次いで、第2演算部25は、基準周期の指数Mは3であり、第1クロックのパルス数Naは3であり、第1演算部24が演算した指数βは2であるので、(22-3)×23+1-2から、境界Borderは4であると演算する。次いで、第3演算部26は、演算式F3(M,β,CNTV,Border)によりパルス通過条件enableが1になるカウント値CNTVを演算する。基準周期の指数Mは3であり、第1演算部24が演算した指数βは2であり、第2演算部25が演算した境界Borderが4であるので、演算式F3(M,β,CNTV,Border)は以下のようになる。
Figure 2017021539
そして、GCB27は、パルス通過条件enableが1になった次の周期の生成クロックGenerated Clockを間引かずに出力する。
図7は、基準周期の指数Mが3であるときに第1クロックのパルス数Naを1から8まで変化させたときに第1クロック生成部22が生成する第1クロックのパルスの配置を示す図である。図7において、クロック生成カウンタ21がカウントするカウント値は「CNTV」で示され、第1クロックのパルス数は「Na」で示される。
第1クロックのパルス数Naが7のときに生成される第1クロックClock0のパルスの配置は、第1クロックClock0のパルス数Naが8のときに生成される第1クロックからカウント値CNTVが2であるときのパルスを間引いた配置である。また、第1クロックのパルス数Naが6のときに生成される第1クロックClock0のパルスの配置は、第1クロックClock0のパルス数Naが7のときに生成される第1クロックからカウント値CNTVが4であるときのパルスを間引いた配置である。以下、同様に、第1クロックClock0の基準周期におけるパルスの配置は、基準周期に含まれるパルスの数が1つ多い第1クロックClock0に含まれるパルスの何れか1つを間引いた配置である。より具体的には、第1クロック生成部22は、境界Borderと、パルスの位置とを比較する。第1クロック生成部22は、演算式F3(M,β,CNTV,Border)に示すように、パルスが境界Borderの前に位置する場合と、パルスが境界Borderの後に位置する場合とでパルスを間引く条件を相違させる。
第2クロック生成部23は、第1クロック生成部22と同一の構成を有するので、ここでは詳細な説明を省略する。
(クロックイネーブル生成部13の構成及び機能)
図8は、クロックイネーブル生成部13の内部回路ブロック図である。
クロックイネーブル生成部13は、間引完了タイミング演算部30と、一致タイミング予測部40と、出力タイミング決定部50と、クロックイネーブル出力部60と、カウンタ70とを有する。間引完了タイミング演算部30は、分周比等から第1クロック及び第2クロックの間引きが完了するタイミングを演算する。一致タイミング予測部40は、間引完了タイミング演算部30が演算した第1クロック及び第2クロックの間引きが完了するタイミング等から第1クロックのパルスと第2パルスが一致するタイミングを予測する。出力タイミング決定部50は、一致タイミング予測部40が予測した第1クロックのパルスと第2クロックのパルスが一致するタイミングと、第1クロックのパルスの配置とからクロックイネーブルを出力するタイミングを決定する。クロックイネーブル出力部60は、クロックイネーブル出力部60が決定したクロックイネーブルを出力するタイミングとカウンタ70のカウント値とが一致したときに、クロックイネーブルを出力する。カウンタ70は、間引完了タイミング演算部30が演算する第1クロックの指数βaで規定される0〜2βaの間で繰り返しクロックβaClockに応じてカウントしたカウント値CNTVaを、出力タイミング決定部50及びクロックイネーブル出力部60に出力する。
図9は、間引完了タイミング演算部30の内部回路ブロック図である。
間引完了タイミング演算部30は、第1クロック指数演算部31と、第2クロック指数演算部32と、第1クロック間引完了タイミング演算部33と、第2クロック間引完了タイミング演算部34とを有する。第1クロック指数演算部31及び第2クロック指数演算部32は、第1演算部24と同様な構成を有し、第1クロックの指数βa及び第2クロックの指数βbのそれぞれを演算式F1(M,Na)により演算する。第1クロック間引完了タイミング演算部33及び第2クロック間引完了タイミング演算部34は、第1クロック及び第2クロックのそれぞれのパルスの間引きが完了する間引完了タイミングSCompA及びSCompBを演算する。第1クロック間引完了タイミング演算部33及び第2クロック間引完了タイミング演算部34の演算式F4(N,β)は、
Figure 2017021539
として規定される。例えば、パルス数が7の場合、間引完了タイミングSCompは(23-7)×2=2となり、パルス数が6の場合、間引完了タイミングSCompは(23-6)×2=4となり、パルス数が5の場合、間引完了タイミングSCompは(23-5)×2=6となる。このように、パルスの数が4より多く且つ8以下のとき、間引完了タイミングSCompは、8つのパルスの位置の中で最後に間引きされたパルスの位置を示す。また、パルス数が4の場合、間引完了タイミングSCompは(22-4)×2=0となり、パルス数が3の場合、間引完了タイミングSCompは(22-3)×2=2となり、パルス数が2の場合、間引完了タイミングSCompは(21-2)×2=0となる。このように、間引完了タイミングSCompは、パルスの数が2より多く且つ4以下のとき、4つのパルスの位置の中で最後に間引きされたパルスの位置を示す。また、間引完了タイミングSCompは、パルスの数が2以下のとき、2つのパルスの位置の中で最後に間引きされたパルスの位置を示す。同様に、間引完了タイミングSCompは、パルスの数が8より多く且つ16以下のとき16個のパルスの位置の中で最後に間引きされたパルスの位置を示す。また、間引完了タイミングSCompは、パルスの数が16より多く且つ32以下のとき32個のパルスの位置の中で最後に間引きされたパルスの位置を示す。
図10は、一致タイミング予測部40、出力タイミング決定部50及びクロックイネーブル出力部60のより詳細な回路ブロック図である。
一致タイミング予測部40は、第2クロック一致タイミング予測部41と、第1クロック一致タイミング予測部42とを有する。第2クロック一致タイミング予測部41は、第1クロックと第2クロックのパルスの位置が一致するときの第2クロックの基準周期におけるパルスの配置を決定する。第1クロック一致タイミング予測部42は、第2クロック一致タイミング予測部41が決定した第2クロックのパルスの配置に基づいて第1クロックと第2クロックのパルスの位置が一致するときの第1クロックの基準周期におけるパルスの配置を決定する。
第2クロック一致タイミング予測部41は、基準周期の指数M、第1クロック及び第2クロックのパルス数Na、Nb、カウンタ70のクロックと同一のクロックβaClockが入力される。また、第2クロック一致タイミング予測部41は、第2クロックの指数βb、イネーブルNextPulse及び第2クロックの間引完了タイミングSCompBが更に入力される。第2クロック一致タイミング予測部41は、入力された値を使用して演算式F5(Na,Nb,M,βaClock,βb,NextPulse,SComp)で決定される第2クロック一致タイミングPairPulseBは、
Figure 2017021539
として規定される。すなわち、第2クロック一致タイミングPairPulseBの初期値は、第1クロック及び第2クロックのパルス数Na、Nb並びに第2クロックの間引完了タイミングSCompBにより規定される。第2クロックのパルス数Nbが1のとき、第2クロック一致タイミングPairPulseBの初期値は0であり、第2クロックの間引完了タイミングSCompBが0のとき、第2クロック一致タイミングPairPulseBの初期値は1である。また、第2クロックの間引完了タイミングSCompBが0よりも大きいとき又は第1クロック及び第2クロックのパルス数Na、Nbが2Mに等しいとき、第2クロック一致タイミングPairPulseBの初期値は2である。第2クロック一致タイミング予測部41は、初期値を規定した後、イネーブルNextPulse及びクロックβaClockに応じて第2クロック一致タイミングPairPulseBを規定する。第2クロック一致タイミング予測部41は、イネーブルNextPulseが0のとき、クロックβaClockが入力されても現在の値を保持する。第2クロック一致タイミング予測部41は、イネーブルNextPulseが1であり且つ現在の第2クロック一致タイミングPairPulseBが(2βb-1)のとき、クロックβaClockの入力に応じて第2クロック一致タイミングPairPulseBを0にする。第2クロック一致タイミング予測部41は、イネーブルNextPulseが1であり且つ第2クロック一致タイミングPairPulseBが間引完了タイミングSCompBより小さいとき、クロックβaClockの入力に応じて第2クロック一致タイミングPairPulseBを+2する。第2クロック一致タイミング予測部41は、イネーブルNextPulseが1であり且つ現在の第2クロック一致タイミングPairPulseBが間引完了タイミングSCompB以上のとき、クロックβaClockの入力に応じて第2クロック一致タイミングPairPulseBを+1する。
図11は、第2クロック一致タイミング予測部41の内部回路ブロック図である。
第2クロック一致タイミング予測部41は、マルチプレクサ43と、フリップフロップ44とを有する。マルチプレクサ43は、現在の第2クロック一致タイミングPairPulseB、間引完了タイミングSCompBにより規定される条件に応じて、0若しくは現在の第2クロック一致タイミングPairPulseBから正方向に1つ又は2つ移動するかを選択する。フリップフロップ44は、イネーブルNextPulseが0であるときに、クロックβaClockが入力されても現在の値を保持する。フリップフロップ44は、イネーブルNextPulseが1であるときに、クロックβaClockの入力に応じてマルチプレクサ43から出力される信号を第2クロック一致タイミングPairPulseBとして出力する。
第1クロック一致タイミング予測部42は、第2クロック一致タイミング予測部41が予測した第2クロック一致タイミングPairPulseBから第1クロック一致タイミングPairPulseAを予測する。第1クロック一致タイミング予測部42の演算式F6(βa,βb,PairPulseB)は、
Figure 2017021539
として規定される。
出力タイミング決定部50は、第2クロック一致タイミング判定部51と、第1クロックタイミング減算値演算部52と、クロックイネーブルタイミング決定部53と、OR素子54とを有する。
第2クロック一致タイミング判定部51は、第2クロック一致タイミングPairPulseBが0になるタイミングで1になる第2クロックタイミングリセットAroundを生成する。第2クロック一致タイミング判定部51の演算式F7(βaClock,NextPulse,βa,βb,CNTVa,PairPulseB)は、
Figure 2017021539
として規定される。すなわち、第2クロック一致タイミング判定部51は、第2クロックの指数βbが0以外のとき第2クロックタイミングリセットAroundの初期値を0とし、第2クロックの指数βbが0のとき第2クロックタイミングリセットAroundの初期値を1とする。第2クロック一致タイミング判定部51は、初期値を規定した後、条件判定及びクロックβaClockに応じて第2クロックタイミングリセットAroundを規定する。第2クロック一致タイミング判定部51は、カウンタ値CNTVaが2βa-1のとき、クロックβaClockの入力に応じて第2クロックタイミングリセットAroundを0にする。第2クロック一致タイミング判定部51は、現在のカウンタ値CNTVaが2βa-1のとき、クロックβaClockの入力に応じて第2クロックタイミングリセットAroundを0にする。第2クロック一致タイミング判定部51は、現在の第2クロック一致タイミングPairPulseBが2βa-1であり且つイネーブルNextPulseが1であるとき、クロックβaClockの入力に応じて第2クロックタイミングリセットAroundを1にする。また、第2クロック一致タイミング判定部51は、第2クロックの指数βbが0であるとき、クロックβaClockの入力に応じて第2クロックタイミングリセットAroundを1にする。
図12は、第2クロック一致タイミング判定部51の内部回路ブロック図である。
第2クロック一致タイミング判定部51は、マルチプレクサ55と、フリップフロップ56とを有する。マルチプレクサ55は、現在のカウンタ値CNTVa、現在の第2クロック一致タイミングPairPulseB及びイネーブルNextPulseに基づく条件判定に応じて、0又は1の何れかを出力する。フリップフロップ56は、現在のカウンタ値CNTVa、現在の第2クロック一致タイミングPairPulseB及びイネーブルNextPulseに基づく条件判定、及びにクロックβaClockの入力に応じてマルチプレクサ55から入力される信号を出力する。
第1クロックタイミング減算値演算部52は、パルスが一致する第1クロック一致タイミングPairPulseAの1つ前の第1クロックのパルスでラッチ可能なクロックイネーブルClock Enableを生成するために第1クロックタイミング減算値EnSubを演算する。第1クロックタイミング減算値演算部52の演算式F8(PairPulseA,SCompA)は、
Figure 2017021539
として規定される。第1クロック一致タイミングPairPulseAが第1クロックの間引完了タイミングSCompA以下であるとき、第1クロックの1つ前のパルスの位置は、第1クロック一致タイミングPairPulseAaの2つ前のタイミングになる。第1クロックのパルスでラッチ可能なクロックイネーブルClock Enableのタイミングは、第1クロックの1つ前なので、第1クロック一致タイミングPairPulseAaの3つ前のタイミングになる。第1クロック一致タイミングPairPulseAが第1クロックの間引完了タイミングSCompAより大きいとき、第1クロックは間引きされていないので、第1クロックの1つ前のパルスの位置は、第1クロック一致タイミングPairPulseAaの1つ前のタイミングになる。第1クロックのパルスでラッチ可能なクロックイネーブルClock Enableのタイミングは、第1クロックの1つ前なので、第1クロック一致タイミングPairPulseAaの2つ前のタイミングになる。また、第1クロック一致タイミングPairPulseAが0のとき、第1クロック一致タイミングPairPulseAaの2つ前のタイミングになる。
クロックイネーブルタイミング決定部53は、クロックイネーブルを出力するクロックイネーブル出力タイミングEnableTimeを決定する。クロックイネーブルタイミング決定部53の演算式F9(PairPulseA,βa,Around,EnSub)は、
Figure 2017021539
として規定される。クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが0のとき、クロックイネーブル出力タイミングEnableTimeを第1クロック一致タイミングPairPulseAから第1クロックタイミング減算値EnSubを減算した値として規定する。クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが1のとき、クロックイネーブル出力タイミングEnableTimeを2βaと第1クロック一致タイミングPairPulseAとの和から第1クロックタイミング減算値EnSubを減算した値とする。
また、クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが0であり且つ第1クロック一致タイミングPairPulseAが第1クロックタイミング減算値EnSubよりも小さいときに、イネーブル条件Nextを1にする。クロックイネーブルタイミング決定部53の演算式F9(PairPulseA,βa,Around,EnSub)は、
Figure 2017021539
として更に規定される。OR素子54は、イネーブル条件Next又はクロックイネーブルClockEnableの少なくとも何れか一方が1のとき、イネーブルNextPulseを1にする。
クロックイネーブル出力部60は、カウンタ70のカウンタ値がクロックイネーブル出力タイミングEnableTimeと一致したときにクロックイネーブルClockEnableを1にする。クロックイネーブル出力部60の演算式F10(Na,Nb,CNTVa,EnableTime)は、
Figure 2017021539
として規定される。
(クロックイネーブル生成部13の動作)
図13は、クロックイネーブル生成部13の動作の一例を示す図である。図13において、基準周期の指数Mは3であり、第1クロックのパルス数Naは5であり、第2クロックのパルス数Nbは3である。また、図13において、一致タイミング予測部40が演算する第1クロックの指数βaは3であり、第2クロックの指数βbは2であり、第1クロックの間引完了タイミングSCompAは6であり、第2クロックの間引完了タイミングSCompBは2である。第1クロックの指数βaは3であるので、カウンタ値CNTVaは0〜7の間でβaClockに応じてカウントされる。
カウント値CNTVaが0のとき、第2クロックの間引完了タイミングSCompBが0より大きく、第2クロック一致タイミング予測部41は、演算式F5(Na,Nb,M,βaClock,βb,NextPulse,SComp)から第2クロック一致タイミングPairPulseBの初期値を2とする。第2クロック一致タイミングPairPulseBの初期値が2なので、第1クロック一致タイミング予測部42は、演算式F6(βa,βb,PairPulseB)から、第1クロック一致タイミングPairPulseAを
Figure 2017021539
と予測する。第2クロック一致タイミング判定部51は、カウント値CNTVaが0なので、演算式F7(βaClock,NextPulse,βa,βb,CNTVa,PairPulseB)から第2クロックタイミングリセットAroundの初期値を0とする。第1クロックタイミング減算値演算部52は、第1クロック一致タイミングPairPulseAaが0より大きく且つ第1クロックの間引完了タイミングSCompA以下なので、演算式F8(PairPulseA,SCompA)から第1クロックタイミング減算値EnSubを3とする。クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが0なので、演算式F9(PairPulseA,βa,Around,EnSub)からクロックイネーブル出力タイミングEnableTimeをPairPulseA-EnSub=1と演算する。また、クロックイネーブルタイミング決定部53は、クロックイネーブル出力タイミングEnableTimeが0より大きいので、演算式F9(PairPulseA,βa,Around,EnSub)からイネーブル条件Nextを0とする。クロックイネーブル出力部60は、カウント値CNTVaがクロックイネーブル出力タイミングEnableTimeと一致しないので、クロックイネーブルClockEnableを0とする。また、イネーブル条件Next及びクロックイネーブルClockEnableの双方が0なので、イネーブルNextPulseは0となり、第2クロック一致タイミング予測部41は、第2クロック一致タイミングPairPulseBを2のまま維持する。
カウント値CNTVaが1のとき、クロックイネーブル出力部60は、カウント値CNTVaとクロックイネーブル出力タイミングEnableTimeとが双方1となり一致するので、クロックイネーブルClockEnableを1とする。クロックイネーブルClockEnableが1になると、イネーブルNextPulseは1となり、第2クロック一致タイミング予測部41は、次のクロックβaClockに応じて第2クロック一致タイミングPairPulseBを変更する。
カウント値CNTVaが2のとき、イネーブルNextPulseが1であり且つ第2クロック一致タイミングPairPulseBが第2クロックの間引完了タイミングSCompB以上である。このため、第2クロック一致タイミング予測部41は、演算式F5(Na,Nb,M,βaClock,βb,NextPulse,SComp)から第2クロック一致タイミングPairPulseBを(PairPulseB<=PairPulse+1)より3とする。第1クロック一致タイミング予測部42は、演算式F6(βa,βb,PairPulseB)から、第1クロック一致タイミングPairPulseAを3×2=6とする。第2クロック一致タイミング判定部51は、演算式F7(βaClock,NextPulse,βa,βb,CNTVa,PairPulseB)から第2クロックタイミングリセットAroundを0とする。第1クロックタイミング減算値演算部52は、第1クロック一致タイミングPairPulseAaが0より大きく且つ第1クロックの間引完了タイミングSCompA以下なので、演算式F8(PairPulseA,SCompA)から第1クロックタイミング減算値EnSubを3とする。クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが0なので、演算式F9(PairPulseA,βa,Around,EnSub)からクロックイネーブル出力タイミングEnableTimeをPairPulseA-EnSub=3と演算する。また、クロックイネーブルタイミング決定部53は、クロックイネーブル出力タイミングEnableTimeが0より大きいので、演算式F9(PairPulseA,βa,Around,EnSub)からイネーブル条件Nextを0とする。クロックイネーブル出力部60は、カウント値CNTVaがクロックイネーブル出力タイミングEnableTimeと一致しないので、クロックイネーブルClockEnableを0とする。また、イネーブル条件Next及びクロックイネーブルClockEnableの双方が0なので、イネーブルNextPulseは0となり、第2クロック一致タイミング予測部41は、第2クロック一致タイミングPairPulseBを3のまま維持する。
カウント値CNTVaが3のとき、クロックイネーブル出力部60は、カウント値CNTVaとクロックイネーブル出力タイミングEnableTimeとが双方1となり一致するので、クロックイネーブルClockEnableを1とする。クロックイネーブルClockEnableが1になると、イネーブルNextPulseは1となり、第2クロック一致タイミング予測部41は、次のクロックβaClockに応じて第2クロック一致タイミングPairPulseBを変更する。また、第2クロック一致タイミングPairPulseBが2βb-1と一致するので、第2クロック一致タイミング判定部51は、のクロックβaClockに応じて第2クロックタイミングリセットAroundを変更する。
カウント値CNTVaが4のとき、イネーブルNextPulseが1であり且つ第2クロック一致タイミングPairPulseBが2βb-1と一致する。このため、第2クロック一致タイミング予測部41は、演算式F5(Na,Nb,M,βaClock,βb,NextPulse,SComp)から第2クロック一致タイミングPairPulseBを0とする。第1クロック一致タイミング予測部42は、演算式F6(βa,βb,PairPulseB)から、第1クロック一致タイミングPairPulseAを0×2=0とする。第2クロック一致タイミング判定部51は、演算式F7(βaClock,NextPulse,βa,βb,CNTVa,PairPulseB)から第2クロックタイミングリセットAroundを1とする。第1クロックタイミング減算値演算部52は、第1クロック一致タイミングPairPulseAaが0なので、演算式F8(PairPulseA,SCompA)から第1クロックタイミング減算値EnSubを2とする。クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが1なので、演算式F9(PairPulseA,βa,Around,EnSub)からクロックイネーブル出力タイミングEnableTimeを8+PairPulseA-EnSub=6と演算する。また、クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが1なので、演算式F9(PairPulseA,βa,Around,EnSub)からイネーブル条件Nextを0とする。クロックイネーブル出力部60は、カウント値CNTVaがクロックイネーブル出力タイミングEnableTimeと一致しないので、クロックイネーブルClockEnableを0とする。また、イネーブル条件Next及びクロックイネーブルClockEnableの双方が0なので、イネーブルNextPulseは0となり、第2クロック一致タイミング予測部41は、第2クロック一致タイミングPairPulseBを0のまま維持する。
カウント値CNTVaが5のとき、クロックイネーブル出力部60は、カウント値CNTVaとクロックイネーブル出力タイミングEnableTimeとは一致しないので、クロックイネーブルClockEnableを0とする。クロックイネーブルClockEnableが0になると、イネーブルNextPulseは0となり、第2クロック一致タイミング予測部41は、次のクロックβaClockに応じて第2クロック一致タイミングPairPulseBを変更せずに0を維持する。
カウント値CNTVaが6のとき、クロックイネーブル出力部60は、カウント値CNTVaとクロックイネーブル出力タイミングEnableTimeとが一致するので、クロックイネーブルClockEnableを1とする。クロックイネーブルClockEnableが1になると、イネーブルNextPulseは1となり、第2クロック一致タイミング予測部41は、次のクロックβaClockに応じて第2クロック一致タイミングPairPulseBを変更する。
カウント値CNTVaが7のとき、イネーブルNextPulseが1であり且つ第2クロック一致タイミングPairPulseBが第2クロックの間引完了タイミングSCompBより小さい。第2クロック一致タイミング予測部41は、演算式F5(Na,Nb,M,βaClock,βb,NextPulse,SComp)から第2クロック一致タイミングPairPulseBを0+2=2とする。第1クロック一致タイミング予測部42は、演算式F6(βa,βb,PairPulseB)から、第1クロック一致タイミングPairPulseAを2×2=4とする。第2クロック一致タイミング判定部51は、演算式F7(βaClock,NextPulse,βa,βb,CNTVa,PairPulseB)から第2クロックタイミングリセットAroundを1に維持する。第1クロックタイミング減算値演算部52は、第1クロック一致タイミングPairPulseAaが4なので、演算式F8(PairPulseA,SCompA)から第1クロックタイミング減算値EnSubを3とする。クロックイネーブルタイミング決定部53は、演算式F9(PairPulseA,βa,Around,EnSub)からクロックイネーブル出力タイミングEnableTimeをPairPulseA-EnSub=1と演算する。また、クロックイネーブルタイミング決定部53は、第2クロックタイミングリセットAroundが1なので、演算式F9(PairPulseA,βa,Around,EnSub)からイネーブル条件Nextを0とする。クロックイネーブル出力部60は、カウント値CNTVaがクロックイネーブル出力タイミングEnableTimeと一致しないので、クロックイネーブルClockEnableを0とする。また、イネーブル条件Next及びクロックイネーブルClockEnableの双方が0なので、イネーブルNextPulseは0となり、第2クロック一致タイミング予測部41は、第2クロック一致タイミングPairPulseBを2のまま維持する。また、カウント値CNTVaが7であり且つイネーブルNextPulseが1なので、次のクロックβaClockに応じて第2クロックタイミングリセットAroundは0になる。以降、クロックイネーブル生成部13は、カウント値CNTVaが0に戻りカウント値CNTVaの値に応じて説明した動作を繰り返す。
図14〜20は、基準周期の指数Mが3のときに第1クロックのパルス数Na及び第2クロックのパルス数Nbを変更したときのクロックイネーブル生成部13の動作の他の例を示す図である。図14(a)は第1クロックのパルス数Naを5から3に変更し且つ第2クロックのパルス数Nbを3から2に変更した例を示し、図14(b)は第1クロックのパルス数Naを5で維持しながら第2クロックのパルス数Nbを3から4に変更した例を示す。図15(a)〜15(b)は第1クロックのパルス数Naが8であり且つ第2クロックのパルス数Nbが7〜6である例を示し、図16(a)〜16(b)は第1クロックのパルス数Naが8であり且つ第2クロックのパルス数Nbが5〜4である例を示す。図17(a)〜17(b)は第1クロックのパルス数Naが8であり且つ第2クロックのパルス数Nbが3〜2である例を示す。図18(a)は第1クロックのパルス数Naが8であり且つ第2クロックのパルス数Nbが1である例を示し、図18(b)は第1クロックのパルス数Naが7であり且つ第2クロックのパルス数Nbが3である例を示す。図19(a)は第1クロックのパルス数Naが6であり且つ第2クロックのパルス数Nbが2である例を示し、図19(b)は第1クロックのパルス数Naが4であり且つ第2クロックのパルス数Nbが3である例を示す。図20(a)は第1クロックのパルス数Naが3であり且つ第2クロックのパルス数Nbが2である例を示し、図20(b)は第1クロックのパルス数Naが2であり且つ第2クロックのパルス数Nbが1である例を示す。
図14〜20に示すクロックイネーブル生成部13の動作は、図13を参照して説明したクロックイネーブル生成部13の動作と同様なので、ここでは詳細な説明は説明する。
(実施形態に係るクロック制御回路の作用効果)
実施形態に係るクロックイネーブル生成部は、周波数が相違する第1クロック及び第2クロックのパルスが一致するタイミングの前の第1クロックのパルスでラッチ可能なクロックイネーブルを生成する。生成されたクロックイネーブルは、第1クロック及び第2クロックのパルスが一致するタイミングの前の第1クロックのパルスでラッチ可能なので、CPUとクロックイネーブル生成部との間に配置されたフリップフロップでラッチすることができる。CPUとクロックイネーブル生成部との間に配置されたフリップフロップでクロックイネーブルをラッチすることにより、クロックイネーブルのタイミング条件を容易に収束することが可能になる。
また、実施形態に係るクロックイネーブル生成部では、第1クロックと第2クロックとを基準周期の中でいくつかのパルスを間引いた歯抜けクロックとしてもよい。実施形態に係るクロックイネーブル生成部では、第1クロック及び第2クロックを歯抜けクロックとした場合でも、パルスが一致するタイミングの予測により、パルスが一致するタイミングの前のパルスでラッチ可能なクロックイネーブルを生成できる。
また、実施形態に係るクロックイネーブル生成部では、基準周期におけるパルスの配置は、基準周期に含まれるパルスの数が1つ多い第1クロック及び第2クロックに含まれるパルスの何れか1つを間引いた配置とすることができる。基準周期に含まれるパルスの数が1つ多いクロックに含まれるパルスの何れかを間引いた配置とすることで、実施形態に係るクロックイネーブル生成部では、第2クロックのパルスを、第1クロックのパルスの何れか1つの配置と一致するように配置できる。
また、実施形態に係るクロックイネーブル生成部では、クロック生成部は、所定のパルス配置アルゴリズムに従って間引くパルスを決定することにより、第1クロック及び第2クロックの基準周期におけるパルスの配置を決定する。実施形態に係るクロックイネーブル生成部では、クロックイネーブル生成部は、パルスの配置を決定するパルス配置アルゴリズムから第1クロック及び第2クロックが一致するタイミングを予測する。実施形態に係るクロックイネーブル生成部は、パルスの配置を決定したパルス配置アルゴリズムに基づいてクロックが一致するタイミングを予測するため、正確且つ早急にクロックが一致するタイミングを予測することができる。
また、パルス配置アルゴリズムでは、所定の条件から演算される境界と、パルスの位置とを比較して、パルスの位置が境界の前に位置する場合と、パルスの位置が境界の後に位置する場合とでパルスを間引く条件を相違させてもよい。実施形態に係るクロックイネーブル生成部では、所定の条件から演算される境界を使用して、基準周期におけるパルスの配置を決定することにより、より簡明なアルゴリズムで基準周期におけるパルスの配置を決定することができる。
(実施形態に係るクロック制御回路の変形例)
クロック制御回路3では、基準周期の指数Mは3であったが、実施形態に係るクロック制御回路では、基準周期の指数Mは3に限定されない。基準周期の指数Mは、2又は4以上の値でもよい。また、クロック制御回路3では、第1クロックのパスル数Naは第2クロックのパルス数Nbよりは3であったが、実施形態に係るクロック制御回路では、第1クロックのパスル数Naと第2クロックのパルス数Nbとは同一であってもよい。また、クロック制御回路3を含むシステム1では、クロックイネーブルは1つのフリップフロップによりラッチされるが、複数段のフリップフロップによりラッチされる構成としてもよい。
1、100 システム
10 クロック制御回路
11 設定制御部
12 クロック生成部
13 クロックイネーブル生成部
102 CPU
104 論理回路
105 バス

Claims (6)

  1. 第1周期を有する第1クロックと、前記第1周期以上の長さを有する第2周期を有し、少なくとも1つのパルスの配置が前記第1クロックのパルスの何れか1つの配置と一致するパルスを含む第2クロックとを生成するクロック生成部と、
    前記第1クロック及び前記第2クロックのパルスが一致するタイミングを前記第1クロック及び前記第2クロックのパルスの配置から予測し、前記予測したタイミングと前記第1クロックのパルスの配置とから、前記パルスが一致するタイミングの前の前記第1クロックのパルスでラッチ可能なクロックイネーブルを生成するクロックイネーブル生成部と、
    を有する、クロック制御回路。
  2. 前記第1周期の長さは、前記第2周期の長さと等しい基準周期であり、
    前記第1クロックは、前記基準周期の間に2つ以上のパルスを含み、
    前記第2クロックは、前記基準周期の間に第1クロックのパルスの数以下の数のパルスを含む、請求項1に記載のクロック制御回路。
  3. 前記第1クロック及び前記第2クロックの前記基準周期におけるパルスの配置は、前記基準周期に含まれるパルスの数が1つ多い前記第1クロック及び前記第2クロックに含まれるパルスの何れか1つを間引いた配置である、請求項2に記載のクロック制御回路。
  4. 前記クロック生成部は、所定のパルス配置アルゴリズムに従って間引くパルスを決定することにより、前記第1クロック及び前記第2クロックの前記基準周期におけるパルスの配置を決定し、
    前記クロックイネーブル生成部は、前記パルス配置アルゴリズムから前記第1クロック及び前記第2クロックが一致するタイミングを予測する、請求項3に記載のクロック制御回路。
  5. パルス配置アルゴリズムでは、前記基準周期の指数と前記第1クロック又は前記第2クロックのパルス数から演算される境界と、パルスの位置とを比較して、パルスの位置が前記境界の前に位置する場合と、パルスの位置が前記境界の後に位置する場合とでパルスを間引く条件を相違させる、請求項4に記載のクロック制御回路。
  6. 演算装置と、
    前記演算装置とバスを介して接続される論理回路と、
    第1周期を有する第1クロックを前記演算装置に出力し且つ前記論理回路に前記第1周期以上の長さを有する第2周期を有し、少なくとも1つのパルスの配置が前記第1クロックのパルスの何れか1つの配置と一致するパルスを含む第2クロックを前記論理回路に出力するクロック制御回路と、を有し、前記クロック制御回路は、
    前記第1クロックと、前記第2クロックとを生成するクロック生成部と、
    前記第1クロック及び前記第2クロックが一致するタイミングを前記第1クロック及び前記第2クロックのパルスの配置から予測し、前記予測したタイミングと前記第1クロックのパルスの配置とから、前記パルスが一致するタイミングの前の前記第1クロックのパルスでラッチ可能なクロックイネーブルを生成するクロックイネーブル生成部と、
    を有する、半導体装置。
JP2015138118A 2015-07-09 2015-07-09 クロック制御回路及び半導体装置 Pending JP2017021539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015138118A JP2017021539A (ja) 2015-07-09 2015-07-09 クロック制御回路及び半導体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015138118A JP2017021539A (ja) 2015-07-09 2015-07-09 クロック制御回路及び半導体装置

Publications (1)

Publication Number Publication Date
JP2017021539A true JP2017021539A (ja) 2017-01-26

Family

ID=57888165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015138118A Pending JP2017021539A (ja) 2015-07-09 2015-07-09 クロック制御回路及び半導体装置

Country Status (1)

Country Link
JP (1) JP2017021539A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11177798B2 (en) 2019-09-19 2021-11-16 Kabushiki Kaisha Toshiba Control method and semiconductor integrated circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11177798B2 (en) 2019-09-19 2021-11-16 Kabushiki Kaisha Toshiba Control method and semiconductor integrated circuit
US11588475B2 (en) 2019-09-19 2023-02-21 Kabushiki Kaisha Toshiba Control method and semiconductor integrated circuit

Similar Documents

Publication Publication Date Title
KR102413712B1 (ko) 클록 신호의 레이턴시를 조정하기 위한 방법, 장치, 및 프로그램
US11281431B2 (en) Random number generating circuit and semiconductor apparatus
US8422619B2 (en) Clock frequency divider circuit, clock distribution circuit, clock frequency division method, and clock distribution method
JP6242228B2 (ja) クロック生成方法およびクロック生成回路
US8558589B2 (en) Fully digital method for generating sub clock division and clock waves
JP2013149310A5 (ja)
US20080263488A1 (en) Method for generating a skew schedule for a clock distribution network containing gating elements
US20100052740A1 (en) Clock signal frequency dividing circuit and clock signal frequency dividing method
JP2018112861A (ja) 乱数生成装置、集積回路
US6518788B2 (en) Logic circuit design method and logic circuit
JP2017021539A (ja) クロック制御回路及び半導体装置
CN104579295A (zh) 时钟动态切换电路及方法
EP2620834A1 (en) Modulated clock synchroniser
KR20160134586A (ko) 주파수 가변 클럭 생성기로 크리티컬 경로 수용
KR101541175B1 (ko) 지연선 기반 시간-디지털 변환기
TWI806340B (zh) 用於包括待測試的時序器件的流水線級的測試電路、測試方法和包括測試電路的計算系統
JP6485335B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP2013036960A (ja) 遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法
JP2009152886A (ja) クロック生成回路およびその使用方法
JP2012159371A (ja) スキャンチェーン回路、スキャンチェーン構築方法及び試験装置
US20130166269A1 (en) Simulation apparatus, simulation method, and recording medium
JP4691791B2 (ja) データ処理システム
JP2012182689A (ja) 半導体集積回路
Zhang Delay characterization in FPGA-based reconfigurable systems
JP6221433B2 (ja) 半導体集積回路