新一代场景验证工具——穹景 (GalaxPSS)

2022-03-18 12:33:07 来源: 芯华章科技
早在5年前,人们便预测PSS(Portable Stimulus Standard),将与UVM一样跻身主流验证技术之一。如今面对日益复杂的系统级芯片验证,除了集成规模提高带来的挑战外,包含架构探索、软硬件协同、测试用例跨平台复用等一系列新课题,摆在了芯片验证工程师面前。被很多业内专家寄予厚望的PSS,因具备自动生成验证场景、同源化可移植激励等优势,成为了应对新挑战的有力工具。
 
为什么PSS成为了新的验证效率增长点?
 
如果说过去二十年里,蓬勃发展的仿真验证、形式验证等各种技术日益成熟,验证领域逐步统一了验证方法学并初步实现了验证的完备性。那么接下来的二十年,摆在行业面前的新课题就是如何解决工具缺乏兼容性、数据碎片化,实现工具创新的问题,从而进一步提高验证效率。
 
以SoC级验证为例,一个典型矛盾是复杂场景验证可能需要数以万计的C语言测试激励,但是C语言很难实现灵活的随机化,过往大部分芯片公司依赖于验证工程师手写直接测试用例,这是一个非常庞大的工程,也导致覆盖率提高缓慢。对设计的各种功能进行仿真测试时,也需要数量庞大的验证用例来提供测试场景。如何把验证工程师从繁琐的测试用例逐个开发的工作中解放出来,一直是行业面临的挑战之一。
 
另一方面,传统验证中,不同验证层级的现有验证平台存在显著的差异,因此不同平台的测试用例也是基于不同的编程语言,不同的验证方法学开发的。哪怕同样是SoC层级的验证,基于逻辑仿真器和基于硬件仿真系统的测试用例,在芯片公司中往往也是两个不同的团队重复开发的。业内的普遍共识认为,数字验证中的激励重复开发、重复编译、碎片化调试,额外耗费的时间已经占据了总体验证时间的30%以上。
 
如何解决数据碎片化,追求不同技术、不同层次、不同平台上验证产出的“最大公约数”,实现数字验证中的智能激励移植也是PSS一个重要的考量。
 
 
然而,PSS验证生态,也需要越来越丰富的共性场景模型库的支持,并呼唤强有力的底层工具支撑。
 
GalaxPSS让芯片验证更加省时省力
 
PSS吹响了革新的前奏,EDA厂商则看到了其中新的技术路径,一系列应用新标准的EDA产品,在预告中踩着鼓点登场。2021年11月,芯华章基于Accellera PSS标准和高级验证方法学,发布新一代场景验证工具穹景(GalaxPSS)。
 
Accellera是一个国际标准化组织,专注于全球系统、半导体及设计工具公司开发及使用的自动化设计流程的语言标准。作为Accellera PSS标准工作组成员之一,芯华章的核心研发团队在PSS协议制定、讨论和发布时,将团队对协议的深刻理解,融入到芯华章场景验证工具GalaxPSS研发当中,并始终密切地保持工具和协议的一致性和合规性。
 
得益于对当前验证痛点的深刻把握,芯华章的场景验证系统“对症下药”,致力于解决以下两大问题:
 
1.构建全面完备的SoC测试场景
 
通过解析用户构建的激励场景模型,GalaxPSS工具可以按照用户测试目标生成大规模的随机场景,这些场景能够满足在复杂设计条件下的SoC验证,通过PSS静态覆盖率以及用户仿真阶段的实时功能覆盖率分析,进一步提升模型场景描述准确度和覆盖面,从而保证验证的完备性。
 
GalaxPSS 支持国际标准DSL语言的建模,通过解约数,翻译建模场景,生成C case提供给CPU进行场景测试。DSL语言不仅有类似硬件结构性描述语法,也具备类似SV的面向对象的软件语言特点,并提供了一定的场景自动推导(automatic inference)功能,使得建模非常灵活智能。它不仅可以涵盖传统验证语言的测试激励生成,还可以自动扩展出验证工程师很难想到的测试场景。整体上来说,这可以极大程度上缓解过往严重依赖于工程师手工构造测试用例的局限性。
 
2.赋能多平台交互验证
 
验证不单单是只在仿真器上测试,还需要考虑FPGA验证、硬件加速仿真和后续流片后的板级性能测试。
 
