集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1856|回复: 0

Xilinx FPGA快速入门-FPGA开发流程

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

图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器件进行调试。在此过程中,既可以实现下载配置文件的快速在线烧录进行实时调试验证,也可以实现产品固化烧录使其可以离线运行。

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

图  简化的FPGA开发流程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-19 22:19 , Processed in 0.065480 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表