结论:
并不是写了IF不写ELSE或者CASE中不加default就产生Latch,也不是说加上else就不产生Latch。
看当前时刻数据会不会保持(a=a),如果有数据的保持就会产生锁存器。
仿真:
设计1:
module latch_test(
input sel,
input a,
output reg b
);
always@(*)
begin
if(sel)
b = a;
end
endmodule
设计2:
module latch_test(
input sel,
input a,
output reg b
);
always@(*)
begin
if(sel)
b = a;
else
b = b;
end
endmodule
设计3:
module latch_test(
input sel,
input a,
output reg b
);
always@(*)
begin
b = 1'b0;
if(sel)
b = a;
end
endmodule