一种对高扇出的可编程门列阵进行布局布线的方法

文档序号:6428759阅读:374来源:国知局
专利名称:一种对高扇出的可编程门列阵进行布局布线的方法
技术领域
本发明涉及集成电路及电子设计自动化技术领域,特别涉及一种对高扇出的可编程门列阵(FPGA)进行布局布线的方法。
背景技术
FPGA是目前市场上广泛使用的可编程器件,具有开发周期短和成本低等优点。FPGA可以实现各种各样的应用,在FPGA设计的CAD软件流程中,布局布线是至关重要的一步。布局方法确定了实现电路功能需要的各逻辑单元块在FPGA中的位置,它的优化目标是把相连的逻辑单元块靠近放置以最大限度地减少所需要的布线资源,但有时也要平衡FPGA中所需要的布线密度或者最大限度提高电路速度。一旦确定了电路中所有逻辑单元块的位置,布线器就可打通合适的可编程开关以连接电路需要的所有逻辑单元块的输入和输出引脚。绝大多数FPGA的布线器有一套避免拥挤的策略以解决布线资源竞争问题。 在FPGA的应用中,高扇出是指在打包之后的网表信息中,一个源端连接多个漏端的情况(通常超过10个,如图2所示),高扇出一般会对布局布线造成很大的困扰,因为它要占用大量的布线资源,而且在关键路径中也基本上都包含着具有高扇出的源端。在普通的布局布线过程中并没有针对高扇出做特别处理,这会导致大量的布线资源浪费,而且会增大电路的延时,甚至会导致电路无法布线成功。绝大多数的电路都会有高扇出的存在,因此有必要针对高扇出的FPGA的布局布线方法进行改进。

