CN100507923C - 带有可编程组件的基于块的设计方法 - Google Patents
带有可编程组件的基于块的设计方法 Download PDFInfo
- Publication number
- CN100507923C CN100507923C CNB028091019A CN02809101A CN100507923C CN 100507923 C CN100507923 C CN 100507923C CN B028091019 A CNB028091019 A CN B028091019A CN 02809101 A CN02809101 A CN 02809101A CN 100507923 C CN100507923 C CN 100507923C
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种设计电路块的方法,包括步骤:选择多个要在设计电路系统(210)中使用的预设计电路块,所述电路块中的至少一个是可编程的;收集反映设计人员对这些预设计电路块的经验的数据,设计人员的经验适用于某种处理方法;按照基于设计人员的经验数据以及对风险的接受程度的方式认可或否定该电路系统的设计(551);一旦认可,形成包含用于每个电路块的准则及修改的限制的块规范(102);以及,一旦认可,形成块规范,以在顺应该准则和修改的限制且不改变选定的电路块及处理方法情况下于芯片的平面布局图上部署这些电路块(106)。
Description
技术领域
本发明一般地涉及集成电路(“IC”)部件设计,并且更具体地涉及再次使用预设计的电路块的系统的设计。
背景技术
近年来,硅加工技术的持续改进急剧地降低价格并且大大提高集成电路部件的性能和功能,从而刺激电子制造业和信息处理业的发展。反过来,这些快速增长的工业向集成电路设计系统研制人员提出设计更快和更便宜的部件的要求。从而,该设计业现在正经历急剧改变,包括:
(1)芯片设计变得更大和更加复杂。例如,在1977年,一块典型的集成电路含有10-50万个门电路。在1998年,典型部件含有一到二百万个门电路。1999年和之后的技术用建立四到六百万个或更多的门电路的部件展示这种趋势的继续
(2)芯片设计变得更专门用于应用。在IC设计的早期,部件制造商典型地会生成各种“现成”芯片,而最终用户会把它们设计到他们的电子产品中。目前,电子产品制造商常常订购定制芯片设计以实现特殊功能。
(3)电子产品的开发现在主要由客户的要求驱动,这缩短产品生命周期,并且,从而缩短能允许的设计时间和资源。例如,在1997年,平均设计周期在12-18个月之间。在1998年,该平均时间减少到10-12个月,并且现在,典型的设计周期时间甚至更短。
(4)设计时间的限制要求并行设计。以前,上游系统组件的关键设计决策可等待到下游系统组件设计验证之后。设计管理人员不再拥有可以顺序地完成设计任务的奢望。可能必须同时开发数个系统组件。这样,要求设计管理人员在至少完成某些系统组件的设计之前做出关键性的预测。
为了解决这些需要,电子系统设计现在正移动到一种现有技术中称为“基于块的设计”(“BBD”)的方法上,其中通过集成多个现有的组件设计块(技术上也称为“知识产权块”或“IP块”)设计系统。可以从内部设计小组得到或从由其它设计公司批准得到这些预设计的块,并且这些块可由根本上不同的设计结构和环境支持。另外,可以把预设计的块开发成满足不同的设计要求和限制。
采用BBD的设计人员所面对的另一个挑战是由系统设计可行性确定中的不确定性所造成的前期(项目验证)延迟和风险。目前的ASIC(专用集成电路)设计大都由客户在RTL(寄存器传送级)阶段,有些甚至更早,提交给设计人员。接着基于可使用的合成技术的限制、根据为提供成本合理的实施方式的面积、性能和功率之间的折衷分割这些设计。在这种方式下,设计人员把系统技术要求接受作为输入并且最终提供用于物理实现的连线表级设计(包括设计空间、布线和核对)。如果设计技术要求在指定的或可使用的处理技术(包括时钟、功率和尺寸要求)的能力之内,则可使用的设计方法是可合理预知的并且利用可使用的电路设计工具可良好工作。
但是,RTL级设计活动和系统层设计活动典型地是不耦合的或者松散耦合的,这意味着不存在从系统层功能定义到ASIC(RTL)层的相干链接。RTL级设计是根据书面ASIC技术要求设计的并且是通过围绕ASIC界面建立的一组新试验验证的。从而,ASIC设计可使用的设计和实现方法学呈现一些问题,这些问题阻碍有效的块集成。
首先,目前的方法不提供一种自上而下的方法来为了集成多个由设计考虑上不相同的多个来源提供的设计块以便综合地评估和确保相容性,并且同时提供分层的验证以及提供在严格的上市时间限制内的短的装配时间。
另外,用于ASIC设计的现有方法不提供可量测性。大量的现有方法集中在平面设计上。对于超过一百万个门电路的系统,这种方法导致装配顶层设计需要长时间的重大问题。
另外,现有的ASIC设计方法不适应再次使用预设计的电路块。现有模式不对解决与具体部件体系结构内的集成电路设计块关联的计时、时钟、总线、功率、块排列、核对和测试问题提供指南。这样,由于不具有块的再次使用的综合方法,现有的这些方法导致特定的并且不可预知的设计方法,从而降低设计实现可行性,增加成本和交付时间,并且常常引起对预设计的电路块本身的性能下降修改以使它们适应被设计的系统。此外,现有方法不提供性能拆衷分析以及关键设计参数,例如时钟频率、面积与成功地并可预测地完成芯片设计及实现的风险间的关系等的反馈。
从而,需要一种可以满足进化环境并且解决现有技术的缺点的方法。
还需要一种适用的用于在电路设计中使用和再使用来自多个源的预设计电路块。
组合IP块还造成对“粘合(glue)”逻辑的需求,这种逻辑允许多个块在单个部件上一起工作。粘合逻辑是主要负责各设计块的互连的逻辑,并且通常驻留在块之间并且散布在整个设计之中。在芯片规划的各个阶段期间可以对设计添加粘合逻辑成分,或者在一次设计内粘合逻辑成分可驻留在每个块的最外层边界上以便充当对主块的互连机构。和它的源无关,粘合逻辑必须最优地放置在该设计中,以便使由于在块之间设置粘合逻辑而产生的并会引起原始块的设计者未预料到的延迟的导线拥挤和计时复杂化为最小。
从而技术上需要一种和本发明有关的、在基于块的设计中配置和分布粘合逻辑的改进方法。
还需要一种考虑各种粘合逻辑成分的功能亲合力(functional affinity)的并且把这些成分组合到新的设计块中的粘合逻辑分配机制。
相关技术中还需要一种向已有设计回送粘合逻辑的最优量的粘合逻辑分配机制。
此外,现有的ASIC设计方法不适应预设计电路块的再使用。现有模式不对解决与具体部件体系结构内的集成电路设计块关联的计时、时钟、总线、功率、块排列、核对和测试问题提供指南。由于电路块来自多个不统一的源,存在的挑战是如何在适应基于块的设计的方式下把这些电路块集成到一个电路系统上。
从而,需要一种适用于在适应基于块的设计的方式下互连来自多个不一致的源的电路块的方法和设备。
还需要一种提供用于把具有不同接口的电路块转换成具有标准接口的电路块的方法和设备。
当然,所有IC,甚至在单个芯片上包含整个系统的IC,都必须通过一系列的测试以便验证该芯片满足性能要求并且不存在任何隐藏的制造缺陷。如果漏掉制造缺陷,则可能在装配工序之后或者更坏地,在现场中才能发现有故障的芯片,这种“测试遗漏”在顾客满意度方面上所造成的代价可能会造成生产线的废弃。
通常,存在三种类型的检测缺陷的测试:直流参数测试、交流参数测试和功能(“PLL”)测试。在直流参数测试中,测量芯片的输入、输出、输入到输出传递、总电流和功耗。在交流参数测试中,测量芯片的输入和输出信号的上升及下降时间、输入和输出端子间的传播延迟时间、最小时钟脉冲宽度以及操作频率。在功能测试中,测试芯片以查看在规定操作条件下它是否按设计那样工作。典型地,通过向一输入端子施加测试模式(“测试向量”)并且使在某输出端子处检测到的输出模式和期待模式比较进行功能测试。
在测试设计(“DFT”)方法出现之前,设计人员创造并装配芯片,然后把完成的设计传给测试设计人员。测试设计人员接着添加组装级测试逻辑,并把该芯片送到制造人员(“试验室”)。然后试验室试验人员检查该芯片并在该组装级逻辑上运行包括上述各种测试的板测试协议。现有的扫描设计方法是一个用于向整个芯片施加带有可预测和相容的测试结果的“单个”测试方法的高效和广泛使用的方法的简单例子。可采用其它特定方法以应对不可扫描式设计形式。
如今,已经把预先包含在整个芯片中的逻辑用作为要包含在一个更大芯片中的单个虚拟件(VC)或设计块。从而,在完成电路设计后可以不必设计测试。在设计过程中,设计人员必须规划如何测试每个设计块以及整个封装的芯片。从而设计过程必须确保通过应用一个或多个适当的测试方法的可测试性。
DFT的好处是周知的。DFT逻辑以及测试向量验证功能允许在生产周期的早期进行较短的生产就绪测试。另外,DFT扫描路径提供其它方法不能达到的对芯片和系统状态的访问。从而,好的DFT计划通过方便前期设计过程和方便开发制造测试来缩短上市时间并且减少测试成本。
从而现有技术提出四个需求。首先,一种用于BBD的DFT必须能够和其它不同的测试方法一起有效地使用预先设计的测试数据,以便共享有限的测试访问并且满足整个SOC级测试目的。
第二,它必须面对由于技术扩缩、混合信号和混合技术设计的新复杂性、I/O计数的增加以及新的封装技术而出现的新缺陷类型和新缺陷层次的困难。
第三,它必须面对集成本质上缺乏统一的结构检查模型的IP块所遇到的困难。SOC级测试访问以及故障隔离是必须的,并且必须解决目前可采用的DFT方法大都不支持的低功率设计技术(即,基于锁存,选通时钟,导出时钟,流水线和低门电路限电压)要求。
并且这种新的DFT方法必须利用相干的和统一的测试集成模型克服上市时间压力,甚至当面对有限的或不充分的测试信息时。
现有技术需要结构信息(即,故障模型和测试模型),从而可以为一组故障部分地或完整地生成和检验测试数据。例如,“扫描设计方法”只能应用于同步设计并且只检测单单固定故障模型。另外,其它DFT解决办法是基于扫描的,从而使共享并检验不含有结构信息的硬IP测试模型相当困难。
现有技术还需要非线性计算模型,这种模型即使在共享和验证是可能时(即,软IP模型)也不支持目前门电路计数展开。然而,软IP不必必须是可扫描的或可合并的,有时会造成不可预测的和不可管理的测试情况。
最后转到设计检验,在SOC设计中使用多个预设计块提出的挑战是需要一种可靠的和有效的功能检验方法。现有技术中,利用测试组检验多块设计。该组中的每个测试用于在各块集成之前测试它们。接着,在集成这些块之后,需要花费大量地调整该测试组的工作以便能在系统级上进行功能检验。在有把握地提供最终的完整系统检验之前,可能需要对多次迭代重复测试和调试过程。
解决该问题的一种可采用的方法是用实现模型替代对应的行为模型,从而允许在混合方式情况下进行芯片级模拟和测试。尽管该方法在有效实现时可提供所需的结果并且成本上可低于上面说明的基于块的迭代模拟,但该方法仍是相当昂贵和慢的,因为必须模拟整个芯片以获得可靠的功能检验。
多块设计中提出的一项特别尖锐的挑战是需要对总线结构进行功能检验。现有技术中,通过二种方式之一达到总线验证。可以作为总体芯片的一个组成部分调试并检验总线,或者,可以在考虑新批准的块所提供的详细实现的情况下利用各个预定义块的总线功能模型来检验总线。但是,整体总线检验可能是慢的和高成本的。必须利用整个芯片检验总线设计,并且只能在设计周期的后期进行整体总线检验,此时由于细节的级别以及可能发现和总线无关的错误调试会是困难的和耗时的。总线功能模型方法可以减轻这些问题中的一些,但是需要新批准的块的实现细节。另外,总线功能模块本身可能是易出错误并且可能只能作为“黑盒”使用,造成信号跟踪和调试十分困难或者不可能。
通常,对于电路设计人员而言包含作为电路或系统设计的一部分的可编程电路是有好处的。但是,试图包括作为可再使用电路设计的一部分的可编程电路提出其它挑战。可编程电路可以各种不同的形式存在,并且,如果要把这样的电路包含在一个可再用的电路块中,则设计和测试处理流程需要考虑到专用型可编程电路的特殊要求并且确保这些要求是和该电路块中使用的非可编程电路相容的。从而提供一种考虑可编程组件的特殊要求并且促进这些可编程组件和不可编程件件的集成的、用于构建可再用电路块的方法是有好处的。
发明内容
为了解决现有技术的缺点,本发明提供一种设计电路系统的方法和设备,在一实施例中该方法包括步骤:
(a)选择多个设计电路系统要使用的预设计电路块;所述电路块中的至少一个是可编程的;
(b)收集反映设计人员对这些预设计电路块的经验的数据,设计人员的经验适用于一种处理方法;
(c)以基于设计人员的经验数据以及可接受的风险程度的方式接爱或拒绝该电路系统的设计;
(d)一旦接受,为每个电路块形成包含准则以及修改后的限制的块技术要求(FEA);以及
(e)一旦接受,在不改变选定的电路块和处理方法的情况下,遵照该准则以及修改后的限制形成用于在芯片的平面布局图上部署这些电路块的块技术要求。
本发明还提供一种形成派生电路块的方法,包括下列步骤:
(a)选择原始电路设计,其中该原始电路设计包括一个或多个可编程织构;
(b)在该原始电路设计上进行前期认可测试,其中该前期认可测试包括:
收集设计人员的可用经验数据以及可接受的风险程度的数据;
评估该设计人员的可用经验数据以及设计人员可接受的风险程度的数据;以及
如果评估数据在设计人员可接受的风险程度范围内,则接受该原始电路设计;
(c)规划芯片布局;
(d)对该一个或多个可编程织构中的至少一个编程以形成派生电路块;以及
(e)对该派生电路块进行检验分析。
本发明又提供一种用于形成派生电路块的系统,该系统包括:
(a)用于选择原始电路设计的装置,其中该原始电路设计包括一个或多个可编程织构;
(b)用于在该原始电路设计上进行前期认可测试的装置,其中该前期认可测试装置被配置成执行以下操作:
收集设计人员的可用经验数据以及可接受的风险程度的数据;
评估该设计人员可用的经验数据以及设计人员可接受的风险程度的数据;以及
如果评估数据在设计人员可接受的风险程度范围内,则接受该原始电路设计;
(c)用于规划芯片布局的装置;
(d)用于对该一个或多个可编程织构中的至少一个编程以形成派生电路块的装置;以及
(e)用于对该派生电路块进行检验分析的装置。
附图说明
图1是一个流程图,其示出依据如文中所公开的一优选实施例的基于块的设计方法的设计过程。
图2是一个流程图,其示出可在图1中的设计过程中使用的前期认可的优选步骤。
图3示出时钟规划模块。
图4示出总线标识和规划模块。
图5示出功率规划模块。
图6示出一种用来导出I/O和模拟/混合信号要求的技术
图7示出测试规划模块。
图8示出计时和平面布局模块。
图9示出块设计的元流。
图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示出不采用例如图34示出的套圈过程的系统设计。
图39示出采用套圈过程的系统设计。
图40示出用来实现图34的套圈过程中的各步骤的计算机系统。
图41示出一组用于总线标识和规划方式的优选步骤。
图42示出依据本文中公开的一实施例构建的行为模型的互连部分的内部结构。
图43-47和49-56是表格,其中示出通过利用本文中公开的各种技术实现的总线修改获得的延迟时间改进。
图48示出一种可和本文中公开的各实施例一起使用的总线桥。
图57示出另一种总线桥。
图58示出一种包含FIFO的总线桥。
图59是示出各种总线类型的总线利用率和等待时间特性的表。
图60示出一个示例的一贯性检查真值表。
图61示出利用本发明的方法从DFT看过去的芯片顶层体系。
图62示出用功能块和套接访问端口(“SAP”)形成的设计。
图63是示出用于各种设计体系结构的恰当测试方法的表。
图64是一个流程图,示出依据本文中所公开的一实施例的顶层体系结构规范过程。
图65示出套接化过程。
图66示出块级测试编制过程。
图67示出芯片级测试编制过程。
图68示出从规划到芯片装配的测试流程。
图69示出设计人员对前期认可检验工具的见解。
图70示出设计人员从芯片规划移到块设计的见解。
图71示出设计人员得出总线时钟模型和测试台生成的见解。
图72示出设计人员对块测试台和芯片测试台的见解。
图73示出设计人员对块和芯片逻辑验证模型的见解。
图74示出比较各种不同类型的不可编程和可编程电路的速度(按周期时间)和每个门电路的面积。
图75示出一个电路块例子并说明电路设计语境下的织构概念。
图76概念性地示出图75中所示的电路块的各组件的互连。
图77概念性地示出电路块的功能测试。
图78示出用于图75中所示的电路块的测试电路布局。
图79概念性地示出一个包括各种内部组件的电路块的电源设计。
图80是一个概念图,示出一个包含对包括着一个或多个可编程组件的电路块的编程访问的例子。
图81是一个更详细的示出一个包括各种织构的电路的例子的图。
图82示出从图81中所示的电路块导出的派生电路块的例子。
图83比较一些可供设计人员选择的不同织构的特性。
图84示出一个形状上可调整的可编程电路块的可能占用面积的简单例子,图中示出各种合法宽高比。
图85是示出利用可编程织构的派生设计过程的概念图,而图86是派生设计过程的流程图。
图87示出一个金属可编程门电路阵列(MPGA)的金属化。
具体实施方式
为了克服现有技术的缺点,本文公开一种用于基于块的设计(“BBD”)的新颖方法和实现。在本文中公开的一个或多个优选实施例中,在电路块中使用可编程和不可编程的电路组件二者。后面会详细说明的图1示出基于块的设计过程的顶层概要。其它的图提供与根据图1中所示的总框架的各种基于块的设计过程的各实施例或实现相关的其它细节。图74-78尤其关注地说明基于块的设计过程中的可编程电路的使用。
本文中说明的基于块的设计的一个原理方面和电路块设计中采用的“织构(fabric)”概念有关。如本文中使用那样,术语“织构”通常指的是电子技术中的重复结构,其通过隐藏该结构下面的各个层次的复杂性简化设计过程。织构可以和软件或者如硬件相关。织构的例子例如包括数字硬件中的门电路和软件的程序代码行。
可以在几种不同的类别中分类和硬件有关的织构,包括:标准单元、门电路阵列、金属可编程门电路阵列(MPGA)、现场可编程门电路阵列(FPGA)和计算。标准单元设计涉及所有硅层的设计,但隐藏晶体管级细节。门电路阵列设计涉及所有互连层的设计,但隐藏物理尺寸特征和完整的布局以及路由选择细节。MPGA设计涉及顶部互连层的设计,但隐藏本地互连细节。FPGA设计涉及使用现有的硅,但隐藏所有的半导体加工。计算设计也使用现有的硅,但隐藏大部分的物理实现。
各种类型的织构之间的设计折衷对于数字电路设计领域人士是周知的,至少在基于块的设计的语境之外。标准单元技术的特征通常在于非常高的密度和高性能(例如速度),但是典型地是硬接线的从而是相对不灵活的。MPGA技术通常也是高密度的并具有合理的高性能,并且由于它是接线可配置的,故具有某种灵活性。FPGA技术典型地为中等密度并且具有中等性能,但是具有可再配置的优点。计算电路技术通常是低密度并且从而占据大部分芯片面积,不过它具有性能灵活和软可编程性的优点。在图74中示出各种硬件织构在性能上(周期时间)、它们各自的密度(每个门电路的面积)以及成粒性(granularity)上的比较曲线。出于比较目的,在图74的曲线上还示出定制电路设计,并示出它具有最高的密度级别和最快的性能;但是,定制电路设计也是最不灵活的并且不能把设计人员从任何晶体管级设计细节隔离开。通常,电路的灵活性(可编程性和可配置性)越好,性能越慢并且开销越大。但是,随着可编程函数的数量的增加,在这些带有最大灵活性的系统(例如计算电路系统)中每项函数的开销最迅速地下降。另外,增加附加函数的成本随着系统可编程性的加大成比例地减少。
除了对硬件织构分类外,为便于对基于块的设计方法的讨论把编程织构划分成不同的类别也是有用的,可把编程织构划分成:存储的程序、立即可再配置的、快速可再配置的、慢速可再配置的、一次可编程的(OTP)、可接线配置的和硬接线的。存储程序技术的特征在于通过连续装入和解释指令按指令或指令块为单位执行,并且通常执行一条指令需要几纳秒或更长。立即可再配置电路通常是按模块为单位可编程的,为了装入采用内部存储对换,并且典型地装入时间大约需要10纳秒。利用立即可再配置电路,通常只需要一个简单的用来切换电路功能的地址开关,因为该电路具有多个并行的可在处理之中选择的功能层。快速可理配置电路通常是按函数为单位可编程的,为了编程采用外部存储器装入操作,并且装入时间典型地约为10微秒。慢速可编程电路通常以整个系统为单位编程(而不是逐个的编程块),为了编程采用外部配置获取(通常为对其它部件的低频、串行I/O连接),并且装入时间约为10毫秒。OTP通常指的是硬件级上一次编程的能力。可接线配置电路通常在初始化时编程或配置,并且它的装入时间随电路的类型变化。硬接线电路是不可编程的。
在基于块的设计中采用MPGA、FPGA和/或计算电路存在特殊挑战。具体地,在BBD设计流程的各个阶段上,必须考虑这些类型的织构的可编程和/或可配置特性。体系结构设计折衷可能不仅要根据各种不同类型织构的可编程程度,还可能要根据其它特性,例如速度、密度和总的设计尺寸。定制电路技术通常允许最密的逻辑,目前的技术可高达单个芯片2千万或更多的门电路。在目前技术下标准单元提供单个芯片上约2百万到2千万个门电路的密度。MPGA技术提供单个芯片上20万到200万个门电路的密度,而FPGA技术提供单个芯片上2万到20万个门电路的密度。图83比较可供设计人员选择的一些不同的织构的特性。除了这些特性(例如灵活性、尺寸、供电等),设计人员还可考虑是否期待“派生”电路设计,即,基于原始设计的但又可改变的以产生某种新的或不同的功能的附加电路设计。有关派生设计生成的进一步细节在后面说明。
和不可编程织构不同,可编程织构通常具有二排路由选择(分层)和基于多种平片类型的布局(即,可编程电路可包括按平片组织的不同类型的电路群集,它们限制电路的布局)。例如,FPGA通常具有2万到5万个门电路(第一布线/布局层),并且还具有内部布线接线,这些布线接线把库元件互连成各种子函数,其中这些子函数集体地向FPGA提供它的整个功能(第二路由选择/布局层)。另外,和不可编程织构不同,可编程织构通常需要一种对电路编程的机制。例如,为提供可编程性可能需要编程端口,这些端口可挂到例如I/O端口或系统总线上。例如大多数常见的FPGA是可软编程的,即可以在把FPGA连接到电路块的其它组件上之后的晚些时候再添加对FPGA功能的编程。例如,该电路块内的处理器可以在电路时钟的操作期间装入该FPGA的功能。一些FPGA是可非易失性编程的(例如通过EEPROM编程),在此情况下作为加电过程的一部分装入FPGA。其它FPGA是可利用静态RAM(SRAM)编程的,在此情况下为了装入FPGA可能需要一个单独的I/O端口。当使用可编程织构时,必须作为基于块的设计过程的一部分考虑到可编程织构的特殊布局及布线要求以及它们对编程进入点的需要。
现参照图1,图中示出一个表示基于块的设计(BBD)方法的优选设计过程的流程图。
如图1中所示,该设计过程最好包括前期认可设计阶段102、芯片规划设计阶段104、块设计阶段106、芯片装配设计阶段108和检验设计阶段110。
前期认可设计阶段102使系统集成人员(芯片设计人员)评估预期设计项目的可行性。在前期认可设计阶段102,设计人员接收来自客户的包含功能和其它要求(例如交付时间和预算)的技术要求以便设计ASIC。客户还可以提供一些预设计电路块和用于这些电路块的测试台。除了这些客户提供的块之外,应用前期认可设计阶段102的设计人员还可把来自不同来源的电路块接收为输入,其中的一部分可由第三方提供,一些块可以是传统电路块,一些块可以是新批准的块。这些选定的电路块可以处于软件、固件或硬件设计状态。(注意:软件状态为RTL级;硬件为GDSII级;而固件位于软件和硬件之间,例如门电路级或连线表级。)前期认可设计阶段102接着收集设计人员可使用的经验,包括现场使用数据、通过行为模拟得到的估计数据和/或部分实现数据,接着前期认可设计阶段102过程提供评估,以便帮助该设计人员根据设计所有物参数,包括客户要求、设计人员可使用的经验以及设计人员可接受的风险程度,决定是否接受该设计项目。此外,根据功能要求,前期认可设计阶段102的结果确定最终要在该电路设计中使用的一组预设计电路块。
对于可编程织构,前期认可设计阶段102包括估计该可编程电路的可编程能力以及确保它能满足电路设计要求的步骤。例如,对于给定尺寸,通常FPGA的功能能力是有限的。如果在该选定的尺寸下不能实现FPGA(或其它可编程织构)的所有计划功能,则需要采用尺寸更大的FPGA。但是,较大尺寸的FPGA可能影响整个电路设计中的其它组件的尺寸。除了评估每个可编程织构的编程能力和尺寸外,前期认可设计阶段102可能需要估计可编程电路的功耗并且初步评估该可编程电路相对于整个电路设计的计时要求。
前期认可设计阶段102最好提供三种状态的评估:粗粒评估、中粒评估和细粒评估,如果某状态下的评估是不满意的,则前期认可设计阶段102能细化设计所有物参数并且在下个状态进行进一步的评估。
如果发现提出的设计项目是可接收的,前期认可设计阶段102提供综合步骤以确保早期检测出设计中的问题并且确保可以以综合的方式在项目要求、设计人员可使用的经验以及选取的处理方法所定义的边界内解决这些问题。前期认可设计阶段102生成设计要求,该要求定义包含有选定的预设计电路块、设计准则和互相依赖的设计限制的处理方法。
芯片规划设计阶段104把从前期认可设计阶段102输出的设计要求转换成对每个选定的电路块的块技术要求。芯片规划设计阶段104中要完成的任务包括:(1)开发以延迟、路由性、面积、功耗和计时为中心的芯片设计、装配和实现计划,以及(2)确定和调整限制。具体地,根据作为前期认可设计阶段102的输出提供的设计准则和相互依赖的限制,芯片规划设计阶段提供前期认可所规定的边界(例如要求和限制)内的芯片规划。芯片规划设计阶段104最好一次考虑一个限制,并且同时满足由前期认可设计阶段102规定的总设计准则。芯片规划设计阶段104通过对每个前期认可设计阶段102中选定的电路块制定预算、修改电路块的技术要求以及调整前期认可设计阶段102规定的处理方法中的限制来达到这一点。和本发明的芯片规划设计阶段不同,现有方法或者产生新的功能块或者改变处理技术以满足设计准则,从而增加设计时间和项目风险。芯片规划设计阶段104还产生用于粘合逻辑(即互连选定的电路块所需的硬件)的技术要求,这在后面更详细讨论。芯片规划设计阶段104输出三种类型的粘合逻辑,包括占据芯片中的一个或多个区域的新的粘合逻辑块、分布在选定的电路块中的分布式粘合逻辑以及顶层块粘合逻辑元件。
对于可编程织构,芯片规划设计阶段104最好考虑可编程电路的特殊要求。例如,芯片规划设计阶段104可考虑在总线规划步骤期间会出现的无论那种类型的编程要求。如果将出现串行编程,可能需要指定专用的或复用的I/O引脚以支持可编程性功能。当计算功耗时,芯片规划设计阶段104可考虑常规操作和编程操作(例如当装载可编程电路时)二者期间的功率吸取。如果在芯片规划设计阶段104期间包括计时预算形成,则可能需要充分定义用于每个可编程织构的软件算法,从而通过逻辑合成或者某种其它类型的估计技术得到计时估计(例如上界和下界)。如果在芯片规划设计阶段104期间包括顶层平面规划,则类似不可编程织构,通常可以在尺寸上预固化或者可以调整可编程织构,尽管和大部分不可编程织构不同,可编程织构不必可调整到任何宽高比上,而是只能具有一些可采用的离散宽高比(按照分级关系)。如果在芯片规划设计阶段104期间包括测试规划,最好引入用于可编程功能的测试块并且最好定义测试计划或体系结构,以便覆盖总电路设计中未由与特殊织构相关的测试设计所覆盖的那些方面。
为了无缝地互连选定的电路块,如果需要,块设计阶段106在每个电路块周围嵌入一个接口(称为套圈(collar))以形成一个标准接口。由于电路块可以是软件、固件或硬件,每个套圈同样可以是软件、固件或硬件。块设计阶段106的输出保证:(1)芯片中的所有电路块满足限制和预算,并且适应规定的芯片设计规划和体系结构;(2)向芯片装配设计阶段108提供所有需要的模型以及所有电路块的图;(3)该设计能够形成用来批准芯片规划设计阶段104中生成的新电路块、采用传统电路块和采用第三方电路块的开发方法和流程;以及(4)该设计适应给定的芯片体系结构和预算。
对于可编程织构,块设计阶段106中的套圈处理可能需要对该可编程织构添加编程端口封套。另外,套圈处理可能需要添加输入/输出缓冲器,以在需要时完成例如电压电平改变(例如FPGA可能在和芯片的其余部分不同的电压电平下工作)或者形成三态的功能。这种输入/输出缓冲最好位于该可编程织构电路和作为套圈的一部分设置的任何边界扫描电路之间。
芯片装配设计阶段108集成各电路块以装订出用于设计阶段加工的顶层设计。芯片装配设计阶段108包括硬件块和芯片总线布线的最终布局并且包括完成任何全局设计细节。所有的电路块被设计、修改并集成到芯片平面上之前,不启动芯片装配设计阶段108。芯片装配设计阶段108的输入包括从前期认可设计阶段102或芯片规划设计阶段104接受的电源、面积和计时裕量技术要求。
检验设计阶段110确保每个阶段的设计满足在功能技术要求中细列的客户功能要求并满足前期认可设计阶段102提供的芯片测试台。检验设计阶段110包括功能检验112、计时检验114和物理检验116。
功能检验步骤112确保在设计的每个阶段中选定电路块的逻辑功能和芯片测试台满足客户技术要求中的功能要求。可以在前期认可设计阶段102、芯片规划设计阶段104、块设计阶段106或芯片装配设计阶段108期间进行功能检验。计时检验确保每个设计阶段中的信号记时是适当的,从而产生客户技术要求中所规定的逻辑功能并通过其中规定的测试,可以在前期认可设计阶段102、芯片规划设计阶段104、块设计阶段106或芯片装配设计阶段108期间进行计时检验。物理检验确保电路设计的物理布局满足客户的技术要求。对于可编程织构,可能需要用于为了支持电路设计的可编程部分而设置的的编程端口的检验封套。
在该设计过程期间,前期认可设计阶段102、芯片规划设计阶段104、块设计阶段106以及芯片装配设计阶段108不仅完成对它们期待的工作,并且产生共同组成检验工作110的功能检验112、计时检验114和物量检验116所需的信息。如果在该设计过程中的某具体阶段的检验期间出现差错,最好在进入下个阶段期间之前纠正这些差错。
从而,在芯片装配设计阶段108,该设计过程不仅生成用于加工芯片的顶层设计,而且完成该设计中使用的每个电路块的芯片测试台的检验并且完成该芯片的整个芯片测试台的检验。
现在以概括的形式说明图2-15。这些图中的每张图提供下面更详细讨论的材料的高层说明。
前期认可102
参照图2,流程图200示出可在前期认可设计阶段102中采用的各个步骤210-216。
芯片规划104
芯片规划设计阶段104最好包括以下模块:
(1)时钟规划;
(2)总线标识和规划;
(3)电源规划;
(4)I/O和模拟/混合信号要求;
(5)测试规划;
(6)计时和平面规划;
(7)编程规划;和
(8)编程规划。
参照图3,其中示出时钟规划模块。
参照图4,其中示出总线标识和规划模块。
参照图5,其中示出电源规划模块。
参照图6,其中示出导出I/O和模拟/混合信号要求的各个步骤。
参照图7,其中示出测试规划模块。
参照图8,其中示出计时和平面规划模块。
块规划106
参照图9,其中示出块设计阶段的流程。
芯片装配108
参照图10,其中示出芯片装配设计阶段的数据流。
参照图11,其中示出芯片装配设计阶段的任务流。
检验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涉及对提出的设计的可行性和风险评估。如果评估准则在风险容限之内,则设计是可行的。
在某种意义上,FEA是把设计细化到系统集成人员可以认为提议设计的风险是可接受的某一点过程。从而,它是减少未知并且从而减少所需设计的最终输出中的差错的过程。作为起点,FEA过程接收一组客户给出的设计要求、集成人员接受设计的风险概要、一组预设计块以及集成人员对这些预设计块的先前了解及经验。预设计块可以为各种分辨等级(硬件、软件或固件)。对块的分辨力、先有经验和理解导致对这些块的面积、功率、性能等的大的预测误差范围。
对于每个块,可以在三种分辨程度下提供设计细化:
(1)集成人员的经验域(FOE),
(2)利用实际模型以及执行这些模型工具得到的估计,以及
(3)通过把块放到比接受它的层次更高的设计分辨层次中的沉入(dip)。
应注意,这三种设计分辨层次是按软件、固件和硬件的升序排列的。通过提供一种不必细化所有块并且不必进行互连准则来进行可行性预测的机制达到高效性。
图20示出前期认可(FEA)过程的流程图。
在图20中,FEA过程包括反映上面讨论的三种设计细化层次的三个可行性评估阶段。这三个阶段是:粗粒评估、中粒评估和细粒评估。
粗粒评估是基于设计集成人员的先前的对类似设计的经验的而以经验为主导的评估。粗粒评估特别适用于有十几个块和系统设计选择的情况以及设计估计误差容限为50%或更高的情况。粗分析可以用于粗略地检查被考虑的各种块,其中对块之间的交互作用的估计不是关键性的。在此阶段,最可能的是,不会在最终设计中使用所有考虑到的块。
中粒评估是以估算为主导的评估,其通过方程式或模拟利用行为分析表述进行评估。它适用于二到十个的系统设计选择、可接受的设计估计误差容限为20%量级并且集成人员了解各个块如何交互作用的情况。可利用它检查在设计的操作充分性上为关键性的块之间的交互作用。在此阶段,所有被考虑到的块具有用于最终设计的高概率。
最精细(细粒)评估是以设计沉入为主导的评估,用于量测块设计的细化。沉入是把新的块转换成软件块、把预设计的软件块转换成固件块和把预定义的固件块转换成硬件块的过程。从模拟、仿真或原型化产生结果。细粒评估适用于其中可接受的设计估计误差容限小于5%的全部或一部分的单选择芯片设计,例如对现有设计细化尚不充分的关键问题的最终解决期间。可以利用它检查芯片性能或块交互作用的子集,其必须被详细研究以保证充分性或者保证任何现有的用于块的模拟模型所提供的答案是充分的。还可以利用它来检查块的故障是否满足设计要求,这会有力地影响最终设计的可行性。在此阶段中,不会沉入每个考虑到的块,而基本上只沉入那些在FEA块策过程中具有关键作用的块。
在图20中,每个三角形的宽度代表系统FEA准则预测中的误差。在每个评估层次上,关键的是在减少设计人员的误差的同时尽可能少地细化FEA准则,从而可以快速地做出FEA决策。在FEA过程的每个阶段中,下面列出的基本意图和策略是相同的:
(1)收集有关被考虑的块的信息;
(2)识别并局部地细化那些最可能影响系统估计误差的块;
(3)评估设计是否满足FEA限制。若满足,停止该FEA过程;以及
(4)若不满足FEA限制则全局地细化系统中的块估计。
图20中示出的FEA过程的关键部分是如何计算系统准则预测中的可接受全局误差(或总误差),以及如何确定需要细化估计哪些块以使全局误差达到可接受的界限内。该计算过程需要三个参数:
(1)对用来决策的可接受全局误差的估算;
(2)可从目前的系统分析产生的全局误差的估算;以及
(3)全局误差对在估算设计中的某特定块产生的误差的灵敏性(也称为块对误差的影响)。
第一个参数由系统集成人员的风险概要、客户提供的限制以及对根据现有数据进行系统预测产生的全局误差的良好预测来定义。第二和第三参数都从建立准确的误差影响曲线派生。参照图21,图中示出依据本发明在给出误差影响曲线情况下对细化过程的驱动。
为了进一步定义FEA过程,本发明采用四种基本评估技术:
1.FEA决策过程:定义“数据输入”、“数据输出”、以及基于“数据输出”的“决策过程”(即,“数据输出”怎样与可接受风险的评估相关?);
2.FEA数据提取过程:从用于正在研究的抽象层的完整“数据输入”集转到“数据输出”的产生;
3.FEA块细化确定:定义一种公用机制,以在给出系统设计内的估算误差和块关键程度的情况下建立系统-估算影响(即,若未满足“决策过程”的认可准则,进一步细化那些影响可能最大的块);以及
4.FEA评估-轴度量标准:定义用于和FEA关联的每个认可轴的实际度量标准(即,定义如何定义系统内的块的关键程度)。
在本文公开的一种具体方法和系统中,利用一组估算正确性曲线确认FEA过程。每条估算正确性曲线呈现在一条FEA轴上,这可视地提供用于确认FEA过程的要素和准则。为了更好地解释估算正确性曲线的作用,定义下述要素和准则,这些要素和准则集体地称为FEA认可轴。这些定义应用在块和整个系统二者上。
功率-每种操作方式(例如mW)
性能-周期内延迟(例如,Ps/ns/us)
-等待时间(例如,ns/us/ms)
-吞吐量(每秒目标数,例如50KB/秒)
面积-面积包括:门电路、布线、周边、未使用的空白空间(例如,密耳)
成本-非循环的工程成本(例如美元)
-每个单元的成本(例如美元)
进度-资源分配(例如人-年数)
-可交付期限(时间)
风险-误差率(M)
-误差的影响(美元和/或时间)
在进行FEA过程之前,客户尽可能多地向系统集成人员提供下述信息:
(1)一组以软件、固件或硬件为形式的电路块;
(2)一组用于这些块的模拟器(估算器)或先有的经验估计以及这些估计的误差范围;
(3)一组描述总的芯片功能和性能要求的技术要求;以及
(4)一组有关该项目可接受的进度、成本和风险的规定。
客户还可提供:
(5)对任何要包含在该芯片中的新块的行为定义;
(6)确定已知的关键问题。
在进行FEA过程之前,系统集成人员应该:
(1)确定通过其评估设计适用性的风险概要,包括:
a.保护带-集成人员对每个FEA轴的总设计裕量;
b.认可风险-在接收客户请求之前该设计将满足要求的确定性。它简单地表示为标准-偏差测量-Aσ设计-认可风险;以及
c.否定风险-不能用已有的块组合和完成该规定的设计的确定性。注意否定实际上是系统集成人员的风险活动:其风险在于,即使初始评估使它看起来是可疑的,该被否定的设计实际上是可行的。它也表示为标准-偏差测量-Rσ设计-否定风险。
(2)检验这些提交的块在和新的或第三方的块组合的情况下足以在可接受的风险限制内满足项目限制。
参照图22,其示出示例的正确性曲线估算。水平轴是FEA轴,其可代表任何客户限制或该系统的总限制。为了便于解释,假定该FEA轴代表功率。垂直轴表示估算正确性。根据图22,功率限制的保护带在客户原始规定的限制和该FEA过程修改的限制之间。请注意,在该给出的例子中,该设计被否定,因为由该保护带修改后的功率限制在否定区域之内。这是真实的,即使初始规定的功率限制不在该否定区域内。
如果修改后的功率限制在Aσ和Rσ标记之间,进行FEA细化过程。应继续该进程以减小期望的误差方差(本例中即功率误差方差),直至可以根据细化后的正确性估计曲线作出认可或否定决策。
参照图23,其中示出确认FEA的过程。该发明的FEA确认过程包括四个阶段:
0.预FOE阶段(未示出):
得到客户对每条FEA认可轴的设计限制。利用所需的保护带修改这些限制。只在检验FEA过程中使用这些修改后的客户限制,并且简单地把它们称为设计限制。
1.FOE主导阶段:
系统集成人员通过把FOE估算和估算误差范围组合在一起开始FEA,以便检查是否满足要保证的(置信度要高于:通过为Aσ或者失败为Rσ)所需限制。
(a)如果,尽管考虑到第三方的块,仍旧违反限制,则该设计是不可能的。系统集成人员必须带着一组选择在这些配置满足限制的情况下返回到客户。
(b)如果在可接受的风险内满足各限制,则完成该FEA过程。
(c)如果在预测设计通过或失败中存在小于可接受的置信度,则必须开始估算阶段。为了进入估算阶段,必须选择一组“最可能通过”的设计配置(即最佳的)。
2.估算主导阶段:
对于从FOE阶段导出的一组最佳设计,必须确定关键程度;即,在所涉及的每个块给定误差范围下的情况,该误差范围统计上最有可能确认该设计通过限制确认。它是某个块的FOE要求预测方差大小和该块对所关心的限制的影响的乘积。应通过尽可能多地去掉非关键性的设计进行估算,并且产生对剩下部分的设计专用估算。
(a)违反:类似于上面讨论的过程1(a)。
(b)满意:如果通过提高估算精度不太可能进一步减小不确定性程度(由于误差范围由估算中已包括的块主导,所以减少不考虑量不能以统计上明显的方式改进估算),或者如果在给定现有的块模型下已经建立SOC设计的完整估算,则该最佳设计必须传到沉入阶段。
3.设计沉入主导阶段
细化全局误差对它最敏感的块的估算,接着按估算阶段继续。继续对该过程迭代,直至确认或拒绝FEA。统计性关键程度的定义是类似的。
参照图24,图中示出利用依据本文所说明的一实施例的FEA设计所有物细化过程的细化估算正确性曲线。通过上面说明的从FEA阶段0到阶段3的细化过程,和图22中所示的估算正确性曲线相比,该细化估算正确性曲线的期望误差方差大大减小。从而,可根据如图24中示出的细化估算还确性曲线作出认可或者否定的决策,而根据图22中所示的估算正确性曲线可能或不可能做出这种决策。
如果根据一个确认阶段中的可用信息和数据不能作出FEA决策,则可进行设计特性细化过程以减小期望误差方差。根据细化的数据和信息,可在下个阶段进行FEA确认过程。设计特性细化过程最好包括以下三个方面:
(1)FEA数据提取过程;
(2)FEA块细化确定;以及
(3)FEA评估轴度量标准。
参照图25,其中示出优选的FEA数据提取过程。最好提供一个标准化的机制或过程,以便为和系统设计的每个块关联的预测误差建立“系统影响估算”。这种称为“块细化确定”的机制使得能为FEA系统设计评估的每个细化阶段确定任何特定块在特性上(FEA设计准则-例如功率、面积、性能等)的所需误差界限。
令L(β)为客户规定的限制,并通过任何所需的设计裕量修改,以便设计满足FEA准则B。令设计对照FEA准则β测量的期望值为E(β)。用来把设计相对于FEA准则β定义成通过/失败的“设计决策限制”或“最大允许误差”给定为DDC(β)=|L(β)-E(β)|。对于期望的“通过”,E(β)本身必须在FEA准则的认可区域内,而且对于期望的“失败”,E(β)必须在否定区域内。实际上,对于第一种情况“通过”我们要求“Aσsystem<DDC,而对于第二种情况“失败”则:Rσsystem<DDC。如果不满足这些不等式,则系统分析不产生决策品质结果。
应该注意,通常,平均估计E(β)是系统评估的前一阶段产生的系统准则β的最终估计,即,中粒评估阶段把粗粒评估阶段的最终估计作为平均估计,细粒评估阶段把中粒评估阶段的最终估计作为平均估计。为了启动该过程,必须通过首先为每个FEA准则建立粗级期望值估计来输入粗粒评估阶段。
对于为某特定FEA准则β相对于“设计决策限制(DDC)”评估的系统,必须建立与块估算关联的误差和系统的总估算误差之间的关系。与块估算关联的误差可以不仅包括对该块估计β准则的固有误差,还可以包括该块的特殊影响以及关于难以估计集成成本下的块误差。接着用系统关键程度量测C标定估计该块中的误差,其中C是根据该块的特性或者缺少对FEA准则β的定义误差对集成该块的难度的量测。通过集{Cblock,block|块ε系统}对σSystem的关系以及每个FEA准则所要求的不等式:Aσsystem<DDC(Rσsystem<DDC),确定系统“通过”(“失败”)。
为了保持相对于如上表示的系统不等式中性地包含关键程度量测Cblock(即,从组合了标定后的块关键程度误差Cblock,σblock的表达式形成σsystem),最好把关键程度量测归一化成:∑blocks(Cblock)2=1。根据被评估的系统特性的类别,评估过程略有不同。从FEA的视角,最好存在三种类别的系统特性,各在下面说明:
·绝对(块)限制(例如周期内延迟,吞吐量)
·相对(块)限制(例如功率,面积,等待时间,成本,进度)
·混合(块)限制(例如品质)
为了简单化,对于FEA准则β把BDC定义为“块设计限制”,其中在检查设计认可的情况下BDCblock=A.Cblock,σblock。且在检查设计扫描的情况下,BDCblock=R.Cblock,σblock。从而,对于每个FEA准则:
a.绝对限制:为了得到决策品质结果,每个块,或者每个沉入到它的直接环境(例如,包括布线负载等)中的块,必须通过绝对限制的DDC。数学上达到绝对限制上的决策品质结果意味着:对于该系统之内的所有块,BDCblock<DDC。
b.相对限制:如果整个系统的块设计限制的平方和小于DDC的平方,达到决策品质结果。对该限制使用术语“相对”以作为可接受评估误差,可以具有在构成该整个系统的各块中进行分割的灵活性。注意一些相对型的评估准则可具有多个准则,它的一个例子是等待时间,因为可能存在数条都影响完整系统的有效评估的关键路径。数学上,在假定所有的块误差都是高斯分布独立随机变量的情况下,达到相对限制上的决策品质结果意味着∑block(BDCblock)2<DDC2。
c.混合限制:混合限制为涉及到相对型和绝对型限制二者的类型。例如:
品质是一种混合限制。设计中的每个块都不能超过它的品质量测上的规定界限,而且系统上的全部品质评估的和也必须在规定范围内。用于各块的DDCblock以及用于整个系统的DDCsystem都是这种情况。数学上,混合限制必须满足二个系统特性准则:
(i)对于系统内的所有块,BDCblock<DDCblock
(ii)∑block(BDCblock)2<(DDCsystem)2
参照图26,图中示出用来确定需要进行块估算细化的层次的流程。
如图所示,FEA块细化确定最好由三个步骤构成,包括:
1:对于绝对或混合限制型的每个FEA评估准则,确定为达到绝对误差范围(CIC)所需的工作层次。作为为细化模型以满足绝对限制的副产品,还可能减小某些和相对限制关联的误差界限。
2:根据为满足绝对限制以及混合限制的绝对部分而细化模型后预测的误差,确定系统的剩余系统误差范围(CIC)并在各个IP块中分割。按使建立估算所需的工作为最小的方式定义该分割。通过该组装系统内的各个块的贡献的定义的关键性调节该分割的灵活性。这定义误差影响的概念。注意该问题必须对沿着每个FEA轴的允许误差范围同时优化必需的工作。
3:如果利用提出的CIC不能在任何阶段确定系统适应性,必须按如下之一进一步收紧和再次迭代该过程:
(a)对于每个块,是否某个绝对限制是不充分的,或者
(b)对于该系统,是否芯片的相对限制是不充分的。
参照图27,其中示出FEA评估轴度量标准,其包含一个根据本发明定义评估轴关键度(AAC)概念的表,并且包括适当的示范性关键度量测。根据关系式:ESI=AA*EEE,AAC通过“期望估计误差(EEE)”与“期望系统影响(ESI)”相关。
如图27中所示,该表最好包括如下的五列:
(1)评估轴:根据这些准则量测FEA
(2)限制类型:每个FEA评估轴可具有一种或多种和它关联的限制类型
(3)限制类别:按前面定义的类别
(4)布线细化:为确保芯片布线的影响和规定的块限制以及系统限制具有相同程度的误差而所需的布线细化类型
(5)关键度量测:测量和某FEA评估轴关联的特性的关键度的标准方法。
该表的一些成分涉及布线关键度。对于任何块输出引脚或任何芯片输入垫片,布线关键度定义为:引脚布线关键度=(期望净长)*(电容/单位长度)。块的布线关键度是块的各输出引脚上的引脚布线关键度的和。
符号:α代表有效布线面积标量,从而:α*(布线关键度)把各单元和布线关键度的标度转换成面积可应用的数。
布线造成的功耗需要估计导线上的活动。这可在块级或引脚级分辨率下进行。当应用于块时,活动估算从该块输出线上的平均活动导出,并用Eblock表示。
点连接看成是扇出点,除非通过使用共享总线连接几个扇出点。共享总线看成是单个独立的块,布线关键度是对至引脚的布线连接的期望困难的一种量测,从而它是FEA不确定性的一种量测。请注意,在某个分辨率层次上可以把多个评估轴标识成混合限制;例如,在定义了初始布局平面并且用于把SOC设计芯片层限制分割成块层限制后,可把面积定义为混合型的。但是,列出了快速FEA周期阶段内使用的主导限制类型。该表中使用的术语“误差”指的是和所涉及的特性相关的误差界限。
经验数据域的组织
设计人员经验可以是BBD方法的系统决策过程中的一个有关部分。BBD方法把和单个关键设计人员或设计师关联的经验的概念扩大到“公司设计经验”的概念。本文中把该整个经验也称为“BBD经验域(FOE)”。
为了建立和使用FOE最好采用四个概念和/或机制。这四个概念和/或机制是:
a)数据收集-对收集和启动FOE数据的严格处理的定义。
b)数据分类-信息分类和为了形成有关分类的机制。这种分类保证收集到的数据可随着设计知识积累量的增加被统计分析、外推和全局性细化。
c)数据认证-对建立在其它情况下可称为“经验法则”编号的“信任”的正确保证的过程的定义。认证FOE数据会保证从FOE数据库建立的估计在统计上是良好定界的。
d)数据应用-用于把FOE应用到设计过程上的机制。这是BBD的前期认可阶段的一部分。
经验域定义
在BBD中,可以把经验域定义为来自根据设计类型、设计目的分类的先有设计的测量以及设计特性的关键测量的编译数据。关键特性可包括:面积、吞吐量、功率和等待时间。该基于经验的估计的定义是根据对类似设计或设计行为经验的系统性预测。于是,FOE估计的定义是利用FOE数据的基于经验的估计。
应注意,它和BBD估计不同之处在于,它不意味对所关心的设计的特殊分析,或者当从以前的探索实际上已知硬件设计时它不意味对该硬件所需的新性能的特殊分析。例如,在某公司内可能已经开发了一种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)类别叠并-可以通过彼此的接近来关联不同类别的设计。例如,蝶式FFT实现可以是一种设计类别,但是可以把所有的FFT块看成是非常接近该设计,如果和某感兴趣的特定类别关联的数据数量太小以致于不足以统计,则可以叠并非常接近的FOE数据以减小总估计误差。把类别叠并到一起本身会由于设计类型的轻微差异而引入误差,但是所研究的设计数量上的统计改善可能盖过该差异误差。最好计算例如图28中所示的曲线并且从中摘取最佳误差的构形。
从而,用于FOE的处理/使用模型如下:
I选择可应用于要评估的块的块类别
II、对于该类别存在足够数据?(即,期望误差充分吗?)
是,则回送最佳FOE估计并结束;
否,则继续
III、叠并非常接近的类别,直至估计误差停止改进
IV、期望误差对于FOE估计充分吗?
是,则回送最佳FOE估计并结束;
否,则继续
V、要求该设计人员产生他对该设计的最佳猜测(这可能沉入到BBD的估计阶段中)。
FOE认证
FOE的认证是显示所收集的FOE信息是可靠的过程。该认证过程会确定“建立阶段”和“细化阶段”期间的估计误差。
存在二个方面的认证:
a)完整性认证-所有FEA度量标准必须是可通过所提供的参数化方式测量的。
b)准确性认证-包括对设计人员的经验的量测以及过程的定义,以确保收集到的数据的准确性。
计时和平面布局
图8示出用于作为芯片规划阶段的一部分的计时以及平面布局的示例处理流程300。如图8中所示,进行建立计时环境的第一步骤301。步骤301例如可能需要包含为整个电路块设计的各个不同电路部分生成计时预算。对于预固化的电路部分,通常可以通过模拟或者其它技术确定计时。但是,对于可编程织构,计时很大程度地取决于该织构的编程的功能。因此,最好充分地定义每个可编程织构的软件算法,从而通过逻辑合成或其它类型的估计技术可以得出供计时预算使用的计时模型和计时估计(例如,上界和下界)。从而,和不可编程的织构不同,可编程织构通常会具有计时上、下界,而不是单个固定的计时估计。
计时预算最好把可编程织构作为硬件块对待,但是为那种如果计时认证表示该计时不是最优或者将不能工作时可以随后予以改变的硬件块。从而,在建立计时环境(步骤301)以及顶层连线表(步骤305)后,典型地静态运行计时检验,如步骤308所示那样。若该计时检验不产生可接受的结果,则存在各种可采取的步骤以改变计时。它们包括:分布粘合逻辑(步骤310),修改时钟计划(步骤311),修改技术要求或连线表(尤其对软件或固件电路)(步骤312),以及修改可编程织构的计时(步骤313)。例如可以通过减小其编程功能或通过优化程序代码,改变可编程织构的计时。一旦修改了可编程织构,则进行新的合成以获得用于计时检验的计时模型,并且建立计时的新上、下界。接着对该修改过的可编程织构按修改后的计时重复计时检验步骤308。
一旦计时检验成功地满足对该电路块设计施加的计时要求,把计时间隙(slack)转换成块限制如步骤320指出那样,,以产生新的块限制。可以利用带有新的块限制的电路模型再次运行静态计时检验。同样,可以进行顶层平面布局,如步骤322所示。平面布局步骤322可能需要在把各个电路部分布置在顶层上之前调整它们的占用面积。预固化的电路部分通常在形状或尺寸上是不能调整的,但软件或固件电路部分在形状上可调整。可编程织构可能形状上也是可调整的,但是不必允许采取任何宽高比而是只可以采用一些离散的宽高比,因为可编程织构典型地为基于瓦片的布局(例如ROM)。图84示出形状上可调整的可编程电路块的可能的占用面积的简单例子,图中示出各种合法的宽高比。
一旦完成平面布局步骤322,可进行分布式反问注解(backannotation)步骤322,然后若需要可再进行计时检验(步骤308)和进一步的细化。
粘合逻辑
在本文公开的各实施例中提供一种粘合逻辑分布和减少方法。三种交替粘合逻辑分布机制的组合是优选的。第一,可以把不含在预设计块中的粘合逻辑复制多份供对已有的块进行分配。第二,不在顶层上和块亲合的逻辑可作为小的块留下,并优化布置以使有效门电路垄断、接线拥挤和平面布局影响为最小。第三,当块的数量超出块位置和路由限制时,可把粘合逻辑聚集成粘合簇块,直到把块的计数减少到可接受的水平。
参照图29,所示的电路设计图中粘合逻辑2910不利地驻留在互连的块之间,从而造成低效地使用宝贵的硅面积并且造成明显的接线拥挤。
图30概念性地示出形成粘合逻辑的多个拷具以供分配到较大的顶层块上。如果元件3010具有驱动多个负载的输出网,则把该元件分割成多个各在输出上只具有单个负载的元件3012。接着,同样复制驱动该复制后的元件的每个输入“锥(cone)”(未示出),直到获得全部块输出。类似地,大输入门电路被减少为同相双输入门电路的树结构,并且该树的顶部为一个原始功能的双输入门电路。以这种方式,实质上更大的逻辑成为小得多的粘合逻辑功能。但是,通过从较大的块之间的区域里去掉粘合逻辑,可以更有效地布置较大的块,造成净效率的提高。
接着最好把任何不能有效复制以供分配的粘合逻辑元件合并成一个较大的、对该布置的元件具有最大亲和力的块。根据一些准则执行粘合逻辑合并程序,其中最重要准则是该合并程序是否减少顶层引脚数量。从而,当建立多个拷具时,由于大多数得到的逻辑由双输入门电路构成,把这些门电路合并成各块(其中一个引脚连接到块上)引脚数量减少一半。当二个或多个块等同地作为合并程序的候选物时,最好选择引脚密度最低的块。最后,最低的优先级最好是计时考虑。
接着,参照图31,不能合并的门电路和小块3110聚集成群集3112。不能合并的门电路很可能在它们的输入网和输出网上都具有多个负载。通过组合带有类似功能的输入的门电路可减少门电路的数量。
下面要公开的是一种把预设计的电路块转换成具有标准接口的电路的方法。
在图1的块设计阶段106中完成的任务包括:(1)为任何选定的电路块建立缺少的抽象,(2)把这些电路块嵌入到它们各自的称为套圈的标准接口内,以及(3)对套好圈的电路块建立一组完整的抽象。
参照图32,图中示出把电路块嵌入到套圈中的套圈过程(collaringprocess)。
在优选的BBD方法中,选取的电路块是芯片级上的初级输入组件。套圈过程在每个这样的电路块周围放置一个套圈以在该电路块的边界上建立一个标准接口。为了成功地把套好圈的块集成到芯片级上,必须为套好圈的块建立完整的抽象组。在对套好圈的块建立完整的抽象组之前,为选定的块形成缺少的抽象(其中各抽象是芯片级装配或规划工具所需要的块的模型或视图或者是所需要的套好圈的块的设计)。抽象的例子如下:
(1)静态计时抽象-TLF
(2)布局锁定文件-LEF
(3)检验模型-栓接的总线-块模型
(4)块布局对系统的限制
参照图33,其中示出建立电路块的完整抽象组,而图34示出图32和33中所示的特征的组合。
现在说明套圈过程,其中假定已经为设计中要使用的每种类型的块定义了标准接口。
第一步,该套圈过程检查是否每个块具有完整的块抽象。若任何块不具有完整的块抽象,该过程为该块形成完整的块抽象。
接着,该过程识别每个块的块类型。具体地,块可以是:存储器型,处理器型,电源型或者模拟/混合信号型;但是,来自不同来源的电路块类型可能具有不同的接口,从而为了和其它电路块连接需要不同的设计。例如,不同厂家设计的处理器可能具有不同的接口和总线结构。
接着,该过程使识别的块和各自的接口标准关联。
然后,该过程建立含有能和该识别出的块的专用接口连接的组件的第一套圈部分。
在下一步,该过程建立按照与该识别出的电路块相关的标准接口的第二套圈部分。
该过程接着形成第三套圈部分,后者含有用于把该专用接口转换成可和标准接口连接的以及用于使第一套圈部分和第二套圈部分连接的组件。
块的套圈可以由多层构成。目前已定义二个分别为BBD和SOC定义的套圈层(块标准套圈和系统专用套圈)。参照图35,图中示出一种含有二层的套圈,一层套圈对某特定块是标准的,而另一层专用于在其中部署该块的特定系统。块标准套圈含有可以在不了解该特定系统或者在不了解要在其中集成的特定环境情况下进行定义的接口组件。例如,在BBD环境下,某个具体设计小组可能决定设计中需要JTAG标准测试接口。从而,对于要在任何正被设计的系统中使用的所有块,JTAG测试接口是一个标准,并且属于块标准套圈。系统专用套圈(或适配套圈)含有属于该块的但专用于系统或环境的接口组件。例如,标准数据线组可能不需要奇偶校验位,但是对于某正在设计的特殊系统在所有的数据线上需要奇偶校验位。在芯片规划期间使生成奇偶校验位的逻辑和该块关联并且该逻辑应驻留在系统专用套圈中。
BBD中二个套圈层之间的另一个不同之处是,可以在前期认可和芯片规划之前装上块标准套圈(芯片规划可能要求作为沉入处理的一部分设计初步的套圈以便更好地实现所需的芯片规划功能),但是系统专用套圈只能在芯片规划之后添加。
二种套圈类型之间的一个更细微的不同是,用于块标准套圈的标淮集在范围上可能大大窄于SOC中的标准集。例如,对于BBD某个电源接口可能是一个标准,但是只用于某特定公司,而其它公司不必遵守对于该块的该标准电源接口。从而,来自该公司之外的块需要一个把标准电源接口转换成该公司的电源接口的系统专用套圈。这是和SOC相反的,SOC中存在一个工业界的电源接口标准并且其驻留在块标准套圈中。SOC中的最终目标是建立一个作为工业界标准的标准套圈。具有这种套圈的块可称为套接化的块。将来,如果套圈的各方面都是工业界的,则不会需要添加一层系统专用的套圈,从而使块更接近即插即用理想。
系统专用套圈的另一个方面是,尽管预期在芯片规划后设计它,但可以通过在芯片规划中做出系统专用套圈来加快芯片集成过程,其中各个参数用于获取该系统专用套圈必须对准的范围。由于在芯片规划之后只需要改变这些参数而不必重新设计该系统专用套圈,这加快了集成过程。
套圈和块可以是软件、固件和硬件的各种组合。正如块在硬件性上具有优点和缺点那样,套圈的软件性、固件性和硬件性的组合也具有优点和缺点。例如,如果块本身是软件,则保持块标准套圈是软件可能是适当的,从而当添加系统专用套圈时可以合成、部署和平面布线整个块以供最后向布局变换。反之,如果块是硬件,则采用硬件块标准套圈是适当的,以便只通过少量的标准功能改变来解决以物理接口为主的问题,而软件式系统专用套圈处理系统专用问题大多要涉及功能改变。
套圈按如下方式把块专用接口转换成标准接口:
(1)把专用于块的物理配置转换成标准物理配置,包括引脚层、引脚位置和引脚隔离;
(2)把专用于块的电源转换成标准电源,包括供电方式和电源物理位置;
(3)把专用于块的测试处理转换成标准测试处理,包括测试接入端口(TAP)控制器和测试协议;
(4)把专用于块的计时转换成标准计时,包括建立时间和保持时间、触发和锁存;
(5)把专用于块的时钟端口转换成标准时钟端口,包括对每个时钟端口的装入;
(6)把专用于块的数据/控制信号转换成标准数据控制信号,包括信号正/负断言的标准化;以及
(7)通过添加用于块的寄存器,按高位在前(big-endian)或低位在前(little-endian)(高位在前是在数据单元的左端具有0位;而低位在前是在右端)期望所有周期上的有效输入来把专用于块的总线接口转换成标准总线接口,以及变换位宽度。
另外,套圈可以包括用于为套好圈的块实现附加功能的组件(例如上面说明的粘合逻辑)。粘合可以存在于三种层次中:(1)在套圈内部署粘合,(2)在芯片层上组合的粘合,以及(3)在芯片层的一个或多个小型块中部署粘合,具体地,粘合逻辑可以包括从简单功能转换器(例如每条位线上的NAND门电路)到更复杂功能(例如寄存器、累加器等)的任何事物。尽管粘合逻辑可以为任意尺寸,但如果粘合尺寸相对于块变成是明显的,由于未考虑到粘合尺寸,前期装配和芯片规划期间的估计可能变成是不准确的。可能需要对至块的粘合的相对尺寸加上限制。
在套圈过程中采用如下的一组假设:
(1)在芯片规划期间做出是否添加粘合逻辑的决策;
(2)在这三种粘合逻辑类型(放到套圈中的粘合;芯片级的组合粘合;放到芯片级的小型块中的粘合),套圈过程最好只解决放到套圈中的粘合;
(3)在合成期间处理高宽比问题(不在对块加套圈过程中);以及
(4)对于BBD,套好圈的块的输出是布局。
对于可编程织构,如前面提到那样,取决于芯片规划过程中编程端口模块的指示,(加)套圈过程可能需要对可编程织构添加编程端口封套。另外,套圈过程可能需要添加输入/输出缓冲器,以完成诸如需要时的电压电平偏移(例如FPGA的操作电压电平可能和芯片的其余部分不同)功能,或者三态的功能。最好把这种输入/输出缓冲放在可编程织构电路和通常也做为套圈的一部分的边界扫描电路(若有的话)之间。
参照图36,其中示出套圈602和块604之间的逻辑图,以说明上面讨论的套圈的一些示范功能。
如图36中所示,套圈602包括三个完成三种不同功能的部分。第一部分包括可和块604的边界周围的专用接口连接的组件。第二部分包括依照某标准的输入输出组件,而第三部分包括把块604的输出转换到该标准上的组件。
具体地,在套圈602中,总线接口606把二条单向总线608和610组合成一条双向总线612。测试接入端口614和输入616连接,以便收集来自块604的信息并进行测试。门电路618把输入信号转换成适用于块604的通过门电路619接收的格式,而门电路620-624进行时钟缓冲。
参照图37,其中示出套圈702和块704之间的物理图,以说明上面讨化的套圈的一些示范功能。在图37中,套圈702和块704都含有多个金属层。存在一个用于在金属层3(M3)上布置Vdd电压和在金属层4(M4)上布置GND的电源标准。如果块704不遵照该电源标准,则套圈704转换电源以便遵守。区域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,串行总线1016以及键盘1018。
硬盘1008和磁盘机接口1006耦合;监视显示器1012和显示器接口1010耦合;而鼠标1016及键盘1018和串行总线接口1014耦合。和系统总线1001耦合的是处理单元1002、存储部件1004、磁盘机接口1006和显示器接口1010。
存储部件1004存储数据和程序。和磁盘机接口1006一起操作的硬盘1008也存储数据和程序,但是存储部件1004具有比硬盘1008快的访问速度,而硬盘1008通常具有比存储部件1004大的容量。
和显示器接口1010一起操作的显示监视器1012提供被执行的程序和用户之间的可视接口并且显示由程序生成的输出。和串行总线接口1014一起操作的鼠标1016和键盘1000提供对计算机系统1000的输入。
可能包括多于一个处理器的处理单元1002通过执行存储部件1004和硬盘1008中存储的程序控制计算机系统1000的操作。该处理单元还控制存储部件1004和硬盘1008之间的数据及程序传送。
如和本发明有关的业内人士会理解那样,在本文中所说明的各实施例中,用来实现本文所讨论的各步骤的程序可存储在存储部件1004或硬盘1008中并且可由处理单元1002执行。
总线确定和规划
还提供一种用来满足最终用户或设计小组所希望的并且在前期认可期间所定义的(前面已说明)系统的总设计性能要求的方法。尽管性能典型地需首要考虑,次要考虑的是在总线类型选择期间减少门电路的数量,因为可用的总线类型的总线尺寸是不同的,从而大的简单总线消耗的逻辑要比较小、较复杂总线多。
先转到图41,图中示出一系列通常和总线确定与规划相关的步骤。在步骤4110,完成对客户的原始技术要求的前期认可。前面已经详细地说明了该步骤。接着,在步骤4112,如下面解释那样分析预定义的总线要求。在步骤4114,对总线进行群集规划,并且同时在步骤4116参照总线分类学基准库分析各个变量,包括等待时间、带宽、定向以及用于每个块的现有接口。接着,在步骤4118形成新的总线技术要求,并且在步骤4120检验该新的技术要求,包括产生适应性级以及总线模型检验子步骤。步骤4118和4120参照块预先分级步骤4122进行,其中建立覆盖仲裁器和桥的新块技术要求、修改包括套圈的块技术要求、定义粘合技术要求并且建立测试基准。
现在更详细地说明总线规划,其中包括从前期技术要求转到顶层总线技术要求。在现有技术中,系统设计人员会从要设计的系统的高层功能模型或技术要求开始。利用对类似系统的系统经验和知识,设计人员为该设计构建总线结构高层图。设计人员通常具有对每条总线上的通信量的粗略想法,并且可以估算需要多少以及多么复杂的总线。在满足所需的系统性能的情况下设计总线,并同时使接口逻辑和设计工作最少。设计人员接着利用这种体系结构建立总线功能模块以检验该设计是否按技术要求中所定义那样操作。这种传统过程难以量化,因为结果是随设计人员的专门知识以及过去的经验而不同的,本文中定义的各项任务对芯片设计中的总线结构定义过程应用一种格式结构。但是,为了达到最佳结果,这些任务至少需要在相关总线和系统开发上具有平均技术水平。
总线协议
设计中总线提供电路块之间的优选通信媒介。在其最简单形式下,总线可以是需要极少逻辑但许多导线的点对点连接的集合。简单总线于每个时钟周期在块之间传送数据。尽管一些块可能需要这种类型的信息传送,但系统中的大多数块只是偶而地需要来自其它块的信息。而且由于在大型系统的设计中芯片引脚是很昂贵的,故通常采用总线以便在性能损失很小的情况下减少所需要的引脚数量并且允许许多不同块之间的周期性通信。为此,设计人员必须对每个块添加逻辑以便跟踪数据传送调度问题,例如:哪个块可使用总线导线;数据要发送到哪个块;发送者何时发送数据;以及接收者是否得到数据。这些问题是通过总线上的控制信号并且建立用于控制块之间的通信的过程(总线协议)来处理的。
总线协议的二个例子是外围总线和分组网。在简单的外围总线协议中,一个部件控制总线。所有的信息和数据流过该部件,它一次决定一种情况,哪个块会发送或接收数据。尽管外围总线处理需要相对少的逻辑,但它低效地利用总线导线并且是很不灵活的。分组网协议相对地复杂。有关哪个块发送数据以及哪个块必须接收它的所有信息和数据一起存储在分组中。分组协议允许任何时候任何块向任何别的块发送数据。该协议是非常灵活的并且高效地利用总线导线,但是每个块需要很多逻辑以便了解何时发送分组并且解密它收到的分组。其它总线具有不同程度的灵活性、利用率和等待时间(总线上从一个块向另一个块传送信息的起始延迟)。在图59中提供不同总线类型和它们的协议的分类学。
一种优选的BBD总线设计方法采用已定义的总线类型。不期望设计人员从零开始开发总线,除非它们是创造的块的一部分。另外,设计人员最好逻辑上把块连接制现有的并且良好定义的总线类型上而不是创造复杂的总线。从而一种优选的BBD方法把总线看成是块之间的信号连接。设计中最好象粘合逻辑那样在各块中分配用于总线的逻辑,以便允许这些总线在总线的外面通信,如前面在粘合逻辑章书中说明那样。
最好把所有的逻辑互连作为简单的或复杂的总线对待。通过总线连接规则定义简单的互连形式,但是最好不定义用于复杂总线的专用协议。一种优选的BBD技术支持这样的总线:具有层次;完全包含在块中;具有块外面的导线;完全包含在逻辑层次中的一层内;完全包含在物理层次中的一层内;遵守VSI的芯片上总线(OCB)的属性规范;以及是用顺应性事务向量检验的。另外,最好在SOC方法中支持BBD的许多范围之外的条件。
总线最好完全包含在块内或者最好是按顶层上的互连定义的。在顶层上定义的总线是在该层上建立的,从而允许在各块之中和在块之内分布总线组件。
对于可编程织构,对总线要求的分析可能需要评估在电路设计的可编程部分的操作期间会出现无论何种类型的编程需要。例如如果会出现串行编程,则可能需要分配专用的或多路复用的I/O引脚以支持可编程功能。如果会在总线上装载指令(或块),则各种总线要求必须是充分的以便在电路块的操作期间支持这种编程。
为了定义用于BBD芯片的总线,执行以下各会详细说明的步骤:
提取总线要求
基于群集定义总线
选择总线
规定总线设计
查阅总线分类学
检验总线选择
总线设计假设
在本BBD方法中,当设计人员规定总线设计时,他或她必须和块结构联系。该任务假定如果一个固件或硬件块包含一个专用总线接口,该接口是软件,如前面参照套圈定义那样,还假定所有类型的块含有一个总线接口逻辑和该块的实际功能之间的简化接口。对于外围块这不是一个合理假设,因为许多第三方块提供商已经建立了他们自己的简单接口,从而用户可以添加总线接口逻辑。为多个设计定制的块具有独立的内部功能和总线接口逻辑。该内部接口使得能利用不同的总线再使用这些块。当硬件块具有不能和它的内部功能分离的专用总线接口逻辑时,必须对该块添加更复杂的总线协议变换。在这二种情况下,产生的总线接口逻辑变成在块设计阶段形成的软套圈的一部分。
提取总线要求
从前期认可任务接收的数据包括总线网、信号网和每个块上的引脚。存在四种类别的信号网:1)预定义的总线信号,它们是组成诸如处理器的特定块所需的诸如PCI或AMBA总线的网的块引脚和网;2)总线信号,它们是必须是成为总线的块引脚和网,例如读写信号;3)可能的总线信号,它们是可能是导线或总线的块引脚和网;以及4)信号,它们是导线网但不当作是总线。
当设计人员确定了信号类型时,根据这四种类型的信号网组织从前期认可任务接收的数据。对于类型1和2的网,必须通过客户或其它方式提供建立一条总线所必需的数据。所需的数据在VSI的芯片上总线(OCB)属性规约OCBl1.0中进一步定义,该规约收录在此作为参考资料。
此外,每条规定的或者可能在设计中使用的总线必须具有:用户完整的足以建立该总线的指南;定义该总线的物理要求的实现指南;一组完整的模拟工具,用来测试和检验该总线;以及一个技术属性列表和该总线如何与该表比照。另外,为了形成遵守VSI的芯片上总线属性规约的总线,供应商必须提供下面说明的文档和模型。
用户指南和模拟工具
用户指南和模拟工具在总线设计中使用以便建立和测试总线组件。这组模拟工具包括写在行为Verilog和/或VHDL中的用于下述元件的各个模型:总线主控器,总线受控器,总线支持功能(仲裁器,地址译码器)和标准的总线桥。它们用来检验总线,如本文和总线检验有关的章节中说明那样。
实现指南
实现指南是在块设计、芯片装配和随后的芯片设计规划任务中使用的,以便说明这些总线的属性。下述信息作为块技术要求的一部分传给块设计:所需的专用电池,这些电池的物理特性,总线多路复用或导向选项,存储变换,功率分布以及计时原则。在随后的芯片设计规划步骤中也使用计时原则和最大加载原则。向芯片装配任务传送计时指南、最大加载以及总线布局或布线上的限制供总线实现中使用。
技术属性列表
技术属性必须转变成可以在总线分类学基准库中作为总线属性保存的形式。从而设计人员使用该总线分类学基准和总线类型表选择总线类型。对于预定义的总线信号,设计人员进行检查以确保所需连接可以满足最大加载以及计时原则,并在芯片装配期间可满足总线布局和布线限制。若非如此,设计返回到前期认可任务以由客户修改。
基于群集定义总线
为了基于群集(clustering)定义总线,设计人员使用前期认可中接收的互连带宽和等待时间。该步骤为每个群集以及群集内的各块确定等待时间、带宽、现有总线接口类型和数据流方向。接着把这些信息被传到下一个步骤即选择总线。
通过聚集总线互连的最高带宽和最低等待时间来定义总线层次。通过此以及随后的总线分析和设计,可以清除掉可能的为点对点网的总线信号,因为这些信号直接提供给芯片装配任务以便布线。
建立通信管理器行为模型
芯片的要检验的行为模型包括块间互连的行为模型和抽象模型。典型地,该互连是一种在测试基准和块之间传送数据的软件机制。理想上,它是一种所有块都与之连接的通信管理器(可能是调度器)的形式。在其它极端情况下,该互连也可以是行为模型中的直接连接的点对点接口。
该通信管理器或者以下称为的调度器通常位于模拟模块的顶层。用于这种调度器的伪码可能如下所述:
当队列非空时,执行;
从队列取得下一个事务(transaction);
从事务取得目标块;
调用目标块(事务);
结束;
在该伪码例子中,每个块完成以下操作:
目标块(事务);
执行块的功能;
对队列添加新的事务;
结束;
在该代码级,计时和总线尺寸都不定义。所有通信是在事务中或者是通过发送任何尺寸的信息分组完成的。事务可能包括可能的总线信号和非总线的导线,从而所有块之间的通信都通过该调度器。
替代地,设计人员可能修改该块伪码以便异步地发送和读出非总线信号。在此情况下,每个块完成以下操作:
目标块(事务);
从顶层取得非总线信号值;
执行块的功能;
对队列添加新的事务;
对顶层施加新的非总线信号值;
结束
应注意,为了简明,这些例子不包括非总线信号,但是,设计人员可以对包含非总线信号的例子做出类似调整。
模式组是测试基准中强迫一个块和另一个块通信的向量集合。测试基准必须包含足够的模式组以便执行整个芯片的功能。设计人员必须在粗层次上向每个模式组指定目标性能层。例如,如果在一个模式组中存在用于MPEG译码器的帧数据,则设计人员必须能够定义目标硬件处理该组中的帧需要多长时间。如果设计人员知道输出速率必须约为每秒30帧,则该处理速率必须超过该数。在该过程的随后阶段中利用这些性能目标定义所需的总线带宽。
为芯片选择的各个块必须具有某种周期接近的性能要求。如果行为模式尚未具有这些技术要求,则在本步骤中必须把它们包含在模型中。
图42示出行为模型的互连部分的内部结构。首先,接收测试基准和要求。接着,建立初步调度器。互连管理器/调度器4210在该设计中的各块之间传送信息并且调度它们的执行。接着修改互连4210,并且修改后的互连管理器4212包括统计收集和延迟矩阵,当为周期接近操作调整该模型时添加该延迟矩阵。最后,再次使用该测试基准以便进行测试和设计迭代。在后面的各节中说明这些修改的细节
修改模型以考虑等待时间
一些设计不具有等待时间特殊要求。另一些设计,例如集线器和转换器,是对数据等待时间(数据的第一单位从发送者到达接收者所需要的时间)敏感的。大多数网络部件,尤其是异步传输模式(ATM)部件,对于信息传送具有特殊的等待时间要求,这些要求转变为对网络内的组件以及对总线的严格等待时间要求。一旦设计人员了解用于设计的等待时间要求,他或她按如下方式调整互连模型。首先,为每个模式组建立二个矩阵以规定:1)各块之间要传送的数据量,和2)要执行的事务数量。第二,为每个模式组建立一个用于规定周期计数接近的矩阵。不具有等待时间要求的设计不需要该第二步骤。
数据传送矩阵
为了建立数据传送矩阵,设计人员首先向通信管理器模块添加要从一个块传送到另一个块的数据的量。接着,利用电子表格工具,设计人员把该数据累计到用于每个模式组的表中。
例如,用于一个带有三个块以及一个测试台的芯片的表应该是一个4×4的往/来表,该表的每个项中是以字节为单位的所有传送的数据的和。对角线项应全为零。应注意,更实用的模型会考虑进、出该芯片的总线,从而测试台可能在每条轴上具有多于一个的项。
在图43的表中示出数据传送矩阵的一个例子。该矩阵背后的设计具有三个块以及三个用于测试台的端口:对外部存储器的接口、PCI接口以及并行I/O接口。如该表中所示,从块1传到块2的数据为10,000字节,而从块2传到块1的数据是8,000字节。
这样,建立数据传送矩阵的第一个步骤是建立一个如图44中所示的带有所有事务的计数的表,以显示示例性模式组X的事务。
为了建立图43和44中示出的表,设计人员可按如下方式修改该调度器伪码:
当队列非空时,执行;
从队列取得下一个事务;
从事务取得发送者块;
从事务取得目标块;
取得事务字节计数;
事务矩阵(发送者,目标)
=事务矩阵(发送者,目标)+1;
事务矩阵(发送者,目标)
=事务矩阵(发送者,目标)+事务字节计数;
调用目标块(事务);
结束;
由于非总线块到块导线具有一定延迟(典型地,至少一个时钟周期),故最好在该计时队列内除总线事务之外把这些导线添加成独立的事务。
等待时间矩阵
由于前期认可中已经定义每个块的时钟周期时间,故设计人员可以按如下方式把原始性能转换成时钟计数:
1.为了反映技术要求中所定义的周期接近操作,设计人员把每个块的估算的时钟周期加到它的现有行为模型上。最好在把块送到块设计任务之前而不是检验之后进行该步骤。
2.设计人员把这些块集成回到该芯片模型中。从而该芯片模型会具有周期接近的没有在互连上定义时间的块。
3.设计人员利用电子表格建立和图43和44中示出的表相类似的表。代替要传送的字节的数量,设计人员规定每次传送从可得到该数据的时间到该数据到达下一个块或测试台的时间所花费的周期数量(等待时间)。
4.设计人员利用该新表中示出的性能值修改互连模型。
图45示出一个示例的等待时间矩阵。这些修改的伪码例子如下:
当队列非空时,执行;
从事务取得时间;
从事务取得目标块;
调用目标块(事务,时间);
结束;
其中每个块执行:
目标块(事务,时间);
执行块的功能;
把事务时间置成为“时间+延迟+等待时间(该块,目标)”;
对该队列分类新事务;
结束
应注意,图44中为“O”的项表示没有要传送的数据并且从而不应用于等待时间矩阵。
5.设计人员利用对设计数据流的了解修改测试台以包括带有估计的互连周期计数延迟的芯片等待时间要求。
6.设计人员模拟设计以检查是否满足周期要求。
7.设计人员修改等待时间矩阵,并且重复检验过程直至满足芯片的周期要求。
为了建立带有可用于每种总线传送类型的最大周期计数的表,设计人员应该从使用大的周期计数开始并减少它们直到满足技术要求,因为更严格的等待时间要求转换成对门电路更敏感的总线互连模式。
确定群集测量
接着,为了反映数据的自然聚集,设计人员通过把最大的计数移动到最靠近中央对角线来重组数据传送矩阵。存在若干完成该过程的方法;优选的方法在本文中称为转动法(pivoting)。转动法的目的是群集传送速率最高的块以使所需的引脚数量为最小。设计人员可建立一个电子表格以便自动计算。
为了测量群集如何有效,必须准确地对数据传送矩阵中的每个点加权。该例利用图46中示出的距离矩阵对各点加权。在图46的表中,每个单元含有该单元与对角线的距离的平方。可以采用其它手段对数据传送矩阵点加权,但是距离的平方是优选的,因为已经在布局算法中显示该方法快速收敛并且同时允许系统中的元件的某种移动性,其由高阶测量限制。
接着,设计人员使数据传送矩阵中的每个单元和它在距离矩阵中的对应单元相乘并且把所有单元的所有这种值加到一起。该结果是群集测量,该图43的表中的矩阵的群集测量是428,200。群集测量越小,总线群集越有效。
转动块
为了尝试得到更低的群集测量,设计人员应该通过逐个地交换行并且在每次交换后重新计算群集测量以查看是否改进群集测量来对数据传送矩阵进行转动。可以按下面的伪码所示,通过进行排序(其中各点是表中要予以排序列表中的元素)来交换行:
取得矩阵的当前群集测量;
对该矩阵中的当前点=点1到n-I,循环;
对该矩阵中的下二个点=当前点+1至n,循环;
用当前点交换下一个点;
取得矩阵的下一个群集测量;
如果下一个群集测量>当前群集测量
则用当前点交换下个点以返回原始位置。
否则
当前群集测量=下一个群集测量;
结束
结束;
尽管互连是用带宽而不是连接,该排序类似于二次布局算法。设计人员可以利用其它提供类似结果的方法代替该方法。
上面所示的转动法最好产生例如图47的带有改进群集测量117,000的矩阵。应注意,在该理想化的例子里,各组件不产生信息。各组件记下它们的读数,从而除了块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.识别块之间的分切点(cut point)以确定可能的群集。分切点切分高通信区和相对低的通信区。图49的矩阵在C和D之间分切产生图50所示的图。为了确定ABC组和DEFGH组之间的通信量,相加左下区组和右上区组中的单元。如果象该例子那样和为O,则这二个组之间不存在通信。这些组形成完全独立的总线。在沿着其的结果通信为O的分切位置分切转动后的矩阵。
2.在每个识别出的组内,寻找明显的切分。得到的组之间的通信应大大小于每个组内的通信。在图50中,在D-H组中出现一次切分而在A-C组中不出现切分,如图51中所示。GH组之间的数据传送率为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.把每个群集中出现的所有事务都添加到转动后的数据传送矩阵中。用该同一个例子继续,该大群集中存在62,600个,该小群集中有100个,而二个群集之间有1200个。从而通过在图54的四个组的每个中添加项形成图55中的矩阵。
2.确定该模式组期待要取的时间。前期认可任务提供该信息。对于该例,必须在1毫秒中传送该模式组,即在1毫秒内该快的群集必须传送63,800字节的数据,其中1200字节至该桥以及62,600字节在该总线内部。带宽定义为以位为单位的一秒钟可被传送的数据量。在此例中,1ms中可传送510千位,从而带宽约为510MHz。
计算总线宽度
带宽由总线中的导线数量(总线宽度)乘以传送数据的时钟频率构成。
该计算如下:
(util/clock-cycle)×bus_width=带宽
其中:
util是选定的总线类型的总线利用率最小百分比(参图59);
clock-cycle是用于设计的时钟周期;以及
bus-width是总线中的导线数量。该值必须是2的幂;
为了计算,对bus-width从21开始并且不断用更高的值(22,23,…)替代,直至产生的带宽值大于目标带宽。例如,如果时钟周期为20ns并且总线使用率为25%,则舍入到最近的2的幂的导线数量为64位,其中
(25%/20ns)×26=800MHz>510MHz
在此例中,如果从图59中的表选择类型4或5的总线,则用于该快的群集的总线至少为64位。类似地,对于较慢的群集,20ns周期时间将只需要8位。
等待时间信息部分地是利用率的函数,因为总线利用率的提高增加等待时间。为了保持该例简单,未包括这种复杂性;它只部分地考虑利用率数字。但是,通常,如果对带宽计算使用最小的总线利用率数字,等待时间同样趋于最小。为了顾及该影响,设计人员应该从该群集选择最坏情况(最小)的等待时间要求。
从而设计人员可以从模拟中使用的等待时间矩阵推导出整个事务的等待时间,而图59的表示出作为独立数字的总线等待时间数据以及传送值。图59示出类型4总线的最大传送等待时间10。最小数据等待时间更接近数据本身所需的周期数量。
从而需要设计人员按如下方式通过从等待时间矩阵中的数字减掉数据传送时间计算出净传送等待时间:
data-transfer_time=min-cycles/num-words×awg_trans,其中:
min-cycles是该总线类型的数据等待时间周期的最小数量;
num-words是总线中的字数;以及
avg-trans是事务的平均大小:数据传送矩阵(图43)的数据字节数除以事务矩阵(图44)中的事务数。
为了和来自该表的等待时间比较,设计人员必须建立一个用来自模拟矩阵的等待时间值减去事务的数据等待时间的新的等待时间矩阵。在上面的该例中,该表应如图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或更好)的桥,该外围总线和以下部件连接:
块3(R/W)
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.根据部件的字节次序的要求把总线变换到接口逻辑。大多数总线是低位在前的(little-endian),但是某些部件是高位在前的(big-endian)。当置前类型上存在不匹配时,设计人员必须决定如何调换来自总线的数据字节。通常该决定是和环境相关的。如果所有来自和去往总线的事务是类型相同的数据,则设计人员可采用固定字节调换,反之必须由总线主控器完成调换。
9.裁剪DMA部件使之适应总线。直接存储器存取部件是把数据从一个块传送到另一个块的控制器。它们应被修改成地址总线尺寸,就象任何其它部件那样。
10.若需要,添加可测试端口和接口。最底层的测试是测试总线本身的能力。标准的芯片测试逻辑也可以利用总线。这些测试特性可能需要附加的信号以便区分测试和常规操作方式。
11.若需要,添加初始化参数。一些总线例如PCI具有配置寄存器。可能对不改变的配置硬编码这些寄存器。
12.如果需要,由总线上的部件增添选用的总线能力。一些总线具有高级的能力,例如线程、劈分事务和错误重试,如果和该总线连接的部件不需要它们,可能不必实现这些功能。某些附加的能力,例如DMA部件、非相连串传送和错误恢复控制,可能需要要比标准总线上定义的更多的信号。若需要,应向总线添加这些信号。
当完成这些修改时,把总线接口逻辑连接到产生的块接口上。
总线分类学基准
总线分类学基准是一个库,其列出可在单元库中可得到的总线的总线属性以及这些属性和带宽、等待时间以及数据方向的关系。该分类学库是相对固定的信息集合。负责该库的人员在新总线变成可用时可能需要更新总线属性。
总线类型基准
可以通过等待时间和带宽利用率对总线类型分类。单纯的带宽是总线中导线数量乘以传送数据的时钟步率的乘积的函数,而带宽利用率是体系结构的函数。
图59示出从最低带宽利用率和最长等待时间到最高带宽利用率和最短等待时间的具体总线属性列表。典型地,第一类型中逻辑及导线的成本最低并且最后一个类型最大。该库中的每种总线必须具有一种从该表分配的总线类型。每种总线类型可以具有某个范围内的以周期为单位的等待时间以及以利用率面分比为单位的总线带宽。每条总线可具有不同的时钟周期时间和尺寸,从而利用率百分比是超过周期时间乘以总线尺寸的乘积的有效吞吐量。100%的总线利用率值意味着充分地利用每个周期。数据等待时间列给出总线传送一个字的数据所需的周期数。传送等待时间列是开始一次总线事务所需的平均周期数。图59中的表给出总线利用率值和等待时间值的粗略估计。设计小组可以根据经验以及设计类型规定各个值。
总线分类学基准
经过一些项目,设计小组积累总线库。每种总线包含一组信息,其中包括来自图41中提到的基准库的总线类型,以及来自“基于块的设计方法资料”版本1.2,1999年5月21日(其全部收录为参考文献)的章B.2至B-10中的VSI OCB属性规约以及总线分类学基准的总线属性列表。如所说明那样,应把这些信息用于确定采用什么样的总线。
测试设计
如背景中说明那样,易于测试是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-i149.1)
传统块:不能修改或逆向工程设计的以便可以不冒未知后果的风险而再次使用的预设计门电路级块
可融合的:对可融合组件的测试要求可以和一个或多个其它组件的测试要求组合,从而它们可以作为一个整体测试以节约测试时间和成本
MISIR:多输入签名发生器
Mux:多路复用器
不可融合的:不能为了并行测试与其它块合并
PRPG:伪随机模式发生器
SAP:套接字访问端口
套接化:对一预设计块规定和添加套圈以允许在一设计内进行测试的改编过程
TAP:测试访问端口
TBA:测试总线体系结构
测试套圈:在预设计块周围的用来提供测试访问和控制的测试端口以及逻辑的集合
可测试融合的:可以和至少一个其他块合并的块,这二个或更多的块通过单个测试协议测试
时间集:周期化测试程序的时间格式:RZ(回到零),NRZ(不回到零),RTO(回到1),DNRZ(延迟的不回到零)
UDL:用户定义的逻辑
VC:虚拟组件
虚拟套接字:用于包含自己的测试接口的预设计块的占位符(placeholder)
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的一贯性检查。
内聚性(cohesion)
内聚性是一个流中各测试方法彼此相关的程度。存在五个密切相关的测试方法参数,每个参都可以修改其它的参数。例如,测试访问方法定义测试协议的激励条件,测试协议定义测试数据如何排序,而测试数据被分解成具有特定测试程序时间集的模式组。并且由于对嵌入块的测试访问是对芯片I/O限制以及控制器设计敏感的,故这些参数的内聚性要求唯一的检验方式以保持测试数据的完整性。这五个测试方法参数是测试访问、测试协议、测试数据、测试程序时间集以及测试时间。
体系结构规则
图61示出从DFT透视的芯片顶层体系结构。设计人员开始DFT过程之前,设计人员应把芯片想象为如图61中所示,而不是想象为功能块的集合。图62示出由带有多个SAP和一个套接着各个不可融合块的DAP的功能块构成的设计。
实际上可以按特性、RTL、门电路和混合级HDL描述设计中的各个功能块。HDL文件是按目录结构组织的。组织测试文件的优选方式是按下面的体系结构规则所描述那样建立一个目录层次,接着在设计层次中加入测试目录到数据文件的链接。在此方式下,可以利用HDL指令建立带有不同配置的芯片。
由于芯片级DFT体系结构只具有单层,所有属性都位于顶层上。从而期望设计人员应使用以下体系结构规则按可提取的注解形式在顶层设计文件中加入属性:
1.按层次描述DFT体系结构。
2.在层次的最高层形成单个芯片访问端口(CAP)。该CAP的规约最好应:
a.把所有测试控制以及测试数据引脚映射到插件级引脚以便相容地管理设计和测试数据。
b.分离测试控制引脚和测试数据引脚。
c.把测试控制引脚设置为专用的或选用的:
i.若在常规方式下最好排它地去激励它,则是专用的;专用引脚不能和功能引脚共用。
ii.若在整个测试期间可以把它设置成测试固定的(某逻辑值),则是选用的;选用引脚可以和一个功能引脚共用。
d.把测试数据引脚属性设置成:
test_clock,如果它在测试期间充当时钟的话;一个test_clock引脚只能和外部功能时钟引脚共用。
test_async,如果它在测试期间异步地用于复位的话;一个test_async引脚可以是专用的或者若它不和其它测试、测试方式或隔离方式产生冲突则可以是共用的。
test_group(i),其中(i)是该test_group引脚在测试期间同步的那个test_clock。
e.对每种测试方式说明以下:
i.在要求访问顺序的测试的情况下为访问被测试的部件所需的测试建立。说明协议,例如JTAG指令、测试时钟或测试复位。
ii.为进行实际测试所需的测试执行。说明下到任务级上的同相的测试顺序、迭代计数、周期时间、测试长度以及测试结果。
iii.为结束测试并使芯片回到缺省状态(常规方式)所需的测试后处理。
3.建立CAP控制器规约,其说明用于每种测试方式的测试建立以及测试处理顺序。该规约最好是可实现的(可同步化的)以及可检验的(通过测试台和测试顺序)。
4.设计人员可选用地规定一组分级锁存器以把内部测试数据总线叠到可使用的测试数据引脚组上。该分级行为应该最好不会改变后续的测试结果。该分级最好应该:
a.不含有状态改变、时间敏感信号。利用test_async信号或遵照和test_clock相关的持续出现次序以解决它。
b.如果不能不含有状态改变、时间敏感信号,则它应具有附加的测试引脚。最好应该审慎地使用该规则以避免测试封装问题。
5.设计人员可选用地规定测试数据签名分析能力,例如MISR以压缩测试数据,这使物理I/O限制为最小。该签名分析最好应该是对操作的每个周期判定的并且最好应该:
a.通过避免它位于MISR输入上使得不含有X值传播。
b.若步骤a失败,则抑制受影响的MISR周期。应该审慎地遵循该规则以避免故障范围的损失。
6.设计人员可选用地建立一组其它的位于芯片周边的测试机制以进行以下特殊测试:DC和AC参数测试,例如边界扫描测试;频率测试例如PLL测试;以及混合信号测试,例如ADO和DAC测试。用于这些测试的各控制引脚最好应包含在所有test_control引脚表中。设计人员还可能希望在CAP控制器规约中包含它们以避免冲突的交互作用。
7.规定层次中下一层处的单个部件访问端口(DAP),该层不带有I/O单元或I/O相关单元,不受物理I/O限制。
8.DAP最好是可以通过串接、合并、改变尺寸以及多路复用类端口而形成的混合化测试端口,例如基于TAP的端口。
9.设计人员最好应该能直接从CAP控制器配置DAP。把每种配置分割成测试控制、测试数据或测试绝缘端口。在每种配置中:
a.把测试控制端口属性设置成
test_c0nf(k),若最好应该把它用于设置目标配置k的话。
test_select,若可把它设为测试常数的话。
b.把测试数据端口属性设置成
test_clock,若测试期间它充当时钟的话。
test async,若测试期间异步地使用它的话。
test_group(i),其中(i)表示端口对它同步的测试时钟。
test_direction,若它用于指示测试数据方向的话。测试方向只取1或0值。
c.若其最好在测试期间被隔离并带有安全状态逻辑值0、11或Z,则把测试隔离端口属性设置为safe_state,或者,若可把它置为非浮点逻辑值0或1,则将其属性设置为dont_care。
10.规定CAP的互连、CAP控制器、分级锁存、MISR、DAP以及其它测试机制。
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端口组以及一个逻辑或测试套圈以便匹配芯片级测试限制并同时保持功能接口。由于接口计时可能轻微改变,故最好用RTIL码写测试套圈,以便在对每个套接化设计块的合成中是赋有特征的或重新预算的。在合成整个设计之后在门电路级上添加测试套圈可能会造成计时问题。
设计块套接化规则如下:
1.可以分层地描述套接字,但是顶层最好包含所有的测试属性。
2.每个套接字只可以存在一个SAP。
3.SAP是有关如何隔离、测试、诊断和调试套接字中的每个元素的测试信息的唯一参照。
4.最好应该根据较高层的技术要求构建或合成每个SAP。
5.设计人员最好应该能够在较高层次的结构和语境下验证每个SAP能够激励和去激励常规、测试、隔离以及边界方式。这意味着设计人员应该检验套接字的外部测试信息结构。
a.外部测试信息结构最好应该遵守VSIA顺应性规则中规定的标准化描述语言。
b.如果不能使用标准化描述语言,则测试信息结构应该遵守虚拟套接字处的芯片级设计测试属性。
6.最好应该用重定格式的测试数据在套接字层验证每个SAP以确保它正确地完成测试建立、测试执行以及测试后处理序列。这意味着设计人员应该检验套接字的内部测试信息结构。
a.该内部测试信息结构最好应该包括所有设计块测试模型、所有功能块以及所有其它由套接字定界的逻辑。
b.该内部测试信息结构最好应该和芯片级模拟环境一起模拟以及彼此协作。
7.在常规方式下,所有和SAP相关的测试逻辑最好应该从SAP接口同时地以及直接地,而不是顺序地去激励。应该通过单个测试控制端口激励常规方式。
8.在隔离(休止)方式下,所有和SAP相关的测试逻辑应该在没有中间冲突情况下去激励和指定为安全状态值。不能在隔离序列中暗示任何功能状态。
9.在测试方式下,和SAP关联的所有测试逻辑最好应该在开始测试序列之前通过单个激励序列并接着选用地通过配置序列使能。为了使测试时间最小,应该捆绑相同配置的连续测试序列。
10.套接字的所有外围逻辑应能在边界(相互测试)方式下测试,包括和SAP关联的测试逻辑。
设计顶层测试逻辑规范
当设计人员设计顶层测试逻辑规范以满足覆盖范围以及时间要求时,他或她会对提高测试逻辑的并行性质做出折衷。主要决策是为测试各个块如何串行或并行。
利用套接化规则对每个虚拟套接字加以测试限制以便建立构建套圈的测试要求。从测试访问角度,对于测试集成目的,SAP是完整的和足够的。为了避免会造成设计和测试冲突的设计改变,SAP不应该共享或者使用块的功能要素。当采用不同的块类型-软件、固件或硬件块时,这种分离甚至更有意义,它使得可能避免测试集成期间的不可预见性。
通常,每种体系结构目的是一组唯一的解决办法或者一组专用工具,并且以特定范围的测试应用为目标。许多体系结构起源于特定的几乎横跨每项设计规则的设计环境。从而,需要一个完成以下工作的开发流:
1.特征化并且归类设计环境中的测试问题;
2.为每种体系结构解决折衷。
3.对每种目标设计提供其它替代物。
在本发明出现之前,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测试逻辑、模拟测试逻辑以及,若需要,时钟多路复用和测试时钟。
b.测试生成:利用ATPG工具生成测试可融合块和UDL的测试数据,或者捕获循环的功能测试数据。重要的是利用有目标的制造测试数据满足故障范围目标。
c.测试检验:修改芯片级测试台以检验测试控制器并且进行DC测试、模拟测试、对设计中的所有虚拟套接字的测试以及UDL测试。这些测试可能需要前、后测试序列,例如JTAG需要。
d.测试数据格式化:取得模拟结果并且把它们放到例如WGL的测试数据描述语言中。
接着转到BBD DFT方法环境下DFT在块级的应用。知识产权的核心或设计块的最终产品是一个带有标准化的或者测试类接口的“测试就绪”块,以及可以在芯片级再次使用的测试数据集。采用设计块套接化方式以在再次使用大部分的在每个块的设计期间产生的测试过程和设备时把设计块变换到芯片级测试的集成部分中。所发明的13131DFT混合和匹配策略提供一种灵活的方法,和大多数常用的基于扫描的测试方法对比,该方法通过对不可融合的块分类利用不同的测试方法和测试接口集成各种预设计块。使扫描设计方法作为测试可融合选择的基础的原因简单地出于易于自动的目的。
涉及到许多利用可再使用的测试数据封装设计块的专用处理的块设计计划基于一个考虑到某些有关块I/O的可访问性假设的标准化的或定制的设计块测试接口。但是,一旦嵌入,块I/O可被置在不同的环境中从而可能变成是不可访问的。为了确保容易集成,该测试接口应和功能接口分离以从芯片设计角度提供一些正交性。在BBD中,尝试混合和匹配各个设计块接口并且在芯片级统一它们(如图68中所示)。从而,为了设计和验证测试访问以及控制机制并且为了用芯片I/O并且在块级测试预算之内封装测试,应该提供测试接口的灵活性和可变更性。如本发明相关的业内人士所理解的,尽管是可能的,本发明期待把芯片上总线(OCB)作为测试总线的一部分,但这超出了本说明书的范围。
不可融合的块
DFT逻辑和测试向量检验功能让设计人员在生产周期的早期运行较短的生产就绪测试。DFT扫描通路提供其它情况下不能得到的对芯片以及系统状态的访问。存储器BIST利用算法测试向量覆盖不同的嵌入式存储器故障类别。逻辑BIST的优点是基于扫描设计的随机可测试结构,从而减小测试访问和测试数据瓶颈。但是,出于一些原因,每个预设计块可以变成不可融合的。通常,不可融合块是:
可合成的RTL软件块,由于缺少内部测试可访问性(例如选通时钟门电路、基于锁存的、数据通路)或者缺少故障范围(例如,异步的)它们可能不和常用测试方法兼容。
门电路级软件块,它们可能不和诸如扫描方法(即同步的)、扫描类型(例如多路复用扫描,时钟扫描,LSSD)的常用测试方法兼容。
通常基于阵列的编译块。例如嵌入式RAM、ROM、DRAM、FLASH等不具有和组合逻辑相同的故障模型。这些块需要大的算法测试模式。
利用专用测试方法建立的并且不具有可用于测试集成的基础结构的硬件块。通常,这些块最好应该在带有专用的块级测试数据集情况下(带有或不带有专用测试接口)交付。
用或者不用专用测试方法建立的但不具有用于集成的基础结构的传统块。通常,这些块不能修改以避免未知后果。
测试套圈
如图66的流程图所示,可以通过建立一个用SAP规范描述套接字的新模块、对原始的设计块实例化以及在它们之间插入测试逻辑来修改套接化的设计块。套接化的设计块首先恢复设计块功能接口,添加测试访问、测试隔离、边界测试结构,并且接着提供芯片规划期间所定义的基本测试接口(例如,TAR扫描,BSR或直接多路复用)。结果是带有添加作为每个关联的测试I/O端口的注释的测试属性的SAP。每个不可融合块会包上一个测试套圈以添加测试访问、隔离和互连测试工具,从而在逐个块的基础上进行测试建立、测试执行以及测试后处理。输出是含有以下内容的套接化设计块:
1.测试访问和控制(例如,测试方式,激励和去激励);
2.测试协议(例如,功能,多路复用扫描,BIST,诊断);
3.测试数据(例如,测试语言,向量尺寸,故障范围);
4.测试程序格式(例如,测试程序规范,时间集,测试速度);
5.测试施加时间(例如,无测试建立时间);
添加可测试性
对于每个不带有可再使用测试数据的不可融合块,设计规划阶段可以通过插入测试结构规定测试接口、测试方法、测试数据格式、期待的故障范围以及测试预算,并且估计总的面积和计时成本。该估计变成向每个块添加可测试性的限制。
可合成化的RTL软件块
如果预设计块是不和基于扫描的测试应用兼容的可合成化软件块,则故障范围可能是一个问题。例如,可以在RTL或门电路级进行扫描设计规则检查以筛出扫描违反。由于不容易把扫描链或测试点插到模型中,可以连带功能测试向量采用序贯的ATPG,如图67中的流程图所示。这种类型的设计的故障范围难以预测,并且最好应该在规划阶段期间应用故障模拟以建立这种块的可再使用性准则。基于TBA的测试套圈是最佳测试接口,但是若该块的测试预算允许,可考虑基于BSR的测试套圈。
检验
现在从DFT转到设计检验,BBD设计检验的一个目的是确保完成的设计(在最终带输出)满足客户在功能技术要求以及芯片测试台中规定的作为前期认可的一部分的功能要求。次要目的是达到使时间尽可能短的基本目的。
如任何设计测试方式中那样,重要的是使客户提供的芯片测试台构成对客户所要求的功能性的完整测试。最好在前期认可期间强调该假定。从而BBD设计流会包含芯片测试台的分级并同时在功能技术要求模型上运行,由此提供芯片测试台的量测。
一种方法是在集成方式下应用功能技术要求和芯片测试台二者,以确保二者是相容的。随后,随着通过芯片规划、芯片装配和块设计添加和细化细节,通过芯片测试台再次检验设计以确保功能性保持和原始的功能技术要求相符。如后面所说明,可以利用从芯片测试台提取的各个块测试台在完整的芯片层或者在各个块层进行逐步更详细的检验。
经验揭示总线逻辑以及在同一条总线上连接的各块的交互作用需要大量时间解决,如果不能早期解决会造成重复的再设计并在设计过程中延续。从而,在设计周期的早期特别关注总线功能性的验证。从而,如下面说明那样,在早期阶段利用总线顺应性测试台和设计的其它部分无关地确定并且检验总线及关联的逻辑。但是,优选的检验流足够灵活以利用快速周期应对各种各样的设计。例如,如果设计采用简单总线或者设计人员对连接到总线的各个块具有丰富经验,则可能推迟部分或全部总线顺应性测试。类似地,如果一些或者所有的块是简单的或者是从以前的设计再次使用的,则可以跳过各个块检验部分,并且在达到芯片级检验阶段之前推迟检验。
应该作为FEA过程的一部分建立具体设计应遵循的详细流程。图12-15提供可以在功能检验期间进行的优选任务的通用流程。交叉参照芯片测试台图69-73,将详细说明这些图。请注意,在图12-15中,大箭头表示任务流,较小的箭头表示任务输入,而虚箭头表示选用的旁路通路。
参照图12,在如前面说明那样完成FEA后,最好利用芯片测试台检验步骤8210继续设计过程,其中利用图69中的芯片测试台8310演习芯片级功能模型。该模型以及该测试台都是由客户提供的,该检验的目的是确保该测试台和该功能模型一致。尽管其它格式也可以是适用的,但该模型最好以Verilog、VHDL或者可执行C代码计算机文件为格式。芯片测试台8310应在一个和该模型兼容的文件中。该模型和该测试台之间的任何不匹配将反馈给客户并且修改该模型或或该测试台以达到内部一致性。
接着,在于该功能模型上运行的同时,逐步变级(grade)该芯片测试台。这种变级通过测量下述属性:语句覆盖范围、翻转覆盖范围、FSM弧覆盖范围、访问状态覆盖范围、对弧覆盖范围、通路/分支覆盖范围和/或表达式覆盖范围中的一个或多个提供该测试台的“良好性”测量或者覆盖范围度量。接着把该覆盖范围度量反馈给客户。该覆盖范围度量可以突出那些看起来被不足地测试的设计部分,例如设计在何处未被足够测试或者设计何处包括冗余功能性。在这二种情况下,客户可以选择修改测试台或者模型以改进覆盖范围度量,从而重新为本文所说明的BBD设计方法设定项目启动时间。
一旦芯片测试台被证明和功能模型一致,在步骤8212(图12)通过使每个块的块功能模型和这些块之间的已定义的粘合逻辑相结合来建立芯片的新视图8312(图69)。块功能模型8312或者由客户提供的或者如前面说明的在FEA期间通过“下沉”处理建立。如前面所说明,在芯片规划期间还规定粘合逻辑模型。
再次参照图12,芯片级结构检验步骤8214包括利用芯片测试台模拟块功能模型。通过修改一个或多个块功能模型8312或者粘合逻辑模型并且再次运行模拟来解决任何不一致。该步骤确保块功能模型和芯片功能模型一致。
接着转到图13和14,总线检验流的目的是确保芯片内的总线逻辑正确操作并且不同总线元件之间的交互作用不会产生总线协议错误。从而,建立用于总线设计的顺应性向量。这些向量可以基于客户或者块设计供应商提供的顺应性测试套件。必须处理这些向量以便和该设计的具体总线拓扑对应。在未提供顺应性向量的情况下,设计小组必须写出它们,并且最好按照使它们演习连接到总线的各个块的交互作用、演习所有边界条件并且检验总线错误被正确处理的方式写出。
图13的步骤8218提供对总线功能性的检验。必须对照从前面讨论的芯片规划阶段提供的总线精确周期模型模拟总线顺应性向量。必须通过修改顺应性向量组(未示出)或者通过修改图70中示出的一个或多个总线逻辑元件8512来解决任何错误。重复该步骤,直至顺应性测试套件成功地在总线逻辑模型上运行。
参照图14,其中示出总线块模型和测试台建立步骤8610到8614。总线块模型建立步骤8610和测试台生成提取步骤8612以及总线块模型检验步骤8614的目的是为该设计中的每个块建立高层行为模型以及关联的测试台。把它们交给块设计人员并且它们为每个块定义目标功能。
图70的为每个块建立总线块模型8510包括使功能校正、周期近似的块功能模型8312和该块周期精确的总线逻辑模型组合。该总线逻辑是从前面的芯片规划提供的并且已检验过的总线粘合逻辑模型中提取的。总线功能模型的某些修改可能需要使接口“对齐”。
接着通过装配接合着所有总线块模型的芯片的模型来检验各总线块模型。然后通过使它和芯片测试台一起模拟来检验芯片模型。尽管前面在周期近似的模型组上检验过该芯片测试台,但芯片的行为块模型包括一些精确周期的操作,从而该芯片测试台需要一些细化以使该块模型通过。在一些情况中,由于块功能模型和总线逻辑中的不匹配可能产生错误,此时可修改该模型从而校正错误。一旦在该芯片模型上该测试台成功执行,就可以把各个总线块模型发送给块设计人员以便详细实现。
在图14的步骤8612,提取块测试台组。一旦芯片测试台成功地在芯片级总线块模型8710上执行,如图71中所示,可以在各个块的接口上设置探针并且可以从在该模型上执行的芯片测试台8712提取决测试台。把这些块测试台发送给块设计人员以供他们在实施进展中验证这些块。
接着转到图15中示出的逻辑检验流,逻辑检验任务的目的是确保在设计的实现阶段进展中(从RTL到布局前连线表再到布局后连线表)每个块在其处理中功能上是正确的。还要测试装配好的芯片是否继续提供所要求的功能性。
可以通过功能模拟动态地,或者通过实现等效检查的静态格式检验工具静态地完成检验。动态检验通常需要本文其它处所说明的模拟工具。动态检验还使用在其它处应用的向量组并且从而帮助测试套件性质上从周期近似到周期精准的迁移。静态检验需要包括新的工具。但是,静态检验运行上典型地要比模拟快,并且提供“完整的”等效检查,和模拟相比它只证明测试台演习设计功能性的等效性程度。
接着在步骤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中所示完成物理检验,其中按和本发明相关的业内人士了解的方式检验块和芯片带输出。物理检验任务的目的是检检经设计的块设计阶段以及芯片装配阶段建立的GDSII文件功能上是否正确并且不违反目标技术的设计规则。
通过运行用于目标技术的DRC来检验通过块设计过程为每个块建立的GDSII。向块设计人员反馈任何错误和警告以便予以解决。还在块GDSII文件和该块的布局后连线表之间运行LVS。向块设计人员反馈任何错误和警告以便予以解决。
通过运行用于目标技术的DRC来检验通过芯片装配过程为整个芯片建立的GDSII。向芯片装配设计人员反馈任何错误和警告以便予以解决。还在芯片GDSII文件和芯片的布局后连线表之间运行LVS。向芯片装配设计人员反馈任何错误和警告以便予以解决。
可编程织构和派生设计
在基于块的设计方法中,可编程织构可能需要特殊考虑,其中的许多已在前面详细列出。可编程织构还可以在派生设计环境中提供某些好处,并且基于块的方法可适应于从这些好处特别获益。
图75-80提供使用这些织构(可编程和不可编程的)的概念图。图75示出一个组织到织构中的电路设计350的布局例子。在图75所示的例子中,平台内核351为电路设计350提供带有基本功能的基础。通常利用标准单元技术(从而也可看成是一种织构)构建平台内核351,并且它可以是一个预硬化或固化的块。图75中所示的电路设计350还包括暂存器块353和标准单元块352(二者也可看成是织构),并且包括可以是任何类型的电路(例如,标准单元,定制的,MPGA,FPGA等)的各种织构354、355、356。
根据本文中前面所说明的各种技术,电路设计350可能经历前期认可过程、芯片设计规划过程、块设计过程、芯片装配过程和检验过程。作为这些过程的一部分,这些不同的织构(包括该平台内核)被适当地加套圈并且布置在平面布局图中。接着可以互连这些织构,例如如图76中概念性地示出那样。接着可能生成织构互连逻辑,并且最好按照可编程顺序实现这些织构。作为加套圈过程的一部分,最好包括边界扫描测试逻辑以便便于测试完成的设计以及实际生产的芯片。图78概念性地示出可在电路设计中采用的分层测试逻辑配置,其中带有单个测试访问端口(例如利用JTAG顺应性控制器)。而且在加套圈过程期间,如前面所明那样,最好也对本质上可编程的织构提供编程端口访问。
现在转到图78更详细地说明,图中示出采用一个标准测试访问端口和控制器(例如JTAG控制器)的图75中所示的电路设计350的分层测试电路布局。如图78中所示,在电路设计350中提供带有外部访问的顶层JTAG控制器360。每个织构354、355和356可分别带有它们自己的测试控制器377、376和378,并且平台内核351也可以带有它自己的测试控制器375。对于构成其它子层电路块的电路块(例如,平台内核351示出由三个较小的块361、362、363构成,并且一个织构355所示由三个较小的块367、368、369构成),可以在每层上设置附加的测试控制器并且组织在一个层次中。例如在2001年1月18日申请、标题为“带有多个电路块的芯片的分层测试电路结构”的共同待决美国专利申请09/765,958中说明的有关建立分层测试电路布局的进一步的细节,其收录为参考资料,就象它们完整地在本文中阐述那样。
至于平面布局,如前面提到那样,可编程织构可能要求平面布局基于平铺布局(tile placement),这可能限制用于可编程织构的形状和尺寸的选择。可编程织构还可能要求分层布线。在某时刻,对电路设计350的时钟和计时分析会变成是需要的。可以有益地应用一个例如图77中所示的功能测试(PLL)模块以便于进行时钟和计时分析。对于计时分析,可以实质上把各个不同的块(织构)当成“黑盒”对待并且从而在计时立场上彼此隔离。织构之间的接口可被缓冲以提供计时或其它隔离。时钟最好分布在顶层上,并且最好调整时钟延迟以在各种不同的织构中匹配。应作为计时分析的一部分考虑织构内的时滞。
还有可能做为基于块的设计过程的一部分进行功率分析。图79概念性地示出包括各种内部织构的一电路块的电源设计。为了确定某特定织构的功率,可以运行模拟以得到功耗估算。对于可编程织构,功耗可首先基于对必需的编程功率的估计。可编程织构的功耗最好在常规操作下以及在电路运行时实际对该织构编程的期间确定。如图79中概念性地示出那样,最好通过电源线和接地线圈出每个织构,这些线是和芯片电源或地线互连的。可能对可编程织构提供独立电源,尤其当它运行的电压电平和芯片的其余部分不同时(例如FPGA)。
还可能作为基于块的设计过程的一部分进行编程访问。图80是一个概念图,其示出一个包括对含有一个或更多的可编程织构的电路块的编程访问的例子。通常可通过外部(I/O)引脚或者通过内部各总线提供编程访问。在这二种情况下,最好出于分析目的开发编程体系结构,如图80中概念性地示出那样。
在产生基于原始电路设计的派生设计上,可编程织构可提供特殊好处。例如好处之一是加快上市时间,因为其再次使用许多原始电路。图85和86集合地示出采用可编程织构的派生设计过程,可以将与派生设计相关的图86和旨在更多地用于完整的原始电路设计的图1进行对比。如从图86的过程流看出那样,派生设计过程550可以省略掉许多在原始电路设计过程中使用的步骤。最好如先前那样仍进行前期认可步骤551,以确保原始电路设计的派生将满足必需的设计目标最好仍旧进行芯片规划步骤552,尽管由于不必必须进行芯片布局(取决于派生是否仅仅基于对原始电路设计的编程改变)它的速度可能大大加快。然而,最好进行计时预算和分析步骤554,以保证派生设计会满足所应用的计时要求。添加了其中开发对可编程织构的编程的编程步骤557。原始电路设计也可以同样包括这种编程步骤,尽管在有关的图中未明确地示出它。还包括检验步骤559,这和前面一样。
图85示出一个如何利用基于块的设计方法进行派生设计的例子。最好为原始电路设计510开发一个平台内核501。该原始电路设计510可能带有一个可编程织构,例如FPGA核心506。可以在某时刻金属化该FPGA核心506的一部分,以便如图85中所示产生第一派生电路设计520。金属化通常是一种和硬件有关的处理;在图87中示出金属化的一个例子,其中在MPGA核心的一部分上复制重复的硬件模式。接着,如图85中进一步示出那样,对FPGA核心506’的金属化部分509进行功能编程,从而产生带有完整编程MPGA核心506”的第二派生电路设计530。当每次着手新的派生设计时只需要设计并测试新的功能(以及受其影响的部分);原始电路设计的其它部分保持原封不动,从而允许更快的设计周转时间。可以为原始电路设计保留最严格的测试。
图81是一个更详细的图,其示出一个由各种织构构成的电路块的例子,其中包括一个可对它应用上述各原则的MPGA核心。图82示出通过对该MPGA核心金属化和/或编程从图81所示的电路块派生出来的一个派生电路块的例子。
从一种更加概念化的观点,可以基于硬件编程通过开发可编程织构中的专用功能获得第一派生设计。第二派生设计可以通过在第一派生设计中已编过程的硬件的结构上编程附加的较高层次的功能获得。作为这种过程的一个例子,第一派生设计例如是用于“通用”蜂窝电话的电路设计。一组第二派生设计例如可以是专用于特定区域(例如北美、欧洲、拉丁美洲等)或特定语言的蜂窝电话的电路设计。派生设计过程提供一种快速地产生一种实现派生设计中共用的作为起始平台的各种功能的完整电路设计的方法。
尽管在附图和上述说明中详细地示出并且说明了本发明,应理解可以通过替代的在本发明的精神内的实施例实现本发明。从而,本发明的范围不受本说明书中的示例和说明限制的而由附后权利要求书定义。
Claims (10)
1.一种形成派生电路块的方法,包括下列步骤:
(a)选择原始电路设计,其中该原始电路设计包括一个或多个可编程织构;
(b)在该原始电路设计上进行前期认可测试,其中该前期认可测试包括
收集设计人员的可用经验数据以及可接受的风险程度的数据;
评估该设计人员的可用经验数据以及设计人员可接受的风险程度的数据;以及
如果评估数据在设计人员可接受的风险程度范围内,则接受该原始电路设计;
(c)规划芯片布局;
(d)对该一个或多个可编程织构中的至少一个编程以形成派生电路块;以及
(e)对该派生电路块进行检验分析。
2.如权利要求1的方法,其中该芯片布局不超出由该前期认可测试指示的边界。
3.如权利要求1的方法,还包括在对该派生电路块进行检验分析之前进行时钟和计时分析。
4.如权利要求1的方法,还包括在对该派生电路块进行检验分析之前进行功率分析。
5.如权利要求1的方法,其中只对原始电路设计添加一组新功能并且测试或者检验和这组新功能接口的任何功能。
6.如权利要求1的方法,其中,重复步骤(a)至(e)以形成第二派生电路块,其中用一个派生电路块代替原始电路设计。
7.如权利要求1的方法,其中规划芯片布局步骤包括:
分析计时要求以确保该派生电路块满足所有可适用的计时要求。
8.如权利要求1的方法,还包括在对该派生电路块进行检验分析之前根据芯片布局装配芯片。
9.如权利要求1的方法,其中原始电路设计还包括一个或多个不可编程织构。
10.一种用于形成派生电路块的系统,该系统包括:
(a)用于选择原始电路设计的装置,其中该原始电路设计包括一个或多个可编程织构;
(b)用于在该原始电路设计上进行前期认可测试的装置,其中该前期认可测试装置被配置成执行以下操作:
收集设计人员的可用经验数据以及可接受的风险程度的数据;
评估该设计人员可用的经验数据以及设计人员可接受的风险程度的数据;以及
如果评估数据在设计人员可接受的风险程度范围内,则接受该原始电路设计;
(c)用于规划芯片布局的装置;
(d)用于对该一个或多个可编程织构中的至少一个编程以形成派生电路块的装置;以及
(e)用于对该派生电路块进行检验分析的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/812,068 | 2001-03-19 | ||
US09/812,068 US6968514B2 (en) | 1998-09-30 | 2001-03-19 | Block based design methodology with programmable components |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1505790A CN1505790A (zh) | 2004-06-16 |
CN100507923C true CN100507923C (zh) | 2009-07-01 |
Family
ID=25208395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028091019A Expired - Fee Related CN100507923C (zh) | 2001-03-19 | 2002-03-18 | 带有可编程组件的基于块的设计方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6968514B2 (zh) |
EP (1) | EP1370993A4 (zh) |
JP (1) | JP2004531056A (zh) |
CN (1) | CN100507923C (zh) |
WO (1) | WO2002075611A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI731097B (zh) * | 2016-06-07 | 2021-06-21 | 美商克萊譚克公司 | 用於半導體器件之檢驗及計量之方法及裝置 |
Families Citing this family (208)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587995B1 (en) * | 2000-04-19 | 2003-07-01 | Koninklijke Philips Electronics N.V. | Enhanced programmable core model with integrated graphical debugging functionality |
US6526550B1 (en) * | 2000-09-29 | 2003-02-25 | General Electric Company | Analyzing characteristics of geometries |
US6505326B1 (en) * | 2000-09-29 | 2003-01-07 | General Electric Company | Analyzing thermal characteristics of geometries |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
JP4118501B2 (ja) * | 2000-11-15 | 2008-07-16 | 株式会社ルネサステクノロジ | システム検証装置 |
JP2002184948A (ja) * | 2000-12-12 | 2002-06-28 | Hitachi Ltd | 半導体集積回路装置の製造方法 |
US6567959B2 (en) * | 2001-03-30 | 2003-05-20 | Intel Corporation | Method and device for verification of VLSI designs |
JP4035354B2 (ja) * | 2001-07-11 | 2008-01-23 | 富士通株式会社 | 電子回路設計方法及び装置、コンピュータプログラム及び記憶媒体 |
US20030031197A1 (en) * | 2001-08-13 | 2003-02-13 | Schmidt Steven G. | Multiple arbitration circuit |
CN100378734C (zh) * | 2001-08-29 | 2008-04-02 | 英芬能技术公司 | 集成电路芯片设计 |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7299277B1 (en) * | 2002-01-10 | 2007-11-20 | Network General Technology | Media module apparatus and method for use in a network monitoring environment |
US6633835B1 (en) * | 2002-01-10 | 2003-10-14 | Networks Associates Technology, Inc. | Prioritized data capture, classification and filtering in a network monitoring environment |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
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 |
US6992503B2 (en) | 2002-07-08 | 2006-01-31 | Viciciv Technology | Programmable devices with convertibility to customizable devices |
US7673273B2 (en) * | 2002-07-08 | 2010-03-02 | Tier Logic, Inc. | MPGA products based on a prototype FPGA |
US7112994B2 (en) | 2002-07-08 | 2006-09-26 | Viciciv Technology | Three dimensional integrated circuits |
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 |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US8643162B2 (en) | 2007-11-19 | 2014-02-04 | Raminda Udaya Madurawe | Pads and pin-outs in three dimensional integrated circuits |
US7729898B1 (en) * | 2002-10-17 | 2010-06-01 | Altera Corporation | Methods and apparatus for implementing logic functions on a heterogeneous programmable device |
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 |
US7055113B2 (en) * | 2002-12-31 | 2006-05-30 | Lsi Logic Corporation | Simplified process to design integrated circuits |
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 |
JP4428110B2 (ja) * | 2003-04-14 | 2010-03-10 | 富士ゼロックス株式会社 | 経験知識情報処理装置 |
US7058918B2 (en) * | 2003-04-28 | 2006-06-06 | Dafca, Inc. | Reconfigurable fabric for SoCs using functional I/O leads |
JP2005037995A (ja) * | 2003-07-15 | 2005-02-10 | Toshiba Corp | 半導体集積回路の検証システム |
US7275228B1 (en) | 2003-11-17 | 2007-09-25 | Altera Corporation | Techniques for grouping circuit elements into logic blocks |
US7030651B2 (en) | 2003-12-04 | 2006-04-18 | Viciciv Technology | Programmable structured arrays |
US20050149890A1 (en) * | 2003-12-29 | 2005-07-07 | Tsai Vicki W. | Programming reconfigurable packetized networks |
EP1564643A3 (en) * | 2004-02-11 | 2006-09-20 | Intracom S.A. Hellenic Telecommunications & Electronics Industry | Synthesizable vhdl model of a multi-channel dma-engine core for embedded bus systems |
US7376544B1 (en) * | 2004-02-12 | 2008-05-20 | Xilinx, Inc. | Vector transfer during co-simulation |
US7424698B2 (en) * | 2004-02-27 | 2008-09-09 | Intel Corporation | Allocation of combined or separate data and control planes |
US7055118B1 (en) * | 2004-03-01 | 2006-05-30 | Sun Microsystems, Inc. | Scan chain verification using symbolic simulation |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US20050223110A1 (en) * | 2004-03-30 | 2005-10-06 | Intel Corporation | Heterogeneous building block scalability |
US20050229139A1 (en) * | 2004-03-30 | 2005-10-13 | Intel Corporation | Block-based processing in a packet-based reconfigurable architecture |
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 |
US7290224B2 (en) * | 2004-06-03 | 2007-10-30 | Lsi Corporation | Guided capture, creation, and seamless integration with scalable complexity of a clock specification into a design flow of an integrated circuit |
GB0412611D0 (en) * | 2004-06-05 | 2004-07-07 | Ibm | Probabilistic regression suites for functional verification |
US7143368B1 (en) | 2004-06-10 | 2006-11-28 | Altera Corporation | DSP design system level power estimation |
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 |
US20060004902A1 (en) * | 2004-06-30 | 2006-01-05 | Siva Simanapalli | Reconfigurable circuit with programmable split adder |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
KR100593803B1 (ko) * | 2004-12-06 | 2006-06-28 | 주식회사 엔타시스 | 반도체 집적회로의 블록배치 및 전력배선 설계방법 |
US7526745B2 (en) | 2004-12-08 | 2009-04-28 | Telefonaktiebolaget L M Ericsson (Publ) | Method for specification and integration of reusable IP constraints |
US7197735B2 (en) * | 2004-12-15 | 2007-03-27 | Lsi Logic Corporation | Floorplan visualization method using gate count and gate density estimations |
US20060136188A1 (en) * | 2004-12-22 | 2006-06-22 | Lacey David J | Capturing curation data |
US20060190889A1 (en) * | 2005-01-14 | 2006-08-24 | Cong Jingsheng J | Circuit floorplanning and placement by look-ahead enabled recursive partitioning |
US7254801B1 (en) * | 2005-01-20 | 2007-08-07 | Altera Corporation | Synthesis aware placement: a novel approach that combines knowledge of possible resynthesis |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
JP4563286B2 (ja) * | 2005-03-08 | 2010-10-13 | パナソニック株式会社 | 回路自動生成装置 |
US7178075B2 (en) * | 2005-04-25 | 2007-02-13 | International Business Machines Corporation | High-speed level sensitive scan design test scheme with pipelined test clocks |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
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 |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US7398482B2 (en) * | 2005-07-28 | 2008-07-08 | International Business Machines Corporation | Modular design method and apparatus |
US7426709B1 (en) * | 2005-08-05 | 2008-09-16 | Xilinx, Inc. | Auto-generation and placement of arbitration logic in a multi-master multi-slave embedded system |
US20070033557A1 (en) * | 2005-08-08 | 2007-02-08 | Byrn Jonathan W | Method for creating constraints for integrated circuit design closure |
US7299446B2 (en) * | 2005-08-16 | 2007-11-20 | Lsi Corporation | Enabling efficient design reuse in platform ASICs |
US7877555B1 (en) * | 2005-09-20 | 2011-01-25 | Altera Corporation | Power-aware RAM processing |
JP4599266B2 (ja) * | 2005-09-27 | 2010-12-15 | 株式会社東芝 | シミュレーション装置及びシミュレーション方法 |
US7711534B2 (en) * | 2005-12-09 | 2010-05-04 | International Business Machines Corporation | Method and system of design verification |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
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 |
US8010931B1 (en) * | 2006-02-24 | 2011-08-30 | University Of Southern California | Tool for a configurable integrated circuit that uses determination of dynamic power consumption |
US20070214438A1 (en) * | 2006-03-09 | 2007-09-13 | Chen Peter H Chen Hanping | Method for static power characterization of an integrated circuit |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US8302042B2 (en) * | 2006-07-24 | 2012-10-30 | Oasys Design Systems | Generating a convergent circuit design from a functional description using entities having access to the functional description and to physical design information |
US7669157B1 (en) | 2006-09-05 | 2010-02-23 | Altera Corporation | Method and apparatus for performing incremental compilation using top-down and bottom-up design approaches |
EP2080128A1 (en) * | 2006-10-10 | 2009-07-22 | Ecole Polytechnique Federale De Lausanne (Epfl) | Method to design network-on-chip (noc)-based communication systems |
CN101196945B (zh) * | 2006-12-04 | 2010-06-02 | 富士通株式会社 | 电路设计支持装置及方法、印刷电路板制造方法 |
EP1930825A3 (en) * | 2006-12-04 | 2011-06-29 | Fujitsu Limited | Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method |
US7913220B2 (en) * | 2006-12-04 | 2011-03-22 | Fujitsu Limited | Coordinated-design supporting apparatus, coordinated-design supporting method, computer product, and printed-circuit-board manufacturing method |
EP1930823A3 (en) * | 2006-12-04 | 2011-06-08 | Fujitsu Limited | Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method |
US8255844B2 (en) * | 2006-12-04 | 2012-08-28 | Fujitsu Limited | Coordinated-design supporting apparatus, coordinated-design supporting method, computer product, printed-circuit-board manufacturing method, circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method |
US8176457B2 (en) * | 2006-12-04 | 2012-05-08 | Fujitsu Limited | Apparatus and method updating diagram of circuit based on pin swap performed in package design with respect to PLD |
US8640066B1 (en) | 2007-01-10 | 2014-01-28 | Cadence Design Systems, Inc. | Multi-phase models for timing closure of integrated circuit designs |
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 |
US8977995B1 (en) * | 2007-01-10 | 2015-03-10 | Cadence Design Systems, Inc. | Timing budgeting of nested partitions for hierarchical integrated circuit designs |
US7926011B1 (en) * | 2007-01-10 | 2011-04-12 | Cadence Design Systems, Inc. | System and method of generating hierarchical block-level timing constraints from chip-level timing constraints |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US8032338B2 (en) * | 2008-06-13 | 2011-10-04 | Power Integrations, Inc. | Method and apparatus for design of a power supply |
US8010920B2 (en) * | 2008-12-11 | 2011-08-30 | Advanced Micro Devices, Inc. | Constraint management and validation for template-based circuit design |
JP5236533B2 (ja) * | 2009-03-05 | 2013-07-17 | 株式会社トヨタIt開発センター | ネットワークの設計を支援するための方法および装置 |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
CN102422263B (zh) | 2009-05-07 | 2016-03-30 | 赛普拉斯半导体公司 | 开发、编程和除错环境 |
US20120005693A1 (en) * | 2010-01-08 | 2012-01-05 | Cypress Semiconductor Corporation | Development, Programming, and Debugging Environment |
US8015537B1 (en) | 2009-05-19 | 2011-09-06 | Xilinx, Inc. | Automated rate realization for circuit designs within high level circuit implementation tools |
US8042079B1 (en) * | 2009-05-19 | 2011-10-18 | Xilinx, Inc. | Synchronization for a modeling system |
US8516322B1 (en) * | 2009-09-28 | 2013-08-20 | Altera Corporation | Automatic test pattern generation system for programmable logic devices |
US8234617B2 (en) * | 2009-10-01 | 2012-07-31 | Cadence Design Systems, Inc. | Method and system for re-using digital assertions in a mixed signal design |
US8527929B2 (en) * | 2009-12-23 | 2013-09-03 | Cadence Design Systems, Inc. | Method and system for optimally connecting interfaces across multiple fabrics |
US8316337B2 (en) * | 2009-12-23 | 2012-11-20 | Cadence Design Systems, Inc. | Method and system for optimally placing and assigning interfaces in a cross-fabric design environment |
US8479134B2 (en) * | 2009-12-23 | 2013-07-02 | Cadence Design Systems, Inc. | Method and system for specifying system level constraints in a cross-fabric design environment |
US8489376B2 (en) * | 2010-08-20 | 2013-07-16 | Apple Inc. | Controller and fabric performance testing |
US20120166168A1 (en) * | 2010-12-23 | 2012-06-28 | Oracle International Corporation | Methods and systems for fault-tolerant power analysis |
US8566768B1 (en) * | 2012-04-06 | 2013-10-22 | International Business Machines Corporation | Best clock frequency search for FPGA-based design |
JP2015527624A (ja) | 2012-05-08 | 2015-09-17 | セレンティック エルティーディー. | 電子実体アーキテクチャの動的生成及び修正のための方法 |
US9244880B2 (en) | 2012-08-30 | 2016-01-26 | Netspeed Systems | Automatic construction of deadlock free interconnects |
US8885510B2 (en) | 2012-10-09 | 2014-11-11 | Netspeed Systems | Heterogeneous channel capacities in an interconnect |
US8601423B1 (en) | 2012-10-23 | 2013-12-03 | Netspeed Systems | Asymmetric mesh NoC topologies |
US9774498B2 (en) | 2012-12-21 | 2017-09-26 | Netspeed Systems | Hierarchical asymmetric mesh with virtual routers |
US9185026B2 (en) | 2012-12-21 | 2015-11-10 | Netspeed Systems | Tagging and synchronization for fairness in NOC interconnects |
US9253085B2 (en) | 2012-12-21 | 2016-02-02 | Netspeed Systems | Hierarchical asymmetric mesh with virtual routers |
US8713496B1 (en) * | 2013-01-04 | 2014-04-29 | Altera Corporation | Specification of latency in programmable device configuration |
US9009648B2 (en) * | 2013-01-18 | 2015-04-14 | Netspeed Systems | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification |
US9007920B2 (en) | 2013-01-18 | 2015-04-14 | Netspeed Systems | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes |
US9130856B2 (en) | 2013-01-28 | 2015-09-08 | Netspeed Systems | Creating multiple NoC layers for isolation or avoiding NoC traffic congestion |
US8934377B2 (en) | 2013-03-11 | 2015-01-13 | Netspeed Systems | Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis |
US9160627B2 (en) | 2013-04-04 | 2015-10-13 | Netspeed Systems | Multiple heterogeneous NoC layers |
US9185023B2 (en) | 2013-05-03 | 2015-11-10 | Netspeed Systems | Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance |
US9571402B2 (en) | 2013-05-03 | 2017-02-14 | Netspeed Systems | Congestion control and QoS in NoC by regulating the injection traffic |
US10027433B2 (en) | 2013-06-19 | 2018-07-17 | Netspeed Systems | Multiple clock domains in NoC |
US9781043B2 (en) | 2013-07-15 | 2017-10-03 | Netspeed Systems | Identification of internal dependencies within system components for evaluating potential protocol level deadlocks |
US9471726B2 (en) | 2013-07-25 | 2016-10-18 | Netspeed Systems | System level simulation in network on chip architecture |
US9054977B2 (en) | 2013-08-05 | 2015-06-09 | Netspeed Systems | Automatic NoC topology generation |
US9473388B2 (en) | 2013-08-07 | 2016-10-18 | Netspeed Systems | Supporting multicast in NOC interconnect |
US9223711B2 (en) | 2013-08-13 | 2015-12-29 | Netspeed Systems | Combining associativity and cuckoo hashing |
US9294354B2 (en) | 2013-10-24 | 2016-03-22 | Netspeed Systems | Using multiple traffic profiles to design a network on chip |
US9830265B2 (en) | 2013-11-20 | 2017-11-28 | Netspeed Systems, Inc. | Reuse of directory entries for holding state information through use of multiple formats |
JP2015106594A (ja) * | 2013-11-28 | 2015-06-08 | 富士通株式会社 | 診断装置、診断装置の制御方法、および診断装置の制御プログラム |
US9158882B2 (en) | 2013-12-19 | 2015-10-13 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9699079B2 (en) | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US9473415B2 (en) | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US9319232B2 (en) | 2014-04-04 | 2016-04-19 | Netspeed Systems | Integrated NoC for performing data communication and NoC functions |
US9762474B2 (en) | 2014-04-07 | 2017-09-12 | Netspeed Systems | Systems and methods for selecting a router to connect a bridge in the network on chip (NoC) |
US9244845B2 (en) | 2014-05-12 | 2016-01-26 | Netspeed Systems | System and method for improving snoop performance |
US9473359B2 (en) | 2014-06-06 | 2016-10-18 | Netspeed Systems | Transactional traffic specification for network-on-chip design |
US9535848B2 (en) | 2014-06-18 | 2017-01-03 | Netspeed Systems | Using cuckoo movement for improved cache coherency |
US10528682B2 (en) | 2014-09-04 | 2020-01-07 | Netspeed Systems | Automatic performance characterization of a network-on-chip (NOC) interconnect |
US9742630B2 (en) | 2014-09-22 | 2017-08-22 | Netspeed Systems | Configurable router for a network on chip (NoC) |
US9477280B1 (en) | 2014-09-24 | 2016-10-25 | Netspeed Systems | Specification for automatic power management of network-on-chip and system-on-chip |
US10042404B2 (en) | 2014-09-26 | 2018-08-07 | Netspeed Systems | Automatic generation of power management sequence in a SoC or NoC |
US9934347B2 (en) | 2014-10-01 | 2018-04-03 | Samsung Electronics Co., Ltd. | Integrated circuit and method of designing layout of integrated circuit |
US9571341B1 (en) | 2014-10-01 | 2017-02-14 | Netspeed Systems | Clock gating for system-on-chip elements |
US9355211B2 (en) * | 2014-10-10 | 2016-05-31 | Oracle International Corporation | Unified tool for automatic design constraints generation and verification |
US9529400B1 (en) | 2014-10-29 | 2016-12-27 | Netspeed Systems | Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements |
US9639644B1 (en) * | 2015-01-27 | 2017-05-02 | Cadence Design Systems, Inc. | Method and apparatus for master-clone optimization during circuit analysis |
CN104616557B (zh) * | 2015-01-30 | 2017-05-17 | 南车株洲电力机车有限公司 | 一种轨道车辆模拟电路生成方法、系统及控制方法、系统 |
US9660942B2 (en) | 2015-02-03 | 2017-05-23 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
US9444702B1 (en) | 2015-02-06 | 2016-09-13 | Netspeed Systems | System and method for visualization of NoC performance based on simulation output |
US9928204B2 (en) | 2015-02-12 | 2018-03-27 | Netspeed Systems, Inc. | Transaction expansion for NoC simulation and NoC design |
US9568970B1 (en) | 2015-02-12 | 2017-02-14 | Netspeed Systems, Inc. | Hardware and software enabled implementation of power profile management instructions in system on chip |
US10348563B2 (en) | 2015-02-18 | 2019-07-09 | Netspeed Systems, Inc. | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology |
US10050843B2 (en) | 2015-02-18 | 2018-08-14 | Netspeed Systems | Generation of network-on-chip layout based on user specified topological constraints |
US9864728B2 (en) | 2015-05-29 | 2018-01-09 | Netspeed Systems, Inc. | Automatic generation of physically aware aggregation/distribution networks |
US9825809B2 (en) | 2015-05-29 | 2017-11-21 | Netspeed Systems | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip |
US10218580B2 (en) | 2015-06-18 | 2019-02-26 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
US10318683B2 (en) | 2016-05-20 | 2019-06-11 | International Business Machines Corporation | Clock domain-independent abstracts |
US10073938B2 (en) * | 2016-06-29 | 2018-09-11 | International Business Machines Corporation | Integrated circuit design verification |
CN106126854B (zh) * | 2016-07-01 | 2019-06-25 | 合肥海本蓝科技有限公司 | 一种软硬件协同仿真交易器和仿真系统 |
US10452124B2 (en) | 2016-09-12 | 2019-10-22 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US10235485B1 (en) * | 2016-09-27 | 2019-03-19 | Altera Corporation | Partial reconfiguration debugging using hybrid models |
US9697314B1 (en) * | 2016-10-17 | 2017-07-04 | Synopsys, Inc. | Identifying and using slices in an integrated circuit (IC) design |
US10169507B2 (en) * | 2016-11-29 | 2019-01-01 | Taiwan Semiconductor Manufacturing Co., Ltd. | Variation-aware circuit simulation |
US20180159786A1 (en) | 2016-12-02 | 2018-06-07 | Netspeed Systems, Inc. | Interface virtualization and fast path for network on chip |
CN106610469A (zh) * | 2016-12-07 | 2017-05-03 | 吴海峰 | 一种交替循环翻转的测试数据压缩方法 |
US10248550B2 (en) * | 2016-12-16 | 2019-04-02 | Oracle International Corporation | Selecting a set of test configurations associated with a particular coverage strength using a constraint solver |
US10313269B2 (en) | 2016-12-26 | 2019-06-04 | Netspeed Systems, Inc. | System and method for network on chip construction through machine learning |
US10063496B2 (en) | 2017-01-10 | 2018-08-28 | Netspeed Systems Inc. | Buffer sizing of a NoC through machine learning |
US10084725B2 (en) | 2017-01-11 | 2018-09-25 | Netspeed Systems, Inc. | Extracting features from a NoC for machine learning construction |
US10469337B2 (en) | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10298485B2 (en) | 2017-02-06 | 2019-05-21 | Netspeed Systems, Inc. | Systems and methods for NoC construction |
US10282502B1 (en) * | 2017-03-07 | 2019-05-07 | Amazon Technologies, Inc. | Flexible constraint integrated circuit implementation runs |
CN109145262A (zh) * | 2017-06-15 | 2019-01-04 | 上海复旦微电子集团股份有限公司 | Fpga芯片描述文件的生成方法、装置、存储介质及电子设备 |
US11361124B1 (en) * | 2017-08-10 | 2022-06-14 | Ansys, Inc. | Generating a power profile by node sampling an IP block |
US10621299B1 (en) * | 2018-02-05 | 2020-04-14 | Xilinx, Inc. | Dynamic platform support in programmable integrated circuits |
US11144457B2 (en) | 2018-02-22 | 2021-10-12 | Netspeed Systems, Inc. | Enhanced page locality in network-on-chip (NoC) architectures |
US10983910B2 (en) | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
US10896476B2 (en) | 2018-02-22 | 2021-01-19 | Netspeed Systems, Inc. | Repository of integration description of hardware intellectual property for NoC construction and SoC integration |
US10547514B2 (en) | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
US11176302B2 (en) | 2018-02-23 | 2021-11-16 | Netspeed Systems, Inc. | System on chip (SoC) builder |
US11023377B2 (en) | 2018-02-23 | 2021-06-01 | Netspeed Systems, Inc. | Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA) |
US11022634B1 (en) * | 2019-04-11 | 2021-06-01 | Synopsys, Inc. | Rail block context generation for block-level rail voltage drop analysis |
US10860762B2 (en) | 2019-07-11 | 2020-12-08 | Intel Corpration | Subsystem-based SoC integration |
US10902169B1 (en) * | 2019-11-08 | 2021-01-26 | International Business Machines Corporation | Functional coverage enhancement in portable stimulus graphs |
CN110929467B (zh) * | 2019-11-19 | 2023-09-19 | 上海华力微电子有限公司 | Tech LEF文件验证方法及其验证系统 |
US11886789B1 (en) | 2021-07-07 | 2024-01-30 | Xilinx, Inc. | Block design containers for circuit design |
CN114328326B (zh) * | 2021-12-28 | 2022-08-26 | 湖南航天经济发展有限公司 | 总线矩阵端口可配置的微控制器及其内部数据传输方法 |
US11704461B1 (en) * | 2022-01-04 | 2023-07-18 | International Business Machines Corporation | Dynamic control of coverage by a verification testbench |
CN115952754B (zh) * | 2022-10-11 | 2023-11-24 | 北京云枢创新软件技术有限公司 | 用于生成标准单元目标显示结构的数据处理系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000063802A1 (en) * | 1999-04-21 | 2000-10-26 | Magma Design Automation, Inc. | Generalized theory of logical effort for look-up table based delay models |
Family Cites Families (13)
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 |
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 |
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 |
US5623684A (en) | 1994-05-17 | 1997-04-22 | Commquest Technologies, Inc. | Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing |
US5673199A (en) * | 1995-05-01 | 1997-09-30 | Hughes Electronics | Computer aided reuse tool |
US5663076A (en) * | 1995-08-08 | 1997-09-02 | Lsi Logic Corporation | Automating photolithography in the fabrication of integrated circuits |
US5815405A (en) * | 1996-03-12 | 1998-09-29 | Xilinx, Inc. | Method and apparatus for converting a programmable logic device representation of a circuit into a second representation of the circuit |
US6058263A (en) | 1996-06-03 | 2000-05-02 | Microsoft Corporation | Interface hardware design using internal and external interfaces |
US5930762A (en) | 1996-09-24 | 1999-07-27 | Rco Software Limited | Computer aided risk management in multiple-parameter physical systems |
US6338158B1 (en) * | 1997-10-31 | 2002-01-08 | Vlsi Technology, Inc. | Custom IC hardware modeling using standard ICs for use in IC design validation |
US6038381A (en) * | 1997-11-25 | 2000-03-14 | Synopsys, Inc. | Method and system for determining a signal that controls the application of operands to a circuit-implemented function for power savings |
US6175948B1 (en) * | 1998-02-05 | 2001-01-16 | Motorola, Inc. | Method and apparatus for a waveform compiler |
JP2002517042A (ja) * | 1998-05-29 | 2002-06-11 | カデンス デザイン システムズ, インコーポレイテッド | Ipブロックを選択する方法および装置 |
-
2001
- 2001-03-19 US US09/812,068 patent/US6968514B2/en not_active Expired - Lifetime
-
2002
- 2002-03-18 CN CNB028091019A patent/CN100507923C/zh not_active Expired - Fee Related
- 2002-03-18 JP JP2002574547A patent/JP2004531056A/ja active Pending
- 2002-03-18 WO PCT/US2002/008310 patent/WO2002075611A2/en active Application Filing
- 2002-03-18 EP EP02725232A patent/EP1370993A4/en not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000063802A1 (en) * | 1999-04-21 | 2000-10-26 | Magma Design Automation, Inc. | Generalized theory of logical effort for look-up table based delay models |
Non-Patent Citations (2)
Title |
---|
THE CASE FOR A CONFIGURE-AND-EXECUTEPARADIGM. VAHID,F,ET,AL.7TH INTERNATIONAL WORKSHOP ON HARDWARE/SOFTWARE CODESIGN,ROME,IT. 1999 |
THE CASE FOR A CONFIGURE-AND-EXECUTEPARADIGM. VAHID,F,ET,AL.7TH INTERNATIONAL WORKSHOP ON HARDWARE/SOFTWARE CODESIGN,ROME,IT. 1999 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI731097B (zh) * | 2016-06-07 | 2021-06-21 | 美商克萊譚克公司 | 用於半導體器件之檢驗及計量之方法及裝置 |
Also Published As
Publication number | Publication date |
---|---|
US20020073380A1 (en) | 2002-06-13 |
JP2004531056A (ja) | 2004-10-07 |
EP1370993A2 (en) | 2003-12-17 |
US6968514B2 (en) | 2005-11-22 |
WO2002075611A2 (en) | 2002-09-26 |
CN1505790A (zh) | 2004-06-16 |
EP1370993A4 (en) | 2006-08-09 |
WO2002075611A3 (en) | 2002-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100507923C (zh) | 带有可编程组件的基于块的设计方法 | |
CN1331079C (zh) | 基于块的设计方法 | |
Birnbaum et al. | How VSIA answers the SOC dilemma | |
CN110785761A (zh) | 存在时钟动态重编程时仿真时间线的压缩方法 | |
EP1129483A1 (de) | Dram-zellenanordnung und verfahren zu deren herstellung | |
Liu et al. | Characterization and optimization of behavioral hardware accelerators in heterogeneous mpsocs | |
Curtis | Silicon compilation: The future is now: Silicon compilers liberate the integrated circuit design process | |
Shrimal et al. | Specific Criteria for System Design and Role and Importance of Hardware Software Co-design Process | |
Gajski et al. | Specification and design of embedded software/hardware systems | |
Ghatak | Advanced Model of Software Testing Management | |
Hamidi et al. | Meeting Functional Safety Standards on Algorithm Implementation for FPGA and ASIC in a Dynamic Automotive Environment | |
AGARWAL | TEST SCHEDULING AND TEST ARCHITECTURE OPTIMIZATION OF 3D STACKED-ICS UNDER VARIOUS HARDWARE AND POWER CONSTRAINTS | |
Dick | Cost modelling and concurrent engineering for testable design | |
Zejda | Bounding of switching activity in logic circuits | |
Center | System Design Frontier | |
Chang et al. | Function-Architecture Co-Design | |
Olcoz et al. | Reusing IPS to Implement a Sparc® Soc |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20090701 Termination date: 20150318 |
|
EXPY | Termination of patent right or utility model |