zynq 7000 的流水灯实验

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leon_zeng0/article/details/82230372

流水灯实验是FPGA 的入门实验。最简单并且得到实在的体验,我们就从这里开始zynq 7000的体验吧。

本实验包括3部分:创建工程,添加和建立文件,比特流产生和编程。

1:创建工程:打开Vivado,在如下界面里选择建立工程,Create Project。

由于不同的vivado的版本,可能界面不一,但都是找到Create Project。

出现create project 界面时,选择Next。在如下界面输入工程的名字,这里是run_led,同时也要选择工程的存放文件夹。

到如下界面时,选择RTL Project, 勾取Do not specify soources at this time。

到这个界面,选择Part,太多了,不好选择,可以指定一些条件,我们这里选择系列为Zynq-7000。

再选择封装为clg400,就看到了我的Part, 我的是:xc7z010clg400-1。不同的板子这里可能不同,你要查询好你的Part 型号。

到这里是个汇总,有不对的,可以返回选择。

工程创建完了,就是这个样子。看看图中2个红箭,下面我们要添加2个文件在这里。

2:添加或创建文件:

在工程管理界面里,添加设计源码文件。先选择Design Source,然后右键或下图中+按钮,Add Source。

这里选择添加文件类型,这里是 Add or create design sources。

选择 Next 后到如下界面,可以添加或者创建文件,这里选择Create File

出现对话框,这里输入文件名led_top,还有文件位置。

OK 之后,回到如下界面。文件已在列表中。

选择Finish 后,出现如下界面,OK就好了。

还有这一个对话框,Yes。

回到管理界面了。Design Sources 下有了文件,点一下,右边就会显示出来,可以编辑修改。

在约束下还要添加文件。点一下 Constraints, 与上面添加文件一样操作。右键或+按钮, Add Source。

这里文件类型选择是  Add or create constraints。

约束文件取名run_led,点开可以右边显示。

看看我们创建的2个文件都显示在右边。右上可以最大化。

文件都建立好了,现在要修改文件的内容了。

led_top.v文件内容如下:

module led_top(
    input CLK_i,
input RSTn_i,
output reg [3:0]LED_o
);
reg [31:0]C0;
always @(posedge CLK_i)
if(!RSTn_i)
begin
LED_o <= 4'b1;
C0 <= 32'h0;
end
else
begin
if(C0 == 32'd50_000_000)
begin
C0 <= 32'h0;
if(LED_o == 4'b1000)
LED_o <= 4'b1;
else LED_o <= LED_o << 1;
end
else
begin
C0 <= C0 + 1'b1;
LED_o <= LED_o;
end
end
endmodule

你可以这里复制,粘贴过去。显示如下,多了一些注释之类的。

run_led.xdc 的内容与硬件相关。在这里要注意你的硬件管脚对应关系。我这里是米联 MZ7XA 的硬件定义。

CLK_i    H16

T19   RSTn_i

J16   LED_o[0]

K16   LED_o[1]

H15   LED_o[2]

G15   LED_o[3]

run_led.xdc 的内容如下,复制粘贴过去。如果管脚对应不一样,修改这个内容。

create_clock -period 10.000 -name CLK_i [get_ports CLK_i]
set_property PACKAGE_PIN H16 [get_ports CLK_i]
set_property IOSTANDARD LVCMOS33 [get_ports CLK_i]
set_property PACKAGE_PIN T19 [get_ports RSTn_i]
set_property IOSTANDARD LVCMOS33 [get_ports RSTn_i]
set_property PACKAGE_PIN J16 [get_ports {LED_o[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[0]}]
set_property PACKAGE_PIN K16 [get_ports {LED_o[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[2]}]
set_property PACKAGE_PIN H15 [get_ports {LED_o[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[3]}]
set_property PACKAGE_PIN G15 [get_ports {LED_o[2]}]

文件内容修改后,记得保存。

3:比特流产生和编程运行

文件内容都做好了,保存文件,然后点击Generate BitStream。

他会产生提示对话框,Yes就好。

还出现这个,OK

这个需要些时间,你可以看到右上在旋转,表示在计算,看看日志在更新。

运行结束后会有如下完成对话框。这是告诉你结束了,下面怎么做,可以Cancel, 也可以选择一个下面的内容。这里选择红箭指示的 Open Hardware manager,完成了,我就打开硬件管理器。

如果你选择了Cancel或者没有选择打开硬件管理,也可以如下图打开硬件管理界面。Flow Navigator->Program and debug->Open Hardware Manager。还可以菜单Flow -> Open Hardware Manager。

硬件管理面板如下。这里说没有连接硬件,你要连接好你的硬件,然后Open target

现在硬件连接上了,但还没有编程设备。按照红箭的位置,点击 Program Devices。

选择比特率文件,如果没有自动输入,那你手动选择,记得下图文件位置和名字。

点击Program , 程序就下载并运行了。实验也就结束了。

猜你喜欢

转载自blog.csdn.net/leon_zeng0/article/details/82230372