调用create_map函数完成default_map的实例化,default_map = create_map(“default_map”, 0, 2, UVM_LITTLE_ENDIAN, 0); 第一个参数,表示名字; 第二个参数,表示该 reg block 的基地址; 第三个参数,表示寄存器所映射到的总线的宽度(单位是 byte,不是 bit ); 第四个参数,表示大小端...
26 default_map = create_map("default_map", 0, 2, UVM_BIG_ENDIAN, 0); 27 28 invert = reg_invert::type_id::create("invert", , get_full_name()); 29 invert.configure(this, null, ""); 30 invert.build(); 31 default_map.add_reg(invert, 'h9, "RW"); 32 endfunction 33 34 `...
classmy_regmodelextendsuvm_reg_block;randmy_regversion;functionvoidbuild();default_map=create_map("default_map",0,2,UVM_LITTLE_ENDIAN,0);version=my_reg::type_id::create("version",,get_full_name());version.configure(this,null,"version");version.build();default_map.add_reg(version,16'h4...
uvm_reg::include_coverage("*", UVM_CVR_FIELD_VALS); regmodel = block_reg::type_id::create("block", this); regmodel.build(); regmodel.set_coverage(UVM_CVR_FIELD_VALS); regmodel.lock_model(); regmodel.default_map.set_auto_predict(0); //从DUT更新寄存器模型的一种方式 至此后门访问已...
右边是真实硬件实现,左边是软件模型硬件里面所有的寄存器都要从软件里面构建起来;所有硬件信息都在map里面要构建起来; 利用软件的寄存器模型,可以做驱动 1、一个寄存器以由多个域构成,而单个域可以包含多个比特位;一个功能模中的多个寄存器可以组团构成一个寄存器模型(register model)。示图中除子包含DUT的寄存器模块(由...
map = create_map("map",'h0,4,UVM_LITTLE_ENDIAN,0);//实例化map map.add_reg(chnl0_ctrl_reg,32'h0000_0000,"RW");//将 uvm_reg 添加到 map 中 ... lock_model();//不允许外部访问 endfunction endclass 1. 2. 3. 4. 5.
create_map,用于uvm_reg_block直接定义,创建并且配置一个uvm_reg_map对象,相关配置由本函数的参数提供...
寄存器模型中的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_reg_map:每个寄存器在加⼊寄存器模型时都有其地址,uvm_reg_map 就是存储这些地址,并将其转换成可以访问的物理地址(因为加⼊寄存器模型中的寄存器地址⼀般都是偏移地址,⽽不是绝对地址)。当寄存器模型使⽤前门访问⽅式来实现读或写操作时,uvm_reg_map 就会将地址转换成绝对地址,启动⼀...
uvm_reg_map map); super.sample(data,byte_en,is_read,map); sample_values(); endfunction function voidsample_values(); super.sample_values(); if(get_coverage(UVM_CVR_FIELD_VALS))begin value_cg.sample(); end endfunction endclass