18.luck新利
的意见

重用通用仿真设置进程速度回归

一个新的重用方法缩短漫长的设计验证周期。

受欢迎程度

功能验证的soc总是有某种形式的建立过程。对于复杂的soc,至少,这通常初始设置阶段消耗从20每个测试仿真总时间的90%。和成千上万的运行测试验证的设计。

这个设置阶段可以是执行相同的仿真步骤序列,或编程设计达到相同的初始化或复位状态。大量的时间被浪费在这个初始设置为每个测试运行阶段,尽管每个测试常常使用相同的过程。值得注意的是,这是标准程序。

它会更有效率,节省大量的时间,避免重复相同的设置过程对于所有这些成千上万的测试阶段。这是本文中提出的方法背后的动机。我们的方法会导致一个巨大的吞吐量增益为大型和复杂的设计验证系统,避免反复重播的初始设置为单独的测试阶段。

仿真设置重用方法
一旦你已经确定了一组通用仿真步骤一组回归测试,我们的方法流程是这样的:


图1:高级描述步骤来重构常见的初始设置和运行不同的测试阶段

这种方法适用于HDL设计;即。UVM, SystemVerilog Verilog硬件描述语言(VHDL),或任何组合。一般不能用于设计包含SystemC代码,除了(有一定的限制),SystemC包装器模型是躺在Verilog /硬件描述语言(VHDL)设计单位为了联系合作模拟或仿真环境。

检查点和恢复设计状态很难可靠地使用在非常大而复杂的系统,涉及到多个HDL语言,C / c++模型,IP, DPI, SystemC, PLI / FLI /新品,等。这种方法可以部分自动的帮助下模拟器和初始设计只需要设置和最小的修改由设计师使其在现有工作,合适的设计。

你也可以检查点和恢复设计状态在不同的机器上和/或网格的机器上。这允许你在现有电网集成的方法流程。然而,您应该确保设计的机器状态的机器正在检查点,设计状态恢复应该有类似的操作规范。不同的操作系统可能有不同的内存映射为底层系统库和可能导致问题在恢复状态。通常网格系统(如LSF和交易所已经控制,允许你提交工作相似类型的机器上(比如SLES11或RHEL7),防止此类问题的发生。

这个流可用于联合仿真或仿真环境,提供了模拟器的另一边连接能够处理检查点和恢复设计状态的域。模拟器可以以类似的方式处理检查点/恢复与纯模拟模式。这加快了设置阶段纯仿真方面你可以去有趣的交通生成一部分模拟器迅速和做更多的事情在同一验证周期。

仍然会有一些并发症和复杂性的设计和/或流程,这可能会促使用户继续以现有方式验证。但是许多设计仍然可以受益,你可以节省仿真周期花一些初始时间设置和部署这种方法。

部署方法的结果
这种方法已成功部署在许多大型设计公司使用,从导师模拟器,西门子业务。我们将从其中一个客户部署共享数据。

设计是一个UVM-based SoC与C / c++ IP模型和PHY组件。设计有大约1000测试在一个回归套件每个测试运行约10小时。所花费的时间来模拟初始设置为每个测试阶段大约是两个小时。因此,总的串行时间运行回归约10000小时。然而,回归网格系统上运行,因此,考虑到20并行机器,理想的回归吞吐量将大约500小时。


图2:回归大型SoC的流动,在重构之前共同设立阶段的测试

我们与客户的设计团队合作,使所需的小数量的变化流动的正常工作。设计团队就能够减少他们所有的测试了大约两个小时(通过消除重复共同设立阶段的时间),和他们能够实现回归吞吐量20网格机器大约402小时:大约20%的储蓄他们的回归。比例较高的回归吞吐量改进是可能的设计,初步建立阶段消耗更大比例的总仿真时间。


图3:回归流分离后共同设立阶段重用通过所有的测试,收益率回归节省了20%的时间

使用模拟器的自动化方法,您应该能够让您最小的修改设计testbenches和轻松地集成到现有的设计验证环境的方法。方法也可以部署在联合仿真和仿真环境。虽然,模拟器是用于实际的示例和测试输出中引用这篇文章中,可以使用此方法与其他行业模拟器。

请下载白皮书,通过重用提高回归吞吐量设置阶段模拟更多细节在这个大节省时间。

论文全文我们确定设计的类型适合这种方法,你可以做些什么来让你的设计适合它。我们还解释需要遵循的约束和设计因素,可能会阻止你或你的验证团队采用这种方法以及如何克服它们。您还将了解的要求(模拟仿真)联合仿真验证环境,以及如何使方法联合仿真与模拟或工作。我们还包括一些代码片段的方法和完整的代码示例来说明两个测试例子。



留下一个回复


(注意:这个名字会显示公开)

Baidu