CN114564905A - 一种基于迭代禁忌搜索算法的电路示意图布局布线方法 - Google Patents

一种基于迭代禁忌搜索算法的电路示意图布局布线方法 Download PDF

Info

Publication number
CN114564905A
CN114564905A CN202210181588.XA CN202210181588A CN114564905A CN 114564905 A CN114564905 A CN 114564905A CN 202210181588 A CN202210181588 A CN 202210181588A CN 114564905 A CN114564905 A CN 114564905A
Authority
CN
China
Prior art keywords
instance
column
instances
virtual
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210181588.XA
Other languages
English (en)
Inventor
孙雯
陈超凡
王铸清
罗琪
吴自豪
李文龙
南燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN202210181588.XA priority Critical patent/CN114564905A/zh
Publication of CN114564905A publication Critical patent/CN114564905A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • G06F30/3953Routing detailed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明提供了一种基于迭代禁忌搜索算法的电路示意图布局布线方法,包括:初始化每个instance的行和列的布局;采用禁忌搜索算法优化每个instance的行序;确定instance的位置坐标及其端口坐标;基于已知的instance的布局进行布线。本发明能够降低目标函数的计算,并减少计算元器件布局的面积,快速得到合理近似最优布局布线方案。相比于传统上两两线段比较求交点个数的方法,本发明优化目标函数,降低连线交点数目和连线长度,使用归并排序计算逆序对的方法可以快速求解近似交点个数(时间复杂度为O(m logm)),在保证一定正确性的情况下,较为显著地缩短了计算时间。

Description

