Jump to content
c4brian

RivieraPro bind interface to DUT

Recommended Posts

I am having a major hangup with RivieraPro... I bind an interface to a VHDL instance, but I am unable to set this interface into the configuration Database.

 

  interface whitebox_if(
    input logic some_signal,
    input logic some_other_signal
  );
  endinterface

 

MyDut dut (...);

 

bind dut whitebox_if wb_if ( sig1, sig2); // works

 

initial
    uvm_config_db #(virtual whitebox_if)::set(null, "*", "v_interfaces" , dut.wb_if); // fails!!! 

 

Fatal Error: ELAB2_0036 Unresolved hierarchical reference to "dut.wb_if" from module "dut_top" (module not found).

Share this post


Link to post
Share on other sites

Probably you should contact Aldec's Technical Support or you could use this workaround - try to use binding to module instead binding to instance in your case it would be:

bind MyDut whitebox_if wb_if ( sig1, sig2);

instead yours:

bind dut whitebox_if wb_if ( sig1, sig2);

This should helps.

Share this post


Link to post
Share on other sites

Just for reference.. Aldec support finally shared a workaround that seems to work.  Yes, the syntax is a little strange, but this is an Aldec "wrapper" file path.

 

virtual my_interface_if vif;

vif = dut_top.\bind:dut_inst:sig_if .sig_if; // normally this would just be dut_top.sig_if
uvm_config_db #( virtual my_interface )::set( null , "*" , "my_interface", vif ) ;

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

×