説明

クロック分周回路

【課題】入力クロック信号の立ち下がりの際に、出力クロック信号の立ち上げを可能とし、入力クロック信号を任意の有理数で表わされる分周比にて分周した出力クロック信号を得ること。
【解決手段】本発明は、演算器11、演算器12a、比較器108とを少なくとも備える。分子設定値112を分母設定値111で除した値である分周比で入力クロック信号109を分周する。演算器11は、入力クロック信号109に同期して入力信号の値を記録する。そして、生成した演算器出力値120を入力クロック信号109に応じて出力する。演算器12aは、演算器出力値120を出力する。比較器108は、演算器出力値120が分子設定値112と比較してハイ信号またはロウ信号を出力クロック信号121として出力する。演算器出力値120は帰還して演算器11に入力される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クロック分周回路に関し、特に入力クロック信号を任意の有理数で表わされる分周比で分周した出力クロック信号を生成するクロック分周回路に関する。
【背景技術】
【0002】
エミュレータにおいて、エミュレートする対象の回路が複数のクロックを使用している場合には、複数の分周回路を利用してエミュレートを行なう。入力クロック信号を、任意の有理数で表わされる分周比で分周した出力クロック信号を生成するクロック分周回路は、分周比の異なる出力クロック信号との立ち上がりタイミングは同じではないため、実際の動作とエミュレータでの動作が異なってしまい、実機にて問題になる場合がある。そのため、クロック分周回路の分周精度の向上が望まれている。
【0003】
図5は、特許文献1に開示されているクロック分周回路300の構成を示す図である。このクロック分周回路300は、入力クロック信号302をN/D分周する。ここで、N/Dは分周比であり、Nはその分子設定値、Dは分母設定値である。ただし、N及びDは、それぞれ任意の自然数であり、N≦DかつD!=0なる条件を満たすものとする。
【0004】
まず、クロック分周回路300の構成について説明する。クロック分周回路300は、図5に示すように、セレクタ307と、加算器308と、減算器316と、レジスタ309と、ラッチ313と、論理積回路314とから構成されている。
【0005】
セレクタ307は、分母設定値Dに対応する入力信号301と、値「0」に対応する入力信号304と、最上位ビット出力信号311とが入力される。ここで、最上位ビット出力信号311は、レジスタ309から出力されるレジスタ出力信号310の最上位ビットに対応する出力信号である。セレクタ307は、最上位ビット出力信号311の値が「1」の場合には、分母設定値Dに対応する入力信号301をセレクタ出力305として出力する。一方、最上位ビット出力信号311の値が「0」の場合には、入力信号304をセレクタ出力305として出力する。
【0006】
加算器308は、分子設定値Nに対応する入力信号320とレジスタ出力信号310とが入力され、加算結果に対応する加算器出力信号315を出力する。
【0007】
減算器316は、加算器出力信号315とセレクタ出力305とが入力され、加算器出力信号315に対応する値からセレクタ出力305に対応する値を減算して得られた値に対応する減算器出力信号306を出力する。
【0008】
レジスタ309は、減算器出力信号306、所定の初期値「2R−1」(ここで、変数Rは、後述する式(1)によって求められる値を表している)に対応する入力信号317、リセット信号318及び入力クロック信号302が入力され、レジスタ出力信号310を出力する。また、レジスタ出力信号310の最上位ビットは、最上位ビット出力信号311として出力される。
【0009】
すなわち、レジスタ309には、リセット信号318により初期値「2R−1」が設定される。また、入力クロック信号302に同期して減算器出力信号306が入力され、その減算器出力信号306に対応する値が記憶される。
【0010】
ラッチ313は、D端子に最上位ビット出力信号311が入力され、G端子に入力クロック信号302が入力される。そして、入力クロック信号302の値が「0」である間、最上位ビット出力信号311をラッチ出力信号312として出力する。
【0011】
一方、入力クロック信号302の値が「1」である間、入力クロック信号302の値が「0」から「1」に遷移した際に入力されていた最上位ビット出力信号311を保持し、ラッチ出力信号312として出力する。
【0012】
論理積回路314には、ラッチ出力信号312と、入力クロック信号302とが入力され、ラッチ出力信号312と入力クロック信号302の論理積(AND)をとり、その結果に対応する出力クロック信号303を生成し、出力する。
【0013】
ここで、各部のビット幅を、式(1)より算出される変数Rの値に基づいて設定する。

R=ceil(log(d)/log(2)) ・・・ (1)

