实数建模在功能验证中的应用实例分析
11/05/2024, 02:00 PM UTC
在功能验证中使用SV-RNM的实数建模实例分析An Illuminating Real Number Modeling Example in Functional Verification
➀ 使用SV-RNM在功能验证中进行的实数建模(RNM)的案例分析;➁ 混合信号验证在现实应用中的重要性;➂ RNM在加快仿真和与数字验证集成方面的优势。➀ An insightful example of real number modeling (RNM) in functional verification using SV-RNM; ➁ The significance of mixed-signal verification in real-world applications; ➂ Advantages of RNM in speeding up simulation and integrating with digital verification.最近,我阅读了一篇关于使用SV-RNM(SystemVerilog实数建模)进行模拟块功能验证的有趣白皮书。内容值得仔细阅读,因为它详细阐述了RNM的功能验证流程,从随机化到功能覆盖率、断言和检查器,以及集成到UVM中。白皮书通过ADC和DAC的例子进行了说明。
混合信号验证的重要性
尽管AI可能占据了头版,但除了云和AI PC部署之外,实际应用必须与真实世界的模拟输入进行交互,例如摄像头、雷达、激光雷达、音频,并为照明、扬声器和执行器驱动模拟输出。(实际上,即使在云中,系统也必须监测温度、湿度和电源电压水平。但这又是另一个故事。)
验证数字和模拟电路之间的正确交互,直到最近一直依赖于SPICE(或加速SPICE)模拟的模拟晶体管电路行为与SystemVerilog中逻辑模拟器模拟的数字逻辑行为的协同仿真。由于电路模拟比逻辑模拟慢很多个数量级,实际测试通常仅限于在模拟/数字接口上运行简单的交接序列。
今天,模拟和数字设计更加紧密地耦合,以控制和监控模拟参数。现代DDR接口提供了这种耦合的好例子。在这种情况下验证正确性需要模拟和数字电路之间更广泛的序列测试,通常与数字侧的软件驱动控制交互。为了在测试中获得合理的覆盖率,模拟需要以接近数字模拟的速度运行。
实数建模(RNM)
在数字模拟器中,信号可以是0或1;它们的速度取决于这种简化。模拟模拟器将信号值(和时间)建模为实数,例如,信号电压可能在时间0.125时为0.314。RNM允许在模拟中取得妥协,其中模拟信号可以量化(幅度和时间),从而允许离散建模。(完全披露,RNM建模还考虑电流和阻抗,但不是这些特定示例的必需品。)
数字模拟器已被改编以处理这样的量化值,并且仍然可以比基于实数的SPICE运行得更快,同时还可以与常规数字逻辑模拟器耦合。可以实施更复杂的测试计划,并且有了与数字验证期望(随机化、约束、断言、覆盖率属性和UVM支持)兼容的RNM支持,基于NVM的验证可以轻松集成到主流验证流程中。
突出功能验证功能
白皮书首先介绍了一个闪速ADC的约束随机化。他们考虑了从AVDD到AGND提供参考电压的电阻分压器链,以8步为例,每步都有一个比较器。这些电阻不会完全匹配,因此可以给每个添加一些随机误差(在约束范围内)。同样,测试应允许(约束)AVDD - AGND的变化。最后,ADC的输入可以定义为确定性序列,也可以定义为允许范围内的随机序列。
覆盖率很简单。白皮书建议查看从最小信号幅度到最大信号幅度的箱子中的模拟信号样本。任何未覆盖的箱子都表明需要更全面的测试,如SemiWiki文章中所述。
关于断言的部分提供了构建模拟/数字断言的良好示例。这里没有神秘之处。对于ADC,检查将输入电压量化为期望的数字值,并将其与ADC的输出进行比较。对于DAC,只需反转此检查,比较期望的输出电压与DAC的输出电压。
UVM集成细节对于UVM专家比我(一个UVM文盲)更有意义。我知道它很重要,并且似乎在示例中相当详细。
白皮书以关于这些设备线性度的讨论结束,这是你不会在逻辑验证中找到的主题,以及关于分析结果的讨论。我从第二点得出的结论是,这里有一个考虑最初设置的随机化约束的机会。高估这些约束可能导致比硅中观察到的更多错误,当然,低估可能是灾难性的。我预计正确地做到这一点可能需要与硅设备进行一些级别的校准。
---
本文由大语言模型(LLM)生成,旨在为读者提供半导体新闻内容的知识扩展(Beta)。