Altera在其QuartusII手册上有专门的一章讲解了在Altera器件上的代码风格,有兴趣的可以看一下,起初总以为这些只是说说而已,或者根本不会去看QuartusII手册,说实话,近两千页的手册的确是博大精深,再加上英文水平有限和google翻译也不怎么的,导致很多人都望而却步。但是静下心来看的话,里面的东西还是很有用的,当年张无忌练习九阳神功也花了5年时间。
资料不再在这里翻译,这里就举几个有用的例子和几个小方法,可能在今后的设计中会用到。
1:FPGA设计尽量采用同步设计,但不是只能用同步设计。编程之前请看一下器件手册,了解一下器件结构,毕竟四输入LUT和六输入LUT还是有区别的。不同的RAM结构也是不一样的。
2:要会用原语,往往最简单的才是最好的,好比生活
3:如果你的程序有多个时钟,请多多考虑或者多找点资料看看,不要急于设计。时钟是整个系统的心脏。
4:如果你的程序有双口ram,请确定尽量不要同时读写同一个地址。不是说不可以同时读写,至少之前你要确定读写的数据。至于RAM上电后值以及初始化方法,可以见文档。不要以为verilog语法的initial或者$readmemb是不可综合的就不能用来设计FPGA的RAM了。
5:最后一条,FPGA设计要学会偷程序,人家辛辛苦苦写好的IP都不要钱给你用了,你还不要,那就没话说了,或许有些人一直认为,自主研发最重要,那我只说一句,看你是偷到手里还是偷到心里……
最后补充一点,上一篇说到可以通过指令直接修改SOF文件或者POF文件。而不需要再重新编译。Altera的具体的描述为:
Update Memory Contents Without Recompiling
You can use two commands to update the contents of memory blocks in your design without recompiling. Use the quartus_cdb executable with the --update_mif option to update memory contents from .mif or .hexout files. Then, rerun the assembler with the quartus_asm executable to regenerate the .sof, .pof, and any other programming files.
文章评论(0条评论)
登录后参与讨论