Nothing Special   »   [go: up one dir, main page]

CN118504511B - 走线位置调整方法、计算机设备及存储介质 - Google Patents

走线位置调整方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN118504511B
CN118504511B CN202410952448.7A CN202410952448A CN118504511B CN 118504511 B CN118504511 B CN 118504511B CN 202410952448 A CN202410952448 A CN 202410952448A CN 118504511 B CN118504511 B CN 118504511B
Authority
CN
China
Prior art keywords
rule
determining
wiring
space
placement space
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
CN202410952448.7A
Other languages
English (en)
Other versions
CN118504511A (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.)
Xinxingji Technology Co ltd
Original Assignee
Xinxingji Technology 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 Xinxingji Technology Co ltd filed Critical Xinxingji Technology Co ltd
Priority to CN202410952448.7A priority Critical patent/CN118504511B/zh
Publication of CN118504511A publication Critical patent/CN118504511A/zh
Application granted granted Critical
Publication of CN118504511B publication Critical patent/CN118504511B/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
    • 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]

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)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
其中,布线是处于布局和时钟树综合之后的重要物理实施任务,在相关技术中,需要进行布线的电源线又分长线(Stripe)和短线(Stapling)。在针对短线的布线过程中,一般会先将位于同一直线上的短线拼成长线进行规划,之后再拆成短线。
然而,这样的处理方式会造成误删短线的问题,并且在拆成短线后,由于适用规则的改变,导致部分短线又不符合规则,最终影响整体布局效率和准确性。
发明内容
有鉴于此,本申请提出一种走线位置调整方法、计算机设备及存储介质,以解决或部分解决上述问题。
基于上述目的,本申请提供了一种走线位置调整方法,包括:
获取芯片设计版图;
对所述芯片设计版图进行区域分割,得到目标区域;
确定所述目标区域中一条走线的第一位置和摆放空间,根据预设的规则表对所述第一位置或所述摆放空间进行规则检查;其中,所述摆放空间包括所述第一位置;
根据检查结果,确定所述摆放空间内满足规则检查的第二位置,根据所述第二位置对所述走线进行位置调整。
本申请第二方面,提供了一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
从上面所述可以看出,本申请提供的一种走线位置调整方法、计算机设备及存储介质。本申请通过对芯片设计版图进行分割,将整个版图划分为一个个小的目标区域。之后,直接针对目标区域中的一个个走线进行摆放调整,先确定出走线初始的第一位置和允许其进行摆放的最大范围空间。再直接对这个第一位置或摆放空间进行规则检查,以此确定第一位置是否不合适或者摆放空间中哪些位置不合适,从而根据检查结果,在摆放空间中对走线当前的位置进行调整,最终确定出满足规则检查的第二位置。以此方式,直接对每条最小的走线进行检测,直接杜绝了由于规则改变导致的不合规问题,以及错删问题,同时,通过分区的方式,减少每次的计算量,同时还能够结合多线程的方式更为合理的应用资源,最终在保证整体效率的同时还提示了布线调整的准确性。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例所提供的示例性计算机设备的硬件结构示意图。
图2示出了根据本申请实施例的EDA工具的基本结构示意图。
图3示出了根据本申请实施例的EDA工具的一个计算命令的基本执行流程的示意图。
图4A为本申请实施例提供的示例性方法的流程示意图。
图4B为本申请实施例提供的示例性方法对第一位置进行规则检查的流程示意图。
图4C为本申请实施例提供的示例性方法一种选出第二位置方式的流程示意图。
图4D为本申请实施例提供的示例性方法对摆放空间进行规则检查的流程示意图。
图4E为本申请实施例提供的示例性方法另一种选出第二位置方式的流程示意图。
图5A为本申请实施例提供的对芯片设计版图进行切割的结构示意图。
图5B为本申请实施例提供的初始的走线摆放于第一位置的示意图。
图5C为本申请实施例提供的对摆放空间进行切割的示意图。
图5D为本申请实施例提供的选择摆放走线的第三位置的示意图。
图5E为本申请实施例提供的再次对摆放空间进行切割的示意图。
图5F为本申请实施例提供的再次选择摆放走线的第三位置的示意图。
图5G为本申请实施例提供的直接对摆放空间进行检查及切割的示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件、物件或者方法步骤涵盖出现在该词后面列举的元件、物件或者方法步骤及其等同,而不排除其他元件、物件或者方法步骤。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图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,用户可以根据计算结果进行评估,然后确定下一步计划。
在相关技术中,对于需要进行布线的电源长线(Stripe),由于电源线电源线是会在整个芯片内布置,如果对于每根即将创建的电源线检查设计规则,那么由于Stripe距离近,由于物体间的间距在设计规则中有严格定义,检索障碍物(也就是背景物体,如cell、blockage、wire、special wire、FTerm等)障碍物需要大于Stripe摆放区域,那么对于障碍物可能会被重复检索到,并且被重复的展开其内部结构。进而为了避免障碍物被多次展开,一般的设计方式是,会将创建的电源长线Stripe分组,然后以组的方式进行背景检索和设计规则检测。
之后,在相关技术中,对于电源短线(Stapling),其是根据相关指定的规则,在芯片的走线层的x方向和y方向上都设置的数量巨大的电源线,用于具体连接不同的背景物体。需要说明的是,对于芯片的走线层,一般一层的走线均为同一个方向的,即要么是一层横向x方向的走线层、要么是一层纵向y方向的走线层。在部分技术中,为了提高效率,做的迅速布线,从而借助了电源长线(Stripe)的处理方式,可以将位于同一参考线上的多条短线联合成一条长线进行看待。由于不论是那个方向的走线层,短线都是在一个方向上沿直线进行排列的,例如横向的走线层,则是横向的多条参考线上,每条参考线上都分布有或多或少的电源短线,进而可以以上述方式进行替代。也就是将同一方向上且坐标一样的短线,拼成一根长线,然后多根长线一起进行设计规则检查,按照长线的检查规则,在每根长线上去除相应障碍物对应的区域(violation区域),并在剩下的区域中,还原电源短线。这样的处理方式可以与电源长线的处理效率相当,都能非常迅速的完成对应的规则检查。
但是,申请人在根据上述方式进行短线的设计调整时,发现创建的电源短线(Stapling)仍有violation存在,这是由于最初检查设计规则的时候,使用的是电源长线(Stripe),当还原成电源短线(Stapling)的时候,需要检查的设计规则也会随之改变,从而造成部分电源短线(Stapling)依然存在violation。同时,也是由于从电源长线(Stripe)还原成电源短线(Stapling)时,检查的设计规则会发生变化,从而部分原本在电源长线(Stripe)检查时被删除的部分,在还原成短线之后,反而不违反相应的设计规则了,进而造成了错删问题。
此时发现,虽然速度上满足要求,但是此方案存在Stapling误删(长短线设计规则不一致)或者部分Stapling依然存在violation。进而为了解决上述问题,在上述方案的基础上,如果拼接的电源长线发生切割,则把原先拼接成这段Stripe的Stapling再次进行分组,然后再做第二次设计规则检查,此时虽然会找回部分被误删的Stapling,并且能够对剩余的Stapling再次进行调整,但仍有violation的短线则会被丢弃。
此时,由于做了多次设计规则的检查,效率已经很低了,难以达到相应的要求。同时相比于OTC(Over-the-Cell,单元上布线),当前方式对于误删找回的Stapling,数量还是想对较少,与真实满足要求的Stapling数量相比,还是会有不少误删的Stapling最终也无法被找回。至此可以看出,当前对于电源短线的布线调整方法,由于存在着大量的错误判断,从而导致最终结果的准确率较低,同时由于可能涉及多次检查,效率也非常低下。
鉴于此,本申请提出了一种走线位置调整方案。本申请通过对芯片设计版图进行分割,将整个版图划分为一个个小的目标区域。之后,直接针对目标区域中的一个个走线进行摆放调整,先确定出走线初始的第一位置和允许其进行摆放的最大范围空间。再直接对这个第一位置或摆放空间进行规则检查,以此确定第一位置是否不合适或者摆放空间中哪些位置不合适,从而根据检查结果,在摆放空间中对走线当前的位置进行调整,最终确定出满足规则检查的第二位置。以此方式,直接对每条最小的走线进行检测,直接杜绝了由于规则改变导致的不合规问题,以及错删问题,同时,通过分区的方式,减少每次的计算量,同时还能够结合多线程的方式更为合理的应用资源,最终在保证整体效率的同时还提示了布线调整的准确性。
图4A示出了本申请实施例所提供的示例性方法400的流程示意图。该方法400可以由图1的计算机设备100实现,并可以实现为图2的EDA工具200的一部分功能。如图4A所示,该方法400可以进一步包括以下步骤。
步骤402,获取芯片设计版图。
一般地,芯片设计版图包含有芯片加工的每一层结构,具体晶体管布局、布线、走线、通道过孔层间连接位置等等。根据该芯片设计版图,芯片加工服务商能够直接运行并进行芯片的批量化加工生产。进一步的,芯片设计版图本身是一步步绘制完成的,同时伴随着各项优化,最终完成真个芯片设计版图。在芯片设计版图初期,可能其上仅表明了层级的功能信息,例如某一层是走线层、某一层是绝缘层等;或是仅设置了各个功能元件,标明了每个功能元件的位置、大小等信息。之后利用EDA工具等进行一步步的设计及优化,最后形成芯片设计版图的完整版本。在本步骤中,由于涉及到的是布线规划工序,其芯片设计版图可能还是较为初始的版本,其上仅有芯片层级关系、层级功能、元件设计位置等较为早期的数据。在具体应用场景中,可以通过芯片设计版图的DEF(Design Exchange File,设计库的物理信息)文件和/或LEF(Library Exchange File,工艺库的物理信息)文件获取层级结构、元件位置等初始数据信息。
之后,在本步骤中,芯片设计版图可以是局部的(例如将整个设计版图划分成大量的子区域)、也可以是整体的。
步骤404,对所述芯片设计版图进行区域分割,得到目标区域。
在本步骤中,在得到芯片设计版图获得了初始的元件布局、层级结构等数据之后,相应的哪些地方需要设计电源短线也就相应的能够确定下来,进而在一些实施例中,即可根据当前这些需要设计的电源短线(即走线)的相应数据对芯片设计版图进行区域分割,生成至少一个目标区域,例如可以根据这些走线初始的大致间距为依据进行分割,当然也可以解决当前进行处理的系统的线程数量,进行分割,如分割为当前线程数量的倍数个目标区域。当然,在一些实施例中,也可以依据设定尺寸或设定个数进行区域分割,例如设定好每个区域的大小,或总共区域的个数之后,直接按照尺寸进行分割。
在一些实施例中,由于不同处理系统对应执行本方案的线程数量或进程数量不同,进而可以根据执行本方案的线程总数量来对区域的分割,例如有10个线程用于执行本方案,从而可以将芯片设计版图分割成10个、20个、30个等10的倍数个区域,之后,针对每个区域的具体分割方式,可以是按照设定尺寸来进行分割;也可以以当前初始的走线之间的间距(物理间隔)为依据或走线数量、排布方式等,进行分割。当然在一些实施例中,可以通过人为输入的方式,通过操作人员的主动调整,来确定分割的边界(即分割位置),即通过输入的分割位置来完成对芯片设计版图的分割。也就是说,在一些实施例中,所述对所述芯片设计版图进行区域分割,包括:确定进行走线位置调整的线程数量,以及所述芯片设计版图内不同走线之间的物理间隔;根据所述线程数量及所述物理间隔完成对所述芯片设计版图的分割;或获取输入的分割位置,根据所述分割位置完成对所述芯片设计版图的分割。
在具体场景中,对于一个目标区域,可以直接读取出其内包含的全部障碍物,并且直接对其进行展开,由于之后是直接对电源短线(走线)进行检查,不会再进行进一步的细化检查,从而对于这些障碍物仅需要进行一次展开,进行一轮设计规则检查即可。也就是说,规避背景物体多次被展开、只能进行一次设计规则检查。同时,避免了DRC API的初始化,多线程同步,根据Violation信息组合数据上报等耗时项。并且通过分割,保留原先多线程方案,之前的分组,改为将整个绕线区域切割成多个小区域,每个线程管理一个区域,并在小区域内创建Stapling。在开始创建Stapling之前,先把当前管理的区域内的背景物体全部搜索到,同时展开到HVTree内,记录每个物体的属性信息,用于做设计规则检查。最终,对于每根电源短线,主动检查金属重叠并使用Spacing API检查设计规则。
在具体实施例中,对一个区域的分割,一般的都会分割成多个区域,进而在本实施例中的目标区域即为芯片设计版图被分割后的任意一块区域。
具体的,如图5A所示,可以根据线程总数量以及不同走线之间的物理间隔来对区域的分割,分割出来的目标区域由多线程处理。其中图示500表示芯片设计版图、图示501表示一个个目标区域,图示502表示一个个的走线。
步骤406,确定所述目标区域中一条走线的第一位置和摆放空间,根据预设的规则表对所述第一位置或所述摆放空间进行规则检查;其中,所述摆放空间包括所述第一位置。
步骤408,根据检查结果,确定所述摆放空间内满足规则检查的第二位置,根据所述第二位置对所述走线进行位置调整。
在步骤406中,对于一个目标区域其中一般包括多个走线,这里仅针对一条走线进行方案说明,其他走线可以重复该走线的处理过程,同时,在一个目标区域中完成所有走线的位置调整之后,进而可以在其他目标区域中重复同样的处理过程。针对任意一条走线,首先需要确定其第一位置,这里的第一位置即为该走线的初始设置位置,在进行设计时,在确定一个位置可以设置一个走线之后,一般会同时确定出其初始的设置位置,以及相应的走线长度等,同时由于走线一般都是沿横平或竖直的方向延伸,也一般没有拐弯等,从而对于方向等其他参数可以不设置或者不读取等。
之后,对于走线的摆放空间,即为该走线能够允许摆放的一段空间位置,走线可以在这个摆放空间中任意调整其位置,可以看出摆放空间必然是包括第一位置的。如图5B所示,其中走线502当前设置的位置可以认为是第一位置,即初始位置;之后图示503A表示图中的走线502所对应的摆放空间,在这个空间内,走线可以沿参考线摆放于任意位置处,之后503B为摆放空间的另一种表现形式,两者都对应于图中的走线502。
在一些实施例中,摆放空间的具体大小可以是预先设定好的,例如可以是统一的尺寸;也可以根据相邻的走线之间的物理间隔等进行预先的设定,或是根据其他的尺寸数据来具体确定摆放空间的大小。在一些实施例中,对于确定目标区域中一条走线的摆放空间,可以先确定该走线的长度,以及其在第一位置的延伸方向(一般为沿横向延伸或沿纵向延伸),之后,则可以以第一位置为基础,向走线的左右两端分别延伸不大于该走线的长度的距离,以此来形成摆放空间,也就是说,摆放空间最大为对应走线长度的3倍。即,在一些实施例中,所述确定所述目标区域中一条走线的摆放空间,包括:确定所述走线的长度,以及在所述第一位置的延伸方向;以在所述第一位置的所述走线为基础,沿所述延伸方向,在所述走线的两端分别延长小于或等于所述长度的距离,形成所述摆放空间。
在确定了走线的第一位置和摆放空间之后,就可以开始进行规则检查了。这里设计规则(Library Exchange Format,LEF rule),通常是指,芯片加工服务商和工业软件公司提供的数字电路版图设计规则的限制条件。设计规则检查(Design Rule Check,DRC),通常是指,芯片加工服务商由于制造加工工艺的限制,要求设计的芯片设计版图符合其指定的限制条件,设计规则检查是在设计过程中对芯片设计版图是否符合限制条件进行的检查。在本实施例中,可以简单理解为针对芯片设计版图中的背景物体(即障碍物),走线不能与其发生重叠,并且根据相应的设计规则,走线也不能出现在太靠近这些物体所在位置的区域,例如根据设计规则某个障碍物(例如硬核cell)其左右2μm、上下3μm范围内不能有走线,以此来对走线的第一位置或摆放空间进行检查。在一些实施例中,这些设计规则可以设置于预设的规则表中,在进行检查时直接利用规则表进行相应的检查。之后,对于根据第一位置的规则检查方式,可以理解为,先判断当前的走线在第一位置处,是否就符合了设计规则,是则将第一位置作为最终走线的位置,不是则可以在摆放空间中对第一位置进行调整,去寻找满足设计规则的位置,将这个位置作为最终走线的位置。当然,在具体应用时,如果最终没法确定出满足设计规则的位置,可以将该走线舍弃、删除掉。而对于根据摆放空间的规则检查方式,可以理解为,直接根据设计规则对整段摆放空间进行检测,确定当前摆放空间中哪些位置不能设置走线,之后再在剩余空间中对走线的位置进行调整,以此来确定最终走线的位置。可以看出,前一种方式,每次仅对走线长度范围内的空间进行规则检查,从而每次检查所涉及到的障碍物是最少的,计算量少的同时如若调整次数较少则同样可以保证效率。后一种方式,虽然一次对整个摆放空间进行检查,但是其仅需一次就能确定整个空间中哪些位置适合摆放,从而计算一次就能确定走线是否设置,以及设置位置。
之后,在步骤408中,根据前述的说明,对第一位置的规则检查实施例中,通过对走线位置的不断调整,可以确定出一个满足规则检查的第二位置,进而可以将该第二位置作为最终走线的设置位置进行调整,当然在具体应用时,第二位置可以是第一位置(即走线在第一位置就直接通过了规则检查),也可以不存在第二位置(即摆放空间中没有能够放下走线的空间),从而可以对这条走线直接进行删除。而对摆放空间进行规则检查实施例中,相类似的,在完成对摆放空间的切割之后,即可根据剩余的空间确定走线的摆放位置或者是否能放下走线,从而最终确定出用于位置调整的第二位置。
具体的,如图4B所示,对于根据预设的规则表对第一位置进行规则检查,其可以包括:
步骤4062,根据所述芯片设计版图,确定所述走线在所述第一位置时四周设定范围内的第一障碍物。
步骤4064,根据所述规则表确定所述第一障碍物的第一影响范围,根据所述第一影响范围是否与所述走线存在重叠,进行所述规则检查。
在本实施例中,设定范围可以根据具体应用场景进行设置,例如设置为四周1μm范围内。先确定走线当前第一位置处在这个范围内是否存在障碍物,如果不存在,则也不会有相应的规则需要检查,进而必然是能够通过规则检查的。如果有第一障碍物的话,则可以根据规则表确定其影响范围(即第一影响范围),看看该第一影响范围是否与当前在第一位置处的走线有没有重叠,以此来进行规则检查。没有重叠,则说明通过了规则检查;有的话,则说明没有通过规则检查,需要进行位置调整,即第一位置无法满足规则检查的要求。
之后,如图4C所示,对于确定摆放空间内满足规则检查的第二位置,可以进一步包括:
步骤4082,响应于所述第一位置无法通过规则检查,在所述摆放空间中确定所述走线的第三位置,根据所述规则表对所述第三位置进行规则检查;其中,所述第三位置与所述第一位置不是完全重叠。
步骤4084,响应于所述第三位置通过规则检查,将所述第三位置作为所述第二位置。
在本实施例中,无法通过规则检查即为第一位置与第一影响范围出现了重叠,需要对第一位置进行调整,进而可以在摆放空间中选出一个放置走线的第三位置,来再次进行规则检查。由于第一位置已经不能通过检查了,从而第三位置必然不能和第一位置完全重叠,其至少要有没有重叠的部分。进而其选择第三位置的方式可以是每次朝一个方向移动一点距离,然后以此来一点点实验是否可以通过规则检查。
而在另一些实施例中,可以直接根据第一影响范围对摆放空间进行切割,将重叠的区域切割出去,从而在剩下的部分中去确定第三位置。即,在一些实施例中,所述在所述摆放空间中确定所述走线的第三位置,包括:根据所述第一影响范围对所述摆放空间进行切割,根据第一设定条件在切割后的摆放空间内选取所述第三位置。其具体确定方式(即具体的第一设定条件)可以是就近确定,即在完成切割之后,选取一个离第一位置最近,且能放下走线的位置为第三位置。
之后,再对设置于第三位置的走线继续进行规则检查,如果这次通过了规则检查,则就可以将第三位置作为第二位置进行设置,最终完成的对走线位置的调整。而如果还是不行,则可以再进行切割再选位置再进行检查,以此循环,直至选到符合要求的第三位置,或者选不出第三位置。也就是说,在一些实施例中,所述根据所述规则表对所述第三位置进行规则检查之后,所述方法还包括:响应于所述第三位置无法通过规则检查,对所述第三位置进行记录,形成历史第三位置集合;根据第二设定条件对所述第三位置进行更新,并对更新后的第三位置重新进行规则检查;其中,所述第二设定条件为更新后的第三位置与所述第一位置及所述历史第三位置集合不是完全重叠。其中,历史第三位置集合用于记录每次选择的第三位置的相应信息,以在每次进行第三位置的调整时,使调整后的第三位置可以与第一位置及历史中每次的第三位置均不完全重叠。
在具体应用场景中,如图5C所示,对于在第一位置处的走线502,确定其周围的障碍物504,之后根据规则表中的设计规则确定障碍物504的第一影响范围,其如果与第一位置处的走线502重叠,则根据第一影响范围对摆放空间进行切割,形成图5C中的503B所示的摆放空间。之后,如图5D、5E所示,可以就近选择摆放走线502的第三位置,再重复确定障碍物504,再进行检查以及切割。其切割的方式不仅可以根据障碍物504的第一影响范围进行切割,还可以根据剩余空间是否能放下走线502来确定是否舍弃或切割。最终,如图5F所示,选出的摆放走线502的第三位置满足了相应的设计规则,从而可以将其作为第二位置,并最终完成对走线502位置的调整。从而在具体场景中,通过初始化每根电源线(走线)可摆放区域,检测到violation存在之后,分割可用区域,在电源线的方向上,选择最近位置摆放;重复迭代上述过程,直到没有可摆放区域,或者新摆放区域没有violation。
之后,对于另一种实施例,如图4D所示,对于根据预设的规则表对摆放空间进行规则检查,其可以包括:
步骤4066,根据所述芯片设计版图,确定所述摆放空间设定范围内的第二障碍物。
步骤4068,根据所述规则表确定所述第二障碍物的第二影响范围,根据所述第二影响范围是否与所述摆放空间存在重叠,进行规则检查。
在本实施例中,与前述对第一位置进行规则检查相类似的。设定范围可以根据具体应用场景进行设置,例如设置为四周1μm范围内。之后,第二障碍物为对应于整个摆放空间的障碍物。同时,第二影响范围则与第二障碍物相对应。相应障碍物、影响范围概念则与前述对第一位置进行规则检查的实施例中的概念相类似。
之后,如图4E所示,对于确定摆放空间内满足规则检查的第二位置,可以进一步包括:
步骤4086,响应于所述第二影响范围与所述摆放空间存在重叠,根据所述第二影响范围对所述摆放空间进行切割,根据第三设定条件在切割后的摆放空间内选取所述第二位置。
步骤4088,响应于所述第二影响范围与所述摆放空间不存在重叠,将所述第一位置作为所述第二位置。
其中,第三设定条件则与第一设定条件相类似,再次不再过多赘述。
在具体应用场景中,如图5G所示,直接检查摆放空间503周围的障碍物504,之后根据规则表中的设计规则确定障碍物504的第二影响范围,其如果与第一位置处的走线502重叠,则根据第二影响范围对摆放空间进行切割,同时根据是否能放下走线502来对剩余部分进行舍弃。如此形成如图5G中的503B所示的摆放空间。并最终形成同样如图5F所示,在剩余的摆放空间中确定了走线502的最终位置,并最终完成对走线502位置的调整。
从上述实施例可以看出,本申请实施例提供的一种走线位置调整方法。本申请通过对芯片设计版图进行分割,将整个版图划分为一个个小的目标区域。之后,直接针对目标区域中的一个个走线进行摆放调整,先确定出走线初始的第一位置和允许其进行摆放的最大范围空间。再直接对这个第一位置或摆放空间进行规则检查,以此确定第一位置是否不合适或者摆放空间中哪些位置不合适,从而根据检查结果,在摆放空间中对走线当前的位置进行调整,最终确定出满足规则检查的第二位置。以此方式,直接对每条最小的走线进行检测,直接杜绝了由于规则改变导致的不合规问题,以及错删问题,同时,通过分区的方式,减少每次的计算量,同时还能够结合多线程的方式更为合理的应用资源,最终在保证整体效率的同时还提示了布线调整的准确性。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本申请实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种包含计算机程序的非易失性计算机可读存储介质,所述包含计算机程序的非易失性计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法400。
本实施例的计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法400相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法400。对应于方法400各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种走线位置调整方法,其特征在于,包括:
获取芯片设计版图;
对所述芯片设计版图进行区域分割,得到目标区域;
确定所述目标区域中一条走线的第一位置和摆放空间,根据预设的规则表对所述第一位置或所述摆放空间进行规则检查;其中,所述摆放空间包括所述第一位置,所述走线为芯片设计中的电源短线线段,所述规则检查为对所述走线的设置位置及是否设置进行检查;
根据检查结果,确定所述摆放空间内满足规则检查的第二位置,根据所述第二位置对所述走线进行位置调整;当根据所述检查结果无法确定所述第二位置时,对所述走线进行删除;
所述确定所述目标区域中一条走线的摆放空间,包括:
确定所述走线的长度,以及在所述第一位置的延伸方向;
以在所述第一位置的所述走线为基础,沿所述延伸方向,在所述走线的两端分别延长小于或等于所述长度的距离,形成所述摆放空间。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的规则表对所述第一位置进行规则检查,包括:
根据所述芯片设计版图,确定所述走线在所述第一位置时四周设定范围内的第一障碍物;
根据所述规则表确定所述第一障碍物的第一影响范围,根据所述第一影响范围是否与所述走线存在重叠,进行所述规则检查。
3.根据权利要求2所述的方法,其特征在于,所述确定所述摆放空间内满足规则检查的第二位置,包括:
响应于所述第一位置无法通过规则检查,在所述摆放空间中确定所述走线的第三位置,根据所述规则表对所述第三位置进行规则检查;其中,所述第三位置与所述第一位置不是完全重叠;
响应于所述第三位置通过规则检查,将所述第三位置作为所述第二位置。
4.根据权利要求3所述的方法,其特征在于,所述在所述摆放空间中确定所述走线的第三位置,包括:
根据所述第一影响范围对所述摆放空间进行切割,根据第一设定条件在切割后的摆放空间内选取所述第三位置。
5.根据权利要求3所述的方法,其特征在于,所述根据所述规则表对所述第三位置进行规则检查之后,所述方法还包括:
响应于所述第三位置无法通过规则检查,对所述第三位置进行记录,形成历史第三位置集合;
根据第二设定条件对所述第三位置进行更新,并对更新后的第三位置重新进行规则检查;其中,所述第二设定条件为更新后的第三位置与所述第一位置及所述历史第三位置集合不是完全重叠。
6.根据权利要求1所述的方法,其特征在于,所述根据预设的规则表对所述摆放空间进行规则检查,包括:
根据所述芯片设计版图,确定所述摆放空间设定范围内的第二障碍物;
根据所述规则表确定所述第二障碍物的第二影响范围,根据所述第二影响范围是否与所述摆放空间存在重叠,进行规则检查。
7.根据权利要求6所述的方法,其特征在于,所述确定所述摆放空间内满足规则检查的第二位置,包括:
响应于所述第二影响范围与所述摆放空间存在重叠,根据所述第二影响范围对所述摆放空间进行切割,根据第三设定条件在切割后的摆放空间内选取所述第二位置。
8.根据权利要求6所述的方法,其特征在于,所述确定所述摆放空间内满足规则检查的第二位置,包括:
响应于所述第二影响范围与所述摆放空间不存在重叠,将所述第一位置作为所述第二位置。
9.根据权利要求1所述的方法,其特征在于,所述对所述芯片设计版图进行区域分割,包括:
确定进行走线位置调整的线程数量,以及所述芯片设计版图内不同走线之间的物理间隔;根据所述线程数量及所述物理间隔完成对所述芯片设计版图的分割;
或获取输入的分割位置,根据所述分割位置完成对所述芯片设计版图的分割。
10.根据权利要求9所述的方法,其特征在于,所述目标区域为所述芯片设计版图被分割后的任意一块区域。
11.一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1至10任意一项所述的方法的指令。
12.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1至10中任一项所述的方法。
CN202410952448.7A 2024-07-16 2024-07-16 走线位置调整方法、计算机设备及存储介质 Active CN118504511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410952448.7A CN118504511B (zh) 2024-07-16 2024-07-16 走线位置调整方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410952448.7A CN118504511B (zh) 2024-07-16 2024-07-16 走线位置调整方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN118504511A CN118504511A (zh) 2024-08-16
CN118504511B true CN118504511B (zh) 2024-10-11

