目录

<0>设计输入

1、功能描述

2、原理图

<1>新建工程

1、双击Vivado图标,打开界面

2、通过单击 Quick Start 组的 Create Project 来新建一个 Vivado 设计工程

3、出现 Create a New Vivado Project 对话框,单击 Next 按钮

4、 出现Project Name 对话框,填入工程名称以及工程路径(程路径与工程名一定不能包含空格以及中文字符),取消勾选Create project subdirectory 框,单击next

5、出现Project Type 对话框,选择RTL Projiect,并勾选Do not specify at this time,单击 Next

6、出现Default Part对话框,选择所用芯片型号,如xc7A35tfgg484-2,选择完毕后点击Next。

7、出现New Project Summary 对话框,单击Finish,完成工程创建。

<2>添加Verilog源文件(.v)

1.添加源文件,有两种方法,在 Flow Navigator 下,找到 Project Manager 并展开,单击 Project Manager 下的 Add Sources 选项;或者在 Sources 面板下单击 + 按钮。

2、出现 Add Sources 对话框,该对话框界面提供了如下几个选项:

3、出现 Add or Create Design Sources 对话框,如图所示。此时,我们可以通过点击 Add Files 来选择添加本地现有的源文件,或单击 Create File 按钮来创建一个新的源文件。我们选择 Create File 按钮。

4.出现 Create Source File 对话框,如图所示。在该对话框中选择文件的类型和输入文件的名字。参数设置如图所示。单击 OK 按钮。

5.在图Add Sources的对话框中,出现了我们新添加的 mux_2.v 文件。单击界面中 Finish 按钮。在之后跳出的框依次点击OK,Yes。这就完成了一个设计文件的新建。

6.返回到设计主界面中 Sources 面板下,出现了我们新添加了 mux_2.v 文件。

7.双击 Sources 面板下的 mux_2.v 文件,完成你的Verilog代码设计,并保存(或ctrl+s)。以一个二选一多路选择器为例,代码为:

<3>RTL 描述和分析过程( RTL Analysis )

1、在 Flow Navigator 下,找到 RTL Analysis,并展开。单击 Open Elaborated Design,打开Elaborated Design。

2、单击图中的 Schematic,打开 RTL 原理图,RTL 描述与分析阶段后的原理图网表是由与 FPGA 底层部件无关的逻辑符号来体现的。

<4>功能仿真验证:设计激励文件

1.添加testbench文件。在Flow Navigator界面下点击 Add Sources(或者点击+) -> Add or create simulation sources -> Create File,则会出现如下界面,选定文件名(File name),文件类型(File type)。接下来依次点击OK,Finish, OK、yes完成文件的创建。

2.在Sources框找到刚新建的tb文件,双击进行编辑,完成编辑后保存。下图代码为:

3.在Flow Navigator界面下点击 Run Simulation -> Run Behavioral Simultion。如果代码没有错误,则一会儿将会在右边出现如下图所示的波形窗口,使用如图像四周扩展的图像,可以对波形全局预览。

4.在Scope框里,选择模块,其内部信号显示在其右边的Objects框里,可以右击选择Add to wave window,将其添加到波形显示窗口。通过移动黄色的线,可以观察每一个时刻的值。

<5>设计综合( Synthesis )

1.单击 Run Synthesis 开始对设计进行综合。共有三种方式:

2.选择使用的cpu的核心数(核心数越多越好),一般默认,单击 OK 按钮。

3.当综合完成后( 左上角会显示Synthesis Complete ),出现 Synthesis Completed 对话框,选择 Open Synthesis Design 来打开综合后的设计进行观察,单击 OK 按钮。

<6>布局布线

1、IO 约束有两种方式:

2、选择之后会进入 IO 分配界面,根据开发板的说明手册,在I/O Ports给I/O端口分配引脚(Package Pin就是对应的FPGA芯片的引脚)和电平标准(I/O Std)。

