35
嵌嵌嵌嵌 嵌嵌嵌 嵌嵌嵌嵌 嵌嵌嵌 嵌嵌嵌 嵌嵌 FPGA 嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌 嵌嵌嵌嵌嵌嵌嵌 Xilinx 嵌嵌嵌嵌嵌嵌 MicroBlaze PowerPC IP 嵌嵌嵌嵌 EDK 嵌嵌 XPS 嵌嵌嵌嵌嵌嵌嵌

第八章 基于 FPGA 的可编程嵌入式开发初步

  • Upload
    garren

  • View
    138

  • Download
    0

Embed Size (px)

DESCRIPTION

第八章 基于 FPGA 的可编程嵌入式开发初步. 可配置嵌入式系统 Xilinx 嵌入式开发系统 MicroBlaze PowerPC IP 和及驱动 EDK 软件 XPS 软件的基本操作. 可配置嵌入式系统. FPGA 在嵌入式系统中获得广泛应用 状态机模式: 可以无外设、无总线结构和无实时操作系统,达到最低的成本,应用于 VGA 、 LCD 控制等,根据用户设计可达到不同的性能。 单片机模式: 包括一定的外设,可以利用实时操作系统和总线结构,以中等的成本,应用于 控制和仪表 ,达到中等的性能。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系第八章 基于 FPGA 的可编程嵌入式开发初步

可配置嵌入式系统Xilinx 嵌入式开发系统

MicroBlaze PowerPC IP 和及驱动

EDK 软件XPS 软件的基本操作

Page 2: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系可配置嵌入式系统

FPGA 在嵌入式系统中获得广泛应用 状态机模式:可以无外设、无总线结构和无实时操作系统,达到最低的成本,应用于 VGA 、 LCD 控制等,根据用户设计可达到不同的性能。 单片机模式:包括一定的外设,可以利用实时操作系统和总线结构,以中等的成本,应用于控制和仪表,达到中等的性能。 定制嵌入模式:高度集成扩充的外设,实时操作系统和总线结构,达到高性能,应用于网络和无线通信等。 采用 90nm 生产工艺之后, FPGA 器件处理能力更强,且成本低、功耗少,已取代了相当数量的中小规模 ASI

C 器件和处理器,使嵌入式系统具备片上系统( SOC )的规模和动态可编程的能力,具有明显的优势,成为嵌入式应用的主力军之一。

Page 3: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系可配置嵌入式系统

Xilinx 解决方案 PicoBlaze : 8 位处理器软核,用汇编语言编写的程序经过编译后放入 FPGA 的 BlockRam 存储区。 MicroBlaze : 32 位流水线 RISC 结构,包含 32 个 32位通用寄存器和 1 个可选的 32 位移位寄存器,时钟可达 150MHz 。 PowerPC : 32 位 PowerPC 嵌入式环境架构。 Virte

x II Pro 、 Virtex 4 、 Virtex 5 系列部分芯片中集成了2~4 个 PowerPC 405 处理器核。

Page 4: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系可配置嵌入式系统

开发工具 嵌入式开发套件( EDK ):用于设计嵌入式可编程系统的全面的解决方案,该套件包括了嵌入式软件工具( Platform Studio )以及嵌入式 IBM PowerPC 硬件处理器核和 / 或 Xilinx MicroBlaze 软处理器核进行

Xilinx 平台 FPGA 设计时所需的技术文档和 IP 。 Xilinx 公司提供了大量的硬件平台(评估板),提供了大量的软、硬件设计参考。

Page 5: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

MicroBlaze 支持 CoreConnect 总线的标准外设集合 ; RISC 架构,哈佛结构 32 位指令和数据总线 最精简的核只需要将近 400 个 Slice 。

Page 6: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

MicroBlaze 通用寄存器

特殊寄存器PC 、 MSR

Page 7: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

MicroBlaze 指令集

• A 型指令 :两个源寄存器和一个目的寄存器,完成寄存器到寄存器间的数据运算 ;

• B 型指令:一个源寄存器、一个目的寄存器和一个 16 位的立即数,进行寄存器和立即数间的数据运算。

Page 8: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

MicroBlaze 三级流水

Page 9: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

PowerPC 采用 CoreConnect 技术,可运行在 100-133MHz 的高带宽 64 位总线 ; 独立的指令缓存和数据缓存、 1 个 JTAG 端口、 Trac

e FIFO 、多个定时器和一个内存管理单元( MMU ); 集成了辅助处理器单元控制器( APU ),可直接控制

FPGA 架构内的硬件指令协处理 ; 不占用 FPGA 内部任何逻辑资源 。

Page 10: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

Page 11: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

PowerPC 通用寄存器

Page 12: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

