如何写好FPGA代码的一点浅见
本帖最后由 iFPGA 于 2011-4-18 21:53 编辑1.明确芯片的资源,如乘法器,RAM存储器,serdes数量与支持的速率等等。
2.规范的代码风格才是高质量的保证,软件优化只是杯水车薪。
3.注意逻辑力度的均匀,和寄存器平衡有些类似,整个逻辑的力度尽量保持一致,设计更可靠。
4.明确每一行代码都是用什么样的硬件实现的,写代码的时候看到的不仅仅是if else,而是寄存器、lut等资源。
5.对代码的迭代反复分析,能否用更少的资源,时序能否更加,代码水平会有质的提高。
6.完备仿真,主要是异常仿真,才能保证代码的鲁棒性。
7.明确时序分析,能读懂fpga的时序分析报告,根据时序报告去分析逻辑,优化代码。
随便写写,大家姑且随便看看。:)
接着写:
从某一点开始说吧,说说如何避免组合逻辑过大造成时序告警。
时序逻辑有哪些呢?比如比较/判断逻辑,选择逻辑,加法逻辑等。简单说下如何避免这三种组合逻辑造成的时序问题。
1.比较逻辑
尽量避免采用类似下面例子的代码
if(s==10'd70)
xxx
上述逻辑会使组合逻辑过大,尽量采用单比特比较判断.
2.选择逻辑
尽量避免ifelse嵌套太深,造成选择逻辑过大,一般不超过3级嵌套。
3.加法逻辑
超过30bit的加法逻辑,建议将加法拆分成为多个16bit或者12bit的pipeline加法。
明天再更新!!:) 写的很好,很受用 恩 受益匪浅,顶一个 还要注意code style!
页:
[1]