数字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)相关推荐

  1. 数字IC设计中ECO的那些事,其实并不是事

    数字IC设计中ECO的那些事,其实并不是事! 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 点击标题下「蓝色微信名」可快速关注 刚好最近一直在忙着芯片的测 ...

  2. 数字IC设计中的亚稳态问题

    亚稳态: 亚稳态是由于违背了触发器的建立时间和保持时间而产生的: 同步系统中输入信号总是满足触发器的时序要求,所以不会发生亚稳态: 异步设计中,由于数据和时钟的关系不是固定的,因此会出现违反建立时间和 ...

  3. 数字IC设计中的均衡器

    equalizer均衡器 通信系统中,校正传输信号幅度频率独特性的部件,成为均衡器. 将频率为 f 的正弦波送入传输信道 输出电压与输入电压的幅度比随 f 变化的特性,称为 幅度频率特性,简称幅频特性 ...

  4. 数字IC设计的第一步——Synopsys EDA Tools的安装

    目录 简述 安装环境和文件 1. 环境 2. 文件 安装包链接 1. 环境 2. 文件 安装前踩坑 安装步骤 1. 安装前的准备工作 2. 用Synopsys Installer安装 3. 在wind ...

  5. 数字IC设计之脚本语言

    首先需要了解一下脚本语言在数字IC设计中的作用,C.C++等编程语言是为了开发软件或高性能计算应用,要是开发简单的应用,脚本语言更为简单,缩短了传统的"编写-编译-链接-运行"过程 ...

  6. 树芯计划-ASIC数字IC设计讲解(3)连载中......

    大家好,我是IC修真院的Andy老师,接下来跟同学们一起来分享ASIC数字IC设计. 大家可以想象一下,一个项目,从市场上经过分析,定义了要做的东西,其给我的architecture,经过架构师们努力 ...

  7. 常见数字IC设计、FPGA工程师面试题

    转载自:常见数字IC设计.FPGA工程师面试题 我怕弄丢了,找不到了,所以转载过来吧,回答的还挺具有参考意义. 借个位置,顺便把另外一篇好文的地址附上:FPGA中的亚稳态 1:什么是同步逻辑和异步逻辑 ...

  8. 数字IC设计工程师笔试面试经典100题

    1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来 ...

  9. 数字IC设计工程师笔试面试经典100题-有答案

    转自知乎答主ictown_数字IC设计工程师笔试面试经典100题-有答案-陈恩 1:什么是同步逻辑和异步逻辑?(汉王) 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系. 同 ...

最新文章

  1. 沈阳建立通用航空产业基地,开辟国内首家无人机专用空域
  2. C#.NET 中的类型转换 (转)
  3. 操作系统(六)系统调用
  4. java线程同步——竞争条件的荔枝+锁对象
  5. 基于PCA和SVM的人脸识别
  6. apipost--接口测试脚本编写if判断语句使用
  7. 【位运算经典应用】 N皇后问题
  8. CodeForces 621C 数学概率期望计算
  9. 2015年Java组B组
  10. 【JAVASE项目】书店管系统
  11. APK编辑器v2.4.3强行修改app背景图、去广告、重新架构等
  12. 关于华硕笔记本window10使用U盘启动盘进行重装系统的流程记录。
  13. 【《Multimodal Transformer for Unaligned Multimodal Language Sequences》论文翻译】
  14. Codeforces Educational Round#21 F(808F) Solution:网络流(最小割)
  15. 如何用在自己的网页中嵌入腾讯视频网页播放器播放一些文件
  16. 历经千辛万苦 阅尽科苑春色——浅议读研七件事(二)
  17. webservice拦截器 查看消息包(soap)
  18. 如何运用好ABBYY PDF Transformer+破解版中关键词搜索
  19. Angular5文件上传及进度报告、文件下载
  20. 达梦数据库——限制IP以及网段连接数据库

热门文章

  1. 知微见巨,苏州城市大脑之交通大数据应用
  2. Vue3的teleport组件
  3. java计算机数字逻辑在线学习系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  4. 异步多线程之ThreadPool详解
  5. 「网安学习」密码知识学习
  6. 【外贸干货】7个忠告,少走弯路
  7. 实验及工程技术人员招聘 | 华南理工大学广州国际校区
  8. 【82】PCIe LN协议
  9. 业务创新和技术创新的关系
  10. Java计算机毕业设计电影周边产品查找系统源码+系统+数据库+lw文档