Family

ID=92229462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410952448.7A Active CN118504511B (zh) 2024-07-16 2024-07-16 走线位置调整方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN118504511B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198722A (ja) * 1997-01-14 1998-07-31 Hitachi Software Eng Co Ltd 対話型配線パターン作成システム
CN115982906A (zh) * 2022-12-23 2023-04-18 苏州华兴源创科技股份有限公司 一种布线方案生成方法、装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065729B1 (en) * 1998-10-19 2006-06-20 Chapman David C Approach for routing an integrated circuit
JP5913969B2 (ja) * 2011-12-27 2016-05-11 新光電気工業株式会社 基板設計装置及び基板設計方法
CN111859847A (zh) * 2020-06-29 2020-10-30 苏州浪潮智能科技有限公司 印制电路板的走线检测方法、装置及计算机可读存储介质
US11966682B2 (en) * 2021-07-30 2024-04-23 International Business Machines Corporation Fast independent checker for extreme ultraviolet (EUV) routing
CN114781318B (zh) * 2022-06-16 2022-09-13 飞腾信息技术有限公司 芯片的模块引脚布线方法、装置、电子设备及存储介质
CN116634671A (zh) * 2023-05-17 2023-08-22 苏州浪潮智能科技有限公司 走线间距调整方法、装置、设备及可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198722A (ja) * 1997-01-14 1998-07-31 Hitachi Software Eng Co Ltd 対話型配線パターン作成システム
CN115982906A (zh) * 2022-12-23 2023-04-18 苏州华兴源创科技股份有限公司 一种布线方案生成方法、装置

