基于时序约束的FPGA芯片全局布局优化方法与流程

文档序号:13289083阅读:378来源:国知局
技术领域本发明涉及现场可编程逻辑门阵列(FieldProgrammableGateArray,FPGA)芯片的布局布线技术领域,特别是一种基于时序约束的FPGA芯片全局布局优化方法。

背景技术:
FPGA是由许多的逻辑单元构成的逻辑器件,具有丰富硬件资源、强大并行处理能力和灵活可重配置能力,在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序的约束。通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑。通常,用户需要对这几种路径分别进行约束,从而通过设计工具能够得到最优化的结果。如何通过设计工具,根据用户设定的时序约束,来获得最优化的布局结果,是本发明提供的FPGA芯片全局布局优化方法所要解决的问题。

技术实现要素:
本发明提供了一种基于时序约束的FPGA芯片全局布局优化方法,能够基于用户的时序约束要求,对用户设计的全局布局进行优化,使得用户设计的布局结果能够满足时序约束的要求。本发明实施例提供了一种基于时序约束的FPGA芯片全局布局优化方法,包括:根据逻辑综合后输入输出IO布局的网表,得到全局布局中全部路径的初始线长;基于用户输入的时序约束条件,通过静态时序分析STA确定所有路径的时间余量slack;根据所述时间余量,在所有路径中确定关键路径;根据所述关键路径的时间余量,更新线网权重;基于更新后的线网权重,动态调整全局布局,得到路径优化后的线长;根据优化后的线长进行全局布局优化。优选的,所述根据所述时间余量,在所有路径中确定关键路径具体包括:当静态时序分析确定第一路径的所述时间余量小于预设阈值时,确定所述第一路径为关键路径。进一步优选的,所述预设阈值不小于0。优选的,所述根据所述关键路径的时间余量,更新线网权重具体为:根据所述关键路径的时间余量的大小,更新线网权重;其中,所述关键路径的时间余量越小,更新后的线网权重越高。优选的,在根据优化后的线长进行全局布局优化之后,所述方法还包括:记录根据优化后的线长进行全局布局优化的次数;判断所述根据优化后的线长进行全局布局优化的次数是否达到预设的优化次数;如果没有达到,则继续基于用户输入的时序约束条件,通过静态时序分析STA确定优化后的全局布局中所有路径的时间余量slack;根据所述时间余量,在所有路径中确定关键路径;根据所述关键路径的时间余量,更新线网权重;基于更新后的线网权重,动态调整全局布局,得到路径优化后的线长;根据优化后的线长再次进行全局布局优化。优选的,在根据优化后的线长进行全局布局优化之后,所述方法还包括:基于用户输入的时序约束条件,通过静态时序分析STA确定优化后的全局布局中所有路径的时间余量slack;根据所述时间余量,在所有路径中确定是否还存在关键路径;如果还存在关键路径,则根据所述关键路径的时间余量,更新线网权重;基于更新后的线网权重,动态调整全局布局,得到路径优化后的线长;根据优化后的线长再次进行全局布局优化。优选的,在所述静态时序分析之后,所述方法还包括:生成静态时序分析报告,用以所述用户根据所述静态时序分析报告对所述时序约束条件进行调整。本发明实施例提供的基于时序约束的FPGA芯片全局布局优化方法,通过静态时序分析确定所有路径的时间余量,进而在所有路径中确定关键路径,通过更新关键路径的线网权重,动态调整全局布局,使得用户设计的布局结果能够满足时序约束的要求。最终实现FPGA布局优化,进而提高最终的布线成功率。附图说明图1为本发明实施例提供的基于时序约束的FPGA芯片全局布局优化方法;图2为本发明实施例提供的一种FPGA芯片时钟线网的示意图;图3为发明实施例提供的一种FPGA芯片中路径的时序随用户时序约束的变化曲线图。具体实施方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1为本发明实施例提供的基于时序约束的FPGA芯片全局布局优化方法流程图,如图所示,该方法包括如下步骤:步骤110,根据逻辑综合后输入输出(IO)布局的网表,得到全局布局中全部路径的初始线长;具体的,利用综合工具对用户的设计输入进行逻辑综合(logicsynthesis),通过逻辑综合,将用户设计输入的硬件描述语言(VHDL或verilog)转换到逻辑门级别的电路连线网表。根据网表,进行布局,得到一个初始的全局布局,其中也包括各个时钟线网路径的初始长度。在初始布局时,各个时钟线网的权重都默认为1。在全局布局后,FPGA芯片内部的逻辑单元(LogicElement,LE)之间、逻辑单元之内的查找表和寄存器是允许存在重叠的。步骤120,基于用户输入的时序约束条件,通过静态时序分析(STA)确定所有路径的时间余量(slack);具体的,静态时序分析是一种重要的逻辑验证方法,通过路径计算延迟的综合并比较相对于预定义时钟的延迟,其目的在于找出隐藏的时序问题,根据时序分析结果优化逻辑或者约束条件,从而使设计达到时序闭合。本实施例的时序约束是指在静态时序分析工具中指定信号的频率/周期、占空比、时延等约束条件。静态时序分析之后,会输出静态时序分析报告,其中包括所有路径的slack;其中,静态时序分析报告中正的slack表示路径的时序满足约束要求,负的slack表示路径的时序不满足约束要求。考虑到全局布局阶段时序的不精确性,在本实施例中设定一个大于0的预设阈值。当slack大于预设阈值时,表示该路径的时序满足约束要求;当slack小于预设阈值时,表示该路径的时序不满足约束要求。在一个例子中,预设阈值的典型值可以为1000ps。步骤130,根据所述时间余量,在所有路径中确定关键路径;具体的,将slack小于预设阈值,即时序不满足约束要求的路径,确定为关键路径。步骤140,根据所述关键路径的时间余量,更新线网权重;具体的,在静态时序分析报告中,每个关键路径都有相应的时间余量的参数,将关键路径的线网权重提高,时间余量越小,线网权重的增加比例越大。步骤150,基于更新后的线网权重,动态调整全局布局,得到路径优化后的线长;具体的,根据所述FPGA芯片的线网中的每根线网的权重确定优化处理的顺序,对权重大的线网优先进行优化处理,得到优化处理后的FPGA芯片的线网的线长。因为普通时钟线网的权重在前述步骤中进行了调整,比数据线网拥有更高的权重,因此在优化处理时,普通时钟线网优先进行优化处理,得到优化处理后的普通时钟线网的线长。为了保证在优化线长后不增大布线拥挤度,因此要求对于每个时钟线网在优化前后的长度变化不能超过一定的范围。路径优化的具体处理方法可以采用矩阵求解的计算方法,具体会在下述的详例中进行说明,此处不再赘述。步骤160,根据优化后的线长进行全局布局优化。上述过程可以是一个不断迭代的过程,每次布局迭代时序优化更新权重一次。进一步的,迭代过程可以通过设定迭代次数来限定:比如,在每次根据优化后的线长进行全局布局优化之后,记录优化布局的次数,判断该次数是否达到预设的优化次数。如果没有达到预设的优化次数,则在优化后的全局布局的基础上再重复上述步骤120-步骤160的步骤,直至达到预设的优化次数为止。将达到预设的优化次数获得的全局布局作为最终的布局结果。进一步的,迭代过程还可以是设定为全部路径都满足时序约束条件为止,该过程包括:基于用户输入的时序约束条件,通过静态时序分析STA确定优化后的全局布局中所有路径的时间余量slack;根据所述时间余量,在所有路径中确定是否还存在关键路径;如果还存在关键路径,则根据所述关键路径的时间余量,更新线网权重;基于更新后的线网权重,动态调整全局布局,得到路径优化后的线长;根据优化后的线长再次进行全局布局优化。此外,静态时序分析之后生成的静态时序分析报告,可供用户根据静态时序分析报告对时序约束条件进行调整。当用户改变静态时序约束的约束条件时,相应线网的权重值也随之相应调整,使得全局布局的优化也随之调整,从而快速响应并满足用户时序要求。本发明实施例提供的基于时序约束的FPGA芯片全局布局优化方法,通过静态时序分析确定所有路径的时间余量,进而在所有路径中确定关键路径,通过更新关键路径的线网权重,动态调整全局布局,使得用户设计的布局结果能够满足时序约束的要求。最终实现FPGA布局优化,进而提高最终的布线成功率。下面以具体的实例,对本发明上述实施例提供的方法进行详细说明。一种FPGA芯片时钟线网的示意图如图2所示,在本例中,以具有两个端口,两个单元和三根时钟线网的结构为例进行说明。其中单元1为寄存器1,单元2为寄存器2。三根时钟线网分别为端口1至寄存器1、寄存器1至寄存器2和寄存器2至端口2这三根时钟线网1、2、3;其对应的长度分别为(x1-x0),(x2-x1),(x3-x2)。其中x0为端口1的坐标位置,x1为单元1即寄存器1的坐标位置,x2为单元2即寄存器2的坐标位置,x3为端口2的坐标位置。在本例中,初始各时钟线网的权重都为1;两个端口坐标位置x0=100,x3=200,假设端口1、寄存器1、寄存器2、端口2均在同一水平位置,即y坐标位置不发生变化。根据多项式矩阵求解公式:minφ=Σn∈NLnWn=Σn∈NWn((xi-xj)2+(yi-yj)2)]]>(式1)∂φ∂xi=0,∂φ∂yi=0;]]>(式2、3)φ为二次线长加权,n为线网的根数,N为正整数,L为一根线网的长度,W为线网权重,(xi,yi),(xj,yj)分别一根线网两个端点的坐标。根据本例的数据进行计算:minCost'=(x1-100)2+(x1-x2)2+(x2-200)2(式4)∂∂x1Cost=2×(x1-x2)+2×(x1-100),∂∂x2Cost=2×(x1-x2)+2×(x1-100)]]>(式5、6)根据上式进行矩阵求解:AX+B=0(式7)其中A为矩阵,B为向量。2-1-12x1x2+-100-200=0]]>(式8)得到x1=400/3,x2=500/3,单位为纳米。也就是说,在布局优化之前,寄存器2的初始位置距离寄存器1的位置之间的线长为x2-x1=33.33nm。根据本发明上述实施例提供的方法,假设时钟线网2为关键路径,其slack小于预设阈值,需要进行权重更新使布局优化,从而使得该关键路径的slack满足时序要求。因此将寄存器1至寄存器2之间的时钟线网的权重提高为原来的1.2倍,对时钟线网进行优化。minCost'=(x1'-100)2+1.2×(x1'-x2')2+(x2'-200)2(式9)∂∂x1′Cost=2.4×(x1′-x2′)+2×(x1′-100)]]>(式10)∂∂x2′Cost=2.4×(x1′-x2′)+2×(x2′-100)]]>(式11)根据上式进行矩阵求解:AX+B=0(式7)其中A为矩阵,B为向量。2.4-1-12.4x1′x2′+-100-200=0]]>(式12)得到x1‘=875/8,x2’=1125/8,单位为纳米。也就是说,在布局优化之后,寄存器2的位置距离寄存器2的位置之间的线长为x2‘-x1’=31.25nm。由此可知,在优化之后,寄存器2的位置距离寄存器1的位置比优化之前靠近了2.08nm,该路径上的延迟会相应减少,即该关键路径得到了优化。在下面的表1中,给出了根据用户时序约束进行布局优化之后的静态时序分析报告。序号用户时序约束sdc(MHZ)静态时序分析结果cstimer(MHZ)1200.051.42166.7573142.951.44125.061.95111.169.36100.061.7790.967.9883.365.5976.962.31071.468.61166.767.91262.564.51358.861.11455.660.81552.6531650.049.81747.653.51845.553.51943.553.42041.750.82140.051.72238.542.42337.042.42435.742.42534.542.4表1表1中的用户时序约束,是对某一路径所加的约束,可以看出,在序号为1至10所加的约束条件下,无论怎样优化,都无法满足用户设计需求。此时需要用户更改时序约束条件。由序号为25至11的多个用户时序约束条件下,可以看出,应用本发明提供的方法,优化布局后,该路径的时序优化程度是根据用户的约束条件而定的。当用户的约束条件较为宽松,对该路径的优化程度就相对较低,比如第20组数据中,用户约束为4.17MHZ,优化后该路径可达到50.8MHZ;而当用户的约束条件较为严格时,对路径的优化程度就相对较高,比如第12组数据中,用户约束为62.5MHZ,优化后该路径可达64.5MHZ。相应的曲线图如图3所示。可以看到图中箭头指示区间内,优化后布局的时序,是不断随着用户的约束而变化的,即优化后的布局根据时序约束动态调整的,其结果是能够满足时序约束的要求。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1