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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: fkl523

[讨论] 一直都不太明白Verilog不完整的if语句会产生锁存器,前辈筒子们杀进来。。

[复制链接]
发表于 2014-10-26 14:59:16 | 显示全部楼层
回复 2# 老阮


    学习了!
发表于 2014-10-26 20:58:21 | 显示全部楼层
回复 2# 老阮
学习了,多谢!
发表于 2014-10-28 10:56:38 | 显示全部楼层
带时序的一般综合出来的是触发器
组合逻辑,if或case不完备,会综合出来锁存器
发表于 2014-11-7 21:34:39 | 显示全部楼层
if语句没有else会产生锁存器这句话本身有歧义,个人觉得没有说明白。就想你的程序1,它本身就是个DFF,怎么就算不写else也不会产生latch;第二个程序肯定会产生latch。
发表于 2014-11-7 22:46:25 | 显示全部楼层
tks
l learn a lot
发表于 2014-11-9 00:03:34 | 显示全部楼层
仔细看看 D触发器 内部结构。 是由几个 RS 或 JK 触发器构建的。
发表于 2014-11-10 08:51:14 | 显示全部楼层
else
    ;  //加个空语句,据说这样可以避免产生latch
发表于 2016-8-4 15:24:36 | 显示全部楼层
回复 2# 老阮

你的意思是不是在时序逻辑中,if语句不完整的话,相当于在else部分保存原值,但是不会生成锁存器?
发表于 2016-8-7 14:29:19 | 显示全部楼层
回复 4# fkl523


    锁存器会增加时序分析的难度,一般不建议使用
发表于 2016-8-7 16:48:34 | 显示全部楼层
个人理解: 所谓生成latch其实是针对使用always语句描述一个组合逻辑而言,因为如果描述时序逻辑总是使用时钟或者时钟+复位作为敏感列表条件,所生成的电路总是组合逻辑+DFF;如果是描述组合逻辑,敏感列表中必然没有时钟复位,而是组合逻辑的输入信号。在FPGA设计,避免使用latch,不利于时序分析和仿真。 楼上有提到latch比DFF省资源, 这个在FPGA设计中其实还好, 因为在FPGA中DFF就是一个专用的硬件资源,并且数量也比较多。

使用always描述组合逻辑时,好的习惯是使用always @(*)作为敏感列表, 并且需要检查每个分支都有明确的赋值,从而避免生成latch.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 03:43 , Processed in 0.024765 second(s), 8 queries , Gzip On, Redis On.

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