なお、変数dは表現可能な最小のビット幅である。また、ceilは引き数より小さくない最小の整数値を返す関数であり、logは自然対数を返す関数である。
【0014】
従って、式(1)より、加算器308は、(R+1)ビット幅で構成され、減算器316は(R+1)ビット幅で構成され、セレクタ307はRビット幅で構成され、レジスタ309は(R+1)ビット幅で構成される。
【0015】
また、分子設定値Nに対応する入力信号320は、Rビット幅で構成されている。分母設定値Dに対応する入力信号301は、Rビット幅で構成されている。
【0016】
加算器出力信号315は、(R+1)ビット幅で構成されている。減算器出力信号306は、(R+1)ビット幅で構成されている。セレクタ出力305は、Rビット幅で構成されている。また、レジスタ出力信号310は、(R+1)ビット幅で構成されている。最上位ビット出力信号311は1ビット幅で構成されている。
【0017】
次に、クロック分周回路300の動作について具体的に説明する。図6は、図5に示すクロック分周回路300において、N=3、D=5とし、N/D=3/5分周を行なった場合の動作を示すタイミング図である。なお、この場合には式(1)より、R=3(=ceil(log(5)/log(2)))となる。以下では、入力クロック信号302の立ち上がりから1周期を1サイクルとし、各サイクルをt1、t2、t3、・・・、と記載する。
【0018】
まず、リセット信号318がハイになり、レジスタ309には、入力信号317によって初期値「7」(=2R−1、R=3)が設定される。
【0019】
サイクルt1においては、レジスタ309は、上述の初期値「7」(2進数表記で「0111」)に対応するレジスタ出力信号310を出力する。このとき、最上位ビット出力信号311の値は「0」となる。
【0020】
ラッチ313は、入力クロック信号302が「1」に遷移した際の最上位ビット出力信号311の値「0」を取り込んで保持する。そして、入力クロック信号302の値が「1」の間、保持した値「0」に対応するラッチ出力信号312を出力する。
【0021】
加算器308は、レジスタ出力信号310の値「7」と、分子設定値Nに対応する入力信号320の値「3」を加算し、加算結果である値「10」(2進数表記で「1010」)に対応する加算器出力信号315を出力する。
【0022】
セレクタ307は、最上位ビット出力信号311の値が「0」であるため、入力信号304の値「0」を選択して、セレクタ出力305として出力する。
【0023】
減算器316は、加算器出力信号315の値「10」からセレクタ出力305の値「0」を減算し、減算結果である値「10」に対応する減算器出力信号306を出力する。
【0024】
次のサイクルt2においては、レジスタ309は、減算器出力信号306の値「10」を記憶するとともに、値「10」に対応するレジスタ出力信号310を出力する。このとき、最上位ビット出力信号311の値は「1」となる。
【0025】
ラッチ313は、入力クロック信号302が「1」に遷移した際の最上位ビット出力信号311の値「0」を取り込んで保持する。そして、入力クロック信号302の値が「1」の間、保持した値「0」をラッチ出力信号312として出力する。
【0026】
また、入力クロック信号302の値が「0」の間、最上位ビット出力信号311の値は「1」であるので、ラッチ出力信号312の値は「1」となる。
【0027】
加算器308は、レジスタ出力信号310の値「10」と分子設定値Nに対応する入力信号320の値「3」を加算し、加算結果である値「13」に対応する加算器出力信号315を出力する。
【0028】
セレクタ307は、最上位ビット出力信号311の値が「1」であるため、分母設定値Dに対応する入力信号301の値「5」を選択して、セレクタ出力305として出力する。
【0029】
減算器316は、加算器出力信号315の値「13」からセレクタ出力305の値「5」を減算し、減算結果である値「8」(二進数表記で「1000」)に対応する減算器出力信号306を出力する。
【0030】
次のサイクルt3においては、レジスタ309は、減算器316からの減算器出力信号306の値「8」を記憶するとともに、値「8」に対応するレジスタ出力信号310を出力する。このとき、最上位ビット出力信号311の値は「1」となる。
【0031】
ラッチ313は、入力クロック信号302が「1」に遷移した際の最上位ビット出力信号311の値「1」を取り込んで保持する。そして、入力クロック信号302の値が「1」の間、保持した値「1」に対応するラッチ出力信号312を出力する。
【0032】
また、入力クロック信号302の値が「0」の間、最上位ビット出力信号311の値は「1」であるので、ラッチ出力信号312の値は「1」となる。
【0033】
加算器308は、レジスタ出力信号310の値「8」と分子設定値Nに対応する入力信号320の値「3」を加算し、加算結果である値「11」に対応する加算器出力信号315を出力する。
【0034】
セレクタ307は、最上位ビット出力信号311の値が「1」であるため、分母設定値Dに対応する入力信号301の値「5」を選択して、セレクタ出力305として出力する。
【0035】
減算器316は、加算器出力信号315の値「11」からセレクタ出力305の値「5」を減算し、減算結果である値「6」(二進数表記で「0110」)に対応する減算器出力信号306を出力する。
【0036】
次のサイクルt4においては、レジスタ309は、減算器出力信号306の値「6」を記憶するとともに、値「6」に対応するレジスタ出力信号310を出力する。このとき、最上位ビット出力信号311の値は「0」となる。
【0037】
ラッチ313は、入力クロック信号302が「1」に遷移した際の最上位ビット出力信号311の値「1」を取り込んで保持する。そして、入力クロック信号302の値が「1」の間、保持した値「1」に対応するラッチ出力信号312を出力する。
【0038】
また、入力クロック信号302の値が「0」の間、最上位ビット出力信号311の値は「0」であるので、ラッチ出力信号312の値は「0」となる。
【0039】
加算器308は、レジスタ出力信号310の値「6」と分子設定値Nに対応する入力信号320の値「3」を加算し、加算結果である値「9」に対応する加算器出力信号315を出力する。
【0040】
セレクタ307は、最上位ビット出力信号311の値が「0」であるため、分母設定値Dを示す入力信号304の値「0」を選択して、セレクタ出力305として出力する。
【0041】
減算器316は、加算器出力信号315の値「9」からセレクタ出力305の値「0」を減算し、減算結果である値「9」(二進数表記で「1001」)に対応する減算器出力信号306を出力する。
【0042】
次のサイクルt5においては、レジスタ309は、減算器出力信号306の値「9」を記憶するとともに、値「9」に対応するレジスタ出力信号310を出力する。このとき、最上位ビット出力信号311の値は「1」となる。
【0043】
ラッチ313は、入力クロック信号302が「1」に遷移した際の最上位ビット出力信号311の値「0」を取り込んで保持する。そして、入力クロック信号302の値が「1」の間、保持した値「0」に対応するラッチ出力信号312を出力する。
【0044】
また、入力クロック信号302の値が「0」の間、最上位ビット出力信号311の値は「1」であるので、ラッチ出力信号312の値は「1」となる。
【0045】
加算器308は、レジスタ出力信号310の値「9」と、分子設定値Nに対応する入力信号320の値「3」を加算し、加算結果である値「12」に対応する加算器出力信号315を出力する。
【0046】
セレクタ307は、最上位ビット出力信号311の値が「1」であるため、分母設定値Dに対応する入力信号301の値「5」を選択して、セレクタ出力305として出力する。
【0047】
減算器316は、加算器出力信号315の値「12」からセレクタ出力305の値「5」を減算し、減算結果である値「7」(二進数表記で「0111」)に対応する減算器出力信号306を出力する。
【0048】
次のサイクルt6において、レジスタ309は、減算器316からの減算器出力信号306の値「7」を記憶するとともに、値「7」に対応するレジスタ出力信号310を出力する。このとき、最上位ビット出力信号311の値は「0」となる。
【0049】
ラッチ313は、入力クロック信号302が「1」に遷移した際の最上位ビット出力信号311の値「1」を取り込んで保持する。そして、入力クロック信号302の値が「1」の間、保持した値「1」に対応するラッチ出力信号312を出力する。
【0050】
また、入力クロック信号302の値が「0」の間、最上位ビット出力信号311の値は「0」であるので、ラッチ出力信号312の値は「0」となる。
【0051】
加算器308は、レジスタ出力信号310の値「7」と分子設定値Nに対応する入力信号320の値「3」を加算し、加算結果である値「10」に対応する加算器出力信号315を出力する。
【0052】
セレクタ307は、最上位ビット出力信号311の値が「0」であるため、入力信号304の値「0」を選択して、セレクタ出力305として出力する。
【0053】
減算器316は、加算器出力信号315の値「10」からセレクタ出力305の値「0」を減算し、減算結果である値「10」(「1010」(二進数表記))に対応する減算器出力信号306を出力する。
【0054】
次のサイクルt7において、レジスタ309は、減算器316からの減算器出力信号306の値「10」を記憶するとともに、値「10」に対応するレジスタ出力信号310を出力する。このとき、最上位ビット出力信号311の値は「1」となる。
【0055】
その後、サイクルt1乃至t5で説明した一連の動作が繰り返し実行される。これにより、レジスタ出力信号310の値は、図6に示したように、出力パターン{7、10、8、6、9}が繰り返されることとなる。
【0056】
また、最上位ビット出力信号311の値は、図6に示すように出力パターン{0、1、1、0、1}が繰り返されることとなる。
【先行技術文献】
【特許文献】
【0057】
【特許文献1】特開2006−148807号公報
【発明の概要】
【発明が解決しようとする課題】
【0058】
ところが、上述のクロック分周回路300では、入力クロック信号を任意の有理数で表わされる分周比で分周した出力クロック信号を生成するにあたり、所望の出力クロック信号が出力できない場合がある。以下でその理由を説明する。
【0059】
クロック分周回路300においては、図5に示すように、出力クロック信号303は、ラッチ出力信号312及び入力クロック信号302を入力とする、論理積回路314の出力となっている。
【0060】
よって、論理積回路314は、ラッチ出力信号312がハイの場合には、入力クロック信号302と同じ状態の信号を出力クロック信号303として出力する。そのため、出力クロック信号303と入力クロック信号302の立ち上がりタイミングは同じになる。
【0061】
従って、入力クロック信号302が立ち下がるタイミングにて、出力クロック信号303を立ち上げることが原理的にできない。従って、実際には実現できない分周比が存在する。
【課題を解決するための手段】
【0062】
本発明の一態様であるクロック分周回路は、入力クロック信号に同期して入力信号の値を記録し、前記入力信号、第1の設定値及び第2の設定値に基づいて生成された第1の値を前記入力クロック信号に応じて出力する第1の演算器と、前記第1の値、第3の設定値及び第4の設定値に基づいて生成された第2の値を出力する第2の演算器と、前記第2の値と第5の設定値とを比較してハイ信号またはロウ信号を出力クロック信号として出力する比較器とを少なくとも備え、前記第2の値は前記第1の演算器に帰還して前記入力信号の値となり、前記入力クロック信号を、前記第5の設定値を前記第1の設定値で除した値である分周比で分周した前記出力クロック信号を出力するものである。
【0063】
本発明によれば、入力クロック信号の立ち下がりの際に、出力クロック信号を立ち上げることができる。これにより、入力クロック信号を任意の分周比にて分周した出力クロック信号を得ることができる。
【発明の効果】
【0064】
本発明によれば、入力クロック信号の立ち下がりの際に、出力クロック信号を立ち上げることができる。これにより、入力クロック信号を任意の有理数で表わされる分周比にて分周した出力クロック信号を得ることができる。
【図面の簡単な説明】
【0065】
【図1】実施の形態1にかかるクロック分周回路のブロック図である。
【図2】実施の形態1にかかるクロック分周回路の動作を表すタイミング図である。
【図3】実施の形態2にかかるクロック分周回路のブロック図である。
【図4】実施の形態2にかかるクロック分周回路の動作を表すタイミング図である。
【図5】特許文献1に開示されたクロック分周回路のブロック図である。
【図6】特許文献1に開示されたクロック分周回路の動作を表すタイミング図である。
【発明を実施するための形態】
【0066】
以下、図面を参照して本発明の実施の形態について説明する。
実施の形態1
まず、実施の形態1にかかるクロック分周回路100について説明する。このクロック分周回路100は、分子設定値をA、分母設定値をBとする、分周比A/Bにて入力クロック信号を分周した出力クロック信号を得ることができる。すなわち、入力クロック信号の周波数をFI、出力クロック信号の周波数をFOとすると、式(2)の関係が成立する。

