FPGA Vivado设计流程

今天给大侠带来Vivado设计流程,话不多说,上货。

 

 

 

 

 

 

本篇通过创建一个简单的HDL工程,学会使用Vivado集成开发环境。学会如何使用Vivado进行设计、仿真、综合以及实现一个项目,生成比特流文件并下载到 FPGA开发板。

  • 在Vivado中创建一个新的HDL工程项目

  • 添加引脚约束(XDC)文件

  • 编写测试平台(Testbench)进行功能仿真

  • 综合、实现设计工程

  • 生成比特流文件,下载到 FPGA开发板进行功能验证

 

FPGA Vivado设计流程

操作步骤

 

1. 创建新的工程项目。

1) 双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;

FPGA Vivado设计流程

 

2) 点击‘Create Project’,或者单击File>New Project创建工程文件;

FPGA Vivado设计流程

 

3) 弹出工程导向窗口,点击Next继续;

FPGA Vivado设计流程

 

4) 将新的工程项目命名为‘lab1’,选择工程保存路径,勾选‘Create project subdirectory’,创建一个新的工程文件夹,点击Next继续;

FPGA Vivado设计流程

 

5) 选择新建一个RTL工程,点击Next继续;

FPGA Vivado设计流程

 

6) 使用下拉按键,将目标语言和仿真器语言都设置为Verilog;

FPGA Vivado设计流程

 

点击左上角蓝色‘+’按键,选择‘Add Files’,或者直接点击中间的‘Add Files’按键添加源文件;

FPGA Vivado设计流程

 

查找文件(例如:C:\Basys3_workshop\sources\lab1),添加lab1.v文件。

添加完成后,我们可以看到lab1.v文件已经出现在列表中。如果‘Copy sources into project’没有勾选,需要勾选该选项将源文件复制到创建的工程文件夹中,点击Next继续。

FPGA Vivado设计流程

 

7) 提示添加约束文件(Constraints),这个将会在后面进行介绍。此处先直接点击Next继续。

 

8) 选择目标FPGA器件

A. 如果没有在Vivado中安装Digilent开发板文件,那么在Board一项中将无法找到Basys3。在Parts一项中选择Basys3 FPGA的芯片xc7a35tcpg236-1。可以通过筛选器帮助快速找到器件:

Family: Artix-7

Package: cpg236

Speed grade: -1

FPGA Vivado设计流程

 

B. 如果已经安装Digilent开发板文件,那么可以在Board一项中直接找到Basys3。同样,可以通过筛选器快速找到Basys3:

Vendor:digilentinc.com

Display Name: Basys3

Board Rev: C.0

FPGA Vivado设计流程

 

9) 完成选择后点击Next继续,下一步会显示创建工程的总结信息,如项目名称、添加的源文件以及约束文件的数量和选择的目标FPGA器件。确认信息无误后,点击Finish完成工程创建。

FPGA Vivado设计流程

 

10) 在Sources窗格中展开Design Sources,双击lab1.v在文本编辑器中打开源文件,查看源文件内容。

FPGA Vivado设计流程

 

11) 查看RTL级电路原理图,在左侧的Flow Navigator中依次展开RTL ANALYSIS>Open Elaborated Design,点击‘Schematic’。

FPGA Vivado设计流程

 

2. 使用Vivado内建仿真器对设计进行功能仿真

1) 搭建测试平台,添加‘lab1_tb.v’测试平台文件。

1.1 在Vivado界面左侧的Flow Navigator一栏中展开PROJECT MANAGER,点击‘Add Sources’。

FPGA Vivado设计流程

 

1.2 选择‘Add or create simulation sources’,点击Next继续。

FPGA Vivado设计流程

 

1.3 点击蓝色‘+’选择‘Add Files’或者直接选择中间的‘Add Files’按键。

 

1.4 查找文件(例如:C:\Basys3_workshop\sources\lab1),选择添加lab1_tb.v文件。确认‘Copy sources into project’已经勾选,点击Finish完成添加。

 

1.5 在Sources窗格中依次展开Simulation Sources>sim_1

lab1_tb.v文件被添加到Simulation Sources中,lab1.v作为被测实例自动的被添加到lab1_tb.v层级中。

FPGA Vivado设计流程

 

1.6 双击‘lab1_tb.v’在文本编辑窗口中查看文件内容。

FPGA Vivado设计流程

 

2) 使用Vivado内建仿真器对设计进行200ns仿真

2.1 在Flow Navigator中展开PROJECT MANAGER,选择‘Settings’。

FPGA Vivado设计流程

 

2.2 弹出窗口中,在Project Settings一栏中选择‘Simulation’,目标仿真器选择‘Vivado Simulator’,在Simulation一项中将‘xsim.simulate.runtime’的值设为200ns,点击‘Apply’。

FPGA Vivado设计流程

 

