CN113515915B - 插入填充单元的方法、装置、设备以及存储介质 - Google Patents

插入填充单元的方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN113515915B
CN113515915B CN202110442992.3A CN202110442992A CN113515915B CN 113515915 B CN113515915 B CN 113515915B CN 202110442992 A CN202110442992 A CN 202110442992A CN 113515915 B CN113515915 B CN 113515915B
Authority
CN
China
Prior art keywords
area
sub
cells
filler
region
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
CN202110442992.3A
Other languages
English (en)
Other versions
CN113515915A (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.)
Chengdu Haiguang Integrated Circuit Design Co Ltd
Original Assignee
Chengdu Haiguang Integrated Circuit Design 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 Chengdu Haiguang Integrated Circuit Design Co Ltd filed Critical Chengdu Haiguang Integrated Circuit Design Co Ltd
Priority to CN202110442992.3A priority Critical patent/CN113515915B/zh
Publication of CN113515915A publication Critical patent/CN113515915A/zh
Application granted granted Critical
Publication of CN113515915B publication Critical patent/CN113515915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • 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

Landscapes

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

Abstract

一种用于在芯片设计中插入填充单元的方法、装置、设备以及存储介质。用于在芯片设计中插入填充单元的方法包括:把芯片设计的对象区域划分为多个子区域,对象区域包括多个逻辑单元;计算多个子区域每个中的逻辑单元的总面积;对于多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元的总面积的比值,确定向所选择的子区域插入填充单元的数量。该方法可以实现插入填充单元的密度的精细控制,检测区域逻辑单元密度,缩短芯片的开发周期。

Description

