一种基于裁剪法的FPGA可重构资源非矩形布局方法与流程

文档序号:11515046阅读:191来源:国知局
一种基于裁剪法的FPGA可重构资源非矩形布局方法与流程

本发明属于电子技术领域,具体涉及一种fpga可重构资源非矩形布局方法。



背景技术:

现场可编程门阵列(fieldprogrammablegatearray,fpga)是一种主流的支持可重构计算(reconfigurablecomputing,rc)的芯片,其原理是通过芯片内可编程逻辑器件的多次读写,实现硬件资源的重复利用。采用基于fpga的可重构嵌入式系统升级时不需要购置新硬件设备,仅需将fpga芯片重新编程即可实现新的逻辑功能。因此,fpga被广泛应用于硬件设备价格昂贵且需要频繁升级或变更功能的嵌入式系统中,如:航空航天、数据中心、医疗、智慧城市等领域。

可重构技术经历了静态可重构和动态可重构两个发展阶段。与静态可重构系统在运行前必须将所有逻辑功能一次性写入fpga芯片不同,支持动态可重构的fpga芯片将其内部按区域划分为静态可重构和动态可重构两个部分,其中动态可重构区域内的逻辑功能可以实时在芯片(inchip)进行改变,同时静态可重构区域正常工作不受影响,使用该技术不仅实现了不同应用之间的热切换,并且通过这种分时复用的方式,达到了使用少量可重构资源实现更多逻辑功能的目的。充分利用动态可重构fpga可以解决很多复杂多变的应用问题,比如:美国国家航空航天局卫星通信加密卡就采用动态可重构fpga技术,通过定期更改通信数据加密算法的方法增强数据安全性。

fpga的一般开发步骤为:设计输入、综合、布局与布线、配置下载等。其中布局过程是指在具体的fpga芯片上确定每一个逻辑功能的位置与所占资源数量,布局策略不仅要满足每个逻辑功能所需各类可重构资源的数量与位置,还需综合考虑他们之间的各项约束,如:需进行数据交换的逻辑功能间通信开销、io布线所产生的延迟等。如何将多个逻辑功能进行正确布局,并且尽可能低的占用珍贵的fpga片上可重构资源,提升可重构资源利用率,进而降低fpga能耗,是布局策略需要考虑的主要问题也是其评价标准。

动态可重构fpga的布局过程是寻找全局最优解或近优解的过程,目前已有的一些方法如:基于模拟退火、贪心算法等优化方法进行布局,也取得了大量的成果,但是这些传统方法均以矩形为逻辑功能形状模型进行建模,矩形模型具有易于表达,建模算法简单的优势,但是在真实开发过程中,逻辑功能客观形状一般均不是矩形,采用矩形模型易产生过多内部碎片而造成资源浪费。也有一些方法采用矩形块堆叠的方式实现逻辑功能非矩形模型,能够有效提高资源利用,但是其模型过于复杂,导致算法时间复杂度过高,影响fpga系统的执行效率。



技术实现要素:

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于裁剪法的fpga待布局逻辑功能非矩形模型,解决布局失败与布局算法耗时过长问题。

本发明采用以下技术方案:

一种基于裁剪法的fpga可重构资源非矩形布局方法,包括以下步骤:

s1、定义n个逻辑功能的待布局区域集合n,确定裁剪范围λ,遍历λ内所有点,计算每一个点在水平和垂直方向的投影,将矩形分割为四个部分进行裁剪,得到待布局逻辑功能非矩形描述模型;

s2、根据步骤s1所述逻辑功能非矩形描述模型将fpga芯片可重构资源按照列进行划分,经过芯片可重构资源数据预处理和逻辑功能待布局区域数据预处理,定义可重构资源非矩形布局方法。

进一步的,步骤s1中,所述待布局区域集合n={xi,yi,wi,hi,λi},i=1,2,...,n,通过xi,yi,wi,hi确定一个矩形逻辑功能待布局区域,x表示该区域的起始位置横坐标,y表示起始位置纵坐标,w表示宽度,h表示高度。

进一步的,步骤s1中,裁剪范围λi={αi1,αi2,βi1,βi2},确定所述裁剪范围包括以下步骤:

s11、通过α1,α2,β1,β2确定裁剪范围的大小,有约束

0≤αn1<αn2≤wn

0≤βn1<βn2≤hn

其中,αi1,αi2为裁剪区域横坐标,βi1,βi2为裁剪区域纵坐标,wi表示待布局区域宽度,hi表示高度;

s12、在满足步骤s11部分约束情况下,手动修改α1,α2,β1,β2值确定裁剪区域范围。

进一步的,步骤s2中,所述资源数据预处理具体为:m种资源集合t={t1,t2,...,tm};每种资源包含列数集合c:

c={c1,c2,...,cm},

最小可重构单元包含某种资源数量d={d1,d2,...,dm},以列定义资源t,每列包含该种资源数量为d·h,相同种类资源最小列间距b={b1,b2,...,bm}。

进一步的,步骤s2中,所述逻辑功能待布局区域数据预处理具体为:

首先,定义每个逻辑功能所需资源类型与数量rn,t,表示一个逻辑功能n需要第t种资源的数量;

其次,约束待裁剪区域wn,hn的取值范围。

进一步的,以所述待布局区域不超过fpga芯片范围作为上限约束,如果所需第t种资源数量超过fpga芯片中一列提供的资源数量,则待裁剪区域至少达到包含两列该种资源的宽度,选取所有类型资源中的最大值,作为待布局逻辑功能的下限约束。

与现有技术相比,本发明至少具有以下有益效果:

