FPGA开发主要包括系统设计、设计输入、功能仿真、综合优化、综合后仿真、实现与布局布线、时序方针与验证、板级方针与验证、芯片编程与调试等9个部分,如下图所示。
1. 电路设计
在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备工作。
2.设计输入
将设计的系统或电路硬件描述语言表示出来,输入至EDA工具中。如:Verilog HDL和VHDL等。
3.功能仿真
功能仿真也称为前仿真,即仅对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。如发现错误,则返回“设计输入”修改逻辑设计。
4. 综合
综合就是将高级抽象层次的描述转换成较低层次的描述。综合优化是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,从而优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。
5. 综合后仿真
综合后仿真用于检查综合结果与原设计是否一致,在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中,可估计门延时带来的影响。但还无法估计线延时,和布局布线后的实际情况由一定的差距。
6. 实现与布局布线
实现是将从何生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中关键步骤。布局过程是将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部固有的硬件结构上;布线则是根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。
7. 时序仿真与验证
时序仿真也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规,时序仿真包含的延迟信息最准确,能较好地反映芯片的实际工作情况。
8. 板级仿真与验证
板级仿真主要应用于高速电路设计中,对高速心态的信号完整性、电磁干扰等特性进行分析。
9. 芯片编程与调试
芯片编程是指产生使用的数据文件(比特流),然后将编程数据下载到FPGA芯片中,此时设计者可通过在线逻辑分析仪(ILA)进行系统调试和验证。