一种基于迭代禁忌搜索算法的电路示意图布局布线方法
技术领域
本发明属于可编程逻辑阵列电子电路技术领域,涉及电路的布局布线技术,特别是涉及一种基于迭代禁忌搜索算法的电路示意图布局布线方法。
背景技术
现场可编程门阵列FPGA作为可编程逻辑阵列的一个重要分支,FPGA设计的最核心部分就是电子电路的布局布线,电子电路的布局布线面积过大将造成芯片面积过大、成本上升、性能下降的后果,因此其规划技术也逐渐成为研究的热点。
绝大多数电路布局布线方法采用电子设计自动化软件完成设计,但该软件内嵌的算法存在计算连线交点数目时间复杂度过高、大规模电路求解速度慢、求解结果差等问题,根本无法满足未来对大规模电子电路规划布局的快速高效、低面积占有率的要求。与电子设计自动化软件相比,禁忌搜索算法技术能够在规定的时间给出性能较为优异的规划方案,在降低复杂度、提高计算效率、解决大规模电子电路布局布线等方面都具有巨大的优势,因此非常适合解决电路布局布线的规划问题。
未来电子电路系统能够面向海量的电子电路设计需求提供服务,并且能够快速准确地排列元器件的位置和规划元器件之间的连线,减少电子电路所占用的芯片面积。但是正是这种高效高性能的排列规划要求,给电子元器件的布局布线过程带来了极大的挑战,尤其是对布局布线过程中高效的节点冲突、所占面积等快速计算方法提出了更高的要求。但现有技术尚无法满足需求。
此外,为了实现上述降低布局布线运算复杂度的要求,在进行规划时,不可能也没必要考虑当前还不完全清楚的全部或大范围电子元器件的布局。因此,在进行电子电路元器件布局布线的时候,确定究竟哪些电子元器件需要规划以及什么时间进行规划,才是非常重要的。因此需要提供一种快速合理的控制方法进行规划。
发明内容
为解决上述问题,本发明提供了一种基于迭代禁忌搜索算法的电路示意图布局布线方法。
为了达到上述目的,本发明提供如下技术方案:
一种基于迭代禁忌搜索算法的电路示意图布局布线方法,包括如下步骤:
步骤一,初始化每个instance的行和列的布局
初始化每个可编程逻辑元件模型instance的行序和列序,根据instance间的连接关系以及instance标号,生成每个instance行和列的初始的排序;
步骤二,采用禁忌搜索算法优化每个instance的行序
仅在相邻的两列中调整instance的行序,依次向后迭代直至所有的instance都具有一个较优的行序;包括如下具体步骤:
(1)初始化重要参数;当源端所在列i和漏端所在列j相差超过1列时,建立虚拟instance并将其分配到源端所在的列之后的一列,然后判断新建立的虚拟instance和漏端所在列是否相邻,若相邻则停止建立虚拟instance,否则重复建立虚拟instance的步骤,且建立的虚拟instance的列号依次增大;当源端所在列i大于等于漏端所在列j时,建立虚拟instance并将其分配到漏端所在的列,然后判断虚拟instance和源端所在列是否相同,若相同则停止建立虚拟instance,否则重复建立虚拟instance的步骤;
(2)采用禁忌搜索优化instance的行序,依次对第i+1列的instance优化行序,直至遍历所有的列为止;
步骤三,确定instance的位置坐标及其端口坐标
对instance位置坐标进行计算;计算相邻列的间距以及上下相邻instance的间距,相邻列之间instance的距离为i列输出线的个数和i+1列有反向线的个数之和,上下相邻 instance的间距为两者之间虚拟instance的个数和最小限制距离e中的最大值;第1列的横坐标为设定的固定值,后续每一列都跟据相邻前一列的横坐标、instance的物理宽度w、相邻列间间距和引脚长度p等参数进行累加;同一列的instance的横坐标和物理宽度相同;第1行的纵坐标为设定的固定值,后续每一行都根据相邻前一行的instance物理长度和instance上下间距等参数进行累加;每个instance的端口坐标根据instance的左上角位置坐标,按照原有的编号的顺序、引脚长度、端口宽度d参数依次变化;
步骤四,基于已知的instance的布局进行布线
根据给定instance的行列排序,端口的坐标以及net网络中的instance连接信息进行布线,线宽为1单位长度;布线每次考虑相邻两列,然后再依次迭代完成所有列布线;相邻两列布线时,根据第i列输出端口和第i+1列的输入端口坐标确定连线。
进一步的,所述步骤一包括如下具体步骤:
(1)首先确定无输入连接,以及输出端口和输入端口相连的instance的列号;
(2)采用深度优先遍历方式分配剩余instance的列号;
(3)更新无输出连接的instance的列号;
(4)确定所有的instance的初始行号。
进一步的,所述步骤(1)中,将无输入连接,以及输出端口和输入端口相连的instance 的列号分配为第1列;所述步骤(3)中,更新无输出连接的instance的列号为最后一列。
进一步的,所述步骤(2)包括如下子步骤:
1)若该后继instance尚未被分配列号,则分配其列号为i+k;
2)若该后继instance已经被分配列号m,且从该instance出发不能回到自身,则将该 instance的列号i+k与已经分配的列号m进行比较,选择max{i+k,m}作为新的列号;
3)若该后继instance已经被分配列号m,从该instance出发能回到自身,且该后续instance与当前instance在同一列,则将后继instance分配列号为i+k;
4)否则不对该后续instance处理;
重复上述过程,直至将所有instance分配了列号。
进一步的,所述步骤(4)中,对每一列所包含的instance的行号按照instance标号由小到大排列。
进一步的,所述步骤二中步骤(2)包括如下子步骤:
1)设计第i和i+1列的端口虚拟编号规则,计算逆序对个数;首先对第i列的instance 的输入输出端口从上至下依次编号,然后将编号传递给i+1列对应的输入输出端口,如果第 i+1列输入/出端口连接多个i列的输出/入端口,则取端口虚拟编号的平均值;继而使用归并排序算法计算逆序对个数;
2)优化目标函数为i+1输入侧的编号序列的逆序对个数;
3)对第i+1列的instance进行插入邻域移动操作,在同一列中将一个instance插入到另一个instance上;每次对i+1列的所有的instance进行依次移动并恢复,根据移动过程中产生的逆序对之差和禁忌列表,选择具有最小逆序对差值的未被禁忌的移动选择最佳邻域移动,即不被禁止的具有最大邻域增量的移动,或者是优于迄今为止找到的具有最小逆序对个数的解决布局方案。
进一步的,所述步骤3)中,当具有多个相同移动增益的移动方式时,则随机选择一个方式移动。
进一步的,所述步骤三中,每个instance的端口横坐标为其所属的instance的左/右端减去或加上引脚长度,端口纵坐标为其所属的instance顶端纵坐标根据端口宽度进行累加。
进一步的,所述步骤四中,相邻两列布线具体包括如下步骤:
1)如果输入输出端口的纵坐标一致,则直接连一条直线;
2)如果不一致则寻找中间转折点进行连线,布线的转折点计算只需要确定转折点的横坐标。
进一步的,所述步骤2)中,布线的转折点计算只需要确定转折点的横坐标:首先根据源端和漏端纵坐标之差的正负进行连线布线顺序的排序,在此基础上根据源端虚拟编号的大小排序;其次根据连线布线的排序顺序,依次确定每个连线的转折点横坐标,其中第一条连线的转折点的横坐标为输出端口横坐标加1,后序连线的转折点横坐标依次增加1。
与现有技术相比,本发明具有如下优点和有益效果:
本发明能够降低目标函数的计算,并减少计算元器件布局的面积,快速得到合理近似最优布局布线方案。相比于传统上两两线段比较求交点个数的方法(传统方法的时间复杂度为 O(m2),其中m为第i+1列的端口数量),本发明优化目标函数,降低连线交点数目和连线长度,使用归并排序计算逆序对的方法可以快速求解近似交点个数(时间复杂度为O(m logm)),在保证一定正确性的情况下,较为显著地缩短了计算时间。
附图说明
图1是本发明提供的基于迭代禁忌搜索算法的电路示意图布局布线方法流程图。
图2是本发明提供的深度优先遍历分配列号示意图。
图3是本发明提供的虚拟instance生成示意图。
图4是本发明提供的插入邻域移动示意图。
图5是本发明提供的instance及其物理端口位置坐标示意图。
图6是本发明提供的相邻列间instance布线示意图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
本发明提出的基于迭代禁忌搜索算法的电路示意图布局布线方法,是一种可内嵌于EDA 设计软件中的算法,用于实现EDA设计软件的电路示意图自动化布局布线功能,具体流程如图1所示,包括如下步骤:
(一)初始化每个instance的行和列的布局。
初始化每个instance(可编程逻辑元件模型,模型说明了元件的唯一标号即物理编号、物理输入端口个数、物理输出端口个数、物理双向端口个数(可作为输入端口又可作为输出端口)、物理长/宽度,物理长度与最大端口数成正比,物理宽度固定。)行序和列序。根据 instance间的连接关系以及instance的物理编号标号,生成每个instance行和列的初始的排序。具体步骤如下:
(1)首先确定无输入连接,以及输出端口和输入端口相连的instance的列号。为了尽可能减少列的数量,将此类instance分配到第1列。
(2)采用深度优先遍历方式分配剩余instance的列号。根据已经分配的instance的列号i,分配后继instance(若源端instance输出的信号是漏端instance的输入信号,则此漏端是源端的后继instance,源端指电路连接关系中输出信号的instance,漏端指电路连接关系中输入信号的instance)的列号,具体方法如下:
1)若该后继instance尚未被分配列号,则分配其列号为i+k,(k为两instance之间列号间隔,其的取值范围可为[1,20]的整数);
2)若该后继instance已经被分配列号m,且从该instance出发不能回到自身,则将该 instance的列号i+k与已经分配的列号m进行比较,选择max{i+k,m}作为新的列号;
3)若该后继instance已经被分配列号m,从该instance出发能回到自身,且该后续instance与当前instance在同一列,为了降低线路复杂度,则将后继instance分配列号为i+k;
4)否则不对该后续instance处理。
重复上述过程,直至将所有instance分配了列号。
图2(a)-(c)所示分别为对应的上述3种情况,图2(a)表示第一种情况,已经被分配的instance 1在第i列(i=1),其后继insatnce 5尚未分配列号,则将其分配到第i+k列 (i=1,k取值假设为1);图2(b)表示第二种情况,已经被分配的instance 5在第i列(i=2),其后继instance是instance 6,但instance 6已经被分配在第m列(m=2),且从instance 6出发不能回到instance 6,则选择max{i+k,m}=3作为instance 6的列号;图2(c)表示第三种情况,已经被分配的instance 6在第三列,其后继instance为instance 7,且已经同样被分配到了第3列,此时从instance 7出发能回到instance 7本身,为了降低线路复杂度,将instance 7移到instance 6的后一列,即第4列。
(3)更新无输出连接的instance的列号。为了保证布局的规整度,即应将所有无输出端口的instance分配到最后一列,因此本发明更新此类instance的列为最后一列。
(4)确定所有的instance的初始行号。本发明针对每一列所包含的instance的行号按照instance的物理标号由小到大排列。
其中找输入输出instance均需要遍历一遍instance,时间复杂度为O(n),空间复杂度为O(n)。深度优先遍历采取递归函数,时间复杂度为O(n2),空间复杂度为O(n),其中n为 instance个数。
至此,初始化布局完成。为了进一步优化初始布局,本发明将采用禁忌搜索对布局方案进行优化,减少布线交点数,提高后续布局布线的质量。初始化过程中,提高初始精英解的质量对基于精英解的多层级缩合过程有着至关重要的作用。
(二)禁忌搜索算法优化每个instance的行序。
为了减少时间和空间的消耗,本设计仅在相邻的两列中调整instance的行序,依次向后迭代直至所有的instance都具有一个较优的行序上。本步骤具体包括如下子步骤:
(1)初始化重要参数。在源端所在列i和漏端所在列j相差超过1列时(j-i>1),源端所在列i大于等于漏端所在列j(i≥j)的情况下,为了便于计算两相邻列间instance布线的逆序对个数,本发明引入了“虚拟instance”(本发明中额外建立的instance,实际并不存在)辅助计算。在源端和漏端所在列相差超过1列时,需要建立一个虚拟instance并将其分配到源端所在的列之后的一列(即第i+1列),然后判断新建立的虚拟instance和漏端所在列是否相邻,若相邻则停止建立虚拟instance,否则重复建立虚拟instance的步骤,且建立的虚拟instance的列号依次增大。如图3所示,源端3在第1列,漏端8在第4列,列号相差大于1,本发明则先在第2列建立虚拟instance 13,再在第3列建立虚拟instance 23来连接3和8;在源端所在列大于等于漏端所在列(i≥j)的情况下,建立一个虚拟instance 并将其分配到漏端所在的列(即第j列),然后判断虚拟instance和源端所在列是否相同,若相同则停止建立虚拟instance,否则重复建立虚拟instance的步骤。如图3所示,源端6 在第3列,漏端4在第2列,本发明则先在第2列建立虚拟instance14,再在第3列建立虚拟instance24来连接4和6。因为布线的方向对最终的结果没有影响,为了降低算法复杂性,所以本发明在此情况下采用从漏端向源端的方向建立虚拟instance,保证建立的虚拟 instance的列号也是依次增大。
(2)禁忌搜索优化instance的行序。依次对第i+1列的instance优化行序,直至遍历所有的列为止。其第i+1列的instance内部的行序调整步骤如下:
1)设计第i和i+1列的端口虚拟编号(在计算目标函数时,为了加速计算,第i列每个 instance的每个物理输出端口和每个虚拟instance的每个和物理输出端口在同一侧的端口映射一个虚拟编号,虚拟编号pi:{1,2,..n}→{1,2,..n})规则,计算逆序对(在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序,这对数则称为一个逆序对。)个数。首先对第i列的instance的输入输出端口从上至下依次编号,然后将编号传递给i+1列对应的输入输出端口,如果第i+1列输入(出) 端口连接多个i列的输出(入)端口,则取端口虚拟编号的平均值。继而使用归并排序算法计算逆序对个数。图4中展示了虚拟instance的建立和第2和3列之间的目标逆序对计算过程。第2列的instance 5,4,12,13的输出端口和instance 14的输入端口的虚拟编号假设为<5,1><14,2><4,3><12,4><13,5>;第3列instance 15,6,23,7的输入端口和instance 24 的输出端口的虚拟编号为<15,1><24,2><6,3><6,4><23,5><7,3>;通过归并排序方法计算得到第3列的虚拟编号逆序对数目为2。
2)优化目标函数(目标函数是用设计变量来表示的所追求的目标的数学表达方式,本发明的目标为获得较少的布线交叉点个数和较短连线长度的布局布线方案,目标函数即为布线交叉点个数和连线长度。)。在现有的其他的布局布线方法中,目标函数普遍为i和i+1列之间的交点个数,且此目标函数和i+1输入侧的编号序列的逆序对个数正相关,为了降低计算复杂度,本发明优化目标函数为i+1输入侧的编号序列的逆序对个数。
3)对第i+1列的instance进行插入邻域移动操作。插入邻域操作是指在同一列中将一个instance插入到另一个instance上。每次对i+1列的所有的instance进行依次移动并恢复,根据移动过程中产生的逆序对之差和禁忌列表,选择具有最小逆序对差值的未被禁忌的移动选择最佳邻域移动,即不被禁止的具有最大邻域增量的移动,或者是优于迄今为止找到的具有最小逆序对个数的解决布局方案。如果具有多个相同移动增益的移动方式,则随机选择一个方式移动。
本发明定义移动的增益是指逆序对经过移动操作后逆序对个数的增量,禁忌列表是指对每个instance移动后在接下来的tt次操作中不能被移动,其中tt表示禁忌长度。本步骤循环进行直到邻域增益为0。图4(a)所示的第3列的逆序对数目为2,经过优化(将instance7 移到6上方)后如图4(b)所示,第3列的虚拟编号逆序对数目为0。
(三)确定instance的位置坐标及其端口坐标
每个instance的行序确定后,本发明对instance位置坐标进行计算。对instance位置坐标计算的重点在于计算相邻列的间距以及上下相邻instance的间距。本发明中相邻列之间 instance的距离为i列输出线的个数和i+1列有反向线(在确定列号后,若发出信号的 instance的列号i大于等于接收信号的instance的列号j,则传递信号的线称为反向线。) 的个数之和,上下相邻的instance的间距为两者之间虚拟instance的个数和最小限制距离 e(e的取值范围可为[1,10])中的最大值。第1列的横坐标为设定的固定值,后续每一列都跟据相邻前一列的横坐标、instance的物理宽度w(w的取值范围可为[1,20])、相邻列间间距和引脚长度p(p的取值范围可为[1,10])等参数进行累加,同一列的instance的横坐标和物理宽度相同;第1行的纵坐标为设定的固定值,后续每一行都根据相邻前一行的instance物理长度和instance上下间距等参数进行累加。如图5(a)所示,第1和第2列相邻列之间的距离为第1列输出的线的个数(4)加上第2列输入反向线个数(1),即为5单位长度;上下相邻的instance 5和4之间的距离应该是二者之间虚拟instance的个数(1) 和最小限制距离(假设为4)之间的最大值,即为4单位长度。每个instance的端口坐标根据instance的左上角位置坐标,按照原有的编号的顺序、引脚长度、端口宽度d(instance 的物理端口的实际宽度,d的取值范围可为[1,10])等参数依次变化。端口横坐标为其所属的instance的左(右)端减去(加上)引脚长度,端口纵坐标为其所属的instance顶端纵坐标根据端口宽度进行累加。如图5(b)所示,假设instance 1的左端横坐标为2,物理宽度为8,引脚长度为2,相邻列间的距离为5,则其右端横坐标为10,右端口横坐标为12,instance5 和instance4的横坐标为2+8+2+5+2=19;假设instance5的顶端纵坐标为0,物理长度为 6,上下instance间距为4,则instance 4的顶端纵坐标则为0+6+4=10;假设端口宽度为2,则instance 4的输入端口的横坐标都为19-2=17,第1个输入端口的纵坐标为10+2=12,第 2个输入端口的纵坐标为12+2=14。
(四)基于已知的instance的布局进行布线
根据给定instance的行列排序,端口的坐标以及输入的net网络(可编程逻辑元件的连线网络模型,模型说明了instance间物理端口的电路连接关系,连接关系表明instance间传递信号的端口和方向。)中的instance连接信息进行布线,线宽为1单位长度。布线每次考虑相邻两列,然后再依次迭代完成所有列布线的策略。相邻两列布线时,根据第i列输出端口和第i+1列的输入端口坐标确定连线,具体包括如下步骤:
1)如果输入输出端口的纵坐标一致,则直接连一条直线;
2)如果不一致则寻找中间转折点进行连线,其中本问题中布线的转折点计算只需要确定转折点的横坐标。首先根据源端和漏端纵坐标之差的正负进行连线布线顺序的排序,在此基础上根据源端虚拟编号的大小排序。其次,根据连线布线的排序顺序,依次确定每个连线的转折点横坐标。其中第一条连线的转折点的横坐标为输出端口横坐标加1,后序连线的转折点横坐标依次增加1。如图6所示,instance 33的1号输出端口(假设坐标为(3,10)) 可以直接连到instance 43的1号端口(假设坐标为(6,10)),但是要经过转折点才能连接instance 36的1号(假设坐标为(6,18))和2号端口(假设坐标为(6,20)),转折点的横坐标依次交错,分别为4、5。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,包括如下步骤:
步骤一,初始化每个instance的行和列的布局
初始化每个可编程逻辑元件模型instance的行序和列序,根据instance间的连接关系以及instance标号,生成每个instance行和列的初始的排序;
步骤二,采用禁忌搜索算法优化每个instance的行序
仅在相邻的两列中调整instance的行序,依次向后迭代直至所有的instance都具有一个较优的行序;包括如下具体步骤:
(1)初始化重要参数;当源端所在列i和漏端所在列j相差超过1列时,建立虚拟instance并将其分配到源端所在的列之后的一列,然后判断新建立的虚拟instance和漏端所在列是否相邻,若相邻则停止建立虚拟instance,否则重复建立虚拟instance的步骤,且建立的虚拟instance的列号依次增大;当源端所在列i大于等于漏端所在列j时,建立虚拟instance并将其分配到漏端所在的列,然后判断虚拟instance和源端所在列是否相同,若相同则停止建立虚拟instance,否则重复建立虚拟instance的步骤;
(2)采用禁忌搜索优化instance的行序,依次对第i+1列的instance优化行序,直至遍历所有的列为止;
步骤三,确定instance的位置坐标及其端口坐标
对instance位置坐标进行计算;计算相邻列的间距以及上下相邻instance的间距,相邻列之间instance的距离为i列输出线的个数和i+1列有反向线的个数之和,上下相邻instance的间距为两者之间虚拟instance的个数和最小限制距离e中的最大值;第1列的横坐标为设定的固定值,后续每一列都跟据相邻前一列的横坐标、instance的物理宽度w、相邻列间间距和引脚长度p进行累加;同一列的instance的横坐标和物理宽度相同;第1行的纵坐标为设定的固定值,后续每一行都根据相邻前一行的instance物理长度和instance上下间距进行累加;每个instance的端口坐标根据instance的左上角位置坐标,按照原有的编号的顺序、引脚长度、端口宽度d参数依次变化;
步骤四,基于已知的instance的布局进行布线
根据给定instance的行列排序,端口的坐标以及net网络中的instance连接信息进行布线,线宽为1单位长度;布线每次考虑相邻两列,然后再依次迭代完成所有列布线;相邻两列布线时,根据第i列输出端口和第i+1列的输入端口坐标确定连线。
2.根据权利要求1所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤一包括如下具体步骤:
(1)首先确定无输入连接,以及输出端口和输入端口相连的instance的列号;
(2)采用深度优先遍历方式分配剩余instance的列号;
(3)更新无输出连接的instance的列号;
(4)确定所有的instance的初始行号。
3.根据权利要求2所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤(1)中,将无输入连接,以及输出端口和输入端口相连的instance的列号分配为第1列;所述步骤(3)中,更新无输出连接的instance的列号为最后一列。
4.根据权利要求2所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤(2)包括如下子步骤:
1)若该后继instance尚未被分配列号,则分配其列号为i+k;
2)若该后继instance已经被分配列号m,且从该instance出发不能回到自身,则将该instance的列号i+k与已经分配的列号m进行比较,选择max{i+k,m}作为新的列号;
3)若该后继instance已经被分配列号m,从该instance出发能回到自身,且该后续instance与当前instance在同一列,则将后继instance分配列号为i+k;
4)否则不对该后续instance处理;
重复上述过程,直至将所有instance分配了列号。
5.根据权利要求2所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤(4)中,对每一列所包含的instance的行号按照instance标号由小到大排列。
6.根据权利要求1所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤二中步骤(2)包括如下子步骤:
1)设计第i和i+1列的端口虚拟编号规则,计算逆序对个数;首先对第i列的instance的输入输出端口从上至下依次编号,然后将编号传递给i+1列对应的输入输出端口,如果第i+1列输入/出端口连接多个i列的输出/入端口,则取端口虚拟编号的平均值;继而使用归并排序算法计算逆序对个数;
2)优化目标函数为i+1输入端口的编号序列的逆序对个数;
3)对第i+1列的instance进行插入邻域移动操作,在同一列中将一个instance插入到另一个instance上;每次对i+1列的所有的instance进行依次移动并恢复,根据移动过程中产生的逆序对之差和禁忌列表,选择具有最小逆序对差值的未被禁忌的移动选择最佳邻域移动,即不被禁止的具有最大邻域增量的移动,或者是优于迄今为止找到的具有最小逆序对个数的解决布局方案。
7.根据权利要求6所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤3)中,当具有多个相同移动增益的移动方式时,则随机选择一个方式移动。
8.根据权利要求1所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤三中,每个instance的端口横坐标为其所属的instance的左/右端减去或加上引脚长度,端口纵坐标为其所属的instance顶端纵坐标根据端口宽度进行累加。
9.根据权利要求1所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤四中,相邻两列布线具体包括如下步骤:
1)如果输入输出端口的纵坐标一致,则直接连一条直线;
2)如果不一致则寻找中间转折点进行连线,布线的转折点计算只需要确定转折点的横坐标。
10.根据权利要求9所述的基于迭代禁忌搜索算法的电路示意图布局布线方法,其特征在于,所述步骤2)中,布线的转折点计算只需要确定转折点的横坐标:首先根据源端和漏端纵坐标之差的正负进行连线布线顺序的排序,在此基础上根据源端虚拟编号的大小排序;其次根据连线布线的排序顺序,依次确定每个连线的转折点横坐标,其中第一条连线的转折点的横坐标为输出端口横坐标加1,后序连线的转折点横坐标依次增加1。
CN202210181588.XA 2022-02-25 2022-02-25 一种基于迭代禁忌搜索算法的电路示意图布局布线方法 Pending CN114564905A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210181588.XA CN114564905A (zh) 2022-02-25 2022-02-25 一种基于迭代禁忌搜索算法的电路示意图布局布线方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210181588.XA CN114564905A (zh) 2022-02-25 2022-02-25 一种基于迭代禁忌搜索算法的电路示意图布局布线方法

