vivado使用方法

article/2025/10/7 10:39:03

一、新建工程 
首先打开vivado2017.4 
 

点击create project 

点击next 

为新建的工程起名字,路径和名字都不要有中文 
起好名字后点击next 

起好名字后点击next 

选择RTL project,勾选do not specify sources at this time,表示以后再配置资源文件 
选好了之后点击next 

输入你的FPGA板的型号,我的是xc7a100tcsg424 

然后点击next 

finish之后,如图所示,可以配置语言,这里选择的是VHDL 

然后我们开始新建/添加文件,点击+ 
 

 

选择add or create design sources 


 


 
 
双击你所建立的source之后,就可以开始写程序了 
二、写程序 

 

在这里我提供一个简单的程序

library IEEE; 
use IEEE.STD_LOGIC_1164.ALL;

entity test is 
Port ( 
led:out std_logic; 
switch:in std_logic 
); 
end test;

architecture Behavioral of test is

begin 
process(switch) 
begin 
if switch=’1’ then 
led<=’1’; 
else 
led<=’0’; 
end if; 
end process;

end Behavioral; 
 

然后我们开始写仿真程序 
同样建立一个仿真文件 
 

仿真文件的命名通常为test_bench 
 
这里我也提供对应的仿真程序,以供参考

 

library IEEE; 
use IEEE.STD_LOGIC_1164.ALL;

entity test_bench is 
end test_bench;

architecture Behavioral of test_bench is 
component test port( 
led :out std_logic; 
switch:in std_logic); 
end component; 
signal led:std_logic:=’0’; 
signal switch:std_logic:=’0’; 
begin 
dut:test port map( 
led=>led,switch=>switch 
); 
process 
begin 
switch<=’1’; 
wait for 10ms; 
switch<=’0’; 
wait for 10ms; 
end process; 
end Behavioral;
写完之后点击保存 

三、仿真 
然后开始仿真 
 
 
仿真界面的上方有三个键:a是重新开始仿真,b是开始仿真直到点击break(F5),c是仿真指定的时间,

我这里设置的是100ms 
 
点击红色圆圈里的是看到所有仿真波形 

仿真波形没有错误,开始综合 
四、综合 
点击 run synthesis,等待一段时间 
 
跳出一个对话框,点击cancel 
六、约束 

如果你没有现成的约束文件,就自己约束了 
先点击 open synthsized design 
 

打开开发板的使用指南 

例如:我想约束为 
led对应LD0(H17) 

switch对应switch0(J15) 

约束之后,保存CTRL+S,跳出来对话框,点击确定 
然后为约束文件命名 
 
然后重新执行综合 
七、实现以及生成二进制文件 
实现 
 
生成二进制文件 
 
然后 open hardware manager 
点击open target 
点击device program 
程序下载完毕后观察实验现象 
--------------------- 
作者:qq_40033089 
来源:CSDN 
原文:https://blog.csdn.net/qq_40033089/article/details/82693492 
版权声明:本文为博主原创文章,转载请附上博文链接!


http://chatgpt.dhexx.cn/article/oScTy5S8.shtml

相关文章

【vivado UG学习】Synthesis策略学习

目录 1.1 综合方法1.2 使用Sythesis1.2.1 Sythesis设置1.2.2 创建运行策略1.2.3 控制文件编译顺序 1.2 运行Synthesis1.2.1 使用Tcl运行Synthesis1.2.2 RTL synthesis的多线程处理 参考文档 综合是将rtl指定的设计转换为门级表示的过程 1.1 综合方法 Vivado&#xff0c;可以&…

vivado filemgmt 20-2001

这个问题可能和vivado的打开路径有关&#xff0c;最好在工程路径下的shell中打开vivado在选择当前工程&#xff0c; 实测我遇到这个现象就是这个问题&#xff1a; 换到当前工程目录后&#xff1a;vivado在打开的位置都会生成一些log/jou文件等 参考&#xff1a; Xilinx Custo…

vivado 和 modesim 联合仿真快速修改重仿

vivado与modelsim的联合仿真(一)_坚持-CSDN博客_modelsim和vivado 1 编译联合仿真库 tool → compile_simulation_libraries &#xff0c;选择simulator 为 modelsim simulator&#xff0c;填写好 compiled library location(联合库存放地址)&#xff0c;simulator ex…

Vivado设置

1.本文部分素材来源网络&#xff0c;版权归原作者所有&#xff0c;如涉及作品版权问题&#xff0c;请与我联系删除&#xff1b; 2.未经原作者允许不得转载本文内容&#xff0c;否则将视为侵权&#xff1b; 3.转载或者引用本文内容请注明来源及原作者&#xff1b; 4.对于不遵…

vivado常见IP介绍

