ZYNQ之FPGA学习----Vivado软件使用

1 Vivado软件使用

Vivado Design Suite 是 Xilinx 公司的综合性 FPGA 开发软件,可以完成从设计输入到硬件配置的完整FPGA 设计流程。Vivado学习使用版本为Vivado v18.3

Vivado软件使用流程:

  • 新建工程
  • 设计输入
  • 分析与综合
  • 约束输入
  • 设计实现
  • 生成和下载比特流

1.1 新建工程

Vivado软件启动界面如图所示,点击Create Project新建工程:

在这里插入图片描述

直接点击Next,如图所示:

在这里插入图片描述

输入工程的名称和路径,工程路径不能包含中文、空格或者其它一些特殊的符号,如图所示:

在这里插入图片描述

默认勾选了Create project subdirectory选项,Vivado 会在所选工程目录下自动创建一个与工程名同名的文件夹,用于存放工程内的各种文件。继续点击Next,选择RTL Project,如图所示:

在这里插入图片描述

  • RTL Project 是指按照正常设计流程所选择的类型,是常用的一种类型,Do not specify sources at this time用于设置是否在创建工程向导的过程中添加设计文件
  • Post-synthesis Project 在导入第三方工具所产生的综合后网表时才选择
  • I/O Planning Project 一般用于在开始 RTL 设计之前,创建一个用于早期IO 规划和器件开发的空工程
  • Imported Project 用于从 ISE、XST 或 Synopsys Synplify 导入现有的工程源文件
  • Example Project 是指创建一个 Vivado 提供的工程模板

然后,进入添加源文件界面,如图所示,直接点击Next,创建完工程后再创建或添加源文件:

在这里插入图片描述

然后是添加约束文件,如图所示,直接点击Next,创建完工程后再创建或添加约束文件:

在这里插入图片描述

然后选择开发板的芯片型号,核心板是ZYNQ-7070,故输入xc7z020clg400-2,如图所示:

在这里插入图片描述

最后进入工程概览界面,直接点击Finish完成工程的创建,如图所示:

在这里插入图片描述

Vivado的工程主界面,如图所示:

在这里插入图片描述

  • Flow Navigator: 提供对命令和工具的访问,包括从设计输入到生成比特流的整个过程
  • 数据窗口区域: 默认情况,该区域显示设计源文件和数据相关的信息。1、Sources窗口,显示层次结构(Hierarchy)、IP源文件(IP Sources)、库(Libraries)和编译顺序(Compile Order)的视图。2、 Netlist窗口,提供分析后的(elaborated)或综合后(synthesized)逻辑设计的分层视图
  • Properties窗口: 显示有关所选逻辑对象或器件资源的特性信息
  • 工作空间(Workspace): 工作区显示了具有图形界面的窗口和需要更多屏幕空间的窗口。1、 Project Summary 提供当前工程的摘要信息,它在运行设计命令时动态地更新。2、用于显示和编辑基于文本的文件和报告的 Text Editor。3、原理图(Schematic)窗口。4、器件(Device)窗口。5、封装(Package)窗口
  • 结果窗口区域: 运行的命令的状态和结果,显示在结果窗口区域中,这是一组子窗口的集合。在运行命令、生成消息、创建日志文件和报告文件时,相关信息将显示在此区域。1、Tcl Console 允许您输入 Tcl 命令,并查看以前的命令和输出的历史记录。2、Messages 显示当前设计的所有消息,按进程和严重性分类。3、Log 显示由综合、实现和仿真 run 创建的日志文件。 4、Reports 提供对整个设计流程中的活动 run 所生成的报告的快速访问。5、 Designs Runs 管理当前工程的 runs
  • 主工具栏: 提供最常用命令的单击访问
  • 主菜单: 提供对命令的访问
  • 窗口布局(Layout)选择器: 提供预定义的窗口布局,以方便设计过程中的各种任务

1.2 设计输入

创建工程顶层文件,点击Sources窗口中的+,如图所示:

在这里插入图片描述

弹出界面如下,选择添加设计源文件,然后点击Next:

在这里插入图片描述

在如下界面添加或创建文件,如果有编写好的代码,选择Add Files;否则,点击Create File:

在这里插入图片描述

命名创建的设计文件,然后点击OK,如图所示:

在这里插入图片描述

如下图,点击Finish:

在这里插入图片描述

弹出如下界面,用于设置源文件的模块名称和端口列表,在此不作设置,点击OK:

在这里插入图片描述

弹出如下模块定义确认界面,点击YES:

在这里插入图片描述

此时工程主界面Sources窗口出现刚创建的源文件,如图所示:

