shuszhao 发表于 2017-10-31 15:11:12

Xilinx FPGA学习笔记(5)——锁存器和触发器







1、锁存器(latch)
锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当锁存器使能时,输出才会随着输入的变化而变化。锁存器有2个输入,一个是使能信号en,另一个是输入数据信号data,它有一个输出Q,锁存器的功能就是在en有效的时候把data的值传给Q,这也是锁存的过程。




2、触发器(Flip-Flop,FF)
触发器也叫双稳态门或者双稳态触发器,是一种可以在两种状态下运行的数字逻辑电路。触发器一直保持自身的状态,直到它收到输入脉冲,这就称为触发。当收到输入脉冲时,输出就会根据规则改变状态,然后保持这种状态直到收到了下一个触发。触发器对脉冲边沿敏感,其状态只在时钟脉冲的上升沿或者下降沿瞬时改变。


3、锁存器和触发器的区别
它们都是具有记忆功能的二进制存储器件,是组成各种时序逻辑电路的基础。锁存器和它所有的输入信号相关,当输入信号变化时,锁存器输出就变化,没有时钟端。触发器(FF)受时钟控制,只有在时钟触发时才采样当前的输入,产生输出。同时,因为latch和FF都是时序逻辑,所以输出不仅与当前输入相关还与上一时间输出相关。锁存器(latch)由电平触发,非同步控制。在使能时,latch相当于通路,使能无效时,保持输出状态。D触发器(DFF)由时钟沿触发,同步控制。锁存器(latch)对输入电平敏感,受布线延迟影响大,很难保证输出没有毛刺产生,而DFF则不易产生毛刺。如果使用门电路搭建latch和DFF, latch消耗的门资源较少。在ASIC中使用latch的集成度比DFF高,但是在FPGA中相反。FPGA中没有标准的latch单元,但是有DFF单元,一个latch需要多个LE才能实现。Latch是电平触发,相当于有一个使能端,且在使能后随着输入变化。在非使能时,latch保持原来的信号。所以很多时候latch不能代替FF。Latch使静态时序分析变得复杂。一般的设计规则是在尽量避免产生latch. Latch 会使设计的时序混乱,并且它的隐蔽性很强,难以检查。Latch 最大的危害在于不能过滤毛刺,这对于下一级的电路有危害。所以只要能用D触发器的地方,就不用latch.有些地方没有时钟只能用锁存器。比如一个clk接到latch的使能端,这样需要的setup时间,就是数据在时钟的下降沿之前需要的时间。如果是一个DFF,那么setup时间就是数据在时钟的上升沿所需要的时间。说明如果数据晚于控制信号的情况下,只能用latch。
页: [1]
查看完整版本: Xilinx FPGA学习笔记(5)——锁存器和触发器