(58)【調査した分野】(Int.Cl.,DB名)
前記分周比変更回路は、前記第1分周比が前記第3分周比よりも小さい場合には、前記分周クロックの所定の周期ごとに、前記第3分周比が前記第1分周比と同じになるまで前記第3分周比を段階的にn(nは1以上の整数)ずつ減らし、前記第1分周比が前記第3分周比よりも大きい場合には、前記第3分周比を一気に前記第1分周比に変更し、前記第1分周比と前記第3分周比とが同じ場合には、前記第3分周比を変更しないものである請求項2に記載の同期システム。
前記分周回路は、分周比更新信号により制御されるタイミングで、前記分周比設定信号により設定される第1分周比を受け取って前記分周比変更回路に入力する分周比更新回路を備える請求項2または3に記載の同期システム。
前記デコーダは、前記第2カウンタのカウント値が最大値になる前記基準クロックのサイクルでは、前記ストローブ信号を生成しないものである請求項5または6に記載の同期システム。
前記分周比変更回路は、前記第1分周比が現在の前記分周クロックの分周比である第3分周比よりも小さい場合には、前記分周クロックの所定の周期ごとに、前記第3分周比が前記第1分周比と同じになるまで前記第3分周比を段階的にm(mは2以上の整数)ずつ減らすものであり、
前記デコーダは、前記第2カウンタのカウント値が最大値から(前記最大値−(m−1))までの前記基準クロックのサイクルでは、前記ストローブ信号を生成しないものである請求項5または6に記載の同期システム。
【背景技術】
【0002】
図13は、従来の同期システム80の構成を表す一例のブロック図である。同図に示す同期システム80は、第1デバイス82と、第2デバイス84と、分周回路88と、デコーダ(decoder)92とを備えている。
【0003】
第1デバイス82は、PLL(位相同期回路)93等のクロック発生回路から供給される基準クロックに同期して動作し、第2デバイス84は、分周回路88により、基準クロックを分周して生成される分周クロックに同期して動作する。
分周クロックの分周比は、外部から入力される分周比設定信号(div_ratio)により設定される第1分周比によって変更可能となっている。
【0004】
以下、分周回路88について説明する。
【0005】
図14は、
図13に示す分周回路88の構成を表す一例の回路図である。同図に示す分周回路88は、セレクタ98と、フリップフロップ(FF)100と、デクリメンタ(−1)102と、NOR回路104とを備えている。
【0006】
分周回路88では、デクリメンタ102の出力信号が0になった場合、NOR回路104の出力信号がハイレベル(H)になり、セレクタ98から、分周比設定信号
(div_ratio[n:0]
)により設定される第1分周比が出力される。セレクタ98から出力される第1分周比は、基準クロック(clk_PLL)に同期してFF100に設定され、FF100から出力されるカウント値(count, downcount[n:0])は第1分周比になる。
【0007】
続いて、デクリメンタ102により、FF100から出力されるカウント値がデクリメント(−1)される。デクリメンタ102の出力信号が0になっていない場合、セレクタ98から、デクリメンタ102の出力信号が出力される。セレクタ98からの出力信号は、基準クロックに同期してFF100に設定され、FF100から出力されるカウント値はダウンカウントされる。
【0008】
カウント値は順次デクリメントされ、基準クロックに同期して第1分周比から0までダウンカウントされる。そして、デクリメンタ102の出力信号が0になった場合、カウント値に再び第1分周比が設定され、前述の動作が繰り返される。そして、その間、分周回路88からは、FF100のカウント値(count)が出力されるとともに、その最上位ビット(downcount[n])が分周クロック(clk_DIV)として出力される。
【0009】
同期システム80では、第1デバイス82と第2デバイス84との間で、分周クロックに同期して動作するバス86を介して通信が行われる。第1デバイス82には、通常、分周クロック自体は入力されず、その代わりに、デコーダ92から入力ストローブ信号(strobe_sample)および出力ストローブ信号(strobe_drive)からなるストローブ信号が入力されている。これら2つのストローブ信号により、第1デバイス82は、第2デバイス84と正常に通信を行うことができる。
【0010】
入力ストローブ信号は、第1デバイス82が第2デバイス84から入力される信号を受け取るタイミングを制御する信号であり、出力ストローブ信号は、第1デバイス82が第2デバイス84に入力する信号を出力するタイミングを制御する信号である。
【0011】
前述のように、分周クロックは、基準クロックを分周して作成されている。従って、入力ストローブ信号および出力ストローブ信号は、分周回路88から出力されるカウント値をデコードして生成するのが最も簡単である。そのため、これら2つのストローブ信号は、デコーダ92により、第1分周比およびカウント値に基づいて、カウント値をデコードして作成される。
【0012】
同期システム80では、前述のように、分周回路88により、基準クロックが分周されて、カウント値および分周クロックが生成され、デコーダ92により、カウント値がデコードされて、入力ストローブ信号および出力ストローブ信号が生成される。そして、第1デバイス82は、これら2つのストローブ信号に基づいて、バス86を介して第2デバイス84と通信を行う。
【0013】
しかし、従来の同期システム80には、タイミングクロージャーの面で問題があった。
図15は、従来の同期システム80の問題点を表す一例のブロック図である。同図に示すように、実際の同期システム80では、第1デバイス82と第2デバイス84との間のクロックスキューを小さくするために、通常、基準クロックおよび分周クロックの経路にてCTS(クロックツリーシンセシス)が行われ、クロックツリーが挿入される。
【0014】
この場合、第1デバイス82と第2デバイス84との間のクロックの位相は揃っているとしても、分周回路88はクロックツリーの上流になるため、分周回路88から出力されるカウント値と第1デバイス82に入力される基準クロックとの間のクロックスキューが大きくなる。そのため、分周回路88と第1デバイス82との間で巨大なホールド違反が発生する。
【0015】
また、同期システム80を実装する場合のピン数の面でもデメリットがある。
図13および
図14に点線で囲んで示すように、分周回路88が他の回路部分とは別の半導体チップで実装される場合、分周回路88から出力されるカウント値および分周比設定信号をデコーダ92に入力する必要がある。これらの信号は、いずれも多ビットで構成されるため、分周回路88を別の半導体チップで実装した場合、多数のピンが必要になる。
【0016】
さらに、分周比設定信号により設定される第1分周比を変更する場合、誤動作を防止するために、基準クロックに同期して第1分周比を変更する必要がある。しかも、分周回路88とデコーダ92とで第1分周比が変化する基準クロックのサイクルが異なると同期システム80が誤動作するため、第1分周比を変化させるためのタイミング要求も非常に厳しい。
【0017】
ここで、本発明に関連性のある先行技術文献として、特許文献1および2がある。
特許文献1には、同期クロックを計数回路で計数して、計数値を0〜3まで繰り返し計数する場合に、計数値が3になるとタイミング信号を発生することが記載されている。
特許文献2には、基準クロック信号の1周期に対応する時間、基本信号のパルス数をカウントすることが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【0019】
本発明の第1の目的は、分周回路と第1デバイスとの間のクロックスキューによるタイミング違反の発生を防止することができる同期システムおよび分周回路を提供することにある。
本発明の第2の目的は、分周回路を別の半導体チップで実装した場合に、分周回路と別の回路部分との間を接続するためのピン数を削減することができる同期システムおよび分周回路を提供することにある。
本発明の第3の目的は、分周クロックの分周比を変更する場合のタイミングの問題を解消することができる同期システムおよび分周回路を提供することにある。
【課題を解決するための手段】
【0020】
上記目的を達成するために、本発明は、分周比設定信号により設定される第1分周比で基準クロックを分周して分周クロックを生成する分周回路と、
前記基準クロックに同期して動作する第1デバイスと、
前記分周クロックに同期して動作する第2デバイスと、
前記分周クロックの1周期ごとに、前記基準クロックに同期してカウントしたカウント値を出力するとともに、前記カウント値に基づいて、前記分周クロックの分周比を検出し第2分周比として出力する分周比検出回路と、
前記カウント値および前記第2分周比に基づいて、前記第1デバイスが前記第2デバイスに対して信号を入出力するためのタイミングを制御するストローブ信号を生成するデコーダとを備え、
前記第1デバイスは、前記ストローブ信号に基づいて、前記分周クロックに同期して動作するバスを介して前記第2デバイスと通信するものであることを特徴とする同期システムを提供するものである。
【0021】
ここで、前記分周回路は、
現在の前記分周クロックの分周比である第3分周比を、前記第1分周比に変更する分周比変更回路と、
前記基準クロックに同期して、前記分周比変更回路により変更された第3分周比をカウントしたカウント値を出力する第1カウンタと、
前記第1カウンタのカウント値から、デューティを50%に近づけた前記分周クロックを生成する波形整形回路とを備えることが好ましい。
【0022】
また、前記分周比変更回路は、前記第1分周比が前記第3分周比よりも小さい場合には、前記分周クロックの所定の周期ごとに、前記第3分周比が前記第1分周比と同じになるまで前記第3分周比を段階的にn(nは1以上の整数)ずつ減らし、前記第1分周比が前記第3分周比よりも大きい場合には、前記第3分周比を一気に前記第1分周比に変更し、前記第1分周比と前記第3分周比とが同じ場合には、前記第3分周比を変更しないものであることが好ましい。
【0023】
また、前記分周回路は、分周比更新信号により制御されるタイミングで、前記分周比設定信号により設定される第1分周比を受け取って前記分周比変更回路に入力する分周比更新回路を備えることが好ましい。
【0024】
また、前記分周比検出回路は、
前記分周クロックの1周期ごとに、前記基準クロックに同期してカウントしたカウント値を出力する第2カウンタと、
前記第2カウンタのカウント値の最大値を前記第2分周比として出力する分周比決定回路とを備えることが好ましい。
【0025】
また、前記分周比決定回路は、
前記基準クロックに同期して前記分周クロックの立ち上がりまたは立ち下がりを検出し、前記分周クロックの立ち上がりまたは立ち下がりを検出した場合にアクティブ状態になる最大値検出信号を出力する分周クロック検出回路と、
前記最大値検出信号がアクティブ状態になった場合に、前記基準クロックに同期して前記第2カウンタのカウント値の最大値を保持し、前記第2分周比として出力する最大値検出回路とを備えることが好ましい。
【0026】
また、前記デコーダは、前記第2カウンタのカウント値が最大値になる前記基準クロックのサイクルでは、前記ストローブ信号を生成しないものであることが好ましい。
【0027】
また、前記分周比変更回路は、前記第1分周比が現在の前記分周クロックの分周比である第3分周比よりも小さい場合には、前記分周クロックの所定の周期ごとに、前記第3分周比が前記第1分周比と同じになるまで前記第3分周比を段階的にm(mは2以上の整数)ずつ減らすものであり、
前記デコーダは、前記第2カウンタのカウント値が最大値から(前記最大値−(m−1))までの前記基準クロックのサイクルでは、前記ストローブ信号を生成しないものであることが好ましい。
【0028】
また、本発明は、上記のいずれかに記載の同期システムで使用される分周回路を提供する。
【発明の効果】
【0030】
本発明によれば、分周回路により生成された分周クロックの分周比を、分周比検出回路で検出することにより、以下に示す効果を得ることができる。
【0031】
分周比検出回路は、分周回路の第1カウンタから出力されるカウント値を使用しない。また、分周比検出回路の第2カウンタから出力されるカウント値は、分周クロックの生成に関わっていない。そのため、本発明の構成でCTSを実施しても、分周比検出回路と第1デバイスとの間で大きなクロックスキューが発生することはなく、
タイミング違反が発生することはない。
【0032】
本発明では、分周回路が他の回路部分とは別の半導体チップで実装される場合、両者の間で基準クロックおよび分周クロックの2本だけを接続すればよいため、チップ間を接続するためのピン数を減らすことができ、チップサイズや基板設計の面で有利になる。
【0033】
本発明では、分周比設定信号を分周回路だけに配っており、分周比検出回路には関係がないため、第1分周比を変化させるタイミングの問題を解消することができる。
【発明を実施するための形態】
【0035】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の同期システムおよび分周回路を詳細に説明する。
【0036】
図1は、本発明の同期システム10の構成を表す一実施形態のブロック図である。同図に示す同期システム10は、
図13に示す従来の同期システム80に対して本発明を適用したものである。
同期システム10は、第1デバイス12と、第2デバイス14と、分周回路(div)18と、分周比検出回路(ratio_det)20と、デコーダ(decoder)22とを備えている。また、同図には、PLL23も示されている。
【0037】
第1デバイス12には、PLL23等のクロック発生回路から基準クロック(clk_PLL)が入力され、デコーダ22から入力ストローブ信号(strobe_sample)および出力ストローブ信号(strobe_drive)が入力されている。また、第2デバイス14には、分周比検出回路20からバスクロック(clk_BUS)が入力されている。
第1デバイス12は、基準クロックに同期して動作するものであり、第2デバイス14は、基準クロックに同期したバスクロック(分周クロック)に同期して動作するものである。
第1デバイス12と第2デバイス14との間は、分周クロックに同期して動作するバス16を介して接続されている。第1デバイス12は、入力ストローブ信号および出力ストローブ信号により、バス16を介して第2デバイス14と通信を行う。
第1デバイス12はマイクロプロセッサ、第2デバイスは半導体メモリ等の周辺デバイスであり、マイクロプロセッサが、バス16を介して周辺デバイスにアクセスする同期システムを例示することができる。
【0038】
続いて、分周回路18には、PLL23から基準クロック(clk_PLL)が入力され、同期システム10の外部から分周比設定信号(div_ratio)および分周比更新信号(div_ratio_update)が入力されている。
分周回路18は、分周比更新信号により制御されるタイミングで分周比設定信号を受け取り、分周比設定信号により設定される第1分周比で基準クロックを分周して分周クロック(clk_DIV)を生成するものである。
分周クロックの分周比は、分周比更新信号により制御される任意のタイミングで、分周比設定信号により設定される第1分周比によって任意の分周比に変更可能である。
【0039】
続いて、分周比検出回路20には、PLL23から基準クロック(clk_PLL)が入力され、分周回路18から分周クロック(clk_DIV)が入力されている。
分周比検出回路20は、分周クロックの1周期ごとに、基準クロックに同期してカウントしたカウント値(count)を出力するとともに、カウント値に基づいて、分周クロックの分周比を検出し第2分周比(ratio)として出力するものである。また、分周比検出回路20は、分周クロックを遅延させたバスクロック(clk_BUS)を出力する。
【0040】
続いて、デコーダ22には、分周比検出回路20からのカウント値(count)および第2分周比(ratio)が入力されている。
デコーダ22は、カウント値および第2分周比に基づいて、入力ストローブ信号(strobe_sample)および出力ストローブ信号(strobe_drive)、つまり、第1デバイス12が第2デバイス14に対して信号を入出力するためのタイミングを制御するストローブ信号を生成するものである。
入力ストローブ信号は、第1デバイス12が第2デバイス14から入力される信号を受け取るタイミングを制御する信号であり、出力ストローブ信号は、第1デバイス12が第2デバイス14に入力する信号を出力するタイミングを制御する信号である。
【0041】
次に、分周回路18について説明する。
【0042】
図2は、
図1に示す分周回路18の構成を表す一例の回路図である。同図に示す分周回路18は、分周比更新回路24と、分周比変更回路(gradual ratio change)26と、ダウンカウンタ(down counter)28と、波形整形回路(waveform shaping)30とを備えている。
【0043】
分周比更新回路24には、分周比設定信号(div_ratio)、分周比更新信号(div_ratio_update)および基準クロック(clk_PLL)が入力されている。
分周比更新回路24は、基準クロックに同期して、分周比更新信号により制御されるタイミングで、分周比設定信号により設定される第1分周比を受け取って分周比変更回路26に入力するものである。
【0044】
同図に示す分周比更新回路24は、分周比更新信号が立ち上がった(ローレベル(L)からハイレベル(H)に変化した)ことを検出した場合に、分周比設定信号により設定される第1分周比を更新する。
分周比更新回路24は、基準クロックに同期して分周比更新信号の立ち上がりを検出し、分周比更新信号が立ち上がった場合にアクティブ状態になる再設定信号(reload)を出力する変更信号検出回路32と、再設定信号がアクティブ状態になった場合に、基準クロックに同期して分周比設定信号を保持し、分周比再設定信号(div_ratio_reload)として出力する設定信号保持回路34とを備えている。
【0045】
変更信号検出回路32は、3つのフリップフロップ(FF)36,38,40と、AND回路42とを備えている。3つのFF36,38,40は、直列に接続され、クロック入力端子には基準クロックが入力されている。1段目のFF36のデータ入力端子Dには分周比更新信号が入力されている。AND回路42の正転入力端子には、2段目のFF38のデータ出力端子Qからの出力信号が入力され、反転入力端子には、3段目のFF40のデータ出力端子Qからの出力信号が入力されている。AND回路42からは、再設定信号が出力されている。
【0046】
設定信号保持回路34は、FF44を備えている。FF44のデータ入力端子Dには分周比設定信号が入力され、イネーブル入力端子ENには再設定信号が入力され、クロック入力端子には基準クロックが入力されている。FF44のデータ出力端子Qからは分周比再設定信号が出力されている。
【0047】
同図に示す分周比更新回路24では、分周比更新信号が立ち上がると、変更信号検出回路32により、その立ち上がりが検出され、分周比更新信号が立ち上がってから、基準クロックの2クロック後に1クロックの時間だけ再設定信号がアクティブ状態であるHになる。再設定信号がアクティブ状態のHになると、その次の基準クロックに同期して、分周比設定信号が設定信号保持回路34に保持され、分周比再設定信号として出力される。
【0048】
続いて、分周比変更回路26には、基準クロック(clk_PLL)、ダウンカウンタ28からのダウンカウント値(downcnt)、および、分周比更新回路24からの分周比再設定信号(div_ratio_reload)が入力されている。
分周比変更回路26は、分周回路18において分周クロックの分周比を急激に変化させた場合に、分周比検出回路20にて分周クロックの分周比の変化の認識が遅れることによる誤動作を防ぐための回路である。
分周比変更回路26は、分周比再設定信号(分周比設定信号)により設定される第1分周比と現在の分周クロックの分周比である第3分周比(cur_div_ratio)とを比較し、両者が異なる場合に、基準クロックに同期して、第3分周比を第1分周比に変更するものである。
分周比変更回路26は、本実施形態の場合、第1分周比と第3分周比とを比較し、第1分周比が第3分周比よりも小さい場合には、分周クロックの所定の周期ごとに、第3分周比が第1分周比と同じになるまで第3分周比を段階的にn(nは1以上の整数)ずつ、例えば、1つずつ減らす。一方で、第1分周比が第3分周比よりも大きい場合には、第3分周比を一気(即座)に第1分周比に変更する。第1分周比と第3分周比とが同じ場合には、第3分周比を変更しない。
【0049】
続いて、ダウンカウンタ28には、基準クロック(clk_PLL)、および、分周比変更回路26からの第3分周比(cur_div_ratio)が入力されている。
ダウンカウンタ(第1カウンタ)28は、基準クロックに同期して、分周比変更回路26により変更された第3分周比から最小値の0までダウンカウントし、そのダウンカウント値(downcnt)を出力するものである。
なお、ダウンカウンタ28の代わりに、0から第3分周比までアップカウントし、そのアップカウント値を出力するアップカウンタを使用することもできる。
【0050】
続いて、波形整形回路30には、ダウンカウンタ28からダウンカウント値(downcnt)が入力される。
波形整形回路30は、ダウンカウント値から、デューティを50%に近づけた分周クロック(clk_DIV)を生成するものである。
【0051】
次に、分周比検出回路20について説明する。
【0052】
図3は、
図1に示す分周比検出回路20の構成を表す一例の回路図である。同図に示す分周比検出回路20は、アップカウンタ46と、分周比決定回路48と、遅延回路50とを備えている。
【0053】
アップカウンタ46には、基準クロック(clk_PLL)および後述する分周クロック検出回路58からの最大値検出信号(pos_det)が入力される。
アップカウンタ(第2カウンタ)46は、分周クロックの1周期ごとに、基準クロックに同期して、最小値の0から最大値(第3分周比)までアップカウントし、そのアップカウント値(count)を出力するものである。
なお、アップカウンタ46の代わりに、最大値から0までダウンカウントし、そのダウンカウント値を出力するダウンカウンタを使用することもできる。
【0054】
同図に示すアップカウンタ46は、AND回路52と、FF(カウンタ)54と、インクリメンタ(+1)56とを備えている。FF54のデータ入力端子DにはAND回路52の出力信号が入力され、クロック入力端子には基準クロックが入力され、データ出力端子Qからはアップカウント値が出力されている。インクリメンタ56にはアップカウント値が入力されている。AND回路52の正転入力端子にはインクリメンタ56の出力信号が入力され、反転入力端子には、最大値検出信号が入力されている。
【0055】
アップカウンタ46では、最大値検出信号がアクティブ状態のHになると、AND回路52の出力信号がLになる。AND回路52の出力信号であるLは、基準クロックに同期してFF54に保持され、FF54から出力されるアップカウント値は0になる。
【0056】
その後、最大値検出信号が非アクティブ状態のLになると、インクリメンタ56によりインクリメント(+1)されたアップカウント値が、AND回路52から出力される。AND回路52からの出力信号は、基準クロックに同期してFF54に保持され、アップカウント値はアップカウントされる。
【0057】
アップカウント値は順次インクリメントされ、基準クロックに同期して0から最大値までアップカウントされる。そして、アップカウント値が最大値になった時、最大値検出信号が再びアクティブ状態のHになると、アップカウント値が0になり、前述の動作が繰り返される。そして、その間、FF54(アップカウンタ46)からは、アップカウント値が出力される。
【0058】
続いて、分周比決定回路48には、基準クロック(clk_PLL)、分周クロック(clk_DIV)、および、アップカウンタ46からのアップカウント値(count)が入力される。
分周比決定回路48は、アップカウント値の最大値を第2分周比として出力するものである。
【0059】
同図に示す分周比決定回路48は、分周クロックが立ち上がったことを検出した場合に、アップカウント値の最大値を第2分周比として出力する。
分周比決定回路48は、基準クロックに同期して分周クロックの立ち上がりを検出し、分周クロックが立ち上がった場合にアクティブ状態になる最大値検出信号(pos_det)を出力する分周クロック検出回路58と、最大値検出信号がアクティブ状態になった場合に、基準クロックに同期してアップカウント値の最大値を保持し、第2分周比(ratio)として出力する最大値検出回路60とを備えている。
なお、分周クロック検出回路58は、分周クロックの立ち下がりを検出し、分周クロックが立ち下がった場合にアクティブ状態になる最大値検出信号を出力することもできる。
【0060】
分周クロック検出回路58は、2つのFF62,64と、AND回路66とを備えている。2つのFF62,64は直列に接続され、クロック入力端子には基準クロックが入力されている。1段目のFF62のデータ入力端子Dには分周クロックが入力されている。AND回路66の正転入力端子には、1段目のFF62のデータ出力端子Qからの出力信号が入力され、反転入力端子には、2段目のFF64のデータ出力端子Qからの出力信号が入力されている。AND回路66からは、最大値検出信号が出力されている。
【0061】
最大値検出回路60は、FF68を備えている。FF68のデータ入力端子Dにはアップカウンタ46のアップカウント値が入力され、イネーブル入力端子ENには最大値検出信号が入力され、クロック入力端子には基準クロックが入力されている。FF68のデータ出力端子Qからは第2分周比が出力されている。
【0062】
分周比決定回路48では、分周クロックが立ち上がると、分周クロック検出回路58により、その立ち上がりが検出され、分周クロックが立ち上がってから、基準クロックの1クロック後に1クロックの時間だけ最大値検出信号がアクティブ状態であるHになる。最大値検出信号がアクティブ状態のHになると、その次の基準クロックに同期して、アップカウント値の最大値が最大値検出回路60に保持され、第2分周比として出力される。
【0063】
続いて、遅延回路50には、基準クロック(clk_PLL)および分周クロック(clk_DIV)が入力されている。
遅延回路50は、基準クロックを遅延しバスクロック(clk_BUS)として出力するものである。
【0064】
同図に示す遅延回路50は、2つのFF70,72を備えている。2つのFF70,72は直列に接続され、クロック入力端子には基準クロックが入力されている。1段目のFF70のデータ入力端子Dには分周クロックが入力され、2段目のFF72のデータ出力端子Qからの出力信号は、バスクロックとして出力されている。
【0065】
遅延回路50では、基準クロックに同期して、分周クロックが基準クロックの2クロックの時間だけ遅延され、バスクロックとして出力される。
【0066】
なお、本実施形態において、分周クロックを基準クロックの2クロックの時間だけ遅延させているのは、後段のデコーダ22において、入力ストローブ信号および出力ストローブ信号を発生させるタイミングを割り当てる際に都合が良いからでる。従って、デコーダ22が、本実施形態の場合と異なる実装であれば、分周クロックを遅延させるクロック数は異なる場合があるし、あるいは、遅延させる必要がない場合もありうる。分周クロックを遅延させる必要がない場合には、分周回路18から出力される分周クロックがそのまま第2デバイス14に入力される。
【0067】
次に、同期システム10の動作を説明する。
まず、基準クロックを8分周した分周クロックを生成する場合を説明する。
【0068】
図4は、分周クロックの分周比が7(8分周)の場合の同期システム10の動作を表す一例のタイミングチャートである。同図に示すように、基準クロック(clk_PLL)は、所定の周波数で動作するクロック信号である。基準クロックを8分周した分周クロックを生成する場合、分周比設定信号(div_ratio)により設定される第1分周比は7である。
なお、同図では、分周比更新信号(div_ratio_update)はLになっているが、このタイミングチャートは、分周比更新信号により制御されるタイミングで、分周比設定信号により第1分周比の7が更新後の第3分周比として既に設定された後の状態を表している。
【0069】
分周クロックの分周比が7場合、分周回路18のダウンカウンタ28のダウンカウント値(div/downcnt)は、第3分周比の7から0までダウンカウントされることを繰り返す。
波形整形回路30から出力される分周クロック(div/clk_DIV)は、カウンタ値7〜4の期間にH、3〜0の期間にLになる。つまり、分周クロックは、基準クロックを8分周したクロック信号である。
【0070】
分周比検出回路20の分周クロック検出回路58から出力される最大値検出信号(ratio_det/pos_det)は、分周クロック(div/clk_DIV)が立ち上がると、その次の基準クロックで1クロックの時間だけアクティブ状態であるHになる。
遅延回路50から出力されるバスクロック(clk_BUS)は、分周クロック(div/clk_DIV)が基準クロックの2クロックの時間だけ遅延されたクロック信号である。
アップカウント値(ratio_det/count)は、最大値検出信号(ratio_det/pos_det)がHになると、その次の基準クロックで0になり、その後、最大値検出信号がLになると、0から最大値の7までアップカウントを繰り返す。
最大値検出回路60から出力される第2分周比(ratio_det/ratio)は、最大値検出信号(ratio_det/pos_det)がHの場合の、アップカウント値(ratio_det/count)の最大値であり、第1分周比と同じ7になる。
【0071】
分周クロックの分周比が7場合、デコーダ22から出力される入力ストローブ信号(strobe_sample)および出力ストローブ信号(strobe_drive)は、それぞれ、アップカウント値が3および0になると、基準クロックの1クロックの時間だけHになるように割り当てられている。
【0072】
図5〜
図10に示すように、分周クロックの分周比が6〜1(7〜2分周)の場合の同期システム10の動作も同様であるから、その詳細な説明は省略する。
分周クロックの分周比が6(7分周)の場合、入力ストローブ信号および出力ストローブ信号は、それぞれ、アップカウント値が3および0の場合にHになるように割り当てられている。
分周クロックの分周比が5(6分周)または4(5分周)の場合、入力ストローブ信号および出力ストローブ信号は、それぞれ、アップカウント値が2および0の場合にHになるように割り当てられている。
分周クロックの分周比が3(4分周)または2(3分周)の場合、入力ストローブ信号および出力ストローブ信号は、それぞれ、アップカウント値が1および0の場合にHになるように割り当てられている。
分周クロックの分周比が1(2分周)の場合、入力ストローブ信号および出力ストローブ信号は、アップカウント値が0の場合にHになるように割り当てられている。
【0073】
次に、分周クロックの分周比を7(8分周)から5(6分周)に変更した場合の同期システム10の動作を説明する。
【0074】
図11は、分周クロックの分周比を7(8分周)から
5(6分周)に変更した場合の同期システム10の動作を表す一例のタイミングチャートである。分周クロックの分周比を7から5に変更する場合、分周比更新信号(div_ratio_update)が立ち上がった後、その次の基準クロック(clk_PLL)に同期して、分周比設定信号(div_ratio)により設定される第1分周比が7から5に変更される。
分周比更新信号が立ち上がると、分周比更新回路24の変更信号検出回路32から出力される再設定信号(reload)は、分周比更新信号が立ち上がってから、基準クロックの2クロック後に1クロックの時間だけHになる。
再設定信号がHになると、その次の基準クロックで分周比設定信号が設定信号保持回路34に保持される。設定信号保持回路34から出力される分周比再設定信号(div_ratio_reload)により設定される第1分周比は、その次の基準クロックで7から5になる。
【0075】
第1分周比が7から5に変化すると、分周比変更回路26により、まず、ダウンカウント値(downcnt)が4回0になるのがカウントされた後、現在の分周クロックの分周比である第3分周比の7と第1分周比の5とが比較される。
その結果、第1分周比が第3分周比よりも小さいことから、変更後の第3分周比(cur_div_ratio)は、その次にダウンカウント値が0になると、その次の基準クロックで7から6に変更される。続いて、第3分周比は、その後、ダウンカウント値が4回0になると、その次の基準クロックで6から5に変更される。つまり、第3分周比は定期的に1つずつ減らされる。
【0076】
第3分周比が7から6になると、ダウンカウント値は、その次にダウンカウント値が0になった後、その次の基準クロックに同期して、変更後の第3分周比の6に設定され、それ以後、基準クロックに同期して、6から0までダウンカウントを繰り返す。
同様に、第3分周比が6から5になると、ダウンカウント値は、その次にダウンカウント値が0になった後、変更後の第3分周比の5に設定され、それ以後、5から0までダウンカウントを繰り返す。
【0077】
波形整形回路30から出力される分周クロック(clk_DIV)は、第3分周比が7(8分周)の場合、ダウンカウント値7〜4の期間にH、3〜0の期間にLになる。第3分周比が7から6(7分周)に変化すると、ダウンカウント値6〜3の期間にH、2〜0の期間にLになる。第3分周比が6から5(6分周)に変化すると、ダウンカウント値5〜3の期間にH、2〜0の期間にLになる。つまり、第3分周比が5の場合、分周クロックは、基準クロックを6分周したクロック信号である。
第3分周比が変化すると、ダウンカウント値のカウント周期の変化に応じて、その次にダウンカウント値が0になった後から、分周クロックの周期が変化する。
【0078】
分周比検出回路20の分周クロック検出回路58から出力される最大値検出信号(ratio_det/pos_det)は、分周クロック(div/clk_DIV)が立ち上がると、その次の基準クロックで1クロックの時間だけアクティブ状態であるHになる。
第3分周比が変化すると、分周クロックの周期の変化に応じて、その次にダウンカウント値が0になった後から、最大値検出信号の周期も変化する。
【0079】
遅延回路50から出力されるバスクロック(clk_BUS)は、分周クロック(div/clk_DIV)が基準クロックの2クロックの時間だけ遅延されたクロック信号である。
【0080】
アップカウント値(ratio_det/count)は、最大値検出信号(ratio_det/pos_det)がHになると、その次の基準クロックで0になり、その後、最大値検出信号がLになると、0から最大値までアップカウントを繰り返す。
第3分周比が変化すると、最大値検出信号の周期の変化に応じて、その次にダウンカウント値が0になった後から、アップカウント値のカウント周期が変化する。
【0081】
最大値検出回路60から出力される第2分周比(ratio_det/ratio)は、最大値検出信号(ratio_det/pos_det)がHの場合の、アップカウント値(ratio_det/count)の最大値であり、第3分周比の変化に応じて定期的に7〜5の順序で段階的に1つずつ変化する。
第3分周比が変化すると、アップカウント値のカウント周期の変化に応じて、その後、ダウンカウント値が2回0になった後に、第2分周比が変化する。
【0082】
デコーダ22から出力される入力ストローブ信号(strobe_sample)および出力ストローブ信号(strobe_drive)は、第2分周比(ratio_det/ratio)が7の場合、および、第2分周比が7から6に変化した場合、それぞれ、アップカウント値が3および0になると、基準クロックの1クロックの時間だけHになるように割り当てられている。同様に、入力ストローブ信号および出力ストローブ信号は、第2分周比が6から5に変化した場合、それぞれ、アップカウント値が2および0になると、基準クロックの1クロックの時間だけHになるように割り当てられている。
【0083】
次に、分周クロックの分周比を5(6分周)から7(8分周)に変更した場合の同期システム10の動作を説明する。
【0084】
図12は、分周クロックの分周比を5(6分周)から7(8分周)に変更した場合の同期システム10の動作を表す一例のタイミングチャートである。分周クロックの分周比を5から7に変更する場合、分周比更新信号(div_ratio_update)が立ち上がった後、その次の基準クロック(clk_PLL)に同期して、分周比設定信号(div_ratio)により設定される第1分周比が5から7に変更される。
分周比更新信号が立ち上がると、分周比更新回路24の変更信号検出回路32から出力される再設定信号(reload)は、分周比更新信号が立ち上がってから、基準クロックの2クロック後に1クロックの時間だけHになる。
再設定信号がHになると、その次の基準クロックで分周比設定信号が設定信号保持回路34に保持され、設定信号保持回路34から出力される分周比再設定信号(div_ratio_reload)により設定される第1分周比は、その次の基準クロックで5から7になる。
【0085】
第1分周比が5から7に変化すると、分周比変更回路26により、現在の分周クロックの分周比である第3分周比の5と第1分周比の7とが比較される。
その結果、第1分周比が第3分周比よりも大きいことから、変更後の第3分周比(cur_div_ratio)は、ダウンカウント値(downcnt)が2回0になった後、その次の基準クロックで5から7に変更される。つまり、第3分周比は一気に第1分周比に変更される。
【0086】
第3分周比が5から7になると、ダウンカウント値は、その次にダウンカウント値が0になった後、その次の基準クロックに同期して、変更後の第3分周比の7に設定され、それ以後、基準クロックに同期して、7から0までダウンカウントを繰り返す。
【0087】
波形整形回路30から出力される分周クロック(clk_DIV)は、第3分周比が5(6分周)の場合、ダウンカウント値5〜3の期間にH、2〜0の期間にLになる。第3分周比が5から7(8分周)に変化すると、ダウンカウント値7〜4の期間にH、3〜0の期間にLになる。つまり、第3分周比が7の場合、分周クロックは、基準クロックを8分周したクロック信号である。
第3分周比が変化すると、ダウンカウント値のカウント周期の変化に応じて、その次にダウンカウント値が0になった後から、分周クロックの周期が変化する。
【0088】
分周比検出回路20の分周クロック検出回路58から出力される最大値検出信号(ratio_det/pos_det)は、分周クロック(div/clk_DIV)が立ち上がると、その次の基準クロックで1クロックの時間だけアクティブ状態であるHになる。
第3分周比が変化すると、分周クロックの周期の変化に応じて、その次にダウンカウント値が0になった後から、最大値検出信号の周期も変化する。
【0089】
遅延回路50から出力されるバスクロック(clk_BUS)は、分周クロック(div/clk_DIV)が基準クロックの2クロックの時間だけ遅延されたクロック信号である。
【0090】
アップカウント値(ratio_det/count)は、最大値検出信号(ratio_det/pos_det)がHになると、その次の基準クロックで0になり、その後、最大値検出信号がLになると、0から最大値までアップカウントを繰り返す。
第3分周比が変化すると、最大値検出信号の周期の変化に応じて、その次にダウンカウント値が0になった後から、アップカウント値のカウント周期が変化する。
【0091】
最大値検出回路60から出力される第2分周比(ratio_det/ratio)は、最大値検出信号(ratio_det/pos_det)がHの場合の、アップカウント値(ratio_det/count)の最大値であり、第3分周比の変化に応じて一気に5から7に変化する。
第3分周比が変化すると、アップカウント値のカウント周期の変化に応じて、その後、ダウンカウント値が2回0になった後に、第2分周比が変化する。
【0092】
デコーダ22から出力される入力ストローブ信号(strobe_sample)および出力ストローブ信号(strobe_drive)は、第2分周比(ratio_det/ratio)が5の場合、それぞれ、アップカウント値が2および0になると、基準クロックの1クロックの時間だけHになるように割り当てられている。同様に、入力ストローブ信号および出力ストローブ信号は、第2分周比が5から7に変化した場合、それぞれ、アップカウント値が3および0になると、基準クロックの1クロックの時間だけHになるように割り当てられている。
【0093】
同期システム10では、分周回路18により生成された分周クロックの分周比を、分周比検出回路20で検出することにより、以下に示す効果を得ることができる。
【0094】
分周比検出回路20は、分周回路18のダウンカウンタ28から出力されるダウンカウント値を使用しない。また、分周比検出回路20のアップカウンタ46から出力されるアップカウント値は、バスクロック(分周クロック)の生成に関わっていない。そのため、
図1に示す同期システム10の構成でCTSを実施しても、分周比検出回路20と第1デバイス12との間で大きなクロックスキューが発生することはなく、
タイミング違反が発生することはない。
【0095】
また、
図1に点線で囲んで示すように、分周回路18が他の回路部分とは別の半導体チップで実装される場合、従来の同期システム80では、分周回路88から出力されるカウント値および分周比設定信号からなる多ビットの信号をデコーダ92に入力する必要があった。これに対し、本実施形態の同期システム10では、両者の間で基準クロックおよび分周クロックの2本だけを接続すればよいため、チップ間を接続するためのピン数を減らすことができる。そのため、チップサイズや基板設計の面で有利になる。
【0096】
さらに、従来の同期システム80のように、分周比設定信号を、分周回路88とデコーダ92の両方に配る場合、分周比設定信号により設定される第1分周比を変化させるタイミングが非常に厳しい。これに対し、本実施形態の同期システム10では、分周比設定信号を分周回路18だけに配っており、分周比検出回路20には関係がないため、第1分周比を変化させるタイミングの問題を解消することができる。
【0097】
本実施形態の場合、分周クロックの分周比をいくつに設定した場合であっても、バスクロックの立ち上がりの基準クロックのサイクルで出力ストローブ信号、立ち下がりの1クロック前の基準クロックで入力ストローブ信号を発生させている。
また、例えば、分周クロックの分周比が6の場合、アップカウント値が分周比と同じ6以上の値の場合には、入力ストローブ信号および出力ストローブ信号ともに発生しない。他の分周比の場合も同じである。
【0098】
なお、分周クロックの分周比をいくつに設定する場合においても、アップカウント値が最大値になる基準クロックのサイクルでは、入力ストローブ信号および出力ストローブ信号のどちらも生成していない。
【0099】
その理由は、アップカウント値が最大値になる基準クロックのサイクルは、第3分周比の変更中に欠ける、もしくは、加わる場合があるが、その場合であっても何ら問題が発生しないようにするためである。第3分周比を変更する際には、まず、分周回路18において第3分周比が変更され、分周クロックの周波数が変更されてから、その変更が分周比検出回路20において認識され、分周クロックの周波数が検出される。そのため、分周比検出回路20において検出されている分周比が、例えば、まだ8であるのに対して、分周クロックの分周比は、7もしくは9という場合がある。
【0100】
しかし、このような場合であっても、アップカウント値が最大値になる基準クロックのサイクルで入力ストローブ信号および出力ストローブ信号を発生させなければ、同期システム10は正常に動作することができる。
【0101】
例えば、
図11に示すように、分周クロックの分周比を7から5に変更する場合には、第3分周比が変化するたびにアップカウント値の7および6が欠けていき、
図12に示すように、分周クロックの分周比を5から7に変更する場合には、第3分周比が変化するたびにアップカウント値の6および7が加わっている。
しかし、どちらの場合にも、入力ストローブ信号および出力ストローブ信号は常に交互に発生しており、同期システム10の動作には何ら問題は発生しない。
【0102】
また、分周比変更回路26は、第1分周比が第3分周比よりも小さい場合に、第3分周比を定期的に2以上ずつ減らすことも可能である。例えば、第3分周比を2つずつ減らしたい場合、アップカウント値が最大値になる基準クロックのサイクルだけでなく、その1つ前の基準クロックのサイクルでも入力ストローブ信号および出力ストローブ信号を発生しないように割り当てることができればよい。
つまり、分周比変更回路26が、第1分周比が第3分周比よりも小さい場合に、分周クロックの所定の周期ごとに、第3分周比が第1分周比と同じになるまで第3分周比を段階的にm(mは2以上の整数)ずつ減らすものである場合、デコーダ22は、アップカウント値が最大値から(最大値−(m−1))までの基準クロックのサイクルでは、ストローブ信号を生成しないように割り当てることができればよい。
【0103】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。