第八章 基于FPGA的可编程嵌入式开发初步 可配置嵌入式系统 Xilinx嵌入式开发系统 MicroBlaze PowerPC IP和及驱动 EDK软件 XPS软件的基本操作
可配置嵌入式系统 FPGA在嵌入式系统中获得广泛应用 状态机模式:可以无外设、无总线结构和无实时操作系统,达到最低的成本,应用于VGA、LCD控制等,根据用户设计可达到不同的性能。 单片机模式:包括一定的外设,可以利用实时操作系统和总线结构,以中等的成本,应用于控制和仪表,达到中等的性能。 定制嵌入模式:高度集成扩充的外设,实时操作系统和总线结构,达到高性能,应用于网络和无线通信等。 采用90nm生产工艺之后,FPGA器件处理能力更强,且成本低、功耗少,已取代了相当数量的中小规模ASIC器件和处理器,使嵌入式系统具备片上系统(SOC)的规模和动态可编程的能力,具有明显的优势,成为嵌入式应用的主力军之一。
可配置嵌入式系统 Xilinx解决方案 PicoBlaze:8位处理器软核,用汇编语言编写的程序经过编译后放入FPGA的BlockRam存储区。 MicroBlaze:32位流水线RISC结构,包含32个32位通用寄存器和1个可选的32位移位寄存器,时钟可达150MHz。 PowerPC:32位PowerPC嵌入式环境架构。Virtex II Pro、Virtex 4、Virtex 5系列部分芯片中集成了2~4个PowerPC 405处理器核。
可配置嵌入式系统 开发工具 嵌入式开发套件(EDK):用于设计嵌入式可编程系统的全面的解决方案,该套件包括了嵌入式软件工具(Platform Studio)以及嵌入式 IBM PowerPC硬件处理器核和/或Xilinx MicroBlaze软处理器核进行Xilinx平台FPGA设计时所需的技术文档和IP。 Xilinx公司提供了大量的硬件平台(评估板),提供了大量的软、硬件设计参考。
Xilinx嵌入式开发系统 MicroBlaze 支持CoreConnect总线的标准外设集合 ; RISC架构,哈佛结构32位指令和数据总线 最精简的核只需要将近400个Slice 。
Xilinx嵌入式开发系统 MicroBlaze 通用寄存器 特殊寄存器 PC、MSR
Xilinx嵌入式开发系统 MicroBlaze 指令集 A型指令 :两个源寄存器和一个目的寄存器,完成寄存器到寄存器间的数据运算 ;
Xilinx嵌入式开发系统 MicroBlaze 三级流水
Xilinx嵌入式开发系统 PowerPC 采用CoreConnect技术,可运行在100-133MHz的高带宽64位总线 ; 独立的指令缓存和数据缓存、1个JTAG端口、Trace FIFO、多个定时器和一个内存管理单元(MMU); 集成了辅助处理器单元控制器(APU),可直接控制FPGA架构内的硬件指令协处理 ; 不占用FPGA内部任何逻辑资源 。
Xilinx嵌入式开发系统
Xilinx嵌入式开发系统 PowerPC 通用寄存器
Xilinx嵌入式开发系统 PowerPC 专用寄存器:计数寄存器、连接寄存器、调试资源、计数器、中断寄存器等 。多数是应用程序不能访问的。 机器状态寄存器:处理器的工作状态,允许用户修改。 条件寄存器:可分为8个区域(CR0-CR7),每区域包含4个比特,可用于控制所有的条件分支。应用软件可访问所有的CR数值 。 芯片控制寄存器:配置、控制和读取外部处理器,可在特殊软件中通过mtdcr和mfdcr指令来访问。
Xilinx嵌入式开发系统 PowerPC 指令集 执行指令的速度接近每周期执行一条指令
Xilinx嵌入式开发系统 PowerPC 五级流水 取指、译码、执行、写回、加载写回
Xilinx嵌入式开发系统 常用的IP核以及设备驱动 通用I/O设备 中断控制器设备 定时器 外部存储器控制器 以太网、串口等通信设备 均以IP Core的形式给出,信号、时序、函数参见9.2.3节。
Xilinx嵌入式开发系统 嵌入式系统设计方案 MicroBlaze系统架构
Xilinx嵌入式开发系统 嵌入式系统设计方案 PowerPC系统架构
Xilinx嵌入式开发系统 系统地址分配 MicroBlaze:32位地址,其中0x0000_0000 ~ 0x0000_0017用于特殊处理,0x0000_0018 ~ 0xFFFF_FFFF是用户可用的部分,LMB存储器从地址0x0000_0018开始。 PowerPC:32位地址,其中每一个PowerPC都有其系统引导(boot)区,地址为0xFFFF_FFFC,缺省的可用空间为0xFFFF_0000 ~ 0xFFFF_FFFF。
EDK软件 嵌入式开发套件 Embedded Development Kit(EDK) 自带了许多工具和IP,可以用来设计完整的嵌入式处理器系统; 包括Xilinx平台工作室XPS和软件开发套件SDK ; 只有安装了ISE软件,才能正常运行EDK,且二者的版本要一致。 安装过程类似于ISE。
EDK软件 EDK的组成 XPS:用来设计嵌入式处理器系统硬件部分的开发环境或GUI,是系统设计者构建 Xilinx嵌入式系统时必用的工具套件。在XPS中,可以完成嵌入式系统架构的创建、软件代码的编写、设计的编译以及FPGA芯片的硬件配置。 SDK:集成的开发环境,基于Eclipse。它支持C/C++,用于嵌入式软件应用的开发和验证。 其它EDK部分: 用于Xilinx嵌入式处理器的硬IP; 用于嵌入式软件开发的驱动和库; 在MicroBlaze和PowerPC处理器上用于C/C++软件开发的GNU编译器和调试器; 有关文档以及一些工程样例等。
EDK软件 基于EDK的开发流程
EDK软件 EDK的文件管理架构 板级支持包Board Support Package(BSP) XMP工程文件 MHS文件和其它的硬件平台元素 MSS文件和其它的软件平台元素 UCF文件 CMD文件 修改最多的是assignfile指令和program指令 SDK工程文件 一个XPS嵌入式系统而言,可能有多个相应的SDK工程
XPS软件的基本操作 XPS的启动 单独启动:专门用于设计完备的嵌入式系统 。 ISE中通过双击Embedded Processor类型的源文件来打开 :可将嵌入式设计作为ISE设计的一个子模块 。
XPS软件的基本操作 利用基本系统创建器(BSB)创建新工程 (1)启动XPS
XPS软件的基本操作 (2)选择工程路径
XPS软件的基本操作 (3)选择板型
XPS软件的基本操作 (4)选择处理器 内部集成了PowerPC内核的FPGA芯片(Virtex-2 Pro以上部分型号)可以选择PowerPC或Microblaze,否则只能选择Microblaze。
XPS软件的基本操作 (5)配置处理器
XPS软件的基本操作 (6)添加I/O接口
XPS软件的基本操作 (7)添加内部外围设备 如果开发板的部分外设在XPS中并没有提供,那么就需要通过用户通过HDL语言实现自定制底层接口逻辑,再将其作为外设导入到XPS中。 如果开发板上的设备在XPS库中都能找到,可以跳过这一步骤 。
XPS软件的基本操作 (8)软件建立
XPS软件的基本操作 (9)配置存储器和外围设备的测试应用
XPS软件的基本操作 (10)创建系统
XPS软件的基本操作 (11)设计生成 “Finish”,XPS即与所创建的系统相关联。至此,就完成了一个新系统工程的创建过程。