繁体   English   中英

在一个界面中驱动两个不同的序列项

[英]Driving two different sequence items in one interface

假设我只有一个接口和序列项的多个定义:

class link_pkt extends uvm_sequence_item;
class phy_pkt  extends uvm_sequence_item;

在测试期间,这些项目可以通过该接口动态传输出去。

实现驱动程序/顺控程序的正确方法是什么? 一个司机够吗? 或者需要多个司机?

似乎由于序列项的多个定义,我需要多个驱动程序和顺控程序。 但这并不好,因为我无法控制/仲裁传输。

这里有类似的情况它是一种静态 - 我们无法动态切换驱动程序。 我需要的是我可以在一个测试/序列中动态驱动那些不同的序列项。

你想看的是协议分层。 您需要为每个协议配置一个顺控程序,将项目向下发送到每个下层。 在底部,您将拥有实际驱动DUT信号的驱动程序。

每个定序器都需要运行一个转换序列,从高层图层转换为自己的项目:

+-----------+
| link SEQR |   <---- can start items here
+-----------+
      |
      |    link 2 phys
      v
+-----------+
| phys SEQR |   <---- can also start items here
+-----------+
      |
      |
      v
+-----------+
| phys DRV  |
+-----------+

您可以在两个序列发生器上启动项目,这使您可以在您选择的抽象级别上工作。 定序器本身将负责优先级排序并确保在物理接口上仅驱动一个项目。

以下是您可以查看的一些链接,以了解有关如何实现分层的更多信息:

http://verificationhorizo​​ns.verificationacademy.com/volume-7_issue-3/articles/stream/layering-in-uvm_vh-v7-i3.pdf

http://www.doulos.com/knowhow/sysverilog/uvm/easier_uvm_guidelines/layering/

我已经对话题的对话这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM