在Vivado IDE中创建新设计工程的主要步骤如下所述。
第一步 :打开Vivado 2023.1集成开发环境。
第二步 :在 Vivado 集成开发环境主界面内的“Quick Start”分组下,单击“Create New Project”(创建新工程)选项,弹出“Create a New Vivado Project”对话框,单击【Next】按钮,弹出“New Project-Project Name”对话框,在该对话框中要求设计者给出工程的名字和工程路径,具体参数设置如图3.1所示。
图3.1 “New Project-Project Name”对话框
其中,Create project subdirectory前面的复选框提供开发人员是否在当前指定的工程路径下创建一个子目录。例,当前指定的工程路径为 F:/vivado_example/gate_verilog,当选中 Create project subdirectory 前面的复选框时,所创建的工程将保存在 F:/vivado_example/gate_verilog/project_1 目录下。此处不创建工程子目录,即工程放在 F:/vivado_example/gate_verilog目录下。
注: 对于使用 VHDL 开发 FPGA 的读者,名字为“gate_VHDL”,这样是为了使用不同硬件描述语言(Hardware Description Language,HDL)读者学习的方便。
注: 读者可以根据自己的需要命名工程名字和指定工程路径,但是不要起中文名字和将工程放到中文的路径下,这样可能会导致Vivado综合和仿真工具进行后续处理时产生一些错误。
第三步 :单击图3.1中的【Next】按钮,弹出“New Project-Project Type”对话框,如图3.2所示,在该对话框中提供了下面可选的工程类型。
图3.2 “New Project-Project Type”对话框
(1)RTL Project:开发人员可以使用 Vivado 设计套件来管理从 RTL 创建到比特流生成的整个设计流程。开发人员可以添加RTL源文件、Xilinx IP目录中的IP、Vivado IP集成器中创建的块设计、DSP 源文件以及分层模块的 EDIF 网表。IP 可以包括 Vivado 工具生成的XCI或XCIX文件、核生成器工具生成的过时的XCO文件以及预编译的EDIF或NGC格式的网表。
注: ISE IP只支持7系列器件。ISE格式的IP(.ngc)不再支持UltraScale器件。在开始使用UltraScale器件设计之前,开发人员应该将其IP迁移到本原的Vivado设计套件格式。
设计人员从RTL工程中可以详细描述和分析RTL,以确保正确的语法和设计结构。启动和管理各种综合和实现运行,并分析设计和运行结果。设计人员还可以尝试使用不同的约束或实现策略来实现时序收敛。
(2)Post-synthesis Project:开发人员可以使用Vivado综合、XST或任何支持的第三方综合工具生成的网表来创建工程。例如,Vivado设计套件可以导入EDIF、NGC或结构Verilog格式的网表,XCI 文件(包括 DCP 在内的所有输出产品必须已经生成),以及 Vivado 设计检查点(Design CheckPoint,DCP)文件。网表可以由包含所有内容的单个文件或多个模块级网表组成的分层文件集组成。
注: 针对UltraScale器件的Vivado设计套件不支持NGC格式的文件。建议使用Vivado设计套件 IP 定制工具和本原输出产品重新生成 IP。或者设计人员可以使用 NGC2EDIF 命令将NGC 文件转换为 EDIF 格式以进行导入。然而,Xilinx 建议今后使用本原 Vivado IP,而不是XST生成的NGC格式的文件。
设计人员可以分析和仿真网表逻辑,启动和管理各种实现运行,并分析布局和布线的设计。设计人员还可以尝试使用不同的约束或实现策略。
建议始终使用XCI或XCIX文件引用Vivado IP。Xilinx不建议只读取IP DCP文件。虽然DCP确实包含约束,但它不提供IP可以提供和可能需要的其他输出产品,如ELF、COE和Tcl脚本。
(3)I/O Planning Project:通过创建一个空的I/O规划工程,可以在设计周期的早期执行时钟资源和 I/O 规划。开发人员可以在 Vivado IDE 中定义 I/O 端口,也可以通过逗号分隔的值(Comma Separated Value,CSV)或XDC输入文件导入这些端口。开发人员可以创建一个空的I/O规划工程,以探索在不同器件架构中可用的逻辑资源。
当分配完I/O后,Vivado IDE可以创建CSV、XDC和RTL输出文件,以方便在RTL源文件或者网表可用时,在设计流程中稍后使用。输出文件也可以用于创建原理图符号,用于印制电路板(Print Circuit Board,PCB)设计过程。
某些类型的 IP(如存储器、GT、PCIe 和以太网接口)具有与其关联的 I/O 端口,这些 IP需要在一个管理IP工程或一个RTL工程中进行配置。
注: 开发人员可以使用I/O规划工程作为基于RTL的设计工程的基础。
(4)Imported Project:设计人员可以将 Synplify(Synopsys 公司旗下的综合工具产品)所创建的 RTL 工程数据导入 Vivado 工具。导入了工程源文件和编译顺序,但是未导入实现结果和设置。
(5)Example Project:使用可用的一个模板创建新的示例工程。
在该设计中,按图3.2所示的进行参数设置。
注: 勾选“Do not specify sources at this time”,表示在建立工程时不指定源文件。这样,设计人员在生成工程后,再将设计源文件添加到工程中。
第四步 :单击图3.2中的【Next】按钮。
注: 设计人员也可以选择在Vivado主界面下的Tcl Console窗口中输入Tcl命令创建工程,如图3.3所示。
图3.3 Tcl Console窗口
可以输入下面的Tcl命令创建工程(读者可以根据情况进行修改):
默认工程类型是RTL。
如果读者想创建一个网表工程,按照下面的Tcl模板格式输入命令:
可以输入下面的Tcl命令在工程中添加设计源文件:
可以输入下面的Tcl命令将以上创建的文件放到当前工程路径下:
第五步 :弹出“New Project-Default Part”对话框,在该对话框中的参数设置如图3.4所示。
图3.4 “New Project-Default Part”对话框
注: 该设计基于作者开发的 A7-EDP-1 开发板进行设计,该开发板搭载了 Xiling 公司 A7系列xc7a75tfgg484-1的FPGA器件。
在图3.4下方的窗口中,列出了可供选择的器件。在本设计中,选中“Part”名字为“xc7a75tfgg484-1”的那一行。
第六步 :单击图3.4中的【Next】按钮,弹出“New Project-New Project Summary”对话框,该对话框给出了工程类型、工程名字和器件信息的说明。
第七步 :单击【Finish】按钮。