Wednesday, May 21, 2008

总结一下FPGA开发调试经验

Warning: 本篇文章话题很学术,内容很业余,仅供个人总结缅怀之用。游客止步。

设计FPGA电路时参考Altera或者Xilinx的公制开发板是很有裨益的。

设计电路前先泛泛的搜索一下想要的器件类型,不要直接寻找特定器件。比如搜索NVM就比直接去找某种ROM好,有一些新的器件可以在合理的价格上提供替代传统器件的解决方案,并大大简化设计复杂度,提高稳定性。

有时候简单的设计会更好。比如八分频时钟,可以用Altera提供的PLL,也可以自己写行波计数器,事实证明对于特定环境自己写模块更好,一是方便移植,二是减少资源消耗。

伪码和流程图对于基于硬件描述语言的开发和基于PC的软件开发一样不可或缺。带着清晰的设计思路写代码比摸索中写更快(即使算上画图和写伪码的时间),也更不容易犯错。

对于每个寄存器都应该给予复位信号。这样能避免上电后电路进入不可知状态。case语句中的default项不是摆设,if语句一定要有else,如果不执行操作就写个“;”。

逐模块逐功能的调试能够避免陷入一团糟的状态。

最后,调不出来歇一会……昨晚调不出来就回来喝汽水看《死后文》;临睡觉又看了一眼代码,忽然发现了一个查找已久的问题所在:)