学fpga什么情况下会生成latch
学fpga什么情况下会生成latch好象水平到一定程度后,一看代码就能看出来hdl会生成什么东西。怎么看啊?
例如以下
代码a
always @ (enable or ina or inb) begin
if (enable)begin
data_out=ina;
end
else begin
data_out=inb;
end
end
代码b
input data_in;
always @ (data_in)
begin
case (data_in)
0:out1=1'b1;
1,3:out2=1'b1;
2,4,5,6,7: out3=1'b1;
default: out4=1'b1;
endcase
end
谁能详细解释一下思路?怎么一看就知道硬件上会生成什么? 这个需要熟能生巧吧,目前我也看不出来的,漫漫来,经验是积累出来的!! 在赋值不完整的情况下会生成latch 原帖由 chenhongyi 于 2006-11-25 12:44 发表<br>
在赋值不完整的情况下会生成latch 1楼的两段代码,是曾经的考题,问哪一个回有latch,要求修改。<br>
能否结合那两段代码,给我讲讲啊 是不是代码b,会有latch?<br>
修改如下<br>
input data_in;<br>
output out<br>
always @ (data_in)<br>
begin<br>
case (data_in)<br>
0: out=4'b0001;<br>
1,3: out=4'b0010;<br>
2,4,5,6,7: out=4'b0100;<br>
default: out=4'b1000;<br>
endcase<br>
end<br>
这样对吗? b代码似乎是一个mux,对于组合逻辑,赋值语句不完整,就会产生不必要latch.应当避免. 组合逻辑中,条件不完整的赋值就会产生latch 2应该会生成latch,是不是这种赋值不变的就会生成呢?还有就是条件判断不完全的会 原帖由 danphlee 于 2006-11-29 14:15 发表<br>
组合逻辑中,条件不完整的赋值就会产生latch 那么时序电路中呢??? 原帖由 vet_1982 于 2006-11-30 15:31 发表<br>
<br>
<br>
那么时序电路中呢??? 时序里,应该不会吧.