FPGA注意事项——锁存器的产生
当在组合逻辑中使用if-else语句或case语句时,如果条件判断中产生了“保持”的结果,则会产生锁存器,这在FPGA设计中是不被允许的,如下例代码所示:
always @(*) begin
if(a>50) begin
b = 0;
end
else if(a < 50) begin
b = 1;
end
end
在上述代码中,当 a=50 时,b的值会保持,产生了一个锁存器。
当在组合逻辑中使用if-else语句或case语句时,如果条件判断中产生了“保持”的结果,则会产生锁存器,这在FPGA设计中是不被允许的,如下例代码所示:
always @(*) begin
if(a>50) begin
b = 0;
end
else if(a < 50) begin
b = 1;
end
end
在上述代码中,当 a=50 时,b的值会保持,产生了一个锁存器。