kiolia的个人空间 https://blog.eetop.cn/1001513 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

$random函数的应用

已有 1103 次阅读| 2012-9-28 14:33 |个人分类:verilog

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

 EX-1:

reg[23:0] rand;

rand=$random%60; //产生一个在 -59—59范围的随机数

 

又给出了一个产生0~59之间的随机数的例子:

EX-2: reg[23:0] rand;

rand={$random} %60; //通过位拼接操作{}产生0—59范围的随机数

 

 —————————————————————————

产生一个在min, max之间随机数的例子:

EX-3: reg[23:0] rand;

rand = min+{$random}%(max-min+1);

 

解释:

{}就是做为位拼接符使用的。

$random产生32位有符号数,但是其实还是32位的数字,只是把它当成有符号数。所以如果20位 number=$random%100,那么就是-99~99的随机数。假如产生的number=-99,则number中存的其实是-99的补码。那么你将{number}位拼接,则它会认为number[19],。。。,number[0]拼起来返回新的书当然是无符号的,那么此时返回的数就是-99的补码对应的数。不明白的可以用modelsim做做实验。比较number和{number}的区别。所以{$random}产生的数就机器认为的符号位,{$random}%100当然就只在0~99之间。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 102

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-3 12:30 , Processed in 0.025430 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部