filp-flop是触发器,在时钟信号有效时候才检测输入改变输出latch是锁存器,是组合逻辑,不依赖时钟信号,总是根据输入改变输出FPGA设计中总是讲到要避免使用latch,那么使用latch到底有什么坏处呢这个问题想了很久也没有得到一个令自己满意的答案,这里我先把自己的一些看法表述一下,请大家就这个问题讨论讨论。

latch和flip-flop都是时序逻辑,区别为:latch同其所有的输入信号相关,当输入信号变化时latch就变化,没有时钟端flip-flop受时钟控制,只有在时钟触发时才采样当前的输入,产生输出。

当然因为二者都是时序逻辑,所以输出不但同当前的输入相关还同上一时间的输出相关。latch缺点:

1、没有时钟端,不受系统同步时钟的控制,无法实现同步操作

2、对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生在xilinx和altera器件的slice和LE中都能够同时支持生产d-latch和d-ff,在这一层面上二者有什么区别暂时没有想到。

如果使用门电路来搭建latch和ff,则latch消耗的门资源比ff要少,这是latch比ff优越的地方。------------------------------------------------简单回答就是Latch是异步电路,flip-flop是同步电路既然是同步电路,肯定有clock端了,而latch就没有但是在IC设计中,latch相对flip-flop只占用其三分之一的硅面积。

register一般是由Latch or flip-flop实现的