概述
初涉Verilog,在学习过程中希望通过CSDN平台记录自己学习的过程,同时分享相关知识。文中如有差错希望读者谅解并请指出。
时序逻辑电路与组合逻辑电路的区别
时序逻辑电路中,输出不仅与输入有关,还与之前的状态有关。
组合逻辑电路中,输出与输入有关,与之前的状态无关。
在设计的过程中,为了便于维护和理解,一般将状态控制和数据输出分开设计。状态控制由当前状态与输入(如果有)确定即将跳转的下一状态。可见这部分逻辑与之前状态有关,故使用时序逻辑电路。在每个状态里一般会有一个输出,这部分逻辑仅与当前状态有关而与之前的状态无关,因此使用组合逻辑电路。
组合逻辑用阻塞赋值(=)。组合逻辑一般用于输出数据,如果使用阻塞赋值,当对某一个变量x0进行多次赋值时,容易出现逻辑错误。因此使用阻塞赋值。
时序逻辑用非阻塞赋值(<=)。
分段式状态机设计
一段式状态机把所有逻辑(包括输入、输出、状态)都在一个always里完成,对于复杂的实例中不便于维护。
两段式状态机把时序逻辑和组合逻辑划分开来。时序逻辑进行当前状态到下一状态的切换,组合逻辑里实现输入、输出以及状态判断。这种写法相对容易维护不过组合逻辑输出容易出现毛刺等常见问题。
三段式状态机在两端式状态机的基础上,在时序逻辑输出。代码容易维护,解决了组合逻辑输出容易出现毛刺的问题。但是资源消耗多一些,且三段式从输入到输出比一段式和两段式会延时一个时钟周期。
最后
以上就是粗暴奇异果为你收集整理的Verilog中时序逻辑、组合逻辑以及状态机设计时序逻辑电路与组合逻辑电路的区别 分段式状态机设计的全部内容,希望文章能够帮你解决Verilog中时序逻辑、组合逻辑以及状态机设计时序逻辑电路与组合逻辑电路的区别 分段式状态机设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复