转自&#xff1a;微信公众号&#xff1a;Lauren的FPGA 目前&#xff0c;越来越多的工程师会用到Vivado IP Integrator&#xff08;IPI&#xff09;。它的强大之处在于通过实例化和互连IP构建复杂的设计。现在的IPI中&#xff0c;不仅可以添加Vivado IP&#xff0c;还可以添加用…

vivado工程打包

一般使用自带archive功能进行归档&#xff0c;但是归档的工程路径较乱&#xff0c;不能将源文件和工程进行明显的分析。一种比较常用的方法就是使用tcl脚本&#xff1a; 现在已经有了生成的语法模板&#xff0c;需要在修改下自己需要的新工程名称&#xff0c;并去掉一些不需要的…

使用vivado封装IP

文章目录 Basics定制IP的参数Enablement Expression封装IP时使用了绝对路径封装IP时设置Address Map Addr相关tcl修正警告Bus Interface clk: ASSOCIATED_BUSIF bus parameter is missing.rst识别成低有效复位Bus Interface up_axi: FREQ_HZ bus parameter missing from AXI in…

vivado使用方法(初级)

文章目录 1 创建新工程1.1 工程创建1.2 新建Verilog文件1.3 仿真 参考 1 创建新工程 1.1 工程创建 1、首先打开Vavido软件&#xff0c;点击Creat Project或者在File——>Project——>New里面进行新工程的创建 2、然后在弹出的界面上点击Next进入下一个界面进行项目的命…

Vivado基础教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、创建项目二、添加设计文件代码 三、综合四、添加约束文件五、上板5.1、生产比特流文件5.2、硬件调试 前言 本文详细的讲述了vivado项目创建到上板的流程。…

vivado基本使用流程(详细版,一步步跟着来一定能成功)

创建工程 1、 2 3、项目名称不能有空格&#xff0c;目录不能含有中文路径 4、 5、 6、 7、 8、 9、 10、 11、 12、 13、 14、 15、 16、 可以查看一下新建的文件 二、设置IP核 1、 2、 3、 4、 5、 6、 7、 可以查看到生成的ip核 8、 找到例化模板&#xff0c;日常…

虚拟基类

对于虚拟基类的个人理解&#xff0c;如有误恳请指正。 1.不用虚拟基类 class cBase_A{int x; public:cBase_A( ){x10;}int getx(){return x;}void setx(int a){xa;}};class cBase_B: public cBase_A{ };class cBase_C: public cBase_A{ };class cDerived_D: public cBase_B…

系统调用。

什么是系统调用&#xff0c;有何作用&#xff1f; 生活场景:你去学校打印店打印论文&#xff0c;当你按下“打印”之后&#xff0c;打印机开始工作。你的论文打印到一半时&#xff0c;另一位同学按下了“打印”按钮开始打印他自己的论文。最终&#xff0c;你的论文和该同学的论…

C++ 基础之虚函数和虚基类

C 基础之虚函数和虚基类 C 有别于 C ,比较重要的就是其抽象、封装、继承和多态等特性。多态又具体地体现在重载、虚函数和模板等等之上。 今天就和大家聊一聊虚函数和虚基类。 虚函数 我们来思考一个问题。假如子&#xff08;派生&#xff09;类 B 继承自父&#xff08;基&…

虚基类 的作用

虚基类 需要解决的问题 当派生类从多个基类派生&#xff0c;而这些基类又共同基类&#xff0c;则在访问此共同基类中的成员时&#xff0c;将产生冗余&#xff0c;并有可能因冗余带来不一致性虚基类声明 以virtual说明基类继承方式例&#xff1a;class B1:virtual public B作用…

虚基类的作用

1 概念 首先还是先给出虚继承和虚基类的定义。虚继承&#xff1a;在继承定义中包含了virtual关键字的继承关系&#xff1b; 虚基类&#xff1a;在虚继承体系中的通过virtual继承而来的基类&#xff0c;需要注意的是&#xff1a; CSubClass : public virtual CBase {}; 其中CB…

系统调用:系统调用的实现

7.3.3 系统调用的实现 1. 中断和陷入硬件机构 (1) 什么是中断和陷入。 中断是指CPU对系统发生某事件时的这样一种响应&#xff1a;CPU暂停正在执行的程序&#xff0c;在保留现场后自动地转去执行该事件的中断处理程序&#xff1b;执行完后&#xff0c;再返回到原程序的断点处继…

系统调用、函数调用

1、系统调用 操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性&#xff0c;为了达到这个目的&#xff0c; 内核提供一系列具备预定功能的多内核函数&#xff0c;通过一组称为系统调用&#xff08;system call)的接口呈现给…

C++ 虚基类

C 虚基类 概述多重继承的问题虚基类初始化例子 总结 概述 虚基类 (virtual base class) 是用关键字 virtual 声明继承的父类. 多重继承的问题 N 类: class N { public:int a;void display(){cout << "A::a" << a <<endl;} };A 类: class A :…