前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FPGA Vivado设计流程

FPGA Vivado设计流程

作者头像
FPGA技术江湖
发布2020-12-30 14:35:42
3.4K0
发布2020-12-30 14:35:42
举报
文章被收录于专栏:FPGA技术江湖
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

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

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

  • 在Vivado中创建一个新的HDL工程项目
  • 添加引脚约束(XDC)文件
  • 编写测试平台(Testbench)进行功能仿真
  • 综合、实现设计工程
  • 生成比特流文件,下载到 FPGA开发板进行功能验证

操作步骤

1. 创建新的工程项目。

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

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

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

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

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

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

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

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

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

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

8) 选择目标FPGA器件

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

Family: Artix-7

Package: cpg236

Speed grade: -1

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

Vendor:digilentinc.com

Display Name: Basys3

Board Rev: C.0

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

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

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

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

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

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

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

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层级中。

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

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

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

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

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

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

3. 综合

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

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

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

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

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

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

4. 添加I/O约束

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

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

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

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

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

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

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窗口查看其布线。

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

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

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

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

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

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

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

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

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

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

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

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

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档