GalaxPSS生成的代码具备可移植性,能够支持多平台的灵活应用,根本原理在于它的输入可以是简单的DSL语言,或者C/C++,通过产品的功能描述指定一个统一的、标准格式的翻译,实现同一个行为模型,输出则可以按照用户的选择来定,从而实现验证用例在垂直复用和跨平台复用上的连续性。比如,客户需要运行在软件仿真平台,GalaxPSS就能够按需求生成SV或者UVM的代码;如果客户需要SoC系统级的运行环境,工具也可以按照要求生成C/C++的代码,并由用户加载到SoC的CPU上运行。
 
总之,针对目前和将来复杂的验证场景,GalaxPSS都可以生成不同形态、适配多种验证环境的测试用例,并实现统一场景建模下,测试激励跨平台、可复用、自动化、智能化自回归,从而确保适用在软件仿真、硬件仿真、FPGA原型验证,甚至系统验证上,提供从单一平台验证到多平台的交互验证,有效解决验证环节中工具碎片化的问题。
 
场景验证工具GalaxPSS的广泛应用
 
针对具备PSS 模型建模能力的用户,芯华章GalaxPSS可以做作为模型解析器,定义统一的测试激励,支持生成可适配UVM验证环境的SystemVerilog测试用例、可适配SoC层级的C/C++测试用例等丰富的验证用例。同时,芯华章技术研发团队基于对共性验证难点的深刻理解,开发了一系列基于DSL语言的验证场景模型,包括SoC多核互联验证场景模型、AMBA总线子系统验证场景模型等,支持用户可扩展的动态测试结果正确性检查。
 
使用过程中,GalaxPSS可提供图形用户界面,支持场景模型-测试用例-仿真Log文件三方联动信息定位,操作简单友好。
 
针对Cache一致性测试的图形化调试窗口
 
多核处理器公司的一个共性验证难点是多核互联验证,以此验证需求为例,我们接下来介绍一下工具的使用流程:
 
1.激励生成
 
分析需要测试的场景,通过DSL语言进行原子操作(atomic operation)到跨组件的大场景建模。这其中包含了:不同激励生成端的行为级模型,最小颗粒度的场景模型,原子操作之间的逻辑关系和不同组件的资源管理等。
 
以缓存一致性的SoC级验证为例,GalaxPSS根据对应的测试场景以及逻辑模型,如MOESI协议,在GalaxPSS模型里构造类似的逻辑模型,建立从SoC层级可以覆盖到的缓存一致性测试场景模型,如false sharing、true sharing、原子操作、一致性协议各个状态覆盖等。
 
2.检查机制
 
在建立模型的同时,会推算并保存预期数据,C用例在运行的过程中会实时检查读回来的数据是否跟预期相等,并将结果写入到一片指定的存储器中。在读写存储器的总线上挂上监视器(monitor),将监测到的结果在仿真日志(simulation log)中打印出来。
 
3.用例完备性
 
在模型中会增加静态的覆盖率收集,例如缓存一致性相关的模型中会有针对每一条缓存行的覆盖情况,对一致性协议每个状态的覆盖情况进行收集,给出覆盖率数据。用户进而获得当前模型的场景覆盖度,并根据和验证目标的差距,做出相应的增强模型或者修改约束。
 
4.与环境的耦合
 
从C的domain到SV domain或者与芯片run time产生耦合,其中一个解决方案是把监视器挂在读写存储器的总线上,根据客户的具体设计来实现。一些函数需要用汇编实现,这也依赖于客户使用的指令集。同时,run time的交互也需要与环境的成功耦合进行。
 
得益于强大的复杂场景求解能力与跨平台、可复用的测试激励生成机制,GalaxPSS在解决测试场景一致性方面拥有无与伦比的优势,也因此具备广泛的应用场景。
 
• IP Level:利用基础原子操作,打造各种IP级完备可复用测试场景
 
• Sub-System:复用IP级的测试场景,快速构建相对复杂的智能测试场景
 
• SoC Level:场景的有效随机率和覆盖率,比传统验证方式大大提升
 
• Post-Silicon:在系统芯片上测试真实的随机场景,分析芯片的性能和功耗
 
 
芯华章产品和业务规划总监黄武表示:
 
“GalaxPSS场景验证不仅仅是一个单点工具,它将利用融合工具提供的独特优势,包括覆盖率、调试器和参考设计,为用户提供高效的测试场景,降低对工程师手工编写测试场景的经验依赖,提高复杂SoC芯片的功能覆盖率,有效地解决当前越来越复杂的SoC验证挑战。”
 
/特别鸣谢本文技术指导/
芯华章科技软件技术总监高世超
芯华章科技资深研发工程师吴惠平
芯华章科技资深研发工程师葛亮
责任编辑:sophie
半导体行业观察
摩尔芯闻

热门评论