原创 《基于XILINX FPGA嵌入式系统设计与开发》第七章

2013-10-4 00:01 3387 13 9 分类: FPGA/CPLD 文集: 创芯Xilinx Microblaze 学习系列

 《基于XILINX FPGA嵌入式系统设计与开发》第七章

第七章 嵌入式软核MicroBlaze

从本章开始,我们将系统的介绍Xilinx MicroBlaze,包括MicroBlaze系统结构、LMB总线、PLB总线、AXI总线、FSL及其开发环境XPS和SDK。

 

7.1可编程片上系统

 

可编程片上系统芯片SOPC(System On a Programmable Chip)是Altera公司于2000年提出的一种灵活高效的SOC解决方案,SOPC利用可编程逻辑技术把整个电子系统集成在一个单片上,是一种特殊的嵌入式系统芯片。与可编程逻辑器件一样,SOPC的设计也仅需完成前端设计,故其设计投入比较少,设计方法灵活,SOPC的系统功能可裁减、易扩充,结合了SOC和CPLD、FPGA的优点。作为一种系统级芯片,SOPC具有低的设计成本和开发风险,从而获得广泛的应用。

 

7.1.1 硬核处理器

 

硬核处理器,如PowerPC、ARM处理器。硬核处理器的优势在于工作频率高,接口丰富。硬核处理器在可编程器件中不能进行裁剪,用户不能对其进行修改,同时也一直固化在可编程逻辑器件中。因此在选择FPGA器件时需要考虑器件对硬核处理器的支持。目前Xilinx公司支持硬核处理器的器件有Virtex-4,Virtex-5。对于ARM来说,Xilinx公司最新的Zynq-7000已经支持ARM® Cortex™-A9 MPCore。

 

7.1.2 软核处理器

 

软核处理器,如Xilinx公司的MicroBlaze、Altera公司的Nios II。软核处理器的最大优势是在于用户可行裁剪设计。软核处理器一般都是可配置的通用RISC处理器,很容易的与用户设计的逻辑相结合,集成到Xilinx/Altera FPGA器件中。

 

7.1.3 可编程片上系统优缺点

 

随着微电子工艺的迅速发展,可编程器件资源规模越来越大。在拥有大规模的逻辑资源、存储资源、DSP资源后,相比以前的规模,可编程逻辑器件可以做更多事情。将软核、硬核和用户逻辑资源进行无缝的连接,可缩短系统产品的开发周期、降低设计风险和成本。但是,对于大容量的可编程器件,必定需要更多的供电电源、IO管脚。因此,在板级设计,必须考虑信号完整性。在逻辑设计,逻辑开发人员需要注意时序约束的问题。

 

7.2 MicroBlaze介绍

 

MicroBlaze™ 在基于 FPGA 的软核处理器领域中处于业界领先地位,可提供高级架构选项,如 AXI 或 PLB 接口、存储器管理单元 (MMU)、指令和数据端缓存、可配置的流水线深度和浮点单元 (FPU) 等。MicroBlaze 是Xilinx免费提供的32位 RISC哈佛架构软核处理器。它具有极其灵活的架构以及丰富的指令集,是专为嵌入式应用优化而设计的,能够以最低系统成本为开发人员提供精密的处理系统。

 

7.2.1 MicroBlaze系统构架

作为完整的CPU,通过Xilinx公司提供的软核开发环境,用户可以根据需求进行自定义配置,对于Xilinx XPS 13.2软件支持的软核版本为V8.2,目前最新的版本为V8.4(XPS 14.4)。了解MicroBlaze基本结构不但有助于用户了解配置,还可以在开发过程中,更深入的优化软核配置及其软件效率。对于开发者而言,选择不同的器件,得到软核的性能是不一样的。如表7-1所示,Blaze在各个器件中的性能。

表7-1 MicroBlaze性

 

MicroBlaze 处理器 v8.40.b 的性能级别 (v14.4 XPS)

器件系列

性能优化的 MicroBlaze

添加分支优化功能

(5 级流水线)

1.38 DMIPs/MHz

性能优化的 MicroBlaze

(5 级流水线)

1.30 DMIPs/MHz

面积优化的 MicroBlaze

(3 级流水线)

1.03 DMIPS/MHz

Zynq-7000 SoC (-3)

228DMIPs

259DMIPs

196DMIPs

Virtex-7 FPGA (-3)

293DMIPs

393DMIPs

264DMIPs

Kintex-7 FPGA (-3)

317DMIPs

408DMIPs

264DMIPs

Virtex-6 FPGA (-3)

306DMIPs

384DMIPs

246DMIPs

Spartan-6 FPGA (-4)

166DMIPs

209DMIPs

152DMIPs

 

MicroBlaze软核采用了RISC架构,以及哈佛结构的32位指令和数据总线。其结构如图7-1所示。

 

7-1 MicroBlaze结构示意图

