FPGA设计流程
FPGA(Field Programmable Gate Array,现场可编程门阵列)
- 特殊的集成电路
- 可编程
集成电路绝大多数都是集体管集成,比如CMOS晶体管集成电路。
晶体管集成电路:通俗一点来说,就是用金属导线把许许多多由晶体管构成的逻辑门、存储单元连接成一个电路,具备 一定的逻辑功能。
不过真正设计数字电路时,不需要真的用导线连晶体管,用硬件描述语言(比如 VerilogHDL)写代码运行综合软件(比如Vivado )就可以生成电路图。
FPGA 的一般设计流程有“五步骤”
-
电路设计
FPGA的关键一步
根据需求规格制定电路设计方案,把需求一步步分解细化,成为一个能够满足需求的电路设计
例如分成几个流水级,这里放几个 触发器,那里放几个运算器,它们之间怎么连接,整个电路的状态转换行为是怎样的,等等
-
代码编写
把第 1 步中完成的电路设计用硬件描述语言(Hardware Description Language,HDL)表述出来, 成为一种 EDA 工具能够看得懂的形式
-
功能仿真
所谓功能仿真验证,就是通过软件仿真模拟的方式看电路的逻辑功能行为是否符合最初的设计需求。
-
综合实现
完成从 HDL 代码到真实芯片电路的转换过程
具体分为综合和实现两个子阶段
综合阶段将 HDL 描述的设计编译为由基本逻辑单元连接而成的逻辑网表。
实现阶段负责将综合出的逻辑网表映射为 FPGA 中的具体电路。(即将逻辑网表中的基本逻 辑单元映射到 FPGA 芯片内部固有的硬件逻辑模块上(称为“布局”);随后基于布局的拓扑,利 用 FPGA 芯片内部的连线资源,将各个映射后的逻辑模块连接起来(称为“布线”)。)
如果整个综合实现过程没有发生异常,EDA 工具将生成一个比特流(bitstream)文件,这个比特流文件描述的就是最终的电路,这个文件是FPGA芯片能读得懂的文件。
-
上版调试
功能仿真说到底还是模拟,能不能用还得在实际电路中测试。
上板调试,首先要将综合实现生成的比特流文件下载到 FPGA 芯片中,随后就是运行电路观察其工作是否正常