购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 Vivado系统级设计流程

Vivado系统级设计流程如下所述。

(1)RTL 设计。FPGA 开发人员可以指定 RTL 源文件来创建工程,并将这些源文件用于RTL代码开发、分析、综合和实现。Xilinx提供了一个推荐的RTL和约束模板库,以确保RTL和XDC以最佳方式与Vivado设计套件一起使用。Vivado综合和实现支持多种源文件类型,包括Verilog、VHDL、SystemVerilog和XDC。

(2)IP设计与系统级设计集成。Vivado 设计套件提供了一个环境,可以配置、实现、验证和集成 IP,将其作为一个独立模块或系统设计中的上下文。IP 可以包含逻辑、嵌入式处理器、数字信号处理器(DSP)模块或基于C的DSP算法设计。自定义IP按照IP-XACT协议进行封装,并且通过Vivado IP Catalog(IP目录)提供。IP目录为IP的配置、例化和验证提供了对IP的快速访问。Xilinx IP利用AXI4互联标准实现更快的系统集成。现有的IP可以以RTL或网表格式在设计中使用。

(3)IP 子系统设计。Vivado IP 集成器(IP Integrator)环境使 FPGA 开发人员能够使用AMBA AXI4互联协议将各种IP拼接到IP子系统中。开发人员可以使用块设计类型界面配置和连接 IP,并通过绘制类似于原理图的 DRC 来轻松连接整个接口。与传统基于 RTL 的连接相比,使用标准接口连接 IP 可以节约时间。Vivado 提供了连接自动化及一组 DRC,以确保正确的 IP 配置和连接。块设计可以在设计工程中使用,也可以在其他工程之间共享。Vivado IP 集成器环境是嵌入式设计的主要接口和Xilinx评估板接口。

(4)I/O和时钟规划。Vivado IDE提供了一个I/O引脚规划环境,可以将I/O端口分配到特定的 FPGA 封装引脚或内部晶圆焊盘上,并提供表格,让开发人员设计和分析封装与 I/O 相关的数据。存储器接口可以交互分配到特定的 I/O 组中,以实现最佳数据流。FPGA 开发人员可以使用 Vivado 引脚规划器中的视图和表格来分析器件与设计相关的 I/O 数据。该工具还提供I/O DRC和同步开关噪声(Simulaneous Switch Noise,SSN)分析命令,以验证开发人员的I/O分配。

(5)Xilinx平台板支持。在Vivado设计套件中,开发人员可以选择现有的Xilinx评估平台作为设计目标。在平台板流程中,在目标板上实现的所有IP接口都是公开的,以便快速选择和配置设计中使用的IP。最终的IP配置参数和物理板约束,如I/O标准和封装引脚约束,将在整个流程中自动分配和扩散。

(6)综合。Vivado综合执行整体RTL设计的全局或自顶向下的综合。但是,默认情况下,Vivado 设计套件使用脱离上下文(Out of Context,OOC)或自底向上的设计流程综合来自Xilinx IP目录的IP核和来自Vivado IP集成器的块设计。开发人员还可以选择将层次化RTL设计的特定模块综合为OOC模块。该OOC流程使开发人员在顶层设计的上下文之外或独立于顶层设计的情况下,综合、实现和分析层次化设计、IP核或块设计。OOC综合的网表在顶层实现期间被保存和使用,以保留结果并减少运行时间。OOC 流程是支持分层团队设计、综合和实现IP 与 IP 子系统,以及管理大型复杂设计模块的有效技术。Vivado 设计套件也支持使用第三方的综合网表,包括EDIF或结构化Verilog。但是,来自Vivado IP目录中的IP核应使用Vivado综合工具进行综合,基本不支持使用第三方综合工具进行综合(对这一要求也有例外,如 7 系列FPGA中的存储器)。

(7)设计分析与仿真。Vivado 设计套件允许开发人员在设计过程的每个阶段中分析、验证和修改设计。开发人员可以进行设计规则和设计方法检查、逻辑仿真、时序和功耗分析,以提高电路性能。该分析可以在RTL详细分析、综合和实现之后运行。

(8)布局和布线。当综合的网表可用时,Vivado 提供了优化、布局和布线网表到目标器件资源上的所有功能。对于具有挑战性的设计,Vivado IDE 也提供了高级布图规划功能,以帮助提高实现结果。其中包括将特定逻辑约束到特定区域的能力,或者手工布局特定设计元素,以及修复它们以供后续实现运行的能力。

