Xilinx Vivado的使用详细介绍(4):Zedboard+vivado之流水灯(加SDK)

境:vivado 2016.3(已验证适用于2015.4) 开发板:Zedboard version xc7z020clg484-1 实验:使用Vivado和SDK进行Zedboard开发,制作一个简单的流水灯程序以说明软硬件协同设计的方法、开发流程等。 本文将分为三个部分: 1. 使用Vivado创建一个工程,并构建一个Zynq嵌入式处理系统。 2. 在上述基础上,将完成后的硬件导入到SDK中进行软件设计。 3. 最后下载到ZedBoard上进行调试。 具体步骤如下: 1. 使用Vivado创建工程 1.1新建工程   1).鼠标左键双击Vivado2016.3图标,打开Vivado 2016.3;   2).单击Create New Project创建一个新的工程;   3).单击Next执行下一步;   4).选择工程所在的位置,并输入工程名ledflow,单击Next;   5).在Vivado中新建一个RTL工程,暂不添加文件(勾选 Do not specify sources at this time),后面需要的时候添加,单击Next;   6).这一步要注意,在左上角Select处选择Boards,选择ZedBoard Zynq Evaluation and Development Kit version D器件,单击Next;   7).单击Finish   8).等待软件根据设定新建一个RTL工程。 这样新建工程的步骤就完成了,下面进行硬件设计步骤; 1.2 Vivado硬件设计   1). 单击Create Block Design,创建并添加IP核;   2).输入工程名led,单击OK;   3).等待软件Create Block Design   4).Add IP.右边空白处一般会提示This design is empty. To get started, Add IP from the catalog,单击 Add IP会出现IP的目录,如果此处没有提示,可以单击Diagram左边框的Add IP添加;   5). 在目录Search中输入ZYNQ7 Processing System;   6).双击ZYNQ7 Processing System完成IP核的添加;   7).等待软件Add IP,接下来工程窗上部分会出现Run Block Automation,点Run Block Automation,直接点OK。   8).接下来继续添加IP,Add Ip 并在在搜索中寻找AXI GPIO,双击添加。   9).完成后继续点Run Connect Automation,出现窗口先打钩S_AXI,右边设置保持不变,直接点OK。之后继续点run connect automation,打钩剩下的,注意此时右侧选择leds_8bits(LED)。之后OK.点击Diagram的Regenerate Layout,重新布局,完成后出现如下界面。 1.3硬件处理   1). Tools >Validate Design   2).等待软件运行,运行后的界面如下:   3).单击OK;   4).Right-Click the Top-level Subsystem Design->Generate Output Products,默认设置,直接点generate,运行结束后,点击OK。   5). Right-Click the Top-level Subsystem Design->Create HDL Wrapper,选择第二项 Let Vivado manage Wrapper and auto-update,点击OK,   6). 在左侧Flow Navigator中最下边,单击Generate Bitstream,点击save(如果有提示)然后单击Yes,直接生成比特流文件。执行此过程首先会自动进行分析综合和实现。(这里也可以直接先点击Run Synthesis进行综合,然后点击Run Implementation进行实现,然后再点击Generate Bitstream生成比特流) 需要等待运行的时间比较长,耐心等待;   7).运行完成后,会自动弹出对话框,选择Open Implemented Design,单击OK:   8).运行完成后的界面如下:   9).在关联到SDK时,需要将Package和Device都打开,如果运行后只是自动打开了Device,需要在Flow Navigator下找到Synthesis并在其下点击Open Synthesized Design来打开Package,单击NO,将Package和Device同时显示出来;   10).单击Open Block Design to invoke the IP integrator design   11).准备两条USB线,一条连接 micro-usb cable between the PC and the PROG port of the board;另外一条 micro-usb cable between the PC and the UART port of the board,打开Zedboard板的电源,如下图所示,打开电源之后POWER灯会亮;   12).单击左侧导航窗口最下方Hardware Manager中的Open Target,然后选择Auto Connect   13).单击Hardware Manager中的Program Device,单击xc7z020_1默认设置,单击Program将比特流烧写到ZedBoard板上;完成后板上的DONE蓝灯会亮, 提示比特流文件下载到ZedBoard板上成功:   14).单击File中的Export,单击Export Hardware,注意打钩include bitstream,点击OK。   15).单击File中的Launch SDK,默认设置,单击OK,这时会自动启动SDK。 这样在Vivado中的操作就完成了,软件会自动打开。 1.4 SDK中的软件设计 打开后的SDK界面如下:   1). 单击File > New > Application Project   2).输入工程名ledflow,其它默认,注意勾选 Use default location(默认已经勾选)单击Next;   3). 选择一个空的模板:empty application,单击Finish,等待工作环境的建立;   4). 单击ledflow>右击src>New > Source File   5).输入工程名ledflow.c(一般命名为main.c),单击Finish;   6). 编写如下程序: 复制代码 1 * ledflow.c 2 * 3 * Created on: 2017年11月16日 4 * Author: zhangxianhe 5 */ 6 #include"xparameters.h" 7 #include"xgpio.h" 8 #include"xil_printf.h" 9 #include"xil_cache.h" 10 #define GPIO_BITWIDTH 8 11 #define GPIO_DEVICE_ID XPAR_AXI_GPIO_0_DEVICE_ID 12 #define LED_DELAY 100000000 13 #define LED_MAX_BLINK 0x1 14 #define LED_CHANNEL 1 15 #define printf xil_printf 16 XGpio Gpio; 17 XGpio GpioOutput; 18 19 int GpioMarquee(u16 DeviceId,u32 GpioWidth) 20 { 21 volatile int Delay; 22 u32 LedBit; 23 u32 LedLoop; 24 int Status; 25 Status=XGpio_Initialize(&GpioOutput,DeviceId); 26 if(Status!=XST_SUCCESS) 27 { 28 return XST_FAILURE; 29 } 30 XGpio_SetDataDirection(&GpioOutput,LED_CHANNEL,0x0); 31 XGpio_DiscreteWrite(&GpioOutput,LED_CHANNEL,0x0); 32 for(LedBit=0x0;LedBit clean (in case you get any errors with the BSD).   7).单击Xilinx Tools > program FPGA将比特流烧写到板上(在Vivado中就先将比特流烧写到板上有两个原因:1.如果SDK调试时出现问题,这样可以检测首先是不是Vivado的问题,如果成功烧写,说明板的连接没有问题,并且Vivado软件本身没有问题;2.在之前的调试过程中出现过直接Xilinx Tools > program FPGA无法烧写的情况;因此,保险起见,选择在Vivado中就先将比特流烧写到板上)   8).单击Program(和在Vivado中烧写的现象一样,完成后DONE蓝色指示灯会亮) 注:如果软件本身以及板的连接没有问题,那么这个步骤会在三秒左右完成,如果一直卡在一半的进度,说明SDK和Vivado没有很好的建立关联;   9). 选择按钮. 如果找不到这个标志选择 Window > Show view > Terminal.   10).单击 并且选择合适的 COM port (取决你自己的电脑), and configure the terminal with the parameters as shown below.   11).在用到串口打印时,需要设置的COM口,为设备管理器中的USB Serial Port(本机为COM5),因此要选择COM5,注意波特率为115200:   12).右键工程目录中的ledflow目录,选择Debug As > Debug Configurations,双击Xilinx C/C++ application (GDB),自动选择工程,然后选择Reset Entire System。 在STDIO Connection中,勾选Connect STDIO to Console设置COM 5和波特率115200;   13).单击Apply,再单击Debug,再点击图示箭头所指图标,即可看到现象。 (第一次的时候会出现选择,直接选择第一个运行方式),看到流水灯的效果,每次跑完一圈Console窗口会出现SUCESS!.的消息。 至此,Vivado+Zedboard的流水灯实验就完成了,板子不使用时要记得关闭电源。 标签: FPGA, Vivado SDK 好文要顶 关注我 收藏该文 Zhangxianhe 关注 - 0 粉丝 - 0 +加关注 0 0 « 上一篇:Xilinx Vivado的使用详细介绍(3):使用IP核 posted @ 2018-10-16 07:54 Zhangxianhe 阅读(51) 评论(0) 编辑 收藏 https://www.cnblogs.com/zhangxianhe/p/9795826.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信