当前位置: 首页 > ds >正文

Vivado FPGA 开发 | 创建工程 / 仿真 / 烧录

注:本文为 “Vivado FPGA 开发 | 创建工程 / 仿真 / 烧录” 相关文章合辑。

略作重排,未整理去重。
如有内容异常,请看原文。


Vivado 开发流程(手把手教学实例)(FPGA)

不完美先生 于 2018-04-20 11:38:22 发布

欢迎界面

新建工程

打开 Vivado 软件,在欢迎界面点击 Create New Project,或在开始菜单中选择 File - New Project 即可新建工程。

新建工程

点击 Next

下一步

输入工程名称和路径。

输入工程信息

选择 RTL Project,勾选 Do not specify……(这样可以跳过添加源文件的步骤,源文件可以后面再添加)。

选择项目类型

根据自己的开发板选择器件型号,可以直接通过型号进行搜索。例如,Basys3 开发板上的芯片型号为 xc7a35tcpg236-1。如果不了解或者暂时不确定开发板,可以随便选一个型号,后面需要时再修改。

选择器件型号

点击 Finish,项目新建完成。

项目完成

添加 Verilog 设计文件(Design Source)

Project Manager 窗口中,选择 Source 子窗口,在空白处或任意文件夹上右击,选择 Add Sources

添加源文件

选择 Add or Create Design Sources,点击 Next

选择设计文件

点击 Create File 按钮,在弹出的小窗口中输入文件名,点击 OK

创建文件

可以一次性新建或添加多个文件,最后点击 Finish

完成添加

稍后会弹出定义模块的窗口,也就是刚刚添加的 test 文件。可以在这里设置 test 模块的输入输出端口;或者直接点击 OK,稍后再自行编写。

定义模块

点击 OK 后,如果弹出下面窗口直接点击 Yes

确认操作

test 文件和对应的模块即创建完成,如图。

模块完成

添加 Verilog 仿真文件(Simulation Source)

操作和上一步添加 Verilog 设计文件基本一致,唯一的区别是选择 Add or Create Simulation Sources。我们新建一个名为 simu 的仿真文件。

添加仿真文件

设计文件新建完成后,在 Design SourcesSimulation Sources 中都有,而仿真文件只会出现在 Simulation Sources 文件夹中。设计文件可以用于仿真,也可以用于最终烧写进开发板,而仿真文件仅用于仿真。

文件分类

编写代码

打开 test 模块,编写代码实现一个简单的非门电路如下:

module test (input in,output out
);assign out = ~in;
endmodule

行为仿真(Behavioral Simulation)与 Testbench

为了验证代码是否正确,可以对代码进行行为仿真。我们给上面的 test 模块输入端 in 接入一个时钟信号,则输出端 out 就会产生一个电平相反的时钟信号。

行为仿真时,输入信号可以使用 Testbench 编写。

如果直接修改 test 模块,在其中添加 Testbench 代码,再进行仿真,是一种不太正确的做法。因为 test 模块是设计文件,后面可能会直接烧写进板子。进行仿真时添加了 Testbench 代码,之后再烧写进板子又得删掉 Testbench 代码,这样容易出现错误,而且操作起来也比较麻烦。尤其是接口数量多,内部比较复杂的模块。

因此,我们将 Testbench 代码全部写到仿真文件 simu 中,并在 simu 文件中调用 test 模块,从而进行仿真。

编写仿真代码

simu 模块中编写代码如下:

module simu ();// testbench 时钟信号reg clk = 0;always #10 clk <= ~clk;// 输出信号wire out;// 调用 test 模块test mytest (clk, out);
endmodule

代码说明

  • reg clk = 0 声明了一个 reg 信号,并赋初值为 0
  • always #10 clk <= ~clk 为 Testbench 代码,让 clk 每隔 10 ns 翻转一次,产生周期为 20 ns 的时钟信号。
  • wire out 声明了一个 wire 信号,用于连接到 test 模块的输出。
  • test mytest (clk, out) 调用了前面写好的 test 模块,其中 mytest 是模块名称,这里的 clkout 分别连接了 mytest 模块内部的 inout 信号。

