了解FPGA的设计流程吗,看完这篇文章你就懂了

了解FPGA的设计流程吗,看完这篇文章你就懂了_第1张图片
一般来说,完整的FPGA设计流程包括电路设计与输入、功能仿真、综合优化、综合后仿真、布局布线、布局布线后仿真、板级仿真与验证、加载配置与在线调试等主要步骤。

1.电路设计与输入

电路设计与输入是指通过某些规范的描述方式,将电路构思输入给EDA工具。常用的设计输入方法有硬件描述语言和原理图设计输入方法等。原理图设计输入法在早期应用比较广泛,它根据设计要求选用器件、绘制原理图、完成输入过程。这种方法的优点是直观、便于理解、元器件库资源丰富。但是在大型设计中,该方法的可维护性较差,不利于模块构造与重用。

目前进行大型工程设计时,常用的设计方法是硬件描述语言设计输入法,其中影响最为广泛的HDL语言是VHDL和Verilog HDL。它们的共同特点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的不同而变化,更利于向ASIC的移植。波形输入和状态机输入方法是两种常用的辅助设计输入方法。使用波形输入法时,只要绘制出激励波形和输出波形,EDA软件就能自动地根据响应关系进行设计。使用状态机输入法时,设计者只需画出状态转移图,EDA软件就能生成相应的HDL代码或者原理图,使用十分方便。

2.功能仿真

电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。功能仿真有时也被称为前仿真。

3.综合优化

综合优化是指将HDL语言、原理图等设计输入翻译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出edf和edn等标准格式的网表文件,供FPGA厂家的布局布线器实现。

4.综合后仿真

综合完成后需要检查综合结果是否与原设计一致,做综合后仿真。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中,可估计门延时带来的影响。综合后仿真虽然比功能仿真更精确,但只能估计门延时,不能估计线延时,仿真结果与布线后的实际情况还有一定的差距,并不十分准确,这种仿真的主要目的是检查综合器的综合结果是否与设计输入一致。目前主流综合工具日益成熟,对于一般性设计,如果设计者确信自己表述明确,没有综合歧义发生,可以省略综合后仿真步骤。但是如果在布局布线后仿真发现有电路结构与设计意图不符的现象,就需要回溯到综合后仿真以确认是否是由于综合歧义造成的问题。

5.布局布线

综合结果的本质是一些由与门、或门、非门、触发器和RAM等基本逻辑单元组成的逻辑网表,其与芯片实际的配置情况具有较大差距。此时应该使用FPGA厂商提供的软件工具,根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FPGA器件上,这个过程就叫实现过程。因为只有器件开发商最了解器件的内部结构,所以实现步骤必须选用器件开发商提供的工具。在实现过程中最主要的过程是布局布线,所谓布局是指将逻辑网表中的硬件或底层单元合理地适配到FPGA内部的固有硬件结构上,布局的优劣对设计的最终实现结果影响很大。

所谓布线是指根据布局的拓扑结构,利用FPGA内部的各种连线资源,合理正确地连接各元件的过程。FPGA的结构相对复杂,为了获得更好的实现结果,特别是保证能够满足设计的时序条件,一般采用时序驱动的引擎进行布局布线。所以对于不同的设计输入,特别是不同的时序约束,获得的布局布线结果一般有较大差异。一般情况下,用户可以通过设置参数指定布局布线的优化准则,总之,优化目标主要有面积和速度两个方面要求。一般根据设计的主要矛盾,选择面积、速度或平衡两者的优化目标。如果当两者冲突时,一般先满足时序约束要求,此时选择速度或时序优化目标效果更好。

6.时序仿真与验证

将布局布线的时延信息反标注到设计网表中,所进行的仿真就叫时序仿真或布局布线后仿真,简称后仿真。布局布线之后生成的仿真时延文件包含的时延信息最全,不仅包含门延时,还包含实际布线延时,所以布线后仿真最准确,能较好地反映芯片的实际工作情况。一般来说,布线后仿真步骤必须进行,通过布局布线后仿真能检查设计时序与FPGA实际运行情况是否一致,确保设计的可靠性和稳定性。布局布线后仿真的主要目的在于发现时序是否违规,即是否满足时序约束条件或器件固有时序规则的情况。

7.板级仿真与验证

在有些高速设计中还需要使用第三方的板级验证工具进行仿真与验证。

8.加载配置与在线调试

设计开发的最后步骤是在线调试或将生成的配置文件写入芯片中进行测试。示波器和逻辑分析仪是逻辑设计的主要调试工具。传统的逻辑功能板级验证手段是用逻辑分析仪分析信号,设计时要求FPGA和PCB设计人员保留一定数量的FPGA引脚作为测试引脚,编写FPGA代码时需要观察的信号作为模块的输出信号,在综合实现时再把这些输出信号锁定到测试引脚上,然后将逻辑分析仪的探头连接到这些测试脚,设定触发条件,进行观测。逻辑分析仪的优点是专业、高速、触发逻辑可以相对复杂,缺点是价格昂贵、灵活性差。PCB布线后测试脚的数量有限,不能灵活增加,当测试脚不够用时影响测试,如果测试脚太多又影响PCB布局布线。

对于相对简单一些的设计,使用Quartus II内嵌的SignalTap II和Xilinx提供的Chip Scope工具,对设计进行在线逻辑分析可以较好地解决上述矛盾。其主要功能是通过JTAG口,在线、实时地读出FPGA的内部信号。基本原理是利用FPGA中未使用的Block RAM,根据用户设定的触发条件将信号实时地保存到这些BlockRAM中,然后通过JTAG口传送到计算机,最后在计算机屏幕上显示出时序波形。任何仿真或验证步骤出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设计。

你可能感兴趣的:(fpga)