今天我们先来说说软件仿真。软件仿真是数字电路设计的关键环节,旨在使用硬件描述语言(例如VHDL或Verilog)对数字电路设计进行功能和特性的仿真和验证。其核心思想是在计算机环境中模拟硬件的行为,以确保设计意图得到正确实现。一个简化的仿真验证系统就像这样:测试向量(TestVector)运行在测试平台(Testbench)上,DUT 和Testbench一起通过仿真系统(基于软件)运行,最终运行出来的结果通常会和预期结果做比较。
随着芯片设计规模的增大,传统用Verilog/SystemVerilog编写的测试平台无法高效满足测试需求,因此出现了UVM。UVM提供了健壮的测试平台,优势在于其高度的可重用性和行业标准化,可以提高设计效率并便于团队之间的协作与组件共享。
功能仿真即RTL仿真,这是仿真验证的第一步,也叫前仿真,目标是在理想的情况下,确认设计的功能是否符合预期。在这个阶段,我们通过模拟设计在特定输入下的输出来验证其行为。这就像对待测试设计(DUT)进行“预演”,在没有物理硬件的情况下就可以发现设计中的逻辑错误。在综合后仿真阶段,目标是确认综合后的电路结构是否符合设计的意图。在这个阶段,我们使用综合工具将硬件描述语言(HDL)代码转化为逻辑网表。然后,我们使用这个逻辑网表进行仿真,以确认综合后的电路行为是否和设计的意图一致。
最后,在时序仿真或后仿真阶段,我们将考虑设计在实际硬件和工艺中可能遇到的时序问题。这包括元件的延时、布线延时、电源和热问题等。在这个阶段,我们会使用更复杂的仿真模型,比如考虑了延时信息的模型,以更准确地模拟硬件的行为。
以思尔芯的PegaSim芯神驰软件仿真工具为例,可支持包括System Verilog、Verilog、VHDL和UVM等在内的多种语言和方法学。其创新的架构算法和支持多种处理器架构(如x86-64、RISC-V、ARM等)使得仿真性能高效,同时提供诸如功能覆盖率、代码覆盖率分析等功能。除传统的license模式外,还提供即算即用的在线仿真云模式,满足多样化需求,解决许可证使用和算力问题,从而提升验证团队效率。