ZYNQ PL系列(一)VIVADO 的使用

4 篇文章 0 订阅
本文档介绍了如何使用VIVADO 2017.4创建一个基于Zynq-7000 FPGA的Verilog项目,实现LED灯的闪烁。首先,详细说明了从新建工程到设置目标器件的过程,然后通过编写Verilog代码实现LED的控制逻辑。接着,讲解了添加管脚约束和时序约束的方法,确保输入输出信号正确连接和时钟频率设定。最后,指导如何生成BIT文件,完成整个设计流程。
摘要由CSDN通过智能技术生成

ZYNQ PL系列(一)VIVADO 的使用

第一章 VIVADO 的使用




前言

使用黑金的开发板,安装VIVADO 2017.4。

创建 Vivado 工程

  1. 启动 Vivado
  2. 在 Vivado 开发环境里点击“Create New Project”,创建一个新的工程。
  3. 弹出一个建立新工程的向导,点击“Next”
  4. 在弹出的对话框中输入工程名和工程存放的目录,我们这里取一个 led 的工程名。
  5. 在工程类型中选择“RTL Project”
  6. 目标语言“Target language”选择“Verilog”,虽然选择 Verilog,但 VHDL 也可以使用,支
    持多语言混合编程。
  7. 点击“Next”,不添加任何文件
  8. 在“Part”选项中,器件家族“Family”选择“Zynq-7000”,“Package”选择“clg400”,Speed 选择”-1”,在下拉列表中选择“xc7z010clg400-1”
  9. 点击“Finish”就可以完成以后名为“led”工程的创建。

创建 Verilog HDL 文件点亮 LED

  1. 点击 Project Manager 下的 Add Sources 图标(或者使用快捷键 Alt+A)
  2. 选择添加或创建设计源文件“Add or create design sources”,点击“Next”
  3. 选择创建文件“Create File”
  4. 文件名“File name”设置为“led”,点击“OK”
  5. 点击“Finish”,完成“led.v”文件添加
  6. 在弹出的模块定义“Define Module”,中可以指定“led.v”文件的模块名称“Module name”,这里默认不变为“led”,还可以指定一些端口,这里暂时不指定,点击“OK”。
  7. 在弹出的对话框中选择“Yes”
  8. 双击“led.v”可以打开文件,然后编辑
  9. 编写“led.v”
module led(
	input sys_clk,
	input rst_n,
	output reg [3:0] led
);
reg[31:0] timer_cnt;
always@(posedge sys_clk or negedge rst_n)
begin
 	if (!rst_n)
	begin
		led <= 4'd0 ;
		timer_cnt <= 32'd0 ;
	end
	else if(timer_cnt >= 32'd49_999_999)
	begin
		led <= ~led;
		timer_cnt <= 32'd0;
	end
	else
	begin
		led <= led;
		timer_cnt <= timer_cnt + 32'd1;
	end
end
endmodule
  1. 编写好代码后保存

添加管脚约束

Vivado 使用的约束文件格式为 xdc 文件。xdc 文件里主要是完成管脚的约束,时钟的约束,
以及组的约束。这里我们需要对 led.v 程序中的输入输出端口分配到 FPGA 的真实管脚上。

  1. 点击“Open Elaborated Design”
  2. 在弹出的窗口中点击“OK”按钮
  3. 在菜单中选择“Window -> I/O Ports”
  4. 在弹出的 I/O Ports 中可以看到管脚分配情况
  5. 将复位信号 rst_n 绑定到 PL 端的按键,给 LED 和时钟分配管脚、电平标准,完成后点击保存图标
    在这里插入图片描述
  6. 弹出窗口,要求保存约束文件,文件名我们填写“led”,文件类型默认“XDC”,点击“OK”
  7. 打开刚才生成的“led.xdc”文件,我们可以看到是一个 TCL 脚本,如果我们了解这些语
    法,完全可以通过自己编写 led.xdc 文件的方式来约束管脚

下面来介绍一下最基本的 XDC 编写的语法,普通 IO 口只需约束引脚号和电压,管脚约束
如下:

set_property PACKAGE_PIN "引脚编号" [get_ports “端口名称”] 

电平信号的约束如下:

set_property IOSTANDARD "电平标准" [get_ports “端口名称”] 

这里需要注意文字的大小写,端口名称是数组的话用{ }刮起来,端口名称必须和源代码中
的名字一致,且端口名字不能和关键字一样。
电平标准中“LVCMOS33”后面的数字指 FPGA 的 BANK 电压,LED 所在 BANK 电压为 3.3
伏,所以电平标准为“LVCMOS33”。Vivado 默认要求为所有 IO 分配正确的电平标准和管脚编
号。

添加时序约束

一个 FPGA 设计除了管脚分配以外,还有一个重要的约束,那就是时序约束,这里通过向
导方式演示如果进行一个时序约束。

  1. 点击“Run Synthesis”开始综合
  2. 弹出对话框点击“OK”
  3. 综合完成以后点击“Cancel”
  4. 点击“Constraints Wizard”
  5. 在弹出的窗口中点击“Next”
  6. 时序约束向导分析出设计中的时钟,这里把“sys_clk”频率设置为 50Mhz,然后点击“Skip to Finish”结束时序约束向导。
  7. 弹出的窗口中点击“OK”
  8. 点击“Finish”
  9. 这个时候 led.xdc 文件已经更新,点击“Reload”重新加载文件,并保存文件。
    在这里插入图片描述

生成 BIT 文件

  1. 编译的过程可以细分为综合、布局布线、生成 bit 文件等,这里我们直接点击“Generate Bitstream”,直接生成 bit 文件。
  2. 在弹出的对话框中可以选择任务数量,这里和 CPU 核心数有关,一般数字越大,编译越快,点击“OK
  3. 这个时候开始编译,可以看到右上角有个状态信息,在编译过程中可能会被杀毒软件、电脑管家拦截运行,导致无法编译或很长时间没有编译成功。
  4. 编译中没有任何错误,编译完成,弹出一个对话框让我们选择后续操作,可以选择“Open Hardware Manger”,当然,也可以选择“Cancel”,我们这里选择 “Cancel”,先不下载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

胖茄子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值