一种动态可重构FPGA的布局方法与流程

文档序号:11919535阅读:448来源:国知局
一种动态可重构FPGA的布局方法与流程

本发明属于电子技术领域,具体涉及一种动态可重构FPGA的布局方法。



背景技术:

随着近年来普适计算和物联网行业的兴起,嵌入式系统的应用得到了不断的发展并迅速占领着传统IT行业的市场份额。在航空航天、高性能计算、无线通信以及智慧城市等领域,基于可重构计算(Reconfigurable Computing,RC)技术的嵌入式系统具有广泛且重要的应用价值。RC是继通用计算、专用集成电路(Application Specific Integrated Circuit,ASIC)后的第三种计算模式,通过结合前两者的优点,RC一定程度上同时保证计算速度与灵活性,实现了硬件资源的重复使用。

主流可重构嵌入式系统由现场可编程门阵列(Field Programmable Gate Array,FPGA)构成,采用基于FPGA的可重构嵌入式系统的优势在于生产商对系统进行升级时不需要报废原有硬件设备,也不需要购置新的硬件设备,只需将可重构嵌入式系统中的FPGA芯片重新编程就可实现新的功能。

目前主流先进的FPGA芯片具有动态可重构的能力。相比传统FPGA静态可重构系统所有逻辑功能必须一次性写入可重构芯片,系统运行时不允许修改的不足,动态可重构系统将可重构芯片内部分为静态可重构区域和动态可重构区域,在系统运行时不影响静态可重构区域功能正常运行的前提下,可以在芯片(In Chip)改变动态可重构区域逻辑功能,实现不同应用间的热切换。充分利用动态可重构FPGA可以解决很多复杂多变的应用问题,比如:美国国家航空航天局卫星通信加密卡就采用FPGA动态可重构特性,通过定期更改通信数据加密算法的方法增强数据安全性。

动态可重构FPGA系统配置步骤主要有:设计输入、综合、布局与布线、配置下载等过程,其中布局过程是影响系统性能的关键因素之一,影响着系统的运行效率。布局是指通过管理FPGA芯片上可重构资源的数量和位置信息,根据每个待布局的静态、动态可重构区域所需资源的种类和数量,综合考虑可重构区域间布线约束,并且在满足成功布局的前提下,尽可能低的占用各种有限的FPGA资源。一个好的布局策略不仅可以降低布局失败率,而且可以减少资源占用率、减少布线资源浪费进而降低FPGA芯片的能耗。

由于动态可重构FPGA的布局是一个典型的数学优化问题,且具有高度复杂性,因此很难用简单的数学模型进行描述。虽然,已有一些方法如:最优解法、基于贪心算法、模拟退火算法或者混合线性优化算法等优化方法进行布局,也取得了大量的成果,但是这些传统方法均以矩形为可重构区域的形状进行建模,由于矩形形状有可能并非遵循模型的客观形状,从而不能充分利用可重构资源,造成资源浪费、降低可布局任务数量,影响布局成功率。



技术实现要素:

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种可重构区域非矩形模型表示方法;设计基于该模型的布局过程,解决资源占用率过高的问题。

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

一种动态可重构FPGA的布局方法,根据各个待布局可重构区域所需资源类型与各类资源数量需求,结合FPGA芯片内各类资源位置与数量分布情况,以及待布局可重构区域间布线约束,采取非矩形或矩形为建模形状,定义可重构区域模型表示方法。

进一步的,所述表示方法具体为:令待布局区域集合T={T1,T2,T3,...,Tn},每个待布局区域分为两个部分Tk={part0,part1},每个部分parti={x,y,w,h},其中x表示该部分最左侧横轴坐标值,y表示该部分最左侧纵轴坐标值,w为宽度,h为高度,对上述特征进行约束,将待布局区域模型定义为非矩形或矩形模型,具体约束为:

yp0=yp1+hp1.....................................约束1

xp0=xp1||xp0+wp0=xp1+wp1..........约束2

其中,yp0表示某一待布局区域Tk(1≤k≤n)中part0部分最左侧纵轴坐标值,yp1表示part1部分的最左侧纵轴坐标值,hp1表示其高度;同理,xp0,xp1,wp0,wp1分别表示某一待布局区域Tk中part0,part1部分的最左侧横轴坐标值和宽度;约束1确保每一个待布局区域中part0,part1两部分在垂直方向上连续,约束2确保每一个待布局区域在水平方向上的投影距离等于part0,part1两部分宽度较大值,也确保了待布局区域非矩形模型不会过于复杂。

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

S1、将FPGA芯片以最小可编程单位为单元,采用二维整数坐标形式描述;

S2、对FPGA芯片进行分区L={l1,l2,...,lk|li=(x,y,w,h,n)},其中x表示第i个分区的起始位置横坐标,y表示第i个分区的起始位置纵坐标,w表示第i个分区的宽度,h表示高度,n表示第i个分区包含资源类型,li的值表示第i个分区包含各种类型资源的数量;

S3、对布局所需参数进行定义;

S4、根据上述各项定义与约束,采用混合整数线性优化方法进行数学优化。

进一步的,所述步骤S2中,分区满足下述标准:采用从左上到右下的方向进行遍历,每一个分区内只包含一种类型资源,每一个分区在横、纵方向没有间隔、重叠或覆盖。

进一步的,所述步骤S3中,所需参数具体为:资源类型N={CLB,BRAM,DSP,...etc.},其中,CLB为可编程逻辑单元,BRAM为块随机存储单元,DSP为数字信号处理单元。

