如果if else语句中有某个情况没有定义,那么就综合工具默认此情况不变,就形成了锁存器(只有在某些电平到来会变化,其余不变)。
带来的问题是,如果是在时序电路中,两个时钟路径之间有锁存器,和组合逻辑电路,那么很难保证,锁存器变化时,其余部分组合逻辑电路的值有没有刚刚好已经变化好了,这就会带来不确定性的,也即冒险竞争显现,可能会出现无法预料的结果。
所以一定保证所以if else都写完,如果有无所谓值的情况的话 就写 = n'bx(n为位数),或者赋一个具体的值。
case语句 加上default
always@()语句,把所有可变的都放上。