| ||
尽管PSS还未正式推出,而几家EDA公司早已经摩拳擦掌推出了各自的PSS工具,接下来我们看看市场上这些工具大致的特性吧。
MentorGraphics's inFact
PSS中的基于图形验证的场景描述方式就是从PSWG中MentorGraphics inFact 测试平台自动化工具得来的。inFact是一个基于图形的验证工具,利用它可以产生和引导测试激励,从而保证更好的测试复用性和覆盖率收敛。inFact可以替代或者集成已有的BFM(bus function model),使用一种特殊的图形算法,从而可以更快的完成覆盖率,减少没有覆盖的边界场景。下面的几幅图可以说明,利用inFact工具,可以替代原有的sequence,或者控制原有的sequence,或者将这两者组合,最终由inFact实现基于图形的验证方式。
inFact IDE(interactive development environment)是基于可扩展的Eclipse开发平台,我们在之前SV/UVM开发时介绍的工具套件DVE也是基于此平台。inFact通过自定义的多个组件可以构成项目文件、组织目录、编辑和创建新的文件。考虑到原有验证环境如何与inFact集成的情况,用户可以考虑:
集成原有的UVM/OVM的验证组件到环境中
新创建一个inFact测试组件
在完成了上面的步骤以后,用户可以接下来将inFact OVM/UVM序列集成到testbench中,从而可以使用图形来随机选择sequence,并且有方向地产生随机数更快地完成覆盖率收敛。最后,用户还可以基于图形来定义上面所提到的新型覆盖率,完成SL和TL两种级别的覆盖率定义和收集。
Cadence's Perspec
PSS模型(即用近似PSS语言来描述action、scenario)则是由Cadence Perspec提出的。Perspec工具可以读入PSS模型,而SL层的模型又可以映射底层的C、SV等语言块。
利用PSS模型,用户可以定义想要测试的场景。下图中的SoC系统中,各个模块的action都定义完备。用户则可以组合这些action模块,编码实现一个scenario。稍后,Perspec可以读入这些scenario,生成一个同类似UML图的scenario图。在这个图上可以很方便地全览到所有参与到场景中的scenario、可能的datapath等。
有了需要实现的scenario,Perspec会结合action和它们自有的参数,从而随机化数据和控制逻辑,生成一个独一无二的测试场景。类似于inFact,Perspec也可以穷举出各种可能的、符合场景要求的随机数据和控制逻辑,进而在不浪费资源的情况下尽快实现覆盖率。
下面是使用Perspec的流程:
首先建立PSS模型(完善各个模块的action库)。
定义scenario。
由Perspec生成适用于各个平台的测试用例,例如Simulator上的SV/C test,emulator上适用的Ctest。
利用生成的测试来在各个平台上运行。
调试。
Breker's Trek系列
Breker这家公司,读者们也许不太熟悉,但如果说portable stimulus是由它们一开始提出的话,大家都会对它肃然起敬了吧。就同这家公司网站的口号一样“The leader in portable stimulus”一样,他们知道如何可以在EDA大公司的阴影下生存,而且他们的工具只聚焦到了portable stimulus,这就如同当年的SpringSoft的Debussy(Verdi)、Verisity的Specman(e)、Jasper的JasperGold一样,就靠在一条产品线中找到新的方向、市场还不满意还有提升空间的方向、或者市场需要却没有合适解决方案的方向。这一次,Breker也站住了,而且通过跟大公司的合作,退出了顺应市场需要的产品。
Breker提供了第一套portable stimulus的工具,从而可以由工具自动生成C/C++测试代码或者UVM序列,或者这两者的结合。如同上面的两个工具生成的测试代码,这些代码可以实现从不同测试级别的垂直复用,也可以使用不同测试平台的水平复用。
Breker提供的Trek工具系列中,TrekUVM和TrekSoC分别针对模块级的UVM测试和系统级的C/C++测试,而TrkeSoC-Si则类似于TrekSoC,但生成优化的更便于在emulator、FPGA等平台上执行的C/C++代码。
介绍完这三家公司的PSS工具,有的读者也许会有疑问,那么Synopsys呢?他们不准备加入这场有关下一代验证趋势的大party吗?其实早在2016的时候,Synopsys和Breker就联合声明,Breker的TrekBox就与Synopsys的Verdi形成无缝的调试方案,从而可以保证在Trek和Verdi之间自由切换,对于UVM测试可以更方便利用Verdi进行protocol调试和性能分析,而对于C/C++测试,则可以利用Verdi HW/SW调试来在系统层面调试功能或者性能的问题。这一切都听起来很自然,谁说不是呢?所以一个自然的猜想是,不久的将来,
Synopsys会向Breker提出收购要约,毕竟EDA行业的发展规则就是这样进行的。如果真如此,那么,三家EDA公司又是皆大欢喜,都可以在PSWG中投出自己的一票,就如同参与UVM制定一样。这对于EDA公司和PSS的用户们来说,都是一件好事。
谢谢你对路科验证的关注,也欢迎你分享和转发真正的技术价值,你的支持是我们保持前行的动力。