时间:2025-02-19 来源:FPGA_UCY 关于我们 0
FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发
的过程。FPGA的开发流程一般如图1所示,包括电路设计、设计输入、功能仿
真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调
试等主要步骤。
图1FPGA开发的一般流程
1.电路功能设计
在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等
准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和
芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器
件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后
再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直
接使用EDA元件库为止。
2.设计输入
设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,
并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法
等。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用
比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直
观并易于仿真,但效率很低,且不易维护,不利于模块构造和重用。更主要的
缺点是可移植性差,当芯片升级后,所有的原理图都需要作一定的改动。目前,
在实际开发中应用最广的就是HDL语言输入法,利用文本描述设计,可以分为
普通HDL和行为HDL。普通HDL有ABEL、CUR等,支持逻辑方程、真值表和状
态机等表达方式,主要用于简单的小型设计。而在中大型工程中,主要使用行
为HDL,其主流语言是和VHDL。这两种语言都是美国电气与电子
工程师协会(IEEE)的标准,其共同的突出特点有:语言与芯片工艺无关,利于
自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和
仿真功能,而且输入效率很高。
3.功能仿真
功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功
能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先
利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合
成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节
点信号的变化。如果发现错误,则返回设计修改逻辑设计。常用的工具有
公司的、公司的VCS和公司的NC-
以及NC-VHDL等软件。虽然功能仿真不是FPGA开发过程中的必需步骤,
但却是系统设计中最关键的一步。
4.综合
所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化
根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线
软件进行实现。就目前的层次来看,综合优化()是指将设计输入编译
成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而
并非真实的门级电路。真实具体的门级电路需要利用FPGA制造商的布局布线功
能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结
构网表,HDL程序的编写必须符合特定综合器所要求的风格。由于门级结构、
RTL级的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级
别的综合。常用的综合工具有公司的/软件
以及各个FPGA厂家自己推出的综合开发工具。
5.综合后仿真
综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标
准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步
骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。
目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布
线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所
在。在功能仿真中介绍的软件工具一般都支持综合后仿真。
6.实现与布局布线
实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中
最重要的过程。布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内
部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布
线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个
元件。目前,FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时
序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有
关设计中各部分资源的使用情况。由于只有FPGA芯片生产商对芯片结构最为了
解,所以布局布线必须选择芯片开发商提供的工具。
7.时序仿真与验证
时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表
中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立
时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地
反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线
方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进
行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非
常有必要的。在功能仿真中介绍的软件工具一般都支持综合后仿真。
8.板级仿真与验证
板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干
扰等特征进行分析,一般都以第三方工具进行仿真和验证。
9.芯片编程与调试
设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件
(位数据流文件,),然后将编程数据下载到FPGA芯片中。
其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方
面。逻辑分析仪(,LA)是FPGA设计的主要调试工具,但需要引
出大量的测试管脚,且LA价格昂贵。目前,主流的FPGA芯片生产商都提供了
内嵌的在线逻辑分析仪(如中的、中
的以及)来解决上述矛盾,它们只需要占用芯片少量
的逻辑资源,具有很高的实用价值。