MicroBlaze的体系结构
MicroBlaze就是基于Xilinx公司FPGA的微处理器IP核,利用它和其他外设IP核一起,就可以完成可编程系统芯片(SOPC)的设计。MicroBlaze处理器是采用RISC架构和哈佛结构的独立32位指令和数据总线,可以全速度执行存储在片上存储器和外部存储器中的程序并访问其中的数据。其内核结构如图1所示。
● 内部结构
MicroBlaze内部有32个32位通用寄存器和2个32位特殊寄存器——PC指针和MSR状态标志寄存器。为了提高性能,MicroBlaze还具有指令和数据缓存。所有的指令字长都是32位,有三个操作数和两种寻址模式。指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。指令执行的流水线是并行流水线,它分为3级流水:取指、译码和执行。
CoreConnect技术
CoreConnect是由IBM开发的片上总线通信链,它使多个源的芯片核相互连接成为一个完整的新芯片成为可能。CoreConnect技术使整合变得更为容易,而且在标准产品平台设计中处理器、系统以及外围的核可以重复使用,以达到更高的整体系统性能。
CoreConnect总线架构包括处理器本机总线(PLB)、片上外围总线(OPB)、一个总线桥、两个判优器,以及一个设备控制寄存器(DCR)总线,CoreConnect总线架构如图4所示。Xilinx将为所有嵌入式处理器用户提供IBM CoreConnect许可,因为它是所有Xilinx嵌入式处理器设计的基础。MicroBlaze处理器使用了与IBM PowerPC相同的总线,用作外设。虽然MicroBlaze软处理器完全独立于PowerPC,但它让设计者可以选择芯片上运行的方式,包括一个嵌入式PowerPC,并共享它的外设。
● CoreConnect体系结构——片上外设总线(OPB)
内核通过片上外设总线(OPB)来访问低速和低性能的系统资源。OPB是一种完全同步总线,它的功能处于一个单独的总线层级。它不是直接连接到处理器内核。OPB接口提供分离的32位地址总线和32位数据总线。处理器内核可以借助“PLB to OPB”桥,通过OPB访问从外设。作为OPB总线控制器的外设可以借助“OPB to PLB”桥,通过PLB访问存储器。
● CoreConnect体系结构——处理器本机总线(PLB)
PLB接口为指令和数据一侧提供独立的32位地址和64位数据总线。PLB支持具有PLB总线接口的主机和从机通过PLB信号连接来进行读写数据的传输。总线架构支持多主从设备。每一个PLB主机通过独立的地址总线、读数据总线和写数据总线与PLB连接。PLB从机通过共享的但是分离的地址总线、读数据总线和写数据总线与PLB连接,对于每一个数据总线都有一个复杂的传输控制和状态信号。
为了允许主机通过竞争来获得总线的所有权,有一个中央判决机构授权对PLB的访问。这种判决机构有足够的灵活性可以提供各种各样的优先级。
● CoreConnect体系结构——设备控制寄存器总线(DCR)
设备控制寄存器总线(DCR)是为在CPU通用寄存器(GPR)和DCR的从逻辑设备控制寄存器(DCR)之间的数据传输而设计。
MicroBlaze的开发
应用EDK(嵌入式开发套件)可以进行MicroBlaze IP核的开发,构建嵌入式系统。工具包中集成了硬件平台产生器、软件平台产生器、仿真模型生成器、软件编译器和软件调试工具等,EDK中提供一个集成开发环境XPS(Xilinx平台工作室),以便使用系统提供的所有工具,完成嵌入式系统开发的整个流程。EDK中还带有一些外设接口的IP核,如LMB、OPB总线接口、外部存储控制器、SDRAM控制器、UART、中断控制器、定时器等,利用这些资源,可以构建一个较为完善的嵌入式微处理器系统。
在FPGA上设计的嵌入式系统的层次结构分为5级。其中,可在最低层硬件资源上开发IP核,或利用已开发的IP核搭建嵌入式系统的硬件开发部分;开发IP核的设备驱动、应用接口(API)和应用层(算法)属软件开发内容。
利用MicroBlaze构建基本的嵌入式系统,如图3所示。通过标准总线接口-LMB总线和OPB总线的IP核,MicroBlaze就可以和各种外设IP核相连。
EDK中提供的IP核均有相应的设备驱动和应用接口,使用者只需利用相应的函数库,编写自己的应用软件和算法程序。对于用户自己开发的IP核,就需要自己编写相应的驱动和接口函数。软件设计流程如图4所示。
MicroBlaze的应用
在软件无线电系统中,一般采用“微处理器+协处理器”结构,微处理器一般使用通用DSP,主要完成系统通信和基带处理等工作;协处理器用FPGA实现,主要完成同步和预处理等底层算法的运算任务。在本课题中采用的基带处理算法比较简单,应用软处理器IP核代替DSP,在一片FPGA内就能实现整个系统的设计。这样可以简化系统结构,提高系统的整体性能。
本课题的系统设计如图5和图6所示,FPGA片上系统主要完成两个任务——发送和接收数据。对于发送任务,FPGA完成硬件算法的初始化;接收串口数据,并将数据存储在双口SRAM中;系统硬件算法部分对双口SRAM中数据进行基带处理,并将结果送给D/A转换器;对于接收任务,FPGA接收A/D转换器送来的数据,进行基带处理,并将数据存储在双口SRAM中;把存储在双口SRAM中的数据通过串口发送回主机。
在EDK开发套件的XPS集成开发环境下进行系统硬件设计。在其界面环境下,添加IP核,进行系统连接和各项参数设置。由于系统中包含的硬件算法模块不是标准模块,因此工程需要设置成子模块方式,利用平台产生器,根据硬件描述文件(.MHS文件),生成嵌入式系统子模块的网表文件(.NGC),然后在ISE设计环境下,从外部通过GPIO端口与硬件算法模块相连,从而构成整个应用系统的硬件模型。
在EDK中的每一个外设IP模块都有自己的软件函数库,利用Libgen工具将所需要的外设函数库的头文件添加进工程中,通过调用这些函数可以操作和控制这些外设。
结束语
采用FPGA和MicroBlaze进行嵌入式系统设计实现了多片专用芯片的功能,大大缩小了接收机体积,便于系统实现小型化、集成化。捕获及跳频同步等算法采用硬件实现,加快了捕获跟踪速度。实验结果表明FPGA系统设计是正确可行的。如果在系统中配置大容量的SDRAM,加入以太网或USB等高速通信接口,将实时操作系统运行于处理器上,就可以构建一个较为完善的基于FPGA的嵌入式系统,将在网络、通信、消费类产品等多方面有着广阔的应用前景。
参考文献
1 Xilinx,“Embedded System Tools Guide”EDK
(v6.1)September 29,2003
2 Xilinx,“MicroBlaze Processor Reference Guide”
EDK(v6.1)September 29,2003
3 夏宇闻.Verilog数字系统设计教程.北京航
空航天大学出版社,2003
文章评论(0条评论)
登录后参与讨论