PLL / 非公式訳

pp.46-48

非公式訳:
ディジタル波形(クロック信号など)の周波数を下げるのは、PLL回路、カウンターのどちらもできる。しかし周波数を上げるのはPLLにしかできない(XORゲートと遅延用のインバーターとを組み合わせるなどすれば2逓倍は可能であるが、デューティーサイクルは0%か100%かどちらかに近い値にしかならない)。用途によってはPLLの代わりにDLL (delay locked loop)が利用できるし、DLLのほうがシンプルであり、すべてをディジタル方式で実現したDLLはなおさらシンプルである。しかしDLL (最大数GHz)のほうがPLL (最大100 GHz超も可能)よりも遅く、汎用性、正確性を缺くことが多い。

FPGAはPLLを複数内蔵しているのが普通であり、幅広い範囲にわたってクロック周波数を逓倍、分周できる。クロック逓倍の例としてはDVI (digital visual interface。セクション17.7を見よ)のビデオドライバーがある。これは、デスクトップコンピューターをそのLCDモニターに接続するのに使われる。受信したパラレル信号をシリアル信号に変えてLCDモニターへ送信しなければならないため、転送速度は内部スピードの何十倍も速くなければならない。そのため、システムクロック周波数次第ではあるがPLLが必要である。同じことはHDMIビデオドライバーにも言える。

PLLの一般的な原理を図2.21aにまとめた。ここでは、PLLが周波数fout=M・frefの出力を生成する。電圧制御発信器(VCO)は、発信周波数をDC電圧で制御する発信器である。VCO電圧が中間電位にある状態でVCOを単独で動かすと、VCOは所望の値(すなわちM・fref)に近い周波数の信号を生成するが、その周波数は正確でもなく安定もしない。この周波数は分周器によってM分周されてfloop=fout/Mになるため、結局frefに近い値になる。この2つの信号が位相周波数検知器(PFD)によって比較される。floop < frefの場合は、PFDからチャージポンプに対して、VCOへの印加電圧を上げるよう指令が出る(動作を安定させる手段として、この電圧はまずローパスループフィルターを通る)。その結果foutは高くなって、結局floopも高くなる。一方、floop > frefの場合は逆の現象が起きる。つまりPFDからチャージポンプに対して、VCOへの印加電圧を下げるよう指令が出て、その結果foutが下がり、結局floopも下がる。このプロセスは、出力周波数がfout=M・frefになったときに安定する(ロックされる)。

PFD、チャージポンプ、ループフィルターの各ブロックの内部詳細を図2.21bに示す。frefとfloopは、2つあるDFFのそれぞれのクロックポートに接続されているため、frefが立ち上がったときにup=1になり、floopが立ち上がったときにdn=1になる。そのどちらが先にアサートされるかによって上側、下側のどちらかのスイッチが閉じ、それに応じて、ループフィルターのキャパシタに溜まるアナログ電圧が高くなるか低くなるかする。両方のクロック信号がハイになると、わずかな遅延時間をおいて両方のフリップフロップがANDゲートによってリセットされ、再度frefおよびfloopが立ち上がったときに同じ処理を繰り返す準備が整う。

PLL (およびDLL)はディジタル回路の設計過程で設計できるものではない。これは強調すべき重要なことである。PLLの大部分は実はアナログ回路である。そのため、ターゲットデバイス(FPGAなど)にPLLが組み込まれている場合、またはIPセルとして利用できる場合(ディジタルASICレイアウトの場合)は、それに頼らざるを得ない。