目录

一.创建工程

二.添加源文件

三.RTL描述与分析


一.创建工程

        双击Vivado图标,进入到Vivado启动界面,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware

        在上述界面中有三个分栏,即:Quick Start、Tasks、Learning Center三个快速入口,其中这三个又包含各自的子项,即:

(1)Quick Start组包含有Create Project(创建工程)、Open Project(打开工程)、Open Example Project(打开实例工程)。

(2)Tasks组包含Manage IP(管理IP)、Open Hardware Manager(打开硬件管理器)、Xilinx Tcl Store(Tcl脚本存储库)。

(3)Learning Center组包含Documentation and Tutorials(文档和教程)、Quick Take Videos(快速上手视频)、Release Notes Guide(发布注释向导)。

通过单击Quick Start项目中的Create Project来新建一个Vivado设计工程。如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_02

        单击Next按钮,进入Project Name对话框,如图所示,填写工程名以及工程路径,根据实际情况确定是否勾选复选框Create project subdirectory,如果勾选会在上面设置的工程路径中以工程名称增加一级目录,可通过观察勾选是否,实际工程存放的路径进行理解该复选框的具体作用。此处需要注意的是,工程路径与工程名一定不能包含空格以及中文字符,否则在后续流程中会出现错误。然后单击Next按钮。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_03

        弹出Project Type对话框,如图所示。Vivado工具可以创建多种不同类型的工程,如最常用的RTL工程,综合后的网表工程、IO规划工程以及导入其它设计工具的工程。在这里选择RTL类型的工程,可以在创建工程的阶段进行设计文件的添加或创建,也可以在工程创建完成后再进行设计文件的添加或创建。此处勾选下面的复选框Do not specify sources at this time,不在设计创建阶段进行添加源文件。点击Next按钮。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_04

        芯片的选择,在这里需要选择设计所用的具体FPGA芯片的型号,根据板卡所用FPGA的器件系列、封装、速度等级以及温度级别来进行筛选,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_05

        点击Next按钮,出现New Project Summary对话框,如图所示。单击Finish按钮,完成工程的创建。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_06

        进入Vivado工程设计界面,如图所示。设计主界面主要包括:Flow Navigator、Project Manager、Design Runs等模块。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_07

二.添加源文件

        在使用Vivado工具完成工程的创建之后,可以在Vivado中为工程添加源文件。接下来将通过创建一个Verilog源文件。

        在Flow Navigator下,找到Project Manager并展开,单击Project Manager下的Add Sources选项;或者在Sources面板下单击xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_08按钮。Sources面板如图所示。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_09

        出现Add Source对话框,如图所示。该对话框界面提供了如下几个选项:

(1)Add or Create Constraints(添加或创建约束)

(2)Add or Create Design Sources(添加或者创建设计源文件)

(3)Add or Create Simulation Sources(添加或者创建仿真文件)

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_10

        需要创建的是Verilog HDL源文件,因此选项中第二项Add or Create Design Sources(添加或者创建设计源文件)前面的单选按钮。单击Next按钮。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_11

        出现Add or Create Design Sources对话框,如图所示。此时,可以通过点击Add File来选择添加本地现有的源文件,或单击Create File按钮来创建一个新的源文件。这里选择Create File按钮。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_12

        出现Create Source File对话框,如图所示。在该对话框中选择文件的类型和输入文件的名字。参数设置如下。单击OK按钮。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_13

        出现Define Module对话框,可以在此处添加设计源文件中的顶层端口信号,如图所示。参数设置如图所示。单击OK按钮。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_14

        返回到设计主界面中Sources面板下,出现了先添加了LED.v文件,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_15

        双击Sources面板下的LED.v文件,可以在主窗口中打开文件,编写相关代码。在编辑完成之后,保存源文件。至此源文件添加完成。

三.RTL描述与分析

RTL描述与分析功能简介

        当用Verilog语言取描述一定电路的时候,可能存在语法或者逻辑上的错误。语法错误在编写的过程中(在保存文档的时候)会自动检测文件中的语法错误,并在Messages标记中显示其错误。而且Sources面板下会将出错的源文件放到对应错误文件夹的下面。然而逻辑上的错误Vivado软件是无法检测出来的,比如说模块之间的连线错误等。RTL描述分析功能可以对工程的RTL结构、语法进行查看,进而可以分析并修正逻辑上的错误。

RTL描述和分析过程

(1)如图所示,在Flow Navigator下,找到RTL Analysis并展开。单击Open Elaborated Design,打开Elaborated Design。可以看到Open Elaborated Design标题变为Elaborated Design。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_16

(2)单击图中的Schematic,打开RTL原理图,如图所示。该原理图是依据HDL描述生成的,根据该原理图可以查看设计是否达到要求并加以修正。在Vivado的设计过程中用户可以在RTL分析、综合、实现阶段后打开设计原理图或设计网表来进行视察。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_17

设计综合

(1)如图所示,在Flow Navigator窗口下,找到Systhesis并展开。

(2)在展开项中,单击Run Synthesis开始对设计进行综合。

(3)当综合完成后,出现Synthesis Completed对话框,如图所示。可以选择Open Synthesis Dedign来打开综合后的设计进行观察,单击OK按钮。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_18

(4)如果之前打开了Elaborated Design,会出现关闭Elaborated Design的提示对话框,单击YES按钮即可。

