18.luck新利
的意见

UVM回调函数简化断言验证如何

节约时间通过消除需要代码为每个场景中一个新的序列。

受欢迎程度

通过阿卡什Sarup和马克克拉

断言直接造福整个设计和验证周期;因此在编码和测试工程师面临任何挑战都值得解决的。

当大量的断言验证,回调节省时间通过消除需要代码为每个场景中一个新的序列。回调还提供更多的动态和细粒度的控制,包括包和数据包的数量将会注入一个错误。

UVM的回调机制改变的行为验证组件(如司机或监视器)不改变组件的代码。回调允许创建微妙和复杂刺激的轻松,因此,断言验证工具。

本文将介绍如何实现回调,验证IP可以用来作为PCIe和其他分组的断言验证在设计使用协议。


图1:基本的事件序列发生回调时启用代理。

断言验证通常是一个验证IP开发周期的一部分。第一步包括编码断言。第二步验证断言通过创建场景,充分锻炼下断言,以确保他们不火的目的设计行为和在错误的情况下火。

回调可能非常有益以来scenario-generation一步验证工程师不需要编写额外的测试。相反,他们使回调修改原始刺激为了创建有趣的场景。这是通过简单地扩展callback类重写虚方法(do_callback (…)),一个序列的时候调用BFM项目执行。这是特别有用的在基于包协议,比如作为PCIe,包字段需要损坏和回调提供细粒度控制。

验证工程师的工作是确保每个相关的断言验证场景。回调时可以极端重要的断言进行验证是通过操纵领域的序列项或启动一个序列项在一个州中是不允许的。回调加快断言验证通过提供整个结构等操纵UVM testbench,以最小的更新和没有与现有序列负责生成序列的交互项。

等分层协议作为PCIe,发射机和接收机之间的通信通过结构元素发生被称为包,回调的使用断言验证改善效果显著。使用验证IP数据包信息可以通过回调函数和所有分组修改断言可以很容易地利用这种机制的验证。现在让我们看一看一个场景从每个事务,数据链路,物理层包。

案例1:事务处理层基于回调

高级事务发生在设备核心被称为事务层数据包(TLP)。验证IP,例如,验证IP,允许所有字段的张力腿平台(TLP请求和完成)改变。如果用户希望验证断言相关领域的张力腿平台,他们可以简单地通过腐蚀TLP字段通过回调。

作为PCIe协议指出,例如,一个请求的长度= 1 DW”最后一个字节使字段的值应该是零;在最后一个字节使字节使值的最后一个字的要求。在仿真中,如果用户想要将这个错误每个内存写数据包长度1 DW,然后他们可能如图2所示。


图2:填充do_callback方法。张力腿平台的实例tlp序列条目。

案例2:基于数据链路层的回调

数据链路层数据包(DLLP)是用于各种各样的目的;如确保张力腿平台的完整性、流控制和电源管理。张力腿平台一样,回调函数可用于注入DLLP数据包中的错误。例如,lcrc用于检查张力腿平台的数据完整性和DLLPs。lcrc附加在数据链路层的张力腿平台(DLL)。如果lcrc附加的价值包不一样的计算值,那么它就是一个协议违反。这种不正确的行为,或断言发射,可以验证,如图3所示。


图3:填充do_callback方法。tl_to_dll张力腿平台的实例序列项DLL。

案例3:基于物理层的回调

也许最有效的利用回调来自修改有序集油田。在DLLPs和张力腿平台的情况下,一次包仍然可以通过执行序列连接。但使用序列有序注入一个错误之前设置连接可以更复杂和更容易错误与每个LTSSM因为有序集规则改变状态。回调,另一方面,允许用户将错误更可控的方式。例如,如果一个控制SKP发送命令集代替TS2操作系统,可以很容易地使用回调。因此这个协议无效的场景可以很容易地验证通过回调,如图4所示。


图4:do_callback方法填充与CTRL_SKP取代TS2 OS复苏速度Gen3 RcvrCfg状态。

可以看到,当大量的断言验证,回调节省时间,确保工程师不需要代码为每个场景中一个新的序列。更全面的治疗如何回调可以帮助你加速断言验证,下载白皮书,简化使用UVM断言验证回调

阿卡什Sarup是产品工程师CXL和作为PCIe导师,西门子的业务,重点部署和产品的定义,验证IP。Sarup有超过20年的经验在功能验证域,有着发展背景的行业标准接口协议使用UVM方法。

马克•克拉是产品营销组经理ICVS部门中的那导师,西门子业务。他的团队负责产品管理和营销企业导师的验证平台,包括仿真、形式验证,验证IP,便携式刺激一代,统一验证管理和常见的调试技术。克拉花了超过30年的销售,营销和管理职位在半导体设计、制造和测试行业。他毕业于麻省理工学院。



留下一个回复


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

Baidu