美文网首页
UVM中参数化的类

UVM中参数化的类

作者: li_li_li_1202 | 来源:发表于2022-02-24 18:02 被阅读0次

截止到目前我了解到的UVM类只有uvm_sequence/uvm_sequencer_param/uvm_driver是带有参数化的类型的。

uvm_driver#(REQ,RSP)

  • 默认的情况下REQ=RSP
  • 默认的类型是uvm_sequence_item
  • TLM端口uvm_seq_item_pull_port
    my_driver extends uvm_driver(my_transaction)
    seq_item_port.get_next_item(req)
  • 其中req的类型默认是my_transaction,如果没有声明,那默认就是uvm_sequence_item的类型。
  • 规范来讲的话,这里要写成my_transaction

uvm_sequencer_param#(REQ,RSP)

  • 默认RSP=REQ
  • 默认的类型为uvm_sequence_item
  • uvm_tlm_fifo就是sqr和driver的item的FIFO。
  • rerandomize=1的时候的randomize,一定要用my_ransaction
  • 这个类对用户的可见度比较低。

uvm_sequencer#(REQ,RSP)

  • uvm_sequencer extends uvm_sequencer_param_base
  • 通过tlm端口我们知道,driver里面的seq_item_port.get_next_item就是对应的调用的uvm_sequencer的,所以这里面有一个隐形的规定,uvm_sequencer和uvm_driver的参数应该保持一致。

小结:要保证uvm_sequencer/uvm_sequence以及uvm_driver的参数一致性。

如果一个seq要发送不同的item,item之间并没有继承关系。可以参看张强的6.4.3.
多说一句有关于这里的两个cast:

  • req实际上是从seq那一侧的item例化的,指向的是my_transaction和you_transaction。
  • cast是同类型对象的转换,driver的req一定要是seq那边过来的,所以这里不能自己new一个item,如果那样的话,这就不是UVM的框架了!!!

相关文章

  • UVM中参数化的类

    截止到目前我了解到的UVM类只有uvm_sequence/uvm_sequencer_param/uvm_driv...

  • 实例化对象

    在面向对象的编程中,通常把用类创建对象的过程称为实例化,其格式如下: 类名 对象名 = new 类名(参数1,参数...

  • Java 泛型Type

    Java中的Type 接口 ParameterizedType 参数化类型 作用于类、参数类型上,如Map , f...

  • Kotlin学习笔记之 11 枚举类

    11.Kotlin 枚举类 枚举类初始化关键字是enum,kotlin中的枚举类初始化可以有参数,比如:enum ...

  • Chapter 19 《Type Parameterizatio

    类型参数化允许设计泛型的类和特质。在Scala中必须确定类型参数,型变定义了参数化类型的继承关系,例如List[S...

  • Java反射--MonkeyKing

    获取类 获取类中的参数 获取类中的方法 获取构造函数 实例化对选 万能get set方法 测试

  • Java并发编程

    Java泛型(类型参数化)接口或者类泛型,类型参数放在接口名或者类名后面方法中的泛型参数放在修饰符public/p...

  • 34. 泛型

    泛型即参数化类型。将类型参数化,可以用在类、接口、方法上。泛型类 创建类的实例时,要指定类型的参数。或者赋值让编译...

  • 第三章 UVM基础

    3.1 uvm_component与uvm_object 3.1.1 uvm_component派生自uvm_ob...

  • 泛型

    泛型的本质是参数化类型,即将操作数的数据类型指定为一个参数。当这种参数类型用在类中时,就称该类为泛型类。泛型类的格...

网友评论

      本文标题:UVM中参数化的类

      本文链接:https://www.haomeiwen.com/subject/xdizlrtx.html