• 2024-03-21UVM - 21(vritual sequence)
    内容virtualsequence管理sequence在多个agent中管理序列的执行不同agent执行的sequence有先后顺序如果设置default_sequence会并行执行virtualsequence/sequencer通过virtualsequencer中的sequencer调用virtualsequence中的sequence虚序列器:virtualsequen
  • 2024-03-15UVM -11 (练习)
    sequencer使用usersequencer类的创建classgpio_sequencerextendsuvm_sequencer#(gpio_transfer);`uvm_component_utils(gpio_sequencer)functionnew(stringname,uvm_componentparent);super,new(name,parent);endfunctionendclassvirtualsequencer
  • 2024-03-15UVM - 10 (Sequence机制-2)
    配置sequence:基于instance基于instance配置的好处基于sequencer配置sequence基于sequencer配置的好处基于agent配置sequence在phase中隐式执行sequence显式执行sequencesequence的优先级和权重weightsequencer-driver响应端口(reportport)sequencer-driver
  • 2024-03-15UVM - 7 (Sequence机制)
    内容sequence概述uvm_sequence_item-数据建模uvm_sequence-产生数据uvm_squencer-将产生的数据给到driveruvm_driver-数据驱动给dutsequencer是uvm组件,一个sequencer可以调用多个sequenceuvm_squenceclass普通成员sequence执行流程sequencer和driver是
  • 2023-07-31UVM:6.4.4 p_sequencer 的使用
    1.考虑如下情况,sequencer有如下变量:2.在sequence发送transaction时,必须设置此dmac和smac,sequence的body如何得到这两个值呢?1)在介绍sequence时,内部有m_sequencer,直接使用m_sequencer得到这两个变量:编译错误:因为m_sequencer是uvm_sequencr_base(uvm_sequencr的基类)类型,而不
  • 2023-07-31UVM:6.3.1 uvm_do系列宏
    1.uvm_do系列宏主要有以下8个:1)uvm_do_on用于显式指定那个sequencer发送此transaction。第一个是transaction指针,第二个是sequencer指针。2)使用uvm_do时,默认的sequencer就是此sequence启动时为其指定的sequencer,sequence将这个sequencer的指针放在其成员变量m_sequencer中。
  • 2023-07-31UVM:6.2.3 sequencer 的grab 操作
    1.grab比lock优先级更高。2.lock是插到sequencer仲裁队列的后面。3.grab则是插到前面,一发出就拥有sequencer的所有权。4.如果遇到lock,grab不会打断lock,等待lock完成。5.两个grab试图获取,和lock一样,先获得先用,用完再给另外一个。6.my_case0:7.结果
  • 2023-07-15p_sequencer的使用
    为什么要有p_sequencer?sequence是从uvm_object拓展而来,所以不能访问uvm_component组成的uvm层次结构的,不能通过组件层次调用访问成员变量(如,在env中访问driver的成员变量htrans,可以通过m_env.m_agt.m_drv.htrans来访问)。那sequence如何访问uvm_component的成员变量呢?通过媒介:se