FPGA 开发流程:
HDL(Hardware Design Language)和原理图是两种最常用的数字硬件电路描述方法,HDL 设计法具有更好的可移植性、通用性和模块划分与重用性的特点,在目前的工程设计中被广泛使用。所以,我们在使用 FPGA 设计数字电路时,其开发流程是基于 HDL 的。
1、 需求定义(功能定义)
设计和实现一个系统的第一步,是明确整个系统的性能指标,然后进一步将系统功能划分为可实现的具体功能模块,同时明确各模块的功能与基本时序,还可大致确定模块间的接口,如时钟、读写信号、数据流和控制信号等。
2、 RTL 级 HDL 描述
RTL 级(寄存器传输级)指不关注寄存器和组合逻辑的细节(如使用了多少逻辑门、逻辑门的连接拓扑结构等),通过描述寄存器到寄存器之间的逻辑功能的 HDL 设计方法。RTL级比门级更抽象,同时也更简单和高效。RTL 级的最大特点是可以直接用综合工具将其综合为门级网表。RTL 级设计直接决定着系统的功能和效率。我们使用的 HDL 语言是 verilog。
3、 功能仿真(前仿真)
功能仿真也称综合前仿真,其目的是验证 RTL 级描述是否与设计意图一致。为了提高效率,功能仿真需要建立 testbench,其测试激励一般使用行为级 HDL 语言描述。
4、管脚分配与设计约束
无论是 RTL 级还是门级的 HDL 设计方法,在实现该逻辑时都需要与实际的 FPGA 芯片相匹配。管脚分配是指将设计文件的输入输出信号指定到器件的某个管脚,设置此管脚的电平标准、电流强度等。设计约束指对设计的时序约束和在综合、布局布线阶段附加的约束等。
5、综合
将 RTL 级 HDL 语言翻译成由与、或、非门等基本逻辑单元组成的门级连接(网表),并根据设计目标与要求(约束条件)优化所生成的逻辑连接,输出门级网表文件。
6、门级仿真(综合后仿真)
在综合后通过后仿真来检查综合结果是否与原设计一致。一般,综合后仿真和功能仿真的测试激励相同。由于综合工具日益完善,在目前的 FPGA 设计中,这一步骤被省略掉。
7、 布局布线
布局布线就是使用综合后的网表文件,将工程的逻辑与时序要求与器件的可用资源相匹配。也可以简单地将布局布线理解为对 FPGA 内部查找表和寄存器资源的合理配置,那么‘布局’ 可以被理解挑选可实现设计网表的最优的资源组合,‘布线’就是将这些查找表和寄存器资源以最优方式连接起来。
8、时序/时延分析
通过时序/时延分析获得布局布线后系统的延时信息,不仅包括门延时,而且还有实际的布线延时。时序/时延分析的时序仿真是最准确的,能较好地反映芯片的实际工作情况,同时发现时序违规((Timing Violation)即不满足时序约束条件或者器件固有时序规则(建立时间、保持时间)的情况。
9、 配置与下载
通过编程器(programmer)将布局布线后的配置文件下载至 FPGA 中,对其硬件进行编程。配置文件一般为.pof 或.sof 式,下载方式包括 AS(主动)、PS(被动)、(边界扫描)等方式。
入口:免费领取fpga教程、项目、入行指导。