以下、図面を参照して本発明を実施するための形態について説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付し、重複する説明を省略する。
図1は、本発明の第1の実施形態に係るスペクトラム拡散クロック発生(Spread Spectrum Clock Generator:SSCG)回路100の構成を示すブロック図である。図1のSSCG回路100はフラクショナルPLL回路として構成されている。
基準クロック発生器によって発生された基準クロック信号ref_ckは入力分周器11によって分周され、分周後の入力クロック信号comp_ckは位相周波数比較器1に入力される。
位相周波数比較器1は、入力クロック信号comp_ckと、後述する帰還信号fb_ckとの間の位相差を検出してチャージポンプ2に出力する。位相周波数比較器1は、位相比較手段として機能する。
チャージポンプ2は、位相差に応じて増減したチャージポンプ電圧をループフィルタ3に出力し、ループフィルタ3はチャージポンプ電圧に応じた制御電圧を電圧制御発振器(VCO)4に出力する。
電圧制御発振器4は、制御電圧に応じた周波数及び位相を有する出力クロック信号vco_ckを生成して出力する。電圧制御発振器4は電圧制御発振手段として機能する。
出力分周器12は、出力クロック信号vco_ckを他の回路による使用のために分周し、画素クロック信号pix_ckとして出力する。
SSCG回路100の後段には、例えば画像処理装置が接続され、画素クロック信号pix_ckは、画素処理装置で使用される。
電圧制御発振器4から位相周波数比較器1への帰還回路には、位相コントローラ5の制御下で動作する位相選択回路6と、固定された整数の分周比を有する分周器7とが設けられる。
位相選択回路6は、出力クロック信号vco_ckの立ち上がりエッジの位相を変化させることにより、出力クロック信号vco_ckの周期から変化した周期を有する移相クロック信号pi_outを生成して出力する。位相選択回路6は位相選択手段として機能する。
ここで、移相とは、位相を所定のタイミングでシフトさせること、又は、位相を延長、収縮させることを意味しており、移相量については、位相と区別するためシフト量と称することもある。
詳しくは、位相選択回路6は、出力クロック信号vco_ckのクロックの1周期を所定個数に等分した位相のうちのいずれかを選択し、選択された位相のタイミングで立ち上がる立ち上がりエッジを有する移相クロック信号pi_outを生成して出力する。
位相コントローラ5は、位相選択回路6を制御して、出力クロック信号vco_ckから周期が変化するように、位相選択回路6によって選択される移相クロック信号pi_outの立ち上がりエッジの位相を決定する。詳しくは、位相コントローラ5は、移相クロック信号pi_outの周期を出力クロック信号vco_ckの周期から予め決められた移相量Δph(上記等分された位相の整数倍)で変化させた長さにするように、移相クロック信号pi_outの立ち上がりエッジの位相を決定する。
分周器7は移相クロック信号pi_outを分周して、帰還信号fb_ckとして位相周波数比較器1に入力する。
本実施形態のSSCG回路に含まれるフラクショナルPLL回路は、帰還信号fb_ckの周波数及び位相が入力クロック信号comp_ckの周波数及び位相と一致するように、負帰還制御を行う。
さらに、本実施形態のフラクショナルPLL回路を構成するSSCG回路100は、位相選択回路6により出力クロック信号vco_ckの周期から変化した周期を有する移相クロック信号pi_outを生成している。これにより、分周器7の分周比を変化させることのみを動作原理とせず、有理数の分周比を実現することができる。
移相量Δphが正である場合、帰還信号fb_ckの周波数は入力クロック信号comp_ckの周波数よりも高くなり、移相量Δphが負である場合、帰還信号fb_ckの周波数は入力クロック信号comp_ckの周波数よりも低くなる。
さらに、本実施形態のSSCG回路100は、位相選択回路6により移相クロック信号pi_outの周期を変化させることにより、出力クロック信号vco_ckの周波数をSS変調することができる。
位相選択回路6は、出力クロック信号vco_ckの周期から変化した周期を有する移相クロック信号pi_outを生成する際に、さらに、出力クロック信号vco_ckの分周を行うことができる。本明細書では、位相選択回路6の分周比の設定値をdiv_puck=0,1,2,…nで表し、div_puck=nのとき、分周比はn+1であるとする。
また、出力分周器12が2以上の分周比を有する場合には、位相選択回路6はこの分周比を考慮して出力クロック信号vco_ckをさらに分周する。
本明細書では、出力分周器12の分周比の設定値をdiv__pll=0,1,2,…で表し、div_pll=nのとき、分周比はn+1であるとする。また、本明細書では、分周器7の分周比の設定値をdiv_fb=0,1,2,…で表し、div_fb=nのとき、分周比はn+1であるとする。
従って、出力分周器12へ入力される出力クロック信号vco_ckに対する、位相周波数比較器1へフィードバックされる帰還信号fb_ckの分周比は、位相選択回路6の分周比と、出力分周器12の分周比と、分周器7の分周比とを乗算したものになる。
出力分周器12は、例えば60MHz〜120MHzの周波数を有する出力クロック信号vco_ckと、5MHz〜40MHzの周波数を有する画素クロック信号pix_ckに分周する。
位相コントローラ5は、設定値演算部5a(図14参照)、変調開始部5b、シフト部5c、加算部5d,5e、マルチプレクサ5f、カウントレジスタ5g、三角波制御部5h、移相量算出部5i、シフト部5j、仮番号算出部5k,5l、選択位相制御部5m,5n、移相レジスタ5o等を備えている。なお、位相コントローラ5において、点線で囲まれた部分は、帰還信号周期外設定部5P、5Qであり、帰還信号周期外の際に用いられる。
詳しくは、位相コントローラ5の設定値演算部5a(図14参照)は、変調開始部5b、三角波制御部5h、移相量算出部5i、シフト部5jに接続されており、クロックによって変化しない固定値を出力する。詳細は図14とともに後述する。
変調開始部5bは、シフト部5cと、加算部5eと接続されている。変調開始部5bは、設定値演算部5aで設定されるカウント増分Δcountを、外部から入力される同期信号syncのタイミングに合わせて、シフト部5c及び加算部5eへ出力する。
カウントレジスタ5gは、SS変調クロックpuckが入力する設定値演算部5aと、マルチプレクサ5fと接続されている。カウントレジスタ5gは、設定値演算部5aで設定されるSS変調を行うための最小時間単位である、SS変調クロックpuckが入力されると、必要に応じて所定量遅延させて、SS変調クロックpuckのタイミングを規定するカウントタイミングcountを出力する。
加算部5eは、変調開始部5bと、カウントレジスタ5gと、マルチプレクサ5fとに接続されている。加算部5dは、変調開始部5bから所定の周期で出力されたカウント増分Δcountと、カウントレジスタ5gから出力されたカウントタイミングcountを受け取る。そして、SS変調クロックpuck に対応するカウントタイミングcount毎に、カウント値を、Δcountだけ増加させた、カウントcount(n)を出力する。
シフト部5cは、変調開始部5bと加算部5dとの間において、1ビットシフトさせることで、変調に用いる値として、カウント増分Δcountを2倍にする。
加算部5fは、シフト部5cと、カウントレジスタ5gと、マルチプレクサ5fとに接続されている。加算部5fは、変調開始部5bから出力され、シフト部5cで2倍にされたカウント増分Δcount×2と、カウントレジスタ5gから出力されたカウント値countを受け取る。そして、SS変調クロックpuckに対応するカウントタイミングcount毎に、カウント値をΔcountだけ増加させた、カウントcount(n)を出力する。
マルチプレクサ5fは、加算部5d,5eと、カウントレジスタ5gと、三角波制御回路5hと接続されている。マルチプレクサ5fは、例えばカウントcountの2回に1回のタイミングで、カウント値count(n)にint関数を掛けた値を整数値pixadrとして出力する。
三角波制御部5hは、加算部5eと、移相量算出部5iとに接続されている。また、三角波制御部5hは、加算部5eから出力された整数値pixadrを取得するとともに、設定値演算部5aから固定値である変動の最大値pi_ssd_maxを取得する。そして、整数値pixadrのタイミングで段階的に値が変化し、−pi_ssd_max〜0〜+pi_ssd_maxの範囲で値が略三角波状に変動する位相の変動移相量である第2の移相量)pi_ssdを設定して出力する。
移相量算出部5iは、三角波制御部5hと、仮番号算出部5lに接続されている。移相量算出部5iは、三角波制御部5hから出力された変動移相量pi_ssdを取得するとともに、設定値演算部5aから固定値である変位の中心値all_fracを取得する。移相量算出部5iは、加算機能を有しており、中心値である固定移相量all_frac(第1の移相量)を、変動移相量pi_ssd(第2の移相量)へ加算する。そして、固定移相量all_fracを中心値として、「all_frac−pi_ssd_max(=all_frac+pi_ssd_min)」〜all_frac〜「all_frac+pi_ssd_max」の範囲で値が略三角波に変化するSSプロファイル変調Δphを出力する。
移相レジスタ5oは、第1の仮番号算出部5lと、選択位相制御部5mと、位相コントローラ5の後段にある位相選択回路6に接続されている。移相レジスタ5oは、クロックpuckを所定量遅延させて、位相制御信号が入力されているときに、選択位相番号phaddを出力する。
第1の仮番号算出部5lは移相量算出部5iと、移相レジスタ5o接続されている。第1の仮番号算出部5lは、加算機能を有しており、移相量算出部5iから出力されたSSプロファイル変調Δphと、移相レジスタ5oから出力された選択位相信号phaddを取得して、仮の選択位相番号adddatを出力する。
シフト部5jは、移相量算出部5iと、第2の仮番号算出部5kとの間において、1ビットシフトさせることで、変調に用いる値として、SSプロファイル変調Δphを2倍にする。シフト部5c,5jは数値の2倍の処理のみを行うため、乗算器などの演算器は使用せず、例えば、配線のつなぎ替えなどによって処理を実行することができる。
第2の仮番号算出部5kはシフト部5jと、移相レジスタ5oに接続されている。第2の仮番号算出部5kは、加算機能を有しており、シフト部5jで2倍にされたSSプロファイル変調でΔph×2と、移相レジスタ5oから出力された選択位相信号phaddを取得して、仮の選択位相番号adddat1を出力する。
選択位相制御部5mは、仮番号算出部5l,5kと、移相レジスタ5oと、接続されている。選択位相制御部5mは、仮の選択位相番号adddatと、仮の選択位相番号adddat1とが入力され、区間に応じてどちらかの仮の番号adddat又はadddat1を選択位相信号phaddとして出力する。
選択位相制御部5nは、第1の仮番号算出部5lと、移相レジスタ5oと、接続されている。選択位相制御部5nは、帰還信号周期外である、選択位相番号が位相選択上限を超えたとき又は位相選択下限を下回った際に用いられ、選択位相番号adddatが入力され、仮の番号adddatを選択位相信号phadd1として出力する。
位相コントローラ5内でやりとりする各信号の詳細については、図12〜図19を参照して後述する。
図2、図3は、位相選択回路6によって選択される出力クロック信号vco_ckの位相を説明するための図である。本実施例では、位相選択回路6が出力クロック信号vco_ckのクロックの1周期を512個に等分した位相のいずれかを選択するものとする。1周期を512(n+1)個に等分した位相は、図2,図3において、順に、0〜511(n)として示す。
図2は、円を512個に等分割している状態を示している。図3は、図2の円周方向を横方向に引き伸ばしたタイミングチャートである。図3において、横軸は1つのクロック周期の出力クロック信号vco_ckの位相を示し、縦軸は、クロック信号のH/Lの状態を示す。
また、位相選択回路6は、任意の位相に立ち上がりエッジを挿入する位相挿入装置(phase interpolator)として機能する。図4〜図11を参照して、SSCG回路100のフラクショナルPLL回路として、任意の位相に立ち上がりエッジを挿入する動作について詳細に説明する。
<分周比=1、Δph>0の場合>
図4〜図7に示す例では、説明の簡単化のため、位相選択回路6,出力分周器12,及び分周器7の各分周比はいずれも1であるとする。すなわち、位相選択回路6の分周比の設定値div_puck=0,出力分周器12の分周比の設定値div_fb=0,分周器7の分周比の設定値div_pll=0であるとする。
図4は、図1の位相選択回路6で行われる位相シフトの例であって、移相量Δphが正である場合の位相シフトの様子を示すタイミングチャートである。
図4の横軸は、出力クロック信号vco_ckの位相を示す。ここで、図4の横軸は、出力クロック信号vco_ckのクロックの1周期を512個に等分した位相φを最小単位とする。以後、図5〜図11に亘って、位相φは全て同じ単位で表す。
図4の縦軸は、出力クロック信号vco_ck及び移相クロック信号pi_outのH/Lの状態を示す。
図4の場合、移相クロック信号pi_outの周期は、出力クロック信号vco_ckの周期から移相量Δphだけ増大する。すなわち、512+Δphになる。従って、移相クロック信号pi_outの各クロックの立ち上がりエッジは、クロックが進む毎に、出力クロック信号vco_ckの対応する各クロックの立ち上がりエッジから、移相量Δphずつ位相が増加して遅延する。
位相0の時点における、出力クロック信号vco_ckの最初のクロックvco_ck(0)と移相クロック信号pi_outの最初のクロックpi_out(0)の各立ち上がりエッジは一致しているものとする。このとき、移相クロック信号pi_outの第2クロックpi_out(1)の立ち上がりエッジは、出力クロック信号vco_ckの第2クロックvco_ck(1)の立ち上がりエッジから移相量Δphだけ遅延する。
移相クロック信号pi_outの第3クロックpi_out(2)の立ち上がりエッジは、出力クロック信号vco_ckの第3クロックvco_ck(2)の立ち上がりエッジから移相量Δphの2倍だけ遅延する。
以下同様に、移相クロック信号pi_outの第nクロックpi_out(n−1)の立ち上がりエッジは、出力クロック信号vco_ckの第nクロックvco_ck(n−1)の立ち上がりエッジから移相量Δphの(n−1)倍だけ遅延する。
図5は、図4の位相シフトを行う際に位相選択回路6によって選択される位相φについて説明するグラフである。図5において、横軸は出力クロック信号vco_ckのクロックのカウント数、縦軸は移相クロック信号pi_outの位相を示す。
位相選択回路6は、出力クロック信号vco_ckのクロックの1周期を512個に等分した位相0〜511のうちいずれかを、現在の位相φとして選択している。
図5に示すように、位相選択回路6は、出力クロック信号vco_ckのクロックが進む毎に、移相量Δphずつ増分した位相を新たな位相φとして選択する。なお、位相φを移相量Δphずつ増分した(遅延させた)ときには、増分後の位相φが出力クロック信号vco_ckの1周期未満である場合と、1周期以上になる場合とが発生する。
詳しくは、増分後の位相φが出力クロック信号vco_ckの1周期未満である場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジは、出力クロック信号vco_ckの次のクロックの周期内の該当する位相φに設定される。
例えば、図5において、増分後の位相φが511以下である場合がこのケースに該当する。図5では、この増分後の位相φが出力クロック信号vco_ckの1周期未満である場合の位相φの遅延を、黒丸及び黒点線矢印で示している。
一方、増分後の位相φが出力クロック信号vco_ckの1周期を超える場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジは、出力クロック信号vco_ckの2クロック後のクロック周期内の増分後の位相φから512を減算した位相φに設定される。例えば、図5において、増分後の位相φが512以上である場合がこのケースに該当する。
このように増分後の位相φがの出力クロック信号vco_ckの1周期を超える場合、例えば図4に示すように、移相クロック信号pi_outの第5クロックpi_out(4)の立ち上がりエッジは、出力クロック信号vco_ckの第5クロックvco_ck(4)ではなく、第6クロックvco_ck(5)の周期内にある。したがって、位相φは、出力クロック信号vco_ckの第6クロックvco_ck(5)の立ち上がりエッジから、mod(4×Δph,512)、すなわち、4×Δphを512で割ったときの余りだけ遅延する。
図5では、この増分後の位相φが出力クロック信号vco_ckの1周期を超える場合の位相φの遅延を白抜きの矢印で示している。すなわち、出力クロック信号vco_ckのクロックvco_ck(4),vco_ck(8),vco_ck(12)の点線の白丸で示す位相φを選択する代わりに、次のクロックvco_ck(5),vco_ck(9),vco_ck(13)の実線の白丸で示す位相φが選択される。
以上、図4,図5で説明したように位相φを選択することによって、移相クロック信号pi_outの各クロックpi_out(0),…,pi_out(n)の周期は、出力クロック信号vco_ckのクロックの周期から移相量Δphだけ増大された長さになる。すなわち、本実施例の場合、移相クロック信号pi_outの周期は512+Δphになる。
<分周比=1、Δph<0の場合>
図6は、先と同様に、位相選択回路6,出力分周器12,及び分周器7の各分周比がいずれも1、すなわち、div_puck=0,div_fb=0,div_pll=0である場合に、位相選択回路6で行われる位相シフトの例である。図6において、横軸は出力クロック信号vco_ckの位相を示し、縦軸は出力クロック信号vco_ck及び移相クロック信号pi_outのH/Lの状態を示す。
ここで、図6は、移相量Δphが負である場合の位相シフトの様子を示すタイミングチャートである。
図6の場合、移相クロック信号pi_outの周期は、出力クロック信号vco_ckの周期から移相量|Δph|ずつ短縮する(すなわち、512−|Δph|になる)。従って、移相クロック信号pi_outの各クロックの立ち上がりエッジは、クロックが進む毎に、出力クロック信号vco_ckの対応する各クロックの立ち上がりエッジから、移相量|Δph|ずつ位相が減少して先行する。
位相0の時点における、出力クロック信号vco_ckの最初のクロックvco_ck(0)と移相クロック信号pi_outの最初のクロックpi_out(0)の各立ち上がりエッジは一致しているものとする。このとき、移相クロック信号pi_outの第2クロックpi_out(1)の立ち上がりエッジは、出力クロック信号vco_ckの第2クロックvco_ck(1)の立ち上がりエッジから移相量|Δph|だけ先行する。
移相クロック信号pi_outの第3クロックpi_out(2)の立ち上がりエッジは、出力クロック信号vco_ckの第3クロックvco_ck(2)の立ち上がりエッジから移相量|Δph|の2倍だけ先行する。
以下同様に、移相クロック信号pi_outの第nクロックpi_out(n−1)の立ち上がりエッジは、出力クロック信号vco_ckの第nクロックvco_ck(n−1)の立ち上がりエッジから移相量|Δph|の(n−1)倍だけ先行する。
図7は、図6の位相シフトを行う際に位相選択回路6によって選択される位相φについて説明するグラフである。図7において、横軸は出力クロック信号vco_ckのクロックのカウント数、縦軸は移相クロック信号pi_outの位相を示す。
図7に示すように、位相選択回路6は、出力クロック信号vco_ckのクロックが進む毎に、移相量|Δph|ずつ先行させた位相φを新たな位相φとして選択する。
詳しくは、位相φを移相量|Δph|ずつ先行させても、先行させた位相が負にならない場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジは、出力クロック信号vco_ckの次のクロックの周期内の該当する位相φに設定される。
例えば、図7において、先行させた位相φが0以上である場合がこのケースに該当する。図7では、この先行後の位相φが出力クロック信号vco_ckの1周期未満である場合の位相φの先行を黒丸及び黒点線矢印で示している。
一方、移相量|Δph|ずつ先行させたときに先行後の位相φが負になる場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジの位相φは、出力クロック信号vco_ckの次のクロックの立ち上がりエッジにはならない。すなわち、この場合は、立ち上がりエッジは、現在のクロックの周期内の、先行後の位相に512を加算した位相に設定される。例えば、図7において、先行させた位相φが0未満である場合がこのケースに該当する。
このように移相量|Δph|ずつ先行させたときに先行後の位相φが負になる場合、例えば図6に示すように、移相クロック信号pi_outの第5クロックpi_out(4)の立ち上がりエッジは、出力クロック信号vco_ckの第4クロックvco_ck(3)の周期内ではなく、第3クロックvco_ck(2)の周期内にある。すなわち、出力クロック信号vco_ckの第4クロックvco_ck(3)の立ち上がりエッジから、4×|Δph|を512で割ったときの余りに相当するmod(4×|Δph|,512)だけ先行する。
図7では、この移相量|Δph|ずつ先行させたときに先行後の位相φが負になる場合の位相φの先行を白抜きの矢印で示している。すなわち、出力クロック信号vco_ckのクロックvco_ck(1),vco_ck(3),vco_ck(5),vco_ck(7),vco_ck(9),vco_ck(12),vco_ck(14),vco_ck(16)…の点線の白丸で示す位相φを選択することに代えて、前のクロックvco_ck(0),vco_ck(2),vco_ck(4),vco_ck(6),vco_ck(8),vco_ck(11),vco_ck(13),vco_ck(15)の実線の白丸に対応する位相φが選択される。
以上、図6,図7で説明したように位相φを選択することによって、移相クロック信号pi_outの各クロックpi_out(0),…,pi_out(n)の周期は、出力クロック信号vco_ckのクロックの周期から移相量|Δph|だけ減じた長さになる。すなわち、本実施例の場合、移相クロック信号pi_outの周期は512−|Δph|になる。
位相コントローラ5は、図4〜図7を参照して説明したように移相クロック信号pi_outの立ち上がりエッジの位相φを決定し、決定された位相φに従って位相選択回路6の動作を制御する。
移相クロック信号pi_outの周波数をfpi_outとし、出力クロック信号vco_ckの周波数をfvco_ckとするとき、(式1)が成り立つ。
このとき、前述したように、本実施形態のフラクショナルPLL回路は、帰還信号fb_ckの周波数及び位相が入力クロック信号comp_ckの周波数及び位相と一致するように、負帰還制御を行う。入力クロック信号comp_ckの周波数fcomp_ckの逆数である周期を、入力クロック周期とする。
従って、入力クロック信号comp_ckの周波数をfcomp_ckとし、帰還信号fb_ckの周波数をffb_ckとするとき、各信号の周波数の間には(式2)から(式4)が成り立つ。
本実施形態のフラクショナルPLL回路を含むSSCG回路100によれば、位相選択回路6の分解能を向上させることにより、非常に小さな逓倍率(例えば1%以下の逓倍率)を実現することができる。例えば、本実施形態にあっては、最小逓倍率は1/512≒0.002=0.2%になる。
<分周比≠1、Δph>0の場合>
次に、図8〜図11を参照して、位相選択回路6,出力分周器12,及び分周器7の各分周比を考慮した場合、すなわち、位相選択回路6の分周比の設定値div_puck、出力分周器12の分周比の設定値div_fb、分周器7の分周比の設定値div_pllのいずれかが1以上になる場合の、SSCG回路100の動作について説明する。なお、図8〜図11では、位相選択回路6の分周比の設定値div_puck=2、すなわち位相選択回路6の分周比が3である場合を示す。
図8は、この設定状態におけるSSCG回路100の位相選択回路6による位相シフトの例であって、移相量Δphが正である場合の位相シフトの様子を示すタイミングチャートである。図8において、横軸に出力クロック信号vco_ckの位相を示し、縦軸は出力クロック信号vco_ck及び移相クロック信号pi_outのH/Lの状態を示す。
位相選択回路6の分周比3に対応する出力クロック信号vco_ckの3クロックをまとめて、位相選択回路6の分周クロック信号div_ckと呼ぶ。例えば、出力クロック信号vco_ckの第10〜第12クロックvco_ck(9),vco_ck(10),vco_ck(11)は、分周クロック信号の第4クロックdiv_ck(3)になる。分周クロック信号div_ckのクロックのそれぞれにおいて、出力クロック信号vco_ckの3つのクロックを、第1〜第3サブクロックvco_ck(0)',vco_ck(1)',vco_ck(2)'と呼ぶ。
図8の場合、移相クロック信号pi_outの周期は、出力クロック信号vco_ckの3クロック分の周期(すなわち分周クロック信号div_ckの周期)から移相量Δphだけ増大する(すなわち、512×3+Δphになる)。従って、移相クロック信号pi_outの各クロックの立ち上がりエッジは、クロックが進む毎に、出力クロック信号vco_ckの3クロック後の立ち上がりエッジから、移相量Δphずつ増分して遅延する。
位相0の時点における、出力クロック信号vco_ckの最初のクロックvco_ck(0)と移相クロック信号pi_outの最初のクロックpi_out(0)の各立ち上がりエッジは一致しているものとする。移相クロック信号pi_outの第2クロックpi_out(1)の立ち上がりエッジは、出力クロック信号vco_ckの第4クロックvco_ck(3)の立ち上がりエッジから移相量Δphだけ遅延する。移相クロック信号pi_outの第3クロックpi_out(2)の立ち上がりエッジは、出力クロック信号vco_ckの第7クロックvco_ck(6)の立ち上がりエッジから移相量Δphの2倍だけ遅延する。
以下同様に、移相クロック信号pi_outの第nクロックpi_out(n−1)の立ち上がりエッジは、出力クロック信号vco_ckの第(3n−2)クロックvco_ck(3n−3)の立ち上がりエッジから移相量Δphのn−1倍だけ遅延する。
図9は、図8の位相シフトを行う際に位相選択回路6によって選択される位相φについて説明するグラフである。図9において、横軸は出力クロック信号vco_ckのクロックのカウント数、縦軸は移相クロック信号pi_outの位相を示す。
位相選択回路6は、分周クロック信号div_ckの周期を1536個に等分した位相0〜1535のうちいずれかを、現在の位相φとして選択している。ただし、位相選択回路6は、実質的には、図2,図3と同様に、出力クロック信号vco_ckのクロックの1周期を512個に等分した位相0〜511のいずれかを選択する。
図9に示すように、位相選択回路6は、分周クロック信号div_ckのクロックが進む毎に、移相量Δphずつ増分した位相を新たな位相φとして選択する。なお、位相φを移相量Δphずつ増分したときには、増分後の位相が分周クロック信号div_ckの1周期未満である場合と、1周期以上になる場合とが発生する。そして、増分後の位相φが分周クロック信号div_ckの1周期未満である場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジは、分周クロック信号div_ckの次のクロックの周期内の該当する位相φにある。
例えば、増分後の位相φが1535以下である場合がこのケースに該当する。図9では、この増分後の位相φが出力クロック信号vco_ckの3周期未満である場合の位相φの遅延を黒丸及び黒点線矢印で示している。
一方、増分後の位相φが分周クロック信号div_ckの1周期を超える場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジは、分周クロック信号div_ckの2クロック後の周期内の、増分後の位相φから1536を減算した位相φにある。例えば、増分後の位相φが1535以上である場合がこのケースに該当する。
このように増分後の位相φが分周クロック信号div_ckの1周期を超える場合、例えば図8に示すように、移相クロック信号pi_outの第8クロックpi_out(7)の立ち上がりエッジは、分周クロック信号の第7クロックdiv_ck(6)の周期内にある。したがって、第8クロックpi_out(7)の立ち上がりエッジは、分周クロック信号の第7クロックdiv_ck(6)の先頭から、mod(5×Δph,1536)、すなわち、5×Δphを1536で割ったときの余りだけ遅延する。
図9では、この増分後の位相φが出力クロック信号vco_ckの3周期以上である場合の位相φの遅延を白抜きの矢印で示している。すなわち、分周クロック信号のクロックdiv_ck(5),div_ck(11)の点線の白丸で示す位相φを選択することに代えて、次のクロックdiv_ck(6),div_ck(12)の実線の白丸に対応する位相φが選択される。
図8,図9で説明したように位相φを選択することにより、移相クロック信号pi_outの各クロックpi_out(0),…,pi_out(n)の周期は、出力クロック信号vco_ckの3クロック分の周期から移相量Δphだけ増大された長さになる。すなわち、本実施例の場合、移相クロック信号pi_outの周期は「512×3+Δph」になる。
<分周比≠1、Δph<0の場合>
図10は、先と同様に、位相選択回路6の分周比の設定値がdiv_puck=2、すなわち位相選択回路6の分周比が3である場合の位相シフトの様子を示すタイミングチャートである。図10において、横軸に出力クロック信号vco_ckの位相を示し、縦軸は出力クロック信号vco_ck及び移相クロック信号pi_outのH/Lの状態を示す。
特に、図10は、移相量Δphが負である場合の位相シフトの様子を示している。図10の場合、移相クロック信号pi_outの周期は、出力クロック信号vco_ckの3クロック分の周期(すなわち分周クロック信号div_ckの周期)から移相量Δphだけ短縮する(すなわち、512×3−|Δph|になる)。
従って、移相クロック信号pi_outの各クロックの立ち上がりエッジは、クロックが進む毎に、出力クロック信号vco_ckの3クロック後の立ち上がりエッジから、移相量|Δph|ずつ増分して先行する。
位相0の時点において、出力クロック信号vco_ckの最初のクロックvco_ck(0)と移相クロック信号pi_outの最初のクロックpi_out(0)の各立ち上がりエッジは一致しているものとする。移相クロック信号pi_outの第2クロックpi_out(1)の立ち上がりエッジは、出力クロック信号vco_ckの第4クロックvco_ck(3)の立ち上がりエッジから移相量|Δph|だけ先行する。移相クロック信号pi_outの第3クロックpi_out(2)の立ち上がりエッジは、出力クロック信号vco_ckの第7クロックvco_ck(6)の立ち上がりエッジから移相量|Δph|の2倍だけ先行する。
以下同様に、移相クロック信号pi_outの第nクロックpi_out(n−1)の立ち上がりエッジは、出力クロック信号vco_ckの第(3n−2)クロックvco_ck(3n−3)の立ち上がりエッジから移相量|Δph|のn−1倍だけ先行する。
図11は、図10の位相シフトを行う際に位相選択回路6によって選択される位相φについて説明するグラフである。図11において、横軸は出力クロック信号vco_ckのクロックのカウント数、縦軸は移相クロック信号pi_outの位相を示す。
図11に示すように、位相選択回路6は、分周クロック信号div_ckのクロックが進む毎に、移相量|Δph|ずつ先行させた位相φを新たな位相φとして選択する。なお、位相φを移相量|Δph|ずつ先行させても先行させた位相が負にならない場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジは、分周クロック信号div_ckの次のクロックの周期内の該当する位相φにある。
例えば、図11において、先行させた位相φが0以上である場合がこのケースに該当する。図11では、この先行による減少後の位相φが出力クロック信号vco_ckの3周期以上である場合の位相φの先行を黒丸及び黒点線矢印で示している。
一方、移相量|Δph|ずつ先行させたときに先行後の位相φが負になる場合、移相クロック信号pi_outの次のクロックの立ち上がりエッジの位相φは、分周クロック信号div_ckの現在の周期内の、先行後の位相に1536を加算した位相になる。例えば、図11において、先行させた位相φが0未満である場合がこのケースに該当する。
このように移相量|Δph|ずつ先行させたときに先行後の位相φが負になる場合、例えば図10に示すように、移相クロック信号pi_outの第6クロックpi_out(5)の立ち上がりエッジは、分周クロック信号の第4クロックdiv_ck(3)の周期内にある。
したがって、分周クロック信号の第5クロックdiv_ck(4)の立ち上がりエッジから、mod(5×|Δph|,1536)、すなわち、5×|Δph|を1536で割ったときの余りだけ先行する。
図11では、この先行後の位相φが出力クロック信号vco_ckの3周期未満である場合の位相φの先行を白抜きの矢印で示している。すなわち、分周クロック信号のクロックdiv_ck(1),div_ck(4),div_ck(8),div_ck(12),div_ck(16)…の点線の白丸で示す位相φを選択することに代えて、前のクロックdiv_ck(0),div_ck(3),div_ck(7),div_ck(11),div_ck(15)の実線の白丸に対応する位相φが選択される。
図10,図11で説明したように位相φを選択することにより、移相クロック信号pi_outの各クロックpi_out(0),…,pi_out(n)の周期は、出力クロック信号vco_ckの3クロック分の周期から移相量|Δph|だけ減じた長さになる。すなわち、本実施例の場合、移相クロック信号pi_outの周期は、512×3−|Δph|になる。
位相コントローラ5は、図8〜図11を参照して説明したように移相クロック信号pi_outの立ち上がりエッジの位相φを決定し、決定された位相φに従って位相選択回路6の動作を制御する。
図8〜図11のように、位相選択回路6の分周比の設定値div_puck、出力分周器12の分周比の設定値div_fb、分周器7の分周比の設定値div_pllのいずれかが1以上になる場合、(式1)は、(式5)から(式7)のように変形される。
本実施形態のフラクショナルPLL回路を含むSSCG回路100によれば、位相選択回路6が分周を行うことで、さらに小さな逓倍率を実現することができる。例えば、図8〜図11の場合を示す(式5)〜(式7)のモデルでは、最小逓倍率(%)は(式8)で表されるように、非常に小さく抑えることができる。
出力クロック信号vco_ckの周波数fvco_ckの変化率の最小単位は(式9)で表される。
このように、本実施形態のフラクショナルPLL回路を含むSSCG回路100によれば、動作時において分周器7の分周比は固定値であり、移相クロック信号pi_out及び帰還信号fb_ckの周波数も一定である。
したがって、従来技術のように、分周器の分周比を変化させたときに生じる位相周波数比較器1における位相の不一致を解消することができる。そして、この位相の不一致に起因して、出力クロック信号vco_ckに混入する不要信号成分であるスプリアスの発生を防止して、出力クロック信号vco_ckの位相の揺らぎであるジッタを低減することができる。
また、本実施形態のフラクショナルPLL回路を含むSSCG回路100によれば、位相選択回路6の分解能を向上させることにより分周器7の分周比を小さくすることができる。
そして、この結果、フラクショナルPLL回路のループ帯域を増大させて、出力クロック信号vco_ckの位相の揺らぎであるジッタを低減することができる。
このように、本実施形態によれば、分周器の分周比を変化させることを動作原理としない、フラクショナルPLL回路を含むSSCG回路を提供することができる。また、位相選択回路6が分周を行うことで、フラクショナルPLL回路の分解能を向上させることができる。
<スペクトラム拡散変調について>
図12は、スペクトラム拡散(SS)変調を説明するための図である。図12において、横軸は時間、縦軸は周波数を示す。
SS変調を行うことにより、出力クロック信号vco_ckの周波数は、所定の周波数fcを中心に、最大値fmaxと最小値fminとの間の周波数にわたって、変調周期ss_intで周期的に変化する。
詳しくは、本実施形態では、三角波制御部5hによって下記を算出する。スペクトラム拡散クロック発生(SSGC)回路100において、上記移相量(シフト量)Δphを変化させることにより、出力クロック信号vco_ckの周波数を図12のように変化させることができる。
移相量Δphが増大するとき、出力クロック信号vco_ckの周波数fvco_ckも増大し、移相量Δphが減少するとき、出力クロック信号vco_ckの周波数fvco_ckも減少する。
詳しくは、SS変調を行うことにより、出力クロック信号vco_ckの周波数は、所定の中心周波数fcを中心に、最大周波数fmaxと最小周波数fminとの間の周波数に亘って、変調周期ss_intで周期的に変化する。
三角波制御部5h(図1参照)には、出力クロック信号vco_ckの周波数の最大変化率を示す変調度ss_ampが設定されている。変調度ss_ampは0〜31の整数値をとり、出力クロック信号vco_ckの周波数の最大変化率はss_amp/1024(%)で表される。例えば、ss_amp=31のとき、出力クロック信号vco_ckの周波数は、最大周波数fmaxにおいて中心周波数fcに対して約3.1%増大し、最小周波数fminにおいて中心周波数fcに対して約3.1%減少する。
三角波制御部5hは、この最大変化率の範囲内で出力クロック信号vco_ckの周波数を変化させるためのSS変調用の波形データ(移相量)であるSS変調プロファイルΔphを生成する。SS変調プロファイルΔphは、例えば0〜255の整数値をとり、その最大値255は最大周波数fmaxに対応し、その最小値0は最小周波数fminに対応し、128は周波数が変化しない中心周波数fcに対応する。
以下、図12に示す、出力クロック信号vco_ckの周波数が三角波状に変化する場合のSS変調プロファイルΔphの計算例について説明する。SS変調プロファイルΔphを計算するために、例えば画素クロック信号pix_ckのクロック毎に増分するカウント値count(n)を用いる。
カウント値count(n)のステップサイズΔcount,カウント値の初期値count(0),及びカウント値count(n)は、それぞれ、(式10)から(式12)で表される。
カウント値count(n)は、変調周期ss_intに亘ってステップサイズΔcountずつ増分する。カウント値count(n)に応じて、SS変調プロファイルΔphは、下記、(式13)から(式15)により計算される。
ここで、図13において、0≦int(count(n))<128である場合はAの範囲に相当し、128≦int(count(n))≦383である場合はBの範囲に相当し、383<int(count(n))<510である場合はCの範囲に相当する。
0≦int(count(n))<128である場合:
128≦int(count(n))≦383である場合:
383<int(count(n))<510である場合:
ここで、int(count(n))はカウント値count(n)の整数部(pixadr)を示す。
出力クロック信号vco_ckの周波数fは、位相選択回路6の分周比の設定値div_puck、出力分周器12の分周比の設定値div_fb、分周器7の分周比の設定値div_pll、変調度ss_amp、及び変調周期ss_intに応じて、三角波状に変化する。
<位相選択>
本発明の実施形態において、位相コントローラ5で、選択される位相が、選択位相上限を超えるときと、選択位相下限を下回るときと、選択位相上下限内のときで、SS変調プロファイルを変更している。SS変調プロファイルでは、移相量Δphを変化させるためのステップ時間区間と、所定周期内の位置を示す変化量とが規定されている。図13〜図16を用いて説明する。
図13は、図1の位相コントローラ5と位相選択回路6による帰還信号fb_ck周期内の位相選択とスペクトラム拡散変調を説明するための図である。
図13では、4種類のパラメータの変化を示しており、横軸は共通して時間を示している。図13で示される4種類のパラメータは、(1)カウント値count(n)、(2)カウント値count(n)の整数部pixadr、(3)移相量(シフト量、変調プロファイル)Δph、(4)選択位相信号phaddを示す。
図13の横軸において、ss_intは変調周期を示す。また、puck(1)、…puck(n)は、変調周期ss_intを分割する変調クロックpuck(n)のカウント周期を示す。
1つめのパラメータであるカウント値count(n)は、変調クロックpuck(n)毎に、ステップサイズΔcountずつ増分する。カウント値count(n)は変調開始部5bから出力される。なお、カウント値のステップ毎の変位量が他のパラメータに対して小さいため、図13では直線状に示しているが、拡大して記載するとカウント値も、クロック毎に、段状に変化している。
2つめのパラメータである整数値pixadrは、カウント値にint関数を掛けて、カウント値count(n)の数値の小数点以下を、切り捨てて整数とした値である(pixadr=int(count(n))。整数値pixadrは、2区間の変調クロックpuck(n)に相当するステップ時間区間step_p毎に1ずつ段階的に上昇していく。
図13において(1)カウント値count(n)及び(2)整数値pixadrの縦軸は共通で、カウント値(0〜512)を示している。なお、図13では、カウント値の数及びステップ時間区間step_pの数を省略して示している。
3つ目のパラメータである、SS変調プロファイルΔphは、ステップ時間区間step_p毎に、ステップサイズΔθずつ段階的に変化する。SS変調プロファイルΔphは、固定値である中心移相値をpll_fracと設定して、変動移相量pi_ssdに応じて変化させた値である。SS変調プロファイルΔphは加算機能を有する移相量算出部5iから出力される。
また、SS変調プロファイルΔphは、変動移相量pi_ssdの最小値(pi_ssd_min=−pi_ssd_max)から、最大値pi_ssd_maxの範囲、即ち、2×pi_ssd_maxの範囲で変動する。即ち、移相量Δphの中心値をpll_fracと設定して、移相量Δphは、「pll_frac−pi_ssd_max」から「pll_frac+pi_ssd_max」までの範囲(所定範囲)で、段階的に略三角波状に変化する。
図13において、(3)の移相量Δphに対応する縦軸は、位相のシフト分に相当する、移相クロック信号pi_outの立ち上がりエッジの、出力クロック信号vco_ckからの移相量を示している。
4つ目のパラメータである選択位相信号phaddは、カウント値count(n)は、変調クロックpuck(n)毎に、演算により設定された変調度に応じて変化する。なお、変化の集合である全体の推移として、選択位相信号phaddは、SS変調プロファイルΔphから1/2周期ずれて、段階的に、略三角波状に変化する。
図13において、(4)の位相選択番号に対応する縦軸は位相番号を示している。
図14は、図1の位相コントローラ5の構成とSS変調プロファイルを説明するための図である。なお、帰還信号fb_ck周期内の位相選択では、帰還信号周期外設定部5P、5Qは利用しないため、図14での説明を省略する。
本実施形態のフラクショナルPLL回路を含むSSCG回路は、図4〜図11を参照して説明したように、移相クロック信号pi_outの周期を出力クロック信号vco_ckの周期から移相量(シフト量)Δphによって変化させている。
このとき、位相のシフトの中心となる固定移相量pll_fracをさらに変動移相量pi_ssdによって変化させた値である移相量Δphを用いて、出力クロック信号vco_ckのSS変調を行う。
出力クロック信号vco_ckの周波数は、位相選択回路6の分周比の設定値div_puck、出力分周器12の分周比の設定値div_fb、分周器7の分周比の設定値div_pll、変調度ss_amp、及び変調周期ss_intに応じて、図12と同様に三角波状に変化する。
まず、設定値演算部5aにおいて、SS変調を行うために移相量(シフト量)Δphを変化させる最小時間単位を、SS変調クロックpuck(0)、puck(1)、…、puck(n)として設定する。SS変調クロックpuck(n)は、出力クロック信号vco_ckのクロックを、出力分周器12の分周比と位相選択回路6の分周比とで分周したものである。従って、SS変調クロックpuck(n)の周波数fpuckは、次式により表される。
図13に示すように所定個数のpuck(n)を含む時間区間step_p毎に移相量ΔphをステップサイズΔθで階段型に変化させることで、近似的には移相量Δphを三角波状に変化させる。所定個数のpuck(n)を含む時間区間step_pを、ステップ時間区間step_pとする。ステップ時間区間step_pにおけるSS変調クロックpuck(n)の所定個数であるクロック数は、設定に応じて異なる。
次に、設定値演算部5aにおいて、変動移相量pi_ssdの最大値pi_ssd_max及び最小値pi_ssd_minを、次式により計算する。
変調度ss_ampは、図12にて説明したようにスペクトラム拡散コントローラ25には、出力クロック信号vco_ckの周波数の最大変化率を示している。
変動移相量pi_ssdを計算するために、変調クロックpuck(n)毎に増分するカウント値count(n)を導入する。
この際、変調開始部5bは、後述する図17、図18で説明するように外部から入力される同期信号syncのタイミングに合わせて、変調クロックpuck(n)毎に増分するカウントを開始させる、即ち、変調を開始させる。
カウント値count(n)及びそのステップサイズΔcountは、例えば9ビットの整数部と16ビットの小数部とを含む小数で表される。カウント値のステップサイズΔcount、カウント値の初期値count(0)及びカウント値count(n)は次式で表される。
Tss:SS変調周期
Tcomp_ck:入力クロックcomp_ckの周期
即ち、図13に示すクロックcount(n)の縦軸の最大値512は、変動量「2×(pi_ssd_max-pi_ssd_min)」に相当している。
この演算は、加算部5e、マルチプレクサ5fによって算出される。
上記のステップサイズΔcount、変動移相量pi_ssdの最大値pi_ssd_max及びの最小値pi_ssd_minを用いて、三角波制御部5hにより、下記を算出する。
変調周期ss_intはSS変調周期をpuck数で表したものであって、次式により計算される。
カウント値count(n)は、変調周期ss_intにわたってステップサイズΔcountずつ増分する。カウント値count(n)に応じて、変動移相量(第2の移相量)pi_ssdは次式により計算される。ここで、(式25)は、図13のAの範囲、(式26)は図13のBの範囲、(式27)は図13のCの範囲に対応している。
((Aの範囲))
0≦int(count(n))<pi_ssd_max+1である場合:
((Bの範囲))
pi_ssd_max+1≦int(count(n))<pi_ssd_max+1+(pi_ssd_max−pi_ssd_min)である場合:
((Cの範囲))pi_ssd_max+1+(pi_ssd_max−pi_ssd_min)≦int(count(n))<2×(pi_ssd_max−pi_ssd_min)である場合:
(式18)から(式25)より、同期信号syncのタイミングに合わせて、変調を開始させており、nは正の数なので、図13の(3)の変調プロファイルΔphで示すように、必ず波形の位相が正側へシフトから始まる。
したがって、帰還信号のクロック周期内では、SS変調の開始時に、必ず正側へ位相がシフトするように選択制御することになる。
上記のように、算出した変動移相量pi_ssdによって、移相量Δphを、変化の中心値である中心移相量pll_fracから変化させる。即ち、加算機能を有する位相量算出部5iにより、中心となる固定移相量pll_fracに、変動する変動移相量pi_ssdを足し合わせることで、移相量Δphを算出する。そして、移相量Δphに基づいて、出力クロック信号vco_ckのSS変調を行う。
SS変調を行うために移相させるように、位相を選択する。選択される位相の番号を選択位相番号とする。選択位相番号は、仮番号算出部5l、選択位相制御部5m,5nにより選択出力される。
ここで、仮の選択位相番号adddatは次式により計算される。
以上により、帰還信号fb_ck周期内の位相を場合分けして、位相制御することが可能である。
なお、ステップ時間区間step_pは次式により計算される。
変調周期ss_intにおける各状態での変動移相量pi_ssdの総和ph_A、ph_B、ph_Cは次式により計算される。なお、和ph_Aは図13のAの範囲、和ph_BはBの範囲、和ph_Cは、Cの範囲に対応している。
((Aの範囲))
0≦int(count(n))<pi_ssd_max+1である場合:
((Bの範囲))
pi_ssd_max+1≦int(count(n))<pi_ssd_max+1+(pi_ssd_max−pi_ssd_min)である場合:
((Cの範囲))
pi_ssd_max+1+(pi_ssd_max−pi_ssd_min)≦int(count(n))<2×(pi_ssd_max−pi_ssd_min)である場合:
変調周期ss_intにおける各状態での変動移相量pi_ssdの総和ph_Tは次式により表される。
変動移相量pi_ssdの総和ph_Tが0のとき、詳しくは図13の(4)の選択位相番号phaddで示す周期の開始(0)と周期の終了のときに、開始選択位相番号と終了選択位相番号が同じ(=0)になる。したがって、毎周期、時間軸で同じ選択位相番号が選択される。即ち、帰還信号fb_ck周期内の位相が選択される。
(式18)から(式34)より、変調周期ss_intでは、毎周期、SS変調プロファイルが同じになり、SS変調周期誤差が発生しない効果がある。
以上により、位相制御手段において、位相がフィードバッククロックfb_ck周期内である場合、位相を位相周波数比較器の入力である基準クロックの周期とフィードバッククロックの分周比とSS変調周期と変調度とにより位相制御する。
よって、ユーザーが意図して位相制御できる効果がある。
<周期外の位相の選択>
さらに、帰還信号fb_ck周期外の位相選択になる変調度を設定した場合、位相のシフトにおける変化量に相当する変動移相量pi_ssdの総和ph_Tが0になるように、変調度を変更し、図13のように帰還信号fb_ck周期内の位相を選択制御する機能を持つ。帰還信号fb_ck周期外の位相選択について下記説明する。
図15は、図1の位相コントローラ5と位相選択回路6による帰還信号fb_ck周期外の位相選択とスペクトラム拡散変調を説明するための図である。図16は、図1の位相コントローラ5の構成とSS変調プロファイルを説明するための図である。
図15は、図13と同様に、4種類のパラメータの変化を示しており、横軸は共通して時間を示している。図13で示される4種類のパラメータは、(1)カウント値count(n)、(2)カウント値count(n)の整数部pixadr、(3)移相量(シフト量、変調プロファイル)Δph、(4)選択位相番号phaddである。
図15において、3つのパラメーター(1)〜(3)は図13と同様であるが、(4)選択位相番号phaddの値が異なる。
図15において、(1)カウント値count(n)及び(2)整数値pixadrに対応する縦軸の共通で、カウント値(0〜512)を示している。(3)の移相量Δphに対応する縦軸は、移相クロック信号pi_outの立ち上がりエッジの、出力クロック信号vco_ckからの移相量を示している。(4)の位相選択番号に対応する縦軸は位相番号を示している。
下記、図15において、図13とは異なる選択をする選択位相番号phaddについて説明する。
図15のように(4)で示す選択位相番号phaddが位相下限を下回ったときは、1サイクル前に帰還信号fb_ck周期内で二つの選択位相番号の移相クロック信号pi_outを出力する必要がある。そのため、図16のようにphaddとphadd1を発生させるために、2つの選択位相制御部5m、5nを設けて1サイクルの遅延差をつけている。
即ち、位相コントローラ5において、選択位相上限を超えるときと、選択位相下限を下回るときと、選択位相上下限内のときで、移相量を変化させるためのステップ時間区間と選択位相のシフト量とを決めるSS変調プロファイルを変更して、異なる位相番号を選択する。
移相量(シフト量):Δph=pi_ssd+pll_frac
仮の選択位相番号:adddat=phadd+Δph
仮の選択位相番号1:adddat1=phadd+2×Δph
位相選択上限:512×(div__puck+1)
((選択される移相の番号が位相選択上限を超えたとき))
:adddat>512×(div_puck+1)
位相選択上限を超えたときのcount値は1puck前(前サイクル)のcountを保持する。
p:選択位相上限を超えたときのpuckサイクル数
詳しくは、選択される移相の番号が位相選択上限を超えたときは、下記(式36)の選択位相番号となるが、このときは図14のように移相クロック信号pi_outは出力せずに、次のサイクルで(式37)の選択位相番号の移相クロック信号pi_outを出力する。
位相選択上限を超えたときの選択位相番号phaddは次式により計算される。ただし、このときは、移相クロック信号pi_outは出力しない。この区間は図15のBXの範囲に相当する。
phadd(p+1):位相選択上限を超えたときの値
位相選択上限を超えたときの次のサイクルの選択位相番号phaddは次式により計算され、位相選択上限を超えたときの選択位相番号phaddのpi_outを出力する。
((選択される位相番号が位相選択下限を下まわったとき))
:adddat(m)<0
選択される移相の番号が位相選択下限を下まわったときのcount値は1サイクル前(1puck前)のcountに2倍のΔcountを加算する。
ここで、m:位相選択下限を下まわったときのpuckサイクル数とする。
位相選択下限を下まわったときは図15のように1サイクル前(1puck前)に(式39)の選択位相番号のpi_outと(式40)の選択位相番号のpi_outを出力する。
位相選択下限を下まわったときの選択位相番号phaddは次式により計算される。
選択位相上限を超えていないときのAの範囲と、選択位相下限を下回っていないときのCの範囲の動作は図13と同じ動作である。
以上より、選択位相の状態によりSS変調プロファイルを変えることで、選択位相上限を超えるときと選択位相下限を下まわるときの差分を打ち消しあい、位相制限がない状態でSS変調周期誤差を発生させないことを可能としている。
このように、フィードバッククロック周期外の位相選択になる変調度を設定した場合、SS変調プロファイルを自動的に変更し、フィードバッククロック周期内の位相を選択制御する。
この制御により、ユーザーが意図しなくても、フィードバッククロック周期内の位相を選択制御できる効果がある。
<同期信号とSS変調波形との相関とノイズ>
図17は、同期信号(sync信号)とSS変調波形が同期していない状態を示す。図17において横軸は時間を表し、縦軸は同期信号(sync信号)とSS変調波形の信号の値を表す。
同期信号(sync)は、例えば後段の配置される画像処理装置での画像読取処理時のライン同期信号である。同期信号とSS変調周期とが同期が取れていない場合は、nライン目、n+1ライン目、n+2ライン目とライン毎にSS変調周期の位相がずれていく。この状態が予期せぬ長周期ノイズの発生源となり、予測できないため補正ができず、読み取り画像にスジとなって現れるおそれがある。
図18と図19は、同期信号とSS変調波形が同期している状態を示す。図18では、同期信号でSS変調を開始し、同期信号(sync)がSS変調周期の整数倍で同期している状態を示す。図19では、同期信号でSS変調を開始し、SS変調周期が同期信号(sync)の整数倍で同期している状態を示す。図18、図19において横軸は時間を表し、縦軸は同期信号(sync信号)とSS変調波形の信号の値を表す。
図18、図19のように整数倍で同期している場合は、nライン目、n+1ライン目、n+2ライン目とラインが変わってもSS変調周期の位相が一致しているため、長周期ノイズが発生しにくくなる。
そこで、本発明の実施形態では、sync信号の周期とSS変調周期をどちらかの整数倍の周期にし、Δ値加算ブロックである変調開始部5bで、sync信号のタイミングでcount(n)を開始させている。これにより、図18及び図19に示すようにSS変調周期と同期信号を同期させる事ができる。
このように、SSCG回路全体をリセットすることなく、SSCG変調周期とsync信号が継続して同期し続けるので変調誤差による長周期的なノイズを揃えることができる。
したがって、SS変調周誤差を発生させず、回路にリセットをかけることなくSS変調周期の連続性を保つことができ、SS変調周期誤差補正回路を有していなくても、SS変調周期誤差起因による長周期誤差が発生しない。
位相制御手段で必ず位相が正側にシフトから始まり、フィードバッククロック周期内の位相を選択制御することで毎周期、SS変調プロファイルが同じになり、SS変調周期誤差が発生しない。
このような位相制御手段により、位相選択の上限を超えても、位相選択の下限を下まわっても、SS変調周期誤差をなくすことができるため、SS変調周期を同期信号に同期させることで予測不能な長周期ノイズを低減することができる。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。