350 likes | 577 Views
第八章 基于 FPGA 的可编程嵌入式开发初步. 可配置嵌入式系统 Xilinx 嵌入式开发系统 MicroBlaze PowerPC IP 和及驱动 EDK 软件 XPS 软件的基本操作. 可配置嵌入式系统. FPGA 在嵌入式系统中获得广泛应用 状态机模式: 可以无外设、无总线结构和无实时操作系统,达到最低的成本,应用于 VGA 、 LCD 控制等,根据用户设计可达到不同的性能。 单片机模式: 包括一定的外设,可以利用实时操作系统和总线结构,以中等的成本,应用于 控制和仪表 ,达到中等的性能。
E N D
第八章 基于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型指令 :两个源寄存器和一个目的寄存器,完成寄存器到寄存器间的数据运算 ; • B型指令:一个源寄存器、一个目的寄存器和一个16位的立即数,进行寄存器和立即数间的数据运算。
Xilinx嵌入式开发系统 • MicroBlaze • 三级流水
Xilinx嵌入式开发系统 • PowerPC • 采用CoreConnect技术,可运行在100-133MHz的高带宽64位总线 ; • 独立的指令缓存和数据缓存、1个JTAG端口、Trace FIFO、多个定时器和一个内存管理单元(MMU); • 集成了辅助处理器单元控制器(APU),可直接控制FPGA架构内的硬件指令协处理 ; • 不占用FPGA内部任何逻辑资源 。
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即与所创建的系统相关联。至此,就完成了一个新系统工程的创建过程。 XPS的使用请参见9.4-9.6节。