带时序约束的fpga时序驱动布局方法

文档序号:6269390阅读:278来源:国知局
专利名称:带时序约束的fpga时序驱动布局方法
技术领域
本发明属于电子技术领域,具体涉及带有时序约束的FPGA时序驱动布局方法。
背景技术
传统的FPGA布局方法在以电路时序性能为优化 目标时,采用的时序驱动算法都仅仅针对电路的最小时钟周期进行处理,以获得最高的频率。可是随着FPGA阵列的规模的不断扩大,电路设计的复杂度不断增加,设计者对于FPGA时序驱动算法的灵活性的要求也就越来越高,而以往仅仅是针对时钟周期进行优化的FPGA时序驱动布局算法难以满足现在设计者的这些要求。因此,需要提出一种新型的FPGA时序驱动布局方法来满足设计者提出的各种时序约束。

发明内容
本发明的目的在于提供一种能够灵活地满足各种时序约束要求的FPGA时序驱动布局方法。本发明基于传统的FPGA时序驱动布局思想,在进行FPGA时序驱动布局的过程中,同时能针对设计者提出的时序约束进行特定处理。传统的时序驱动布局思想阐述如下首先进行时序分析提取延迟信息。采用的延迟模型是基于单元之间的距离假设的,要点是在某一次布局中若两个交换单元的物理坐标位置分别为(x,y)和(x+AX,y+Ay),那么这两个单元之间的延迟设定为它们之间的距离差的函数,即Delay = F(Ax,Ay)。然后将这些延迟信息反标到电路网表中,对最大延迟的那条路径进行优化,即将这条路径上的单元位置尽量布局的紧密一些以减小互连线延迟。本发明中,为了增加设计的灵活性,提出了以下四类时序约束时钟周期约束(见图I)、输入输出延迟约束(见图2)、特定时序路径约束和线网最大延迟约束(见图3)。处理四类时序约束延迟的主要思想就是将这些时序约束的信息添加到时序分析这一步,进而作为最终代价函数的一部分处理。下面将依次分析这四类时序约束处理的可行性。I.时钟周期约束
首先,找出电路中所有的时序路径。时序路径的起点为寄存器输出和主输入端口,终点为主输出端以及寄存器输入端口。将用户提供的最小时钟周期约束值C与电路中各时序路径延迟Delay(i) (I ( i < N,N是该电路中所有时序路径的总数)进行比较。若是某些时序路径延迟大于C,就将这些路径上的单元进行交换得到新的布局。设定重新布局次数的上限Tmax,若是在Tmax内,电路设计中所有的时序路径的延迟均小于C,则该约束被正确处理。若重新布局次数超过Tmax,提示该约束过于苛刻,给出约束报告信息,同时,将已有布局结果中时序性能最好的布局作为最终的布局结果。时钟周期约束可以看作是对传统的时序驱动布局的一种特殊处理。对于传统的时序驱动布局,它要求电路中各条时序路径的延迟优化地越小越好,因此其约束目标不是一个静态值,而是动态地减小以达到最优时序。然而,在处理最小时钟周期约束时,将这个动态的约束目标值替换成用户设定的静态值(也就是最小始终周期C),每次进行布局优化都是以设定的该静态值为约束目标,这样就可以将传统的时序驱动布局方法转换为带有最小时钟周期约束的时序驱动布局了。2.输入输出延迟约束
首先,找出电路中所有的时序路径。然后在各条时序路径的起点处设定到达时间为输入延迟的约束值K1 (在没有输入延迟约束时,该值设定为0),进行时序分析得到各条时序路径的终点的到达时间T,再将输出延迟约束值K2加到T上作为各时序路径终点的最终到达时间Tmival,即Tanival= K2+T。这样,就成功将输入输 出延迟约束添加到电路的各条时序路径中进行处理。3.特定时序路径约束
找出电路中对应这些特定时序路径约束的路径。对这些路径进行时序分析,得到各条路径的延迟Delay (i) (I < i < n, n为特定时序路径的数目)。比较Delay (i)与C(i),C⑴为各条路径的时序约束值。若是Delay(i)大于C (i),则重新布局再次比较。当然,这里也会设定重新布局的次数T_,若是在Tmax内,若这些特定时序路径约束均满足,则该约束处理完成。若是重新布局次数超过Tmax,提示该约束过于苛刻,布局结果采用已有布局中时序最好的那一个。其实,特定时序路径约束处理方法类似于最小时钟周期约束,只是该约束的约束对象只有几条特定时序路径,且每条路径的约束值不一定相同,而最小时钟周期约束的对象是电路网表中每一条时序路径,且约束值都是一样的。4.线网延迟约束
将多终端线网等效为单源点单终点的条路径。再按照上文中处理特定时序路径延迟的方法,将每条路径的优化目标设定为最大延迟约束值。余下的处理过程和特定时序路径延迟处理方法完全一致。下面以时钟周期约束为例解释如何处理带有时序约束的FPGA时序驱动布局算法,但不构成对本发明的限制。在进行时钟周期约束优化时,首先找出电路的N条时序路径,设定其标号分别为Pl,P2-Pn,它们对应的约束值为C。因此,对于这N条路径,就要满足Pl不大于C,P2不大于C,以此类推直到Pn不大于C,然后将最大的Pi值作为代价函数因子进行处理。其实,将上面的不等式稍作改变可以得出P1减C不大于0,P2减C不大于0以此类推直到Pn减C不大于O。这样,不等式右边对应的就是同一个固定值,而我们仍然可以将左边的最大值Pi减C作为代价函数的因子,具体表现如下面的数学表达式所示
权利要求
1.带时序约束的FPGA时序驱动布局方法,其特征在于具体步骤如下 (O随机产生一个初始布局,将各个布局单元随机放置到FPGA的具体位置; (2)初始化退火温度T:假设共有N个布局单元,对这N个单元进行随机移动,计算这些移动造成的成本函数的标准偏差c,初始温度设定为20c ; (3)初始化交换距离R:布局开始时,交换距离R设定为整个芯片的阵列大小; (4)构建延迟查找矩阵依据交换距离的大小构建延迟查找表Delay= F(Ax, Ay),得到各种交换距离下的延迟值,得到延迟矩阵,用于时序分析; (5)时序约束等效处理将四种时序约束进行等效处理; (6)构建时序图并进行时序分析根据时序路径上的单元建立时序连接图,再根据第(4)步中延迟矩阵,得出相邻单元的延迟,最后计算各条时序路径的延迟值,得出关键路径上的最大延迟; (7)通过代价函数计算本次布局的代价; (8)选定输入网表中某个布局单元,在最大交换距离范围内,将其交换到另一个可行的位置,从而得到新的布局并计算该布局的代价; (9)将第(8)步中得到的新代价函数与前一次代价函数比较,若代价函数值减小即AC为负数,说明布局质量变好了,则接受这一次的布局结果;若是代价函数变大即△(为正数,则以概率进行判断是否接受本次布局,判断标准为首先,得到一个随机值r,0 < r <1,将!■与θ_Λε/τ进行比较,Λ C为代价函数变化量,T为退火温度值,若r小于则接受布局,否则放弃这次布局结果; (10)将当前交换次数与该温度下交换次数上限值进行比较每个温度点下的交换次数的上限值为MaxMoves = CN473 , C为常数10, N为交换单元的总数目; (11)更新退火温度Tnrat= ATold , λ为一动态变化参数,它取决于在原Ttjld温度点时接受移动的百分比α,温度更新策略如下表
2.根据权利要求I所述的带时序约束的FPGA时序驱动布局方法,其特征在于第(5)步中所述的四种时序约束为时钟周期约束,输入输出延迟约束,特定时序路径约束,线网延迟约束。
3.根据权利要求2所述的带时序约束的FPGA时序驱动布局方法,其特征在于第(7)步中计算本次布局代价的代价函数由三部分构成时序代价Timing_Cost,线网代价Wiring_Cost,用户约束代价User_Constraint_Cost,最终的代价函数的形式如下
全文摘要
本发明属于电子技术领域,具体为一种带有时序约束的FPGA时序驱动布局方法。本发明的布局方法中,提出了四类时序约束时钟周期约束、输入输出延迟约束、特定时序路径约束和线网最大延迟约束。处理四类时序约束延迟的主要思想就是将这些时序约束的信息添加到时序分析这一步,进而作为最终代价函数的一部分处理。本发明能处理用户设定的时序约束,极大地增加了FPGA时序布局算法的灵活性,同时能保证布局算法的正确性。
文档编号G05B19/05GK102768506SQ20121024890
公开日2012年11月7日 申请日期2012年7月18日 优先权日2012年7月18日
发明者李华冈, 来金梅, 王元, 王臻, 王键 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1