在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1103|回复: 9

[原创] 时序always 块里if 分支不写else 有可能综合出latch么

[复制链接]
发表于 2024-7-18 11:31:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如题,有没有啥特殊情况会让时序always的写法里综合出latch

主要今天看到一个选择题说有可能,但自己从没遇到这个情况,不知大家有没有这方面经验。
多谢
发表于 2024-7-18 11:59:54 | 显示全部楼层
萌新回答一下
case语句没有default值
状态机应该也会有
复位没有default值可能也会有
发表于 2024-7-18 15:59:07 | 显示全部楼层
主要是区分是阻塞赋值还是非阻塞赋值。
非阻塞赋值 <= 不会出现 latch;
阻塞式赋值 = 在 trigger 条件满足后,如果没有实际赋值行为,则就会综合出来 latch;
 楼主| 发表于 2024-7-18 16:20:15 | 显示全部楼层


harry_hust 发表于 2024-7-18 15:59
主要是区分是阻塞赋值还是非阻塞赋值。
非阻塞赋值


你是说如下代码会综合出来latch么? 不太可能吧

always @(posedge clk) begin
    if (a)
        b = in;
end
发表于 2024-7-18 16:22:01 | 显示全部楼层
按理说时序逻辑综合出来是寄存器,不会有latch的
 楼主| 发表于 2024-7-18 16:47:20 | 显示全部楼层


Reginmind 发表于 2024-7-18 16:22
按理说时序逻辑综合出来是寄存器,不会有latch的


正常情况确实不会有,但那个题目说在特殊的情况下会综合出latch。 现在就不知道啥特殊情况会变成latch
发表于 2024-7-18 17:00:37 | 显示全部楼层
本帖最后由 harry_hust 于 2024-7-18 17:23 编辑


yongxinxue 发表于 2024-7-18 16:20
你是说如下代码会综合出来latch么? 不太可能吧

always @(posedge clk) begin


你可以综合一下看看就知道了哈。但你这个边沿触发的描述可能大概率是寄存器,看综合工具吧。

阻塞式赋值正常情况下是描述组合逻辑的,如果硬要给它加数据记忆功能,那只能是 latch 了。
发表于 2024-7-18 17:53:15 | 显示全部楼层
首先得看一下always块是时序逻辑还是组合逻辑。时序逻辑一般不会出现latch,组合逻辑分支不全会产生latch
 楼主| 发表于 2024-7-19 09:53:39 | 显示全部楼层


alexander21th 发表于 2024-7-18 17:53
首先得看一下always块是时序逻辑还是组合逻辑。时序逻辑一般不会出现latch,组合逻辑分支不全会产生latch ...


是的,现在就是看看有啥不一般的场景时序always会产生latch。
发表于 2024-7-22 16:13:57 | 显示全部楼层

谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-4-21 17:29 , Processed in 0.037982 second(s), 8 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表