latch 是电平触发,在特定电平下动作;Flip-flop在特定边沿下动作;register 通常是指能够用来存储一组二进制代码的同步时序逻辑电路,Flip-flop可以方便地构成register (一个触发器存一位数据)。register 在同一时钟边沿触发下动作,符合同 步电路的设计思想,而 latch 则属于异步电路设计,往往会导致时序分析困难,不适当的应 用 latch 则会大量浪费芯片资源。
锁存器的输出对输入透明的,输入是什么,输出就是什么,这就是锁存器不稳定的原因,而触发器是由两个锁存器构成的一个主从触发器,输出对输入是不透明的,必须在时钟的上升/下降沿才会将输入体现到输出,所以能够消除输入的毛刺信号。
触发器是在时钟的沿进行数据的锁存的,而锁存器是用电平使能来锁存数据的。所以触发器的Q输出端在每一个时钟沿都会被更新,而锁存器只能在使能电平有效器件才会被更新。在FPGA设计中建议如果不是必须那么应该尽量使用触发器而不是锁存器。