进一步的,所述步骤S4中,建立目标函数如下:

其中,parti∩lk表示各个待布局区域每一个部分在FPGA分区上的分布情况,Rt,n表示每一个待布局区域t需要第n类资源的数量,(parti∩lk)*lk表示各个待布局区域实际占用各类资源数量。

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

本发明针对FPGA多种可重构区域布局过程中将模型使用矩形形状进行建模出现的因为资源竞争而引起的布局失败问题,提出了一种非矩形形状与矩形形状相结合进行建模的动态可重构FPGA的布局方法,遵循各个待布局可重构区域模型的客观形状特点,采用矩形与非矩形相结合的方式进行建模描述,并设计采用基于混合整数线性优化方法的布局过程,从而降低了布局失败率,提高了FPGA资源利用率。

进一步的,将每个可重构区域分为两个部分,通过特定约束将其定义为非矩形或矩形形状,遵循了其客观形状特点,节省了FPGA各类资源。

进一步的,设计了以FPGA最小可编程单位为单元的二维整数坐标表现形式,并根据位置与资源类型将FPGA进行划分。

进一步的,设计了采用基于混合整数线性优化方法的布局过程,从而降低了布局失败率,提高了FPGA资源利用率。进一步的,通过非矩形模型的引入,在设计基于可重构FPGA的嵌入式系统时可以减少FPGA芯片数量进而节省工程开支,运行速度快。

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

【附图说明】

图1为本发明每个part的特征表示法示意图;

图2为本发明实行约束后的第一种非矩形统一模型示意图;

图3为本发明实行约束后的第二种非矩形统一模型示意图;

图4为本发明实行约束后的第三种非矩形统一模型示意图;

图5为本发明实行约束后的第四种非矩形统一模型示意图;

图6为本发明实行约束后的第一种矩形统一模型示意图。

【具体实施方式】

本发明公开了一种动态可重构FPGA的布局方法,包括以下两步:

1、定义可重构区域非矩形模型表示方法:根据各个待布局可重构区域所需资源类型与各类资源数量需求,结合FPGA芯片内各类资源位置与数量分布情况,综合考虑待布局可重构区域间布线约束,采取矩形或非矩形为建模形状,寻找最优布局方案。

具体表示方法:令待布局区域集合T={T1,T2,T3,...,Tn},每个待布局区域分为两个部分Tk={part0,part1},每个部分parti={x,y,w,h}特征表示,其中x表示最左侧水平(横轴)坐标值,y表示最左侧垂直(纵轴)坐标值,w为宽度,h为高度,

具体表示如图1所示。为满足非矩形模型定义,上述特征进行约束:

yp0=yp1+hp1.....................................约束1

xp0=xp1||xp0+wp0=xp1+wp1..........约束2

其中,yp0表示某一待布局区域Tk(1≤k≤n)中part0部分的最左侧纵轴坐标值,yp1表示part1部分的最左侧纵轴坐标值,hp1表示其高度;同理,xp0,xp1,wp0,wp1分别表示待布局区域Tk中part0,part1部分的最左侧横轴坐标值和宽度;约束1确保每一个待布局区域中part0,part1两部分在垂直(纵轴)方向上连续,约束2确保每一个待布局区域在水平(横轴)方向上的投影距离等于part0,part1两部分宽度较大值,也确保了待布局区域非矩形模型不会过于复杂。

通过该约束将待布局区域模型定义为图2至图6所示的五种形式,其中前四种模型为非矩形形状模型,第五种模型为矩形模型形状模型,建模时根据待布局区域所需资源种类与数量,在遵循客观形状的基础上,通过定义约束,实现了矩形、非矩形模型的统一管理。

图中各边长度由具体应用而定,这里只展示模型的形状特征。

2、设计基于非矩形模型的布局过程:

2-1、将FPGA芯片以最小可编程单位为单元,采用二维整数坐标形式进行描述;

2-2、对FPGA芯片进行分区L={l1,l2,...,lk|li=(x,y,w,h,n)},其中x表示第i个分区的起始位置横坐标,y表示第i个分区起始位置纵坐标,w表示第i个分区宽度,h表示第i个分区的高度,n表示第i个分区包含的资源类型,li的值表示第i个分区包含各种类型资源的数量,分区满足下述标准:

a、采用从左上到右下的方向进行遍历;

b、确保一个分区内只包含一种类型资源;

c、确保分区在横、纵方向的连贯性,不存在间隔;

d、确保分区间没有重叠或覆盖。

2-3对布局所需参数进行定义:

a、资源类型N={CLB,BRAM,DSP,...etc.},其中,CLB为可编程逻辑单元(Configurable Logic Block),BRAM为块随机存储单元(Block Random Access Memory),DSP为数字信号处理单元(Digital Signal Processing);

b、每个待布局区域所需资源类型与数量Rt,n表示每一个待布局区域t需要第n类资源的数量。

2-4根据上述各项定义与约束,采用混合整数线性优化方法进行数学优化,设立目标函数:

其中,其中,parti∩lk表示各个待布局区域每一个部分在FPGA分区上的分布情况,Rt,n表示每一个待布局区域t需要第n类资源的数量,(parti∩lk)*lk表示各个待布局区域实际占用各类资源数量。

该式表示各个待布局区域实际占用各类资源数量减去各个待布局区域所需各类资源真实数量,使其差值最小。目的在于确保满足各个待布局区域所需资源种类与数量的前提下,通过遵循客观模型形状的非矩形建模方式,实现尽可能少的占用系统资源的布局算法。

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

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