(5)在设计综合完成后的Systhesis展开项中工具会列出诸多可以在当前设计下进行的操作,如图所示。注意流程向导窗口中Synthesis下的Open Synthesized Design在综合完成并打开设计后变为Synthesised Design。

(6)在打开Synthesis Design后,默认打开Schematic视图,如图所示。如果没有打开,在Synthesis Design下单击Schematic即可打开。显然,在综合之后的原理图中,电路网表即采用FPGA器件中拥有的基本元件来搭建了,如图所示的LUT6查找表:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_19

(7)单击Synthesis Design下的Report Utilization选项。出现Report Utilization对话框,如图所示。通过Report Utilization功能。可以得到工具针对当前设计的资源利用率的详细报告。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_20

        单击OK按钮,Vivado开始计算核设计的资源消耗量。在Vivado下方打开Utilization-utilization_1标签窗口。如图所示,给出设计的利用资源。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_21

添加设计约束

        通常一个设计中的FPGA不会是独立使用的,FPGA一定会与其它外设、接口相连接,并且FPGA通常需要外部时钟的接入。因此,FPGA设计需要在工具中指定对应的IO引脚位置以及输入时钟的信息,即需要用户对IO进行约束以及进行时钟周期等时序约束。在Vavido中用户可通过I/O Planner进行IO约束,使用Timing Constraints Manager指定期望设计性能即进行设计的时序约束。

IO约束步骤为:

(1)首先在综合完成后的设计上点击Open Synthesized Design来打开综合后的设计。

(2)在菜单栏视图下拉I/O Planning View点击进入IO规划视图界面,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_22

        分配好引脚之后,点击保存按钮后会弹出保存约束文件窗口,输入LED,然后点击OK,保存约束文件,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_23

设计实现

        Vivado下的FOGA设计实现是指由FPGA实现工具将FPGA综合后的电路网表针某个具体指定的器件以及相关物理与性能约束进行优化、布局、布线并生成可以下载到FPGA芯片配置文件的过程。

实现过程分为:

(1)优化设计Opt Design:针对所有器件,对逻辑设计进行优化,以便达到最优实现;

(2)功耗设计优化Power Opt Design(可选):从降低功耗的角度,对逻辑设计进行优化;

(3)布局设计Place Design(必选):将设计网表在所选器件上进行布局;

(4)布局后功耗优化Post-Place Power Opt Design(可选):在布局之后的网表基础上优化功耗;

(5)布局后物流优化Post-Place Phys Opt Design(可选):在布局之后的网表基础上进行物理优化,主要针对时序性能;

(6)布线设计Route Design(必选):在布局后的设计上,进行布线;

(7)布线后物理优化Post-Route Phys Opt Design(可选):在布线后的设计上,参考布线后的设计延时,对逻辑、布局、布线等情况再次进行优化;

同样的,Vivado设计实现部分也有一些相关的设置,打开工程设置中的实现设置窗口,如图所示。可以看到,与设计综合类似,设计实现的每个子步骤都具有Tcl钩子脚本功能,用户可以使用Tcl脚本灵活的制定设计实现流程。此外,对于设计实现的每个子步骤,用户都可以去指定工具的Directive,即让工具按照设计者预期的目标进行设计实现结果的探索。

在Vivado下进行设计实现的具体步骤如下:

(1)在Flow Navigator下找到并展开Implementation,如图所示。单击Run Implementation选项,开始执行实现过程。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_24

(2)完成过程之后会出现如图所的Implementation Completed对话框。选择Open Implemented Design,单击OK按钮。如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_25

6.比特流文件的生成与下载

设计的最后一步是将Vivado实现产生的网表文件转化为比特流文件,并且将比特流文件下载到FPGA芯片中。比特流文件用于完成对FPGA进行配置。

(1)比特流文件的生成

如图所示,在Flow Navigator窗口下找到Program and Debug选项并展开。单击Generate Bitstream选项,开始生成比特流文件。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_26

(2)比特流文件的下载

比特流文件生成后,会出现如图所示的Bitstream Generation Completed对话框,选择Open Hardware Manager选项。单击OK选项。如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_27

在图中,Open Hardware Manager变为Hardware Manager;如果没有,则单击Open Hardware Manager打开Hardware Manager。在Vivado右侧出现Hardware Manager界面,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_Hardware_28

在Hardware Manager界面中,单击Auto Connect连接设备。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_29

在Hardware Manager界面下出现选中的设备,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_30

在Hardware Manager界面中找到并右键单击xc7a35t_0(0),在浮动菜单中单击Program Device...选项。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_31

如图所示,出现Program Device对话框。默认情况下比特流文件会自动选中,如果没有单击

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_32

按钮,找到并选中LED.bit文件。在Program Device对话框中单击Program按钮,开始下载。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_33

7.bin文件的生成固化

在设置里面按照下图勾选-bin_file*,点击确定后,再重新生成一次bit文件,这个时候就会在生成bit文件的同时也会生成bin文件,如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_34

再次打开Hardware Manager界面如下选择:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_35

弹出界面按照如下选择(具体是根据开发板上的flash来选择的),如图所示:

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_原理图_36

配置好参数之后电机OK会弹出如下的界面,按照下面来定位到bin文件,点击OK就可以了。

xilinx fpga 架构 设计 spi 接口 xilinx fpga开发实用教程_源文件_37

点击OK等待程序下载完成,这样就完成了程序的固化。