CN116306457B - 基于垂直交叉点约束的电路原理图路由规划系统 - Google Patents

基于垂直交叉点约束的电路原理图路由规划系统 Download PDF

Info

Publication number
CN116306457B
CN116306457B CN202310042412.0A CN202310042412A CN116306457B CN 116306457 B CN116306457 B CN 116306457B CN 202310042412 A CN202310042412 A CN 202310042412A CN 116306457 B CN116306457 B CN 116306457B
Authority
CN
China
Prior art keywords
node
constraint
vertical
signal lines
pointing
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.)
Active
Application number
CN202310042412.0A
Other languages
English (en)
Other versions
CN116306457A (zh
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.)
Shanghai Hejian Industrial Software Group Co Ltd
Original Assignee
Shanghai Hejian Industrial Software Group Co Ltd
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 Shanghai Hejian Industrial Software Group Co Ltd filed Critical Shanghai Hejian Industrial Software Group Co Ltd
Priority to CN202310042412.0A priority Critical patent/CN116306457B/zh
Publication of CN116306457A publication Critical patent/CN116306457A/zh
Application granted granted Critical
Publication of CN116306457B publication Critical patent/CN116306457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本发明涉及一种基于垂直交叉点约束的电路原理图路由规划系统,实现步骤H1、构建路由约束向量图;步骤H2、根据所有H{Lx i,Lx j}更新所述路由约束向量图;步骤H3、根据所有C{Ly p,Ly q:ry}更新所述路由约束向量图;步骤H4、从当前路由约束向量图的起点节点开始,依次获取每一级节点对应的信号线序号,并将每一级节点对应的信号线序号按照从小到大的顺序,遵循第三约束集合中的约束条件,生成第一模块列和第二模块列之间的电路原理图。本发明最大程度减少了垂直交叉点数量,降低了电路原理图的复杂度,提高了可读性。

Description

