フリップフロップとラッチ

フリップフロップとラッチ

 今回の「フリップフロップとラッチ」は言葉の説明です。フリップフロップの機能はすでに説明済みですが、ラッチの機能や構造は回路設計が上達してから理解した方が混乱しないと思います。

 言葉を説明するのには意味があります。電子回路設計において、作ろうとする回路の「仕様」が重要だからです。初心者がいきなり仕様書を作成する事がなくても、仕様書を読んで理解しなくては電子回路を設計できません。また、先輩エンジニアにアドバイスをもらう時に、最低限の事がわかっていないとアドバイスを求めた核心の部分ではなくて、勉強会になってしまいます。

 さて、フリップフロップとラッチは違う機能を示しているのですが、FPGAのデジタル回路設計の現場において同じ意味で使われる事が多いのです。これがとても初心者を混乱させています。

 なので、次のようにルールを自分で決めましょう。そもそも、ごちゃ混ぜに使われているのです。であれば、マイルールで通しても問題ありません。

 「仕様書」のように紙面になっていたり、PDFになっていたり、文章化された媒体の場合、フリップフロップとラッチは別の機能。つまり、言葉本来の意味で扱う。と自分で決めましょう。

 文章は相手に正確に伝える必要があります。仕様書であればなおさらです。仕様書の通り動作しているのか、検査をする必要があります。その元となる仕様書が曖昧では意味がありません。

 もし、先輩エンジニアから「FPGAの入力直後に一回ラッチを入れておいてくれ」と指示されたなら、それはラッチではなく、Dフリップフロップを入れる。という意味です。つまりラッチとフリップフロップは同じ意味です。

 FPGAのデジタル回路設計をする時、ラッチは使わない。 と、自分で決めましょう。もし、どうしてもラッチの機能が必要な時は? ラッチという言葉ではなく、自分の言葉でその現象を説明すれば良いのです。

 なので、本ブログでは初心者にラッチの機能を説明しません。知らない機能なのですから、使わなくて済みます。仕様書に「ラッチ」という言葉が記載される事は稀です。初心者はもう少し時間をおいてから学びましょう。

 さて、同じ先輩エンジニアに「この回路はラッチになってるんだな」と指摘された時、その時はラッチ=フリップフロップではありません。本来の意味のラッチになっています。そして、FPGAの回路設計において、ラッチが発生している事はまずい事態になっている事を意味します。先ほど説明したようにFPGAのデジタル回路設計ではラッチを使わないからです。

 どうでしたか? 初心者の方は混乱しましたか? いっその事、ラッチという言葉を使わない。というマイルールでも良いです。でも、忘れてはいけないのは、「ラッチ機能は使わない」です。そして、先輩から言われた「ラッチ」がラッチの意味なのか、フリップフロップの意味なのか、わからない時には素直にどっちの意味ですか? と質問してください。そのうち、わかる日がきます。