米联客 ZYNQ/SOC精品教程 S01-CH04 VIVADO创建工程之流水灯

我的梦境 提交于 2019-11-27 15:40:31

软件版本:VIVADO2017.4

操作系统:WIN10 64bit

硬件平台:适用米联客 ZYNQ系列开发板  

米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!!

4.1 概述

本章课程以大家熟悉的流水灯为例子,详细讲解了VIVADO软件的使用,包括创建FPGA工程,编写Verilog代码,添加管脚约束,最后编译,下载bit文件到开发板测试。对于初学XILINX FPGA的读者请注意,bit文件断电后就丢失了。如果实现上电能够启动程序,需要把BIT文件打包成bin或者MCS文件才可以。如果打包,固化到FLASH,在后面的章节中我们再说。

4.2 硬件原理图

此图对应的是MZXA和MZ7XB开发板,其他开发板应阅读配套的硬件手册或者原理图查看pin脚。

4.3 新建VIVADO工程

Step1:启动VIVADO,单击Create Project

Step2:单击NEXT

Step3:创建名为Miz_sys的工程到对应的文件目录,文件路径自定义,不能有中文或非法字符,之后单击NEXT

Step4:选择RTL Project并且勾选复选框,之后单击NEXT

Step5:选择芯片的型号和封装速度等级:

MZ7XA-7010、MZ7XA-mini7010如下图所示设置

MZ7XA-7020、MZ7XB如下图所示设置

Step:6 单击Finish完成工程创建。

4.4 添加工程文件

Step1:打开VIVADO软件

Step2:单击 Add Sources

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

Step4:单击Create File 来创建文件

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

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

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

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

 

4.5 Verilog FPGA流水灯实验

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

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer:

//

// Create Date: 2018/04/30 21:36:36

// Design Name:

// Module Name: run_led

// Project Name:

// Target Devices:

// Tool Versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module run_led(

    );

endmodule

 

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

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

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer:

//

// Create Date: 2018/04/30 21:36:36

// Design Name:

// Module Name: run_led

// Project Name:

// Target Devices: XC7Z020-CLG400-2

// Tool Versions: Vivadio2017.4

// Description: water led

// Revision:  V1.1

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// 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 run_led(

 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

 

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

4.6 添加管脚约束文件

管脚约束文件,即.xdc文件,一般情况,生成后会放在Miz_sys.srcs\constrs_1文件夹中,这里的“Miz_sys”对应的是创建工程的名称。添加管脚约束有三种方法,分别是手动新建XDC PIN脚约束文件、直接加入已经写好的约束文件、综合后添加管脚约束,用户根据实际情况选择其中一种方法,可以提高工作效率。

4.6.1 方法一 手动新建XDC PIN脚约束文件

Step1:单击(和添加.v文件一样)

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

Step3:点击Create File,创建一个新的.xdc文件。

Step4:打开提供例程,复制约束文件中的管脚约束,下图是打开配套的例子的工程截图。

下图是你创建的工程,新建的XDC文件,把上图配套例子的PIN脚约束,粘贴到新建工程中的xdc文件。

Step5:保存,XDC文件生成完成。

 

4.6.2 方法二 综合后,添加管脚约束

Step1:综合工程。

Step2:打开 Open Synthesized Design。

Step3:管脚配置。

点击I/O Ports,在Find Results 中进行管脚配置(图a)。Package Pin对应FPGA中的管脚,I/O Std对应电平标准(图b)。例如要配置RSTn_i信号连接到T19管脚,电平标准是LVCMOS33,在Package Pin中选择管脚P1,I/O Std选择LVCMOS33。其他管脚也做相应配置(图c)。

图a

 

图b

 

图c

 

Step4:保存,给XDC文件命名,生成.XDC文件,并保存到Miz_sys\Miz_sys.srcs\constrs_1。Constrs_1文件夹是自己创建的

Step5.XDC文件生成结束

 

4.6.3 方法三 直接加入已经写好的约束文件

Step1:单击(和添加.v文件一样)

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

Step3:单击Add Files

Step5:将要添加的.xdc文件添加进来,然后点击OK。

注意:提供例程的.xdc文件放在.srcsàconstrs_1文件夹中。

Step6:点击Finish完成约束文件的添加

 

4.7 优化管脚约束文件

对于ZYNQ FPGA为了减少bit文件大小,提高加载速度,在管脚约束文件中添加如下代码:

#bit compress  

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

set_property CFGBVS VCCO [current_design]

set_property CONFIG_VOLTAGE 3.3 [current_design]

4.8 编译并且产生bit文件

Step1:单击综合

Step2:单击执行

Step3:单击产生bit

 

4.9 下载程序

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

Step2:单击OpenTarget 然后单击Auto Connect

Step3:连接成功后如下图所示:

MZ7XA-7010、MZ7XA-mini7010如下图所示:

MZ7XA-7020、MZ7XB如下图所示:

Step4:单击Program Device

Step5:单击Program Device(也可以从顶部单击Program device), 然后选择 XC7Z010_1或XC7Z020。

或者

MZ7XA-7010、MZ7XA-mini7010:

MZ7XA-7020、MZ7XB:

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

Step7:下载过程

 

4.10 实验结果

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!