设计质量及其对设计收敛的影响

时间:2010-11-25

     SoC(系统单芯片)设计的成本持续飞涨,市场窗口不断缩减,而设计的复杂性却一直以指数级增长。这些挑战只是SoC设计者要面对的问题之一。为防止出现大的麻烦,设计者必须确保SoC实现设计收敛,包括满足某些重要目标,如性能、功耗与面积。然而,设计收敛的目标通常会互相冲突。设计者必须不断在各个因素之间作出折中,确保设计处于终用户应用的需求范围内。

  一个典型SoC设计开始于一个RTL(寄存器传输级)描述,它表述了用户的意图,以及一组驱动实现的设计约束。设计团队首先要验证RTL,通过仿真与形式验证,查看功能意图的正确性。然后,设计就进入了一系列实现步骤,包括综合与布局布线,终生成一个GDSII(图形设计系统II)布局,用于硅片的制造。新设计以及相关约束的质量对设计者获得收敛的能力有很大影响。不过,您可以在RTL开始时以及整个实现过程中采用一系列设计质量量度,即在一个RTL至GDSII实现流的一体化五个阶段中,关注一些质量标准,从而减少这个过程的困难(图1)。这个概念还可以扩展到实现的其它阶段,或将其用于其它流程,包括综合前的RTL质量;综合后、扫描后的网表质量;时序后的网表质量;布局后的网表质量;或布线后的网表质量等。


  综合前RTL质量

  先天不良的SoC设计通常无法获得收敛。设计在RTL阶段的质量标准对设计成功收敛与可用硅片起着决定性的作用。一旦完成了设计的综合,就要在很大程度上冻结设计意图,因此限制了修正RTL中内在设计质量问题的灵活性。

  现代SoC设计通常是针对多个终市场,以平摊昂贵的设计成本。相同设计可以有多个变型,通过更新与升级存活多代。这种情况尤多见于消费电子与汽车芯片中,制造商80%以上的设计实现是采用重用方法。未来几代的设计可以重用为现有设计创建的RTL,因此上市寿命就要长于现有设计。另外,还必须考虑商用第三方IP(智能产权),如处理器、数字信号处理块,以及总线结构,还有接口IP,包括以太网、USB(通用串行总线),以及PCI(外设部件互连),SoC团队通常将此IP用在RTL中。

  鉴于上述原因,必须确保进入综合的RTL与约束的质量。设计团队一般采用仿真与形式验证,专注于功能的正确性,但在实现的可行性以及RTL整体质量方面下一些功夫,也可能对加快设计收敛大有帮助。设计团队可以通过对RTL与设计约束的一系列分析,实现这种质量标准。

  结构与连接的完整性

  RTL linTIng可以清除语法与语义问题,确保与代码标准的符合性。不过,RTL设计者应在此早期阶段设法处理那些更严重的结构与连接问题。如果这些问题留置,则可能会在以后带来更加严重的设计收敛问题。这些问题的例子包括触发器之间过高的逻辑电平(图2)、组合循环、非有意锁存、顺序块的阻塞分配、循环终止条件中的变量或非常量、敏感列表中的异步复位丢失、没有三态的多重驱动网表、无驱动网表与端口,以及一个赋值的左右侧不匹配等。尽管你可以在综合阶段或实现的后段来检查和改正一些或全部问题,但如能在任何工作进入实现以前作修改,效率会更高。


  时钟与复位

  一个典型的SoC都会包含不同来源的异质IP。于是,一只芯片上异步时钟域的数量就急剧增加。一只芯片可能有20个以上的时钟域。必须确保这些时钟与复位的正确设计。当数据信号要跨越异步时钟域时,必须对它们作同步,以防止出现亚稳态(图3)。时钟同步器有多种类型,从多触发器同步器到一些更奇异的方法,如带握手的FIFO(先入先出)缓冲器。重要的是防止数据损失以及同步后信号的再会聚,以确保可靠的性能。必须将那些已置为无效的复位与时钟域作同步,即使它们是异步的。


  不仅应确保同步器正确放在了交叉位置,而且还要确保正确地实现了协议。例如,FIFO不应有上溢(oveRFlow)或下溢(underflow),并且必须在一个握手机制中的请求与响应之间,实现正确的顺序。功能仿真也许并不能检测出时钟域的交叉问题,除非验证工程师能为每种交叉创建专门的测试平台情景,这对有数千个此类交叉的设计来说是一个令人生畏的工作。必须采用结构分析与形式验证技术,对时钟域交叉作详尽的分析与验证。

  降低功耗

  功耗已经成为设计收敛的前沿问题,原因有多种,包括电池寿命、散热成本、可靠性,以及能源效率等。研究表明,一个设计功耗的80%以上决定因素在进入综合的时间就出现了。因此,必须在设计流的早期解决电源管理问题,可以采用结构技术,如多电压域、多电源域以及动态电压频率缩放,还有RTL技术,如时钟与数据门控。设计者必须在开始时*估设计的功耗,并根据设计的功率目标,有选择地采用这些技术。

  电压与电源域为设计收敛增加了新的挑战。在电压域中,关键是当信号从一种电压域跨越到另一个电压域时,要插入电平转换器。同样,对于那些在不使用时可能关断的电源域,必须放置隔离单元,以确保无供电的输出不会悬空。这些悬空信号可能导致功能错误,或对地的高泄漏路径。另外,还必须保证隔离单元的使能逻辑处于永远供电的域中。有些设计者是在RTL中插入电平转换器与隔离逻辑,还有一些设计者是在CPF(公共电源格式)或UPF(统一电源格式)中获取电源意图,再通过下游的实现工具作自动插入。无论是哪种情况,设计者都必须确保在每个这类交叉处都放置了电平转换器与隔离逻辑单元。

  谨慎使用情况下,时钟门控可以是一种有效的降低功耗技术。大多数综合工具可以自动在RTL中的使能时钟上插入门控。不过,并非所有时钟门都能节电,尤其当寄存器(如触发器)几乎总处于使能状态,或者设计中只有少量门控寄存器时。这些情况下,增加门控逻辑消耗的能量要大于时钟门控所节省的能量。过多的时钟门控可能导致时序收敛问题,以及布线拥塞。应有选择地将时钟门控用于对电源影响的地方。

  对时钟门控的RTL分析也有多方面的辅助作用。在RTL中,可以辨别出全局时钟门控信号,它可以门控整个设计或大型寄存器块的时钟。对RTL的检查还可以对明确的时钟使能作出分析和排定优先次序。RTL设计者可根据其节能潜力,定义这些使能,帮助减少那些节能成效很低或无功的使能。电源管理设计者还可以发现RTL设计者可能忽略的那些新的或隐含的时钟门控机会。另外,电源管理还可以针对智能门控时钟综合的实现,提出一些指导意见。

  RTL设计者有各种时钟门控机会(图4)。电源设计者可以做类似的分析,以判别数据门控的机会,这时是一连串组合逻辑驱动一个使能寄存器。如将施加给端子寄存器的同一个使能用于组合逻辑的门控,可以消除当寄存器被禁用时,组合逻辑转换所带来的能源浪费。例如,一个N位乘法器输入数据位的到达时间是有区别的,适合作为数据门控的候选者。即使结果一直没有被使用,乘法器也不断做乘法,直到两个数据输入的所有位均已到达。对于这种数据路径密集型设计(数字信号处理中经常采用),数据门控可能是一种有效的技术。


  可测试的设计

  设计对于固定型(stuck-at )故障模式和全速(at-speed)故障模式都必须有高度的测试覆盖,尤其是对消费电子产品,它必须快速地实现几无缺陷的量产硅片。过去,设计团队是在综合或更晚阶段作扫描链的拼接(sTItch),以及测试覆盖,然后使用ATPG(自动测试类型生成)工具,*估测试覆盖。不过,在RTL上可以探测与校正大多数可测试性问题,这样设计终将能满足测试覆盖的目标。

  例如,获得高stuck-at故障覆盖的关键是,确保设计在扫描模式下的完全可控与可观测。然而,RTL中的高stuck-at故障覆盖会遇到很多障碍,包括那些看不到输入以及输出不可控的不可扫描触发器。内部生成控制信号的设计是出现这种情况的常见原因,如时钟或异步设置/清除。不透明的锁存是另一重要原因,因为观测不到它们的输入,并且其输出也是不可控的。大型存储器与模拟、混合信号块都有同样的麻烦,即无法观测输入,输出不可控。三态的使能端是不能观测的。另外,组合的反馈回路也阻碍了可测试性,而在获取模式下的测试模式值也会限制可控性。

  即使有RTL设计者的努力,设计中的某些部分仍可能不可观测和不可控制,可能要插入额外的测试点。对RTL的测试覆盖分析可能有助于确定在哪里布放额外测试点,以及它们对测试覆盖的终影响。例如,在一个设计中,增加12个测试点可将测试覆盖从不到94%增加到98%以上(图5)。如果你完全理解了设计意图,则在实现的后期阶段为RTL增加测试点更加简单。


  在深亚微米设计中(90 nm及以下节点),设计者担心的是在普通时钟速度下可能出现的转换故障。stuck-at故障测试一般使用慢的测试时钟,它检测不到转换故障。设计者必须在系统时钟是测试时钟的数倍时做at-speed测试。这个步骤为时序收敛更增加了一层复杂性。at-speed测试也会带来功能收敛的挑战,如当多个异步时钟域共享同一个测试时钟时所出现的问题,它可能影响at-speed的测试覆盖。因此,关键是*估RTL的at-speed测试覆盖,修正那些潜在的功能与时序收敛问题。

  DFT(可测试性设计)为IP重用带来了独特的挑战。在前一个设计中满足测试覆盖目标的IP,对当前设计却可能失败。例如,如果IP的某些输入端在当前设计中被固定接为常量,则IP的某些部分就可能成为不可控的。这个问题会影响SoC的测试覆盖。因此,在块/IP级和SoC级都必须做测试覆盖的分析。

  设计约束

  设计约束是设计意图中的一个关键部分。它们获取设计者对实现的性能、功率以及面积的要求。在综合中,约束质量的重要性等同于RTL质量。在这个早期阶段,设计者通常会手工为时钟频率、输入与输出延迟、工作模式以及例外(虚假路径与多周期路径)等定义约束。由于这个步骤是实现的开始点,因此要满足设计收敛要求,关键是约束的完整与正确。

  如果仔细地检查了综合记录,可能捕捉到综合期间的某些约束问题。例如,当设计复用一个时钟时,你可能发现缺少对时钟或模式的约束(图6)。还有可能出现其它约束,如输入与输出延迟以一个不正确的时钟为基准,多个模式约束捆绑到相同了节点而与常量值冲突,或者在异步时钟域的交叉点缺失时序例外等。


  不过,综合或静态时序分析也可能捕捉不到设计约束中更严重的问题。这些问题通常涉及那些对综合与静态时序分析的简单断言;因此它们一直无法检测。也许到终芯片集成时也发现不了这类问题,糟的情况是到硅片时也没发现。

  例如,一个生成的时钟并非来自所声明的源时钟,而根据时钟分频电路中是否有反相器及所处位置,一个生成时钟的波形不同于隐指的波形。其它例子包括缺少时钟延迟或有不确定性,缺少对初始输入或输出的延迟约束,块级约束要比芯片级要求更加宽松,沿某个蛇行路径的时序预算不正确或不够,或者多周期路径采用了不正确的复用器。

  RTL设计中对设计约束的分析可以帮助避免这些问题。设计者可以通过一种构建纠错(correct by construcTIon)方式,用这个分析生成时钟、输入与输出约束,可消除很多被忽略的错误。例如,可以用时钟域交叉分析以及异步控制信号的知识,生成时序例外。在RTL上,通过对完整RTL设计背景中约束集的比较,解决块级约束与芯片级约束之间的不一致性。

  扫描后网表质量

  在综合后阶段,设计已做完了逻辑综合、资源共享、布尔优化,以及扫描链插入。假设综合中的RTL与约束均是高质量,则获得的网表应有很好的形式。然而,如果设计改动很大,则约束也可能变化。可以采用某些措施,确保综合后、扫描后网表与约束的质量。

  在这个阶段,设计上可以控制电源与电压域,以管理功耗。现在必须对这些域做彻底的验证,确保电平转换器与隔离逻辑的正确插入。即使这些电平转换器和隔离逻辑的插入工作是做在综合或扫描链插入以前,但设计可能仍需要刷新。有这样一个例子,扫描路径中丢失了一只隔离单元,原因是DFT设计者在电源域实现后插入了扫描逻辑(图7)。在扫描路径中增加隔离单元就能修正一个潜在的功能故障,或一个对地的高泄漏路径。


  这类电源域故障通常还出现在设计者忘记了综合脚本中要求为“不可动”( don’t-touch)的约束。这种遗漏会在综合期间产生缓冲器优化,从而去掉电平转换器或隔离单元。

  SoC设计现在既规模庞大而又复杂,其实现可能要求层次化。设计者一般在块级做综合,而芯片集成则在网表级完成。此时,必须将块级综合约束合并成为芯片级约束。约束的手工合并易于产生错误,从而获得一组不正确的芯片级约束,不利于以后的时序收敛。在这个阶段上,可以使用约束一致性与正确性检查。采用块级约束以及全芯片网表可以自动合并约束,避免错误。

  如果这个阶段约束已改变,重要的是建立与综合原始约束的等效。正如可以对从RTL到网表的设计阶段做逻辑等效检查一样,现在还可以在RTL与网表约束之间建立等效。设计者可以在自己的流程中采用约束等效,以确保设计约束的完整性与终的设计收敛。

  如果实现的流程是分层次的,你可能希望在网表级将芯片级测试逻辑拼接起来。这些情况下,要确保全局测试时钟与测试模式信号均能传播到每个块。应作质量检查,从而当为一个初始输入或芯片一个内部节点设定驱动条件时,确保所需要的值能够传播到子块上的管脚。同样,设计者可以通过连接检查,确保在一个可选灵敏条件的设计中,两个用户设定节点之间存在一条路径(图8)。例如,假设Block 1中的Pin A未连接到一个初始输出,而Block 2的Pin B是可观测的。通过在Pin A与Pin B之间建立一条路径,就可以确保Pin A也是可观测的。


  时序后网表

  在时序后阶段,必须确保设计满足时序要求,并从静态时序分析开始探索时序违反问题。这是另一个关键阶段。如果设计的约束过多,或有不正确的约束,则其时序收敛可能成为一个挑战。其它问题的根源可能是结构性缺陷,如组合循环、过高逻辑电平,或者块与IP存在着无寄存器输出,所有这些都应在设计的较早期检测到。

  时序例外可划分两大类:虚假路径以及多周期路径。两个寄存器之间的虚假路径是指在设计中不能感知的路径,或与时序收敛无关的路径。另一方面,多周期路径可能要花多个时钟周期才能完成。除非在设计约束中认出了虚假路径与多周期路径,否则静态时序分析工具可确保所有路径均为合适且单周期。

  一个不正确的时序例外可能导致硅片中的一个关键性的时序故障。另一方面,每个无法识别的时序例外都是多余的,会造成时序收敛预算的浪费。因此,寻找正确的时序例外是一种精密的折中工作。至少必须对使用的所有时序例外作形式验证,确保它们的有效性。另一个可能加快时序收敛的步骤是寻找更多的时序例外,尤其是那些违反时序的路径。应将每个这种路径作为可能的虚假路径或多周期路径候选者,进行形式验证;如果它确定是虚假的或多路径的,则应将其加到用于静态时序分析的时序例外表中。考虑对一个多媒体设计中两个时序关键块的时序分析结果(表1)。当从开始未能满足时序的路径中找到额外的时序例外时,就大大改进了时序结果。而对门数量以及面积的影响。


  布局后网表的分析

  在布局后分析阶段,设计已进入了物理实现,做了物理综合、布局以及时钟树综合。应该对现已完全布局好的网表再作质量检查。现在,你对电源、面积、时序与测试覆盖有了一个更准确的*估,可以将这个*估与RTL获得的*估结果作比较,以确定出可能有背离的那些块。

  在这个阶段还可以做更多的网表质量检查,如悬浮脚或网络;接至常量上的时钟、片选、使能或复位脚;未使用的或禁用的单元;网表中无驱动或多重驱动的网络;过载单元;无负载单元;浪费的面积和电源;连接到特定网络的管脚,如三态、时钟与复位;多于元件数的扫描链网络;以及高泄漏路径或蛇行路径。另外还应检查那些连接到相同网络的管脚是否有相同的连接类。

  在时钟树综合以及时钟网络确定以前,应在设计约束中为工具指定时钟延迟与时钟转换速率的值。不过,假设是在这个设计阶段插入时钟树,则现在正是计算和施加延迟与转换的时间。此时,还必须刷新和验证对两个关键区域的设计约束。首先,使用仅对设计初始输入的转换时间代替每个触发器的假设转换时间。其次,将时钟延迟设为传播,而不是设为一个用户定义的网络延迟。

  布线后网表的分析

  布线后网表分析是设计实现的阶段,设计团队仍要在这里花费大量时间和精力,实现时序、信号完整性、可制造性、电源完整性,以及一系列物理效能。假设你遵循了较早阶段的质量标准,设计与约束均应有不错的高质量,应专注于这些物理效能。另外,还应将大部分精力放在布局与物理验证、处理工艺的变动以及其它制造问题上。这个阶段还将涉及对功率、时序、可测试性以及片芯尺寸的终签核;因此,重复早期阶段的质量标准,将其作为终签核的一部分。

  简言之,一个设计及其相关约束的质量对设计收敛有很大的影响。不过,你可以通过一系列质量标准,提高设计收敛的机会。另外,重要的是在设计的早期阶段采用这些大多数标准,尤其是在RTL上,此时能地理解用户的意图。对于设计质量来说,越到实现流程中的后期,对设计收敛的影响越小。如果从一开始就获得了设计目标与质量目标,那么在实现期间只需要坚持到底就行了。


  
上一篇:称重传感器基础知识
下一篇:计算机辅助制造CAM软件在数控加工中的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料