发布信息

软件仿真、硬件仿真和原型验证的三种方法是怎样的?

作者:软荐小编      2024-03-21 09:29:00     118

通信仿真软件_通信系统仿真软件_仿真通信软件有哪些

在整个芯片研发中,芯片设计的验证阶段就像一场前线战斗,可以说是整个防线成败的关键。 在芯片投入生产之前,需要确保其设计完全符合要求的规格,解决所有潜在风险并纠正所有缺陷。 这样可以避免在流片后发现无法纠正的硬件错误,并降低以后出现问题的风险。 随着芯片尺寸和功能复杂度的增加,验证的难度也随之增加。 如何在保证验证正确性和效率的同时降低验证的复杂度是验证的核心问题。

核心作用是DUT(Design under Test),即被测设计,也就是我们设计的RTL(寄存器传输级)代码。 验证过程从需求收集开始,将需求划分为子系统模块,进一步细化为功能模块,然后编写RTL级硬件描述语言文件。 验证者根据这些设计文件构建测试平台(Testbench)来模拟和控制DUT的输入和环境,包括生成功能模型、输入刺激或在线数据交互,如图1所示。整个验证过程是为了确认DUT的正确性,确保芯片产品符合规格。

仿真通信软件有哪些_通信系统仿真软件_通信仿真软件

图1 验证者搭建的测试平台

面对复杂的设计代码通信仿真软件,我们如何保证其准确性? 功能验证是这场战斗的关键过程。 工程师常用的验证方法包括软件仿真、硬件仿真和原型验证。 这些不同的验证方法都有各自的优点和缺点。 在不同的设计阶段选择不同的验证工具对于提高生产效率、加速验证收敛尤为重要。 而这一切都围绕着 DUT 展开。 接下来,我们将详细探讨软件仿真、硬件仿真和原型验证三种方法如何围绕DUT进行工作。

软件模拟

软件仿真是基于硬件描述语言对数字电路设计的功能和特性进行仿真和验证。 它通过在计算机环境中模拟硬件行为来验证电路设计是否符合预期。 仿真过程是正确实现设计的关键环节。 它基于用硬件描述语言(如VHDL或Verilog)编写的模型来验证设计中的功能是否正确。

简化的仿真验证系统如图2所示:在此过程中,测试向量(TestVector)在测试平台(Testbench)上运行,DUT和Te​​stbench通过仿真系统(基于软件)一起运行。 最终的运行结果通常会与预期结果进行比较。

通信系统仿真软件_通信仿真软件_仿真通信软件有哪些

图2 仿真验证系统

然而,随着芯片设计规模的增大,使用Verilog/SystemVerilog编写的传统测试平台不足以高效覆盖测试场景需求。 例如,测试平台中基础组件之间的通信,以及这些组件之间的建立、管理和复用问题。 因此,UVM(通用验证方法)应运而生。

在复杂的片上系统设计中,UVM 提供了强大的测试平台,能够处理大量的设计和验证任务。 UVM的主要优点是其可重用性,它允许设计人员在多个项目中重用相同的验证环境,大大提高设计效率。 此外,由于 UVM 是行业标准,因此使用 UVM 可以轻松地与其他设计团队协作并使用他们创建的 UVM 组件。 图3是典型的UVM验证平台框图。

仿真通信软件有哪些_通信仿真软件_通信系统仿真软件

图3 典型UVM验证平台框图

一般来说,软件仿真分为功能仿真、综合后仿真和时序仿真,分别对应RTL设计输入后、综合完成后、布局布线完成后的步骤。

功能仿真:RTL仿真。 这是仿真验证的第一步,也称为预仿真。 目的是确认设计的功能在理想情况下是否满足预期。 在此阶段,我们通过模拟特定输入下的输出来验证设计的行为。 这就像“遍历”待测设计 (DUT),无需物理硬件即可发现设计中的逻辑错误。

综合后仿真:在综合后仿真阶段,目标是确认综合后的电路结构是否符合设计意图。 在此阶段,我们使用综合工具将硬件描述语言(HDL)代码转换为逻辑网表。 然后我们使用这个逻辑网表进行仿真,以确认合成的电路行为是否与设计意图一致。

