IP的UVM验证环境:整体框架

对于一个全新的IP验证,我们搭建验证环境时需要关注以下四点:

1. 数据流

    a. 有几路数据流(决定了环境中有几个agent)
    b. 区分输入/输出数据流(决定了agent是active还是passive)
    c. 每个数据流分别是什么协议(决定了agent的接口和时序)

2. 控制流

    a. 有无寄存器配置
    b. 如有,则加入对应协议的VIP或agent(如apb)
    c. 如没有,则忽略本项

3. 检查:

    a. 有C模型,使用dpi引入
    b. 有其他模型(如python,则使用对应的方法或通过dpi间接实现)
    c. 如均没有,则需自己手动编写上述模型或用systemverilog实现

4. 集成到high level的验证环境:

    a. 仅集成驱动sequence(主要是控制流,数据流上级会自己发)
    b. 集成checker(保证checker所用transaction对应agent也存在)
    c. 集成整个验证环境(需要考虑接口的连接)

接下来,我们开始分析上篇文章提到的DUT的数据流和控制流,分析如下:
在这里插入图片描述
至于检查和集成相关的内容,等到对应篇章再详细介绍。

那么,根据上述分析,我们可以画出对应的环境示意图,如下:
在这里插入图片描述
其中,未提及的组件有两个:virtual sequencer和env_config。
virtual sequencer:用于调用数据流和控制流驱动的发送时机以及发送的内容;
env_config:用于控制环境当中各个组件的属性(如是否在环境中例化),也可用于完成组件之间变量的传递。
已提及的组件有五个:input_agent、output_agent、apb_agent、reference model、scoreboard。
input_agent :用于产生DUT所需的输入数据流
output_agent :用于接收DUT产生的输出数据流
apb_agent :用于产生DUT所需的寄存器配置
reference model:用于实现和DUT相同的功能,产生golden数据
scoreboard :用于将refm和DUT产生的数据进行对比
这样,我们整个IP的验证环境架构就基本完成了!

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值