CN1331079C - 基于块的设计方法 - Google Patents
基于块的设计方法 Download PDFInfo
- Publication number
- CN1331079C CN1331079C CNB998137790A CN99813779A CN1331079C CN 1331079 C CN1331079 C CN 1331079C CN B998137790 A CNB998137790 A CN B998137790A CN 99813779 A CN99813779 A CN 99813779A CN 1331079 C CN1331079 C CN 1331079C
- Authority
- CN
- China
- Prior art keywords
- design
- test
- piece
- bus
- chip
- 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.)
- Expired - Fee Related
Links
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
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/08—Intellectual property [IP] blocks or IP cores
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)
- Semiconductor Integrated Circuits (AREA)
Abstract
一种用于设计电路系统的方法和装置,包括:选择多个用于设计所述电路系统的预先设计的电路块;收集关于预先设计的电路块的反映设计者经验的数据,所述设计者经验能适用于处理方法;根据设计者的经验数据和可接受的风险程度,以某种方式认可或者拒绝所述电路系统的设计;在认可时,形成块规格,包括每一个电路块的准则和修改的约束;在认可时,形成块规格,用于在芯片的平面布置图上布置所述电路块,作为芯片上的系统,与所述准则和修改的约束一致而不改变所述选择的电路块和所述处理方法。
Description
交叉引用有关申请
本申请优先权取决于1998年9月30日申请的、题为“基于块的设计方法”的、共同转让的美国专利申请No.60/102566,通过引用将其全部结合于此。
发明领域
一般地说,本发明涉及集成电路(“IC”)器件设计,更具体地说,本发明涉及重复使用预定的块的系统设计。
发明背景
近年来,硅处理技术中的不断创新,急剧地降低了集成电路器件的价格并增加了集成电路器件的性能和功能性,因此刺激了电子制造产业和信息处理产业的发展。而这些快速增长的产业把对更快更便宜的器件增长的需求施加给集成电路设计系统开发者。结果,设计产业现在正经历着急剧的变化,包括:
(1)芯片设计正变得更大更复杂。例如,在1997年,典型的集成电路包含100到500K(千)个门。在1998年,典型的集成电路包含1到2百万个门。1999年的技术已经表明这一趋势的继续,将制造4到6百万个门的器件。
(2)芯片设计正变得更加专用。在IC设计的早期,器件制造商生产各种现用芯片,最终用户将现用芯片设计成他们的电子产品。目前,电子产品制造商更加经常地订购客户芯片设计来实现特定的功能。
(3)现在,电子产品的开发主要由客户的要求来驱动,这已经缩短了产品的寿命周期,并因此缩短了容许的设计时间和资源。例如,在1997年,平均设计周期是12到18个月。在1998年,平均时间降到10到12个月,而在1999年,该产业正在向8到10个月的设计周期时间推进。
(4)设计时间的限制需要平行的设计工作计划。以前,用于上游系统元件的关键设计决定可能要等到下游系统元件被验证。设计经理不再有大量顺序执行的设计任务。可能必须同时开发几个系统元件。因此,要求设计经理在完成至少某些系统元件设计之前作出关键的预测。
为了满足这些需要,电子系统设计正发展到先有技术中称为基于块设计(“BBD”)的技术,其中通过集成多个现有元件设计块(在先有技术中也称为“知识产权块”或“IP”块)来设计系统。这些预先设计的块可以从内部设计组得到或者从其他设计公司得到许可,并且可以由根本不同的设计结构和环境支持。而且,可以开发预先设计的块来满足不同的设计要求和约束。
使用BBD的设计者所面临的另一个挑战是前端(项目认可)延时和由确定系统设计可行性中的不确定性带来的风险。当前的ASIC(专用集成电路)设计主要用在RTL(寄存器传送层),并且有些甚至更早,在技术要求层,由客户提供给设计者。然后,根据可利用的综合技术的限制,按照面积、性能和提供节省成本的实现所需的功率折衷,以某种方式来划分这些设计。这样,设计者接受系统技术要求作为输入并最终提供网表层设计,用于物理实现(包括设计位置、布线和验证)。如果设计技术要求在预定的或可利用的处理技术能力之内,包括时钟、功率和尺寸的技术要求,则可利用的设计方法是可以合理预测的并适用于现有的电路设计工具。
然而,RTL层设计和系统层设计行为通常是分开的或者松散结合的,意味着从系统层功能定义到ASIC(RTL)级没有相关链。根据书面的ASIC技术要求来开发RTL级设计,并由在ASIC接口周围产生的新形成的测试组来验证RTL级设计。这样,用于ASIC设计的可利用的设计和实现方法存在许多问题,妨碍了有效的块集成。
首先,当前的方法没有提供组织管理严密的方法来全面地估计并确保兼容性,以将具有不同设计根据的多个源提供的多个设计块集成,同时提供分级验证和在紧迫的推向市场的时间约束以内短的组合时间。
同样,用于ASIC设计的现有方法没有提供可测量性。大量现有的方法集中在平面设计上。该方法导致组合具有1百万个门以上的系统的顶层设计所需的持续时间中的重大问题。
另外,现有的ASIC设计方法不适合重复使用预定的电路块。可利用的方案没有提供解决与专用器件体系结构中的集成电路设计块有关的定时、时钟、总线、电源、块布置、验证和测试问题的准则。因此,如果没有全面的块重复使用方法,现有的方法导致特定的不可预测的设计方法,降低了设计实现的可行性,增加了费用和交付时间,并经常引起对预先设计的电路块本身的性能下降的修改,以便使其适合于所设计的系统。而且,现有的方法没有提供性能折衷分析和关键设计参数,诸如时钟频率、和成功地和预测地完成芯片设计和实现的面积对风险的反馈。
因此,需要一种可以满足发展环境并解决现有的技术的不足的方法。
还需要一种适当的方法,用于在电路设计中使用并重复使用来自多个源的预先设计的电路块。
结合IP块还导致对“胶合(glue)”逻辑的需要,该逻辑使得块可以一起在单个器件上工作。胶合逻辑主要负责互联设计块,并且通常在所述块之间,分散在整个设计中。胶合逻辑单元可以在芯片计划的各个阶段加到设计中,或者可以在设计中每一个块的最外的边界,作为主块的互联机构。与其源无关,胶合逻辑必须最佳地放在设计中,以便使配线拥挤和定时复杂化最小,所述配线拥挤和定时复杂化是由于块之间布置胶合逻辑引起,引入最初块设计者可能没有预料到的延迟。
因此在本发明涉及的现有技术中需要用于在基于块的设计中布置胶合逻辑的改进方法。
还需要一种胶合逻辑分布机制,该机制考虑到各种胶合逻辑单元的功能相似性,并把这些胶合逻辑单元分组到新的设计块中。
在相关技术中还需要一种胶合逻辑分布机制,该机制把最佳数量的胶合逻辑返回给现有的设计。
另外,现有的ASIC设计方法不适合于重复使用预先设计的电路块。可利用的方案没有提供解决与专用器件体系结构中的集成电路设计块有关的定时、时钟、总线、电源、块布置、验证和测试问题的准则。由于电路块来自多个不一致的源,所面临的挑战是如何以适合于基于块的设计形式把这些电路块集成到一个电路系统。
因此需要适合于把来自多个不一致源的电路块以适合于基于块的设计的形式进行互连的方法和装置。
还需要提供用于把具有不同接口的电路块转换成具有标准接口的电路块的接口的方法和装置。
当然,所有IC,甚至在单个芯片上包含整个系统的那些IC,必须通过一系列测试来验证该芯片满足性能要求并且没有隐藏的制造缺陷。如果没有察觉制造缺陷,则有缺陷的芯片可能要到组装加工后、更坏的情况是要到现场后才被发现。按照用户满意的效果,这种测试遗漏的代价对生产线来说可能是致命的。
通常,有三种检测缺陷的测试:DC参数测试、AC参数测试、和功能(“PLL”)测试。在DC参数测试中,测量芯片的输入、输出、输入-输出传输、总电流和功率消耗。在AC参数测试中,测量芯片的输入和输出信号的上升和下降时间、在输入端和输出端间传播中的延迟时间、最小时钟脉冲宽度和工作频率。在功能(“PLL”)测试中,测试芯片来看看它在规定的工作条件下是否象设计的那样工作。通常,向输入端子(“测试向量”)施加测试模式并把在输出端子检测到的输出模式与预期的模式相比较来进行功能测试。
在测试设计(“DFT”)方法出现之前,设计者制作并组合芯片,然后把完成的设计传给测试设计者。测试设计者加入组装层测试逻辑,并把芯片传给制造商。然后,制造商测试者探测芯片并运行广泛的测试协议,包括上述关于组装层逻辑的测试。可利用的扫描设计方法是高效并广泛使用的方法的简单示例,用于把“单个”测试方法用于整个芯片,具有可预测的以及一致的测试结果。其它特别的方法可用来处理不可扫描的设计形式。
目前,以前包含在整个芯片中的逻辑现用作单个虚拟元件(VC)或将包含在更大芯片中的设计块。因此,在电路设计完成之后可以不再设计测试。在整个设计过程中,设计者必须计划如何测试每一个设计块及整个组装了的芯片。因此,设计过程必须通过应用一个或一个以上的适当测试方法来确保易测性。
DFT的好处是众所周知的。DFT逻辑和测试向量验证功能使得在生产周期之初就允许较短的生产准备测试。而且,DFT扫描路径提供对芯片及系统状态的访问,所述状态以其他方式是不可得到的。良好的DFT计划由此通过缓和前端设计处理和制造测试的开发来缩短推向市场的时间并降低测试成本。
因此可利用的技术提出了四种需要。第一,用于BBD的新DFT必须能够有效利用其它不同测试方法中的预定的测试数据,以便共享有限的测试访问,并满足整个soc层测试目标。
第二,必须面对出现的困难:由于技术定标引起的新缺陷类型和新缺陷程度、混合信号和混合技术设计的新复杂性、以及增加的I/O数和新组装技术。
第三,必须面对集成固有地缺乏统一结构测试模型的IP块的困难。需要SOC层测试访问和缺陷隔离,必须满足对大部分未被当前可利用的DFT方法支持的低功率设计技术的需要(即:基于锁存、选通时钟、导出时钟、流水线和低阈值电压)。
新的DFT方法必须甚至在面对有限或不适当的测试信息时都用相关的和一致的测试集成模型来克服推向市场的时间压力。
可利用的技术需要结构信息(即故障模型和测试模型),以便对一组故障来部分或整个地产生并验证测试数据。例如,扫描设计方法只适用于同步设计并且只能检测单个固定型故障模型。而且,其它DFT解决方案是基于扫描的,因此更加难以共享和验证不包含结构信息的硬IP测试模型。
即使共享和验证是有可能的(即软IP模型),可利用的技术还需要不能支持当前门数激增的非线性计算模型。然而,软IP并不一定是可扫描的或可合并的,有时导致不可预测的和不易处理的测试开发。
最后转到设计验证,在SOC设计中利用多个预先设计的块所出现的挑战是需要可靠和有效的功能验证方法。在可利用的技术中,测试组被用来验证多个块的设计。在测试组中的每一个测试被用来在集成一些块之前对其中每一个块进行测试。然后,在将这些块集成后,需要有效的努力来调整测试组以便可以在系统层进行功能验证。在可以安心地提供最终的整个系统验证之前,测试和调试处理可能需要重复多次反复。
对于这种问题,一种可利用的方法是把执行模块替换为其对应的行为模块,因此可以在混合方式条件下进行芯片级模拟和测试。虽然在有效执行的情况下这种方法能提供所需的结果并且比上述反复的基于块的模拟更经济,然而因为必须模拟整个芯片来得到可靠的功能验证,因而这种方法仍然相当昂贵和费时。
由于需要功能验证总线结构,在多个块设计中出现特别尖锐的问题。在可利用的技术中,用两种方式中的任一一种方式来达到总线验证。作为整个芯片的完整部分来调试和验证所述总线,或者利用预先定义的块的总线功能模型、考虑新编辑的块所提供的详细执行来验证所述总线。然而,完整的总线验证会耗时并昂贵。必须用整个芯片来验证总线设计,并且,当调试由于寻找非总线相关的缺陷的细节和潜力(potential)的程度而困难和耗时时,完整的总线验证只能晚一些在设计周期中执行。总线功能模块方法缓和了这些问题中的某些问题,但需要新编辑的块的执行细节。而且,总线功能模块本身可能易于出错并且可能仅仅用作“黑盒”,使得信号跟踪调试困难或不可能。
发明概要
为了解决可利用的技术中的不足,本发明提供一种用于设计电路系统的方法和装置,所述方法包括如下步骤:
(a)选择多个预先设计的用于设计所述电路系统的电路块;
(b)收集关于预先设计的电路块的反映设计者经验的数据,所述设计者经验能适用于处理方法;
(c)根据设计者的经验数据和可接受的风险程度,以某种方式认可或者拒绝所述电路系统的设计;
(d)在认可时,形成块规格,包括每一个电路块的准则和修改的约束(FEA);
(e)在认可时,形成块规格,用于在芯片的平面布置图上布置所述电路块,与所述准则和修改的约束一致而不改变所述选择的电路块和所述处理方法。
附图简述
图1是说明按照本发明的、根据基于块的设计方法的设计过程的流程图;
图2是说明按照本发明的前端访问的步骤的流程图;
图3说明按照本发明的时钟计划模块;
图4说明按照本发明的总线标识和计划模块;
图5说明按照本发明的电源计划模块;
图6说明按照本发明的I/O和模拟/混合信号要求;
图7说明按照本发明的测试计划模块;
图8说明按照本发明的定时和平面计划模块;
图9示出按照本发明的块设计的元流(meta flow);
图10说明按照本发明的芯片组装的数据流;和
图11说明按照本发明的芯片组装的任务流;
图12、13、14和15说明按照本发明的功能验证流。
图16说明按照本发明的利用多个预先设计的电路块来估计电路设计的可行性的方法。
图17说明按照本发明的利用图2所示方法的可行性估计结果。
图18示出按照本发明的利用多个预先设计的电路块来估计电路设计的可行性的方法。
图19说明按照本发明的利用图18所示方法的可行性估计结果。
图20示出按照本发明的前端认可(“FEA”)过程。
图21说明按照本发明的精制过程。
图22示出按照本发明的示例性的估计准确性曲线。
图23示出按照本发明的确认FEA的过程。
图24示出按照本发明的利用FEA设计属性求精过程的求精的估计正确性曲线。
图25示出按照本发明的FEA数据提取过程。
图26说明按照本发明的标识块评估求精的需要的过程。
图27示出按照本发明的FEA估计轴量度。
图28示出按照本发明的分级坍陷曲线。
图29示出电路设计中的多个设计块,其中胶合逻辑干扰最佳设计块布置。
图30说明按照本发明的第一类型的胶合逻辑分布。
图31说明按照本发明的第二和第三类型的胶合逻辑分布。
图32示出按照本发明的把电路块嵌入到套环中的加套环处理。
图33说明将用于按照本发明的设计中的完整的块抽象的集合;
图34是说明按照本发明的加套环处理的流程图。
图35示出按照本发明的具有两层的套环。
图36说明按照本发明的套环和电路块之间的逻辑图;
图37说明按照本发明的套环和电路块之间的物理图。
图38示出没有利用本发明的加套环处理的系统设计。
图39示出利用本发明的加套环处理的系统设计。
图40示出按照本发明的执行图34中加套环处理中的步骤的计算机系统。
图41说明包括本发明的总线标识和计划方案的一系列步骤。
图42说明按照本发明方法构造的行为模型的互连部分的内部结构。
图43-47和49-56是说明通过利用本发明的系统和方法实现的总线修改的改进延时的表。
图48说明用于本发明的方法和系统的总线桥接器。
图57说明用于本发明的方法和系统的总线桥接器。
图58说明包括用于本发明的方法和系统的FIFO的总线桥接器。
图59是说明各种总线类型的总线利用和等待时间特性的表。
图60说明示例性的一致性检查真值表。
图61说明利用本发明的方法来自DFT透视图的芯片的顶层分层结构。
图62说明功能块和插座访问端口构成的设计。
图63是说明用于各种设计体系结构的适当测试方法的表。
图64是说明用于本发明的方法和系统的顶层体系结构技术要求过程的流程图。
图65说明本发明的方法和系统的套接化过程。
图66说明本发明的方法和系统的块层测试开发过程。
图67说明本发明的方法和系统的芯片层测试开发过程。
图68说明按照本发明的方法和系统的从计划到芯片组合的测试流程。
图69说明本发明的前端认可验证工具的设计者视图。
图70说明从芯片计划移到块设计的设计者视图。
图71说明本发明的方法和系统的逐渐形成的总线块模型和测试台产生的设计者视图。
图72说明块测试台和芯片测试台的设计者视图。
图73是块和芯片逻辑验证模型的设计者视图。
最佳和替代实施例详细描述
为了克服可利用技术中的不足,本发明公开了基于块设计(“BBD”)的新颖方法和实现。
参考图1,图中示出了说明按照本发明的根据基于块设计方法的设计处理的流程图100。如图1所示,设计处理包括前端认可设计阶段102、芯片计划设计阶段104、块设计阶段106、芯片组合设计阶段108和验证设计阶段110。
前端认可设计阶段102使得系统集成商(芯片设计者)可以估计预期设计项目的可行性。在前端认可设计阶段102,设计者从客户接收技术要求,包括用于设计ASIC的功能和其它要求(诸如交付时间和预算)。客户还可能提供一些预先设计的电路块和这些电路块的测试台。连同客户提供的块一道,利用前端认可设计阶段102的设计者可以认可来自不同源的电路块作为输入,其中某些可由第三方提供,某些可以是继承的电路块,而某些可以是新编辑的。这些选择的电路块可以为软、固、或硬设计状态。(应该指出:软状态是在RTL级;硬状态是在GDSII级;而固状态是在软和硬状态之间,诸如在门级或网表级)。然后,前端认可设计阶段102收集设计者可利用的经验,包括使用数据字段、通过行为模拟的估计数据、和/或部分实现数据。然后,前端认可设计阶段102的处理提供评估来帮助设计者决定是否根据设计特性参数认可设计项目,所述设计特性参数包括客户要求、设计者可利用的经验和设计者的风险可接受的程度。此外,根据功能技术要求,前端认可设计阶段102的结果规定了将被用于电路设计的预先设计的电路块的最终集合。
前端认可设计阶段102提供三个阶段的估计:粗颗粒估计、中颗粒估计和细颗粒估计。如果在一个阶段的估计不满意,前端认可设计阶段102使得设计特性参数精细化并在下一个阶段进行进一步估计。
如果建议的设计项目被认可,则前端认可设计阶段102提供全面的步骤来确保早发现前面设计中的问题,并确保在由项目要求、设计者可利用的经验和所选择的处理方法确定的范围内以全面的方式解决这些问题。前端认可设计阶段102产生定义处理方法的设计技术要求,包括所选择的预先设计的电路块、设计准则和相互依赖的设计约束。
芯片计划设计阶段104把前端认可设计阶段102输出的设计技术要求解释成每一个所选电路块的块技术要求。芯片计划设计阶段104中执行的任务包括:(1)开发用于芯片设计、组合、和集中在延迟可预测性、可布线性、面积、功耗和定时的实现的计划,和(2)确定和调整约束。特别地,根据前端认可设计阶段102输出的设计准则和相互依赖约束,芯片计划设计阶段104在前端认可规定的范围内(诸如设计要求和约束)提供芯片计划。所发明的芯片计划设计阶段104一次考虑一个约束,然而满足前端认可设计阶段102指定的整个设计准则。这是芯片计划设计阶段104通过为前端认可设计阶段102中选择的电路块中的每一个形成预算、修改所述电路块的设计要求并调整前端认可设计阶段102指定的处理方法中的约束来达到的。与本发明的芯片计划设计阶段不同,现有的方法或者产生新功能块或者改变处理技术来满足设计准则,增加了设计时间和项目风险。芯片计划设计阶段104还产生胶合逻辑(即需要用来互连所选择的电路块的硬件)的技术要求,下面将更进一步地讨论。芯片计划设计阶段104提供作为输出的三个类型的胶合逻辑,包括在芯片上占据一个或一个以上区域的新胶合逻辑块、分布到所选择的电路块中的分布胶合逻辑、和顶层块胶合逻辑单元。
为了无缝隙地互连所选择的电路块,如果必要的话,块设计阶段106把接口(称为套环)嵌在每一个电路块周围来形成标准的接口。由于电路块可以是软、固或硬状态,因而每一个套环也可以为软、固或硬状态。块设计阶段设计阶段106的输出部分提供:(1)芯片中的所有电路块满足所述约束和预算,并且适合规定的芯片设计计划和体系结构;(2)芯片组合设计阶段108设有所有所需的模型和所有电路块的视图;(3)使所述设计能用于:开发用于编辑在芯片计划设计阶段104中产生的新电路块、适应继承的电路块、并适应第三方电路块的方法和流程;和(4)所述设计适合给定的芯片体系结构和预算。
芯片组合设计阶段108集成电路块以带输出(tape-out)用于设计阶段制作的顶层设计。芯片组合设计阶段108包括硬块的最终布置和芯片总线的布线,以及完成所有全局设计细节。芯片组合设计阶段108要到所有电路块被设计、修改和集成到芯片计划时才开始。芯片组合设计阶段108的输入包括从前端认可设计阶段102或芯片计划设计阶段104接收的功率、面积、和定时余量的技术要求。
验证设计阶段110确保每一阶段的设计满足在前端认可设计阶段102提供的比如在功能技术要求和芯片测试台方面详细的客户功能技术要求。验证设计阶段110包括功能验证112、定时验证114、和物理验证116。
功能验证步骤112确保在每一个所述设计阶段所选择的电路块的逻辑功能和芯片测试台满足客户技术要求的功能需要。可以在前端认可设计阶段102、芯片计划设计阶段104、块设计阶段106、或芯片组合设计阶段108期间执行功能验证。定时验证确保在每一个所述设计阶段的信号定时是适合于产生所述逻辑功能并通过客户技术要求中指定的测试。可以在前端认可设计阶段102、芯片计划设计阶段104、块设计阶段106、或芯片组合设计阶段108期间执行定时验证。物理验证确保电路设计的物理排版满足客户的技术要求。
在设计处理中,前端认可设计阶段102、芯片计划设计阶段104、块设计阶段106、或芯片组合设计阶段108不仅执行其预期的功能,而且还产生功能验证112、定时验证114、和物理验证116所需的信息,功能验证112、定时验证114、和物理验证116共同含有验证功能110。如果在所述设计处理的特定的阶段在验证过程中出现任何差错,则最好在进行到下一阶段之前校正这些差错。
这样,在芯片组合设计阶段108,设计处理不仅产生用于制作芯片的顶层设计,而且还完成用于所述设计的每一个电路块的芯片测试台和用于所述芯片的整个芯片测试台的验证。
现将对图2-15进行简述。这些图中的每一幅图提供了对下面更详细讨论的材料的高级描述。
II.前端认可102
参考图2,流程图200说明按照本发明的前端认可设计阶段102的步骤210-216。
III.芯片计划104
芯片计划设计阶段104包括下列模块:
(1)时钟计划;
(2)总线标识和计划;
(3)电源计划;
(4)I/O和模拟/混合信号技术要求;
(5)测试计划;
(6)定时和平面计划;和
(7)总线验证
参考图3,图中示出了按照本发明的时钟计划模块。
参考图4,图中示出了按照本发明的总线验证和计划模块。
参考图5,图中示出了按照本发明的功率计划模块。
参考图6,图中示出了按照本发明的I/O和模拟/混合信号技术要求。
参考图7,图中示出了按照本发明的测试计划模块。
参考图8,图中示出了按照本发明的定时和平面计划模块。
IV.块计划106
参考图9,图中示出了按照本发明的块设计阶段的流程。
V.芯片组合108
参考图10,图中示出了按照本发明的芯片组合设计阶段的数据流。
参考图11,图中示出按照本发明的芯片组合设计阶段的任务流。
VI.验证110
参考图12、13、14、和15,图中示出了按照本发明的用于验证设计阶段的功能验证流程。
用于可行性估计的可伸缩方法
首先转到前端估计,图16说明按照本发明的、利用多个预先设计的电路块来估计电路设计的可行性的发明的方法。
在图16中,所述方法的输入最初被设计为用使用数据的字段作为输入。可是,在估计新设计项目时,新类型的输入1、2和3需要被用来估计新设计项目的可行性。为了适应所述方法,处理新类型的输入以便所述方法能使用新类型的输入来进行对新设计项目的可行性估计。
图17示出按照本发明、利用图16中所示方法的可行性估计结果。图17在垂直轴表示风险而沿水平轴表示时间/费用。按照风险标志,与仅仅用使用数据的字段所出现的风险相比,使用这三种类型的新数据的风险稍微增加。同样,从图17可以看出,类型3的输入对风险具有最大的影响。可是,按照时间/费用标志,通过使用这三种类型的新数据,与仅利用使用数据的字段所产生的风险相比,时间/费用大大地增加。通过考虑图17表示的发明的风险对时间/费用积分的差别,预先阶段的块被预先设计并适合于适当使用在所述设计方法中。预先阶段的设计计划最好是例如块编辑件的现有方法的一个部分。
图18示出按照本发明的对利用多个预先设计的电路块的电路设计的可行性进行估计的方法。在图18中,所述方法的输入最初被设计成使用使用数据字段作为输入。可是,在对新设计项目进行评估中,新类型的输入X、Y和Z需要用来估计新设计项目的可行性。为了适应新的输入类型,对所述方法进行修改,以便新的输入可用来进行对新设计项目的可行性估计。
图19说明按照本发明、利用图18所示的发明的方法得到的所估计的可行性。图19沿垂直轴表示风险而沿水平轴表示时间/费用。按照风险标志,与仅仅使用使用数据的字段所出现的风险相比,使用这三种新输入类型时产生的风险大大增加。同样,从图19我们可以看出,类型Z输入对风险具有最大的影响。可是,按照时间/费用标志,通过另外使用这三种类型的新输入产生的时间/费用,与仅利用使用数据的字段的时间/费用相比,适中地增加了。
新类型的输入可以是预先设计的电路的估计数据或实现数据。根据图16-19所示的结果,系统集成商可以作出折衷决定。
前端认可中的可行性估计
图1中的前端认可(FEA)设计阶段102包括建议的设计的可行性和风险估计。如果估计的准则在允许的风险容差内,则设计是可行的。
在某种意义上,前端认可是设计求精到系统集成商可以承担认可所建议的设计的风险的那个点的处理。同样地,它是一种减少缺乏知识并因此减少在所要求的设计的最终结果中的差错的处理。在开始点,前端认可处理接收由客户提供的一组设计要求、用于认可设计的集成商风险简档、一组预先设计的块、和集成商对预先设计的块的以前的知识和经验。预先设计的块可以在各个分解等级(硬、软或固分解等级)。分解、以前的经验和对块的理解产生了在预测块的面积、功率、性能中的大范围的差错范围。
对于每一个块,设计求精可以出现在三个分解等级。
(1)集成商的经验领域(FOE)
(2)利用实际模型和执行这些模型的工具的估计,和
(3)通过对块进行比接收块时更高等级的设计分解的深入(dip)。
应该指出,三个设计分解等级以升序安排为:软、固、和硬。通过提供一种机构引导可行性估计而不必求精所有块和互联准则预测来取得效率。
图20示出按照本发明的前端认可处理的流程图。
在图20中,前端认可处理包括反映上述三个设计求精等级的可行性估计的三个阶段。这三个阶段是:粗颗粒估计、中颗粒估计和细颗粒估计。
粗颗粒估计是依赖于设计者以前对类似设计的经验的经验领域支配的估计。粗颗粒估计特别适合于十个块和系统设计选项,并适合于设计估计差错容差大约是50%或更大的情况。粗略分析可用来粗略检查正被考虑的块,其中对块之间的相互作用的估计是不重要的。在这个阶段,最有可能的是,不是所有正被考虑的块用于最终的设计中。
中颗粒估计是估计支配的评估,通过等式或模拟由行为的解析式来估计。它适合于二到十个系统设计选项,并适合于可接受的设计估计差错容差大约是20%的情况,并且集成商理解块是如何相互作用的。它可用来检查对所述设计的可操作的充分性关键的块之间的相互作用。在这个阶段,所考虑的所有块都具有用于最终的设计中的很大的可能性。
最细(细颗粒)估计是测量块设计的求精的设计-深入(dip)-支配的估计。浸滞法是这样一种处理:新块转换到软块,预先设计的软块转换到固块,而预先定义的固块转换到硬块。或者从模拟、仿真或者从原型设计产生结果。细颗粒估计适合于所有或部分的单个选项的芯片设计,其中可接受的的设计估计差错容差小于5%,诸如在现有设计求精不足的关键问题的最终分解期间。它可用来检查芯片性能或块相互作用的子集,后者需要被详细研究以保证充分性或保证用于块的任何现有模拟模型所提供的分解是充分的。它还可用来检查块的故障以满足设计需要,这将强烈地影响最终设计的可行性。在这个阶段,将不会浸滞考虑中的每一个块;实际上只有对前端认可决定处理有关键影响的那些块被浸滞。
在图20中,每一个三角形的宽度表示系统前端认可准则的预测中的差错。在每一个估计级,关键是在减少设计者差错时尽可能小地求精前端认可准则,以便可以快速地进行FEA决定。在FEA处理的每一个阶段,基本意图和策略是相同的,象下面所列出那样:
(1)收集关于考虑中的块的可利用信息;
(2)局部地识别并求精最有可能影响系统估计差错的那些块;
(3)估计设计是否满足前端认可约束。如果满足,则停止前端认可处理;如果不满足
(4)如果不满足前端认可约束,则全局地求精系统中的块估计。
图20中所示的前端认可处理的关键部分是如何计算系统准则预测中可接受的全局差错(或整体差错),并识别哪些块需要估计求精以使全局差错在可接受的范围内。该计算处理需要三个参数:
(1)用于做决定的可接受的全局差错的估计值;
(2)由当前系统分析产生的全局差错的估计值;和
(3)全局差错对于在对设计中的特定块估计中的差错的灵敏度(也称为块差错影响)。
由系统集成商的风险简档、客户提供的约束、和基于当前的数据状态的系统预测产生的全局差错的良好预测来定义第一参数。从建立准确的差错影响曲线来导出第二和第三参数。参考图21,该图说明按照本发明的给定差错影响曲线的求精处理的推进。
为了进一步定义前端认可处理,本发明使用四个基本估计技术:
1.前端认可决定处理:定义数据入、数据出和基于数据出的决定处理。(即与可接受风险的估计有关的数据出如何?);
2.前端认可数据抽取处理:从正被考虑的提取级的完整一组数据入移到数据出产生;
3.前端认可块求精标识:定义公共机构,用于建立在系统设计中给定估计差错和块关键程度的系统估计影响。(即,如果不满足用于决定处理的认可准则,则进一步求精最高可能影响块);和
4.前端认可估计轴量度:定义将用于与前端认可有关的每一个认可轴的实际量度。(即,定义系统中的块的关键程度是如何定义的)。
在本发明的方法和系统中,一组估计校正曲线被用来验证前端认可处理。每一个估计校正曲线出现在前端认可轴上,它从直观上提供用于验证前端认可处理的要素和准则。为了更好地解释估计校正曲线的功能,定义下面的要素和准则。总起来说,这些要素和准则称为认可的前端认可轴。这些定义应用于块和整个系统。
功率:每工作方式(例如mW)
性能:循环内延迟(例如ps/ns/us)
等待时间(例如ns/us/ms)
通过量(对象/秒,例如50kB/秒)
面积:面积包括:门、布线、周长、未用的白空间(例如mils)
费用:非经常产生的工程费用(例如美元)
每单位费用(例如美元)
进度表:资源分配(例如人年)
交付时线(时间)
风险:差错概率(%)
差错影响(美元,和/或时间)
在引导前端认可处理之前,客户向系统集成商提供尽可能多的下述信息:
(1)一组或者为软格式、固格式、或者硬格式的电路块;
(2)一组用于块的模拟器(估计器)或以前经验估计,以及用于估计的差错容差;
(3)一组描述整个芯片功能和性能要求的技术要求;和
(4)一组有关项目的认可进度表、费用和项目风险的约束。
客户还可以提供:
(5)对要结合到芯片中的任何新块行为定义;和
(6)已知的关键问题的鉴定。
在引导前端认可处理之前,系统集成者应该:
(1)确定估计设计适宜性的风险简档,包括:
a.保护带:集成商的用于每一个前端认可轴的过设计余量(over-design margin);
b.认可风险:在接受客户请求前设计将满足要求的确定性。这简单地表示为标准偏差测量-Aσ设计认可风险。c.拒绝风险:用可利用的块无法估计或制作指定的设计的确定性应该指出,拒绝实际上对于系统集成商是危险行为:正受到的风险是甚至在最初的估计使其显得不确定的情况下所拒绝的设计实际上是可行的。这也表示为标准偏差测量-Rσ设计拒绝风险。
(2)验证所提交的、与任何新的或第三方块结合的块足以满足认可的风险限制中的项目约束。
参考图22,图中示出按照本发明的示例性校正曲线估计。水平轴是前端认可轴,它可以表示任何客户约束或系统的整体约束。为了便于解释,假设前端认可轴表示功率。垂直轴表示估计校正。按照图22,功率约束的保护带在客户最初指定约束和前端认可处理修改的约束之间。应该指出,在给定的示例中,设计被拒绝,因为由保护带修改的功率约束在拒绝区域。即使最初指定的功率约束不在拒绝区域时也是这样。
如果修改的功率约束已经在Aσ和Rσ标记之间,则前端认可求精处理已经进行。该处理会继续以减小预期的误差方差(即在该示例中为功率误差方差)直到能根据被求精的估计校正曲线作出认可和拒绝决定。
参考图23,图中示出按照本发明的验证前端认可的处理。发明的前端认可验证处理包括四个阶段:
0.预FOE阶段(未示出):
得到用于每一个认可的前端认可轴的客户设计约束。通过所需的保护带来修改这些约束中的每一个约束。这些被修改的约束仅被用于前端认可处理的验证,并简单地称为设计约束。
1.FOE支配阶段:
系统集成商开始前端认可是通过把FOE估计和估计差错容差结合在一起来确定是否保证所需的约束(置信度比所定义的更高:Aσ合格或Rσ不合格)被满足。
(a)如果即使考虑第三方块还是违背约束,则所述设计是不可能的。系统集成商必须返回客户一组选项和这些配置所满足的约束。
(b)如果在可接受的风险范围内满足约束,则完成前端认可处理。
(c)如果存在低于可接受的预测设计合格或不合格的置信度,则必须开始估计阶段。为了进入估计阶段,必须选择“最可能合格”的设计配置的集合(即最好的)。
2.估计支配阶段
对于从FOE阶段导出的最好的设计的集合,必须作出关键性鉴定,即给定所包含的块中的每一个块的差错容差,从统计上说这些差错容差最可能证实所述设计已经通过约束验证。这是对于块的FOE技术要求预测的变化的大小和块对所讨论的设计约束的影响的产物。
应该通过尽可能多地清除非关键设计并为剩下的关键设计产生设计特定估计来进行估计。
(a)违背:类似于上述的过程1(a)。
(b)满足:如果不确定等级不可能通过增加估计精度而进一步得到减小(在统计意义上说,由于差错容差是由已经包括在估计中的块支配的,减少清除量将不会改进估计),或者SOC设计的全部估计已经被建立给定现有的块模型,则必须把最好的设计传到浸滞阶段。
3.设计浸滞(深入)支配阶段
求精全局差错最敏感的块估计,然后按估计阶段进行。继续重复该处理直到前端认可被确认或被拒绝。统计关键性的定义类似。
参考图24,图中示出利用本发明的发明的前端认可设计特性求精处理的求精的估计校正曲线。通过上述从前端认可阶段0移动到阶段3的求精处理,与图22所示的估计校正曲线相比较,求精的估计校正曲线的预期差错变化大大地减小。这样,可以根据如图24所示的求精的估计校正曲线做出认可或拒绝决定,而根据图22所示的估计校正曲线可能或不可能作出这样的决定。
如果根据鉴定的一个阶段中可利用的信息和数据不能做出前端认可决定,则本发明执行设计特性求精处理来减小预期的差错变化。根据求精的数据和信息,本发明在下一阶段进行前端认可鉴定。设计特性求精处理包括下面三个方面:
(1)前端认可数据提取处理;
(2)前端认可块求精标识;和
(3)前端认可估计轴量度。
参考图25,图中示出按照本发明的前端认可数据提取处理。有一个标准化的机构或处理程序,用于建立与系统设计中的每一个块有关的预测差错的“系统影响估计”。该机构称为块求精确定,它使得任何特定块的特性的所需差错范围(前端认可设计准则,例如功率、面积、性能等),对于前端认可系统设计估计的每一个求精阶段可以被确定。
令L(β)为由客户指定的限制,由任何所需的设计余量修改,用于满足前端认可准则β的设计。令按前端认可准则β来量度的设计的预期值为E(β)。用于要被定义为相对于前端认可准则β的合格/不合格的设计的设计决定约束或“最大差错容许”,由下式给定:
DDC(β)=|L(β)-E(β)|。对于预期的“合格”,E(β)本身必须在前端认可准则的认可区域内,而对于预期的“不合格”,E(β)本身必须在拒绝区域内。实际上,在“合格”的第一种情况下,我们需要Aσsystem<DDC,而在“不合格”的第二种情况下,Rσsystem<DDC。如果不满足所述不等式,则系统分析不产生决定性结果。
应该指出,通常,平均估计E(β)是系统估计的前一阶段产生的系统准则β的最终估计。即中颗粒估计阶段作为粗颗粒估计阶段的平均最终估计,细颗粒估计阶段作为中颗粒估计阶段的平均最终估计。为了开始处理,必须通过首先建立每一个前端认可准则的粗等级预期值估计进入粗颗粒阶段。
对于要相对于特定前端认可准则β的设计决定约束(DDC)来估计的系统,必须在与块估计有关的差错和系统的总估计差错之间建立一种关系。应该指出,与块估计有关的差错不仅是估计所述块的β准则的固有差错,而且还有块和块差错对估计综合费用的困难的具体影响。估计块中的差错因此被系统关键性测量C按比例换算。C是根据块的属性或前端认可准则β的缺乏或定义(差错)、对块进行集成中的困难的量度。关于系统合格(不合格)的确定是通过{Cblock·σblock|块ε系统}对σsystem的集合与所需的不等式的关系建立的,所述不等式如下:对于每一个前端认可准则,Aσsystem<DDC(Rσsystem<DDC)。
还应该指出,为了相对于上述系统不等式保持关键性量度Cblock的包含物中性(即,从结合关键性换算的块差错的表达式来表达σsystem:Cblock·σblock),归一化关键性量度,以致∑blocks(Cblock)2=1。对此估计的处理取决于正被估计的系统属性的类别而略有变化。从前端认可的观点来看,有三种类别的系统特性,其中每一类别描述如下:
●绝对(块)约束(例如循环内延迟、通过量)
●相对(块)约束(例如功率、面积、等待时间、费用、进度)
●混合(块)约束(例如质量)
为简单起见,对于前端认可准则β,定义BDC为块设计约束,其中在设计认可的测试情况下,BDCblock=A.Cblock·σblock,而在设计拒绝的测试情况下,BDCblock=R.Cblock·σblock。于是,对于每一个FEA准则:
a:绝对约束:为了获得决定性结果,每一个块,或沉浸在块的直接环境中的每一个块(例如包括布线装入等),必须通过对于绝对约束的DDC。数学上,达到有关绝对约束的决定性结果是指:
对于系统中的所有块,BDCblock<DDC。
b:相对约束:如果整个系统的块设计约束的平方和小于DDC的平方,则取得决定性结果。术语“相对”用作为对该约束的估计的可接受差错具有被划分在构成整个系统的块之中的灵活性。应该指出,相对类型的某些估计准则可具有多个约束。其例子是等待时间,由于可能有几个关键路径,它们都对整个系统的有效估计起作用。数学上,达到关于相对约束的决定性结果是指:∑blocks(BDCblock)2<DDC2,假设所有块差错是高斯分布的独立随机变量。
c:混合约束:混合约束是包括相对和绝对约束类型的一种约束类型。例如质量是混合约束。在设计中没有块会在块的质量量度上超出指定的范围,但系统的所有质量估计的总和必须还在指定的范围中。在这种情况下,有用于块的DDCblock以及用于整个系统的DDCsystem。数学上,对于混合约束系统属性,需要满足两个准则:
(i)对所有的:块ε系统BDCblock<DDCblock
(ii)∑blocks(BDCblock)2<(DDCsystem)2
参考图26,图中示出按照本发明的确定对于块估计求精的需要的处理。如图所示,在前端认可求精鉴别中有三个步骤,包括:
1.对于绝对或混合约束类型的每一个前端认可估计准则,确定达到绝对差错容差(CIC)所需的工作的等级。作为求精某个模型来满足绝对约束的需要的副产品,也可以减小与相对约束有关的某些差错范围。
2.根据求精所述模型以满足绝对约束和混合约束类型的绝对部分之后预测的差错,对于系统其余的系统差错容差(CIC)被确定并被划分在单独的IP块中。以使得建立估计所需的工作最小化这样的方式来定义划分。通过在组合的系统中对每一个块所定义的影响的关键性来节制这种划分的灵活性。这定义了差错影响的概念。应该指出,这种问题必须同时使对于沿每一个前端认可轴的可接受差错容差的必要工作最佳化。
3.如果在任何阶段不能利用建议的CIC来确定系统的适合性,则这些需要进一步加严并重复所述处理,或者
(a)对于块,如果特定的绝对约束不足,或者
(b)对于系统,如果对于芯片的相对约束不足。
参考图27,图中示出按照本发明的前端认可估计轴量度,它包含定义估计轴关键性(AAC)的概念的表,适当的话,并包括示例性的关键性测量。根据关系ESI=AAC*EEE,AAC通过预期的估计差错(EEE)与预期的系统影响(ESI)相联系。
如图27所示,表包含如下五列:
(1)估计轴:根据这些准则来测量前端认可
(2)约束类型:每一个前端认可估计轴可有一个或多个与其有关的约束类型
(3)约束类别:上面定义的类别
(4)布线
求精:确保芯片布线与指定的块和系统约束的差错程度相同所需的布线求精的类型
(5)关键性量度:测量与前端认可估计轴有关的特性的关键性的标准化方式
表的某些要素参考布线关键性。对于块的任何输出引线或芯片输入焊盘,定义布线关键性为:引线布线关键性=(预期净长)*(容量/单位长度)。块布线关键性是所有块的输出引线的引线布线关键性的总和。
符号:α表示有效布线面积标量,因此α*(布线关键性)将布线关键性的单位和比例转换为可用面积数。
由于布线而消耗的功率需要估计线路的活动性。这可以在块或者分解的引线层中进行。当用于块时,从块的输出线路的平均活动性得到活动性估计,表示为:Eblock。
点连接视为任何扇出点,除非通过使用共享总线连接几个扇出点。共享总线视为单个不同的块。布线关键性是到引线的布线连接中的预期困难的量度,因而是前端认可不确定性的量度。
应该指出,许多估计轴在某些分解层可标识为混合约束;例如在初始平面图被定义并且被用来划分SOC设计芯片层约束为块层约束后,面积可定义为混合的。可是,在快速前端认可期间使用的支配约束类型被列出。
表中使用的术语“差错”是指与正在考虑的属性有关的差错的范围。
组织经验数据字段
设计者经验是BBD方法的系统决定处理中的关键部分。BBD方法把与单个关键设计者或设计师有关的经验的概念扩充到“公司设计经验”的概念。该通用的经验“库(pool)”称为本发明的经验的BBD字段(FOE)。
BBD方法的目的是建议四个概念和机构,用于建立和使用FOE。这些概念是:
a)数据收集:定义得到和起动FOE数据的严格的处理。
b)数据分类:信息分类和开发相关分类的机构。这样的分类保证随着积累的设计知识增加,可以统计地分析、推知、和全局地求精所收集的数据。
c)数据验证:定义在可称为经验法则数字中建立正确的“信任”保证的处理。验证FOE数据将保证从FOE数据库建立的估计统计上被良好限制。
d)数据应用:用于把FOE用到设计处理的机制。这是BBD的前端认可的一部分。
经验定义的字段
在BBD中,经验字段可以被定义为从按照设计风格、设计目的、和设计特性的关键测量分类的先有设计的测量所编辑的数据。关键特性可包括:面积、通过量、功率和等待时间。基于经验的估计的定义是根据类似设计或设计行为的经验的系统预测。因此,FOE估计的定义是利用FOE的基于经验的估计。
应该指出,这与BBD估计的不同在于:它不意味着正在考虑的设计的特定分析,或者—其中硬件设计实际上从以前的风险估计(exposure)中得知—由那个硬件请求的新行为的特定分析。例如,在公司中可能已经开发了DSP核心,并且在所述核心的前面的示例中,FIR滤波器嵌入例程在其上运行。然后,可能请求考虑FFT算法在相同的核心上运行的可行性。如果在所述设计上执行FIR操作时,那个第一经验法则只基于所观察的以前的算法的功效,而没有进入到对FFT算法很特别的细节,则这是FOE估计。
经验字段必须明确地利用一组以前的设计项目期间得到的信息。FOE数据必须能被分类、存储和通过标准数据库访问。
有三种不同类别的基于经验的数据用于设计中,每一种形式的数据与特定的差错简档有关:
a)项目数据:在项目时间的设计者请求的估计。在进入FOE数据库时设计者没有利用他人的经验,而更多地利用其自己未分类的设计经验。由对于一般设计已观察到的设计者差错变化来给出设计估计中的差错。通过测量设计者能力的一般历史数据来建立设计者差错变化以准确地预测结果。
b)预测数据:在设计分类中,但不考虑特定的项目,要求设计者给出其最佳推测参数关系用于扩展现有的FOE数据。
在这种情况下,正被扩展的FOE数据可能包括少至单个设计点。其差错由设计者对参数化差错的最佳推测来部分地指定,但还要由设计者能力的历史数据来修改,以便准确地预测结果。假设统计独立,对这些差错变化求和。
c)调整数据:来自一组设计经验的被收集、分类、参数化的数据。存在与该数据直接有关的测量差错的可能性,但这可能较小。主要的差错被定义为测量的结果和由数据参数的变化所预测的结果之间的差。
应该指出,项目数据不是FOE数据的形式,因为它没有提供把当前的估计扩展到将来的设计中的机制。而且,由于项目数据是在项目的开始时而不是完成时被采集,这对于分类的设计经验是不能验证的。这意味着它未被验证。从设计的最终测量收集的任何数据可以输入FOE数据库,并且项目数据对最终测量的精确度被用来求精公司的设计者差错变化。
预测的数据称为FOE种子数据。预测的数据可直接用于对类似设计的FOE估计。
接收的数据的类型的公共分类必须用于上面的FOE数据源两者。这样的公共分类允许接收的数据的快速标识和分类。最初的分类技术要求被认为是FOE的计划阶段,而数据的进入/收集是建立阶段。随着FOE数据库中的信息量的增长,求精处理被用来把差错容差减小到正被统计观察到的差错容差内。FOE验证处理与上述所有三个阶段是并行的。
上面所列参数被用来从现有的一般FOE数据进行推断以得到项目特定的FOE估计。最好为每一个设计分类定义在推断的估计和FOE数据之间的这种关系。每一个参数FOE关系可由设计者的个人经验(见上面的预测数据)来定义,或者如果有足够的信息可利用,则通过曲线校正FOE数据而以经验为主地进行指定。参数可包括象流水线深度、并行程度、比特宽度和时钟速度这样的技术变量。
应该指出,FOE不仅用于设计块,而且还用于块之间的互连。在这样的情况下,FOE可指定在一种类别的块和另一种类别的块之间布线的费用。象用于块一样,还可以使用于互连的FOE估计参数化。
具有最大精度的估计
FOE的主要方面是对于所提供的数据产生最大精度的估计。这是由两个部分组成的处理:
a)求精:如上所述,求精是把估计差错减小到正被统计观察到的差错范围以内。即,当在特定的分类中的FOE数据量少时,数据的差错容差大。这不是由于固有差错,而是由于参数化的数据对其它特定设计的未知(或未测试)适用性。随着检查的设计数量增加,对参数化的预测可以直接测量数据的统计扩展。当对于特定的设计类别把大量的情况分类时,将良好地建立参数化方法的精度。大相关差错的标识(与数据的随机扩展相反)可激发再考虑参数关系。
b)类别崩溃:按照接近可使不同的设计类别彼此相关。例如,Butterfly FFT块实现可以是设计的一个类别,但所有FFT块可被认为是非常接近该设计。如果与特定类别的兴趣有关的数据的数量太小以致没有统计意义,则非常近似的FOE数据可能一道崩溃,以减小整体估计差错。由于设计类型上的微小差异,类别的一道崩溃本身将引起差错,但是根据所考虑的设计的数量的统计改进可以压倒该差异差错。最好计算诸如图28所示的曲线,并从那个曲线来挑选最佳差错配置。
因此对于FOE的处理/使用模型如下:
I.选择适用于正被估计的块的块类别
II.所述类别的数据足够?(即,预期的差错足够?)
是:返回最佳FOE估计并结束
否:继续进行
III.崩溃紧紧接近的分类直到估计差错停止提高
IV.FOE估计的预期差错足够?
是:返回最佳FOE估计并结束
否:继续进行
V.要求设计者产生他的最佳设计推测。(这可以是到BBD估计阶段的浸滞)
FOE验证
FOE验证是使得所收集的FOE信息被显示为可靠的处理。该验证处理将在建立和求精阶段期间建立估计差错。
验证有两个方面:
a)完全的验证:所有前端认可量度必须是可通过所提供的参数化方案测量的。
b)准确性的验证:包括对设计者的经验测量和确保所收集的数据的准确性的处理的定义。
胶合逻辑
本发明还公开了一种改进的胶合逻辑分布和减少的方法。三个替代的胶合逻辑分布机构的组合包括本发明的最佳实施例。第一,可以把未被结合到预先设计的块中的胶合逻辑复制成多个拷贝,用于分布到现有的块中。第二,在顶层对某个块没有亲合力的逻辑可作为小块留下、最佳地被放置,使有效门的独占、布线堵塞、和平面布置影响最小。第三,在块数超过块的位置和布线限制的情况下,可把胶合逻辑分组为胶合分组块,直到块数较少到认可的水平。
参考图29,图中示出一个电路设计图,其中胶合逻辑2910不利地处在互连的块之间,由此使得硅片有效面积的使用效率低并产生重大的布线堵塞。
参考图30,我们将开始描述用于产生分布到更大的顶层块的胶合逻辑的多个拷贝的本发明的方法。如果单元3010有输出网驱动多个负载,则该单元被分成多个单元3012,其中每一个在输出端只有单个负载。依次地,每一个驱动复制单元的输入“锥形”(未示出)也被拷贝,直到到达所有块输出。同样,大输入门减化为非反相的两个输入的门的树,原功能的两个输入的门在树的顶层。这样,实质上更多的逻辑贡献给以前小得多的胶合逻辑功能。可是,通过从较大块之间的区域把胶合逻辑除去,较大块可更有效地被放置,导致网效率增加。
于是不能有效地被复制用于分布的任何逻辑单元最好合并到对所放置的单元具有最紧亲合力的较大块中。以基于大量准则的方式来执行胶合逻辑合并,其中最重要的是合并是否减少顶层引线输出的数量。这样,当产生多个拷贝时,由于所产生的逻辑大部分包括两个输入的门,把这样的门合并到块中,其中一个引线连接到所述块减少两个引线数。当两个或更多块是用于合并的同等候选者时,最好选择具有最低引线密度的块。最后,最低的优先权最好进入定时考虑。
接下来参考图31,不能合并的门和小块3110被分组到分组3112。不能合并的门最可能在其输入和输出网具有多个负载。通过把具有相同功能的输入的门结合,可减少门计数。
本发明还公开了一种将预先设计的电路块转换成具有标准接口的电路的方法。
图1中的块设计阶段106中执行的任务包括:(1)产生所选电路块的所有遗失抽象,(2)把电路块嵌入到其各自的称为套环的标准接口,和(3)产生完整的一组用于套环电路块的抽象。
参考图32,图中示出按照本发明的把电路块嵌入到套环中的加套环处理。
在BBD方法中,所选电路块是芯片级的基本输入元件。加套环处理将套环放置在每一个电路块的周围以在电路块的边界产生标准接口。为了成功地把加了套环的块集成到芯片级,必须为加了套环的块产生完整的一组抽象。在为加了套环的块产生完整的一组抽象之前,本发明的系统首先形成所选块的任一遗失抽象,其中抽象是块的模型或块的视图、或者芯片级组合或计划工具所需的加套环的块设计。示例性抽象包括:
(1)静态定时抽象:TLF
(2)排版阻塞文件:LEF
(3)用于验证-螺栓-总线-块(Verification-Bolted-Block)模型的模型
(4)对系统的块排版约束
参考图33,图中示出了按照本发明产生完整的一组电路块的抽象,而图34示出了图32和33所示的特征的结合。
我们将接着描述加套环处理,其中假设对将用于设计的块的每一个类型已经定义了标准的接口。
在第一步,处理检查每一个块是否具有完成的块抽象。如果所述块中的任何一个块没有完成块提取,则处理形成所述块的完整的块提取。
接下来,处理标识每一个块的块类型。特别地,块可以是:存储器类型、处理器类型、电源类型、或模拟/混合信号类型。可是,来自不同源的电路块的类型可以具有需要不同的设计来连接其它电路块的不同的接口。例如,有不同厂商设计的处理器可能具有不同的接口和总线结构。
接下来,处理把所标识的块与其各自的接口标准相联系。
其后,处理产生第一套环部分,后者包括可连接到所标识的块的特定接口的元件。
在下一步,处理产生与同所标识的电路块有关的标准接口一致的第二套环部分。
处理部分然后产生第三套环部分,后者包括用于把特定接口转换到可连接到与标准接口可相连的格式并把所述第一套环部分与第二套环部分连接的元件。
块套环可以包括多个层。当前,分别对BBD和SOC定义了两个套环层(块标准套环和系统特定套环)。参考图35,图中示出了包括两层的套环,一个套环是用于特定块的标准,而另一个针对将部署所述块的特定系统。块标准套环包括不知道具体系统或集成到的具体环境就能定义的那些接口元件。例如在BBD环境下,特定的数据分组可以决定设计中需要JTAG标准测试接口。这样,对于将用于任何正被设计的系统中的所有块,JTAG测试接口是标准的并因而应属于块标准套环。系统特定套环(或适应套环)包括属于所述块的接口元件,但为系统或环境特定。例如,数据线的标准集可以不需要奇偶校验位,但对于正被设计的特定系统,在所有数据线需要奇偶校验位。产生奇偶校验位的逻辑在芯片计划期间与所述块有关并应该处在系统特定套环中。
在BBD的两个套环层之间的另一个不同是块标准套环不能在前端认可和芯片计划之前加上(芯片计划可能需要最初的套环被设计为浸渍处理的部分以更好地执行所需的芯片计划功能),系统特定的套环只能在芯片计划之后加上。
两个套环类型之间更微妙的不同是块标准套环的标准集可能在范围方面比SOC中的标准集更窄。例如,某个电源接口可为BBD的标准,但仅仅对于特定的公司,而其它公司不需要与所述块的标准电源接口一致。因此,来自公司外的块需要系统特定套环,它把标准电源接口转换到公司的电源接口。这与SOC相反,其中全行业电源接口标准存在并处在块标准套环中。SOC中的最终目标是产生一种全行业的标准。具有这样的套环的块可称为套接的块。将来,如果套环的所有方面是全行业(普及)的,则将不需要系统特定套环的附加层,这样,使得块更接近理想的即插即用。
系统特定套环的另一个尺寸是:尽管是用来在芯片计划后被设计,然而人们可以通过在芯片计划中制作系统特定套环来加速芯片集成处理,其中捕捉系统特定套环的范围所用的参数将被作为目标。这加速了集成处理,因为在芯片计划之后,仅仅所述参数需要改变,而系统特定套环不必从零做起重新设计。
套环和块可以为软、固、硬的各种结合。正象关于块的硬态存在优点和缺点那样,套环的软态、固态、和硬态的结合存在着优点和缺点。例如,如果块本身软,则可适合听任所述块标准套环软,以便在加上系统特定套环时,整个块可以被合成、放置并布线,用于最后到排版的转换。然而,如果块硬,则可适合使用硬块标准套环来主要处理物理接口问题,只有少量的标准功能的变化,因为处理系统特定问题的软系统特定套环主要涉及功能改变。
套环以下列方式把块特定接口转换成标准接口:
(1)把块特定的物理配置转换成标准的物理配置,包括引线层、引线位置和引线间距;
(2)把块特定的电源转换成标准的电源,包括电源加载和电源物理位置;
(3)把块特定的测试处理转换成标准的测试处理,包括测试访问端口(TAP)控制器和测试协议;
(4)把块特定的定时转换成标准的定时,包括建立和保持时间、触发器、或者锁存器;
(5)把块特定的时钟端口转换成标准的时钟端口,包括加载每一个时钟端口;
(6)把块特定的数据/控制信号转换成标准的数据/控制信号,包括标准化信号正/负断定;
(7)通过把用于预期在所有周期中有效输入的块的寄存器、大端(big-endian)或小端(little-endian)(大端在数据单元的左端具有比特0,小端在数据单元的右端具有比特0)加起来并转换比特宽度,把块特定的总线接口转换成标准的总线接口;
另外,套环可包括用于执行加套环的块的附加功能的元件(如上述的胶合逻辑)。胶合可存在于三个层:(1)部署到套环的胶合,(2)结合在芯片层的胶合,和(3)部署在一个或多个芯片层的小型块中的胶合。特别地,胶合逻辑可包括从简单的功能翻译器(例如沿着每一个比特线的与非(NAND)门)到更复杂的功能(例如寄存器、累加器等)的任何形式。尽管胶合逻辑可以为任意大小,然而如果胶合尺寸相对块变得值得注意,则在前端组合和芯片计划期间作出的估计可能变得不准确,因为胶合尺寸未被考虑。可能需要对所述胶合相对于块的尺寸加上约束。
如下一组假设用于加套环的处理:
(1)在芯片计划中作出是否加胶合逻辑的决定;
(2)在三个类型的胶合逻辑(置入套环中的胶合;芯片层的结合胶合;置于芯片层的微型块中的胶合)中,加套环的处理最好仅专注于置入套环中的胶合;
(3)在合成期间(不是在块套环中)处理纵横比问题;和
(4)对于BBD,布置加套环的块的输出。
参考图36,图中示出套环602和块604之间的逻辑视图,说明按照本发明的上述某个套环的一些示例性功能。
如图36所示,套环602包括执行三个不同功能的三个部分。第一部分包括可连接到块604的边界周围的特定接口的元件。第二部分包括符合某个标准的输入输出元件,而第三部分包括把块604的输出转换成标准的元件。
特别地,在套环602,总线接口606把两个单向总线608和610结合为双向总线612。测试访问端口614连接到输入616以从块604收集信息并对块604进行测试。门618把输入信号反相为适合于块604的格式,由门619接收,而门620-624执行时钟缓冲。
参考图37,图中示出套环702和块704之间的物理视图,说明按照本发明的上述某个套环的一些示例性功能。在图37中,套环702和块704都包括多个金属层。对于在金属层3(M3)上配置Vdd电压并在金属层4(M4)上配置GND存在电源标准。如果块704不符合电源标准,则套环702转换该电源以便符合标准。区域706设置引线间隔/层标准。如果块704不符合引线间隔/层标准,则套环702将其转换以便符合所述引线间隔/层标准。在硬状态下,套环702还包括胶合708。
接着参考图39,图中示出没有利用本发明的加套环的处理的系统设计800。如图38所示,系统设计800包括四个电路块A、B、C和D。连接到某个块的每一个箭头线表示设计该块的接口的约束。这样,如果系统包括n个(在本示例中n=4)电路块,则任何特定块的接口可能需要满足多至n-1组的约束。因此,对所有块来说,需要满足的约束总数为O(n2)。
参考图40,图中示出没有利用本发明的加套环的处理的系统设计900。系统设计900包括四个电路块A、B、C和D。连接到某个块的每一个箭头线表示设计该块的接口的约束。利用本发明的加套环的处理,每一个块仅需要满足一组由所述套环接口定义的约束。这样,如果系统包括n个(在本示例中n=4)电路块,则对于所有块需要满足的约束总数为O(n)。
参考图38,图中示出按照本发明的用于执行上述的加套环处理和其它发明的BBD处理的步骤的计算机系统1000。计算机系统1000包括系统总线1001、处理单元1002、存储器1004、盘驱动接口1006、硬盘1008、显示接口1010、显示监视器1012、串行总线接口1014、鼠标1016和键盘1018。
硬盘1008连接到盘驱动接口1006;显示监视器1012连接到显示接口1010;鼠标1016和键盘1018连接到串行总线接口1014。处理单元1002、存储器1004、盘驱动接口1006、显示接口1010连接到系统总线1001。
存储器1004存储数据和程序。与盘驱动接口1006一道工作的硬盘1008也存储数据和程序。可是,存储器1004具有比硬盘1008更快的存取速度,而硬盘1008一般具有比存储器1004更大的容量。
与显示接口1010一道工作的显示监视器1012提供所执行的程序和用户之间的可视化接口,并显示程序产生的输出。与串行总线接口1014一道工作的鼠标1016和键盘1018提供到计算机系统1000的输入。
可包括一个以上处理器的处理单元1002通过执行存储器1004和硬盘1008上存储的程序来控制计算机系统1000的操作。处理单元还控制存储器1004和硬盘1008之间的数据和程序的传送。
在本发明中,执行在此所讨论的步骤的程序可存储在存储器1004或硬盘1008中,并由处理单元1002来执行,本领域的技术人员将理解本发明所涉及的领域。
总线标识和计划
本发明的方法还保证满足最终用户或设计小组所期望的系统的整个设计的性能要求,象前端认可(上述的)期间所定义的那样。当性能支配着对本发明的设计方法的主要考虑时,其次的考虑是减少总线类型选择期间的门计数,因为总线尺寸可在可利用的总线类型之间变化,以致大的简单总线比较小的更复杂总线消耗更多的逻辑。
转到图41,图中说明了包括本发明方法的一系列步骤。在步骤4110,完成客户最初的技术要求的前端认可。上面已经详细描述了该步骤。接下来在步骤4112,分析预定总线要求,象下面解释的那样。在步骤4114,计划总线分组,同时还分析包括每一个块的等待时间、带宽、方向、和现有接口的变量,在步骤4116参考总线分类学参考库。接下来在步骤4118,开发新的总线技术要求,并在步骤4120中验证该新技术要求,包括产生顺应组(compliance suite)和总线模型验证子步骤。参考块预先实施的步骤4122来执行步骤4118和4120,其中,产生覆盖判定器和桥接器的新块技术要求,修改包括套环的块技术要求,定义胶合设计要求并且产生测试台。
我们将开始讨论总线计划,包括把前端技术要求转化成顶层总线技术要求。在可利用的技术中,系统设计者以被设计的系统的高级功能模块或技术要求作为开始。利用类似系统的系统专家意见和知识,设计者构造设计的总线结构的高层图。设计者通常对每一个总线上的通信量有一个大致的概念,并可估计需要多少总线和什么样的复杂性。总线被设计以满足所需的系统性能,同时使接口逻辑和设计工作最少。设计者然后使用该体系结构来产生总线功能模块以验证所述设计如技术要求中定义的那样工作。该传统的处理难以定量,因为结果随专家意见和设计者过去的经验而变化。在此定义的任务把正式结构用于定义芯片设计中的总线结构的处理中。可是,这些任务至少需要有关总线和系统开发技术中的平均技术水平以得到最佳结果。
总线协议
总线提供设计中的电路块之间的首选通信介质。最简单形式的总线可以是几乎不需要小逻辑但是需要很多布线的点到点连接的集合(collection)。简单总线在每一个时钟周期在块之间传送数据。当某些块可能需要这种类型的信息传送时,系统中的大多数块只是偶尔地需要来自其它块的信息。并且,因为在大系统设计中芯片引线非常昂贵,一般使用总线来减少所需的芯片引线数并允许以少的性能损失在系统中许多不同块之间周期性地通信。为了做到这点,设计者必须把逻辑加到每一个块以跟踪数据传送调度问题,诸如:哪一个块可以使用总线布线;数据正被发送到什么块;发送方何时发送数据;和接收方是否得到数据。这些问题由总线上的控制信号和块之间控制通信的程序的建立(总线协议)来处理。
总线协议的两个示例是外围总线和信息包网络。在简单的外围总线协议中,一个装置控制所述总线。所有信息和数据流经该装置,后者决定,每次一种情况,哪一个块将发送或接收数据。尽管外围总线处理需要较少的逻辑,然而它不能有效地使用总线,并且不是非常灵活。信息包网络协议较复杂。有关哪一个块发送数据以及哪一个块接收数据的所有信息与所述数据一道存储在信息包中。信息包协议使得任何块可以在任何时间向任何其它块发送数据。该协议非常灵活并有效地利用总线,但是每一个块需要许多逻辑以知道何时发送包和对它接收的包进行解密。其它总线协议具有不同级别的灵活性、利用率和等待时间(在总线上从一个块到另一个块传送信息中的最初延迟)。不同的总线类型和其协议的分类在图59中给出。
本发明的BBD总线设计方法最好使用所定义的总线类型。设计者不期望从头开发总线,除非它们是编辑的块的部分。同样,设计者最好把块逻辑地连接到现有的、明确的总线类型,而不是制作复杂的总线。因此,本发明的BBD方法把总线作为块之间的信号连接对待。总线的逻辑最好分布在设计的块之间,正是用于允许所述总线通信到该总线外的胶合逻辑,如上面在胶合逻辑部分所描述的那样。
所有逻辑互连被作为简单或复杂的总线对待。互连的简单形式由总线连接规则定义,但最好不定义对于复杂总线的特定协议。本发明的BBD方法最好支持这种总线:具有分层结构;完全包含在块中;具有外接到块的布线;完全包含在逻辑分层结构的一个层中;与VSI的片上总线(OCB:on-chip bus)属性技术要求一致;和被用顺应事务向量处理来验证。同样,许多用于BBD的越范围条件最好在本发明下的SOC方法中得到支持。
总线最好或者完全包含在块中或者在分层结构的顶层中被定义为互连。在顶层中定义的总线在所述顶层中被产生,允许总线元件分布在所述块之间和在所述块内。
为了定义用于BBD芯片的总线,执行下列步骤,下面将详细描述其中每一个步骤:
提取总线要求
根据分组定义总线
选择总线
指定总线设计
参考总线分类法
验证总线选择
块设计假设
在BBD方法中,当设计者指定总线设计时,他或她必须联系到块结构。该任务假设:如果固块或硬块包括特定的总线接口,则接口是软的,象上面参考套环定义的那样。还假设所有类型的块包括总线接口逻辑和块的实际功能之间的简化接口。对于外围块,这不是不合理的假设,因为许多第三方块提供商已经制作了其自己的简单接口,因此用户可以加上总线接口逻辑。适合于多个设计的块具有单独的内部功能和总线接口逻辑。内部接口允许人们重复使用这些具有不同总线的块。当硬块具有不能从其内部功能分开的特定总线接口逻辑时,必须对块加入更加复杂的总线协议转换。在任何一种情况下,作为结果的总线接口逻辑变成在块设计期间所产生的软套环的部分。
提取总线要求
从前端认可任务接收的数据包括每一个块上的总线网、信号网和引线。信号网有四类:1)由诸如处理器的某些块所需的预定总线信号,它们是包括总线的块引线和网,所述总线有诸如PCI或AMBA总线;2)诸如读和写信号的总线信号,它们是必须为总线的块引线和网;3)可能总线信号,它们是可以为布线或总线的块引线和网;4)信号,它们是布线网并不由总线处理。
当设计者已经决定信号类型时,按照这四种类型的信号网来组织从前端认可任务接收的数据。对于类型1和2的网,产生总线所必需的数据必须或者由客户来提供,或者以别的方式可以得到。所需的数据还在VSI的片上总线(OCB)属性技术要求OCB 11.0中被进一步定义,通过引用将其结合在此。
另外,被指定的或可能用于设计中的每一个总线必须具有:足以产生总线的完整的用户指导;定义总线的物理要求的实现指导:完整的一组测试和验证总线的模拟工具;和技术属性列表和总线如何与所述列表比较。同样,为了产生符合VSI的片上总线属性技术要求,制造商必须提供下述文件和模型。
用户指导和模拟工具
用户指导和模拟工具用于总线设计以建立和测试总线元件。模拟工具集包括用于下列单元的以行为Verilog和/或VHDL写的模型:总线主控器;总线受控器;总线支持功能(判定器、地址解码器);和标准总线桥接器。这些被用来验证总线,象本文有关总线验证部分中描述的那样。
实现指导
实现指导用于块设计、芯片组合、和芯片设计计划中随后的任务,以描述总线的属性。下列信息作为块技术要求的一部分传给块设计:所需的特定单元;所述单元的物理特性;总线多路复用或操纵选项;存储映象;电源分布;和定时准则。定时和最大负载准则还用于芯片设计计划的随后步骤中。定时准则、最大负载、和总线布置或布线限制被传送到芯片组合任务用于总线实现。
技术属性列表
技术属性必须被转换成能在总线分类法参考库中作为总线属性来维护的形式。总线分类法参考和总线类型表因此被设计者用来选择总线类型。对于预定的总线信号,设计者进行检查以确保所需的连接能满足最大负载和定时准则并且总线布置和布线限制在芯片组合期间能被满足。如果不,则把所述设计送回给前端认可任务,以便由客户修改。
根据分组定义总线
为了根据分组定义总线,设计者使用互连带宽和在前端认可中接收的等待时间。该步骤为所述分组中的每一个分组和块确定等待时间、带宽、现有总线接口类型、和数据流方向。该信息然后被传送到下一步骤选择总线。
通过对最高带宽和最低等待时间总线互连进行分组来定义总线分层结构。作为点对点网的可能的总线信号可以从这个或随后的总线分析和设计中消除,因为这些信号被直接提供给芯片组合任务用于布线。
产生通信管理行为模型
被验证的芯片的行为模型包括块之间的互连的行为模型和抽象模型。一般地,该互连是在测试台和块之间传送数据的软件机构。理想地,它是一种形式的通信管理器,可能是调度程序,所有块都与它连接。在另一种极端的情况下,所述互连可以是行为模型中直接连接的点对点接口。
通信管理器,或者下文中称为调度程序,通常在模拟模块的顶层。这样的调度程序的伪代码可能看似如下:
While queue is not empty Do;
Get next transaction from queue;
Get target block from transaction;
Call Target Block(transaction);
End;
在该伪代码的示例中,每一个块执行如下:
Target Block(transaction);
Do block’s function;
Add new transaction to the queue;
End;
在该代码层,既不定义定时也不定义总线大小。按事务处理或通过传送任何大小的信息包来执行所有的通信。事务处理可包括可能的总线信号和非总线配线,以便块之间所有通信通过调度程序。
换句话说,设计者可修改块伪代码来异步地发送和读取非总线信号。在这种情况下,每一个块执行如下:
Target Block(transaction);
Get non-bus signal values from top level;
Do block’s function;
Add new transaction to the queue;
Apply new non-bus signal value to top level;
End;
应该指出,为简单起见,这些示例不包括非总线信号。可是,设计者可以对接着的示例做类似的调整以包括非总线信号。
在迫使一个块与另一个块进行通信的测试台中,模式集是向量的集合。测试台必须包括足够的模式集来执行整个芯片的功能。在粗略层,设计者必须向每一个模式集分配目标性能等级。例如,如果在模式集中有MPEG解码器的帧数据,则设计者必须能够定义目标硬件要花费多长的时间来处理那个集中的帧。如果设计者知道输出速率必须为大约每秒30帧,则处理速率必须超过这个数。这些性能目标用于该处理的随后阶段来定义所需的总线带宽。
用于芯片的所选块必须具有某些周期近似的性能技术要求。如果行为模型已经没有这些技术要求,则在这一步中必须把它们结合到所述模型中。
图42说明行为模型的互连部分的内部结构。首先,接收测试台和要求。接下来,产生初步的调度程序。互连管理器/调度程序4210在设计中的块之间传送信息并安排其执行。然后修改互连4210,并且修改的互连管理器4212包括统计收集和在所述模型被调整到周期近似工作时增加的延迟矩阵。最后,再次利用测试台,用于测试和设计反复进行。在后面的部分描述这些修改的细节。
修改导致等待时间的模型
某些设计没有特别的等待时间要求。其它诸如集线器和交换器的设计对数据等待时间(第一单位数据从发送方到接受方所花费的时间)敏感。大多数网络装置,特别是异步传输模式(ATM)装置,对于信息传送具有特别的等待时间要求,这解释为对于网络中的元件和对于总线的紧密的等待时间要求。一旦设计者知道了对于设计的等待时间要求,他或她调整互连模型如下。首先,为每一个模式集产生两个矩阵,所述模式集指定1)将在块之间传送的数据量,和2)所执行的事务处理数。第二,为每一个指定周期计数近似的模式集产生一个矩阵。对于没有等待时间要求的设计,所述第二步是不必要的。
数据传输矩阵
为了产生数据传输矩阵,设计者首先把正从一个块传送到另一个块的数据量加到通信管理模型。接下来,设计者利用电子表格工具把该数据累加在用于每一个模式集的表中。
例如,用于具有三个块的芯片和测试台的表可为4×4起迄点表,表中每一项为以字节表示的被传送的所有数据的总和。对角线都为零。应该指出,更实际的模型考虑到进和出芯片的总线,因此测试台可能在每一个轴上有一个以上的项。
图43的表中说明了数据传送矩阵的一个示例。支持该矩阵的设计具有三个块和用于测试台的三个端口:对外部存储器的接口、PCI接口、并行I/O接口。如表所示,从块1传送到块2的数据为10000字节,而从块2传送到块1的数据为8000字节。
这样,在产生数据传送矩阵的第一部是产生具有所有事务处理计数的表,如图44所示,图中示出示例性模式集X的事务处理。
为了产生图43和44所示的表,设计者可将调度程序伪代码修改如下:
While queue is not empty Do;
Get next transaction from queue;
Get sender block from transaction;
Get target block from transaction;
Get Transaction byte count;
Transaction Matrix(sender,target)
=Transaction Matrix(sender,target)+1;
Transaction Matrix(sender,target)
=Transaction Matrix(sender,target)
+Transaction byte count;
Call Target Block(transaction);
End;
因为非总线块到块配线有某种延时(通常至少为一个时钟周期),除总线事务处理外,最好增加这些,作为定时队列中的单独事务处理。
等待时间矩阵
由于在前端认可中已经定义了每一个块的时钟周期时间,于是设计者可把未处理的性能转换为如下的周期计数:
1.为了反映在其技术要求中定义的周期近似工作,设计者把每一个块的估计时钟周期加到其现有的行为模型中。最好在把块发送到块设计任务之前而在验证之后执行该步骤。
2.设计者把块集成回到芯片模型中。于是芯片模型将具有没有在互连中定义时间的周期近似块。
3.设计者利用电子表格建立类似于图43和44中说明的表。设计者不是指定传送的字节数,而是指定从数据可利用的时间到数据到达下一个块或测试台的时间(等待时间)的每个传送占用的周期数。
4.设计者修改互连模型来使用新表中说明的性能值。
图45说明示例性等待时间矩阵。这些修改的伪代码示例如下:
While queue is not empty Do;
Get next transaction from queue;
Get time from transaction;
Get target block from transaction;
Call Target Block(transaction,time);
End;
其中每一个块执行如下:
Target Block(transaction,time);
Do block’s function;
Set Transaction times to time+
Delay+Latency(this block,target);
Sort new transactions to the queue;
End
应该指出,图44中读作“0”的项表示没有数据被传送并且同样不可用于等待时间矩阵。
5.设计者利用设计数据流的知识修改测试台来包括具有估计的互连周期计数延迟的芯片等待时间要求。
6.设计者模拟设计来看看其是否满足周期要求。
7.设计者修改等待时间矩阵并重复验证处理,直到芯片的周期要求得到满足。
为了产生具有每一种类型的总线传输可利用的最大周期计数的表,设计者应该使用大周期计数来开始并减少它们直到技术要求得到满足,因为更紧的等待时间要求转换成门更加集中的总线互连方案。
确定分组测量
接下来,反映自然的数据分组,设计者通过把最大的计数移到最接近中心对角线来重新组织数据传送矩阵。有多种方式执行这种处理;最佳方法在此称为选主元。选主元的目的是对具有最高传送速率的块分组以使所需的引线数最少。设计者可以建立电子表格来自动地进行计算。
为了测量分组效果如何,必须对数据传送矩阵中的每一个位置准确地加权。本示例使用一种图46所示的距离矩阵来对位置进行加权。在图46的表中,每一个单元包括单元距对角线的距离的平方。可以使用对数据传送矩阵位置进行加权的其它方法,可是,距离平方是最佳的,因为在布置算法中,它已经被证明迅速收敛,同时还允许有高阶测量限制的系统中的单元的某些灵活性。
接下来,设计者将数据传送矩阵中的每一个单元乘以距离矩阵中其对应的单元,并把所有单元的所有值加在一起。结果是分组量度。图43中的表中的矩阵的分组量度是428200。分组量度越小,总线分组越有效。
主元块
为了试图得到较低的分组量度,设计者应该通过一个接一个地交换行并在每一次交换后重新计算分组量度以看看分组量度是否得到改进来选择主元产生数据传送矩阵。通过执行排序来交换行,其中位置是将被排序的列表中的单元,如下面伪代码所说明的:
Get Current cluster measure of matrix;
Do for Current site=site 1 to n-1 in the matrix;
Do for Next site=Current site+1 to n in the matrix;
Swap Next site with Current site;
Get Next cluster measure of matrix;
If Next cluster measure>Current cluster measure
Then Swap Next site with current site back to
Original location.
Else
Current cluster measure=Next cluster
Measure;
End
End;
这种排序类似于二次布局算法,尽管互连是带宽而不是连接。设计者可以使用提供类似结果的其它方法来取代这个方法。
上述的选主元最好产生例如图47的矩阵,具有改进的分组量度117000。应该指出,在该理想化的示例中,元件不产生信息。元件写它们读取的内容,因此除了块3和PIO外,列和行的总数匹配。这可能不是用于现场的情况。
然后,设计者可以使用象图47所示的表来定义总线分组。本示例示出块1、块2、PCI和存储器之间高速率的数据传送。因此这些元件必须在高速总线上。由于在块3和PIO之间存在着低数据传送速率,因而这些设计元件可在低速总线上。
PIO仅仅输出,但其它所有元件是双向的。因为在分组类内和分组外的元件必须通信,设计者必须产生两个总线之间的桥接器,如图48所示。
根据分组定义总线
最初分组最好必须包括所有预定总线信号网。设计者可以在分组中选主元以示出自然内部子分组,但是除非对这些信号定义了一个以上的总线类型,否则它们在下一个任务中应该作为一个分组对待。
在定义处理器的系统和外围总线之处,根据分组信息,分组被分成系统总线和外围总线或总线。例如,如果图47的表中的总线矩阵包括预定总线信号网,则最初分组包括整个矩阵。如果定义一个以上的总线,则需要在高速总线上的块形成一个总线而剩下的形成另一个总线。然后,该划分传到下一个任务。
如果没有预定的总线连接,则在某种意义上根据分组信息来定义总线。主元矩阵通常有邻近块的组,这些邻近块与其它邻近块相比较,具有较高的通信等级。图49中的表说明了这种分组,类似于前面的主元选择的矩阵。图49是基于与前面所示的那些不同的示例,使得分组处理更清楚。应该指出,##表示大数。
在该示例中,块A、B和C形成一个独立的总线分组,因为在这三个块之间存在高速率通信而在这些块与块D到H之间不存在通信。块D、E和F形成另一个分组,因为所有三个块之间存在高速率通信。块D、E和F还能形成两个单独的总线:块D和E之间的点到点总线和块E和F之间的另一个总线。块G和H形成第三分组。在EF对和GH对之间存在较低的带宽连接。根据数据传送量,E、F、G和H可在一个总线上或在两个单独的EF和GH总线上,在它们之间有双向桥接器用于较低级的通信。
为了从多个不同的分组选项中进行选择,遵循下列准则:
1.标识块之间的分割点以确定可能的分组。分割点分割高通信区域与较低通信区域。图49的矩阵中的C和D之间的分割产生图50所示的图。为了确定ABC和DEFGH组之间的通信量,合计左下方组和右上方组之中的单元。在本示例的情况下,如果总和是0,则两个组之间没有通信。这些组形成完全独立的总线。分割主元选择的矩阵,其中通过所述分割的而发生的通信为0。
2.在每一个标识的组中,寻找有效的分割。在作为结果的组之间的通信应该远远小于每一个组中的通信。在图50中,D-H组中出现一个分割而在A-C组中没有出现分割,如图51所示。在GH组22之间的数据传送速率为22,但在其它组中的数据传送速率是非常大的数(##)。这些分组可形成两个总线,在这两个总线之间有桥接器。
3.如果在分组之间或分组中的通信不包括所有块,则可能需要使所述分组最佳化。这只是在等待时间矩阵对一定的块之间的通信有非常不同的要求的情况下最佳化才重要。例如,图51示出GH分组不与DE通信。DE和EF进行通信,但D和F不进行通信。如果DE的等待时间要求非常紧,则设计者应该因而从总线的剩余部分分出DE通信。我们从图52可以看到作为结果的矩阵。本示例把E分成E和E’,因此它看来是两个单独的块,因为将在E上对两个总线产生单独的接口。如果某个块有两个或更多的总线接口,则该技术可用来有效利用所述单独的接口。
如果此技术用于图43的最初示例,则产生图53中所示的分组。包括两个总线,在两个总线之间有桥接器。一个总线传送大量数据,而另一个总线传送非常少的数据。在块3和PIO之间的另一个分割将产生甚至所述分组之间的更低的通信。可是,这不是有效的分割,因为它使得一个分组中只有一个块,因此不这样来作。
4.当作出所有分割后,作为结果的分组信息传到下一个任务。
该分组技术需要系统知识来产生芯片的总线结构。设计者必须考虑数据定时和实施细节,诸如现有块总线接口、附加处理器要求、和总线主控制器数。这些因素使得可以想到:偏离利用所述分组方法得到的结构产生一种具有比纯粹遵循所述程序得到的总线结构更好的性能或更少的门数的总线结构。如果这样,设计者可能要重复该任务来修改分组结果。
选择总线
一旦设计者利用所述分组方法定义了总线,必须选择总线类型和性能分层结构。总线分层结构是从最高性能总线到最低性能总线互连的总线的等级。例如,如果设计包括一个高速系统总线和两个低速外围总线,则分层结构是从所述系统总线到所述两个外围总线。
来自总线分类法参考库的总线属性和大小最好被用来定义每一个总线的总线类型。所述库列出了一组用于每个可利用的总线类型的总线属性。为了选择适当的总线,设计者分析现有总线接口的分组中的每一个块。如果没有块或几乎没有块,则选择总线分类法参考中具有最类似属性的总线类型。该选择处理的结果是定义的一组用于下一个任务的总线和分层结构指定所述总线设计。
应该如下地选择总线,检查总线分类法参考库中的参数和设计中块的接口:
1.消除不满足分组带宽和等待时间要求的总线;
2.如果已经定义总线,则使用那个总线,然而在别的方面却;
3.如果处理器存在,则使用该处理器已经连接到的系统总线,不然;
4.选择大多数块已经连接到的总线;
5.利用可以处理连接到大多数块的端(endian-ness)(大端在数据单元的左端具有比特0,小端在数据单元的右端具有比特0)的总线;
6.如果总线上的负载过量,则使用多个总线;
7.把较低带宽的装置分到外围总线或总线上;
8.利用具有与所选系统总线连接的现有桥接器的外围总线;
9.如果在完成选择处理后存在一个以上的选择,则选择最满足OCB属性列表的总线类型,因为它将具有最多的工具和模型支持。
计算总线大小
总线等待时间表被用作为本步骤的开始点。一旦利用分组标识特定总线配置,就必须把信息转换成可用来确定总线大小的形式。在来自先前任务的示例的矩阵中,头四项被分组在一个组中,而后两项被分组在第二组中。
计算总线大小需要确定用于正被传送的数据量所需带宽及计算带宽、替换不同的总线宽度值,直到尽可能接近地逼近目标带宽。
确定目标带宽
确定模式集中的总线所需的目标带宽需要如下步骤:
1.加上出现在主元选择的数据传送矩阵中的每一个分组的所有事务处理。继续同一示例,在大分组中有62600个事务处理,在小分组中有100个事务处理,在分组之间有1200个事务处理。通过把图54的四个组的每一个组中的项目相加产生图55中的矩阵。
2.确定预期该模式集占用的时间。前端认可任务提供该信息。对于本示例,必须在一毫秒中传送所述模式集,即,最快的分组必须在1毫秒中传送63800字节数据-1200字节到桥接器而62600字节内部到总线。带宽被定义为一秒钟内能够传送的以比特表示的数据量。在本示例中,1毫秒中可以传送510KB,带宽约为510MHz。
计算总线宽度
带宽由总线中的配线数(总线宽度)乘正以其传送数据的时钟频率构成。计算如下:
(util/clock_cycle)×bus_width=bandwidth
其中:
util是所选总线类型的最小总线利用百分比(见图59);
clock_cycle是设计的时钟周期;
bus_width是总线中的配线数,该值必须为2的幂;和
为了计算,我们从21的bus_width开始,并保持替代较高的值(22,23,...),直到作为结果的带宽值大于目标带宽。例如,如果时钟周期是20ns,总线利用率是25%,舍入到最接近的2的幂的配线数是64,其中
(25%/20ns)*26=800 MHz>510 MHz。
在本示例中,如果从图59的表中选择了类型4或类型5,则在用于快速分组的总线中至少需要64比特。同样,20ns周期时间只需要8比特用于较慢的分组。
等待时间信息部分地为所述利用率的函数,因为增加的总线利用率增加等待时间。为了使示例简单,没有包括这样的复杂性;在利用数部分地考虑这样的复杂性。可是通常,如果对于带宽计算使用最小总线利用数,则等待时间也趋向最小。为了考虑到这种效果,设计者应该从所述分组中选择最坏情况(最小)的等待时间要求。
因此设计者可以从用于模拟的等待时间矩阵中导出整个事务处理的等待时间,但图59的表把总线等待时间数据和传送值作为单独的数示出。图59示出类型4总线的最大传送等待时间10。最小数据等待时间更接近于数据单独需要的周期数。设计者因此需要通过从等待时间矩阵的数据中减去数据传送时间来计算网的传送等待时间是多少,说明如下:
data_transfer_time=min_cycles/num_words*avg_trans
其中:
min_cycle是该总线类型的最小数据等待时间周期数;
num_ord是所述总线中的字数;和
avg_trans是平均事务处理的大小:事务处理矩阵(图44)中的事务处理数除数据传送矩阵(图43)的数据字节数。
为了比较表的等待时间,设计者必须产生新的等待时间矩阵,后者用模拟矩阵的等待时间值减事务处理的数据等待时间。在上述示例中,该表象图56所示的那样。在该矩阵中的每一个单元计算如下:[作为结果的等待时间(x,y)-最小总线等待时间数据(类型)]*(数据传送(x,y)/[事务处理(x,y)*总线大小])
系统总线分组中的最小数是25。由于带宽,该值必须大于所需总线类型的最大传送等待时间。在图59的表中总线类型4的传送等待时间的那个数是10,因此设计者可以选择总线类型4或更好的类型用于快分组。
产生总线分层结构
一旦设计者已经标识总线和其负载,必须标识总线性能分层结构,包括确定哪些是高速总线、那些是低速总线、需要什么桥接器和判优器。如果在简化的总线矩阵中连接了两个总线(其起迄单元具有非零值),则在它们之间产生桥接器。利用图54中的示例,从主元选择的数据矩阵和简化的总线矩阵产生下面的总线模型:
64比特系统总线(类型4或类型5)连接到:
块1(RNV)
块2(RNV)
存储器(RNV)
PCI(RNV)
连接到8比特的外围总线(类型3或更好)的桥接器(RNV)连接到:
块3(读/写)
PIO(只写)
注:PIO为只写,因为没有来自于它的数据。桥接器为读/写,因为总线1和总线2之间的对角线都为非零。
然后,该映象传到指定总线设计的下一个任务。
指定总线设计
为了指定总线设计,设计者把所产生的总线扩大为一组最初块的接口技术要求、一组诸如桥接器和判优器的新块、和一组胶合逻辑。最初的和新的块技术要求传到块设计任务。作为微型块的胶合逻辑通过块设计传送到芯片组合任务。如果总线满足OCB属性技术要求,则它具有用于主控装置和受控装置的模型以及诸如判优器和桥接器的其它总线对象。然后,利用映象定义的选择总线,设计者产生详细的总线结构。
详细的总线结构
为了产生详细的总线结构,设计者于是应该:
1.通过消除所有具有单个负载和桥接器的总线来使得总线最佳化。负载应该置于桥接器的其它侧,因为它较慢并仅为一个负载用更多的门在系统总线和外围总线的协议之间进行转换。虽然设计者可能不能完全消除桥接器逻辑,然而可以消除三态接口,因为总线简化到点对点通信。同样,8比特可以变成16比特而没有大量损失,因为两端可放在一起。
2.把主控器和受控器分配到各个负载。设计者应该以桥接器开始。主控器在较慢的一侧,而受控器在较快的一侧。在外围总线上的所有装置是受控装置。在系统总线上,通过哪些装置需要控制总线来定义主控器和受控器。设计知识有助于该决定。如果处理器连接到总线上,则其接口是主控器。不然,如果没有明显的主控器,诸如PCI的外部接口是主控器。存储器接口几乎总是受控器接口。为了确定哪一个块需要主控器接口,设计者应该参考总线的互连要求。
3.如果处理器或其它块连接到还有存储器接口的总线,并且所述块特别需要存储器接口,则设计者应该在所述总线上包括一个或一个以上的直接存储器存取(DMA)装置。这些装置作为总线主控器。
4.最后,如果在总线上的两个或两个以上的装置是总线主控器,则加上判优器。
详细总线设计
当定义了总线结构时,检查块总线接口。如果块已经有了总线接口,则接口必须为软、固、或参数化形式以适合所述总线。如果是这种情况,则应该使用现有总线接口逻辑,不然具有所述总线的模型是认可的。如果在块上有不同的总线接口,则可能的话应该将其消除。
应该把总线逻辑修改为具有所述总线的接口,过程如下:
1.为每一个接口分配地址空间。地址空间通常被设计为与事务处理地址的上位比特匹配以确定该块是否正被编址。并且,应该确保每一个块具有用于内部存储器或所述块中用的操作代码的足够地址空间。
2.如果只使用了一个功能,则消除写或读缓冲器。大多数现有的总线接口被设计成读和写。如果只需要这些功能中的一个功能,则设计者可以显著地简化所述逻辑。例如,如果总线占用一个以上的时钟周期,则通常分别地缓冲读和写数据。如果只需要一个功能,则设计者可消除一半寄存器比特。
3.扩展或收缩设计来满足定义的总线大小。大多数总线接口被设计为标准32位或64位总线,但可有其它选择。如果设计者需要非标准总线接口,则他或她必须修改逻辑来消除或增加寄存器和信号线。同样,地址通常与数据的大小相同,但这可能不是这种情况。对于把地址和数据交织到相同的总线信号上的总线,数据和地址大小上的不匹配仅消除高阶地址解码或数据寄存器逻辑,而不是信号。
4.如果必要,把缓冲器加到桥接器。对桥接器的两侧进行象在步骤3那样的修改。
5.修改在总线之间映射的桥接器大小。对于读/写接口,桥接器至少需要一个用于每一种功能的寄存器,后者等于在两侧的总线的较大者。除了用于每一种功能的数据缓冲器外,如果在利用例如图57所示的桥接器把数据传送到下一个总线之前,数据由桥接器接受则可以更有效地发送数据突发。这可能需要用于每一个功能的FIFO来存储突发并把它发送到下一个总线,如图58的桥接器中所示的那样。
6.定义总线主控器的优先级和判优类型。如果总线上有一个以上的主控器,则在主控器之间必须有某种判优。有许多种判优,从严格排序的优先级到循环判优。如果两个主控器处理具有相同事务处理量和所需的等待时间的相同数据量,则它们应该有相等的优先级。换句话说,如果在主控器的重要性方面有清楚的排序,在数据量、事务处理量和等待时间量上有相等次序,则应该使判优连续,把最关键的主控器排在第一。
7.根据步骤5中的定义产生并连接判优器。按照总线,可以分布或集中判优方案。判优逻辑应该尽可能地分布,以使它分布到具有胶合逻辑的块中。
8.当装置的端(endian-ness)需要时,把总线映射到接口逻辑。大多数总线为小端(endian-ness),但某些装置为大端。当在端类型之间不匹配时,设计者必须决定怎样交换来自总线的数据字节。这种决定通常是上下文相关的。如果到总线或来自总线的所有事务处理是相同类型的数据,则设计者可使用固定比特交换,否则总线主控器必须作出交换。
9.使DMA装置适应总线。直接存储器存取装置是把数据从一个块传送到另一个块的控制器。由于一个装置将任何其它装置,它们应该被修改为地址总线的大小。
10.如果必要,加上可测试性端口和接口。最低级测试是测试总线本身的能力。标准芯片测试逻辑也可使用总线。这些测试特征可能需要附加的信号来区分测试与正常工作方式。
11.如果必要,加上初始化参数。诸如PCI的某些总线有配置寄存器。这些寄存器对于不变的配置可能为硬编码。
12.如果总线上的装置需要,就增加可选总线性能。某些总线具有先进的能力,诸如线索、分事务处理、和差错重试,如果连接到总线的装置不需要它们,它们可不必被执行。某些附加能力,诸如DMA装置、不连续突发传送和差错恢复控制,可能需要比标准总线中定义的要多的信号。如果必要,这些信号应该加到总线。
完成这些修改时,总线接口逻辑连接到块的作为结果的接口。
总线分类法参考
总线分类法参考是一种库,它列出总线属性和其与单元库中可利用的总线的带宽、等待时间、和数据方向的关系。分类法库是较固定的信息集。负责该库的人可能需要在新总线变得可用时刷新总线属性。
总线类型参考
可以通过等待时间和带宽利用率来分类总线类型。纯带宽是总线中配线数乘以正在以其传送数据的时钟频率的函数,但是带宽利用率是体系结构的函数。
图59示出从最低带宽利用率和最长等待时间到最高带宽利用率和最短等待时间的特定总线属性的列表。通常,逻辑和配线中的费用是第一的最小和最后的最大。库中的每一个总线必须具有所述表中分配的总线类型。每一个总线类型可具有以周期表示的等待时间和以利用百分比表示的总线带宽的范围。每一个总线可能具有不同时钟周期时间和大小,因此利用百分比是有效通过量对周期时间乘以总线大小的积之比。100%的总线利用值意指每一个周期被充分利用。数据等待时间列给出了总线传送一个数据字所占用的周期数。传送等待时间列是开始总线事务处理所占用的平均周期数。图59中的表给出了总线利用和等待时间值的粗略估计。设计者小组可根据经验和其设计类型来指定值。
总线分类法参考
通过大量项目,设计小组积累了总线库。每一个总线包括一组信息,所述信息包括图41中注释的参考库中的总线类型,和来自VSIOCB属性技术要求的总线属性的列表,以及在“基于块的设计方法文献”(1999年5月21日,1.2版,通过引用整个地结合于此)B.2部分第B-5到B-10页中找到的总线分类法参考。应该象用于确定使用哪一个总线所描述的那样使用该信息。
用于测试的设计
象技术背景中描述的那样,易于测试是SOC设计中最重要的属性之一。这样,用于测试的设计(“DFT”)已成为标准。对于给定的客户技术要求,利用本发明的方法和系统导出的DFT知识基础可以被搜索并被提取以用问题和解答(Q&A)的形式呈现给客户。通过该装置,可以在前端认可期间协商测试目标并协商工作声明(SOW)中解决测试问题。
测试计划阶段之后接着测试预算、测试调度和测试管理、产生一组技术要求和测试计划,以进一步把测试开发分成单独的独立子任务,用于用一组已知资源和程序清楚定义的目标。
按照规定方法,同时开发每一个能用最佳可用技术测试的测试块。
一旦准备好用于测试集成的测试块,可以把这些测试块映射到没有施加I/O限制的非约束的SOC边界,由此可使每一个层变成“测试准备”的模板,用于把非约束SOC转换成设计块。然后,把非约束SOC约束为包有附加I/O级测试的特定I/O。这使得测试调度处理可以产生并完成SOC级测试目标。
产生DFT测试计划
在FEA期间获得客户计划后,本发明的发明测试计划开发方案最好从每一个块的估计开始以看看是否为测试可合并(是否可以在多个块中同时进行测试)。接下来,设计者确定每一个不可合并的块是如何“可测试的”。第三,开发包括诸如JTAG边界扫描、DC测试和PLL测试的测试类型的芯片层测试技术要求。最后,为整个芯片层的测试可合并块、为块层的不可合并块、和为互连指定测试故障覆盖。该四叉形初始分析的结果提供了用于本发明的整个系统设计的DFT目的。
使用DFT规则
作为特定的、测试相关的约束的DFT体系结构规则被用来维护一致的测试开发流和内聚测试数据管理。这些规则指导将测试属性应用于每一个不可合并的块、用于在顶层的虚拟套接口中的布置,指导进行折衷以得到最简单和最适用的测试策略,形成用于设计的顶层测试技术要求的产生,并使得可以得到测试计划以详述测试实现过程。
DFT术语表
在此使用和主张的所列DFT术语具有下列定义:
授权:使得可能集成预先设计的块的转换处理。
BIST:内置自测试
BSR:边界扫描寄存器
CAP:芯片访问端口
CTAP:核心测试访问端口
DAP:设计访问端口
DFT:用于测试的设计
差错覆盖:测试的固定差错覆盖
ICTAP:集成电路测试访问端口
IP:知识产权
JTAG:联合测试行动组(iEEE-i 149.1)
继承块:预先设计的门层块,它不能被修改或反向设计用于没有未知结果风险的可重复使用性
可合并的:可合并的元件的测试要求可与一或一个以上的其它元件的测试要求结合,因此它们可作为一个单元被测试,节省测试时间和费用
MISIR:多输入签名发生器
Mux:复用器
不可合并的:不能与其它块合并用于并行测试
PRPG:伪随机模式发生器
SAP:套接访问端口
套接化:用于把测试套环指定给和增加到允许在设计中测试的预先设计的块中的自适应处理
TAP:测试访问端口
TBA:测试总线体系结构
测试套环:包围预先设计的块的测试端口和逻辑的集合,它提供测试访问和控制
测试可合并的:可以与至少一个其它块合并的块,这两个或两个以上的块由单个测试协议来测试。
时间集:环化的测试器时间格式:RZ(归零),NRZ(不归零),RTO(归1),DNRZ(延迟的不归零)
UDL:用户定义逻辑
VC:虚拟元件
虚拟套接:用于包括自身测试接口的预先设计的块的占位符
VSIA:虚拟套接接口联盟
作测试计划
产生整个DFT测试计划的处理始于测试设计者从FEA产生的输入接收用于每一个块的测试技术,预期的测试向量技术要求、用于生产的测试时间要求、和由I/O和模拟/混合信号(“AMS”)要求模块(xref)提供的特定参数化或模拟测试。产生完整的DFT计划因此包括有效组织和使用该数据。
用于不可合并的块的测试要求
芯片层测试要求包括不可合并的块的测试要求,它依次包括四个元件:测试模型、诸如专用测试端口和测试方式的测试控制逻辑、诸如安全外面(safe-outs)的测试隔离逻辑、和诸如测试台和测试向量的测试验证元件。当不能合并的块交付各客户时,他们指定测试访问和控制数据(诸如测试方式、启用、和停用)、测试协议、测试数据、测试器格式、和测试应用/建立时间。
用于可合并块的测试要求
芯片层测试要求还包括用于所有测试可合并块的测试信息,它们依次包括测试方法、测试控制逻辑、互联实现机制、和测试验证元件。
芯片层测试要求
芯片层测试要求还包括DC测试要求、AC测试要求、诸如电源分布的Iddq测试要求、和模拟测试要求。
芯片层测试控制器
芯片层的测试控制器可以是测试接口、JTAG、PRPG、和MISR。
元件属性矩阵
设计者可以使用矩阵来计划用于BBD设计中的元件的测试开发环境。该矩阵的文档发出,建议或估计可能的分解,并注释需要附加信息的位置。该矩阵还标识在测试设计中存在困难和不兼容的冲突区域。
使用DFT规则
一旦设计者利用矩阵过滤并归类了芯片层测试要求,他或她可以用一组DFT体系结构规则来处理这些要求。使用系统结构规则允许公共访问、测试控制、测试时钟、和异步属性的建立、以及基于可利用DFT系统结构的折衷,以使得可以对正被设计的芯片产生唯一混合的DFT体系结构。
适应性是本发明BBD DFT策略的关键特征。为了确保合适的测试集成,根据在前端认可端接收的约束和测试信息,设计者把虚拟套接分配给每一个不可合并的块。通过把这些虚拟套接集成到芯片层测试要求的其余部分中,DFT体系结构完成技术要求。每一个虚拟套接都具有映射到芯片访问端口(CAP)的套接访问端口(SAP)来实现这样的测试数据的转换。
在设计者能够作出测试计划并开始准备测试设计之前,他或她必须检查组的DFT体系结构规则的一致性和内聚性。
一致性
一致性是以如下四种工作方式:正常、测试、隔离、和边界(共同测试)完成每一个元件的测试开发覆盖的程度。设计者可以对每一个元件使用检查表来确保其模型、控制器设计、隔离、和测试验证值在每一个块和芯片层说明之间是一致的。
例如在具有三个不可合并的块A、B和C的设计中,只有当块B和C被隔离的时候测试控制器设计才能测试块A。只有当块B和C都被隔离的时候,测试控制器技术要求必须专门启动块A测试访问。如果块B和C同时被测试,则测试控制器技术要求必须以单个模拟环境中使其测试数据同步的测试验证方案来对两个块都启动测试访问。
对于本示例,表60示出示例性块A的一致性检查。
内聚性
内聚性是流中的测试方法互相联系的程度。有五个紧密相关的测试方法参数,每一个都能修改其它的。例如测试访问方法定义测试协议的启用条件,测试协议定义如何排序测试数据,而测试数据被分为一组具有特定测试器时间集的模式。并且由于对嵌入式块的测试访问对芯片I/O限制和控制器设计敏感,因而这些参数的内聚性需要唯一验证形式来维护测试数据的完整性。因而五个测试方法参数是测试访问、测试协议、测试数据、测试器时间集、和测试时间。
体系结构规则
图61示出从DFT的观点看到的芯片的顶层分成结构。在设计者开始DFT过程之前,设计者应该使图61所示的芯片形象化,而不是作为功能块的集合。图62示出由具有套接了不可合并块的SAP和CAP的功能块构成的设计。
在实际中,设计中的功能块可描述为行为、RTL、门、或混合层HDL。以目录结构来组织HDL文件。组织测试文件的最佳方式是产生象下面的体系结构规则中所描述的目录分层结构,然后把测试目录中的链接放到设计分层结构中的数据文件。这样,能利用HDL指示以不同的配置建立芯片。
因为芯片层DFT体系结构只有单层,所有属性都是在顶层的。因此意味着设计者应该按照本发明的方法使用下面的体系结构规则以可取出的注释形式把属性放在顶层设计文件中。
1.分层描述DFT体系结构。
2.在分层结构的最高层产生单个芯片访问端口(CAP)。CAP技术要求最好应该:
a.把所有测试控制和测试数据引线映射到包层引线以一贯地保持设计和测试数据。
b.把测试控制引线与测试数据引线分开。
c.把测试控制引线属性设置为或者专用的或者可选择的:
i.如果最好应该在正常方式中唯一地停用,则为专用;专用引线不能与功能引线共享。
ii如果通过测试可设置为测试常数—逻辑值,则为可选择的;可选择引线可与功能引线共享。
d.设置测试数据引线属性为:
如果在测试期间用作为时钟,则为测试-时钟;测试-时钟引线只能与外部功能时钟引线共享。
如果在复位测试期间异步使用,则为测试-异步;如果测试-异步引线不引起与其它测试、测试方式、或隔离方式的冲突,则可专用或共享。
测试-组(i),其中(i)是测试期间测试-组引线同步的测试-时钟。
e.对每一个测试方式描述如下:
i.如果需要访问序列,则为在测试下得到对装置的访问所需的测试设置。说明协议,诸如JTAG指令、测试时钟、或测试复位
ii执行实际测试所需的测试执行。说明下到任务层的阶段中的测试序列、重复计数、周期时间、测试长度、和测试结果。
iii.停止测试和把芯片置回缺省条件(正常方式)所需的测试后处理。
3.产生说明每一个测试方式的测试设置和测试处理序列的CAP控制器技术要求。该技术要求最好应该是可执行的(可合成的)和可验证的(经由测试台和测试序列)
4.设计者可有选择地指定一组分级锁存器把内部测试数据总线合并到可用的测试数据引线中。分级行为最好不应该改变后来的测试结果。分级最好应该是
a.没有状态改变的时间敏感信号。使用测试-异步信号或按照有关测试-时钟出现的不变次序来解决它。
b.如果它不是没有状态改变的时间敏感信号,则它应该有额外测试引线。最好审慎地使用该规则以避免测试组装问题。
5.设计者可以选择性地指定诸如MISR的测试数据特征分析能力来压缩测试数据,这使得物理I/O约束最小化。特征分析最好应该对每一个工作周期来说是确定性的并最好应该:
a.通过在MISR输入避免它而没有X值传播。
b.如果步骤a失败,消除受影响的MISR周期。应该审慎地遵循该规则以避免差错覆盖损失。
6.设计者可任意地产生一组在芯片外围的其它测试机制来进行下面特定的测试:诸如边界扫描测试的DC和AC参数测试;
诸如PLL测试的频率测试;和诸如ADO和DAC测试的混合信号测试。这些测试的控制引线最好应该包括在所有测试-控制引线的表中。设计者还可能想要把它们包括在CAP控制器技术要求中以避免相冲突的互相影响。
7.指定在分层结构的下一层、没有I/O或I/O相关单元的未限制到物理I/O的层的单个装置访问端口(DAP)。
8.DAP最好应该是可以通过连接、合并、尺寸再生、和复用类属端口而形成的混合测试端口,诸如基于TAP的端口。
9.设计者最好可以直接从CAP控制器来配置DAP。把每一个配置划分为测试控制、测试数据、或测试隔离端口。在每一个配置中
a.把测试控制端口属性设置为
如果应该最好用于设置目标配置k,则为测试-控制f(k)。
如果它可以设置为测试常数,则为测试-选择。
b.设置测试数据端口属性为
如果在测试期间用它作为时钟,则为测试-时钟。
如果在测试期间异步地使用它,则为测试-异步。
如果测试-组(i),其中(i)表示使端口同步的测试-时钟。
如果用于表示测试数据的方向,则为测试-方向。测试方向只能为1或0值。
c.如果在测试期间最好应该隔离它,则设置测试隔离端口属性为安全-状态,安全状态逻辑值为0、1、或Z,而如果能把它设置为非浮动逻辑值0或1,则把所述属性设为不-注意(don′t-care)。
10.指定CAP、CAP控制器、分级锁存器、MISR、DAP、和顶层DFT体系结构中的其它测试机制的互连。
11.指定CAP控制器、分级锁存器、MISR、设计体、和专用部分中的其它测试机制。
12.指定关于DAP套接、UDL、和仅用于设计体的体系结构的测试互连的细节。
13.最好应该分层描述设计体的体系结构。
14.最好在分层结构的下一层、套接层有多个SAP。
15.每一个SAP最好应该是DAP的循环图像,具有一个或多个DAP可以采用的适用配置。所有SAP配置最好应该由DAR支持。
套接规则
一旦不能合并的块或VC置于设计中,其I/O端口再也不能从芯片I/O来访问。在所述I/O端口产生的其测试数据也再也不可用。
通常,在芯片层重新产生测试数据是困难而且不可预测的,因为设计块测试值必须通过其它逻辑块传播。因此,最佳方法是通过为设计块产生虚拟套接来把可访问性加到设计块本身。虚拟套接包括测试访问、隔离、和可从芯片I/O访问的边界测试功能。
设计者可以使用虚拟套接作为用于设计中设计块的占位符,或也可使用套接来把测试约束放在设计块本身上。在利用I/O映射和约束的设计中,当约束被映射到设计块时套接设计块。所述约束是对设计敏感并有条件的,但它们使设计者在设计集成期间跟踪设计块时内聚地划分每一个设计块套接任务。
在维护功能接口时,套接设计块可能需要额外I/O端口和逻辑或测试套环来匹配芯片级测试约束。因为接口定时可能略微变化,最好用RTL代码来写测试套环,以在每一个套接的设计块的合成中被特征化并被重新预算。在合成整个设计后在门层增加测试套环可能导致定时问题。
设计块套接规则如下:
1.分层描述套接,但顶层最好应该包括所有测试属性。
2.每个套接可只有一个SAP。
3.SAP是用于有关如何隔离、测试、诊断、和调试套接中每一个元件的测试信息的唯一参考。
4.最好应该按照较高层技术要求来构成或合成每一个SAP。
5.设计者最好应该能够在结构和前后关系的较高层中验证每一个SAP能够启动和停用正常、测试、隔离、和边界方式。这意味着设计者应该验证套接的外部测试信息结构。
a.外部测试信息结构最好应该与VSIA顺应规则中指定的标准描述语言一致。
b.如果标准描述语言不可用,则测试信息结构应该与在虚拟套接的芯片层设计测试属性一致。
6.最好应该在套接层用重新格式化的测试数据来验证每一个SAP以确保它适当地执行测试建立、测试执行、和测试后处理序列。这意味着设计者应该验证套接的内部测试信息结构。
a.内部测试信息结构最好应该包括所有设计块测试模型、所有功能块、和由套接限制的所有其它逻辑。
b.内部测试信息结构最好应该是与芯片层模拟环境共同模拟的和可互操作的。
7.在正常方式,最好应该同时和直接而不是相继地从SAP接口停止所有与SAP有关的测试逻辑。应该由单个测试控制端口来启动正常方式。
8.在隔离(休止(rest))方式,应该停止所有与SAP有关的测试逻辑并将其分配给安全状态值而没有中间的冲突。在隔离序列中可以不包含功能状态。
9.在测试方式中,在开始测试序列之前,最好应该通过单个启动序列、然后任选地通过配置序列来启动与SAP有关的所有测试逻辑。为了使测试时间最少,应该结合相同配置的连续测试序列。
10.所有套接的外围逻辑在边界(共同-测试(co-test))方式下应该是可测试的,包括与SAP有关的测试逻辑。
设计顶层测试逻辑技术要求
当设计者设计顶层测试逻辑技术要求来满足覆盖和时间要求时,他或她将需要作出增加测试逻辑的并行特性的折衷。主要决定是怎样串行或并行进行各自的块测试。
测试约束被用于具有套接准则的每一个虚拟套接,以建立用于构造测试套环的测试要求。从测试访问的观点来看,SAP是完整的并对于测试集成目的是足够的。为了避免可引起设计和测试冲突的设计变化,SAP不应该共享或使用块的功能要素。当利用不同的块类型—软、固、或硬块—时,这种分离甚至更有意义,使得有可能在测试集成期间避免不可预测性。
通常,每一个体系结构针对唯一的一组解决方案或特定的一组工具,并以特定的测试应用范围为目标。许多体系结构源于几乎跨越设计每一个任务的特定的设计环境。因此,需要执行如下的开发流:
1.特征化并分类设计范围中的测试问题;
2.对每一个体系结构进行折衷;
3.对每一个目标设计提供附加改变
4.直到本发明出现为止,下列范围的BBD测试问题才明显:
设计数据可重复使用性
测试套接设计和套接信息
UDL和芯片层互连测试
测试组装
测试验证
测试协议
诊断和调试
这些问题涉及到BBD设计计划期间作出的假设。可是,设计计划需要许多特定的处理来组装具有可重新使用的测试数据的设计块,诸如产生用于测试的BBD设计、定制设计块测试接口、设计和验证测试访问和控制机制、和组装具有芯片I/O并在测试预算内的测试。
DFT分类法
DFT体系结构是按它们的测试方法、它们的测试接口、和能与它们使用的块的类型来分类的。有四种不同的类属DFT体系结构,但它们很少有相同的测试接口。例如,大多数芯片已经嵌入了使用存储器BIST接口的RAM,芯片的其余部分可能使用扫描方法。图63中的表列出了设计情况下的典型选择。
产生顶层DFT体系结构的程序
图64的流程图示出用于产生顶层体系结构技术要求并指定芯片层测试结构的程序。DFT计划最好应该为芯片中的每一个块指定块层测试逻辑。具有测试逻辑的块应该接收到顶层的接口。没有测试逻辑的块应该接收测试逻辑要求。把这些设计要求转换成块设计任务,最好产生顶层测试逻辑和访问机制。
图65中的流程图说明了用于产生块测试逻辑技术要求的套接程序。对于设计中的每一个套接,指定每一个设计块的测试套环以符合所示的DFT体系结构。
产生测试产生机制
用于测试产生的BBD策略可包括手工向量、ATPG、或混合的。应该定义转换和连接机制以匹配顶层测试逻辑和各个块的测试机制。在BBD中,测试开发包括两个独立的处理。
1.对于每一个虚拟套接的块层测试开发。在大多数情况下,该处理包含下面的任务:
a.SAP说明:把SAP加到行为模型接口并用其虚拟套接重新示例所述块。
i.测试逻辑插入:加测试逻辑、隔离、互连测试、和测试控制逻辑以在目标块周围形成测试套环。对于最佳结果,以可合成的RTL格式来描述测试套环。
ii测试数据转换:扩展测试数据并将其映射到SAP端口。
应该修改块层测试台以认可新的测试数据格式。为了把测试流连成一个整体,可改变某些块上的测试器定时以使每套接的测试建立时间最少并同时运行多个块测试。
iii.测试验证:修改块层测试台来验证测试逻辑。验证具有完整的块层测试向量集的子集的目标块以确保前一步骤前后的测试数据完整性。
2.用于所有测试可合并的块和诸如DC测试和模拟测试的芯片层测试的芯片层测试开发。该处理包括下面的任务:
a.测试逻辑插入:加测试控制器、专用测试引线、DC测试逻辑、模拟测试逻辑、和必要的时钟复用器和用于所有测试的测试时钟。如果必要的话,该任务还包括用于测试可合并块扫描插入和UDL的。
b.测试产生:使用ATPG工具来产生用于测试可合并块和UDL的测试数据,或捕获周期的功能测试数据。重要的是以目标制造测试数据来满足错误覆盖目标。
c.测试验证:修改芯片层测试台来验证测试控制器并执行DC测试、模拟测试、用于设计中所有虚拟套接的测试、和UDL测试。这些测试可能需要测试前和测试后的,诸如JTAG需要的序列。
d.测试数据格式化:得到模拟结果并将它们置于诸如WGL的测试数据描述语言中。
接下来我们转到BBD DFT方法范围中的块层的DFT应用。知识产权核心或设计块的最终产物是具有标准化或类属测试接口的“测试准备的”块和在芯片层能重复使用的测试数据集。设计块套接方案被用来把设计块转换成芯片层测试的完整部分,同时重复使用大多数在每一个块设计期间产生的测试程序和装置。发明的BBD DFT混合-和-匹配策略提供了一种灵活的方法:通过对比最流行的基于扫描的测试方法挑选出不可合并的块,用不同的测试方法和测试接口来集成多种预先设计的块。使扫描设计方法为测试可合并选择的基础的原因仅仅是易于自动化的目的。
考虑到某些关于块I/O的可访问性的假设,包含在用于组装具有可重复使用的测试数据的设计块的许多特定处理中的块设计计划是基于标准的或定制的设计块测试接口,。可是,一旦嵌入,块I/O可置于不同的范围并可能变得不可访问。为了确保易于集成,测试接口应该与功能接口分开以从芯片设计的观点提供一些正交性。在BBD中试图混合并匹配设计块接口并在芯片层将其结合(如图68所示)。因此应该提供测试接口的灵活性和可修改性来设计和验证测试访问和控制机制,并用芯片I/O及在块层测试预算内组装测试。本领域的技术人员知道本发明所涉及的,尽管可能,本发明试图使用片上总线(OCB)作为测试总线的一部分,但超出本说明书的范围。
不可合并的块
DFT逻辑和测试向量验证功能使得设计者运行更短的在生产周期早期的生产准备测试。DFT扫描路径提供对芯片和以其他方式不可得到的系统状态的访问。存储器BIST使用算法测试向量以包括不同的嵌入存储器错误类别。逻辑BIST利用基于扫描的设计的随机可测试结构来减少测试访问和测试数据瓶颈。可是,由于多种原因,每一个预先设计的块可能变得不可合并。通常,不可合并的块是:
可合成的RTL软块,由于缺乏内部测试可访问性(例如门时钟的、基于锁存器的、数据路径)或缺乏错误覆盖(例如异步的),它们可能与公共测试方法不兼容。
门层软块,它们可能与诸如扫描方法(即同步的)、扫描风格(例如多扫描、时钟扫描、LSSD)的公共测试方法不兼容。
编辑块,它们通常是基于阵列的。例如,嵌入的RAM、ROM、DRAM、FLASH等没有与结合逻辑相同的错误模型。这些块需要大算法测试模式。
硬块,它们是用特定的测试方法产生的但没有可供测试集成的基础结构。通常最好应该用具有或没有特定测试接口的特定块层测试数据集来交付这些块。
继承块,它们是用或没有用特定测试方法产生的,但没有用于集成的基础结构。通常,不可修改这些块,以避免未知的后果。
测试套环
通过产生用SAP技术要求来描述套接的新模块、示例最初设计块、并在它们之间插入测试逻辑,可以构成套接的设计块,如图66的流程图所说明的那样。套接的设计块首先恢复设计块功能接口、加上测试访问、测试隔离、边界测试结构,然后提供象芯片计划期间定义的基本测试接口(例如TAR扫描、BSR、或直接复用)。结果是具有作为每一个有关测试I/O端口的注释加上的测试属性的SAP。将由测试套环包上每一个不可合并的块来加上测试访问、隔离、和互连测试设施,用于按照块原理在块上执行测试建立、测试执行、和测试后处理。输出是套接的设计块,包括:
1.测试访问和控制(例如测试方式、启动和停止);
2.测试协议(例如功能、多扫描、BIST、诊断);
3.测试数据(例如测试语言、向量大小、错误覆盖);
4.测试器格式(例如测试器技术要求、时间集、测试速度);
5.测试应用时间(例如非测试建立时间);
加可测试性
对于不随可重复使用的测试数据出现的每一个不可合并块,设计计划阶段可通过插入测试结构指定测试接口、测试方法、测试数据格式、预期的错误覆盖、和测试预算,并估计整个区域和定时费用。该估计变成用于把可测试性加到每一个块的约束。
可合成的RTL软块
如果预先设计的块是与基于扫描的测试应用不兼容的可合成的软块,则错误覆盖可能是个问题。例如,可以在RTL或门层进行扫描规则检查来筛除扫描违规。因为扫描链或测试点不容易插入到模型中,可使用连续的ATPG连接功能测试向量,如图67的流程图所示的那样。该类型的设计的错误覆盖难以预测,并且在计划阶段最好使用错误模拟来建立这样的块的可重新使用性准则。基于TBA的测试套环是最好的测试接口,但是,如果允许对块的测试预算,则可考虑基于BSR的测试套环。
验证
现从DFT转到设计验证,本发明的验证方法和系统的主要目的是确保完成的设计满足在功能技术要求和芯片测试台中指定的、作为前端认可的一部分提供的客户的功能要求。其次的目的是以可能的最少的时间达到所述主要目的。
客户提供的芯片测试台形成客户请求的功能的完整测试,正如对任何设计测试方案一样,对于本发明的适当功能尤为必要。最好在前端认可期间强调该假设。当在功能技术要求模型上运行时,BBD设计流将由此结合芯片测试台的分级,由此提供芯片测试台的测量。
发明的方法以集成的方式利用功能技术要求和芯片测试台,以确保两者一致。随后,当加上细节并通过芯片计划、芯片组装和块设计求精时,通过芯片测试台重新验证所述设计以确保功能与最初的功能技术要求保持一致。如下所述,可以在完整的芯片层或在具有从芯片测试台提取的不同块测试台的各个块层来验证日益增多地更详细的视图。
经验揭示了总线逻辑和沿着相同总线连接的各个块的相互作用会花费大量的时间来解决,如果在设计过程中没有及早并连续解决,会引起反复的重新设计。由于这个原因,特别要注意在设计周期及早验证总线功能。因此,不依赖于设计的其它部分,利用总线顺应测试台,在较早的阶段标识总线和有关的逻辑并加以验证,如下所述。可是,应该指出,本发明的最佳验证流足够灵活,以致可以快速的转向来处理多种设计。例如,如果设计使用简单的总线或者设计者具有连接到总线的块的重要经验,则可以推迟某些或所有的总线顺应测试。同样,如果某些或所有块或者简单或从先有设计重新使用,则可以跳过各个块验证的一部分并推迟验证,直到到达芯片层验证阶段。
应该建立特定设计将遵循的详细流程作为FEA处理的一部分。图12-15提供了按照本发明的在功能验证期间要执行的任务的一般流程。将详细描述这些图,对芯片测试台图69-73进行交叉引用。应该指出,在图12-15中,大箭头表示任务流,较小的箭头表示任务输入,而虚线箭头表示任选旁路的路径。
参考图12,在完成FEA后,象上面描述的那样,本发明的方法继续芯片测试台验证步骤8210,其中用图69中的芯片测试台8310来实施芯片层功能模型。模型和测试台都是客户提供的,验证的目的是确保测试台和功能模型一致。模型最好为以Verilog、YHDL或可执行的C代码构成的,尽管任何兼容的语言将满足需要。芯片测试台8310将位于与模型兼容的文件中。模型和测试台之间失配将反馈给客户,并且或者修改模型或者修改测试台来达到内部一致性。
接下来,在功能模型上运行时,分级芯片测试台。通过测量一个或多个以下提及的属性,这样的分级提供测试台的“优良”测量或覆盖量度,所述属性是:声明覆盖、切换覆盖、FSM弧覆盖、被访状态覆盖、对弧覆盖、路径/分支覆盖、和/或表达式覆盖。然后,把该覆盖量度反馈给客户。在设计被不充分测试或设计包括多余功能的情况下,覆盖量度可以加亮出现不佳测试的设计区域。在任何情况下用户可选择修改测试台或者修改模型来提高覆盖量度,由此重新设置这里描述的BBD设计方法的项目开始时间。
一旦证实芯片测试台与功能模型一致,通过将每一个块的块功能模型与这些块之间定义的胶合逻辑结合,在步骤8212(图12)产生芯片的新视图8312(图69)。块功能模型8312或者是客户提供的或者是在FEA期间通过“浸溃”处理产生的,如上所述。在芯片计划期间还指定胶合逻辑模型,如上所述。
再次参考图12,芯片层结构验证步骤8214包括用芯片测试台模拟芯片的块功能模型。通过修改一个或一个以上的块功能模型8312或胶合逻辑模型并重新运行模拟来解决任何不一致问题。该步骤确保块功能模型与芯片功能模型一致。
接下来转到图13和14,总线验证流的目的是确保在芯片中的总线逻辑正确地操作并且不同总线要素之间的相互作用将不会引起总线协议差错。这样,为每一个总线设计产生顺应向量。这些向量可以是基于客户或块设计供应商提供的顺应测试组。所述向量将必须被控制用来与设计的特定总线拓扑结构对应。在尚未提供顺应向量的地方,将必须由设计小组来写这些顺应向量,最好是以演示连接到总线的各种块的相互作用、演示所有边界条件、并验证总线差错被正确地处理的方式写所述顺应向量。
图13中的步骤8218提供总线功能验证。针对上面讨论的芯片计划阶段提供的总线的周期精确模型,模拟总线顺应向量。必须通过或者修改顺应向量集(未示出)或者修改图70所示的一个或一个以上的总线逻辑要素来解决任何差错。重复该步骤,直到顺应测试组成功地在总线逻辑模型中执行为止。
接下来参考图14,图中示出步骤8610到8614的总线块模型和测试台产生。总线块模型产生步骤8610和测试台产生提取步骤8612以及总线块模型验证步骤8614的目的是产生高级行为模型和设计中每一个块的有关测试台。这些被传送到块设计者并对每一个块定义目标功能。
对每一个块产生图70中的总线块模型8510包括把功能校正、周期近似的块功能模型8312与那个块的周期精确的总线逻辑模型相结合。从上述由芯片计划提供并验证的总线胶合逻辑模型提取总线逻辑。可要求总线功能模型的一些修改来得到“对准”的接口。
然后通过组装结合所有总线块模型的芯片的模型来验证总线块模型。然后通过用芯片测试台模拟芯片模型来验证芯片模型。在先前已经在周期近似模型中验证了芯片测试台时,芯片的这一行为块模型具有某些周期精确的操作,因此将要求芯片测试台的某些求精来使得块模型通过。在某些情况下,可能由于块功能模型和总线逻辑中的失配而产生差错,在那时,可能修改模型来校正差错。一旦芯片测试台成功地在该芯片模型中执行,各个总线块模型可以送给块设计者用于详细的实现。
在图14的步骤8612中,块测试台被提取。一旦芯片测试台在芯片层总线块模型8710上成功地执行,如图71所示,就可以在各个块的接口上设置探测头并在芯片测试台8712在模型上执行时可以从芯片测试台8712提取块测试台。这些块测试台被送给块设计者,用于在它们进行实现时验证所述块。
接下来进行图15所示的逻辑验证流,逻辑验证任务的目的是确保块在进行设计的实现阶段(从RTL到预排版网表到后排版网表)时每一个块功能正确。还测试组装的芯片是否继续提供要求的功能。
可以或者动态地通过功能模拟或者静态地利用执行等价检查的正式验证工具来进行验证。动态验证需要模拟工具,在本发明的BBD方法流中其他地方也需要并描述过模拟工具。动态验证还利用别处所用的向量集,因此实际上帮助测试组从周期近似到周期准确的移动。静态验证需要包含新工具。但是,静态验证通常比模拟运行更快并提供“完全”等价的检查,与模拟不同,后者仅证明等价到测试台演习设计功能的范围。
接下来,在步骤8710验证各个RTL块模型,其中针对芯片测试台验证由块设计者制作的RTL模拟模型。这可以通过用芯片层行为模型中对应的行为模型交换块RTL模型,并利用整个芯片测试台进行芯片的混合方式模拟来完成。另外,可以用提取的块测试台模拟各个块RTL模型。在任何一种情况下,由于从周期近似模型到周期准确模型的过渡,会预期到失配。将通过修改测试台来解决这些失配。如果失配是由缺少或不正确的功能引起,则必须修改RTL模型来校正差错。
在步骤8712,在芯片层验证RTL块模型。结合每一个块的RTL模拟模型来产生芯片层RTL模型。通过用芯片测试台模拟来验证该模型。此外,由于从周期近似模型到周期准确模型的过渡,可能会出现某些差错。通过修改芯片测试台来解决这些差错。必须通过修改一个或一个以上的块层RTL模型来解决任何功能差错。
在步骤8714,验证各个预排版块网表。用于每一个块的后合成网表模拟模型是相对用于那个块的RTL模型的。
在步骤8716,验证动态和静态芯片层预排版块网表。动态验证可以通过用芯片层行为模型中对应的行为模型交换块层后合成网表并利用整个芯片测试台进行芯片的混合方式模拟来进行。另外,可以用块测试台模拟各个块层后合成网表。在任何一种情况下,由于从周期准确模型到具有周期内定时的模型的过渡,会预期到失配。将通过修改测试台中的定时选通来解决这些失配。通过在用于每一个块的后合成网表和RTL模型上运行等价检查工具来执行静态验证。将通过修改后合成网表以匹配RTL模型来解决失配问题。
然后结合每一个块的后合成网表来产生芯片后合成网表。或者通过模拟或者静态地通过正式等价检查工具来验证该芯片层网表。通过用芯片测试台模拟芯片后合成网表来完成动态验证。通过在用于每一个块的芯片后合成网表和芯片RTL模型上运行等价检查工具来执行静态芯片层预排版验证。将通过修改后合成网表以匹配RTL模型来解决失配问题。
在步骤8718,验证各个后排版块网表。该步骤是步骤8714的重复,但用后排版网表替代了预排版网表。这两个模型之间的网表层的唯一不同应该是修改缓冲器和驱动强度以达到拟定设计的定时目标。应该把所遇到的差错限制到缓冲器不正确的增加或删除。如果后排版定时变化已经关于定时选通传送了信号,则可能必须修改块测试台的定时。
可以或者动态或者静态地进行所述验证。动态验证可以通过用芯片层RTL模型中对应的块RTL模型交换块层后排版网表并利用整个芯片测试台进行芯片的混合方式模拟来完成。另外,可以用块测试台模拟各个块层后排版网表。通过在用于每一个块的后排版网表和RTL模型上运行等价检查工具来执行静态验证。将通过修改后合成网表以匹配RTL模型来解决失配问题。
在步骤8720完成芯片层后排版网表的验证。该步骤是步骤8716的重复,但用后排版芯片层网表替代了预排版网表。这两个模型之间的网表层的唯一不同应该是修改缓冲器和驱动强度来达到拟定设计的定时目标。应该把所遇到的差错限制到缓冲器不正确的增加或删除。通过用芯片测试台模拟芯片后排版网表来完成动态验证。通过在芯片后排版网表和芯片RTL模型上运行等价检查工具来执行静态验证。将通过修改后排版网表以匹配RTL模型来解决失配问题。
最后,象图72和73说明的那样完成物理验证,其中以本发明涉及的领域的技术人员知道的方式来验证块和芯片出带(tape out)。物理验证任务的目的是验证通过设计的块设计和芯片组装阶段产生的GDSII文件功能正确并没有违背目标技术的设计规则。
通过运行用于目标技术的DRC来验证由块设计处理产生的用于每一个块的GDSII。任何差错或警告都反馈到块设计者用于解决问题。还在用于那个块的块GDSII文件和后排版网表之间运行LVS。任何差错或警告都反馈到块设计者用于解决问题。
通过运行用于目标技术的DRC来验证用于由芯片组装处理产生的完整的芯片的GDSII。任何差错和警告都反馈到芯片组装设计者用于解决问题。还在用于那个芯片的芯片GDSII文件和后排版网表之间运行LVS。任何差错或警告都反馈到芯片组装设计者用于解决问题。
尽管在附图和上面的描述中详细地说明并描述了本发明,然而应该指出,在本发明的精神内可以通过替代的实施例来实施本发明。因此,本发明的范围不限于本说明书中的说明和描述,而是由附加的权利要求书来定义。
Claims (5)
1.一种把胶合逻辑分布到设计块中的方法,用以执行集成电路器件设计方案,其中器件设计包括多个预先存在的设计块,所述方法包括如下步骤:
标识第一胶合逻辑元件的第一特征;
标识具有第二特征的第二胶合逻辑元件,所述第二特征是使所述第二胶合逻辑元件与所述第一胶合逻辑元件兼容;
把所述第一胶合逻辑元件与所述标识的第二胶合逻辑元件合并。
2.权利要求1的方法,其特征在于所述第一特征包括所述第一胶合逻辑元件所需的引线数。
3.权利要求1的方法,其特征在于所述第一特征包括所述第一胶合逻辑元件的输入结构。
4.权利要求1的方法,其特征在于所述第一特征包括所述第一胶合逻辑元件的输出结构。
5.权利要求1的方法,其特征在于所述第二胶合逻辑元件是设计块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10256698P | 1998-09-30 | 1998-09-30 | |
US60/102,566 | 1998-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1376283A CN1376283A (zh) | 2002-10-23 |
CN1331079C true CN1331079C (zh) | 2007-08-08 |
Family
ID=22290503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998137790A Expired - Fee Related CN1331079C (zh) | 1998-09-30 | 1999-09-30 | 基于块的设计方法 |
Country Status (13)
Country | Link |
---|---|
US (10) | US6269467B1 (zh) |
EP (1) | EP1145159A3 (zh) |
JP (1) | JP2002526908A (zh) |
KR (1) | KR100846089B1 (zh) |
CN (1) | CN1331079C (zh) |
AU (1) | AU1100500A (zh) |
BR (1) | BR9914200A (zh) |
CA (1) | CA2345648A1 (zh) |
EE (1) | EE200100189A (zh) |
HU (1) | HUP0301274A2 (zh) |
IL (1) | IL142279A0 (zh) |
PL (1) | PL350155A1 (zh) |
WO (1) | WO2000019343A2 (zh) |
Families Citing this family (349)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138266A (en) | 1997-06-16 | 2000-10-24 | Tharas Systems Inc. | Functional verification of integrated circuit designs |
US6697773B1 (en) | 1998-05-19 | 2004-02-24 | Altera Corporation | Using assignment decision diagrams with control nodes for sequential review during behavioral simulation |
US6961690B1 (en) * | 1998-05-19 | 2005-11-01 | Altera Corporation | Behaviorial digital simulation using hybrid control and data flow representations |
US6862563B1 (en) * | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
US6519636B2 (en) * | 1998-10-28 | 2003-02-11 | International Business Machines Corporation | Efficient classification, manipulation, and control of network transmissions by associating network flows with rule based functions |
US7076415B1 (en) * | 1998-12-17 | 2006-07-11 | Cadence Design Systems, Inc. | System for mixed signal synthesis |
US6446243B1 (en) * | 1999-04-23 | 2002-09-03 | Novas Software, Inc. | Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores |
US6560754B1 (en) * | 1999-05-13 | 2003-05-06 | Arc International Plc | Method and apparatus for jump control in a pipelined processor |
US6519754B1 (en) * | 1999-05-17 | 2003-02-11 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits |
US6446251B1 (en) * | 1999-06-14 | 2002-09-03 | David Neal Gardner | Method and apparatus for socket-based design with reusable-IP |
US6634008B1 (en) * | 1999-06-20 | 2003-10-14 | Fujitsu Limited | Methodology server based integrated circuit design |
US6507808B1 (en) * | 1999-06-23 | 2003-01-14 | International Business Machines Corporation | Hardware logic verification data transfer checking apparatus and method therefor |
US6678645B1 (en) * | 1999-10-28 | 2004-01-13 | Advantest Corp. | Method and apparatus for SoC design validation |
AU1232501A (en) * | 1999-10-29 | 2001-05-14 | Antrim Design Systems, Inc. | Mixed signal synthesis behavioral models and use in circuit design optimization |
US6704908B1 (en) * | 1999-11-17 | 2004-03-09 | Amadala Limited | Method and apparatus for automatically generating a phase lock loop (PLL) |
US7031900B1 (en) * | 2000-01-07 | 2006-04-18 | Sun Microsystems, Inc. | Static scheduling of test cases |
US6631504B2 (en) * | 2000-01-18 | 2003-10-07 | Cadence Design Systems, Inc | Hierarchical test circuit structure for chips with multiple circuit blocks |
US7181705B2 (en) * | 2000-01-18 | 2007-02-20 | Cadence Design Systems, Inc. | Hierarchical test circuit structure for chips with multiple circuit blocks |
JP2004500712A (ja) * | 2000-01-18 | 2004-01-08 | ケイデンス・デザイン・システムズ・インコーポレーテッド | 多数の回路ブロックを有するチップ用階層試験回路構造 |
WO2001054001A1 (en) * | 2000-01-18 | 2001-07-26 | Cadence Design Systems, Inc. | Adaptable circuit blocks for use in multi-block chip design |
US6487699B1 (en) * | 2000-01-31 | 2002-11-26 | International Business Machines Corporation | Method of controlling external models in system-on-chip verification |
US6571373B1 (en) * | 2000-01-31 | 2003-05-27 | International Business Machines Corporation | Simulator-independent system-on-chip verification methodology |
US6615167B1 (en) * | 2000-01-31 | 2003-09-02 | International Business Machines Corporation | Processor-independent system-on-chip verification for embedded processor systems |
US6427224B1 (en) * | 2000-01-31 | 2002-07-30 | International Business Machines Corporation | Method for efficient verification of system-on-chip integrated circuit designs including an embedded processor |
US6658508B1 (en) * | 2000-01-31 | 2003-12-02 | Koninklijke Philips Electronics N.V. | Expansion module with external bus for personal digital assistant and design method therefor |
US6904397B1 (en) * | 2000-02-22 | 2005-06-07 | Xilinx, Inc. | System and method for assisting in the development and integration of reusable circuit designs |
US6594799B1 (en) | 2000-02-28 | 2003-07-15 | Cadence Design Systems, Inc. | Method and system for facilitating electronic circuit and chip design using remotely located resources |
US6625780B1 (en) * | 2000-02-28 | 2003-09-23 | Cadence Design Systems, Inc. | Watermarking based protection of virtual component blocks |
US6851094B1 (en) * | 2000-02-28 | 2005-02-01 | Cadence Design Systems, Inc. | Automated method and system for selecting and procuring electronic components used in circuit and chip designs |
WO2001069411A2 (en) | 2000-03-10 | 2001-09-20 | Arc International Plc | Memory interface and method of interfacing between functional entities |
US6970814B1 (en) * | 2000-03-30 | 2005-11-29 | International Business Machines Corporation | Remote IP simulation modeling |
US6993740B1 (en) * | 2000-04-03 | 2006-01-31 | International Business Machines Corporation | Methods and arrangements for automatically interconnecting cores in systems-on-chip |
JP3583054B2 (ja) * | 2000-04-19 | 2004-10-27 | Necインフロンティア株式会社 | ネットワークを用いた設計業務システム及び設計方法 |
ATE453159T1 (de) * | 2000-05-12 | 2010-01-15 | Simplex Solutions Inc | Hochgenaues taktierungsmodell für die prüfung von integrierten schaltungen |
JP2001326151A (ja) * | 2000-05-16 | 2001-11-22 | Nec Corp | 半導体集積回路製作システム |
JP2001338010A (ja) * | 2000-05-25 | 2001-12-07 | Matsushita Electric Ind Co Ltd | 集積回路の設計方法 |
WO2001095161A2 (en) * | 2000-06-02 | 2001-12-13 | Virtio Corporation | Method and system for virtual prototyping |
JP2001344287A (ja) * | 2000-06-02 | 2001-12-14 | Nec Microsystems Ltd | アルゴリズム記述におけるバスの性能評価方法 |
JP3759860B2 (ja) * | 2000-06-08 | 2006-03-29 | シャープ株式会社 | 自己同期型のパイプライン制御を採用したデータ駆動型情報処理装置の設計方法 |
US7100133B1 (en) * | 2000-06-23 | 2006-08-29 | Koninklijke Philips Electronics N.V | Computer system and method to dynamically generate system on a chip description files and verification information |
TW518488B (en) * | 2000-06-30 | 2003-01-21 | Infineon Technologies Corp | Method for design and layout of integrated circuits |
WO2002005144A1 (en) | 2000-07-03 | 2002-01-17 | Cadence Design Systems, Inc. | Circuit component interface |
US6829731B1 (en) * | 2000-08-14 | 2004-12-07 | International Business Machines Corporation | Method and system for generating a design-specific test case from a generalized set of bus transactions |
US7020589B1 (en) * | 2000-09-29 | 2006-03-28 | Lsi Logic Corporation | Method and apparatus for adaptive timing optimization of an integrated circuit design |
JP3852741B2 (ja) * | 2000-10-31 | 2006-12-06 | シャープ株式会社 | 高位合成方法および高位合成装置 |
GB2406416A (en) * | 2000-10-31 | 2005-03-30 | Advanced Risc Mach Ltd | Describing an integrated circuit configuration |
US6671843B1 (en) * | 2000-11-13 | 2003-12-30 | Omar Kebichi | Method for providing user definable algorithms in memory BIST |
JP4118501B2 (ja) * | 2000-11-15 | 2008-07-16 | 株式会社ルネサステクノロジ | システム検証装置 |
US6704917B1 (en) * | 2000-11-21 | 2004-03-09 | Micro Industries Corporation | Table driven design system and method |
JP2002184948A (ja) * | 2000-12-12 | 2002-06-28 | Hitachi Ltd | 半導体集積回路装置の製造方法 |
US6629297B2 (en) | 2000-12-14 | 2003-09-30 | Tharas Systems Inc. | Tracing the change of state of a signal in a functional verification system |
US6625786B2 (en) * | 2000-12-14 | 2003-09-23 | Tharas Systems, Inc. | Run-time controller in a functional verification system |
US6691287B2 (en) | 2000-12-14 | 2004-02-10 | Tharas Systems Inc. | Functional verification system |
US7165231B2 (en) * | 2000-12-18 | 2007-01-16 | Yardstick Research, Llc | Method and system for incremental behavioral validation of digital design expressed in hardware description language |
US7430543B1 (en) * | 2001-02-09 | 2008-09-30 | Synopsys, Inc. | Method of enforcing a contract for a CAD tool |
US6694494B2 (en) * | 2001-03-16 | 2004-02-17 | Daro Semiconductors Ltd. | Method of designing a multi-module single-chip circuit system |
US6816997B2 (en) * | 2001-03-20 | 2004-11-09 | Cheehoe Teh | System and method for performing design rule check |
AU2002255849A1 (en) * | 2001-03-20 | 2002-10-03 | Nptest, Inc. | Low-jitter clock for test system |
JP2002288255A (ja) * | 2001-03-26 | 2002-10-04 | Toshiba Corp | ハードウェア記述言語で記述されたシステムlsiの回路部品、及びその検証方法、検証支援回路、システムlsiの製造方法 |
US6567959B2 (en) * | 2001-03-30 | 2003-05-20 | Intel Corporation | Method and device for verification of VLSI designs |
US6957403B2 (en) | 2001-03-30 | 2005-10-18 | Syntest Technologies, Inc. | Computer-aided design system to automate scan synthesis at register-transfer level |
JP4529063B2 (ja) * | 2001-03-30 | 2010-08-25 | ルネサスエレクトロニクス株式会社 | システムシミュレータ、シミュレーション方法及びシミュレーションプログラム |
DE10118470A1 (de) * | 2001-04-12 | 2002-10-24 | Siemens Ag | Objektbearbeitungssystem mit einem Objektmodell |
US6453443B1 (en) * | 2001-04-16 | 2002-09-17 | Taiwan Semiconductor Manufacturing Company | Method for cell modeling and timing verification of chip designs with voltage drop |
CN1293503C (zh) * | 2001-04-27 | 2007-01-03 | 株式会社鼎新 | 系统芯片的设计校验方法和装置 |
US20030004699A1 (en) * | 2001-06-04 | 2003-01-02 | Choi Charles Y. | Method and apparatus for evaluating an integrated circuit model |
US6578174B2 (en) | 2001-06-08 | 2003-06-10 | Cadence Design Systems, Inc. | Method and system for chip design using remotely located resources |
US6985843B2 (en) * | 2001-06-11 | 2006-01-10 | Nec Electronics America, Inc. | Cell modeling in the design of an integrated circuit |
US6757882B2 (en) * | 2001-06-16 | 2004-06-29 | Michael Y. Chen | Self-describing IP package for enhanced platform based SOC design |
US20030009730A1 (en) * | 2001-06-16 | 2003-01-09 | Chen Michael Y. | Enhanced platform based SOC design including exended peripheral selection and automated IP customization facilitation |
US20030005396A1 (en) * | 2001-06-16 | 2003-01-02 | Chen Michael Y. | Phase and generator based SOC design and/or verification |
US6502232B1 (en) * | 2001-06-18 | 2002-12-31 | Verisity Design, Inc. | Electronic circuit design environmentally constrained test generation system |
JP4035354B2 (ja) * | 2001-07-11 | 2008-01-23 | 富士通株式会社 | 電子回路設計方法及び装置、コンピュータプログラム及び記憶媒体 |
US6480999B1 (en) * | 2001-07-26 | 2002-11-12 | Xilinx, Inc. | Signal routing in programmable logic devices |
US20030061013A1 (en) * | 2001-09-11 | 2003-03-27 | Bentley William F. | Optimal selection of IP modules for design integration |
US20030050967A1 (en) * | 2001-09-11 | 2003-03-13 | Bentley William F. | Apparatus and method for optimal selection of IP modules for design integration |
US6764869B2 (en) * | 2001-09-12 | 2004-07-20 | Formfactor, Inc. | Method of assembling and testing an electronics module |
JP3891813B2 (ja) * | 2001-10-09 | 2007-03-14 | 富士通株式会社 | 集積論理回路の階層設計方法 |
US6654946B1 (en) * | 2001-10-30 | 2003-11-25 | Lsi Logic Corporation | Interscalable interconnect |
CA2360291A1 (en) * | 2001-10-30 | 2003-04-30 | Benoit Nadeau-Dostie | Method and program product for designing hierarchical circuit for quiescent current testing and circuit produced thereby |
US6999910B2 (en) * | 2001-11-20 | 2006-02-14 | Lsi Logic Corporation | Method and apparatus for implementing a metamethodology |
US6775798B2 (en) * | 2001-11-28 | 2004-08-10 | Lsi Logic Corporation | Fast sampling test bench |
US6543034B1 (en) | 2001-11-30 | 2003-04-01 | Koninklijke Philips Electronics N.V. | Multi-environment testing with a responder |
US7493470B1 (en) | 2001-12-07 | 2009-02-17 | Arc International, Plc | Processor apparatus and methods optimized for control applications |
US7103860B2 (en) * | 2002-01-25 | 2006-09-05 | Logicvision, Inc. | Verification of embedded test structures in circuit designs |
US20030145290A1 (en) * | 2002-01-30 | 2003-07-31 | International Business Machines Corporation | System for controlling external models used for verification of system on a chip (SOC) interfaces |
US7003743B2 (en) * | 2002-02-01 | 2006-02-21 | Freescale Semiconductor, Inc. | Method and system of data processor design by sensitizing logical difference |
WO2003067478A1 (en) * | 2002-02-05 | 2003-08-14 | Logicvision, Inc. | Verification of embedded test structures in circuit designs |
US6732338B2 (en) * | 2002-03-20 | 2004-05-04 | International Business Machines Corporation | Method for comprehensively verifying design rule checking runsets |
US6735749B2 (en) | 2002-03-21 | 2004-05-11 | Sun Microsystems, Inc. | (Design rule check)/(electrical rule check) algorithms using a system resolution |
US6760891B2 (en) * | 2002-04-01 | 2004-07-06 | Sun Microsystems, Inc. | Simulator of dynamic circuit for silicon critical path debug |
US6934897B2 (en) * | 2002-04-05 | 2005-08-23 | Nilanjan Mukherjee | Scheduling the concurrent testing of multiple cores embedded in an integrated circuit |
US6993733B2 (en) * | 2002-04-09 | 2006-01-31 | Atrenta, Inc. | Apparatus and method for handling of multi-level circuit design data |
US7178115B2 (en) * | 2002-04-11 | 2007-02-13 | Advantest Corp. | Manufacturing method and apparatus to avoid prototype-hold in ASIC/SOC manufacturing |
KR100745959B1 (ko) * | 2002-04-17 | 2007-08-02 | 후지쯔 가부시끼가이샤 | 집적 회로의 개발 방법 및 집적 회로의 개발 방법을 기록한 프로그램 기록 매체 |
US20030204386A1 (en) * | 2002-04-24 | 2003-10-30 | Glenn Colon-Bonet | Class-based system for circuit modeling |
WO2003091914A1 (en) * | 2002-04-25 | 2003-11-06 | Arc International | Apparatus and method for managing integrated circuit designs |
US6952810B2 (en) * | 2002-05-01 | 2005-10-04 | Sun Microsystems, Inc. | Coding speed and correctness of hardware description language (HDL) descriptions of hardware |
US6711730B2 (en) * | 2002-05-13 | 2004-03-23 | Hewlett-Packard Development Company, L.P. | Synthesizing signal net information from multiple integrated circuit package models |
US20030217338A1 (en) * | 2002-05-17 | 2003-11-20 | International Business Machines Corporation | Congestion mitigation with logic order preservation |
US6775811B2 (en) * | 2002-05-22 | 2004-08-10 | Lsi Logic Corporation | Chip design method for designing integrated circuit chips with embedded memories |
US7567892B2 (en) * | 2002-05-29 | 2009-07-28 | Broadcom Corporation | Method and system for realizing a logic model design |
US7149991B2 (en) * | 2002-05-30 | 2006-12-12 | Nec Electronics America, Inc. | Calibrating a wire load model for an integrated circuit |
US6925621B2 (en) * | 2002-06-24 | 2005-08-02 | Agilent Technologies, Inc. | System and method for applying timing models in a static-timing analysis of a hierarchical integrated circuit design |
US7127692B2 (en) * | 2002-06-27 | 2006-10-24 | Lsi Logic Corporation | Timing abstraction and partitioning strategy |
US6910194B2 (en) * | 2002-07-19 | 2005-06-21 | Agilent Technologies, Inc. | Systems and methods for timing a linear data path element during signal-timing verification of an integrated circuit design |
US6922822B2 (en) * | 2002-07-19 | 2005-07-26 | Hewlett-Packard Development Company, L.P. | Verifying proximity of ground vias to signal vias in an integrated circuit |
US6769102B2 (en) * | 2002-07-19 | 2004-07-27 | Hewlett-Packard Development Company | Verifying proximity of ground metal to signal traces in an integrated circuit |
US6807657B2 (en) | 2002-07-19 | 2004-10-19 | Hewlett-Packard Development Company, L.P. | Inter-signal proximity verification in an integrated circuit |
US6871332B2 (en) * | 2002-07-23 | 2005-03-22 | Sun Microsystems, Inc. | Structure and method for separating geometries in a design layout into multi-wide object classes |
US6954915B2 (en) * | 2002-07-31 | 2005-10-11 | Agilent Technologies, Inc. | System and methods for pre-artwork signal-timing verification of an integrated circuit design |
US7702636B1 (en) | 2002-07-31 | 2010-04-20 | Cadence Design Systems, Inc. | Federated system and methods and mechanisms of implementing and using such a system |
US7392255B1 (en) | 2002-07-31 | 2008-06-24 | Cadence Design Systems, Inc. | Federated system and methods and mechanisms of implementing and using such a system |
US6904576B2 (en) * | 2002-08-09 | 2005-06-07 | Synplicity, Inc. | Method and system for debugging using replicated logic |
US7213216B2 (en) | 2002-08-09 | 2007-05-01 | Synplicity, Inc. | Method and system for debugging using replicated logic and trigger logic |
US7398445B2 (en) * | 2002-08-09 | 2008-07-08 | Synplicity, Inc. | Method and system for debug and test using replicated logic |
US6842884B2 (en) * | 2002-08-28 | 2005-01-11 | Verplex Systems, Inc. | Combinational equivalence checking methods and systems with internal don't cares |
AU2003265891A1 (en) * | 2002-09-04 | 2004-03-29 | Mentor Graphics (Holdings) Ltd. | Polymorphic computational system and method in signals intelligence analysis |
US7043419B2 (en) * | 2002-09-20 | 2006-05-09 | International Business Machines Corporation | Method and apparatus for publishing and monitoring entities providing services in a distributed data processing system |
US20040059704A1 (en) * | 2002-09-20 | 2004-03-25 | International Business Machines Corporation | Self-managing computing system |
US7194445B2 (en) * | 2002-09-20 | 2007-03-20 | Lenovo (Singapore) Pte. Ltd. | Adaptive problem determination and recovery in a computer system |
US7216343B2 (en) * | 2002-09-20 | 2007-05-08 | International Business Machines Corporation | Method and apparatus for automatic updating and testing of software |
US20040060054A1 (en) * | 2002-09-20 | 2004-03-25 | International Business Machines Corporation | Composition service for autonomic computing |
US7131097B1 (en) * | 2002-09-24 | 2006-10-31 | Altera Corporation | Logic generation for multiple memory functions |
US7729898B1 (en) * | 2002-10-17 | 2010-06-01 | Altera Corporation | Methods and apparatus for implementing logic functions on a heterogeneous programmable device |
US7336268B1 (en) * | 2002-10-30 | 2008-02-26 | National Semiconductor Corporation | Point-to-point display system having configurable connections |
US6792581B2 (en) | 2002-11-07 | 2004-09-14 | Intel Corporation | Method and apparatus for cut-point frontier selection and for counter-example generation in formal equivalence verification |
US7424417B2 (en) * | 2002-11-19 | 2008-09-09 | Broadcom Corporation | System and method for clock domain grouping using data path relationships |
US7024636B2 (en) * | 2002-11-20 | 2006-04-04 | Lsi Logic Corporation | Chip management system |
FI5706U1 (fi) * | 2002-11-21 | 2003-02-26 | Patria New Technologies Oy | JTAG-testilaitteisto ja -testausjärjestelmä |
US7454735B2 (en) * | 2002-12-17 | 2008-11-18 | International Business Machines Corporation | ASIC clock floor planning method and structure |
US6968406B2 (en) * | 2003-02-20 | 2005-11-22 | Dell Products L.P. | System and method for arbitrating access between common access requests on a bus |
US7898047B2 (en) * | 2003-03-03 | 2011-03-01 | Samsung Electronics Co., Ltd. | Integrated nitride and silicon carbide-based devices and methods of fabricating integrated nitride-based devices |
US7143369B1 (en) * | 2003-03-14 | 2006-11-28 | Xilinx, Inc. | Design partitioning for co-stimulation |
US8639487B1 (en) * | 2003-03-25 | 2014-01-28 | Cadence Design Systems, Inc. | Method for multiple processor system-on-a-chip hardware and software cogeneration |
US20040199366A1 (en) * | 2003-04-01 | 2004-10-07 | Timothy Holm | Mixed signal analog connectivity check system |
JP4428110B2 (ja) * | 2003-04-14 | 2010-03-10 | 富士ゼロックス株式会社 | 経験知識情報処理装置 |
US7587690B1 (en) * | 2003-04-29 | 2009-09-08 | Cadence Design Systems, Inc. | Method and system for global coverage analysis |
US6728936B1 (en) * | 2003-04-29 | 2004-04-27 | Lsi Logic Corporation | Datapath bitslice technology |
US7216318B1 (en) | 2003-04-29 | 2007-05-08 | Cadence Design Systems, Inc. | Method and system for false path analysis |
JP4248925B2 (ja) * | 2003-05-08 | 2009-04-02 | 株式会社ルネサステクノロジ | 自動フロアプラン決定方法 |
US7000205B2 (en) * | 2003-05-29 | 2006-02-14 | International Business Machines Corporation | Method, apparatus, and program for block-based static timing analysis with uncertainty |
US7178118B2 (en) * | 2003-05-30 | 2007-02-13 | Synplicity, Inc. | Method and apparatus for automated circuit design |
US7627842B1 (en) | 2003-06-03 | 2009-12-01 | Cadence Design Systems, Inc. | Method and system for verification of circuits with encoded signals |
US7043708B2 (en) * | 2003-06-09 | 2006-05-09 | Lsi Logic Corporation | Intelligent crosstalk delay estimator for integrated circuit design flow |
US7184946B2 (en) * | 2003-06-19 | 2007-02-27 | Xilinx, Inc. | Co-simulation via boundary scan interface |
US7216326B2 (en) * | 2003-06-20 | 2007-05-08 | Interuniversitar Microelektronica Centrum (Imec) | Resource activity aware system for determining a resource interconnection pattern within an essentially digital device and devices created therewith |
IL156634A0 (en) * | 2003-06-25 | 2004-01-04 | Shmuel Livne | Method to evaluate and improve the testability of electronic products |
US7231335B2 (en) * | 2003-06-26 | 2007-06-12 | International Business Machines Corporation | Method and apparatus for performing input/output floor planning on an integrated circuit design |
JP2005037995A (ja) * | 2003-07-15 | 2005-02-10 | Toshiba Corp | 半導体集積回路の検証システム |
US20050048348A1 (en) * | 2003-08-26 | 2005-03-03 | Hydrogenics Corporation | Fuel cell system and bracket therefor |
US20050049843A1 (en) * | 2003-08-29 | 2005-03-03 | Lee Hewitt | Computerized extension apparatus and methods |
US20050055194A1 (en) * | 2003-09-08 | 2005-03-10 | Krause Luanne Marie | Migration model |
KR100546886B1 (ko) * | 2003-10-08 | 2006-01-26 | 삼성전자주식회사 | 시스템온칩 성능 측정장치 및 그 성능 측정방법 |
US7111264B2 (en) * | 2003-10-17 | 2006-09-19 | Lsi Logic Corporation | Process and apparatus for fast assignment of objects to a rectangle |
US8065128B1 (en) * | 2003-10-23 | 2011-11-22 | Altera Corporation | Methods and apparatus for automated testbench generation |
US7036102B2 (en) * | 2003-10-27 | 2006-04-25 | Lsi Logic Corporation | Process and apparatus for placement of cells in an IC during floorplan creation |
NZ547492A (en) * | 2003-10-28 | 2009-12-24 | Bioarray Solutions Ltd | Optimization of gene expression analysis using immobilized capture probes of different lengths and densities |
US7103865B2 (en) * | 2003-11-21 | 2006-09-05 | Lsi Logic Corporation | Process and apparatus for placement of megacells in ICs design |
WO2005055341A1 (en) * | 2003-12-01 | 2005-06-16 | Hydrogenics Corporation | Fuel cell system and bracket therefor |
US7003749B2 (en) * | 2004-01-12 | 2006-02-21 | Cadence Design Systems, Inc. | Constraint data management for electronic design automation |
US7305332B1 (en) * | 2004-01-14 | 2007-12-04 | Adaptec, Inc. | System and method for automatic extraction of testing information from a functional specification |
US7093218B2 (en) * | 2004-02-19 | 2006-08-15 | International Business Machines Corporation | Incremental, assertion-based design verification |
US7788078B1 (en) * | 2004-02-27 | 2010-08-31 | Synopsys, Inc. | Processor/memory co-exploration at multiple abstraction levels |
US7055118B1 (en) | 2004-03-01 | 2006-05-30 | Sun Microsystems, Inc. | Scan chain verification using symbolic simulation |
US7149993B1 (en) * | 2004-03-29 | 2006-12-12 | Xilinx, Inc. | Method, system, and apparatus for incremental design in programmable logic devices using floorplanning |
US20050229143A1 (en) * | 2004-04-01 | 2005-10-13 | Lsi Logic Corporation | System and method for implementing multiple instantiated configurable peripherals in a circuit design |
US7620743B2 (en) * | 2004-04-01 | 2009-11-17 | Lsi Corporation | System and method for implementing multiple instantiated configurable peripherals in a circuit design |
US7275224B2 (en) * | 2004-04-02 | 2007-09-25 | International Business Machines Corporation | Method for providing an area optimized binary orthogonality checker |
US7103858B2 (en) * | 2004-04-14 | 2006-09-05 | Lsi Logic Corporation | Process and apparatus for characterizing intellectual property for integration into an IC platform environment |
US7606692B2 (en) * | 2004-04-26 | 2009-10-20 | Lsi Corporation | Gate-level netlist reduction for simulating target modules of a design |
JP2005321861A (ja) * | 2004-05-06 | 2005-11-17 | Nec Electronics Corp | 機能検証方法 |
US20050251767A1 (en) * | 2004-05-07 | 2005-11-10 | Shah Gaurav R | Processing of circuit design data |
US7243311B2 (en) * | 2004-05-28 | 2007-07-10 | Rohm Co., Ltd. | Method and apparatus for supporting development of integrated circuit and a transactional business method involving contracting and licensing |
US20050268258A1 (en) * | 2004-06-01 | 2005-12-01 | Tera Systems, Inc. | Rule-based design consultant and method for integrated circuit design |
WO2005119440A2 (en) * | 2004-06-01 | 2005-12-15 | Tera Systems, Inc. | Methods and systems for mixed-mode physical synthesis in electronic design automation |
US20050273683A1 (en) * | 2004-06-07 | 2005-12-08 | Logicvision, Inc. | Insertion of embedded test in RTL to GDSII flow |
US7310792B2 (en) * | 2004-06-15 | 2007-12-18 | Cadence Design Systems, Inc. | Method and system for modeling variation of circuit parameters in delay calculation for timing analysis |
US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
TWI286216B (en) * | 2004-06-29 | 2007-09-01 | Pixart Imaging Inc | Single chip test method, component and its test system |
US7516423B2 (en) * | 2004-07-13 | 2009-04-07 | Kimotion Technologies | Method and apparatus for designing electronic circuits using optimization |
US7171644B1 (en) | 2004-08-06 | 2007-01-30 | Xilinx, Inc. | Implementation set-based guide engine and method of implementing a circuit design |
US7146583B1 (en) | 2004-08-06 | 2006-12-05 | Xilinx, Inc. | Method and system for implementing a circuit design in a tree representation |
US7360177B1 (en) | 2004-08-06 | 2008-04-15 | Xilinx, Inc. | Method and arrangement providing for implementation granularity using implementation sets |
US7181704B1 (en) * | 2004-08-06 | 2007-02-20 | Xilinx, Inc. | Method and system for designing integrated circuits using implementation directives |
US7290241B1 (en) | 2004-08-06 | 2007-10-30 | Xilinx, Inc. | Method and system for managing behavior of algorithms |
US7913206B1 (en) * | 2004-09-16 | 2011-03-22 | Cadence Design Systems, Inc. | Method and mechanism for performing partitioning of DRC operations |
US20060080632A1 (en) * | 2004-09-30 | 2006-04-13 | Mathstar, Inc. | Integrated circuit layout having rectilinear structure of objects |
US7500165B2 (en) | 2004-10-06 | 2009-03-03 | Broadcom Corporation | Systems and methods for controlling clock signals during scan testing integrated circuits |
US7730437B1 (en) * | 2004-10-27 | 2010-06-01 | Cypress Semiconductor Corporation | Method of full semiconductor chip timing closure |
US7526745B2 (en) * | 2004-12-08 | 2009-04-28 | Telefonaktiebolaget L M Ericsson (Publ) | Method for specification and integration of reusable IP constraints |
US20060136188A1 (en) * | 2004-12-22 | 2006-06-22 | Lacey David J | Capturing curation data |
US20070247189A1 (en) * | 2005-01-25 | 2007-10-25 | Mathstar | Field programmable semiconductor object array integrated circuit |
US7856611B2 (en) * | 2005-02-17 | 2010-12-21 | Samsung Electronics Co., Ltd. | Reconfigurable interconnect for use in software-defined radio systems |
US7325210B2 (en) * | 2005-03-10 | 2008-01-29 | International Business Machines Corporation | Hybrid linear wire model approach to tuning transistor widths of circuits with RC interconnect |
US20060235657A1 (en) * | 2005-03-18 | 2006-10-19 | Inventec Corporation | System of accumulating component design experience and method thereof |
US20060225015A1 (en) * | 2005-03-31 | 2006-10-05 | Kamil Synek | Various methods and apparatuses for flexible hierarchy grouping |
US7178075B2 (en) * | 2005-04-25 | 2007-02-13 | International Business Machines Corporation | High-speed level sensitive scan design test scheme with pipelined test clocks |
US7506281B1 (en) | 2005-05-18 | 2009-03-17 | Xilinx, Inc. | Two-pass method for implementing a flexible testbench |
JP4427002B2 (ja) * | 2005-05-20 | 2010-03-03 | 株式会社アドバンテスト | 半導体試験用プログラムデバッグ装置 |
US7539957B1 (en) * | 2005-05-26 | 2009-05-26 | Altera Corporation | Automatic test pattern generation tool with feedback path capabilities for testing circuits with repeating blocks |
US7657416B1 (en) | 2005-06-10 | 2010-02-02 | Cadence Design Systems, Inc | Hierarchical system design |
US7483823B2 (en) | 2005-06-21 | 2009-01-27 | Nvidia Corporation | Building integrated circuits using logical units |
EP1736905A3 (en) * | 2005-06-21 | 2007-09-05 | Nvidia Corporation | Building integrated circuits using logical units |
US7363610B2 (en) | 2005-06-21 | 2008-04-22 | Nvidia Corporation | Building integrated circuits using a common database |
US7451426B2 (en) * | 2005-07-07 | 2008-11-11 | Lsi Corporation | Application specific configurable logic IP |
US7464345B2 (en) * | 2005-08-01 | 2008-12-09 | Lsi Corporation | Resource estimation for design planning |
US20070033557A1 (en) * | 2005-08-08 | 2007-02-08 | Byrn Jonathan W | Method for creating constraints for integrated circuit design closure |
US7409656B1 (en) | 2005-09-12 | 2008-08-05 | Cadence Design Systems, Inc. | Method and system for parallelizing computing operations |
US7904852B1 (en) | 2005-09-12 | 2011-03-08 | Cadence Design Systems, Inc. | Method and system for implementing parallel processing of electronic design automation tools |
JP2007103662A (ja) * | 2005-10-04 | 2007-04-19 | Matsushita Electric Ind Co Ltd | 半導体集積回路およびその製造方法 |
JP4366353B2 (ja) | 2005-10-25 | 2009-11-18 | パナソニック株式会社 | 半導体集積回路及びその設計方法 |
US20070150627A1 (en) * | 2005-11-22 | 2007-06-28 | Lsi Logic Corporation | Endian mapping engine, method of endian mapping and a processing system employing the engine and the method |
US7627847B1 (en) * | 2005-12-01 | 2009-12-01 | Cadence Design Systems, Inc. | Method and system for representing manufacturing and lithography information for IC routing |
US20070162268A1 (en) * | 2006-01-12 | 2007-07-12 | Bhaskar Kota | Algorithmic electronic system level design platform |
US20070162531A1 (en) * | 2006-01-12 | 2007-07-12 | Bhaskar Kota | Flow transform for integrated circuit design and simulation having combined data flow, control flow, and memory flow views |
JP4652242B2 (ja) * | 2006-01-20 | 2011-03-16 | 株式会社日立製作所 | 半導体集積回路のセル配置方法 |
US7526742B1 (en) | 2006-01-31 | 2009-04-28 | Xilinx, Inc. | One-pass method for implementing a flexible testbench |
JP2007213269A (ja) * | 2006-02-08 | 2007-08-23 | Toshiba Corp | 応力解析方法、配線構造設計方法、プログラム及び半導体装置の製造方法 |
US7469401B2 (en) * | 2006-02-22 | 2008-12-23 | International Business Machines Corporation | Method for using partitioned masks to build a chip |
CN101479704B (zh) * | 2006-03-27 | 2013-09-04 | 相干逻辑公司 | 为多处理器系统设计程序 |
US7567947B2 (en) * | 2006-04-04 | 2009-07-28 | Optimaltest Ltd. | Methods and systems for semiconductor testing using a testing scenario language |
US7543265B1 (en) * | 2006-04-26 | 2009-06-02 | Altera Corporation | Method for early logic mapping during FPGA synthesis |
US7865694B2 (en) * | 2006-05-12 | 2011-01-04 | International Business Machines Corporation | Three-dimensional networking structure |
US7571414B2 (en) * | 2006-06-15 | 2009-08-04 | National Chip Implementation Center, National Applied Research Laboratories | Multi-project system-on-chip and its method |
US8448096B1 (en) | 2006-06-30 | 2013-05-21 | Cadence Design Systems, Inc. | Method and system for parallel processing of IC design layouts |
WO2008013968A2 (en) | 2006-07-28 | 2008-01-31 | Vast Systems Technology Corporation | Virtual processor generation model for co-simulation |
KR100831271B1 (ko) | 2006-08-16 | 2008-05-22 | 동부일렉트로닉스 주식회사 | 물리적 레이어의 프로그램적 생성을 통한 물리적 레이아웃 데이터를 변경하는 방법 |
US7657856B1 (en) | 2006-09-12 | 2010-02-02 | Cadence Design Systems, Inc. | Method and system for parallel processing of IC design layouts |
JP4805779B2 (ja) * | 2006-10-04 | 2011-11-02 | 富士通株式会社 | 集積回路設計方法、集積回路設計装置及び集積回路設計プログラム |
US7694251B2 (en) * | 2006-10-30 | 2010-04-06 | Cadence Design Systems, Inc. | Method and system for verifying power specifications of a low power design |
US8332452B2 (en) * | 2006-10-31 | 2012-12-11 | International Business Machines Corporation | Single precision vector dot product with “word” vector write mask |
US9495724B2 (en) * | 2006-10-31 | 2016-11-15 | International Business Machines Corporation | Single precision vector permute immediate with “word” vector write mask |
US20080100628A1 (en) * | 2006-10-31 | 2008-05-01 | International Business Machines Corporation | Single Precision Vector Permute Immediate with "Word" Vector Write Mask |
US8020124B2 (en) * | 2006-11-20 | 2011-09-13 | Sonics, Inc. | Various methods and apparatuses for cycle accurate C-models of components |
US8868397B2 (en) * | 2006-11-20 | 2014-10-21 | Sonics, Inc. | Transaction co-validation across abstraction layers |
US8127113B1 (en) | 2006-12-01 | 2012-02-28 | Synopsys, Inc. | Generating hardware accelerators and processor offloads |
US8365113B1 (en) * | 2007-01-10 | 2013-01-29 | Cadence Design Systems, Inc. | Flow methodology for single pass parallel hierarchical timing closure of integrated circuit designs |
WO2008091575A2 (en) | 2007-01-22 | 2008-07-31 | Vast Systems Technology Corporation | Method and system for modeling a bus for a system design incorporating one or more programmable processors |
KR100893743B1 (ko) * | 2007-01-23 | 2009-04-17 | (주)에스엠티코리아 | 인쇄회로기판의 설계 시스템 및 기록매체 |
US7603643B2 (en) * | 2007-01-30 | 2009-10-13 | Cadence Design Systems, Inc. | Method and system for conducting design explorations of an integrated circuit |
US7530036B2 (en) * | 2007-02-08 | 2009-05-05 | International Business Machines Corporation | Random test generation using an optimization solver |
US20090067343A1 (en) * | 2007-06-04 | 2009-03-12 | David Fritz | Method for the synthesis of optimal asynchronous on-chip communication networks from system-level constraints |
US7814454B2 (en) * | 2007-06-28 | 2010-10-12 | International Business Machines Corporation | Selectable device options for characterizing semiconductor devices |
US7895029B2 (en) * | 2007-10-30 | 2011-02-22 | International Business Machines Corporation | System and method of automating the addition of RTL based critical timing path counters to verify critical path coverage of post-silicon software validation tools |
US8271252B2 (en) * | 2007-11-08 | 2012-09-18 | Nvidia Corporation | Automatic verification of device models |
US7904289B2 (en) * | 2007-11-12 | 2011-03-08 | International Business Machines Corporation | Method and system for testing functionality of a chip checker |
US8019970B2 (en) * | 2007-11-28 | 2011-09-13 | International Business Machines Corporation | Three-dimensional networking design structure |
US20090144595A1 (en) * | 2007-11-30 | 2009-06-04 | Mathstar, Inc. | Built-in self-testing (bist) of field programmable object arrays |
US8239182B2 (en) * | 2007-12-04 | 2012-08-07 | Spansion Llc | Data transmission system-on-chip memory model based validation |
US7941299B1 (en) | 2008-01-08 | 2011-05-10 | The Mathworks, Inc. | Verification and validation system for a graphical model |
US7694266B1 (en) * | 2008-01-22 | 2010-04-06 | Cadence Design Systems, Inc. | Method and apparatus for dynamic frequency voltage switching circuit synthesis |
US8117579B2 (en) * | 2008-01-31 | 2012-02-14 | International Business Machines Corporation | LSSD compatibility for GSD unified global clock buffers |
US8510616B2 (en) * | 2008-02-14 | 2013-08-13 | Nvidia Corporation | Scalable scan-based test architecture with reduced test time and test power |
US8745200B2 (en) * | 2008-05-06 | 2014-06-03 | Nvidia Corporation | Testing operation of processors setup to operate in different modes |
JP2009294744A (ja) * | 2008-06-03 | 2009-12-17 | Nec Electronics Corp | バスインターフェース設計装置、バスインターフェース設計方法、及びプログラム |
US8032338B2 (en) * | 2008-06-13 | 2011-10-04 | Power Integrations, Inc. | Method and apparatus for design of a power supply |
US8219944B2 (en) * | 2008-06-24 | 2012-07-10 | Cadence Design Systems, Inc. | Method and system performing block-level RC extraction |
US8584073B2 (en) * | 2008-07-21 | 2013-11-12 | Synopsys, Inc. | Test design optimizer for configurable scan architectures |
JP5138040B2 (ja) * | 2008-07-30 | 2013-02-06 | パナソニック株式会社 | 集積回路 |
US7949980B1 (en) * | 2008-07-31 | 2011-05-24 | Altera Corporation | Circuit design tools that support devices with real-time phase-locked loop reconfiguration capabilities |
US8095902B2 (en) * | 2008-08-18 | 2012-01-10 | International Business Machines Corporation | Design structure for couple noise characterization using a single oscillator |
WO2010023499A1 (en) * | 2008-08-25 | 2010-03-04 | David Fritz | Method for the synthesis of optimal asynchronous on-chip communication networks from system-level constraints |
US8046726B2 (en) * | 2008-09-16 | 2011-10-25 | Lsi Corporation | Waiver mechanism for physical verification of system designs |
US8156453B1 (en) | 2008-10-16 | 2012-04-10 | Cadence Design Systems, Inc. | Method and system identifying and locating IP blocks and block suppliers for an electronic design |
RU2525084C2 (ru) * | 2008-11-14 | 2014-08-10 | Панасоник Корпорэйшн | Устройство терминала беспроводной связи, устройство базовой станции беспроводной связи и способ установки констелляции кластеров |
US8943457B2 (en) * | 2008-11-24 | 2015-01-27 | Nvidia Corporation | Simulating scan tests with reduced resources |
US8261215B2 (en) * | 2008-12-22 | 2012-09-04 | Cadence Design Systems, Inc. | Method and system for performing cell modeling and selection |
US8065638B2 (en) * | 2009-01-30 | 2011-11-22 | Synopsys, Inc. | Incremental concurrent processing for efficient computation of high-volume layout data |
US8893061B2 (en) * | 2009-01-30 | 2014-11-18 | Synopsys, Inc. | Incremental concurrent processing for efficient computation of high-volume layout data |
JP5236533B2 (ja) * | 2009-03-05 | 2013-07-17 | 株式会社トヨタIt開発センター | ネットワークの設計を支援するための方法および装置 |
JP5262909B2 (ja) * | 2009-03-27 | 2013-08-14 | 富士通株式会社 | 検証支援プログラム、検証支援装置および検証支援方法 |
US8966414B2 (en) * | 2009-05-29 | 2015-02-24 | Cypress Semiconductor Corporation | Implementing a circuit using an integrated circuit including parametric analog elements |
US20100305933A1 (en) * | 2009-06-01 | 2010-12-02 | Chang Chioumin M | Method and Apparatus for Verifying Logic Circuits Using Vector Emulation with Vector Substitution |
US8831925B1 (en) | 2009-06-09 | 2014-09-09 | Jasper Design Automation, Inc. | Indexing behaviors and recipes of a circuit design |
US9858367B1 (en) | 2009-08-31 | 2018-01-02 | Cypress Semiconductor Corporation | Integrated circuit including parametric analog elements |
US8324924B2 (en) * | 2009-10-20 | 2012-12-04 | David Scott Landoll | Post-programming functional verification for programable integrated circuits |
US8219228B2 (en) * | 2009-10-23 | 2012-07-10 | Certusoft, Inc. | Parametric configurator for product design: system and method |
US8214069B2 (en) * | 2009-10-23 | 2012-07-03 | Certusoft, Inc. | Automated hierarchical configuration of custom products with complex geometries: method and apparatus |
CN101692655B (zh) * | 2009-10-23 | 2012-05-30 | 烽火通信科技股份有限公司 | 一种数据帧存储管理装置 |
JP5068300B2 (ja) * | 2009-11-24 | 2012-11-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データフロー及びプロセッサのメモリ共有化ための装置、方法及びプログラム |
CN101833491B (zh) * | 2010-04-26 | 2012-10-24 | 浪潮电子信息产业股份有限公司 | 一种节点互连系统链路检测电路的设计与fpga实现方法 |
US9230047B1 (en) * | 2010-06-11 | 2016-01-05 | Altera Corporation | Method and apparatus for partitioning a synthesis netlist for compile time and quality of results improvement |
US20120005643A1 (en) * | 2010-06-30 | 2012-01-05 | International Business Machines Corporation | System and Method for Placing Integrated Circuit Functional Blocks According to Dataflow Width |
CN101916305A (zh) * | 2010-07-19 | 2010-12-15 | 无锡汉咏微电子有限公司 | 一种复杂管脚芯片的验证方法 |
CN102096619A (zh) * | 2010-12-17 | 2011-06-15 | 天津曙光计算机产业有限公司 | 一种基于tcp流的验证方法 |
CN102012957A (zh) * | 2010-12-17 | 2011-04-13 | 天津曙光计算机产业有限公司 | 一种基于五元组的包分类逻辑代码验证方法 |
JP5565340B2 (ja) * | 2011-02-24 | 2014-08-06 | 富士通株式会社 | 試験方法,試験プログラム,及び試験装置 |
US8683282B2 (en) * | 2011-03-01 | 2014-03-25 | International Business Machines Corporation | Automatic identification of information useful for generation-based functional verification |
US8661305B2 (en) * | 2011-07-10 | 2014-02-25 | Ravishankar Rajarao | Method and system for test vector generation |
US8572527B1 (en) | 2011-09-13 | 2013-10-29 | Jasper Design Automation, Inc. | Generating properties for circuit designs |
US8788988B2 (en) | 2011-10-31 | 2014-07-22 | Apple Inc. | Managing consistency of multiple-source fabrication data in an electronic design environment |
US9336107B2 (en) * | 2011-11-18 | 2016-05-10 | Mentor Graphics Corporation | Dynamic design partitioning for diagnosis |
US8516421B1 (en) * | 2012-01-10 | 2013-08-20 | Jasper Design Automation, Inc. | Generating circuit design properties from signal traces |
US8434052B1 (en) | 2012-02-21 | 2013-04-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for ensuring partitioned block physical compatibility between revisions of an integrated circuit design |
US8739092B1 (en) | 2012-04-25 | 2014-05-27 | Jasper Design Automation, Inc. | Functional property ranking |
US8365109B1 (en) * | 2012-06-27 | 2013-01-29 | Xilinx, Inc. | Determining efficient buffering for multi-dimensional datastream applications |
US8533647B1 (en) * | 2012-10-05 | 2013-09-10 | Atrenta, Inc. | Method for generating an integrated and unified view of IP-cores for hierarchical analysis of a system on chip (SoC) design |
US8635567B1 (en) * | 2012-10-11 | 2014-01-21 | Xilinx, Inc. | Electronic design automation tool for guided connection assistance |
US9069919B1 (en) * | 2012-10-17 | 2015-06-30 | Qlogic, Corporation | Method and system for arbitration verification |
US8904256B1 (en) * | 2012-11-09 | 2014-12-02 | Cadence Design Systems, Inc. | Method and apparatus for low-pin count testing of integrated circuits |
US20140149817A1 (en) * | 2012-11-27 | 2014-05-29 | International Business Machines Corporation | Diagnostic testing for a double-pumped memory array |
US9251554B2 (en) | 2012-12-26 | 2016-02-02 | Analog Devices, Inc. | Block-based signal processing |
US8645897B1 (en) * | 2013-01-07 | 2014-02-04 | Freescale Semiconductor, Inc. | Integrated circuit design verification system |
US8769449B1 (en) * | 2013-02-08 | 2014-07-01 | Xilinx, Inc. | System level circuit design |
US8745567B1 (en) * | 2013-03-14 | 2014-06-03 | Atrenta, Inc. | Efficient apparatus and method for analysis of RTL structures that cause physical congestion |
US8826201B1 (en) * | 2013-03-14 | 2014-09-02 | Jasper Design Automation, Inc. | Formal verification coverage metrics for circuit design properties |
US8826215B1 (en) | 2013-05-24 | 2014-09-02 | International Business Machines Corporation | Routing centric design closure |
US9507883B2 (en) | 2013-06-24 | 2016-11-29 | Altera Corporation | Method and apparatus for implementing a system-level design tool for design planning and architecture exploration |
CN103439904A (zh) * | 2013-08-27 | 2013-12-11 | 国家电网公司 | 一种用于配网系统的智能控制通讯装置 |
US9081927B2 (en) | 2013-10-04 | 2015-07-14 | Jasper Design Automation, Inc. | Manipulation of traces for debugging a circuit design |
US9158874B1 (en) | 2013-11-06 | 2015-10-13 | Cadence Design Systems, Inc. | Formal verification coverage metrics of covered events for circuit design properties |
US8875073B1 (en) * | 2014-02-20 | 2014-10-28 | Xilinx, Inc. | Generation of internal interfaces for a block-based design |
US9613715B2 (en) | 2014-06-16 | 2017-04-04 | Sandisk Technologies Llc | Low-test memory stack for non-volatile storage |
US8976609B1 (en) * | 2014-06-16 | 2015-03-10 | Sandisk Enterprise Ip Llc | Low-test memory stack for non-volatile storage |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US9606882B2 (en) | 2014-07-17 | 2017-03-28 | Sandisk Technologies Llc | Methods and systems for die failure testing |
US9934347B2 (en) | 2014-10-01 | 2018-04-03 | Samsung Electronics Co., Ltd. | Integrated circuit and method of designing layout of integrated circuit |
US9355211B2 (en) * | 2014-10-10 | 2016-05-31 | Oracle International Corporation | Unified tool for automatic design constraints generation and verification |
CN104616557B (zh) * | 2015-01-30 | 2017-05-17 | 南车株洲电力机车有限公司 | 一种轨道车辆模拟电路生成方法、系统及控制方法、系统 |
US9690896B2 (en) | 2015-04-09 | 2017-06-27 | Samsung Electronics Co., Ltd. | Method for manufacturing a semiconductor device and semiconductor device manufactured by the same |
US10204920B2 (en) | 2015-04-09 | 2019-02-12 | Samsung Electronics Co., Ltd. | Semiconductor device including polygon-shaped standard cell |
KR102321605B1 (ko) | 2015-04-09 | 2021-11-08 | 삼성전자주식회사 | 반도체 장치의 레이아웃 설계 방법 및 그를 이용한 반도체 장치의 제조 방법 |
US9698056B2 (en) | 2015-04-09 | 2017-07-04 | Samsung Electronics., Ltd. | Method for designing layout of semiconductor device and method for manufacturing semiconductor device using the same |
US9773772B2 (en) | 2015-04-09 | 2017-09-26 | Samsung Electronics Co., Ltd. | Semiconductor device and method of fabricating the same |
US9405882B1 (en) * | 2015-06-26 | 2016-08-02 | Cadence Design Systems, Inc. | High performance static timing analysis system and method for input/output interfaces |
US10395001B2 (en) * | 2015-11-25 | 2019-08-27 | Synopsys, Inc. | Multiple patterning layout decomposition considering complex coloring rules |
US10289788B1 (en) * | 2015-11-30 | 2019-05-14 | Cadence Design Systems, Inc. | System and method for suggesting components associated with an electronic design |
SG11201805469VA (en) * | 2016-03-18 | 2018-10-30 | Mitsubishi Electric Corp | Control logic diagram creation support apparatus |
US10380292B1 (en) * | 2016-04-08 | 2019-08-13 | Cadence Design Systems, Inc. | Systems and methods for finite difference time domain simulation of an electronic design |
US10235485B1 (en) * | 2016-09-27 | 2019-03-19 | Altera Corporation | Partial reconfiguration debugging using hybrid models |
JP6780576B2 (ja) * | 2017-04-27 | 2020-11-04 | トヨタ自動車株式会社 | 解析手法提示システム、方法及びプログラム |
US11361124B1 (en) * | 2017-08-10 | 2022-06-14 | Ansys, Inc. | Generating a power profile by node sampling an IP block |
US10762262B1 (en) * | 2017-11-03 | 2020-09-01 | Synopsys, Inc. | Multi-dimensional constraint solver using modified relaxation process |
CN108009339A (zh) * | 2017-11-28 | 2018-05-08 | 深圳市瑞尔时代科技有限公司 | 一种监控主机端口设计方法 |
CN108596415B (zh) | 2017-12-15 | 2023-11-24 | 创新先进技术有限公司 | 一种模型整合方法及装置 |
CN108520128B (zh) * | 2018-03-29 | 2022-04-15 | 北京集创北方科技股份有限公司 | 集成电路设计方法和计算机可读存储介质 |
US10614190B2 (en) | 2018-06-29 | 2020-04-07 | International Business Machines Corporation | Deep trench floorplan distribution design methodology for semiconductor manufacturing |
FR3085759A1 (fr) * | 2018-09-12 | 2020-03-13 | Stmicroelectronics (Grenoble 2) Sas | Puce electronique a entrees/sorties analogiques comprenant des moyens d'auto-diagnostic |
US10831965B1 (en) * | 2019-07-23 | 2020-11-10 | International Business Machines Corporation | Placement of vectorized latches in hierarchical integrated circuit development |
US11467851B1 (en) * | 2019-11-21 | 2022-10-11 | Synopsys, Inc. | Machine learning (ML)-based static verification for derived hardware-design elements |
TWI749724B (zh) * | 2020-08-21 | 2021-12-11 | 和碩聯合科技股份有限公司 | 電子電路系統 |
US20220164510A1 (en) * | 2020-11-24 | 2022-05-26 | Raytheon Company | Automated design of field programmable gate array or other logic device based on artificial intelligence and vectorization of behavioral source code |
KR102384978B1 (ko) * | 2020-12-08 | 2022-04-07 | 현대오토에버 주식회사 | 가치 기반 마이크로 컨트롤러 유닛의 포트 자동 설계 장치 및 방법 |
CN112763890B (zh) * | 2020-12-15 | 2022-09-16 | 成都海光微电子技术有限公司 | 用于芯片的自适应电压与频率调节的测试电路的实现方法 |
US11188702B1 (en) * | 2020-12-31 | 2021-11-30 | Cadence Design Systems, Inc. | Dynamic weighting scheme for local cluster refinement |
US11704461B1 (en) * | 2022-01-04 | 2023-07-18 | International Business Machines Corporation | Dynamic control of coverage by a verification testbench |
TWI789198B (zh) * | 2022-01-04 | 2023-01-01 | 瑞昱半導體股份有限公司 | 掃描鏈設計與電路測試方法 |
CN114330184B (zh) * | 2022-03-15 | 2022-07-15 | 上海国微思尔芯技术股份有限公司 | 一种多层次分组方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553002A (en) * | 1990-04-06 | 1996-09-03 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface |
CN1157662A (zh) * | 1994-05-17 | 1997-08-20 | 康姆奎斯特技术有限公司 | 专用处理器及其设计方法 |
WO1997046950A1 (en) * | 1996-06-04 | 1997-12-11 | Multex Systems, Inc. | Information delivery system and method |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4858175A (en) * | 1984-09-29 | 1989-08-15 | Kabushiki Kaisha Toshiba | Monolithic semi-custom IC having standard LSI sections and coupling gate array sections |
US5544066A (en) * | 1990-04-06 | 1996-08-06 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of low-level design constraints |
US5519633A (en) * | 1993-03-08 | 1996-05-21 | International Business Machines Corporation | Method and apparatus for the cross-sectional design of multi-layer printed circuit boards |
US5953519A (en) * | 1995-06-12 | 1999-09-14 | Fura; David A. | Method and system for generating electronic hardware simulation models |
US5663076A (en) * | 1995-08-08 | 1997-09-02 | Lsi Logic Corporation | Automating photolithography in the fabrication of integrated circuits |
US6058263A (en) * | 1996-06-03 | 2000-05-02 | Microsoft Corporation | Interface hardware design using internal and external interfaces |
US5812416A (en) * | 1996-07-18 | 1998-09-22 | Lsi Logic Corporation | Integrated circuit design decomposition |
US5812561A (en) * | 1996-09-03 | 1998-09-22 | Motorola, Inc. | Scan based testing of an integrated circuit for compliance with timing specifications |
US5930762A (en) * | 1996-09-24 | 1999-07-27 | Rco Software Limited | Computer aided risk management in multiple-parameter physical systems |
US6058253A (en) * | 1996-12-05 | 2000-05-02 | Advanced Micro Devices, Inc. | Method and apparatus for intrusive testing of a microprocessor feature |
US6182258B1 (en) * | 1997-06-03 | 2001-01-30 | Verisity Ltd. | Method and apparatus for test generation during circuit design |
US5974241A (en) * | 1997-06-17 | 1999-10-26 | Lsi Logic Corporation | Test bench interface generator for tester compatible simulations |
US6141630A (en) * | 1997-08-07 | 2000-10-31 | Verisity Design, Inc. | System and method for automated design verification |
EP0903587B1 (de) * | 1997-09-18 | 2005-11-02 | Infineon Technologies AG | Verfahren zum Testen einer elektronischen Schaltung |
US6237123B1 (en) * | 1997-10-07 | 2001-05-22 | Lucent Technologies Inc. | Built-in self-test controlled by a token network and method |
US6173435B1 (en) * | 1998-02-20 | 2001-01-09 | Lsi Logic Corporation | Internal clock handling in synthesis script |
US6102961A (en) * | 1998-05-29 | 2000-08-15 | Cadence Design Systems, Inc. | Method and apparatus for selecting IP Blocks |
-
1999
- 1999-09-30 HU HU0301274A patent/HUP0301274A2/hu unknown
- 1999-09-30 US US09/410,356 patent/US6269467B1/en not_active Expired - Lifetime
- 1999-09-30 IL IL14227999A patent/IL142279A0/xx unknown
- 1999-09-30 EP EP99954722A patent/EP1145159A3/en not_active Ceased
- 1999-09-30 EE EEP200100189A patent/EE200100189A/xx unknown
- 1999-09-30 WO PCT/US1999/022984 patent/WO2000019343A2/en active Application Filing
- 1999-09-30 AU AU11005/00A patent/AU1100500A/en not_active Abandoned
- 1999-09-30 KR KR1020017004099A patent/KR100846089B1/ko not_active IP Right Cessation
- 1999-09-30 CA CA002345648A patent/CA2345648A1/en not_active Abandoned
- 1999-09-30 JP JP2000572780A patent/JP2002526908A/ja active Pending
- 1999-09-30 PL PL99350155A patent/PL350155A1/xx unknown
- 1999-09-30 BR BR9914200-7A patent/BR9914200A/pt not_active Application Discontinuation
- 1999-09-30 CN CNB998137790A patent/CN1331079C/zh not_active Expired - Fee Related
-
2001
- 2001-01-04 US US09/754,559 patent/US6594800B2/en not_active Expired - Lifetime
- 2001-01-04 US US09/754,550 patent/US6567957B1/en not_active Expired - Lifetime
- 2001-01-04 US US09/754,653 patent/US6701504B2/en not_active Expired - Lifetime
- 2001-01-04 US US09/754,734 patent/US6694501B2/en not_active Expired - Lifetime
- 2001-01-04 US US09/754,725 patent/US6574778B2/en not_active Expired - Fee Related
- 2001-02-23 US US09/754,466 patent/US6629293B2/en not_active Expired - Lifetime
- 2001-03-23 US US09/754,642 patent/US6631470B2/en not_active Expired - Lifetime
- 2001-03-23 US US09/754,724 patent/US6725432B2/en not_active Expired - Lifetime
- 2001-03-23 US US09/754,640 patent/US6698002B2/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553002A (en) * | 1990-04-06 | 1996-09-03 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface |
CN1157662A (zh) * | 1994-05-17 | 1997-08-20 | 康姆奎斯特技术有限公司 | 专用处理器及其设计方法 |
WO1997046950A1 (en) * | 1996-06-04 | 1997-12-11 | Multex Systems, Inc. | Information delivery system and method |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1331079C (zh) | 基于块的设计方法 | |
CN100507923C (zh) | 带有可编程组件的基于块的设计方法 | |
Chang et al. | Surviving the SoC revolution | |
Simpson | FPGA design | |
WO2000019528A1 (de) | Dram-zellenanordnung und verfahren zu deren herstellung | |
Yu et al. | Generating, selecting and prioritizing test cases from specifications with tool support | |
US6931606B1 (en) | Automatic method and system for instantiating built-in-test (BIST) modules in ASIC memory designs | |
Curtis | Silicon compilation: The future is now: Silicon compilers liberate the integrated circuit design process | |
Mohaidat | Study of Verification Techniques for Digital Architectures | |
Gajski et al. | Specification and design of embedded software/hardware systems | |
Hahanov et al. | Hierarchical Testing of Complex Digital Systems | |
Bhattacharya | Hardware synthesis and analysis of control-intensive designs from high level specifications | |
Harmanani | Resource allocation and reallocation techniques in high-level synthesis with testability constraints | |
Zejda | Bounding of switching activity in logic circuits | |
Daga et al. | Interface timing verification drives system design | |
Dick | Cost modelling and concurrent engineering for testable design | |
Bukata | Design for test using a multi-tiered, model based specification approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070808 Termination date: 20140930 |
|
EXPY | Termination of patent right or utility model |