基于fpga布局的优化方法

文档序号:10655551阅读:235来源:国知局
基于fpga布局的优化方法
【专利摘要】本发明提供一种基于FPGA布局的优化方法。所述方法包括:将所述FPGA划分成多个大小相同的网格,并计算线网长度和面积密度和;构造由所述线网长度和面积密度和组成的代价函数,并运用数学解析方法得到使得所述代价函数最小时的所述各个节点的初始布局坐标;根据所述各个节点的初始布局坐标和所述各个节点所在网格中的矩形判决框,得到所述各个节点的调整坐标;针对由所述各个节点的调整坐标所形成的布局,计算每个网格的面积密度并确定每个网格的密度状态,并重新对所述代价函数进行求解,得到使得所述代价函数最小时的所述各个节点的优化布局坐标。本发明能够将密度较高网格中的节点快速有效地向周边网格进行扩散,从而得到更优的布局。
【专利说明】
基于FPGA布局的优化方法
技术领域
[0001] 本发明设及集成电路技术领域,尤其设及一种基于FPGA布局的优化方法。
【背景技术】
[0002] 近年来,随着集成电路技术的飞速发展,FPGA化ield-Programmable Gate Array, 现场可编程口阵列)因具有集成度高、逻辑资源丰富、设计灵活W及可重构性等特点而得到 广泛应用。
[0003] FPGA的资源主要由可编程逻辑模块(Configurable Logic Block,CLB)、输入输出 模块(I吨Ut 0u1:put Block,I0B)和内部连线(Interconnect)^大部分组成,其中,可编程 逻辑模块由若干个基本逻辑单元(Basic Logic Element,BLE)组成。通常情况下,上述资源 并非均匀地分布在FPGA忍片上。如果布局算法设计不合理,就会导致本来应该放在一起的 资源,却被放置的很远,从而使得布线难度增加,时序延时过长,满足不了用户的设计需求。 由此可见,在FPGA的布局设计中,布局的合理性对FPGA忍片的实际性能影响很大。
[0004] 目前,现有的FPGA布局算法有迭代算法、最小分割法和数学规划法,基于数学规划 法的布局算法的主要思想为:
[0005] 第一阶段一一初始布局,得到各个节点的理想位置。
[0006] 构造由线网长度函数和面积密度函数组成的代价函数,并通过解析方法得到使得 所述综合代价函数最小的全局最优解,即为各个节点的理想位置。
[0007] 第二阶段一-局部合法化检测,得到各个节点的合适位置。
[000引具体地,局部合法化检测如图1所示,假设通过初始布局得到10个节点都落在网格 1中,由于网格1中的资源有限(为了方便说明,运里假设网格1中只能放置一个节点),必然 需要将多余的节点放置在其他的网格中,即按照位置2、3、4、5的顺序逐渐向外延伸,如果网 格N上已经有其他的节点放置,只能往网格化1上试放,直至试放成功为止。
[0009] 其中,所述节点即为用户设计的逻辑单元。
[0010] 在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
[0011] 上述初始布局不可避免地会出现同一个网格中放置多个节点的情况,运就使得合 法化检测的时间过长,而且在出现上述情况时,现有的局部合法化检测也会严重破坏初始 布局中得到的全局最优结果。

【发明内容】

[0012] 本发明提供的基于FPGA布局的优化方法,其通过判决惩罚机制,能够将密度较高 网格中的节点快速有效地向周边网格进行扩散,从而得到更优的布局效果。
[001引本发明提供一种基于FPGA布局的优化方法,包括:
[0014] 步骤1)将所述FPGA划分成多个大小相同的网格,其中,所述网格中设置有W所述 网格的中屯、坐标为中屯、的矩形判决框.
[0015] 步骤2)根据所述FPGA中各个节点的所在坐标和所述各个节点之间的连接关系计 算线网长度Wl;
[0016] 步骤3)根据每个网格中包含的节点数目,计算每个网格的面积密度并将所述每个 网格的面积密度进行求和运算,W得到所有网格的面积密度和des;
[0017] 步骤4)构造代价函数cost=wl+des,并运用数学解析方法对所述代价函数进行求 解,得到使得所述代价函数最小时的所述各个节点的初始布局坐标;
[0018] 步骤5)根据所述各个节点的初始布局坐标和所述各个节点所在网格中的矩形判 决框,得到所述各个节点的调整坐标;
[0019] 步骤6)针对由所述各个节点的调整坐标所形成的布局,根据每个网格中包含的节 点数目,计算每个网格的面积密度并确定每个网格的密度状态;
[0020] 步骤7)针对由所述各个节点的调整坐标所形成的布局,重复步骤2)至步骤4),直 到前一次代价函数最小值与当前代价函数最小值的比值在预定范围内时结束,W得到所述 各个节点的优化布局坐标,其中,所述各个节点的优化布局坐标为所述当前代价函数最小 值所对应的所述各个节点的坐标;
[0021 ]其中,所述节点为所述FPGA中的逻辑单元。
[0022] 可选地,所述将所述FPGA划分成多个大小相同的网格包括:
[0023] 采用变步长方式分阶段地将所述FPGA划分成多个大小相同的网格。
[0024] 可选地,所述根据所述各个节点的初始布局坐标和所述各个节点所在网格中的矩 形判决框,得到所述各个节点的调整坐标包括:
[0025] 判断当前节点的初始布局坐标是否为其所在网格中的矩形判决框内;
[0026] 如果所述当前节点的初始布局坐标位于其所在网格中的矩形判决框内,则将所述 当前节点所在网格的中屯、坐标作为所述当前节点的调整坐标;
[0027] 如果所述当前节点的初始布局坐标位于其所在网格中的矩形判决框外,则在所述 当前节点的初始布局坐标上叠加一个随机值,得到所述当前节点的随机布局坐标,并判断 所述当前节点的随机布局坐标是否位于其所在网格中的矩形判决框内,如果所述当前节点 的随机布局坐标位于其所在网格的矩形判决框内,则将所述当前节点所在网格的中屯、坐标 作为当前节点的调整坐标,如果所述当前节点的随机布局坐标位于其所在网格的矩形判决 框外,则保留所述当前节点的初始布局坐标作为所述当前节点的调整坐标。
[00%] 可选地,所述密度状态包括欠饱和状态、饱和状态和超饱和状态,所述欠饱和状态 表示当前网格中还能够放置节点,其中,所述饱和状态表示当前网格中不能再放置节点,所 述超饱和状态表示当前网格中的至少一个节点需要放置于所述当前网格的还能够放置节 点的相邻网格中。
[0029]本发明实施例提供的基于FPGA布局的优化方法,将所述FPGA划分成多个大小相同 的网格,并计算线网长度和面积密度和;构造由所述线网长度和面积密度和组成的代价函 数,并运用数学解析方法得到使得所述代价函数最小时的所述各个节点的初始布局坐标; 根据所述各个节点的初始布局坐标和所述各个节点所在网格中的矩形判决框,得到所述各 个节点的调整坐标;针对由所述各个节点的调整坐标所形成的布局,计算每个网格的面积 密度并确定每个网格的密度状态,并重新对所述代价函数进行求解,得到使得所述代价函 数最小时的所述各个节点的优化布局坐标。与现有技术相比,其在所述FPGA中各个节点的 初始布局坐标基础上,设计了一种基于矩形判决框的判决机制,使得出现密度较高的网格 时,能够快速有效地将该网格中的节点向周边网格扩散,从而得到更有的布局效果。
【附图说明】
[0030]图1为现有技术中合法化检测的示意图;
[0031 ]图2本发明一实施例基于FPGA布局的优化方法的流程图;
[0032] 图3为上述实施中的所述FPGA中各个节点的初始布局坐标的分布示意图;
[0033] 图4为上述实施例中得到所述FPGA中各个节点的调整坐标过程中面积比例计算方 式示意图。
【具体实施方式】
[0034] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅 仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 本发明提供一种基于FPGA布局的优化方法,如图2所示,所述方法包括:
[0036] Sl 1、将所述FPGA划分成多个大小相同的网格。
[0037] 其中,所述网格中设置有W所述网格的中屯、坐标为中屯、的矩形判决框。
[0038] S12、根据所述FPGA中各个节点的所在坐标和所述各个节点之间的连接关系计算 线网长度Wl。
[0039] 其中,所述节点为所述FPGA中的逻辑单元。
[0040] 例如,所述计算线网长度Wl可W采用半周长算法,但不局限于此,其中,所述半周 长为包含线网中所有节点的一个最小矩形的半周长:
[0041]
[0042] 其中,e表示所有网格形成的区域,Vi和Vj分别表示节点巧日节点j,节点i的坐标为 (Xi,yi),节点j的坐标为(Xj,yj)。
[0043] S13、根据每个网格中包含的节点数目,计算每个网格的面积密度并将所述每个网 格的面积密度进行求和运算,W得到所有网格的面积密度和des。
[0044] 其中,网格的面积密度可W运样计算,但不局限于此:
[0045]
[0046] S14、构造代价函数cost = wl+des,并运用数学解析方法对所述代价函数进行求 解,得到使得所述代价函数最小时的所述各个节点的初始布局坐标。
[0047] S15、根据所述各个节点的初始布局坐标和所述各个节点所在网格中的矩形判决 框,得到所述各个节点的调整坐标。
[0048] S16、针对由所述各个节点的调整坐标所形成的布局,根据每个网格中包含的节点 数目,计算每个网格的面积密度并确定每个网格的密度状态。
[0049] 其中,所述密度状态包括欠饱和状态、饱和状态和超饱和状态,所述欠饱和状态表 示当前网格中还能够放置节点,所述饱和状态表示当前网格中不能再放置节点,所述超饱 和状态表示当前网格中的至少一个节点需要放置于所述当前网格的还能够放置节点的相 邻网格中。
[0050] 例如,将面积密度低于0.8的网格的密度状态设置为欠饱和状态,将面积密度介于 0.8与1.2之间的网格的密度状态设置为饱和状态,将面积密度大于1.2的网格的密度状态 设置为超饱和状态。
[0051] S17、针对由所述各个节点的调整坐标所形成的布局,重复S12至S14,直到前一次 代价函数最小值与当前代价函数最小值的比值在预定范围内时结束,W得到所述各个节点 的优化布局坐标,其中,所述各个节点的优化布局坐标为所述当前代价函数最小值所对应 的所述各个节点的坐标。
[0052] 其中,所述预定范围是基于将所述FPGA划分成多个网格时的步长所确定。
[0053] 本发明实施例提供的基于FPGA布局的优化方法,将所述FPGA划分成多个大小相同 的网格,并计算线网长度和面积密度和;构造由所述线网长度和面积密度和组成的代价函 数,并运用数学解析方法得到使得所述代价函数最小时的所述各个节点的初始布局坐标; 根据所述各个节点的初始布局坐标和所述各个节点所在网格中的矩形判决框,得到所述各 个节点的调整坐标;针对由所述各个节点的调整坐标所形成的布局,计算每个网格的面积 密度并确定每个网格的密度状态,并重新对所述代价函数进行求解,得到使得所述代价函 数最小时的所述各个节点的优化布局坐标。与现有技术相比,其在所述FPGA中各个节点的 初始布局坐标基础上,设计了一种基于矩形判决框的判决机制,使得出现密度较高的网格 时,能够快速有效地将该网格中的节点向周边网格扩散,从而得到更有的布局效果。
[0054] 可选地,所述将所述FPGA划分成多个大小相同的网格包括:
[0055] 采用变步长方式分阶段地将所述FPGA划分成多个大小相同的网格。
[0056] 由步骤S15可知,各个节点位置的调整是与网格的大小有关系,如果网格划分得过 大,会导致网格密度计算时不精确,因为有些节点只占用了一列或一行网格,节点数目不均 衡;如果网格划分得过小,会导致所述代价函数的计算量大,结果不收敛的问题。基于上述 考虑,对于所述FPGA的网格划分可W采用变步长方式分阶段进行,例如可W采用W下划分 方式:
[0057] 1)在初步阶段采用步长为9个单位的方式进行网格划分。
[0058] 具体地,保持步长为9个单位的网格划分方式,循环计算代价函数直至满足前一次 的代价函数值是后一次的代价函数值的10倍W上时跳出初步阶段的网格划分,并转为第二 阶段的网格划分。
[0059] 2)在第二阶段采用步长为3个单位或者6个单位进行网格划分。
[0060] 具体地,保持步长为3个单位或者6个单位的网格划分方式,循环计算代价函数直 至满足前一次的代价函数值是后一次的代价函数值的1倍W上至10倍W下时跳出第二阶段 的网格划分,并转为第=阶段的网格划分。
[0061] 2)在第=阶段采用步长为1个单位或者2个单位进行网格划分。
[0062] 具体地,保持步长为1个单位或者2个单位的网格划分方式,循环计算代价函数直 至满足前一次的代价函数值是后一次的代价函数值的1倍W下时跳出第=阶段的网格划 分,W得到最终的网格划分结果。
[0063] 其中,所述1个单位表示FPGA中最小逻辑单元所占面积折合成正方形的边长。
[0064] 进一步地,所述根据所述各个节点的初始布局坐标和所述各个节点所在网格中的 矩形判决框,得到所述各个节点的调整坐标包括:
[0065] 判断当前节点的初始布局坐标是否为其所在网格中的矩形判决框内;
[0066] 如果所述当前节点的初始布局坐标位于其所在网格中的矩形判决框内,则将所述 当前节点所在网格的中屯、坐标作为所述当前节点的调整坐标;
[0067] 如果所述当前节点的初始布局坐标位于其所在网格中的矩形判决框外,则在所述 当前节点的初始布局坐标上叠加一个随机值,得到所述当前节点的随机布局坐标,并判断 所述当前节点的随机布局坐标是否位于其所在网格中的矩形判决框内,如果所述当前节点 的随机布局坐标位于其所在网格的矩形判决框内,则将所述当前节点所在网格的中屯、坐标 作为当前节点的调整坐标,如果所述当前节点的随机布局坐标位于其所在网格的矩形判决 框外,则保留所述当前节点的初始布局坐标作为所述当前节点的调整坐标。
[0068] 如图3所示,为所述FPGA中各个节点的初始布局坐标的分布示意图,
[0069] 其中,虚线框表示划分的网格,虚线框中的实屯、框代表矩形判决框,空屯、圈分别表 示网格的中屯、坐标,实屯、圈表示节点,在实际中所述节点代表用户设计的逻辑单元。为了便 于说明问题,运里假设网格为边长为H的正方形,相应地,矩形判决框可W为边长为3*H/5的 正方形。
[0070] 下面W图3中网格1为例,说明本发明中得到网格1中各个节点(即节点1和节点2) 的调整坐标:
[0071] 由图3的网格1可知,节点1位于网格1中的矩形判决框内,于是将网格1的中屯、坐标 作为节点1的调整坐标;节点2位于网格1中的矩形判决框外,此时,需要在节点2的所在位置 坐标上叠加一个随机值,得到节点2的随机布局坐标,并再次判断节点2的随机布局坐标是 否位于网格1中的矩形判决框内,如果是,则将网格1的中屯、坐标作为节点2的调整坐标,如 果否,即节点2的随机布局坐标位于网格1中的矩形判决框外,则保留节点2的原位置,即节 点2的位置仍然为其初始布局坐标不变。此时,节点2的面积按照比例分配到相应的网格中, 例如节点2分配到网格4中的面积比例为(如图4所示):
[0072]
[0073] 由此可见,对于矩形判决框中的节点,除非网格内的节点密度太高,否则尽量放置 在网格的中屯、位置;对于矩形判决框外的节点,由于其可能会被移动至其他还可W放置节 点的相邻网格中,运样节点的面积也会按照距离比例在其他网络中进行分配,使得布局到 各个网格的概率均能体现,并增加了各个网格的代价,从而得到更有的布局效果。
[0074] 本领域普通技术人员可W理解实现上述实施例方法中的全部或部分流程,是可W 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memoir ,ROM)或随机存储记忆体(Random Access Memory ,RAM)等。
[0075] W上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明掲露的技术范围内,可轻易想到的变化或替换,都应 涵盖在本发明的保护范围之内。因此,本发明的保护范围应该W权利要求的保护范围为准。
【主权项】
1. 一种基于FPGA布局的优化方法,其特征在于,所述方法包括: 步骤1)将所述FPGA划分成多个大小相同的网格,其中,所述网格中设置有以所述网格 的中心坐标为中心的矩形判决框; 步骤2)根据所述FPGA中各个节点的所在坐标和所述各个节点之间的连接关系计算线 网长度wl; 步骤3)根据每个网格中包含的节点数目,计算每个网格的面积密度并将所述每个网格 的面积密度进行求和运算,以得到所有网格的面积密度和des; 步骤4)构造代价函数c〇St = wl+des,并运用数学解析方法对所述代价函数进行求解, 得到使得所述代价函数最小时的所述各个节点的初始布局坐标; 步骤5)根据所述各个节点的初始布局坐标和所述各个节点所在网格中的矩形判决框, 得到所述各个节点的调整坐标; 步骤6)针对由所述各个节点的调整坐标所形成的布局,根据每个网格中包含的节点数 目,计算每个网格的面积密度并确定每个网格的密度状态; 步骤7)针对由所述各个节点的调整坐标所形成的布局,重复步骤2)至步骤4),直到前 一次代价函数最小值与当前代价函数最小值的比值在预定范围内时结束,以得到所述各个 节点的优化布局坐标,其中,所述各个节点的优化布局坐标为所述当前代价函数最小值所 对应的所述各个节点的坐标; 其中,所述节点为所述FPGA中的逻辑单元。2. 根据权利要求1所述的方法,其特征在于,所述将所述FPGA划分成多个大小相同的网 格包括: 采用变步长方式分阶段地将所述FPGA划分成多个大小相同的网格。3. 根据权利要求1所述的方法,其特征在于,所述根据所述各个节点的初始布局坐标和 所述各个节点所在网格中的矩形判决框,得到所述各个节点的调整坐标包括: 判断当前节点的初始布局坐标是否为其所在网格中的矩形判决框内; 如果所述当前节点的初始布局坐标位于其所在网格中的矩形判决框内,则将所述当前 节点所在网格的中心坐标作为所述当前节点的调整坐标; 如果所述当前节点的初始布局坐标位于其所在网格中的矩形判决框外,则在所述当前 节点的初始布局坐标上叠加一个随机值,得到所述当前节点的随机布局坐标,并判断所述 当前节点的随机布局坐标是否位于其所在网格中的矩形判决框内,如果所述当前节点的随 机布局坐标位于其所在网格的矩形判决框内,则将所述当前节点所在网格的中心坐标作为 当前节点的调整坐标,如果所述当前节点的随机布局坐标位于其所在网格的矩形判决框 外,则保留所述当前节点的初始布局坐标作为所述当前节点的调整坐标。4. 根据权利要求1所述的方法,其特征在于,所述密度状态包括欠饱和状态、饱和状态 和超饱和状态,所述欠饱和状态表示当前网格中还能够放置节点,所述饱和状态表示当前 网格中不能再放置节点,所述超饱和状态表示当前网格中的至少一个节点需要放置于所述 当前网格的还能够放置节点的相邻网格中。
【文档编号】G06F17/50GK106021722SQ201610335313
【公开日】2016年10月12日
【申请日】2016年5月19日
【发明人】王长龙
【申请人】深圳市紫光同创电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1