verilog的并行性
verilog语言所实现的电路是并行执行的,对应于所写的模块所反映的便是:
- 不同的always语句都是可以相互独立并且并行工作的。
- 同一个always语句内不同的逻辑处理都是并行的。
always @(posedge clk)begin
if(rst_en)begin
end
else begin
reg1 <= 输入值;
reg2 <= reg1;
end
end
上面两个值是并行执行的。
假设输入值以上面那样变化,寄存器初始值复位值均为0。
那么,寄存器均在时钟上升沿开始变化,所以在第一个上升沿的时候,输入值为0,寄存器1将0赋予自己。同时对于寄存器2来说,由于同时发生,寄存器2得到的寄存器1的值也为0,所以就造成图上这种均慢了一拍的效果。