声明:
本博客参考学习正点原子教程,用做个人学习笔记以及帮助他人学习,不做其他用途,后续根据学习深度的增加进行知识的补充,也欢迎各位大佬指点传授知识。
什么是组合逻辑
之前的理解
组合逻辑就是使用wire对信号进行定义,使用assign进行赋值输出或者在always块中根据某些信号的电平的变化(一般自动匹配always块中需要捕获的信号量)产生不同的输出。
现在的理解
- 组合逻辑中,某一信号的输出只与当前时刻的输入有关,与之前的输入没有任何关系,组合逻辑电路没有记忆功能,没有反馈环路
- 组合逻辑电路是有时间延迟的,也就说组合逻辑的输入变化到输出变化之前是有时间的,不同的组合逻辑电路延迟不一样,逻辑级数也可能不一样
问题来了,什么是逻辑级数?
逻辑级数就是组合逻辑的深度,可以理解为输入到输出经过的组合逻辑单元的个数,比如输入信号经过一个与门和一个非门那就是2级,算两级门延迟
逻辑级数太大会有什么问题?
- 如果电路是一个寄存器 – 组合逻辑 – 寄存器
- ![[Pasted image 20240104210552
- 如果组合逻辑的部分总的延迟大于一个时钟周期,会造成后端的寄存器无法采集到数据,导致采样失败,所以逻辑级数不能太大
- 一些典型的时序问题大多是由于逻辑级数太大引起的,需要进行优化,减少逻辑级数