uvm_reg_sequence——寄存器模型(六)寄存器模型 uvm_reg_sequence是UVM自带所有register sequence 的基类。 该类包含model, adapter, reg_seqr(uvm_sequencer). 感觉寄存器模型是个小的UVM系统。有自己uvm_reg_item, uvm_reg_sequence,reg_seqr, uvm_reg_adapter 是用来将寄存器的transaction 和 physical bus ...
uvm_reg_sequence是UVM自带所有register sequence 的基类。 该类包含model, adapter, reg_seqr(uvm_sequencer). 感觉寄存器模型是个小的UVM系统。有自己uvm_reg_item, uvm_reg_sequence,reg_seqr, uvm_reg_adapter 是用来将寄存器的transaction 和 physical bus transaction之间的转化 //---//TITLE: Register Sequ...
uvm_reg_sequence,只是实现了调用map中的读写操作,不支持burst_read,burst_write, 其中启动该sequence,需要reg_sequencer,连接一个driver。 或者在sequence中,直接调用已经存在的read,write task,这样配置的sequence,可以直接由此继承。 uvm_reg_item,uvm_sequence中的trnasaction类型,定义reg access的方式,包含一个uvm_...
另外一点,NO_REG_TESTS和NO_REG_HW_RESET_TEST区别在于前者针对所有的内建sequence都排除,而NO_REG_HW_RESET_TEST仅仅针对的是uvm_reg_hw_reset_seq这一单一sequence,又比如uvm_reg_bit_bash_seq使用的是NO_REG_BIT_BASH_TEST 由于内建sequence的启动是可以出现在任意task phase的任何地方的,所以我们只需要在执...
uvm_reg_hw_reset_seq用于检查上电复位后寄存器模型与DUT中寄存器的默认值是否相同。寄存器模型如果不调用reset函数,则其寄存器都会是0而非像DUT那样是复位值。该sequence在检查前会调用model的reset函数,然后通过前门访问的方式读取DUT所有寄存器的值,并将其与寄存器模型中的值比较。同样地,这个sequence也需要指定model变...
UVM:7.6.2 检查默认值的sequence 1.uvm_reg_hw_reset_seq 检查上电复位后寄存器模型与DUT 寄存器的默认值是否相同,原型为: 2.对于DUT,复位完成后,就是默认值。但是对寄存器模型,如果只是集成到验证平台,不做任何处理,所有值都是0,此时要调用reset 函数使其寄存器的值变为默认值:...
uvm reg的设计 项目中的reg_model一般只有一份,set到reg_sequence上,所以多个sequence并行启动结束的时候,reg model会成为一个共享资源。 uvm_reg_field中的volatile,主要来设置m_check的变量, m_check,主要用在uvm_reg的mirror task,以及read task,(需要map中配置check_on_read) ...
寄存器模型中的adapter就是一个适配器,提供了reg2bus和bus2reg的接口,充当uvm_reg_map和uvm_sequencer中的转换器。uvm_reg_map操作uvm_reg_bus_op类型的item,而uvm_sequencer操作uvm_sequence_item类型的item。 adapter 继承uvm_reg_adapter,重写reg2bus和bus2reg这两个pure virtual function。
uvm_sequence:由多个uvm_sequence_item组合而成,用于序列化数据。config:规范验证平台的行为。uvm_reg_item:用于寄存器模型中。uvm_phase:控制uvm_component的行为,用于在不同phase间平滑运转。与寄存器相关的类,如uvm_reg_map,uvm_mem,uvm_reg_field,uvm_reg等,均派生自uvm_object。常用的派生...
uvm_reg本质就是通过reg中的write,read等API,将读写请求,数据等通过API启动sequence发送给driver,...