发明内容
(一 )要解决的技术问题有鉴于此,本发明的主要目的在于提供一种对高扇出的可编程门列阵进行布局布线的方法,以实现对高扇出的可编程门列阵的布局布线进行改进。( 二 )技术方案为达到上述目的,本发明提供了一种对高扇出的可编程门列阵进行布局布线的方法,该方法包括读取可编程门列阵FPGA芯片结构信息和打包之后生成的网表信息;根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局; 根据对FPGA的布局结果对FPGA进行布线;以及生成布局布线结果,完成对FPGA的布局布线。上述方案中,所述根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局的过程中,如果某移动的逻辑模块的漏端对应某高扇出的源端,则该布局包括判断在移动前此漏端对应的逻辑模块与源端对应的逻辑模块是否处于对齐方向;如果移动前此二者处于对齐方向,则降低此逻辑模块移动的几率;
判断在移动后此漏端对应的逻辑模块与源端对应的逻辑模块是否处于对齐方向;如果移动后此二者处于对齐方向,则提高此逻辑模块加移动的几率。上述方案中,所述根据对FPGA的布局结果对FPGA进行布线的过程中,针对高扇出的源端所对应的漏端,该布线包括判断此漏端是否处于和源端对齐位置;判断此漏端是否处于关键路径;判断在源端的对齐方向上是否有其他对应漏端;以及如果有多于一个的漏端处于对齐方向,则增加用长线连接源端与漏端的机会。上述方案中,所述读取FPGA芯片结构信息和打包之后生成的网表信息的步骤中, 所述FPGA芯片结构信息包括芯片中各种类型的逻辑单元块的位置、逻辑单元块的引脚名称、引脚位置、逻辑单元块输入引脚到输出引脚的延时、布线通道的宽度、互连线段的分布和延时及布线开关的位置、类型、延时;所述打包之后生成的网表信息包括打包之后生成的逻辑单元块的名称和类型、使用到的逻辑单元块的引脚、以及所有线网的源端和漏端。上述方案中,所述根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局,采用模拟退火算法进行,该模拟退火算法是模仿逐渐冷却熔化金属以制造金属材料的退火过程,具有一成本函数Cost (S),该成本函数Cost (S)如下Cost(S) = (I-timing_tradeoff-Afac)*bb_cost+timing_tradeoff*timing_cost+Afac*alignment ;其中,timing_tradeoff为时序因子,用来调节延时对于布局的影响;bb_cost是线网边界框的值;timing_cost是时序值,Afac为加入的对齐因子,alignment为对齐值,且alignment初始值为O。所述对齐因子Afac是一个动态因子,其值与电路的高扇出数目的平方成反比关系,与电路的线网数目成正比关系。上述方案中,所述根据对FPGA的布局结果对FPGA进行布线的步骤中,所述布线采用路径搜索算法,该路径搜索算法是迷宫式布线器的派生方法,在布线初期假定每条线网都是关键的,不记布线资源的重用问题,反复的拆线重布电路中的各条线网,直到所有的拥挤度问题都得到解决。所述路径搜索算法采用波前扩展方法。上述方案中,所述根据对FPGA的布局结果对FPGA进行布线的步骤中,所述对FPGA进行布局结束后,该方法还创建二维数组AlignmentInfo,该二维数组AlignmentInfo的第一维是线网值,该二维数组AlignmentInfo的第二维是当前线网源端或者漏端的值,二维数组AlignmentInfo存储的信息是当前漏端是否与源端对齐,水平或者是垂直方向对齐,距离源端的距离是多少。上述方案中,所述对FPGA进行布线的过程中,如果某线网N的源端是高扇出,则在源端与漏端布线时,先判断此源端到漏端是否处于关键路径,如果是,则按常规布线;如果否,则读取二维数组AlignmentInfo ;判断此漏端是否与源端对齐,如果是,则再读取此漏端对齐方向上是否有其他的漏端存在;如果有其他漏端存在,则分别估算连接该漏端的各种连接方式的成本,并对该各种连接方式的成本进行比较,选用成本较低的连接方式。(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果I、本发明提供的对高扇出的可编程门列阵进行布局布线的方法,在布局过程中针对高扇出的漏端所在逻辑模块,提高此逻辑模块移动至高扇出源端所在逻辑模块的对齐位置的几率,实现了对高扇出的可编程门列阵的布局布线进行改进。 2、本发明提供的对高扇出的可编程门列阵进行布局布线的方法,在布线过程中针对高扇出的漏端布线,根据漏端的实际情况提高使用长线连接的几率,实现了对高扇出的可编程门列阵的布局布线进行改进。3、本发明提供的对高扇出的可编程门列阵进行布局布线的方法,应用于FPGA的布局布线方法,有效地降低了电路延时和减少布线资源的使用。


图I是依照本发明实施例的FPGA布局布线的方法流程图;图2是依照本发明实施例的FPGA布局中一个简单的高扇出的示意图; 图3是依照本发明实施例的FPGA布局中逻辑模块对齐的示意图;图4是依照本发明实施例的FPGA布局时交换逻辑模块的示意图;图5是依照本发明实施例的FPGA布线方法改进前的布线规则的示意图;图6是依照本发明实施例的FPGA布线方法改进后的布线规则的示意图;图7是依照本发明实施例的二维数组AlignmentInfo存储内容的示意图。图8是依照本发明实施例的布局布线方法改进前后结果对比示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。本发明提供的对高扇出的可编程门列阵进行布局布线的方法,是在布局过程中如果被移动的逻辑模块包含某一个高扇出的漏,则有较高几率将此模块放置于和此漏对应的源所在模块的对齐方向;在布线过程中如果布线的源端是高扇出,则会检查在此源端对齐方向的漏端数目,以便使用长线布线。该方法能够有效的降低电路的延时,提高布线资源的利用率。如图I所示,图I是依照本发明实施例的FPGA布局布线的方法流程图,该方法包括读取可编程门列阵FPGA芯片结构信息和打包之后生成的网表信息;根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局;根据对FPGA的布局结果对FPGA进行布线;以及生成布局布线结果,完成对FPGA的布局布线。其中,所述根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局的过程中,如果某移动的逻辑模块的漏端对应某高扇出的源端,则该布局包括判断在移动前此漏端对应的逻辑模块与源端对应的逻辑模块是否处于对齐方向;如果移动前此二者处于对齐方向,则降低此逻辑模块移动的几率;判断在移动后此漏端对应的逻辑模块与源端对应的逻辑模块是否处于对齐方向;如果移动后此二者处于对齐方向,则提高此逻辑模块加移动的几率。所述根据对FPGA的布局结果对FPGA进行布线的过程中,针对高扇出的源端所对应的漏端,该布线包括判断此漏端是否处于和源端对齐位置;判断此漏端是否处于关键路径;判断在源端的对齐方向上是否有其他对应漏端;以及如果有多于一个的漏端处于对齐方向,则增加用长线连接源端与漏端的机会。下面结合图I至图8对本发明进一步详细描述。再次参照图1,图I是依照本发明实施例的FPGA布局布线的方法流程图,该方法包括以下步骤步骤SI、读取FPGA芯片结构信息和打包之后生成的网表信息。FPGA芯片结构信息通常包括芯片中各种类型的逻辑单元块的位置、逻辑单元块的引脚名称、引脚位置、逻辑单元块输入引脚到输出引脚的延时、布线通道的宽度、互连线段的分布和延时及布线开关的位置、类型、延时等。打包之后生成的网表信息包括打包之后生成的逻辑单元块的名称和类型、使用到的逻辑单元块的引脚、以及所有线网的源端和漏端。步骤S2、对FPGA进行进行布局。在布局过程中采用的是模拟退火算法(simulatedannealing) SA。模拟退火算法是模仿逐渐冷却熔化金属以制造金属材料的退火过程。模拟·退火算法的伪代码如下
S= RandomPlacementO;
T = InitialTemperatureO;
Rliniit = InitialRlimitO; while (ExitCriterion()=== False) {//外循环 while(InnerLoopCriterion() =iFalse) {//内循环 Snew = GenerateViaMove(S,Rlimit);
Δ€ = Cost(Sfiew)-Cost(S); r = random(0,l);
if(r< e_){
S= S ·
}
}//内循环结束
T = UpdateTemperature();
Rlimit = UpdateRlimitO;
}//外循环结束_其中成本函数Cost (S)对模拟退火的质量影响极大,Cost(S)的公式如下Cost (S) = (l-timing_tradeoff)*bb_cost+timing_tradeoff*timing_cost ;上式中timing_tradeoff为时序因子,用来调节延时对于布局的影响;bb_cost是线网边界框的值;timing_cost是时序值。在此成本函数中,具有高扇出的端点和普通的端点采用相同的处理手段,这会导致在布线阶段,高扇出将占用大量的布线资源。因此,在布局阶段就考虑到高扇出端点的特性,引入了逻辑模块对齐概念。如图3所示,图3是依照本发明实施例的FPGA布局中逻辑模块对齐的示意图。与逻辑模块A处于同一水平或垂直方向的模块称为模块A的对齐模块,如逻辑模块I, 2, 3,4。模块对齐的有两个优点(I)、在布线时,可以减少布线的转弯,降低延时。(2)、在布线时,可以利用长线来进行布线,而减少布线资源的使用。因此,需要在布局时候加入一个对齐因子。成本函数的公式修改如下Cost (S) = (I-timing_tradeoff-Afac)*bb_cost+timing_tradeoff*timing_cost+Afac氺alignment ;其中,Afac (Alignment factor)为加入的对齐因子,alignment为对齐值(alignment 初始值为 O)。 如图4所示,图4是依照本发明实施例的FPGA布局时交换逻辑模块的示意图。逻辑模块O的源端A为一个高扇出的端点,逻辑模块I的漏端B和逻辑模块3的漏端C为源端A对应的两个漏端。在布局过程中如果模块I与模块2进行互换,则模块I由非对齐模块成为了对齐模块,alignment值减1,这样就可以降低cost的值,使得这次互换的几率增力口。相反,如果模块3与模块4互换,则模块3由对齐模块变成了非对齐模块,alignment的值加1,这样就增加了 cost的值,使得这次互换的几率降低。Afac是一个动态因子,经过运行大量的例子表明,最佳的Afac的值与电路的高扇出数目的平方成反比关系,与电路的线网数目成正比关系。步骤S3、对FPGA进行布线。在布线过程中采用路径搜索算法(PathFinder)。路径搜索算法是迷宫式布线器的派生方法。它的本质上式运行Dijkstra算法。路径搜索算法在布线初期假定每条线网都是关键的,不记布线资源的重用问题,反复的拆线重布电路中的各条线网,直到所有的拥挤度问题都得到解决。路径搜索算法为了加快布线速度,采用了波前扩展方法,如图5所示,图5是依照本发明实施例的FPGA布线方法改进前的布线规则的示意图。模块I的漏端B和模块2的漏端C为模块O的源端A所对应的两个漏端。在布线前,漏端B和漏端C与源端A无连接。当布线开始进行时,漏端B先通过布线资源线网I连接到源端A。在进行与漏端C布线的过程中,路径搜索算法并不是重新从源端A开始搜索,而是在源端A连接的所有布线资源中寻找距离漏端C最近的布线资源,于是从线网I开始布线通过线网2连接到漏端C。但是波前扩展方法有一个弊端就是不能找到全局最优连线。如图6所示,图6是依照本发明实施例的FPGA布线方法改进后的布线规则的示意图。如果源端A在连接漏端B的时候采用线网3的话,可以同时连接到漏端C。采用线网3的连接方式比起采用线网I和线网2的连接方式更有效率。因此,对布线过程做以下改进(I)、在布局结束后,创建二维数组Alighmentlnfo,如图7所示,图7是依照本发明实施例的二维数组AlignmentInfo存储内容的示意图。第一维是线网值,第二维是当前线网源端或者漏端的值,二维数组存储的信息是当前漏端是否与源端对齐,水平或者是垂直方向对齐,距离源端的距离是多少。(2)、在布线过程,如果某线网N的源端是高扇出,则在源端与漏端布线时候,先判断此源端到漏端是否处于关键路径,如果是,则按常规布线;如果否,读取AlignmentInfo数组;判断此漏端是否与源端对齐,如果是,再读取此漏端对齐方向上是否有其他的漏端存在。如果有其他漏端存在,再参照图6,分别估算使用netl+net2的成本和使用net3的成本,并做比较,如果使用net3的成本较低,则选用net3连接。经过此两步骤,能够有效的利用长线来连接高扇出对应的对齐方向上的漏端,SP能够节省布线资源,又能降低延时。步骤S4、生成布局布线结果。本发明实施例提供的针对高扇出的FPGA布局布线改进方法具有以下有益效果⑴、降低了电路延时;⑵、提高了布线资源利用率。如图8所示,图8是依照本发明实施例的布局布线方法改进前后结果对比示意图。
对比方法改进前的布线结果,延时降低了 6. 97%,布线资源节省了 I. 01%,运行时间基本不变。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种对高扇出的可编程门列阵进行布局布线的方法,其特征在于,该方法包括 读取可编程门列阵FPGA芯片结构信息和打包之后生成的网表信息; 根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局; 根据对FPGA的布局结果对FPGA进行布线;以及 生成布局布线结果,完成对FPGA的布局布线。
2.根据权利要求I所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局的过程中,如果某移动的逻辑模块的漏端对应某高扇出的源端,则该布局包括 判断在移动前此漏端对应的逻辑模块与源端对应的逻辑模块是否处于对齐方向;如果移动前此二者处于对齐方向,则降低此逻辑模块移动的几率; 判断在移动后此漏端对应的逻辑模块与源端对应的逻辑模块是否处于对齐方向;如果移动后此二者处于对齐方向,则提高此逻辑模块加移动的几率。
3.根据权利要求I所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述根据对FPGA的布局结果对FPGA进行布线的过程中,针对高扇出的源端所对应的漏端,该布线包括 判断此漏端是否处于和源端对齐位置; 判断此漏端是否处于关键路径; 判断在源端的对齐方向上是否有其他对应漏端;以及 如果有多于一个的漏端处于对齐方向,则增加用长线连接源端与漏端的机会。
4.根据权利要求I所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述读取FPGA芯片结构信息和打包之后生成的网表信息的步骤中,所述FPGA芯片结构信息包括芯片中各种类型的逻辑单元块的位置、逻辑单元块的引脚名称、引脚位置、逻辑单元块输入引脚到输出引脚的延时、布线通道的宽度、互连线段的分布和延时及布线开关的位置、类型、延时;所述打包之后生成的网表信息包括打包之后生成的逻辑单元块的名称和类型、使用到的逻辑单元块的引脚、以及所有线网的源端和漏端。
5.根据权利要求I所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局,采用模拟退火算法进行,该模拟退火算法是模仿逐渐冷却熔化金属以制造金属材料的退火过程,具有一成本函数Cost (S),该成本函数Cost (S)如下 Cost (S) = (1-timing_tradeoff-Afac)*bb_cost+timing_tradeoff*timing_cost+Afac氺alignment ; 其中,timing_tradeoff为时序因子,用来调节延时对于布局的影响;bb_cost是线网边界框的值;timing_cost是时序值,Afac为加入的对齐因子,alignment为对齐值,且alignment初始值为O。
6.于,所述对齐因子Afac是一个动态因子,其值与电路的高扇出数目的平方成反比关系,与电路的线网数目成正比关系。
7.根据权利要求I所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述根据对FPGA的布局结果对FPGA进行布线的步骤中,所述布线采用路径搜索算法,该路径搜索算法是迷宫式布线器的派生方法,在布线初期假定每条线网都是关键的,不记布线资源的重用问题,反复的拆线重布电路中的各条线网,直到所有的拥挤度问题都得到解决。
8.根据权利要求7所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述路径搜索算法采用波前扩展方法。
9.根据权利要求7所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述根据对FPGA的布局结果对FPGA进行布线的步骤中,所述对FPGA进行布局结束后,该方法还创建二维数组AlignmentInfo,该二维数组AlignmentInfo的第一维是线网值,该二维数组AlignmentInfo的第二维是当前线网源端或者漏端的值,二维数组AlignmentInfo存储的信息是当前漏端是否与源端对齐,水平或者是垂直方向对齐,距离源端的距离是多少。
10.根据权利要求9所述的对高扇出的可编程门列阵进行布局布线的方法,其特征在于,所述对FPGA进行布线的过程中,如果某线网N的源端是高扇出,则在源端与漏端布线时,先判断此源端到漏端是否处于关键路径,如果是,则按常规布线;如果否,则读取二维数组AlignmentInfo ;判断此漏端是否与源端对齐,如果是,则再读取此漏端对齐方向上是否有其他的漏端存在;如果有其他漏端存在,则分别估算连接该漏端的各种连接方式的成本,并对该各种连接方式的成本进行比较,选用成本较低的连接方式。
全文摘要
本发明公开了一种对高扇出的可编程门列阵进行布局布线的方法,包括读取可编程门列阵FPGA芯片结构信息和打包之后生成的网表信息;根据读取的可编程门列阵FPGA芯片结构信息和网表信息对FPGA进行布局;根据对FPGA的布局结果对FPGA进行布线;以及生成布局布线结果,完成对FPGA的布局布线。利用本发明,能够有效的降低电路的延时,提高布线资源的利用率。
文档编号G06F17/50GK102890729SQ20111020109
公开日2013年1月23日 申请日期2011年7月18日 优先权日2011年7月18日
发明者李明, 李艳, 于芳 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1