• ベストアンサー

非同期型2のn乗カウンタ回路

観覧ありがとうございます。 質問は、 非同期型の2のn乗加カウンタにおいて、FFのクロック入力から出力が変化するまでの時間をtFとすると、正しい出力がまったく得られなくなる周波数はどのように表わされるか。 自分で調べてみましたが、わかりませんでした。 回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • inara1
  • ベストアンサー率78% (652/834)
回答No.1

FFの伝播遅延によって誤動作するのが原因であれば、最大周波数は    fmax = 1/{ ( n - 1 )*tF } になります。n は FF の段数です。 正しい出力が得られなくなるというのは2通りあります。  (1) FF自身が誤動作して出力がおかしくなる  (2) n ビットの出力がすべて確定する前に次のカウント動作が起こる (1)はカウンタICのデータシートに出ている「最大クロック周波数」になります。例えば、4bitの非同期バイナリカウンタ(74HC393)の場合、データシート [1] 5ページ目のAC特性に出ているように、負荷容量 CL = 15 pF、電源電圧 VCC = 5 V の条件では、最低値が 35MHz、典型値が 72MHz になります。 非同期カウンタで(2)のようなことが起こるのは、最悪の場合(もっとも低いクロック周波数で誤動作が起こる)は、最後のFFが変化するときです(4bitなら0111→1000に変化するときと1111→0000に変化するとき)。クロック周波数が速くなると、最後のFF出力が確定しないうちに、次のクロックによって最初のFFの出力が変化してしまうため、クロックを止めてパルス数だけ数える場合を除いて、出力がいつまでたっても確定しません(値がおかしくなる)。          A     B  クロック  ̄ ̄__ ̄ ̄__          |←  →|             1/f  Q1    ___ ̄ ̄ ̄ ̄__          ||   ||           tF     tF  Qn    ________ ̄ ̄          |← n*tF -→| nビットのカウンタ(FFがn段構成)で、1個のFFについてのクロック入力から出力が変化するまでの時間を tF [s] とした場合、上図のように、最初のFFの出力Q1の遅延時間は tF 、最後のFFの出力Qnの遅延時間は n*tF となります。クロックの最初の変化点AからQnが変化するまでの間(この時間は n*tF )に、次のクロックの変化BによるQ1の変化が起こると誤動作になるります(図ではそうなるように描いています)。クロックの最初の変化点Aから、2番目のクロック(B)によるQ1の変化までの時間は、クロックの周期(1/f)にQ1の遅延時間 tF を加えたもの 1/f + tF になります。これが n*tF より大きければ(遅ければ)正常動作するので    1/f + tF > n*tF つまり    f < 1/{ ( n - 1 )*tF } が正常動作する条件です。したがって最大クロック周波数は    fmax = 1/{ ( n - 1 )*tF } になります。 n*tF でなく ( n - 1 )*tF となっているので、n = 1(FFが1段だけ)のときは(2)が原因で動作がおかしくなることはありません。 データシートには1個のFFの tF は出ていませんが、各出力端子(QA~QD)の伝播遅延時間が出ていますので、その値から tF を推測できます。データシート5ページのAC特性を見ると、QAが最大 20ns、QBが31ns、QCが38ns、QDが46nsとなっているので、FF1段の伝播遅延時間 tF の最大値は 9ns、バッファの伝播遅延時間 tb の最大値は 11ns と推測されます(QA~QDの伝播遅延時間は、tf*n + tb のnを1~4とした値)。データシート2ページ目のシステム図からわかるように、FFの出力 Q_ は次段のクロック CK に接続されていますが、Q_ はバッファを通ってIC外部の出力になっているため、IC外部の出力(QA~QD)の伝播遅延時間は FFの遅延時間+バッファの遅延時間になります。しかしバッファの伝播遅延時間は fmax とは無関係です(QAの変化もQDの変化も同じだけ遅れるので)。したがってこの場合の fmax は    fmax = 1/( 3*9ns ) = 37.04MHz となります。これは tF の最悪値を使った結果ですが、典型値を使えば、tF = 4ns なので fmax は 83.3MHz になります。(1)の最大カウント周波数と(2)の fmax を比較すると、(1)のほうが低い周波数になっています。つまり、74HC393の1ブロック分(4bitカウンタ)だけ使った場合(n = 4 の場合)、(2)が原因で動作がおかしくなる前にFF自身が誤動作すると思われます。74HC393を多段接続した場合は n > 4 なので、(2)の fmax のほうが(1)の最大カウント周波数よりも小さくなって、(2)が原因で誤動作することになります。 [1] TC74HC393APデータシート http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LogicIC/TC74HC393AF_TC74HC393AP_ja_datasheet_071001.pdf

noname#129931
質問者

お礼

解答ありがとうございますっ! 図まで付けていただいて とっても分かりやすかったです。 本当に感謝です。 ありがとうございました。

関連するQ&A