Vivado的安装以及使用

零. Vivado简要介绍

Vivado是FPGA厂商赛灵思提供的一款EDA(Electronic Design Automation)工具. 在电子设计自动化方面, 其主要提供了四种功能: RTL代码编写, 功能仿真, 综合(synthesis)以及实现(implementation).

  • 其中, RTL代码编写用于编写设计的HDL描述(利用VHDL和System Verilog两种语言);
  • 功能仿真用于测试编写出的代码功能是否符合预期, 需要编写相关的testbench文件;
  • 综合用于讲RTL级描述转换为门级网表(门级网表是指设计的门级实现,包含门级元件和元件之间的连接, 从而更接近底层设计);
  • 实现用于将门级网表转换为可以下载到FPGA开发板上的比特流.

vivado在数字集成电路设计过程中的作用

一. vivado的安装

Vivado的安装已经有好多文章介绍过, 在这里给出一篇文章
https://blog.csdn.net/taowei1314520/article/details/74860356

二. 使用vivado完成一个小设计-计数器

在这里我们以一个4进制计数器的设计为例, 讲解我们如何使用Vivado进行工程设计
1. 新建工程
在菜单中点击file->project->new新建project

新建工程命令所在位置

新建project的时候注意选择合适的存放路径, 然后点击next; 选择RTL Project, 点击next; 选择对应的开发板, 点击next; 点击finish, 完成工程的新建.

新建工程过程示意图

新建工程project 4 后的Vivado界面
  1. 新建设计文件
    在界面中找到"Source"框, 点击"+", 选择"Add or create design sources", 点击next.
新建设计文件过程示意图一

点击Creat file, 指定语言类型, 文件名字, 文件存放的位置, 完成设计文件的新建.

新建设计文件过程示意图二

新建file之后的界面, 如下图, 双击Source的设计文件(在这里, 我命名为counter), 即可打开, 进行编辑.

新建完成设计文件后的Source窗口示意图
  1. 完成设计文件的编写
    这里以一个四进制的计数器为例, 代码如下所示.
// 这是一个从0开始计数, 可配置位数(更改WIDTH), 输入为时钟信号和复位信号, 输出计数器当前的值和计满信号的计数器.
module counter#( parameter WIDTH = 4)(input clk,input preset,output reg [WIDTH-1:0] count,output reg full);// always时许块中使用非阻塞赋值always @ (posedge clk or negedge preset) begin //时钟上升沿和复位下降沿触发if(~preset)begincount <= 0;endelse begin //一定要加elsecount <= count+1;endendalways@(*)beginfull = (count==2**WIDTH-1);endendmodule
  1. 新建仿真文件
    与新建设计文件类似

    • 在界面中找到"Source"框, 点击"+", 选择"Add or create simulation sources", 点击next.
    • 点击Creat file, 指定语言类型, 文件名字, 文件存放的位置, 完成仿真文件的新建.
    • 双击Source窗口下面, "Simulation Sources"下的设计文件(在这里, 我命名为counter), 即可打开, 进行编辑.
仿真文件所在处
  1. 完成仿真文件的编写
    该四进制的计数器的tesetbenc文件如下:
