MicroBlaze的那些事儿1:MicroBlaze的体系架构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
前言:Nios II很多人都知道,是Altera的32位软核,但MicroBlaze知道的人不多,是对头公司Xilinx与Nios II大擂台的产品。“blaze”是火焰的意思,可惜MicroBlaze不如它的名字一样,引起太大的关注。一方面是Xilinx的推广不力,另一方面是资料太少。也看过MicroBlaze和Nios II比较的文章,最后总是说其实两者难分伯仲,其实主要还是看你FPGA用哪家公司的,唉,我算倒霉,自学的是用Xilinx的芯片,也只好投入MicroBlaze的怀抱,下面就讲讲MicroBlaze的那些事儿J
Xilinx公司其实有三个核:
Picobalze 8位软核(真的很难用,没有C编译器,编程用汇编,资料超少,具体见之前我blog文章)
MicroBlaze 32位软核(下面文章的主角)
PowerPC 32位硬核,只存在于Xilinx高端系列芯片上(Virtex-4和Virtex-5)。当你见到人家叫PPC时候,千万不要以为是智能手机,其实PowerPC也简称PPC。
MicroBlaze的体系结构
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
MicroBlaze V7.0核心框图
要注意MicroBlaze核心框图,MicroBlaze V7.0已经有MMU了,意味着MicroBlaze可以运行依赖MMU的操作系统,像Linux、WindowCE等。
EDK6.2的MicroBlaze核心框图
MicroBlaze的版本号是同EDK的版本号相联系的,我用的EDK 9.2i MicroBlaze版本是v7.0。而从上面框图可以看到EDK6.2的MicroBlaze是没有MMU的,因此也不能运行Linux,只能运行ucLinux。目前最新版本是MicroBlaze v7.20。要使用相关应用,先更新一下EDK的版本(软件安装文件越来越大L)。
不同版本MicroBlaze的性能
还要注意MicroBlaze支持的器件系列,当然首先是Xilinx的FPGA器件(这不废话!其实我也不知道NIOS II 能不能移植到Xilinx FPGA上来)
Spartan-3E / Spartan-II / Spartan-3 / Spartan-IIE / Virtex-4 FX /
Virtex-4 LX / Virtex-4 SX / Virtex-5 FX / Virtex-5 LX / Virtex-5 SX /
Virtex-E / Virtex-II / Virtex-II Pro
如果你手上只是CoolRunner-II的CPLD,我建议你尝试一下用Picobalze作控制。可以参考我下面文章:
PicoBlaze 学习笔记3:PicoBlaze8位处理器指令集
PicoBlaze 学习笔记5:PicoBlaze设计例子(LED 闪烁)
PicoBlaze 学习笔记6:利用pBlazIDE对PicoBlaze汇编(psm)进行仿真
PicoBlaze 学习笔记7:PicoBlaze学习资料汇总
还有一个简便的方法就是用51单片机控制FPGA/CPLD(汗!这是最蠢得办法,毕竟浪费了FPGA/CPLD的资源)。当然这样的蠢事我也干过:
51单片机与FPGA接口逻辑设计(原创)
还有一个最最绝的方法,就是加一片ARM7,甚至ARM9,来代替MicroBlaze,当然我都不知道说什么了。
MicroBlaze的总线接口
MicroBlaze支持的外设接口示意图
CoreConnect是由IBM开发的片上总线通信链,它使多个源的芯片核相互连接成为一个完整的新芯片成为可能。CoreConnect技术使整合变得更为容易,而且在标准产品平台设计中处理器、系统以及外围的核可以重复使用,以达到更高的整体系统性能。
MicroBlaze v7.0软核支持的借口标准
? A 32-bit version of the PLB V4.6 interface (see IBM’s 128-Bit Processor Local Bus Architectural Specifications, Version 4.6).
? A 32-bit version of the OPB V2.0 bus interface (see IBM’s 64-Bit On-Chip Peripheral Bus, Architectural Specifications, Version 2.0)
?LMB provides simple synchronous protocol for efficient block RAM transfers
? FSL provides a fast non-arbitrated streaming communication mechanism
?XCL provides a fast slave-side arbitrated streaming interface between caches and external memory controllers
?Debug interface for use with the Microprocessor Debug Module (MDM) core
?Trace interface for performance analysis
MicroBlaze内部总线结构
DPLB: Data interface, Processor LocalBus
DOPB: Data interface, On-chip Peripheral Bus
DLMB: Data interface, Local Memory Bus (BRAM only)
IPLB: Instruction interface, Processor Local Bus
IOPB: Instruction interface, On-chip Peripheral Bus
ILMB: Instruction interface, Local Memory Bus (BRAM only)
MFSL 0..15: FSL master interfaces
SFSL 0..15: FSL slave interfaces
IXCL: Instruction side Xilinx CacheLink interface (FSL master/slave pair)
DXCL: Data side Xilinx CacheLink interface (FSL master/slave pair)
Core: Miscellaneous signals for: clock, reset, debug, and trace
上面关于总线的相关知识只是复制于
《MicroBlaze Processor Reference Guide Embedded Development Kit EDK 9.2i》,我对这方面也不太了解,看来要慢慢学习了J
《MicroBlaze的那些事儿》系列未完待续…….尽请留意我blog
用户563816 2009-8-27 23:33
用户158720 2009-8-24 09:40