Vivado2018.3 软件安装入门和led闪烁

一、安装Vivado

官方下载链接:
https://www.xilinx.com/support/download.html
在这里插入图片描述
选择对应的版本下载:
在这里插入图片描述
下载完成后解压文件夹,双击xsetup.exe
在这里插入图片描述
然后一路傻瓜式安装,注意安装路径不能有中文字符和空格。

此外还需要软件许可安装,以下是安装软件许可教程及文件。
https://www.bilibili.com/read/cv15414254/

二、Vivado使用流程,新建项目

点击Vivado 2018.3
在这里插入图片描述
在开发环境里点击 Create New Project
在这里插入图片描述
点击next
在这里插入图片描述
输入项目名称,选择存放路径,然后点击next
在这里插入图片描述
选择RTL Project ,然后点击next
在这里插入图片描述
这一步是添加 Source 文件,这里先不添加,点击 Next
在这里插入图片描述
这里是添加约束文件,同样暂时不添加,点击 Next
在这里插入图片描述
选择器件,可以根据开发板上的芯片型号来做选择,由于芯片型号比较多,
可以做一些筛选。
Z7-Lite7020的用户在Family栏里选择Zynq-7000,Package栏选择clg400,
速度等级为 2,然后在下面的类表里选择相应的器件。
在这里插入图片描述
话点击 Finish,完成项目创建
在这里插入图片描述
创建后的项目
在这里插入图片描述
其中,红色框为设计流程导航窗,从上到下是 FPGA 开发的各个环节。黄色
框为工程数据文件窗口,可以查看工程的层次结构,编辑工程文件属性。紫色框
为主工作窗,根据不同的 layout 有不同的显示内容。蓝色框为结果显示窗,显示
各个环节的执行结果。黑色框可在不同的 layout 之间切换。

三、程序设计

1、创建.V文件

在做程序设计前,我们需要先创建一个.v 的程序文件,左侧边栏 Project
Manager 下,点击 Add Source 图标
在这里插入图片描述
选择 Add or Create Design Source,然后点击 Next
在这里插入图片描述
用户可以添加已有的程序,这里我们还有程序,选择 Create File
在这里插入图片描述
弹出对话框,输入文件名 led,点击 OK
在这里插入图片描述
点击 Finish 完成
在这里插入图片描述
向导会提示您定义 I/O 的端口,这里不定义,后面程序中编写即可
在这里插入图片描述
此时在 Project Manager 界面下面的 Design Source 下有 led_flash.v 文件,并
且自动成为项目的 top 模块

2、.V文件代码

接下来就是编写本次实验主要的部分,完成流水灯的部分。代码如下:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2023/05/14 10:46:26
// Design Name: 
// Module Name: led_flash
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led_flash(
input       wire      clk,
input       wire      rst_n,
output      reg [1:0] led

    );
reg [27:0]  cnt;
wire        add_cnt;
wire        end_cnt;

always@(posedge clk or negedge rst_n) begin
    if(!rst_n) begin
    cnt<=28'd0;
    end
    else if(add_cnt) begin
    if(end_cnt)
    cnt <= 28'd0;
    else
    cnt <= cnt+1'b1;
    end
end
assign add_cnt = 1; 
assign end_cnt = add_cnt && cnt== 10_000_000 - 1;
  
 //--------------------led--------------------
 always @(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
led <= 2'b10;//reset state
end
else if(end_cnt)begin
led <= {
    
    led[0], led[1]};
end
else begin
led <= led; //keep the state
end
end
endmodule

就代码中的几个注意点做以下说明:12 行声明了一个计数器,用来计数时
间,通过该计数器来控制其他逻辑。18 到 31 行是计数器的实现代码,每个复位
时计数器保持为 0,复位计数后,每个时钟周期计数器加一,当计数到最大值时
清零计数器并且重新开始计数。
35 到 45 行是控制 led 灯流水的操作。在复位的时候,led 的最低位有效,每
当计数器计数到最大值的时候,led 完成移位,这里使用了位拼接的方式来完成
led 的移位操作。可以看到代码十分的简单。

3、添加管教约束

和之前 ISE 软件不同, Vivado 使用的约束文件格式是 xdc 文件。xdc 文件里
主要是定义管脚约束,时钟约束, 以及其他时序约束。这里我们需要对 led.v 程序
中的输入输出端口分配到 FPGA 的管脚上, 这就需要将管脚分配的.xdc 文件添加
到工程中
我们需要先创建一个.xdc 的约束文件,左侧边栏 Project Manager 下,点击
Add Source 图标
在这里插入图片描述
选择 Add or create constraints,点击 Next
在这里插入图片描述
点击 Create File 按钮,在 file name 输入 top_pin 文件名,点击 OK
在这里插入图片描述
在这里插入图片描述
点击 Finish 按钮,完成约束文件的创建
在这里插入图片描述
打开 top_pin.xdc 文件,添加如下约束,约束文件如何写,可以参考 xilinx 的
相关文档,下面来介绍一下最基本的 XDC 编写的语法,普通 IO 口只需约束引脚
号和电压,管脚约束如下:

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

电平信号的约束如下:

set_property IOSTANDARD “电压” [get_ports “端口名称” ]

这里需要注意文字的大小写,端口名称是数组的话用{ }刮起来, 端口名称必须和源代码中的名字一致,且端口名字不能和关键字一样。以 led[0]的约束为例:

set_property PACKAGE_PIN G14 [get_ports {led[0]}]

是为了绑定 led[0]的管脚

set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]

是为了设置 led[0]的电平约束。

Z7-Lite 系列的约束文件如下:

create_clock -period 20.000 [get_ports clk]
set_property PACKAGE_PIN N18 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
############## key define##################
set_property PACKAGE_PIN P16 [get_ports rst_n]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]
##############LED define##################
set_property PACKAGE_PIN P15 [get_ports {
    
    led[0]}]
set_property PACKAGE_PIN U12 [get_ports {
    
    led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]
set_property IOSTANDARD LVCMOS33 [get_ports {
    
    led[*]}]
set_property IOSTANDARD LVCMOS33 [get_ports clk]

依次点击 1 综合,2 实现,3 生成.bit 文件,或者直接双击 3,其效果是一样

在这里插入图片描述

4、下载验证

生成完.bit 文件就可以下载到 FPGA 芯片中,看一下 LED 的运行结果。将下载
器连接到 JTAG 口,给板子上电。
在这里插入图片描述
点击 Open target
在这里插入图片描述
然后点击Auto Connect自动搜索开发板
在这里插入图片描述
连接成功后,在 Hardware 窗口下会显示当前扫描到的设备,如下图扫描到
的设备是 xc7z020 与我们在一开始的时候选择的器件型号相吻合。

在这里插入图片描述
点击 Program device,下载程序,弹出对话框,直接点 Program 按钮。
在这里插入图片描述
下载完成后可以看到 2 个 led 灯开始进行流水操作

在这里插入图片描述

四、参考资料

Part1_Z7_Lite系列教程之逻辑篇

猜你喜欢

转载自blog.csdn.net/chenyu128/article/details/130666632
今日推荐