【重拾FPGA】读锆石科技硬件语法篇有感

本文探讨了如何在FPGA编程中摆脱C语言的影响,重点关注三段式状态机的设计和使用D触发器来区分时序逻辑与组合逻辑。通过采用格雷码避免状态机错误,以及利用D触发器实现逻辑分离,以提高FPGA设计的清晰度和稳定性。
摘要由CSDN通过智能技术生成

最近一直在学习FPGA编程的思想,如何才能让自己摆脱C语言,做到眼中代码,心中电路,这是我最近一直在思考的问题。读了一下锆石科技的FPGA硬件语法篇后,我发现了很多自己平时写Verilog时没有注意到的地方,带有C语言影子的地方,在这里总结一下,希望自己在日后写Verilog时不要再犯了

摆脱C语言!!!

1.三段式状态机

图来自锆石科技。

可见,对于状态机的状态编码,我们应该使用格雷码,还记得数电课老师说格雷码一次只改变一位,一直不知道有什么用,现在真的是恍然大悟!这样可以避免毛刺,避免因为两位变化不同步而进入错误状态!

然后对于三段式状态机

第一段:时序逻辑,使当前状态变为下一状态

第二段:组合逻辑,根据条件改变下一状态

第三段:组合逻辑,根据状态条件写输出

然后使用一个D触发器来寄存输出值,这一点下文会讲

 

2.使用D触发器来寄存值,使时序逻辑和组合逻辑分开

在Verilog中,时序电路用非阻塞赋值 <= ,组合逻辑使用阻塞赋值 = ,当电路较大时,容易分不清楚导致时序混乱,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值