为什么以下代码不会推断锁存?
工具如何知道要分配给" e"如果d和rst都是" 0" ?
module tmp(input d,
input clk,
input rst,
output reg o,
output reg e);
always@(posedge clk)
if(rst) begin
o <=0;
e <= 1;
end
else if(d) begin
o<=1;
e<=0;
end
else
o <=1;
endmodule
答案 0 :(得分:2)
您的始终阻止模型顺序逻辑(即带有触发器的逻辑)。如果d
和rst
都是1'b0
,则不会执行具有e
分配的代码行。因此,e
将保留(即记住)其先前的值。但那没关系,因为e
将被合成为D型触发器。人字拖具有状态,他们有存储。不需要闩锁。