Vivado的安装以及使用_入门
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界面 |
---|
- 新建设计文件
在界面中找到"Source"框, 点击"+", 选择"Add or create design sources", 点击next.
新建设计文件过程示意图一 |
---|
点击Creat file, 指定语言类型, 文件名字, 文件存放的位置, 完成设计文件的新建.
新建设计文件过程示意图二 |
---|
新建file之后的界面, 如下图, 双击Source的设计文件(在这里, 我命名为counter), 即可打开, 进行编辑.
新建完成设计文件后的Source窗口示意图 |
---|
- 完成设计文件的编写
这里以一个四进制的计数器为例, 代码如下所示.
// 这是一个从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
- 新建仿真文件
与新建设计文件类似- 在界面中找到"Source"框, 点击"+", 选择"Add or create simulation sources", 点击next.
- 点击Creat file, 指定语言类型, 文件名字, 文件存放的位置, 完成仿真文件的新建.
- 双击Source窗口下面, "Simulation Sources"下的设计文件(在这里, 我命名为counter), 即可打开, 进行编辑.
仿真文件所在处 |
---|
- 完成仿真文件的编写
该四进制的计数器的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
- 点击"Run Simulation"进行功能仿真
SIMULATION按钮所在处 |
---|
仿真结果如下图所示, 可见, 该计数器功能正常
仿真结果 |
---|
- 点击SYTHESIS按钮, 进行综合, 以获得对应门级网表
综合按钮所在处 |
---|
- 点击IMPLEMENTATUON按钮, 进行实现, 以获得比特流
实现按钮所在处 |
---|
三. 使用vivado过程中可能遇到的问题(持续更新中)
- 功能仿真时显示(current time: 0fs)
遇到这个问题, 点击结束仿真, 会跳到出现问题的那一行
可能原因:
- 在设计文件中, always没有加敏感信号列表
- 循环为死循环, 缺少跳出循环的条件 - 功能仿真时, 输出信号均为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的安装以及使用_入门相关推荐
- centos7 docker安装和使用_入门教程
centos7 docker安装和使用_入门教程 原文:centos7 docker安装和使用_入门教程 说明:本文也是参考互联网上的文章写的,感谢相关作者的贡献. 操作系统 64位CentOS Li ...
- python软件安装及设置_入门Python——1.软件安装与基础语法
周末在家闲来无事,学了下Python.怕看过一遍就忘了,这里mark下. 一.Python的应用场景 1.网站开发 2.人工智能 机器学习 3.数据科学(如爬虫) 4.其它(绘图.图像处理) 二.软件 ...
- TortoiseGit 下载、安装、配置_入门试炼_01
TortoiseGit 简介: TortoiseGit 简称 tgit, 中文名海龟Git.TortoiseGit是一个开放的GIT版本控制系统的源客户端. 文章目录 一.软件下载 1.1. 下载安装 ...
- Jenkins_安装基础软件_入门试炼03
应用部署服务器准备: 本章对Linux系统简介.安装Java环境.安装并配置 Git.安装并配置 Maven.安装并配置 Tomcat.以及将部署服务器配置到Jenkins上. 一.Linux操作系统 ...
- Centos7 Docker 安装与启动_入门试炼01
文章目录 一.常用命令 二.基础操作 2.1. 安装环境说明 2.2. 命令查看本地IP 2.3. 安装Docker 2.4. 安装后查看Docker版本 2.5. 启动Docker 2.6. 停止d ...
- jekenis安装与部署_入门兵器谱,测试相关软件系列——Jenkins自动化部署实录
初次使用jekeniis部署自动化,记录下操作过程 1 安装jekenis 采用安装离线版jekenis,将文件解压后,在jekenis文件夹内启动终端,输入命令java -jar jenkins.w ...
- python爬虫挖掘平台搭建_一篇非常棒的安装Python及爬虫入门博文!
原标题:一篇非常棒的安装Python及爬虫入门博文! 一. 大数据及数据挖掘基础(私信小编007即可获取大量Python学习资料!) 第一部分主要简单介绍三个问题: 1.什么是大数据? 2.什么是数据 ...
- 用Jenkins自动化搭建测试环境_jenkins基础搭建_入门试炼02
Jenkins基础: 本篇介绍Jenkins的安装.Jenkins中的常用插件的安装方法.Jenkins用户配置以及提醒邮件的配置. 接上一篇:使用Jenkins搭建自动化测试环境_环境准备_入门试炼 ...
- ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区...
原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一 ...
- Android学习路线_入门篇(一)编写简单的APP
Android学习入门的目标就是能够编写出一个完整的APP,有可交互的界面,有基本的功能,有本地的数据库,有与后台的数据交换.在本文我们会了解到如何在AndroidStudio中新建.运行.打包一个A ...
最新文章
- 智能车竞赛,AI视觉组赛题浅析
- 使用liner、feather、multiband对已经拼接的数据进行融合(下)
- YOLOv3在OpenCV4.0.0/OpenCV3.4.2上的C++ demo实现
- 线程池 ManualResetEvent
- PPT 下载 | 神策数据朱静芸:消费者全渠道精细化运营方案
- 【90】沟通:跨部门管理
- Leetcode-MySQL-180. 连续出现的数字
- 为什么耗资数亿的12306一直都非常难用?
- yarn 常用命令(干干货!)
- SAE实践——用SVN命令行同步/提交代码
- ps 如何制作一寸白底照片
- 矩阵论——矩阵的标准型
- 传说中的蝴蝶效应?--MAC地址克隆竟然惹祸了!
- 教你如何注册到受限的MSN.COM、passport.com账号
- 基于TTP223金属触摸开关电路模块原理图和PCB工程文件
- mac字体渲染精细处理
- FAST上网设置服务器未响应,fast路由器不能上网的解决方法
- 多个系统间是怎么保证统一登录的
- 技术人员必会英语单词
- CSS实现页脚始终在页面底部