插入填充单元的方法、装置、设备以及存储介质
技术领域
本公开的实施例涉及一种用于在芯片设计中插入填充单元的方法、装置、设备以及存储介质。
背景技术
随着集成电路(例如系统级芯片(SOC,system on chip))设计的复杂度和规模的提升,集成电路设计验证的复杂度、重要性以及开发周期也在不断增加。在当前的芯片后端设计(例如物理实现)流程中,对RTL(Register Transfer Level,寄存器传输级)设计进行物理设计,包括逻辑综合、布局布线等,以得到最终的门级网表。
发明内容
本公开的实施例提供一种用于在芯片设计中插入填充单元的方法、装置、设备以及存储介质。该用于在芯片设计中插入填充单元的方法可以实现插入填充单元的密度的精细控制,检测区域逻辑单元密度,缩短芯片的开发周期。
本公开至少一个实施例提供了一种用于在芯片设计中插入填充单元的方法,该方法包括:把所述芯片设计的对象区域划分为多个子区域,其中,所述对象区域包括多个逻辑单元;计算所述多个子区域每个中的逻辑单元的总面积;以及对于所述多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,把所述芯片设计的对象区域划分为所述多个子区域包括:把所述对象区域在第一方向和第二方向的其中至少之一上划分为多份,其中,所述第一方向和所述第二方向不同,在所述第一方向上的份数和所述第二方向上的份数的乘积为所划分的所述多个子区域的数量。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,把所述对象区域在第一方向和第二方向的其中至少之一上划分为多份,包括:基于所述对象区域建立二维坐标系并在所述对象区域中选择所述二维坐标系的原点,其中,所述原点的坐标为(X_Ori,Y_Ori);在所述第一方向设置第一步进长度StepX,在所述第二方向设置第二步进长度StepY;以及基于所述原点的坐标(X_Ori,Y_Ori),设置分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY),其中,所述分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY)用于把所述对象区域分别在所述第一方向和所述第二方向上进行划分,所述对象区域在所述第一方向上划分为n+1份或n份,所述对象区域在所述第二方向上划分为m+1或m份。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,所述第一步进长度StepX和所述第二步进长度StepY基于所述芯片设计的多个逻辑单元的总面积确定。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,对于所述多个子区域中选择的任一子区域,基于所述所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量,包括:当所述多个子区域中所选择的任一子区域的逻辑单元的总面积大于等于面积阈值时,确定向所述所选择的子区域插入所述填充单元。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,对于所述多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量,还包括:对于所述多个子区域中选择的任一子区域,基于所述所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定所述所选择的子区域中待插入填充单元的面积;以及基于所述子区域中待插入填充单元的面积,确定向所述选择的子区域中插入所述填充单元的数量。
例如,本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法还包括:利用自动化工具向所述所选择的子区域中插入对应数量的所述填充单元。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,所述逻辑单元包括组合逻辑单元和时序逻辑单元,计算所述多个子区域每个中的所述逻辑单元的总面积,包括:分别计算所述多个子区域每个中的所述组合逻辑单元的面积和所述时序逻辑单元的面积。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,所述填充单元包括第一填充单元和第二填充单元,所述第一填充单元用于实现为所述组合逻辑单元,所述第二填充单元用于实现为所述时序逻辑单元,确定所述所选择的子区域中待插入填充单元的面积,包括:基于所述多个子区域每个中的所述组合逻辑单元的面积和所述时序逻辑单元的面积,分别计算所述所选择的子区域中待插入第一填充单元的面积和待插入第二填充单元的面积,其中,所述所选择的子区域中待插入所述第一填充单元的面积根据以下公式计算:area(combo_psc)=∑combo_area*Coeff_combo,area(combo_psc)表示所述所选择的子区域中待插入所述第一填充单元的面积,∑combo_area表示所述所选择的子区域中所述组合逻辑单元的面积,所述所选择的子区域中所述待插入第二填充单元的面积根据以下公式计算:area(seq_psc)=∑seqcell_area*Coeff_seq,area(seq_psc)表示所述所选择的子区域中所述待插入第二填充单元的面积,∑seqcell_area表示所述所选择的子区域中所述时序逻辑单元的面积,Coeff_combo和Coeff_seq根据所述所选择的子区域中所述待插入填充单元的面积与所述所选择的子区域中所述逻辑单元的总面积的比值确定。
例如,在本公开至少一实施例提供的用于在芯片设计中插入填充单元的方法中,所述填充单元包括可编程的备用单元。
本公开至少一实施例还提供的一种用于在芯片设计中插入填充单元的装置,该装置包括:区域划分模块、面积计算模块以及填充单元数量确定模块。区域划分模块配置为把所述芯片设计的对象区域划分为多个子区域,其中,所述对象区域包括多个逻辑单元;面积计算模块配置为计算所述多个子区域每个中的逻辑单元的总面积;填充单元数量确定模块配置为对于所述多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量。
本公开至少一个实施例还提供了一种用于在芯片设计中插入填充单元的设备,所述设备包括存储器和处理器,其中所述存储器中存有可执行代码,当利用所述处理器执行所述可执行代码时,使得所述处理器执行如前任一所述的用于在芯片设计中插入填充单元的方法。
本公开至少一个实施例还提供了一种计算机可读存储介质,其上存储有可执行代码,所述可执行代码在被处理器执行时,使得所述处理器执行如前任一所述的用于在芯片设计中插入填充单元的方法。
本公开至少一实施例提供的一种用于在芯片设计中插入填充单元的方法、装置、设备以及存储介质,该用于在芯片设计中插入填充单元的方法将芯片设计的对象区域划分为多个子区域,对于多个子区域中选择的任一子区域,以子区域中的逻辑单元的面积为基准,确定向所选择的子区域插入填充单元的数量,可以实现插入填充单元的密度的精细控制,检测区域逻辑单元密度。例如,在逻辑单元密度较低的子区域,插入的填充单元的数量也较少,可以降低逻辑单元密度较低的子区域的电容损失;在逻辑单元密度较高的子区域,插入的填充单元的数量也较多,降低逻辑单元密度较高的子区域的填充单元不够用的风险,进而缩短芯片的开发周期。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种用于芯片设计的逻辑单元布局的示意图;
图2为本公开至少一实施例提供的一种用于在芯片设计中插入填充单元的方法的流程示意图;
图3为本公开至少一实施例提供的一种芯片设计的对象区域的示意图;
图4为本公开至少另一实施例提供的一种用于在芯片设计中插入填充单元的方法的流程示意图;
图5为本公开至少再一实施例提供的一种用于在芯片设计中插入填充单元的方法的流程示意图;
图6为本公开至少一实施例提供的一种用于在芯片设计中插入填充单元的装置的示意图;
图7为本公开至少一实施例提供的图6所示的区域划分模块的示意图;
图8为本公开至少一实施例提供的图6所示的填充单元数量确定模块的示意图;
图9为本公开至少一实施例提供的一种用于在芯片设计中插入填充单元的设备的示意图;以及
图10为本公开至少一实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
在当前的芯片后端设计流程中,(例如网表中)进行逻辑单元(例如标准单元库中的标准逻辑单元)的布局或插入设计时还需要插入PSC(Programmable Spare Cell,可编程的备用单元)单元。PSC单元是可在ECO(Engineering Change Order)阶段替换为逻辑单元的备用单元(spare cell)。ECO阶段可以不进行重新PR(Place&Route)而达到功能或时序改变的目的。例如,PSC单元用作芯片潜在的MECO(Metal ECO,在ECO阶段,只改变芯片设计的金属层,不涉及到例如基层(base layer)的变更))备用单元。借助于现在Metal ECO工具,利用插入的备用单元等可以对多重资源进行ECO综合,例如,将备用单元复用为其它出现错误的逻辑单元,以生成最终网表。在上述过程中,不需要再去更改RTL设计,可以缩短芯片的开发周期。
目前,PSC单元插入芯片设计(例如网表)流程中是以未被逻辑单元占用的总面积为基准,在指定PSC单元总体比例的情况下,对逻辑单元密度不一的区域处理时也是根据总体给定的比例进行PSC单元的添加。
图1为一种用于芯片设计的逻辑单元布局的示意图。
如图1所示,现在基于电子设计自动化工具(EDA)向芯片设计的逻辑单元所在区域添加PSC单元的方式,以未被逻辑单元占用的面积为基准。以图1中示意的芯片设计的逻辑单元03(图中灰色填充的框)的布局为例,根据在逻辑单元03的所在区域中所有逻辑单元的总面积和指定PSC单元总体比例(也即是需要插入PSC单元与逻辑单元的比例)确定需要插入PSC单元的面积。基于需要插入PSC单元的面积可以获得需要插入PSC单元的数量,再将PSC单元插入到逻辑单元03所在的区域。
继续如图1所示,区域01与区域02相比,存在较多的逻辑单元03。即,区域01中逻辑单元03的密度小且未被逻辑单元03占用的区域04的面积大,而区域02中逻辑单元03的密度大且未被逻辑单元03占用的区域04的面积小。当上述确定的需要插入PSC单元的数量插入到区域01和区域02时,由于区域01中区域04的面积大,所以向区域01中插入的PSC单元的数量较多。当需要插入PSC单元的数量插入到区域01和区域02之后,区域01存在较多PSC单元,1区域02的PSC单元反而较少。
一方面,在区域02需求将PSC单元实现为其它逻辑单元(或者说存在MECO处理需求)时,区域02插入的PSC单元少,可能会存在找不到所需求的PSC单元的风险。在区域02不存在所需PSC单元或所需PSC单元的数量不够时,则需要从其他区域寻找可替代单元,增加了设计迭代周期。另一方面,在区域01因插入的PSC单元的数量较多,PSC单元可能会占据其它后续插入单元的空间,例如去耦电容(Decoupling-Capacitance)单元在一般在布线(routing)结束后插入,去耦电容单元空间的部分被PSC单元占用,从而插入的去耦电容单元的数量较少,可能会造成芯片设计的总电容的损失。
本公开至少一实施例提供一种用于在芯片设计中插入填充单元的方法,包括:把芯片设计的对象区域划分为多个子区域,对象区域包括多个逻辑单元;计算多个子区域每个中的逻辑单元的总面积;以及对于多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元的总面积的比值,确定向所选择的子区域插入填充单元的数量。
本公开上述实施例提供的用于在芯片设计中插入填充单元的方法,通过将对象区域划分为多个子区域,对于多个子区域中选择的任一子区域,以子区域中的逻辑单元的面积为基准,确定向所选择的子区域插入填充单元的数量,可以实现插入填充单元的密度的精细控制,检测区域逻辑单元密度。例如,在逻辑单元密度较低的子区域,插入的填充单元的数量也较少,可以降低逻辑单元密度较低的子区域的电容损失;在逻辑单元密度较高的子区域,插入的填充单元的数量也较多,降低逻辑单元密度较高的子区域的填充单元不够用的风险,进而缩短芯片的开发周期。
下面结合附图对本公开的实施例及其示例进行详细说明。
图2为本公开至少一实施例提供的一种用于在芯片设计中插入填充单元的方法的流程示意图。图2所示的本公开实施例提供的用于在芯片设计中插入填充单元的方法包括步骤S101-步骤S103。
步骤S101:把芯片设计的对象区域划分为多个子区域,其中,对象区域包括多个逻辑单元。
图3为本公开至少一实施例提供的一种芯片设计的对象区域的示意图。
例如,在一些实施例中,如图3所示,以芯片设计的对象区域100为例。对象区域100包括多个逻辑单元210(图中灰色填充的矩形框和网格填充的矩形框)。需要说明的是,在本公开实施例中,图3中所示芯片设计的对象区域100为示例性说明,并不代表实际芯片设计的区域结构。例如,对象区域100还可以包括其他的布线结构等,图3中不再示出,本公开实施例不以此为限。
需要说明的是,在本公开实施例中,逻辑单元210例如可以为芯片设计所用的标准单元库中的标准逻辑单元。
例如,在一些实施例中,把芯片设计的对象区域划分为多个子区域,包括:把对象区域在第一方向和第二方向的其中至少之一上划分为多份。例如如图3所示,第一方向和第二方向不同(例如分别为X轴方向和Y轴方向),第一方向和第二方向为对象区域100的两个延伸方向。例如,第一方向为图中的横向,第二方向为图中的纵向。例如,沿第二方向延伸的多条第一分区线L1把对象区域100在第一方向上划分为多份(图3中示出横向分为四份),沿第一方向延伸的第二分区线L2把对象区域100在第二方向上划分为多份(图3中示出纵向分为两份)在第一方向上的份数和第二方向上的份数的乘积为所划分的多个子区域的数量。例如,图3中对象区域100被划分为8份(例如8个更小的矩形区域),例如分别为图中的子区域110、子区域111、子区域112、子区域113、子区域114、子区域115、子区域116和子区域117。例如,对象区域100的划分可以根据芯片设计的工艺需要、逻辑单元210的面积等因素来确定。对象区域100的精细划分有利于填充单元在对象区域100的密度控制,以更加精准的满足对象区域对填充单元的需求。
例如,对于对象区域100的划分,不限于是图3中所示的矩形,也可以划分为多个平行四边形或菱形等,本公开实施例不以此为限。
例如,对于对象区域100的划分也可以只在第一方向上划分或只在第二方向上划分,本公开实施例不以此为限。
需要说明的是,图3中的对对象区域100进行划分的第一分区线L1和第二分区线L2并不将对象区域100进行物理分割,而是对象区域100在插入填充单元时,分别向图中的子区域110、子区域111、子区域112、子区域113、子区域114、子区域115、子区域116和子区域117中进行插入填充单元。也就是说,在对象区域100中进行填充单元插入时,第一分区线L1和第二分区线L2实际是不存在的。
例如,在一些实施例中,如图3所示,把对象区域100在第一方向和第二方向的其中至少之一上划分为多份的实施例方式中,基于对象区域100建立二维坐标系。二维坐标系包括第一坐标轴X和第二坐标轴Y。例如,在对象区域100中选择二维坐标系的原点O1,原点O1作为对象区域100进行划分的起点。例如,原点O1与第一坐标轴X和第二坐标轴Y的交叉点可以不重合。原点O1的坐标可以记为(X_Ori,Y_Ori)。X_Ori表示原点在第一坐标轴X方向上的坐标,X_Ori表示原点在第二坐标轴Y方向上的坐标。例如,在第一方向设置第一步进长度StepX,在第二方向设置第二步进长度StepY。第一步进长度StepX为在第一坐标轴X方向上对象区域100进行划分的跨度,第二步进长度StepY为在第二标轴Y方向上对象区域100进行划分的跨度。基于原点O1的坐标(X_Ori,Y_Ori),设置分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY)。分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY)用于把对象区域100分别在第一方向(即第一坐标轴X方向)和第二方向上进行划分(即第二坐标轴Y方向)。即,从原点O1开始,在第一坐标轴X方向上,每增加一个第一步进长度StepX的尺寸作一条第一分区线L1;在第二坐标轴Y方向上,每增加一个第一步进长度StepY的尺寸作一条分区线第二分区线L2。例如,图中点On1的坐标为(X_Ori+1*StepX,Y_Ori),点On2的坐标为(X_Ori+2*StepX,Y_Ori),点On3的坐标为(X_Ori+3*StepX,Y_Ori),点Om1的坐标为(X_Ori,Y_Ori+1*StepY)。例如,对象区域100在第一方向上划分为n+1份或n份,对象区域在第二方向上划分为m+1或m份。例如,子区域110在第一坐标轴X方向上的长度101为步进长度StepX,在第二坐标轴Y方向上的长度102为步进宽度StepY。
例如,图3所示的对象区域100中,n为从1至3的整数,对象区域100在第一方向共分为4份,而在第一方向划分第4份时不足一个第一步进长度StepX。m为从1至2的整数,对象区域100在第二方向划分为2份。图3中子区域110、子区域111、子区域112、子区域114、子区域115和子区域116的第一方向上的长度相同。例如,n和m的取值还受限于对象区域100的总面积。例如,对象区域100的总面积越大,在第一步进长度StepX和第二步进长度StepY的取值相同的情况下,n和m的取值越大。
例如,在一些实施例中,第一步进长度StepX和第二步进长度StepY基于芯片设计的对象区域100中逻辑单元210的总面积确定。例如,在图3中,第一步进长度StepX和第二步进长度StepY可以为,例如约100微米。例如,对象区域100中逻辑单元210的总面积越大,即逻辑单元210的密度越高,则可以将第一步进长度StepX和第二步进长度StepY的值取得较小,本公开实施例不以此为限。
需要说明的是,“约”字表示可以在其取值,例如在±10%范围内波动,又例如在±5%范围内波动。
步骤S102:计算多个子区域每个中的逻辑单元的总面积。
例如,在一些实施例中,如图3所示,计算对象区域100中每个子区域中的逻辑单元的总面积通过公式:∑stdcell_area计算。其中,stdcell表示逻辑单元。
步骤S103:对于多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元的总面积的比值,确定向所选择的子区域插入填充单元的数量。
例如,在一些实施例中,填充单元包括可编程的备用单元(PSC,ProgrammableSpare Cell)。
图4为本公开至少另一实施例提供的一种用于在芯片设计中插入填充单元的方法的流程示意图。图4所示的方法包括步骤S201至步骤S204。
例如,在一些实施例中,步骤S103进一步包括步骤S201至步骤S203。
步骤S201:当多个子区域中所选择的任一子区域的逻辑单元的总面积大于等于面积阈值时,确定向所选择的子区域插入填充单元。
例如,如图3所示,在对象区域100中,例如选择子区域110。通过步骤S102的方式计算子区域110中的逻辑单元210的总面积,将该总面积与面积阈值进行比较。例如,面积阈值可以预先设定,例如,面积阈值的设定可以基于所划分的子区域的面积或子区域中的逻辑单元的面积阈值等。当子区域110中的逻辑单元210的总面积小于面积阈值时,子区域110的逻辑单元210的总面积比较小,逻辑单元210的数量较少,不容易出现错误(bug),对于填充单元的需求较小,可以考虑不在子区域110中插入填充单元。而当子区域110中的逻辑单元210的总面积大于面积阈值时,子区域110的逻辑单元210的总面积比较大,逻辑单元210的数量较多,出现错误(bug)的概率也大,对于填充单元的需求较大,可以考虑在子区域110中插入填充单元。由此,可以在保证每个子区域的电容损失较小的同时,降低填充单元不够用的风险,进而缩短芯片的开发周期。
步骤S202:对于多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元的总面积的比值,确定所选择的子区域中待插入填充单元的面积。
例如,在一些实施例中,如图3所示,对于对象区域100中的多个子区域可以选择任一子区域,例如以子区域110为例。基于所选择的子区域110在步骤S102中计算的子区域110中逻辑单元210的总面积,以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元210(例如对象区域100的所有逻辑单元210)的总面积的比值,确定向所选择的子区域110插入填充单元的数量。例如,芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元210(例如对象区域100的所有逻辑单元210)的总面积的比值可以根据芯片设计过程中对于填充单元的需求量确定。在本公开实施例中,将对象区域100中待插入填充单元的面积与逻辑单元210的面积的比值,用于计算每个子区域中插入填充单元的面积。
步骤S203:基于子区域中待插入填充单元的面积,确定向选择的子区域中插入填充单元的数量。
例如,如图3所示,在对象区域100的每个子区域的用于插入填充单元的面积确定之后,根据待插入填充单元的每个的面积,可以确定所选择的子区域中插入填充单元的数量。
步骤S204:利用自动化工具(例如EDA工具)向所选择的子区域中插入对应数量的填充单元。例如,向所选择的子区域中插入的填充单元的数量确定之后,基于该填充单元的数量可以利用自动化工具的插入填充单元的功能,向所选的子区域中插入对应数量的填充单元。
需要说明的是,对象区域100中的多个子区域可以分别插入填充单元,也可以同时向多个子区域插入填充单元,本公开实施例不以此为限。
图5为本公开至少再一实施例提供的一种用于在芯片设计中插入填充单元的方法的流程示意图。图5所示的方法包括步骤S301和步骤S302。
步骤S301:分别计算多个子区域每个中的组合逻辑单元的面积和时序逻辑单元的面积。
例如,在一些实施例中,如图3所示,在对象区域100中,逻辑单元210包括组合逻辑单元211和时序逻辑单元212。每个子区域中还可以对逻辑单元211的面积和时序逻辑单元212的面积分别计算。即,计算出不同种类的逻辑单元对应的面积,以有利于更加精细、更有针对性的精进行填充单元的插入。
步骤S302:基于多个子区域每个中的组合逻辑单元的面积和时序逻辑单元的面积,分别计算待插入第一填充单元的面积和待插入第二填充单元的面积。
例如,在一些实施例中,填充单元包括第一填充单元和第二填充单元,第一填充单元用于实现为组合逻辑单元,第二填充单元用于实现为时序逻辑单元。如图3所示,当对象区域100中,例如子区域112中的组合逻辑单元211的任一出现错误时,可以用子区域112中共插入的第一填充单元(编程等方式)实现该出现错误的组合逻辑单元211的功能,以将该出现错误的组合逻辑单元211替换为插入的第一填充单元。同样的,例如,子区域112中的时序逻辑单元211的任一出现错误时,第二填充单元也可以替换该出现错误的时序逻辑单元211。从而不需要更改RTL设计,缩短芯片开发周期。
例如,在一些实施例中,所选择的子区域中待插入第一填充单元的面积根据以下公式(1)计算:
area(combo_psc)=∑combo_area*Coeff_combo    (1)
在上述公式(1)中,area(combo_psc)表示所选择的子区域中待插入第一填充单元的面积,∑combo_area表示所选择的子区域中组合逻辑单元的面积。
所选择的子区域中待插入第二填充单元的面积根据以下公式(2)计算:
area(seq_psc)=∑seqcell_area*Coeff_seq         (2)
在上述公式(2)中,area(seq_psc)表示所选择的子区域中待插入第二填充单元的面积,∑seqcell_area表示所选择的子区域中时序逻辑单元的面积。
例如,Coeff_combo和Coeff_seq根据所选择的子区域中待插入填充单元的面积与所选择的子区域中逻辑单元的总面积的比值确定。由此,可以确定所选择的子区域中,待插入第一填充单元的面积和待插入第二填充单元的面积。
基于第一填充单元每个的面积,可以确定所选择的子区域中待插入第一填充单元的数量。基于第二填充单元每个的面积,可以确定所选择的子区域中待插入第二填充单元的数量。基于所选择的子区域中待插入第一填充单元和第二填充单元的数量,例如自动化工具向所选择的子区域中插入对应数量的第一填充单元和第二填充单元。由此,可以保证在不同种类的逻辑单元出现错误时,可以较为准确地找对对应的备用单元。
例如,本公开至少一实施例还提供一种用于在芯片设计中插入填充单元的装置。图6为本公开至少一实施例提供的一种用于在芯片设计中插入填充单元的装置的示意图。
例如,在一些实施例中,用于在芯片设计中插入填充单元的装置300包括区域划分模块310、面积计算模块320以及填充单元数量确定模块330。
例如,区域划分模块310配置为把芯片设计的对象区域划分为多个子区域,其中,对象区域包括多个逻辑单元。例如,如图3所示,沿第二方向延伸的多条第一分区线L1和沿第一方向延伸的第二分区线L2对象区域100在第一方向上划分为n+1份或n份,对象区域100在第二方向上划分为m+1或m份,以将对象区域100划分为多个子区域。
例如,面积计算模块320配置为计算多个子区域每个中的逻辑单元的总面积。如图3所示,计算对象区域100中每个子区域中的逻辑单元的总面积通过公式:∑stdcell_area计算。其中,stdcell表示逻辑单元。
例如,填充单元数量确定模块330配置为对于多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元的总面积的比值,确定向所选择的子区域插入填充单元的数量。例如,当多个子区域中所选择的任一子区域的逻辑单元的总面积大于等于面积阈值时,确定向所选择的子区域插入填充单元。对于多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元的总面积的比值,确定所选择的子区域中待插入填充单元的面积。基于子区域中待插入填充单元的面积,确定向选择的子区域中插入填充单元的数量。
上述实施例提供的用于在芯片设计中插入填充单元的装置,可以实现插入填充单元的动态密度控制,自动检测区域逻辑密度。例如,在逻辑单元密度较低的子区域,插入的填充单元的数量也较少,可以降低电容损失,在逻辑密度较高的子区域,插入的填充单元的数量也较多,降低填充单元不够用的风险,进而缩短芯片的开发周期。
上述本公开实施例中,例如,区域划分模块310、面积计算模块320以及填充单元数量确定模块330的其中任一可以使用软件、固件或硬件的方式或这些方式的任何组合实现,本公开对此不作限制。
例如,在一些实施例中,区域划分模块310还配置为把对象区域在第一方向和第二方向的其中至少之一上划分为多份。如图3所示,第一方向和第二方向不同(例如分别为X轴方向和Y轴方向),第一方向和第二方向为对象区域100的两个延伸方向。例如,第一方向为图中的横向,第二方向为图中的纵向。例如,沿第二方向延伸的多条第一分区线L1把对象区域100在第一方向上划分为多份(图3中示出横向分为四份),沿第一方向延伸的第二分区线L2把对象区域100在第二方向上划分为多份(图3中示出纵向分为两份)在第一方向上的份数和第二方向上的份数的乘积为所划分的多个子区域的数量。
图7为本公开至少一实施例提供的图6所示的区域划分模块的示意图。
例如,在一些实施例中,如图7所示,区域划分模块310包括坐标系建立子模块311、步长设置子模块312以及分区坐标设置子模块313。
例如,坐标系建立子模块311配置为基于对象区域建立二维坐标系并在对象区域中选择二维坐标系的原点,其中,原点的坐标为(X_Ori,Y_Ori)。如图3所示,在对象区域100中选择二维坐标系的原点O1,原点O1作为对象区域100进行划分的起点。原点O1的坐标可以记为(X_Ori,Y_Ori)。步长设置子模块312配置为在第一方向设置第一步进长度StepX,在第二方向设置第二步进长度StepY。第一步进长度StepX为在第一坐标轴X方向上对象区域100进行划分的跨度,第二步进长度StepY为在第二标轴Y方向上对象区域100进行划分的跨度。坐标设置子模块313配置为基于原点的坐标(X_Ori,Y_Ori),设置分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY),其中,分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY)用于把对象区域分别在第一方向和第二方向上进行划分,对象区域在第一方向上划分为n+1份或n份,对象区域在第二方向上划分为m+1或m份。如图3所示,基于原点O1的坐标(X_Ori,Y_Ori),设置分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY)。分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY)用于把对象区域100分别在第一方向(即第一坐标轴X方向)和第二方向上进行划分(即第二坐标轴Y方向)。例如,子区域110在第一坐标轴X方向上的长度101为步进长度StepX,在第二坐标轴Y方向上的长度102为步进宽度StepY。
例如,在一些实施例中,第一步进长度StepX和第二步进长度StepY基于芯片设计的多个逻辑单元的总面积确定。例如,在图3中,第一步进长度StepX和第二步进长度StepY可以为,例如约100微米。例如,对象区域100中逻辑单元210的总面积越大,即逻辑单元210的密度越高,则可以将第一步进长度StepX和第二步进长度StepY的值取得较小,本公开实施例不以此为限。
图8为本公开至少一实施例提供的图6所示的填充单元数量确定模块的示意图。
例如,在一些实施例中,如图8所示,填充单元数量确定模块330包括确定插入填充单元子模块331、待插入填充单元面积确定子模块332、以及填充单元插入子模块333。例如,确定插入填充单元子模块331配置为当多个子区域中所选择的任一子区域的逻辑单元的总面积大于等于面积阈值时,确定向所选择的子区域插入填充单元。例如,如图3所示,在对象区域100中,例如选择子区域110。通过步骤S102的方式计算子区域110中的逻辑单元210的总面积,将该总面积与面积阈值进行比较。例如,面积阈值可以预先设定,例如,面积阈值的设定可以基于所划分的子区域的面积或子区域中的逻辑单元的面积阈值等。当子区域110中的逻辑单元210的总面积小于面积阈值时,子区域110的逻辑单元210的总面积比较小,逻辑单元210的数量较少,不容易出现错误(bug),对于填充单元的需求较小,可以考虑不在子区域110中插入填充单元。而当子区域110中的逻辑单元210的总面积大于面积阈值时,子区域110的逻辑单元210的总面积比较大,逻辑单元210的数量较多,出现错误(bug)的概率也大,对于填充单元的需求较大,可以考虑在子区域110中插入填充单元。由此,可以在保证每个子区域的电容损失较小的同时,降低填充单元不够用的风险,进而缩短芯片的开发周期。
例如,待插入填充单元面积确定子模块332配置为对于多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元的总面积的比值,确定所选择的子区域中待插入填充单元的面积。例如,在一些实施例中,如图3所示,对于对象区域100中的多个子区域可以选择任一子区域,例如以子区域110为例。基于所选择的子区域110在步骤S102中计算的子区域110中逻辑单元210的总面积,以及基于芯片设计的待插入填充单元的面积与芯片设计的多个逻辑单元210(例如对象区域100的所有逻辑单元210)的总面积的比值,确定向所选择的子区域110插入填充单元的数量。
例如,填充单元插入子模块333配置为基于子区域中待插入填充单元的面积,确定向选择的子区域中插入填充单元的数量。例如,如图3所示,在对象区域100的每个子区域的用于插入填充单元的面积确定之后,根据待插入填充单元的每个的面积,可以确定所选择的子区域中插入填充单元的数量。
例如,在一些实施例中,用于在芯片设计中插入填充单元的装置还配置为利用自动化工具向所选择的子区域中插入对应数量的填充单元。例如,向所选择的子区域中插入的填充单元的数量确定之后,基于该填充单元的数量可以利用自动化工具的插入填充单元的功能,向所选的子区域中插入对应数量的填充单元。
例如,在一些实施例中,面积计算模块320还配置为分别计算多个子区域每个中的组合逻辑单元的面积和时序逻辑单元的面积。例如,在一些实施例中,如图3所示,在对象区域100中,逻辑单元210包括组合逻辑单元211和时序逻辑单元212。每个子区域中还可以对逻辑单元211的面积和时序逻辑单元212的面积分别计算。即,计算出不同种类的逻辑单元对应的面积,以有利于更加精细、更有针对性的精进行填充单元的插入。
例如,在一些实施例中,待插入填充单元面积确定子模块332还配置为基于多个子区域每个中的组合逻辑单元的面积和时序逻辑单元的面积,分别计算所选择的子区域中待插入第一填充单元的面积和待插入第二填充单元的面积。如图3所示,当对象区域100中,例如子区域112中的组合逻辑单元211的任一出现错误时,可以用子区域112中共插入的第一填充单元(编程等方式)实现该出现错误的组合逻辑单元211的功能,以将该出现错误的组合逻辑单元211替换为插入的第一填充单元。同样的,例如,子区域112中的时序逻辑单元211的任一出现错误时,第二填充单元也可以替换该出现错误的时序逻辑单元211。从而不需要更改RTL设计,缩短芯片开发周期。
图9为本公开至少一实施例提供的一种用于在芯片设计中插入填充单元的设备的示意图。
图9所示的用于在芯片设计中插入填充单元的设备400例如适于用来实施本公开实施例提供的用于在芯片设计中插入填充单元的方法。用于在芯片设计中插入填充单元的设备400可以是个人电脑、笔记本电脑、平板电脑、移动电话等终端设备也可以是工作站、服务器、云服务等。需要注意的是,图9示出的用于在芯片设计中插入填充单元的设备400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图9所示,用于在芯片设计中插入填充单元的设备400可以包括处理装置(例如中央处理器、图形处理器等)410,其可以根据存储在只读存储器(ROM)420中的程序或者从存储装置480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM 430中,还存储有用于在芯片设计中插入填充单元的设备400操作所需的各种程序和数据。处理装置410、ROM 420以及RAM 430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
通常,以下装置可以连接至I/O接口450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置470;包括例如磁带、硬盘等的存储装置480;以及通信装置490。通信装置490可以允许用于在芯片设计中插入填充单元的设备400与其他电子设备进行无线或有线通信以交换数据。虽然图9示出了包括各种装置的用于在芯片设计中插入填充单元的设备400,但应理解的是,并不要求实施或具备所有示出的装置,用于在芯片设计中插入填充单元的设备400可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述用于在芯片设计中插入填充单元的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述用于在芯片设计中插入填充单元的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置490从网络上被下载和安装,或者从存储装置480安装,或者从ROM 420安装。在该计算机程序被处理装置410执行时,可以执行本公开实施例提供的用于在芯片设计中插入填充单元的方法中限定的功能。
本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机程序可执行代码(例如计算机可执行指令),当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的用于在芯片设计中插入填充单元的方法;或者,当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的用于在芯片设计中插入填充单元的方法。
图10为本公开至少一实施例提供的一种存储介质的示意图。如图10所示,存储介质500非暂时性地存储有计算机程序可执行代码501。例如,当计算机程序可执行代码501由计算机执行时可以执行根据上文所述的用于在芯片设计中插入填充单元的方法中的一个或多个步骤。
例如,该存储介质500可以应用于上述用于在芯片设计中插入填充单元的设备400中。例如,存储介质500可以为图10所示的用于在芯片设计中插入填充单元的设备400中的存储器420。例如,关于存储介质500的相关说明可以参考图10所示的用于在芯片设计中插入填充单元的设备400中的存储器420的相应描述,此处不再赘述。
除了上述描述之外,有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种用于在芯片设计中插入填充单元的方法,包括:
把所述芯片设计的对象区域划分为多个子区域,其中,所述对象区域包括多个逻辑单元;
计算所述多个子区域每个中的逻辑单元的总面积;以及
对于所述多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量。
2.根据权利要求1所述的方法,其中,把所述芯片设计的对象区域划分为所述多个子区域,包括:
把所述对象区域在第一方向和第二方向的其中至少之一上划分为多份,
其中,所述第一方向和所述第二方向不同,在所述第一方向上的份数和所述第二方向上的份数的乘积为所划分的所述多个子区域的数量。
3.根据权利要求2所述的方法,其中,把所述对象区域在第一方向和第二方向的其中至少之一上划分为多份,包括:
基于所述对象区域建立二维坐标系并在所述对象区域中选择所述二维坐标系的原点,其中,所述原点的坐标为(X_Ori,Y_Ori);
在所述第一方向设置第一步进长度StepX,在所述第二方向设置第二步进长度StepY;以及
基于所述原点的坐标(X_Ori,Y_Ori),设置分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY),其中,所述分区坐标(X_Ori+n*StepX,Y_Ori+m*StepY)用于把所述对象区域分别在所述第一方向和所述第二方向上进行划分,所述对象区域在所述第一方向上划分为n+1份或n份,所述对象区域在所述第二方向上划分为m+1或m份。
4.根据权利要求3所述的方法,其中,所述第一步进长度StepX和所述第二步进长度StepY基于所述芯片设计的多个逻辑单元的总面积确定。
5.根据权利要求1所述的方法,其中,对于所述多个子区域中选择的任一子区域,基于所述所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量,包括:
当所述多个子区域中所选择的任一子区域的逻辑单元的总面积大于等于面积阈值时,确定向所述所选择的子区域插入所述填充单元。
6.根据权利要求5所述的方法,其中,对于所述多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量,还包括:
对于所述多个子区域中选择的任一子区域,基于所述所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定所述所选择的子区域中待插入填充单元的面积;以及
基于所述子区域中待插入填充单元的面积,确定向所述选择的子区域中插入所述填充单元的数量。
7.根据权利要求6所述的方法,还包括:
利用自动化工具向所述所选择的子区域中插入对应数量的所述填充单元。
8.根据权利要求6所述的方法,其中,所述逻辑单元包括组合逻辑单元和时序逻辑单元,
计算所述多个子区域每个中的所述逻辑单元的总面积,包括:
分别计算所述多个子区域每个中的所述组合逻辑单元的面积和所述时序逻辑单元的面积。
9.根据权利要求8所述的方法,其中,所述填充单元包括第一填充单元和第二填充单元,所述第一填充单元用于实现为所述组合逻辑单元,所述第二填充单元用于实现为所述时序逻辑单元,
确定所述所选择的子区域中待插入填充单元的面积,包括:
基于所述多个子区域每个中的所述组合逻辑单元的面积和所述时序逻辑单元的面积,分别计算所述所选择的子区域中待插入第一填充单元的面积和待插入第二填充单元的面积,
其中,所述所选择的子区域中待插入所述第一填充单元的面积根据以下公式计算:
area(combo_psc)=∑combo_area*Coeff_combo,
area(combo_psc)表示所述所选择的子区域中待插入所述第一填充单元的面积,∑combo_area表示所述所选择的子区域中所述组合逻辑单元的面积,
所述所选择的子区域中所述待插入第二填充单元的面积根据以下公式计算:
area(seq_psc)=∑seqcell_area*Coeff_seq,
area(seq_psc)表示所述所选择的子区域中所述待插入第二填充单元的面积,∑seqcell_area表示所述所选择的子区域中所述时序逻辑单元的面积,
Coeff_combo和Coeff_seq根据所述所选择的子区域中所述待插入填充单元的面积与所述所选择的子区域中所述逻辑单元的总面积的比值确定。
10.根据权利要求1-9任一所述的方法,其中,
所述填充单元包括可编程的备用单元。
11.一种用于在芯片设计中插入填充单元的装置,包括:
区域划分模块,配置为把所述芯片设计的对象区域划分为多个子区域,其中,所述对象区域包括多个逻辑单元;
面积计算模块,配置为计算所述多个子区域每个中的逻辑单元的总面积;以及
填充单元数量确定模块,配置为对于所述多个子区域中选择的任一子区域,基于所选择的子区域中的逻辑单元的总面积以及基于所述芯片设计的待插入填充单元的面积与所述芯片设计的多个逻辑单元的总面积的比值,确定向所述所选择的子区域插入填充单元的数量。
12.一种用于在芯片设计中插入填充单元的设备,包括:
处理器;和
存储器,其中,所述存储器中存储有计算机可执行代码,所述计算机可执行代码当由所述处理器运行时,执行根据权利要求1-10任一所述的方法。
13.一种计算机可读存储介质,其上存储有可执行代码,所述可执行代码在被处理器执行时,使得所述处理器执行根据权利要求1-10任一所述的方法。
CN202110442992.3A 2021-04-23 2021-04-23 插入填充单元的方法、装置、设备以及存储介质 Active CN113515915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110442992.3A CN113515915B (zh) 2021-04-23 2021-04-23 插入填充单元的方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110442992.3A CN113515915B (zh) 2021-04-23 2021-04-23 插入填充单元的方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN113515915A CN113515915A (zh) 2021-10-19
CN113515915B true CN113515915B (zh) 2023-04-25