Also Published As

Publication number Publication date
CN118504511A (zh) 2024-08-16

Similar Documents

Publication Publication Date Title
JP7413580B2 (ja) ニューラルネットワークを使用した集積回路フロアプランの生成
US6536023B1 (en) Method and system for hierarchical metal-end, enclosure and exposure checking
US10049175B1 (en) Methods, systems, and articles of manufacture for interactively implementing physical electronic designs with track patterns
US9003349B1 (en) Methods, systems, and articles of manufacture for implementing a physical electronic design with area-bounded tracks
CN116911246B (zh) 芯片设计的布线规划方法及相关设备
US11176306B2 (en) Methods and systems to perform automated Integrated Fan-Out wafer level package routing
CN111597768B (zh) 用于构建版图图案集的方法、设备和计算机可读存储介质
Kahng et al. TritonRoute-WXL: The open-source router with integrated DRC engine
Chen et al. Routability-driven blockage-aware macro placement
US11853680B2 (en) Incremental routing based pin assignment
CN116227407B (zh) 形成物理版图的模块边界的方法及相关设备
CN116151179B (zh) 芯片设计的布局规划方法及相关设备
US20150135151A1 (en) Canonical Forms Of Layout Patterns
CN118504511B (zh) 走线位置调整方法、计算机设备及存储介质
CN116306486B (zh) 芯片设计的设计规则检查方法及相关设备
CN117291140B (zh) 自动布线工具的绕线违例减少方法、装置、存储介质及电子终端
CN116090396B (zh) 显示芯片设计的数据流的方法及相关设备
WO2023036031A1 (en) Sweepline triangulation for spanning graphs
US11301614B1 (en) Feasibility analysis of engineering change orders
US10970452B2 (en) System for designing semiconductor circuit and operating method of the same
CN116956807B (zh) 芯片设计的全局布线拥塞图确定方法及相关设备
US20230126888A1 (en) Computation of weakly connected components in a parallel, scalable and deterministic manner
US20070226662A1 (en) Method and apparatus of rapid determination of problematic areas in vlsi layout by oriented sliver sampling
US20230252218A1 (en) Effective metal density screens for hierarchical design rule checking (drc) analysis
CN118761377A (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