【教学课件】第八章基于FPGA的可编程嵌入式开发初步.ppt
第八章 基于FPGA的可编程嵌入式开发初步,可配置嵌入式系统Xilinx嵌入式开发系统MicroBlazePowerPCIP和及驱动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系列部分芯片中集成了24个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型指令:两个源寄存器和一个目的寄存器,完成寄存器到寄存器间的数据运算;B型指令:一个源寄存器、一个目的寄存器和一个16位的立即数,进行寄存器和立即数间的数据运算。,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的形式给出,信号、时序、函数参见节。,Xilinx嵌入式开发系统,嵌入式系统设计方案 MicroBlaze系统架构,Xilinx嵌入式开发系统,嵌入式系统设计方案 PowerPC系统架构,Xilinx嵌入式开发系统,系统地址分配 MicroBlaze:32位地址,其中0 x0000_0000 0 x0000_0017用于特殊处理,0 x0000_0018 0 xFFFF_FFFF是用户可用的部分,LMB存储器从地址0 x0000_0018开始。PowerPC:32位地址,其中每一个PowerPC都有其系统引导(boot)区,地址为0 xFFFF_FFFC,缺省的可用空间为0 xFFFF_0000 0 xFFFF_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即与所创建的系统相关联。至此,就完成了一个新系统工程的创建过程。XPS的使用请参见节。,