开发环境为Vivado 2019.2。
1新建工程
打开Vivado,选择Create Project新建一个工程
下面的界面直接next
设置工程名及路径
工程类型选为RTL工程,因为在新建工程时不指定源文件,所以勾选下面Do not 那个选项,源文件等到工程建立完毕后再指定。
这里配置板卡的信息,可以在下面进行每一项的手动配置,由于我们采用的是zedboard开发板可在boards里面快速配置,不需要一个个参数手动指定,所以这里选boards。如果你的不是zedboard开发板,可以去boards里面看看有没有对应你的板子的快速配置,如果没有就需要自己看手册选每一项参数了。
这里选用zedboard开发板
这个界面是关于我们先前配置信息的汇总可以看看检查一下有没有配置错误。然后点击finish,至此工程新建完毕。
2编写verilog和配置约束文件
首先写Verilog,在design sources上右键,新建一个文件。
选择design sources之后点击next
这里点击cerate file新建一个文件
这里填写文件名
在填写好文件名点击OK之后,可以看见新建的那个文件的信息,这里我新建的文件名为PL_LED,Verilog文件的后缀为.v,之后点击finish.
点击这个PL_LED打开这个文件
红框里面为代码编写的界面
代码如下:
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/07/24 22:39:01
// Design Name:
// Module Name: PL_LED
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module PL_LED(
input clk, //时钟输入
input rst, //复位,高电平有效
output reg led //led输出
);
always@(posedge clk or posedge rst)begin
if(rst) //复位按钮按下就给led一个低电平
led<=1'b0;
else //否则给一个高电平
led<=1'b1;
end
endmodule
之后便是点如下图所示,点击这个,为我们后续添加约束做准备,当然也可以通过tcl来手动编写约束文件,这里我们采用图形化的界面进行添加。
这个界面直接OK即可
在运行结束之后会弹出这个界面选cnacel即可
可以看到原先是灰色的那个按钮可以点击了
点击这个IO planning进行配置
主要是配置对应的端口信息和电平。他这里默认是1.8我们改成了3.3,这个要根据自己的板子的参数而定。
我们选用的是PL的系统时钟,所以在上述配置中选用的Y9口,具体的说明如下,下面时钟,按键,led的说明均摘自zedboard的说明文档。
我们选用的BTNC这个按钮作为复位键,所以配置的端口是P16,并且说明了当按键按下时接通VCC,在always中使用了posedge上升沿检测,if(rst)这样来判断是否按下复位键。
使用的LED为LED0,所以端口选择T22。
在配置好之后,ctrl+s进行保存,填写保存的文件名
之后可以点击project manger,constraints打开我们刚刚保存的那个文件,查看自动帮我们生成的约束文件。上述图形化界面添加约束文件的方法也可采用手动编写TCL的方式进行书写约束文件。就是直接在constraints里面新建一个约束文件,然后不进行图形化的添加而手动写这些约束文件,这里就要求你会书写TCL。
自动生成的约束文件如下:
set_property PACKAGE_PIN Y9 [get_ports clk]
set_property PACKAGE_PIN P16 [get_ports rst]
set_property PACKAGE_PIN T22 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports rst]
3生成比特流文件并写入到开发板
生成比特流文件,直接点击generate bitstream,他弹出来的框直接OK或Yes就行。
生成比特流文件之后,在弹窗里面选择打开硬件管理
这个时候开发板要已经上电,之后选择open target,之后选择auto connect或new connect
可以看到已经识别到了板卡信息
在xc7z020_1上面右键,选择program device
可看到他已经自动识别到了生成的比特流文件,点击program写进我们的开发板。
至此整个开发结束。