2.3 在Flow Navigator中,展开SIMULATION,点击‘Run Simulation’,选择‘Run Behavioral Simulation’。

FPGA Vivado设计流程

 

仿真完成后,主界面如下图所示。我们可以观察到四个主要部分:(1)Scope: 显示测试平台的层级以及glbl实例;(2)Objects: 显示顶层信号;(3)波形窗口;(4)Tcl Console: 显示仿真进程。

FPGA Vivado设计流程

 

3. 综合

1) 使用Vivado自带的综合工具对设计进行综合并分析综合结果

1.1 在Vivado界面左侧的Flow Navigator栏中展开SYNTHESIS,点击‘Run Synthesis’开始综合。

1.2 弹出窗口中可以选择电脑处理器核使用个数,允许多个任务同时进行。

FPGA Vivado设计流程

 

1.3 综合完成后会弹出对话框,选择的‘Open Synthesized Design’,点击OK,查看综合结果。

FPGA Vivado设计流程

 

1.4 在顶部工具栏选择Window>Project Summery,或者直接点击快捷按钮,查看项目总结报告。

FPGA Vivado设计流程

 

1.5 在Flow Navigator中,展开SYNTHESIS>Open Synthesized Design,选择Schematic查看电路原理图。

FPGA Vivado设计流程

 

4. 添加I/O约束

1) 手动添加I/O约束,自动生成约束文件

1.1 在顶部工具栏选择Layout>I/O Planning

1.2 Vivado会打开I/O Planning窗口,如下图所示。我们在窗口中指定Basys3的引脚和电平标准来进行I/O配置。

FPGA Vivado设计流程

 

1.3 根据Basys3产品手册,选择相应的I/O引脚标号,Basys3物理引脚的电平标准都为3.3V,故选择‘LVCMOS33’。

 

1.4 选择完成后,点击保存或者‘Ctrl+S’保存修改。Vivado会弹出对话框,提示创建并保存约束(XDC)文件,我们输入文件名‘lab1_Basys3’,点击OK创建并保存。

FPGA Vivado设计流程

 

1.5 完成后,在Sources窗格中展开Constraints>constrs_1,可以看到‘lab1_Basys3.xdc’已经被创建并添加到工程中,双击打开可以查看。

FPGA Vivado设计流程

 

2) 直接添加约束文件

2.1 在Flow Navigator中,展开PROJECT MANAGER,选择‘Add Sources’。

2.2 在弹出窗口中选择‘Add or create constraints’,点击Next继续。

2.3 点击‘Add Files’,查找文件(例如:C:\Basys3_workshop\sources\lab1),添加‘lab1_basys3.xdc’文件。点击Finish完成添加。

 

5. 实现

1) 使用Vivado工具对设计进行实现并观察实现结果

1.1 在Flow Navigator中,展开IMPLEMENTATION,点击‘Run Implementation’。

1.2 完成后,选择‘Open Implemented Design’,查看实现结果。

1.3 在Device窗口中可以查看设计在Basys3 FPGA芯片上布局布线的结果,如果Device窗口没有打开可以在顶部工具栏选择Layout>Default Layout。选中图标查看布线,在Netlist窗格中选中需要查看的线网,在Device窗口查看其布线。

FPGA Vivado设计流程

 

6. 使用Vivado内建仿真器对设计进行时序仿真

1) 在Flow Navigator中,展开SIMULATION,点击‘Run Simulation’,选择‘Run Post-Implementation Timing Simulation’。

2) 仿真完成后,查看波形可以发现,我们在测试文件(lab1_tb.v)设置的delay是10ns,而实际的delay是9.23ns。

FPGA Vivado设计流程

 

7. 生成比特流文件及功能验证

1) 在Flow Navigator中,展开PROGRAM AND DEBUG,点击‘Generate Bitstream’开始生成比特流文件。

2) 完成后,选择‘Open Hardware Manager’打开硬件管理器,点击OK继续。

FPGA Vivado设计流程

 

3) 确保Basys3 JP2跳线设置为USB供电模式,连接Basys3开发板和电脑,打开Basys3开发板电源。

 

4) 等待设备自动完成驱动安装后,在上方点击‘Open target’,选择‘Auto Connect’连接设备。

FPGA Vivado设计流程

 

5) 连接完成后,我们可以在Hardware窗格中找到连接的设备。

FPGA Vivado设计流程

 

6) 点击上方的‘Program device’,在弹出的窗口中选择相应的比特流文件,点击‘Program’开始下载。

FPGA Vivado设计流程

 

7) 下载完成后,Basys3开发板右上角的LD19(DONE)会常亮。可以通过操作拨码开关观察LED灯来验证结果。

FPGA Vivado设计流程

 

LED4-7通过对应位置的拨码开关SW4-7控制其亮灭。

 

 

END

 

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

 

 

往期推荐