. Dフリップフロップ」の解説(2) - しなぷすのハード製作記
Dフリップフロップ」の解説(2) - しなぷすのハード製作記
Dフリップフロップ」の解説(2) - しなぷすのハード製作記

「Dフリップフロップ」の解説(2)

フリップフロップFF1は、CLK信号の立ち上がり時のD信号の論理を読み取り、それをQ1信号として出力しますが、実際にD信号を読み取ってから、Q1信号にそれが反映されるまでには、わずかですが時間がかかります。(その時間は、使うDフリップフロップによって変わりますが、高速CMOSデバイスを用いる場合はおおむね数nsです) そのため、CLK信号の立ち上がりの瞬間にD信号が L であるのを読み取ってから、数ns経過して、Q1信号が H から L に立ち下がります。

この結果、CLK信号が立ち上がる瞬間のQ1信号は H となります。そのため、CLK信号が立ち上がった後のQ2信号も H となります。

この、Dフリップフロップを通るとクロック同期した信号を1クロック分遅らせる事の出来る性質を、積極的に応用した回路としては、 シフトレジスタ を用いた 遅延回路 や シリアル-パラレル変換回路 が挙げられます。

↑ 画像をクリックすると拡大 図24、Dフリップフロップを4つ縦続に接続して作った4ビットのシリアルパラレル変換用シフトレジスタ ↑ 画像をクリックすると拡大 図25、図24の回路のタイミングチャートの例

5. 非同期クリア端子や非同期プリセット端子を持つDフリップフロップ

もし、電源投入直後の各Dフリップフロップの状態を、それぞれに L あるいは H の好きな方に固定できれば、設計によらず毎回同じ動作をする事が保証できて、安心です。

5-1. 非同期クリア端子のあるDフリップフロップ回路

他の入力端子の真理値や、Dフリップフロップが記憶していた真理値にかかわらず、Dフリップフロップに強制的に L を記憶させるための入力端子を、と呼びます。

↑ 画像をクリックすると拡大 図26、非同期クリア端子付きのDフリップフロップの回路記号 ↑ 画像をクリックすると拡大 図7(再掲)、反転出力端子のあるポジティブエッジトリガのDフリップフリップの回路記号

このCLR端子に H が入力されると、他の端子の状態にかかわらず、Q信号は L になります。そして、CLR端子に H が入力され続けている間はQ信号は L を維持します。CLR端子に L が入力されると、図7のフリップフロップと同様の動作をします。

表5 、非同期クリア端子付きのDフリップフロップの真理値表 入力信号 出力信号 動作 CLR CLK D Q Q H X X L H 非同期クリア L L X q q 保持 L H X q q L ↓ X q q L ↑ L L H 読み取り L ↑ H H L

注:表5における" X "、"↑"、"↓"、"q"、" q "の記号の意味は、表2と同様です。

↑ 画像をクリックすると拡大 図27、非同期クリア端子付きのDフリップフロップのタイミングチャートの例

図の中の U は、不定( L か H か分からない状態)を表します。

このタイミングチャートから、CLR端子が H の期間に、CLK信号の立ち上がりのタイミングに関係なく、Q信号が L になる様子が分かります。

なお、非同期クリア端子を非同期リセット端子とも呼ぶ事は先に説明しましたが、電源投入時のフリップフロップの不定状態を解消するために非同期クリア端子を使う場合、あるいは(基板上のリセットボタンを押すなどして)回路全体を初期状態に戻すために非同期クリア端子を使う場合に「フリップフロップをリセットする」という表現をし、逆に、通常の回路の動作の一環として、(全てのフリップフロップではなく特定のフリップフロップの)非同期クリア端子でQ信号を L にする場合を「フリップフロップをクリアする」と表現して、区別する場合があります。

5-2. 非同期プリセット端子のあるDフリップフロップ

他の入力端子の真理値や、Dフリップフロップが記憶していた真理値にかかわらず、Dフリップフロップに強制的に H を記憶させるための入力端子を、と呼びます。非同期クリア端子はDフリップフロップに強制的に L を記憶させる端子でしたので、非同期プリセット端子は、非同期クリア端子と逆の働きをする端子という事になります。

↑ 画像をクリックすると拡大 図28、非同期プリセット端子付きのDフリップフロップの回路記号 表6 、非同期プリセット端子付きのDフリップフロップの真理値表 入力信号 出力信号 動作 PRE CLK D Q Q H X X H L 非同期プリセット L L X q q 保持 L H X q q L ↓ X q q L ↑ L L H 読み取り L ↑ H H L

注:表6における" X "、"↑"、"↓"、"q"、" q "の記号の意味は、表2と同様です。

↑ 画像をクリックすると拡大 図29、非同期プリセット端子付きのフリップフロップのタイミングチャートの例

