竹下世界塔の計算機よもやま話

アクセスカウンタ

zoom RSS FFとラッチ

<<   作成日時 : 2013/12/24 02:08   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

 ツイッターにて。


@duo6750
エッジトリガではなく、レベルトリガのフリップフロップを「ラッチ」と呼ぶのは正しいのでしょうか?
また、正しい/誤りは別として、職場等でFFとLatchの「言葉の使い分けルール」がある方がおられましたら、そのルールを教えて下さいませませ。
https://twitter.com/duo6750/status/411995314829004801



 TTLで代表的なFF、7474とラッチ74373で比較してみると:
FFはクロック信号の立ち上がりの瞬間にデータを内部に保持する。ラッチはイネーブル信号がLだとデータを保持し、Hで入出力をスルーする。

 動作については、次の資料がわかりやすかった。
JST ディジタル回路 フリップフロップ
 あと、こちら。
順序回路の設計(5章フリップフロップとそのVHDL記述)


 昔、FFベースの同期回路をラッチベースに変更するというのに関わったことがあり、論理シミュレーションをいじったことがある。変更の理由はFFの回路規模で、ラッチにした方が小さくなるからだと思われる。他にも何か利点があったかもしれない(ツッコミ歓迎)。
 何が違うのか思い出しつつまとめてみる。条件としては全体が単相クロック1系統だけの同期回路、エッジトリガのFFがそのままラッチに置き換わり、FFのエッジの上り/下りは混在しないものとする。


画像


 この図の様に、FFは上りエッジ、ラッチはスルーを短いパルス状にすることで同期回路としては等価に扱うことができる。

 だが、ラッチベースだと次の問題がある。


@duo6750
@houmei 「FFの出力を反転してそのFF自身の入力に繋ぐ」
この場合エッジトリガだと0->1->0->1とトグルしますが、
「ラッチ」だとは「つつぬけ」にした瞬間に発振してしまいます。
自分自身の出力で自分自身の入力が変わる場合は「等価」とはいえないのでわ?
https://twitter.com/duo6750/status/412023593854201856


画像


 ラッチの出力がそのまま自分の入力につながっていると、ホールド解除のスルー状態になっている時は発振してしまう。
 これをどのように回避していたかというと、下の様にスルーになっているパルス幅以上のディレイを挿入してやる。こうすればD入力→ラッチ内部→Q出力→ディレイ→D入力に到達するまでにラッチはホールド状態になり発振しない。他の組合せ回路の段数や配線が短くてディレイが足らない状態でもCADツールならば簡単に警告することができる。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




FFとラッチ 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる