Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)

目录
一、概述
二、工程创建
三、添加设计文件并编译
四、线上仿真
五、布局布线
六、生成比特流文件
七、烧录

一、概述
vivado开发FPGA流程分为创建工程、添加设计文件、编译、线上仿真、布局布线(添加约束文件)、生成比特流文件、烧录等步骤,下文将按照这些步骤讲解vivado从创建工程到程序烧录到FPGA里如何操作。
二、工程创建
打开Vivado软件后,出现下图:
在这里插入图片描述

上图选择creat project后,出现下图:

在这里插入图片描述

上图选择next后,出现下图:
在这里插入图片描述
上图在project name 中修改文件名称(名称和路径最好不要有中文),然后点击next后出现下图:

在这里插入图片描述

上图继续点击next,出现下图:
在这里插入图片描述
上图中,文件的添加和创建后面可以进行,这里可以直接点击next,然后出现下图:
在这里插入图片描述

上图中,约束文件后面也可以添加,所以继续点击next,出现下图:

在这里插入图片描述
上图中,选择对应的FPGA的型号以后点击next,出现下面的总结图:
在这里插入图片描述
上图中,点击finish,空的工程就创建完毕了
三、添加设计文件并编译

空的工程创建完毕后,如下图所示,点击➕按钮,添加verilog文件
在这里插入图片描述

然后下图里,我们现在在创建设计文件,所以默认的第二个就好,然后点击next
在这里插入图片描述
然后出现下图:
在这里插入图片描述
这里点击Create File,有的vivado会出现下面的图片,有的不出现,如果出现下面的图片,起一个名字,创建verilog HDL文件(也可以点击Add Files,添加已有文件,这里以创建新的文件为例)
在这里插入图片描述

上图中,选择名字和文件位置,然后点击ok,位置默认情况会放在工程文件夹下,点击ok,出现下图:
在这里插入图片描述
上图表示一个设计文件已经添加成功了,然后可以继续上述创建文件的操作,直到创建完毕,然后点击finish,出现下图:
在这里插入图片描述
上图点击ok,出现下图:
在这里插入图片描述
上图点击yes,这个时候一个空的文件就创建好了,然后写verilog代码(可以在vivado里编辑,也可以在其他的文字编辑器,诸如VSCODE、notepad++、电脑自带的txt文本等进行代码编辑,具体用什么进行编辑这里不再赘述),下图是代码已经写完的情况
在这里插入图片描述
写完代码以后,就要进行编译操作了,点击左侧导航栏的RUN Synthesis进行编译,这个编译在哪可以参考下图:
在这里插入图片描述
然后出现下图,点击ok
在这里插入图片描述
此时正在进行编译操作(具体vivado编译、布局布线、生成比特流文件都是什么意思,有什么意义,这里不再赘述,本文主要是讲解vivado开发FPGA的操作流程,流程的意义不再赘述),编译是否完成可以在下图所示的位置查看:
在这里插入图片描述
编译成功后,有的会出现下图所示的提示,有的不会出现,出现的话可以点×关掉这个提示框(编译不成功会报错,此时说明代码有问题,具体如何解决代码中出现的问题本文不再赘述),此时编译已经结束,说明verilog代码没有出现语法上的错误
在这里插入图片描述

四、线上仿真
三的操作只是写了代码,并且代码没有语法错误,但是不代表代码的功能也和预期一样,这个时候需要进行功能验证,也就是进行线上仿真。
第一步还是添加文件,三里添加的是设计文件,这次要添加仿真文件,也叫tb文件,还是点击+,然后选择第三个选项(仿真文件),如下图所示:
在这里插入图片描述
具体点了next以后怎么操作参考三里怎么添加的设计文件,流程一模一样,只是一个添加的是设计文件,一个添加的是仿真文件,这里不再赘述
同样,仿真文件添加完以后要写对应的代码,代码写完以后进行仿真,具体点哪里进行仿真可以参考下图:
在这里插入图片描述
如果报错,说明tb文件写的有问题,没问题会出现下图的仿真界面:
在这里插入图片描述

然后出现的仿真界面观察波形是否有问题,蓝色代表高阻态,红色代表未知态,绿色代表逻辑0或1,具体仿真界面的操作本文不再赘述,仿真没有问题以后,说明代码现在不仅没有语法错误,功能同样也没有错误。
五、布局布线
现在代码没有语法错误、功能错误,就可以考虑布局布线了,把具体的输入、输出映射到FPGA对应的引脚上,操作如下所示:
点击左侧导航栏的Run Implementation,让vivado先自动进行布局布线,点哪里可以参考下图:

在这里插入图片描述
等待一段时间,成功以后出现下面的框:
在这里插入图片描述

可以×掉上面的框,在左侧导航栏打开Open Implemented Design,也可以点击上图的Open Implemented后点击OK
打开布局布线设计以后,出现下面的图
在这里插入图片描述
上图选择I/O ports,如果找不到,就点击layout,再点击I/O planning(注意,只有open implementation时才可以在layout里找到I/O planning)
然后如下图,点击scalar ports,进行引脚约束
在这里插入图片描述
在上图里,在Scalar ports 更改端口的位置(Package Pin)、以及电压标准(I/O Std)
具体设置到什么端口看原理图,电压标准大多数时候选择LVCOMS33就好,只有差分等特殊情况选择别的电压标准,这里不再介绍如何查看原理图,不同电压标准的区别
然后端口、电压标准等设置好以后,键盘按ctrl+s进行约束文件的保存(约束文件里就是刚才对引脚、电压标准等的约束)
现在,我们设计文件、仿真文件、约束文件就都写好了,可以看一下下面的图:
在这里插入图片描述
这就是刚才我们创建的设计文件、仿真文件、约束文件,然后再点一次Run Implementation,因为我们更改了约束文件,所以重新进行一下编译和布局布线操作,具体的对话框的提示都很简单,大概意思就是文件已经改变了是否重新编译这种意思,点击yes重新编译、布局布线就好了,然后布局布线在这里也就结束了
六、生成比特流文件
现在已经可以生成比特流文件了(这个文件就是烧录到FPGA里的文件),点击左侧的Generate Bitstream,如下图所示:
在这里插入图片描述
点一些框的ok、yes之类的,然后生成比特流文件成功(如果不成功,考虑是约束文件的问题,这里不再对约束文件进行太过详细的解释,可以百度约束文件的作用,然后查看自己刚才保存的约束文件是否有问题,通常ctrl+s,如果有默认的没有改变的引脚号,它不会保存在约束文件里,自己添加即可)
七、烧录
接下来就是烧录操作了,点击左侧导航栏的Opmen Hardware Manager,然后点击Open Target 然后点击 Auto Connect进行连接,如下图所示:

在这里插入图片描述
然后点击Program Device 选择型号
在这里插入图片描述
出现下图,直接点program就好
在这里插入图片描述
现在文件就可以烧录到FPGA里了,观察上板后的情况即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/254211.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

MySQL之体系结构

华子目录 MySQL简介MySQL的特性MySQL版本MySQL常见版本 数据库排名网站MySQL结构体系查看最大连接数查询缓存配置情况 一条SQL语句执行流程 MySQL简介 MySQL是一个小型关系数据库管理系统&#xff0c;开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年…

IntelliJ IDE 插件开发 | (六)内部模式的使用

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;来查收…

Oracle systemstate、gdb、dbx介绍

当数据库出现严重的性能问题或者hang了的时候&#xff0c; 可能最常用的办法就是重启数据库&#xff0c;简单有效解决问题&#xff1b;但是重启后如何追踪问题的根本原因成了难题&#xff0c;很多信息随着重启也消失不见了&#xff0c;让追查问题变的十分棘手&#xff0c;这时就…

Spring第二天

一、第三方资源配置管理 说明&#xff1a;以管理DataSource连接池对象为例讲解第三方资源配置管理 1 管理DataSource连接池对象 问题导入 配置数据库连接参数时&#xff0c;注入驱动类名是用driverClassName还是driver&#xff1f; 1.1 管理Druid连接池【重点】 数据库准备…

Android 识别车牌信息

打开我们心爱的Android Studio 导入需要的资源 gradle //开源车牌识别安卓SDK库implementation("com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3")button.setOnClickListener(v -> {Log.d("Test", "");try (InputStream file getAs…

#Z0458. 树的中心2

题目 代码 #include <bits/stdc.h> using namespace std; struct ff {int z,len; }; vector<ff> vec[300001]; int n,u,v,w,dp[300001][2],ans 1e9; void dfs(int x,int fa) {for(int i 0;i < vec[x].size();i){ff son vec[x][i];if(son.z ! fa){dfs(son.z,…

搭建macOS开发环境-1:准备工作

请记住&#xff1a; 最重要的准备工作永远是&#xff1a;备份数据 !!! 通过图形界面检查 Mac 的 CPU 类型&#xff1a; 在搭载 Apple 芯片的 Mac 电脑上&#xff0c;“关于本机”会显示一个标有“芯片”的项目并跟有相应芯片的名称&#xff1a; 通过命令行检查Mac的CPU类型 …

ASP.NET Core 预防开放式重定向攻击

写在前面 为预防钓鱼网站的常用套路&#xff0c;在进行 Web 应用程序的开发时&#xff0c;原则上应该将所有由用户提交的数据视为不可信。如果应用程序中包含了基于 URL 内容重定向的功能&#xff0c;需要确保这种类型的重定向操作只能在应用本地完成&#xff0c;或者明确判断…

构造回文数组

目录 原题描述&#xff1a; 题目描述 时间&#xff1a;1s 空间&#xff1a;256M 题目描述&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 样例1输入&#xff1a; 样例1输出&#xff1a; 样例2输入&#xff1a; 样例2输出&#xff1a; 约定&#xff1a; 作…

《幻兽帕鲁》攻略:0基础入门及游戏基础操作 幻兽帕鲁基础设施 幻兽帕鲁基础攻击力 Mac苹果电脑玩幻兽帕鲁 幻兽帕鲁加班加点

今天就跟大家聊聊《幻兽帕鲁》攻略&#xff1a;0基础入门及游戏基础操作。 如果想在苹果电脑玩《幻兽帕鲁》记得安装CrossOver哦。 以下纯干货&#xff1a; CrossOver正版安装包&#xff08;免费试用&#xff09;&#xff1a;https://souurl.cn/Y1gDao 一、基础操作 二、界面…

(45)执行操作后的变量值

文章目录 每日一言题目解题思路代码结语 每日一言 与其临渊羡鱼&#xff0c;不如退而结网。——《史记汉书董仲舒传》 题目 题目链接&#xff1a;执行操作后的变量值 存在一种仅支持 4 种操作和 1 个变量 X 的编程语言&#xff1a; X 和 X 使变量 X 的值 加 1 –X 和 X-- 使…

Allegro如何把Symbols,shapes,vias,Clines,Cline segs等多种元素一起移动

Allegro如何把Symbols,shapes,vias,Clines,Cline segs等多种元素一起移动 在用Allegro进行PCB设计时,有时候需要同时移动某个区域的所有元素,如:Symbols,shapes,vias,Clines,Cline segs等元素。那么如何操作呢? 首先就是把Symbols,shapes,vias,Clines,Cline …

【机器学习笔记】机器学习基本概念

机器学习基本概念 文章目录 机器学习基本概念1 概述2 机器学习实验方法与原则2.1 平均指标 2.2 训练集、验证集与测试集2.3 随机重复实验2.4 K折交叉验证2.4 统计有效性检验 1 概述 什么是机器学习 —— 在某种任务上基于经验不断进步 T (Task)&#xff1a;需要解决什么任务 P(…

LLaMA 模型中的Transformer架构变化

目录 1. 前置层归一化&#xff08;Pre-normalization&#xff09; 2. RMSNorm 归一化函数 3. SwiGLU 激活函数 4. 旋转位置嵌入&#xff08;RoPE&#xff09; 5. 注意力机制优化 6. Group Query Attention 7. 模型规模和训练超参数 8. 分布式模型训练 前置归一化与后置…

改进神经网络

Improve NN 文章目录 Improve NNtrain/dev/test setBias/Variancebasic recipeRegularizationLogistic RegressionNeural networkother ways optimization problemNormalizing inputsvanishing/exploding gradientsweight initializegradient checkNumerical approximationgrad…

设计模式-行为型模式(下)

1.访问者模式 访问者模式在实际开发中使用的非常少,因为它比较难以实现并且应用该模式肯能会导致代码的可读性变差,可维护性变差,在没有特别必要的情况下,不建议使用访问者模式. 访问者模式(Visitor Pattern) 的原始定义是&#xff1a; 允许在运行时将一个或多个操作应用于一…

【华为云】云上两地三中心实践实操

写在前面 应用上云之后&#xff0c;如何进行数据可靠性以及业务连续性的保障是非常关键的&#xff0c;通过华为云云上两地三中心方案了解相关方案认证地址&#xff1a;https://connect.huaweicloud.com/courses/learn/course-v1:HuaweiXCBUCNXI057Self-paced/about当前内容为华…

react将选中文本自动滑动到容器可视区域内

// 自动滚动到可视区域内useEffect(() > {const target ref;const wrapper wrapperRef?.current;if (target && wrapperRef) {const rect target.getBoundingClientRect();const wrapperRect wrapper.getBoundingClientRect();const isVisible rect.bottom &l…

2. Maven 继承与聚合

目录 2. 2.1 继承 2.2继承关系 2.2.1 思路分析 2.2.2 实现 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 maven1&#xff1a;分模块设计开发 2. 在项目分模块开发之后啊&#x…