FO=FI×B/A ・・・・・(2)

なお、分子設定値A及び分母設定値Bは任意の自然数であり、B≦AかつA>0なる条件を満たすものとする。
【0067】
クロック分周回路100について説明する。図1は、クロック分周回路100の構成を示すブロック図である。クロック分周回路100は、図1に示すように、演算器11、演算器12a、比較器108により構成される。
【0068】
演算器11は、レジスタ101、セレクタ103及び減算器104により構成される。
【0069】
レジスタ101は、R端子にリセット信号110が入力される。クロック端子には、入力クロック信号109が入力される。D端子には、演算器出力値120が入力される。そして、Q端子から減算器104へレジスタ出力値113を出力する。
【0070】
セレクタ103は分母設定値111及び分母設定値の2倍の値114が入力される。S端子には入力クロック信号109が入力される。そして、減算器104へセレクタ出力値115を出力する。
【0071】
減算器104は、レジスタ出力値113及びセレクタ出力値115が入力され、演算器12aへ演算器出力値116を出力する。
【0072】
演算器12aは、加算器106及びセレクタ107により構成される。
【0073】
加算器106は、演算器出力値116及び分子設定値の2倍の値117が入力され、セレクタ107へ加算器出力値118を出力する。
【0074】
セレクタ107は、演算器出力値116及び加算器出力値118が入力され、レジスタ101のD端子及び比較器108へ演算器出力値120を出力する。
【0075】
比較器108は、演算器出力値120及び分子設定値112が入力され、出力クロック信号121を出力する。
【0076】
次に、クロック分周回路100の動作について説明する。このクロック分周回路100の動作原理は、以下の第1〜4の処理を繰り返すことで、入力クロック信号109を分周比A/Bで分周した出力クロック信号121を得ることができる。ここで、(分母設定値111)=Bであり、(分子設定値112)=Aである。よって、(分母設定値の2倍の値114)=2B、(分子設定値の2倍の値117)=2Aとなる。
【0077】
第1の処理は演算器11において行われる。レジスタ101は、リセット信号110がハイの場合には、入力クロック信号109が立ち下がる際に、レジスタ101に入力されている演算器出力値120の値を記録して、レジスタ出力値113として出力する。一方、リセット信号110がロウの場合には、レジスタ101は値「0」を記録して、レジスタ出力値113として出力する。
【0078】
セレクタ103は、入力クロック信号109がロウである場合には、分母設定値111をセレクタ出力値115として減算器104へ出力する。一方、入力クロック信号109がハイである場合には、セレクタ103は、分母設定値の2倍の値114をセレクタ出力値115として減算器104へ出力する。
【0079】
減算器104は、レジスタ出力値113からセレクタ出力値115を減じた値を、演算器出力値116として演算器12aに出力する。
【0080】
従って、入力クロック信号109がロウの場合には、演算器出力値116は式(3)で表わされる。

