(1)片上外设总线(OPB)
内核通过片上外设总线(OPB)来访问低速和低性能的系统资源。OPB是一种完全同步总线,它的功能处于一个单独的总线层级。它不是直接连接到处理器内核的。OPB接口提供分离的32位地址总线和32位数据总线。处理器内核可以借助“PLB to OPB”桥,通过OPB访问从外设。作为OPB总线控制器的外设可以借助“OPB to PLB”桥,通过PLB访问存储器。
(2)处理器本机总线(PLB)
PLB接口为指令和数据一侧提供独立的32位地址和64位数据总线。PLB支持具有PLB总线接口的主机和从机通过PLB信号连接来进行读写数据的传输。总线架构支持多主从设备。每一个PLB主机通过独立的地址总线、读数据总线和写数据总线与PLB连接。PLB从机通过共享但分离的地址总线、读数据总线和写数据总线与PLB连接,对于每一个数据总线都有一个复杂的传输控制和状态信号。为了允许主机通过竞争来获得总线的所有权,有一个中央判决机构来授权对PLB的访问。
(3)设备控制寄存器总线(DCR)
设备控制寄存器总线(DCR)是为在CPU通用寄存器(GPRs)和DCR的从逻辑设备控制寄存器(DCRs)之间传输数据而设计的。
3 MicroBlaze的开发
应用EDK(嵌入式开发套件)可以进行MicroBlaze IP核的开发。工具包中集成了硬件平台生产器、软件平台产生器、仿真模型生成器、软件编译器和软件调试工具等。EDK中提供一个集成开发环境XPS(Xilinx平台工作室),以便使用系统提供的所有工具,完成嵌入式系统开发的整个流程。EDK中还带有一些外设接口的IP核,如LMB、OPB总线接口、外部存储控制器、SDRAM控制器、UART、中断控制器、定时器等。利用这些资源,可以构建一个较为完善的嵌入式微处理器系统。
在FPGA上设计的嵌入式系统层次结构为5级。可在最低层硬件资源上开发IP核,或或已开发的IP核搭建嵌入式系统,这是硬件开发部件;开发IP核的设备驱动、应用接口(API)和应用层(算法),属软件开发内容。
利用MicroBlaze构建基本的嵌入式系统如图5所示。通过标准总线接口—LMB总线和OPB总线的IP核,MicroBlaze就可以和各种外设IP核相连。
EDK中提供的IP核均有相应的设备驱动和应用接口,使用者只需利用相应的函数库,就可以编写自己的应用软件和算法程序。对于用户自己开发的IP核,需要自己编写相应的驱动和接口函数。软件设计流程如图6所示。
4 MicroBlaze的应用
在软件无线电系统中,一般采用“微处理器+协处理器”结构。微处理器一般使用通用DSP,主要完成系统通信和基带处理等工作;协处理器用FPGA实现,主要完成同步和预处理等底层算法的运算任务。在本课题中,采用的基带处理算法比较简单,应用软处理器IP核代替DSP,在一片FPGA内就能实现整个系统的设计。这样可以简化系统的结构,提高系统的整体性能。
本课题的系统设计如图7和图8所示,FPGA片上系统主要完成两个任务—发送和接收数据。对于发送任务,FPGA完成硬件算法的初始化,接收串口数据,并将数据存储在双口SRAM中,系统硬件算法部分对双口SRAM中数据进行基带处理,并将结果送给D/A转换器。对于接收任务,FPGA接收A/D转换器送来的数据,进行基带处理,并将数据存储在双口SRAM中,把存储在双口SRAM中的数据通过串口发送回主机。