FPGA动态局部可重构技术是指允许可重构的器件或系统的一部分进行重新配置,配置过程中其余部分的工作不受影响。动态局部可重构缩短了重构的时间,减少了系统重构的开销,提高了系统的运行效率。局部动态可重构技术中通常将系统划分为固定模块和可重构模块。可重构模块与其他模块之间的通信(包括可重构模块和固定模块之间、可重构模块和可重构模块之间)都是由总线宏实现的。
动态可重构技术在FPGA中的实现是Xilinx公司首先提出的,并且提供了相应的开发工具和开发流程。他们从Virtex系列器件开始支持动态可重构技术,同时他们提供了现成的总线宏文件给动态可重构系统开发者使用,但是它们提供的总线宏设计与软件版本的兼容性很差。Xilinx提供的总线宏可能因为软件版本的问题会无**常使用,所以用户需要借助正在使用的版本软件设计总线宏,以实现FPGA动态局部可重构设计。
在研究总线宏的结构基础上,采用FPGA Editor可视化的方法设计基于TBUF的总线宏,并通过FP-GA动态可重构实验验证了该方法的正确性。
1 基于TBUF的总线宏结构
在不同系列的Xilinx FPGA器件中,使用不同的总线宏来实现动态局部可重构技术。在Virtex,Virtex-E,Virtex-ⅡPro X,Spartan-Ⅱ,Spartan-ⅡE和Spartan-3系列器件中所使用的总线宏都是基于TBUF的,可重构模块的位置固定不变;在Virtex4,Virtex5更高性能的器件中,所使用的总线宏是基于Slice的,可重构模块的位置是可变的;而Virtex-Ⅱ,Virtex-ⅡPro所使用的总线宏既可以基于TBUF,也可以基于Slice.目前,使用最多的总线宏,其物理实现是使用6个三态缓冲器(TBUF),实现4位的双向通信。每个TBUF占用1位,每位使用1根TBUF长线,从FPGA的最左侧到最右侧,如图1所示。TBUF的T端是三态使能端口;I端是数据输入端口;O是数据输出端口。相应地,总线宏的T端(LT和RT)是方向控制端口,控制总线宏从左或从右输出;I端(LI和RI)是数据输入端口;O端(LO和RO)是数据输出端口。
总线宏的信息通信是双向的,既可以从左到右,也可以从右到左。但是对于一个设计来说,一旦信息通信方向确定以后就不能再改变。总线宏的位置精确地跨骑在模块A和模块B之间(A或B是可重构模块,或AB全是可重构模块),其中四栅三态缓冲器在模块A内,另外四栅在B内。对于Virtex-Ⅱ等系列器件,因内部结构不同,故两栅跨骑在模块A内,另外两栅跨骑在模块B内。
|