Jump to content

How can I access the same address register (UVM_REG) via multiple BFMs?


Recommended Posts

Dear all,

 

I'd like to access a register via multiple physical interfaces (bfm).

 

Is it possible to set 2 different sequencers to the registers with same address?

 

I have read this is a known issue from this forum.

 

Could anybody give me a good example?

 

I'm looking for a solution that there is no problem in prediction as well as write/read of UVM_REG.

 

Thanks & Regards,

 

 

Link to comment
Share on other sites

I believe you are looking for register aliasing.

 

An obvious comment on prediction: you will have to choose either one of the BFM's or a backdoor to provide prediction since it would be awkward to read multiple versions for this and then decide if they matched. Mind you, this doesn't prevent reading values through each of the different BFM's to compare and verify the read paths are equivalent.

 

Observation: You may have to also consider whether each of the BFM's is always accessible in choosing the solution for prediction. With some of today's electronics, sections may be powered down or disconnected at times.

Link to comment
Share on other sites

  • 1 month later...

I believe you are looking for register aliasing.

 

An obvious comment on prediction: you will have to choose either one of the BFM's or a backdoor to provide prediction since it would be awkward to read multiple versions for this and then decide if they matched. Mind you, this doesn't prevent reading values through each of the different BFM's to compare and verify the read paths are equivalent.

 

Observation: You may have to also consider whether each of the BFM's is always accessible in choosing the solution for prediction. With some of today's electronics, sections may be powered down or disconnected at times.

 

 

 

hi,

 

this isnt register aliasing (aliasing would be to access the same reg via the same IF on a different address). I think the point here is that uvmreg supports that of course BUT since you cant have multiple sequencer for a map (and you cant have a attach the same map into different parent maps (each with a sequencer)) the path is to create a new map with the same contents as the primary map and just supply a different sequencer for that map.

 

 

there is another problem here which is the fact that accesses to a register are serialized by the register and not by the lower level infrastructure/bus/arbitration. the result is that if you model a single register in a component (with two slave ports of different busses and both ports can access the same register of the component) then with the setup mentioned below you will NOT get any concurrent accesses to the same register from both busses. essentially the current implementation forces that there can be only ONE ongoing access to a single register instance at a time. 

 

/uwe

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...