(9)硬件调试和验证。当实现后,可以使用 Vivado 逻辑分析仪或在独立的 Vivado LabEdition 环境中对器件进行编程和分析。调试信号可以在 RTL 设计中识别,或者在综合中插入,并在整个流程中进行处理。开发人员可以使用工程变更指令(Engineering Change Order,ECO)将调试核添加到RTL源文件、综合后的网表核实现后的设计中。开发人员还可以修改连接到调试探针的网络,或将内部信号布线到封装引脚,以进行外部探测的ECO流程。

(10)加速的内核流。Xilinx Vitis 统一平台软件将加速用例引入 Vivado 流程中。在这种设计方法中,Vivado 用于创建一个平台,该平台由 Vitis 软件平台消耗,以添加加速的内核。硬件设计由平台和加速器组成。在这种情况下,最终的比特流由 Vitis 软件平台创建,因为在Vivado中看不到完整的设计。

(11)嵌入式处理器设计。创建嵌入式处理器设计时需要一个稍微不同的工具流。因为嵌入式处理器需要软件有效启动引导和运行,所以软件设计流程必须与硬件设计流程一致。硬件和软件流程之间的数据交换以及跨越这两个域之间的验证至关重要。创建嵌入式处理器硬件设计涉及Vivado IP集成器。在Vivado IP集成器块设计中,开发人员可以例化、配置和组装处理器核及其接口。Vivado IP集成器强制执行基于规则的连接并提供设计帮助。通过实现编译后,将硬件设计导出到Xilinx Vitis用于软件的开发和验证。仿真和调试功能允许开发人员跨越两个域的仿真和验证设计。Vitis设计套件是Xilinx的统一软件套件,包括Xilinx平台上所有嵌入式应用程序和加速应用程序的编译器。Vitis 支持使用更高级的语言进行开发,利用开源的库,并支持特定域的开发环境。

(12)使用Model Composer进行基于模型的设计。Model Composer是一种基于模型的图形设计工具,可以在 MathWorks MATLAB 和 Simulink 产品中进行快速设计,并通过自动代码生成加速到Xilinx器件产品的途径。

(13)使用System Generator进行基于模型的设计。System Generator工具作为Vivado设计套件的一部分,可用于实现DSP功能。独立使用System Generator工具创建DSP功能,然后将System Generator设计封装到Vivado IP目录中的IP模块中。从这里生成的IP可以作为子模块例化到Vivado设计中。

(14)基于 C 的高水平综合设计。基于 C 的高水平综合(HLS)设计工具使 FPGA 开发人员使用C、C++和System C描述设计中的各种DSP功能。开发人员可以使用Vivado HLS工具创建并验证 C 代码。允许开发人员使用高级语言抽象算法描述、数据类型和规范等。开发人员可以使用各种参数创建“假设”场景,以优化设计性能和器件区域。

HLS允许开发人员使用基于C的测试台和仿真直接从其设计环境中仿真生成的RTL。C到RTL综合将基于C的设计转换为RTL模块,该模块可以作为更大的RTL设计的一部分被封装和实现。

(15)动态功能交换设计。动态功能交换设计(Dynamic Function Exchange,DFx)允许使用部分比特流实时配置正在运行的 Xilinx FPGA 的一部分,从而改变正在运行的设计的特性和功能。必须对可重新配置的模块进行正确规划,以确保它们按需要运行最大的性能。DFx 流程要求严格的设计过程,以确保可重新配置模块被正确设计,从而在部分比特流更新期间实现无“毛刺”操作。这包括减少进入可重新配置模块、布图规划器件资源和引脚布局的信号个数,以及遵守特殊的 DFx DRC。还必须正确规划器件的编程方法,以确保正确配置I/O引脚。

(16)分层设计。分层(Hierarchical Design,HD)设计流程使FPGA开发人员可以将设计划分为更小、更容易管理的模块,以便独立处理。分层设计流程包括正确的模块接口设计、约束定义、布图规划以及一些特殊的命令和设计技术。使用模块化的分层设计方法,可以独立于设计的其余部分来分析模块,并且在自顶向下的设计中重用模块。设计团队可以对设计的特定部分进行迭代,实现时间收敛和其他设计目标,并重用结果。Vivado 有多个功能可以实现分层设计方法,如在顶层设计的上下文(OOC)之外综合逻辑模块。开发人员可以选择特定的模块或设计层次结构的级别,并将它们综合为 OOC。模块级的约束可用于优化和验证模块性能。在实现过程中,将应用模块设计检查点(Design Check Point,DCP)以建立顶层网表。这种方法也能帮助减少顶层综合运行时间,并消除对已经完成模块的重新综合。 7RVsWh3anJGA8q9dqqLv8PMGopLy+QM2gTuLxfjt2F1AHbv54U9ENZ4AMy4QEhrS

点击中间区域
呼出菜单
上一章
目录
下一章
×