时序仿真:最后,在时序仿真或后仿真阶段,我们会考虑设计在实际硬件和工艺中可能遇到的时序问题。 这包括组件延迟、布线延迟、功耗和散热问题等。现阶段,我们将使用更复杂的仿真模型,例如考虑延迟信息的模型,以更准确地模拟硬件的行为。

通信仿真软件_仿真通信软件有哪些_通信系统仿真软件

图4 软件仿真应用

在每个阶段,我们通过建立测试台(Testbench)来提供对DUT的输入和环境的控制,并将DUT的输出与期望进行比较。 这三个仿真应用的共同目标是确保我们的芯片设计在各个阶段都能满足预期的功能和性能。

以Silxin的PegaSim软件仿真工具为例。 它是一种高性能、多语言混合商业数字软件仿真工具,使用创新的架构算法来实现高性能仿真和约束求解器引擎。 它为System Verilog语言、Verilog语言、VHDL语言和UVM方法论提供了广泛的支持。 它还支持时序回标和门级后仿真,并可以提供功能覆盖率和代码覆盖率分析等功能。 同时,创新的软件架构使得仿真器能够支持不同的处理器架构——x86-64、RISC-V、ARM等。

虽然软件仿真技术对于工程师来说非常必要,但就现有的商业模式而言,软件仿真的仿真能力和计算能力是与软件许可证挂钩的。 供应商提供的商业软件模拟服务将以许可证的形式收费。 但在实际使用中,工程师很难依靠经验将有效计算能力与工具需求计算相匹配。 如图5所示。

仿真通信软件有哪些_通信仿真软件_通信系统仿真软件

图5 设计验证中的算力问题

除了传统的授权合作模式外,Silxin的PegaSim软件仿真工具还采用创新的商业模式,提供即用型在线仿真云平台。 在对DUT进行回归测试和覆盖随机驱动时,可以实现如图6所示的效果,可以很好地满足企业的多样化需求,帮助企业解决License使用紧张、算力不足、License被占用等问题由设计工程师长期设计。 为工程师提供按需且无限制的仿真功能,以提高验证团队的生产力。

仿真通信软件有哪些_通信系统仿真软件_通信仿真软件

图6 新神池提供的在线仿真云平台

硬件仿真

虽然软件仿真使用方便、成本低廉、具有复杂的调试能力,但一旦遇到大规模的数字电路设计,结构越复杂,仿真所需的时间就越长,软件仿真的好处就受到限制。 因此,通过专用设备对芯片设计进行硬件调试,如硬件仿真、原型验证等,是其重要的解决方案之一。

硬件仿真的运行速度和调试效率远高于软件仿真,因为它可以自动加速仿真和调试完整的芯片设计,多用于大规模SoC设计初期的RTL功能验证。

硬件仿真首先编译硬件设计(通常用 HDL 编写,例如 Verilog 或 VHDL),然后加载编译后的设计。 在某些系统中,设计可以加载到专用硬件(例如 FPGA)中。 加载设计后,硬件仿真就可以运行设计并观察其行为。 硬件仿真通常提供观察和调试设计内部状态的工具。 最后,工程师可以根据结果分析设计的正确性,发现并解决问题,优化设计。

硬件仿真可以提供比软件仿真更快的仿真速度,并且还可以模拟硬件在实际运行中的实际行为。 这使得它们在硬件设计和验证过程中非常有用,特别是在处理复杂和大规模的硬件系统时。 硬件仿真系统主要由硬件和软件两部分组成。 以Silxin的OmniArk企业级硬件仿真系统为例。 硬件部分由众多FPGA组成,最多可扩展至数百个FPGA。 软件部分由编译、运行和调试组成,如图7所示。

仿真通信软件有哪些_通信仿真软件_通信系统仿真软件

图7 新生晶硬件仿真系统软件部分

编译:在编译阶段,通过全自动软件将待测设计(DUT)映射到硬件仿真系统,从而可以进行高速仿真。 编译流程如图8所示。