本发明针对fpga可重构资源布局中将逻辑功能使用非矩形方式建模出现的因为极端形状模型和布局策略过于复杂而引起的布局失败与布局算法耗时过长问题,提出基于裁剪法的非矩形建模方法,采用区域划分的方法有效避免了极端形状模型的出现,降低了布局失败率;通过裁剪范围阈值设定与布局前数据预处理的引入,有效避免了无用工作量,降低了布局算法耗时,进而节省了嵌入式系统的工程开支。

进一步的,通过设定裁剪范围阈值参数,在布局过程中可由开发人员根据需要更改裁剪范围,避免了极端非矩形模型的出现,有效提高了布局成功率,并且,通过这种划分裁剪范围的方式,在布局过程中减少了数据需要遍历的范围,有效减少了无用工作量,从而降低了模型复杂度。

进一步的,进行芯片可重构资源数据预处理和逻辑功能待布局区域数据预处理,能够在布局前将wn,hn的取值范围有效缩小,避免了无用工作量,提高了布局策略的计算效率,减少了算法耗时。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明矩形逻辑功能待布局区域特征表示法示意图;

图2为本发明矩形模型裁剪区域遍历示意图;

图3为本发明进行裁剪后的第一种非矩形模型示意图;

图4为本发明进行裁剪后的第二种非矩形模型示意图;

图5为本发明进行裁剪后的第三种非矩形模型示意图;

图6为本发明进行裁剪后的第四种非矩形模型示意图;

图7为本发明矩形块堆叠方式的第一种极端非矩形模型示意图;

图8为本发明矩形块堆叠方式的第二种极端非矩形模型示意图;

图9为本发明fpga芯片可重构资源按列划分示意图。

具体实施方式

请参阅图1至图8,本发明公开了一种基于裁剪法的fpga可重构资源非矩形布局方法,包括以下步骤:

s1、非矩形模型建模

定义n个逻辑功能的待布局区域集合n={xi,yi,wi,hi,λi},i=1,2,...,n,如图1所示,通过xi,yi,wi,hi可以确定一个矩形逻辑功能待布局区域,x表示该区域的起始位置横坐标,y表示起始位置纵坐标,w表示宽度,h表示高度。

其中,λ为裁剪范围,λi={αi1,αi2,βi1,βi2},α为横坐标,β为纵坐标。

具体裁剪方法:遍历λ范围内所有点,计算每一个点在水平(x轴)和垂直(y轴)方向的投影,如图2所示,投影的四个点坐标分别(x,0),(x,h),(0,y),(w,y),λ范围内某一点将矩形分割为四个部分,按照图3到图6所示的方式进行裁剪,实线框部分为裁剪后得到的非矩形模型。

裁剪范围λ的确定方法:

s11、通过α1,α2,β1,β2这四个参数可以确定裁剪范围的大小,有约束

0≤αn1<αn2≤wn

0≤βn1<βn2≤hn

s12、在实际布局过程中,开发人员可以根据需要设置α1,α2,β1,β2的值来确定裁剪区域范围。

设定裁剪区域λ的优势在于:之前基于矩形块堆叠方式的模型设计方法,并未对堆叠块之间的大小关系进行约束,有可能产生如图7、图8所示的极端模型形状,而在真实的布局过程中,上述非矩形模型由于块间面积差异过大,易造成在极小块中布线过于密集而产生局部过热等问题,进而导致功能失效、布局失败等后果。因此,相比之前基于矩形块堆叠方式的非矩形模型设计,本发明通过设定裁剪区域阈值参数,在布局过程中可由开发人员根据需要更改裁剪区域范围,避免了极端非矩形模型的出现,有效提高了布局成功率,并且,通过这种划分裁剪区域的方式,在布局过程中减少了数据需要遍历的范围,有效减少了无用工作量,从而降低了模型复杂度。如:基于矩形块堆叠方式模型建模算法的空间复杂度为w·h,而在本发明中,当算法空间复杂度为相比之前降低了56%。

s2、根据所述非矩形模型表示方法设计基于非矩形模型的布局过程,包括以下步骤:

s21、fpga芯片可重构资源按照列进行划分,如图9所示。

s22、资源数据预处理:所包含m种资源集合t={t1,t2,...,tm};每种资源数量(以列为单位)c={c1,c2,...,cm},如:图9中c1=12,c2=2,c3=3;最小可重构单元包含某种资源数量d={d1,d2,...,dm},如:图9中1-3列为t1资源,每列包含该种资源数量为d1·h,第4列、第8列为t2资源,每列包含该种资源数量为d2·h;相同种类资源最小列间距b={b1,b2,...,bm},如图9中b1=1,b2=4,b3=3。

s23、逻辑功能待布局区域数据预处理:

首先,定义每个逻辑功能所需资源类型与数量rn,t,表示一个逻辑功能n需要第t种资源的数量;

其次,约束待裁剪区域wn,hn的取值范围,伪代码如下:

1foralln∈n

2wn≤w,hn≤h;

3forallt∈t

4if(rn,t>dt·h)

5wt≥bt;

6else

7wt≥1;

8endif;

9ht≥rn,t/(ct·dt);

10endfor;

11wn≥max(wt),hn≥max(ht);

12endfor;

其中,第二行为上限约束,待布局区域不能超过fpga芯片范围。第四行判断如果所需第t种资源数量超过该芯片中一列所能提供的资源数量,则待裁剪区域至少要达到包含两列该种资源的宽度。第九行约束待布局区域高度下限。第十一行表示选取所有类型资源中的最大值,作为待布局逻辑功能的下限约束。

将待布局区域wn,hn进行数据预处理的优势在于:相比之前fpga可重构资源布局策略中0<wn≤w,0<hn≤h的设定,进行上述预处理能够在布局前将wn,hn的取值范围有效缩小,避免了无用工作量,提高了布局策略的计算效率,减少了算法耗时。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1