最近在学习FPGA,就结合这本书中介绍“芯片工程师”章节的内容浅谈下自己的感受。掌握语法知识、能够读懂时序图是最基本的需求。此外,在仿真过程中遇到各种bug需要有善于发现、解决问题的能力。还有就是对FPGA资源占用的优化,比如前段时间我在调试代码中发现,综合后Vivado中显示部分资源占用率超过了100%,显然是无法将程序烧入板内的。因为硬件资源是有限的,如果可以从代码层面优化,相比选择更高性能开发板的代价而言,这无疑是最佳的选择。这与书中芯片工程师需要采用“低功耗设计”的基本思想相吻合。通过网上查阅相关资料,总结了下降低FPGA资源(逻辑资源,RAM资源,DSP资源等)主要有以下几种方法:1、 逻辑资源优化,可以先从架构方面着手,合理的模块划分可以避免不必要的功能块例化,这是最显著的优化;如果架构已定型,再从代码着手,根据设计时序需要,可以在代码实现时选择流水线或者状态机,速度和面积只能选其一,另外在组合逻辑间插入寄存器也会影响逻辑资源消耗,这也是速度与面积间的选择,代码优化后最后的手段就是综合器选项,可以选择面积优化选项对设计的资源进行优化。2、 RAM资源优化,还是需要根据设计需要,当需要小块内存时,可以约束设计使用LUT as MEMORY实现,大块内存则使用block ram实现。3、DSP优化,需要从算法本身和需要实现的性能入手。
|