CN113688588A - 由形成计算设备的数据处理器实现的方法 - Google Patents
由形成计算设备的数据处理器实现的方法 Download PDFInfo
- Publication number
- CN113688588A CN113688588A CN202110171802.9A CN202110171802A CN113688588A CN 113688588 A CN113688588 A CN 113688588A CN 202110171802 A CN202110171802 A CN 202110171802A CN 113688588 A CN113688588 A CN 113688588A
- Authority
- CN
- China
- Prior art keywords
- circuit design
- design
- timing
- target
- optimal
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000013461 design Methods 0.000 claims abstract description 270
- 238000012986 modification Methods 0.000 claims abstract description 7
- 230000004048 modification Effects 0.000 claims abstract description 7
- 238000012795 verification Methods 0.000 abstract description 28
- 238000005516 engineering process Methods 0.000 abstract description 26
- 238000004458 analytical method Methods 0.000 abstract description 7
- 238000013459 approach Methods 0.000 abstract description 5
- 230000003068 static effect Effects 0.000 abstract description 5
- 238000013508 migration Methods 0.000 description 28
- 230000005012 migration Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 27
- 230000015654 memory Effects 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920000729 poly(L-lysine) polymer Polymers 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/16—Equivalence checking
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本文中描述用于形成至少一个计算装置的一或多个数据处理器实施的方法。接收具有第一组网表及时序约束的目标电路设计。从第一移植网表及时序约束提取多个关键时钟引脚网络负载设置属性。在目标设计数据库被负载用于静态时序分析(STA)之后,通过将多个目标属性与最佳电路设计的多个最佳属性进行比较,在目标电路设计与最佳电路设计之间检查结果报告中的时钟引脚网络负载设置属性失配。在目标技术处使用此方法,具体地说,使用时序形式验证,提供属性失配以用于其它设计或时序约束修改及/或更新,以便基于移植网表及综合设计约束(SDC)实现有效设计时序会签。
Description
技术领域
本揭露中所描述的技术大体上涉及集成电路系统芯片设计实施流程,且更具体地说,涉及当跨技术节点移植设计时的设计时序约束验证。
背景技术
用半导体装置来设计专用集成电路(application specific integratedcircuits;ASIC)和片上系统(System on Chips;SOC)可为耗时且具有挑战性的任务。设计移植是一种在不同技术中再使用先前设计电路区块的方式。通过设计移植,可将来自一种技术的电路区块移植到另一技术。这种移植可彻底地减少具有不同或替代电路和/或装置布局或生产方法的新ASIC和/或SOC半导体装置的设计时间。网表是电路区块的电子组件的列表及节点的列表,电子组件由所述节点连接。通过移植,为了在网表内实施结构设计,使用时序再验证来确保新设计符合性能目标(例如,期望操作时钟频率)。时序约束是应用于限定特殊设计的期望性能的一组给定路径或网络的一系列约束。时序属性是附加信息性标签、备注或符号性质,当对编译的设计数据库执行静态时序分析(STA)时,可采纳或查询所述性质。
发明内容
本揭露是针对一种由形成至少一个计算装置的一或多个数据处理器实施的方法包括以下多个操作:接收包括第一网表及第一组时序约束的目标电路设计;从第一网表及第一组时序约束提取多个目标属性;通过将所述多个目标属性与最佳(golden)电路设计的多个最佳属性进行比较来确定目标电路设计与最佳电路设计之间的属性失配;以及提供属性失配以用于网表及系统设计约束修改的其它设计迭代。所述多个操作中的至少一个由至少一个数据处理器执行。
附图说明
当结合附图阅读时从以下详细描述最好地理解本揭露的各方面。应注意,根据业界中的标准惯例,各种特征未按比例绘制。实际上,为了论述清楚起见,可任意增大或减小各种特征的尺寸。
图1示出根据本揭露的各种实施例的基于属性点的时序约束验证的使用的示例性应用。
图2示出根据本揭露的各种实施例的示出基于属性点的时序约束形式验证的示例性过程流程图。
图3示出根据本揭露的各种实施例的基于属性点的时序约束验证的另一示例性过程流程图。
图4示出根据本揭露的各种实施例的基于属性点的时序约束形式验证的另一示例性过程流程图。
图5示出根据本揭露的各种实施例的示例性最佳电路设计和示例性目标电路设计。
图6示出根据本揭露的各种实施例的已校正目标电路设计的所识别验证失败的示例性目标电路设计。
图7示出根据本揭露的各种实施例的可使用本文中所描述的基于属性点的时序约束形式验证方法论验证的另一示例性最佳电路设计和对应目标电路设计。
图8示出根据本揭露的各种实施例的可使用本文中所描述的基于属性点的时序约束形式验证方法论验证的另一示例性最佳电路设计和对应目标电路设计。
图9示出根据本揭露的各种实施例的可使用本文中所描述的基于属性点的时序约束形式验证方法论验证的另一示例性最佳电路设计和对应目标电路设计。
图10是根据本揭露的各种实施例的基于属性点的时序约束形式验证的示例性方法的流程图。
图11是根据本揭露的各种实施例的示出用于实施本文中所描述的各种方面的样本计算装置架构的图。
附图标号说明
110:传统电路设计;
112、114、116、122、124:属性;
120、330、550、600、750、850、950:目标电路设计;
126:缺失属性;
200、300、400:程序流程图;
210、220、362、372:STA DB;
230:基于点的程序;
240:基于时序点的报告;
250:关键点对点比较;
310、500、700、800、900:最佳电路设计;
312、332、502、552:IO组件;
314:标准单元;
316:存储器巨集组件;
320:最佳时序约束;
334:标准单元;
336:存储器巨集组件;
340:时序约束;
350:时序约束FV;
360:STA;
364、374:STA覆盖度报告;
368:最佳电路设计库;
378:目标电路设计库;
410、420、440、450、1010、1020、1030、1040、1050:步骤;
430:对应网表和时序约束;
460:更新的移植目标设计网表;
504、508、514、554、558、564、906:触发器;
506、556、804、806、808、810、852、854、856、904:逻辑门;
510、560:时钟分频器;
512、562:PLL组件;
606:OR门;
702、802、902:区块A;
704:级联逻辑-1;
706:级联逻辑-2;
755:组合单元;
955:组合触发器;
1000:流程图;
1100:图;
1104:总线;
1108:处理系统;
1112:只读存储器;
1114:显示接口;
1116:随机存取存储器;
1120:通信端口;
1128:输入装置接口;
1132:输入装置;
1136:键盘;
1140:显示装置;
1148:磁盘控制器;
1152、1156:磁盘驱动器。
具体实施方式
以下公开提供用于实施所提供的主题的不同特征的许多不同实施例或实例。下文描述组件和布置的具体实例来简化本揭露。当然,这些仅为实例且并不打算为限制性的。举例来说,在以下描述中,第一特征在第二特征上方或第二特征上形成可包含第一特征与第二特征直接接触地形成的实施例,且还可包含可在第一特征与第二特征之间形成额外特征从而使得第一特征与第二特征可以不直接接触的实施例。另外,本揭露可在各种实例中重复附图标号和/或字母。这种重复是出于简化和清楚的目的,且本身并不指示所论述的各种实施例和/或配置之间的关系。
对于从一种技术到另一技术的设计移植,起初使用一种工艺技术研发出的传统或最佳(golden)设计可被翻译为使用不同工艺技术的目标设计。设计的移植有助于已知的适用于传统设计的某些先前建立的验证方法的再使用。举例来说,当将设计从28纳米工艺技术(例如第一技术工艺)移植到低至16纳米、7纳米以及/或5纳米工艺技术(例如第二技术工艺)的新设计时,数个先前建立的验证方法可被移植到目标设计。不同于RTL设计再综合,涉及逻辑门级网表到具有相似功能特性的目标逻辑门级网表的设计移植和综合设计约束(synthesis design constraints;SDC)移植(例如SDC工具命令语言(tool-command-language;TCL))可能需要验证时序约束。时序约束也可被移植。
时序约束用于前端设计编译器(design compiler;DC)、设计编译器图形(designcompiler graphical;DCG)综合以及/或后端实体综合(back-end physical synthesis)。为了将最佳电路设计的网表移植到目标电路设计,需要时序再验证以确保符合目标设计的性能目标。在移植之后,可能需要工程调谐和/或微调以确保目标设计与最佳设计匹配。例如标准单元、存储器巨集以及/或知识产权巨集的基本设计可能并不总是具有与例如包装器、层次结构以及/或再分区的新设计组件的完全引脚对引脚的兼容性。如此,在移植之后,所移植的设计需要例如经由STA的静态时序收敛会签的仔细验证或确认。通过本文中所描述的基于属性点(例如,网络的引脚的特征或性质)的时序约束(例如,结合单元或触发器的对应关键输入端和输出端)形式验证方法论,提取且检查期望或最佳设计内的数个有效时序路径以及用于引脚、案例及/或异常的任何重要属性。将提取的有效时序路径以及重要属性与来自移植设计的性能的单元引脚属性报告进行比较。来自那些报告的任何失配可被识别、再验证以捕获及处理那些非1对1映射失配端口或网络,且所述失配可在移植设计内经由设计更新或设计和SDC更新及/或修改被校正。
图1示出根据本揭露的各种实施例的基于属性点的时序约束验证的使用的示例性应用。传统电路设计110可具有由网表和/或时序约束描述的数个特征。传统电路设计110还包含属性112、属性114、属性116(例如点、引脚、信息)。属性112、属性114、属性116对于特殊电路的操作来说是重要的。传统电路设计110可为例如用于28纳米工艺技术的设计。随着电子装置的大小持续减小,那些装置内的电路设计也减小。传统电路设计110的功能和/或验证方法可经由设计移植被维持。这种移植消除当试图减小其尺寸时对电路的完全再设计的需要。举例来说,可将传统电路设计110移植到目标电路设计120,所述目标电路设计120使用较小工艺技术,例如16纳米、7纳米及/或5纳米工艺技术。通过移植,可能存在传统电路设计110的组合在目标电路设计120内的一些设计特征,以减小其尺寸。这些设计特征的组合可致使传统电路设计110与目标电路设计120之间的属性失配。举例来说,如图1中所示出,目标电路设计120仅可具有传统电路设计的两个属性122、属性124而不是三个属性112、属性114、属性116。为了确保目标电路设计120延续传统电路设计110的预期功能和/或验证特征,对属性层级的属性失配的分析被执行。传统电路设计110与目标电路设计120之间的任何属性失配,例如在移植之后可能需要进行设计或SDC更新的缺失属性126,被识别,且被提供给电路设计师或自动设计系统以用于适当的校正。
图2示出根据本揭露的各种实施例的示出基于属性点的时序约束验证的示例性过程流程图200。静态时序分析(Static timing analysis;STA)为一种时序弧延迟计算或时序路径延迟计算。STA数据库(DB)为存储提取的特殊电路设计的STA特征(例如STA路径延迟和/或STA设计点属性信息)的数据库。如图2中所示出,传统或最佳设计(例如,节点A最佳)存储在STA DB 210中。STA DB 210包含与最佳设计相关联的网表和时序约束,例如与28纳米工艺技术设计相关联的网表和时序约束。可将所述最佳网表和时序约束移植到例如再生的STA DB 220(例如节点-B RE-GEN)的另一STA DB中以产生新设计,例如3微米、1.5微米、1.2微米、1.0微米、0.8微米、0.6微米、0.5微米、0.35微米、0.25微米、0.18微米、0.13微米、90纳米、65纳米、40纳米、28纳米、22纳米、20纳米、16纳米、12纳米、10纳米、7纳米、6纳米、5纳米以及/或3纳米工艺技术设计等。STA DB 220包含移植目标网表和时序约束。然而,由于例如工艺技术或基础单元和巨集布局架构的大小改变,目标设计可不具有与最佳设计一样的精确引脚布局,但具有与标准单元相同的行为功能和/或存储器巨集。因为此潜在失配,目标设计中可能存在一些未映射的引脚或其它单元信息。另外,可从STA DB 220丢弃最佳设计的一些时序约束或将最佳设计的一些时序约束合并在STA DB 220内。基于点的程序230产生识别伪路径、多周期路径及/或案例值设置的各种属性的基于时序点的报告240。基于点的程序230一次一个地(例如逐点)检查每一属性(例如,伪路径(false path)、多周期路径(multi-cycle path)及/或案例值设置(case value setting))。基于时序点的报告240列出与每一引脚相关联的时序属性。基于点的程序230通过逐点检查属性来执行基于属性点的时序约束形式验证(formal verification;FV)。通过将评估分成多个阶段,最佳电路设计与目标电路设计之间的失配可更快速地被识别。在第一阶段中,SDC日志的任何错误被检查。如果新移植的SDC不被验证,则设计工具引擎和时序工具引擎无法适当地加载本设计以用于分析和模拟,其继而可致使程序和/或过程流程中止实施和验证。这种错误可识别移植设计(例如目标设计)不符合基本设计需求的问题。在两种设计(例如,最佳电路设计和目标电路设计)之间的所有连续单元和引脚的属性被评估。在第二阶段中,所有时序路径(例如,实例时序路径包含endpoint_clock、startpoint_clock、startpoint_input_delay_value、endpoint_output_delay_value、dominant_exception等)的属性被评估。在第三阶段中,比较最佳目标电路设计和目标电路设计的网表之间的每个单元的时序路径的数目被比较,以确保每个单元中的时序路径的数目相同。
在基于时序点的报告240内识别的属性被视为对于移植到目标电路设计是必不可少的。使用关键点对点比较250,使基于STA DB 210和STA DB 220产生的基于时序点的报告240被相互比较。关键点对点比较250逐个地比较每一属性(例如,点对点)。利用关键点对点比较250来识别最佳电路设计与目标电路设计之间的每一属性的任何问题,例如缺失属性和/或不正确属性。接着将这些属性提供给用户和/或自动化系统以用于目标电路设计的潜在再设计(例如,以实现与原始最佳设计特性和功能完全相同的功能)。
图3示出根据本揭露的各种实施例的基于属性点的时序约束验证(例如,将最佳设计与目标电路设计之间的每一属性进行比较)的另一示例性过程图300。在图3中所示出的实施例中,最佳电路设计310包含输入/输出(input/output;IO)组件312、标准单元(例如stdcell)314以及存储器巨集组件316。存储器巨集组件316接收输入数据(DataIn)、时钟及输出数据(DataOut)。最佳电路设计310包含例如多角多模(multi-corner multi-modes;MCMM)约束的数个最佳时序约束320。实例多角多模约束包含变量、时钟、案例/常数、最大延迟路径(max_delay路径)、多周期路径、伪路径、IO延迟及/或异常。通过MCMM分析,将多个设计点用于确定制造过程所导致的环境和/或操作特性的效果。举例来说,最佳时序约束320可包含设置变量、时钟、案例/常数、最大延迟路径、多周期路径、伪路径、IO延迟及/或其它异常的约束。将最佳电路设计310移植到具有实体层次再分区的目标电路设计330。基于由组件的子集执行的功能,电路设计被划分成较小区块(例如分区)。这些分区可按实体层次被布置。因为目标电路设计330与最佳电路设计310之间的不同实际大小,来自最佳电路设计310的分区可不会被一个对一个的映射到目标电路设计330。如此,目标电路设计330可经再分区。换句话说,标准单元334被组合到一起且IO组件332处于电路层次的不同层级中。另外,存储器巨集组件336不仅接收数据和时钟信号作为输入,而且还接收测试输入(TestIn)。存储器巨集组件336还输出并不由最佳电路设计310产生的额外测试输出(TestOut)。与目标电路设计330相关联时序约束340还可包含MCMM约束,但因为最佳电路设计310并不包含测试输入和输出引脚,所以时序约束320缺失这些约束。通过逐点检查属性,使用基于属性点的时序约束FV 350将最佳电路设计310的时序约束320与目标电路设计330的这些时序约束340进行比较,缺失的测试输入和输出引脚约束可被识别且被固定或加上。传统STA方法360可用以产生STA DB 362、STA DB372以及最佳电路设计310和目标电路设计330的STA覆盖度报告364、STA覆盖度报告374。STA360可使用例如最佳电路设计库368和目标电路设计库378的额外数据库资源来执行数字电路(例如目标电路设计330内的特殊电路)的模拟计算预期时序而不需要对目标电路设计330的模拟。然而,最后,与STA 360期间相反,由程序所报告的在最佳电路设计310和目标电路设计330之间的任何设计失配经由基于属性点的时序约束FV 350被识别。
图4示出根据本揭露的各种实施例通过逐点检查时序属性的基于属性点的时序约束FV的另一示例性过程流程图400。在410处,从最佳电路设计和目标电路设计提取有效的时序路径和引脚、案例及/或异常的任何重要属性。在420处,基于属性报告之间的比较确定最佳电路设计(最佳SRC tape-out)与目标电路设计之间是否存在属性失配。如果识别到属性失配,则修改目标门设计(例如,移植设计)的时序约束以解决属性失配。可通过用户手动地修改目标电路设计或经由使用自动工具修改设计来获得这种修改。利用修改后的设计,对应网表和时序约束430也被更新以反映所述设计(例如,经更新的移植时序约束(SDC)/更新的移植目标设计网表460)。将这些更新的移植时序约束(SDC)/更新的移植目标设计网表460再编译且提供回目标数据库。然而,如果未识别到属性失配,则接着在440处执行时序点的比较以识别时序失配。如果不存在时序点失配,则在450处,属性点为等效的(例如,逐点评估的每一属性在最佳电路设计310与目标电路设计330之间匹配),且移植时序约束足以用于实际实施方案和会签。网表到网表在功能性方面应大约100%匹配。SDC到SDC约束应恰当地匹配或相关以使得可在实施方案和验证工具以及程序中恰当地加载对设计的时序检查。
图5示出根据本揭露的各种实施例的示例性最佳电路设计500和示例性目标电路设计550。如图1至图4中详细描述的基于属性点的时序约束FV可用于通过逐点比较目标电路设计550与最佳电路设计500之间的每一属性来验证目标电路设计550。根据图5中所示的实施例的最佳电路设计500绘示路径弧中的时序路径。最佳设计包含产生且提供时钟信号(例如,IO_CLK)到触发器504的IO组件502。触发器504的输出耦合到逻辑门506(例如OR门)。逻辑门506将触发器504的输出与触发器508的输出进行比较。触发器508从时钟分频器510(例如DIV)接收时钟输入(例如DIV_CLK)。时钟分频器510将对从锁相环(phase-lockedloop;PLL)组件512接收到的时钟信号(例如PLL_CLK)进行划分。另一触发器514接收来自PLL组件512的时钟信号(例如PLL_CLK)以及逻辑门506的输出。在这个特殊最佳电路设计500中,触发器504、触发器508以及触发器514为集成或关键组件。因此,在最佳电路设计500与目标电路设计550之间需要一对一的兼容相关。目标电路设计550也必须具有与最佳电路设计500相似的数据路径。目标电路设计550表现为包含与最佳电路设计500相似的实体组件,例如I/O组件552、触发器554、触发器558、触发器564、逻辑门556、时钟分频器560以及PLL组件562。然而,如果属性引脚层级的比较识别出最佳电路设计500和目标电路设计550并不等效(例如,目标电路设计550与最佳电路设计500之间的属性并不匹配),则目标电路设计550需要额外改变或更新。举例来说,由于在属性点信息比较之后目标550电路处的伪路径再声明,这种改变或更新可包含约束更新。
对于触发器504、触发器508以及触发器514的关键组件的每一节点,存在被提取且验证的对应属性。在图5中示出的实例中,最佳电路设计包含三个重要时钟属性:IO_CLK、DIV_CLK以及PLL_CLK,和两个伪路径数据属性。伪路径为在时序分析期间可被忽略的数据属性,因为它是即使在经过较大时间间隔之后也能够被捕获但仍产生所需输出的时序路径。报告基于最佳电路设计500的属性被产生且被与基于目标电路设计550的属性产生的报告进行比较。报告可为例如描述属性的文本文件或逗点分隔值(comma-separate values)文件。这两个报告被相互比较以确定目标电路设计550缺失两个伪路径数据属性。这些缺失伪路径(例如,验证失败)被识别且被强调给用户(例如经由报警消息或产生的验证报告)。如本文中所描述的属性比较可在逻辑门506与逻辑门556之间以及触发器514与触发器564之间被执行。这种比较检查以确定目标设计约束内是否存在任何伪路径属性。
图6示出根据本揭露的各种实施例的已校正目标电路设计550的所识别验证失败的示例性目标电路设计600。更新目标电路设计600的网表和属性列表,以便在或(OR)门606(Dummy_AND2)内添加伪路径。
图7示出根据本揭露的各种实施例的可使用本文中所描述的基于属性点的时序约束FV方法论验证的另一示例性最佳电路设计700和对应目标电路设计750。最佳电路设计700可包含将信号输出到一级联逻辑组件(例如,级联逻辑-1 704和级联逻辑-2 706)的组件的第一区块(例如,区块A702)。当移植到目标电路设计750时,将级联逻辑-1 704和级联逻辑-2 706组件可被组合成组合单元755的单个组件(例如,出于性能、功率以及面积(performance power area;PPA)的目的)。未被映射为组合单元路径的路径-1-2的目标电路设计的移植时序约束并不存在于最佳电路设计700内。这种未映射约束可使用本文中描述为目标电路设计750与最佳电路设计700之间的属性的逐点比较的基于属性点的时序约束FV方法被识别。换句话说,如果存在确实与最佳电路设计700逐点匹配的目标电路设计750的移植时序约束,则所述未映射约束在逐点比较期间将被识别出且可被补救。
图8示出根据本揭露的各种实施例的可使用本文中所描述的基于属性点的时序约束FV方法论验证的另一示例性最佳电路设计800和对应目标电路设计850。最佳电路设计800可包含将信号输出到一组逻辑门804、逻辑门806、逻辑门808、逻辑门810的组件的第一区块(例如,区块A802)。逻辑门804、逻辑门806、逻辑门808、逻辑门810在目标电路设计850中被压缩到较小数目个逻辑门(例如,逻辑门852、逻辑门854、逻辑门856)。然而,通过此移植,对最佳电路设计的网络1、网络2、以及网络3的约束不再存在于目标电路设计850内且由此未被映射。可使用本文中描述为目标电路设计850与最佳电路设计800之间的属性的逐点比较的基于属性点的时序约束FV方法论识别这种未映射约束。换句话说,如果存在确实与最佳电路设计800逐点匹配的目标电路设计850的移植时序约束,则所述未映射约束在逐点比较期间将被识别出且可被补救。
图9示出根据本揭露的各种实施例的可使用本文中所描述的基于属性点的时序约束FV方法论验证的另一示例性最佳电路设计900和对应目标电路设计950。最佳电路设计900可包含将信号输出到逻辑门904和触发器906的组件的第一区块(例如区块A 902)。目标电路设计950包含组合触发器955而不是单独逻辑门和触发器。随着最佳电路设计900的移植,因为这种路径不存在于目标电路设计950内,所以对网络A的约束未被映射。可使用本文中所描述的基于属性点的时序约束FV方法论识别这种未映射约束。
不管本文中所描述的实例应用,本领域的技术人员可理解,使用本文中所描述的技术移植且验证的技术可应用于数个最佳电路设计,包含但不限于标准单元、静态随机存取存储器(static random access memory;SRAM)、I/O组件、PLL、模拟巨集、片上系统(SOC)设计及/或专用集成电路(ASIC)。
图10是根据本揭露的各种实施例的基于属性点的时序约束FV的示例性方法的流程图1000。方法适用于广泛多种基础结构。在1010处,接收具有第一网表和第一组时序约束的目标设计。在1020处,从第一网表和第一组时序约束提取多个目标属性。在1030处,通过将多个目标属性与多最佳电路设计的个最佳属性进行比较来确定目标电路设计与最佳电路设计之间的属性失配。在1040处,提供属性失配以用于其它设计迭代。在1050处,如果不存在属性失配,则当将设计从一种技术移植到另一技术时,在关键比较点处存在等效属性且/或设计约束为等效的。如果存在属性失配,则如步骤1030中所描述来分析所述失配。
图11是示出用于实施本文中所描述的各种方面的样本计算装置架构的图1100。总线1104可充当使硬件的其它示出的组件互连的信息高速公路。标记为CPU(中央处理单元)的处理系统1108(例如在给定计算机或多个计算机处的一或多个计算机处理器/数据处理器)可实行执行程序所需的计算和逻辑运算。非暂时性处理器可读存储媒体(如只读存储器(ROM)1112)和随机存取存储器(RAM)1116可与处理系统1108通信且可包含用于此处指定的操作的一或多个编程指令。任选地,程序指令可存储于非暂时性计算机可读存储媒体上,例如磁盘、光盘、可记录存储器装置、快闪存储器或其它实体存储媒体。
在一个实例中,磁盘控制器1148可将一或多个任选的磁盘驱动器介接到系统总线1104。这些磁盘驱动器可为如1152或外部或内部硬盘驱动器1156的外部或内部CD-ROM、CD-R、CD-RW或DVD,或固态驱动器。如先前所指示,这些各种磁盘驱动器1152、磁盘驱动器1156以及磁盘控制器为任选装置。系统总线1104还可包含至少一个通信端口1120,以允许与实体连接到计算系统或可通过有线或无线网络从外部获得的外部装置进行通信。在一些案例中,通信端口1120包含或另外包括网络接口。
为实现与用户的交互,本文中所描述的主题可在具有显示装置1140(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)的计算装置上实施,以用于将从总线1104获得的信息显示给用户和用户可借以将输入提供到计算机的输入装置1132,例如键盘1136和/或指向装置(例如鼠标或导航球)和/或触摸屏。其它种类的输入装置1132也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如视觉反馈、通过麦克风的听觉反馈或触觉反馈);且来自用户的输入可以任何形式被接收,包含声波、语音或触觉输入。输入装置1132和键盘1136可以借助于输入装置接口1128耦合到总线1104且经由总线1104传送信息。例如专用服务器的其它计算装置可省略显示器1140和显示接口1114、输入装置1132、键盘1136以及输入装置接口1128中的一或多个。
另外,可通过包括可由装置处理子系统执行的程序指令的程序代码在许多不同类型的处理装置上实施本文中所描述的方法和系统。软件程序指令可包含可用于致使处理系统来执行本文中所描述的方法和操作的源代码、目标代码、机器代码或任何其它存储数据,且可将所述软件程序指令设置于例如C、C++、JAVA、Perl、Python、Tcl的任何适合的语言或任何其它适合的编程语言中。然而,还可使用其它实施方案,例如经配置以进行本文中所描述的方法和系统的固件或甚至适当设计的硬件。
系统和方法数据(例如,关联、映射、数据输入、数据输出、中间数据结果、最终数据结果等)可存储且实施于一或多个不同类型的计算机实施数据存储器中,例如不同类型的存储装置和程序构建体(例如,RAM、ROM、快闪存储器、平面文件、数据库、程序数据结构、程序变量、IF-THEN(或相似类型)表述构建体等)。应注意,数据结构可描述用于在数据库、程序、存储器或由计算机程序使用的其它计算机可读媒体中组织和存储数据的格式。
本文中所描述的计算机组件、软件模区块、功能、数据存储装置以及数据结构可彼此直接或间接连接以便允许数据由于其操作所需而流动。还应注意,模区块或处理器包含但不限于执行软件操作的代码单元,且可例如实施作为代码的子例程单元,或作为代码的软件功能单元,或作为对象(如在面向对象的范式表中),或作为小程序,或实施于计算机脚本语言中,或作为另一类型的计算机代码。软件组件和/或功能性可取决于迫切情况而位于单个计算机上或跨越多个计算机分布。
本文中所描述的各种电路和配置的使用可提供数个优势。举例来说,本文中所描述的基于属性点的方法的使用可识别缺失伪路径约束、多周期路径及/或时钟设置。此方法的使用可通过促进最佳电路设计与目标电路设计之间的时序约束快速收敛来缩短设计迭代时间。使用基于点的方法,可将设计迭代的数目减到最少以实现最佳电路设计与目标电路设计之间的时序约束的快速收敛。这种方法可节省工具授权,减少用于验证的硬件量及/或提高整体设计生产率。
在一个实施例中,方法包含接收具有第一网表和第一组时序约束的目标电路设计。从第一网表和第一组时序约束提取多个目标属性。通过将多个目标属性与最佳电路设计的多个最佳属性进行比较来在目标电路设计与最佳电路设计之间确定属性层级上的属性失配。提供属性失配以用于其它设计迭代和时序约束修改。所述多个操作中的至少一个由至少一个数据处理器执行。
在一些实施例中,目标电路设计从包括第二网表及第二组时序约束的最佳电路设计被移植。
在一些实施例中,由形成至少一个计算装置的一或多个数据处理器实施的方法更包括:接收最佳电路设计;以及从第二网表及第二组时序约束提取所述多个最佳属性。
在一些实施例中,最佳电路设计使用第一技术工艺以及目标电路设计使用第二技术工艺。
在一些实施例中,所述多个最佳属性及所述多个目标属性各自包含时序属性或数据属性中的至少一个。
在一些实施例中,属性失配包括缺失伪路径、缺失时钟属性、缺失多周期路径、缺失属性值、不正确伪路径、不正确时钟属性、不正确多周期路径或不正确属性值中的至少一个。
在一些实施例中,由形成至少一个计算装置的一或多个数据处理器实施的方法更包括:接收包括第三网表及第三组时序约束的修改后的目标电路设计第三网表及第三组时序约束校正属性失配;以及使用第三网表及第三组时序约束重复提取、确定以及提供。
在一些实施例中,用于第一网表与第二网表之间的每一连续单元的数个时序路径是等效的。
在另一实施例中,方法包含接收包括第一网表和第一组时序约束的目标电路设计。从第一网表和第一组时序约束提取多个目标属性。通过将多个目标属性与最佳电路设计的多个最佳属性进行比较来确定目标电路设计与最佳电路设计之间的属性失配。这种确定可通过以下操作来实现:确定与最佳电路设计相关联的系统设计约束的日志是否含有任何错误;评估多个目标属性和多个最佳属性;以及确定用于第一网表与最佳电路设计的第二网表之间的每一连续单元的数个时序路径为等效的。提供属性失配以用于其它设计迭代。所述多个操作中的至少一个由至少一个数据处理器执行。
在一些实施例中,最佳电路设计使用第一技术工艺以及目标电路设计使用第二技术工艺。
在一些实施例中,属性失配包括缺失伪路径、缺失时钟属性、缺失多周期路径、缺失属性值、不正确伪路径、不正确时钟属性、不正确多周期路径或不正确属性值中的至少一个。
在一些实施例中,由形成至少一个计算装置的一或多个数据处理器实施的方法更包括:接收最佳电路设计;以及从第二网表及第二组时序约束提取所述多个最佳属性。
一种存储指令的非暂时性计算机程序产品,所述指令在由形成至少一个计算装置的部分的至少一个数据处理器执行时,引起包含接收包括第一网表和第一组时序约束的目标电路设计的操作。从第一网表和第一组时序约束提取多个目标属性。通过将多个目标属性与最佳电路设计的多个最佳属性进行比较来确定目标电路设计与最佳电路设计之间的属性失配。提供属性失配以用于其它设计迭代。
在一些实施例中,目标电路设计从包括第二网表及第二组时序约束的最佳电路设计被移植。
在一些实施例中,存储指令的非暂时性计算机程序产品更包括:接收最佳电路设计;以及从第二网表及第二组时序约束提取所述多个最佳属性。
在一些实施例中,最佳电路设计使用第一技术工艺以及目标电路设计使用第二技术工艺。
在一些实施例中,所述多个最佳属性及所述多个目标属性各自包含时序属性或数据属性中的至少一个。
在一些实施例中,属性失配包括缺失伪路径、缺失时钟属性、缺失多周期路径、缺失属性值、不正确伪路径、不正确时钟属性、不正确多周期路径或不正确属性值中的至少一个。
在一些实施例中,存储指令的非暂时性计算机程序产品更包括接收包括第三网表及第三组时序约束的修改后的目标电路设计;以及使用第三网表及第三组时序约束重复提取、确定以及提供。第三网表及第三组时序约束校正属性失配。
在一些实施例中,用于第一网表及第二网表之间的每一连续单元的数个时序路径是等效的。
前文概述若干实施例的特征,使得本领域的技术人员可更好地理解本揭露的各方面。本领域的技术人员应了解,其可容易地将本揭露用作设计或修改用于实现本文中所引入的实施例的相同目的和/或达成相同优势的其它工艺和结构的基础。本领域的技术人员还应认识到,这种等效构造并不脱离本揭露的精神和范围,且其可在不脱离本揭露的精神和范围的情况下在本文中进行各种改变、替代以及更改。
Claims (1)
1.一种由形成至少一个计算装置的一或多个数据处理器实施的方法,所述方法包括:
接收包括第一网表及第一组时序约束的目标电路设计;
从所述第一网表及所述第一组时序约束提取多个目标属性;
通过将所述多个目标属性与最佳电路设计的多个最佳属性进行比较来确定所述目标电路设计与所述最佳电路设计之间的属性失配;以及
提供所述属性失配以用于网表及系统设计约束修改的其它设计迭代,
其中上述操作中的至少一个由至少一个数据处理器执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/020,948 US11620423B2 (en) | 2020-09-15 | 2020-09-15 | Attribute-point-based timing constraint formal verification |
US17/020,948 | 2020-09-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113688588A true CN113688588A (zh) | 2021-11-23 |
Family
ID=78576206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110171802.9A Pending CN113688588A (zh) | 2020-09-15 | 2021-02-08 | 由形成计算设备的数据处理器实现的方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11620423B2 (zh) |
CN (1) | CN113688588A (zh) |
TW (1) | TW202213157A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522830A (zh) * | 2023-06-30 | 2023-08-01 | 奇捷科技(深圳)有限公司 | 可测试设计及布局布线阶段的逻辑功能更正方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11620423B2 (en) * | 2020-09-15 | 2023-04-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Attribute-point-based timing constraint formal verification |
US11514218B1 (en) * | 2021-07-30 | 2022-11-29 | Cadence Design Systems, Inc. | System and method for performing static timing analysis of electronic circuit designs using a tag-based approach |
US11803684B1 (en) * | 2021-10-04 | 2023-10-31 | Cadence Design Systems, Inc. | Relative placement by application of layered abstractions |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867395A (en) * | 1996-06-19 | 1999-02-02 | Lsi Logic Corporation | Gate netlist to register transfer level conversion tool |
US10031986B1 (en) * | 2016-03-31 | 2018-07-24 | Cadence Design Systems, Inc. | System and method for creating a spice deck for path-based analysis of an electronic circuit design using a stage-based technique |
US10970443B2 (en) * | 2018-11-20 | 2021-04-06 | Synopsys, Inc. | Generation of module and system-level waveform signatures to verify, regression test and debug SoC functionality |
US11620423B2 (en) * | 2020-09-15 | 2023-04-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Attribute-point-based timing constraint formal verification |
US20230044517A1 (en) * | 2021-08-06 | 2023-02-09 | Battelle Memorial Institute | Digital circuit representation using a spatially resolved netlist |
-
2020
- 2020-09-15 US US17/020,948 patent/US11620423B2/en active Active
-
2021
- 2021-02-08 CN CN202110171802.9A patent/CN113688588A/zh active Pending
- 2021-03-02 TW TW110107264A patent/TW202213157A/zh unknown
-
2023
- 2023-03-01 US US18/176,717 patent/US11900035B2/en active Active
-
2024
- 2024-01-22 US US18/418,546 patent/US20240160820A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522830A (zh) * | 2023-06-30 | 2023-08-01 | 奇捷科技(深圳)有限公司 | 可测试设计及布局布线阶段的逻辑功能更正方法及装置 |
CN116522830B (zh) * | 2023-06-30 | 2024-03-15 | 奇捷科技(深圳)有限公司 | 可测试设计及布局布线阶段的逻辑功能更正方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20240160820A1 (en) | 2024-05-16 |
TW202213157A (zh) | 2022-04-01 |
US11900035B2 (en) | 2024-02-13 |
US20230205958A1 (en) | 2023-06-29 |
US20220083717A1 (en) | 2022-03-17 |
US11620423B2 (en) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8554530B1 (en) | Methods and systems for property assertion in circuit simulation | |
CN113688588A (zh) | 由形成计算设备的数据处理器实现的方法 | |
US6591403B1 (en) | System and method for specifying hardware description language assertions targeting a diverse set of verification tools | |
US7890901B2 (en) | Method and system for verifying the equivalence of digital circuits | |
US7788615B2 (en) | Computer program product for verification using reachability overapproximation | |
US7650581B2 (en) | Method for modeling and verifying timing exceptions | |
US20200134108A1 (en) | Structural Matching for Fast Re-synthesis of Electronic Circuits | |
US9721058B2 (en) | System and method for reactive initialization based formal verification of electronic logic design | |
US20030221173A1 (en) | Method and apparatus for detecting connectivity conditions in a netlist database | |
US10204201B1 (en) | Methods, systems, and articles of manufacture for verifying an electronic design using hierarchical clock domain crossing verification techniques | |
US9727676B1 (en) | Method and apparatus for efficient generation of compact waveform-based timing models | |
US20210019461A1 (en) | Register transfer level (rtl) image recognition | |
US7428712B1 (en) | Design optimization using approximate reachability analysis | |
US8739093B1 (en) | Timing characteristic generation and analysis in integrated circuit design | |
US20100269077A1 (en) | Trace Containment Detection of Combinational Designs via Constraint-Based Uncorrelated Equivalence Checking | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
Hekmatpour et al. | Block-based schema-driven assertion generation for functional verification | |
US11263376B1 (en) | System and method for fixing unknowns when simulating nested clock gaters | |
US11270052B2 (en) | System and method of timing characterization for semiconductor circuit | |
US10546083B1 (en) | System, method, and computer program product for improving coverage accuracy in formal verification | |
US8037085B2 (en) | Predicate selection in bit-level compositional transformations | |
TWI768536B (zh) | 積體電路模擬及設計方法與系統 | |
Heloue et al. | Efficient block-based parameterized timing analysis covering all potentially critical paths | |
Tsai et al. | Timing-Critical Path Analysis in Circuit Designs Considering Aging with Signal Probability | |
US11507719B1 (en) | Accelerating formal property verification across design versions using sequential equivalence checking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20211123 |