Family

ID=78061173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110442992.3A Active CN113515915B (zh) 2021-04-23 2021-04-23 插入填充单元的方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113515915B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118211555B (zh) * 2024-05-22 2024-09-20 上海壁仞科技股份有限公司 芯片设计方法、芯片设计系统以及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006287054A (ja) * 2005-04-01 2006-10-19 Nec Electronics Corp スペアセルセットの配置方法
CN101681878A (zh) * 2007-10-26 2010-03-24 新思科技有限公司 用于布图布线系统中设计优化的填充单元
JP2014044560A (ja) * 2012-08-27 2014-03-13 Renesas Electronics Corp 半導体装置の設計方法、設計プログラム及び設計装置
CN103855044A (zh) * 2014-03-31 2014-06-11 上海华力微电子有限公司 一种添加冗余图形的方法
CN111192192A (zh) * 2018-11-14 2020-05-22 腾讯科技(深圳)有限公司 在图形中填充图像的方法、装置、设备以及介质
CN111931448A (zh) * 2020-08-07 2020-11-13 山东云海国创云计算装备产业创新中心有限公司 芯片电路的时序修复方法、系统、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444609B2 (en) * 2006-06-29 2008-10-28 International Business Machines Corporation Method of optimizing customizable filler cells in an integrated circuit physical design process
US8234612B2 (en) * 2010-08-25 2012-07-31 International Business Machines Corporation Cone-aware spare cell placement using hypergraph connectivity analysis
US10283496B2 (en) * 2016-06-30 2019-05-07 Taiwan Semiconductor Manufacturing Co., Ltd. Integrated circuit filler and method thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006287054A (ja) * 2005-04-01 2006-10-19 Nec Electronics Corp スペアセルセットの配置方法
CN101681878A (zh) * 2007-10-26 2010-03-24 新思科技有限公司 用于布图布线系统中设计优化的填充单元
JP2014044560A (ja) * 2012-08-27 2014-03-13 Renesas Electronics Corp 半導体装置の設計方法、設計プログラム及び設計装置
CN103855044A (zh) * 2014-03-31 2014-06-11 上海华力微电子有限公司 一种添加冗余图形的方法
CN111192192A (zh) * 2018-11-14 2020-05-22 腾讯科技(深圳)有限公司 在图形中填充图像的方法、装置、设备以及介质
CN111931448A (zh) * 2020-08-07 2020-11-13 山东云海国创云计算装备产业创新中心有限公司 芯片电路的时序修复方法、系统、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王晓琴 等.嵌入式存储器MBIST设计中内建自诊断功能研究.电子器件.2005,(第4期),893-896. *