Publications (1)

Publication Number Publication Date
CN114564905A true CN114564905A (zh) 2022-05-31

Family

ID=81716133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210181588.XA Pending CN114564905A (zh) 2022-02-25 2022-02-25 一种基于迭代禁忌搜索算法的电路示意图布局布线方法

Country Status (1)

Country Link
CN (1) CN114564905A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116205198A (zh) * 2023-01-11 2023-06-02 上海合见工业软件集团有限公司 基于动态规划的电路示意图模块列排序方法、设备和介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116205198A (zh) * 2023-01-11 2023-06-02 上海合见工业软件集团有限公司 基于动态规划的电路示意图模块列排序方法、设备和介质
CN116205198B (zh) * 2023-01-11 2024-02-27 上海合见工业软件集团有限公司 基于动态规划的电路示意图模块列排序方法、设备和介质

Similar Documents

Publication Publication Date Title
CN110795908B (zh) 偏差驱动的总线感知总体布线方法
CN111291525B (zh) 考虑总线和非总线线网的层分配方法
CN109684731B (zh) 一种高效的详细布线驱动轨道分配方法
CN102346795A (zh) 电工电子类虚拟实验快速自动布线方法
CN112685868A (zh) 一种配电网单线图生成方法、装置及存储介质
CN114564905A (zh) 一种基于迭代禁忌搜索算法的电路示意图布局布线方法
CN111914507B (zh) 一种快速单磁通量子rsfq电路布线方法和装置
CN108665117A (zh) 一种室内空间最短路径的计算方法、装置、终端设备以及存储介质
CN110032808B (zh) 基于混合离散粒子群优化的轨道分配器构建方法
CN107478232B (zh) 机器人导航路径的搜索方法
CN112330007A (zh) 面向乘客的换乘衔接优化方法及装置
CN111360463A (zh) 基于混合离散教与学优化算法的焊接路径规划方法和系统
CN115526140A (zh) 一种考虑先进制程约束和单元移动的全局布线方法
CN115983187A (zh) 基于多策略的考虑总线偏差的层分配方法
CN103235849B (zh) 电流驱动的集成电路自动布线方法及装置
Hsu et al. Multi-layer global routing considering via and wire capacities
CN113392592A (zh) 一种配电网拓扑图布局方法、装置和设备
CN112989749A (zh) 一种集成电路版图布线中引脚访问方法及装置
CN106650137B (zh) 一种加速标准单元增量布局合理化的方法
CN116882360A (zh) 量子芯片的布线方法、装置、设备、计算机可读存储介质
CN111274660A (zh) 一种基于多扰动交替进行的模拟退火算法的线路布局方法
CN115451974B (zh) 一种电力设备巡检路径规划方法、系统、设备和介质
CN113536712B (zh) 汽车外型参数的优化设计方法、装置、设备及存储介质
CN105426556A (zh) 版图设计规则文件中图层关系的可视化分析方法
CN111884566B (zh) 一种光伏板集群布线方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination