天天看点

zynq 7000 的流水灯实验

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

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

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

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

2:添加或创建文件:

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

还有这一个对话框,Yes。

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

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

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

zynq 7000 的流水灯实验

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。

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

还出现这个,OK

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

zynq 7000 的流水灯实验

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

继续阅读