Questasim设置仿真随机种子(random seed)

news/2025/3/16 8:11:36/

在systemverilog代码运行中,EDA工具会先给1个随机种子值(seed),所有代码里的随机数都是根据这个初始种子衍生出来的。因此,通常来说,只要代码没有改动,且初始种子一样,那么仿真运行结果也一样。那么在questasim里如何设置和查看种子值呢?

1. 设置种子值

Questasim给vsim命令提供了-sv_seed <interger> | random的参数。有几个关键点:

  1. 如果vsim后面没有跟着sv_seed,那么默认seed是0;
  2. 如果vsim后面跟着sv_seed,但没有提供<interger> 或 random,那么会报错;
  3. 如果sv_seed后面跟着非负32-bit整数(interger),那么这个非负整数就是初始seed值。如果是无效值的话,那么questasim会报warning信息并且忽略掉;
  4. 如果sv_seed后面这个random单词的话,那么vsim命令每次运行都会使用随机生成的seed;
  5. sv_seed在modelsim.ini文件里是只读的,不能改写;

2. 读取种子值

Questasim里提供了$get_initial_random_seed系统函数,User可以在systemverilog code里调用这个系统函数就可以得到当前仿真使用的初始seed值。

另外一种方式是在Tcl shell窗口中,通过echo $Sv_Seed把seed值展示在shell窗口。

3. 使用例子

3.1 设置初始seed值为666的整数:

vsim -sv_seed 666

3.2 设置初始seed值为随机数:

vsim -sv_seed random

4. 测试代码

测试代码如下:

vsim -sv_seed random
$display("1. The seed is: %0d, random data:%0d", $get_initial_random_seed, $urandom);
vsim -sv_seed 666
$display("2. The seed is: %0d, random data:%0d", $get_initial_random_seed, $urandom);
vsim
$display("3. The seed is: %0d, random data:%0d", $get_initial_random_seed, $urandom);
vsim -sv_seed
$display("4. The seed is: %0d, random data:%0d", $get_initial_random_seed, $urandom);

结果如下:

1. The seed is: 281111952, random data:3445949350
2. The seed is: 666, random data:3072267859
3. The seed is: 0, random data:313949478
Error. Use the -help option for complete vsim usage.

文章来源:https://blog.csdn.net/W1Z1Q/article/details/130754374
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/70382.html

相关文章

SPI接口协议详解

一、SPI总线简介 SPI总线是摩托罗拉公司开发的一种高速、全双工、同步的通信总线&#xff0c;它通常由四条线组成&#xff1a; CS 片选信号SCLK 时钟信号MOSI 主机输出从机输入接口MISO 主机输入从机输出接口 SPI分为主机和从机&#xff0c;主机提供通信所需的时钟信号。 二…

ArcGis教程-画一幅城市的shp地图

怎样使用ArcGis10.6得到这么一幅shp地图呢&#xff1f; 首先打开ArcGis10.6&#xff0c;点击带黄底的小加号&#xff0c;添加底图。 可以选择中国地图彩色版&#xff0c;然后双击&#xff0c;转动鼠标滑轮找到属于自己的城市。 点击-目录&#xff0c;在新建的文件夹里右击-新建…

捷威信keithley吉时利2410数字源表 销售回收KEITHLEY2470新款源表

吉时利Keithley 2410 /2470高压源表/数字源表 产品概览 Keithley 2410 高压源表专为需要紧密耦合源和测量的测试应用而设计。Keithly 2410 提供精密电压和电流源以及测量功能。它既是高度稳定的直流电源&#xff0c;又是真正的仪器级 5-1/2 数字万用表。电源特性包括低噪声、…

《C++primer》1~2章总结

《Cprimer》 开始变量和基本类型 开始 根据 根据使用的GNU编译器版本&#xff0c;制定对哪个C版本支持 -stdcXX 编译器通常包含一些选项&#xff0c;能对有问题的程序结构发出警告&#xff0c;打开这些选项是一个好习惯&#xff0c;我们习惯在g中使用 -Wall 练习1.2 test_1…

盐穴储能项目-机械密封相关方向论文阅读【1】

盐穴储能-机械密封论文阅读【1】 1. 论文1:A study of reciprocating seals with a new mixed-lubrication model based on inverse lubrication theory1.1 题目:基于逆润滑理论并针对往复式密封的一种新型混合润滑模型1.2 摘要翻译1.3 试验台如下:2. A Mixed Lubrication M…

1000W用户1Wqps高并发签到系统的架构和实操

说在前面 在尼恩的&#xff08;50&#xff09;读者社群中&#xff0c;经常有小伙伴面试的时候&#xff0c;遇到一个一个高并发 架构方面的问题&#xff0c;比如&#xff1a; (1) 高并发秒杀系统如何架构&#xff1f; (2) 高并发签到系统如何架构&#xff1f; (3) 等等等等… 刚…

golang web学习随便记7-XML、JSON、Web服务

xml的解析比json复杂&#xff0c;最起码xml在元素的属性中也能蕴藏信息。下面是一个xml文件post1.xml&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <post id"1"><content>你好&#xff0c;Golang</content>&…

常用 sap 表 德语缩写 英汉注释

下面是给出的 SAP 缩写的中英文解释&#xff1a; MANDT: 客户端 (Client)VBELN: 销售和分销凭证号 (Sales and Distribution Document Number)POSNR: 行项目号 (Item Number)PSTYV: 凭证类型 (Document Type)ERNAM: 创建凭证的用户名 (Created by User Name)ERZET: 凭证的创建…