Jump to content

Recommended Posts

Posted

I am using RAL in my UVM testbench. I have a typical microprocessor memory mapped system. And I have modeled all memories and registers using the UVM RAL classes.

For this I needed to provide a "RAL adapter", a class that extends uvm_reg_adapter. In this class I provided an implementation for the methods "reg2bus" and "bus2reg" to translate the RAL transaction into a transaction that my BFM can execute.

Here is the problem: My microprocessor will execute burst transactions. So when read data is returned (or write data is written) a whole array of data can be written/read. However, the adapter class methods "reg2bus" and "bus2reg" take an argument that's a "struct" and the data in this struct is a single-beat 2-state data property, whereas I need to be an array of 4-states.

Furthermore, since this argument is a struct, not a class, I cannot use factory overrides to possibly replace the transaction with another class type that I define.

Any suggestions?

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...