DFFなどの波形

DFFなどの波形

らんと さんの書込 (2009/06/25(Thu) 21:51)

フリップフロップなどで,クロックと入力の波形が与えられていて, それをもとに出力の波形を描くときのことで質問させていただきます. クロックが変化する瞬間と入力の値が変化する瞬間が一致していた場合はどうなるのでしょうか?

まず1つ目の疑問は,スタティックラッチでクロックが[1]から[0]になる直前まで入力が[1]であって, クロックが[0]になった瞬間に入力も[0]になった時は出力はどうなるのでしょうか? クロックが[0]の時は直前の[1]の時の出力の値(入力値の反対の値)を保持するということなので,[0]のままだと思うのですが,それであっているのでしょうか.

2つ目の疑問はディレイタイプ・フリップフロップ(DFF)の出力についてですが,上と同様な状況の場合,出力はどうなるのでしょうか? DFFの出力は立ち下がる瞬間の入力の値が1周期保持されると習ったのですが,この場合立ち下がる瞬間の入力の値は[1]か[0]かどちらになるのでしょうか?

よろしくお願いします.

Re: DFFなどの波形

豚 さんのレス (2009/06/27(Sat) 12:19)

こういう純粋に工学系の話題は場違いかとも思うのですが・・・ まあ,ここで取り上げる話題に「コンピュータ」も入っていますから, それに関連したハードウェアの初歩ということで・・・

答は「そういう場合は考慮されていない」 「クロックと同時に入力が変化する回路は,そもそも設計が悪い」 ということになると思います.

現実の,クロックを使って入力を取り込むICは,必ず 「クロックの前どのくらいまでに入力が安定していなければならないか, その後どのくらいの時間その状態を保持していなければならないか」 がスペックに書かれているはずです.それを守らないと, 変化する前・変化した後のどちらの値を取り込むかは 「やってみなければわからない」「その時その時で変化する」 ということになります. 最悪の場合,素子が発振したりラッチアップしたりして壊れることもあります. まあ,普通は壊れることまで考えなくてもいいでしょうが.

論理回路にクロックを使う理由の1つに,単純にAND−OR−NOT だけで回路を組むと,同時に変化する「予定の」出力が, 素子の個体差や配線長の違いなどでタイミングに差ができ, 後段の出力に俗に「ヒゲ」と呼ばれる短時間のパルスなどが現れて (正式にはハザードとか言ったかな)誤動作したりするのを防ぐために 「出力が出揃って(安定して)から,次の動作をさせよう」ということがあります.

入力信号がクロックと無関係な信号でクロックが入る瞬間にも 変化する可能性があるなら, 「変化前・変化後のどちらの値を取り込むか定まらない」ということを考慮し, それで不都合がないか考え,不都合なら対策を立てることになります.