アフィリエイト広告
アフィリエイト広告

論理回路 / JKフリップフロップ

前回は D フリップフロップを試してみました。

今回は、JKフリップフロップをみてみたいと思います。が、そのまえにちょっと、RS フリップフロップについて、もう一度おさらいしましょう。

JKフリップフロップを使ったカウンタについては、以下の記事をご覧ください。

RS フリップフロップ (RS ラッチ)

図 1 RS ラッチ回路記号

呼び方は「RS ラッチ」に、今後はしようと思います。

図 1 の上側、これまで実験してきた NAND で構成した RS ラッチの回路です。
下側は、それを図記号にしたもの。中身はどうであれ、機能としてRSラッチの動作をします。回路がだんだん複雑になってくるので、この記号も使うことにします。

基本ラッチ回路

Qn S R Q
0000
0010
0101
011X
1001
1010
1101
111X
図 2 RS ラッチ 真理値表

さて、ちょっと難しい話、します (;´Д`)

図 2 が RS ラッチの真理値表。Qn は現在の出力の状態、S、R は入力、Q は次の出力の状態です。S=R=1 は don’t care とします。
この真理値表から、カルノー図を作ります。

図 3 RS ラッチ カルノー図

と、論理式は

Q = S + R・Qn
図 4 基本ラッチ論理回路

この式を論理回路にすると、図 4 になる。これが、基本となるラッチ回路。これを、あ〜してこ〜してこ〜変換すると、図 1 の RS ラッチ回路になります。途中省略 m(_ _;)m

かなりすっ飛ばしてるけど、これが考え方の基本です。

JKフリップフロップ

さて、JKフリップフロップです。

JKフリップフロップは、RS ラッチで禁止されていた S=R=1 を可とするフリップフロップです。このとき出力はトグル、つまり “0” ならば “1” に、”1″ ならば “0” にすることとします。

QnJKQSR
000000
001000
010110
011110
100100
101001
110100
111001
図 5 JKフリップフロップ真理値表

図 5 が真理値表です。

Qn は現在の出力の状態、J、K は入力、Q は次の出力の状態です。S と R は、Q の出力を得るための RS ラッチの入力です。
JKフリップフロップは、基本となる RS ラッチの入力に付加回路をつけて構成しますので、S、R になにを入力するか、を考えます。

まず、主加法標準形により S=1 のときをみると、

S = Qn・J・K + Qn・J・K = Qn・J

同様に R=1 では、

R = Qn・J・K + Qn・J・K = Qn・K

図 6 JKフリップフロップ論理回路

ってことで、これを論理回路にすると、図 6 のようになります。

なるほどね、互いの反転した出力を、インターロックとして帰還させるわけだ。
たとえば Q=0 のとき、J=K=1 となっても、R=0 のまま、と。いや、でも、S=1 になって Q=1 になると R=1 になるぞ。

(;´Д`) あれれ?

回路の動作

回路の動作を確認してみましょう。

  1. J=0、K=0、Q=0、Q=1 のとき、J=1 になると、S=1、Q=1 となる。が、同時に Q=0 になるので S=0 に戻る。S=1 になるのは、回路の遅延時間の一瞬だけだが、Q=1、Q=0 で保持。
  2. J=0、K=0、Q=1、Q=0 のとき、J=1 となっても、S=0 のまま。Q、Q は保持。
  3. J=0、K=0、Q=1、Q=0 のとき、K=1 になると、R=1、Q=1 となるが、Q=0 になるので R=0 に戻る。
  4. J=0、K=0、Q=0、Q=1 のとき、K=1 となっても、R=0 のまま。Q、Q は保持
  5. J=1、K=1、Q=0、Q=1 のとき、S=1、R=0、Q=1、Q=0 となる。と、S=0、R=1、Q=0、Q=1 となる。また、S=1、R=0、Q=1、Q=0 となって、これを繰り返す。つまり、発振する。

発振するってことは、Q がトグルしている、ってことか? いやぁ、それ、違うよね。

実験回路では、Q=1、Q=1 となります。スイッチをすばやくオンオフすると、ときどき発振することもありました。
これは、押しボタンを押したとき、すぐに出力が帰還されてしまうのが問題のようです。だから、プライマリ・レプリカ型にして、入力をプライマリでラッチして、次のタイミングでレプリカが出力、これを入力に帰還させればよさそうです。

よさそうです、なんて言ってますが、そうするんですよ、とグーグル先生に教えてもらったんです。JKフリップフロップをバイステーブル (二安定) で動作させるには、プライマリ・レプリカ型にするんだよ、と (^_^;)

プライマリ・レプリカ型 JKフリップフロップ

図 7 プライマリ・レプリカ型 JKフリップフロップ

プライマリ・レプリカ型については、すでに試してみています。同じように、JKフリップフロップをプライマリとレプリカの 2 段構成として、動作タイミングを分ける、ようにします。

図 7 が、構成したプライマリ・レプリカ型 JKフリップフロップです。

CLKJKQQ
0XXQnQn
XXQnQn
00QnQn
0101
1010
11QnQn
図 8 プライマリ・レプリカ型 JK-FF 真理値表

図 8 が真理値表です。

クロックが “0” のとき、プライマリが開きますが、レプリカは閉じていますので、出力は変化しません。クロックの立ち下がりで、プライマリ出力がラッチされます。

クロックが “1” のとき、プライマリは閉じ、レプリカが開きます。
クロックの立ち上がりで、レプリカがプライマリの出力を入力します。プライマリ出力は保持されていますので、クロックの立ち上がりに同期して出力が変化することになります。

実験回路

実際に組み立ててみたプライマリ・レプリカ型 JKフリップフロップの実験回路 (図 9) です。

図 9 プライマリ・レプリカ型 JKフリップフロップ 実験回路

レプリカの入力ゲートは、RS ラッチ部の入力の NAND ゲートと統合しています。プライマリの入力ゲートは、RS ラッチ部の入力の NAND ゲートと、追加した AND ゲートとで 3 入力 NAND ゲートを構成しています。機能的に同じであることは、簡単にわかると思います。

回路の動作

J=K=1 のときについて、確認してみましょう。

  1. CLK=0、Q=0、Q=1 のとき、J=1 が有効で、プライマリの出力 Qm=1、Qm=0
  2. CLK=1 になると、レプリカ出力 Q=1、Q=0
  3. CLK=0、Q=1、Q=0 のとき、K=1 が有効になり、Qm=0、Qm=1
  4. CLK=1 になると、レプリカ出力 Q=0、Q=1

となって、両方の押しボタンを押しているあいだ、クロックに同期して LED3 と LED4 が交互に点滅します。でも、押しボタンを離すと、どちらが点灯するかは運次第。離すのが遅れたほうが点灯する? いやぁ、クロックのタイミングも影響するので、どーなるんでしょ (^_^;)

後記

JKフリップフロップの、基本的な動きはわかったように思います。でも、部品箱にある JKフリップフロップ IC CD4027B のデータシートをみていると、なんだかちょっと違うような。それはまた、今度、実際に使うときに確認してみましょ。

ところで、D フリップフロップの後記で、出力 Q を入力 D に戻すとクロックが入るたびに出力が反転する、ってのを書きました。「分周回路」ってやつ。
JKフリップフロップでも、J=K=1 にしておくとクロックが入るたびに出力が反転します。同じですね。こういうのを T フリップフロップといいます。トグルの T です。

これで、だいたいのフリップフロップのおさらいができたので、さて、つぎはフリップフロップを使ったロジック回路を、いくつかみていきましょうか。

タイトルとURLをコピーしました