我正在编写一些要在Altera Cyclone II FPGAVerilog板上编程的代码,并且我有一个应该在按下按键开关时激活的块:always
reg START;
...
...
always @ (negedge key[3]) begin
if (START != 1) START = 1;
end
我正在为有限状态机编写一个程序,这个按键应该表明用户想要开始使用该程序,并且它应该从其初始状态移动到下一个状态。由于寄存器的初始化是不可综合的,我不能假设它START从 0 开始。
问题是,一旦我对电路板进行编程并打开它,always在我按下分配给的键之前,这个块已经运行了一次key[3]。我已经检查了STARTat 程序执行的值,它已经在1. 我不知道为什么会发生这种情况,因为只有在按键时键才处于负边缘。我在以前的情况下总是使用具有相同条件的块并且它工作正常,所以我认为这与初始化有关START?