锁存器(latch)和触发器(flip-flop)的概念与区别
锁存器(latch)
锁存器(latch)是一种对脉冲电平敏感的存储单元电路,可以在特定输入脉冲电平作用下改变状态,锁存,就是把信号暂存以维持某种电平状态。所存的最主要的作用是缓存,其次完成高速的控制器与慢速的外设的不同步问题,再其次就是解决驱动的问题。锁存器就是利用电平控制数据的输入。
锁存器在控制信号有效时,输出信号等于输入信号,所以,输入信号的任何变化都将直接引起锁存器的输出状态的改变。这时,输入信号若发生多次变化,输出状态也可能发生多次变化,这一现象称为空翻。
触发器(flip-flop)
触发器(lip-flop):是时钟边沿触发,可存储1 bit data,是寄存器(register)的基本组成单元,在每个存储单元电路上引入一个时钟脉冲(CLK)作为控制信号,只有CLK到来时,电路才被触发而动作,并根据输入信号改变输出状态,以区别没有时钟信号控制的锁存器。
区别与联系:寄存器和锁存器的功能是相同的,他们的区别在于寄存器是同步时钟控制,而锁存器是电位信号控制。
一般设计规则:在绝大多数设计中避免产生锁存器,锁存器最大的危害在于不能过滤毛刺(使能信号有效时,输出状态可能随输入多次变化,产生空翻),这对下一级电路是极其危险的,所以能用D触发器的地方就不用锁存器。