vmm_opts::get_int
来源:互联网 发布:java程序输出杨辉三角 编辑:程序博客网 时间:2024/05/16 15:45
vmm_opts是vmm的系统类,包含了3个函数,get_int(),get_string(),get_bit();
利用opts函数,可以大大提高代码的重复利用率。
simv +vmm_opts+FOO=HELLO
simv +vmm_opts+FOO=100
参考文献 : http://www.testbench.in/VM_12_VMM_OPTS.html
Some of the test parameters in functional verification are passed from the command line. Passing Parameters from the command line allows simulating the same testcase file with different scenario. For example, let say you are verifying Ethernet protocol. Insert_crc_error.sv is a testcase file which verifies the DUT by sending CRC error packets. Now you can use the same testcase file to verify the DUT in 3 different modes , 10G 1000M and 100M modes by passing these parameters from the command prompt, this increases the testcase reusability.
As parameters became one of the most important techniques in reusing the testcases, vmm has added vmm_opts class to manage parameters efficiently.
vmm_opts captures parameter from run time options.
There are 2 ways to specify the parameters during runtime.
1) Command line
vmm_opts internally uses $plusargs to recognize the options specified on command line.
2) text file
If you have lot of parameters to mentions, then you can also mention all the parameters in a text file and pass it as command line options.
vmm_opts can recognize 3 types of parameters. They are
String type parameters
Integer type parameters
Bit type parameters
Following are the 3 static methods which are defined in vmm_opts to get the parameter values.
Static function bit get_bit(string name, string doc = "");
Static function int get_int(string name,int dflt = 0, string doc = "");
Static function string get_string(string name, string dflt = "", string doc = "");
The first argument is the name of the parameter and the argument "doc" is description of the runtime argument that will be displayed by the vmm_opts::get_help() method. as these methods are static, user dont need to construct the object of vmm_opts.
Argument "dflt" is the default value.
(S) How to give options
To supply a Boolean runtime option "foo" , use "+vmm_opts+...+foo+..." command-line option, or "+vmm_foo" command-line option, or the line "+foo" in the option file.
To supply a integer value "5" for runtime option "foo", use the "+vmm_opts+...+foo=5+..." command-line option, or "+vmm_foo=5" command-line option, or the line "+foo=5" in the option file.
To supply a string value "bar" for runtime option "foo" , use the "+vmm_opts+...+foo=bar+..." command-line option, or "+vmm_foo=bar" command-line option, or the line "+foo=bar" in the option file.
To supply a textfile which contains the runtime options, use "+vmm_opts_file=finename.txt"
+vmm_help command line option will print the run time options help. This option will call the vmm_opts::get_help() method.
The following is a basic example of how these parameters could be received using vmm_opts
(S)EXAMPLE
`include "vmm.sv"
class my_env extends vmm_env;
virtual function void gen_cfg();
integer foo1;
string foo2;
bit foo3;
super.gen_cfg();
`vmm_note(log,"START OF GEN_CFG ");
foo1 = vmm_opts::get_int("foo1" , 10 , "Help for the option foo1: pass any integer between 0 to 100");
foo2 = vmm_opts::get_string("foo2" , "default_string" , "Help for the option foo2: pass any string");
foo3 = vmm_opts::get_int("foo3" , "Help for the option foo3: just use foo3 to enable ");
`vmm_note(log,$psprintf("\n Run time Options \n foo1 : %0d \n foo2 : %s \n foo3 : %b \n",foo1,foo2,foo3));
`vmm_note(log,"END OF GEN_CFG ");
endfunction
endclass
program main();
initial
begin
my_env env;
env = new();
env.run();
end
endprogram
(S)Download the example
vmm_opts.tar
Browse the code in vmm_opts.tar
(S)Commands to complie
This works with vmm 1.1 and above.
vcs -sverilog -ntb_opts dtm +incdir+$VMM_HOME/sv main_testcase.sv
(S)Commands to complie
./simv
./simv +vmm_foo1=101
./simv +vmm_opts+foo1=101+foo2=Testbench.in
Following is log file generated using runtime option +vmm_foo1=101 +vmm_foo2=Testbench.in
(S)Log
Normal[NOTE] on Verif Env() at 0:
START OF GEN_CFG
WARNING[FAILURE] on vmm_opts(class) at 0:
No documentation specified for option "foo3".
Normal[NOTE] on Verif Env() at 0:
Run time Options
foo1 : 101
foo2 : Testbench.in
foo3 : 0
Normal[NOTE] on Verif Env() at 0:
END OF GEN_CFG
Simulation PASSED on /./ (/./) at 0 (1 warnings, 0 demoted errors & 0 demoted warnings)
0 0
- vmm_opts::get_int
- Creating Configurable Environments with Hierarchical and Global Options (vmm_opts) in VMM
- 安卓学习笔记——post方法 函数
- HTML5学习笔记——placeholder属性
- Immediate Decodability
- JSP页面中的pageEncoding和contentType两种属性
- Zigbee网络设备启动流程—终端(非自启动模式)
- vmm_opts::get_int
- 照片文件误删怎么才能恢复回来呢
- spring的AOP之java的动态代理
- 从TS流到PAT和PMT
- Android连接网络
- (详细)Hibernate查询技术(Query、Session、Criteria),Hibernate的三种状态,Hibernate集合struts2实现登录功能(二)
- apache2.2 虚拟主机配置
- 预览ExtJS 4.0的新功能(四):焕然一新的Store/Proxy
- 再谈面试之小米公司技术面试