基于MicroBlaze的16点fft的设计实现
时间:11-10
来源:互联网
点击:
一、MicroBlaze的体系结构
MicroBlaze是基于Xilinx 公司FPGA 的微处理器IP 核和其它外设IP 核一起可以完成可编程系统芯片(SOPC)的设计MicroBlaze 处理器采用RISC 架构和哈佛结构的32位指令和数据总线可以全速执行存储在片上存储器和外部存储器中的程序并访问其中的数据。
(1)内部结构。MicroBlaze 内部有32个32位通用寄存器和2 个32位特殊寄存器——PC指针和MSR状态标志寄存器。为了提高性能,MicroBlaze还具有指令和数据缓存所有的指令字长都是32位,有3个操作数和2种寻址模式。指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。指令执行的流水线是并行流水线,它分为3级流水:取指、译码和执行。
(2)存储结构。MicroBlaze 是一种大端存储系统处理器,使用如图1所示的格式来访问存储器。
(3)中断控制和调试接口。MicroBlaze可以响应软件和硬件中断,进异常处理,通过外加控制逻辑,可以扩展外部中断。利用微处理器调试模块( MDM)IP核可通过JTAG 接口来调试处理器系统。多个MicroBlaze 处理器可以用1个MDM来完成多处理器调试。
(4)快速单一链路接口。MicroBlaze处理器具有8个输入和8个输出快速单一链路接口(FSL) 。FSL通道是专用于单一方向的点到点的数据流传输接口。FLS 和MicroBlaze 的接口宽度是32位,每一个FSL通道都可以发送和接收控制或数据字。
二、FFT处理器
FFT处理器主要对数据进行蝶形运算及数据存取。设计采用基2蝶形运算器,包括存储器ROM和RAM,控制器及地址产生单元等。其FFT的结构模型如图1所示。
三、基于MicroBlaze和FPGA的开发
(1)基本开发流程。
应用EDK(嵌入式开发套件)可以进行MicroBlaze IP 核的开发。工具包中集成了硬件平台产生器、软件平台产生器、仿真模型生成器、软件编译器和软件调试工具等。EDK 中提供一个集成开发环境XPS(Xilinx 平台工作室) ,以便使用系统提供的所有工具,完成嵌入式系统开发的整个流程。EDK 中还带有一些外设接口的IP核,如LMB、 OPB 总线接口、外部存储控制器、SDRA M 控制器、UART、 中断控制器、定时器等。利用这些资源,可以构建一个较为完善的嵌入
式微处理器系统。在FPGA上设计的嵌入式系统层次结构为5 级。可在最低层硬件资源上开发IP核,或利用已开发的IP 核搭建嵌入式系统,这是硬件开发部分;开发IP 核的设备驱动、应用接口(API)和应用层(算法),属软件开发内容。通过标准总线接口LMB 总线和OP B总线的IP核,microBlaze 就可以和各种外设IP 核相连。EDK中提供的IP核均有相应的设备驱动和应用接口,使用者只需利用相应的函数库就可以编写自己的应用软件和算法程序对于用户自己开发的IP 核需要自己编写相应的驱动和接口函数软件设计流程。
(2)FFT的地址产生单元。
地址产生单元主要是跟踪FFT运算进度,进而更好地调配存储单元,及控制各相关模块的运行。1.通过计数器来跟踪记录FFT计算的状况。为方便对存储单元操作,采用计数器来记录FFT的计算情况。8点的FFT,每个单元包括4个数据,所以用一个4位计数器Butterfly表示全部的运算状态。一个2位级计数器Stage表示三级蝶形单元。当Butterfly计数为4时,级计数器Stage加1,当Stage计数为3时,表示FFT的计算操作完成。当Butterfly计数为15时,输入输出信号置“1”,反馈回控制器输入输出操作完成。
2.ROM读取的地址。旋转因子Wkn存储在ROM中,由实部cos(2kPi/8)和虚部sin(2kPi/8)两部分组成,读取由时钟单元的信号控制。可以看出每一级参加蝶形运算的旋转因子不同。
3.RAM数据地址。在整个地址单元中,分配RAM中数据的地址是重点,8点蝶形运算共需l6个存储单元,数据地址的产生遵循一定规则。
四、结论
本文采用FPGA 和MicroBlaze 进行嵌入式系统设计,文中在分析了FFT算法后,描述了运算的蝶形单元,地址生成单元及FFT的实现过程。从实际设计出发,完成了基于FPGA的单精度浮点运算器的FFT设计,精度达到10-6。大大缩小了接收机体积,便于系统实现小型化、集成化。捕获及跳频同步等算法采用硬件实现,加快了捕获跟踪速度。实验结果表明FPGA系统设计是正确可行的。
MicroBlaze是基于Xilinx 公司FPGA 的微处理器IP 核和其它外设IP 核一起可以完成可编程系统芯片(SOPC)的设计MicroBlaze 处理器采用RISC 架构和哈佛结构的32位指令和数据总线可以全速执行存储在片上存储器和外部存储器中的程序并访问其中的数据。
(1)内部结构。MicroBlaze 内部有32个32位通用寄存器和2 个32位特殊寄存器——PC指针和MSR状态标志寄存器。为了提高性能,MicroBlaze还具有指令和数据缓存所有的指令字长都是32位,有3个操作数和2种寻址模式。指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。指令执行的流水线是并行流水线,它分为3级流水:取指、译码和执行。
(2)存储结构。MicroBlaze 是一种大端存储系统处理器,使用如图1所示的格式来访问存储器。
(3)中断控制和调试接口。MicroBlaze可以响应软件和硬件中断,进异常处理,通过外加控制逻辑,可以扩展外部中断。利用微处理器调试模块( MDM)IP核可通过JTAG 接口来调试处理器系统。多个MicroBlaze 处理器可以用1个MDM来完成多处理器调试。
(4)快速单一链路接口。MicroBlaze处理器具有8个输入和8个输出快速单一链路接口(FSL) 。FSL通道是专用于单一方向的点到点的数据流传输接口。FLS 和MicroBlaze 的接口宽度是32位,每一个FSL通道都可以发送和接收控制或数据字。
二、FFT处理器
FFT处理器主要对数据进行蝶形运算及数据存取。设计采用基2蝶形运算器,包括存储器ROM和RAM,控制器及地址产生单元等。其FFT的结构模型如图1所示。
三、基于MicroBlaze和FPGA的开发
(1)基本开发流程。
应用EDK(嵌入式开发套件)可以进行MicroBlaze IP 核的开发。工具包中集成了硬件平台产生器、软件平台产生器、仿真模型生成器、软件编译器和软件调试工具等。EDK 中提供一个集成开发环境XPS(Xilinx 平台工作室) ,以便使用系统提供的所有工具,完成嵌入式系统开发的整个流程。EDK 中还带有一些外设接口的IP核,如LMB、 OPB 总线接口、外部存储控制器、SDRA M 控制器、UART、 中断控制器、定时器等。利用这些资源,可以构建一个较为完善的嵌入
式微处理器系统。在FPGA上设计的嵌入式系统层次结构为5 级。可在最低层硬件资源上开发IP核,或利用已开发的IP 核搭建嵌入式系统,这是硬件开发部分;开发IP 核的设备驱动、应用接口(API)和应用层(算法),属软件开发内容。通过标准总线接口LMB 总线和OP B总线的IP核,microBlaze 就可以和各种外设IP 核相连。EDK中提供的IP核均有相应的设备驱动和应用接口,使用者只需利用相应的函数库就可以编写自己的应用软件和算法程序对于用户自己开发的IP 核需要自己编写相应的驱动和接口函数软件设计流程。
(2)FFT的地址产生单元。
地址产生单元主要是跟踪FFT运算进度,进而更好地调配存储单元,及控制各相关模块的运行。1.通过计数器来跟踪记录FFT计算的状况。为方便对存储单元操作,采用计数器来记录FFT的计算情况。8点的FFT,每个单元包括4个数据,所以用一个4位计数器Butterfly表示全部的运算状态。一个2位级计数器Stage表示三级蝶形单元。当Butterfly计数为4时,级计数器Stage加1,当Stage计数为3时,表示FFT的计算操作完成。当Butterfly计数为15时,输入输出信号置“1”,反馈回控制器输入输出操作完成。
2.ROM读取的地址。旋转因子Wkn存储在ROM中,由实部cos(2kPi/8)和虚部sin(2kPi/8)两部分组成,读取由时钟单元的信号控制。可以看出每一级参加蝶形运算的旋转因子不同。
3.RAM数据地址。在整个地址单元中,分配RAM中数据的地址是重点,8点蝶形运算共需l6个存储单元,数据地址的产生遵循一定规则。
四、结论
本文采用FPGA 和MicroBlaze 进行嵌入式系统设计,文中在分析了FFT算法后,描述了运算的蝶形单元,地址生成单元及FFT的实现过程。从实际设计出发,完成了基于FPGA的单精度浮点运算器的FFT设计,精度达到10-6。大大缩小了接收机体积,便于系统实现小型化、集成化。捕获及跳频同步等算法采用硬件实现,加快了捕获跟踪速度。实验结果表明FPGA系统设计是正确可行的。
- FPGA协同处理的优势(04-29)
- 生成有效的板支持包(04-29)
- 设计灵活、高性能的嵌入式系统(05-04)
- 采用Virtex-5嵌入式三模以太网MAC进行设计(05-04)
- 使用IDELAY 实现高效8 倍过采样异步串行数据恢复(08-10)
- 基于CPLD译码的DSP二次Bootloader方法(04-08)