这种写法类似于面向对象的编程语言中,对象的实例化,test 为类名,而 mytest 为对象名称。同样,Verilog 中调用模块时,可以实例化多个 test 对象。

更多 Testbench 的写法请上网搜索相关资料。

行为仿真

右击 simu 模块,选择 Set as Top,将 simu 模块设置为仿真时的顶层模块。顶层模块类似于 C 编程时的入口函数,即 main 函数。main 函数可以调用其他子函数;类似的,顶层模块可以调用其他模块。

设置顶层模块

Flow Navigator 窗口中点击 Run Simulation - Run Behavioral Simulation;或者在菜单中选择 Flow - Run Simulation - Run Behavioral Simulation,即可启动行为仿真。

启动仿真

操作技巧

双击图中右侧的 Untitled 2 标签,可以最大化仿真波形窗口。在波形窗口按住 Ctrl 键并滚动鼠标滚轮,可以横向缩放波形;按住 Shift 并滚动鼠标滚轮,可以横向平移波形。

如图,可以看出 clk 为周期 20 ns 的时钟信号,而 outclk 的电平始终相反,即 test 模块中的非门工作正确。

波形分析

Behavioral Simulation 窗口中的 Scopes 子窗口,根据模块调用关系选中 mytest,在右侧的 Objects 窗口即可看到 test 模块中所有的信号(包括内部信号,即没有写到模块声明语句 module (a,b,c) 括号中的信号)。

右击信号,选择 Add To Wave Window,可将波形添加到右侧的仿真波形窗口,保存仿真文件,再次仿真时就可以看到该信号的波形。

添加波形

对于一些输出数字信号波形的情况,例如让 reg [7:0] sine_out 输出正弦波,仿真后右击信号,选择 Waveform Style - Analog,即可以波形的形式查看信号。如图显示的就是正弦波信号(注意这里信号本身还是数字信号,并不是模拟信号,只是用软件显示出了其幅值随时间变化的波形)。

正弦波显示

对于多位信号例如 wire [7:0] p,默认使用二进制形式显示,可以根据需要修改。例如右击选择 Radix - Unsigned Decimal 即可设置为无符号十进制显示。

信号显示方式


【FPGA】Vivado 基本开发流程

Louis1874 于 2020-07-22 20:37:25 发布

本文为 FPGA 学习总结,欢迎分享交流。

Vivado 软件的使用着实让人头疼,尤其对于新手来说更是一种折磨。本篇文章通过简单的 MUX 程序教你快速简单地掌握 Vivado 基本开发流程。

运行环境

  • Windows 10
  • Vivado 2018.3
  • Modelsim 10.7

创建工程

首先在主页面点击 Create Project 创建一个新的工程:

创建工程

然后点击 Next,默认选择工程名称及路径(路径中最好不要有中文),再点击 Next

然后选择 RTL 工程,勾选 不在此时创建源文件,点击 Next

选择项目类型

在这里我们直接输入器件型号,然后点击我们需要的型号,点击 Next

选择器件型号

然后点击 Finish。工程的创建到此结束。

主界面

主界面各部分用途见下图:

主界面

创建源文件

首先点击 Add Sources,再勾选 添加或创建设计文件,点击 Next

添加设计文件

首先点击 Create File 创建文件,在弹出窗口中选择 Verilog 语言,给文件命名为 mux21a,点击 OK

创建文件

在第一行就可以看到刚才添加的文件,点击 Finish

完成添加

在这个窗口中需要定义模块的输入和输出管脚,我们选择不定义:

定义管脚

这样就创建好了设计源文件:

源文件完成

编程

将下面的代码粘贴到 mux21a.v 文件中:

module mux21a (input wire D0,input wire D1,input wire SEL,output wire LED
);assign LED = (~SEL & D0) | (SEL & D1);
endmodule

代码示例

下面我们还需要创建一个设计源文件作为顶层模块,创建步骤与上面相同。

创建顶层模块

将下面的代码粘贴到 mux21topv.v

module mux21topv (input wire [2:0] sw,output wire led
);mux21a M1 (.D0 (sw [0]),.D1 (sw [1]),.SEL (sw [2]),.LED (led));
endmodule

通过顶层模块调用 mux21a,可以让约束文件的信号和二选一多路选择器模块的信号相连接。

仿真

