寄存器模型的自动化生成
编写excel文件,后缀为csv;编写python脚本
才cmd中输入这两个文件的路径和命名就可以自动生成寄存器模型rgm
寄存器模型的更新
最开始的寄存器模型是这样的
在reg_pkg中,这些接口信号作为uvm_sequence_item定义为reg_trans类。约束,注册,域的自动化,new函数,一个不要落。
class reg_trans extends uvm_sequence_item;
rand bit[7:0] addr;
rand bit[1:0] cmd;
rand bit[31:0] data;
bit rsp;
constraint cstr {
soft cmd inside {`WRITE, `READ, `IDLE};
soft addr inside {`SLV0_RW_ADDR, `SLV1_RW_ADDR, `SLV2_RW_ADDR, `SLV0_R_ADDR, `SLV1_R_ADDR, `SLV2_R_ADDR};
addr[7:4]==0 && cmd==`WRITE -> soft data[31:6]==0;
soft addr[7:5]==0;
addr[4]==1 -> soft cmd == `READ;
};
`uvm_object_utils_begin(reg_trans)
`uvm_field_int(addr, UVM_ALL_ON)
`uvm_field_int(cmd, UVM_ALL_ON)
`uvm_field_int(data, UVM_ALL_ON)
`uvm_field_int(rsp, UVM_ALL_ON)
`uvm_object_utils_end
function new (string name = "reg_trans");
super.new(name);
endfunction
endclass