【図(http://blog.goo.ne.jp/nabewari/e/73c2ffaa3b428381fe35d8619d20ae9f)の回路の動作を解析せよ。】
という問題があるのですが、ちょっと根本的な考え方が分かりません…。
Dフリップフロップの動作は、「クロックが立ち上がるときに、そのときのDの値を出力する」と理解(?)しています。
解答を見ると、状態遷移表として、表(http://blog.goo.ne.jp/nabewari/e/70e5e2017e6a38db73056a269a0ee0c1)が与えられています。SがDフリップフロップの値です。
質問なのですが、nextSで表される「次のDフリップフロップの値」というのは、なぜ、入力と今の状態で決まるのでしょうか?出力OはSとIが共に1のとき、というのは分かるのですが、次の状態、というのは今まで出てこなかったのですが、どのように考えればいいのでしょうか?(というかDの状態は問題で与えられて、状態が1にいったり0にいったりしていたので、人間が任意のときに変えられると思っていました…。)
あと確認なのですが、入力Iと出力Oは図の赤丸と青丸でいいのですよね?(http://blog.goo.ne.jp/nabewari/e/d5fc0633905e29266fc4962b0e8db9a9)
基礎的な質問で申し訳ありません。よろしくお願いします。
DFFはD入力だけで決まります。状態は関係ないですよ。
ただこの回路は、D入力がI and (not Q)ですから、今の出力すなわちQに依存します。
クロック関係なくDを求めると、
I=0,Q=0の時、D=0
I=0,Q=1の時、D=0
I=1,Q=0の時、D=1
I=1,Q=1の時、D=0
クロックが立ち上がった時のDの値がすなわち次のQです。
I=1,Q=1の時のみO=1になるのは自明ですね。
ちなみにこの状態遷移表は解答じゃないですよ。
出力は、入力を0から1にしたとき、次のクロックから1クロックおきに1と0をクロックごとに繰り返す。
入力を1から0にした時、出力は0になる。
入力と出力はそれでいいと思いますよ。ではガンバ。
回答ありがとうございます。