FSL总线IP核及其在MicoBlaze系统中的应用.docx
-
资源ID:17778743
资源大小:21.94KB
全文页数:13页
- 资源格式: DOCX
下载积分:15.18金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
FSL总线IP核及其在MicoBlaze系统中的应用.docx
FSL总线IP核及其在MicoBlaze系统中的应用caojing导语:MicroBlaze是基于Xilinx公司新一代FPGA器件的软处理器核。摘要:MicroBlaze是基于Xilinx公司新一代FPGA器件的软处理器核。其FSL总线是FIFO单向链路,可以实现用户自定义IP核与MicroBlaze内部通用存放器的高速直连。本文对MicroBlaze的几种主要总线接口摘要进展比拟,具体分析、介绍FSL总线的构造、特点、工作原理和配置方法。通过一个矢量汉字复原的应用实例,详细描绘在FPGA片上系统设计中利用FSL高速总线整合用户自定义IP核,实现软处理器系统硬件加速的方法及步骤。关键词:FPGAIP核FSL总线软核处理器MicroBlage随着半导体制造工艺的开展,以FPGA现场可编程门阵列为代表的新一代可编程逻辑器件PLD的逻辑资源密度不断增加,使得可编程技术很自然地就与系统芯片集成技术SoC的结合日益严密,并逐步成为可配置平台技术configurableplatform的主流。目前,各主要PLD厂商基于FPGA的可配置平台固然大都采用“微处理器十可编程逻辑的架构,但在开发基于FPGA的嵌入式系统时,却采用了各自不同的方式来整合处理器系统与片上的其他逻辑资源大多数以用户IP核形式出现。MicroBlaze软核处理器是Xilinx公司为其FPGA器件开发的,其特有的FSLFastSimplexLink,快速单向链路总线,可以实现用户IP核与软核处理器的高速连接,为设计者提供了一条解决这类问题的途径。1MicroBlaze软核处理器1.1概述MicroBlaze是基于Xilinx公司FPGA的微处理器软IP核。它采用RISC架构和哈佛构造的32位指令和数据总线,内部有32个32位宽度的通用存放器;在150MHz的时钟频率下,最高可到达125DMIPS的处理性能,其逻辑构造如图1所示图中省略了指令侧的同类接口。使用Xilinx公司提供的EDK嵌入式系统开发套件,可以在参数化的图形界面下方便地完成嵌入式软处理器系统的设计。其突出的优点,一是设计灵敏性;二是可以整合用户自定义IP核,使得算法可以在硬件中并行地执行而不是在软件中串行执行,进而极大地加速软件的执行速度,即所谓的硬件加速。1.2MicroBlaze软核总线接口MicroBlaze软处理器核具有丰富的接口资源。目前,最新版本的MicroBlaze软核支持的接口标准有:带字节允许的OPBOn-chipPeripheralBus,片上外设总线V2.0接口;高速的LMBLocalMemoryBus,本地存储器总线接口;FSL主从设备接口;XCLXilinxCacheLink,Xilinx缓存链路接口;与MDM微处理器调试模块连接的调试接口。OPB是对IBMCoreConnect片上总线标准的局部实现,适用于将IP核作为外设连接到MicroBlaze系统中。LMB用于实现对片上的blockRAM的高速访问。FSL是MicroBlaze软核特有的一个基于FIFO的单向链路,可以实现用户自定义IP核与MicroBlaze内部通用存放器的直接相连;而XCL那么是MicroBlaze软核新增加的,用于实现对片外存储器的高速访问。MicroBlaze软核还有专门的调试接口,通过参数设置,开发人员可以只使用特定应用所需要的处理器特性。1.3MicroBIaze系统的硬件加速将用户IP核整合到基于MicroBlaze的嵌入式软核处理器系统中,通常有两种方法:一种方法是将IP核连接到OPB总线;第二种方法就是将用户IP连接到MicroBlaze专用的FSL总线上。OPB与FSL比拟如表1所列。注:数据分别来自opb_v20和FSL_v20数据手册;该数据是在总线配置为1主2从情况下得到的;该数据对MicroBlaze软核而言。从表1可见,尽管OPB和FSL都是MicroBlaze软核与FPGA其他片上逻辑资源连接的主要途径,但其特点决定了分工是不同的:OPB总线适用于将低速和低性能要求的设备连接到MicroBlaze系统中;而FSL总线那么适用于将时间要求高的用户自定义IP核整合到基于MicroBlaze的软核系统中,以实现硬件加速。2FSL总线2.1FSL总线接口FSL总线是一个基于FIFO的单向点对点通讯总线,主要用于FPGA的两个模块问进展快速的通讯。FSL总线IP核构造如图2所示,FSL接口的I/O信号如表2所列。该接口的主要特点:单向的点对点通讯;非分享的无仲裁通讯机制;支持控制位与数据别离的通讯;基于FIFO的通讯形式;可配置的数据宽度;高速的通讯性能独立运行到达600MHz。2.2FSL总线的写操纵时序对FSL总线的写操纵是由FSL_M_Write信号控制的。图3是FSL总线的写操纵时序。FSL主设备在第一个时钟上升沿检查到FSL_M_Full信号未置高,就允许主设备将FSL_M_Write置高,并将FSL_M_Data和FSL_M_Control推上总线,在下一个时钟周期这些数据就被总线读取并送入FIFO了。图中的Write2和Write3是一组“背靠背的连续写操纵。在Write3时,FIFO满使得FSL_M_Full信号被置高,迫使主设备取消自己的FSL_M_Write信号,直到一次读操纵将FSL_M_Full置低后,才可以提议另一次写操纵。因此,图中暗示着在Write4处也发生了一次从设备的读操纵,否那么FSL_M_Full将再次置高。2.3FSL总线读操纵时序对FSL总线的读操纵是由FSL_S_Read信号控制的,图4是FSL从设备的3次读操纵时序。当FSL总线上存在有效数据FSL_S_Exists=1,FSL_M_Data上的数据和FSL_M_Control上的控制位就立即可以被FSL从设备读取。一旦从设备完成读操纵,FSL_S_Read信号必须置高一个时钟周期,以确认从设备成功完成了一次读操纵。在读操纵发生后的时钟上升沿图中Read2处,FSL_M_Data和FSL_M_Control会被更新为新数据,同时FSL_S_Exists和FSL_M_Full信号也会被更新。同样,这里暗示着在Readl和Read2之间发生了两次主设备的写操纵。3FSL总线用法3.1使用FSL总线IP核的设备间通讯目前Xilinx提供的FSL总线IP核的版本是FSL_V20。两个设备要使用FSL进展数据传输,就必须分别作为主设备或者从设备连接到FSL核上。假如需要进展双向的传输,只要两个设备分别作为主从设备,使用两个FSL核连接即可。无论是作为主设备或者是从设备,都需要通过在设备的微处理器外设描绘文件MPD中进展相应的定义,以实现所需类型的FSL接口。下面这段代码就是一个分别定义了FSL主设备接口FSL_OUT和从设备接口FSL_IN的MPD文件:BEGINmy_fsl_peripheralOPTl0NIPTYPE=PERIPHERALOPTl0NIMP_NETLIST=TRUEBUS_INTERFACEBUS=FSL_IN,BUS_STD=FSL,BUSTYPE=SLAVEBUS_INTERFACEBUS=FSL_OUT,BUS_STD=FSL,BUS_TYPE=MASTER#PortsPORTCLK=,DIR=IN,SIGIS=CLKPORTRESET=。DIR=INPORTFSL_S_READ=FSL_S_Read,DIR=out,BUS=FSL_INPORTFSL_S_DATA=FSL_S_Data,DIR=in,VEC=o:31,BUS=FSL_INPORTFSL_S_CONTROL=FSL_S_Control,DIR=in,BUS=FSL_INPORTFSL_s_EXISTS=FSL_S_Exists,DIR=in,BUS=FSL_INPORTFSL_M_WRITE=FSL_M_Write,DIR=out,BUS=FSL_OUTPORTFSL_M_DATA=FSL_M_Data,DIR=out,VEC=o:31,BUS=FSL_OUTPORTFSL_M_CONTROL=FSL_M_Control,DIR=out,BUS=FSL_OUTPORTFSL_M_FULL=FSL_M_Full,DIR=in,BUS=FSL_OUT3.2通过FSL与MicroBlaze通讯MicroBlaze软核的FSL总线接口支持最多8对FSL连接,详细实现多少接口由系统硬件描绘文件MHS中的参数C_FSL_LINKS决定。默认情况下该参数为0,表示不实现FSL接口。当需要使用FSL总线把MicroBlaze和FPGA中的一个或者多个逻辑模块连接起来时,必须设置该参数的值为相应的模块数。该参数的取值范围是08。在MicroBlaze指令集中还有针对FSL总线操纵的指令,它们分别是:get,put阻塞式数据读写FSL,控制信号被置为0;nget,nput非阻塞式数据读写FSL,控制信号被置为0;cget,cput阻塞式控制位读写FSL,控制信号被置为1;ncget,ncput非阻塞式控制位读写FSL,控制信号被置为1。4FSL总线应用实例在下面的实例中,尝试通过FSL总线技术,将实现特定函数功能的用户自定义IP核整合到MicroBlaze软核系统中,以实现硬件加速的目的。这里以一个矢量汉字vectorfont复原功能的硬件模块的整合为例,讲明FSL总线的应用经过。所使用的开发平台是MemecInsight公司消费的VirtexII系列的MicroBlaze开发板,板上采用的FPGA器件为VirtexII1000,系统时钟为100MHz,开发工具为Xilinx公司的EDK6.3及ISE6.3。4.1FSL总线应用方案如图5所示,vectOr_font核通过FSL_Code-与FSL_Lattice两条FSL总线与MicroBlaze软核直接相连。对于FSL_Code总线,MicroBlaze核是主设备,而vector_font核是从设备。这样MicroBlaze可以通过FSL_Code总线向vectOr_font核发送汉字的区位码或其他格式的汉字编码,由使用的矢量字库和复原算法决定以及汉字的属性信息如字体、大小等。对于FSL_Lattice总线那么正好相反。vectorfont核作为主设备可以通过它向MicroBlaze核发送经过复原处理后的汉字点阵数据以及汉字点阵尺寸信息用于将点阵数据在显存中组织成正确的显示格式。4.2数据传输指令与控制位指令的应用FSL提供的独立于数据传输的控制位可以用来对正在传输中的数据进展标记。为了区分区位码数据与汉字属性数据,以及点阵数据与汉字点阵尺寸数据。MicroBlaze分别通过FSL的数据传输指令和控制位传输指令来发送汉字的区位码和汉字属性信息,接收点阵数据和汉字点阵尺寸信息。对应的实当代码如下:/使用非阻塞的数据写函数向FSL总线写入汉字区位码Microblaze_nbwrite_datatslcode,O/使用非阻塞的控制位写函数向FSL总线写入汉字属性信息maicroblaze_cnbwrite_cnlfslattibute,O/使用非阻塞的数据读函数从FSL总线读取汉字点阵数据microblaze_nbread_datafsl1attice,O/使用非阻塞的控制位读函数从FSL总线读取汉字点阵尺寸信息microblaze_cnbread_cnlfslsize,O代码中用到的与FSL有关函数的定义,都在include目录下的mb_interfaceh文件中。其中,各函数的第二个参数代表进展读写操纵的FSL总线接口的编号,对应MicroBlaze软核的8对FSL接口。该参数的取值范围从0到7。本例中,MicroBlaze只使用了一对FSL接口,故而值为0。4.3实现步骤首先,在BaseSystemWizard中设计图5虚线框中所示的一个简单的MicroBlaze嵌入式处理器系统。然后,在XPS集成开发环境下完成用户自定义IP核本例中即vectoz_font核的添加、Microblaze核FSL接口的添加设置参数C_FSL_LINKS=1,同时添加两个FSL总线IP核,分别用于实现FSL_Code和FSL_Lattice总线。另外,将两个FSL总线IP核的参数C_USE_CONTROL置为1,以翻开FSL总线的控制位传输功能。所有这些改动,最后都会被更新到MES文件中。这样,硬件平台生成工具platgen就可以根据它生成所需要的FPGA配置文件了。硬件的实现完成后,进展相应软件参数的设置,如将系统标准输入输出设备指向UART模块等。然后,用库生成工具libgen,根据MSS系统软件描绘文件文件,将所需外设函数库的头文件添加进工程中。通过调用这些函数,可以操纵和控制这些外设。通过Tool项里的build命令,调用mbgcc:编译工具,将编写的应用程序编译成ELF文件,再用updatebitstrcam命令将程序代码对应的RAM初始化数据添加到前面生成的FPGA配置文件中,生成最终的bit配置文件。最后,使用download命令将bit文件下载到目的板中。以上就是整个FSL应用实例设计的实现经过。本例只是为了讲明FSL总线的使用。实际应用中,还可以根据详细情况通过FSL,将更多的用户自定义IP核如DCT、FFT等添加到MicroBlaze软核系统中去。5.结语在嵌入式系统的开发中,人们一直希望可以有一个知足自己需要的“定制的嵌入式处理器,而不是手头大量存在的通用微处理器。但是,直接将用户自定义IP核添加到处理器核中,不仅受到处理器原架构的束缚,还有可能降低处理器的性能处理器工作频率;而通过与内部存放器直接相连的FSL接口,用户自定义IP可以在不破害处理器原有构造的情况下,严密地与MicroB-laze软核结合在一起。这样,即使关键途径覆盖了用户IP核,由于它在处理器内核之外,也不会导致处理器时钟频率的降低。通过对FSL总线的分析以及上述实例的验证,证实了在基于MicroBlaze的SoC系统设计中,一方面可以针对详细应用进展“量体裁衣式的设计;另一方面,利用其专用的FSL总线接口技术,实现嵌入式软处理器系统与用户自定义逻辑的整合,进而在不进步系统主频的前提下,通过局部函数功能的硬件实现来提升系统的性能。0