UVM regmodel怎么创建新的寄存器访问属性,如"RW"等
时间: 2024-01-22 21:04:05 浏览: 193
在UVM Register模型中,有四种预定义的寄存器访问属性类型,分别是“UVM_ACCESS_NONE”、“UVM_ACCESS_RO”、“UVM_ACCESS_WO”和“UVM_ACCESS_RW”,分别对应不可访问、只读、只写和读写四种访问属性。如果需要创建新的寄存器访问属性类型,可以按照上面的步骤进行创建。
例如,如果需要创建一个新的寄存器访问属性类型“UVM_ACCESS_RW1”,可以按照以下步骤进行:
1.定义新的寄存器访问属性类型“UVM_ACCESS_RW1”,并继承“uvm_reg_access”类。
2.在“UVM_ACCESS_RW1”类中重写“get_kind”方法,返回“UVM_REG_FIELD_RW”。
3.在UVM Register模型中,注册新的寄存器访问属性类型“UVM_ACCESS_RW1”,可以使用“uvm_reg_access”类的“register_access”方法。
例如,以下是创建一个新的寄存器访问属性类型“UVM_ACCESS_RW1”的示例代码:
```systemverilog
class UVM_ACCESS_RW1 extends uvm_reg_access;
rand bit [1:0] my_field;
function new(string name = "UVM_ACCESS_RW1");
super.new(name, UVM_ACCESS_RW, UVM_BACKDOOR);
my_field = 0;
endfunction
virtual function uvm_reg_field_kind get_kind();
return UVM_REG_FIELD_RW;
endfunction
endclass
initial begin
uvm_reg_access::register_access(UVM_ACCESS_RW1::get_type(), "UVM_ACCESS_RW1");
end
```
这样,就可以在UVM Register模型中使用新的寄存器访问属性类型“UVM_ACCESS_RW1”了。
阅读全文