encounter 发表于 2010-6-26 09:28:08

用时钟信号触发的不会

ICE 发表于 2010-6-26 09:41:55

代码2显然会产生latch的了

CTT 发表于 2010-6-26 11:12:39

學習中ing...<br>
那麼代碼2可以如何修改呢?<br>
。。。。

interig 发表于 2010-6-26 11:59:41

#5楼已经修改好了

ngtim 发表于 2010-6-26 13:35:37

原帖由 NegroNiNio 于 2006-12-2 09:31 发表<br>
#5楼已经修改好了 但是功能也变掉了<br>
多输出变成一个输出了

interige 发表于 2010-6-26 14:57:35

代码a: mux2<br>
<br>
代码b: latch.<br>
<br>
有一个问题:如果对代码b作如下修改:<br>
<br>
input data_in;<br>
output out;<br>
always @ (data_in)<br>
begin<br>
out=4'1000;<br>
case (data_in)<br>
&nbsp;&nbsp;0:&nbsp;&nbsp;out1=1'b1;<br>
&nbsp;&nbsp;1,3:&nbsp;&nbsp;out2=1'b1;<br>
&nbsp;&nbsp;2,4,5,6,7: out3=1'b1;<br>
&nbsp;&nbsp;default: <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out1=1'b0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out2=1'b0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out3=1'b0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out4=1'b1;<br>
endcase<br>
end<br>
<br>
这样还会产生latch吗?<br>
<br>
default是不是会覆盖所有不完整的情况?例如当data_in==0时,是不是除了out1=1,out2,out3,ou4都为默认值0?<br>
<br>
一直没有一个确定的答案,望指点。

usb 发表于 2010-6-26 15:56:33

原帖由 maryjanee 于 2006-12-6 11:48 发表<br>
代码a: mux2<br>
<br>
代码b: latch.<br>
<br>
有一个问题:如果对代码b作如下修改:<br>
<br>
input&nbsp;&nbsp;data_in;<br>
output out;<br>
always @ (data_in)<br>
begin<br>
out=4'1000;<br>
case (data_in)<br>
&nbsp;&nbsp;0:&nbsp;&nbsp;out1=1'b1;<br>
&nbsp;&nbsp;1,3:&nbsp;&nbsp;out2=1'b1;<br>
&nbsp;&nbsp;... 我觉得这个还是会产生latch的,如假设data_in=0,则只有 out1=1'b1,而 out0, out2, out3是不确定的,所以会产生latch,而且data_in的msb是3,我觉得应该是out0,out1,out2,out3,而不是out1,out2,out3,out4;<br>
不知说对了没有啊,欢迎指教

UFO 发表于 2010-6-26 16:07:05

对不起,的确应该是out0,out1,out2,out3,而不是out1,out2,out3,out4。<br>
<br>
我本人比较比较倾向楼上兄弟的观点--仍会产生latch.

CHA 发表于 2010-6-26 16:37:27

input data_in;<br>
output out;<br>
always @ (data_in)<br>
begin<br>
&nbsp; &nbsp;&nbsp;&nbsp;out0=1'b0;<br>
&nbsp; &nbsp;&nbsp;&nbsp;out1=1'b0;<br>
&nbsp; &nbsp;&nbsp;&nbsp;out2=1'b0;<br>
&nbsp; &nbsp;&nbsp;&nbsp;out3=1'b1;<br>
case (data_in)<br>
&nbsp;&nbsp;0:&nbsp;&nbsp;out1=1'b1;<br>
&nbsp;&nbsp;1,3:&nbsp;&nbsp;out2=1'b1;<br>
&nbsp;&nbsp;2,4,5,6,7: out3=1'b1;<br>
endcase<br>
end<br>
个人觉得这样改不会有latch

AAT 发表于 2010-6-26 18:26:49

代码2显然会产生latch的了,无论是IF或CASE语句,都要完整,这是最基本的
页: 1 [2] 3
查看完整版本: 学fpga什么情况下会生成latch