\[ \newcommand{dn}[3]{\frac{\mathrm{d}^{#3} #1}{\mathrm{d} #2^{#3}}}
\newcommand{\d}[2]{\frac{\mathrm{d} #1}{\mathrm{d} #2}}
\newcommand{\dd}[2]{\frac{\mathrm{d}^2 #1}{\mathrm{d} {#2}^2}}
\newcommand{\ddd}[2]{\frac{\mathrm{d}^3 #1}{\mathrm{d} {#2}^3}}
\newcommand{\pdn}[3]{\frac{\partial^{#3} #1}{\partial {#2}^{#3}}}
\newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}}
\newcommand{\pdd}[2]{\frac{\partial^2 #1}{\partial {#2}^2}}
\newcommand{\pddd}[2]{\frac{\partial^3 #1}{\partial {#2}^3}}
\newcommand{\p}{\partial}
\newcommand{\D}[2]{\frac{\mathrm{D} #1}{\mathrm{D} #2}}
\newcommand{\Re}{\mathrm{Re}}
\newcommand{\Im}{\mathrm{Im}}
\newcommand{\bra}[1]{\left\langle #1 \right|}
\newcommand{\ket}[1]{\left|#1 \right\rangle}
\newcommand{\braket}[2]{\left\langle #1 \middle|#2 \right\rangle}
\newcommand{\inner}[2]{\left\langle #1 ,#2 \right\rangle}
\newcommand{\l}{\left} \newcommand{\m}{\middle} \newcommand{\r}{\right}
\newcommand{\f}[2]{\frac{#1}{#2}} \newcommand{\eps}{\varepsilon}
\newcommand{\ra}{\rightarrow} \newcommand{\F}{\mathcal{F}}
\newcommand{\L}{\mathcal{L}} \newcommand{\t}{\quad}
\newcommand{\intinf}{\int_{-\infty}^{+\infty}}
\newcommand{\R}{\mathcal{R}} \newcommand{\C}{\mathcal{C}}
\newcommand{\Z}{\mathcal{Z}} \newcommand{\bm}[1]{\boldsymbol{#1}} \]
これは リレーから始める CPU 自作 Advent Calendar 2021 5 日目の記事です。 <<< 4 日目
この記事では、論理回路の中でも一番の山場、D フリップフロップ回路(DFF)を解説します。
DFF の仕事
DFF は信号を記憶する素子です。
CLK が立ち上がったタイミングの D の状態が記憶されて、Q に出力されます。
回路図と動作
複雑な回路ですが、ひとつずつ追っていけばわかる、はずです…!
D=1
- D が ON になると、 X が ON になる。
- CLK が立ち上がると、① の経路は切れるが、② の経路は導通しているので、 X は ON を維持する。このとき、CLK が立ち上がってる間に、D が OFF になったとしても、X は ON を維持する。
- X と CLK が ON なので、Q が ON になる。
- CLK が立ち下がると、③ の経路は切れるが、④ の経路は導通しているので、Q は ON を維持する。
D=0
- D が OFF になると、X が OFF になる。
- CLK が立ち上がると、Q が ON であったとしても、Q が OFF になる。このとき、CLK が立ち上がってる間に、D が ON になったとしても、X は OFF を維持する。
- X と CLK が ON なので、Q が OFF になる。
- CLK が立ち下がっても、Q は OFF を維持する。
>>> 6 日目