一文浅谈SoC功能验证中的软件仿真
2023-01-28
来源:国微思尔芯
随着SOC/ASIC 设计规模不断增大,且结构愈加复杂,导致验证的复杂度呈指数级增长。为了缩短芯片的上市周期,在不同设计阶段工程师们往往选择不同的仿真验证工具,提高整个芯片开发效率。在一个芯片的设计开发流程中,软件仿真是其中重要的一个部分。这种基于软件的逻辑仿真可以说在整个功能验证中都需要用到。
什么是软件仿真?
软件仿真,简单说来,就是用软件和编程语言将所有的硬件特征虚拟出来。它先是通过计算机结合测试激励来模拟芯片在真实环境下的运行状况,帮助工程师通过各种调试手段来判断运行结果是否符合预期。由于它能够较快速地搭建一个仿真环境,十分简便;而且软件仿真对DUT的结果可视化较好(输出波形可直接观测),可以以用户友好的GUI模式来进行debug;工程师也可以随时暂停或者中断验证工具的运行,提高了整个debug的效率。此外,回归测试(regression test)是逻辑仿真不能忽略的一部分。对于芯片这种人类史上既宏大又细微的工程,任何一个改变就像多米诺骨牌一样,牵一发而动全身。因此,工程师会重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。这样的动作就是回归测试,也是软件仿真的主要功能之一。基于以上特性,在数字芯片的前端设计中,软件仿真是工程师们常规必备的验证工具,其重要性不言而喻。
软件仿真面临哪些挑战?
不过,这种通过运行软件的方式验证芯片的设计方案固然简单方便,但对于SOC/ASIC规模越来越大,设计越来越复杂的今天,仿真运行需要花费的时间也越来越长。从运行效率来看,软件仿真更适合一些小规模的设计,尤其是在一些模块级别的功能验证上,软件仿真的编译速度很快,这在一定程度上会加快整体项目的验证速度。此外,软件仿真会在具有不同物理抽象层次(级别)下进行,例如晶体管级、逻辑门级、RTL级和行为级。为了加速整个芯片开发周期,在外购IP越来越普遍的今天,芯片开发大多是自主设计部分和多个IP模块集成,形成复杂芯片的设计。如果交付的IP模块源代码并不是RTL代码,就没办法使用软件仿真进行验证。因此,基于以上两点,软件仿真在运行时,还需要支持连接第三方工具如数学建模,硬件仿真加速器,原型验证平台等共同完成功能仿真。虽然软件仿真技术对工程师来说非常有必要,但就现有的商业模式来说,提供的商用软件仿真服务会以软件许可证(software license)的形式收费。但在实际使用时,工程师们难以依赖经验进行有效算力与工具需求计算的匹配。因为项目开发中对于算力的需求是波动的。有时候已购买的license无法满足现实使用需求,有部分设计工程师获取不到就会造成抢占或拥堵。但如果超前部署,又会带来巨额的成本投入,有可能在闲置时造成资源的浪费。这就对芯片开发效率产生致命影响。对于企业来说怎么平衡生产和效益匹配的问题是当下急需解决的事情。
高性能、多语言混合的
商用数字软件仿真工具
PegaSim 芯神驰是思尔芯倾力打造的一款高性能、多语言混合的商用数字软件仿真工具,已得到多家海内外厂商验证。
其采用了创新的架构算法,实现了高性能的仿真和约束求解器引擎,对System Verilog语言、Verilog 语言、VHDL语言和UVM方法学等提供了广泛的支持,同时支持时序反标和门级后仿真,并可提供功能覆盖率、代码覆盖率分析等功能。同时创新的软件架构允许仿真器支持不同的处理器架构—— x86-64、RISC-V、ARM等。芯神驰可搭配思尔芯的芯神匠架构设计软件、芯神鼎硬件仿真系统,以及芯神瞳原型验证平台,可实现设计与验证工程师从IP、子系统及全系统等不同场景的验证需求,进而满足当今复杂SoC的验证需求。更重要的是,此款商用数字软件仿真工具采用创新的商业模式,可以很好地满足企业多样化的需求,帮助企业解决license使用紧张、算力不足、license被设计工程师长期占用等问题。真正为企业做到降本增效,加速芯片设计,确保整个芯片设计流程对需求规格的完整实现,以及项目按照预期的验证计划高效地推进。
更多信息可以来这里获取==>>电子技术应用-AET<<