CN109086468A - 用于设计集成电路芯片的方法、系统及电脑程序产品 - Google Patents

用于设计集成电路芯片的方法、系统及电脑程序产品 Download PDF

Info

Publication number
CN109086468A
CN109086468A CN201810160739.7A CN201810160739A CN109086468A CN 109086468 A CN109086468 A CN 109086468A CN 201810160739 A CN201810160739 A CN 201810160739A CN 109086468 A CN109086468 A CN 109086468A
Authority
CN
China
Prior art keywords
decoupling capacitor
circuit
chip
metal
cabling
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.)
Granted
Application number
CN201810160739.7A
Other languages
English (en)
Other versions
CN109086468B (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.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
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 Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of CN109086468A publication Critical patent/CN109086468A/zh
Application granted granted Critical
Publication of CN109086468B publication Critical patent/CN109086468B/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/36Circuit design at the analogue level
    • G06F30/373Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • 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]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本发明提供一种用于设计集成电路芯片的方法、系统及电脑程序产品。该用于设计集成电路芯片的方法包含:产生包含至少一个去耦电容的芯片的第一电路布局;以及执行后处理去耦电容插入步骤,以在至少一个去耦电容之外添加至少一个额外的去耦电容,步骤包含:对于第一电路布局的至少一部分,识别出至少一些具有正向冗余的至少一部分电路的位置作为“候选”位置;以及在“候选”位置中的至少一个相应位置处插入至少一个附加去耦电容。本发明可优化集成电路的设计和制造。

Description

