FPGA学习verilog代码的经验总结

学习fpga其实也不算久,开始的时候参考别人的代码并不多,大多是自己写的,那时候做时序逻辑多一些。参加了中嵌的培训班,一个多月的时间在熟悉ise软件的使用以及verilog语法方面下了苦功,也参考了不少书,算是为自己打下了比较好的基础。因为那时候培训的方向是软件无线电方面的,所以做了很多有关的模块程序,之前的日志里也发表了很多,关键是一个兴趣,感觉仿真后看到自己的一个个算法思想得到实现真有成就感。后来停了一段时间,因为实在没有比较有意思的活干了。
直到前段时间开始使用sp306的开发板,然后会参考它们的代码,受益匪浅吧。现在组长已经给正活干了,跟的大项目我是基本都有所熟悉了,然后那个里面做总控的fpga的代码开始进行总攻了,要把前辈们的代码都消化了,然后更好的为下一代升级版的产品服务。这个看verilog程序估计是大家都比较头疼的事,小的模块都没问题,大模块大项目,有时候就比较难以入手了,因为hdl的设计是不同于软件编程的,软件其实无非一个大while或者再有一些中断,大多是顺序执行的,慢慢一步一步往下走总会弄明白。hdl的并行性很强,要是你按照软件的思路来那肯定行不通,那么该怎么办呢?我就班门弄斧说点自己的一点快速进阶的小窍门吧。
既然hdl设计是并行的,那么就只能各个击破了。我的习惯是先抓几个重要端口,比如时钟(clk)、复位(reset)等出现频率比较高的端口,把它先弄清楚,比如时钟是什么频率的?复位是高有效还是低有效?
然后呢,最好是对照原理图来理解程序。这就需要你有一定功底的硬件常识了,一些常用器件的操作时序什么的一定要做到心中有数,至少要知其一二吧,这样在读程序时才会达到事半功倍的效果。比例说你要先读懂fpga与ad芯片的程序,那么你先把ad的各个端口(如片选,读写,转换,转换完成中断等端口)在verilog程序中出现的地方多做一下分析,比如我找cs信号,看看什么时候它拉低有效,那么你可以在find in file窗口中输入cs,然后enter,这样ise就会在底层的信息窗口中罗列出所有使用了cs信号的语句方便你的查找分析,你把每个出现cs的地方分析到了,那么你就明白verilog在硬件上是如何操作cs信号的。所有信号多分析完以后,我想你就明白了这个ad与fpga的接口了。
读懂verilog有时比较累,因为程序是别人写的,你要让别人牵着鼻子走也是难免的。关键是要有耐心,多分析,有条件可以问问高手(最好是代码的作者)。

带阻三极管介绍
ARM主导CPU和计算机,对英特尔和ADM会造成什么影响
联姻现代起亚,苹果斥资232亿造汽车
为旌科技受邀出席第五届全球智能驾驶大会并落地签约“智驾之城〞苏州相城
万能试验机引伸计的工作原理与应用
FPGA学习verilog代码的经验总结
雪崩渡越时间二极管振荡器是什么?
意法半导体拉开2012年中国iNEMO校园设计大赛帷幕
人工智能开启写诗新模式值得期待
艾迈斯欧司朗全新AS7343多通道光谱传感器新增XYZ技术,色彩测量“快、准、稳”
type-c和普通接口有什么区别呢?
3D MIMO的技术优势
如何判断三相电动机绕组的首尾
数码管驱动芯片+语音芯片的应用场景介绍,WT588E02B-24SS
TBOOT对任何rt-thread版本进行有限的改动
VR技术烂大街?国内VR的未来在哪里?
基于组合单元密集型FSS结构的特点及应用研究
构建eCos嵌入式系统的步骤教程
简述地物光谱仪的基本结构
DDR3内存或退出市场三星等大厂计划停产DDR3内存