通信仿真软件_仿真通信软件有哪些_通信系统仿真软件

图8 新兴硬件仿真系统编译流程

运行:运行时软件控制整个硬件模拟运行过程。 它可以控制硬件模拟以支持不同的用户模式。 其核心组件是运行数据库、运行时库、软硬件接口以及用户交互接口,如ICE(在线仿真)、TBA(基于事务的加速)和QEMU模式等。它还可以支持多个用户同时使用该设备。

调试:硬件仿真具有接近软件仿真的调试能力。 可以通过静态探头、动态探头和内置逻辑分析仪(ILA)观察信号数据,实现信号的全面可视化。 同时可以通过ReadBack/WriteBack功能对信号进行分配或恢复。

此外,硬件仿真将配备专门的验证核心(VIP),为硬件仿真系统提供所需的验证接口。 例如鑫盛鼎可以支持APB、AHB、AXI4、AXI4-Stream、AXI4-Lite、UART、SPI、I2C、DDR、以太网、USB、PCIe、SPI Flash、NAND Flash等,基本涵盖了常用的接口协议和可以满足大多数验证应用需求。 未来,Silxin还可以根据客户需求进行开发。

除了提供硬件加速平台外,鑫盛鼎还提供具有多种功能的创新配套软件:用户设计的语法自动纠错、Smart P&R技术、ABS(Auto-Block Select)技术、多样化的信号采集方式等,让用户能够实现MHz级仿真加速、全自动智能编译过程、强大的调试能力、多种仿真验证模式。 还拥有丰富的VIP库,适合超大规模高端通用芯片设计的系统级验证,可满足不同验证场景的需求。

简而言之,硬件仿真通常会集成专门的电路和逻辑来加速仿真过程。 其速度通常可以达到数百kHz甚至MHz。 软件仿真中的功能仿真通常运行在几十到几百赫兹。 相比之下,硬件模拟比软件模拟快数千至数十万倍。 因此,硬件仿真对于验证复杂的设计非常有用。 它们可以以更高的速度执行仿真并提供更快的反馈和结果,这对于设计的验证和调试至关重要。

原型验证

在复杂的集成电路设计中,原型验证是另一个关键的“验证”技术方法。 目的是在早期阶段使用接近最终芯片的原型硬件来测试和验证电路设计,确保以接近最终芯片的速度运行来设计正确的芯片。 原型验证将设计映射到FPGA阵列上通信仿真软件,通过模拟芯片的功能和应用环境来验证芯片的整体功能,并提供片上软件开发环境。 由于原型验证的运行速度比硬件仿真更接近真实芯片,因此可以与软件工程师合作开发底层软件。 这种软硬件的pre-silicon协同开发是其最不可替代的特点。

以下是DUT在原型验证过程中的关键步骤,包括设计分割、分割后的系统级时序分析、编程和下载、功能验证和调试等。

设计分区:在初始阶段,我们需要对复杂的设计(即DUT)进行分区,以适应FPGA的资源限制。 通常,由于单个FPGA无法容纳非常大的设计,因此我们需要使用特定的工具将设计逻辑划分为更小的部分。 每个部分都映射到一个或多个FPGA,这需要最大限度地减少跨FPGA的信号数量,以减少系统之间的路径延迟,同时保持整体设计的完整性,从而提高系统性能。 典型的 RTL 级分割流程如图 9 所示。

逻辑综合是将DUT转换成FPGA可以理解的网表。 将TDM插入到划分设计中也是影响划分系统性能的关键步骤。 通常,分区后设计的FPGA之间的互连信号远远超过物理连接的数量。 插入TDM就是通过时分复用的方式,通过有限的物理资源来传输这些互连信号。 映射和布局布线是将综合设计映射到FPGA的特定资源,包括查找表、触发器、DSP模块等,然后进行布局布线。

通信系统仿真软件_通信仿真软件_仿真通信软件有哪些

图9 新申通RTL层级设计分割流程