在这里插入图片描述

双击打开,删除默认代码,编写新代码如下:

module led_twinkle(
    input sys_clk, //系统时钟
    input sys_rst_n, //系统复位,低电平有效
    output [1:0] led //LED灯
);
reg [25:0] cnt;

//对计数器的值进行判断,以输出 LED 的状态
assign led = (cnt < 26'd2500_0000) ? 2'b01 : 2'b10 ;
//计数器在 0~5000_000 之间进行计数
always @ ( posedge sys_clk  or  negedge sys_rst_n)  begin
    if(!sys_rst_n)
        cnt <= 26'd0;
    else if(cnt < 26'd5000_0000)
        cnt <= cnt + 1'b1;
    else
        cnt <= 26'd0;
end
endmodule

软件中显示界面如下:

在这里插入图片描述

1.3 分析与综合

对设计进行分析(Elaborated),点击Flow Navigator窗口中的Open Elaborated Design,如图所示:

在这里插入图片描述

点击OK,如图所示:

在这里插入图片描述

分析后 (Elaborated)的设计,Vivado 会生成顶层原理图视图,并在默认 view layout 中显示设计,如图所示:

在这里插入图片描述

进行 I/O 引脚分配,在右上角的窗口布局(Layout)选择器中选择I/O Planing,如图所示:

在这里插入图片描述

窗口布局会打开IO相关的子窗口,如图所示,暂时不分配,先对设计进行综合,综合之后再统一输入时序约束和 IO 引脚的物理约束:

在这里插入图片描述

接下来点击Flow Navigator窗口中的Run Synthesis,来对代码进行综合,如图所示:

在这里插入图片描述

如下图,点击OK:

在这里插入图片描述

综合完成后,弹出窗口,直接关闭即可,如图所示:

在这里插入图片描述

1.4 约束输入

创建约束文件,点击Sources窗口中的+,如图所示:

在这里插入图片描述

弹出窗口选择Add or create constraints,点击Next,如图所示:

在这里插入图片描述

在如下界面点击Create File,创建新的约束文件:

在这里插入图片描述

弹出的对话框,输入约束文件名称,点击OK,如图所示:

在这里插入图片描述

点击Finish,完成约束文件的创建,如图所示:

在这里插入图片描述

Sources窗口,双击添加的约束文件,如图所示:

在这里插入图片描述

约束一般分为两种, 一种是 IO 管脚的约束,另外一种是对时序进行约束。IO 管脚的约束语句如下:

#IO 管脚约束 
set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk] 
set_property -dict {PACKAGE_PIN J15 IOSTANDARD LVCMOS33} [get_ports sys_rst_n] 
set_property -dict {PACKAGE_PIN J18 IOSTANDARD LVCMOS33} [get_ports {led[0]}] 
set_property -dict {PACKAGE_PIN H18 IOSTANDARD LVCMOS33} [get_ports {led[1]}]

时序约束 (Timing Constraints) 用来描述设计人员对时序的要求, 比如时钟频率, 输入输出的延时等, 以满足设计的时序要求,约束语句如下:

#时钟周期约束 
create_clock -name clk -period 20 [get_ports sys_clk ] 

输入 IO 管脚约束语句后如图所示:

在这里插入图片描述

1.5 设计实现

点击 Flow Navigator 窗口中的 Run Implementation,如图所示:

在这里插入图片描述

弹出如下界面,点击Yes:

在这里插入图片描述

然后点击OK,如图所示:

在这里插入图片描述

实现完成后,弹出如下界面,关闭即可:

在这里插入图片描述

1.6 下载比特流

生成比特流文件,点击Flow Navigator 窗口中的 Generate Bitstream 按钮,如图所示:

在这里插入图片描述

由于疫情,一直无法去实验室,故ZYNQ开发板不在身边,该步骤内容待更新

致谢领航者ZYNQ开发板,开启FPGA学习之路!

希望本文对大家有帮助,上文若有不妥之处,欢迎指正

分享决定高度,学习拉开差距

  • 7
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vivado软件使用 一、 建立工程 1.1新建一个工程 或者: 1.2设置工程名字和路径。输入工程名称、选择工程存储路径,并勾选Create project subdirectory选项,为工程在制定存储路径下建立独立的文件夹设置完成后,点击Next。注意: 工程名称和存储路径中不能出现中文和空格,建议工程名称以字母、数字、下划线来组成。 1.3选择RTL Project一项,并勾选Do not specify sources at this time,勾选该选项是为了跳过在新建工程的过程中添加设计源文件。点击Next。根据使用FPGA开发平台,选择对应的FPGA目标器件. 1.4确认相关信息与设计所用的FPGA器件信息是否一致,一致请点击Finish,不一致,请返回上一步修改。 1.5得到如下的空白的Vivado工程界面,完成空白工程新建 二、 工程设计 2.1设计文件输入,如下图所示,点击Flow Navigator下的Project Manager->Add Sources或中间Sources中的对话框打开设计文件导入添加对话框。 2.2添加设计文件,然后Next 2.3如果有v/vhd文件,可以通过Add File一项添加。在这里,我们要新建文件,所以选择Create File一项。 2.4在Create Source File中输入File Name,点击OK。注:名称中不可出现中文和空格。 2.5在弹出的Define Module中的I/O Port Definition,输入设计模块所需的端口,并设置端口防线,如果端口为总线型,勾选Bus选项,并通过MSB和LSB确定总线宽度。完成后点击OK. 2.6新建的设计文件(此处为flow_led.v)即存在于Source中的Design Source中。双击打开该文件,输入相应的设计代码。 三、 添加约束 添加约束文件,有两种方法可以添加约束文件,一是利用Vivado中planning功能,二是可以直接新建XDC的约束文件,手动输入约束命令。 3.1利用IO planning 3.1.1点击Flow Navigator 中Synthesis中的Run Synthesis,先对工程进行综合。 3.1.2综合完成后,选择Open Synthesized Design,打开综合结果。 3.1.3此处应该出现如下界面,如果没有出现,在图示位置layout中选择IO planning在右下方的选项卡中切换I/O ports 一栏,并在对应的信号后,输出对应的FPGA管脚标号,并制定I/O std。(具体的FPGA约束管脚和IO电平标准,可参考对应板卡的用户手册或原理图)。 3.1.4完成后,点击上方工具栏中的保存按钮,工程提示新建XDC文件或选择工程中已有的XDC文件。在这里,我们要Create a new file,输入File name,点击OK完成约束过程。 3.1.5、此时在Source下的Constraints中会找到新建的XDC文件。 3.2建立XDC文件 3.2.1、点击Add Source ,选择第一项Add or Create Constraints一项,点击Next。 3.2.2、点击Create File ,新建一个XDC文件,输入XDC文件名,点击OK。点击Finish。 3.2.3、双击打开新建好的XDC文件,按照如下规则,输入相应的FPGA管脚约束信息和电平标准。 四、 功能仿真 4.1创建激励测试文件,在Source中右击选择Add source。在Add Source界面中选择第三项Add or Create Simulation Source,点击Next。 4.2选择Creat File,创建一个新的激励测试文件。输入激励测试文件名,点击OK,然后点击Finish。 4.3弹出module端口定义对话框,由于此处是激励文件,不需要有对外的接口,所以为空。点击OK,空白的激励测试文件就建好了。 4.4在source 下双击打开空白的激励测试文件,完成对将要仿真的module的实例化和激励代码的编写。激励文件完成后,工程目录如下图: 4.5此时,进入仿真。在左侧Flow Navigator中点击Simulation 下的Run Simulation 选项,并且选择Run Behavioral Simulaiton一项,进入仿真界面。 4.6下图为仿真界面。 4.7可以通过左侧的Scope一栏中的目录结构定位到设计者想要查看的module内部寄存器,在Objects对应的信号名称上右击选择Add To Wave Window,将信号加入波形中。 4.8可通过选择工具栏中的如下选项来进行波形的仿真时间控制,如下工具条,分别是复位波形(即清空现有波形)、运行仿真、运行特定时长的仿真、仿真时长设置、仿真时长单位、单步运行、暂停…… 4.9最终得到的仿真效果图如下。核对波形与预设的逻辑功能是否一致,仿真完成。 五、综合下载 5.1在Flow Navigator中点击Program and Debug下的Generate Bitstream选项,工程会自动完成综合、实现、Bit文件生成过程,完成之后,可点击Open Implemented Design 来查看工程实现结果。 5.2点击Flow Navigator中的Open Hardware Manager一项,进入硬件编程管理界面。 5.3在Flow Navigator中展开Hardware Manager ,点击Open New Target 5.4在弹出的Open hardware target向导中,先点击Next,进入Server选择向导。 5.5保持默认,next。 5.6选中FPGA芯片型号,点击Next。完成新建Hardware Target。 5.7此时,Hardware一栏中出现硬件平台上可编程的器件。(此处以zynq为例,如果是纯的FPGA的平台,该出只有一个器件。)在对应的FPGA器件上右击,选择Program Device 5.8选择bit文件位置,默认,直接Program。 观察实验结果,设计完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲁棒最小二乘支持向量机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值