随着仿真方法在各种不同大小的 SoC/ASIC 项目中变得越来越流行和负担得起,出现了一个问题,即为什么应该在高速原型设计仍然是执行的主要硬件验证技术的领域中使用仿真。首先要考虑的是速度。
熟悉该主题的人都知道,FPGA 原型设计可以提供最快的设计验证。当然,由于较长的设计设置时间和较大的工程工作量,存在成本问题。随着设置工具的改进和变得更易于使用,这种情况正在发生变化。但是,达到最高速度仍然需要更多时间。一些公司甚至根据设计规范在内部设计他们的 FPGA 板,以实现最高的原型制作速度。这使得该过程变得更长,但是,结合软件分区工具,它肯定会提供最佳的速度结果。
事务级接口
另一个问题是验证过程的接口级别。要切换到仿真,您必须从位级接口转到事务级接口。这涉及开发事务级测试平台和事务到称为事务器的位级桥接器,需要新的工程技能(以及学习它们的时间)。
幸运的是,仿真供应商为最流行的接口提供了一个现成的事务处理程序库,并在需要时开发自定义事务处理程序。测试台问题自然解决了。由于 UVM 方法已在许多 SoC 项目中使用,因此向仿真的转变是无缝的。UVM 测试平台本质上也是基于事务的。如果有可用的交易器将其与硬件仿真的设计连接起来,那么迁移到仿真几乎是无痛的。也许更重要的是,设计本身可以以相同的方式进行测试,使用与仿真相同的一组测试。
除了明显的好处之外,虽然使用仿真显着减少了验证过程的时间,但仿真和仿真中的测试也很容易追踪。这有助于硬件验证团队与设计团队合作,到目前为止,这一过程在原型设计中被证明是困难的。
失去控制
设计设置的可控性是另一个有争议的主题。原型设置要求用户控制分区和时间约束过程,这两者都是时间密集型的,但用户保留对过程的控制。相反,仿真提供了自动化所有或大部分过程的设置工具,使原型用户失去控制和感觉。
解决方案在于为用户提供调整设置过程的能力,即使是在仿真模式下,至少在影响测试执行速度的领域。对设计的了解可能会在仿真速度方面产生出色的结果。当然,这是工程师习惯的东西和仿真设置过程中可能控制的东西之间的折衷。
JTAG 调试
SoC 设计由处理器驱动,这些处理器通过基于 JTAG 的调试器进行调试和控制,使 JTAG 接口成为原型设计的主要验证中心。JTAG 电缆将原型开发板与主机 PC 和处理器调试器连接起来。这需要物理布线连接,在需要时速度较慢且难以复制,但可以手动控制接口。
这种传统方法也可用于仿真,但可以进一步扩展。一旦虚拟 JTAG 事务器可用,电路板和主机 PC 调试器之间就不需要电缆。通过这种处理器类型,可以拥有多个调试接口,所有这些都基于仿真基础设施,比 JTAG 接口快很多。这种解决方案比传统的 JTAG 接口调试灵活得多。
何时选择仿真
只有当 SoC 开发完成并准备好 RTL 代码后,才能实现原型验证。这意味着 SoC 的硬件部分必须是完整的。不幸的是,这已经很晚了,特别是对于等待开发平台的软件团队或已经在模拟中验证了项目并需要通过基于硬件的测试快速反馈的设计团队。显然,在可用和需要时之间存在差距。
通过仿真,软件开发人员和硬件设计人员无需等待完成的设计。可以使用不同类型的测试平台验证和测试单独的模块和子系统,例如 SystemC 测试平台、虚拟平台或流行的 UVM 事务级测试平台。仿真不仅使开发团队能够在流程的早期开始他们的工作,它还允许在 SoC 级验证开始之前在块级验证 SoC,从而使最后一个阶段更容易和更短。通过更进一步并将软件团队经常使用的虚拟平台与硬件模拟器集成,可以在流程的早期开始整个 SoC 验证,同时逐步增加在模拟器中实现的子系统的数量。
验证的未来
对速度、接口和调试要求的需求正在慢慢地将原型设计和仿真方法合二为一。在速度方面,没有必要以最高速度运行整个 SoC;某些部分需要在最快的时钟域中,而其他部分(例如需要大量调试的部分)可能会运行得更慢。这种快速域是处理器内置子系统和/或高速外部接口,例如以太网或 USB。这些使空间能够将原型设计和仿真的两个世界连接成一个,并具有各自的优势。
随着原型设计和仿真方法开始相互渗透,它们之间的界限(以及一种方法优于另一种方法的论点)开始消失。现代 SoC 项目的理想验证解决方案实际上是一种混合硬件-软件验证环境,可在需要时提供最高速度、软件接口灵活性以及在需要时提供调试功能。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !