>
首页 » 技术文章 » 可视化增强技术优化芯片后期验证和调试

可视化增强技术优化芯片后期验证和调试

作者:Novas软件公司研发部副总裁 Yu-Chin Hsu  时间:2006-12-14 16:01  来源:本站原创

新的工具、改良的设计方法学和更高层的抽象程度正在日益缩短芯片的设计和验证时间。然而,从获得第一块测试芯片到实现量产所需要的时间却在不断变长。同时,在回归仿真、模拟和FPGA原型中找到问题根源的难度也在增加。在目前的SoC设计中,电路规模、芯片复杂程度和软件成分的不断增加使得验证和调试硅芯片原型、产生测试程序,以及实现大规模量产所需的各项工作越来越难于完成。
全芯片调试和流片后硅片应用调试耗时增加的关键原因在于难以观察信号值。工程师在进行有效调试时需要随着时间的变化来观察和记录信号值,这样才能研究进而理解芯片行为。但是,观察信号值会对设计和验证产生影响。转储(dump)和记录那些必须被观察的重要信号需要花费很长的时间,因此导致了仿真和模拟时间的延长。为了在芯片实际工作时观察这些信号,必须要有额外的特殊片上硬件,通常称之为“可调试性设计(DFD)”逻辑。这一硬件代价限制了可以被观察到的信号数量。另外,仿真器、虚拟原型和实际的硅片产生的是基于网表的比特值,而用户通常更易于理解更高层次,如RTL(寄存器传输)级的抽象。因此,在调试过程中,使用那些有限的、低层次的信号会妨碍工程师对设计行为的全面理解,延长设计、验证和制造周期。
工程师一方面要扩大设计的可观察性,另一方面又要减少可观察性对设计和验证带来的影响,可视化增强技术便提供了一个在两者的权衡中更好地优化可视性的方法。它的挑战在于找到一个合适的方法,在最小化观察影响的同时获得完全的可视化,或者说获得调试并解决问题所需的足够的可视化。
  
可视化增强
研究表明,在最小化观察影响的同时优化对设计的调试能力时,可以依据以下三个基本步骤:首先,对设计进行分析,确定哪些信号需要完全可视;然后扩展那些重要信号的有限数据,来获得设计中其余的信号值;最后,将信号转储处的低层抽象与RTL描述相结合。
对RTL描述或网表文件的形式分析可以为工程师提供重要信号的列表。在时域中对这些信号的值进行观察就能够获得设计指定部分的完全可视化。这些重要信号的值一旦被获取到,通过分析就可以得到其它没有被捕获的信号值,这样,信号值随时间变化的完全集合也随之获得,可在调试过程中加以利用。
重要信号的分析和数据扩展对于全芯片的RTL仿真或那些对网表文件非常熟悉的设计工程师来说是非常适用的。但是,后期调试的很多挑战来自于如何理解实际芯片的工作方式或是理解整个网表,这些对绝大多数的工程师来说是很陌生的。将门级网表信号映射回RTL级能够减轻工程师的负担,因为他们对RTL级的逻辑表达方式非常熟悉,而且,RTL抽象级能够更好地帮助他们理解芯片的行为。
可视化分析
可视化分析技术会对断言、RTL级或网表级的HDL代码进行分析,来决定调试时所需的最少的重要信号数量。这项技术减少了用于完全可视化所需的数据数量,显著降低了输出文件的大小和用于捕获数据的其他开支。因此,验证周期得到了大幅度缩短。
为了确定重要信号,可视化分析依赖于从HDL描述中推断出来的逻辑方程的全集合。对于每一个功能模块,可视化技术递归式的对逻辑网表进行详细研究,提取出主要输入、寄存器输出、内存输出和非综合模块的信号。然后,这些信号被写入文件,在验证过程中可以使用这些文件来识别信号。
可视化分析可以被应用在三个方面:断言、RTL/网表和芯片调试。在调试断言错误时,可视化技术会分析设计和经过选择的断言来提取用于调试每个断言的最小设计信号子集。通过转储这些信号,并在仿真后模拟该断言,可以缩减仿真时的开销。由于该过程可以并行,因此整个周期都被缩短。
对于全芯片仿真来说,可视化技术会分析RTL或网表的代码来找出存储单元、内存单元和主要输入。在设计中需要转储的只是重要信号,而不是所有信号。完全的可视化可以利用数据扩展技术来实现。在一个典型设计中,重要信号的数量要远远少于信号的总数量。如果要对所有信号进行转储,可能需要花费整晚的时间,而可视化分析可以将仿真时间减少到几个小时。
实际的标准测试结果表示,将可视化分析技术应用于回归仿真时,用户需要耗费的仿真时间大大减少,同时他们可以获得具有完全可视化效果的仿真转储文件,如表1所示。
这项技术也能够被用在现场硅测试中。在这种应用中,可视化分析技术能够用于确定需要可视化的设计部分所需的最小信号集,这些信息能够为设备逻辑的插入提供有益的指导作用。
数据扩展
如果只能获得器件的数据子集,那么很难完全理解器件的异常行为。数据扩展技术能够利用设计功能来计算缺失数据,当缺失信号值被计算出来以后,就可以利用依赖于信号信息的调试技术来自动追踪那些异常行为的产生原因。
给定了寄存器和主要输入的值之后,数据扩展技术能够在寄存器之间利用线性排序算法对组合逻辑进行分类,然后运用周期性的模拟引擎(不考虑逻辑延时和连线延时)来计算这些信号值。只有那些要用于当前操作和显示的信号值才会被计算。为此,波形数据库和数据显示中引入了一个新的值-NC(没有被计算)。当一个信号的值没有被转储或没有经过扩展时,NC值将会被存储和显示。计算得到的值会通过数据代理发送到用户正在开发设计的应用窗口中。经过扩展的信号值会用不同的颜色显示以与转储信号相区别。
几个实际的设计范例结果如表2所示,它们可以验证重要信号分析和数据扩展技术的有效性。所有的范例均通过数据扩展技术获得了完全可视化的效果。
抽象相关性
由综合工具产生的门级设计描述通常很难被理解。为了方便地理解门级逻辑的意义,就非常需要有将其和RTL级、甚至系统级描述相关联的能力。因为经过了综合和优化,因此并不是每一个门单元的节点都在RTL电路中有相关信号。但是,定位特定节点的相关区域也是非常有用的。假设在通常的应用中,寄存器有一对一的对应关系。这样,就可以尝试映射寄存器,进而利用这些信息来定位非寄存器节点的对应关系。
新的抽象相关性技术利用结构化的从属图表和近似图表匹配技术很好地解决了这个问题。虽然在综合过程中引入优化带来了更多的不确定性,但在寄存器和重要信号匹配完毕后,内部节点的匹配也可以通过定位来实现。在工程师对设计进行调试时,通常会通过观察寄存器的扇入锥和扇出锥来定位相关区域,利用结构化从属图表进行映射的技术便模拟了这一点。
为了评估门级到RTL级相关性技术的有效性,文中采用了已经被综合成门级电路的RTL设计来进行标准测试,包括层次化设计和扁平设计。用于测试的层次化设计中共有990个门级电路信号,其中207个信号在RTL设计中有相应信号,大多数为寄存器,尽管名字可能有些不同。其余的信号在RTL设计中没有直接对应的实体,但可用相关性算法来确定如何产生这些信号。其中有684个信号被映射为RTL设计中的单条语句,54个信号由2~3条语句产生,21个信号由3条以上的语句产生。而在扁平设计中,由于搜索范围比较大,因此算法能够将内部节点映射为更多的语句。

可视化增强技术的应用
全芯片仿真
全芯片仿真往往需要在性能和调试难易度之间进行折衷。如果想要更好地理解芯片的工作行为,更快地进行调试,就需要尽可能多地转储信号数据。但是,大量的转储数据会延长仿真时间,并产生庞大的转储文件。因此,很多验证团队通常避免信号转储,而是倾向于反复、冗长的仿真;信号转储只是用在有错误发生的时候。这种重复迭代的仿真方法不容易被预测,而且非常影响设计进度。
如果有方法能够将转储文件限制为一个容量较小、但包含了重要信号的子集,那么验证团队就可以在尽可能减小性能影响的同时进行全芯片的功能仿真调试。这个方法将依赖于选择最少的转储信号数量,同时保证提供绝大多数信号的可视性。转储信号通常被限制为寄存器。如果希望尽可能的减少观察特定模块的寄存器,那么就需要非常谨慎地选择这些寄存器。可视化分析能够帮助工程师选择出转储文件中应该包含的寄存器,用以确保重要信号的可视性。


图1 利用可视化增强技术获得高效的仿真调试


在进行仿真之前,仿真器必须被设置为仅需转储寄存器列表。当仿真结束后,应利用数据扩展技术对转储数据进行处理。数据扩展技术周期性地根据已提供的数据来计算组合节点值,而不考虑任何延时。在调试过程中,随着数据不断被处理,数据扩展技术被自动调用,就好像这些数据已经被直接转储一样。
利用寄存器限制转储技术,当在仿真结果中发现错误后,验证团队能够立即开始调试,而不需要在长时间的重新仿真后转储所有数据。这个方法加上数据扩展技术能够获得更高的、甚至是完全的可视化,同时,它对仿真性能的影响很小。
标准测试表明,在回归仿真中应用可视化增强技术转储部分信号能大大节省时间。如果测试通过,那么转储文件可以被删除;如果发现有错误,那么工程师可以马上开始调试。该方法无需选择要转储的信号或模块,而且无需使用第二次仿真来转储全部或部分的数据,如图1所示。
图1的第一种方法没有使用可视化增强技术,所以转储部分信号和重复仿真所需的时间无法预测。第二种方法没有使用可视化增强技术,转储所有信号所需要的仿真时间很长,但还是可以预测的。第三种方法利用了可视化增强技术,和前两种方法相比,增加的仿真时间为25%,但用户仅利用一次仿真就可以进行快速调试,其仿真转储文件也比全信号转储文件小85%。
对一个5000万等效门/RTL设计进行的仿真显示,可视化技术增加的一次仿真时间和以前相比只有11%,仿真转储文件的大小减少了75%。在传统方法学的基础上,该技术能够使工程师更快地开始调试。
模拟和虚拟原型
由于观察内部信号的不方便和对门级设计描述的不熟悉,模拟和FPGA虚拟原型给设计可视化带来了巨大的挑战。由于这些验证系统都是基于硬件的,工程师必须进行反复的综合和编译才能配置或插入调试逻辑,如内部逻辑分析仪,然后重新执行测试。为了转储寄存器而建立模拟系统会对性能产生影响,同时,对具有嵌入式逻辑分析仪的FPGA虚拟原型进行编译也会影响调试时间。尽管转储寄存器或插入逻辑分析仪可以观察用户需要的信号,但在通常情况下,这些技术不能包括需要用于调试特定问题的那些信号。因此,这很有可能导致不可预测的多次反复编译,而且仍然不能提供在所需要的RTL描述级上对所有信号的可视化。
数据扩展和抽象相关性技术的结合能够实现调试工作的自动化,并在RTL代码中发现问题。有了数据存取机制,在具有数据访问机制的模拟系统和FPGA虚拟原型中,抽象关联技术能够处理来自寄存器的门级信号数据,然后将其映射到RTL描述中的相应部分。这些被映射的数据以数据扩展的方式被处理,以使RTL组合值可被观察。这两项技术的结合应用,使得模拟设计中的绝大多数内部信号可被观察。一个提高模拟性能的可选步骤是使用可视化分析来降低每次模拟转储的寄存器数。
这一高可视化的设计流程允许工程师使用与RTL仿真相同的调试环境进行模拟,大大缩短了学习曲线。实际应用表明,采用数据扩展和抽象相关性技术能降低1/4的调试时间。如果没有引入新技术,那么找到一个特殊问题的出现根源可能要花上8个小时;而可视化增强技术能将该时间降低到2个小时或更少。在通常的SoC模拟环境中,类似这样的工作每周会发生好几次。
现场硅验证
在目标系统或在模拟目标系统的验证板上验证一个新的芯片通常被称做现场验证。由于内部信号数据的可视性有限,而且从系统板上访问数据也较困难,因此,这种形式的验证对调试提出了极大的挑战。比如,出现在外部引脚上的信号可用诸如逻辑分析仪等仪器来观察,但是却无法根据这一信息来推测器件的内部状态。由于仅包含有限的可视性,因此,在硅片上发现和分析问题将会非常乏味且极耗时间。对于工程师来说,能够更好地理解芯片行为的方法是需要了解内部状态机的状态、数据和状态寄存器,这就需要一个能提高内部信号数据可视化的硅调试方法。
用于现场验证的可视化增强技术是新兴出现的DFD技术的一个子集,它能够增加芯片工作时的可视性。这些技术需要提前规划,在芯片中添加逻辑结构,用一种类似连上逻辑分析仪探头的方式使内部信号尽可能地被观察到,通过调节扫描链来改善芯片调试。把器件与系统相连后,将扫描链连接到测试控制器中就能使工程师将信号值转移到测试输出端口以供观察。
在设计过程中,可视化分析技术能够协助选择需要包含在DFD逻辑中的信号。为了尽可能地减少对芯片面积的影响,可视化分析能够确定必须包含在扫描链中的寄存器,以观察通过数据扩展所得到的组合区域。
通过DFD逻辑获得的数据能够提供指定信号集的可视性,利用数据扩展技术可以进一步利用这些数据。数据扩展能够对提供的数据进行处理,来计算其它节点的值。这些被扩展的数据可以被调试系统,如Novas Verdi自动调试系统所处理,然后用高级调试技术,如自动信号追踪和抽象信号交互图技术来进行分析。这种芯片调试方法提供了一个以设计者为中心的环境来快速定位问题。

结语
设计、验证和调试是困难的。有限的可观察性以及对低抽象级描述的不熟悉使工程师难于全面地理解设计行为,从而延长了设计周期,推迟了产品上市时间。在芯片验证、仿真和全芯片模拟的过程中,为了调试复杂问题,可视化增强技术能够方便地获得所需要的足够信号信息。它能够通过对设计的自动分析来确定哪些是重要信号,扩展没有被捕获的信号,并将低级别描述中的信号与RTL级描述中的信号相关联,这些都有助于对设计的全面理解,从而大大减少调试时间。■

相关推荐

PID调试步骤

2008-12-17

力科示波器的独有测量功能

2008-12-15

为粗心买单

调试  短路  2008-12-03

32位ARM嵌入式处理器的调试技术

嵌入式  调试  处理器  JTAG Nexus  ARM  2008-08-22

可视化增强技术优化芯片后期验证和调试

在线研讨会
焦点