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

文档序号:11919535阅读:来源:国知局

技术特征:

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

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

<mrow> <mo>&ForAll;</mo> <mi>p</mi> <mo>&Element;</mo> <msub> <mi>part</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <msub> <mi>part</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <mi>T</mi> <mo>:</mo> </mrow>

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中,建立目标函数如下:

<mrow> <mi>min</mi> <mo>{</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>&Element;</mo> <mi>T</mi> <mo>,</mo> <mi>n</mi> <mo>&Element;</mo> <mi>N</mi> </mrow> </munder> <mrow> <mo>(</mo> <munder> <mo>&Sigma;</mo> <mrow> <msub> <mi>part</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <mi>t</mi> <mo>,</mo> <msub> <mi>l</mi> <mi>k</mi> </msub> <mo>&Element;</mo> <mi>L</mi> </mrow> </munder> <mo>(</mo> <mrow> <mrow> <mo>(</mo> <mrow> <msub> <mi>part</mi> <mi>i</mi> </msub> <mo>&cap;</mo> <msub> <mi>l</mi> <mi>k</mi> </msub> </mrow> <mo>)</mo> </mrow> <mo>*</mo> <msub> <mi>l</mi> <mi>k</mi> </msub> </mrow> <mo>)</mo> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mi>t</mi> <mo>,</mo> <mi>n</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>}</mo> </mrow>

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

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