路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

多功能UVM记分板

已有 2122 次阅读| 2016-11-27 22:15 |个人分类:验证前沿资讯|系统分类:芯片设计

UVM对于IC验证工作的贡献众所周知,然而,当谈到如何记录和检查电路实际行为和参考模型是否匹配时,UVM只能提供很少帮助。 UVM没有提出一个记分板(scoreboard)的架构,但留下了实现从空uvm_scoreboard基类扩展到定制的scoreboard的方法。

现有用户提出了一些UVM记分板架构,但有局限性。首先,只有一个模型可被检查,即DUT;其次,它很难对许多平行结构的DUT建模,会导致结构不清晰不干净,通用性不好;最后,SystemC/ TLM的虚拟原型是很难用在这样的记分板架构中的。

大家需要一个最先进的可扩展性好的记分板架构,因此,我们创建了满足这一要求的记分板实现方案,并已经在多个UVM验证项目中检验过。
  • 可扩展性和架构分离
我们的记分板能够同时连接并比较任意数量的模型:设计模型(RTL,门级),定时/不定时的参考模型(SystemVerilog,SystemC,Python),以及FPGA原型/ ASIC。
A.任务分工:REF VS SCB
一个典型的REF实现了RTL DUT的事务级模型,可能由SystemVerilog, C/C++,SystemC 或类似的语言来描述。对于每个DUT引脚电平接口, REF(refrence model)都将有一个事务级接口,这些接口将向设备传进或传出信息,也有可能只是单一方向传输。根据全面验证的具体目标环境,参考模型可能建模完整的DUT功能,或仅部分功能。

SCB不会将DUT建模,而是比较DUT的输出和REF的输出是否匹配。当然,它会有特定的算法,该算法可以精确有序得比较。
B.实现结构
下图显示了REF和SCB的互联。M1,Mn代表不同的REF。
所提出的记分牌架构能够同时处理单向和双向端口传输。此外,SCB完全从一个或多个参考模型中分离出来,允许使用和DUT有同样端口结构的参考模型,并有可能使用和SystemVerilog不同的语言来建模。此外,分离促进重用,比如:在SoC级重用模块级SCBs。

实施与可配置
SCB实现了一个通用的记分板结构,可以组合任何数目的队列。反过来,每个队列能够包含来自不同producers的 items。

对于配置SCB,配置类提供了一个专用的API,因此很容易配置队列和producer的数量。对于从DUT和REFs出来的用于填充SCB的traffic,两个不同的API可用于插入item到队列:
  1. 基于事务API:通过使用自动生成的UVM分析出口来插入。应用于常见的UVM用例。
  2. 基于函数的API:通过调用add_item法插入。

SCB不断评估队列中的内容,使用配置的方法来删除匹配的条目,以及每当队列中的元素违反规则(不匹配)时,及时报告。

通用记分牌架构是通过扩展标准的UVM基类来实现,这使得我们使用UVM工厂特化记分板实现。在下图中,记分牌UVM类的UML图所示:
cl_syoscb_cfg:SCB利用UVM配置数据库,使得它可以在 test case层次上重新被配置。这允许改变队列的数目和比较算法。例如,用户可以扩展cl_syoscb_cfg:
如果已经提供的比较方法不能满足新要求,可以通过扩展cl_syoscb_compare_base类来实现。

  • 灵活性
访问模型状态的信息可能被用来比较不同模型的事务,该记分板包含这一信息,使模型易于交互。而且仅通过调整粘合代码,就可以以指定的信道连接到一个新的模型。

此外, SCB也可以在非UVM环境中使用。比如,在VMM中,通过API利用该函数。
  • 调试
记分牌提供调试援助的方式有两种:
  1. Logging: 在正常的模拟情况下,记分牌通过评估保留下来的队列大小实例化比较方法。当错误发生时,剩余队列内容被写入到模拟日志,在故障点显示队列的“差异”。
  2. Analysis: 使用API外部的验证脚本可以在运行时访问事务流。
  • 成功的故事
我们的UVM记分板架构已经在众多的UVM/ VMM项目中被验证,通常情况下,我们看到这样的收获:相比于从头创建记分板,减少了大约15%的代码量。记分板安装,配置和验证可以在不到一天的时间来完成;此外,经验丰富的工程师可以轻松地用 scoreboard 库来使用或扩展测试平台。
  • 结论
在这项工作中,我们提出了一个业界公认的,可扩展的UVM记分板架构,能够跨越语言,方法论,和抽象物理形态,来连接任何数量的设计模型。数据流之间的任何关系可以使用预先打包的和定制的比较方法来检查,我们可以很容易地与外部checker交互,调试应用程序。在我们的工作基础上,SV/UVM用户生态系统将进一步提高,知道scoreboards在应用层和结构层是如何设计,配置,复用的。



点赞

发表评论 评论 (2 个评论)

回复 ben0924 2017-6-21 17:30
:loveliness:

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 16:21 , Processed in 0.016599 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部