ljepson74 Posted June 27, 2013 Report Share Posted June 27, 2013 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 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.