delon0001 Posted March 28, 2014 Report Share Posted March 28, 2014 I am learning UVM. So far I was able to create the following environment for my DUT. Agents with monitors, drivers and sequences for all of the input-output interfaces from my DUT. A top level UVM env. Sequences to send valid data to DUT. I yet to implement scoreboard. I'm having some trouble to understand how to handle scenarios like following: For one of my tb->dut interfaces, TB needs to wait for an event (or transaction) from DUT. Once it receives the transaction from DUT, TB needs to send back a response. What is the best way to implement this? How can I monitor DUT transaction from sequence? I assume I need to wait for an event or something similar which will tell me that DUT has a new valid output in its interface. My agents have monitors which will monitor any new output signals from DUT. So, do I need to somehow bring this data from agent's monitor to my test/sequence class? I know that monitor has an analysis port and it can be used to send received data to scoreboard for checking. So, do I need to use the same port to read DUT output data, create valid response and send it to DUT? Thanks! Quote Link to comment Share on other sites More sharing options...
steve Posted April 1, 2014 Report Share Posted April 1, 2014 Hi, This situation is best handled with a reactive slave driver functionality in your agent: When the driver observes a valid sequence of signal transitions which signify the end of a transaction, then it can drive a response into the DUT. The response item will come from the agent sequencer. Using this scheme you will be able to control (constrain) the type of response that the DUT will receive. There is an example of a reactive slave in the UBUS example included with the UVM class library. Regards, Steve Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.