論理回路2
第2章 順序回路の基礎(その1)
−フリップフロップ−
井澤 裕司
1 はじめに
- 本章では、
順序回路
の基本であるフリップフロップについて学習します。
- 「論理回路1」
で学んだ
「組合せ回路」
にはなかった、
時間の要素
が加わります。
- タイムチャート
等、最初は慣れない項目があるかもしれませんが、
組合せ回路
の基本を復習すれば、十分理解できると思います。
1.1 順序回路とは
- 順序回路
とは、その時点の入力のみならず、
過去の入力信号
にも依存する回路です。
- メモリ
のように
内部状態
を
記憶
する機能が含まれていると考えて下さい。
- 順序回路
の代表的なものは、この章の後半で説明する
フリップフロップ
ですが、
- 次章以降で説明する
レジスタ
や
カウンタ
等も、この
順序回路
に属します。
- なお、
順序回路
は、
組合せ回路
のように
真理値表
では、その動作を記述できません。
- これにかわるのが
状態図
と
遷移表
です。
- 以下、その内容について説明しましょう。
1.2 状態図と遷移表
- ここでは、
状態図
と
遷移表
について解説します。
- はじめに下の
シーソー
のような図を見てください。
- 現在は
右
側に重りが乗っており、
右
側が下がっています。
- ここで、
左
側の
Set
というポイント(丸い印)を
クリック
して下さい。
- 今度は、
右
側の重りが消えて
左
側に移動すると同時に、
シーソー
の
左
側が下ります。
- 次に、
右
側の
Reset
というポイントを
クリック
して下さい。
- 今度は、
左
側の重りが消え、
右
側に移動すると同時に、
シーソー
の
右
側が下ります。
- 右
側が下がっているときに、
Reset
を
クリック
しても
シーソー
の状態は変わりません。
- また、左
側が下がっている場合の
Set
も同様です。
- これは、
RSフリップフロップ
という最も単純な
順序回路
の動作を表しています。
- このような、
RS-FF
の動作を次のような
状態図
というもので表すことができます。
- なお、ここでは
シーソー
の
右
側が上がった状態を、
出力1
と定義しています。
- セット
と
リセット信号
により、出力は 0 と 1の間を遷移します。
- この
状態図
から
遷移表
というものを作成します。
- RS-FFの場合、以下のようになります。
RS-FFの遷移表
- なお、入力の
S(Set)
と
R(Reset)
は重りを乗せた状態を1 と定義しています。
- 遷移表
の X は、2つの重りを
シーソー
の両端に同時に乗せる ことを
禁止
するという意味です。
- 同じ重りの場合
シーソー
が釣り合ってしまい、出力は 0でも 1でもない状態となります。
- これはもはや、論理回路ではありません。
- この
遷移表
を作成することが、
順序回路
を設計する場合の原点になります。
- これは、
組合せ回路
における
真理値表
と 同じ位置付けです。
1.3 まとめ
- ここで、
順序回路
の一般的な
設計手順
を示しておきます。
- @
遷移表
を作成する。
- A
論理式
で表し、簡略化する。
- B
論理回路記号(MIL記号)
で表す。
- なお、Aの簡略化については、
「論理回路1」
の
第5章
で述べた手法を用います。
- 次節では、これらの手順をいくつかの
フリップフロップ回路
を例に説明します。
2 フリップフロップ
- 本節では、
フリップフロップ回路
(以下
FF
とする)について説明します。
- はじめに、その分類を示します。
@ |
RS-FF |
(リセットセット フリップフロップ) |
A |
T-FF |
(トグル フリップフロップ) |
B |
JK-FF |
(JK フリップフロップ) |
C |
RST-FF |
(リセットセットトグル フリップフロップ) |
D |
D-FF |
(ディレイ フリップフロップ) |
- これらの動作上の違いを理解して下さい。
- なお、次章で述べる
レジスタ
や
カウンタ
は、これらの
フリップフロップ
をベースに構成したものです。
2.1 RS-FF (リセットセット フリップフロップ)
- この
RSフリップフロップ
は、すべての
FFの基本
となるものです。
- 先に述べたように、リセットという入力が1になると、現在の状態に
かかわりなく 出力は無条件に 0となります。
- 逆にセットという入力が 1になると、 出力は 無条件に 1になります。
- 入力がともに 0 であれば、その前の状態を保持します。
- なお、2つの入力(R,S)は互いに矛盾するため、
これらが 同時に1になることは禁止されています。
- 以下に示す
遷移表
は、この
RS-FF
の動作を記述しています。
RS-FFの遷移表
- この
表から、次の状態
Q
n
を入力
(
S
,
R
)と
Q
を用いて表します。
- すなわち、現在の状態
Q
は一種の入力とみなします。
- この論理式を、
カルノー図
を用いて
簡略化
します。
- 結果を以下に示します。
- (なお、
禁止
されている状態は
×
で表します。)
- これより次の式が成立します。
- これらの式を
特性方程式
と呼びます。
- 1番目の式は、
リセット
と
セット
が同時に1となる 状態を禁止するためのものです。
- 2番目の式についてその否定をとり、
ド・モルガンの定理
を用いて変形すると、次の式が得られます。
- これより、
NOR回路
2個を用いて以下に示す回路図が得られます。
- このように、
RS-FF
は2入力の
NOR回路
を用いて実現することができます。
- この
RS-FF
の動作を示す
タイムチャート
を、以下に示します。
- 時間軸上での動作を十分理解して下さい。
- 次にこの回路を
NAND回路
を用いて表現してみましょう。
- 上の論理式を変形すると次のような式が得られます。
- これより、以下の回路図が得られます。
- 入力の
S
と
R
が
負論理
となっている点に注意が必要です。
2.2 T-FF (トグル フリップフロップ)
- この
T-FF
は、
トグル
、もしくは
トリガーフリップフロップ
の略で、入力
T
の立ち上りで、出力
Q
が反転します
- この
T-FF
の
遷移表
は、以下のようになります。
- この表の左半分から論理式を求めます。
- これらをMIL記号を用いて表現すると、以下に示す回路図(1番上)が得られます。
- 次に、上の
遷移表
の
右半分
を使用して、この
T-FF
を
RS-FF
を用いて構成する手法について説明します。
- 記号の
「−」
は、
0
と
1
の
どちらでもよいことを示しています。
- ここでは、
0
とみなすと、以下の式が得られます。
- これより、上の中央の回路図が得られます。なお、この
T-FF
を簡略化した記号(図の下)で表すことがあります。
- 次に、この
T-FF
の
タイムチャート
を示します。
- 上の図で、入力信号
T = 1
の幅が狭いことに注意して下さい。
- もし、
T = 1
の期間が長くなると出力
Q
は
0 → 1 → 0
のように反転を繰り返し、
発振
します。
- これを防ぐため、
T
の立ち上り後、出力
Q
が変化する前に
T = 0
とする必要があります。
- このような
T-FF
を、
パルス型T-FF(もしくはAC型T-FF)
と呼びます。
- このような、入力
T
の制約をなくした
T-FF
を
DC型T-FF
と呼びます。
- これらは、回路構成の違いにより
(1)マスタ・スレーブタイプ
と、
(2)エッジトリガータイプ
に分類されます。
- マスタ・スレーブタイプ
の
DC型T-FF
の回路構成を以下に示します。
- AC型T-FF
に用いた
ANDゲート
と、
RS-FF
の組み合せが2つ従属に接続されています。
- 前段が
マスタ
、後段が
スレーブ
として動作します。
- T=1
では
、
後段の出力を反転したものを前段のRS-FFに記憶し、
T=0
では前段出力を後段のRS-FFに転送します。
- なお、出力
Q
は
T
の立ち下り直後に反転します。
- AC型のように反転出力を直接入力側に接続すると
発振現象
を起しますが、
このように2段構成で反転した信号の受け渡しを行うことにより、
入力 T の幅に依存しない
安定
な
反転動作
を実現しています。
- エッジトリガータイプ
の
DC型T-FF
の回路構成を以下に示します。
- 入力
T
が接続する3入力NORの上下に、2入力のNORが1つずつ追加されています。
- T=1
のとき、上と下のNOR出力で Qsbと Qrb は、 それぞれ not Q と Q を反転した値になります。
- すなわち、T の立ち上りより少し遅れて、 Qsbは Q の値に、
Qrb は not Q の値にセットされます。
- 次に
T=0
になった瞬間、中央の2つのNORが
、
Qsb と Qrb を入力とする
RS-FF
として動作します。
- この出力 Qs、 Qrはそれぞれ後段のRS-FFのセット、リセット入力となっており、
T の立ち下りで出力 Q が反転します。
- 反転後、少し遅れて Qsbと Qrb はともに0に戻ります。
2.3 JK-FF (JKフリップフロップ)
- JK-FF
は
RS-FF
に似ていますが、
J=K=1
で出力
Q
が
反転
する点が異なります。
- (
RS-FF
では、
R=S=1
は禁止されていました。)
- この
JK-FFの遷移表
は、次のようになります。
- この遷移表から、以下の
カルノー図
が得られます。
- これより、簡略化された式が求まります。
- この式を
MIL記号
を用いて表現すると、 次のようになります。
- なお、この
JK-FF
を簡略化した記号(図の下)で表すことがあります。
- 次にこの
JK-FF
の
タイムチャート
を示します。
- ここで示した
JK-FF
は
クロックパルスのない
タイプです。
- 2つの入力
J,K
が同時にHになるとき、
出力
Q
が反転しますが、
- 現実のハードウェアを用いて、
同時に変化する状態を作ることは極めて難しいことです。
- 一見同時に見えても、光が数十センチ進むような、
微小な時間を拡大して観測すると、
- 配線の長さなどにより
わずかなずれを生じているためです。
- この時間のずれを
過渡的ハザード
と呼びます。
- 極めて高い信頼性が要求される論理回路では、
このハザードによる誤動作を防ぐ対策が必要になります。
そこで実際に用いられているのが、
クロックパルス
のある
JK-FF
です。
- その回路構成はやや複雑ですが、
興味のある人は、参考書等で確認して下さい。
2.4 RST-FF (リセットセットトグルフリップフロップ)
- RST-FF
は
RS-FF
に
T-FF
の機能が付加されたものです。
- その
遷移表
を以下に示します。
- なお表の”
×
”は
禁止状態
を、”
−
”は
0 と 1 のいずれでもよい
ことを示しています。
- この表の左半分から、次の式が導かれます。
- 一方、この RST-FF
を RS-FF
を用いて実現する手法 について説明します。
- 上表の右半分に注目して下さい。
- ここで記号の”
−
”は 1と0のいずれでもよいことを示します。
- 例えば、上から2段目で出力 Q
が1から 1となっていますが、 セット
(
Si=1
)されたのか、あるいは
セット
も
リセッ
トもされなかったのか のいずれかです。
- しかし、リセット
されたのではないことは明らかです。(
Ri=0
)
- ここで、
Si
と Ri
を R,S,T,Q
を用いて表し、簡略化すると次式が得られます。
- これより、
RST-FFの回路図と
タイムチャートが得られます。
- なお、この
RST-FF
も
T-FF
と同様、T=1の期間が長くなると、 出力
Q
が発振するので注意が必要です。
2.5 D-FF (ディレイフリップフロップ)
- D-FFの’
D
’は
Delay
の意味で、
1クロックの遅延素子
として使用されている最も重要な
フロップフロップ
です。
- 次章以降で説明するカウンタやレジスタを構成する基本的な FF ですので、
十分理解してください。
- このD-FFの遷移表
は以下のようになります。
- この D-FF
を RS-FF
を用いて実現します。
- 内部入力は、以下のように表されます。
- これより、次のような
回路図
と
タイムチャート
が得られます。
- クロックパルスの幅が狭いことに注意して下さい。
- 上の回路の場合、クロックパルスがHの期間に入力 D が変化すると、
出力 Q も変化してしまいます。
- (実際に、自分でタイムチャートを書いて確認して下さい。)
- この回路は一般には、
ラッチ
と呼ばれ、
エッジトリガーのD-FF
と区別されています。
- エッジトリガー
とは、クロックの立ち上り時点における入力 D の値が、
次のクロックの立ち上りまで保存されるFFです。
- すなわち、クロックの立ち上り以外で、入力Dが変化しても、出力Qは変化しません。
- したがって、クロックパルスの幅などは自由に設定できます。
- 一般のLSI には、この
エッジトリガー型D-FF
が多用されていることを覚えておいて下さい。
3 まとめ
- 本章では、
順序回路
の基本となる
フリップフロップ
について学習しました。
- 次章では、この
フリップフロップ
を用いた
カウンタ回路
について紹介します。
論理回路2のトップページに戻る