(演算器出力値116)=(レジスタ出力値113)−(分母設定値111)
=(レジスタ出力値113)−B ・・・ (3)
【0081】
一方、入力クロック信号109がハイの場合には、演算器出力値116は式(4)で表わされる。

(演算器出力値116)=(レジスタ出力値113)−(分母設定値の2倍の値114)
=(レジスタ出力値113)−2B ・・・ (4)
【0082】
第2の処理は、演算器12aにおいて行われる。加算器106は、演算器出力値116に分子設定値の2倍の値117を加えた値を、加算器出力値118としてセレクタ107へ出力する。
【0083】
セレクタ107は、演算器出力値116が0未満である場合には、加算器出力値118を演算器出力値120として出力する。従って、この場合の演算器出力値120は、式(5)で表わされる。

(演算器出力値120)=(演算器出力値116)+(分子設定値の2倍の値117)
=(演算器出力値116)+2A ・・・ (5)

【0084】
一方、演算器出力値116が0以上である場合には、セレクタ107は、演算器出力値116を演算器出力値120として出力する。
【0085】
第3の処理は、比較器108において行われる。比較器108では、演算器出力値120と分子設定値112とが比較され、(演算器出力値120)≧Aの場合には出力クロック信号121はハイとなる。一方、(演算器出力値120)<Aの場合には出力クロック信号121はロウとなる。
【0086】
第4の処理では、レジスタ101は、入力クロック信号109の立ち下りの際に演算器出力値120を記録する。そして、その記録した値をレジスタ出力値113として出力する。
【0087】
さらに、クロック分周回路100の動作について、具体的に説明する。図2は、クロック分周回路100において、入力クロック信号を7/2分周した出力クロック信号を生成する場合のタイミング図である。クロック分周回路100の動作条件については、レジスタ出力値113、セレクタ出力値115、演算器出力値116、加算器出力値118、演算器出力値120、分母設定値111、分母設定値の2倍の値114、分子設定値112及び分子設定値の2倍の値117のビット幅は5ビットである。
【0088】
ここで、分周比は7/2であるので、A=7、B=2である。よって、分母設定値111の値は「2」、分子設定値112の値は「7」、分母設定値の2倍の値114は「4」、分子設定値の2倍の値117は「14」となる。
【0089】
また、入力クロック信号109の半周期を1サイクルとして、図2に示すサイクルT1が開始する前に、リセット信号110をロウからハイに遷移させ、レジスタ101には初期値「0」を設定する。また、サイクルT1以降におけるリセット信号110はハイとする。
【0090】
図2に示す各サイクルにおける演算器出力値120については、入力クロック信号109の状態と演算器出力値116の状態との組み合わせにより、以下に示す分類1〜4に場合分けして、それぞれの分類ごとに、数式を用いて表わすことができる。
【0091】
分類1は、入力クロック信号109がハイ、かつ演算器出力値116が0未満である場合であり、図2に示すサイクルT1、T7及びT15が該当する。ここでは、サイクルT1を例として動作を説明する。
【0092】
演算器11では第1の処理が行われる。ここで、レジスタ101の初期値は「0」であるので、レジスタ出力値は「0」となる。よって、式(4)により、演算器出力値116は「−4」となる。
【0093】
演算器12aでは第2の処理が行われる。演算器出力値116は「−4」であるので、式(5)により、演算器出力値120は「10」となる。
【0094】
すなわち、分類1における演算器出力値120は、レジスタ出力値113から分母設定値の2倍の値114である「4」を減じ、さらに分子設定値の2倍の値117である「14」を加算した値となるので、式(6)で表わされる。

