dポイントプレゼントキャンペーン実施中!

Verilogでalways文で意図しないラッチが問題となる場合とはどんな場合でしょうか?

http://www.am.ics.keio.ac.jp/parthenon/final.pdf
を読むと、

『入力の全ての組み合わせで出力を定義しないと、定義されていない入力に対しては出力を保持する必要があると判断されてしまう。このため、合成時に一種の記憶素子であるトランスペアレントラッチが生成されてしまう。これは多くの場合、トラブルの元となる』

と書いてありますが、具体的にどの様なトラブルが発生するのでしょうか?

よろしくお願いします。

A 回答 (1件)

本来組み合わせ回路やフリップフロップであるところが、


ラッチになってたら大問題に決まってます。
動きが異なりますから。

というかラッチはインターフェースなどの一部以外では基本的に
使用禁止のベンダーが多いです。
微妙に非同期ですからタイミング解析が面倒なんですね。

組み合わせ回路をfunction文で書くかalways文で書くかは、
一長一短あるので、
設計している所のコーディング規約に従います。
always @( * )はあんまり使いませんね。

最近はコーディングチェックツールもそれなりに使えるものがあるので、
そのツールを使えばコーディングミスはほとんど起こりません。
設計ミスは見つかりませんけどね・・・。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!