2019年03月19日 | 更新。 |
リング発振器またはリングオシレータ(ring oscillator)は奇数個のインバータ(NOT回路)を環状に接続する事で、インバータの伝搬遅延を利用して発振する発振回路です。
リング発振器は、インバータの伝搬遅延を利用して発振するという原理上、その論理デバイスで扱えるほぼ最高周波数の周波数で自励発振します。そのため、新しいタイプの論理デバイスを開発した場合、その動作速度を見積もるために、リング発振器を作成し、発振周波数を測定する事がよくあります。
またリング発振器は、少数の論理ゲートで構成できる発振器であるため、論理回路内で使う簡易的な発振器として用いられる事もあります。アナログ回路を使わない発振器であるため、論理回路のICを作るプロセスで、そのままリング発振器を作れます。
一方で、リング発振器は発振周波数の安定性やジッタなどの面では特性が悪く、精度の要求される用途にはそのままで用いる事はできません。
典型的なリング発振器は、図1に示す様に、3個のインバータを環状に接続する事により構成されます。
図1に示す様に、左のインバータの入力電圧をA、真ん中のインバータの入力電圧をB、右のインバータの入力電圧をCとします。
ある基準となる時刻を決め、それを時刻t=0と呼ぶ事にします。t=0における電圧Aは、図1の回路が2値論理回路である事を考えると、LまたはHの値を取ります。
仮に、t=0におけるAの電圧をLと仮定して、回路の他の部分の電圧がどうなるか考えてみます。
t=0において、左のインバータに入力されている電圧(A)がLなので、左のインバータの出力電圧であるBは、Hになります。Bは真ん中のインバータの入力電圧でもあるので、真ん中のインバータの出力電圧であるCは、Lになります。Cは右のインバータの入力電圧でもあるので、右のインバータの出力電圧であるAは、Hになります。最初にA=Lを仮定しているので、矛盾が生じる事になります。(図2参照)
同様の矛盾は、t=0におけるAの電圧をHと仮定しても生じます。(図3参照)
動作時間が0の理想的なインバータでは、図2や図3に示す矛盾が生じますが、現実のインバータでは、伝搬遅延があるために、矛盾が発生しません。
この事を説明するために、図4に示す様に1個のインバータがあり、その入力電圧が、ある時刻でLからHに変わる場合を考えます。インバータの出力電圧は、当然HからLに変わります。
論理回路を理論的に考察する場合には、議論を単純にするために、入力電圧が変化すると同時に出力電圧が変化する様な、理想的な論理回路を考える事が良くありますが、実際の論理回路はそのように動作しません。
入力電圧の変化が原因となって、出力電圧の変化という結果が生じます。原因が発生したという情報が別の場所に(入力端子から出力端子に)伝わるわけですから、時間がかかります。この様に、結果よりも原因が時間的に先行するという原理を因果律とよびます。皆さんご存知の様に、因果律は、電子回路だけでなく、広く一般に適応できる基本的な物理法則です。
注:厳密にいえば、原因と結果が同じ場所で発生するなら、情報が伝わる時間が必要ないわけですから、原因と結果が同時に発生する可能性もあります。そういう場合を含めて因果律を表現するなら、「結果が原因より時間的に先行しないという原理」という事になります。また、事象が発生したかどうかが確率的にしか分からないと考える量子力学や、相対性理論において光速度を超えて物体が移動する事を許容する場合などは、因果律が成立するのは当然とは言えなくなります。しかし、ここではそれらの現象は考慮せずに議論します。
図4の回路で、入力電圧の変化が起こってから出力電圧に変化が生じるまでに時間がかかる事を、タイミングチャートに表したのが図5です。
図5を見ると、入力電圧がLからHに変化してからしばらく経って、出力電圧がHからLに変化している様子が分かります。この様に、出力電圧の変化が入力電圧の変化よりも遅れる現象を伝搬遅延(propagation delay)といい、その際の実際の遅延時間を伝搬遅延時間(propagation delay time)といいます。伝搬遅延時間は、通常tpdという変数で表します。
伝搬遅延時間は、デバイスの種類により変わりますが、74HCシリーズの汎用ロジックICの場合、伝搬遅延時間は数nsから十数ns程度になります。
また、伝搬遅延時間は、負荷の重さ(負荷インピーダンスの小ささ)によっても変化し、負荷が軽い場合は小さく、負荷が重い場合は大きくなる傾向があります。
注:より厳密には、出力電圧がHからLに変わる場合と、出力電圧がLからHに変わる場合とでは、伝搬遅延時間が異なります。出力電圧がHからLに変わる場合の伝搬遅延時間は、通常tpHLという変数で表します。一方で、出力電圧がLからHに変わる場合の伝搬遅延時間は、通常tpLHという変数で表します。CMOSデバイスの場合は、通常はtpHLとtpLHはほぼ同じ値となります。このページの以下の議論では、tpHLとtpLHは同じ値だと仮定し、共にtpdと表す事にします。
この伝搬遅延時間を考慮して、図1の3個のインバータで構成されたリング発振器でどういう現象が起こるか、もう一度考えてみます。
図1の回路では、各部の電圧(A、B、およびC)が時間的に変化せず、直流になるという事はあり得ません。もし各部の電圧が時間的に変化しないとすると、図2または図3で示した矛盾が発生するからです。
そこで、t=0において、AがHからLに変化すると仮定して、それ以後に何が起こるかを表したのが図6になります。
参考:t=0においてAがLからHに変化すると仮定して、図1の回路の動作を考えると、図6中のLとHを全部入れ替えた図になります。
この様に、時間がtpd経過するごとに、信号の変化が、次のインバータの出力に連鎖的に伝わっていきます。この様子をタイミングチャートにしたのが図7です。
この様に、AもBもCも、周期6tpdでデューティ比が50%の方形波で発振します。また、A~Cの波形は、お互いの位相が120°ずつずれた3相の方形波になっています。
図6や図7においては、t=0でAがHからLに変化すると仮定しましたが、実際のリング発振器において、どのインバータの出力が最初に変化するかや、その変化がLからHへの変化なのか、あるいはHからLへの変化なのかは、3つのインバータの微妙な特性の違いだとか、電源投入時のノイズの状態など、些細な要素で決まります。
ところで、前述したように、新しい論理デバイスを開発した場合に、そのデバイスの速度の評価のためにリング発振器を作る事が良くあります。3個のインバータを環状に接続した図1に示す発振器の、発振周波数をf3とすると、インバータの伝搬遅延時間tpdは、次の式で求まります。
インバータの数が奇数であれば、5個以上のインバータを環状につないでもリング発振器は発振します。
例として5個のインバータを使ったリング発振器で動作を考えると、図8の様になり、それをタイミングチャートで表すと図9の様になります。
図9のタイミングチャートでは、A、B、C、D、Eの順に波形を並べていますが、A、C、E、B、Dの順に波形を並べ替えたタイミングチャートが図10になります。
図10のタイミングチャートを見ると、A→C→E→B→D→A→C…の順に72°ずつ位相が遅れている(時間に換算すれば2tpdずつ遅れている)事がわかります。つまり、5相の方形波交流が発振できたわけです。
図9または図10のタイミングチャートより、発振した方形波の周期は10tpdである事が分かります。つまり、5個のインバータを環状に接続したリング発振器の発振周波数をf5とすると、インバーターの伝搬遅延時間tpdは、次の式で求まります。
同様の議論を7個以上のインバータを環状に接続した場合のリング発振器にも適応し、話を一般化する事ができます。
N個(Nは3以上の奇数)のインバータを環状に接続したリング発振器は、N相の方形波交流を発生します。それらの方形波交流の周波数をfNとすると、インバータの伝搬遅延時間tpdは次の式で求まります。
参考:N=3および5とした場合に、それらを式(3)に代入すると、それぞれ式(1)と式(2)が得られる事を、各自で確認してください。