精华内容
下载资源
问答
  • 触发器构成寄存器(有时钟;通常为边沿D触发器,数据先有效,控制信号后有效)。 锁存器由钟控D触发器(无时钟;控制信号先有效,数据后有效;由于不锁存数据的时候输出随输入变化而变化,输出有毛刺,在FPGA中尽量...

    先来一个小结:
    触发器构成寄存器(有时钟;通常为边沿D触发器,数据先有效,控制信号后有效)。
    锁存器由钟控D触发器(无时钟;控制信号先有效,数据后有效;由于不锁存数据的时候输出随输入变化而变化,输出有毛刺,在FPGA中尽量避免使用)。
    本文参考了以下链接:
    链接1
    链接2
    链接3
    链接4
    链接5

    1、基本概念

    (1)触发器:触发器是边沿敏感的存储单元,数据存储的动作由某一信号的上升或者下降沿进行同步的。触发器是计算机记忆装置的基本单元,一个触发器能储存一位二进制代码。寄存器是由触发器组成的。一个触发器可以组成一个一位的寄存器,多个触发器可以组成一个多位的寄存器。存储器是由大量寄存器组成的,其中每一个寄存器就称为一个存储单元。它可以存放一个有独立意义的二进制代码。
    https://zhidao.baidu.com/question/624038919527248132.html

    (2)寄存器:一般是边沿触发的触发器,在时序电路中寄存器的作用就是只在时钟的边沿有效传输data(满足建立时间和保持时间使得数据是稳定被采得)。在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器。由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把n个触发器的时钟端口连接起来就能够构成一个存储n位二进制码的寄存器。

    (3)锁存器:由电平触发,比如JK和RS等。一般用在传输门和反向器。由若干钟控D触发器构成的一次能存储多位二进制代码的时序逻辑电路。数据有效比时钟信号有效晚(也就是先时钟信号有效,后数据有效)。这意味着时钟信号先到,数据信号后到。其优点是面积小,但是时序分析困难。

    注意:
    1)通常所说的锁存器,大多是电平敏感型D触发器,而通常所说的寄存器是边沿敏感型D触发器。钟控D触发器是D锁存器,边沿D触发器才是真正的D触发器,钟控D触发器在使能情况下输出随输入变化,边沿触发器只有在边沿跳变的情况下输出才变化。
    2)D触发器上电时Q和Q非的电平是怎样的?
    D触发器刚上电的时候是不定的,只有当有反馈后才知道。可以在R、S端加RC延时电路来预知初始态。
    感觉这与建立时间和保持时间有关系。不过不确定

    2、寄存器和锁存器的区别

    (1) 寄存器是同步时钟控制,而锁存器是电位信号控制。锁存器一般由电平信号控制,属于电平敏感型。寄存器一般由时钟信号控制,属于边沿敏感型。
    (2) 寄存器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化。
    可见,寄存器和锁存器具有不同的应用场合,取决于控制方式以及控制信号和数据之间的时间关系:若数据有效一定滞后于控制信号有效(锁存信号(控制信号)来了以后,才将输出端的状态/数据锁存起来),只能使用锁存器;如果数据提前于控制信号而到达且要求同步操作,则可以用寄存器来存放数据。
    换言之,控制信号/时钟信号先来,数据后来,用锁存器;
    控制信号/时钟信号后来,数据先来,用寄存器。

    3、锁存器与触发器的区别

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

    1、 锁存器同所有的输入信号相关,当输入信号变化时锁存器就变化,没有时钟端;触发器受时钟控制,只有在时钟触发时才采样当前的输入,产生输出。
    2、 锁存器是电平触发,非同步控制。在使能信号有效时锁存器相当于通路,在使能信号无效时锁存器保持输出状态。触发器由时钟沿触发,同步控制。
    3、 锁存器对输入电平敏感(输出随输入的变化而变化),受布线延迟影响较大,很难保证输出没有毛刺产生;触发器则不易产生毛刺。
    4在这里插入图片描述
    在这里插入图片描述

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

    一、锁存器

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

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

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

    锁存器(latch):我听过的最多的就是它是电平触发的,呵呵。锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当锁存器处于使能状态时,输出才会随着数据输入发生变化。(简单地说,它有两个输入,分别是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程)。

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

    缺点:时序分析较困难。

    不要锁存器的原因有二:1、锁存器容易产生毛刺,2、锁存器在ASIC设计中应该说比ff要简单,但是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和ff来组成锁存器,这样就浪费了资源。

    优点:面积小。锁存器比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.可以完成数据的并串、串并转换;

    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 orinb)
    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是电平触发的。锁存器的输出对输入透明的,输入是什么,输出就是什么,这就是锁存器不稳定的原因,而触发器是由两个锁存器构成的一个主从触发器,输出对输入是不透明的,必须在时钟的上升/下降沿才会将输入体现到输出,所以能够消除输入的毛刺信号。

    寄存器与锁存器的区别

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

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

     锁存器就是把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。还有些芯片具有锁存器,比如芯片74LS244就具有锁存的功能,它可以通过把一个引脚置高后,输出就会保持现有的状态,直到把该引脚清0后才能继续变化。

        缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能

    展开全文
  • 一、基本概念 (1)锁存器 1. 锁存器(latch):是电平...分为普通锁存器门控锁存器: 2.普通锁存器无控制信号,输出状态始终直接由输入决定。 3.门控锁存器在控制信号无效时,输出保持不变,不随输入变...

    一、基本概念

    (1)锁存器

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

    分为普通锁存器和门控锁存器:

           2.普通锁存器无控制信号,输出状态始终直接由输入决定。

           3.门控锁存器在控制信号无效时,输出保持不变,不随输入变换;当控制信号有效时,输出由输入决定,跟随输入变化。

           4.SR锁存器(基本锁存器):

            由两个或非门或者两个与非门组成,电路结构、图形符号和特性表如下所示。

            此时,输出状态(次态)与输入状态、锁存器初态都有关。

                                  

    电平触发SR触发器(门控SR锁存器):
            当CLK=0时(无效),输出状态(次态)保持不变;只有当CLK=1时(有效),输出状态才随输入、初态的不同而改变,且与SR锁存器的特性一样。

            当门控锁存器的控制信号有效时,锁存器就变成了一个组合电路,若此时输入信号发生多次变化,输出状态也可能发生多次变化,这一现象称为锁存器的空翻。此时,时序逻辑电路的模型就等效为两个各组合电路互为反馈的反馈系统,因此,系统有可能会因为瞬态特性不稳定而产生振荡现象,抗干扰能力差。   

          5.电平触发D触发器(D型锁存器):

            在CLK的有效电平期间,输出状态始终随输入状态变化,输出与输入状态保持相同,所以这个电路又叫“透明的D型锁存器”。

    6.特点:

    •   正是因为门控锁存器在控制信号有效的期间内,都可以接收输入信号, 所以,激励信号的任何变化, 都将直接引起锁存器输出状态的改变。这时输入信号若发生多次变化,输出状态也可能发生多次变化,这一现象称为锁存器的空翻。 
    • 其次,当门控锁存器的控制信号有效时,锁存器就变成了一个组合电路,时序逻辑电
      路的模型就等效为两个各组合电路互为反馈的反馈系统,因此,系统有可能会因为瞬态特性
      不稳定而产生振荡现象。
    • 对毛刺敏感(使能信号有效电平时,输出状态可能随输入多次变化,产生空翻,对下一级电路很危险),不能异步复位,因此在上电后处于不确定的状态
    • 锁存器会使静态时序分析变得非常复杂,不具备可重用性。(首先,锁存器没有时钟参与信号传递,无法做STA;其次,综合工具会将latch优化掉,造成前后仿真结果不一致
    • 在FPGA中基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。根据锁存器的特点可以看出,在电路设计中,要对锁存器特别谨慎,如果设计经过综合后产生出和设计意图不一致的锁存器,则将导致设计错误,包括仿真和综合。因此,在设计中需要避免产生意想不到的锁存器。如果组合逻辑的语句完全不使用 always  语句块,就可以保证综合器不会综合出锁存器。
    • 但如果锁存器和触发器两者都由与非门搭建的话,锁存器耗用的逻辑资源要比D触发器少(D触发器需要12个MOS管,锁存器只需6个MOS管),锁存器的集成度更高,所以在的ASIC设计中会用到锁存器。但锁存器对毛刺敏感,无异步复位端,不能让芯片在上电时处在确定的状态;另外,锁存器会使静态时序分析变得很复杂,不利于设计的可重用。所以,在ASIC设计中,除了CPU这高速电路,或者RAM这种对面积很敏感的电路,一般不提倡用锁存器。 
       
    • 在 PLD  芯片中,基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。根据锁存器的特点可以看出,在电路设计中,要对锁存器特别谨慎,如果设计经过综合后产生出和设计意图不一致的锁存器,则将导致设计错误,包括仿真和综合。因此,在设计中需要避免产生意想不到的锁存器。

     

    7.锁存器(Latch)的出现及解决办法

            在基于always的组合逻辑描述语句中容易综合出锁存器的地方:

            (1)在赋值表达式右边参与赋值的信号未在always@(敏感电平列表)中列出完整,生成透明锁存器;

            (2)if语句的使用中缺少else语句(前提不是始终时钟触发);

            (3)case语句没有给出全部情况。

      举例说明:

            (1)时序电路中if...else不完整不会生出latch,只会生成触发器,而组合逻辑就会产生latch:

            左上的电路是时序逻辑,生成触发器,而触发器是有使能端(enable)的,使能端无效时就可以保存数据,无需锁存器。右上的电路是组合逻辑,在enable为低电平时,输出q要保持不变,而组合逻辑没有存储元件,只能生成锁存器来保持数据。所以在时序逻辑中,不完整的 if…else… 结构并不会生成锁存器,而组合逻辑中不完整的 if…else… 结构就会生成锁存器。为了避免我们设计的组合逻辑中出现不想要的锁存器,在使用 if…else… 结构时一定要写完整。

       解决方法

            ①将锁存器改为带使能的触发器(变为时序电路);

            ②给输出变量赋初始值;

            ③补全if...else语句。

             如果组合逻辑的语句完全不使用 always  语句块,就可以保证综合器不会综合出锁存器,


             例如:assign a = din ? x : y;上述语句不需要保持信号 a  的前一个状态,因此肯定不会产生锁存器。

     (

       感悟:

            ①在always模块内被赋值的每一个信号都必须定义成reg型,但不一定就会生成寄存器。

            ②组合逻辑一般使用assign语句。

            ③当组合逻辑使用always模块时,@(*)或敏感信号列表需写完整,都属于电平触发。另外,if...else以及case情况(必要时加上default)需写完整,或者输出状态赋初始值。

            ④时序逻辑中“always @(posedge clk)”属于同步时钟,而“always @(posedge clk,negedge rst)”属于同步时钟,异步复位。

            ⑤“=”阻塞赋值表示组合逻辑,“<=”非阻塞赋值表示时序逻辑。

    一般的设计规则是:在绝大多数设计中避免产生锁存器。它会让您设计的时序完蛋,并
    且它的隐蔽性很强,非老手不能查出。锁存器最大的危害在于不能过滤毛刺 (使能信号有效
    时,输出状态可能随输入多次变化,产生空翻) 。这对于下一级电路是极其危险的。所以,
    只要能用 D 触发器的地方,就不用锁存器。

    (2)触发器

       触发器(Flip Flop,FF)是一种只能存储1个二进制位的存储单元,可以用作时序逻辑电路的记忆原件。

       触发器(flip-flop)是边沿敏感的存储单元,数据存储的动作(状态转换)由某一信号的上升或者下降沿进行同步的(限制存储单元状态转换在一个很短的时间内) 。

    钟控 D 触发器其实就是 D 锁存器,边沿 D 触发器才是真正的 D 触发器)触发器分为两种,一种是主从触发器和边沿触发器。主从触发器在时钟有效期内 (主触发器) 接收数据,在时钟边沿输出状态转换。

    边沿触发器在时钟边沿期间, 触发器才接收数据并使输出状态转换。

                                     

    • 边沿触发D触发器

            由两个D型锁存器组成,次态仅取决时钟有效边沿到达时输入的逻辑状态,且值保持不变到下次触发到达时(保持n个时钟周期)。

            电路抗干扰能力强,工作可靠性更高。

                                  

                                 

     

     (3)寄存器

             寄存器能够存寄一组二值代码,即由N个触发器组成。

             用来暂时存放参与运算的数据和运算结果。在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器。

           寄存器与存储器的区别

          现代的计算机主要包括三级存储,寄存器、内存储器和外存储器,存储数据的速率也依次递减。(外存储器不在本次讨论之中,姑且略过不讲)我们不妨将寄存器和 内存储器都抽象成一个大的数组,其中的每个元素都有一个字节(8位)大小,CPU寻址的时候就是以该元素为最小单位完成的。如前一个元素的地址是 0x1FFFFFF0的话,那么下一个元素的地址就是0x1FFFFFF1。我们可以理解为硬件构成上寄存器和内存储器也都是由一个8位大小的元器件线性 排列组成的,地址对应着上面讲到的数组中元素的地址。到这里也许你能明白我的意思了,抛开存储速率不谈,对面向软件开发的人来说寄存器和内存储器结构可以 看作是相同的,那它们有什么不同呢?

          当然是存储速率不同了!先别骂街……速率只是表面现象,寄存器与内存本质的区别还是物理结构的不同,寄存器是有DFF(D触发器)构成的,它起的只是暂时存储数据的作用;内存储器有MOS门和TTL门两种构成,有ROM和RAM两种。ROM是由厂家固定地制造的,又分为掩膜ROM,PROM,EPROM,EEROM。有用门电路组成的ROM(由厂家写入信息)和用二极管或熔断丝构成的可由用户写入信息的PROM等.....RAM可分为DRAM和SRAM两种。前者是由电容构成的必须及时刷新,SRAM由MOS门构成不必刷新...... 从在计算机内部的放置位置上说,寄存器是在主板上离CPU最近并且速度最快。内存在计算机主机内,当时在计算机设计时,速度一直提不高,后来把内存放在计算机内速度才得以质的飞跃达到100M以上。内存速度快,容量小,价格高。外存可以取出,如光盘,磁盘价格便宜,但速度慢,用于存放大量数据。。它们之间的具体区别跳过不讲,我只想让你知道二者之间在寻址原理上都是相同的!

    二、区别与联系

    上述解释中已经阐述了三者的区别,现在将它们总结一下:

    1.目前,主从触发器基本上已经很少见了,实际使用的大都是边沿触发器。

    2.由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把 n 个触发     器的时钟端口连接起来就能构成一个存储 n 位二进制码的寄存器。

    3.从寄存数据的角度来讲,寄存器和锁存器的功能是相同的;它们的区别在于寄存器是同步时钟控制,而锁存器是电位信号控         制。 

    4.锁存器的工作原理:锁存器不同于触发器,锁存器在不锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓存器     一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。因此锁存器也称为透明锁存器,值得是不锁存是输出对     输入是透明的。

     

    参考文章:https://blog.csdn.net/Jackiezhang1993/article/details/85005521

                      https://blog.csdn.net/beikezhouxue/article/details/40107955 

                      https://www.eefocus.com/liuyuxue/blog/13-11/300280_d7008.html

                      https://blog.csdn.net/u011435712/article/details/42105563

    展开全文
  • 下面列举了SRD锁存器的功能表: 锁存器特点: 锁存器在控制信号有效时,输出信号等于输入信号。所以,输入信号的任何变化, 都将直接引起锁存器输出状态的改变。这时输入信号若发生多次变化,输出状态也可能...

    锁存器(latch):电平触发的存储单元,数据存储的动作(状态转换)取决于输入锁存信号的电平值,当锁存信号有效时,输出才会随着数据输入发生变化;当锁存信号无效时,输出信号保持不变。下面列举了SR和D锁存器的功能表:

    锁存器特点:

    • 锁存器在控制信号有效时,输出信号等于输入信号。 所以,输入信号的任何变化, 都将直接引起锁存器输出状态的改变。这时输入信号若发生多次变化,输出状态也可能发生多次变化,这一现象称为锁存器的空翻。
    • 锁存器的控制信号有效时,锁存器就变成了一个组合电路,时序逻辑电路的模型就等效为两个各组合电路互为反馈的反馈系统,因此,系统有可能会因为瞬态特性不稳定而产生振荡现象。

    触发器(flip-flop):边沿敏感的存储单元,数据存储的动作(状态转换)由某一信号的上升或者下降沿进行同步的(限制存储单元状态转换在一个很短的时间内) 。(钟控 D 触发器其实就是 D 锁存器,边沿 D 触发器才是真正的 D 触发器)触发器分为两种,一种是主从触发器和边沿触发器。主从触发器在时钟有效期内 (主触发器) 接收数据,在时钟边沿输出状态转换。边沿触发器在时钟边沿期间, 触发器才接收数据并使输出状态转换。现在基本上都是用边沿D触发器。

    寄存器(register):用来暂时存放参与运算的数据和运算结果。在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器。

    三者的区别对比:

    触发器和寄存器区别与联系:由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把 n 个触发器的时钟端口连接起来就能构成一个存储 n 位二进制码的寄存器。
    寄存器和锁存器的区别与联系:寄存器和锁存器的功能是相同的;它们的区别在于寄存器是同步时钟控制,而锁存器是电位信号控制。 
    一般的设计规则:在绝大多数设计中避免产生锁存器。锁存器最大的危害在于不能过滤毛刺 (使能信号有效时,输出状态可能随输入多次变化,产生空翻) 。这对于下一级电路是极其危险的。所以,只要能用 D 触发器的地方,就不用锁存器。

    举例:在基于 always 的组合逻辑描述语句中容易综合出锁存器的地方:1:if 语句的使用中缺少 else 语句(前提是不是始终边沿触发);2:case 语句中没有给出全部的情况。

    从上图可以看出综合出来的是锁存器。针对这种情路可以采用一些措施来防止生成锁存器:给输出变量幅初值;增加 else 语
    句;将锁存器改为带使能的触发器。如下:

    此时综合出来的就是选择器。

    参考文章链接: https://mp.weixin.qq.com/s/5VPWqgq2G9zFFxTZ0R5_ow

     

    展开全文
  • 一、锁存器 ...锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器...
  • 寄存器是能够存储一组二值代码的电路结构,因为触发器只能怪存储一位二值代码,所以N个触发器(锁存器)组成的寄存器可以存储N位的二值代码。 所以N位寄存器 = N个 触发器(锁存器)构成的电路 一、半导体存储器 ...
  • 1. 锁存器 定义: 对脉冲电平敏感,在时钟脉冲的电平作用下改变状态。 优点: ...latch完成同一个功能所需要的门较触发器要少,所以在asic中用的较多。 缺点: a.容易产生毛刺 b. 在FPGA中,...
  • 锁存器,触发器寄存器区别 一、锁存器 锁存器:电平触发的存储单元。它不在锁存数据时,输出端的信号随着输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。...
  • 只要电源有电,这个电路就会一直开关,灯泡会一明一暗来回变换,这个就是振荡器。而其波形(也叫脉冲)如下图: 像右边这样的图形被称为一个振荡器脉冲,一秒钟能产生多少个这样的脉冲,称为这种振荡器的频率。 频率...
  • 寄存器一般是边沿触发的触发器,电路里叫register,而触发器就是楼上所说的各种逻辑门构成的包含电平触发边沿触发的两种,而锁存器则是电平触发的。所以一般说来,我们只叫寄存器和锁存器两种,在时序电路中寄存器...
  • 锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是...
  • 寄存器、锁存器、触发器的区别

    千次阅读 2019-08-29 15:46:02
    锁存器是一种对脉冲电平敏感的双稳态电路,它具有01两种稳定状态,一旦状态被确定,就能自行保持,直到有外部特定输入脉冲电平作用在电路位置时,才有可能改变状态。 锁存器是电平触发的存储单元,数据存储的动作...
  • 数字电路中有关信息是包含在 0 1 的数字组合内的,所以只要电路能明显地区分开 0 1 ,0 1 的组合关系没有破坏就行,脉冲波形的好坏我们是不大理会的。所以数字逻辑电路的第二个特点是我们主要关心它能完成...
  • 寄存器触发器、锁存器的区别与联系: 触发器(flip—flop):是对脉冲边沿(上升沿或下降沿)敏感的存储单元,有D触发器、R-S触发器、J-K触发器和T触发器;其中硬件中用的最多的是D触发器。输出信号只在时钟脉冲...
  • 锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是...
  • 学习汇编语言,首先必须了解两个知识点:寄存器和内存模型。 先来看寄存器。CPU 本身只负责运算,不负责储存数据。数据一般都储存在内存之中,CPU 要用的时候就去内存读写数据。但是,CPU 的运算速度远高于内存的...
  • 题: 试用D触发器和必要的门电路(或最小数量的中规模集成电路芯片)设计两位串行输入、并行输出双向移位寄存器. 寄存器有X、K两个输入端, K控制移位方向, X输入数据. K=0时, 寄存器数据从高位移向低位, X往寄存器高位...
  • 建立时间保持时间关系详解 - Lilto - 博客园 (cnblogs.com) 建立时间、保持时间、传播延时、组合逻辑延时都是什么呢?_weixin_34402090的博客-CSDN博客 一、定义 1、建立时间(setup time) 指在触发器的...
  • 寄存器和存储器

    万次阅读 多人点赞 2018-04-12 12:43:48
    内核的分类可分为单内核双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分,附一张内核体系结构照片 可以看到内核所处的位置: CPU 中央处理器(CPU,Central Proce...
  • 锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是...
  • 理解CPU/寄存器/内存之间的关系

    万次阅读 多人点赞 2018-10-08 23:35:35
    CPU/寄存器/内存  因为要了解多线程,自然少不了一些硬件知识的科普,我没有系统学习过硬件知识,仅仅是从书上以及网络上看来的,如果有错误请指出来。  CPU,全名Central Processing Unit(中央处理器)。这是...
  • 在clk信号由1到0变化的时候,如果D信号还在变化,那Q存储的结果就是不稳定的 此时需要clk信号由1变0的前面一段时间Tsu,之后的一段时间Th内,D信号保持稳定。...寄存器 异步:指时钟信号不是同步的 ...
  • 本文记录了笔者对于SR锁存器、D锁存器,和触发器的一些理解。 SR锁存器 1.交叉耦合反相器: 交叉耦合:I1的输入是I2的输出,反之亦然。 稳态:Q = 0,Q = 1时两种情况都成立,称为双稳态。 具有N种稳态的...
  • 这是一块超大规模的集成电路,包含上亿的晶体管,是一台计算机的运算核心(Core)控制核心(ControlUnit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。  它的主要构成是:运算器、控制器、寄存器...
  • 一、锁存器 ...锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁
  • 寄存器和RAM之间的区别

    千次阅读 2020-06-23 00:02:07
    寄存器和RAM之间的区别概述寄存器CPU上的通用寄存器外围功能的控制寄存器RAM可以放入任意数据可以按顺序保存大量数据逻辑构成与C编译器的关系 概述 寄存器是“存储设备”,主要用于存储检查微型计算机的状态。 ...
  • 寄存器与移位寄存器(数字电路)

    千次阅读 2021-06-12 22:23:29
    寄存器的功能: 暂时存放计算机的数据或者指令。 基本构成: D触发器 0 时钟上升沿 0 1 1 ...
  • 最近一直在好奇一个问题:寄存器和内存之间到底什么关系?我是知道寄存器是在CPU中的,但是内存存储空间是在硬件的哪里呢?知道这个问题的答案之后,觉得自己问这种问题确实点憨。你是不是啥傻?忘了有个东西叫做...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,985
精华内容 2,394
关键字:

寄存器和触发器的关系