Verilog中关于if判定成立的问题
在看FPGA的资料,有一个关于Verilog语言的问题突然想不明白~
关于时序的,Verilog中,判断if成立的条件是当前值(感觉是电平式),还是过去值(感觉是时序)?
例如: if(a==2) out<=out+1'b1;
过去值0 | 未来值0(过去值1) | 未来值1
a=1 时钟上升沿0 a=2 时钟上升沿1 a=3
那么if判断条件成立的时候是在哪?是在a=2的那段,还是在时钟上升沿1的时候(时钟上升沿1时,a过去值为2,所以条件成立)
语言
Verilog,FPGA
硬件
------解决方案--------------------你对硬件没啥概念,你可以看看D触发器的工作模式,就知道了。就是时钟脉冲/电平到来的时刻,进行判断
------解决方案--------------------跟沿与电平是没有关系的
只判断if语句执行时变量/寄存器的值
只是 在HDL中,如果你是用非阻塞赋值的话,变量的值会在你的所有语句结束之后才修改,看起来像是前一时刻的值。