1.2.3. uvm_reg_map 关于uvm_reg_map的创建,方法也很多,第一种,在例化uvm_reg_block的component中也例化uvm_reg_map,然后调用其configure函数,配置base address,大小端,关联的uvm_reg_block等。这里介绍另一种方法,uvm_reg_block自带了一个create_map函数,我们直接调用该函数,假设我们在uvm_test中定义了reg_bl...
然后,从uvm_reg_block里派生一个寄存器组(block)类,在这个类里也有一个build函数,完成各个寄存器的实例化,default_map的实例化和地址的配置,这样一个简单的寄存器模型就建好了。 22 class reg_model extends uvm_reg_block; 23 rand reg_invert invert; 24 25 virtual function void build(); 26 default_map ...
一个uvm_reg_block中一定要对应一个uvm_reg_map,系统已经有一个声明好的default_map,只需要在build中通过调用uvm_reg_block的create_map来将其实例化,create_map有众多的参数,其中第一个参数是名字,第二个参数是基地址,第三个参数则是系统总线的宽度,这里的单位是byte而不是bit,第四个参数是大小端,最后一个...
uvm_reg_map:每个寄存器在加入寄存器模型时都有其地址,uvm_reg_map 就是存储这些地址,并将其转换成可以访问的物理地址(因为加入寄存器模型中的寄存器地址一般都是偏移地址,而不是绝对地址)。当寄存器模型使用前门访问方式来实现读或写操作时,uvm_reg_map 就会将地址转换成绝对地址,启动一个读或写的 sequence,...
uvm_reg_map:每个寄存器在加入寄存器模型时都有其地址,uvm_reg_map 就是存储这些地址,并将其转换成可以访问的物理地址(因为加入寄存器模型中的寄存器地址一般都是偏移地址,而不是绝对地址)。当寄存器模型使用前门访问方式来实现读或写操作时,uvm_reg_map 就会将地址转换成绝对地址,启动一个读或写的 sequence,并将...
右边是真实硬件实现,左边是软件模型硬件里面所有的寄存器都要从软件里面构建起来;所有硬件信息都在map里面要构建起来; 利用软件的寄存器模型,可以做驱动 1、一个寄存器以由多个域构成,而单个域可以包含多个比特位;一个功能模中的多个寄存器可以组团构成一个寄存器模型(register model)。示图中除子包含DUT的寄存器模块(由...
6.2.1自动预测:uvm_reg_map::set_auto_predict() 6.2.2 显示预测:explicit(更准确) 6.3 uvm_reg的访问方法 6.3.1 uvm_reg_block\uvm_reg\uvm_reg_feild方法 6.3.2 uvm_reg_sequence方法 6.3.3 reset()/get_reset() 6.3.3 mirror() 6.3.4 set()和update()对寄存器做批量修改 6.4 uvm_mem 6.5 内...
寄存器模型中的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 bus_map; ... virtual function void build(); reg0 = dummy_reg::create("reg0"); reg0.configure(this); reg0.build(); bus_map = create_map("bus_map", 'h0, 1, UVM_LITTLE_ENDIAN); default_map = bus_map; bus_map.add_reg(reg0, 'h0, "RW"); ...
一个uvm_reg_block中一定要对应一个uvm_reg_map,系统已经有一个声明好的default_map,只需要在build中将其实例化。这个实例化的过程并不是直接调用uvm_reg_map的new函数,而是通过调用uvm_reg_block的create_map来实现,create_map有众多的参数,其中第一个参数是名字,第二个参数是基地址,第三个参数则是系统总线的...