集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 17610|回复: 29

学fpga什么情况下会生成latch

[复制链接]
usd 发表于 2010-6-26 01:42:18 | 显示全部楼层 |阅读模式
学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 [3:0] data_in;
always @ (data_in)
begin
case (data_in)
0ut1=1'b1;
1,3ut2=1'b1;
2,4,5,6,7: out3=1'b1;
default: out4=1'b1;
endcase
end
谁能详细解释一下思路?怎么一看就知道硬件上会生成什么?
ATA 发表于 2010-6-26 02:38:25 | 显示全部楼层
这个需要熟能生巧吧,目前我也看不出来的,漫漫来,经验是积累出来的!!
HDL 发表于 2010-6-26 02:55:50 | 显示全部楼层
在赋值不完整的情况下会生成latch
ngtim 发表于 2010-6-26 03:33:39 | 显示全部楼层
原帖由 chenhongyi 于 2006-11-25 12:44 发表<br>
在赋值不完整的情况下会生成latch 1楼的两段代码,是曾经的考题,问哪一个回有latch,要求修改。<br>
能否结合那两段代码,给我讲讲啊
interig 发表于 2010-6-26 05:12:34 | 显示全部楼层
是不是代码b,会有latch?<br>
修改如下<br>
input [3:0] data_in;<br>
output[3:0] out<br>
always @ (data_in)<br>
begin<br>
case (data_in)<br>
&nbsp;&nbsp;0:&nbsp;&nbsp;out=4'b0001;<br>
&nbsp;&nbsp;1,3:&nbsp;&nbsp;out=4'b0010;<br>
&nbsp;&nbsp;2,4,5,6,7: out=4'b0100;<br>
&nbsp;&nbsp;default: out=4'b1000;<br>
endcase<br>
end<br>
这样对吗?
ATA 发表于 2010-6-26 07:06:12 | 显示全部楼层
b代码似乎是一个mux,对于组合逻辑,赋值语句不完整,就会产生不必要latch.应当避免.
CCIE 发表于 2010-6-26 07:10:42 | 显示全部楼层
组合逻辑中,条件不完整的赋值就会产生latch
HDL 发表于 2010-6-26 08:16:57 | 显示全部楼层
2应该会生成latch,是不是这种赋值不变的就会生成呢?还有就是条件判断不完全的会
CHANG 发表于 2010-6-26 09:03:38 | 显示全部楼层
原帖由 danphlee 于 2006-11-29 14:15 发表<br>
组合逻辑中,条件不完整的赋值就会产生latch 那么时序电路中呢???
AAT 发表于 2010-6-26 09:22:49 | 显示全部楼层
原帖由 vet_1982 于 2006-11-30 15:31 发表<br>
<br>
<br>
那么时序电路中呢??? 时序里,应该不会吧.
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

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

GMT+8, 2025-6-21 07:15 , Processed in 0.129688 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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