用于设计集成电路芯片的方法、系统及电脑程序产品
技术领域
本发明涉及一种芯片设计,更具体的是涉及一种用于设计集成电路芯片的方法、系统及电脑程序产品。
背景技术
芯片设计对干扰(noise)敏感,由于潜在的干扰发生器(例如但不限于提供Vdd和接地信号的电网(power grid)),将存在超过设计中内置干扰界限的风险。已知内嵌式去耦电容(decoupling capacitor,以下简称decap)连接至电网(power mesh)可减少干扰的影响。添加去耦电容对于降低干扰是有效的,因为它们提供电荷定位(chargelocalization)。可以将去耦电容添加到不具有电路单元(cell)的集成电路的区域,或者可以添加到诸如高速存储器的“高风险”区域中。
已知会在超大规模集成电路芯片(VLSI)中使用去耦电容。其常用技术具体描述在以下专利中:US6323050、US6763509、US6898769、US7222320、US7245516、US8421205、US8479136、US9262572、US9465899,以及以下的专利申请中:US20070061769A1、US20140167815A1、US20150186586A1及US20160117431A1。
美国专利号码8224601中描述了常用的去耦电容估计以及决定需要多少去耦电容单元来解决设计中本地产生的功率干扰的方法。
来自Synopsys.com的David Stringfellow和John Pedicone对另一种传统的去耦电容(dcap)的放置过程在网络上可取得的公开文档:“Decoupling CapacitanceEstimation,Implementation,and Verification:A Practical Approach for DeepSubmicron SoCs”中进行了描述。该文件描述了电源电压的动态变化,这是影响芯片性能的一个问题,因此构成了DSM SoC设计团队的“重大课题”。为了达到电源供给网络中可接受的电压波动水准,配置了足够数量的去耦电容。接着,所产生的去耦电容可充当高频电路(high-frequency circuit)的本地电荷存储器(local charge reservoir),从而减少电源干扰对邻近电路的影响。该文档描述了如何在最先进的VLSI装置中使用DCAP测计和实施流程。
Amit Dey、Vikas Garg、Rahul Saxena、Shailesh Kumar在“智能去耦电容插入方法”中描述了一种的“设置与走线”设计方法,网址是以下位置:www.design-reuse.com/articles/31663/smart-decouplingcapacitor-insertion-methods.html。Dey等人描述了“在“设置与走线”设计中已经插入了去耦电容和填充物,为了增加去耦电容值,我们必须将已插入的填充物交换成去耦电容”。为使第一金属层(Metal-1)及穿孔(via)层重新走线,当插入去耦电容时,可能会使Metal-1的去耦电容产生潜在的短路和间隔冲突(spacingviolation)。为了重新走线Metal-1及via1的路径,将加入Metal-1及via1的走线阻塞(routing blockages)。但在此之前我们将从此设计中移除所有去耦电容及填充物。在加入走线阻塞后,在Metal-1及via1层以及走线阻塞之间将会有许多短路及间隔冲突。为解决这些短路,由于产生冲突的走线为环保走线,将导致走线在走线阻塞中重新定位。接着走线阻塞将被删除。此时去耦电容将在没有任何DRC冲突下轻易的被插入,且去耦电容中的Metal-1层将占据原本走线阻塞的区域。藉此技术,我们可以将去耦电容值改善10~20%。”
常规的设置与走线工具特别执行去耦电容插入。这种软件工具的举例包含:Synopsys ICC及ICC2、Synopsys Apollo、Cadence Encounter platform、MentorGraphics–Nitro–SoC、Mentor Graphics–Olympus-SoC及Ansys–Apache RedHawk。
上述传统的设置与走线工具中至少有一部分可以执行std-cell时序提醒(timing-aware)(或称时序驱动(timing driven))设置。
IBM、Intel、Marvel、QCOM、BroadCom等开发了能够执行填充物至去耦电容交换的常规定制TCL脚本。
本说明书中提及的所有出版物和专利文献以及其直接或间接引用的出版物和专利文献的公开内容通过引用并入本文。此类出版物和专利文献的实质可专利性未获得承认。
发明内容
本发明的某些实施例旨在优化集成电路的设计和制造,例如,ASIC(专用集成电路)。
本发明的某些实施例旨在提供一种实施或设置去耦电容的方法,具有改善的控制IC开发过程流程和/或评估设计品质的能力。本发明的某些实施例旨在提供一种通过交换填充单元(swapping filler cell)来实施或设置去耦电容的改进方法,包含提供包含填充单元的初始芯片设计(initial chip design),然后将至少一个填充单元与去耦电容交换。
本发明的某些实施例寻求提供一种电容插入方法,即使作为后处理操作来执行其在完全或完整电路布局准备就绪之后,仍可另外设置电容的电容插入方法,例如,在走线资源非常有限的非常拥挤的IC设计中,插入去耦电容也不会对芯片面积产生影响,且对时序影响很小或没有影响。在增加给定电路布局中去耦电容的速率和/或缩短实施周期和/或不损害诸如时序、芯片/芯片面积和功率需求等其他设计约束的情况下,这可能是较佳的作法。
本发明的某些实施例旨在通过降低或减少传统上对走线拥塞施加的限制来减少给定对象所需的给定芯片所需的硅面积或芯片尺寸,以满足期望的去耦电容交换水准,这通常需要较低水准的走线拥塞。
本发明的某些实施例旨在提供一种智能填充物至去耦电容交换过程,使给定去耦电容的密度中芯片尺寸减小5%或10%或更多。
本文中的某些实施例旨在提供去耦电容的时序驱动的插入。本发明的某些实施例旨在提供一种软件方法来配置和驱动设置与走线(P&R)工具,以优化给定逻辑的去耦电容实施方式。
本发明的某些实施例旨在提供一种用于设计集成电路(例如ASIC)芯片的方法,该芯片包含去耦电容插入步骤,该步骤包含识别芯片中的第一电路布局的至少一部分中的至少一部分填充位置的Metal-1(第一金属)交越信号(例如,穿过填充位置的物理区域的信号与Metal-1段走线)是否全部具有正向时序冗余,并作为候选位置,且使用去耦电容取代至少一个这样的候选位置。
应当理解,对于许多填充物和去耦电容单元,信号走线穿过单元所占用的物理区域,并且这些信号具有Metal-1的电路区段直到用于走线的最高金属层。
本发明的某些实施例寻求提供一种用于识别填充单元并用电容单元例如去耦电容取代至少一部分所识别的填充单元的方法,包含产生穿过这些填充单元的Metal-1电路的时序冗余评价,并且使用这些评价考虑是否用电容(去耦电容)取代填充物。电容单元使用Metal-1连接,通常,去耦电容单元在内部使用Metal-1层连接其所有内部有源装置以形成电容。然而,常规方法中通常不会使用去耦电容单元交换这些填充单元,以避免设计规则冲突(Design-Rule Violations)(DRCs),或者如果实现这种互换,则需要通过信号再走线来解决DRC产生的冲突,从而延长时序关闭循环和/或扩大芯片尺寸,和/或在高利用率路线区域内造成设计困难。
应当理解,如果被填充单元穿过的Metal-1被去耦电容单元取代,则穿过填充单元的电路区段Metal-1通常具有产生设计规则冲突(DRC)的潜力。这个DRC冲突(干扰)是一个电路短路(net short),需要一个Metal-1段重新走线。Metal-1走线资源通常被去耦电容单元高度利用,因此通常需要电路再由来克服这个短路。DRC识别电路短路(net short)、电路瞬变(Net Transition)及电路电容(Net Capacitance)。为了克服这些“罪魁祸首(culprits)”,受影响的部分通常以更高的金属等级(Metal level)重新排列(例如,Metal2/Metal3/Metal4/Metal5/Metaln);注意到受影响区域的走线资源需求可能很少。
本发明的某些实施例寻求提供一种方法,该方法在遭受设计规则(DRC)冲突的至少一个位置,即Metal-1短路中进行填充物至耦电容单元交换。
本发明的某些实施例寻求提供一种改进的方法,其通过用去耦电容交换填充单元来添加去耦电容而不浪费芯片面积资源。
以下术语可以根据现有技术文献或根据说明书中出现的任何定义来解释,或如下:
单元走线(cell routing)旨在包含标准单元引脚的金属走线,例如,在设计模式中。例如:考虑需要连接到单元2引脚A的单元1引脚Z的模式。单元走线(Cell-Routing)是这两个单元针脚之间的金属走线,在Metal-1(最低金属层)到Metal-n(最高金属层)的任何地方的金属层中实施。
电路单元走线更改(cell-routing change)旨在包含走线实施中的任何金属拓扑(Metal-topology)变化。
去耦电容(Decoupling capacitor)又称DCAP:包含双端电容单元(two-terminalcapacitor cells),其通常散布在标准逻辑单元(standard logic cells)之间,并且去耦电容单元的两个端子中的一个被挂接到电源,而另一个的相应地接地。
关键电路(critical nets)、关键信号(critical signals)、关键单元(criticalcells):是将电路/信号/单元纳入设计中的芯片,其时序称为“关键时序(criticaltiming)”,在非常紧绷(tight)或在界线上(on-the-edge)的意义上,在正向冗余(positive-slack)的情况下,将要转向负向冗余(negative-slack),又名为“断开(breaking)”,随之而来的芯片/芯片性能下降,此外,甚至有微小的物理走线变化。任何物理特性的增加,例如这些信号/电路上的电阻率/电容可能会增大与之相关的延迟。
封闭设计(closing design)、时序设计封闭(timing design closure):是集成电路设计开发工作流程的一部分(其可以包含例如静态时序分析(static timinganalysis)、设置、走线、逻辑整合(logic synthesis)),其通过确保设计满足约束和目标而有助于生成集成电路的最终设计。
填充单元(filler cells):是在包含使用自动化p&r设置标准电路单元之后插入的单元,以便填补标准单元之间的间隙,从而通过消除间隙来确保邻接;应当理解,所得到的邻接部分允许例如由于其小尺寸而缺少主体连接(Bulk Connection)(基板连接(Substrate connection))的“薄单元(thin cell)”来使用其它电路单元的主体连接。小单元的基板可以通过与其邻接的单元连接到电源/接地。术语“填充单元”旨在包含通常由xy方向(尺寸)和xy位置表征的任何物理单元,其在ic设计过程中生成但没有指定的逻辑功能,而是填充分别具有指定的逻辑功能的先前定义的单元(“标准单元(standard cells)”)之间的间隙。
填充单元通常指填充在标准单元之间的空间的单元。通常,为了确保每个电路单元获得电源和接地,电路单元被邻接在一起。因此相邻电路单元的VDD和VSS端子靠在一起,所以电源只能在该列的任何位置上的一个点被分接(tapped)。因此,如果几乎都是这种情况,使用自动p&r工具放置的标准单元填充小于芯片面积的100%,填充单元插入在放置的标准单元之间的间隙中,直到达到所有电路单元都具有“邻近”(每个单元在每一侧邻接其他单元)的空隙。填充单元可以包含用于继续VDD和VSS轨的非功能单元,例如因为由于电路单元没有抵接而发生的单元、接地和扩散层(diffusion layers)的不连续。填充单元通常会降低由基底(例如NWell、PPlus&NPlus)层创建的DRC违规和/或帮助维护电能轨(PowerRail)连接的连续性。一部分p&r工具使用术语“坐标(origin)”来表示填充单元的x、y座标。
填充位置(filler location):旨在包含填充单元的位置或要给填充单元的位置。
电路布局区块(layout block):旨在包含芯片的平面图的一部分。例如只有标准单元的物理区域,或者只是整个芯片的平面图的一部分。
逻辑单元(logic-cell)又称标准单元(standard-cell),旨在包含缓冲器、与门(AND-gate)、或非门(NOR-gate)、正反器(Flip-Flop)等。
电路(net)或称电路(network)旨在包含一组或互连电路组件的集合。电路表(netlist)可以用于描述电路的连接性,并且可以包含组件和它们分别连接到的节点的列表。一个可以通过使用走线器(基于电路单元的或门阵列走线器)来“走线该电路”来生成电路布局。电路旨在包含将引脚X连接到引脚Y的单条线,而连接电路(connectivitynetwork)旨在包含整个芯片中的所有引脚连接。
随机逻辑电路(random logic)旨在包含实施布尔函数(Boolean function)的一组逻辑门(也称为标准单元)。
冗余(slack)、正向冗余(positive slack):在静态时序分析(static timinganalysis,STA)中旨在包含与给定连接相关联的“冗余”的信号/电路的特征,并旨在包含所需时间与到达时间之间的差异,其中信号的到达时间是经过的时间(由于路径中的所有分量产生的延迟),直到信号到达特定点或节点为止,通常将其作为时脉信号的到达时间。所需的时间是信号可以到达的最后时间(latest time),而不会使时脉周期长于所需时间。因此,在某个节点处的正向冗余S意味着在该节点处的到达时间可以因S而增加,而不增加电路的总体延迟,负向冗余意味着路径太慢并且必须加速(或者参考信号必须延迟)。
节点N处的正向冗余S通常旨在包含其中相对于被认为是所需时间的到达时间是正的(高于零或至少一预定阈值高于零)的情况,因此如果增加走线延迟和到达时间进一步延迟,延迟时间可能仍然可以吻合,相对于可能被认为需要的到达时间是负向的情况。通常,正向冗余允许在没有时序影响的情况下插入去耦电容,因此具有正向冗余的位置或节点是用于去耦电容插入的候选位置,相反的,通常,负向冗余不允许插入去耦电容,因为这样的插入将影响时序,因此具有负向冗余的位置或节点通常不是用于去耦电容插入的候选位置。另外,通常情况下,正向冗余越大,该位置候选人就越适合(作为去耦电容插入位置)。“正向”通常并不意味着端点为零;相反的,“正向冗余”范围的较低端点可以预定义在零以上。
交换(swap):旨在包含移除填充单元,并放置或插入(通常相同尺寸)去耦电容单元。
时序驱动(Timing driven),也称为时序提醒(Timing-Aware):旨在表示某些设置与走线(P&R)方法中某些物理操作/阶段的特征,其中确定了具有紧密时序关系的逻辑单元,例如:因此P&R工具可以将这些单元尽可能靠近彼此,而不是使用易于增加延迟的长互连线(long interconnect wires)。通常,走线时序驱动的信号识别要连接的所有导线的集合内的关键时序关系,并增加其走线优先级,以便首先连接这些位置,以确保直接点对点,并减少导线长度。因此,在短长度电路中延迟得到优化和最小化。
本发明包含以下实施例:
实施例1:一种集成电路芯片的设计方法,该方法包含:
生成包含至少一个去耦电容的芯片的第一电路布局,
执行后处理去耦电容插入步骤以添加超过该至少一个去耦电容的至少一个附加去耦电容,所述步骤包含:
对于该第一电路布局的至少一部分,识别出至少一部分具有正向冗余的至少一部分电路的位置作为“候选”位置;以及
插入至少一附加去耦电容至“候选”位置中的至少一个别位置。
实施例2:根据前述实施例中任一项所述的方法,其中芯片的第一电路布局满足为芯片定义的所有时序需求。
实施例3:根据前述实施例中任一项所述的方法,其中,至少一部分包含整个第一电路布局。
实施例4:根据前述实施例中任一项所述的方法,其中在芯片的至少一部分内,插入重复进行的降序冗余。
实施例5:根据前述实施例中任一项所述的方法,其中,在整个芯片内,插入重复进行的降序冗余。
实施例6:根据前述实施例中任一项所述的方法,其中第一电路布局包含至少一个填充位置,并且其中识别步骤包含:识别芯片的第一电路布局的至少一部分中的至少一部分填充位置具有METAL-1信号交越。
实施例7:根据前述实施例中任一项所述的方法,其中至少在其电路中具有正向冗余的部分中的所有填充位置被识别为“候选”位置。
实施例8:根据前述实施例中任一项所述的方法,其中在所述芯片的至少一部分内,重复进行插入,直到达到以下停止标准:所有插入的去耦电容的电容之和已达到预定的总电容。
预定的总电容可以例如是在第一电路布局中已经达到的总电容的百分比。而且,对于芯片中的每个区域,可以具有不同的总电容。通常,每个去耦电容单元对总电容的贡献是总去耦电容需求的百分比。
实施例9:根据前述实施例中任一项所述的方法,其中,检查至少一个填充位置以确定在填充位置上是否存在Metal-1走线,并且其中在填充位置上不存在Metal-1走线的至少一个填充位置被去耦电容取代。
实施例10:根据前述实施例中任一项所述的方法,其中,检查所有填充位置以确定在填充位置上是否存在Metal-1走线。
实施例11:根据前述实施例中任一项所述的方法,其中用去耦电容取代单个填充位置的必要条件是在单个填充位置上不存在Metal-1走线。
实施例12:根据前述实施例中任一项所述的方法,其以正向时序识别Metal-1电路区段,迫使至少一个填充至去耦(Filler-to-Decoupling)电容交换导致DRC/Net短路,并重新走线至少一个短路的Metal-1电路,以缓解比Metal-1更高的金属方案中的信号短路。
实施例13:据前述实施例中任一项所述的方法,其中第一电路布局包含至少一个填充位置,并且其中识别步骤包含:将至少一部分具有正向冗余的电路的填充位置作为“候选”位置。
实施例14:根据前述实施例中任一项所述的方法,其中识别步骤包含:针对芯片的所述第一电路布局的至少一部分的具有正向时序冗余的Metal-1交越信号的填充位置作为“候选”位置;以及用至少一个相应的去耦电容取代至少一个“候选”位置。
实施例15:一种用于设计集成电路芯片的系统,该系统包含:
至少一处理器,被配置为产生用于芯片的第一电路布局,其包含至少一去耦电容;以及用于执行后处理去耦电容插入操作,以在该至少去耦电容外加入至少一附加去耦电容,后处理去耦电容插入操作包含:
对于该第一电路布局的至少一部分,识别出至少一部分具有正向冗余的至少一部份电路的位置以作为一候选位置;以及
在候选位置的至少一个别位置插入至少一附加去耦电容。
实施例16:一种电脑程序产品,包含其中包含电脑可读程序代码的非暂态实体电脑可读媒体,电脑可读程序代码适于执行以实施集成电路芯片的设计方法,该方法包含:
为芯片产生第一电路布局,其包含至少一去耦电容;及执行后处理去耦电容插入操作,以在至少一去耦电容外加入至少一附加去耦电容,后处理去耦电容插入操作包含:
对于第一电路布局的至少一部分,识别出至少一部分具有正向冗余的至少一部分电路的位置以作为一“候选”位置;以及在“候选”位置的至少一个别位置插入至少一该附加去耦电容。
还提供了一种不包含信号的电脑程序,包含电脑程序代码,用于在程序于至少一个电脑上运行时执行本文所示和所述的任何方法;以及电脑程序产品,包含典型非暂态的电脑可用或可读媒体,如非暂态电脑可用或可读存储媒体,其通常是有形的,且具有包含在其中的电脑可读程序代码,电脑可读程序代码适于被执行以实施本文所示和所述的任何或全部方法。
根据本文所教示的步骤,可由至少一台为了特殊目的的电脑、或是配置为通过存储在典型的非暂态电脑可读存储媒体中的至少一个电脑程序以达成特定目的的常规电脑执行。术语“非暂态(non-transitory)”在本文中用于排除短暂的、传播的信号或波,但是包含适用于该应用的任何挥发性或非挥发性电脑存储器技术。
根据本发明的某些实施例,本发明的设备可以包含机器可读存储器,其包含或以其它方式存储指令程序,指令程序在由机器执行时,实施本文所示和所述的本发明的一部分或全部设备、方法、特征和功能。
上面提到的实施例和其他实施例在下一部分中详细描述。
在文本或图中出现的任何商标都是其所有者的财产,并且在此仅出现以解释或说明如何实施本发明的实施例的一个示例。
术语“电脑(computer)”应该被广义地理解为涵盖具有数据处理能力的任何种类的电子装置,包含作为非限制性示例的个人电脑、服务器、嵌入式核心、计算系统、通信装置、处理器(例如数据信号处理器(DSP)、微控制器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)和其他电子计算装置。
本文单独列出的元件不必是不同的组件,而可以是相同的结构。元件或特征可能存在的陈述旨在包含(a)元件或特征存在的实施例;(b)其中元件或特征不存在的实施例;和(c)其中有元件或特征选择地存在的实施例。用户可以配置或选择元素或特征是否存在。
任何合适的电脑化数据存储器(例如,电脑存储器)可以用于存储由本文所示和所述的系统接收或由其生成的信息。
附图说明
图1为根据本发明实施例构建和操作的去耦电容插入方法的简化流程图。可以提供一部分或全部所示的步骤。
图2是根据本发明的实施例构建和操作的用于执行阶段完成(Implementationphase completion)的方法的简化流程图,其包含品质控制(quality Control)步骤,该品质控制步骤被配置为在设计释出到生产之前确保时序和DCR关闭,可以执行全部或部分操作。
包含在本发明的范围内的方法和系统可以以任何合适的顺序,例如通过例示的方式,包含在具体示出的实施中示出的一部分(例如,任何合适的子集)或全部功能区块,如图所示。
这里描述和示出的计算、功能或逻辑组件可以以各种形式来实施,例如作为硬件电路,例如但不限于定制的VLSI电路或门阵列或可编程的硬件装置,例如但不限于FPGA,或者作为存储在至少一个有形或无形的电脑可读媒体上,并且可由至少一个处理器执行的软件程序代码,或者其任何适当的组合。
如果提供的话,这里描述的固件实施功能可以保存在任何合适的存储器装置中,以及合适的处理单元(也可以是处理器)可以被配置用于执行固件代码。或者,本文描述的某些实施例可以部分地或排他性地以硬件实施,在这种情况下,这里描述的一部分或全部变量、参数和计算可以是在硬件中。
在此描述的任何逻辑功能可以被实施为实时应用,如果适当的话并且其可以采用任何合适的架构选项,诸如但不限于FPGA、ASIC或DSP或其任何合适的组合。
这里提到的任何硬件组件实际上可以包含一个或多个硬件装置,例如,芯片,它们可以位于同一位置或彼此远离。
附图标号
S10~S18、S18a~S18c:步骤
具体实施方式
包含大量随机逻辑(由大量标准逻辑单元组成)的IC芯片走线非常复杂(走线指的是这些标准逻辑单元之间的连通性)。现在所有VLSI芯片实施的基本程序/演算法(如设置与走线技术)都被用来影响芯片的物理实施。传统的设置与走线演算法根据标准单元在整个VLSI芯片实施过程中携带的时序图优先设置与走线。Synopsys ICC、Cadence Encounter和Mentor P&R等主要EDA(电子设计自动化)公司出售用于实施芯片物理设计的IC设计程序,从而实现IC芯片的物理实施(电路布局配置)。
实际的限制因素包含时序、面积、制造设计(DFM)和功耗。例如,由于产品营销的考虑,一部分设计受到尺寸的限制(即所谓的必要的面积限制)。如果要满足性能目标,一部分设计必须达成高速,例如一台强大的个人电脑,每秒必须完成百万兆次的计算。移动装置中的芯片可能受到功率限制,因为终端用户不愿意频繁地帮电池充电。不同IC之间的这些限制是不同的。IC的设计在很大程度上限制了标准单元的密集区域,其中密度意在包含给定区域实际上由标准单元占据的“利用率”(标准单元占据的区域的比例)。
一般来说,在集成有标准单元的IC芯片区域中,保持可用于放置连接电路的区域的套件(set)或集合被称为芯片的“走线资源”。这些在面积上受到很大限制的IC中,欠缺的物理区域资源可以被走线工具用来放置连接在逻辑单元之间的导线。不幸的是,具有有限走线资源的密集IC设计通常需要多重迭代来完成走线或经由增量走线(通常称为ECO)来实施修复,同时满足所有预定义的标准,例如时序限制:经常增加的走线变化,在利用率非常高且可用的走线资源很少的情况下实施,随之而来的是受到改变影响的电路的非最优重新走线(non-optimal re-routing),这反过来又对逻辑时序造成负面影响,导致时序违规,并且因此需要进一步修复。
另一个IC设计需求是电源完整性。为了满足这个需求,实施流程例如,深次微米(deep-submicron)IC技术,包含在标准逻辑单元的区域内添加通常很小的去耦电容或去耦电容单元。这些双端电容被连接到一个端子上的相关电源和另一个端子上的相对应的地上。这样的电容可以被形成为适合在标准逻辑单元内,并且可以像标准逻辑单元一样走线。描述了传统的去耦电容插入技术,
例如,在上面技术背景部分列出的参考文献中,并且可以通过传统的IC设计工具来实施。例如,Synopsys ICC工具有一个在名为“insert_std_filler-Metal-cell{引用列表}”的设计中散播去耦电容单元的命令。
在典型的实施流程中,电容的这种设置的“最终”优化,例如,去耦电容发生(takeplace)在时序的优化(optimization)和关闭(closure)之后,或是交错(interleaved)其中。这种“最终”优化可包含识别可用区域,并用电容填充它们。如果识别出缺少电容,例如去耦电容的区域,则可能需要进行主要的电路布局/平面图更改,以为额外的电容(例如去耦电容)腾出空间。主要平面图更改可能包含:
-任何两个标准单元之间的闲置空间考虑用于去耦电容插入。
-识别符合两个标准单元之间的“闲置”距离的参考去耦电容单元尺寸。
-“设置”工具从单元库(cell library)中创建一个“仅限物理(Physical-Only)”参考单元。
-设置演算法“拉(pulls)”新创建的例子并嵌入去耦电容单元以“填充”两个标准单元之间的空隙(闲置空间)。
插入一个电容,例如,去耦电容,在特定位置的去耦电容也可能在许多或大多数情况下需要单元走线改变来解决Metal-1DRC短路--例如,以便适当地调整与走线。如本文所述,密集IC区域的走线变化通常产生新的和不期望的时序问题,其随后的解决方案由于其收敛性延长而使设计周期复杂化。
现在参考图1以及详细描述说明根据本发明的某些实施例中的电容,例如,去耦电容的设置方法。此方法可以例如,独立运行,或者作为特征并入合适的程序中,例如,合适的P&R(设置与走线)工具,例如但不限于Synposys-ICC,或者在此处提及的其他工具或任何其他常规P&R工具中加以必要的更改。下面描述的步骤可以分别提供或执行,或者可以以任何合适的顺序提供或执行所有步骤,或者其任意的子集合可以提供或执行,例如但不限于:
步骤S10:使用任何合适的P&R工具提供假定的或初始的或起始的芯片/芯片平面布置图,通常提供芯片平面电路布局创建功能作为工具的设置方法的初步阶段。通常,平面布置图包含放置的标准单元(又名std-cells),并且已经走线所有的互连。通常,大量的std-cells之间存在“空隙(gap)”。通常,几乎所有的标准单元都不相互邻接,因此几乎所有的标准单元之间都存在空隙。
步骤S11:将一个给定的设计网表(netlist)应用到满足所有时序需求的完整电路布局区块中。在此阶段中,可以实施去耦电容的,例如每个已知的方法插入,此方法简单地避免将去耦电容单元插入和放置在会引起Metal-1短路的填充空间中。
步骤S12:在给定的电路布局中,至少确定一个、一部分或所有可用于放置电容的填充位置,例如,去耦电容,并存储它们的坐标。例如,可以使用合适的tcl命令来查询关于被p&r工具识别为填充空间的至少一个、一部分或全部位置,例如,彼此不相邻的标准单元之间的至少一个、一部分或全部空隙。例如,识别这些填充单元的查询可以实施为在P&R命令提示层级运行的TCL命令。例如:
步骤S13:对于至少一个这样的填充位置,例如,每个这样的填充位置,确定是否存在穿过填充空间的Metal-1中的任何电路区段,例如是否存在填充物上的Metal-1走线。
如果不是(例如,如果没有穿过填充空间的Metal-1中的电路区段/在填充物上没有Metal-1走线),执行填充至去耦电容交换,例如,填充物(至少一个这样的填充物)通常被取代为相同大小的电容(为了避免产生未解决的DRC),例如,去耦电容。
根据某些实施例,当给定填充物-单元被去耦电容-单元取代时,对可能经过再走线的穿过填充单元上的一部分或全部信号执行时序分析。典型情况下,检查Metal-1中穿过填充单元中的某些大部分或全部信号/电路。该检查可以例如包含,使用任何合适的TCL命令来查询P&R工具。例如,时序查询可以在时序分析工具(例如Synopsys PrimeTime)中执行,在这种情况下查询可以用TCL写成:set slack[get_attribute$timing_path slack]
然后设置与走线工具可以返回一个列表,包含对于每个检查的信号、信号的名称以及这些信号分别穿过的填充单元名称和位置(如果有的话)。然后,该列表可以被馈送到诸如Synopsys的PrimeTime的时序分析工具,以使用诸如“report_timing”之类的适当命令来查询与这些信号中的每一个相关联的时序。
执行步骤S13通常是值得的,因为它是一种“容易实现的目标(low hangingfruit)”型操作,其产生去耦电容插入,而不会对走线和时序产生不利影响。
步骤S14:对于至少一个例如,在填充物上具有Metal-1走线的每个填充位置并未在上述步骤S13时被替代(通常大部分都是)时,记录在填充单元占据的区域内在Metal-1中走线的电路的时序条件,例如响应于诸如“report_timing”TCL命令的时序查询而返回的记录数据。
步骤S15:为即将进行的交换步骤优先考虑填充位置。可以预定任何合适的优先级,例如但不限于时序驱动的优先级排序,例如通过扫描在步骤S14中所记录的时序条件的优先级,通过在其中走线到M1的电路的时序冗余来排序所有填充位置,例如,在步骤S14中从最高或最高优先级(“最佳”)时序条件到最低或最低优先级(“最差”)时序条件记录时序条件,从而生成序列表(并且因此填充单元分别与这些电路相关联)。
可以使用任何合适的技术来检查给定位置处的时序冗余,
例如以下测试:
通常来说,在步骤S15中,在步骤S14中创建并且存储所有正向冗余信号交越点的表iii对填充单元进行分类和统一,以避免后续生成多次命令的错误,造成同一个填充单元与去耦电容单元交换。
通常将高优先级时序条件定义为具有最具挑战性(most challenging)的冗余值的填充单元,例如具有最小(但至少大于零的delta)正值的填充单元,因为期望优先交换这些填充单元。具有较大且大于delta的数字的填充单元越来越不那么具有挑战性,并且交换它们的优先级越来越低,并且例如如果在这些“较不具有挑战性”的填充单元已经被交换之前就达到预定的停止标准,则不会发生交换,如下所述。
通常来说,由多个电路穿过的填充单元的优先级由具有最具挑战性,例如,最小冗余值的电路来决定。
在步骤S13中识别为在特定填充单元中具有Metal-1的任何电路被认为是与该特定填充单元“相关联(associated)”的电路,并且这种填充单元在本文中被称为“宿主(hosting)”Metal-1电路。
根据某些实施例,检查(例如分析他们的时序)穿过所有填充物(通常包含但通常不限于Metal-1交越点)的所有信号/电路,若具有正向冗余则为了走线修正而被标记为“相关的(relevant)”,如果没有正向冗余,则标记为不相关(irrelevant)。
通常来说,仅仅略高于零的信号不被认为具有正向冗余,正向冗余阈值或“冗余裕度(slack-margin)”或“delta”,例如+200pS,是预定义的,并且可以用于从信号中区分重新出其冗余度高于零但低于阈值的走线候选者。这种低于阈值的信号被视为负向冗余,并且与其相关联的填充位置不是用于重新走线的候选者。另外,通常填充位置与略为负向冗余相关,不是取代的候选者,避免使已经不能满足时序限制的位置进一步恶化。
可以使用任何合适的技术来检查某个填充位置处的时序冗余,并确定冗余查询值是否大于预定冗余裕度,例如,以下测试:
步骤S16:开始用任何合适的顺序以电容,例如,去耦电容取代填充物“宿主”Metal-1电路。
例如,可以通过按照时序条件(或使用将时序考虑与其他优先考虑事项相结合的优先次序)优先化来确定顺序,例如,通过用诸如从步骤S15中生成的列表的较高优先级往下的电容(例如去耦电容)交换填充物,来按照时序条件的最佳度的降序来进行取代。
可以理解的是,可以通过任何合适的常规技术,例如通过合适的P&R工具命令行中的合适的TCL命令来执行填充物到去耦电容的物理转换,如:
change_link″a,t}′fillers_slack.report>!dcap.scr
change_link xofiller!FILL16BWP7THVT!2544 DCAP16BWP7THVT
步骤S17:通常来说,当发现预定的停止条件成立时停止步骤S16。例如,停止条件可以是以下的任何一个或任何逻辑组合:
停止条件A:满足插入的电容(例如,去耦电容)的预定义的设计规定总电容(又名固有电容值)。
这种停止条件也被称为“去耦电容需求(DCAP requirement)”。为了预先确定合适的预定总量,晶体管级模拟(transistor level simulation)可以由电路设计者或动态IR程序(dynamic-IR program)来执行。
可以通过例如,使用可以由定制电路组(custom circuit team)运行的传统功率分析程序(conventional power analysis program)的电路的类比模拟(analogsimulation)来设置固有电容值(intrinsic capacitance value),即预定总电容值(也就是预定总去耦电容值)。
通常来说,例如执行上面的步骤S10-S16之后,到目前为止插入的去耦电容的总去耦电容值(也就是总电容、固有电容值)至少被计算一次。通常,在去耦电容插入结束时计算总去耦电容值。然后,在最近的填充物→去耦电容交换之后,评估是否满足了预定义的总去耦电容值。如果总去耦电容值仍小于预定义的期望总量,则可以将设计回归到设置阶段,以确保满足固有电容需求。
根据某些可选实施例,总去耦电容值有时例如如果使用在此示出和描述的列表执行交换,自顶向下,在每n次交换之后,可以计算该值,并且如果电流总值仍然小于去耦电容需求,则在重新计算之前进行n次交换,并重新与预定的去耦电容需求进行比较。
停止条件B:在时序条件下达到预定的标准,例如,如果受影响的电路的时序比部分预定的标准更差,例如小于(接近于零)预定的冗余裕度,则避免取代填充物。预定义标准,例如,可以包含正向时序冗余值(即,冗余裕度),即使由于走线改变而加重(aggravated),仍然在修改的电路上产生正向冗余,使得不进行时序降级。填充物至去耦电容流程运行时,该值可以用作需求或停止条件。
替代地,或者在适当的停止条件变为真而停止步骤S16之外,步骤S16可以响应于诸如Metal-1触碰Metal-2的物理条件而被中断或停止,可选地,即使总体固有上限值要求因此不被满足。或者,例如,步骤S16可以继续,即使给予不合需要的物理条件,例如Metal-1触碰Metal-2,直到满足总体固有上限值需求,之后,继续步骤S16,除非和直到当发生诸如Metal-1触碰Metal-2之类的物理条件时被阻止。
另一种替代方法是继续步骤S16,直到所有填充物的电路中有正向冗余的填充物都被去耦电容取代。
根据某些实施例,步骤S16甚至可以在具有稍微(预设为小)负向(例如,零以下)冗余的一组的一个或多个电路上执行。
步骤S18:实施阶段可以通过配置合适的品质控制步骤来完成,以确保在设计投入生产之前时序和DCR关闭。例如,可以执行如图2的以下全部或部分品质控制步骤:
品质控制步骤S18a.主题逻辑(subject logic)的时序是通过一个可能穿过多个逻辑结构的时序查询来验证的。
品质控制步骤S18b.任何留存的时序违规将被纠正。例如,即使使用delta>0冗余裕度时序标准,对应的电路的时序也可能比预期得到更多的时序传播(timingpropagation),并导致时序违规,然后被修复(例如,根据下面的步骤S18c),直到满足芯片时序要求。
品质控制步骤S18c.修复其他设计规则(DRC)违规(如果有的话),例如(但不限于)转换裕度违规(transition margin violation)、电容裕度违规(capacitance marginviolations),使用常规实施实践,诸如但不限于缓冲和/或标准单元调整以满足时序降级。
可以理解的是,合适的数据表(例如下面描述的表I-IV中的一部分或全部)可以由在此示出和描述的方法来生成和使用。
例如,步骤S12可以生成存储填充单元及其对应的位置/坐标的表。该表可以用于确定哪些位置至少理论上可用于放置电容,例如如本文所述的去耦电容。
步骤S13可以生成存储查询结果的表ii,该查询结果分别穿过任何查询过的填充单元(例如,所有填充单元或存储在表i中的所有填充单元)中的任意M1(或称Metal1)层电路。
步骤S14可以生成存储在表ii中存储的步骤S13中识别的所有电路的时序冗余值的表iii。可以理解的是,通常电路穿过多个填充单元时只经历一次时序冗余值决定。
表iv可以在步骤S16中生成,并且可以包含实现填充单元到去耦电容单元交换的命令表。通常来说,表iv中的每个命令包含改变链接命令(link command),如果满足交换标准,则用去耦电容取代填充物,例如,如果对于特定填充单元,找到所有交越信号(例如通过访问表iii)为了具有正向时序冗余,将相关联的填充单元、例如通过适当的添加到表中来设置,以被去耦电容单元取代。因此,例如如本文所描述的,可以通过运行存储在表iv中的一部分或全部命令来实现实际的填充单元到去耦电容单元的交换(例如,具有“时序感知(Timing-aware)”的Metal-1信号)。通常来说,表iv可以例如包含命令列表,包含指示设置与走线工具的2行,表示哪个填充物被交换到去耦电容单元。
可以理解的是,上面的步骤S10~S18(或其任何子集)不需要被应用于整个芯片。替代的,该方法可以选择性地应用,以节省时间和/或保存迭代和/或出于任何其他原因,例如仅限于芯片的某些区域或领域,例如仅限于高度拥塞的区域或者仅限于由设计者定义的高关键度区域(例如,高Metal-1含量的区域),例如逻辑功能由设计者定义为关键区域的区域,或者仅限于芯片整个区域的任何其他子集。例如,按照上述方法进行填充物至去耦电容交换可以仅在Metal-1的拥塞区域中执行;填充单元内的Metal-1信号可以基于任何合适的标准来识别。
如果在某些使用情况下可以省略,则可以在没有Metal-1交越点的情况下,将交换芯片中的所有填充单元视为单独的操作步骤;其他操作步骤也是如此。
查看任何给定填充单元的Metal-1电路交越点的时序,并且在每个填充单元的边界内定址时序/时序关键的Metal-1电路区段提供了相当大的优势。
作为替代方案,可以扫描芯片,并且发现没有m1交越点的任何填充物可以交换,而具有在Metal-1中引起DRC违规的去耦电容单元的填充单元不进行交换。相反的,检查任何/所有交越电路的所有冗余是否大于预定的增量,并且如果是,则交换(填充物至去耦电容)。继续,直到整个芯片已经被扫描,或者任何其他合适的基于时间或其他的停止标准已经发生。
可以理解的是,更一般地,本发明的方法包含检查Metal-1填充物交越电路上的时序,而不管所采用的特定的芯片扫描方法(图1或其它)。例如,相关表格不一定需要按照时序条件进行排序,然后按照时序条件的降序进行交换,相反的,进行交换的顺序可以是任何合适的顺序,例如通过芯片区域,或者依照列的顺序,或者随机顺序。
再举一个例子,在图1的方法中,在多个填充单元交换候选内可能存在一定的电路Metal-1交越点,尽管在统计上具有跨越Metal-1中的几个填充单元的电路通常被发现为是一个低或为零的机率事件。检查每个填充单元的时序通常包含重新访问相关信号电路上的时序图,该时序图可能先行检查过(对于先前由同一电路穿过的填充单元)。然而,另一种选择是,如果发现电路的冗余度低于delta,则所有由该电路穿过的填充单元从表格中被移除,这是因为它们显然不能被交换成去耦电容。为了促进这一点,表2可能包含一个矩阵,其中沿着一个维度的所有填充单元以及沿着另一个维度的所有电路,并且矩阵条目可以是1,以指示相关填充单元和电路的交越点,而矩阵中位置x、y处的矩阵条目0可以指示填充单元x和电路y之间不存在交越点。一旦某些填充单元被移除,该方法可能不会检查只穿过被移除的单元的电路。
可以理解的是,图1的方法及其变型尤其是有利的,因为在时序/DRC封闭方面结果良好。特征在于封闭时序的设计元件通常不受DCAP插入要求的干扰,从而最小化时序封闭周期预测,和/或因为就最佳电容而言结果是实际的,例如去耦电容插入,在IC时序、电源完整性和物理实施时间表之间实现良好的折衷。根据某些实施例,例如在时序是首要考虑的使用情况下,
如果有的话,可能会考虑芯片/芯片扩大或放宽整体固有电容需求,中断用于去耦电容单元交换的违反时序考虑因素的填充物,并克服电源完整性问题。
可以理解的是,图1的方法及其变型可以结合适用于增强或优化,任何合适的去耦电容插入过程,诸如但不限于在上述的技术背景部分中描述的Stringfellow-Pedicone文档和其他去耦电容插入过程中描述的过程。
案例。
去耦电容交换在Synopsys-ICC设置与走线工具中适合运行的TCL命令编写的代码如下所示。
代码通常包含可以一起使用或者独立使用或者以任何合适的子组合和顺序使用的以下一部分或全部过程:
a.ICC(Synopsys IC编译器)脚本。
b.PT(PrimeTime)脚本(通常来说,在PT工具命令行中运行的代码包含执行时序查询的一组TCL命令)。
c.3为ICC生成change_link命令(这是一个P&R工具命令,用于执行参考电路单元交换,例如填充物至去耦电容交换)。
d.PT脚本创建敏感电路(sensitive net)列表(例如,具有关键时刻),例如基于违反端点的列表。通常,敏感电路列表是从PT时序查询得出的。
e.CSH(可能驱动某些查询的C-Shell Unix语言,例如由Linux/Unix操作系统)脚本命名为“look”。CSH(可驱动某些查询的C-Shell Unix语言,例如Linux/Unix operatingsystem)脚本命名为“look”。
f.CSH脚本确保没有敏感电路会受到伤害。
通常来说,通过避免用去耦电容单元替换与这些电路相关联的填充单元,设置时序增量间隔以确保关键/敏感时序电路不受损害,从而避免改变信号延迟值的再走线。
ICC脚本
结果
xofiller!FILL16BWP7THVT!3497 core/ahb/icache_ahb/tpmi_icache_bistlk/n140
core/ahb/rom_if/n388 core/ahb/mme_top/mmu_core/mmu_mult/DW02_mult/n27291xofiller!FILL16BWP7THVT!2546
xofiller!FILL16BWP7THVT!1224 core/ahb/mme_top/mmu_core/hdl_net_1756
{core/ahb/mme_top/mmu_core/arg_B_64bit[47]}core/ahb/mme_top/mmu_core/n269
xofiller!FILL16BWP7THVT!3496 core/ahb/aes_256b/aes_secure/aes_bikey_i/n389
xofiller!FILL16BWP7THVT!1939{core/ahb/tpm_if/OWRx[0]}
{core/ahb/tpm_if/muxed_din[1]}core/ahb/tpm_if/n274
xofiller!FILL16BWP7THVT!2381 core/ahb/n479 core/host/spi2sib/n384
xofiller!FILL16BWP7THVT!2997
xofiller!FILL16BWP7THVT!2385
xofiller!FILL16BWP7THVT!3559{core/ahb/ramc_ahb_if/ram_din_norm[11]}
xofiller!FILL16BWP7THVT!1228
时序分析Metal-1电路。此TCL代码在PrimeTime中运行-时序分析工具:
PT脚本
结果
xofiller!FILL16BWP7THVT!1939 0.168931
xofiller!FILL16BWP7THVT!2381 3e9
xofiller!FILL16BWP7THVT!1313 0.422257
xofiller!FILL16BWP7THVT!1938 4.779100
xofiller!FILL16BWP7THVT!2380 0.154425
xofiller!FILL16BWP7THVT!1312 0.223101
xofiller!FILL16BWP7THVT!1367 4e9
xofiller!FILL16BWP7THVT!2995 0.038134
xofiller!FILL16BWP7THVT!2383-0.111344
xofiller!FILL16BWP7THVT!2994-9e9
xofiller!FILL16BWP7THVT!2382-0.067261
xofiller!FILL16BWP7THVT!2997 8.272396
为ICC生成change_link命令
awk-F′!″!/[012356789]e9/{t=$2;gsub(/FILL/,″DCAP″,t);a=$0;gsub(/.*/″″,a);
s=$NF;gsub(/*/,″$,s);if(s>0.21354)print″change_link″a,t}′fillers_slack.report>!dcap.scr
结果
change_linkxofiller!FILL16BWP7THVT!2544 DCAP16BWP7THVT
change_linkxofiller!FILL16BWP7THVT!1226 DCAP16BWP7THVT
change_link xofiller!FILL32BWP7THVT!291 DCAP32BWP7THVT
change_link xofiller!FILL32BWP7THVT!293 DCAP32BWP7THVT
PT脚本创建一个敏感电路列表(基于违规端点列表)
结果
core/ahb/fiu/tsmc_if/fiu_tsmc_cor/fclk_cnt_2_
core/ahb/fiu/tsmc_if/fiu_tsmc_cor/n876
core/ahb/fiu/tsmc_if/fiu_tsmc_cor/n3043
core/ahb/fiu/tsmc_if/fiu_tsmc_cor/n1809
core/ahb/fiu/tsmc_if/fiu_tsmc_cor/hdl_net_1220
core/ahb/pka64_ram_envlp/bist_mem_wrap/WRAPPED_res_mem_B2/D_n[13]
core/ahb/pka64_ram_envlp/bist_mem_wrap/WRAPPED_res_mem_B2/n304
core/apb/cgc/cgc_regs/test_so3
core/apb/cgc/cgc_regs/n116
CSH脚本命名为“look”
以CSH脚本确定没有敏感电路将受到伤害。
可以理解的是,本文中所示和所述的去耦电容交换方法的实施例的上述TCL命令语言脚本仅作为示例提供。每个命令都可以改变、以另一种顺序执行,或者根据使用情况、或设计限制而将所使用的特定的p&r工具等适当省略。
某些实施例的优点包含以下的一部分或全部:
可以理解的是,设计过程通常受限于产品特定的要求,包含对“必须”在芯片中提供的去耦电容的需求。例如,“去耦电容值”(表示整个芯片所必需的表示去耦电容的数量的参数)可以通过以下设置:
a.动态电流模拟(动态IR分析,Dynamic IR analysis)例如通过传统的功率分析模拟程序(例如Apache/by-Ansys、Voltus/by-Cadene、PrimeRail/by-Synopsys)生成。
识别可能影响设计中任何标准单元(也称为std单元)的正常工作的电压降(voltage drops),并且设定去耦电容值以解决常规操作中的降级以减轻所识别到的电压降。
可以进行动态/静态IR压降模拟,包含识别低于/高于“电压容差(voltagetolerance”值的任何压降,并且对于每个这样的下降,可能认为必需提供/吸收电压摆动,并且提供将保证标准单元的适当功能的电荷,
和/或,
b.晶体管级模拟程序(Spice,PrimeRail,Apache),例如计算平均动态IR降,并设定去耦电容值,以解决常规操作中的降级,从而减轻所识别的动态IR降。
某些实施例的特定优点在于,可以使用具有较高的小区利用率和/或更拥挤的走线资源的较小的芯片和/或芯片,并且可以满足如上所述的要求。
由某些实施例产生的优点包含实现被认为必要的去耦电容插入的能力,例如预先指定的“去耦电容值”位准,满足电路模拟需求,而不会影响芯片面积(不会扩大芯片),也不会产生高度的走线拥塞。
标准单元的操作由一定的电平(即标准特征值)特征化。当标准单元的电压下降或增益大于标准特征值时,行为时序分析变得不准确,这可能导致芯片故障。
例如,标准单元正常操作的典型特征为1.2V,并且硅供应商通常将标准单元操作特征化为标称值的+/-10%,在这种情况下,即使实际电压降落在[1.08V,1.32V]范围,又称“电压容差”,而电压容差之外的值通常设定提供局部电荷给标准单元的去耦电容上限值,其确保标准单元将维持在特征化区间中,由此确保标准单元在设计的电压摆动中操作。
可以理解的是,在此使用的专用于ICC P&R TOOL的任何术语仅作为例示使用,或者可以使用其他设置与走线工具,必要的修改。
可以理解的是,诸如“强制(mandatory)”、“需要(required)”、“必须(need)”和“必须(must)”的术语是指在这里描述的特定实现或应用的上下文中作出的实现选择,是为了清楚起见而不是限制性的,因为在替代实施方式中,相同的元素可能被定义为不是强制性的、不是必需的,甚至可能完全被消除。
每个模块或部件或处理器可以集中在单个物理位置或物理装置中,或者分布在多个物理位置或物理装置上。
在本揭露的范围内所包含的,特别是根据这里的描述的电磁信号。这些信号可以携带用于以任何合适的顺序执行本文所示和所述的任何方法的任何或所有操作的电脑可读指令,包含同时执行合适的适当操作组;机器可读指令,用于以任何合适的顺序执行本文所示和所述的任何方法的任何或所有操作;由机器可读的程序存储装置,有形地体现机器可执行的指令程序,以任何合适的顺序执行本文所示和所述的任何方法的任何或所有操作,即,不一定如图所示,包含平行或同时执行而不是如图所示依序执行;包含电脑可用媒体的电脑程序产品,所述电脑可用媒体具有电脑可读程序代码,诸如可执行代码,包含其所体现的、和/或包含电脑可读程序代码,用于以任何合适的顺序执行本文所示和所述的任何方法的任何或所有操作;当以任何合适的顺序执行时由本文所示和所述的任何方法的任何或所有操作所带来的任何技术效果;任何合适的设备或装置或其组合,被编程为以任何合适的顺序单独或组合地执行本文所示和所述的任何方法的任何或所有操作;每个电子装置包含至少一个处理器和/或协作输入装置和/或输出装置,并且可以例如,用软件操作在本文中示出和描述的任何操作;信息存储装置或物理记录器(诸如磁盘或硬盘),使得至少一个电脑或其他装置被配置为以任何合适的顺序执行本文所示和所述的任何方法的任何或所有操作;在下载之前或之后,例如在存储器或诸如网际网络之类的信息网络上预先存储的至少一个程序,其以任何合适的顺序体现本文中示出和描述的任何方法的任何或所有操作,以及其上传或下载的方法,以及包含服务器和/或客户端的系统以便使用这些程序;至少一个处理器,被配置为执行所描述的操作的任何组合或执行所描述的模块的任何组合;以及执行本文所示和所述的任何方法的任何或所有操作的硬件,其以任何适当的顺序单独执行或与软件结合执行。本文描述的任何电脑可读或机器可读媒体旨在包含非暂态的电脑或机器可读媒体。
本发明的特征(包含在单独实施例的上下文中描述的操作)也可以在单个实施例中组合提供。例如,系统实施例旨在包含相应的过程实施例,反之亦然。
相反地,本发明的特征(包含在单个实施例的上下文中为了简洁而描述的操作)或以特定的顺序描述的特征可以单独地或以任何合适的子集提供,包含具有本领域已知的特征(特别是但不限于在背景技术部分或其中所述的出版物中描述的那些特征)或以不同的顺序执行。“例如(e.g.)”在这里用于不旨在限制的特定示例的意义上。每个方法可以包含例示或描述的操作中的一部分或全部,适当地例如本文所示或所述。

Claims (16)

1.一种用于设计集成电路芯片的方法,其特征在于,其包含:
针对一芯片,生成一第一电路布局,该第一电路布局包含至少一去耦电容;以及
执行一后处理去耦电容插入操作,以在该至少一去耦电容外加入至少一附加去耦电容,该后处理去耦电容插入操作包含:
对于该第一电路布局的至少一部分,识别出至少一些具有正时间冗余的至少一部分电路的位置,以作为一候选位置;以及
在该候选位置的至少一位置插入至少一该附加去耦电容。
2.如权利要求1所述的方法,其特征在于,该第一电路布局满足为该芯片定义的所有时序需求。
3.如权利要求1所述的方法,其特征在于,该至少一部分电路包含整个该第一电路布局。
4.如权利要求1所述的方法,其特征在于,在该芯片的该至少一部分电路内,该后处理去耦电容插入操作依照时间冗余程度的降序顺序重复进行。
5.如权利要求4所述的方法,其特征在于,在整个该芯片中,该后处理去耦电容插入操作依照时间冗余程度的降序顺序重复进行。
6.如权利要求1所述的方法,其特征在于,该第一电路布局包含至少一填充位置,且其中识别步骤包含:
识别该第一电路布局的该至少一部分电路中的至少一该填充位置上具有一Metal-1信号交越。
7.如权利要求6所述的方法,其特征在于,识别步骤包含识别该芯片的该第一电路布局的至少该部分中,仅以至少该部分中的具有正向时序冗余的多个Metal-1交越信号该填充位置作为该候选位置;以及以至少一对应去耦电容取代至少一个该候选位置。
8.如权利要求1所述的方法,其特征在于,在具有正时间冗余的电路中的所有填充位置被识别为该候选位置。
9.如权利要求1所述的方法,其特征在于,在该芯片的至少一部分电路中,该后处理去耦电容插入操作重复进行直到达到以下停止标准:所有插入的去耦电容的总和已经达到预定的总电容值。
10.如权利要求1所述的方法,其特征在于,更包含:
检查至少一填充位置以确认该至少一填充位置上方是否存在一Metal-1走线,而没有Metal-1走线在其上方的该至少一填充位置由该去耦电容取代。
11.如权利要求10所述的方法,其特征在于,所有该填充位置被确认是否有该Metal-1走线在其上方。
12.如权利要求10所述的方法,其特征在于,用该去耦电容取代一个别填充位置的必要条件是在该个别填充位置上方不存在该Metal-1走线。
13.如权利要求1所述的方法,其特征在于,以正向时序识别Metal-1电路区段,迫使至少一填充位置与该去耦电容互换,导致设计规则/电路短路,并重新走线至少一个正在短路的Metal-1电路,以缓解高于Metal-1的一金属层中的信号短路现象。
14.如权利要求1所述的方法,其特征在于,该第一电路布局包含至少一个填充位置,其中识别步骤包含:
识别该填充位置中的至少一部分具有正向冗余的电路的该填充位置作为该候选位置。
15.一种用于设计集成电路芯片的系统,其特征在于,包含:
至少一处理器,被配置为针对一芯片产生一第一电路布局,其包含至少一去耦电容;以及执行一后处理去耦电容插入操作,以在该至少一去耦电容外加入至少一附加去耦电容,该后处理去耦电容插入操作包含:
对于该第一电路布局的至少一部分,识别出至少一些具有正向冗余的至少一部分的位置以作为一候选位置;以及
在该候选位置的至少一个别位置插入至少一该附加去耦电容。
16.一种电脑程序产品,其特征在于,包含:其中包含一电脑可读程序代码的一非暂态实体电脑可读媒体,该电脑可读程序代码适于执行以实施集成电路芯片的设计方法,该方法包含:
针对一芯片产生一第一电路布局,其包含至少一去耦电容;及执行一后处理去耦电容插入操作,以在该至少一去耦电容外加入至少一附加去耦电容,该后处理去耦电容插入操作包含:
对于该第一电路布局的至少一部分,识别出至少一些具有正向冗余的至少一部分电路的位置以作为一候选位置;以及
在该候选位置的至少一个别位置插入至少一该附加去耦电容。
CN201810160739.7A 2017-06-14 2018-02-27 用于设计集成电路芯片的方法、系统及电脑程序产品 Active CN109086468B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/622,625 US10289790B2 (en) 2017-06-14 2017-06-14 System, method and computer product for enhanced decoupling capacitor implementation
US15/622,625 2017-06-14

Publications (2)

Publication Number Publication Date
CN109086468A true CN109086468A (zh) 2018-12-25
CN109086468B CN109086468B (zh) 2023-01-13

Family

ID=64657485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810160739.7A Active CN109086468B (zh) 2017-06-14 2018-02-27 用于设计集成电路芯片的方法、系统及电脑程序产品

Country Status (3)

Country Link
US (1) US10289790B2 (zh)
CN (1) CN109086468B (zh)
TW (1) TWI647582B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI716079B (zh) * 2019-05-09 2021-01-11 大陸商長江存儲科技有限責任公司 用於功能對等檢測的模擬方法
CN116151184A (zh) * 2023-04-20 2023-05-23 广东赛昉科技有限公司 实现最佳去耦电容值且满足金属密度约束的布局方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017127276A1 (de) * 2017-08-30 2019-02-28 Taiwan Semiconductor Manufacturing Co., Ltd. Standardzellen und abwandlungen davon innerhalb einer standardzellenbibliothek
US11296093B2 (en) * 2020-02-28 2022-04-05 International Business Machines Corporation Deep trench capacitor distribution
CN113688595B (zh) * 2020-05-19 2023-08-18 上海复旦微电子集团股份有限公司 系统级封装电路原理图设计方法及装置、可读存储介质
TWI806286B (zh) * 2021-12-14 2023-06-21 瑞昱半導體股份有限公司 用於濾波器的積體電路佈局及積體電路佈局方法
CN116451634A (zh) * 2022-02-28 2023-07-18 台湾积体电路制造股份有限公司 减少因ir压降而导致的设计违规的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1126931A (zh) * 1994-09-23 1996-07-17 摩托罗拉公司 提供同步通信环境的方法和装置
US6516456B1 (en) * 1997-01-27 2003-02-04 Unisys Corporation Method and apparatus for selectively viewing nets within a database editor tool
US8719746B1 (en) * 2012-11-26 2014-05-06 Lsi Corporation Reduction of metal fill insertion time in integrated circuit design process

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6618847B1 (en) * 1998-11-13 2003-09-09 Stmicroelectronics, Inc. Power stabilizer using under-utilized standard cells
TW504807B (en) * 2000-04-10 2002-10-01 Advanced Semiconductor Eng Electronic package structure
US6323050B1 (en) 2000-10-02 2001-11-27 International Business Machines Corporation Method for evaluating decoupling capacitor placement for VLSI chips
US6487702B2 (en) * 2001-03-30 2002-11-26 Sun Microsystems, Inc. Automated decoupling capacitor insertion
US20030212973A1 (en) * 2002-05-13 2003-11-13 Shen Lin Methods for full-chip vectorless dynamic IR analysis in IC designs
US6763509B2 (en) 2002-09-26 2004-07-13 Sun Microsystems, Inc. Method and apparatus for allocating decoupling capacitor cells
US6898769B2 (en) 2002-10-10 2005-05-24 International Business Machines Corporation Decoupling capacitor sizing and placement
JP4860123B2 (ja) 2004-07-22 2012-01-25 富士通セミコンダクター株式会社 デカップリング容量の配置方法
JP4272647B2 (ja) 2005-09-09 2009-06-03 富士通マイクロエレクトロニクス株式会社 半導体集積回路装置のレイアウト方法及びそのレイアウトプログラム
JP5224642B2 (ja) 2005-11-21 2013-07-03 富士通セミコンダクター株式会社 集積回路のレイアウト方法及びコンピュータプログラム
JP5217418B2 (ja) 2007-12-25 2013-06-19 富士通セミコンダクター株式会社 半導体装置、容量値算出方法
US8015522B2 (en) * 2008-01-04 2011-09-06 Springsoft Usa, Inc. System for implementing post-silicon IC design changes
CN102236728B (zh) * 2010-04-30 2013-08-07 国际商业机器公司 一种集成电路设计方法和设计仿真系统
US8421205B2 (en) 2010-05-06 2013-04-16 Taiwan Semiconductor Manufacturing Company, Ltd. Power layout for integrated circuits
US9768119B2 (en) * 2010-07-28 2017-09-19 Taiwan Semiconductor Manufacturing Co., Ltd. Apparatus and method for mitigating dynamic IR voltage drop and electromigration affects
US8479136B2 (en) 2011-05-03 2013-07-02 International Business Machines Corporation Decoupling capacitor insertion using hypergraph connectivity analysis
US20130088275A1 (en) * 2011-10-06 2013-04-11 Lsi Corporation Dynamic voltage drop aware clock insertion tool
JP5947580B2 (ja) * 2012-03-23 2016-07-06 ローム株式会社 デカップルキャパシタセル、セルベースic、セルベースicのレイアウトシステムおよびレイアウト方法
TWI472941B (zh) * 2012-04-18 2015-02-11 Global Unichip Corp 晶片輸出入設計的方法
US20140167815A1 (en) 2012-12-18 2014-06-19 Broadcom Corporation Area reconfigurable cells of a standard cell library
US9465899B2 (en) * 2013-03-15 2016-10-11 Freescale Semiconductor, Inc. Method for provisioning decoupling capacitance in an integrated circuit
US20150186586A1 (en) 2013-12-30 2015-07-02 Samsung Electronics Co., Ltd. Integrated circuit layouts and methods to improve performance
US9262572B2 (en) 2014-06-27 2016-02-16 Apple Inc. Fast and accurate capacitance checker
US9734276B2 (en) 2014-10-22 2017-08-15 Samsung Electronics Co., Ltd. Integrated circuit and method of designing layout of the same
DE102016111337B4 (de) * 2016-06-21 2018-03-15 Tdk-Micronas Gmbh Verfahren zur Steigerung der Entkoppelungs-Kapazität in einer mikroelektronischen Schaltung

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1126931A (zh) * 1994-09-23 1996-07-17 摩托罗拉公司 提供同步通信环境的方法和装置
US6516456B1 (en) * 1997-01-27 2003-02-04 Unisys Corporation Method and apparatus for selectively viewing nets within a database editor tool
US8719746B1 (en) * 2012-11-26 2014-05-06 Lsi Corporation Reduction of metal fill insertion time in integrated circuit design process

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI716079B (zh) * 2019-05-09 2021-01-11 大陸商長江存儲科技有限責任公司 用於功能對等檢測的模擬方法
US11170147B2 (en) 2019-05-09 2021-11-09 Yangtze Memory Technologies Co., Ltd. Simulation method for use in functional equivalence check
CN116151184A (zh) * 2023-04-20 2023-05-23 广东赛昉科技有限公司 实现最佳去耦电容值且满足金属密度约束的布局方法

Also Published As

Publication number Publication date
US20180365363A1 (en) 2018-12-20
TWI647582B (zh) 2019-01-11
TW201905742A (zh) 2019-02-01
US10289790B2 (en) 2019-05-14
CN109086468B (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN109086468A (zh) 用于设计集成电路芯片的方法、系统及电脑程序产品
US8966425B1 (en) Clock tree generation and routing
US7802208B1 (en) Design automation using spine routing
US9767240B2 (en) Temperature-aware integrated circuit design methods and systems
US7739627B2 (en) System and method of maximizing integrated circuit manufacturing yield with context-dependent yield cells
US8713498B2 (en) Method and system for physical verification using network segment current
CN102741848B (zh) 用所定义模式改善预布线和后布线网相关性
US9367660B2 (en) Electromigration-aware layout generation
Sapatnekar et al. Analysis and optimization of power grids
US8887114B2 (en) Automatic tap driver generation in a hybrid clock distribution system
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US9785740B2 (en) Computer implemented system and method for modifying a layout of standard cells defining a circuit component
KR20160063225A (ko) 집적 회로 레이아웃 생성을 위한 방법, 소자 및 컴퓨터 프로그램 제품
JP2004342100A (ja) 集積回路の物理設計用のツールフロープロセス
US20170116367A1 (en) Electromigration-aware integrated circuit design methods and systems
Venkataraman et al. Practical techniques to reduce skew and its variations in buffered clock networks
CN107403024A (zh) Ic的电压降和电迁移的分析方法及计算机可读存储介质
US10445457B1 (en) Methods, systems, and articles of manufacture for implementing a physical design of an electronic design with DFM and design specification awareness
TWI833036B (zh) 產生電路佈局之方法及系統
US7092838B1 (en) Method and apparatus for the analysis and optimization of variability in nanometer technologies
US10360342B2 (en) Method, system, and storage medium for engineering change order scheme in circuit design
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US6941532B2 (en) Clock skew verification methodology for grid-based design
Su et al. Congestion-driven codesign of power and signal networks
US10922470B2 (en) Method and system of forming semiconductor device

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