`timescale 1ns / 1psmodule counter_testbench#(parameter WIDTH=4)();// 给出对应的端口reg clk;reg reset;wire [WIDTH-1:0] count; // 接收模块的输出(wire)wire full;// 激励的产生initial beginclk = 0;reset = 1;#25 reset = 0;#25 reset = 1; endalways begin# 5 clk = ~clk;endalways begin#100;if ($time >= 10000)  $finish ;end// 连接counter c1(.clk(clk),.preset(reset),.count(count),.full(full));endmodule
  1. 点击"Run Simulation"进行功能仿真
SIMULATION按钮所在处

仿真结果如下图所示, 可见, 该计数器功能正常

仿真结果
  1. 点击SYTHESIS按钮, 进行综合, 以获得对应门级网表
综合按钮所在处
  1. 点击IMPLEMENTATUON按钮, 进行实现, 以获得比特流
实现按钮所在处

三. 使用vivado过程中可能遇到的问题(持续更新中)

  1. 功能仿真时显示(current time: 0fs)
    遇到这个问题, 点击结束仿真, 会跳到出现问题的那一行
    可能原因:
    - 在设计文件中, always没有加敏感信号列表
    - 循环为死循环, 缺少跳出循环的条件
  2. 功能仿真时, 输出信号均为X
    可能原因:
    - reset信号没有连接上, 在写异步复位时候一定要严格按照以下格式(if 和 else)
 always @ (posedge clk or negedge preset) begin //时钟上升沿和复位下降沿触发if(~preset)begincount <= 0;endelse begin //一定要加elsecount <= count+1;endend

四. 扩展阅读资料

上面只是简单介绍了Vivado的部分内容, 想要更加详细, 更加具体地了解Vivado的使用, 还可以阅读Vivado的官方用户手册.查找地址: https://china.xilinx.com/products/design-tools/vivado.html#resources

Vivado的安装以及使用_入门相关推荐

  1. centos7 docker安装和使用_入门教程

    centos7 docker安装和使用_入门教程 原文:centos7 docker安装和使用_入门教程 说明:本文也是参考互联网上的文章写的,感谢相关作者的贡献. 操作系统 64位CentOS Li ...

  2. python软件安装及设置_入门Python——1.软件安装与基础语法

    周末在家闲来无事,学了下Python.怕看过一遍就忘了,这里mark下. 一.Python的应用场景 1.网站开发 2.人工智能 机器学习 3.数据科学(如爬虫) 4.其它(绘图.图像处理) 二.软件 ...

  3. TortoiseGit 下载、安装、配置_入门试炼_01

    TortoiseGit 简介: TortoiseGit 简称 tgit, 中文名海龟Git.TortoiseGit是一个开放的GIT版本控制系统的源客户端. 文章目录 一.软件下载 1.1. 下载安装 ...

  4. Jenkins_安装基础软件_入门试炼03

    应用部署服务器准备: 本章对Linux系统简介.安装Java环境.安装并配置 Git.安装并配置 Maven.安装并配置 Tomcat.以及将部署服务器配置到Jenkins上. 一.Linux操作系统 ...

  5. Centos7 Docker 安装与启动_入门试炼01

    文章目录 一.常用命令 二.基础操作 2.1. 安装环境说明 2.2. 命令查看本地IP 2.3. 安装Docker 2.4. 安装后查看Docker版本 2.5. 启动Docker 2.6. 停止d ...

  6. jekenis安装与部署_入门兵器谱,测试相关软件系列——Jenkins自动化部署实录

    初次使用jekeniis部署自动化,记录下操作过程 1 安装jekenis 采用安装离线版jekenis,将文件解压后,在jekenis文件夹内启动终端,输入命令java -jar jenkins.w ...

  7. python爬虫挖掘平台搭建_一篇非常棒的安装Python及爬虫入门博文!

    原标题:一篇非常棒的安装Python及爬虫入门博文! 一. 大数据及数据挖掘基础(私信小编007即可获取大量Python学习资料!) 第一部分主要简单介绍三个问题: 1.什么是大数据? 2.什么是数据 ...

  8. 用Jenkins自动化搭建测试环境_jenkins基础搭建_入门试炼02

    Jenkins基础: 本篇介绍Jenkins的安装.Jenkins中的常用插件的安装方法.Jenkins用户配置以及提醒邮件的配置. 接上一篇:使用Jenkins搭建自动化测试环境_环境准备_入门试炼 ...

  9. ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区...

    原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一 ...

  10. Android学习路线_入门篇(一)编写简单的APP

    Android学习入门的目标就是能够编写出一个完整的APP,有可交互的界面,有基本的功能,有本地的数据库,有与后台的数据交换.在本文我们会了解到如何在AndroidStudio中新建.运行.打包一个A ...

最新文章

  1. 智能车竞赛,AI视觉组赛题浅析
  2. 使用liner、feather、multiband对已经拼接的数据进行融合(下)
  3. YOLOv3在OpenCV4.0.0/OpenCV3.4.2上的C++ demo实现
  4. 线程池 ManualResetEvent
  5. PPT 下载 | 神策数据朱静芸:消费者全渠道精细化运营方案
  6. 【90】沟通:跨部门管理
  7. Leetcode-MySQL-180. 连续出现的数字
  8. 为什么耗资数亿的12306一直都非常难用?
  9. yarn 常用命令(干干货!)
  10. SAE实践——用SVN命令行同步/提交代码
  11. ps 如何制作一寸白底照片
  12. 矩阵论——矩阵的标准型
  13. 传说中的蝴蝶效应?--MAC地址克隆竟然惹祸了!
  14. 教你如何注册到受限的MSN.COM、passport.com账号
  15. 基于TTP223金属触摸开关电路模块原理图和PCB工程文件
  16. mac字体渲染精细处理
  17. FAST上网设置服务器未响应,fast路由器不能上网的解决方法
  18. 多个系统间是怎么保证统一登录的
  19. 技术人员必会英语单词
  20. CSS实现页脚始终在页面底部

热门文章

  1. Activiti Explorer messages 国际化文件
  2. gateway权限统一认证
  3. 如何用计算机制作思维导向图,电脑怎样制作思维导图,手把手教你绘制思维导图简单方法...
  4. python——向Excel读取或写入数据
  5. MSN QQ网页聊天代码
  6. eTerm指令、民航指令大全、黑屏指令
  7. Qt浅谈之三十二二维码条形码解析
  8. JavaSocket编程的一个简单例子
  9. java教学视频全集迅雷,BAT大厂面试总结
  10. C#反编译工具:ILSpy