完成源文件的创建后,我们就可以进行仿真了。仿真是指在综合编译之前对所设计的电路进行基本功能验证,验证设计是否满足需求。在这里我们还需要创建一个仿真文件,首先勾选 创建仿真源文件,点击 Next

创建仿真文件

后面操作与设计源文件相同,不再赘述。

仿真文件完成

将下面的代码粘贴到仿真文件中:

module mux21_simulation ();reg D0, D1, SEL;wire LED;mux21a test ( // 实例化二选一多路选择器模块.D0 (D0),.D1 (D1),.SEL (SEL),.LED (LED));initial begin // 8 种状态作为激励#0 SEL = 0;    // 000D1 = 0;D0 = 0;#100 SEL = 0;    // 001D1 = 0;D0 = 1;#100 SEL = 0;    // 010D1 = 1;D0 = 0;#100 SEL = 0;    // 011D1 = 1;D0 = 1;#100 SEL = 1;    // 100D1 = 0;D0 = 0;#100 SEL = 1;    // 101D1 = 0;D0 = 1;#100 SEL = 1;    // 110D1 = 1;D0 = 0;#100 SEL = 1;    // 111D1 = 1;D0 = 1;#100 $finish;end
endmodule

Testbench 的概念可参考文章 Vivado 仿真。

这时把仿真源文件设置为 top

设置顶层

然后就可以进行仿真了!点击 Run Simulation 后,点击 Run Behavioral Simulation 进行仿真:

启动仿真

点击 Untitled 1 打开仿真波形窗口,点击 Zoom Fit 进行可视化,将 SEL 拖拽到第一个,展示出波形如图:

波形展示

我们对波形进行分析:当 SEL = 0 时,若 D0 = 1,则 LED 输出高电平;当 SEL = 1 时,若 D1 = 1,则 LED 输出高电平。仿真结果表明,我们的设计是正确的。

然后我们就可以在 RTL Analysis 中查看原理图。点击 Open Elaborated Design,再点 OK

查看原理图

双击 Schematic 打开原理图窗口,点击加号可以展开原理图:

原理图

原理图中门电路与硬件描述语言一致:

assign LED = (~SEL & D0) | (SEL & D1);

原理图代码

综合

综合的过程是由 FPGA 综合工具箱将 HDL 原理图或其他形式源文件进行分析,进而推演出由 FPGA 芯片中底层基本单元表示的电路网表的过程。通俗来讲,就是将自己的设计映射到 FPGA 中。

点击左侧的 Run Synthesis 进行综合,点击 OK

启动综合

综合完成后,查看综合后的原理图,点击 OK,下个弹窗点击 YES

查看综合结果

在左侧点击 Schematic 查看综合后的原理图:

综合后原理图

综合后的原理图如下。中间是与器件相关的 LUT

LUT

引脚约束

在综合后我们就可以进行引脚约束了,即指定 FPGA 的引脚。

首先创建引脚约束文件,其添加方式与前面其他文件相同。勾选 添加引脚约束文件

添加约束文件

Basys3 的引脚约束文件粘贴到 mux21_xdc.xdc 中(见 Basys3 开发板 的设计资源下的 Master XDC-zip):

粘贴约束文件

这里面我们需要的引脚是在 Basys3 上的三个开关和一个 LEDsw [0], sw [1], sw [2] 作为三个输入,解开对应注释:

输入引脚

一个引脚为 U16LED 作为 MUX 的输出,解开对应注释:

输出引脚

此时,我们完成了约束文件的创建。我们可以运行实现,点击 Run Implementation,再点 OK

运行实现

耐心等待实现成功后会有弹窗提示,点击 Cancel

实现成功

实现后仿真

FPGA 在门电路形成映射后,需要查看电路的时序分析,是否有产生延时或毛刺,符合要求才能使用。

运行后仿真,点击 Run Simulation,点击 Run Post-Implementation Timing Simulation

启动后仿真

得到后仿真波形图:

后仿真波形

SEL = 0,若 D0 = 1,则 LED 亮;当 SEL = 1,若 D1 = 1,则 LED 亮。注意在 D0 为高电平时,LED 有时会延迟一会才会亮,此处不明显。这里的后仿真与前面的行为仿真不同,可能因为硬件原因而出现延迟。

比特流文件

生成比特流文件后,就可以下载到 FPGA 中,完成 FPGA 的配置。

点击左侧 Generate Bitstream 生成比特流文件:

生成比特流文件

成功后会有弹窗,打开硬件管理:

打开硬件管理

点击 Open target,自动连接:

连接硬件

然后点击 Program

烧录程序

这样就可以将自己的比特流文件下载到 FPGA 中了,随后可以在 Basys3 开发板上验证设计是否正确。至此,Vivado 基本开发流程就结束啦。


Vivado 工程创建(从新建到下板)

筱羊冰冰 于 2020-12-17 09:32:20 发布

新建项目

双击软件,注意是三个菱形的快捷方式,有时可能会看到两个不一样的 Vivado,选择第二个。

软件启动

然后是:

欢迎界面

选择一个地址和项目名称,注意项目名称和路径 不要有中文

项目信息

接下来是选择项目类型,这里注意在 导入不源文件(Do not specify sources at this time) 要选上。

项目类型

然后需要选择器件类型,也就是使用的 FPGA 板子的类型。按自己的板子选,不要照抄。然后搜索和选项卡的筛选会在这个环节帮你省下不少时间。

选择器件

然后一路继续即可。

进入界面

主界面

首先是 source 框,其中有三项是我们经常使用的。

  • 第一部分的蓝笔:是我们写程序的地方。
  • 黄色荧光笔部分:是约束文件,是连接主文件的输入输出和板子上的管脚连接的重要部分。
  • 红色部分:是仿真文件,用于验证代码是否正确。

注意:仿真和最后的综合和实现不大一样,仿真没问题不代表综合和实现过程中会顺利完成。

然后是 source 右侧的代码区,下面是控制台和报错提示(有一些没有用的报错直接用垃圾箱按键删除即可,能删掉的都是没用的)。

最左边是项目需要使用的一些流程。

添加源代码

设计(design)、仿真和约束文件的创建方式基本相同,注意以下几点:

  • 右键点击 source(表示三种 source 中的一个)。
  • 一定要确定好自己要选择的文件类型,有时在对应文件类型下的选项并不是当前的文件类型(可能有一点绕,但遇到了就懂了)。

添加文件

点击加号,选择 Create File,然后为其命名。

创建文件

这样就创建好了:

文件创建完成

点击 Finish 后会有一个弹窗,这是让你选择文件的管脚等信息。因为我们有 约束文件,所以直接关闭即可。

每一种文件的类型在后续小项目中会进行介绍,这里不做赘述。

其他功能(左侧功能介绍)

仿真

仿真可以在一定程度上判断程序的运行是否正确,虽然本文没有关于仿真文件写法的讲述,但还是要介绍这个主要功能的使用。

我们有一个叫 a 的 design 模块,仿真文件 调用了这个模块,所以在仿真区中可以看到 a_sim(仿真文件)下面显示的子文件为 a

仿真文件结构

点击 Run Simulation(左边蓝色部分)。

启动仿真

仿真开始后,我们会看到这样的界面:

仿真界面

最左边的一条是整个工程文件中的设计文件(design),中间框是对应的文件中的变量(输入输出变量和中间变量都有),右边是仿真文件产生的波形,通过这个就能看到程序的运行。

设置中可以调整输出的进制(其实也可以在左侧的 swled 中一个个右键调整)。

调整进制

上面的一行是一些功能,介绍一些常用的:

  • 播放键:表示运行,需要点击 暂停键 截止。
  • 播放键右下角有 m 标记的按键:定时运行,到时间就自动停止,在它右边是设置时间。
  • 黄色荧光笔按键:将整个波形安排在一个窗口上。
  • 红笔的位置:将当前位置调整到开始 / 结束。
  • 黑笔部分:一个变量波形的下一个 / 上一个变化位置,例如当前 sw63,点击 “上一个” 就能达到上一个值的位置。
  • 蓝笔:添加光标位置,这样就可以用两条线来测量时间(在物理仪器中确实蛮常用的)。

仿真功能键

在关闭仿真时(点击图示的位置),会提示你要不要保存仿真波形,如果有需要就保存一下,但会导致整体文件变大很多。

保存波形

综合

接下来部分就是下板三件套了,如果我们希望将一个文件真正的在板子上运行,对你按下的按键或者是拨码开关有反应,那么接下来的步骤就是不可或缺的。

(按照顺序,黄色荧光笔依次为综合、实现和生产比特流,实际应用也是按照这个顺序来进行)

下板流程

综合:将高级抽象层次的语言描述转化成较低层次的电路结构。

我们一定要知道,FPGA 的含义(百度百科截图):

FPGA 定义

我们在编程的过程中,尽管有几种不同层次的书写方式,但这种语言还是属于一种高级语言,也就是说我们可以只写代码,让软件帮我们设计电路图。

(这也是为什么仿真过了有时候下板还是不对,实际的电路图可能因为书写不规范产生一些问题导致)

言归正传,这里还有一个查看管脚分配(个人暂且还没用上):

(在综合和实现之间的 RTL ANALYSIS,点击 Open Elaborated Design

查看管脚分配

实现 & 生产比特流

这两个步骤和上面基本一致,只要进行点击即可,重点是 一定要好好看看弹出的 warning!有时可能确实能生成比特流,但结果并不满意,这时这些报错就很重要了。

下板

当生产比特流成功,会有这样的弹窗,按照图片选择打开硬件。

打开硬件

连接方式:(注意一定要先打开板子的电源)

  • 这种比较快:

    快速连接

  • 这种是在操作栏里面寻找,在左下角 open target

    操作栏连接

然后在选中的部位右键,选择 Program Device,弹出窗口。选择继续。

烧录程序

然后我们的板子就读入比特流,实现了按照我们编程的内容进行工作。

其他细节

快速实现下板三件套

快速操作

在快捷栏里面就有,甚至如果你直接点击比特流,会提醒你没有综合、实现,然后按照提示进行点击直接一步到位。

报错在这里,旁边还有控制台

报错信息

更改背景颜色

更改背景

这里面有很多项可以修改,按照自己的意愿就好,如果有选择困难就上网找一个博客,挑一个搭配好的颜色,个人的调色多少沾点阴间就不展示了。

改完了记得 save as……

最后介绍一下项目的文件构成

项目文件

选中处可以直接打开项目,不需要通过 Vivado;

直接打开项目

这里面是项目源码,source 是源文件,sim 是仿真文件,应该还有一个 constrs_1 文件夹,是约束文件(这里在举例子的时候没写)。

文件分类

这个 sim 是存放项目中仿真波形图的,之前提到过那个可能会导致整个项目变大的波形图。如果是自己可以考虑留一部分,如果是传递文件这部分还是省了吧。(之前见过一个仿真波形图文件达到 600M 的,如果跑的时间长确实很占空间)

有一些应该还有一个 .runs 文件夹的,这里面能找到你生成的比特流文件。(截图是另一个项目的)

比特流文件

如果 没有按照提示的顺序来 或者是 用错了板子导致生成了两份综合实现文件,软件就可能不会自己为你找到 bit 文件的位置,就需要在框中自己选择 bit 文件。

选择 bit 文件


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

xingxing 点灯 已于 2023-08-10 20:15:31 修改

一、概述

Vivado 开发 FPGA 流程分为创建工程、添加设计文件、编译、线上仿真、布局布线(添加约束文件)、生成比特流文件、烧录等步骤,下文将按照这些步骤讲解 Vivado 从创建工程到程序烧录到 FPGA 里的操作流程。

二、工程创建

打开 Vivado 软件后,出现下图:

欢迎界面

选择 Create 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 文件写的有问题,没问题会出现下图的仿真界面:

仿真界面

然后出现的仿真界面观察波形是否有问题,蓝色代表高阻态,红色代表未知态,绿色代表逻辑 01,具体仿真界面的操作本文不再赘述,仿真没有问题以后,说明代码现在不仅没有语法错误,功能同样也没有错误。

五、布局布线

现在代码没有语法错误、功能错误,就可以考虑布局布线了,把具体的输入、输出映射到 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)。

具体设置到什么端口看原理图,电压标准大多数时候选择 LVCMOS33 就好,只有差分等特殊情况选择别的电压标准,这里不再介绍如何查看原理图,不同电压标准的区别。

然后端口、电压标准等设置好以后,键盘按 Ctrl + S 进行约束文件的保存(约束文件里就是刚才对引脚、电压标准等的约束)。

现在,我们设计文件、仿真文件、约束文件就都写好了,可以看一下下面的图:

文件结构

这就是刚才我们创建的设计文件、仿真文件、约束文件,然后再点一次 Run Implementation,因为我们更改了约束文件,所以重新进行一下编译和布局布线操作,具体的对话框的提示都很简单,大概意思就是文件已经改变了是否重新编译这种意思,点击 Yes 重新编译、布局布线就好了,然后布局布线在这里也就结束了。

六、生成比特流文件

现在已经可以生成比特流文件了(这个文件就是烧录到 FPGA 里的文件),点击左侧的 Generate Bitstream,如下图所示:

生成比特流文件

点一些框的 OKYes 之类的,然后生成比特流文件成功(如果不成功,考虑是约束文件的问题,这里不再对约束文件进行太过详细的解释,可以百度约束文件的作用,然后查看自己刚才保存的约束文件是否有问题,通常 Ctrl + S,如果有默认的没有改变的引脚号,它不会保存在约束文件里,自己添加即可)。

七、烧录

接下来就是烧录操作了,点击左侧导航栏的 Open Hardware Manager,然后点击 Open Target 然后点击 Auto Connect 进行连接,如下图所示:

硬件连接

然后点击 Program Device 选择型号:

选择设备

出现下图,直接点 Program 即可:

烧录程序

现在文件就可以烧录到 FPGA 里了,观察上板后的情况即可。


via:

  • vivado工程创建(从新建到下板)_vivado怎么新建工程-CSDN博客
    https://blog.csdn.net/rebortt/article/details/111304264_

  • Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)_vivado烧写程序步骤-CSDN博客
    https://blog.csdn.net/weixin_45676874/article/details/132215573

  • Vivado 开发流程(手把手教学实例)(FPGA)_vivado设计流程示例-CSDN博客
    https://blog.csdn.net/Gentleman_Qin/article/details/80016273

  • 【FPGA】Vivado 基本开发流程_vivado设计流程-CSDN博客
    https://blog.csdn.net/weixin_44413191/article/details/107522317

