本小节将介绍Vivado IDE工程界面及功能,内容包括流程处理主界面及功能、工程管理器主界面及功能、工作区窗口和设计运行窗口。
如图 2.10 所示,在 Vivado 左侧的 Flow Navigator窗口中给出了处理的主要流程。
在工程管理器中可以执行的操作包括修改工程设置(Settings)、添加源文件(Add Sources)、查看语言模板(Language Templates),以及打开 Vivado IP 目录(IP Catalog)。
在 IP 集成器中可以执行的操作包括创建块设计(Create Block Design)、打开块设计(Open Block Design)和生成块设计(Generate Block Design)。
仿真中可以执行的操作包括运行仿真(Run Simulation)。
在 RTL 分析中可以执行的操作包括运行 Linter (Run Linter)和打开详细描述的设计(Open Elaborated Design)。
注: Run Linter是Vivado的内置功能,它分析RTL设计代码并提供违反设计规则(也称为冲突)的详细报告。
图2.10 Vivado IDE的Flow Navigator窗口
在综合中可以执行的操作包括运行综合(Run Synthesis)和打开综合后的设计(Open Synthesized Design)。
在实现中可以执行的操作包括运行实现(Run Implementation)和打开实现后的设计(Open Implemented Design)。
在编程和调试中可以执行的操作包括生成比特流(Generate Bitstream)和打开硬件管理器(Open Hardware Manager)。
Sources窗口允许开发人员管理工程源文件,包括添加文件、删除文件和对源文件进行重新排序,用于满足指定的设计要求。在该窗口中提供了 4 个标签,包括 Hierarchy (层次)、IP Sources (IP源)、Libraries (库)和 Compile Order (编译顺序),如图2.11所示。
图2.11 Sources窗口
图 2.11 给出了“Hierarchy”标签页的内容。在该标签页中,显示了设计模块和实例的层次结构,以及包含它们的源文件。顶层模块定义了编译、综合和实现的设计层次结构。Vivado IDE 会自动检测顶层模块,但设计人员也可以使用Set as Top命令手动定义顶层模块。
该标签页中提供了下面的文件夹。
1)Design Sources(设计源文件)
显示源文件类型,这些源文件类型包括 Verilog、VHDL、NGC/NGO、EDIF、IP 核、数字信号处理(DSP)模块、嵌入式处理器,以及 XDC 和 SDC 约束文件。根据不同的情况,在该文件夹中可能包含以下子文件夹。
(1)Syntax Error Files(语法错误文件):显示具有影响设计层次结构的语法错误文件。
(2)Non-Module Files(非模块文件):显示在分析过程中产生问题的文件。
(3)Disable Sources(禁用源文件):显示禁用的文件。
(4)Text(文本):显示作为工程一部分的文本文件。
2)Constraints(约束文件)
显示用于对设计进行约束的约束文件。
3)Simulation Sources(仿真源文件)
显示用于仿真的源文件。
4)Utility Sources(实用源文件)
保存用于设计运行的pre-and post-tcl文件,它还将引用增量编译流程中的DCP。在该标签页中,使用不同的图标来标记文件的类型,如表2.4所示。
表2.4 不同类型的文件与对应的图标
续表
“IP Sources”标签页中显示了由IP核所定义的所有文件,如图2.12所示。
图2.12 “IP Sources”标签页
“Libararies”标签页中显示了保存到各种库的源文件,如图2.13所示。
“Compile Order”标签页中显示了所有需要编译源文件的顺序(从第一个到最后一个),并且显示了约束的处理顺序,如图 2.14 所示。在该标签页的顶部,通过下拉菜单,开发人员可以选择 Synthesis(综合)、Implementation(实现)或 Simulation(仿真)。以显示每个设计流程步骤的源文件。
图2.13 “Libraries”标签页
图2.14 “Compile Order”标签页
当使用源代码时,顶层模块是最后一个要编译的文件。开发人员允许Vivado IDE根据定义的顶层模块和详细描述的设计自动确定编译顺序,也可以使用层次更新浮动菜单命令,重新对源文件进行排序,手动控制设计的编译顺序。
(1) (Search)按钮:单击该按钮,打开 Search(查找)工具条,允许快速定位源文件窗口内的对象。
(2) (Collapse All)按钮:单击该按钮,折叠所有层次树对象,仅显示顶层对象。
(3) (Expand All)按钮:单击该按钮,展开所有层次树对象,以显示源窗口中的所有元素。
(4) (Add Sources)按钮:单击该按钮,添加或创建约束文件、仿真源文件和设计源文件。设计源文件包括HDL和网表文件,以及现有的IP和块设计。
(5) (Show Only Missing Sources)按钮:单击该按钮,筛选源文件,以显示丢失的文件或丢失的实例。当设计层次结构中缺少文件、模块定义或实例时,将使能该命令。当选择该命令时,将过滤源窗口以显示丢失的文件或模块。
Vivado IDE包含交互式的工程总结(Project Summary)窗口,如图2.15所示。在设计流程的过程中,该窗口在运行设计命令和设计处理时动态更新。该窗口包含 Overview(概要)标签和用户定义的Dashboard(仪表板)标签。
图2.15 工程总结窗口
设计人员可以配置工程总结窗口中的“Dashboard”标签页,如图 2.16 所示。通过该标签页,设计人员可以查看和分析数据如下所示。
图2.16 “Dashboard”标签页
(1)以表格或图形形式显示的各种数据;
(2)比较多个运行的值;
(3)创建一个小工具(Gadget),显示单个或多个运行的各种数据点。
注: 小工具的数据是从与运行相关的报告中收集的。如果创建小工具,必须首先为运行设置报告。
单击图2.16左上角的+AddGadget按钮,弹出“Configure Gadget”(配置小工具)对话框,如图 2.17 所示。该对话框允许设计人员创建一个小工具,显示为运行定制的数据。在该对话框中,设置以下选项,单击“OK”按钮,即可将小工具添加到仪表盘中。
图2.17 “Configure Gadget”对话框
(1)Name(名字):指定一个名字来标识在运行 Tcl命令时使用的小工具。
(2)Type(类型):选择用于生成小工具数据的报告类型(如Timing)。
(3) Run Type (运行类型):选择 Synthesis 或Implementation。
(4)Stages(阶段):如果设计人员正在分析一个实现运行,选择一个实现阶段(如 Place),或选择 All Stages;如果设计人员正在分析一个综合运行,则只有一个阶段可用。
(5) View Type (视图类型):将小工具设置为图形(Graph)或表格(Table)。添加小工具后,可以使用小工具标题中的Graph/Table工具栏按钮更改显示。
(6)Orientation(方向):为图形选择Vertical(垂直)或Horizontal(水平)方向。
(7) Reports (报告):从一个或多个运行中选择报告,以显示小工具的相关数据。
(8)Statistics(统计):选择要在小工具中显示的统计信息。可用的统计信息基于选定的报告。
(9)Hide unused data(隐藏未使用的数据):选择该选项可隐藏不包含数据的统计条目。要显示所有的统计信息,请取消选择该选项。
如图 2.18 所示,给出了运行设计的交互窗口,该窗口中提供了下面的标签,包括 Tcl Console(Tcl控制台)、Messages(消息)、Log(日志)、Reports(报告)和Design Runs(设计运行)。
图2.18 运行设计的交互窗口
图2.18给出了“Tcl Console”标签页。在该标签页中显示了:
(1)来自以前执行Tcl命令的消息。
注: Vivado IDE也将这些消息写到vivado.log文件中。
(2)命令错误、警告和成功完成。
(3)设计加载和读取约束的状态。
注: (1)如果没有出现“Tcl Console”标签页,在Vivado IDE主界面主菜单下,执行菜单命令【Windows】→【Tcl Console】,打开“Tcl Console”标签页。
(2)要输入Tcl命令,单击图2.18标签页中底部的命令行输入框,然后输入命令。
“Message”标签页如图 2.19 所示,该标签页中显示了设计和报告消息,这些消息经过分组,使设计人员能够定位来自不同工具或过程的消息。显示的消息带有指向相关对象或源文件的链接。
图2.19 “Messages”标签页
在图2.19 给出的标签页的顶部,通过勾选/不勾选 Error(错误)前面的复选框、勾选/不勾选Critical warning(严重警告)前面的复选框、勾选/不勾选Info(信息)前面的复选框或勾选/不勾选 Status(状态)前面的复选框,设计人员可以选择显示/隐藏 Error(错误)、显示/隐藏Critical warning(严重警告)、显示/隐藏Info(信息)或显示/隐藏Status(状态)。
注: (1)如果没有出现“Messages”标签页,在Vivado IDE主界面主菜单下,执行菜单命令【Windows】→【Messages】打开“Messages”标签页。
(2)如果源文件的位置发生改变,Vivado IDE会删除相关消息中的链接,以防止造成混淆。
“Log”标签页如图2.20所示。该标签页中显示了对设计进行编译(如综合、实现和仿真)命令活动的输出状态。输出以连续可滚动的格式显示,并在运行新命令时被覆盖。
图2.20 “Log”标签页
注: 如果没有出现“Log”标签页,设计人员可以在 Vivado IDE 主界面主菜单下,执行菜单命令【Windows】→【Log】打开“Log”标签页。
“Reports”标签页如图 2.21 所示。该标签页中显示了用于当前活动运行的报告,并在不同的步骤完成后进行更新。报告分组在以不同步骤命名的标题下,以实现信息的快速定位。在图2.21中双击报告的名字,则自动在文本编辑器中打开对应的报告。
图2.21 “Reports”标签页
注: 如果没有出现“Reports”标签页,设计人员可以在Vivado IDE主界面主菜单下,执行菜单命令【Windows】→【Reports】打开“Reports”标签页。
“Design Runs”标签页如图 2.22 所示。设计人员可以使用该标签来查看、配置、启动、复位、分析综合和实现运行。该标签页中按设计流程顺序列出了综合和实现的运行,并根据依赖关系列出脱离上下文(OOC)运行,比如依赖IP出现在顶层IP下。
图2.22 “Design Runs”标签页
注: 如果没有出现“Design Runs”标签页,在Vivado IDE主界面主菜单下,执行菜单命令【Windows】→【Design Runs】打开“Design Runs”标签页。
1)工具栏的功能
图2.22中,工具栏内各按钮的功能如下。
(1) (Search)按钮:单击该按钮,打开搜索栏以定位消息。(2) (Collapse All)按钮:单击该按钮,折叠所有消息。
(3) (Expand All)按钮:单击该按钮,展开所有消息。
(4) (Reset Runs)按钮:单击该按钮,调用“Reset Runs”对话框,以删除以前的运行结果,并将选定运行的状态返回到未启动。
(5) (Reset to Previous Step)按钮:单击该按钮,将选择的运行复位到前面一步。这允许设计人员在运行过程中后退一步,进行任何必要的修改,然后前进一步完成运行。
(6)(Launch Runs)按钮:调用“Launch Runs”对话框,以启动选择的运行。 (7) (Launch Next Step)按钮:启动所选择运行的下一步。对于实现运行,可用的步骤有 opt_design、place_design、route_design、write_bitstream。综合只有一个步骤,即synth_design。
(8) (Create Runs)按钮:调用“Create New Runs”对话框来创建和配置新的综合或实现运行。
(9) (Show Percentage)按钮:按百分比而不是按数字显示利用率。
2)浮动菜单内的命令
在“Design Runs”标签页中,单击鼠标右键,出现浮动菜单。在浮动菜单内,提供了下面的命令。
(1)Run Properties:显示Run Properties(运行属性)窗口。
(2)Delete:删除选定的非活动运行,并从磁盘中删除关联的运行数据。删除运行之前,系统会提示设计人员进行确认。这里需要注意,开发人员不能删除活动的运行。
(3)Make Active:将选定的运行设置为活动的运行。当使用运行综合和运行实现命令时,自动启动活动的运行。活动运行的结果会显示在 Messages、Compilation、Reports 和 Project Summary窗口中。
(4)Change Run Setting:改变所选择综合或实现运行的策略和命令行选项。
(5)Set Incremental Synthesis/Set Incremental Implementation:指定一个设计检查点,用作下一次综合或实现运行的参考。
(6)Include Incremental Syntheiss Information in DCP:在综合检查点中包含要在下一次增量综合运行器件进行比较的工具的信息。
(7)Set QoR Suggestions:指定用于下一次综合或实现运行的QoR建议文件。
(8)Generate ML Strategies:调用 ML 策略窗口,用于为不满足时序要求的设计生成 ML策略。
(9)Create ML Strategy Runs:从生成的ML策略中创建不同的ML策略实现运行。只有在生成ML策略后,该选项才可用。
(10)Save as Report Strategy:将当前策略和命令行选项保存为新策略,以供将来使用和修改。
(11)Open Run:打开所选择运行的设计。
(12)Launch Runs:调用“Launch Runs”对话框以启动所选择的运行。
(13)Reset Runs:调用“Reset Runs”对话框以删除之前的运行结果,并将所选择运行的状态设置为未启动。
(14) Launch Next Step:启动所选择运行的下一步。对于实现运行,可用的步骤包括opt_design、place_design、route_design和write_design。综合只有一个步骤,即synth_design。
(15)Launch Step To:为所选择的运行启动所选择的步骤。
(16)Reset to Previous Step:将所选择的运行复位到前一个步骤。这允许设计人员在运行的过程中后退一步,进行任何需要的修改,然后前进一步以完成运行。
(17)Generate Bitstream:调用 write_bitstream 步骤。该命令仅可以用于已经完成的实现运行。
(18)Display Log:在Run Properties窗口中显示Log视图。
(19)Display Report:在Run Properties窗口中显示Reports视图。
(20)Display Messages:在Run Properties窗口中显示Messages视图。
(21)Create Runs:调用“Create New Runs”对话框去创建和配置新的综合或实现运行。
(22)Open Run Directory:在磁盘上选定的运行目录中打开文件浏览器。
(23)Export to Spreadsheet:将Design Runs窗口中的信息导出到电子数据表文件中。