您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > verilog和system-verilog产生不重复随机数序列的方法
相信各位设计/验证工程师在写verilogtestbench的时候都会需要产生随机数,如果你直接调用系统自带的$random系统函数的话,你会发现每次仿真产生的随机数序列是一样的,这是因为调用随机数系统函数时没有指定随机数种子,系统会直接调用默认的种子,所以每次产生随机数都用了同样的种子,那么随机数序列也就是一样的。下面提供两种产生每次都不一样的随机数序列的方法:1.在vcs脚本中产生随机种子在vcs脚本中添加:setseed=''setseed=$$$$+ntb_random_seed=$seed\这种方式只需要在bench中用$urandom就可以每次都产生不一样的随机数,如果要配置种子,则使用命令:run+seed=12342.在bench中产生随机种子testbench中加入以下代码:importDPI-Cfunctionintc_random();initialbegin:random_seed_capif($value$plusargs(SEED=%d,seed))begin$display(“usetheoutsideseed”);endelsebeginseed=c_random();$display(“therandomseed=%d”,seed);endend在bench中使用random_dat=$random(seed)就能产生不重复的随机数序列。如果需要指定随机数种子,在run命令中加上:+SEED=1234就能指定这次仿真产生的随机数序列是以1234为种子。文件:“c_random.c”#includestdlib.h#includetime.h#includeunistd.h#includesvdpi.h#includevpi_user.h#includeveriuser.hlongintc_random(){longintseed;time(&seed);seed=seed*getpid();srand(seed);return(rand());}
本文标题:verilog和system-verilog产生不重复随机数序列的方法
链接地址:https://www.777doc.com/doc-5225197 .html