(演算器出力値120)=(レジスタ出力値113)+10 ・・・(6)

【0095】
分類2は、入力クロック信号109がロウ、かつ演算器出力値116が0以上となる場合であり、図2に示すサイクルT2、T4、T6、T8、T10、T12及びT16が該当する。ここでは、サイクルT2を例として動作を説明する。
【0096】
演算器11では第1の処理が行われる。ここで、レジスタ101に記録されている値は「10」であるので、レジスタ出力値113は「10」となる。よって、式(3)により、演算器出力値116は「8」となる。
【0097】
演算器12aでは第2の処理が行われる。演算器出力値116は「8」であるので、演算器出力値120も「8」となる。
【0098】
すなわち、分類2における演算器出力値120は、レジスタ出力値113から分母設定値111である「2」を減じた値となるので、式(7)で表わされる。

(演算器出力値120)=(レジスタ出力値113)−2 ・・・(7)
【0099】
分類3は、入力クロック信号109がハイ、かつ演算器出力値116が0以上となる場合であり、図2に示すサイクルT3、T5、T9、T11及びT13が該当する。ここでは、サイクルT3を例として動作を説明する。
【0100】
演算器11では第1の処理が行われる。ここで、レジスタ101に記録されている値は「10」であるので、レジスタ出力値113は「10」となる。よって、式(4)により、演算器出力値116は「6」となる。
【0101】
演算器12aでは第2の処理が行われる。演算器出力値116の値は「6」であるので、演算器出力値120も「6」となる。
【0102】
すなわち、分類3における演算器出力値120は、レジスタ出力値113から分母設定値の2倍の値114である「4」を減じた値となるので、式(8)で表わされる。

(演算器出力値120)=(レジスタ出力値113)−4 ・・・(8)
【0103】
分類4は、入力クロック信号109がロウ、かつ演算器出力値116が0未満となる場合であり、図2に示すサイクルT14が該当する。以下、サイクルT14を例として動作を説明する。
【0104】
演算器11では第1の処理が行われる。ここで、レジスタ101に記録されている値は「0」であるので、レジスタ出力値113は「0」となる。よって、式(3)により、演算器出力値116は「−2」となる。
【0105】
演算器12aでは第2の処理が行われる。演算器出力値116は「−2」であるので、式(5)により、演算器出力値120は「12」となる。
【0106】
すなわち、分類4における演算器出力値120は、レジスタ出力値113から分母設定値111である「2」を減じ、さらに分子設定値の2倍の値117である「14」を加えた値となるので、式(9)で表わされる。

