CN116911246B - 芯片设计的布线规划方法及相关设备 - Google Patents
芯片设计的布线规划方法及相关设备 Download PDFInfo
- Publication number
- CN116911246B CN116911246B CN202311183015.1A CN202311183015A CN116911246B CN 116911246 B CN116911246 B CN 116911246B CN 202311183015 A CN202311183015 A CN 202311183015A CN 116911246 B CN116911246 B CN 116911246B
- Authority
- CN
- China
- Prior art keywords
- winding
- tracks
- value
- track
- chip design
- 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
Links
- 238000013461 design Methods 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004804 winding Methods 0.000 claims abstract description 256
- 238000003860 storage Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
- G06F30/3947—Routing global
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
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)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供的一种芯片设计的布线规划方法及相关设备,该方法包括:获取芯片设计版图;确定所述芯片设计版图中任一层绕线层的全部绕线轨道,为每条所述绕线轨道进行第一值的赋值;根据所述芯片设计版图,确定所述任一层绕线层中的至少一个绕线障碍物在所述任一层绕线层的位置;响应于所述位置至少部分覆盖任一条所述绕线轨道,将该绕线轨道对应的赋值调整为第二值;对赋值为所述第二值的绕线轨道进行统计,输出统计结果,以根据所述统计结果对芯片设计的布线进行规划。
Description
技术领域
本申请涉及芯片设计技术领域,尤其涉及一种芯片设计的布线规划方法及相关设备。
背景技术
电子设计自动化(Electronic Design Automation,简称EDA),是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
其中,布线是处于布局和时钟树综合之后的重要物理实施任务,由于布线过程的复杂性,布线在实施过程中一般会分为全局布线和详细布线。在全局布线规划阶段中一个很重要的初始步骤就是需要计算各种障碍物对于绕线轨道(track)的占用。然而,相关技术中,对于障碍物对于绕线资源的计算方式仅是分别计算每个障碍物占用的绕线轨道,再进行累加。这样的处理方式在很多场景下会造成绕线轨道的多扣现象,从而提升了后续调整的成本,降低了整体效率。
发明内容
有鉴于此,本申请提出一种芯片设计的布线规划方法及相关设备,以解决或部分解决上述问题。
基于上述目的,本申请第一方面,提供了一种芯片设计的布线规划方法,包括:
获取芯片设计版图;
确定所述芯片设计版图中任一层绕线层的全部绕线轨道,为每条所述绕线轨道进行第一值的赋值;
根据所述芯片设计版图,确定所述任一层绕线层中的至少一个绕线障碍物在所述任一层绕线层的位置;
响应于所述位置至少部分覆盖任一条所述绕线轨道,将该绕线轨道对应的赋值调整为第二值;
对赋值为所述第二值的绕线轨道进行统计,输出统计结果,以根据所述统计结果对芯片设计的布线进行规划。
本申请第二方面,提供了一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
本申请提供的一种芯片设计的布线规划方法及相关设备,通过先对绕线层的全部绕线轨道进行第一值的赋值,再根据绕线障碍物在该层绕线层中的位置确定其是否覆盖或部分覆盖任一条绕线轨道,将被至少部分覆盖的绕线轨道的赋值调整为第二值,最终通过统计赋值为第二值的绕线轨道,确定该层绕线层绕线资源的占用情况。以此方式,不论绕线障碍物之间存在重叠还是相互遮挡等情况,其只根据绕线轨道的赋值情况进行统计,即使一条绕线轨道的赋值被调整多次,但调整的结果都是将赋值调整为第二值,不会出现重复计算的情况,从而杜绝了多扣现象,降低了后续调整的成本,提升了整体效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例所提供的示例性计算机设备的硬件结构示意图;
图2示出了根据本申请实施例的EDA工具的基本结构示意图;
图3示出了根据本申请实施例的EDA工具的一个计算命令的基本执行流程的示意图;
图4A示出了本申请实施例所提供的相关技术中一种绕线障碍物占用绕线轨道的场景示意图;
图4B示出了本申请实施例所提供的相关技术中另一种绕线障碍物占用绕线轨道的场景示意图;
图5示出了本申请实施例所提供的示例性方法的流程示意图;
图6示出了本申请实施例所提供的二维全局网格和三维全局网格的示意图;
图7示出了本申请实施例所提供的横向绕线层和纵向绕线层的初始绕线轨道(track)示意图;
图8示出了本申请实施例所提供的示例性方法为绕线层设置位图表(bitmap)的示意图;
图9示出了本申请实施例所提供的示例性方法为利用位图表(bitmap)进行阻碍统计的示意图;
图10示出了本申请实施例所提供的根据本申请示例性方法的一种具体的占用确定过程的流程示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1示出了本申请实施例所提供的一种计算机设备100的结构示意图。该计算机设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1所示,存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及待处理的数据。处理器102也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向计算机设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将计算机设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在计算机设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了根据本申请实施例的EDA工具200的基本结构示意图。
如图2所示,虚线以上为用户部分;虚线以下为EDA工具200,EDA工具200可以由图1所示的设备100实现。在一些实施例中,该EDA工具200可以实现为EDA软件。更具体地,该EDA工具200可以是基于芯片设计进行布局(Placement)和布线(Routing)的软件。仿真工具200可以包括Tcl命令(或者图形/窗口界面)模块204、各计算模块(例如,Place计算模块206、Route计算模块208、Optimization计算模块210等)以及数据库系统212。用户202可以通过在Tcl命令(或者图形/窗口界面)模块204中输入相关命令来操作该EDA工具200。
Tcl命令模块204,主要起着消息传递或命令传递的功能。Tcl命令模块204可以读取用户202向仿真工具200输入的指令,并可以根据指令的具体内容,分配并传递给相应的计算模块去执行具体任务。
根据计算任务的不同,各计算模块可以分为,例如,Place计算模块206、Route计算模块208、Optimization计算模块210等。Place计算模块206可以用于为所有元器件计算出一个合理的摆放位置,Route计算模块208可以用于计算出各个元器件之间合理的导线连接方式,Optimization计算模块210则可以用于将各个元器件之间的摆放位置和导线连接方式进行优化。这些计算模块的计算过程可以在,例如,图1的处理器102中进行。
数据库系统212可以用于完整全面地记录、存储被仿真或者被设计的芯片的所有信息(如位置、方向、尺寸、结构、导线连接方式等等)。这些信息,例如,可以存储在图1的存储器104中。
图3示出了根据本申请实施例的EDA工具200的一个计算命令的基本执行流程300。如图3所示,在步骤302,用户202可以通过Tcl命令模块204提供的命令界面或者图形用户界面(GUI)向该EDA工具200下达一个命令(例如,do_place命令)。然后,在步骤304,Tcl命令模块204解析这一命令并将其分发到相应的计算模块(例如,Place计算模块206)。在步骤306,各计算模块执行各自所需进行的具体计算。在这期间,如步骤308所示,各计算模块需要(高频、反复)调取数据库系统212中的数据来进行计算。计算完成后,如步骤310所示,各计算模块可以将计算结果写入数据库系统212,并将计算结果返回给Tcl命令模块204。在步骤312,Tcl命令模块204通过命令界面或者图形用户界面(GUI)将计算结果返回给用户202,该EDA工具200对一个计算命令的处理过程结束。在步骤314,用户可以根据计算结果进行评估,然后确定下一步计划。
在相关技术中,数字集成电路的设计是从电路理论到产品实现的工程手段,集成电路设计强烈依赖于EDA工具。EDA工具作为芯片设计的基础工具,涵盖了芯片设计的全流程,包括功能设计、综合、验证、物理设计等等。而物理设计作为后端设计,需要实现实际的版图,其中物理设计的一个重要环节就是布局布线(placement&routing)。
布线的主要任务是将分布在芯片核内的模块、标准单元和输入输出接口单元等元件按照逻辑关系进行互连,不仅需要百分百的完成它们之间的所有逻辑信号的互连,并为满足各种约束条件进行优化。由于布线过程的复杂性,布线在实施过程中一般会分为全局布线和详细布线,全局布线是为详细布线做准备,做出详细布线需要的具体规划。全局布线具有速度快、时间短,能加快收敛,它为用时很长的最终详细布线做好规划。如果全局布线发现问题,工程师可以及时解决调整,而不必再话费很长时间去做最终布线及其他后续工作。
而在整个芯片中,有各种各样的障碍物都会占用绕线轨道,比如各种单元的引脚(pin shape)、内部的绕线障碍物、顶部端口(top port),之前已经绕线的网线以及工程师生成的绕线障碍物。如何快速和准确的计算出它们对资源的占用,影响着全局布线的绕线结果和准确性。
然而,通常计算障碍物对绕线资源的占用时候,采用的是看单个障碍物在全局网格内占用了几个绕线轨道,然后进行累加。但这样的计算方式会存在多扣资源的问题。如图4A及图4B所示,其中A、B、C以及D代表绕线障碍物,虚线表示绕线轨道。按照通常的统计方式,会分别确定A和B的以及C和D占用的绕线轨道,从图中可以看出A和B都是占用2个绕线轨道资源,C占用1个绕线轨道资源,D占用3个绕线轨道资源,从而图4A及图4B的示例中累加结果都是占用4个绕线轨道资源,但从图中可以看出,两个附图中实际都是仅占用了3个绕线轨道资源,这就造成了绕线轨道的多扣现象。
同时,即使通过改进算法的方式,来增加对上述图4A及图4B示出的情况的识别,但是当前这样的方式会导致整体效率下降,提高时间成本。
鉴于此,本申请提出了一种芯片设计的布线规划方案,通过先对绕线层的全部绕线轨道进行第一值的赋值,再根据绕线障碍物在该层绕线层中的位置确定其是否覆盖或部分覆盖任一条绕线轨道,将被至少部分覆盖的绕线轨道的赋值调整为第二值,最终通过统计赋值为第二值的绕线轨道,确定该层绕线层绕线资源的占用情况。以此方式,不论绕线障碍物之间存在重叠还是相互遮挡等情况,其只根据绕线轨道的赋值情况进行统计,即使一条绕线轨道的赋值被调整多次,但调整的结果都是将赋值调整为第二值,不会出现重复计算的情况,从而杜绝了多扣现象,降低了后续调整的成本,提升了整体效率。
图5示出了本申请实施例所提供的示例性方法500的流程示意图。该方法500可以由图1的计算机设备100实现,并可以实现为图2的EDA工具200的一部分功能。如图5所示,该方法500可以进一步包括以下步骤。
步骤502,获取芯片设计版图。
一般地,芯片设计版图包含有芯片加工的每一层结构,具体晶体管布局、布线、走线、通道过孔层间连接位置等等。根据该芯片设计版图,芯片加工服务商能够直接运行并进行芯片的批量化加工生产。进一步的,芯片设计版图本身是一步步绘制完成的,同时伴随着各项优化,最终完成真个芯片设计版图。在芯片设计版图初期,可能其上仅表明了层级的功能信息,例如某一层是绕线层、某一层是绝缘层等;或是仅设置了各个功能元件,标明了每个功能元件的位置、大小等信息。之后利用EDA工具等进行一步步的设计及优化,最后形成芯片设计版图的完整版本。在本步骤中,由于涉及到的是布线规划工序,其芯片设计版图可能还是较为初始的版本,其上仅有芯片层级关系、层级功能、元件设计位置等较为早期的数据。在具体应用场景中,可以通过芯片设计版图的DEF(Design Exchange File,设计库的物理信息)文件和/或LEF(Library Exchange File,工艺库的物理信息)文件获取层级结构、元件位置等初始数据信息。
之后,在本步骤中,芯片设计版图可以是局部的(例如将整个设计版图划分成大量的子区域)、也可以是整体的。
步骤504,确定所述芯片设计版图中任一层绕线层的全部绕线轨道,为每条所述绕线轨道进行第一值的赋值。
在本步骤中,在得到芯片设计版图获得了初始的元件布局、层级结构等数据之后,可以先找出芯片设计版图中的绕线层,绕线层即为用于芯片走线绕线的层级结构。在进行绕线层的走线规划时,会预先根据设计规则规划出绕线轨道,这些绕线轨道一般是横向或纵向均匀排布于绕线层中,在进行芯片版图设计时,通常用绕线资源(Routing Resource)来表征绕线轨道数量,表示一个绕线层内可用的绕线轨道数量。
在一些实施例中,可用直接对一层绕线层的绕线轨道进行设置,也可以先生成全局网格,再利用全局网格进行绕线轨道的设置。如图6所示,为二维的全局网格和三维的全局网格示意图。其中,全局网格(Global Cell):是全局布线阶段把整个绕线层芯片区域按规整的网格进行划分得到最小的单元格子。每个绕线层都有二维全局网格,所有绕线层的网格组合起来就是三维全局网格。之后,如图7所示,为横向绕线层和纵向绕线层的初始绕线轨道(track)示意图,图中横向或纵向的实线即为绕线轨道。其中,根据芯片设计规则一个全局网格的网格中都对应一个建议的轨道数量,进而可以将这个建议的轨道数量设定为网格中允许的最大绕线轨道数量。之后,由于每个绕线层一般都有固定的走线方向或者说轨道方向,即横向走线或纵向走线,从而对于轨道方向为横向的绕线层,可以根据任一列的网格的绕线轨道的总数量来进行均匀排布(如图7所示,由于绕线轨道一般都以直线线段表示,则任意列的绕线轨道统计结果都是相同的);同理对于轨道方向为纵向的绕线层,则可以根据任一行的网格的绕线轨道的总数量来进行均匀排布。即,在一些实施例中,所述确定所述芯片设计版图中任一层绕线层的全部绕线轨道,包括:对所述任一层绕线层进行全局网格划分,确定每个网格中允许的最大绕线轨道数量,根据所述最大绕线轨道数量对任一行或任一列的网格的绕线轨道数量进行均匀排布,以此确定所述任一层绕线层的全部绕线轨道。在一些实施例中,所述根据所述最大绕线轨道数量对任一行或任一列的网格的绕线轨道数量进行均匀排布,包括:确定所述任一层绕线层的轨道方向;响应于所述轨道方向为横向,则根据所述最大绕线轨道数量对任一列的网格的绕线轨道数量进行均匀排布;响应于所述轨道方向为纵向,则根据所述最大绕线轨道数量对任一行的网格的绕线轨道数量进行均匀排布。
之后,在本步骤中,需要这一层绕线层中的每条绕线轨道进行第一值的赋值,即进行初始赋值。例如,其可以将每条绕线轨道进行初始赋值为0,其中0即第一值。
在一些实施例中,可以通过标记、打标签等方式为每条绕线轨道进行赋值。而在另一些实施例中,为了方便管理,同时可以利用尽可能小的资源进行赋值处理,这里可以利用位图表(bitmap)的方式进行赋值及管理。如图8所示,对于任一层绕线层,可以对应绕线轨道的条数,设置对应长度的位图表,一条绕线轨道对应一个位图表中的单元格(即位格),在进行位图表的设置时,可以规定绕线层的某个侧为起始,依次建立绕线轨道与位格之间的对应关系,即第一条绕线轨道对应第一个位格,第二条绕线轨道对应第二个位格,以此类推。以此方式由于位图表是bit级别的表格数据,其占用的资源非常小,可以有效利用存储空间,并有效提升位图表的读取效率。即,在一些实施例中,所述为每条所述绕线轨道进行第一值的赋值,包括:根据所述任一层绕线层的绕线轨道的总数量,生成对应长度的位图表;其中,所述位图表中的每一个位格对应一条所述绕线轨道;对所述位图表的每一个位格进行所述第一值的赋值。
步骤506,根据所述芯片设计版图,确定所述任一层绕线层中的至少一个绕线障碍物在所述任一层绕线层的位置。
在本步骤中,在进行布线规划所需的芯片设计版图中,一般已经完成了元件、端口位置的设计或是一些支撑结构的设计等。从而根据此时的芯片设计版图可以确定出任一层绕线层的绕线障碍物。
这里绕线障碍物(OBS)是指各种单元的引脚(pin shape)以及内部的绕线障碍物(元件或端口整体穿过该绕线层)、顶部端口(top port,用于与外部器件或结构连接)、之前已经绕线的网线以及工程师生成、自定义的绕线障碍物。它们都是分布在各个绕线层上的,并在对应的绕线层上占用掉全局布线的绕线资源。同时,在一个芯片结构中一般存在多个绕线层,不同芯片元件或端口由于设置位置、层级不同,其引脚可能连接不同的绕线层,而引脚由于结构一般固定,位置也难以更改,在进行走线时同样可以将其认为是障碍,同时芯片元件或端口本体可能也会穿过某个或某些绕线层,进而其本体本身也可以是某些绕线层的障碍物。
在芯片设计版图一般都会记录这些障碍物的具体位置、大小等数据,从而根据芯片设计版图可以确定出这些障碍物在绕线层中的具体方位。
步骤508,响应于所述位置至少部分覆盖任一条所述绕线轨道,将该绕线轨道对应的赋值调整为第二值。
在本步骤中,在确定了任一绕线层的绕线轨道以及障碍物的位置之后,即可进行两者之间相互关系的确定,即确定这些障碍物是否覆盖或部分覆盖这些绕线轨道。
其中,确定的方式可以是从每个障碍物出发,也可以是从每条绕线轨道出发。在一些实施例中,若是从障碍物出发进行覆盖确定,可以选取任一个障碍物,根据其位置信息将其置于绕线轨道所在图表之上,检测其阻挡到了哪些绕线轨道,则认为该障碍物覆盖或部分覆盖了这些绕线轨道。在另一些实施例中,若是从绕线轨道出发,则可以将障碍物根据其位置置于绕线轨道所在图表之后,对每条绕线轨道进行检查,看其是否被障碍物所挡住,若挡住,则认为该条绕线轨道被障碍物覆盖或部分覆盖。即,在一些实施例中,所述响应于所述位置至少部分覆盖任一条所述绕线轨道,包括:对所述任一条绕线轨道进行覆盖检测;响应于所述任一条绕线轨道至少与一个所述绕线障碍物的所述位置存在部分重叠,则认为所述任一条绕线轨道被对应的绕线障碍物的位置至少部分覆盖。
在根据绕线障碍物的位置确定了绕线障碍物与绕线轨道之间的覆盖关系之后,即可调整被覆盖的绕线轨道的赋值,将其调整为第二值,例如前述实施例中,将绕线轨道初始赋值为0,这里可以将被覆盖的绕线轨道的赋值调整为1,这里1即为第二值。在进行确定及调整过程中,虽然可能一条绕线轨道被多个障碍物所覆盖,但是由于每次进行调整时都是将赋值调整为第二值,从而即使所有障碍物都仅位于一条绕线轨道上,最后也只会有一条绕线轨道的赋值发生了变化。如图9所示,可以以此对A、B、C三个障碍物进行检测,障碍物A会将第二条、第三条绕线轨道的赋值调整为1,障碍物B会将第三条至第五条绕线轨道的赋值调整为1,障碍物C会将第二条至第六条绕线轨道的赋值调整为1,但最终结合这3个障碍物,也只是将第二条至第六条绕线轨道的赋值调整为1。
当然,在一些实施例中,为了尽量节约资源,提升效率,可以在进行赋值时,当确定被检查的绕线轨道或障碍物遮挡的绕线轨道的赋值已经为第二值,直接取消检查或取消赋值,从而进一步节省检查或赋值的计算资源。即,在一些实施例中,所述将该绕线轨道对应的赋值调整为第二值,包括:响应于被覆盖的绕线轨道的赋值已经为所述第二值,则取消本次赋值调整。
之后,结合前述实施例,在利用位图表进行赋值标记的实施例中,由于赋值过程都是基于位图表的位格进行的,则在进行第二值的调整时,可以直接调整被覆盖的绕线轨道对应的位格内的数值,将其调整为第二值。这里可以不管当前位格中的数值是第一值还是第二值,直接统一进行第二值的调整即可。即,在一些实施例中,所述将该绕线轨道对应的赋值调整为第二值,包括:将被覆盖的绕线轨道对应的位格内的数值调整为所述第二值。
步骤510,对赋值为所述第二值的绕线轨道进行统计,输出统计结果,以根据所述统计结果对芯片设计的布线进行规划。
在本步骤中,对赋值为第二值的绕线轨道进行统计,确定哪些绕线轨道被占用,计算出剩余的可用资源。如图9所示,统计完被覆盖的绕线轨道之后,剩余的可用资源(绕线资源)为2。
当然,在一些实施例中,为了方便后续进一步的布线规划,在进行统计时,可以一并统计被覆盖的绕线轨道的位置,即赋值为第二值的绕线轨道的位置。即,在一些实施例中,所述对赋值为所述第二值的绕线轨道进行统计,包括:对赋值为所述第二值的绕线轨道的个数及位置进行统计。
当然,结合前述实施例,在利用位图表进行赋值标记的实施例中,由于位图表中每个位格本身就对应一条绕线轨道,从而在获取到位图表之后,根据位图表本身即可确定哪些绕线轨道被覆盖,其位置具体是第几条绕线轨道等信息。
最终,输出统计结果,以使后端芯片布线单元可以根据该统计结果,进行布线的绕线规划。当然,在对于统计结果的输出的方式可以不仅限于输出给后端芯片布线单元,其还可以用以存储、展示、使用或再加工该统计结果。根据不同的应用场景和实施需要,具体的对于统计结果的输出方式可以灵活选择。
例如,对于本实施例的方法在单一设备上执行的应用场景,可以将统计结果直接在当前设备的显示部件(显示器、投影仪等)上以显示的方式输出,使得当前设备的操作者能够从显示部件上直接看到统计结果的内容。
又如,对于本实施例的方法在多个设备组成的系统上执行的应用场景,可以将统计结果通过任意的数据通信方式(有线连接、NFC、蓝牙、wifi、蜂窝移动网络等)发送至系统内的其他作为接收方的预设设备上,即同步终端上,以使得同步终端可以对其进行后续处理。可选的,该同步终端可以是预设的服务器,服务器一般设置在云端,作为数据的处理和存储中心,其能够对统计结果进行存储和分发;其中,分发的接收方是终端设备,该些终端设备的持有者或操作者可以是芯片的各级设计者、设计监管者、生产者等等。
再如,对于本实施例的方法在多个设备组成的系统上执行的应用场景时,可以将统计结果通过任意的数据通信方式直接发送至预设的终端设备,终端设备可以是前述段落列举中的一种或多种。
在具体实施例中,如图10所示,为根据本申请示例性方法500的一种具体的绕线障碍物占用绕线轨道资源确定过程的流程示意图。首先,全局布线阶段,首先对整个芯片区域进行全局网格的划分。然后读取每个绕线层的绕线资源track pattern,确定绕线轨道。根据三维网格内的绕线资源生成初始的位图表(bitmap),这个bitmap的大小(size)就是初始可用绕线轨道数量,并且所有bit位值为0(即每个位格初始进行第一值的赋值),表示还没有被障碍物所占用。
之后,按顺序读取各种类型的绕线障碍物,并在对应绕线层上的全局网格内bitmap进行标记。如图9所示。从图中我们可以看出bitmap可以对每个障碍物进行快速标记,并且天然的避免了占用资源的累加问题。
最后,在对芯片上所有绕线障碍物进行bitmap的标记后,就可以快速地获取当前每个全局网格内的剩余可用资源,并进行接下来的全局布线规划流程。
从上述实施例可以看出,本申请实施例提供的芯片设计的布线规划方法,通过先对绕线层的全部绕线轨道进行第一值的赋值,再根据绕线障碍物在该层绕线层中的位置确定其是否覆盖或部分覆盖任一条绕线轨道,将被至少部分覆盖的绕线轨道的赋值调整为第二值,最终通过统计赋值为第二值的绕线轨道,确定该层绕线层绕线资源的占用情况。以此方式,不论绕线障碍物之间存在重叠还是相互遮挡等情况,其只根据绕线轨道的赋值情况进行统计,即使一条绕线轨道的赋值被调整多次,但调整的结果都是将赋值调整为第二值,不会出现重复计算的情况,从而杜绝了多扣现象,降低了后续调整的成本,提升了整体效率。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本申请实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法500。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法500,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法500相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法500。对应于方法500各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法500,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种芯片设计的布线规划方法,其特征在于,包括:
获取芯片设计版图;
确定所述芯片设计版图中任一层绕线层的全部绕线轨道,为每条所述绕线轨道进行第一值的赋值;
根据所述芯片设计版图,确定所述任一层绕线层中的至少一个绕线障碍物在所述任一层绕线层的位置;
响应于所述位置至少部分覆盖任一条所述绕线轨道,将该绕线轨道对应的赋值调整为第二值;
对赋值为所述第二值的绕线轨道进行统计,输出统计结果,以根据所述统计结果对芯片设计的布线进行规划;
所述将该绕线轨道对应的赋值调整为第二值,包括:
响应于被覆盖的绕线轨道的赋值已经为所述第二值,则取消本次赋值调整。
2.根据权利要求1所述的方法,其特征在于,所述确定所述芯片设计版图中任一层绕线层的全部绕线轨道,包括:
对所述任一层绕线层进行全局网格划分,确定每个网格中允许的最大绕线轨道数量,根据所述最大绕线轨道数量对任一行或任一列的网格的绕线轨道数量进行均匀排布,以此确定所述任一层绕线层的全部绕线轨道。
3.根据权利要求2所述的方法,其特征在于,所述根据所述最大绕线轨道数量对任一行或任一列的网格的绕线轨道数量进行均匀排布,包括:
确定所述任一层绕线层的轨道方向;
响应于所述轨道方向为横向,则根据所述最大绕线轨道数量对任一列的网格的绕线轨道数量进行均匀排布;
响应于所述轨道方向为纵向,则根据所述最大绕线轨道数量对任一行的网格的绕线轨道数量进行均匀排布。
4.根据权利要求1所述的方法,其特征在于,所述为每条所述绕线轨道进行第一值的赋值,包括:
根据所述任一层绕线层的绕线轨道的总数量,生成对应长度的位图表;其中,所述位图表中的每一个位格对应一条所述绕线轨道;
对所述位图表的每一个位格进行所述第一值的赋值。
5.根据权利要求4所述的方法,其特征在于,所述将该绕线轨道对应的赋值调整为第二值,包括:
将被覆盖的绕线轨道对应的位格内的数值调整为所述第二值。
6.根据权利要求1所述的方法,其特征在于,所述响应于所述位置至少部分覆盖任一条所述绕线轨道,包括:
对任一条所述绕线轨道进行覆盖检测;
响应于任一条所述绕线轨道至少与一个所述绕线障碍物的所述位置存在部分重叠,则认为任一条所述绕线轨道被对应的绕线障碍物的位置至少部分覆盖。
7.根据权利要求1所述的方法,其特征在于,所述对赋值为所述第二值的绕线轨道进行统计,包括:
对赋值为所述第二值的绕线轨道的个数及位置进行统计。
8.一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1至7任意一项所述的方法的指令。
9.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311183015.1A CN116911246B (zh) | 2023-09-14 | 2023-09-14 | 芯片设计的布线规划方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311183015.1A CN116911246B (zh) | 2023-09-14 | 2023-09-14 | 芯片设计的布线规划方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116911246A CN116911246A (zh) | 2023-10-20 |
CN116911246B true CN116911246B (zh) | 2023-12-08 |
Family
ID=88360692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311183015.1A Active CN116911246B (zh) | 2023-09-14 | 2023-09-14 | 芯片设计的布线规划方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116911246B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117391038B (zh) * | 2023-10-23 | 2024-05-14 | 北京市合芯数字科技有限公司 | 芯片版图的金属栈空间信息划分方法及芯片 |
CN117408220B (zh) * | 2023-12-15 | 2024-02-23 | 湖北工业大学 | 一种可编程交换架构芯片资源排布方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7131096B1 (en) * | 2004-06-01 | 2006-10-31 | Pulsic Limited | Method of automatically routing nets according to current density rules |
CN110941940A (zh) * | 2019-12-04 | 2020-03-31 | 杭州广立微电子有限公司 | 一种基于碰撞检测的3d绕线方法、存储设备和系统 |
CN116011388A (zh) * | 2023-03-22 | 2023-04-25 | 苏州浪潮智能科技有限公司 | 电路板的绕线方法、装置、存储介质及电子设备 |
CN116306486A (zh) * | 2023-05-25 | 2023-06-23 | 芯行纪科技有限公司 | 芯片设计的设计规则检查方法及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418113B1 (en) * | 2011-10-03 | 2013-04-09 | International Business Machines Corporation | Consideration of local routing and pin access during VLSI global routing |
-
2023
- 2023-09-14 CN CN202311183015.1A patent/CN116911246B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7131096B1 (en) * | 2004-06-01 | 2006-10-31 | Pulsic Limited | Method of automatically routing nets according to current density rules |
CN110941940A (zh) * | 2019-12-04 | 2020-03-31 | 杭州广立微电子有限公司 | 一种基于碰撞检测的3d绕线方法、存储设备和系统 |
CN116011388A (zh) * | 2023-03-22 | 2023-04-25 | 苏州浪潮智能科技有限公司 | 电路板的绕线方法、装置、存储介质及电子设备 |
CN116306486A (zh) * | 2023-05-25 | 2023-06-23 | 芯行纪科技有限公司 | 芯片设计的设计规则检查方法及相关设备 |
Non-Patent Citations (2)
Title |
---|
An ILP-based routing algorithm for PIN-constrained EWOD chips with obstacle avoidance;Jia-wen Chang等;《IEEE transactions on computer-aided design of integrated circuit and system》;第32卷(第11期);1655-1667 * |
基于innovus的优化布图规划与布局技术研究;翟赫;《中国优秀硕士学位论文全文数据库》(第4期);1-95 * |
Also Published As
Publication number | Publication date |
---|---|
CN116911246A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116911246B (zh) | 芯片设计的布线规划方法及相关设备 | |
US11709987B2 (en) | Method and system for generating layout design of integrated circuit | |
US8418115B1 (en) | Routability based placement for multi-die integrated circuits | |
CN107918694B (zh) | 用于减少集成电路上的延迟的方法 | |
US20170116367A1 (en) | Electromigration-aware integrated circuit design methods and systems | |
CN111597768B (zh) | 用于构建版图图案集的方法、设备和计算机可读存储介质 | |
CN116822452B (zh) | 芯片布局优化方法及相关设备 | |
US20140331196A1 (en) | Analyzing sparse wiring areas of an integrated circuit design | |
US10956643B2 (en) | Method, system, and storage medium of resource planning for designing semiconductor device | |
CN116227407B (zh) | 形成物理版图的模块边界的方法及相关设备 | |
CN116151179B (zh) | 芯片设计的布局规划方法及相关设备 | |
CN116644708B (zh) | 布局布线优化方法、装置、计算机设备和存储介质 | |
CN113792519B (zh) | 对电路进行布局规划的方法、电子设备及存储介质 | |
CN116306486B (zh) | 芯片设计的设计规则检查方法及相关设备 | |
CN116090396B (zh) | 显示芯片设计的数据流的方法及相关设备 | |
CN117291140A (zh) | 自动布线工具的绕线违例减少方法、装置、存储介质及电子终端 | |
CN117688895B (zh) | 电路图生成方法、计算机设备及存储介质 | |
CN116956807B (zh) | 芯片设计的全局布线拥塞图确定方法及相关设备 | |
US20190392106A1 (en) | Optimizing library cells with wiring in metallization layers | |
CN116362190A (zh) | 芯片设计的交互布局规划方法及相关设备 | |
CN118504512B (zh) | 片上电源开关设置方法、计算机设备及存储介质 | |
CN118504511B (zh) | 走线位置调整方法、计算机设备及存储介质 | |
CN117521586B (zh) | 芯片设计的布局规划方法及相关设备 | |
CN118551703B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
CN118627434A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |