アルテラ Cyclone II FPGAボードにVerilogプログラムするコードを書いています。キー スイッチを押すとアクティブになるブロックがあります。always
reg START;
...
...
always @ (negedge key[3]) begin
if (START != 1) START = 1;
end
私は有限状態マシンのプログラムを書いています。このキーの押下は、ユーザーがプログラムの使用を開始したいことを示し、初期状態から次の状態に移行する必要があることを示しているはずです。レジスタの初期化は合成できないため、START0 から始まるとは想定できません。
問題は、ボードをプログラムして電源alwaysを入れると、 に割り当てられたキーを押す前に、このブロックが既に 1 回実行されていることkey[3]です。STARTプログラムの実行時に の値を確認しましたが、既に1です。キーが押されたときにのみキーが負のエッジにあるため、なぜこれが起こるのかわかりません。START以前の状況で常に同じ条件のブロックを使用しましたが、正常に機能したため、これは?の初期化と関係があると思います。