声明:
本博客参考学习正点原子教程,用做个人学习笔记以及帮助他人学习,不做其他用途,后续根据学习深度的增加进行知识的补充,也欢迎各位大佬指点传授知识。
时序逻辑
之前的理解
信号使用reg类型,在always块中使用时钟跳变沿进行赋值就行
现在的理解
- 时序逻辑电路是有记忆功能的,任何时刻的输出不仅与当前时刻的输入信号有关,还有之前的输入信号有关。
- 时序逻辑是有组合逻辑和存储逻辑组成的,其中组合逻辑完成输入到输出的逻辑处理,处理的结果会进入存储逻辑进行存储,等待下一个时刻的输入记性逻辑处理,得到最终的处理结构
- 如图
问题来了,先前介绍了什么是组合逻辑,那什么是存储逻辑?
- 存储电路是有锁存器,触发器, 寄存器组成
- 锁存器: 具有记忆功能,电平触发的存储单元,存储的动作取决于时钟信号电平值,当处于使能状态时,输出才会随着数据输入发生变化,没有处于使能状态时,数据被锁住,输入信号不起作用(在设计的时候组合逻辑的always块内没有else或者default才会综合锁存器,时序逻辑的always块内不会综合锁存器)
- 触发器: 具有记忆功能,边沿敏感的存储单元,数据存储的动作由某一信号的上升或者下降沿进行同步的。(钟控 D 触发器其实就是 D 锁存器,边沿 D 触发器才是真正的 D 触发器)
- 寄存器:有多个触发器组成,用来暂时存放参与运算的数据和运算结果。在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器.
- 问题又来了,既然寄存器是有多个触发器组成,那主要的区别是什么?
- 由于触发器具有记忆功能,一个触发器能够存储一位二进制码,所以把n 个触发器的时钟端口连接起来就能构成一个存储 n 位二进制码的寄存器,主要区别可能就是触发器只能存储1bit数据,而使用一个时钟将N个触发器连接到一块可以存储Nbit数据
- 寄存器和锁存器的区别是什么?为什么不是有多个锁存器组成寄存器?
- 从寄存器的角度来讲,寄存器和锁存器的功能是相同的,区别是寄存器是有同步时钟控制,锁存器是有电位信号控制