完整的FPGA设计流程包括哪些?

FPGA是FieldProgrammableGateArray的缩写,即现场可编程门阵列。FPGA是在CPLD的基础上发展起来的新型高性能可编程逻辑器件,它一般采用SRAM工艺,也有一些专用器件采用Flash工艺或反熔丝(Anti-Fuse)工艺等。FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。FPGA的基本组成部分有可编程输入/输出单元、基本可编程逻辑单元、嵌入式RAM、丰富的布线资源、底层嵌入功能单元、内嵌专用硬核等。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。

一般来说,完整的FPGA设计流程包括电路设计与输入、功能仿真、综合优化、综合后仿真、布局布线、布局布线后仿真、板级验证与加载配置调试等主要步骤。

(1)电路设计与输入。电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入给EDA工具。常用的设计输入方法有硬件描述语言(HDL)和原理图设计输入方法等。HDL语言中,应用最为广泛的是VHDL和VerilogHDL。

(2)功能仿真。电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。功能仿真有时也被称为前仿真。常用的仿真工具有ModelSim、VCS、NC.Verilog和NC.VHDL等。

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

(4)综合后仿真。综合完成后需要检查综合结果是否与原设计一致,做综合后仿真。在仿真时,把综合生成的标准延时文件反标到综合仿真模型中去,可估计门延时带来的影响。

(5)实现与布局布线。综合结果的本质是一些与、或、非门、触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片实际的配置情况有较大差距。此时,应该使用FPGA厂商提供的软件工具,根据所芯片型号,将综合输出的逻辑网表适配到具体FPGA器件上,这个过程叫做实现过程。在实现过程中,最主要的过程就是布局布线。所谓布局(Place)是指将逻辑网表中的硬件原语或者底层单元合理地适配到FPGA内部的固有硬件结构上;所谓布线(Route)是指根据布局的拓扑结构,利用FPGA内部的各种连线资源,合理正确连接各个元件的过程。

(6)时序仿真与验证。将布局布线的时延信息反标到设计网表中,所进行的仿真就叫时序仿真或布局布线后仿真,简称后仿真。布局布线后仿真的主要目的在于发现时序违规(TimingViolation),即不满足时序约束条件或者器件固有时序规则(建立时间、保持时间)的情况。

(7)板级仿真与验证。在有些高速设计情况下还需要使用第三方的板极验证工具进行仿真与验证。这些工具通过对设计的IBIS、HSPICE等模型的仿真,能较好地分析高速设计的信号完整性、电磁干扰(EMI)等电路特性等。

(8)对器件下载调试。设计开发的最后步骤是在线调试或者将生成的配置文件写入芯片中进行测试。示波器和逻辑分析仪是逻辑设计的主要测试工具。以上任何仿真或者验证步骤出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设计。

目前主要的FPGA器件生产厂商有两家,即美国的Altera公司和软件开发平台,其中Altera公司的FPGA产品主要有Cyclone系列和Stratix系列等,软件开发平台为OuartusⅡ,而Xilinx公司的FPGA产品主要有Virtex系列和Spartan系列等,软件开发平台为ISE。

相关推荐
知行合一←_←4 小时前
误码仪与时钟极性
fpga开发
upper20205 小时前
vivado使用那些事之综合策略
fpga开发·vivado·vivado综合策略
2CM_Embed5 小时前
Quartus II 工程编译与 FPGA 下载流程记录
嵌入式硬件·fpga开发
千寻xun7 小时前
视频图像学习笔记
fpga开发
国科安芯17 小时前
航天电子模拟前端三大支柱:精密运放、高速运放与电压监控的协同设计方法——ASL8522S/ASL622S/ASL706S技术解析
前端·单片机·嵌入式硬件·fpga开发·架构·安全性测试
謓泽1 天前
【6.26】芯片测试入门 从零搭自动化测试框架|PyVISA+OOP 保姆级教程
stm32·单片机·fpga开发·雷达·tr
乌恩大侠1 天前
【AI-RAN】面向电信行业的 NVIDIA DGX BasePOD
人工智能·fpga开发·o-ru
传感器与混合集成电路2 天前
伺服数据采集控制模块系统集成实战手册:接口设计要点、上电顺序与开发环境配置全解析
fpga开发
xxLearn3 天前
Vivado 2025.2 下载程序时提示:“ERROR : invalid command name ps7_init“
fpga开发
科恒盛远3 天前
【无标题】
fpga开发·硬件工程·信号处理