Jump to content

Noob question about how to add configurability to a test.


Recommended Posts

Hello everyone,

 

I'm fairly new to the verification using UVM. I've watched a bunch of lectures about the UVM methodology from the MentorGraphics website, and implemented a simple UVM test for a simple FIFO I designed. Currently, this test has no configurability and that is the next step I'd like to take to get to know UVM better.

 

The FIFO is pretty simple, with 1 write and 1 read port, full and empty flags, and a reset. In my test all data and read/write flags are generated randomly, but I want to change that in order to be able to be me who says when to write, when to read and what to write.

 

 am not very familiar with the concept of inheritance but I get the idea. Because of that, I haven't got any class that is extended from any of my own classes.

 

My question is where should I get started to add some configurability to the test?

Should I make several configuration classes and have general sequence/monitor/agent classes that get a configuration and do what they are supposed to by having big classes that interpret those configurations

OR

Should I have several smaller sequence/monitor/agent classes, each one doing a different thing, and have a simple configuration object indicate to the test which sequence/monitor/agent classes to override/use

OR

somehow a mix of both

Any suggestions or resources about configurability are welcome!

Link to comment
Share on other sites

The test first performs the configuring; in it, you build your environment, and then configure the env and all components inside of it.  The test can change knobs in say, an agent's configuration object (e.g. leave out the driver path), or you can swap out any factory registered object with a child.

 

Your test then selects which sequence(s) to run.  If you want a randomized test, then run that sequence.  If you want a more directed test, run a different sequence.  You should create several child tests so that you can select which one you want to run from the command line switch.

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