フリップフロップ(flip-flop)

フリップフロップは1bit情報を保持できる論理回路(AND、OR、NOTの組み合わせ)で、順序回路に必須の要素です。単純なラッチからCLKエッジで値を保持するDフリップフロップまでの動きを確認します。

 

 

演習1 ラッチ

強制セットリセット付き2重否定回路

右回路を作成し、スイッチによって状態が切り替わり状態が保持されることを確認しなさい。

解説

NOT演算を2回行うと元に戻ります。2重否定の出力を入力側にフィードバックすると初期状態のレベルを保持する回路となります。スイッチによってHレベルになっている箇所を強制的にLレベルに落とすと状態が切り替わってその状態を維持します。1bitの状態を保持し、状態の切替が可能なのでこれは1bitメモリに他なりません。

 

※各ブロックの出力段には抵抗を入れているためHレベル出力をスイッチで強制的にLレベルに落としても回路は壊れませんが、状態切替時にある程度の電流が一瞬流れるのであまり良い回路とは言えません。

強制セットリセット付き2重否定回路のブロック実装図

演習2 SRラッチ(SRフリップフロップ)

NANDブロックを使ってRSラッチ回路を組み上げて、特性表を作成しなさい。

 

解説

SRラッチのSはセット,Rはリセットの意味です。SやRの変換に即座にQが反応します。この回路にはS=R=1条件が禁止となっている点に問題があります。

SRフリップフロップの回路図
SRフリップフロップの特性表

SRフリップフロップの特性表


SRフリップフロップ回路確認用のブロック実装図

演習3 Dラッチ

Dラッチを作成し、特性表を作成しなさい。

 

解説

DラッチはCが1の場合は入力がそのまま出力に流れ、Cが0の場合には直前のDの値が保持されます。SRフリップフロップの改良型です。CLKのエッジタイミングの入力をラッチするにはCのパルス幅を細くする必要があります。

Dラッチ確認用回路図
Dラッチ特性表

Dラッチの特性表


Dラッチ動作確認用回路のブロック実装図

演習4 Dフリップフロップ

Dラッチを2つ使ってDフリップフロップを作成し、その動作を確認しなさい。

 

解説

Dラッチを2つ連結し、入力Cには極性の異なったCLK信号をそれぞれ入力します。CLKが0時点でマスタ出力からはDが出力されますが、CLKが1に変わった時点でマスタ出力は直前の値を保持します。スレーブ側は、CLKが1の間はマスタの保持値をそのまま出力し、CLKが0に変わると直前の値を保持します。これでCLKの立上がりエッジタイミングの入力Dがスレーブから出力されます。Cube-DのFFブロックはDフリップフロップ相当の動作になります。

 

Dラッチで構成したDフリップフロップ回路図

2台のCube-Dで動作を確認します。演習3で作成した回路のうち、スレーブ担当の回路のC入力部分のT接続ブロックをNOTに差し替えます。ジャンパ線で次の3本を接続します。

  1. マスタ側のQ出力 と スレーブ側のD入力
  2. マスタ側のC入力 と スレーブ側のC入力(NOT演算付き)
  3. マスタ側のGND と スレーブ側のGND

特に3番目の2枚のボードのGNDレベルを共通にするジャンパ線は重要です。

Dフリップフロップ動作確認用のブロック実装図、2台のCu be-Dを使う。

演習5 リングカウンタ

8bitのリングカウンタを作成しなさい

 

 解説

FFを単純に8つリング状に接続したもので、組合せ回路を含まない特殊な順序回路。線形帰還シフトレジスタ(Linear feedback shift register)の最も単純な構成です。初期値が回り続けます。

8bitリングカウンタ回路のブロック実装図(アニメーション付き)