这是典型的FPGA开发设计流程。
1.电路功能设计
在系统设计之前,首先进行的是方案论证、系统设计和FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。
2.设计输入
设计输入是将所涉及的系统或电路以FPGA、EDA工具要求的某种形式表示出来,并输入给EDA工具。常用的方法有硬件描述语言和原理图输入方式等。
3.功能仿真
前仿真,此时的仿真没用延迟信息,在综合前只对用户所设计的电路进行逻辑功能验证。
4.综合
综合将设计编译为由逻辑单元构成的逻辑连接网表(并非真实的门级电路),然后根据目标要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件来实现。
5.综合后仿真
检查综合结果是否和原设计一致,在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,用于评估门延时带来的影响。
6.实现与布局布线
实现时将逻辑网表配置到具体的FPGA上,布局布线是其中的重要环节。布局是将逻辑网表中的单元配置到芯片内部的固有硬件结构上,并需要在速度最优和面积最优之间做出选择:布线时根据布局的拓扑,利用芯片内的连线资源,合理、正确地连接各元件。
7.时序仿真与验证
后仿真,指将布局布线的延时信息反标注到设计网表中,检测有无时序违规,此时延时最精确
8.板级仿真与验证
板级仿真与验证主要应用于高速电路设计中,对信号完整性和电子干扰等特性进行分析,使用第三方工具完成。
9.芯片编程与调试
FPGA芯片编程是指产生使用的数据文件(比特流文件Bitstream),然后将其下载到FPGA芯片中。FPGA芯片调试使用内嵌的在线逻辑分析仪,他们只需要占用FPGA芯片很少的逻辑资源,具有较高的实用价值。