特权同学

Xilinx Artix-7 FPGA快速入门、技巧与实例连载6——FPGA开发流程

0
阅读(1673)

Xilinx Artix-7 FPGA快速入门、技巧与实例连载6——FPGA开发流程

 

更多资料共享

       链接:https://share.weiyun.com/53UnQas

1.jpg

 

如图1.32所示,这是一个基于FPGA开发工具的开发流程图。当然了,在此之前,从FPGA项目的提上议程开始,设计者需要进行FPGA功能的需求分析,然后进行模块的划分,比较复杂和庞大的设计,则会通过模块划分把工作交给一个团队的多人协作完成。各个模块的具体任务和功能划分完毕(通常各个模块间的通信和接口方式也同时被确定),则可以着手进行详细设计,其各个步骤包括设计输入、设计综合、约束输入、设计实现、分析实现结果(查看工具给出的各种报告结果)。为了保证设计达到预期要求,设计仿真以及设计优化则穿插其间。在EDA工具上验证无误后,则可以生成下载配置文件烧录到实际器件中进行板级的调试工作。从图中的箭头示意不难看出,设计的迭代性是FPGA开发过程中的一个重要特点,这就要求设计者从一开始就要非常认真细致,否则后续的很多工作量可能就是不断的返工。

2.jpg

图1.32 FPGA开发流程

    基于Xilinx的Vivado开发工具,我们对以上开发流程所涉及的各个步骤做简要的说明。

设计输入

    设计输入阶段,设计者需要创建FPGA工程,并且创建或添加设计源文件到工程中。FPGA工程包含了各种不同类型的源文件和设计模块,比如HDL文件、EDIF或NGC网表文件、原理图、IP核模块、嵌入式处理器以及数字信号处理器模块等。

设计综合

    设计综合阶段,FPGA开发工具的综合引擎将编译整个设计,并将HDL源文件转译为特定结构的设计网表。Vivado设计工具内置Synthesis综合功能,也支持第三方综合工具,如Synplify, Synplify Pro和Precision等软件工具的使用。

约束输入

         约束输入阶段,设计者可以指定时序、布局布线或者其它的设计要求。Vivado工具支持专用的编辑器实现时序约束、I/O引脚约束和布局布线约束。

设计仿真

    在整个开发过程的任意时刻,设计者都可以使用仿真工具对FPGA工程进行功能验证,比如Vivado内置的仿真器或者第三方工具ModelSim仿真器。

设计实现

         设计综合之后,接着就需要设计实现,将逻辑设计进一步转译为可以被下载烧录到目标FPGA器件中的特定物理文件格式。使用Vivado的工程导航窗口中支持的目标和策略设置属性,可以控制设计实现以及结果优化。为了更快的达到设计目标,可以使用SmartXplorer进行不同的处理策略实现,达到多次的自动实现处理以完成设计目标。

分析实现结果

         完成设计实现后,必须对设计约束、器件资源占用率、实现结果以及功耗等设计性能进行分析。既可以查看静态报告,也可以使用Vivado中内置的工具动态的查看设计综合实现的结果。对于时序结果和功耗结果,Vivado内置工具中都可以进行查看。此外,在系统调试时也可以使用在线逻辑分析仪ILA。

设计优化

      基于对设计结果的分析,设计者可以对设计源文件、编译属性或设计约束进行修改,然后重新综合、实现以达到设计最优化。

板级调试

         在生成下载配置文件后,设计者便可以对FPGA器件进行调试。在此过程中,既可以实现下载配置文件的快速在线烧录进行实时调试验证,也可以实现产品固化烧录使其可以离线运行。

 

当然了,对于没有实际工程经验的初学者而言,这个流程图可能不是那么容易理解。不过没有关系,我们会简化这个过程,从实际操作角度,以一个比较简化的顺序的方式来理解这个流程。如图1.33所示,从大的方面来看,FPGA开发流程不过是三个阶段,第一个阶段是概念阶段,或者也可以称之为架构阶段,这个阶段的任务是项目前期的立项准备,如需求的定义和分析、各个设计模块的划分;第二个阶段是设计实现阶段,这个阶段包括编写RTL代码、并对其进行初步的功能验证、逻辑综合和布局布线、时序验证,这一阶段是详细设计阶段;第三个阶段是FPGA器件实现,除了器件烧录和板级调试外,其实这个阶段也应该包括第二个阶段的布局布线和时序验证,因为这两个步骤都是和FPGA器件紧密相关的。我们这么粗略的三个阶段划分并没有把FPGA整个设计流程完全的孤立开来,恰恰相反,从我们的阶段划分中,我们也看到FPGA设计的各个环节是紧密衔接、相互影响的。

3.jpg

图1.33 简化的FPGA开发流程

 

 

更多资料共享

       链接:https://share.weiyun.com/53UnQas