数字IC设计中为什么要避免锁存器(Latches)
数字IC设计中为什么要避免锁存器(Latches)
上学时,老师说判断语句要把条件写全,不然会生成锁存器,做项目时又说多比特寄存器信号的赋值一定要加if条件,不让出现else的赋值。就很矛盾,本文主要讲下什么是锁存器,什么情况下会出现锁存器,以及锁存器的危害
文章目录
- 数字IC设计中为什么要避免锁存器(Latches)
- 一、什么是锁存器?
- 二、什么情况下会出现锁存器?
- 三、为什么要避免出现锁存器?
- 参考资料
一、什么是锁存器?
锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态【1】。换句话说,如果一个模块的只有在特定电平的作用下,才会将输入信息更新到他的输出引脚,否则该模块的输出将保持不变,那么这个模块就可以被看成是一个锁存器。
常见的S-R寄存器的结构如下所示:
真值表为
S | R | Q |
---|---|---|
0 | 0 | 保持 |
1 | 0 | 0 |
0 | 1 | 1 |
1 | 1 | 翻转 |
由于S,R为00时,可以使输出Q保持不变,从而达到用组合逻辑来实现存储的目的;
二、什么情况下会出现锁存器?
时序逻辑由于寄存器的存在,因此不需要锁存器来存储数据;而组合逻辑的条件未给全时则会出现锁存器
;
比如
always@(*)if(vld)a = b;
这时由于没有写vld为0的情况,因此不会例化成二选一的选择器,而是会例化出锁存器,达到当vld为0时,保持数据不变的存储功能;
三、为什么要避免出现锁存器?
锁存器有以下缺点:
- 不能异步复位,在上电后处于不确定的状态。
- 锁存器会使静态时序分析变得非常复杂;
- 如果是FPGA上的搭建电路的话,由于FPGA中基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源;
- 锁存器对毛刺敏感,会造成电路的不稳定(这一点我没想明白,例化成选择器就能解决这个问题吗??)
参考资料
【1】 锁存器_360百科 (so.com)
【2】 CSDN: FPGA学习之latch的产生原因、危害与避免措施_B_AKING的博客-CSDN博客_产生latch的原因
【3】CSDN: 锁存器,D触发器和寄存器的关系与区别
数字IC设计中为什么要避免锁存器(Latches)相关推荐
- 数字IC设计中ECO的那些事,其实并不是事
数字IC设计中ECO的那些事,其实并不是事! 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 点击标题下「蓝色微信名」可快速关注 刚好最近一直在忙着芯片的测 ...
- 数字IC设计中的亚稳态问题
亚稳态: 亚稳态是由于违背了触发器的建立时间和保持时间而产生的: 同步系统中输入信号总是满足触发器的时序要求,所以不会发生亚稳态: 异步设计中,由于数据和时钟的关系不是固定的,因此会出现违反建立时间和 ...
- 数字IC设计中的均衡器
equalizer均衡器 通信系统中,校正传输信号幅度频率独特性的部件,成为均衡器. 将频率为 f 的正弦波送入传输信道 输出电压与输入电压的幅度比随 f 变化的特性,称为 幅度频率特性,简称幅频特性 ...
- 数字IC设计的第一步——Synopsys EDA Tools的安装
目录 简述 安装环境和文件 1. 环境 2. 文件 安装包链接 1. 环境 2. 文件 安装前踩坑 安装步骤 1. 安装前的准备工作 2. 用Synopsys Installer安装 3. 在wind ...
- 数字IC设计之脚本语言
首先需要了解一下脚本语言在数字IC设计中的作用,C.C++等编程语言是为了开发软件或高性能计算应用,要是开发简单的应用,脚本语言更为简单,缩短了传统的"编写-编译-链接-运行"过程 ...
- 树芯计划-ASIC数字IC设计讲解(3)连载中......
大家好,我是IC修真院的Andy老师,接下来跟同学们一起来分享ASIC数字IC设计. 大家可以想象一下,一个项目,从市场上经过分析,定义了要做的东西,其给我的architecture,经过架构师们努力 ...
- 常见数字IC设计、FPGA工程师面试题
转载自:常见数字IC设计.FPGA工程师面试题 我怕弄丢了,找不到了,所以转载过来吧,回答的还挺具有参考意义. 借个位置,顺便把另外一篇好文的地址附上:FPGA中的亚稳态 1:什么是同步逻辑和异步逻辑 ...
- 数字IC设计工程师笔试面试经典100题
1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来 ...
- 数字IC设计工程师笔试面试经典100题-有答案
转自知乎答主ictown_数字IC设计工程师笔试面试经典100题-有答案-陈恩 1:什么是同步逻辑和异步逻辑?(汉王) 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系. 同 ...
最新文章
- 沈阳建立通用航空产业基地,开辟国内首家无人机专用空域
- C#.NET 中的类型转换 (转)
- 操作系统(六)系统调用
- java线程同步——竞争条件的荔枝+锁对象
- 基于PCA和SVM的人脸识别
- apipost--接口测试脚本编写if判断语句使用
- 【位运算经典应用】 N皇后问题
- CodeForces 621C 数学概率期望计算
- 2015年Java组B组
- 【JAVASE项目】书店管系统
- APK编辑器v2.4.3强行修改app背景图、去广告、重新架构等
- 关于华硕笔记本window10使用U盘启动盘进行重装系统的流程记录。
- 【《Multimodal Transformer for Unaligned Multimodal Language Sequences》论文翻译】
- Codeforces Educational Round#21 F(808F) Solution:网络流(最小割)
- 如何用在自己的网页中嵌入腾讯视频网页播放器播放一些文件
- 历经千辛万苦 阅尽科苑春色——浅议读研七件事(二)
- webservice拦截器 查看消息包(soap)
- 如何运用好ABBYY PDF Transformer+破解版中关键词搜索
- Angular5文件上传及进度报告、文件下载
- 达梦数据库——限制IP以及网段连接数据库