Data Flip-Flop【NandGame編】
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
Data Flip-Flopレベル
Data Flip-Flopレベルのゴールは、次の真理値表を実現する回路を組むことです。
st | d | 出力 |
---|---|---|
0 | 0 | unchanged |
0 | 1 | unchanged |
1 | 0 | 1 |
1 | 1 | 0 |
レベルの説明を参考にすると、Dフリップフロップ(以降、D-FFと略す)について言及しています。
デジタル回路本からD-FFの真理値表を調べてみると、次のようになります。
E | D | Qk+1 |  ̄Qk+1 |
---|---|---|---|
0 | x | Qk |  ̄Qk |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
出力が ̄Qk+1側に注目すると、当該レベルで与えられた真理値表と一致しています。
Data Flip-Flopレベルうを解く
真理値表だけを見るとD-FFを組むように見えますが、キャンバスの下を見るとクロック信号用のcl端子もあります。説明文をよく読むと、クロック信号が0から1に変化したときだけ、出力を変化させるとあります。
つまり、D-FFの原型を組むのではなく、エッジトリガー型D-FFを組むことになります。
この回路は10つのコンポーネントを使い、内部的に10個のNandゲートから構成されています。
※動いたはずの回路が動かなくなるという謎の現象を確認しました。
※Latchを使った回路にすると、[Check solution]ボタンを押した際に[Reset state]ボタンが現れました。
内部のNandを最小化する【別解】
この回路は内部的に9個のNandゲートから構成されます。
※新バージョンのNandGameではクリア扱いにならない?
ラッチを活用する【別解】
latchコンポーネントが用意されているので、これを活用してみます。
次の回路が考えられますが、新バージョンのNandGameではクリア扱いになりませんでした。
別のバージョンとして次の回路を考えてみました。
クリアできましたが、内部的に15個のNandゲートで効率があまりよくありません。