基于垂直交叉点约束的电路原理图路由规划系统
技术领域
本发明涉及集成电路技术领域,尤其涉及一种基于垂直交叉点约束的电路原理图路由规划系统。
背景技术
随着超大规模集成电路工艺技术的快速发展,芯片设计变得越来越复杂。芯片设计过程中需要借助电路图可视化工具来进行调试和验证,以辅助用户发现设计中的潜在问题,提高开发效率。电路原理图的路由规划是指在给定的两个或多个电路模块之间,通过特定的算法和约束,将模块之间的连接关系用若干个水平或垂直的信号线表示出来,方便用户了解各个模块间的逻辑与层次结构设计。在调试验证工具中的电路原理图不同于后端的布线布局图,力求用最小的空间完成所有信号线的路由规划,电路原理图服务于设计验证阶段,不仅对空间有要求,还需要能清晰准确地描述出芯片设计中各个模块之间的连接关系,还需要清晰呈现整个设计的层次结构。
现有的电路原理图的路由规划技术中,仅仅遵循不能出现不同信号线之间的相互覆盖(Overlap)这一约束条件,因为不同信号线之间的相互覆盖会影响用户对连接关系的错误判断。但是,仅仅考虑上述约束条件会可能会导致信号线之间的垂直交叉(Crossover)过多、信号线弯折次数(Bending)过多。过多的垂直交叉会使电路原理图变得复杂,降低功能可读性,不利于调试验证;过多的弯折次数会使连接关系变得复杂,不利于追踪模块的驱动和加载信号,从而降低了芯片设计的调试和验证效率。由此可知,如何提供一种新的电路原理图路由规划技术,降低电路原理图的复杂度,提高可读性,便于用户追踪模块的驱动和加载信号,进而提高芯片设计的调试和验证效率成为亟待解决的技术问题。
发明内容
本发明目的在于,提供一种基于垂直交叉点约束的电路原理图路由规划系统,最大程度减少了垂直交叉点数量,降低了电路原理图的复杂度,提高了可读性。
一种基于垂直交叉点约束的电路原理图路由规划系统,包括需要设置在第一模块列和第二模块列之间的M个信号线{L1,L2,…,Lm,…,LM}、第一约束集合{H{L1 i,L1 j},H{L2 i,L2 j},…,H{Lx i,Lx j},…,H{LX i,LX j}、第二约束集合{C{L1 p,L1 q:r1},C{L2 p,L2 q:r2},…,C{Ly p,Ly q:ry},…,C{LY p,LY q:rY}}、第三约束集合{V1,V2,…,Vz,…VZ}、存储有计算及程序的存储器和处理器。
其中,Lm为第m个信号线,m的取值范围为1到M,Lm包括一条垂直线段、至少两个连接点以及每一连接点和位于第一模块列或第二模块列的对应管脚之间的水平线段,每一连接点的连接方向和纵坐标已知,L1,L2,…,Lm,…,LM的按照最低连接点从低到高的顺序排列,对应的信号线序号从小到大依次排序。
H{Lx i,Lx j}表示Lx i的垂直线段必须分配在Lx j的垂直线段的第一侧,Lx i、Lx j均属于{L1,L2,…,Lm,…LM},Lx i≠Lx j,x的取值范围为1到X。
C{Ly p,Ly q:ry}表示Ly p的垂直线段位于Ly q的垂直线段的第一侧,相对于Ly p的垂直线段位于Ly q的垂直线段的第二侧,所减少的垂直交叉点数为ry,Ly p,Ly q均属于{L1,L2,…,Lm,…,LM},Ly p≠Ly q,所述第一侧为所述第二侧的对侧,y的取值范围为1到Y。
Vz表示第z个信号线子集,Vz中包括至少两个信号线,Vz属于{L1,L2,…,Lm,…,LM},同一Vz中的信号线的垂直线不能分配在同一个垂直通道中,maxV为Vz中信号线数量最大值。
当所述处理器执行所述计算机程序时,实现以下步骤:
步骤H1、基于{L1,L2,…,Lm,…,LM}构建路由约束向量图,包括开始节点、结束节点、每一Lm对应的节点Gm、从开始节点指向Gm的有向边以及从Gm指向结束节点的有向边;
步骤H2、根据所有H{Lx i,Lx j}更新所述路由约束向量图,其中,除起始节点和终止接点之外,每一节点始终存在至少一条指向该节点的有向边以及至少一条从该节点指向另一节点的有向边,若第一节点和第二节点之间存在一条从第一节点指向第二节点的有向边,则表示第一节点对应的信号线的垂直线段需要分配在第二节点对应的信号线的垂直线的第一侧;
步骤H3、根据所有C{Ly p,Ly q:ry}更新所述路由约束向量图;
步骤H4、从当前路由约束向量图的起点节点开始,依次获取每一级节点对应的信号线序号,并将每一级节点对应的信号线序号按照从小到大的顺序,遵循第三约束集合中的约束条件,生成第一模块列和第二模块列之间的电路原理图。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于垂直交叉点约束的电路原理图路由规划系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明最大程度减少了垂直交叉点数量,使得路由规划简洁清晰,降低了电路原理图的复杂度,提高了可读性,便于用户追踪模块的驱动和加载信号,进而提高芯片设计的调试和验证效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的待处理的信号线排序示意图;
图2为本发明实施例提供的初始状态的路由约束向量示意图;
图3为本发明实施例提供的基于第一约束集合更新得到的路由约束向量示意图;
图4为本发明实施例一基于第二约束向量集合更新得到的路由约束向量图;
图5为基于本发明实施例一生成的电路原理图;
图6为本发明实施例二基于第二约束集合更新得到的路由约束向量图;
图7为基于本发明实施例二生成的电路原理图;
图8为本发明实施例三基于第二约束集合更新得到的路由约束向量图;
图9为基于本发明实施例三生成的电路原理图;
图10为仅基于第一约束集合更新得到的路由约束向量图,生成的电路原理图;
图11为中两个信号线的水平线段出现重叠情况示意图;
图12为基于本发明实施例四进行避免两个信号线的水平线段出现重叠处理后的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在生成电路原理图路由规划的应用场景中,除了避免信号线重叠之外,为了增强可读性,需要尽可能减少信号线交叉点的数量、以及信号线的弯折。实际应用中存在不同的需求,例如一些场景下,空间有限,因此对设置的垂直通道数的数量有所限制。有些场景下,对空间没有特别的限制,但需要让信号线交叉点尽可能少,还有些场景下需要综合考虑垂直通道数的数量以及信号线交叉点的数量,基于上述三种需求,本发明分别提出了实施例一、实施例二和实施例三。
实施例一、
对于空间有限的场景,本发明提出了实施例一,实施例一提供了一种基于空间约束的电路原理图路由规划系统,包括需要设置在第一模块列和第二模块列之间的M个信号线{L1,L2,…,Lm,…,LM}、第一约束集合{H{L1 i,L1 j},H{L2 i,L2 j},…,H{Lx i,Lx j},…,H{LX i,LX j}、第二约束集合{C{L1 p,L1 q:r1},C{L2 p,L2 q:r2},…,C{Ly p,Ly q:ry},…,C{LY p,LY q:rY}}、存储有计算及程序的存储器和处理器。需要说明的是,第一模块列和第二模块列中,每一模块列包括至少一个电路模块,每一电路模块包括至少一个管脚,属于同一模块列的管脚的横坐标相同,管脚的横坐标初始状态为未知量,通过生成电路原理图路由规划,能够确定横坐标的具体位置,管脚的纵坐标为已知量,基于纵坐标可以判断位置高低。
其中,Lm为第m个信号线,m的取值范围为1到M,Lm包括一条垂直线段、至少两个连接点以及每一连接点和位于第一模块列或第二模块列的对应管脚之间的水平线段。每一信号线仅包括一条垂直线段,能够减少信号线的弯折,提高电路原理图的可读性。每一连接点的连接方向和纵坐标已知,可以理解的是,连接点纵坐标和对应管脚的纵坐标相同。L1,L2,…,Lm,…,LM的按照最低连接点从低到高的顺序排列,对应的信号线序号从小到大依次排序。
第一约束集合中存储的是所有符合第一约束条件的元素,H{Lx i,Lx j}表示Lx i的垂直线段必须分配在Lx j的垂直线段的第一侧,Lx i、Lx j均属于{L1,L2,…,Lm,…LM},Lx i≠Lx j,x的取值范围为1到X;第一约束条件能够避免水平方向上不同信号线之间的相互覆盖。
第二约束集合中存储的是所有符合第二约束条件的元素,C{Ly p,Ly q:ry}表示Ly p的垂直线段位于Ly q的垂直线段的第一侧,相对于Ly p的垂直线段位于Ly q的垂直线段的第二侧,所减少的垂直交叉点数为ry,Ly p,Ly q均属于{L1,L2,…,Lm,…,LM},Ly p≠Ly q,所述第一侧为所述第二侧的对侧,y的取值范围为1到Y。通过引入第二约束条件,能够减少垂直交叉点数量。垂直交叉点指的是不同信号线的垂直线和水平线相交的点。
当所述处理器执行所述计算机程序时,实现以下步骤:
步骤S1、基于{L1,L2,…,Lm,…,LM}构建路由约束向量图,包括开始节点、结束节点、每一Lm对应的节点Gm、从开始节点指向Gm的有向边、以及从Gm指向结束节点的有向边。
步骤S2、根据H{Lx i,Lx j}更新所述路由约束向量图,其中,除起始节点和终止接点之外,每一节点始终存在至少一条指向该节点的有向边以及至少一条从该节点指向另一节点的有向边,若第一节点和第二节点之间存在一条从第一节点指向第二节点的有向边,则表示第一节点对应的信号线的垂直线段需要分配在第二节点对应的信号线的垂直线的第一侧。
其中,需要基于每一H{Lx i,Lx j}来更新所述路由约束向量图。作为一种示例,第一侧为左侧,第二侧为右侧。或者第一侧为右侧,第二侧为左侧,可根据具体应用需求来具体设置。
步骤S3、获取当前路由约束向量图中最长边对应的节点数maxN,将maxN和maxA中较大的值确定为目标垂直通道数T,其中,maxA为预设的垂直通道最大值。
步骤S4、根据C{Ly p,Ly q:ry}更新所述路由约束向量图,当更新的路由约束向量图的最长边节点数量等于T时,执行步骤S5。
需要说明的是,步骤S4中并非基于所有C{Ly p,Ly q:ry}更新所述路由约束向量图,而是逐个更新,且需要判断当更新的路由约束向量图的最长边节点数量是否等于T,若是,则需要停止更新,因为当更新的路由约束向量图的最长边节点数量等于T后,再继续C{Ly p,Ly q:ry}更新所述路由约束向量图,可能会导致垂直通道数量进一步增加。
步骤S5、基于当前路由约束向量图生成第一模块列和第二模块列之间的电路原理图。
需要说明的是,路由约束向量图中明确约束了部分信号线的垂直线段放置的左右位置关系,且步骤S3中已经确定了目标垂直通道数T,因此在第一模块列和第二模块列建立T个目标垂直通道,且满足当前路由约束向量图中的约束条件,对L1,L2,…,Lm,…,LM进行路径规划即可生成第一模块列和第二模块列之间的电路原理图。
作为一种示例,若L1,L2,…,Lm,…LM中连续两个或两个以上的信号线的最低连接点的纵坐标相同,则将最低连接点的纵坐标相同的信号线按照从短到长的顺序排列。通过将L1,L2,…,Lm,…LM排序,便于后续计算,且便于提高生成电路原理图的可读性。
作为一种示例,所述步骤S2中,根据H{Lx i,Lx j}更新所述路由约束向量图,包括:
步骤R1、依次获取每一H{Lx i,Lx j},根据H{Lx i,Lx j},删除Lx i对应的节点Gx i当前指向结束节点的有向边,删除开始节点指向Lx j对应的节点Gx j的有向边,在Gx i和Gx j之间构建Gx i指向Gx j的有向边。
作为一种示例,所述步骤S4包括:
步骤S41、获取当前第二约束集合中,每一C{Ly p,Ly q:ry}对应的权重Wy,Wy为若在Ly p对应的节点Gy p和Ly q对应的节点Gy q之间添加Gy p指向Gy q的有向边,从起点节点到终点节点且经过Gy p和Gy q的最长路径的节点数量。
可以理解的是,步骤S41中并未将Ly p对应的节点Gy p和Ly q对应的节点Gy q之间添加Gy p指向Gy q的有向边,而是假设添加,获取添加后从起点节点到终点节点且经过Gy p和Gy q的最长路径的节点数量,作为C{Ly p,Ly q:ry}对应的权重Wy
步骤S42、将当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除,将开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边删除,在当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p和Gy q之间构建Gy p指向Gy q的有向边。
可以理解的是,随着路由约束向量图的更新,一些节点对应的指向结束节点的有向边可能已经被删除,开始节点指向一些节点的有向边也可能已经被删除,因此,步骤S42中,只有当前存在最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边时,才需要执行将当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除的操作;同理,也只有当前存在开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边时,才需要执行将开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边删除。
其中,优选的,若存在多个最小Wy,则将多个最小Wy对应的C{Ly p,Ly q:ry}中Ly p序号最小的Wy作为所述当前最小Wy;若多个最小Wy对应的C{Ly p,Ly q:ry}的最小Ly p序号对应多个,则将最小Wy对应的多个最小Ly p序号中Ly q序号最小的Wy作为所述当前最小Wy
步骤S43、判断当前路由约束向量图的最长边节点数量是否等于T,若是,则将当前路由约束向量图确定为目标向量图,执行步骤S5,否则,将最小Wy的C{Ly p,Ly q:ry}从第二约束集合中删除,返回执行步骤S41。
通过步骤S41-步骤S43,能够在保证满足空间约束的条件下,尽可能减少垂直交叉点的数量。
作为一种示例,所述步骤S5包括:
步骤S51、在第一模块列和第二模块列之间设置T个垂直通道,根据当前路由约束向量图的的约束条件,并且避免信号线的垂直线段重叠,将M个信号线设置在所述T个垂直通道中,设置对应的水平线段建立信号线的连接点与对应管脚的连接,生成第一模块列和第二模块列之间的电路原理图。
其中,现有的避免信号线的垂直线段重叠的方式全部落入本发明保护范围之内,此外,本发明进一步提出了一种避免信号线的垂直线段重叠的处理方式。作为一种示例,所述系统还包括第三约束集合{V1,V2,…,Vz,…VZ},其中,Vz表示第z个信号线子集,Vz中包括至少两个信号线,Vz属于{L1,L2,…,Lm,…,LM},同一Vz中的信号线的垂直线不能分配在同一个垂直通道中,maxV为Vz中信号线数量最大值,maxA≥maxV,可以理解的是,为了避免垂直线段的重叠,垂直通道的数量必须大于maxV,在空间约束的情况下,优选的,maxA=maxV,但可以理解的是,如果空间约束条件允许,maxA也可以大于maxV。
在设置第三约束集合的基础上,作为一种示例,所述步骤S5包括:
步骤S51、从当前路由约束向量图的起点节点开始,依次获取每一级节点对应的信号线序号,并将每一级节点对应的信号线序号按照从小到大的顺序,遵循第三约束集合中的约束条件,生成第一模块列和第二模块列之间的电路原理图。
作为一种示例,所述步骤S51具体包括:
步骤A1、从当前路由约束向量图的起点节点开始,获取每一级节点对应的信号线序号,并按照信号线序号按照从小到大的顺序,得到(G1 w,G2 w,…,Gu w,…,Gf(w) w),Gu w为第w级的第u个节点,u的取值范围为1到f(w),f(w)为第w级节点总数,w的取值范围为1到W,W为总级数。
步骤A2、在第一模块列和第二模块列之间创建第一个垂直通道,将G1 1对应的垂直线段设置在第一个垂直通道中,并设置对应的水平线段建立G1 1对应的连接点与对应管脚的连接,设置u=2,w=1,执行步骤A3。
步骤A3、从第一个垂直通道开始,逐个判断当前已放置垂直线段的垂直通道中,所放置垂直线段对应的信号线是否与Gu w同属于一个Vz,若不是,则将Gu w对应的垂直线段设置在当前已放置信号线的垂直通道中,并设置对应的水平线段建立Gu w对应的垂直线段连接点与对应管脚的连接;若当前已放置信号线的垂直通道全部不能放置Gu w对应的信号线,则创建一个新的垂直通道放置Gu w对应的垂直线段;并设置对应的水平线段建立Gu w对应的连接点与对应管脚的连接。
作为一种示例,步骤A3中,信号线延从第一侧指向第二侧的方向依次增加新的垂直通道。需要说明的是,步骤A3中,从第一个垂直通道开始,依次分析每一个垂直通道是否符合当前分析的垂直通道中,虽有已放置的垂直线段对应的信号线是都与Gu w同属于一个Vz,若均不是,则将Gu w对应的垂直线段设置在当前分析的垂直通道中,且不需要再判断后边其他的垂直通道。当所有已放置垂直线段的通道全部分析完,且均不符合放置条件时,才需要创建新的垂直通道来放置Gu w对应的垂直线段。
步骤A4、若u<f(w),则设置u=u+1,返回执行步骤A3,若u=f(w),且w<W,则设置u=1,w=w+1,返回执行步骤A3,若u=f(w),且w=W,则结束流程。
需要说明的是,通过步骤A1-步骤A4,能够使得电路原理图的垂直线在满足左右分布关系之后,尽可能沿着从第一侧指向第二侧的方向,将最低连接点按照从低到高的顺序排列,提高了电路原理图的可读性。
需要说明的是,现有的所有的生成第一约束集合的方式,全部落入本发明保护范围之内。此外,本发明进一步提出了一种生成第一约束集合的方式,作为一种示例,当所述处理器执行所述计算机程序时,还实现以下步骤:
步骤E1、遍历{L1,L2,…,Lm,…,LM},当满足Li1的其中一个朝向第一侧的连接点的纵坐标等于Lj1的其中一个朝向第二侧的连接点的纵坐标,或者满足Lj1的其中一个朝向第二侧的连接点的纵坐标等于Li1的其中一个朝向第一侧的连接点的纵坐标时,设置H{Li1,Lj1},添加至第一约束集合中。
可以理解的是,需要将{L1,L2,…,Lm,…,LM}中的信号线两两比较,找出所有符合条件的H{Li1,Lj1}。
步骤E2、基于所有H{Li1,Lj1},生成所述第一约束集合,其中,Li1、Lj1均属于{L1,L2,…,Lm,…,LM},i1、j1的取值范围为1到M,且i1≠j1。
需要说明的是,现有的所有的生成第二约束集合的方式,全部落入本发明保护范围之内。此外,本发明进一步提出了一种生成第二约束集合的方式,作为一种示例,当所述处理器执行所述计算机程序时,还实现以下步骤:
步骤C1、遍历{L1,L2,…,Lm,…,LM}。
步骤C2、获取Li2的垂直线段在Lj2的垂直线段第一侧时,Li2和Lj2的垂直线段的重叠部分内,Li2朝向第二侧的连接点数量与Lj2朝向第一侧的连接点数量的和cv1。
步骤C3、获取Li2的垂直线段在Lj2的垂直线段第二侧时,Li2和Lj2的垂直线段的重叠部分内,Li2朝向第一侧的连接点数量与Lj2朝向第二侧的连接点数量的和cv2。
步骤C4、若cv1小于cv2,则设置C{Li2,Lj2:cv2-cv1},添加至所述第二约束集合中,若cv1大于cv2,则设置C{Lj2,Li2:cv1-cv2},基于所有的C{Li2,Lj2:cv2-cv1}、C{Lj2,Li2:cv1-cv2}生成所述第二约束集合,其中,Li2、Lj2均属于{L1,L2,…,Lm,…,LM},i2、j2的取值范围为1到M,且i2≠j2。
通过步骤C1-步骤C4能够快速准确生成第二约束集合。
需要说明的是,现有的所有的生成第三约束集合的方式,全部落入本发明保护范围之内。此外,本发明进一步提出了一种生成第三约束集合的方式,作为一种示例,当所述处理器执行所述计算机程序时,还实现以下步骤:
步骤D1、初始化队列为空,将L1添加至队列中,设置m=2。
步骤D2、将当前队列中最低的最高连接点确定为参考点,判断Lm的最低连接点是否低于参考点,若低于,则执行步骤D3,否则,执行步骤D4。
步骤D3、将Lm添加至队列中,若m<M,则设置m=m+1,返回执行步骤D2,若m=M,则将当前队列中的所有信号线构建生成信号线子集,放置在所述第三约束集合中,生成所述第三约束集合,结束流程。
步骤D4、将当前队列中的所有信号线构建生成信号线子集,放置在所述第三约束集合中,并将当前参考点对应的信号线从当前队列中删除,返回执行步骤D2。
通过步骤D1-步骤D4能够快速准确获取所有信号线子集,从而生成第三约束集合。
实施例一在优先满足空间约束的情况下,尽可能减少垂直交叉点数量,路由规划简洁清晰,降低了电路原理图的复杂度,提高了可读性,便于用户追踪模块的驱动和加载信号,进而提高芯片设计的调试和验证效率。
实施例二、
对于对空间没有特别的限制,但需要让信号线交叉点尽可能少的场景,本发明提出了实施例二,实施例二提供一种基于垂直交叉点约束的电路原理图路由规划系统,包括需要设置在第一模块列和第二模块列之间的M个信号线{L1,L2,…,Lm,…,LM}、第一约束集合{H{L1 i,L1 j},H{L2 i,L2 j},…,H{Lx i,Lx j},…,H{LX i,LX j}、第二约束集合{C{L1 p,L1 q:r1},C{L2 p,L2 q:r2},…,C{Ly p,Ly q:ry},…,C{LY p,LY q:rY}}、第三约束集合{V1,V2,…,Vz,…VZ}、存储有计算及程序的存储器和处理器,需要说明的是,第一模块列和第二模块列中,每一模块列包括至少一个电路模块,每一电路模块包括至少一个管脚,属于同一模块列的管脚的横坐标相同,管脚的横坐标初始状态为未知量,通过生成电路原理图路由规划,能够确定横坐标的具体位置,管脚的纵坐标为已知量,基于纵坐标可以判断位置高低。
其中,Lm为第m个信号线,m的取值范围为1到M,Lm包括一条垂直线段、至少两个连接点以及每一连接点和位于第一模块列或第二模块列的对应管脚之间的水平线段,每一连接点的连接方向和纵坐标已知,每一信号线仅包括一条垂直线段,能够减少信号线的弯折,提高电路原理图的可读性。每一连接点的连接方向和纵坐标已知,可以理解的是,连接点纵坐标和对应管脚的纵坐标相同。L1,L2,…,Lm,…,LM的按照最低连接点从低到高的顺序排列,对应的信号线序号从小到大依次排序。作为一种示例,若L1,L2,…,Lm,…LM中连续两个或两个以上的信号线的最低连接点的纵坐标相同,则将最低连接点的纵坐标相同的信号线按照从短到长的顺序排列。通过将L1,L2,…,Lm,…LM排序,便于后续计算,且便于提高生成电路原理图的可读性。
第一约束集合中存储的是所有符合第一约束条件的元素,H{Lx i,Lx j}表示Lx i的垂直线段必须分配在Lx j的垂直线段的第一侧,Lx i、Lx j均属于{L1,L2,…,Lm,…LM},Lx i≠Lx j,x的取值范围为1到X;第一约束条件能够避免水平方向上不同信号线之间的相互覆盖。
第二约束集合中存储的是所有符合第二约束条件的元素,C{Ly p,Ly q:ry}表示Ly p的垂直线段位于Ly q的垂直线段的第一侧,相对于Ly p的垂直线段位于Ly q的垂直线段的第二侧,所减少的垂直交叉点数为ry,Ly p,Ly q均属于{L1,L2,…,Lm,…,LM},Ly p≠Ly q,所述第一侧为所述第二侧的对侧,y的取值范围为1到Y;通过引入第二约束条件,能够减少垂直交叉点数量。垂直交叉点指的是不同信号线的垂直线和水平线相交的点。
第三约束集合中存储的是所有符合第三约束条件的信号线子集,Vz表示第z个信号线子集,Vz中包括至少两个信号线,Vz属于{L1,L2,…,Lm,…,LM},同一Vz中的信号线的垂直线不能分配在同一个垂直通道中,maxV为Vz中信号线数量最大值;通过引入第三约束条件可以避免不同信号线的垂直线重叠。
需要说明的是,现有的所有的生成第一约束集合、第二约束集合、第三约束集合的方式,全部落入本发明保护范围之内。本发明所提出的生成第一约束集合、第二约束集合、第三约束集合的方式已在实施例一中具体描述,在此不再赘述。
当所述处理器执行所述计算机程序时,实现以下步骤:
步骤H1、基于{L1,L2,…,Lm,…,LM}构建路由约束向量图,包括开始节点、结束节点、每一Lm对应的节点Gm、从开始节点指向Gm的有向边以及从Gm指向结束节点的有向边。
步骤H2、根据所有H{Lx i,Lx j}更新所述路由约束向量图,其中,除起始节点和终止接点之外,每一节点始终存在至少一条指向该节点的有向边以及至少一条从该节点指向另一节点的有向边,若第一节点和第二节点之间存在一条从第一节点指向第二节点的有向边,则表示第一节点对应的信号线的垂直线段需要分配在第二节点对应的信号线的垂直线的第一侧。
其中,需要基于每一H{Lx i,Lx j}来更新所述路由约束向量图。作为一种示例,第一侧为左侧,第二侧为右侧。或者第一侧为右侧,第二侧为左侧,可根据具体应用需求来具体设置。具体可用过实施例一种的步骤R1来实现所述步骤H2,在此不再赘述。
步骤H3、根据所有C{Ly p,Ly q:ry}更新所述路由约束向量图。
其中,需要根据每一C{Ly p,Ly q:ry},来更新所述路由约束向量图,从而实现尽可能多地减少垂直交叉点数。
步骤H4、从当前路由约束向量图的起点节点开始,依次获取每一级节点对应的信号线序号,并将每一级节点对应的信号线序号按照从小到大的顺序,遵循第三约束集合中的约束条件,生成第一模块列和第二模块列之间的电路原理图。
步骤H4具体可通过步骤A1-步骤A4来实现,步骤A1-步骤A4已在实施例一种详细描述,在此不再赘述。
需要说明的是,路由约束向量图中明确约束了部分信号线的垂直线段放置的左右位置关系,且第三约束集合中明确限制了哪些信号线的垂直线段不能设置在同一垂直通道,因此,基于当前路由约束向量图和第三约束集合可以对L1,L2,…,Lm,…,LM进行路径规划,生成第一模块列和第二模块列之间的电路原理图。
作为一种示例,所述步骤H3包括:
步骤H31、随机从当前第二约束集合中获取一个C{Ly p,Ly q:ry},将所获取的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除,将开始节点指向所获取的C{Ly p,Ly q:ry}对应的Gy q的有向边删除,在所获取的C{Ly p,Ly q:ry}对应的Gy p和Gy q之间构建Gy p指向Gy q的有向边。
可以理解的是,随着路由约束向量图的更新,一些节点对应的指向结束节点的有向边可能已经被删除,开始节点指向一些节点的有向边也可能已经被删除,因此,步骤H31中,只有当前存在所获取的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边时,才需要执行将所获取的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除的操作;同理,也只有当前存在开始节点指向所获取的C{Ly p,Ly q:ry}对应的Gy q的有向边时,才需要执行将开始节点指向所获取的C{Ly p,Ly q:ry}对应的Gy q的有向边删除。
步骤H32、将当前所获取的C{Ly p,Ly q:ry}从第二约束集合中删除,返回执行步骤S41,直至当前第二约束集合为空。
通过步骤H31-步骤H32能够快速高效地基于所有C{Ly p,Ly q:ry}更新路由约束向量图。
若需要在优先减少垂直交叉点的前提下,也尽可能多的减少垂直通道的数量,所述步骤H3还可包括:
步骤H31、获取当前第二约束集合中,每一C{Ly p,Ly q:ry}对应的权重Wy,Wy为若在Ly p对应的节点Gy p和Ly q对应的节点Gy q之间添加Gy p指向Gy q的有向边,从起点节点到终点节点且经过Gy p和Gy q的最长路径的节点数量。
可以理解的是,步骤H31中并未将Ly p对应的节点Gy p和Ly q对应的节点Gy q之间添加Gy p指向Gy q的有向边,而是假设添加,获取添加后从起点节点到终点节点且经过Gy p和Gy q的最长路径的节点数量,作为C{Ly p,Ly q:ry}对应的权重Wy
步骤H32、将当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除,将开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边删除,在当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p和Gy q之间构建Gy p指向Gy q的有向边。
可以理解的是,随着路由约束向量图的更新,一些节点对应的指向结束节点的有向边可能已经被删除,开始节点指向一些节点的有向边也可能已经被删除,因此,步骤H32中,只有当前存在最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边时,才需要执行将当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除的操作;同理,也只有当前存在开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边时,才需要执行将开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边删除。
其中,优选的,若存在多个最小Wy,则将多个最小Wy对应的C{Ly p,Ly q:ry}中Ly p序号最小的Wy作为所述当前最小Wy;若多个最小Wy对应的C{Ly p,Ly q:ry}的最小Ly p序号对应多个,则将最小Wy对应的多个最小Ly p序号中Ly q序号最小的Wy作为所述当前最小Wy
步骤H33、将当前最小Wy的C{Ly p,Ly q:ry}从第二约束集合中删除,判断当前第二约束集合是否为空,若为空,则执行步骤H4,否则,返回执行步骤H31
需要说明的是,通过步骤H31-步骤H32,可能得到与步骤H31-步骤H32结果相同的路由约束向量图,也可能得到相对于步骤H31-步骤H32更新的路由约束向量图最长边长节点数更少的路由约束向量图,从而减少最终生成电路原理图的垂直通道数。
实施例二最大程度减少了垂直交叉点数量,使得路由规划简洁清晰,降低了电路原理图的复杂度,提高了可读性,便于用户追踪模块的驱动和加载信号,进而提高芯片设计的调试和验证效率。
实施例三、
对于需要综合考虑垂直通道数的数量以及信号线交叉点的数量的场景,本发明提出了实施例三,实施例三提供了一种电路原理图路由规划系统,包括需要设置在第一模块列和第二模块列之间的M个信号线{L1,L2,…,Lm,…,LM}、第一约束集合{H{L1 i,L1 j},H{L2 i,L2 j},…,H{Lx i,Lx j},…,H{LX i,LX j}、第二约束集合{C{L1 p,L1 q:r1},C{L2 p,L2 q:r2},…,C{Ly p,Ly q:ry},…,C{LY p,LY q:rY}}、第三约束集合{V1,V2,…,Vz,…VZ}、存储有计算及程序的存储器和处理器,需要说明的是,第一模块列和第二模块列中,每一模块列包括至少一个电路模块,每一电路模块包括至少一个管脚,属于同一模块列的管脚的横坐标相同,管脚的横坐标初始状态为未知量,通过生成电路原理图路由规划,能够确定横坐标的具体位置,管脚的纵坐标为已知量,基于纵坐标可以判断位置高低。
其中,Lm为第m个信号线,m的取值范围为1到M,Lm包括一条垂直线段、至少两个连接点以及每一连接点和位于第一模块列或第二模块列的对应管脚之间的水平线段,每一信号线仅包括一条垂直线段,能够减少信号线的弯折,提高电路原理图的可读性。每一连接点的连接方向和纵坐标已知,可以理解的是,连接点纵坐标和对应管脚的纵坐标相同。L1,L2,…,Lm,…,LM的按照最低连接点从低到高的顺序排列,对应的信号线序号从小到大依次排序。作为一种示例,若L1,L2,…,Lm,…LM中连续两个或两个以上的信号线的最低连接点的纵坐标相同,则将最低连接点的纵坐标相同的信号线按照从短到长的顺序排列。通过将L1,L2,…,Lm,…LM排序,便于后续计算,且便于提高生成电路原理图的可读性。
第一约束集合中存储的是所有符合第一约束条件的元素,H{Lx i,Lx j}表示Lx i的垂直线段必须分配在Lx j的垂直线段的第一侧,Lx i、Lx j均属于{L1,L2,…,Lm,…LM},Lx i≠Lx j,x的取值范围为1到X;第一约束条件能够避免水平方向上不同信号线之间的相互覆盖。
第二约束集合中存储的是所有符合第二约束条件的元素,C{Ly p,Ly q:ry}表示Ly p的垂直线段位于Ly q的垂直线段的第一侧,相对于Ly p的垂直线段位于Ly q的垂直线段的第二侧,所减少的垂直交叉点数为ry,Ly p,Ly q均属于{L1,L2,…,Lm,…,LM},Ly p≠Ly q,所述第一侧为所述第二侧的对侧,y的取值范围为1到Y;通过引入第二约束条件,能够减少垂直交叉点数量。垂直交叉点指的是不同信号线的垂直线和水平线相交的点。
第三约束集合中存储的是所有符合第三约束条件的信号线子集,Vz表示第z个信号线子集,Vz中包括至少两个信号线,Vz属于{L1,L2,…,Lm,…,LM},同一Vz中的信号线的垂直线不能分配在同一个垂直通道中,maxV为Vz中信号线数量最大值;通过引入第三约束条件可以避免不同信号线的垂直线重叠。
需要说明的是,现有的所有的生成第一约束集合、第二约束集合、第三约束集合的方式,全部落入本发明保护范围之内。本发明所提出的生成第一约束集合、第二约束集合、第三约束集合的方式已在实施例一中具体描述,在此不再赘述。
当所述处理器执行所述计算机程序时,实现以下步骤:
步骤F1、基于{L1,L2,…,Lm,…,LM}构建路由约束向量图,包括开始节点、结束节点、每一Lm对应的节点Gm、从开始节点指向Gm的有向边以及从Gm指向结束节点的有向边。
步骤F2、根据H{Lx i,Lx j}更新所述路由约束向量图,其中,除起始节点和终止接点之外,每一节点始终存在至少一条指向该节点的有向边以及至少一条从该节点指向另一节点的有向边,若第一节点和第二节点之间存在一条从第一节点指向第二节点的有向边,则表示第一节点对应的信号线的垂直线段需要分配在第二节点对应的信号线的垂直线的第一侧。
其中,需要基于每一H{Lx i,Lx j}来更新所述路由约束向量图。作为一种示例,第一侧为左侧,第二侧为右侧。或者第一侧为右侧,第二侧为左侧,可根据具体应用需求来具体设置。具体可用过实施例一种的步骤R1来实现所述步骤F2,在此不再赘述。
步骤F3、获取当前路由约束向量图中最长边对应的节点数maxN,将maxN和maxV中较大的值确定为目标垂直通道数T。
步骤F4、根据C{Ly p,Ly q:ry}更新所述路由约束向量图,当更新的路由约束向量图的最长边节点数量等于T时,则判断之后的每一C{Ly p,Ly q:ry}更新所述路由约束向量图所增加的最长边节点数量F是否满足ry>n*F,若满足,则基于该C{Ly p,Ly q:ry}更新所述路由约束向量图,否则,跳过该C{Ly p,Ly q:ry},直至完成基于所有C{Ly p,Ly q:ry}更新所述路由约束向量图,n为大于等于1的整数。
其中,为了综合考虑垂直通道数的数量以及信号线交叉点的数量,需要在当更新的路由约束向量图的最长边节点数量等于T时,判断继续基于C{Ly p,Ly q:ry}更新所述路由约束向量图时,减少的交叉节点数量与增加的垂直轨道数量的关系,在确定减少的交叉节点数量大于增加的垂直轨道数量的情况下,再基于C{Ly p,Ly q:ry}更新所述路由约束向量图,否则,跳过该C{Ly p,Ly q:ry}。优选的,n的取值为2。
步骤F5、从当前路由约束向量图的起点节点开始,依次获取每一级节点对应的信号线序号,并将每一级节点对应的信号线序号按照从小到大的顺序,遵循第三约束集合中的约束条件,生成第一模块列和第二模块列之间的电路原理图。
步骤F5具体可通过步骤A1-步骤A4来实现,步骤A1-步骤A4已在实施例一种详细描述,在此不再赘述。
需要说明的是,路由约束向量图中明确约束了部分信号线的垂直线段放置的左右位置关系,且第三约束集合中明确限制了哪些信号线的垂直线段不能设置在同一垂直通道,因此,基于当前路由约束向量图和第三约束集合可以对L1,L2,…,Lm,…,LM进行路径规划,生成第一模块列和第二模块列之间的电路原理图。
作为一种示例,所述步骤F4包括:
步骤F41、获取当前第二约束集合中,每一C{Ly p,Ly q:ry}对应的权重Wy,Wy为若在Ly p对应的节点Gy p和Ly q对应的节点Gy q之间添加Gy p指向Gy q的有向边,从起点节点到终点节点且经过Gy p和Gy q的最长路径的节点数量。
可以理解的是,步骤F41中并未将Ly p对应的节点Gy p和Ly q对应的节点Gy q之间添加Gy p指向Gy q的有向边,而是假设添加,获取添加后从起点节点到终点节点且经过Gy p和Gy q的最长路径的节点数量,作为C{Ly p,Ly q:ry}对应的权重Wy
步骤F42、若当前路由约束向量图的最长边节点数量小于T,则执行步骤F43,若当前路由约束向量图的最长边节点数量等于T,则执行步骤F44。
步骤F43、将当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除,将开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边删除,在当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p和Gy q之间构建Gy p指向Gy q的有向边,执行步骤F45。
可以理解的是,随着路由约束向量图的更新,一些节点对应的指向结束节点的有向边可能已经被删除,开始节点指向一些节点的有向边也可能已经被删除,因此,步骤F43中,只有当前存在最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边时,才需要执行将当前最小Wy的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除的操作;同理,也只有当前存在开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边时,才需要执行将开始节点指向当前最小Wy的C{Ly p,Ly q:ry}对应的Gy q的有向边删除。
其中,优选的,若存在多个最小Wy,则将多个最小Wy对应的C{Ly p,Ly q:ry}中Ly p序号最小的Wy作为所述当前最小Wy;若多个最小Wy对应的C{Ly p,Ly q:ry}的最小Ly p序号对应多个,则将最小Wy对应的多个最小Ly p序号中Ly q序号最小的Wy作为所述当前最小Wy
步骤F44、先执行步骤F41获取当前每一C{Ly p,Ly q:ry}对应的权重Wy,判断最小Wy的C{Ly p,Ly q:ry}更新所述路由约束向量图所增加的最长边节点数量F是否满足ry>n*F,若满足,则执行步骤F43,否则,执行步骤F45;
步骤F45、将当前最小Wy的C{Ly p,Ly q:ry}从第二约束集合中删除,返回执行步骤F41。
通过步骤F41-步骤F45,能够综合考虑交叉节点数的减少量和垂直通道数的增加量来更新所述路由约束向量图。
实施例三综合考虑垂直交叉点数量和所需增加的垂直通道数量,路由规划简洁清晰,降低了电路原理图的复杂度,提高了可读性,便于用户追踪模块的驱动和加载信号,进而提高芯片设计的调试和验证效率。
需要说明的是,通常情况下,通过第一约束条件,即可避免信号线的水平线段的重叠,但是,一些特殊的情况下,第一约束条件也无法避免信号线的水平线段的重叠,出现第一约束条件冲突,针对此情况,本发明进一步提出了实施例四。
以下通过具体实施例对实施例一、实施例二、实施例三进行进一步说明。如图1所示示例,第一模块列为模块列1,包括电路模块A;第二模块列为模块列2,包括电路模块B和电路模块C,一共包括9个信号线,图1中已按照最低连接点从低到高的顺序排列。箭头方向代表连接点的连接方向。需要说明的是,这个阶段可以不用绘制水平线段,因为横坐标并未确定好,待通过路由规划确定好之后,再绘制对应的水平线段。基于图1所示示例得到的第一约束集合为{H{1,2},H{5,1},H{4,8}},第二约束集合为{C{4,3:2},C{4,9:2},C{5,3:2},C{7,2:2},C{7,6:2},C{3,1:2},C{4,1:2},C{4,5:1},C{7,4:2},C{6,5:1},C{7,5:3},C{8,5:2}},第三约束集合为{V{1,2,3,4,5},V{2,4,5,6,7},V{2,4,5,6,8},V{4,8,9}},maxV=5,需要说明的是,本实施例中,第一侧为左侧。
基于图1所示示例,构建对应的路由约束向量图,初始状态如图2所示的路由约束向量图。依次基于H{1,2},H{5,1},H{4,8}更新路由约束向量图,得到图3所示的路由约束向量图。接下来针对实施例一所述的场景,首先根据当前路由路由约束向量图计算出maxN=3(最长边:节点5->节点1->节点2),maxV=5。因此T=5。然需要对C规则进行排序,来决定C规则的添加顺序。基于当前路由约束向量图计算的权重,根据权重排序,基于C{4,3:2}更新路由约束向量图,更新后的路由约束向量图的最长边节点数量是2,小于5。因此,将C{4,3:2}从第二约束集合中删除,基于当前路由约束向量图重新计算权重,重新排序,获取当前权重最小的C{Ly p,Ly q:ry}更新路由约束向量图。依次类推,直至基于C{4,5:1}更新路由约束向量图之后,当前路由约束向量图的最长边节点数量为5(节点4->节点5->节点3->节点1->节点2),如图4所示。实施例一中基于图4所示的路由约束向量图可绘制得到图5所示的电路原理图。
对于实施例二,基于全部的C{Ly p,Ly q:ry}更新如图2所示的路由约束向量图,能够得到图6所示的路由约束向量图,实施例二基于图6所示的路由约束向量图生成图7所示的电路原理图。
对于实施例三,以n=2为例,当得到图4所示的路由约束向量图之后,基于图4所示的路由约束向量图进一步获取当前最小权重对应的C{7,5:3},若基于C{7,5:3}更新路由约束向量图,减小的垂直交叉点数为3,新增的最长边节点数量为0,满足ry>n*F,仅以基于C{7,5:3}更新路由约束向量图,依次类推,直至所有全部的C{Ly p,Ly q:ry}判断更新完毕,得到图8所示的路由约束向量图,实施例三基于图8所示的路由约束向量图生成图9所示的电路原理图。
若仅考虑信号线不重叠,则直接可以基于图3所示的路由约束向量图生成图10所示的电路原理图。图10所示的路由规划排列紧凑,垂直交叉点的数量=26,垂直通道数为5。基于
实施例一得到的图5,在保持垂直通道数为5的约束下,垂直交叉点数为21,相比图10,减少了4个垂直交叉点。
实施例二得到的图7,在不考虑垂直通道数的情况下,垂直交叉点数为12,相比图10,减少了9个垂直交叉点。
实施例三得到的图9,在综合考虑垂直通道数和垂直交叉点数的情况下,垂直交叉点数为16,垂直通道数为6,相比图10,仅增加了1个垂直通道,减少了5个垂直交叉点。
通过上述比较可知,实施例一、实施例二、实施例三得到的电路原理图,相对于建考虑先号线重叠的图10来说,均能实现路由规划简洁清晰,降低了电路原理图的复杂度,提高了可读性,便于用户追踪模块的驱动和加载信号,进而提高芯片设计的调试和验证效率。
实施例四、
实施例四提供了一种避免信号线覆盖的电路原理图路由规划系统,包括第一模块列、第二模块列、设置在所述第一模块列、第二模块列之间的K个信号线{L1,L2,…,Lk,…LK}、预设的第一约束条件、存储有计算及程序的存储器和处理器,需要说明的是,第一模块列和第二模块列中,每一模块列包括至少一个电路模块,每一电路模块包括至少一个管脚,属于同一模块列的管脚的横坐标相同,管脚的横坐标初始状态为未知量,通过生成电路原理图路由规划,能够确定横坐标的具体位置,管脚的纵坐标为已知量,基于纵坐标可以判断位置高低。
其中,Lk为第K个信号线,k的取值范围为1到K,Lk包括一条垂直线段、至少两个连接点以及每一连接点和位于第一模块列或第二模块列的对应管脚之间的水平线段,每一信号线仅包括一条垂直线段,能够减少信号线的弯折,提高电路原理图的可读性。每一连接点的连接方向和纵坐标已知,可以理解的是,连接点纵坐标和对应管脚的纵坐标相同。所述第一约束条件为H{a,b},H{a,b}表示信号线a的垂直线段必须分配在信号线b的垂直线段的第一侧。
当所述处理器执行所述计算机程序时,实现以下步骤:
步骤T1、遍历{L1,L2,…,Lk,…LK},当满足Lxi的其中一个朝向第一侧的连接点的纵坐标等于Lxj的其中一个朝向第二侧的连接点的纵坐标,或者满足Lxj的其中一个朝向第二侧的连接点的纵坐标等于Lxi的其中一个朝向第一侧的连接点的纵坐标时,设置H{Lxi,Lxj},生成第一约束集合,其中,所述第二侧为所述第一侧的对侧,Lxi、Lxj属于{L1,L2,…,Lk,…LK},ix、jx的取值范围为1到K,且ix≠jx。
步骤T2、遍历所述第一约束集合,若同时存在H{Lxi,Lxj}和H{Lxj,Lxi},则将Lxi的垂直线段拆分为Lxi 1和Lxi 2,将Lxi的朝向第一侧的连接点全部转移给Lxi 1,将Lxi的朝向第二侧的连接点全部转移给Lxi 2,选择距离Lxi 1和Lxi 2中最低的最低连接点之上最近一个未被占用的相邻两个管脚之间的1/B高度,B>1,作为Lxi 1和Lxi 2的连接点高度,在Lxi 1和Lxi 2上分别设置新增连接点,所述新增连接点用于建立Lxi 1和Lxi 2的连接。
需要说明的是,当同时存在H{Lxi,Lxj}和H{Lxj,Lxi}时,出现了第一约束条件冲突,此时仅通过第一约束条件仍然无法避免Lxi和Lxj的部分水平线段重叠,因此步骤T2进一步将Lxi的垂直线段拆分为Lxi 1和Lxi 2,且建立Lxi 1和Lxi 2的连接。此外,选择距离Lxi 1和Lxi 2中最低的最低连接点之上最近一个未被占用的相邻两个管脚之间的1/B高度,能够尽可能使得连接Lxi 1和Lxi 2的水平线段设置在较低位置,减少所需增加的垂直交差点数量。B的取值可以为2、4等整数,优选的,B取值为2,提高电路原理图的整洁性。
步骤T3、将Lxi 1和Lxi 2分别作为一条单独的信号线添加至{L1,L2,…,Lk,…LK}中,生成{L1,L2,…,Lm,…,LM},M大于K,设置{Lxi 1,Lxj}、{Lxj,Lxi 2},添加至所述第一约束集合中。
需要说明的是,基于{L1,L2,…,Lm,…,LM}、第一约束集合,可以进一步实现实施例一、实施例二、实施例三中任何一种处理方式,在此不再展开描述。
步骤T4、基于所述第一约束集合和{L1,L2,…,Lm,…,LM}生成第一模块列和第二模块列之间的电路原理图。
其中,第一约束集合中已经明确约束了部分信号线的垂直线段放置的左右位置关系,对L1,L2,…,Lm,…,LM进行路径规划,且避免垂直线段重叠,即可生成第一模块列和第二模块列之间的电路原理图。
所述步骤T2中,新增连接点位于Lxi 1和Lxi 2其中一个对应的垂直线段之上,位于另一个对应的垂直线段之外,将新增连接点位于垂直线段之外的垂直线段延伸至对应的新增连接点。可以理解的是,新增连接点位于垂直线段之上的垂直线段的长度即为所分配的最高连接点到最低连接点的距离。新增连接点位于垂直线段之外的垂直线段长度为所分配的最高连接点到新增连接点的距离。
为了进一步的说明,提供了一个具体实施例,假设同时存在H{1,2}和H{2,1},如图10所示示例,需要对信号线1的垂直线段进行拆分,将信号线1的垂直线段拆成1.1和1.2两条垂直线段,并且把原先1的左连接都转移给1.1,右连接都转移给1.2,然后将1.1和1.2连接起来,如图11所示示例,最后构建H{1.1,2}和H{2,1.2},图中channel表示通道。
作为一种示例,所述步骤T3中,L1,L2,…,Lm,…,LM按照最低连接点从低到高的顺序排列。若L1,L2,…,Lm,…LM中连续两个或两个以上的信号线的最低连接点的纵坐标相同,则将最低连接点的纵坐标相同的信号线按照从短到长的顺序排列。通过将L1,L2,…,Lm,…LM排序,便于后续计算,且便于提高生成电路原理图的可读性。
作为一种示例,所述步骤T4中包括:
步骤T41、按照L1,L2,…,Lm,…,LM的顺序,遵循所述第一约束集合中的每一约束条件,在第一模块列和第二模块列之间的垂直通道中绘制每一信号线的垂直线段;
步骤T42、设置对应的水平线段建立每一信号线的连接点与对应管脚的连接,生成第一模块列和第二模块列之间的电路原理图。
需要说明的是,通过步骤T41-步骤T42生成电路原理图的过程中,要避免垂直线段的重叠。现有的避免垂直线段重叠的方式全部落入本发明保护范围之内。
本发明也进一步提供一种避免垂直线段的重叠的方式,作为一种示例,所述系统还包括第三约束集合{V1,V2,…,Vz,…VZ},其中,Vz表示第z个信号线子集,Vz中包括至少两个信号线,Vz属于{L1,L2,…,Lm,…,LM},同一Vz中的信号线的垂直线不能分配在同一个垂直通道中。具体构建第三约束集合的当时已在实施例一步骤D1-步骤D4中详细记载,在此不再赘述。
在构建第三约束集合的基础上,作为一种示例,所述步骤T4替换为:
步骤T4、基于所述第一约束集合、第三约束集合和{L1,L2,…,Lm,…,LM}生成第一模块列和第二模块列之间的电路原理图。
具体的,所述步骤T4包括:
步骤T41、基于第一约束集合调整L1,L2,…,Lm,…,LM的排序:若存在H{a,b},且信号线a排在信号线b之前,则将信号线b调整值信号线a的前一位置,基于第一约束集合全部调整后生成新的排序(L1 ,L2 ,…,Lm ,…,LM ),Lm 为调整排序后位于第m个位置的信号线。
步骤T42、在第一模块列和第二模块列之间创建第一个垂直通道,将L1 对应的垂直线段设置在第一个垂直通道中,并设置对应的水平线段建立L1 的连接点与对应管脚的连接,设置m=2,执行步骤T43
步骤T43、从第一个垂直通道开始,逐个判断当前已放置信号线的垂直通道中,所放置的信号线是否与Lm 同属于一个Vz,若不是,则将Lm 对应的垂直线段设置在当前已放置信号线的垂直通道中,并设置对应的水平线段建立Lm 的连接点与对应管脚的连接;若当前已放置信号线的垂直通道全部不能放置Lm 对应的垂直线段,则创建一个新的垂直通道放置Lm 对应的垂直线段;并设置对应的水平线段建立Lm 的连接点与对应管脚的连接。
步骤T44、若m<M,则设置m=m+1,返回执行步骤T43,若m=M,则结束流程。
实施例四通过拆分垂直线段的方式,避免出现水平线段重叠,降低了电路原理图的复杂度,提高了可读性,便于用户追踪模块的驱动和加载信号,进而提高芯片设计的调试和验证效率。
需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (5)

1.一种基于垂直交叉点约束的电路原理图路由规划系统,其特征在于,
包括需要设置在第一模块列和第二模块列之间的M个信号线{L1,L2,…,Lm,…,LM}、第一约束集合{H{L1 i,L1 j},H{L2 i,L2 j},…,H{Lx i,Lx j},…,H{LX i,LX j}、第二约束集合{C{L1 p,L1 q:r1},C{L2 p,L2 q:r2},…,C{Ly p,Ly q:ry},…,C{LY p,LY q:rY}}、第三约束集合{V1,V2,…,Vz,…VZ}、存储有计算机程序的存储器和处理器,其中,
Lm为第m个信号线,m的取值范围为1到M,Lm包括一条垂直线段、至少两个连接点以及每一连接点和位于第一模块列或第二模块列的对应管脚之间的水平线段,每一连接点的连接方向和纵坐标已知,L1,L2,…,Lm,…,LM按照最低连接点从低到高的顺序排列,对应的信号线序号从小到大依次排序;
H{Lx i,Lx j}表示Lx i的垂直线段必须分配在Lx j的垂直线段的第一侧,Lx i、Lx j均属于{L1,L2,…,Lm,…LM},Lx i≠Lx j,x的取值范围为1到X;
C{Ly p,Ly q:ry}表示Ly p的垂直线段位于Ly q的垂直线段的第一侧,相对于Ly p的垂直线段位于Ly q的垂直线段的第二侧,所减少的垂直交叉点数为ry,Ly p,Ly q均属于{L1,L2,…,Lm,…,LM},Ly p≠Ly q,所述第一侧为所述第二侧的对侧,y的取值范围为1到Y;
Vz表示第z个信号线子集,Vz中包括至少两个信号线,Vz属于{L1,L2,…,Lm,…,LM},同一Vz中的信号线的垂直线不能分配在同一个垂直通道中,maxV为Vz中信号线数量最大值;
当所述处理器执行所述计算机程序时,实现以下步骤:
步骤H1、基于{L1,L2,…,Lm,…,LM}构建路由约束向量图,包括开始节点、结束节点、每一Lm对应的节点Gm、从开始节点指向Gm的有向边以及从Gm指向结束节点的有向边;
步骤H2、根据所有H{Lx i,Lx j}更新所述路由约束向量图,其中,除起始节点和终止节点之外,每一节点始终存在至少一条指向该节点的有向边以及至少一条从该节点指向另一节点的有向边,若第一节点和第二节点之间存在一条从第一节点指向第二节点的有向边,则表示第一节点对应的信号线的垂直线段需要分配在第二节点对应的信号线的垂直线的第一侧;
步骤H3、根据所有C{Ly p,Ly q:ry}更新所述路由约束向量图;
所述步骤H3包括:
步骤H31、随机从当前第二约束集合中获取一个C{Ly p,Ly q:ry},将所获取的C{Ly p,Ly q:ry}对应的Gy p当前指向结束节点的有向边删除,将开始节点指向所获取的C{Ly p,Ly q:ry}对应的Gy q的有向边删除,在所获取的C{Ly p,Ly q:ry}对应的Gy p和Gy q之间构建Gy p指向Gy q的有向边;
步骤H32、将当前所获取的C{Ly p,Ly q:ry}从第二约束集合中删除,返回执行步骤H31,直至当前第二约束集合为空
步骤H4、从当前路由约束向量图的起点节点开始,依次获取每一级节点对应的信号线序号,并将每一级节点对应的信号线序号按照从小到大的顺序,遵循第三约束集合中的约束条件,生成第一模块列和第二模块列之间的电路原理图。
2.根据权利要求1所述的系统,其特征在于,
若L1,L2,…,Lm,…LM中连续两个或两个以上的信号线的最低连接点的纵坐标相同,则将最低连接点的纵坐标相同的信号线按照从短到长的顺序排列。
3.根据权利要求1所述的系统,其特征在于,
当所述处理器执行所述计算机程序时,还实现以下步骤:
步骤E1、遍历{L1,L2,…,Lm,…,LM},当满足Li1的其中一个朝向第一侧的连接点的纵坐标等于Lj1的其中一个朝向第二侧的连接点的纵坐标,或者满足Lj1的其中一个朝向第二侧的连接点的纵坐标等于Li1的其中一个朝向第一侧的连接点的纵坐标时,设置H{Li1,Lj1},添加至第一约束集合中;
步骤E2、基于所有H{Li1,Lj1},生成所述第一约束集合,其中,Li1、Lj1均属于{L1,L2,…,Lm,…,LM},i1、j1的取值范围为1到M,且i1≠j1。
4.根据权利要求1所述的系统,其特征在于,
当所述处理器执行所述计算机程序时,还实现以下步骤:
步骤D1、初始化队列为空,将L1添加至队列中,设置m=2;
步骤D2、将当前队列中最低的最高连接点确定为参考点,判断Lm的最低连接点是否低于参考点,若低于,则执行步骤D3,否则,执行步骤D4;
步骤D3、将Lm添加至队列中,若m<M,则设置m=m+1,返回执行步骤D2,若m=M,则将当前队列中的所有信号线构建生成信号线子集,放置在所述第三约束集合中,生成所述第三约束集合,结束流程;
步骤D4、将当前队列中的所有信号线构建生成信号线子集,放置在所述第三约束集合中,并将当前参考点对应的信号线从当前队列中删除,返回执行步骤D2。
5.根据权利要求1所述的系统,其特征在于,
当所述处理器执行所述计算机程序时,还实现以下步骤:
步骤C1、遍历{L1,L2,…,Lm,…,LM};
步骤C2、获取Li2的垂直线段在Lj2的垂直线段第一侧时,Li2和Lj2的垂直线段的重叠部分内,Li2朝向第二侧的连接点数量与Lj2朝向第一侧的连接点数量的和cv1;
步骤C3、获取Li2的垂直线段在Lj2的垂直线段第二侧时,Li2和Lj2的垂直线段的重叠部分内,Li2朝向第一侧的连接点数量与Lj2朝向第二侧的连接点数量的和cv2;
步骤C4、若cv1小于cv2,则设置C{Li2,Lj2:cv2-cv1},添加至所述第二约束集合中,若cv1大于cv2,则设置C{Lj2,Li2:cv1-cv2},基于所有的C{Li2,Lj2:cv2-cv1}、C{Lj2,Li2:cv1-cv2}生成所述第二约束集合,其中,Li2、Lj2均属于{L1,L2,…,Lm,…,LM},i2、j2的取值范围为1到M,且i2≠j2。
CN202310042412.0A 2023-01-28 2023-01-28 基于垂直交叉点约束的电路原理图路由规划系统 Active CN116306457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310042412.0A CN116306457B (zh) 2023-01-28 2023-01-28 基于垂直交叉点约束的电路原理图路由规划系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310042412.0A CN116306457B (zh) 2023-01-28 2023-01-28 基于垂直交叉点约束的电路原理图路由规划系统

Publications (2)

Publication Number Publication Date
CN116306457A CN116306457A (zh) 2023-06-23
CN116306457B true CN116306457B (zh) 2024-02-20

Family

ID=86812129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310042412.0A Active CN116306457B (zh) 2023-01-28 2023-01-28 基于垂直交叉点约束的电路原理图路由规划系统

Country Status (1)

Country Link
CN (1) CN116306457B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1410859A (zh) * 2001-09-28 2003-04-16 三菱电机株式会社 具有时钟信号传送线的半导体集成电路器件
CN103812502A (zh) * 2012-11-05 2014-05-21 阿尔特拉公司 具有冗余电路的可编程集成电路
CN104079480A (zh) * 2014-05-30 2014-10-01 中国科学院计算技术研究所 一种三维集成电路片上网络的路由方法及其系统
CN110750954A (zh) * 2019-10-29 2020-02-04 上海安路信息科技有限公司 电路原理图生成方法及生成系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324674B2 (en) * 1998-04-17 2001-11-27 Lsi Logic Corporation Method and apparatus for parallel simultaneous global and detail routing
US8510702B2 (en) * 2011-11-15 2013-08-13 Texas Instruments Incorporated Interactive routing editor with symbolic and geometric views for integrated circuit layout
US9029230B2 (en) * 2013-01-31 2015-05-12 Taiwan Semiconductor Manufacturing Co., Ltd. Conductive line routing for multi-patterning technology
TWI643082B (zh) * 2013-09-03 2018-12-01 美商新思科技股份有限公司 一種佈線出一解決路徑之方法及系統

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1410859A (zh) * 2001-09-28 2003-04-16 三菱电机株式会社 具有时钟信号传送线的半导体集成电路器件
CN103812502A (zh) * 2012-11-05 2014-05-21 阿尔特拉公司 具有冗余电路的可编程集成电路
CN104079480A (zh) * 2014-05-30 2014-10-01 中国科学院计算技术研究所 一种三维集成电路片上网络的路由方法及其系统
CN110750954A (zh) * 2019-10-29 2020-02-04 上海安路信息科技有限公司 电路原理图生成方法及生成系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CAD and Routing Architecture for Interposer-Based Multi-FPGA Systems;Andre Hahn Pereira et al;2014 ACM/SIGDA international symposium on Field-programmable gate arrays;第75-84页 *
三维片上网络拓扑结构研究综述;张大坤 等;计算机科学与探索(02);第129-160页 *
区域集中全局分布式片上网络关键技术的研究与实现;舒浩;中国博士学位论文电子期刊网;第11-27页 *
基于FPGA和ASIC实现的不同路由器结构的MPSoC比较;郭珍红 等;太赫兹科学与电子信息学报;13(06);第983-989页 *

Also Published As

Publication number Publication date
CN116306457A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN110795907B (zh) 一种考虑布线资源松弛的X结构Steiner最小树构造方法
US10083269B2 (en) Computer implemented system and method for generating a layout of a cell defining a circuit component
US8495552B1 (en) Structured latch and local-clock-buffer planning
CN116011383B (zh) 避免信号线覆盖的电路原理图路由规划系统
JP2006323643A (ja) 半導体集積回路のフロアプラン設計プログラム、フロアプラン設計装置、および設計方法
JPH08123836A (ja) 会話型回路設計装置
US20160110490A1 (en) System and method for obstacle-avoiding signal bus routing
CN111914507B (zh) 一种快速单磁通量子rsfq电路布线方法和装置
JP2021532605A (ja) 二進コードによるデジタル集積回路の配線方法および端末装置
CN113408224B (zh) 利用网表局部再综合实现布局合法化的fpga布局方法
CN111597768B (zh) 用于构建版图图案集的方法、设备和计算机可读存储介质
US8091058B2 (en) Methods, computer-readable media and computer-implemented tools for pre-route repeater insertion
CN116306457B (zh) 基于垂直交叉点约束的电路原理图路由规划系统
JP5193406B2 (ja) クロック分配回路の設計方法,設計装置および設計プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体
CN116050339B (zh) 电路原理图路由规划系统
CN116011389B (zh) 基于空间约束的电路原理图路由规划系统
US9355202B2 (en) Promoting efficient cell usage to boost QoR in automated design
Lin et al. A maze routing-based methodology with bounded exploration and path-assessed retracing for constrained multilayer obstacle-avoiding rectilinear Steiner tree construction
US11074379B2 (en) Multi-cycle latch tree synthesis
US10339244B1 (en) Method and apparatus for implementing user-guided speculative register retiming in a compilation flow
CN116227409A (zh) 适于有源基板上多芯粒的布局方法及系统
JP5326471B2 (ja) クロック信号供給回路の設計方法、情報処理装置およびプログラム
CN116127902B (zh) 基于二分图匹配的电路示意图垂直轨道分配系统
KR100896801B1 (ko) 반도체 배선 경로 설정 방법 및 이를 실행하기 위한프로그램을 기록한 기록 매체
JP2008299641A (ja) 連立一次方程式の並列求解方法およびノード順序付け方法

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
GR01 Patent grant
GR01 Patent grant