Vivado+Zedboard之流水灯DOC48页文档格式.docx
《Vivado+Zedboard之流水灯DOC48页文档格式.docx》由会员分享,可在线阅读,更多相关《Vivado+Zedboard之流水灯DOC48页文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
2.单击CreateNewProject创建一个新的工程:
3.单击Next执行下一步;
4.选择工程所在的位置,并输入工程名test_led,单击Next;
5.在Vivado中新建一个RTL工程,暂不添加文件,单击Next;
6.单击Next执行下一步;
7.单击Next执行下一步;
8.单击Next执行下一步;
9.这一步要注意,在左上角Specify处选择Boards,选择ZedBoardZynqEvaluationandDevelopmentKitversionD器件,单击Next;
10.单击Finish
11.等待软件依照设定新建一个RTL工程。
如此新建工程的步骤就完成了,下面进行硬件设计步骤;
1.2硬件设计
新建工程的界面如下:
1.单击CreateBlockDesign,创建并添加IP核;
2.输入工程名led,单击OK;
3.等待软件CreateBlockDesign,创建完成后的界面如下:
4.AddIP,一样会提示Thisdesignisempty.Togetstarted,AddIPfromthecatalog,单击
AddIP会显现IP的名目,假如此处没有提示,能够单击Diagram左边框的AddIP添加;
5.在名目Search中输入ZYNQ7ProcessingSystem;
6.双击ZYNQ7ProcessingSystem完成IP核的添加;
7.等待软件AddIP,添加完成后的界面如下:
8.单击RunBlockAutomation;
9.单击processing_system7_0;
10.单击OK;
11.等待软件运行,运行后的界面为:
12.假如想了解内部的详细结构和进行接口配置,能够双击ZYNQ7ProcessingSystem核,〔此实验不需要设置,假如想直截了当进行下一步实验能够直截了当跳到步骤16〕
13.等待软件运行,运行后的界面为:
14.单击左侧对应内容能够进行接口配置:
15.单击OK完成配置;
16.连续添加IP,单击左侧的AddIP图标:
17.在名目Search中输入AXIGPIO;
18.双击AXIGPIO添加;
19.连续添加IP,单击左侧的AddIP图标,在名目Search中输入AXIBRAMController:
20.双击AXIBRAMController,完成添加;
21.连续添加IP,单击左侧的AddIP图标,在名目Search中输入BlockMemoryGenerator:
22.双击BlockMemoryGenerator,完成添加;
23.右键单击BlockMemoryGenerator,选择CustomizeBlock:
24.Mode处选择BRAMController,MemoryType处选择TrueDualPortRAM:
25.单击OK完成设置;
26.连接theBlockMemoryGeneratortotheAXI4BRAMController
27.RunConnectionAutomation选择/axi_gpio_0/S_AXI:
28.单击OK,完成此部分的连接;
29.RunConnectionAutomationagain,选择/axi_gpio_0/GPIO;
30.选择leds_8bits,单击OK;
31.RunConnectionAutomationagain,选择/axi_bram_ctrl_0/S_AXI;
32.单击OK;
33.修改therangeoftheAXIBRAMControllerto64K:
34.单击File选择SaveBlockDesign储存设计〔也能够直截了当Ctrl+S〕
1.3硬件处理
1.Tools>
ValidateDesign
2.等待软件运行,运行后的界面如下:
3.单击OK;
4.right-clickthetop-levelsubsystemdesign->
GenerateOutputProducts
5.单击Generate,等待软件运行,运行完成后right-clickthetop-levelsubsystemdesign->
CreateHDLWrapper
6.单击OK;
7.单击GenerateBitstream,单击Yes,第一进行分析综合和实现;
(那个地点也能够直截了当先点击RunSynthesis,然后点击RunImplementation,然后再点击GenerateBitstream)
需要等待运行的时刻比较长,本机大致需要15分钟;
8.运行完成后,会自动弹出对话框,选择OpenImplementedDesign,单击OK:
9.运行完成后的界面如下:
10.在关联到SDK时,需要将Package和Device都打开,假如运行后只是自动打开了device,需要OpenSynthesizedDesign来打开Package
11.单击NO,将Package和Device同时显示出来;
打开后的界面如下:
12.单击OpenBlockDesigntoinvoketheIPintegratordesign
13.连接micro-usbcablebetweenthePCandtheJTAGportoftheboard,anothermicro-usbcablebetweenthePCandtheUARTportoftheboard,.打开Zedboard板的电源,如以下图所示,打开电源之后POWER灯会亮;
14.单击HardwareManager中的OpenTarget,那个地点因为曾经在本机上使用过Zedboard,因此会直截了当显示出Localhost,假如是第一次连接Zedboard,要单击OpenNewTarget
〔假如直截了当显示出Localhost,能够直截了当点击Localhost进行步骤18〕
15.单击Next;
〔假如hardwaremanager中找不到硬件板,这是由于在任务治理器的进程中,hw_server.exe进程一直在执行,需要将其关掉,假如关了之后还检测不到硬件板,那么需要关机之后再开机便可;
〕
16.选择Localserver,单击Next;
17.软件会自动检测出Localhost,选择后单击Next;
18.单击Finish,自动OpenTarget;
19.单击HardwareManager中的ProgramDevice,单击xc7z020_1:
20.单击Program将比特流烧写到ZedBoard板上;
完成后板上的DONE蓝灯会亮,
提示成功:
21.单击File中的Export,单击ExportHardware
22.单击OK
23.单击File中的launchSDK:
24.单击OK;
如此在Vivado中的操作就完成了,软件会自动打开SDK:
SDK中的软件设计
打开后的SDK界面如下:
1.单击File>
New>
ApplicationProject
2.输入工程名zj,单击Next:
3.选择一个空的模板:
emptyapplication,单击Finish,等待工作环境的建立:
4.单击led>
右键单击src>
new>
SourceFile
5.输入工程名zj.c,单击Finish;
6.编写如下程序,Ctrl+S,储存的同时,软件会自动开始编译,在左下角problem处能够看到相应的warning和error;
程序如下:
#include"
xparameters.h"
/*Peripheralparameters*/
xgpio.h"
/*GPIOdatastructandAPIs*/
xil_printf.h"
xil_cache.h"
#defineGPIO_BITWIDTH8/*ThisisthewidthoftheGPIO*/
#defineGPIO_DEVICE_ID0//deviceid
#defineLED_DELAY10000000/*timesdelay*/
#defineLED_MAX_BLINK0x1/*NumberoftimestheLEDBlinks*/
#defineLED_CHANNEL1/*GPIOchannel*/
#defineprintfxil_printf/*Asmallerfootprintprintf*/
XGpioGpio;
/*TheInstanceoftheGPIODriver*/
XGpioGpioOutput;
/*ThedriverinstanceforGPIODeviceconfiguredasO/P*/
intGpioMarquee(u16DeviceId,u32GpioWidth)
{
volatileintDelay;
u32LedBit;
u32LedLoop;
intStatus;
/*
*InitializetheGPIOdriversothatit'
sreadytouse,
*specifythedeviceIDthatisgeneratedinxparameters.h
*/
Status=XGpio_Initialize(&
GpioOutput,DeviceId);
if(Status!
=XST_SUCCESS)
{
returnXST_FAILURE;
}
//Setthedirectionforallsignalstobeoutputs
XGpio_SetDataDirection(&
GpioOutput,LED