1//示例22class reg2apb_adapter extends uvm_reg_adapter;3`uvm_object_utils(reg2apb_adapter)45functionnew(stringname="reg2apb_adapter");6super.new(name);7endfunction89virtualfunctionuvm_sequence_item reg2bus(const ref uvm_reg_bus_op rw);10apb_rw apb=apb_rw::type_id::create("apb_rw")...
在connect_phase中,adapter将uvm_reg_map和sequencer连接,实际就是调用set_sequencer给uvm_reg_map中的成员变量m_sequencerm_adapter赋值: functionvoidbase_test::connect_phase(uvm_phase phase); super.connect_phase(phase); ... rm.default_map.set_sequencer(env.bus_agt.sqr, reg_sqr_adapter); rm.defaul...
local uvm_reg_item m_item;//function: get_item///Returns the bus-independent read/write information that corresponds to//the generic bus transaction currently translated to a bus-specific//transaction.//This function returns a value reference only when called in the//<uvm_reg_adapter::reg2bus...
由于我们在本reg_block中只定义了一个map,因此可以直接用get_default_map获取该map,然后对该map设置sequencer和reg_adapter,sequencer其实就是在环境中用于配置寄存器的driver对应的那个sequencer,uvm_reg本质就是通过reg中的write,read等API,将读写请求,数据等通过API启动sequence发送给driver,然后通过driver去驱动interface...
Adapter的实现 Adapter的集成 访问方式 前门访问 后门访问 前门与后门的比较 前门与后门的混合应用 寄存器模型集成 总线UVC的实现 MCDF访问寄存器的总线接口时序较为简单。控制寄存器接口上首先需要在每个时钟解析cmd。 cmd为写指令时,需要把数据cmd_data_in写入到cmd_addr对应的寄存器中。
此变量中的信息要经过一个转换器(adapter)转换之后,交给 bus_sequencer,之后 bus_sequencer 交给 bus_driver,bus_driver 实现最终的 FRONTDOOR 读写操作。因此,必须要定义好一个转换器。 adapter classadapterextendsuvm_reg_adapter;stringtID=get_type_name();`uvm_object_utils(my_adapter)functionnew(stringname...
1)要将reg_predictor和 bus_agt的 ap 连接,并设置reg_predictor 的adapter 和map。 2)只有设置map 后,才能将predictor 和寄存器模型关联在一起。 4.只有一个主设备时,左右两图完全相等。如果有多个,左图会漏掉某些transaction。 5.添加完后,其实存在两条寄存器模型的路径,右图:1.虚线 2.predictor。如果要彻底...
reg2apb_adapter apb_adapter = new("apb_adapter"); regmodel.default_map.set_sequencer(apb.sqr, apb_adapter); regmodel.default_map.set_auto_predict(0); apb.mon.ap.connect(predict.bus_in); predict.map = regmodel.default_map; predict.adapter = apb_adapter; ...
virtual function uvm_reg_adapter get_adapter (uvm_hier_ehier=UVM_HIER) Gets the bus adapter for the bus associated with this map. Ifhieris set toUVM_HIER, gets the adapter for the bus used at the system-level. Seeset_sequencer.
Hi, I would like to know the answers for the following questions, Why we are using kind and command keyword in Reg_adapter reg2bus will convert register transaction to bus transaction , why we are giving uvm_sequence_…