0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在questasim里如何设置和查看种子值呢?

冬至子 来源:CSDN 作者:谷公子 2023-05-29 17:50 次阅读

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

1. 设置种子值

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

如果vsim后面没有跟着sv_seed,那么默认seed是0;

如果vsim后面跟着sv_seed,但没有提供 或 random,那么会报错;

如果sv_seed后面跟着非负32-bit整数(interger),那么这个非负整数就是初始seed值。如果是无效值的话,那么questasim会报warning信息并且忽略掉;

如果sv_seed后面这个random单词的话,那么vsim命令每次运行都会使用随机生成的seed;

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.
4. Error. Use the -help option for complete vsim usage.
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • EDA工具
    +关注

    关注

    4

    文章

    252

    浏览量

    31281
  • Verilog
    +关注

    关注

    28

    文章

    1326

    浏览量

    109302
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1658

    浏览量

    87932
收藏 人收藏

    评论

    相关推荐

    Questasim软件安装破解教程

    patch_dll.bat,此时会生成一个txt文件。将txt文件另存,另存的路径为:C:\modeltech_10.1a\LICENSE.TXT。 7. 新建系统环境变量点击电脑的开始菜单,搜索框搜索“环境变量
    发表于 05-22 17:16

    求助,如何将显示内容设置为依次显示,并且做出QuestaSim或Quartus波形?

    本帖最后由 i雨碎江南 于 2016-1-6 12:54 编辑 如题,做课程设计,想把显示内容设置为依次一行一行的显示,或者说从左到右显示?以及做出QuestaSim或Quartus波形? 附件是我的工程
    发表于 01-06 12:52

    ISE设计,questasim仿真时库编译的问题

    设计中用到了GTP_DUAL,利用questasim仿真。Simulation时报错,说找不到GTP_DUAL_fast.v这个文件。xilinx的安装目录下mti文件中搜索到
    发表于 08-30 16:04

    Quartus II 13.1编完程序,查看RTL电路时发现,变量的与程序写的高低位反了,怎么回事?大神,求指点!!!

    Quartus II 13.1编完计数器的程序,查看RTL电路时发现,变量的与程序写的高低位反了,怎么回事?大神,求指点!!!程序和
    发表于 10-25 16:58

    怎么uvision查看数据寄存器的

    我现在做AD转换,想在uvision中直接查看数据寄存器ADC_JDRx中的转换,怎么看,或许看某变量的,怎么操作,谢谢
    发表于 09-02 02:20

    如何查看mdk环境调试的

    我发现有些宏定义的MDK调试的时候不能查看,如下图,比如原子哥的代码 LED0LED1,请问如何才能
    发表于 09-05 03:55

    请问怎么proteus查看单片机程序内部的某个子函数中变量的具体

    proteus如何查看单片机烧录程序内部的某个子函数中的变量的具体?求大神
    发表于 11-05 09:01

    293无法更新模拟器questasim设置文件怎么办?

    喜我通过Xilinx Platform 14.1生成了EDK的questasim libof。它有一些问题。但这些lib secureip,unisim都可以。我UNIX工作。错误信息:排除已取代
    发表于 05-11 08:10

    用R命令查看的寄存器的是当前CPU中AX这些寄存器真实的吗?

    在学习8086汇编时,我虚拟机上安装了MS-DOS(假设就是真实的8086计算机的DOS,就是想知道真实的那种DOS的情况):1.
    发表于 08-28 08:06

    keil软件的debug环境下查看变量的,为什么有时添加不进去?

    keil软件的debug环境下查看变量的,有时候可以添加到watch中,有时候就添加不进去,为什么???还有我想清除watch的数据,重新添加怎么操作
    发表于 08-25 07:23

    questasim 6.5 (for xp/linux)

    questasim 6.5 (for xp/linux)
    发表于 04-01 00:17 192次下载
    <b class='flag-5'>questasim</b> 6.5 (for xp/linux)

    ModelSim和QuestaSim功能简介及应用

    ModelSim和QuestaSim功能简介及应用 ModelSim是工业界最优秀的语言仿真器,它提供最友好的调试环境
    发表于 04-29 09:07 1.9w次阅读
    ModelSim和<b class='flag-5'>QuestaSim</b>功能简介及应用

    种子发芽箱的应用可以满足种子生长的哪些需求

    很大的提高。托普云农的种子发芽箱采用了大屏幕液晶屏显示,中文指导操作流程,操作简单,控制精确,蓝色背光,便于夜间查看种子发芽箱采用了大屏幕液晶屏显示,中文指导操作流程,操作简单,控制精确,蓝色背光,便于
    发表于 07-16 14:57 353次阅读

    Modelsim/Questasim基本命令

    Modelsim/Questasim基本命令
    发表于 10-21 15:06 1次下载

    e² studio调试MCU stack栈设置查看

    e² studio调试MCU stack栈设置查看
    的头像 发表于 10-27 10:38 456次阅读
    e² studio调试MCU stack栈<b class='flag-5'>设置</b>及<b class='flag-5'>查看</b>