PowerPC 专用寄存器:计数寄存器、连接寄存器、调试资源、计数器、中断寄存器等 。多数是应用程序不能访问的。 机器状态寄存器:处理器的工作状态,允许用户修改。 条件寄存器:可分为 8 个区域( CR0-CR7 ),每区域包含 4 个比特,可用于控制所有的条件分支。应用软件可访问所有的 CR 数值 。 芯片控制寄存器:配置、控制和读取外部处理器,可在特殊软件中通过 mtdcr 和 mfdcr 指令来访问。

Page 13: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

PowerPC 指令集执行指令的速度接近每周期执行一条指令

Page 14: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

PowerPC 五级流水取指、译码、执行、写回、加载写回

Page 15: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

常用的 IP 核以及设备驱动 通用 I/O 设备 中断控制器设备 定时器 外部存储器控制器 以太网、串口等通信设备均以 IP Core 的形式给出,信号、时序、函数参见 9.2.3节。

Page 16: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

嵌入式系统设计方案 MicroBlaze 系统架构

Page 17: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

嵌入式系统设计方案 PowerPC 系统架构

Page 18: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系Xilinx 嵌入式开发系统

系统地址分配 MicroBlaze : 32 位地址,其中 0x0000_0000 ~ 0x00

00_0017 用于特殊处理, 0x0000_0018 ~ 0xFFFF_FFFF 是用户可用的部分, LMB 存储器从地址 0x0000_0018 开始。

PowerPC : 32 位地址,其中每一个 PowerPC 都有其系统引导( boot )区,地址为 0xFFFF_FFFC ,缺省的可用空间为 0xFFFF_0000 ~ 0xFFFF_FFFF 。

Page 19: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系EDK 软件

嵌入式开发套件 Embedded Development Kit ( EDK ) 自带了许多工具和 IP ,可以用来设计完整的嵌入式处理器系统; 包括 Xilinx 平台工作室 XPS 和软件开发套件 SDK ; 只有安装了 ISE 软件,才能正常运行 EDK ,且二者的版本要一致。 安装过程类似于 ISE 。

Page 20: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系EDK 软件

EDK 的组成 XPS :用来设计嵌入式处理器系统硬件部分的开发环境或 GUI ,是系统设计者构建 Xilinx 嵌入式系统时必用的工具套件。在 XPS中,可以完成嵌入式系统架构的创建、软件代码的编写、设计的编译以及 FPGA 芯片的硬件配置。 SDK :集成的开发环境,基于 Eclipse 。它支持 C/C++ ,用于嵌入式软件应用的开发和验证。 其它 EDK 部分:

• 用于 Xilinx 嵌入式处理器的硬 IP ;• 用于嵌入式软件开发的驱动和库;• 在 MicroBlaze 和 PowerPC 处理器上用于 C/C++ 软件开发的

GNU 编译器和调试器;• 有关文档以及一些工程样例等。

Page 21: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系EDK 软件

基于 EDK 的开发流程

Page 22: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系

Page 23: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系EDK 软件

EDK 的文件管理架构 板级支持包 Board Support Package ( BSP ) XMP 工程文件 MHS 文件和其它的硬件平台元素 MSS 文件和其它的软件平台元素 UCF 文件 CMD 文件

• 修改最多的是 assignfile 指令和 program 指令 SDK 工程文件

• 一个 XPS 嵌入式系统而言,可能有多个相应的 SDK 工程

Page 24: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

XPS 的启动 单独启动:专门用于设计完备的嵌入式系统 。 ISE 中通过双击 Embedded Processor类型的源文件来打开 :可将嵌入式设计作为 ISE 设计的一个子模块 。

Page 25: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

利用基本系统创建器( BSB )创建新工程 ( 1 )启动 XPS

Page 26: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 2 )选择工程路径

Page 27: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 3 )选择板型

Page 28: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 4 )选择处理器 内部集成了 PowerPC 内核的 FPGA 芯片( Virtex-2 P

ro 以上部分型号)可以选择 PowerPC 或 Microblaze ,否则只能选择Microblaze 。

Page 29: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 5 )配置处理器

Page 30: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 6 )添加 I/O 接口

Page 31: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 7 )添加内部外围设备 如果开发板的部分外设在 XPS 中并没有提供,那么就需要通过用户通过 HDL 语言实现自定制底层接口逻辑,再将其作为外设导入到 XPS 中。 如果开发板上的设备在 XPS库中都能找到,可以跳过这一步骤 。

Page 32: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 8 )软件建立

Page 33: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 9 )配置存储器和外围设备的测试应用

Page 34: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 10 )创建系统

Page 35: 第八章 基于 FPGA 的可编程嵌入式开发初步

嵌入式系统工程系嵌入式系统工程系XPS 软件的基本操作

( 11 )设计生成 “Finish” , XPS 即与所创建的系统相关联。至此,就完成了一个新系统工程的创建过程。 XPS 的使用请参见 9.4-9.6节。