1.一种动态可重构FPGA的布局方法,其特征在于,根据各个待布局可重构区域所需资源类型与各类资源数量需求,结合FPGA芯片内各类资源位置与数量分布情况,以及待布局可重构区域间布线约束,采取非矩形或矩形为建模形状,定义可重构区域模型表示方法。
2.根据权利要求1所述的一种动态可重构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两部分宽度较大值,也确保了待布局区域非矩形模型不会过于复杂。
3.根据权利要求1所述的一种动态可重构FPGA的布局方法,其特征在于:根据所述非矩形模型表示方法设计基于非矩形模型的布局过程,包括以下步骤:
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、根据上述各项定义与约束,采用混合整数线性优化方法进行数学优化。
4.根据权利要求3所述的一种动态可重构FPGA的布局方法,其特征在于,所述步骤S2中,分区满足下述标准:采用从左上到右下的方向进行遍历,每一个分区内只包含一种类型资源,每一个分区在横、纵方向没有间隔、重叠或覆盖。
5.根据权利要求3所述的一种动态可重构FPGA的布局方法,其特征在于,所述步骤S3中,所需参数具体为:资源类型N={CLB,BRAM,DSP,...etc.},其中,CLB为可编程逻辑单元,BRAM为块随机存储单元,DSP为数字信号处理单元。
6.根据权利要求3所述的一种动态可重构FPGA的布局方法,其特征在于:所述步骤S4中,建立目标函数如下:
其中,parti∩lk表示各个待布局区域每一个部分在FPGA分区上的分布情况,Rt,n表示每一个待布局区域t需要第n类资源的数量,(parti∩lk)*lk表示各个待布局区域实际占用各类资源数量。