EDK工具基本操作DOC.docx
《EDK工具基本操作DOC.docx》由会员分享,可在线阅读,更多相关《EDK工具基本操作DOC.docx(14页珍藏版)》请在冰豆网上搜索。
EDK工具基本操作DOC
EDK工具基本操作
(仅供内部使用)
修订记录
EDK工具基本操作
以下实例为一个4bit闪灯计数器。
一、建立一个新工程
1、打开XPS,选择CreateNewProjectUsingBaseSystemBuilder,进入BSB向导界面。
2、在BSB向导界面选择工程路径和总线类型。
在ProjectFile后面选择工程目录,选择PLBSystem,如下图
其中,AXI总线是XILINX在EDK中新增的一种总线类型,只能支持SPARTAN6,VIRTEX6,KINTEX7及VIRTEX7芯片。
PLB总线是旧版本就支持的总线,支持的FPGA芯片也比较全,需要注意的是PLB总线写出的数据高低位是反的。
3、点击OK,进入欢迎界面,选择Iwouldliketocreateanewdesign
4、点击NEXT进入芯片选型界面。
第一项是XILINX的官方开发板,第二项是非官方开发板,最下面一项是选择高复位还是低复位。
本实例选择SPARTAN3A-XC3S1400AN-FFG676-5,低复位。
如下图
5、点击NEXT,选择单核系统。
其中左边是单核系统,右边是双核系统。
6、点击NEXT,填写处理器时钟频率和内存大小。
Referenceclockfrequency是进入FPGA的时钟频率。
Proseccortype选择Microblaze
SystemClockFrequency是软处理器的时钟
LocalMemory是片内存储器容量
7、点击NEXT,进入配置外设界面
点AddDevice添加需要的外设,弹出如下窗口,IOInterfaceType选择GPIO,Device选择LEDS
点击OK,然后在右侧配置外设,在GPIODATAWIDTH栏配置位宽。
8、一路点NEXT直到Finish。
进入XPS界面。
9、IPCatalog窗口。
左侧IPCatalog窗口显示的都是Xilinx已封装好的EDKIPCORE。
也可以在此添加外设,例如要添加一个UART外设(非本实验内容),展开CommunicationLow-Speed,双击XPSUART(Lite),弹出确认窗口点YES。
出现配置窗口,配置完成后点击OK。
就可在中间BUSInterface窗口看见已添加的UART外设。
在BUSName列选择“mb_plb”即可将此外设连接到PLB总线上。
切换到Ports窗口,展开xps_uartlite_0,在(IO_IF)uart_o行ConnectedPort列的下拉框中选择MakePortsExteral。
切换到Addresses窗口,为该外设分配地址及大小。
Project窗口。
ProjectFiles下有.mhs,.ucf,.cmd,.opt,.ut文件。
.mhs文件里面记录了系统硬件信息,其中包括端口信息,时钟频率,复位极性以及系统包括了哪些部分。
.ucf文件是约束文件。
可以通过ProjectOption下的Device重配FPGA芯片类型。
10、在Project窗口打开UCF文件,编写UCF文件。
(若需要添加自己编写的verilog代码,菜单栏→Hardware→CreateorImportPepheral)
依次生成Netlist、生成BitStream,ExportDesign(也可直接点击ExportDesign,系统会自动依次执行)。
出现下图
选择Export&LaunchSDK,弹出
此处需在工程目录下建立文件夹CODE,作为导出目录。
如果不是第一次导出,需要提前清空CODE文件夹。
11、点OK进入SDK开发环境
二、编译工程
1、新建一个BSP用于连接硬件和软件。
File→New→XilinxBoardSupportPakage,选择如下图,点Finish
2、新建一个C工程,File→New→XilinxCproject,工程模板选择helloworld
3、点NEXT,选择上一步建的BSP,
4、展开左侧hello_world_0→scr。
打开helloworld.c进行C程序编写。
#include"xparameters.h"
#include"xgpio.h"
#include"xgpio_l.h"
#include"xutil.h"
intmain(void)
{
XGpioLEDS;
inti,j;
XGpio_Initialize(&LEDS,XPAR_LEDS_DEVICE_ID);
XGpio_SetDataDirection(&LEDS,1,0x0);
while
(1)
{
XGpio_DiscreteWrite(&LEDS,1,j);
for(i=0;i<999999;i++);
j++;
}
}
程序中XGpio_开头的函数都是XILINX的关于GPIO使用的API函数。
具体的使用方法可以查看XILINX关于设备驱动的文档。
具体查看方法如下:
在SDK中选择system.mss文件。
点击peripheralDrivers中GPIO后面的Documentation。
点击后会在网页浏览器中打开一个网页类型的说明文档,点files会打开关于GPIO驱动文件列表。
点列表中的xgpio.h便会打开关于GPIO的API的使用说明了。
5、编译,菜单栏Project→BiuldAll
6、下载,菜单栏XilinxTools→programFPGA,软件配置选择elf文件。
点Program直到下载完成。
三、调试一个工程
1、在SDK工程中右击左侧的hell_world_0工程,选择DEBUGAS,再先LaunchonHardware
2、可以点击以下按钮,使CPU程序运行,暂停,停止。
3、可在XMDConsole窗口中为某个地址写入自己想要的值(需要先暂停CPU)。
如果修改过代码需要先切入C工程重新按照步骤1进入DEBUG。
主要命令格式
写寄存器:
mwr地址数据
读寄存器:
mrd地址长度