Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by ejessen

  1. Hi, I'm trying to determine if "import" statements should be within package statements or not, when it comes to random stability.
  2. scoreboard1 and scoreboard_fred are two different classes. Ideally, I'd have a scoreboard_base class, that each scoreboard would derive from. But I'm not clear how this would really solve my problem. Let's say that the scoreboard creates an instance (or a copy) of an incoming sequence-item, and then wants to print it. I want the print functions in the seq-item to use the locally-defined printer (so that the seq-item output goes to the file defined by the scoreboard). But I don't see a way to do that.
  3. Hi, I have multiple scoreboards. For each, I would like all the output to go to a locally-specified file. For example, scoreboard1 would output to 'scoreboard1.log', scoreboard_fred to 'scoreboard_fred.log'. However, there doesn't seem to be a way to redirect all output within a class and still use the `uvm_info/debug/warn/err macros. Have I missed anything?
  4. The search engine refuses to search for UVM keywords. For example: 'enable_stop_interrupt' is reported as being too common or too short. So there's no way to find any threads discussing how to replace it. In general, the search engine should allow for all UVM keywords - if the user gets too many hits, they'll have to work on their search strings to get fewer hits. But refusing to allow the user to get anything makes the forums often makes the forum useless - I'm better using 'google'.
  5. Hi, I would like to selectively redirect <uvm_object>.print() statements, by providing a new uvm_printer argument. But all I want to do is just create a separate output file. I'm sure I could eventually work through how to get it all working, but was hoping someone had an example out there that they could post. In general, could the uvm examples include more items for things like this? If someone's posted something to the forums, it'd be great if (in general) the example solution was added to the uvm examples - then people could just search there.
  6. Hi, I've seen no releases on OVL since 2011. What's the status of OVL? if it's not under active development, what have people used to replace it in a UVM+SV environment?
  7. For example, I would love to see a 'issue exists in release' and 'issue fixed in release' column for issues, so that I can filter out all the issues with converting from OVM to UVM-EA, since I'm running on 1.1. Some things, such as answers that recommend using now-deprecated functionality, could also be tagged this way. Or the answers could/would hopefully be updated to reference the new methods; probably people still have the same questions.
  8. Hi, I would like to have a class which prints uvm_info/uvm_debug type messages, but to a different output file (rather than to default output, where everything else goes). It's not clear to me how to go about that - everything I've tried has resulted in printing to the normal output, so I think there's some big-picture thing I'm missing. I created a test-case with uvm_report_object, gave it output filename, etc. but all output still goes to default output. I suspect it's just a few lines of code, but I'm stuck. I've searched here, all the UVM websites I could find, and I can't find anything. Could someone possibly post an example? Thanks, Erik
  9. I'd like to output monitor/scoreboard outputs in XML format, so that they can later be parsed using scripts for data-mining. I've been trying to understand the UVM printing system, and am looking for some examples. Also - this would seem to be of general use - perhaps a new builtin print format (along with table, etc.) might be useful in UVM.
  10. yes, I saw that I can swallow errors using report-catcher. But I want a positive evidence that the error-detection fired, not simply turning off the error. Essentially - I want an error-scoreboard: all the errors that I expected to see, were seen (or else I get an error), and no unexpected errors were seen. I thought about modifying the report-catcher to have a static list of which errors were sent to it, and then it could do the checking that all errors detected were expected. What do you think of having the report-catcher having a list of expected-errors: for each of those errors that occurs, it a) converts it to an INFO (so that the logfile shows the time/location where the error was reported) sends the information to an actual scoreboard in my testbench, that knows the list of expected-errors and then I can use the usual system in scoreboards of comparing expected v. actuals? Or is there some better method to actively verify that all expected errors were seen?
  11. In addition to chip-design, I've done a lot of OO SW development. I very much like doing unit-testing. I need to verify that my integrity-tests and other checks work in an automated test. I would assume that other verification engineers have the same problem, and that UVM has some method of doing it. But it's not obvious to me, so I'll assume (in my ignorance) that it doesn't exist... So, in UVM, what's the best way to create a test-case such that if a specific assertion fires, the test passes, and the test fails otherwise? I would like to get a PASS iff the following occurs: 1) every element in a list of expected errors is seen 2) each element in the list consists of: ID (the ID passed into `uvm_error) file line error_count_min, error_count_max (in the case of lists, I may expect the error to occur <N to M> times) I would prefer to have a method to specify the ID code as: {error_code_enum, error_code_instance} rather than have to use file/line, but that's an enhancement for later. This would seem like a generally useful thing in UVM - everybody has to verify that their error-detection logic works. Thanks, Erik
  12. Thanks! Is there any documentation on the other arguments to read()/write(), and how to use them?
  13. Hi, I am looking for documentation and examples on uvm_reg::read() and write(). I am implementing an onchip token-ring type bus, and so need to include source/dest and other information to be passed from the uvm_reg::read()/write() to the adapter, so that the ring-bus will have all appropriate fields. My suspicion is that the uvm_reg::read()/write() 'extension' argument is indended for such use, but I haven't spotted anything showing how to use it.
  14. I am running IUS 10.2. I modified the example in uvm/examples/simple/configuration/manual/my_env_pkg.sv so that it would print the config_db after printing the topology. task run_phase(uvm_phase phase); phase.raise_objection(this); $display("TOPOLOGY ........................................"); uvm_top.print_topology(); $display("CONFIG_DB_DUMP........................................"); uvm_config_db::dump(); #10; phase.drop_objection(this); endtask the topology looks correct: all variables and their values properly appear (a snippet shown below) TOPOLOGY ........................................ UVM_INFO @ 0: reporter [uVMTOP] UVM testbench topology: ---------------------------------------------------- Name Type Size Value ---------------------------------------------------- topenv my_env - @4769 inst1 A - @4871 u1 C - @5025 v integral 32 'h1e s integral 32 'h10 myaa aa_string_string 3 - myaa[bar] string 3 bye myaa[foo] string 3 boo myaa[foobar] string 6 boobah However, the config_db::dump() only shows '?' for values. === resource pool === debug [/^topenv\..*$/] : ? - myaa[bar] [/^.*$/] : ? - myaa[foo] [/^topenv\.inst1\.u1$/] : ? - myaa[foo] [/^.*$/] : ? - since the values in the topology are read from the config_db, it would appear that I'm running into a problem with do_print(), but I do not understand why UVM wouldn't already properly print SV classes like 'int' and 'string'. So I suspect pilot-error, but I haven't been able to spot it.
  15. Where could I find Release Notes for 1.0p1 and the upcoming 1.1? I'm looking for the following information on 1.0p1, to take an example: - feature changes (Ex: 1.1 changes Phasing, a series of macros and member functions are deprecated) - bug report: all bugs known in 1.0EA through 1.0p1, and their status (even if the bug isn't fixed, if I know about it, I can see if it's affecting me and I don't know it). - conversion process - what things can be safely changed and still be backward/forward compatible (this is usually deprecated code) - what things can be changed using scripts/semi-automatically (and how) - what things require careful review and understanding of the user's codebase (and examples of suggested methods to make the change)
  16. Janick, Thank you; I would have expected that a default/recommended directory structure for UVM packages would have occurred. Is there at least something like that?
  17. I found the "UVM Interface VC Compliance Checks" (uvm_compliance.docx). I very much liked it, but I found: PKDF [Recommended] Valid distribution format—verify that the package is distributed according to UVM recommendations, as a compressed tar file with the name including the package name and the version number: <package>_version_<version>.tar.gz My questions are: 1) Where are the UVM recommendations on package format/directory structure? I looked in the various docs on uvmworld, but couldn't find anything obvious. 2) Are there any free automated tools that do these compliance checks?
  • Create New...