zoukankan      html  css  js  c++  java
  • verilog之random

    verilog之random

    1、基本作用

    random,用于产生随机数。在测试时,有时需要测试的情况太多,无法一一列举,就需要使用抽样测试的方法验证功能是否可行。random是一个有返回值的系统函数,可以直接用于计算。返回值带符号的整形,所以不能直接当作无符号的数据处理。可以加上{}作为本身连接,即将符号位和数值位并在一起。这样的数据就是无符号的随机数。

    2、实际例子

    `timescale 1ns/1ns
    module random;
        reg [23:0] ran;
    initial begin
        $monitor($realtime,,"ran=%d",ran);
        #1
        ran=$random % 60;
        #1
        ran={$random} % 20; //无符号
        #1
        ran=$random % 2;
        #10
        $stop;
    end
    endmodule
    run -all
    # 0 ran=       x
    # 1 ran=       8
    # 2 ran=      17
    # 3 ran=16777215
    # ** Note: $stop    : D:/Library/verilog_soft/P1_function/H4_random/random.v(13)
    #    Time: 13 ns  Iteration: 0  Instance: /random

    前面两个数据还是比较正常的,但第三个数据就比较奇怪。这个具体的原因可能和负数取余的运算有关。大概是带符号位的取余的计算有别的语法规则。这里注意一下就行,尽量不要使用带符号位的随机数去取余。

    3、小结

    这个函数主要要认识,具体的作用也好理解。随机数可以节约大型项目的测试向量的编写时间和成本,是提高效率的好办法。

  • 相关阅读:
    160-三个用户同时登录,是怎么实现多线程的?
    159-如何解决缓存穿透?
    158-为什么会引发缓存穿透?
    存储emoji表情,修改字符集为utf8mb4
    java相差小时数
    pom.xml解释
    前端 跨域
    java 获取的是本地的IP地址
    是否超时
    发送验证码
  • 原文地址:https://www.cnblogs.com/electricdream/p/13394275.html
Copyright © 2011-2022 走看看