0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数字IC设计中为什么要避免锁存器呢?

冬至子 来源:TrustZone 作者:皮皮宽 2023-11-09 12:28 次阅读

前言

数字IC设计中为什么要避免锁存器(Latches)?

上学时,老师说判断语句要把条件写全, 不然会生成锁存器,做项目时又说多比特寄存器信号的赋值一定要加if条件,不让出现else的赋值 。就很矛盾,本文主要讲下什么是锁存器,什么情况下会出现锁存器,以及锁存器的危害。

基本逻辑门电路图形符号

image.png

零、锁存器,D触发器和寄存器的关系与区别

前言

数字IC设计里,常会出现锁存器,D触发器和寄存器,很多人(比如我)老傻傻分不清,搞不懂他们的区别是什么。这篇博客主要解释锁存器,D触发器和寄存器的工作原理以及他们的关系和区别。

一、锁存器

锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态【1】。换句话说,如果一个模块的只有在特定电平的作用下,才会将输入信息更新到他的输出引脚,否则该模块的输出将保持不变,那么这个模块就可以被看成是一个锁存器。

举个例子:

image.png

二、锁存器构建D触发器

image.png

如图是一个D触发器的示意图,当CLK输入一个上升沿时,D端的输入被传输到Q。而CLK未输入上升沿时,Q保持不变。

image.png

如图所示,当CLK = 0时,Q1=D;当CLK=1时,Q=Q1;也就是说,当CLK上升沿来临时,D信号被传输到Q端,因此这两个锁存器组成了一个D触发器;

三、什么是寄存器?

寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成寄存器是有限存贮容量的高速存贮部件 ,它们可用来暂存指令、数据和地址【2】。也就是说, 拥有缓存数据功能的,都可以被称为寄存器 ,而寄存器常被用于CPU中,因此属于边沿信号敏感器件。

D触发器具有缓存数据的功能 ,当CLK输入上升沿时,D被传输到Q,之后Q将在CLK下一个上升沿到来前保持不变。因此D触发器可以作为寄存器使用,即(D触发器∈寄存器),锁存器状态的变化和特定电平有关(高电平和低电平),而寄存器的状态变化往往需要边沿信号(上升沿和下降沿),因此锁存器notin寄存器,由于两个锁存器可以构建一个边沿信号敏感的触发器(如上节所示),因此锁存器可以搭建寄存器。

四、总结

  • 锁存器为电平敏感器件,而D触发器和寄存器为边沿信号敏感器件;
  • 两个锁存器可以搭建一个D触发器;
  • D触发器属于寄存器;

一、什么是锁存器?

锁存器(Latch)是一种对脉冲电平敏感的存储单元电路 ,它们可以在特定输入脉冲电平作用下改变状态【1】。

换句话说, 如果一个模块的只有在特定电平的作用下,才会将输入信息更新到他的输出引脚 ,否则该模块的输出将保持不变,那么这个模块就可以被看成是一个锁存器。

常见的S-R寄存器的结构如下所示:

image.png

真值表为

由于S,R为00时,可以使输出Q保持不变,从而达到用组合逻辑来实现存储的目的;

image.png

二、什么情况下会出现锁存器?

时序逻辑由于寄存器的存在 ,因此不需要锁存器来存储数据; 而组合逻辑的条件未给全时则会出现锁存器

always@(*)    if(vld)        a = b;

这时由于没有写vld为0的情况,因此不会例化成二选一的选择器,而是会例化出锁存器,达到当vld为0时,保持数据不变的存储功能;

三、为什么要避免出现锁存器?

锁存器有以下缺点:

  • 不能异步复位,在上电后处于不确定的状态。
  • 锁存器会使静态时序分析变得非常复杂;
  • 如果是FPGA上的搭建电路的话,由于FPGA中基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源;
  • 锁存器对毛刺敏感,会造成电路的不稳定

例化成选择器就能解决这个问题吗?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603037
  • IC设计
    +关注

    关注

    38

    文章

    1295

    浏览量

    103923
  • 锁存器
    +关注

    关注

    8

    文章

    906

    浏览量

    41496
  • D触发器
    +关注

    关注

    3

    文章

    164

    浏览量

    47905
  • CLK
    CLK
    +关注

    关注

    0

    文章

    127

    浏览量

    17158
收藏 人收藏

    评论

    相关推荐

    FPGA的设计为什么避免使用

    前言 在FPGA的设计避免使用是几乎所有FPGA工程师的共识,Xilinx和Altera也在手册中提示大家
    的头像 发表于 11-16 11:42 8465次阅读
    FPGA的设计<b class='flag-5'>中</b>为什么<b class='flag-5'>避免</b>使用<b class='flag-5'>锁</b><b class='flag-5'>存</b><b class='flag-5'>器</b>

    的工作原理

    的处理时间,消耗了处理的处理能力,还浪费了处理的功耗。 的使用可以大大的缓解处理在这
    发表于 03-26 20:41

    的作用

    数码管的动态显示截取了部分程序,使用了74hc573,但是我觉得去掉程序照样可以执行
    发表于 03-11 16:59

    数字时钟程序

    就用C语言编程的数字时钟程序
    发表于 10-10 21:32

    写FPGA代码时,产生了有什么影响吗

    经常看到各种写HDL代码时说避免生成,但是在某些情况,我不关心那种情况即使它生成了
    发表于 01-08 23:54

    寄存和触发的区别

    暂存。缺点:时序分析较困难。不要的原因:1、
    发表于 07-03 11:50

    的缺点和优点

    ASIC设计应该说比ff简单,但是在FPGA的资源,大部分器件没有这个东西,所以需要
    发表于 04-23 03:35

    的作用是什么?

    数码管的动态显示截取了部分程序,使用了74hc573,但是我觉得去掉程序照样可以执行
    发表于 10-26 07:18

    ,是什么意思

    ,是什么意思
    发表于 03-09 09:44 1.2w次阅读

    的工作原理

    的工作原理  (latch)是一种用于存储和记忆
    的头像 发表于 12-08 11:18 6326次阅读

    什么是数字IC设计为什么避免

    数字IC设计里,常会出现,D触发和寄存,很
    的头像 发表于 02-17 15:04 2183次阅读
    什么是<b class='flag-5'>锁</b><b class='flag-5'>存</b><b class='flag-5'>器</b>?<b class='flag-5'>数字</b><b class='flag-5'>IC</b>设计<b class='flag-5'>中</b>为什么<b class='flag-5'>要</b><b class='flag-5'>避免</b><b class='flag-5'>锁</b><b class='flag-5'>存</b><b class='flag-5'>器</b>?

    电路的中间是什么元件

    电路概述 定义与功能 (Latch)是数字
    的头像 发表于 07-23 11:29 366次阅读

    的组成、功能及应用

    (Latch)是一种具有记忆功能的数字电路元件,用于存储和保持数字信号的状态。
    的头像 发表于 07-23 11:32 2691次阅读

    d解决了sr的什么问题

    D(Data Latch)和SR(Set-Reset Latch)是
    的头像 发表于 08-28 09:16 544次阅读

    电压监控(复位IC)

    电子发烧友网站提供《电压监控(复位IC).pdf》资料免费下载
    发表于 09-18 10:34 0次下载
    <b class='flag-5'>锁</b><b class='flag-5'>存</b>电压监控<b class='flag-5'>器</b>(复位<b class='flag-5'>IC</b>)