时序分析:时序分析可确保设计在 FPGA 上运行时满足所有时序要求。 这包括各个FPGA的时序要求和整个系统的时序要求。 由于用户的原始设计是划分的,因此在进行时序分析时需要考虑划分后的时序路径延迟。 这部分时序延迟主要来自于TDM的延迟和跨FPGA连接的延迟。 这两个延迟通常可以达到数十纳秒。 当存在不满足时序要求的路径时,设计可能无法正常工作。 这种情况下,可以通过优化时序约束、设计优化、流水线设计、分段边界调整、布局布线优化等来提高时序性能,使设计满足预期的时钟频率,减少路径延迟。

由于原型验证系统能够运行的频率是衡量系统性能的关键因素,因此如何提高系统的运行频率也是经常需要考虑的问题。 常见的方法包括调整分割边界、分割结果的TDM优化、使用布局布线约束、使用时序驱动的分割算法等,以达到减少关键路径延迟、提高系统性能的目的。

编程和下载:将映射和布局布线的设计编译成FPGA位文件; 各FPGA之间搭建互连网络结构,然后将bit文件下载到对应的FPGA中。 下载完成后,根据需要配置全局时钟、全局复位等外设IP。 这可确保 DUT 在原型上正确运行。

功能验证与调试:该阶段主要是测试DUT在FPGA上运行时功能的正确性。 我们可以通过实际的硬件接口或者虚拟IO接口对DUT进行测试,验证其是否符合预期。

如何调试分割设计也是原型验证时需要考虑的问题。 通常,除了用户设计附带的应用级调试和监控工具外,设计人员还需要在设计运行时捕获信号波形以进行分析。 针对该应用场景,Silxin提供的MDM Pro调试解决方案支持多块FPGA协同调试,支持最大125MHz高速采样频率,最大波形存储容量高达64GB,可以有效解决多块FPGA的协同调试。原型验证中的多个 FPGA。 调试问题。

以Silxin的Prodigy新神通原型验证解决方案为例,新神通提供了基于时序驱动的RTL级切分算法,可以实现全自动切分和编译过程。 其内置的增量编译算法功能可以帮助用户完成快速迭代版本迭代,大大提高用户开发和验证效率。

简而言之,由于原型验证的内部处理可以像真实芯片一样进行并行运算,因此可以利用其高性能通过硬件子卡连接真实数据,以发现更多隐藏的错误。 相比之下,软件仿真中使用的激励源模型与真实数据存在一定差异,因此无法完全覆盖Corner Case。 在这种情况下,需要进行原型验证。 通过原型验证,在流片前的SoC基本功能验证通过后,我们可以立即开始驱动程序开发。 我们甚至可以在流片前为有需要的客户进行芯片演示和预售。 这大大缩短了整个验证周期,加快了产品上市时间。

总结

软件仿真、硬件仿真、原型验证三种方法通过各自的优势和作用,共同为芯片设计提供全面、高效的验证方法,有助于在保证设计正确性的同时加快整个芯片开发周期。

在先进技术的推动下,异构计算架构逐渐成为芯片设计的主流方式。 由于不同的计算单元有其独特的架构设计和信息处理方法,因此需要采用与其特点相匹配的验证方法。 为了缩短芯片的上市周期,各大芯片设计公司已达成共识,在不同的设计阶段应选择不同的仿真验证工具,以提高验证效率。 该策略已广泛应用于各大芯片领域。

Silxin的异构验证方法就是在这样的背景下诞生的。 采用软件仿真(新神池)、硬件仿真(新神鼎)、原型验证(新神通)等多种不同的验证手段,融合多种验证手段,不断创新验证工具和验证流程,聚焦被测设计 (DUT) 执行联合仿真和交叉验证,以确保设计出正确的芯片。 Silxin系列EDA工具对DUT进行详细、全面的检查,从各个层面、各个方面检查其功能和性能。 这一系列工作可以有效地识别和修复设计中的问题,从而大大缩短芯片的开发周期。

通信仿真软件_仿真通信软件有哪些_通信系统仿真软件

欢迎下载白皮书《软件仿真、硬件仿真和原型验证如何工作?》 》。

相关内容 查看全部