mrforever Posted October 8, 2012 Report Share Posted October 8, 2012 Hi, Suppose there is a situation like this, An env has one DUV, one master agent and one slave agent. DUV has only one slave interface, which is used to receive the transaction from master agent. Now you want to generate different kinds of transactions (not different pattern of the same transaction) to the DUV from master agent, but there are only one driver in the master agent, how will you do with this problem? I have one idea for this problem, but I am not sure whether it's okay. My idea is something like this: 1) create different item classes as the sub items, such as a_item, b_item and c_item, which are extend from class uvm_sequence_item 2) create one item(my_item) as the top item. a_item, b_item and c_item are my_item's members, then use `uvm_field_object(a_item, UVM_ALL_ON) to factory the sub items in class my_item 3) create a_sequence, b_sequence and c_sequence to generate a_item, b_item and c_item 4) create one virtual sequence(vir_seq) as top sequence. Its body can excute a_sequence, b_sequence and c_sequence concurrently via fork/join. 5) create one sequencer(my_sqr) which can start vir_seq as the default sequence. 6) create one driver(my_dri) to receive my_item from my_sqr. I don't know whether the macro `uvm_field_object(a_item, UVM_ALL_ON) is okay? If it is okay, how can i compare a_item via my_item when a_item exist in the env independently? Can the virtual sequence be the default sequence of one non-virtual sequencer？ Maybe there is best way to solve the problem. Thanks mrforever Quote Link to comment Share on other sites More sharing options...
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.