今天给大侠带来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

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

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

往期推荐

  • 在word文档中添加“原汁原味”代码

  • 如何写好状态机(一)

  • 如何写好状态机(二)

  • 如何写好状态机(三)

FPGA Vivado设计流程相关推荐

  1. DE1-SoC笔记(二)—SoC FPGA开发设计流程总结(de1教程2.1节)

    文章目录 1.所需要的软件 1.1 硬件设计部分 1.2 软件设计部分 1.3 putty 2.各软件的作用 3.SoC FPGA设计流程 3.1.用Qsys构建Hardware系统 3.2.生成Pr ...

  2. VIVADO 设计流程介绍

    1.vivado介绍       vivado用于xilinx fpga的设计和验证,VIVADO除了支持传统的rtl to bitfile的设计流程(即输入是rtl代码,通过集成后,用vivado来 ...

  3. [EDA]FPGA/CPLD 设计流程步骤及步骤概念

    EDA(以 FPGA/CPLD 设计为例)流程步骤 1.设计输入 2.全程编译 3.仿真验证 4.编程下载 5.硬件测试 设计输入 原理图/HDL文本编辑或其他输入方式把电路系统输入到EDA平台中. ...

  4. Vivado设计流程(二)设计文件输入

    1.如图1所示,单击 Flow Navigator下的 Project Manager-→ Add sources或中间Sources中的对话框打开设计文件导入添加对话框. 图1 (2)在如图2所示界 ...

  5. Vivado设计流程(一)新建工程

    新建工程 (1)单击如图1所示的 Create New Project图标,弹出新建工程向导所示,单击Next按钮. 图1 (2)弹出如图2所示界面,输入工程名称.选择工程存储路径,并选择 Creat ...

  6. ASIC-WORLD Verilog(2)FPGA的设计流程

    写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----asic-world网站的这套verilog教程即是其一.这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的 ...

  7. Vivado设计流程(五)工程实现

    (1)在如图所示的 Vivado流程处理主界面 Flow Navigator中单击 Program andDebug下的 Generate Bitstream选项,工程会自动完成综合.实现.Bit文件 ...

  8. Vivado设计流程(三)功能仿真

    (1)创建激励测试文件,在 Source中右击选择 Add sources (2)如图1所示,在 Add Sources界面中选择第三项 Add or create simulationsources ...

  9. Vivado设计流程(四)设计综合

最新文章

  1. BCH:“变法”是以史为鉴
  2. Django 下添加左侧字段显示和搜索
  3. GPU环境配置指南(Ubuntu16.04+CUDA+CUDNN)
  4. hive中创建表失败
  5. 圆投影匹配算法描述及实现
  6. android 音乐歌词接口,Android自定义View--仿QQ音乐歌词
  7. 遍历目录中的所有文件和目录,并生成全路径
  8. 红米手机Pro超简单刷入开发版获得ROOT超级权限的步骤
  9. 项目管理工具——PDCA管理循环
  10. 信号处理:时域和频域的关系
  11. 智能DNS解析搭建成功
  12. 支付宝公布春节抢红包大数据 金华人全国第五壕
  13. Android 逆向笔记 —— 说说 Dalvik 及其指令集
  14. uni-app 微信小程序启用组件按需注入
  15. ztree 树形菜单结构转JSON
  16. Python学习记录——英文名修改成标准格式
  17. LPC1768学习笔记
  18. 亚马逊内部文件泄露,程序员薪酬高达 462 万元
  19. node搭建web服务器时,图片显示不出来
  20. Windows10设置自动重启或定时重启的方法

热门文章

  1. Processing学习 — Processing结合Kinect2实现人影互动
  2. 部件级、处理机级和处理机间流水线
  3. php 判断不同分辨率,关于不同分辨率手机显示有区别的解决办法
  4. 关闭子窗口父窗口刷新
  5. ASP.NET MVC3 查询解决方案
  6. 手机开机卡在android画面,手机一直停在开机画面怎么解决【图文】
  7. 量化交易入门阶段——欧奈尔的CANSLIM模型(N 新产品、新管理层和股价创新高)
  8. 深入浅出讲解FOC控制与SVPWM技术
  9. 这位“华为天才少年”,竟然要我用“充电宝”打《只狼》
  10. 使用python制作epub