EDK 软件开发环境
Xilinx 软件开发环境功能强大,而且非常容易上手。集成开发环境如下:
ISE 8.2
EDK 8.2
1.EDK 的目录介绍
EDK 的安装很简单,在整个安装过程中,只须输入序列号即可。大家在EDK_8.2\soft
文件夹里的安装文件后,还需要安装EDK_8_2_02i_win升级包。
EDK 安装后,安装目录树如下:
其中比较重要的子目录是doc 和sw。doc 目录下放了大量的文档资料,具有重大参
考价值。sw目录下放置的是Drivers, BSP’s and software services。对于我们编写C
代码来说,是非常重要的参考资料。
如图,可以看到在sw 下面的XilinxProcessorIPLib 目录里面有drivers 目录。我们用
Microblaze 实现串口、GPIO 等等,这些硬件模块的驱动就放着drivers 下。我们以
GPIO 为例说明。有gpio_v1_00_a 和gpio_v2_00_a 两个子目录。数字代表了driver
的版本号。
html / api 是我们可以调用的函数的说明,通过这些函数我们可以操作硬件。
examples 是一些C 程序代码例子,我们可以参照这些代码来编写我们自己的程序。
2.EDK 使用流程
Microblaze 可以作为Top Module,那么在开发过程中,不需要使用ISE,只用EDK 集
成开发环境。流程如下(后面有具体实例):
1、硬件设计
选择FPGA 芯片,定制合适的CPU、存储器以及外围器件,生成网表
编辑UCF,配置管脚
综合,生成bit 文件,下载
2、软件设计
EDK 会根据硬件配置,生成系统库,提供底层硬件驱动和调用接口
使用C 语言编写具体软件,编译生成可执行文件
将bit 下载到硬件上运行
====================一个简单的例子=======================
下面通过一个例子介绍一下具体的开发流程。可以不用深究具体的实现细节,先通
过这个例子体会一下开发的过程。
本例子功能是使用定时器循环点灯,具体做法是,利用EDK自带的定时器Core进行
减法计数产生中断,CPU(MicroBlaze)根据中断对LED(GPIO)进行控制实现循环点灯
功能。这种方法较之直接对GPIO操作实现的循环点灯优点在于:节约CPU时间,提
高CPU利用率。通过对此例的学习大家可以熟悉对GPIO、Timer、Interrupt Controller
的使用,下面具体介绍:
打开EDK的XPS界面,会出现下面的窗口,其中默认的选项是应用BSB(Base System
Builder)向导进行设计,点击OK后会提示你选择工程文件的存放路径。
选择完路径后,弹出的窗口就是 BSB 向导界面,如下图示:
接下来用户需要根据自己的实际情况选择开发板型号,如下图示:
当前使用的开发板是 Xilinx Spartan3E 的开发板,选择如下图示:
选择处理器。 因为SPARTAN3 只支持MICROBLAZE,所以没有其他选择,如果
你 的 目 标 FPGA 是 VIRTEX2PRO 或 者 VIRTEX4 FX 系 列 , 这 里 则 还 会 多 出
POWERPC 这个硬CPU 可选。这一步,我们直接点NEXT
紧接着是对所选择的 CPU 进行配置,如下图示:
这一步我们需要说明一下:
Debug I/F
· On-Chip HW Debug Module - Select this if you use Xilinx®
Microprocessor Debugger (XMD) in conjunction with a hardware
debug module (opb_mdm) implemented on the FPGA fabric.
· XMD Debug with Stub - Select this if you use XMD in
conjunction with a debug module implemented in software.
· No Debug - Select this if you do not use any software debugger.
Local memory 需要根据你的 FPGA 的 BRAM 大小而定,是 FPGA 内部存储指令
与数据区域。
Cache Setup 可以容许你开启/关闭 Cache.
FPU 是 MICROBLAZE 的浮点运算单元。