MicroBlaze结构由下述部分组成

  • ALU,完成大部分指令执行;
  • Shift,移位寄存器,执行普通的左移、右移指令;
  • Barrel Shift,桶形移寄存器,执行桶形移位指令;
  • Multiplier,乘法器,MicroBlaze提供32*32位定点乘法器单元,支持流水线操作;
  • Divider,除法器,MicroBlaze提供一个32*32位定点除法器单元;
  • Special Purpose Registers,特殊寄存器组;
  • Registers File,通用寄存器组,由32个32位寄存器组成,标号为R0~R31;
  • MicroBlaze总线接口由包括了数据总线、指令总线,支持IBM PLB总线和ARM AXI总线以及本地总线LMB。

MicroBlaze内核有如下特性与选项,

  • 容错性,其中包括纠错码 (ECC) 和锁步支持
  • LMB BRAM 存储器
  • 对内部 BRAM 和高速缓存进行校检保护
  • 浮点单元 (FPU)
  • IEEE 754 兼容的
  • 单精度
  • 内存管理单元(MMU)
  • 带有受 Linux 支持的虚拟存储器的全 MMU
  • MPU 模式,可以实现安全 RTOS 应用的区域保护
  • 指令和数据高速缓存
  • 高速缓存尺寸可配置:2kB - 64kB(基于块 RAM)
  • Microcache 尺寸可配置:64B – 1024B(基于分布式 RAM)
  • 直接映射的直写或回写操作
  • Victim 高速缓存尺寸可配置:2、4或8条高速缓存线路
  • 指令流缓冲器
  • 分支优化
  • 分支预测逻辑
  • 分支目标高速缓存
  • 执行硬件加速
  • 柱式移位器(单周期操作)
  • 整除(32 周期操作)
  • 乘法(单周期操作)
  • 指令集扩展
  • 模式比较指令
  • 机器状态寄存器设置和清空
  • 原子存取
  • 提供 Endian 转换支持
  • 硬件异常支持
  • 非对齐访问
  • 非法指令
  • 数据总线误差
  • 指令总线误差
  • 除法异常
  • 浮点异常
  • FSL 异常
  • MMU 异常
  • 中断信号-边缘或电平
  • 调试逻辑
  • 通过调试支持内核实现 JTAG 控制
  • 硬件断点多达8个
  • 硬件监视点多达8个

 

7.2.2 基于MicroBlaze系统开发流程

 

对于MicroBlaze开发,我们主要是在Xilinx提供的EDK环境(包括XPS构建硬件平台、SDK编写软件应用程序)进行开发,对于系统级构建,可以联合ISE进行,相互嵌套。

在Xilinx MicroBlaze开发中,开发者可以自定义处理器中的硬件逻辑子系统,这种定制是不能使用标准的现场微处理器或者控制芯片。硬件平台可以灵活设计为嵌入式系统中的子模块。硬件平台是由一个或者多个处理器core通过总线和外围设备相连接,XPS软件对其硬件平台的描述文件(Microprocessor Hardware Specification, .MHS)进行跟踪。

在软件开发时,板级支持包(Board Support Package, BSP),是集软件驱动器、操作系统(可选)来建立开发者的应用程序。在创建软件之前,硬件平台导入SDK时,必须建立BSP。Xilinx 嵌入式开发流程如图7-2所示。

附件一会儿上传

文章评论8条评论)

登录后参与讨论

用户229535 2018-1-27 15:49

有附件?

用户1585011 2015-7-31 17:17

xilinx sdk编程xilinx sdk编程xilinx sdk编程

用户1831161 2015-3-7 20:43

为什么解压不了啊,文件被破坏

用户136313 2014-5-3 22:41

确实少了一个PART3

用户1602812 2014-2-18 11:50

楼主写的很好 赞一个

FPGADeveloper 2013-11-29 21:11

已经上传至创芯动力FPGA 72413645

用户1508097 2013-11-16 03:28

解压需要part.3?????

用户451983 2013-11-15 12:45

楼主写的很好 赞一个
相关推荐阅读
FPGADeveloper 2017-04-11 12:03
界面好像比较清爽
界面好像比较清爽,试用下 ...
FPGADeveloper 2015-11-19 17:24
评论:@emesjx's Blog 博客中提到的“高速LVDS接口信号完整性处理实例”
学习看看...
FPGADeveloper 2015-01-02 17:16
2015年FPGA雏鹰培训计划
 ...
FPGADeveloper 2015-01-02 11:05
2015 新年新开始~
2015 新年新开始~...
FPGADeveloper 2014-09-12 23:28
AD DA 测试
AD DA       测试条件           ...
FPGADeveloper 2014-06-13 16:45
5位创始人讲述创业失败的教训
  失败,这是围绕在创业者身上很常见的事情,它常让创业者在很长一段时间内灰心失望。         但是总有一些创业者勇敢的面对失败,从而最后取得成功。我们采访了5位成功的创始...
我要评论
8
13
关闭 站长推荐上一条 /2 下一条