3、开发板用的电平均为3.3v。点击每一个端口的下拉三角,选择3.3的电平(直接输入也可以)

4、设置端口管脚位置。点击每一个端口的下拉三角,根据开发板的说明手册,选择相应的管脚(直接输入也可以)进行设置。

5、点击左上角保存按钮(或者ctrl+s),选择OK继续。此时会弹出保存约束文件窗口,设置管脚约束的名字,与工程名保持一致。

6、此时,Sources的Constraints中会出现刚刚建立的管脚设置的文本mux_2.dxc文件。

<7>设计实现

1、在 Flow Navigator 下找到并展开Implementation。单击 Run Implementation 选项,开始执行实现过程。点击求和符号,能够查看实现过程。

2、实现过程完成后会出现如图所示的 Implementation Completed 对话框。选择 Open Implemented Design,单击 OK 按钮。

<8>板级测试:比特流文件的生成与下载

1、在 Flow Navigator 窗口下找到 Program and Debug 选项并展开。单击Generate Bitstream 选项,开始生成比特流文件。

2、比特流文件生成后,会出现如图所示的 Bitstream Generation Completed 对话框,选择 Open Hardware Manager 选项,单击 OK 按钮。

3.在图中,Open Hardware Manager 变为 Hardware Manager;如果没有,则单击Open Hardware Manager 打开 Hardware Manager。

4、在左侧 Open Hardware Manager下,单击Open Target,然后单击 Auto Connect 连接设备(或者在Hardware Manager 界面中,单击Open Target,点击Auto Connect 连接设备)

5、在 Hardware Manager 界面下出现选中的设备。

6、在 Hardware Manager 界面中找到并右键单击 xc7a35t_0(1),在浮动菜单中单击Program Device选项。

7、出现 Program Device 对话框。默认情况下比特流文件会自动选中;如果没有单击“…”按钮,找到并选中 mux_2.bit 文件。在 Program Device 对话框中单击 Program 按钮,开始下载。

8、在开发板上验证该设计。验证方法:程序下载完成后,根据引脚的设置,去查看开发板对应的功能。

Vivado 工程文件的结构

<0>设计输入

1、功能描述

sl为控制信号,a,b为两个输入信号,out为输出信号。当sl为低电平时,输出out=a,当sl为高电平时,输出out=b。

2、原理图

<1>新建工程

1、双击Vivado图标,打开界面

2、通过单击 Quick Start 组的 Create Project 来新建一个 Vivado 设计工程