非同期プリセット端子を非同期セット端子と呼ぶ場合もある事は先に説明しましたが、回路の初期化のために非同期プリセット端子で H を書き込む場合を「フリップフロップをプリセット」すると呼び、回路の通常の動作の一環として非同期プリセット端子で H を書き込む場合を「フリップフロップをセットする」と呼んで、区別する場合もあります。

5-3. 非同期クリア端子と非同期プリセット端子の両方があるDフリップフロップ ↑ 画像をクリックすると拡大 図30、非同期クリア端子と非同期プリセット端子の両方があるDフリップフロップの回路記号 表7 、非同期クリア端子と非同期プリセット端子の両方があるDフリップフロップの真理値表 入力信号 出力信号 動作 CLR PRE CLK D Q Q H L X X L H 非同期クリア L H X X H L 非同期プリセット H H X X U U 禁止 L L L X q q 保持 L L H X q q L L ↓ X q q L L ↑ L L H 読み取り L L ↑ H H L

注:表7における" X "、"↑"、"↓"、"q"、" q "の記号の意味は、表2と同様です。" U "は未定義を表します。

表7の真理値表から分かるように、CLR信号が H でPRE信号が L なら、Q信号は L で Q 信号は H になります。(非同期クリア)

また、CLR信号が L でPRE信号が H なら、Q信号は H で Q 信号は L になります。(非同期プリセット)

また、CLR信号とPRE信号が両方 L なら、非同期クリア端子や非同期プリセット端子がないDフリップフロップ(図7)と同様の動作になります。

注意しなければならないのは、CLR信号とPRE信号が両方とも H の場合です。CLR信号はDフリップフロップに強制的に L を記憶させる信号で、PRE信号はDフリップフロップに強制的に H を記憶させる信号なので、両方を同時に H にすると、矛盾が発生します。そのため、この時のQ信号および Q 信号は未定義になります。

未定義というのは、 L になるか、 H になるかが決まっていないという事です。実際には L または H のいずれかが出力されるのですが、 L が出力される事、あるいは H が出力される事を期待して回路設計を行ってはいけません。

参考1:FPGAやASICの設計において非同期クリア端子と非同期プリセット端子のあるDフリップフロップを使用する場合、HDL(ハードウェア記述言語)でDフリップフロップをどう記述するかで、CLR信号とPRE信号の両方が H の時の挙動が決まります。CLR信号とPRE信号の両方が H の時に出力が未定義になるような記述法もありますが、その場合は、HDLのコンパイラが、回路規模が最小になるようにCLR信号とPRE信号の両方が H の時の出力状態を定めます。

参考2:74HCシリーズなどの汎用ロジックICで非同期クリア端子と非同期プリセット端子のあるDフリップフロップを使用する場合、使用するICのデータシートで、CLR信号とPRE信号の両方が H の時の出力状態が定義されています。例えば 74HC74 は、負論理の非同期クリア端子と負論理の非同期プリセット端子の両方があるDフリップフロップが2個、1つのパッケージに収められたICです。74HC74の場合、 CLR 信号と PRE 信号の両方が L になる場合は、Q信号と Q 信号の両方が H になると定義されています。

通常、出力が未定義になるCLR信号とPRE信号の両方が H になる状態にする事は禁止されています。

↑ 画像をクリックすると拡大 図31、非同期クリア端子と非同期プリセット端子の両方があるDフリップフロップのタイミングチャートの例

CLR信号とPRE信号を同時に H にする事は禁止されているので、そうならないような信号を入力した例を示しています。

画像をクリックすると、Amazonの購入ページが別窓で開きます。 5-4. 負論理の非同期クリア端子や非同期プリセット端子 ↑ 画像をクリックすると拡大 図32、負論理の非同期クリア端子と負論理の非同期プリセット端子の両方があるDフリップフロップの回路記号 表8 、負論理の非同期クリア端子と負論理の非同期プリセット端子の両方があるDフリップフロップの真理値表 入力信号 出力信号 動作 CLR PRE CLK D Q Q L H X X L H 非同期クリア H L X X H L 非同期プリセット L L X X U U 禁止 H H L X q q 保持 H H H X q q H H ↓ X q q H H ↑ L L H 読み取り H H ↑ H H L

注:表8における" X "、"↑"、"↓"、"q"、" q "、" U "の記号の意味は、表7と同様です。

↑ 画像をクリックすると拡大 図33、非同期クリア端子と非同期プリセット端子の両方があるDフリップフロップのタイミングチャートの例

CLR 信号と PRE 信号を同時に L にする事は禁止されているので、そうならないような信号を入力した例を示しています。

関連用語

関連ページ

  • ウィキペディアのフリップフロップのページ。
  • ウィキペディアのリング・オシレータのページ。
  • 社団法人日本電気技術者協会のフリップフロップとカウンタのページ音声による解説がある。
  • 汎用ロジックICで電子サイコロを作る74HC174というDフリップフロップのICを使った電子サイコロの作例。
📎📎📎📎📎📎📎📎📎📎