ee_king的个人空间 https://blog.eetop.cn/1494617 [收藏] [复制] [分享] [RSS]

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

日志

Connections to DUT Interfaces(从VirtInterfaceFunctionCallChain开始)

已有 952 次阅读| 2018-9-28 10:38 |系统分类:芯片设计

       Function Call Chaining

      遗憾的是,将实际接口引用分配给测试平台内部的虚拟接口句柄的方法是在UVM用户指南中普遍使用的xbus示例中使用的方法。许多用户自然认为这是推荐的方法,因为它在示例中使用。然而,不建议采用这种方法。
      它涉及创建一个函数(在示例中称为assign_vi),该函数将虚拟接口句柄作为参数,并在一个或多个子组件上调用等效函数(也称为assign_vi)。这在层次结构中重复,直到到达子组件。需要虚拟接口的任何组件都声明本地句柄并将函数参数分配给本地句柄。
      
       In the connect() function of test env:
       xbus0.assign_vi(xbus_tb_top.xi0);

       In the xbus env:   

       function void assign_vi(virtual interface xbus_if xi);
            xi0 = xi;
            if( bus_monitor != null) begin
                bus_monitor.assign_vi(xi);
            end
            for(int i = 0; i < num_masters; i++) begin
                masters[i].assign_vi(xi);
            end
            for(int i = 0; i < num_slaves; i++) begin
                slaves[i].assign_vi(xi);
            end
        endfunction : assign_vi

        In the agent:

        function void assign_vi(virtual interface xbus_if xmi);
             monitor.assign_vi(xmi);
             if (is_active == UVM_ACTIVE) begin
                 sequencer.assign_vi(xmi);
                 driver.assign_vi(xmi);
             end
        endfunction : assign_vi

        In the monitor:

        function void assign_vi(virtual interface xbus_if xmi);
             this.xmi = xmi;
        endfunction

        不应使用此方法有两个主要原因。

  • 它不可重用 - 如果测试环境层次结构发生更改,则必须更新这些functions。
  • 不必要的额外工作 - 要在环境中访问子组件,必须将虚拟接口句柄向下传递到层次结构的中间级别,这些中间级别对虚拟接口没有用处。此外,为了使此方法在环境层次结构更改方面更具可重用性,您必须嵌入额外的决策代码(如上例所示)。或者编写每个函数来迭代所有子类,或者为每个子类调用函数。这需要更多不必要的工作。
               

       



点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 6

    评论
  • 访问数
关闭

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

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

GMT+8, 2025-7-4 13:12 , Processed in 0.014550 second(s), 12 queries , Gzip On, MemCached On.

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