学习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有时比较累,由于程序是他人写的,你要让他人牵着鼻子走也是不免的。关键是要有耐性,多剖析,有条件能够问问高手(最好是代码的作者)。