• <button id="7jkzf"><object id="7jkzf"></object></button>
    <em id="7jkzf"></em>
    当前位置:首页 > 算卦大师 >解惑锁存器、触发器、寄存器和缓冲器

    解惑锁存器、触发器、寄存器和缓冲器

    2021-09-28 14:43:03EDN电子技术设计


    关注我,随时有好文

    锁存器

    锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态。

    锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能) 信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。

    (简单地说,它有两个输入,分别是一个有效信号 EN,一个输入数据信号 DATA_IN,它有一个输出 Q,它的功能就是在 EN 有效的时候把 DATA_IN 的值传给 Q,也就是锁存的过程)。

    锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化, 就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入 信号不起作用。锁存器也称为透明锁存器,指的是不锁存时输出对于输入是透明 的。


    应用场合:数据有效迟后于时钟信号有效。这意味着时钟信号先到,数据信 号后到。在某些运算器电路中有时采用锁存器作为数据暂存器。

    缺点时序分析较困难。

    不要锁存器的原因有二:1、锁存器容易产生毛刺,2、锁存器在 ASIC(专 用集成电路)设计中应该说比 ff(触发器)要简单,但是在 FPGA 的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和 ff 来组成锁存器,这 样就浪费了资源。(用 CPLD(复杂可编程逻辑器件)和 FPGA(现场可编程逻辑阵列) 来进行 ASIC 设计是最为流行的方式之一)

    优点面积小。锁存器比 FF 快,所以用在地址锁存是很合适的,不过一定 要保证所有的 latch 信号源的质量,锁存器在 CPU 设计中很常见,正是由于它的 应用使得 CPU 的速度比外部 IO 部件逻辑快许多。latch 完成同一个功能所需要 的门较触发器要少,所以在 asic 中用的较多。


    触发器

    触发器:(Flip-Flop,简写为 FF),也叫双稳态门,又称双稳态触发器。是 一种可以在两种状态下运行的数字逻辑电路。触发器一直保持它们的状态,直到它们收到输入脉冲,又称为触发。当收到输入脉冲时,触发器输出就会根据规则 改变状态,然后保持这种状态直到收到另一个触发。

    触发器(flip-flops)电路相互关联,从而为使用内存芯片和微处理器的数 字集成电路(IC)形成逻辑门。它们可用来存储一比特的数据。该数据可表示音 序器的状态、计数器的价值、在计算机内存的 ASCII 字符或任何其他的信息。

    有几种不同类型的触发器(flip-flops)电路具有指示器,如 T(切换)、 S-R(设置/重置)J-K(也可能称为 Jack Kilby)和 D(延迟)。典型的触发器 包括零个、一个或两个输入信号,以及时钟信号和输出信号。一些触发器还包括 一个重置当前输出的明确输入信号。第一个电子触发器是在 1919 年由 W.H.Eccles 和 F.W.Jordan 发明的。

    触发器(flip-flop)---对脉冲边沿敏感,其状态只在时钟脉冲的上升沿或下 降沿的瞬间改变。

    T 触发器(Toggle Flip-Flop,or Trigger Flip-Flop)设有一个输入和输出, 当时钟频率由 0 转为 1 时,如果T和Q 不相同时,其输出值会是 1。输入端 T 为

    1 的时候,输出端的状态 Q 发生反转;输入端T为0 的时候,输出端的状态 Q 保 持不变。把 JK 触发器的J和K 输入点连接在一起,即构成一个 T 触发器。


    应用场合时钟有效迟后于数据有效。这意味着数据信号先建立,时钟信号后建立。在 CP 上升沿时刻打入到寄存器。

    寄存器

    寄存器(register):来存放数据的一些小型存储区域,用来暂时存放参 与运算的数据和运算结果,它被广泛的用于各类数字系统和计算机中。其实寄存 器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器 的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储 1 位二 进制数,所以由 N 个锁存器或触发器可以构成 N 位寄存器。 工程中的寄存器一 般按计算机中字节的位数设计,所以一般有 8 位寄存器、16 位寄存器等。

    对寄存器中的触发器只要求它们具有置 1、置 0 的功能即可,因而无论是用 同步 RS 结构触发器,还是用主从结构或边沿触发结构的触发器,都可以组成寄 存器。一般由 D 触发器组成,有公共输入/输出使能控制端和时钟,一般把使能 控制端作为寄存器电路的选择信号,把时钟控制端作为数据输入控制信号。


    用来存放数据的一些小型存储区域,用来暂时存放参 与运算的数据和运算结果,它被广泛的用于各类数字系统和计算机中。其实寄存 器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器 的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储 1 位二 进制数,所以由 N 个锁存器或触发器可以构成 N 位寄存器。 工程中的寄存器一 般按计算机中字节的位数设计,所以一般有 8 位寄存器、16 位寄存器等。

    对寄存器中的触发器只要求它们具有置 1、置 0 的功能即可,因而无论是用 同步 RS 结构触发器,还是用主从结构或边沿触发结构的触发器,都可以组成寄 存器。一般由 D 触发器组成,有公共输入/输出使能控制端和时钟,一般把使能 控制端作为寄存器电路的选择信号,把时钟控制端作为数据输入控制信号。


    寄存器的应用

    1.可以完成数据的并串、串并转换;

    2.可以用做显示数据锁存器:许多设备需要显示计数器的记数值,以 8421BCD 码 记数,以七段显示器显示,如果记数速度较高,人眼则无法辨认迅速变化的显示 字符。在计数器和译码器之间加入一个锁存器,控制数据的显示时间是常用的方 法。

    3.用作缓冲器;

    4.组成计数器:移位寄存器可以组成移位型计数器,如环形或扭环形计数器。


    移位寄存器具有移位功能的寄存器称为移位寄存器。

    寄存器只有寄存数据或代码的功能。有时为了处理数据,需要将寄存器中的 各位数据在移位控制信号作用下,依次向高位或向低位移动 1 位。移位寄存器按 数码移动方向分类有左移,右移,可控制双向(可逆)移位寄存器;按数据输入 端、输出方式分类有串行和并行之分。除了 D 边沿触发器构成移位寄存器外,还 可以用诸如 JK 等触发器构成移位寄存器。

    总线收发器/缓冲器

    缓冲寄存器:又称缓冲器缓冲器(buffer):多用在总线上,提高驱动能力、 隔离前后级,缓冲器多半有三态输出功能。当负载不具有非选通输出为高阻特性 时,将起到隔离作用;当总线的驱动能力不够驱动负载时,将起到驱动作用。由 于缓冲器接在数据总线上,故必须具有三态输出功能。它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存 放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。 有了数控缓冲器,就可以使高速工作的 CPU 与慢速工作的外设起协调和缓冲作 用,实现数据传送的同步。


    Buffer

    缓冲区,一个用于在初速度不同步的设备或者优先级不同的设备之 间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速 度慢的设备读入数据时,速度快的设备的操作进程不发生间断。

    缓冲器主要是计算机领域的称呼。具体实现上,缓冲器有用锁存器结构的电 路来实现,也有用不带锁存结构的电路来实现。一般来说,当收发数据双方的工 作速度匹配时,这里的缓冲器可以用不带锁存结构的电路来实现;而当收发数据 双方的工作速度不匹配时,就要用带锁存结构的电路来实现了(否则会出现数据 丢失)。


    缓冲器在数字系统中用途很多:

    (1)如果器件带负载能力有限,可加一级带驱动器的缓冲器;

    (2)前后级间逻辑电平不同,可用电平转换器加以匹配;

    (3)逻辑极性不同或需要将单性变量转换为互补变量时,加带反相缓冲器;

    (4) 需要将缓变信号变为边沿陡峭信号时,加带施密特电路的缓冲器

    (5)数据传输和处理中不同装置间温度和时间不同时,加一级缓冲器进行弥补 等等。


    锁存器与触发器的区别:

    锁存器和触发器是具有记忆功能的二进制存贮器件,是组成各种时序逻辑电路的基本器件之一。区别为:latch 同其所有的输入信号相关,当输入信号变化 时 latch 就变化,没有时钟端;flip-flop 受时钟控制,只有在时钟触发时才采 样当前的输入,产生输出。当然因为 latch 和 flip-flop 二者都是时序逻辑,所 以输出不但同当前的输入相关还同上一时间的输出相关。

    1、latch 由电平触发,非同步控制。在使能信号有效时 latch 相当于通路,在 使能信号无效时 latch 保持输出状态。DFF 由时钟沿触发,同步控制。

    2、latch 对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生; DFF 则不易产生毛刺。

    3、如果使用门电路来搭建 latch 和 DFF,则 latch 消耗的门资源比 DFF 要少, 这是 latch 比 DFF 优越的地方。所以,在 ASIC 中使用 latch 的集成度比 DFF 高, 但在 FPGA 中正好相反,因为 FPGA 中没有标准的 latch 单元,但有 DFF 单元,一 个 LATCH 需要多个 LE 才能实现。latch 是电平触发,相当于有一个使能端,且 在激活之后(在使能电平的时候)相当于导线了,随输出而变化。在非使能状态

    下是保持原来的信号,这就可以看出和 flip-flop 的差别,其实很多时候 latch 是不能代替 ff 的。

    4、latch 将静态时序分析变得极为复杂。

    5、目前 latch 只在极高端的电路中使用,如 intel 的 P4 等 CPU。FPGA 中有 latch 单元,寄存器单元就可以配置成 latch 单元,在 xilinx v2p 的手册将该单元配 置成为 register/latch 单元,附件是 xilinx 半个 slice 的结构图。其它型号和 厂家的 FPGA 没有去查证。——个人认为 xilinx 是能直接配的而 altera 或许比 较麻烦,要几个 LE 才行,然而也非 xilinx 的器件每个 slice 都可以这样配置, altera 的只有 DDR 接口中有专门的 latch 单元,一般也只有高速电路中会采用 latch 的设计。altera 的 LE 是没有 latch 的结构的,又查了 sp3 和 sp2e,别的 不查了,手册上说支持这种配置。有关 altera 的表述 wangdian 说的对,altera 的 ff 不能配置成 latch,它使用查找表来实现 latch。

    一般的设计规则是:在绝大多数设计中避免产生 latch。它会让您设计的时 序完蛋,并且它的隐蔽性很强,非老手不能查出。latch 最大的危害在于不能过 滤毛刺。这对于下一级电路是极其危险的。所以,只要能用 D 触发器的地方,就 不用 latch。

    有些地方没有时钟,也只能用 latch 了。比如现在用一个 clk 接到 latch 的 使能端(假设是高电平使能),这样需要的 setup 时间,就是数据在时钟的下降沿 之前需要的时间,但是如果是一个 DFF,那么 setup 时间就是在时钟的上升沿需 要的时间。这就说明如果数据晚于控制信号的情况下,只能用 latch,这种情况 就是,前面所提到的 latch timing borrow。基本上相当于借了一个高电平时间。 也就是说,latch 借的时间也是有限的。


    在 if 语句和 case 不全很容易产生 latch,需要注意。VIA 题目这两个代码哪个综合更容易产生

    latch: 代码 1

    always@(enable or ina or inb) begin

    if(enable) begin

    data_out = ina; end

    else begin

    data_out = inb; end

    end

    代码 2


    input[3:0] data_in; always@(data_in) begin case(data_in)

    0 : out1 = 1'b1;


    1,3 : out2 = 1'b1;


    2,4,5,6,7 : out3 = 1'b1;


    default: out4 = 1'b1; endcase

    end

    答案是代码 2 在综合时更容易产生 latch。


    对 latch 进行 STA 的分析其实也是可以,但是要对工具相当熟悉才行,不过 很容易出错。当前 PrimeTime 是支持进行 latch 分析的,现在一些综合工具内置 的 STA 分析功能也支持,比如 RTL compiler, Design Compiler。除了 ASIC 里可 以节省资源以外,latch 在同步设计里出现的可能还是挺小的,现在处理过程中 大都放在 ff 里打一下。

    锁存器电平触发会把输入端的毛刺带入输出;而触发器由于边沿作用可以有 效抑制输入端干扰。

    在 CMOS 芯片内部经常使用锁存器,但是在 PCB 板级结构上,建议用触发器在 时钟边沿上锁存数据。这是因为在锁存器闸门开启期间数据的变化会直接反映到 输出端,所以要注意控制闸门信号的脉冲宽度,而对于触发器,只考虑时钟的边 沿。


    门电路是构建组合逻辑电路的基础,而锁存器和触发器是构建时序逻辑电路 的基础。门电路是由晶体管构成的,锁存器是由门电路构成的,而触发器是由锁 存器构成的。也就是晶体管->门电路->锁存器->触发器,前一级是后一级的基础。 锁存器和触发器它们的输出都不仅仅取决于目前的输入,而且和之前的输入和输 出都有关系。

    它们之间的不同在于:锁存器没有时钟信号,而触发器常常有时钟触发信号。


    锁存器是异步的,就是说在输入信号改变后,输出信号也随之很快做出改变 非常快。而另外一方面,今天许多计算机是同步的,这就意味着所有的时序电路 的输出信号随着全局的时钟信号同时做出改变。触发器是一个同步版锁存器。

    触发器泛指一类电路结构,它可以由触发信号(如:时钟、置位、复位等)改 变输出状态,并保持这个状态直到下一个或另一个触发信号来到时。触发信号可 以用电平或边沿操作,锁存器是触发器的一种应用类型。


    D 触发器和 D 锁存器的区别

    钟控D触发器其实就是 D 锁存器,边沿 D 触发器才是真正的 D 触发器,钟控 D 触发器在使能情况下输出随输入变化,边沿触发器只有在边沿跳变的情况下输 出才变化。

    两个锁存器可以构成一个触发器,归根到底还是 dff 是边沿触发的,而 latch 是电平触发的。锁存器的输出对输入透明的,输入是什么,输出就是什么,这就 是锁存器不稳定的原因,而触发器是由两个锁存器构成的一个主从触发器,输出 对输入是不透明的,必须在时钟的上升/下降沿才会将输入体现到输出,所以能 够消除输入的毛刺信号。

    寄存器与锁存器的区别 寄存器与锁存器的功能是提供数据寄存和锁存。

    寄存功能是指把数据暂时保存,需要时取出。锁存功能是指总线电路中,锁定数 据输出,使输出端不随输入端变化。


    点击看相关:

    51单片机寄存器详解

    收藏
    分享
    &

    大家感兴趣的丨回复

    运算放大器、电路、模拟、毕设、电阻、示波器、DSP、傅里叶、阻抗、小波、信号、单片机、USB、面试、电源、FPGA、CAN 查看好文


    微信号:edn-china

    专注分享优质电子精华


    长按二维码关注▼


    『点 阅读原文 超精彩