说明:在 Vivado 的启动界面中分为 Quick Start、Tasks、Learning Center 三组快速入口。其中,
  • Quick Start 组包含有 Create Project(创建工程)、Open Project(打开工程)、Open Example Project(打开实例工程。
  • Tasks 组包含有 Manage IP(管理 IP)、Open Hardware Manager(打开硬件管理器)、Xilinx Tcl Store(Tcl 脚本存储库。
  • Learning Center 组包含有 Documentation and Tutorials(文档和教程)、Quick Take Videos(快速上手视频)、Release Notes Guide(发布注释向导。

3、出现 Create a New Vivado Project 对话框,单击 Next 按钮

4、 出现Project Name 对话框,填入工程名称以及工程路径(程路径与工程名一定不能包含空格以及中文字符),取消勾选Create project subdirectory 框,单击next

5、出现Project Type 对话框,选择RTL Projiect,并勾选Do not specify at this time,单击 Next

6、出现Default Part对话框,选择所用芯片型号,如xc7A35tfgg484-2,选择完毕后点击Next。

7、出现New Project Summary 对话框,单击Finish,完成工程创建。

<2>添加Verilog源文件(.v)

1.添加源文件,有两种方法,在 Flow Navigator 下,找到 Project Manager 并展开,单击 Project Manager 下的 Add Sources 选项;或者在 Sources 面板下单击 + 按钮。

2、出现 Add Sources 对话框,该对话框界面提供了如下几个选项:

  • Add or Create Constraints(添加或者创建约束);
  • Add or Create Design Sources(添加或者创建设计源文件);
  • Add or Create Simulation Sources(添加或者创建仿真文件);
在此。我们需要的是创建 Verilog HDL 源文件,因此选中第二项 Add or Create Design Source 前面的单选按钮。单击 Next 按钮。

3、出现 Add or Create Design Sources 对话框,如图所示。此时,我们可以通过点击 Add Files 来选择添加本地现有的源文件,或单击 Create File 按钮来创建一个新的源文件。我们选择 Create File 按钮。

4.出现 Create Source File 对话框,如图所示。在该对话框中选择文件的类型和输入文件的名字。参数设置如图所示。单击 OK 按钮。

5.在图Add Sources的对话框中,出现了我们新添加的 mux_2.v 文件。单击界面中 Finish 按钮。在之后跳出的框依次点击OK,Yes。这就完成了一个设计文件的新建。

6.返回到设计主界面中 Sources 面板下,出现了我们新添加了 mux_2.v 文件。

7.双击 Sources 面板下的 mux_2.v 文件,完成你的Verilog代码设计,并保存(或ctrl+s)。以一个二选一多路选择器为例,代码为:

module mux_2(a,b,sel,out);
    input a; 
    input a; 
    input sel; 
    output out; 

    assign out=sel?a;b;
endmodule

<3>RTL 描述和分析过程( RTL Analysis )

RTL 描述与分析功能可以对工程的 RTL 结构、语法进行查看,进而可以分析并修正逻辑上的错误。 将用户的输入设计细化成逻辑电路

1、在 Flow Navigator 下,找到 RTL Analysis,并展开。单击 Open Elaborated Design,打开Elaborated Design。

2、单击图中的 Schematic,打开 RTL 原理图,RTL 描述与分析阶段后的原理图网表是由与 FPGA 底层部件无关的逻辑符号来体现的。

<4>功能仿真验证:设计激励文件

在完成RTL设计之后,我们先需要对其做仿真来验证其功能的正确性。这里先需要添加testbench文件,来给设计输入测试激励。

1.添加testbench文件。在Flow Navigator界面下点击 Add Sources(或者点击+) -> Add or create simulation sources -> Create File,则会出现如下界面,选定文件名(File name),文件类型(File type)。接下来依次点击OK,Finish, OK、yes完成文件的创建。

2.在Sources框找到刚新建的tb文件,双击进行编辑,完成编辑后保存。下图代码为:

`timesacle 1ns/1ns 
module mux_2_tb; 
  reg a;
  reg b; 
  reg sel; 
  wire out; 

  mux_2 mux_2_inst( .a(a), .b(b), .sel(sel), .out(out) ); 

 initial begin  
 a=0;b=0;sel=0; 
 #200; a=0;b=0;sel=1; 
 #200; a=0;b=1;sel=0; 
 #200; a=0;b=1;sel=1; 
 #200; a=1;b=0;sel=0; 
 #200; a=1;b=0;sel=1; 
 #200; a=1;b=1;sel=0; 
 #200; a=1;b=1;sel=1; 
 #200; 
 $stop;
 end 
endmodule

3.在Flow Navigator界面下点击 Run Simulation -> Run Behavioral Simultion。如果代码没有错误,则一会儿将会在右边出现如下图所示的波形窗口,使用如图像四周扩展的图像,可以对波形全局预览。

4.在Scope框里,选择模块,其内部信号显示在其右边的Objects框里,可以右击选择Add to wave window,将其添加到波形显示窗口。通过移动黄色的线,可以观察每一个时刻的值。

<5>设计综合( Synthesis )

1.单击 Run Synthesis 开始对设计进行综合。共有三种方式:

  • Flow Navigator 窗口下,单击 Run Synthesis ;
  • Flow Navigator 窗口下,找到 Synthesis 并展开,单击 Run Synthesis ;
  • Report下方的绿色小三角,下拉,单击 Run Synthesis ;

2.选择使用的cpu的核心数(核心数越多越好),一般默认,单击 OK 按钮。

3.当综合完成后( 左上角会显示Synthesis Complete ),出现 Synthesis Completed 对话框,选择 Open Synthesis Design 来打开综合后的设计进行观察,单击 OK 按钮。

<6>布局布线

Synthesis结束之后,并且在Open Synthesized Design之后。用户可通过 I/O Planner 进行 IO 约束。

1、IO 约束有两种方式:

  • 第一种,在界面右上角选择I/O Planning;
  • 第二种,在菜单栏视图处下拉 I/O Planning view 点击进入 IO 规划视图界面

2、选择之后会进入 IO 分配界面,根据开发板的说明手册,在I/O Ports给I/O端口分配引脚(Package Pin就是对应的FPGA芯片的引脚)和电平标准(I/O Std)。

3、开发板用的电平均为3.3v。点击每一个端口的下拉三角,选择3.3的电平(直接输入也可以)

4、设置端口管脚位置。点击每一个端口的下拉三角,根据开发板的说明手册,选择相应的管脚(直接输入也可以)进行设置。

5、点击左上角保存按钮(或者ctrl+s),选择OK继续。此时会弹出保存约束文件窗口,设置管脚约束的名字,与工程名保持一致。

6、此时,Sources的Constraints中会出现刚刚建立的管脚设置的文本mux_2.dxc文件。

<7>设计实现

1、在 Flow Navigator 下找到并展开Implementation。单击 Run Implementation 选项,开始执行实现过程。点击求和符号,能够查看实现过程。

2、实现过程完成后会出现如图所示的 Implementation Completed 对话框。选择 Open Implemented Design,单击 OK 按钮。

<8>板级测试:比特流文件的生成与下载

将 Vivado 实现产生的网表文件转化为比特流文件,并且将比特流文件下载到 FPGA 芯片中。比特流文件用于完成对 FPGA 进行配置。

1、在 Flow Navigator 窗口下找到 Program and Debug 选项并展开。单击Generate Bitstream 选项,开始生成比特流文件。

2、比特流文件生成后,会出现如图所示的 Bitstream Generation Completed 对话框,选择 Open Hardware Manager 选项,单击 OK 按钮。

3.在图中,Open Hardware Manager 变为 Hardware Manager;如果没有,则单击Open Hardware Manager 打开 Hardware Manager。

4、在左侧 Open Hardware Manager下,单击Open Target,然后单击 Auto Connect 连接设备(或者在Hardware Manager 界面中,单击Open Target,点击Auto Connect 连接设备)

5、在 Hardware Manager 界面下出现选中的设备。

6、在 Hardware Manager 界面中找到并右键单击 xc7a35t_0(1),在浮动菜单中单击Program Device选项。

7、出现 Program Device 对话框。默认情况下比特流文件会自动选中;如果没有单击“…”按钮,找到并选中 mux_2.bit 文件。在 Program Device 对话框中单击 Program 按钮,开始下载。

8、在开发板上验证该设计。验证方法:程序下载完成后,根据引脚的设置,去查看开发板对应的功能。

Vivado 工程文件的结构

上述步骤建立好工程后,自动生成的文件
project_name.cache:Vivado 软件的运行缓存
project_name.hw:所有波形文件
project_name.ip_user_files:用户关于 IP 的文件
project_name.runs:编译与综合结果,.\impl_1 文件夹中的.bin 和 .bit 即为编译生成的可执行文件
project_name.sdk:SDK 环境代码,一般是 ZYNQ 设计中关于 PS 端的代码
project_name.sim:仿真结果
project_name.srcs:所有用户编写的源码、仿真文件与约束文件
project_name.tmp:自制 IP 核时的临时工程文件夹,IP 核设计完成后会自动清理
project_name.xpr:Vivado 工程启动文件
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