《基于FSL总线及MicroBlaze系统的IDCT变换的实例》由会员分享,可在线阅读,更多相关《基于FSL总线及MicroBlaze系统的IDCT变换的实例(8页珍藏版)》请在金锄头文库上搜索。
1、基于FSL总线及MicroBlaze系统的IDCT变换的实例 摘要:MicroBlaze是基于Xilinx企业新一代FPGA器件的软处理核。其FSL总线是FIFO单向链路,能够实现用户自定义IP核和MicroBlaze内部通用寄存器的高速直连。本文对MicroBlaze的几个关键总线接口进行比较,具体分析,介绍FSL总线的结构、特点、工作原理和配置方法。经过一个IDCT的应用实例,详细描述在FPGA片上系统设计中利用FSL高速总线整适用户自定义IP核,实现软处理器系统硬件加速的方法及步骤。关键字:FPGA;FSL总线;软核处理器;IDCT1引言伴随半导体制造工艺的发展,以FPGA为代表的新一代
2、可编程逻辑器件的逻辑资源密度不停增加,使得可编程技术很自然地就和系统芯片集成技术的结合日益紧密,并逐步成为可配置平台技术的主流。MicroBlaze软处理器是Xilinx企业为其FPGA器件开发的,其特有的FSL总线,能够实现用户IP核和软处理器的高速连接,为设计者提供了一条处理这类问题的路径。2MicroBlaze软处理器核概述MicroBlaze软核是一个针对Xilinx FPGA器件而优化的功效强大的32位处理器,支持CoreConnect总线的标准外设集合,采取RISC架构和哈佛结构的32位指令和数据总线,内部有32个通用寄存器R0-R3、2个特殊寄存器程序指针和处理器状态寄存器、一个
3、ALU单元、1个移位单元和两级中止响应单元等模块,还含有3/5级流水线、桶形移位器、内存管理/内存保护单元、浮点单元、高速缓存、异常处理核调试逻辑等。MicroBlaze总线接口MicroBlaze软处理器核含有丰富的接口资源,能够采取以下的接口和外设或内存进行数据交互。PLBv64PLB是IBM CoreConnect架构的一部分,是处理器连接到高性能外围设备的高性能同时总线。含有以下特征:PLB数据总线是64位宽,地址总线是32位宽。支持最多16个主设备。含有4级动态优先级。含有3周期仲裁。总线看门狗。PLB协议兼容。支持最多16个从设备。LMBLMB起初是用来存取片上块RAM的同时总线。
4、它使用最少的控制信号和一个用来确保块RAM在一个时钟周期被存取的简单协议。全部的LMB信号全部是高电平有效。XCLXilinx CacheLink是一个高性能的外部内存访问的方案。MicroBlaze的缓存接口设计为一个直接经过内嵌的FSL接口连接到内存的控制器。FSLMicroBlaze 最多支持16个FSL的接口。每个FSL接口由一个输入口和一个输出口。FSL接口关键用于点对点单向的数据流传输。FSL的特点是效率高而且占用的资源比较少。调试接口调试接口设计成和Xilinx Microprocessor Debug Module核相连,经过参数设置,开发人员只使用特定应用所需的处理器特征。P
5、LB总线和FSL总线比较将用户IP核整合到基于MicroBlaze的嵌入式软核处理器系统中,通常有两种方法:一个是将IP核连接到PLB总线;第二种方法就是将用户IP连接到MicroBlaze专用的FSL总线上。二者的比较如表1所表示。从表1可见,PLB总线适合用于将低速和低性能要求的设备连接到MicroBlaze系统中,而FSL总线则适合用于将时间要求高的用户IP核整合到基于MicroBlaze的软核处理器系统中去,以实现硬件加速。3FSL总线FSL总线介绍FSL_V20快速单连接总线是一个单向的点对点通讯总线,可用来连接FPGA上的任意两个带有FSL总线接口的设计元素并提供二者间的快速通讯信
6、道。Xilinx MicroBlaze处理器最多可支持8个FSL主设备接口和8个FSL从设备接口。这些接口被用于处理器的寄存器堆和FPGA片内的硬件之间的数据传输,单个数据传输操作消耗的CPU时间不超出2个时钟周期。图2所表示。FSL总线具有以下关键特征: 实现了单向的、点对点的、基于FIFO的通讯; 提供了不共享的、无需仲裁的通讯机制,能够用于在带有FSL接口的主设备和从设备之间快速传送数据; 提供了额外的控制位用于注释被传输数据,这个控制位对于从设备有多个用途; 支持的FIFO深度最小为1,最大为8k; 支持同时和异步两种FIFO模式,这许可FSL的主从端能以不一样的速率工作; 支持两种F
7、IFO实现方法:双端口Block RAM或LUT RAM,SRL16移位寄存器。FSL总线的读写操作时序FSL总线有一个主设备端和一个从设备端,其结构类似于一个FIFO,主设备端是FIFO的数据写入端,从设备端是FIFO的数据读出端。FSL 总线和FIFO一样提供数据有效标志和满标志。FSL总线的读写时序图3和图4所表示。4自定义IDCT核和FSL总线连接应用本例是尝试经过FSL总线技术,将实现特定函数功效的用户自定义IP核整合到MicroBlaze系统中,以实现硬件加速的目标。FSL应用描述图5所表示,IDCT核经过FSL_0和FSL_1两条FSL总线和MicroBlaze软核相连。整个嵌入
8、式系统包含了MicroBlaze微处理器,两条FSL总线,IDCT用户自定义IP核,一条PLB总线,PLB总线上分别外挂了UART模块和Debug模块,和片上块RAM。硬件实现IDCT变换关键是强调高性能是能够达成的,一维IDCT变换在软件中实现需要很高的实施时间,因为C程序关键包含很多循环结构和跳转指令,无形中加大了处理器的实施时间,对于实时处理来说是不可行的。因此经过硬件的特有结构能够降低很多的时钟周期,缩短实施时间。IDCT核需要快要150个LUTS和64个时钟周期。经过软件程序从块RAM中写入8个数据到FSL_0总线中,再经过FSL_0总线写入到IDCT处理核。IDCT计算出的结果再经
9、过C指令写入到FSL_1总线中,读入到块RAM,这么完成一次IDCT计算过程。MicroBlaze关键负责读写指令的工作,起到命令的作用,FSL总线负责数据的传输,而IDCT的作用则为计算数据。实现步骤图6显示了IDCT核连接MicroBlaze FSL总线接口的方法。IDCT核为VHDL代码,当然也能够用网表文件替代。其中,FSL接口关键提供控制信号,外部的系统时钟信号和复位信号则很轻易集成到系统中。另外,VHDL源代码,MPD文件和PAO文件全部是必需添加到系统中。MPD文件关键定义外设接口信息,PAO文件包含可综合的HDL代码和定义编译分析的次序。这些文件要保留在特定的路径中。XPS工程
10、的文件结构如7图所表示。其中,xil_idct_v1_00_a/data文件夹包含MPD和PAO文件vhdl文件夹包含用户自定义IP核的源代码。假如全部文件全部定义正确,用户就能够经过XPS软件将这些硬件结构文件编译为比特流文件,并下载到硬件电路中。FSL总线使用方法现在Xilinx提供的FSL总线IP核的版本是FSL_V20。两个设备要使用FSL进行数据传输,就必需分别作为主设备或从设备连接到FSL核上。假如需要进行双向的传输,只要两个设备分别作为主从设备,使用两个FSL核连接即可。不论是作为主设备还是从设备全部需要经过在设备的微处理器外设描述文件中进行对应的定义,以实现所需类型的FSL接口
11、。下面这段代码就是一个分别定义了FSL主设备接口MFSL和从设备接口SFSL的MPD文件:BEGIN xil_idct# Peripheral OptionsOPTION IPTYPE = PERIPHERALOPTION IMP_NETLIST = TRUEOPTION HDL = VHDLOPTION ARCH_SUPPORT_MAP =OPTION IP_GROUP = MICROBLAZE:PPC:USER# Bus InterfacesBUS_INTERFACE BUS = SFSL, BUS_TYPE =SLAVE, BUS_STD = FSLBUS_INTERFACE BUS =
12、 MFSL, BUS_TYPE =MASTER, BUS_STD = FSL# Generics for VHDL or Parameters for VerilogPARAMETER C_DWIDTH = 32, DT = INTEGER# PortsPORT FSL_Clk = , DIR = I, BUS = SFSL:MFSL, SIGIS = CLKPORT FSL_Rst = OPB_Rst, DIR = I, BUS = SFSL:MFSL, SIGIS = RSTPORT FSL_S_Clk = FSL_S_Clk, DIR = O, BUS = SFSL, SIGIS = C
13、lkPORT FSL_S_Read = FSL_S_Read, DIR = O, BUS = SFSLPORT FSL_S_Data = FSL_S_Data, DIR = I, VEC = 0:, BUS = SFSLPORT FSL_S_Control = FSL_S_Control, DIR = I, BUS = SFSLPORT FSL_S_Exists = FSL_S_Exists, DIR = I, BUS = SFSLPORT FSL_M_Clk = FSL_M_Clk, DIR = O, BUS = MFSL, SIGIS = ClkPORT FSL_M_Write = FSL
14、_M_Write, DIR = O, BUS = MFSLPORT FSL_M_Data = FSL_M_Data, DIR = O, VEC = 0:, BUS = MFSLPORT FSL_M_Control = FSL_M_Control, DIR = O, BUS = MFSLPORT FSL_M_Full = FSL_M_Full, DIR = I, BUS = MFSLEND以上就是整个设计的实现过程,在实际应用中依据详细情况还可经过FSL添加更多的用户自定义IP核到MicroBlaze软核中去。5结束语在嵌入式系统的开发中,直接将用户自定义IP核添加四处理器核中,不但受四处理器原架构的束缚,还有可能降低处理器的性能;而经过和内部寄存器直接相连的FSL接口,用户自定义IP核能够在不破坏处理器原有结构的情况下,紧密地和MicroBlaze软核结合在一起,实现嵌入式系统的整合,从而在不提升系统主频的前提下经过IDCT核的计算功效实现硬件加速的问题。