(演算器出力値120)=(レジスタ出力値113)+12 ・・・(9)
【0107】
次に各サイクルにおける動作について説明する。まずサイクルT1では、分類1の説明で例示したように、演算器出力値120は「10」となる。第3の処理が比較器108で行われ、(演算器出力値120である「10」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0108】
次のサイクルT2では、分類2の動作を行う。分類2の説明で例示したように、演算器出力値120の値は「8」となる。第3の処理が比較器108で行われ、(演算器出力値120である「8」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0109】
次のサイクルT3では、分類3の動作を行う。分類3の説明で例示したように、演算器出力値120の値は「6」となる。第3の処理が比較器108で行われ、(演算器出力値120である「6」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0110】
次のサイクルT4では、分類2の動作を行う。レジスタ101には「6」が記録されているので、式(7)より、演算器出力値120の値は「4」となる。第3の処理が比較器108で行われ、(演算器出力値120である「4」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0111】
次のサイクルT5では、分類3の動作を行う。レジスタ101には「6」が記録されているので、式(8)より、演算器出力値120の値は「2」となる。第3の処理が比較器108で行われ、(演算器出力値120である「2」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0112】
次のサイクルT6では、分類2の動作を行う。レジスタ101には「2」が記録されているので、式(7)より、演算器出力値120の値は「0」となる。第3の処理が比較器108で行われ、(演算器出力値120である「0」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0113】
次のサイクルT7では、分類1の動作を行う。レジスタ101には「2」が記録されているので、式(6)より、演算器出力値120の値は「12」となる。第3の処理が比較器108で行われ、(演算器出力値120である「12」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0114】
次のサイクルT8では、分類2の動作を行う。レジスタ101には「12」が記録されているので、式(7)より、演算器出力値120の値は「10」となる。第3の処理が比較器108で行われ、(演算器出力値120である「10」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0115】
次のサイクルT9では、分類3の動作を行う。レジスタ101には「12」が記録されているので、式(8)より、演算器出力値120の値は「8」となる。第3の処理が比較器108で行われ、(演算器出力値120である「8」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0116】
次のサイクルT10では、分類2の動作を行う。レジスタ101には「8」が記録されているので、式(7)より、演算器出力値120の値は「6」となる。第3の処理が比較器108で行われ、(演算器出力値120である「6」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0117】
次のサイクルT11では、分類3の動作を行う。レジスタ101には「8」が記録されているので、式(8)より、演算器出力値120の値は「4」となる。第3の処理が比較器108で行われ、(演算器出力値120である「4」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0118】
次のサイクルT12では、分類2の動作を行う。レジスタ101には「4」が記録されているので、式(7)より、演算器出力値120の値は「2」となる。第3の処理が比較器108で行われ、(演算器出力値120である「2」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0119】
次のサイクルT13では、分類3の動作を行う。レジスタ101には「4」が記録されているので、式(8)より、演算器出力値120の値は「0」となる。第3の処理が比較器108で行われ、(演算器出力値120である「0」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0120】
次のサイクルT14では、分類4の動作を行う。分類4の説明で例示したように、演算器出力値120の値は「12」となる。第3の処理が比較器108で行われ、(演算器出力値120である「12」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0121】
次のサイクルT15は、サイクルT1と同じ状態となるので、以降のサイクルでは、サイクルT1〜T14の動作が繰り返される。従って、入力クロック信号の7周期中に出力クロック信号は、7/2分周された一周期分のクロックを出力する。
【0122】
従って、本構成のクロック分周回路100によれば、入力クロック信号の立ち下がりの際に、出力クロック信号を立ち上げることができる。これにより、入力クロック信号を任意の有理数で表わされる分周比にて分周した出力クロック信号を得ることができる。
【0123】
実施の形態2
実施の形態2にかかるクロック分周回路200の構成について説明する。図3は、クロック分周回路200の構成を示すブロック図である。クロック分周回路200は、図3に示すように、図1における演算器12aに代えて、演算器12bを設けている。
【0124】
演算器12bは、セレクタ123及び加算器125により構成される。
【0125】
セレクタ123は、分子設定値の2倍の値117及び「0」値122が入力される。S端子には、演算器出力値116が入力される。そして、加算器125にセレクタ出力値124を出力する。
【0126】
加算器125は、演算器出力値116及びセレクタ出力値124が入力され、レジスタ101のD端子及び比較器108へ演算器出力値120を出力する。その他の構成は、図1と同様であるので、説明を省略する。
【0127】
次に、クロック分周回路200の動作について説明する。このクロック分周回路200の動作原理は、以下の第5〜8の処理を繰り返すことで、入力クロック信号を分周比A/Bにて分周した出力クロック信号121を得ることができる。
【0128】
第5の処理は、実施の形態1における第1の処理と同様であるので説明を省略する。
【0129】
第6の処理は、演算器12bにおいて行われる。セレクタ123は、演算器出力値116が0以上である場合には、「0」値122をセレクタ出力値124として出力する。
【0130】
一方、演算器出力値116が0未満である場合には、セレクタ123は、分子設定値の2倍の値117をセレクタ出力値124として出力する。
【0131】
加算器125は、演算器出力値116とセレクタ出力値124とを加算した値を、演算器出力値120として出力する。
【0132】
すなわち、演算器12bは、演算器出力値116が0以上である場合には、演算器出力値116を演算器出力値120として出力する。
【0133】
一方、演算器出力値116が0未満である場合には、上述の式(5)で表わされる演算器出力値120を出力する。
【0134】
従って、第6の処理と、実施の形態1にかかる第2の処理とは、結果として同様の処理を行う。
【0135】
第7の処理は、実施の形態1における第3の処理と同様であるので説明を省略する。
【0136】
第8の処理は、実施の形態1における第4の処理と同様であるので説明を省略する。
【0137】
すなわち、クロック分周回路200は、実施の形態1にかかるクロック分周回路100と同様の動作を行う。
【0138】
さらに、クロック分周回路200の動作について、具体的に説明する。図4は、クロック分周回路200において、入力クロック信号を7/2分周した出力クロック信号を生成する場合のタイミング図である。クロック分周回路200動作条件については、セレクタ出力値124、0値122のビット幅は5ビットである。その他の条件については、実施の形態1と同様であるので説明を省略する。
【0139】
各サイクルでの演算器出力値120については、入力クロック信号109の状態と演算器出力値116の状態との組み合わせにより、分類5〜8として場合分けして、それぞれの分類ごとに、数式を用いて表わすことができる。
【0140】
分類5は、実施の形態1における分類1と同じく、入力クロック信号109がハイ、演算器出力値116が0未満となる場合であり、図4に示すサイクルT1、T7及びT15が該当する。ここでは、サイクルT1を例として、実施の形態1と過程が異なる動作について説明する。
【0141】
セレクタ123は、演算器出力値116が「−4」であるので、分子設定値の2倍の値117である「14」を、セレクタ出力値124として加算器125へ出力する。
【0142】
加算器125は、演算器出力値116である「−4」にセレクタ出力値124である「14」を加えた値「10」を、演算器出力値120として、比較器108及びレジスタ101のD端子へ出力する。
【0143】
すなわち、分類5における演算器出力値120は、レジスタ出力値113から分母設定値の2倍の値114である「4」を減じ、さらに分子設定値の2倍の値117である「14」を加算した値となるので、上述の式(6)で表わされる。つまり、分類1と分類5とは、同様の演算器出力値120を出力する。
【0144】
分類6は、実施の形態1における分類2と同じく、入力クロック信号109がロウ、演算器出力値116が0以上となる場合であり、図4に示すサイクルT2、T4、T6、T8、T10、T12及びT16が該当する。ここでは、サイクルT2を例として、実施の形態1と過程が異なる動作について説明する。
【0145】
セレクタ123は、演算器出力値116が「8」であるので、0値122である「0」を、セレクタ出力値124として加算器125へ出力する。
【0146】
加算器125は、演算器出力値116である「8」にセレクタ出力値124である「0」を加えた値「8」を、演算器出力値120として比較器108及びレジスタ101のD端子へ出力する。
【0147】
すなわち、分類6における演算器出力値120は、レジスタ出力値113から分母設定値111である「2」を減じた値となるので、上述の式(7)で表わされる。つまり、分類2と分類6とは、同様の演算器出力値120を出力する。
【0148】
分類7は、実施の形態1における分類3と同じく、入力クロック信号109がハイ、演算器出力値116が0以上となる場合であり、図4に示すサイクルT3、T5、T9、T11及びT13が該当する。ここでは、サイクルT3を例として、実施の形態1と過程が異なる動作について説明する。
【0149】
セレクタ123は、演算器出力値116が「6」であるので、0値122である「0」をセレクタ出力値124として加算器125へ出力する。
【0150】
加算器125は、演算器出力値116の値「6」にセレクタ出力値124の値「0」を加えた値「6」を、演算器出力値120として比較器108及びレジスタ101のD端子へ出力する。
【0151】
すなわち、分類7における演算器出力値120は、レジスタ出力値113から分母設定値の2倍の値114である「4」を減じた値となるので、上述の式(8)で表わされる。つまり、分類3と分類7とは、同様の演算器出力値120を出力する。
【0152】
分類8は、実施の形態1における分類4と同じく、入力クロック信号109がロウ、演算器出力値116が0未満となる場合であり、図4に示すサイクルT14が該当する。ここでは、サイクルT14を例として、実施の形態1と過程が異なる動作について説明する。
【0153】
セレクタ123は、演算器出力値116が「−2」であるので、分子設定値の2倍の値117である「14」を、セレクタ出力値124として加算器125へ出力する。
【0154】
加算器125は、演算器出力値116の値「−2」にセレクタ出力値124の値「14」を加えた値「12」を、演算器出力値120として比較器108及びレジスタ101のD端子へ出力する。
【0155】
すなわち、分類8における演算器出力値120は、レジスタ出力値113から分母設定値111である「2」を減じ、さらに分子設定値の2倍の値117である「14」を加えた値となるので、上述の式(9)で表わされる。つまり、分類4と分類8とは、同様の演算器出力値120を出力する。
【0156】
次に各サイクルにおける動作について説明する。まずサイクルT1では、分類5の動作を行う。レジスタ101には「0」が記録されているので、式(6)より、演算器出力値120の値は「10」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「10」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0157】
次のサイクルT2では、分類6の動作を行う。レジスタ101には「10」が記録されているので、式(7)より、演算器出力値120の値は「8」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「8」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0158】
次のサイクルT3では、分類7の動作を行う。レジスタ101には「10」が記録されているので、式(8)より、演算器出力値120の値は「6」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「6」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0159】
次のサイクルT4では、分類6の動作を行う。レジスタ101には「6」が記録されているので、式(7)より、演算器出力値120の値は「4」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「4」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0160】
次のサイクルT5では、分類7の動作を行う。レジスタ101には「6」が記録されているので、式(8)より、演算器出力値120の値は「2」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「2」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0161】
次のサイクルT6では、分類6の動作を行う。レジスタ101には「2」が記録されているので、式(7)より、演算器出力値120の値は「0」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「0」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0162】
次のサイクルT7では、分類5の動作を行う。レジスタ101には「2」が記録されているので、式(6)より、演算器出力値120の値は「12」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「12」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0163】
次のサイクルT8では、分類6の動作を行う。レジスタ101には「12」が記録されているので、式(7)より、演算器出力値120の値は「10」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「10」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0164】
次のサイクルT9では、分類7の動作を行う。レジスタ101には「12」が記録されているので、式(8)より、演算器出力値120の値は「8」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「8」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0165】
次のサイクルT10では、分類6の動作を行う。レジスタ101には「8」が記録されているので、式(7)より、演算器出力値120の値は「6」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「6」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0166】
次のサイクルT11では、分類7の動作を行う。レジスタ101には「8」が記録されているので、式(8)より、演算器出力値120の値は「4」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「4」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0167】
次のサイクルT12では、分類6の動作を行う。レジスタ101には「4」が記録されているので、式(7)より、演算器出力値120の値は「2」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「2」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0168】
次のサイクルT13では、分類7の動作を行う。レジスタ101には「4」が記録されているので、式(8)より、演算器出力値120の値は「0」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「0」)<(分子設定値112である「7」)となるので、出力クロック信号121はロウとなる。
【0169】
次のサイクルT14では、分類8の動作を行う。レジスタ101には「0」が記録されているので、式(9)より、演算器出力値120の値は「12」となる。比較器108は、演算器出力値120と分子設定値112を比較し、(演算器出力値120である「12」)>(分子設定値112である「7」)となるので、出力クロック信号121はハイとなる。
【0170】
次のサイクルT15は、サイクルT1と同じ状態となるので、以降のサイクルでは、サイクルT1〜T14が繰り返される。従って、入力クロック信号の7周期中に出力クロック信号は、7/2分周された一周期分のクロックを出力する。
【0171】
よって、クロック分周回路200における演算器出力値120は、実施の形態1にかかるクロック分周回路100と同様の値となる。
【0172】
従って、本構成のクロック分周回路200によれば、入力クロック信号の立ち下がりの際に、出力クロック信号を立ち上げることができる。これにより、入力クロック信号を任意の有理数で表わされる分周比にて分周した出力クロック信号を得ることができる。
【0173】
さらに、本構成のクロック分周回路200によれば、分子設定値の2倍の値117または「0」値122のいずれか一方をセレクタ123で選択して、加算器125に出力する。よって、セレクタ123の入力の一方を「0」にできるので、セレクタ123を論理積回路で構成することができ、実施の形態1にかかるクロック分周回路100よりも、回路素子数を少なくすることができる。
【0174】
その他の実施の形態
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、分周比については7/2に限られず、A=11、B=6とした11/6など、有理数で表わされる他の値をとることができる。
【0175】
また、クロック分周回路についても上述の構成に限られない。たとえば、同様の演算処理ができるのであれば、演算器11に代えて他の構成からなる演算器を用いてもよい。また、演算器12a及び演算器12bについても同様である。
【符号の説明】
【0176】
11 演算器 12a、12b 演算器
100 クロック分周回路
101 レジスタ 103 セレクタ 104 減算器
106 加算器 107 セレクタ 108 比較器
109 入力クロック信号 110 リセット信号
111 分母設定値 112 分子設定値 113 レジスタ出力値
114 分母設定値の2倍の値 115 セレクタ出力値
116 演算器出力値 117 分子設定値の2倍の値
118 加算器出力値 120 演算器出力値
121 出力クロック信号 122 「0」値
123 セレクタ 124 セレクタ出力値
125 加算器
200 クロック分周回路
300 クロック分周回路
301 入力信号 302 入力クロック信号 303 出力クロック信号
304 入力信号 305 セレクタ出力 306 減算器出力信号
307 セレクタ 308 加算器 309 レジスタ
310 レジスタ出力信号 311 最上位ビット出力信号
312 ラッチ出力信号 313 ラッチ 314 論理積回路
315 加算器出力信号 316 減算器
317 入力信号 318 リセット信号 320 入力信号

【特許請求の範囲】
【請求項1】
入力クロック信号に同期して入力信号の値を記録し、前記入力信号、第1の設定値及び第2の設定値に基づいて生成された第1の値を前記入力クロック信号に応じて出力する第1の演算器と、
前記第1の値、第3の設定値及び第4の設定値に基づいて生成された第2の値を出力する第2の演算器と、
前記第2の値と第5の設定値とを比較してハイ信号またはロウ信号を出力クロック信号として出力する比較器とを少なくとも備え、
前記第2の値は前記第1の演算器に帰還して前記入力信号の値となり、
前記入力クロック信号を、前記第5の設定値を前記第1の設定値で除した値である分周比で分周した前記出力クロック信号を出力するクロック分周回路。
【請求項2】
前記比較器は、前記第2の値が前記第5の設定値以上である場合には出力クロック信号としてハイ信号を出力し、前記第2の値が前記第5の設定値より小さい場合には前記出力クロック信号としてロウ信号を出力することを特徴とする、
請求項1に記載のクロック分周回路。
【請求項3】
前記第1の演算器は、
前記入力クロック信号がハイ信号である場合には前記入力信号の値から前記第1の設定値を減じた値を前記第1の値として出力し、前記入力クロック信号がロウ信号である場合には前記入力信号の値から前記第2の設定値を減じた値を前記第1の値として出力することを特徴とする、
請求項1または2に記載のクロック分周回路。
【請求項4】
前記第1の演算器は、
前記入力クロック信号に同期して前記入力信号の値を記録し、前記入力信号の値を第3の値として出力するレジスタと、
前記入力クロック信号がロウ信号である場合には前記第1の設定値を第4の値として出力し、前記入力クロック信号がハイ信号である場合には前記第2の設定値を前記第4の値として出力する第1のセレクタと、
前記第3の値から前記第4の値を減じた値を前記第1の値として出力する減算器とを備える、
請求項3に記載のクロック分周回路。
【請求項5】
前記レジスタはリセット信号により初期化され、値「0」を前記第1の値として出力することを特徴とする、
請求項4に記載のクロック分周回路。
【請求項6】
前記第2の演算器は、
前記第1の値が前記第4の設定値未満である場合には前記第1の値に前記第3の設定値を加えた値を前記第2の値として出力し、前記第1の値が前記第4の設定値以上である場合には前記第1の値を前記第2の値として出力することを特徴とする、
請求項1乃至5のいずれか一項に記載のクロック分周回路。
【請求項7】
前記第2の演算器は、
前記第1の値に前記第3の設定値を加えた値を第5の値として出力する第1の加算器と、
前記第1の値が前記第4の設定値未満である場合には前記第5の値を前記第2の値として出力し、前記第1の値が前記第4の設定値以上である場合には前記第1の値を前記第2の値として出力する第2のセレクタとを備える、
請求項6に記載のクロック分周回路。
【請求項8】
前記第2の演算器は、
前記第1の値が前記第4の設定値未満である場合には前記第3の設定値を第6の値として出力し、前記第1の値が前記第4の設定値以上である場合には値「0」を前記第6の値として出力する第3のセレクタと、
前記第1の値に前記第6の値を加えた値を前記第2の値として出力する第2の加算器とを備える、
請求項6に記載のクロック分周回路。
【請求項9】
前記第2の設定値は前記第1の設定値の2倍であることを特徴とする、
請求項1乃至8のいずれか一項に記載のクロック分周回路。
【請求項10】
前記第3の設定値は前記第5の設定値の2倍であることを特徴とする、
請求項1乃至9のいずれか一項に記載のクロック分周回路。
【請求項11】
前記第4の設定値は0であることを特徴とする、
請求項1乃至10のいずれか一項に記載のクロック分周回路。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−258761(P2010−258761A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−106173(P2009−106173)
【出願日】平成21年4月24日(2009.4.24)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】