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、小结

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

verilog之random的更多相关文章

  1. 总结verilog产生随机数的$random和seed

      $random(seed)是verilog中最简单的产生随机数的系统函数. 在调用系统函数$random(seed)时,可以写成三种样式:1)$random,2)$random(),3)$rand ...

  2. Verilog $random用法

    “$random函数调用时返回一个32位的随机数,它是一个带符号的整形数...”,并给出了一个例子: _________________________________________________ ...

  3. verilog random使用

    “$random函数调用时返回一个32位的随机数,它是一个带符号的整形数...”,并给出了一个例子: _________________________________________________ ...

  4. Verilog学习笔记基本语法篇(十一)········ 常用系统函数

    1)系统任务:$monitor   格式: $monitor(p1,p2,p3...pn); $monitor; $monitoron; $monitoroff; 任务$monitor提供了监控输出列 ...

  5. Verilog篇(二)系统函数

    显示任务:$display,$write, 前者总会输出一个换行符,后者不会.固定输出格式版:$displayb/$displayo/$displayh/$writeb/$writeo/$writeh ...

  6. Verilog篇(一)

    Verilog在行为级建模时常用到的一些函数,变量等. 1:$random(seed),每次根据seed的值产生一个32位的有符号数,seed的数据类型必须是寄存器(reg),整形(integer), ...

  7. Verilog Tips and Interview Questions

    Verilog Interiew Quetions Collection :  What is the difference between $display and $monitor and $wr ...

  8. 对Verilog 初学者比较有用的整理(转自它处)

    *作者: Ian11122840    时间: 2010-9-27 09:04                                                              ...

  9. Verilog之event的用法

    编写verilog的testbench时,可使用event变量触发事件. event变量声明为: event var; event触发为: ->var; 捕获触发为: @(var); 在mode ...

  10. Verilog之case语句

    verilog设计进阶 时间:2014年5月6日星期二 主要收获: 1.学会使用case语句: 2.学会使用随机函数$random. $random: 1.函数说明:$random函数调用时返回一个3 ...

随机推荐

  1. 从零开始手写缓存框架(二)redis expire 过期原理及实现

    前言 我们在 从零手写 cache 框架(一)实现固定大小的缓存 中已经初步实现了我们的 cache. 本节,让我们来一起学习一下如何实现类似 redis 中的 expire 过期功能. 过期是一个非 ...

  2. 欧拉公式 Euler's Formula

    欧拉公式是数学中最重要的公式之一, 它涉及到了复数, 无理数, 三角函数, 简单优美 \(e^{i\theta} = cos(\theta) + isin(\theta)\) 欧拉公式代表的含义并不是 ...

  3. 【Unity3D】2D动画

    1 图片处理 ​ 通过 PS 软件将以下 gif 文件中的黑色背景删除,并将其中的 18 个图层分别保存为 png 格式图片. 2 游戏对象 ​ 1)游戏对象层级结构 ​ 2)Transform组件参 ...

  4. springboot+vue+elementui实现文件上传下载删除DEMO

    说明 前面搜索了几个关于springboot+vue+elementui上传下载的文章,感觉写的都不尽如人意.要么是功能不完善,不好用.再者就是源码提供的实在差劲,都不完整.一气之下,自己搞了一个实用 ...

  5. Python之猜数字游戏

    说明: 本例改编自<Python编程快速上手>.例子很简单我就不多说了 直接上代码,给初学python练手用. 给你6次机会猜对一个预先生成好的1-20之间的整数.覆盖一下知识点: 条件语 ...

  6. 「源码分析」CopyOnWriteArrayList 中的隐藏的知识,你Get了吗?

    点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 前言 ...

  7. 面向开发者的 ChatGPT 提示工程课程|吴恩达携手OpenAI 教你如何编写 prompt

    提示工程(Prompt Engineering)是一门相对较新的学科,旨在开发和优化提示,从而高效地将语言模型(LM)用于各种应用和研究主题,并帮助开发人员更好地理解大型语言模型(LLM)的能力和局限 ...

  8. 【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因

    问题描述 Web App(App Service) 经常出现500错误,但是通过高级管理工具(Kudu站点)查看了所有的日志,均没有定位到具体的原因,有那些方式可以查看到更多的信息呢? 问题解答 HT ...

  9. cw attack

  10. 文心一言 VS 讯飞星火 VS chatgpt (208)-- 算法导论15.4 5题

    五.设计一个 O($n^2$) 时间的算法,求一个 n 个数的序列的最长单调递增子序列.要写代码的时候,请用go语言. 文心一言,抛panic: 在 Go 语言中设计一个 O(n^2) 时间复杂度的算 ...