集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: usd

学fpga什么情况下会生成latch

[复制链接]
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 [3:0] data_in;<br>
output[3:0] 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 [3:0] data_in;<br>
output[3:0] 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 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 17:53 , Processed in 0.063347 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表