1.阻塞赋值
1.LHS=RHS,等赋值完成后,后续语句才能进行。阻塞赋值操作不能设置延迟,否则不可综合。阻塞的概念是在一个alaways块中,前一个语句执行完成,后一个语句才执行。
2.非阻塞赋值
LHS<=RHS,在赋值时刻开始时计算RHS,结束时赋值给LHS,其他verilog语句能同时计算RHS和更新LHS.其他语句能同时执行。
只能用于寄存器类型变量,用于initial和always块,非阻塞赋值不能用于连续赋值。非阻塞落后一个时钟周期。
3.赋值要点
1.时序电路建模用非阻塞
2.锁存器电路用非阻塞
3.always用阻塞模块
4.在同一个always建立时序和组合逻辑电路时,用非阻塞赋值
5.同一个always不能同时用阻塞和非阻塞。
6.不要在一个以上always为同一个变量赋值。
7.在赋值时不能用#0来进行延迟
4.块语句
1.begin_end或fork_join,执行一句以上必须放在块语句中。
begin_end:顺序执行
fork_join:并行执行,是不可综合的,只能写在测试文件中。