Jump to content

Search the Community

Showing results for tags 'uvm_cmdline_processor'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Accellera Systems Initiative
    • Information
    • Announcements
    • In the News
  • SystemC
    • SystemC Language
    • SystemC AMS (Analog/Mixed-Signal)
    • SystemC TLM (Transaction-level Modeling)
    • SystemC Verification (UVM-SystemC, SCV)
    • SystemC CCI (Configuration, Control & Inspection)
    • SystemC Datatypes
  • UVM (Universal Verification Methodology)
    • UVM 2017 - Methodology and BCL Forum
    • UVM SystemVerilog Discussions
    • UVM Simulator Specific Issues
    • UVM Commercial Announcements
    • UVM (Pre-IEEE) Methodology and BCL Forum
    • UVM 1.2 Public Review
  • Portable Stimulus
    • Portable Stimulus Pre-Release Discussion
    • Portable Stimulus 1.0
  • IP Security
    • IP Security Assurance Whitepaper Discussion
  • IP-XACT
    • IP-XACT Discussion
  • IEEE 1735/IP Encryption
    • IEEE 1735/IP Encryption Discussion
  • Commercial Announcements
    • Announcements

Categories

  • SystemC
  • UVM
  • UCIS
  • IEEE 1735/IP Encryption

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests


Biography


Location


Interests


Occupation


Company

Found 2 results

  1. I am trying to extend uvm_cmdline_processor as follows, but my extended version, ivm_cmdline_processor is not working. It seems like the *ref values* might not be getting passed correctly. There is no error message. The get_arg_values that is called with iclp is seen I know, because I receive a simulator warning about not using a void'() with the function. (This warning occurs for both the uclp and iclp usages, as expected.) I am not sure about my duplication of the get_inst function to create and return a singleton, but have tried versions of this code w/ and w/o it. `include "ivm_cmdline_processor.svh" module top; import uvm_pkg::*; ivm_cmdline_processor iclp; uvm_cmdline_processor uclp; string values[$]; initial begin $display(">>>> START TEST."); iclp=ivm_cmdline_processor::get_inst(); uclp=uvm_cmdline_processor::get_inst(); iclp.get_arg_values("+",values); foreach (values[iii]) begin $display("iclp>>>%0d: %0s", iii, values[iii]); end uclp.get_arg_values("+",values); foreach (values[iii]) begin $display("uclp>>>%0d: %0s", iii, values[iii]); end $display(">>>> END TEST."); end endmodule : top import uvm_pkg::*; class ivm_cmdline_processor extends uvm_cmdline_processor; static local ivm_cmdline_processor m_inst; static function ivm_cmdline_processor get_inst(); if(m_inst == null) m_inst = new("ivm_cmdline_proc"); return m_inst; endfunction function new(string name = ""); super.new(.name(name)); endfunction : new endclass : ivm_cmdline_processor Reason for attempt: I would like to add features to the uvm_cmdline_processor. To start, I'd like to enhance +arg checking by checking that the +args supplied are from a list of valid +args. Typos are too common from my fingers and without this functionality, typos go unnoticed. (Once I even was in a different sim environment than I thought and was happily running a test with plusargs for a completely different testbench, wondering why things weren't working as I expected.) I realize that I might create an object or 'shell', around uvm_cmdline_processor and do my checking in this 'shell'. I have a version of this now, but I'd like to make it generic so that it may be used across 'all' testbenches. Rather than polishing my shell, I am first trying to extend uvm_cmdline_processor and running into these problems. Any ideas about this? (I just discovered this next post from about 30min ago. Thanks, Srini. I think my problem is the same, but am not sure as I am not trying to 'mix' which handle (parent or child) points to my extended version of uvm_cmdline_processor. Yes, I am confused about this. re: http://forums.accellera.org/topic/1937-uvm-cmdline-processor-why-its-methods-are-non-virtual/ )
  2. SPOILER ALERT: I figured this one out, but since I'd already typed up most of the question, here it is anyhow posted to the public domain. Comments welcome. --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Who can tell me how to pass a hex value into Systemverilog using uvm_cmdline_processor? My current code is shown below as well as the command line option that is supplied. code snippet: bit [31:0] stimulus_xyz_min = 32'h12121212; // *** setting default here works fine `uvm_info(get_type_name(), $psprintf("1st TEST-SETTINGS. xyz_min=%8h",stimulus_xyz_min), UVM_LOW) if (cmdline_proc.get_arg_values(.match("+xyz_min="), .values(arg_values))) begin stimulus_xyz_min = arg_values[$]; end `uvm_info(get_type_name(), $psprintf("2nd TEST-SETTINGS. xyz_min=%8h",stimulus_xyz_min), UVM_LOW) command line option: //** this value passed in from cmdline is not properly recognized +xyz_min=09090909 The edited (for clarity) output is here (where you can see that the above +xyz_min did not 'take'): 1st TEST-SETTINGS. xyz_min=12121212 2nd TEST-SETTINGS. xyz_min=30393039 More +options/results data points listed here: +xyz_min=09090909 2nd TEST-SETTINGS. xyz_min=30393039 +xyz_min=00000000 2nd TEST-SETTINGS. xyz_min=30303030 +xyz_min=00000001 2nd TEST-SETTINGS. xyz_min=30303031 +xyz_min=00000002 2nd TEST-SETTINGS. xyz_min=30303032 +xyz_min=00000020 2nd TEST-SETTINGS. xyz_min=30303230 Woo-hoo. I looked at some other code I was using, which used stimulus_lkj = arg_values[$].atoi(); and then in the sv spec found atohex. Using the following worked (emphasis on .atohex()). `uvm_info(get_type_name(), $psprintf("1st TEST-SETTINGS. xyz_min=%8h",stimulus_xyz_min), UVM_LOW) if (cmdline_proc.get_arg_values(.match("+xyz_min="), .values(arg_values))) begin stimulus_xyz_min = arg_values[$].atohex(); end `uvm_info(get_type_name(), $psprintf("2nd TEST-SETTINGS. xyz_min=%8h",stimulus_xyz_min), UVM_LOW) +xyz_min=1ACECAFE 2nd TEST-SETTINGS. xyz_min=1acecafe Even thoe I initially thought I was seeing the ASCII values, I mistakenly looked at an ASCII table of decimal-to-char, instead of hex-to-char, which further confused me. I'd even tried this (as a wild hope that cmdline_processor would recognize it): +xyz_min=0x12121212 +xyz_min=32'h12121212
×
×
  • Create New...