【第一季】CH07_FPGA_RunLED创建VIVADO工程实验

第一季】CH07_FPGA_RunLED创建VIVADO工程实验

7.1 硬件图片

先来熟悉一下开发板的硬件:LED部分及按钮部分

806931-20170209193740447-911522110.jpg806931-20170209193741135-1422774037.jpg

7.2 硬件原理图

806931-20170209193742010-1282359289.jpg806931-20170209193742541-2068512621.jpg

PIN脚定义(讲解以MIZ702讲解,MIZ701N只有4个LED 2个按钮):

GCLK:Y9(PL输入时钟)

LD0:T22

LD1:T21

LD2:U22

LD3:U21

LD4:V22

LD5:W22

LD6:U19

LD7:U14

BTNU:T18

BTNC:P16

BTNL:N15

BTNR:R18

BTND:R16

7.3新建VIVADO工程

Step1:创建工程

806931-20170209193742963-862707086.jpg

Step2:欢迎界面直接单击NEXT

806931-20170209193743526-27365059.jpg

Step3:工程名字命名为Led,并且设置保存的路径,单击NEXT

806931-20170209193744244-591173392.jpg

Step4:新建一个RTL 工程,并且勾选不要添加源文件,单击NEXT

806931-20170209193745010-1897774647.jpg

Step5:由于MIZ702和ZEDBOARD是兼容的,因此直接选择ZEDBOARD硬件开发包作为我们MIZ702的开发包。这样可以省去很多麻烦,达到事半功倍的目的。单击NEXT

806931-20170209193745744-1970344346.jpg

Step6:最后单击Finish 完成工程的创建

806931-20170209193746229-2002793544.jpg

7.4创建工程文件

Step1:打开VIVADO软件

806931-20170209193752135-1530842028.png

Step2:单击 Add Sources

806931-20170209193754947-936108959.jpg

Step4:选择单击Add or Create Design Sources 然后单击NEXT

806931-20170209193758260-1603781686.jpg

Step5:单击Create File 来创建文件

806931-20170209193758776-885755046.jpg

Step6:创建一个Led的文件,并且文件类型选择Verilog

806931-20170209193759166-1108615621.jpg

Step7:添加完成后如下图所示之后单击finish完成文件的创建

806931-20170209193759651-1508771830.jpg

Step8:继续弹出的对话空中,可以设置一些端口,但是我们现在什么都不做。单击OK

806931-20170209193802776-321262665.jpg

Step9:创建完成后可以看到Design Sources文件夹中有了Led.v这个文件

806931-20170209193806166-647532403.jpg

Step9:创建完成后可以看到Design Sources文件夹中有了Led.v这个文件,这个文件就是我们可以编写verilog程序的文件。

7.5 Verilog FPGA流水灯实验

Step1:双击Led.v打开流水程序源码如下

`timescale 1ns / 1ps

//

// Company:

// Engineer:

// Create Date: 2016/03/22 15:05:39

// Design Name:

// Module Name: Led

// Project Name:

// Target Devices:

// Tool Versions:

// Description:

// Dependencies:

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

module Led(

    );

endmodule

可以看出这是一个空的工程,我们现在要添加代码同时也要添加工程信息。

Step2:编写程序并且添加工程信息

// Target Devices: XC7Z020-FGG484

// Tool versions:  VIVADO2015.4

// Description: water led

// Revision:  V1.1

// Additional Comments:

//1) _i PIN input  

//2) _o PIN output

//3) _n PIN active low

//4) _dg debug signal

//5) _r  reg delay

//6) _s state machine

//

module Led(

    input CLK_i,

    input RSTn_i,

    output reg [7:0]LED_o

    );

    reg [31:0]C0;

    always @(posedge CLK_i)

       if(!RSTn_i)

       begin

           LED_o <= 8'b0000_0001;

           C0 <= 32'h0;

       end

       else

       begin

           if(C0 == 32'd50_000_000)  

           begin

                C0 <= 32'h0;  

                if(LED_o == 8'b1000_0000)  

                LED_o <= 8'b0000_0001;

                else LED_o <= LED_o << 1;

           end

           else begin C0 <= C0 + 1'b1; LED_o <= LED_o; end

       end

endmodule

这样我们就编写好了代码下面还要添加管脚约束文件。

7.6 添加管脚约束文件

Step1:单击806931-20170209193806635-663497367.jpg(和添加.v文件一样)

Step2:选择Add or create constraints 然后单击NEXT

806931-20170209193807541-235571644.jpg

Step3:单击Create File

806931-20170209193808713-2139644432.jpg

Step4:命名为led_pin 后单击OK

806931-20170209193809432-113117514.jpg

Step5:可以看到产生了名为led_pin.adc的文件然后单击Finish

806931-20170209193810213-368150283.jpg

Step6:打开led_pin.adc文件添加如下约束

create_clock -name clk100MHZ -period 10.0 [get_ports {CLK_i}]

set_property PACKAGE_PIN Y9 [get_ports {CLK_i}]

set_property IOSTANDARD LVCMOS33 [get_ports {CLK_i}]

set_property PACKAGE_PIN N15 [get_ports {RSTn_i}]

set_property IOSTANDARD LVCMOS18 [get_ports {RSTn_i}]

set_property PACKAGE_PIN T22 [get_ports {LED_o[0]}]

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

set_property PACKAGE_PIN T21 [get_ports {LED_o[1]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[1]}]

set_property PACKAGE_PIN U22 [get_ports {LED_o[2]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[2]}]

set_property PACKAGE_PIN U21 [get_ports {LED_o[3]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[3]}]

set_property PACKAGE_PIN V22 [get_ports {LED_o[4]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[4]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[5]}]

set_property PACKAGE_PIN W22 [get_ports {LED_o[5]}]

set_property PACKAGE_PIN U19 [get_ports {LED_o[6]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[6]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[7]}]

set_property PACKAGE_PIN U14 [get_ports {LED_o[7]}]

7.7 编译并且产生bit文件

Step1:单击综合

Step2:单击执行

Step3:单击产生bit

806931-20170209193810588-48015260.jpg

7.8下载程序

Step1:给开发板通电,并且连接下载器

Step2:单击OpenTarget 然后单击Auto Connect

806931-20170209193810979-171350853.jpg

Step3:连接成功后

806931-20170209193811354-1573104827.jpg

Step4:单击Program Device

806931-20170209193811760-1151598276.jpg

Step5:单击Program Device 然后选择 XC7Z020_1

806931-20170209193812057-457911532.jpg

Step6:或者也可以从顶部单击Program device

806931-20170209193812604-2063284149.jpg

Step7:弹出的对话框中有我们要下载的Bit文件

806931-20170209193815307-2056757379.png

Step7:下载过程

806931-20170209193816479-1101855333.jpg

7.9实验结果

下载过程下载完成后LED流水灯就运行起来了。

806931-20170209193817088-625857822.jpg


7.10本章小结

本章详细讲解了如何创建VIVADO工程以及在VIVADO工程环境下编写纯PL代码的程序,并且讲解了如何添加管脚约束,时钟约束,编译程序,下载程序。通过流水灯实现这个简单的实验抛砖引玉,让大家掌握了VIVADO软件的使用。

转载于:https://www.cnblogs.com/milinker/p/6383669.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值