リセットのない FF のゲートレベルシミュレーションを行うと,初期値がないので X が伝搬してしまう.Verilog HDL では force / release を使い値の強制設定と解除が可能であるが,うまく force / release しないと X の伝搬を防ぐ事ができない.特に実負荷シミュレーションではクロックスキューもあるので,release のタイミングと実際にクロックが入るタイミングがずれる問題もある.
普通に force / release してもうまくいかない時の対策
・複数サイクルにかけて force を入れる
・FF のデータ入力だけでなく出力端子にも force を入れる
以下のようなPerlスクリプトを書いて,DATA端子とQ端子を探し force / release していました.
force / release の使い方はこちら.
http://kawaiihaseigi.blogspot.com/2017/07/verilog-force.html
0 件のコメント:
コメントを投稿