Also Published As

Publication number Publication date
CN113515915A (zh) 2021-10-19

Similar Documents

Publication Publication Date Title
US6536023B1 (en) Method and system for hierarchical metal-end, enclosure and exposure checking
US8418115B1 (en) Routability based placement for multi-die integrated circuits
CN105975644B (zh) 设计半导体集成电路的方法、系统及计算机程序产品
CN108416077B (zh) 用于通过考虑后段制程来设计集成电路的方法和计算系统
US11853680B2 (en) Incremental routing based pin assignment
KR20220042305A (ko) 자동화된 라우팅을 수행하는 방법 및 시스템
US9047434B2 (en) Clustering for processing of circuit design data
US10977410B2 (en) IC routing for silicon circuits with smaller geometries
CN113515915B (zh) 插入填充单元的方法、装置、设备以及存储介质
CN115906720A (zh) 存储器的设计方法、装置、电子设备和存储介质
US9721051B2 (en) Reducing clock skew in synthesized modules
US9552453B1 (en) Integrated circuit with power network aware metal fill
US8839177B1 (en) Method and system allowing for semiconductor design rule optimization
US11449660B1 (en) Method to perform secondary-PG aware buffering in IC design flow
JP7062793B2 (ja) 回路配線記憶方法、fpgaシステムおよび記憶媒体
US20100199251A1 (en) Heuristic Routing For Electronic Device Layout Designs
US8762917B2 (en) Automatically modifying a circuit layout to perform electromagnetic simulation
US20230267261A1 (en) Design system, design method and method of manufacture of semiconductor device
Montone et al. Floorplacement for Partial Reconfigurable FPGA‐Based Systems
US11144700B1 (en) Grouping nets to facilitate repeater insertion
McGregor et al. A hardware/software co-design environment for reconfigurable logic systems
US20220398372A1 (en) Dynamic clock tree planning using feedtiming cost
US9734277B2 (en) Semiconductor device designing method, designing apparatus, and computer-readable storage medium
CN115203809A (zh) 一种建筑信息模型渲染方法、系统及电子设备
JP2005108065A (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