我理解锁存器和触发器之间的区别,即触发器中存储的值只能在时钟间隔内以脉冲方式改变。
但真正需要这样做的原因是什么?
我的意思是,如果值可以通过输入改变,为什么它还应该由系统时钟控制?
谢谢
答案1
避免转换期间出现错误。(谷歌“电子故障”)
例如,如果您有 2 个输入,它们可能会同时发生变化,从而在此转换期间产生意外结果。
例如:A=1、B=0、A+B=1(+ = 或)如果它们同时变化:A=0、B=1、A+B=1,但在此转换期间,当 A=0 时,B 可能会上升,但仍然代表 B=0,并且您将在短时间间隔内获得 A+B=0。
通过仅在 CLK 边缘改变所有触发器的状态,然后直到下一个边缘,所有信号都应该变得稳定,并且逻辑将按照所需的值执行。