在《深入理解Atera FPGA应用设计》的书中第3.6节详细介绍了在代码中使用寄存器而不是锁存器的原因。这里在这个基础上整理了网上的一些资料供参考。
1. 锁存器latch和触发器flip-flop的基本概念
(1)锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态。
锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。
锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样,如果输入端有毛刺,输出端也会带来毛刺;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是不锁存时输出对于输入是透明的,输出就等于输入。