首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于MicroBlaze软核的FPGA片上系统设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于MicroBlaze软核的FPGA片上系统设计
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2015-4-29 15:56
|
只看该作者
基于MicroBlaze软核的FPGA片上系统设计
微处理器
,
外设
Xilinx公司的MicroBlaze 32位软处理器核是支持CoreConnect总线的标准外设集合。MicroBlaze处理器运行在150MHz时钟下,可提供125 D-MIPS的性能,非常适合设计针对网络、电信、数据通信和消费市场的复杂嵌入式系统。
1 MicroBlaze的体系结构
MicroBlaze 是基于Xilinx公司FPGA的微处理器IP核,和其它外设IP核一起,可以完成可编程系统芯片(SOPC)的设计。MicroBlaze 处理器采用RISC架构和哈佛结构的32位指令和数据总线,可以全速执行存储在片上存储器和外部存储器中的程序,并和其它外设IP核一起,可以完成可编程系统芯片(SOPC)的设计。MicroBlaze处理器采用RISC架构和哈佛结构的32位指令和数据总线,可以全速执行存储在片上存储器和外部存储器中的程序,并访问其的数据,如图1所示。
(1)内部结构
MicroBlaze内部有32个32位通用寄存器和2个32位特殊寄存器—PC指针和MSR状态标志寄存器。为了提高性能,MicroBlaze还具有指令和数据缓存。所有的指令字长都是32位,有3个操作数和2种寻址模式。指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。指令执行的流水线是并行流水线,它分为3级流水:取指、译码和执行,如图2所示。
(2)存储结构
MicroBlaze是一种大端存储系统处理器,使用如图3所式的格式来访问存储器。
(3)中断控制和调试接口
MicroBlaze可以响应软件和硬件中断,进行异常处理,通过外加控制逻辑,可以扩展外部中断。利用微处理器调试模块(MDM)IP核,可通过JTAG接口来调试处理器系统。多个MicroBlaze处理器可以用1个MDM来完成多处理器调试。
(4)快速单一连接路接口
MicroBlaze处理器具有8个输入和8个输出快速单一链路接口(FSL)。FSL通道是专用于单一方向的点到点的数据流传输接口。FLS和MicroBlaze的接口宽度是32位。每一个FSL通道都可以发送和接收控制或数据字。
2 CoreConnect技术
CoreConnect 是由IBM开发的片上总线通信链,它使多个芯片核相互连接成为一个完事的新芯片成为可能。CoreConnect技术使整合变得更为容易,而且在标准产品平台设计中,处理器、系统以及外围的核可以重复使用,以达到更高的整体系统性能。
CoreConnect总线架构包括处理器本机总线(PLB),片上外围总线(OPB),1个总线桥,2个判优器,以及1个设备控制寄存器(DCR)总线,CoreConnect总线架构如图4所示。Xilinx将为所有嵌入式处理器用户提供IBM CoreConnect许可,因为它是所有Xilinx嵌入式处理器设计的基础。MicroBlaze处理器使用了与IBM PowerPC相同的总线,用作外设。虽然MicroBlaze软处理器完成独立于PowerPC,但它让设计者可以选择芯片上的运行方式,包括一个嵌入式PowerPC,并共享它的外设。
(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中的数据通过串口发送回主机。
在EDK开发套件的XPS集成开发环境下进行系统硬件设计。在其界面环境下,添加IP核,进行系统连接和各项参数设置。由于系统中包含的硬件算法模块不是标准模块,因此工程需要设置成子模块方式,利用平台产生器,根据硬件描述文件(.MHS文件),生成嵌入式系统子模块的网表文件(.NGC)。然后在ISE设计环境下,从外部通过GPIO端口与硬件算法模块相连,从而构成整个应用系统的硬件模型。
在EDK中,每一个外设IP模块都有自己的软件函数库。利用Libgen工具,将所需外设函数数库的头文件添加进工程中,通过调用这些函数可以操作和控制这些外设。例如对串口的操作如下:
//初始化串口,设置波特率等参数,清空发送和接收缓冲,禁止中断;
XuartLite_Initialize(&UART,XPAR_MYUARTLITE_DEVICE_ID);
//发送接收数据
XuartLite_Send(&UART,&send_data,1);XUartLite_Recv(&UART,&recv_data,1);
使用标准C语言进行应用程序的开发,编写相应的算法软件,完成系统功能。软件流程如图9所示。
将编写的程序代码利用mb-gcc编译工具,根据系统的软件一并,生成.ELF文件。在编译链接之前,若选择调试方式,就会在生成文件中加入调试接口SMDstub,进行程序的硬件调试。
利用系统的硬件模型以及RAM块的组织结构文件、ELF文件和用户结束文件,应用FPGA综合实现工具(如Xilinx XST)进行综合,然后下载生成的配置BIT文件
到目标板上。利用EDK中提供的GDB调试工具可以进行程序调试。有两种调试方法:软件仿真和硬件调试。软件仿真可以进行程序的功能调试,在开发工具内部就可以进行,不需要硬件支持。硬件调试就是通过JTAG接口或串口(可在硬件设计时选择),连接到目标板上的应用系统中的XMD调试接口,将软件程序下载到系统中进行调试。本课题使用的目标板上的主芯片为Xilinx Spartan IIE 30万门的FPGA,系统时钟为50MHz。实际运行完全满足设计要求。
结语
采用FPGA和MicroBlaze进行嵌入式系统设计,实现了多片专用芯片的功能,大大缩小了接收机体积,便于系统实现小型化、集成化。捕获及跳频同步等算法采用硬件实现,加快了捕获跟踪速度。实验结果表明,FPGA系统设计是正确可行的。如果在系统中配置大容量的SDRAM,加入以太网或USB等高速通信接口,将实时操作系统运行于处理器上,就可以构建一个较为完善的,基于FPGA的嵌入式系统。这将在网络、通信、消费类产品等多方面有着广阔的应用前景。
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议