CN116151179B - 芯片设计的布局规划方法及相关设备 - Google Patents

芯片设计的布局规划方法及相关设备 Download PDF

Info

Publication number
CN116151179B
CN116151179B CN202211366329.0A CN202211366329A CN116151179B CN 116151179 B CN116151179 B CN 116151179B CN 202211366329 A CN202211366329 A CN 202211366329A CN 116151179 B CN116151179 B CN 116151179B
Authority
CN
China
Prior art keywords
hard
cores
determining
hard cores
cell
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
CN202211366329.0A
Other languages
English (en)
Other versions
CN116151179A (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 CN202211366329.0A priority Critical patent/CN116151179B/zh
Publication of CN116151179A publication Critical patent/CN116151179A/zh
Application granted granted Critical
Publication of CN116151179B publication Critical patent/CN116151179B/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/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
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Abstract

本申请提供一种芯片设计的布局规划方法及相关设备。该方法,包括:读取所述芯片设计的初始布局规划数据;确定所述初始布局规划数据中的待处理的一组硬核;根据所述一组硬核的硬核尺寸,确定单元格尺寸;确定约束模板的行列数;根据所述行列数和所述单元格尺寸,生成所述约束模板;将所述一组硬核匹配到所述约束模板的单元格中;响应于确定匹配完成的所述一组硬核之间存在封闭区域或不规则区域,对匹配完成的所述一组硬核进行优化布局以消除所述封闭区域或所述不规则区域;基于优化布局后的所述一组硬核,输出布局规划数据。

Description

芯片设计的布局规划方法及相关设备
技术领域
本申请涉及芯片技术领域,尤其涉及一种芯片设计的布局规划方法及相关设备。
背景技术
电子设计自动化(Electronic Design Automation,简称EDA),是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
在数字芯片物理设计布局规划(floorplan)阶段,可以使用混合摆放(mixed-place)的方法来解决布局规划问题。该方法将硬核(hard macros)和标准单元(standardcells)同时摆放,减少了工程师的工作量和布局规划设计时间。
但是,本申请的发明人发现,相关技术中,在混合摆放后的硬核排列不整齐,这会导致多种问题。
发明内容
鉴于此,本申请提出一种芯片设计的布局规划方法及相关设备,以解决或部分解决上述问题。
本申请第一方面,提供了一种芯片设计的布局规划方法,包括:
读取所述芯片设计的初始布局规划数据;
确定所述初始布局规划数据中的待处理的一组硬核;
根据所述一组硬核的硬核尺寸,确定单元格尺寸;
确定约束模板的行列数;
根据所述行列数和所述单元格尺寸,生成所述约束模板;
基于线性规划算法或者混合整数线性规划方法,将所述一组硬核匹配到所述约束模板的单元格中;
响应于确定匹配完成的所述一组硬核之间存在封闭区域或不规则区域,对匹配完成的所述一组硬核进行优化布局以消除所述封闭区域或所述不规则区域;
基于优化布局后的所述一组硬核,输出布局规划数据。
本申请第二方面,提供了一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
本申请第四方面,提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行第一方面所述的方法。
本申请提供的芯片设计的布局规划方法及相关设备,通过划分单元格的方式来创建约束模板,然后将需要规整对齐的一组硬核匹配到约束模板中,再对封闭区域或不规则区域进行消除,得到规整对齐的一组硬核,从而可以自动规整对齐具有混合高度的一组硬核。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例所提供的示例性计算机设备的硬件结构示意图。
图2A示出了根据本申请实施例的EDA工具的基本结构示意图。
图2B示出了根据本申请实施例的EDA工具的一个计算命令的基本执行流程的示意图。
图3A示出了本申请实施例所提供的示例性方法的流程示意图。
图3B示出了根据本申请实施例的用于混合尺寸硬核规划的子流程示意图。
图4A示出了根据本公开实施例的一个示例性的硬核初始规划布局示意图。
图4B示出了根据本公开实施例的一个示例性待匹配的硬核组及其目标约束模板的示意图。
图4C示出了根据本公开实施例的一个示例性约束模板的示意图。
图4D示出了根据本公开实施例的硬核匹配完成的示意图。
图4E示出了根据本公开实施例的封闭区域探测及调整的示意图。
图4F示出了根据本公开实施例的一个示例性更新后不包含封闭区域的约束模板的示意图。
图4G示出了根据本公开实施例的不包含封闭区域的硬核匹配结果的示意图。
图5A示出了根据本公开实施例的混合尺寸硬核切分的示意图。
图5B示出了根据本公开实施例的混合尺寸硬核匹配的示意图。
图5C示出了根据本公开实施例的混合尺寸硬核组消除不规则(封闭)区域的示意图。
图5D示出了根据本公开实施例的面积压缩的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图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,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2A示出了根据本申请实施例的EDA工具200的基本结构示意图。
如图2A所示,虚线以上为用户部分;虚线以下为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中。
图2B示出了根据本申请实施例的EDA工具200的一个计算命令的基本执行流程300。如图2B所示,在步骤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,用户可以根据计算结果进行评估,然后确定下一步计划。
布局规划(floorplan),通常是指,把硬核(hard macros)放置到设计当中,并满足后续标准单元(standard cells)布局要求。广义的布局规划还包括设计裸片(Die)的高宽比、摆放I/O Pad、纯物理单元(Welltap、Endcap)插入、电源地网络规划等。
作为一个可选实施例,可以采用图2B所示的流程来完成初始布局规划,从而得到芯片设计的初始布局规划数据。在进行初步布局规划时,可以采用混合摆放的方法来完成布局规划。混合摆放(mixed-place),通常是指使用解析式摆放器同时摆放硬核和标准单元。该方法将硬核(hard macros)和标准单元(standard cells)同时摆放,减少了工程师的工作量和布局规划设计时间。
但是,在很多时候,混合摆放后的硬核排列不整齐,这会导致多种问题:一、电源地布线困难,容易产生电压降(IR drop)的问题;二、占用更多的绕线资源;三、产生很多的封闭区域(dead area),这些封闭区域会导致时序优化困难和绕线困难。
一种解决办法是,在混合摆放后,对硬核做规整对齐,可以一定程度上解决这些问题。规整对齐(packing),通常是指,把一组硬核在第一方向(例如,水平方向)和第二方向(竖直方向)上进行对齐,并整体移动到指定位置,完成组与组的拼接或者对齐。但相关技术中的规整对齐难以满足用户的多种需求。
有鉴于此,本申请实施例提供了一种芯片设计的布局规划方法,通过划分单元格的方式来创建约束模板,然后将需要规整对齐的一组硬核匹配到约束模板中,再对封闭区域或不规则区域进行消除,得到规整对齐的一组硬核,从而可以自动规整对齐具有混合高度的一组硬核。
图3A示出了本申请实施例所提供的示例性方法300的流程示意图。该方法300可以由图1的计算机设备100实现,并可以实现为图2A的EDA工具200的一部分功能。如图3A所示,该方法300可以进一步包括以下步骤。
在步骤302,读取所述芯片设计的初始布局规划数据,该初始布局规划数据可以是经过混合摆放之后得到的布局规划数据。
在步骤304,确定所述初始布局规划数据中的待处理的一组硬核。
图4A示出了根据本公开实施例的一个示例性的硬核初始规划布局400的示意图。
如图4A所示,该布局400可以展示在计算机设备的显示屏中,其中包括初始布局规划数据对应的混合摆放之后得到的布局规划结果,并可以供用户选择所需要进行规整对齐的一组硬核。
如图4A所示,假设用户利用鼠标选择了区域402中的一组硬核来进行规整对齐,则计算机设备100可以确定待处理的一组硬核为区域402中圈定的6个硬核404。
在步骤306,根据所述一组硬核的硬核尺寸,确定单元格尺寸。
根据所述一组硬核中各硬核的尺寸是否相同的区别,单元格尺寸的确定方法可以是不同的。
在一些实施例中,当所述一组硬核中各硬核的尺寸相同时,该步骤306可以进一步包括:响应于确定所述一组硬核中各硬核的尺寸相同,根据所述硬核在第一方向(例如,水平方向或x轴方向)和第二方向(例如,竖直方向或y轴方向)上的尺寸以及硬核间的约束间距,确定所述单元格尺寸。
计算单元格尺寸的计算公式如下:
g=d+s
这里g表示x轴或y轴方向上的单元格尺寸,d表示硬核的在x轴或y轴方向上尺寸,s表示硬核间的在x轴或y轴方向上的约束间距(根据实际需要设定)。
在一些实施例中,当所述一组硬核中各硬核的尺寸不同时,该步骤306可以进一步包括:响应于确定所述一组硬核存在尺寸不同的至少两个硬核,采用近似最大公约数方法,根据各硬核在第一方向和第二方向上的尺寸,确定所述单元格尺寸。
具体地,由于待处理的一组硬核中存在尺寸不同的硬核,单元格的尺寸需要合理规划,否则会导致某些格子中有大片空白区域未被硬核填满而形成封闭区域。本实施例中,采用近似最大公约数方法分别计算x轴或y轴方向上最优的单元格尺寸s:
其中,di表示第i个硬核的尺寸,t∈[0,1)表示一个可调整的误差系数。
在步骤308,确定约束模板的行列数。
约束模板的行列数可以是用户指定的,例如,通过在布局400所在的界面中输入行数和列数来得到约束模板的行列数。
在一些实施例中,当用户没有指定约束模板的行列数时,可以自动计算约束模板的行列数。具体地,如图4B所示,可以确定能够包围所述一组硬核的最小矩形406,根据所述最小矩形406的尺寸和所述单元格408的尺寸,确定约束模板的行列数。例如,可以是利用最小矩形406的尺寸除以单元格408的尺寸,从而得到行列数(图4B的示例为3×3)。
在步骤310,根据所述行列数和所述单元格尺寸,生成所述约束模板。
具体地,根据确定的单元格尺寸与行列数,可以产生完整的约束模板410,如图4C所示。并且,可以进一步将约束模板的原点与硬核组的原点重合,准备进行后续的模板匹配。这里的原点可分为中心、左下、左上、右下、右上等不同类型来供选择。
在步骤312,将所述一组硬核匹配到所述约束模板的单元格中。
根据所述一组硬核中各硬核的尺寸是否相同的区别,匹配到所述约束模板的方法可以是不同的。
在一些实施例中,当所述一组硬核中各硬核的尺寸相同时,该步骤312可以进一步包括:
确定目标函数:
objective:
其中,i代表单元格编号,j代表硬核编号;wij代表(i,j)对的权重,xij表示(i,j)的匹配度,xij=0表示不匹配,xij=1表示匹配;其中,wij一般可表示成其距离和数据通路连接数量的正相关函数。
以该目标函数为优化目标来将硬核匹配到所述约束模板的优化算法可以有很多种,例如,最小代价流算法(mincost flow)、线性规划(linear programming,LP)等。作为一个可选实施例,本实施例使用LP方法。
这样,基于线性规划算法(LP)和所述目标函数,可以将所述一组硬核中的各硬核匹配到所述约束模板中与其距离最近的单元格中。具体地,通过LP求解器解出所有的xij数值,即硬核与模板单元格之间的最优匹配,如图4D所示。
在一些实施例中,当所述一组硬核中各硬核的尺寸不同时,如图3B所示,该步骤312可以进一步包括:
在步骤3122,响应于确定所述一组硬核存在尺寸不同的至少两个硬核,将所述一组硬核中尺寸大于单元格尺寸的硬核,按照单元格尺寸切分为至少两个子硬核。在步骤306中,采用近似最大公约数方法求得了单元格尺寸,因此,对于尺寸大于单元格尺寸的硬核,可以基本为(约等于)单元格尺寸的整数倍,基于此,可以将尺寸大于单元格尺寸的硬核按照单元格尺寸进行切分,得到整数个子硬核。如图5A所示,对于尺寸约等于单元格尺寸两倍的硬核,可以切分为两个子硬核。可以理解,该方法可以沿第一方向和第二方向进行切分,在此不再赘述。
在步骤3124,确定目标函数:
objective:
其中,i代表单元格编号,j代表硬核编号或子硬核编号;wij代表(i,j)对的权重,xij表示(i,j)的匹配度。
由于同一硬核的子硬核必须按照初始方位被指定到对应的模板单元格中,可以将LP方法替换为混合整数线性规划方法(mixed-integer linear-programming,MILP)。因此,在步骤3126,基于混合整数线性规划方法和所述目标函数,将所述一组硬核中的各硬核或子硬核匹配到所述约束模板中与其距离最近的单元格中,并使得同一硬核的子硬核处于相邻的单元格中。这样,通过MILP求解器解出所有的xij数值,即硬核与模板单元格之间的最优匹配,如图5B所示。
在步骤314,响应于确定匹配完成的所述一组硬核之间存在封闭区域或不规则区域,对匹配完成的所述一组硬核进行优化布局以消除所述封闭区域或所述不规则区域。
封闭区域(dead area),一般是指,被硬核包围但可以摆放标准单元的区域,该区域可以有狭窄沟道与外界联通。通过消除封闭区域可以使得硬核排列更加规则整齐,有利于时序优化和绕线。作为一个可选实施例,可以通过确定所述一组硬核的硬核数量与所述约束模板的单元格数量的关系来确定是否存在封闭区域或不规则区域。例如,当所述一组硬核的硬核数量大于所述约束模板的单元格数量,则说明某些单元格中未填充硬核,容易形成封闭或不规则区域,进而确定匹配完成的所述一组硬核之间存在封闭区域或不规则区域。
在一些实施例中,对匹配完成的所述一组硬核进行优化布局以消除所述封闭区域或所述不规则区域,包括:
以所述单元格为单位,扫描并计算得到硬核的轮廓线单元格以及封闭区域单元格或不规则区域单元格;如图4E所示,可以扫描得到硬核的轮廓线单元格412(图4E中灰色区域)以及封闭区域单元格414;
接着,可以将与封闭区域单元格最近的轮廓线单元格用该封闭区域单元格进行填充。
具体地,可以用约束模板的空白单元格填充封闭区域单元格以更新所述约束模板416,如图4F中灰色区域所示,更新的约束模板416为原模板410的子集,其单元格数量与硬核数量一致。然后可以基于更新的约束模板重新进行步骤312,以消除所述封闭区域或所述不规则区域,如图4G所示。
由于此时单元格数量与硬核数量一致,重新进行模板匹配后不会形成封闭或不规则区域。
对于所述一组硬核中的硬核尺寸不同的情况,除了采用上述实施例之外,可以进一步在进行约束模板匹配时通过额外的设计来消除封闭区域。因此,在一些实施例中,可以将步骤312中的目标函数设计为:
objective:
其中,在原目标函数基础上增加了第二项和第三项,第二项为额外竖直优化目标,第三项为额外水平优化目标;i代表单元格编号,Ni表示单元格数量,j代表硬核编号或子硬核编号,Nj表示硬核编号或子硬核的总数量;wij代表(i,j)对的权重,xij表示(i,j)的匹配度;wx、wy为可调节权重,(iB,iT)表示任意沿第一方向相邻的单元格对,(iL,iR)表示任意沿第二方向相邻的单元格对,表示(iB,iT)单元格中填充的硬核之间的尺寸差:
表示(iL,iR)单元格中填充的硬核之间的尺寸差:
这里sj表示硬核或子硬核j的尺寸,上述绝对值约束转换为如下的混合整数线性规划方法约束:
这样,通过在MILP中增加额外的优化目标和约束条件,使得相邻单元格中的硬核尺寸相近,从而帮助减少封闭或不规则区域的出现,如图5C所示。
在步骤316,基于优化布局后的所述一组硬核,输出布局规划数据。由此得到的布局规划数据就是已经规整对齐的布局规划数据,可以较好地解决混合摆放后出现的问题。
在完成上述步骤314之后,在一些实施例中,若单元格中的硬核间距大于最小约束间距,则可以进一步减小单元格尺寸直到最小约束间距,以减小总面积。
因此,在一些实施例中,步骤314可以进一步包括:对优化布局后的所述一组硬核的间距进行调整以压缩所述约束模板的总面积;基于调整后的所述一组硬核,输出布局规划数据。
具体地,在一些实施例中,对优化布局后的所述一组硬核的间距进行调整以压缩所述约束模板的总面积,可以进一步包括以下步骤(以水平压缩为例进行说明):
确定优化目标:
objective:
其中,li表示第i列单元格与模板原点之间的距离;
基于线性规划算法设置约束:
li≥0
针对每个硬核n
其中,假设第n个硬核在模板中占据第r行以及第i列至第j列,其所占据的单元格的水平尺寸为其中,/>进一步由硬核n的尺寸/>以及它与左、右两边相邻硬核的最小间距约束/>和/>决定:
类似地,可以在竖直方向进行压缩。
如此,即完成了模板压缩,如图5D所示。
在完成一组硬核的处理后,可以从初始布局规划数据中再选定一组硬核,按照前述步骤进行处理。
然后,再整体移动每组对齐好的硬核组和其他组或者硬核按指定间距和方位完成拼接。
重复上述操作直到初始布局规划数据中所有的硬核完成规整和对齐。
最后输出布局规划结果。
从上述实施例可以看出,本申请实施例提供的芯片设计的布局规划方法,可以将混合摆放后的硬核进行规整对齐,使得后续的电源地布线更容易,节省绕线资源,并能够更容易地进行时序优化和绕线。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法300。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法300,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法300相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法300。对应于方法300各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法300,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种芯片设计的布局规划方法,包括:
读取所述芯片设计的初始布局规划数据;
确定所述初始布局规划数据中的待处理的一组硬核;
根据所述一组硬核的硬核尺寸,确定单元格尺寸;
确定约束模板的行列数;
根据所述行列数和所述单元格尺寸,生成所述约束模板;
将所述一组硬核匹配到所述约束模板的单元格中;
响应于确定匹配完成的所述一组硬核之间存在封闭区域或不规则区域,对匹配完成的所述一组硬核进行优化布局以消除所述封闭区域或所述不规则区域;
基于优化布局后的所述一组硬核,输出布局规划数据;
其中,将所述一组硬核匹配到所述约束模板的单元格中,包括:确定目标函数,所述目标函数是基于硬核与单元格的匹配度而构造的;基于所述目标函数,将所述一组硬核中的各硬核匹配到所述约束模板中的单元格中;
对匹配完成的所述一组硬核进行优化布局以消除所述封闭区域或所述不规则区域,包括:以所述单元格为单位,扫描并计算得到硬核的轮廓线单元格以及封闭区域单元格或不规则区域单元格;将与轮廓线单元格最近的封闭区域单元格用该轮廓线单元格进行填充。
2.如权利要求1所述的方法,其中,根据所述一组硬核的硬核尺寸,确定单元格尺寸,包括:
响应于确定所述一组硬核中各硬核的尺寸相同,根据所述硬核在第一方向和第二方向上的尺寸以及硬核间的约束间距,确定所述单元格尺寸。
3.如权利要求1所述的方法,其中,根据所述一组硬核的硬核尺寸,确定单元格尺寸,包括:
响应于确定所述一组硬核存在尺寸不同的至少两个硬核,采用近似最大公约数方法,根据各硬核在第一方向和第二方向上的尺寸,确定所述单元格尺寸。
4.如权利要求1所述的方法,其中,确定约束模板的行列数,包括:
接收用户指定的约束模板的行列数;或者
确定能够包围所述一组硬核的最小矩形,根据所述最小矩形的尺寸和所述单元格尺寸,确定约束模板的行列数。
5.如权利要求1所述的方法,其中,将所述一组硬核匹配到所述约束模板的单元格中,包括:
确定目标函数:
其中,i代表单元格编号,j代表硬核编号;wij代表(i,j)对的权重,xij表示(i,j)的匹配度;
基于线性规划算法和所述目标函数,将所述一组硬核中的各硬核匹配到所述约束模板中与其距离最近的单元格中。
6.如权利要求1所述的方法,其中,将所述一组硬核匹配到所述约束模板的单元格中,包括:
响应于确定所述一组硬核存在尺寸不同的至少两个硬核,将所述一组硬核中尺寸大于单元格尺寸的硬核,按照单元格尺寸切分为至少两个子硬核;
确定目标函数:
其中,i代表单元格编号,j代表硬核编号或子硬核编号;wij代表(i,j)对的权重,xij表示(i,j)的匹配度;
基于混合整数线性规划方法和所述目标函数,将所述一组硬核中的各硬核或子硬核匹配到所述约束模板中与其距离最近的单元格中。
7.如权利要求1所述的方法,其中,将所述一组硬核匹配到所述约束模板的单元格中,包括:
响应于确定所述一组硬核存在尺寸不同的至少两个硬核,将所述一组硬核中尺寸大于单元格尺寸的硬核,按照单元格尺寸切分为至少两个子硬核;
确定目标函数:
其中,i代表单元格编号,Ni表示单元格数量,j代表硬核编号或子硬核编号,Nj表示硬核编号或子硬核的总数量;wij代表(i,j)对的权重,xij表示(i,j)的匹配度;第二项为额外竖直优化目标,第三项为额外水平优化目标,wx、wy为可调节权重,(iB,iT)表示任意沿第一方向相邻的单元格对,(iL,iR)表示任意沿第二方向相邻的单元格对,表示(iB,iT)单元格中填充的硬核之间的尺寸差,/>表示(iL,iR)单元格中填充的硬核之间的尺寸差;
基于混合整数线性规划方法和所述目标函数,将所述一组硬核中的各硬核或子硬核匹配到所述约束模板中与其距离最近的单元格中。
8.如权利要求1所述的方法,其中,基于优化布局后的所述一组硬核,输出布局规划数据,进一步包括:
对优化布局后的所述一组硬核的间距进行调整以压缩所述约束模板的总面积;
基于调整后的所述一组硬核,输出布局规划数据。
9.如权利要求8所述的方法,其中,对优化布局后的所述一组硬核的间距进行调整以压缩在所述一组硬核的总面积,包括:
确定优化目标:
其中,li表示第i列单元格与模板原点之间的距离;
基于线性规划算法设置约束:
li≥0
其中,假设第n个硬核在模板中占据第r行以及第i列至第j列,其所占据的单元格的水平尺寸为其中,/>进一步由硬核n的尺寸/>以及它与左、右两边相邻硬核的最小间距约束/>和/>决定:
10.一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1-9任意一项所述的方法的指令。
11.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1-9中任一项所述的方法。
CN202211366329.0A 2022-10-31 2022-10-31 芯片设计的布局规划方法及相关设备 Active CN116151179B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211366329.0A CN116151179B (zh) 2022-10-31 2022-10-31 芯片设计的布局规划方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211366329.0A CN116151179B (zh) 2022-10-31 2022-10-31 芯片设计的布局规划方法及相关设备

Publications (2)

Publication Number Publication Date
CN116151179A CN116151179A (zh) 2023-05-23
CN116151179B true CN116151179B (zh) 2023-11-03

Family

ID=86355185

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211366329.0A Active CN116151179B (zh) 2022-10-31 2022-10-31 芯片设计的布局规划方法及相关设备

Country Status (1)

Country Link
CN (1) CN116151179B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117474300A (zh) * 2023-12-28 2024-01-30 无棣源通电子科技有限公司 一种pcb生产中压制工艺的线性调度方法
CN117688895B (zh) * 2024-02-04 2024-04-23 芯行纪科技有限公司 电路图生成方法、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959666A (zh) * 2017-05-17 2018-12-07 中国科学院微电子研究所 集成电路设计方法及装置、芯片版图分解和着色方法及装置
CN113569508A (zh) * 2021-09-18 2021-10-29 芯行纪科技有限公司 基于id进行数据索引与访问的数据库模型构建方法及设备
CN113792519A (zh) * 2021-11-18 2021-12-14 芯行纪科技有限公司 对电路进行布局规划的方法、电子设备及存储介质
CN114896937A (zh) * 2022-05-24 2022-08-12 广东工业大学 一种基于强化学习的集成电路布局优化方法
CN115114880A (zh) * 2022-06-17 2022-09-27 南通大学 一种加速的牛顿分裂迭代法应用于混合尺寸单元电路布局方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761818B2 (en) * 2007-07-25 2010-07-20 International Business Machines Corporation Obtaining a feasible integer solution in a hierarchical circuit layout optimization
US8726200B2 (en) * 2011-11-23 2014-05-13 Taiwan Semiconductor Manufacturing Co., Ltd. Recognition of template patterns with mask information
US9898567B2 (en) * 2014-02-28 2018-02-20 Synopsys, Inc. Automatic layout modification tool with non-uniform grids
US10083272B2 (en) * 2016-08-12 2018-09-25 International Business Machines Corporation Integrated circuit design layout optimizer based on process variation and failure mechanism
US11449658B2 (en) * 2019-11-12 2022-09-20 Board Of Regents, The University Of Texas System Methods of generating integrated circuit (IC) layout synthetic patterns and related computer program products
US20220262791A1 (en) * 2021-02-16 2022-08-18 Intel Corporation Integrated circuit structure with front side signal lines and backside power delivery

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959666A (zh) * 2017-05-17 2018-12-07 中国科学院微电子研究所 集成电路设计方法及装置、芯片版图分解和着色方法及装置
CN113569508A (zh) * 2021-09-18 2021-10-29 芯行纪科技有限公司 基于id进行数据索引与访问的数据库模型构建方法及设备
CN113792519A (zh) * 2021-11-18 2021-12-14 芯行纪科技有限公司 对电路进行布局规划的方法、电子设备及存储介质
CN114896937A (zh) * 2022-05-24 2022-08-12 广东工业大学 一种基于强化学习的集成电路布局优化方法
CN115114880A (zh) * 2022-06-17 2022-09-27 南通大学 一种加速的牛顿分裂迭代法应用于混合尺寸单元电路布局方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于混合摆放技术的布局规划;张杰;;中国集成电路(第Z3期);全文 *
基于约束的VLSI布图算法研究与实现;李耀辉;《信息科技》(第9期);全文 *

Also Published As

Publication number Publication date
CN116151179A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN116151179B (zh) 芯片设计的布局规划方法及相关设备
US11709987B2 (en) Method and system for generating layout design of integrated circuit
CN116911246B (zh) 芯片设计的布线规划方法及相关设备
US11574106B2 (en) Method, system, and storage medium of resource planning for designing semiconductor device
CN111597768B (zh) 用于构建版图图案集的方法、设备和计算机可读存储介质
Farooq et al. Pre-silicon verification using multi-FPGA platforms: A review
WO2020214271A1 (en) Ic routing for silicon circuits with smaller geometries
US20220405455A1 (en) Methods and systems for congestion prediction in logic synthesis using graph neural networks
CN116362190A (zh) 芯片设计的交互布局规划方法及相关设备
CN116822452A (zh) 芯片布局优化方法及相关设备
CN116227407B (zh) 形成物理版图的模块边界的方法及相关设备
US7076754B2 (en) Functional block design method and apparatus
CN116306486A (zh) 芯片设计的设计规则检查方法及相关设备
CN116090396B (zh) 显示芯片设计的数据流的方法及相关设备
CN113792509B (zh) 一种复位信号平衡方法和装置
US20090241082A1 (en) Method and System for Generating an Accurate Physical Realization for an Integrated Circuit Having Incomplete Physical Constraints
CN108875116B (zh) 胞元放置的方法、计算机系统及非暂时性计算机可读媒体
CN117688895B (zh) 电路图生成方法、计算机设备及存储介质
US20060136851A1 (en) Method for the generation of static noise check data
CN117521586B (zh) 芯片设计的布局规划方法及相关设备
CN116956807B (zh) 芯片设计的全局布线拥塞图确定方法及相关设备
US11709986B2 (en) Boundary cell
US20230315968A1 (en) Boundary cell
US20220114321A1 (en) Systems And Methods For Generating Placements For Circuit Designs Using Pyramidal Flows
JP2006309748A (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