一种基于聚类分区的FPGA动态局部重构方法

摘要: 本发明属于现场可编程门阵列,具体涉及一种基于聚类分区的fpga动态局部重构方法。背景技术:1、在fpga动态局部重构系统中,重构区域的划分方式直接决定了重构时间...
一种基于聚类分区的FPGA动态局部重构方法

本发明属于现场可编程门阵列,具体涉及一种基于聚类分区的fpga动态局部重构方法。

背景技术:

1、在fpga动态局部重构系统中,重构区域的划分方式直接决定了重构时间和资源利用效率。现有常用的单区域划分法虽然重构面积较小,但每次配置模式切换都需要对整个区域重新配置,导致重构时间过长;而模块化分区法虽然减少了部分重构时间,但由于每个重构区域需覆盖模块的最大资源需求,造成大量fpga资源闲置,重构面积利用率低。

2、随着配置模式数量和重构模块数量的增加,传统人工划分方式难以在多模式场景下同时兼顾重构时间与重构面积,严重制约了动态重构技术在工程中的应用。

技术实现思路

1、基于现有技术中存在的上述缺点和不足,本发明的目的之一是至少解决现有技术中存在的上述问题之一或多个,换言之,本发明的目的之一是提供满足前述需求之一或多个的一种基于聚类分区的fpga动态局部重构方法。

2、为了达到上述发明目的,本发明采用以下技术方案:

3、一种基于聚类分区的fpga动态局部重构方法,包括以下步骤:

4、s1、配置模式与重构模块建模;

5、获取多个配置模式下的重构模块组合,记录重构模块在不同模式下的出现情况;

6、s2、构建图形网表模型;

7、将每个重构模块配置实例映射为图中的节点,以模块共现次数作为边权,以模块出现频率作为节点权重;

8、s3、生成候选分区集合;

9、遍历图形网表模型,找出可合并的连续重构模块,剔除非连续或存在冲突的分区组合;

10、s4、分区兼容性筛选;

11、在同一配置模式下,各重构区域中不出现重复模块;枚举所有合法分区方案;

12、s5、重构代价计算与优化;

13、根据fpga内部clb、bram、dsp单元的数量计算重构区域面积;根据配置切换关系计算总重构时间,综合比较后选取最优分区方案;

14、s6、输出分区与控制策略;

15、输出最终重构区域划分结果,生成用于动态重构与布线切换的控制信息。

16、作为优选方案,规划fpga整体框架和重构模块数量,编写模块的verilog代码,通过软件生成子模块网表文件,并进行配置模式设置。

17、作为优选方案,遍历所有配置文件中的基本分区设置,找出单个重构模块或可合并的重构分区并放入候选分区,接着从候选分区中找出包含所有配置模式的重构模式,不包括可合并但非连续的重构模式。

18、作为优选方案,从候选分区中寻找兼容两个及两个以上的候选分区,寻找重构模式不同时出现任意配置模式的分区方案,然后遍历所有分区方案找出最小重构时间的最优分区方案。

19、作为优选方案,对重构模块之间的布线进行优化,实现不同的重构模块在不同模式下共享同个重构区域的最优分区,最后通过布线来保证数据流的走向,通过状态机控制走线实现不同重构区域之间的切换。

20、作为优选方案,所述总重构时间为:

21、;

22、其中,为变量,当变量为1时,表示在某一重构区域在配置模式i和j下包含不同的重构模块,其他情况为0;为配置模式的数量;表示一个单元所需的配置帧数,t表示单元种类,表示第个重构区域包含不同单元的数量;表示重构区域的数量,为第个重构区域。

23、作为优选方案,所述重构区域面积为:

24、;

25、表示第个重构区域内不同单元种类的数量。

26、作为优选方案,所述状态机通过布线开关发送控制信号控制走线,布线开关的输入端口连接到所有重构区域的输入端口,布线开关的输出端口连接至所有重构区域的输出端口;

27、当进行配置文件切换时,改变输入端口与输出端口之间的连线实现重构区域之间的切换。

28、作为优选方案,当fpga进行重构时,通过设置多重引导模块寻找对应的配置地址找到对应的配置列,配置列下载对应的配置数据,从而实现动态局部重构。

29、本发明与现有技术相比,有益效果是:

30、本发明通过将fpga动态重构问题抽象为图模型与聚类分区优化问题,利用重构模块在不同配置模式下的共现关系,自动搜索并筛选兼容的重构分区方案;通过计算不同分区方案下的重构代价,在满足重构面积约束的前提下,选取总重构时间最小的分区结果,从而实现对fpga动态局部重构过程的系统性优化。

1.一种基于聚类分区的fpga动态局部重构方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于聚类分区的fpga动态局部重构方法,其特征在于,规划fpga整体框架和重构模块数量,编写模块的verilog代码,通过软件生成子模块网表文件,并进行配置模式设置。

3.根据权利要求2所述的基于聚类分区的fpga动态局部重构方法,其特征在于,遍历所有配置文件中的基本分区设置,找出单个重构模块或可合并的重构分区并放入候选分区,接着从候选分区中找出包含所有配置模式的重构模式,不包括可合并但非连续的重构模式。

4.根据权利要求3所述的基于聚类分区的fpga动态局部重构方法,其特征在于,从候选分区中寻找兼容两个及两个以上的候选分区,寻找重构模式不同时出现任意配置模式的分区方案,然后遍历所有分区方案找出最小重构时间的最优分区方案。

5.根据权利要求4所述的基于聚类分区的fpga动态局部重构方法,其特征在于,对重构模块之间的布线进行优化,实现不同的重构模块在不同模式下共享同个重构区域的最优分区,最后通过布线来保证数据流的走向,通过状态机控制走线实现不同重构区域之间的切换。

6.根据权利要求5所述的基于聚类分区的fpga动态局部重构方法,其特征在于,所述总重构时间为:

7.根据权利要求6所述的基于聚类分区的fpga动态局部重构方法,其特征在于,所述重构区域面积为:

8.根据权利要求5所述的基于聚类分区的fpga动态局部重构方法,其特征在于,所述状态机通过布线开关发送控制信号控制走线,布线开关的输入端口连接到所有重构区域的输入端口,布线开关的输出端口连接至所有重构区域的输出端口;

9.根据权利要求1-8任一项所述的基于聚类分区的fpga动态局部重构方法,其特征在于,当fpga进行重构时,通过设置多重引导模块寻找对应的配置地址找到对应的配置列,配置列下载对应的配置数据,从而实现动态局部重构。