http://www.xdnf.cn/news/3813.html

相关文章:

  • 2845. 统计趣味子数组的数目
  • 【LLaMA-Factory实战】Web UI快速上手:可视化大模型微调全流程
  • The Sims 4 模拟人生 4 [DLC 解锁] [Steam Epic EA] [Windows SteamOS]
  • 《操作系统真象还原》第十二章(2)——进一步完善内核
  • 影刀RPA中新增自己的自定义指令
  • UDP网络编程
  • Xilinx FPGA | 管脚约束 / 时序约束 / 问题解析
  • 安卓基础(悬浮窗)
  • Java中深拷贝与浅拷贝的深入探讨
  • C++类_虚基类
  • IDEA快速上手Maven项目:模板选择 + 多模块拆分
  • Spring Boot 微服务打包为 Docker 镜像并部署到镜像仓库实战案例
  • 合成复用原则(CRP)
  • IDEA回滚代码操作
  • Windows下调试WebRTC源码
  • BOSS的收入 - 华为OD机试(A卷,C++题解)
  • 昇腾的昇思MindSpore是什么?跟TensorFlow/PyTorch 等第三方框架有什么区别和联系?【浅谈版】
  • c++ 二级指针 vs 指针引用
  • 小土堆pytorch数据加载概念以及实战
  • 【Tauri2】37——后端处理invoke
  • SVM实战:从理论到鸢尾花数据集的分类可视化
  • skynet中的client.socket库函数详解
  • WebRTC 服务器之Janus架构分析
  • 大模型开发的环节
  • AIGC算力消耗白皮书:Stable Diffusion vs Midjourney的架构成本差异
  • 头歌数据库课程实验(索引与数据库完整性)
  • 从零认识阿里云OSS:云原生对象存储的核心价值
  • 解析机器人 2.0.2 | 支持超过50种短视频平台的链接解析,无水印提取,多功能下载工具
  • 华为OD机试真题——智能驾驶(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 什么是函数重载?