以下、本発明の実施の形態を図面を参照して説明する。図1は本発明の半導体装置の原理図である。半導体装置10は、クロック分周を行う装置であり、例えば、標準的なCMOSプロセスで作成されて、高周波回路で利用される装置である。
また、半導体装置10は、2本の入力端子と2本の出力端子を有する4つのフリップフロップ10−1〜10−4を含む。これらのフリップフロップは、第1の入力端子にアクティブな入力(正論理ならHigh、負論理ならLow)を加えるとセット状態になり、第2の入力端子にアクティブな入力を加えるとリセット状態になるフリップフロップである。
フリップフロップ10−1〜10−4は、4段直列に配置して、前段の第2の出力端子が後段の第2の入力端子に接続し、最終段の第2の出力端子が初段の第2の入力端子に接続する端子接続構成をとる。また、第1の入力端子へクロックを入力した場合、デューティ・サイクルの影響を受けない動作周波数を持つ2分周の信号を第1の出力端子から出力することになる。
なお、ここでいうフリップフロップは、具体的にはRS型のフリップフロップである。また、2つのNANDのたすきがけ接続構成のRS型フリップフロップならば負論理の動作をし、2つのNORのたすきがけ接続構成のRS型フリップフロップならば正論理の動作をする。本発明の詳細動作については後述する。
次に本発明が解決すべき問題点について、デューティ・サイクルの劣化が分周器の動作周波数帯域を低下させる理由について説明する。図2は理想的なデューティ特性のクロックを示す図である。クロックCK1、CK2は、デューティ・サイクルが劣化していない状態を示している。なお、デューティが50%、すなわち、Highの区間とLowの区間の比率が50:50のときを、劣化が生じていない理想的なデューティとする。
クロックCK1、CK2は共に1周期がTpで、互いに反転関係を有するクロックである。そして、2つのクロックCK1、CK2の立ち下がりエッジ(図中、白丸)の間隔は半周期(=Tp/2)毎の等間隔となっており、正常な反転関係が保たれている(正常な反転関係とは、クロックCK1のLow区間ではクロックCK2はHigh区間になっており、クロックCK1のHigh区間ではクロックCK2はLow区間になっているということ)。
図3はデューティ特性が劣化したクロック例を示す図である。図2に示したクロックCK1、CK2のデューティ・サイクルが劣化した様子を示している。クロックCK1、CK2の立ち下がりエッジの間隔は、半周期ごとの等間隔であることに変わりはないが、1周期においてHighの区間とLowの区間の比率が50:50の関係になっておらず、クロックCK1、CK2のデューティは劣化している(図ではHigh区間>Low区間となっている)。また、クロックCK1、CK2の反転関係が崩れている(例えば、クロックCK1のHighの区間に、クロックCK2はLow区間とHigh区間の両方が存在しているということ)。
本発明では、図3に示すような、デューティ・サイクルが劣化し反転関係が崩れたクロック(以下、単に劣化クロックとも呼ぶ)を入力しても正常に分周できる分周器(半導体装置)を提供するものである。
図4は分周器の構成を示す図である。2分周を行う従来の分周器30を示している。分周器30は、D型フリップフロップのラッチ(Latch)31、32から構成される。ラッチ31では、入力クロックCK1のエッジに同期して、D端子に入力したHighまたはLowのデータがQ端子から出力し、ラッチ32のD端子に入力する。そして、ラッチ32に入力したデータは、QX端子から反転出力し、ラッチ31のD端子に入力する。
素子の接続関係を記すと、クロックCK1は、ラッチ31のCK端子とラッチ32のCKX端子に入力する。クロックCK2は、ラッチ31のCKX端子とラッチ32のCK端子に入力する。ラッチ31のD端子は、ラッチ32のQX端子と接続し、ラッチ31のQ端子は、ラッチ32のD端子と接続する(図中の符号N1、N2は後述の説明に使用する)。
図5はラッチ回路の内部構成を示す図である。ラッチ(ラッチ31、32共に)は、Transfer gateTg11、Tg12及びインバータIv11〜Iv13から構成される。なお、Transfer gateTg11、Tg12は、PchとNchそれぞれのドレインとソースをつなげて構成したFET(Field Effect Transistor)であり、PchゲートGが低電位でNchゲートGが高電位の反転関係になったときに、スイッチONとなる(Transfer gateが開き、電流がドレイン→ソースへ流れる)。
また、クロックの接続関係から、Transfer gateTg11がONのときはTransfer gateTg12はOFF、Transfer gateTg11がOFFのときはTransfer gateTg12はONとなる。
各素子の接続関係を記すと、CK端子は、Transfer gateTg11のNchゲートGと、Transfer gateTg12のPchゲートGと接続する。CKX端子は、Transfer gateTg11のPchゲートGと、Transfer gateTg12のNchゲートGと接続する。
D端子は、Transfer gateTg11のドレインDと接続し、Transfer gateTg11のソースSは、Transfer gateTg12のドレインDとインバータIv11の入力部と接続する。インバータIv12の出力部は、Transfer gateTg12のソースSと接続し、インバータIv12の入力部は、インバータIv11の出力部と、インバータIv13の入力部と、QX端子と接続する。インバータIv13の出力部はQ端子と接続する。
次に図3に示した劣化クロックが図4の分周器30に入力した場合の動作周波数について解析する。図6は分周器30の内部構成を示す図である。ラッチ31はTransfer gateTg1、Tg2、インバータIv1〜Iv3を含み、ラッチ32はTransfer gateTg3、Tg4、インバータIv4〜Iv6を含む。
素子の接続関係を記すと、クロックCK1は、ラッチ31のCK端子及びラッチ32のCKX端子に入力するので、Transfer gateTg1のNchゲートG、Transfer gateTg2のPchゲートG、Transfer gateTg3のPchゲートG、Transfer gateTg4のNchゲートGが接続する。また、クロックCK2は、ラッチ31のCKX端子及びラッチ32のCK端子に入力するので、Transfer gateTg1のPchゲートG、Transfer gateTg2のNchゲートG、Transfer gateTg3のNchゲートG、Transfer gateTg4のPchゲートGが接続する。
また、ラッチ31のD端子とラッチ32のQX端子が接続するので、Transfer gateTg1のドレインD、インバータIv4の出力部、インバータIv5、Iv6の入力部が接続する。さらに、ラッチ31のQ端子とラッチ32のD端子が接続するので、インバータIv3の出力部とTransfer gateTg3のドレインDが接続する。その他のラッチ内部の接続関係は図5で上述したので説明は省略する(図中の符号N1〜N4は後述の説明に使用する)。
ここで、Tpをクロックの1周期の区間、ThalfをクロックのLow区間として、クロックのデューティを式(1)で定義する。
図7は分周器30の動作を示すタイムチャートである。図3に示したような劣化クロックとして、Duty<0.5の場合のクロックが、分周器30へ入力した際の動作として、クロックCK1、CK2、N1ポイントにおけるデータ、N2ポイントにおけるデータを示している。なお、Duty<0.5とは、上記の定義式(1)から、1周期のTp内においてLow区間がHigh区間よりも短いクロックである。
次に分周器30に対して、劣化クロックが入力した場合の動作条件について考える。図7のタイムチャートからわかるように、クロックCK2の立ち下がりのtck2 fallのときに、クロックCK1はHighレベルであるから、ラッチ31のTransfer gateTg1は開くことになる。
また、クロックCK2のtck2 fallの立ち下がりエッジから次に変化するクロックエッジは、クロックCK2のtck2 riseの立ち上がりエッジである。クロックCK2の立ち上がりtck2 riseで、ラッチ31のTransfer gateTg2及びラッチ32のTransfer gateTg3のNchゲートGがHighとなるので、Transfer gateTg2、Tg3に対して開通条件の1つが与えられることになる。
ここで、図6のN1ポイントにあるデータは、ラッチ31のTransfer gateTg1が完全に開通するtck2 fallから、ラッチ31のTransfer gateTg2とラッチ32のTransfer gateTg3が開き始めるtck2 riseまでに、ラッチ31のTransfer gateTg2の手前のN3ポイント及びN2ポイントに伝達されていなければならない(動作条件1とする)。
図8は動作条件1が表す伝達経路を示す図である。経路Aは、N1ポイントにあったデータが、N3ポイントに到達するまでの経路を示しており、Transfer gateTg1→インバータIv1→インバータIv2の素子を通過する。経路Bは、N1ポイントにあったデータが、N2ポイントに到達するまでの経路を示しており、Transfer gateTg1→インバータIv1→インバータIv3の素子を通過する。
ここで、インバータIv1〜Iv6それぞれの遅延時間をDinv、TransfergateTg1〜Tg4の遅延時間をDgateとすると、動作条件1の内容は、以下の式(2)で表せる。
式(2)の左辺は、ラッチ31のTransfer gateTg1が開通するtck2 fallから、ラッチ31のTransfer gateTg2とラッチ32のTransfer gateTg3が開き始めるtck2 riseまでの差分の時間を表し、右辺はN1ポイントのデータが、N3ポイントまたはN2ポイントまで到達するのにかかる所要時間を表している。動作条件1の内容から、右辺の到達所要時間は、左辺に示す時間よりも小さくなる必要がある。
なお、式(2)の右辺の2Dinv+Dgateは、経路Aに関する(インバータIv1のDinv)+(インバータIv2のDinv)+(Transfer gateTg1のDgate)、または経路Bに関する(インバータIv1のDinv)+(インバータIv3のDinv)+(Transfer gateTg1のDgate)を表している(どちらも同じ値なのでいずれでもよい)。
一方、図7のタイムチャートからわかるように、クロックCK1の立ち下がりのtck1 fallのときに、クロックCK2はHighレベルであるから、ラッチ32のTransfer gateTg3は開くことになる。
また、クロックCK1のtck1 fallの立ち下がりエッジから次に変化するクロックエッジは、クロックCK1のtck1 riseの立ち上がりエッジである。クロックCK1の立ち上がりtck1 riseで、ラッチ32のTransfer gateTg4及びラッチ31のTransfer gateTg1のNchゲートGがHighとなるので、Transfer gateTg4、Tg1に対して開通条件の1つが与えられることになる。
ここで、図6のN2ポイントにあるデータは、ラッチ32のTransfer gateTg3が開通するtck1 fallから、ラッチ32のTransfer gateTg4とラッチ31のTransfer gateTg1が開き始めるtck1 riseまでに、ラッチ32のTransfer gateTg4の手前のN4ポイント及びN1ポイントに伝達されていなければならない(動作条件2とする)。
図9は動作条件2が表す伝達経路を示す図である。経路Cは、N2ポイントにあったデータが、N4ポイントに到達するまでの経路を示しており、Transfer gateTg3→インバータIv4→インバータIv5の素子を通過する。経路Dは、N2ポイントにあったデータが、N1ポイントに到達するまでの経路を示しており、Transfer gateTg3→インバータIv4の素子を通過する。
動作条件2の内容は以下の式(3)で表せる。
式(3)の左辺は、ラッチ32のTransfer gateTg3が開通するtck1 fallから、ラッチ32のTransfer gateTg4とラッチ31のTransfer gateTg1が開き始めるtck1 riseまでの差分の時間を表し、右辺はN2ポイントのデータが、N4ポイントまで到達するのにかかる所要時間を表している(経路Dよりも所要時間がかかる、条件の厳しい方の経路Cを選択している)。動作条件2の内容から右辺の到達所要時間は、左辺に示す時間よりも小さくなる必要がある。
なお、式(3)の右辺の2Dinv+Dgateは、経路Cに関する(インバータIv4のDinv)+(インバータIv5のDinv)+(Transfer gateTg3のDgate)を表している。
ここで、式(2)の左辺のtck2 rise−tck2 fallは、クロックCK2のLow区間に該当するので、tck2 rise−tck2 fall=Thalfであり、式(1)より、式(4)で表せる。
同様に、式(3)の左辺のtck1 rise−tck1 fallは、クロックCK1のLow区間に該当するので、tck1 rise−tck1 fall=Thalfであり、式(1)より、式(5)で表せる。
したがって、最高動作周波数をFmaxとすれば、式(2)と式(4)、または式(3)と式(5)から、Fmaxは式(6)のように表せる。式(6)から、Duty<0.5の場合、分子の値が小さくなるので、最高動作周波数Fmaxの値は低下することがわかる。
次にDuty>0.5の劣化クロックを分周器30へ入力した場合の動作条件について考える。図10は分周器30の動作を示すタイムチャートである。図3に示したような劣化クロックとして、Duty>0.5の場合のクロックを、分周器30へ入力した際の動作として、クロックCK1、CK2、N1ポイントにおけるデータ、N2ポイントにおけるデータを示している。なお、Duty>0.5とは、上記のDutyの定義式(1)から、1周期のTp内においてLow区間がHigh区間よりも長いクロックである。
図10のタイムチャートからわかるように、クロックCK1の立ち上がりのtck1 riseのときに、クロックCK2はLowレベルであるから、図6に示すラッチ31のTransfer gateTg1は開くことになる。
また、クロックCK1のtck1 riseの立ち上がりエッジから次に変化するクロックエッジは、クロックCK1のtck1 fallの立ち下がりエッジである。クロックCK1の立ち下がりtck1 fallで、ラッチ31のTransfer gateTg2及びラッチ32のTransfer gateTg3のPchゲートGがLowとなるので、Transfer gateTg2、Tg3に対して開通条件の1つが与えられることになる。
ここで、図6のN1ポイントにあるデータは、ラッチ31のTransfer gateTg1が開通するtck1 riseから、ラッチ31のTransfer gateTg2とラッチ32のTransfer gateTg3が開き始めるtck1 fallまでに、ラッチ31のTransfer gateTg2の手前のN3ポイント及びN2ポイントに伝達されていなければならない(動作条件3とする)。なお、動作条件3が表す伝達経路は図8で示した経路と同様である。
動作条件3の内容は以下の式(7)で表せる。
式(7)の左辺は、ラッチ31のTransfer gateTg1が開通するtck1 riseから、ラッチ31のTransfer gateTg2とラッチ32のTransfer gateTg3が開き始めるtck1 fallまでの差分の時間を表し、右辺はN1ポイントのデータが、N3ポイントまたはN2ポイントまで到達するのにかかる所要時間を表している。動作条件3の内容から右辺の到達所要時間は、左辺に示す時間よりも小さくなる必要がある。なお、式(7)の右辺の2Dinv+Dgateが表す遅延時間に該当する素子は、式(2)の右辺が表す素子と同じである。
一方、次に図10のタイムチャートからわかるように、クロックCK2の立ち上がりのtck2 riseのときに、クロックCK1はLowレベルであるから、ラッチ32のTransfer gateTg3は開くことになる。
また、クロックCK2のtck2 riseの立ち上がりエッジから次に変化するクロックエッジは、クロックCK2のtck2 fallの立ち下がりエッジである。クロックCK2の立ち下がりtck2 fallで、ラッチ32のTransfer gateTg4及びラッチ31のTransfer gateTg1のPchゲートGがLowとなるので、Transfer gateTg4、Tg1に対して開通条件の1つが与えられることになる。
ここで、図6のN2ポイントにあるデータは、ラッチ32のTransfer gateTg3が開通するtck2 riseから、ラッチ32のTransfer gateTg4とラッチ31のTransfer gateTg1が開き始めるtck2 fallまでに、ラッチ32のTransfer gateTg4の手前のN4ポイント及びN1ポイントに伝達されていなければならない(動作条件4とする)。なお、動作条件4が表す伝達経路は図9で示した経路と同様である。
動作条件4の内容は以下の式(8)で表せる。
式(8)の左辺は、ラッチ32のTransfer gateTg3が開通するtck2 riseから、ラッチ32のTransfer gateTg4とラッチ31のTransfer gateTg1が開き始めるtck2 fallまでの差分の時間を表し、右辺はN2ポイントのデータが、N4ポイントまで到達するのにかかる所要時間を表している(式(3)と同様に、経路Dよりも所要時間がかかる、条件の厳しい経路Cの方を選択している)。動作条件4の内容から右辺の到達所要時間は、左辺に示す時間よりも小さくなる必要がある。なお、式(8)の右辺の2Dinv+Dgateが表す遅延時間に該当する素子は、式(3)の右辺が表す素子と同じである。
ここで、式(7)の左辺のtck1 fall−tck1 riseは、クロックCK1のHigh区間に該当するので、tck1 fall−tck1 rise=Tp−Thalfであり、式(1)より、式(9)で表せる。
同様に、式(8)の左辺のtck2 fall−tck2 riseは、クロックCK2のHigh区間に該当するので、tck2 fall−tck2 rise=Tp−Thalfであり、式(1)より、式(10)で表せる。
したがって、最高動作周波数をFmaxは、式(7)と式(9)、または式(8)と式(10)から、Fmaxは式(11)のように表せる。式(11)から、Duty>0.5の場合、分子の値が小さくなるので、最高動作周波数Fmaxの値は低下することがわかる。
次に従来の分周器の他の例について説明する。図11は分周器の構成を示す図である。2分周を行う従来の分周器30aは、図4で示した分周器30のクロックCK1、CK2のかわりに、クロックCK3を反転して2つのクロックを生成し動作させる回路である(インバータIv7の入力をクロックCK3、その反転出力をクロックCK4とする)。
クロックCK3は、インバータIv7の入力部と、ラッチ31のCK端子及びラッチ32のCKX端子と接続する。インバータIv7の出力部は、ラッチ31のCKX端子及びラッチ32のCK端子と接続する。その他の接続関係は図4と同様である。
次に劣化クロックを図11の分周器30aに入力した場合の動作周波数について上記と同様にして解析する。図12は分周器30aの内部構成を示す図である。素子の接続関係は、インバータIv7が追加されていること以外は、図6と同様なので説明は省略する。
図13は分周器30aの動作を示すタイムチャートである。劣化クロックとして、Duty<0.5の場合のクロックが、分周器30aへ入力した際の動作として、クロックCK3、CK4、N1ポイントにおけるデータ、N2ポイントにおけるデータを示している。なお、2つのクロックCK3、CK4は、インバータIv7の遅延時間分(図中、Dinv)ずれるため、完全な反転関係にはならない。
図13のタイムチャートからわかるように、クロックCK4の立ち下がりのtck4 fallのときに、クロックCK3はHighレベルであるから、ラッチ31のTransfer gateTg1は開くことになる。
また、クロックCK4のtck4 fallの立ち下がりエッジから次に変化するクロックエッジは、クロックCK3のtck3 fallの立ち下がりエッジである。クロックCK3の立ち下がりtck3 fallで、ラッチ31のTransfer gateTg2及びラッチ32のTransfer gateTg3のPchゲートGがLowとなるので、Transfer gateTg2、Tg3に対して開通条件の1つが与えられることになる。
ここで、図12のN1ポイントにあるデータは、ラッチ31のTransfer gateTg1が開通するtck4 fallから、ラッチ31のTransfer gateTg2とラッチ32のTransfer gateTg3が開き始めるtck3 fallまでに、ラッチ31のTransfer gateTg2の手前のN3ポイント及びN2ポイントに伝達されていなければならない(動作条件5とする)。なお、動作条件5が表す伝達経路は図8で示した経路と同様である。
動作条件5の内容は以下の式(12)で表せる。
式(12)の左辺は、ラッチ31のTransfer gateTg1が開通するtck3 fallから、ラッチ31のTransfer gateTg2とラッチ32のTransfer gateTg3が開き始めるtck4 fallまでの差分の時間を表し、右辺はN1ポイントのデータが、N3ポイントまたはN2ポイントまで到達するのにかかる所要時間を表している。動作条件5の内容から、右辺の到達所要時間は、左辺に示す時間よりも小さくなる必要がある。なお、式(12)の右辺の2Dinv+Dgateが表す遅延時間に該当する素子は、式(2)の右辺が表す素子と同じである。
一方、次に図13のタイムチャートからわかるように、クロックCK4の立ち上がりのtck4 riseのときに、クロックCK3はLowレベルであるから、ラッチ32のTransfer gateTg3は開くことになる。
また、クロックCK4のtck4 riseの立ち上がりエッジから次に変化するクロックエッジは、クロックCK3のtck3 riseの立ち上がりエッジである。クロックCK3の立ち上がりtck3 riseで、ラッチ32のTransfer gateTg4及びラッチ31のTransfer gateTg1のNchゲートGがHighとなるので、Transfer gateTg4、Tg1に対して開通条件の1つが与えられることになる。
ここで、図12のN2ポイントにあるデータは、ラッチ32のTransfer gateTg3が開通するtck4 riseから、ラッチ32のTransfer gateTg4とラッチ31のTransfer gateTg1が開き始めるtck3 riseまでに、ラッチ32のTransfer gateTg4の手前のN4ポイント及びN1ポイントに伝達されていなければならない(動作条件6とする)。なお、動作条件6が表す伝達経路は図9で示した経路と同様である。
動作条件6の内容は以下の式(13)で表せる。
式(13)の左辺は、ラッチ32のTransfer gateTg3が完全に開通するtck4 riseから、ラッチ32のTransfer gateTg4とラッチ31のTransfer gateTg1が開き始めるtck3 riseまでの差分の時間を表し、右辺はN2ポイントのデータが、N4ポイントまで到達するのにかかる所要時間を表している(経路Dよりも所要時間がかかる、条件の厳しい経路Cの方を選択している)。動作条件6の内容から右辺の到達所要時間は、左辺に示す時間よりも小さくなる必要がある。なお、式(13)の右辺の2Dinv+Dgateが表す遅延時間に該当する素子は、式(3)の右辺が表す素子と同じである。
ここで、式(12)の左辺のtck3 fall−tck4 fallは、クロックCK4のLow区間からインバータIv7の遅延時間分を差し引いた値となるので、tck3 fall−tck4 fall=Thalf−Dinvであり、式(1)より、式(14)で表せる。
また、式(13)の左辺のtck3 rise−tck4 riseは、クロックCK4のHigh区間からインバータIv7の遅延時間分を差し引いた値となるので、tck3 rise−tck4 rise=TP−Thalf−Dinvであり、式(1)より、式(15)で表せる。
そして、式(14)を式(12)に代入して式(16)を得て、式(15)を式(13)に代入して式(17)を得る。
Duty<0.5の場合は、式(16)、式(17)に対し、式(16)の方がより厳しい条件であるので、式(16)の方を選択すると、最高動作周波数をFmaxは、式(18)のように表せる。式(18)から、Duty<0.5の場合、最高動作周波数Fmaxの値は低下することがわかる。
次にDuty>0.5の劣化クロックを分周器30aへ入力した場合の動作条件について考える。図14は分周器30aの動作を示すタイムチャートである。Duty>0.5の場合のクロックを、分周器30aへ入力した際の動作として、クロックCK3、CK4、N1ポイントにおけるデータ、N2ポイントにおけるデータを示している。図13と同様に、インバータIv7による遅延時間により、クロックCK3、CK4は完全な反転関係にはならない。
図14のタイムチャートからわかるように、クロックCK4の立ち下がりのtck4 fallのときに、クロックCK3はHighレベルであるから、ラッチ31のTransfer gateTg1は開くことになる。
また、クロックCK4のtck4 fallの立ち下がりエッジから次に変化するクロックエッジは、クロックCK3のtck3 fallの立ち下がりエッジである。クロックCK3の立ち下がりtck3 fallで、ラッチ31のTransfer gateTg2及びラッチ32のTransfer gateTg3のPchゲートGがLowとなるので、Transfer gateTg2、Tg3に対して開通条件の1つが与えられることになる。
ここで、図12のN1ポイントにあるデータは、ラッチ31のTransfer gateTg1が開通するtck4 fallから、ラッチ31のTransfer gateTg2とラッチ32のTransfer gateTg3が開き始めるtck3 fallまでに、ラッチ31のTransfer gateTg2の手前のN3ポイント及びN2ポイントに伝達されていなければならない(動作条件7とする)。なお、動作条件7が表す伝達経路は図8で示した経路と同様である。また、動作条件7の内容を表す式は、上述した式(12)と同じ形になる。
一方、次に図14のタイムチャートからわかるように、クロックCK4の立ち上がりのtck4 riseのときに、クロックCK3はLowレベルであるから、ラッチ32のTransfer gateTg3は開くことになる。
また、クロックCK4のtck4 riseの立ち上がりエッジから次に変化するクロックエッジは、クロックCK3のtck3 riseの立ち上がりエッジである。クロックCK3の立ち上がりtck3 riseで、ラッチ32のTransfer gateTg4及びラッチ31のTransfer gateTg1のNchゲートGがHighとなるので、Transfer gateTg4、Tg1に対して開通条件の1つが与えられることになる。
ここで、図12のN2ポイントにあるデータは、ラッチ32のTransfer gateTg3が開通するtck4 riseから、ラッチ32のTransfer gateTg4とラッチ31のTransfer gateTg1が開き始めるtck3 riseまでに、ラッチ32のTransfer gateTg4の手前のN4ポイント及びN1ポイントに伝達されていなければならない(動作条件8とする)。なお、動作条件8が表す伝達経路は図9で示した経路と同様である。また、動作条件8の内容を表す式は、上述した式(13)と同じ形になる。
動作条件7、8はそれぞれ式(12)、式(13)となるので、上記と同様にして、式(16)、式(17)が得られる。
Duty>0.5の場合は、式(16)、式(17)に対し、式(17)の方がより厳しい条件であるので、式(17)の方を選択すると、最高動作周波数をFmaxは、式(19)のように表せる。式(19)から、Duty>0.5の場合、最高動作周波数Fmaxの値は低下することがわかる。
以上説明したように、デューティ特性が劣化すると動作周波数帯域の低下を招くことになり、このような分周クロックをデバイスの入力クロックとして使用すると、デバイスの性能を大幅に低下させてしまう。したがって、本発明は、CMOS回路で高速動作可能であり、デューティ・サイクルが劣化したクロックを入力しても動作周波数を低下させることなく、入力クロックの分周クロックを高精度に生成する半導体装置を提供するものである。
次に本発明の半導体装置10の具体的な回路構成及び動作について詳しく説明する。図15は半導体装置10の構成を示す図である。半導体装置10は、入力端子にS(set)端子とR(reset)端子、出力端子にQ端子とQX端子を持つRS型フリップフロップ(以下、RS−FFと表記)10−1〜10−4を4個含む構成をとる。第1の入力端子がS端子、第2の入力端子がR端子、第2の出力端子がQ端子、第1の出力端子がQX端子である(なお、図15に示すRS−FFは、後述するようにNAND素子で構成され、負論理を基準に動作するものであるので、S、Rの上にバーをつけて表記するのが一般的であるが、明細書中ではこの記載ができないために、バーを省略して単にS、Rというように記載する(図ではバーを付けて示す))。
接続関係を記すと、クロックCK1は、1段目のRS−FF10−1のS端子と3段目のRS−FF10−3のS端子に入力する。クロックCK2は、2段目のRS−FF10−2のS端子と4段目のRS−FF10−4のS端子に入力する。
また、RS−FF10−1のR端子とRS−FF10−4のQ端子が接続する。RS−FF10−1のQ端子とRS−FF10−2のR端子が接続し、RS−FF10−2のQ端子とRS−FF10−3のR端子が接続し、RS−FF10−3のQ端子とRS−FF10−4のR端子が接続する。なお、Q1〜Q4から2分周された分周信号が出力することになる。
図16はRS−FFの内部構造を示す図である。RS−FF(RS−FF10−1〜10−4すべて)は、2つのNAND素子IC1、IC2から構成される。接続関係は、NAND素子IC1の一方の入力端子はS端子となり、出力端子はQ端子となる。NAND素子IC2の一方の入力端子はR端子となり、出力端子はQX端子となる。NAND素子IC1の他方の入力端子はNAND素子IC2の出力端子QXと接続し、NAND素子IC2の他方の入力端子はNAND素子IC1の出力端子Qと接続する。
図17は半導体装置の動作を示すタイムチャートである。デューティ・サイクルが劣化し、互いに反転関係を満たしていないクロックCK1、CK2が入力した場合に対して、RS−FF10−1のR端子、Q端子、QX端子のデータ波形を示している。
クロックCK1(または、クロックCK2)の1周期のクロック・サイクルをta、Qデータの1周期のサイクルをtbとすると、2周期分のクロック・サイクル2taに対して、Qデータは1周期分のサイクルtb(=2ta)のデータを繰り返して出力する。したがって、劣化クロックが入力した場合でも、正常にクロックが2分周されて出力していることがわかる。
2分周されたデータは、RS−FF10−1〜10−4の任意のQ端子からとってもよい(任意のQ端子から他デバイスへ分配入力してもよい)。なお、4個のRS−FF10−1〜10−4は、4分の1周期ずつずれた動作をしているので、それぞれのQ端子から引き出された4相のクロックQ1〜Q4は、4分の1周期ずつずれたクロックとなる。また、RS−FF10−1〜10−4はすべて同一構成であるから、4相のクロックの4分の1周期間隔からのずれは小さくなる。
図18は半導体装置10の動作を示すタイムチャートである。図17で示した波形に対して、遅延関係を含めた詳細なタイムチャートを示している。クロックCK1、CK2のエッジ変化によるRデータとQデータの変化を示す。
〔S1〕クロックCK1の立ち下がりでQデータの立ち上がりを引き起こす。
〔S2〕Qデータの立ち上がりでQXデータの立ち下がりを引き起こす。
〔S3〕クロックCK2の立ち上がりでRデータの立ち下がりを引き起こす。
〔S4〕Rデータの立ち下がりでQXデータの立ち上がりを引き起こす。
〔S5〕クロックCK1の立ち上がりでQデータは立ち下がりを引き起こす。
〔S6〕クロックCK2の立ち下がりでRデータの立ち上がりを引き起こす。
ステップS1〜S6についてまとめると、CK1(1st fall)→Q(rise)→QX(fall)、CK2(1st rise)→R(fall)→QX(rise)、CK1(2nd rise)→Q(fall)、CK2(2nd fall)→R(rise)となる。
次にステップS1〜S6の動作が正しく行われる条件を考える。まず、Q、QXの変化点として、最初にあるQのtQ riseについて見ると、Qデータの立ち上がりtQ riseよりもtR fallが時間的に後にこないと(tR fallがtQ riseよりも右の位置)、QXデータのLow区間の幅Bwがなくなるので、式(20)の条件が成り立つ。
また、次のデータ変化点として、QXのtQX riseについて見ると、QXデータがHighのときに、クロックCK1の2番目の立ち上がりtck1 riseで、QデータがLowとなるので、QXデータの立ち上がりtQX riseは、クロックCK1の2番目の立ち上がりtck1 riseよりも時間的に先にこなければならない(tQX riseがtck1 riseよりも左の位置)。したがって、式(21)の条件が成り立つ。
さらに、次のデータ変化点として、QのtQ fallについて見ると、もし、Qデータの立ち下がりtQ fallがRデータの立ち上がりtR riseよりも時間的に後にきてしまうと、QXデータは再びLowとなってしまうので、QXのtQX rise以降のHighが存在するためには、Qデータの立ち下がりtQ fallはRデータの立ち上がりtR riseよりも時間的に先にこなければならない(tQ fallがtR riseよりも左の位置)。したがって、式(22)の条件が成り立つ。
ここで、NAND素子の遅延時間をDnandとし、Dutyは式(1)と同じに定義すると(ただし、Thalfは、クロックCK1、CK2のHigh区間とする)、以下の式(23a)〜式(23f)が導き出せる。
それぞれの式の内容について説明すると、式(23a)では、tQ riseはクロックCK1の立ち下がりで引き起こされるので、クロックCK1の立ち下がりからtQ riseまでの間隔は、NAND素子1個分の遅延時間Dnandと等しい。
式(23b)では、tck2 riseの立ち上がりで、tR fallの立ち下がりが引き起こされるが、これはRS−FF10−4のSデータの立ち上がりでQXデータが立ち下がることであるから、tck2 riseとtR fallの間隔は、NAND素子1個分の遅延時間Dnandと等しい。したがって、3TP/2からThalf(=Duty×TP)を差し引いた時間にDnandを加えた時間がtR fallとなる。
式(23c)では、tQX riseはRの立ち下がりtR fallで引き起こされるので、tQX riseからtR fallまでの間隔は、NAND素子1個分の遅延時間Dnandと等しい。また、tR fallが式(23b)であるから、tQX riseは、3TP/2からThalfを差し引いた時間にDnand×2を加えた時間となる。
式(23d)では、tck1 riseは、クロックCK1の立ち上がりから立ち下がり区間のHigh幅分なので、TPからThalfを差し引いた時間となる。式(23e)では、tQ fallはクロックCK1の2番目の立ち上がりtck1 riseで引き起こされるので、クロックCK1の2番目の立ち上がりからtQ fallまでの間隔は、NAND素子1個分の遅延時間Dnandと等しい。したがって、TPと、クロックCK1のLow幅(tck1 rise)と、Dnandを加算した値がtQ fallとなる。
式(23f)では、クロックCK2の立ち下がりでtR riseが引き起こされるので、NAND素子1個分の遅延時間Dnandと等しい。したがって、3TP/2とDnandを加えた時間がtR riseとなる。
ここで、式(23a)と式(23b)を式(20)に代入すると、式(24)となる。
また、式(23c)と式(23d)を式(21)に代入すると、式(25)となる。
さらに、式(23e)と式(23f)を式(22)に代入すると、式(26)となる。
Dutyは0〜1の範囲なので、式(24)は自ずと成り立つ。したがって、式(25)、式(26)について見ると、式(26)のDuty>0.5という条件で使用した場合、最高動作周波数Fmaxは式(27)で表せる。
式(27)にはDutyのパラメータが存在しないので、デューティに影響を受けないことがわかる。すなわち、本発明の半導体装置10はデューティ・サイクルが劣化したクロックを入力しても、動作周波数が低下しない分周クロックを生成することがわかる。
なお、上述の半導体装置10のRS−FFは、NAND型構成としたがNOR型構成のRS−FFを使用してもよい。図19にNOR型構成のRS−FFを示す。ただし、NANDとNORは、双対関係にあるので真理値表の値は互いに逆である。したがって、図17、図18に示したタイムチャートのCK1、CK2、R、Q、QXの波形に対して、HighとLowを交換することにより、NOR型のRS−FFで構成した半導体装置のタイムチャートになる。
また、上記の説明では、2分周を行う半導体装置について説明したが、2×n分周する場合には、半導体装置10をn個直列に接続すればよい。例えば、4分周するには、半導体装置10を2つ直列に接続すればQ1〜Q4データはクロックCK1、CK2に対しての4分周クロックデータ(互いに1/8周期ずつずれた4分周クロックデータ)を出力し、同様に6分周するには、半導体装置10を3個直列に接続すればQ1〜Q4データはクロックCK1、CK2に対しての6分周クロックデータ(互いに1/12周期ずつずれた6分周クロックデータ)を出力することになる。
図20は半導体装置の構成を示す図である。4分周を行う場合の装置接続例を示す。4個のRS−FFを含む半導体装置10a−1、10a−2を直列に接続し、1、3、5、7段目にクロックCK1を入力し、2、4、6、8段目のRS−FFにクロックCK2を入力して4分周を行っている。
次に本発明の半導体装置10を適用したPLL装置について説明する。図21はPLL装置の構成を示す図である。PLL装置100は、位相比較器(Phase detector)101、ループフィルタ102、VCO103、N分周器(分周回路)104で構成される。なお、本発明の半導体装置10はN分周器104に適用することができる。
位相比較器101は、リファレンス・クロックとN分周器104からの出力クロックとの周波数の位相を比較し、位相差を直流の制御電圧で出力する。ループフィルタ102は、位相比較器101の出力を平均化する。VCO103は、この制御電圧に比例した出力周波数を発振する。N分周器104は、VCO103からの出力クロックをN分周した分周信号を位相比較器101へ入力する。このように、PLL装置100では、分周信号とリファレンス・クロックとの同期が一致するようにVCO103を制御し、入力したリファレンス・クロックと同期した発振信号を外部へ出力する。
図22はN分周器の内部構造を示したPLL装置を示す図である。VCOクロックを2分周して位相比較器101にフィードバックする構成を示している。PLL装置100aは、2分周を行うN分周器104aを含む。N分周器104aはRS−FF10−1〜10−4、インバータIv8から構成される。詳細は上述したので省略する。
なお、任意の2×nの分周値を得るには、RS−FF10−1〜10−4を含む1つの装置を1つのパッケージとし、目標とする分周数に応じた数のパッケージn個を直列に配置して構成すればよい。
以上説明したように、本発明によれば、クロックのデューティが劣化した場合でも動作周波数を低減することなく、高周波動作を実現することが可能になる。また、上記ではクロック分周を行う本発明の半導体装置をPLLに適用した例を示したが、PLLに限らずに、分周機能を必要とする高速ディジタル回路一般に広く適用可能である。