图1-10 FPGA开拓的一样平常流程
1.电路功能设计

在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备事情。系统工程师根据任务哀求,如系统的指标和繁芜度,对事情速率和芯片本身的各种资源、本钱等方面进行权衡,选择合理的设计方案和得当的器件类型。一样平常都采取自顶向下的设计方法,把系统分成多少个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一贯这样做下去,直到可以直策应用EDA元件库为止。

2.设计输入
设计输入是将所设计的系统或电路以开拓软件哀求的某种形式表示出来,并输入给EDA工具的过程。常用的方法为硬件描述措辞(HDL)和事理图输入方法等。事理图输入办法是一种最直接的描述办法,在可编程芯片发展的早期运用比较广泛,它将所需的器件从元件库中调出来,画成事理图。这种方法虽然直不雅观且易于仿真,但效率很低,不易掩护,不利于模块布局和重用。其更紧张的缺陷是可移植性差,当芯片升级后,所有的事理图都须要做一定的改动。目前,在实际开拓中运用最广的便是HDL措辞输入法,利用文本描述设计,可以分为普通HDL和行为HDL。普通HDL有ABEL、CUR等,支持逻辑方程、真值表和状态机等表达办法,紧张用于大略的小型设计。而在中大型工程中,紧张利用行为HDL,其主流措辞是Verilog HDL和VHDL。这两种措辞都是美国电气与电子工程师协会(IEEE)的标准,其共同的突出特点是措辞与芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。
3.功能仿真
功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入旗子暗记组合成序列),仿真结果将会天生报告文件并输出旗子暗记波形,从中便可以不雅观察各个节点旗子暗记的变革。如果创造缺点,则返回修正逻辑设计。常用的工具有Model Tech公司ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog及NC-VHDL等软件。功能仿真虽然不是FPGA开拓过程中的必需步骤,但却是系统设计中最关键的一步。
4.综合
所谓综合便是将较高等抽象层次的描述转化成较低层次的描述。综合优化根据目标与哀求优化天生的逻辑连接,使层次设计平面化,以便用FPGA布局布线软件进行实现。就目前的层次来看,综合优化是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实详细的门级电路须要利用FPGA制造商的布局布线功能,根据综合后天生的标准门级构造网表来产生。为了能转换成标准的门级构造网表,HDL程序的编写必须符合特定综合器所哀求的风格。由于门级构造、RTL级的HDL程序的综合是很成熟的技能,所有的综合器都可以支持这一级别的综合。常用的综合工具有Synplicity公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开拓工具。
5.综合后仿真
综合后仿真检讨综合结果是否与原设计同等。在仿真时,把综合天生的标准延时文件反标注到综合仿真模型中,可估计门延时带来的影响。但这一步骤不能估计线延时,因此估计结果和布线后的实际情形还有一定的差距,并不十分准确。目前的综合工具较为成熟,一样平常的设计可以省略这一步,但如果在布局布线后创造电路构造和设计意图不符,则须要回溯到综合后仿真来确认问题所在。在功能仿真中先容的软件工具一样平常都支持综合后仿真。
6.实现与布局布线
实现是将综合天生的逻辑网表配置到详细的FPGA芯片上,布局布线是个中最主要的过程。布局是指将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件构造上,这每每须要在速率最优和面积最优之间进行选择。布线是指根据布局的拓扑构造,利用芯片内部的各种连线资源,合理精确地连接各个元件。目前,FPGA的构造非常繁芜,特殊是在有时序约束条件时,须要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动天生报告,供应有关设计中各部分资源的利用情形。由于只有FPGA芯片生产商对芯片构造最为理解,以是布局布线必须采取芯片开拓商供应的工具。
7.时序仿真与验证
时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不知足时序约束条件或器件固有的时序规则,如建立韶光、保持韶光等)征象。时序仿真包含的延迟信息最全,也最精确,能较好地反响芯片的实际事情情形。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,剖析其时序关系,估计系统性能,以及检讨和肃清竞争冒险是非常有必要的。在功能仿真中先容的软件工具一样平常都支持综合后仿真。
8.板级仿真与验证
板级仿真紧张运用于高速电路设计中,对高速系统的旗子暗记完全性、电磁滋扰等特色进行剖析,一样平常都用第三方工具进行仿真和验证。
9.芯片编程与调试
设计的末了一步便是芯片编程与调试。芯片编程是指产生利用的数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到FPGA芯片中。个中,芯片编程须要知足一定的条件,如编程电压、编程时序和编程算法等方面。逻辑剖析仪(Logic Analyzer,LA)是FPGA设计的紧张调试工具,但须要引出大量的测试引脚,且其价格昂贵。目前,主流的FPGA芯片生产商都供应了内嵌的在线逻辑剖析仪(如Xilinx ISE中的ChipScope、Altera QuartusII中的SignalTapII以及SignalProb)来办理上述抵牾,它们只须要占用芯片少量的逻辑资源,具有很高的实用代价。










