Jump to content
vismayp

Accessing an Output port through Backdoor using UVM Register Model

Recommended Posts

Hi Guys,

  I am using UVM Register model to mimmick RTL's register implementation. Some registers are not implemented in RTL which are going to be connected to output port of some other module.

I have got a HDL path of register as an output port declaration of some module.

 

Something like:

   The HDL path is: "tb_top.dut_u.interrupt_module_u.o_ext_interrupt"

 

o_ext_interrupt is declared as output port inside interrupt_module, which is not connected to any other wire or register.

 

Can this output port's value be changed by writing to it via UVM BACKDOOR ? 

 

I am using following API:

register_name.write(status,data,UVM_BACKDOOR,default_map);

 

I dont see any change in value in the register. I think it is happening because the destination (o_ext_interrupt) is output of the module.

 

I am using Cadence's simulator: irun.

 

Please help if anyone is aware of such issue.

 

Regards,

Vismay.

Share this post


Link to post
Share on other sites

If the port is not connected, it is likely declared as a wire rather than a var'iable. I would expect you would need to force (uvm_hld_force) the the port rather than just a simple write. If you are trying to do this via a register, then you will need to query the register for the path to that bit in order to use force (uvm_reg::get_full_hdl_path). You will also need to learn about uvm_hdl_path_concat. These are all documented in the class reference.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×