在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3000|回复: 8

[求助] 请教一个入门级问题,随机激励的产生

[复制链接]
发表于 2012-8-15 14:38:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 yushuiyang1986 于 2012-8-15 16:43 编辑

TB的目标大概是这样的,例如,在1000(random的)个clk内,随机插入356(同样是random的)个data_valid的信号,其余为无效信号,从而验证module在不同的输入波特率下的数据处理情况。请问可不可以用Verilog做这样的测试,或者用perl脚本?可以的话如何做?NC-Verilog对SV的支持也不太好,所以不希望用SV。
发表于 2012-8-15 15:53:46 | 显示全部楼层
有几个思路:
1.用$random系统函数产生一些random的值
2.用不同周期以及不同占空比的clock波形 组合 产生一些类似random的信号
 楼主| 发表于 2012-8-15 16:34:32 | 显示全部楼层
本帖最后由 yushuiyang1986 于 2012-8-15 16:44 编辑


有几个思路:
1.用$random系统函数产生一些random的值
2.用不同周期以及不同占空比的clock波形 组合 产生一 ...
majia123qwe 发表于 2012-8-15 15:53




      随机化必然要用到random函数……      有以下两个问题:1、$random数据范围如何定?数据又如何分散在有限的clock数内?valid何时为高合适为低?高低各持续多长时间?
2、不同的Clk周期如何设置?不同的占空比有如何设置?其实本质还是第一个问题!
发表于 2012-8-15 20:10:23 | 显示全部楼层
回复 2# majia123qwe


    请问你以前从事的是什么具体工作?
发表于 2012-8-16 09:26:07 | 显示全部楼层
回复 3# yushuiyang1986

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

   reg[23:0] rand;
   rand=$random % 60; //产生一个在 -59—59范围的随机数
—————————————————————————

又给出了一个产生0~59之间的随机数的例子:
   reg[23:0] rand;
   rand={$random} % 60; //通过位拼接操作{}产生0—59范围的随机数
—————————————————————————

产生一个在min, max之间随机数的例子:
EX-3:
  reg[23:0] rand;
  rand = min+{$random}%(max-min+1);


以上是我刚刚搜索的$random内容,具体怎么用总得自己解决了吧,不能总是让别人想。
具体怎么用并不难的,如果连这个都想不出来怎么解决,那我建议你还是不要吃工程师这碗饭了。

2.用不同周期以及不同占空比的clock波形 组合
就是用不同的周期和占空比制造几个clock,然后用这些clock比如都在上升沿的时候怎么样,都在下降沿的时候怎么样,自己定义就行了,因为周期和占空比不一样,所以出现某些条件的情况也是相对随机的。
 楼主| 发表于 2012-8-16 09:49:21 | 显示全部楼层
本帖最后由 yushuiyang1986 于 2012-8-16 10:33 编辑




   random函数的用法教科书上就有,上过课用过random写过TB的都知道,谢谢,这方面的问题不想在这跟你说太多;   另外,方法我已经有几个思路,但是实验效果不是很好,问题就在于我之前说的;   如果你有可行的方法,我真心请教;如果你不知道你这个方法是否可行,是否可控,请忽略我前面的所有话;
发表于 2012-8-16 10:09:28 | 显示全部楼层
回复 6# yushuiyang1986

在论坛上,一般别人能给你的也就是一个思路,具体怎么去实现,每个项目都不一样,不可能要求别人去仔细读你的项目需求,然后根据你的需求告诉你一步一步怎么做。
从你之前写的需求看,只要知道了$random怎么用就行了。具体的怎么产生波形,波形宽度怎么样,这些都是可以用random界定出来的。

可能我不太清楚你这个项目的具体情况,可能有其他的一些原因,所以导致你觉得问题仍然不能通过这种方式解决。
如果是这样,我向你道歉。

但是如果不是这个原因,你只是想要别人告诉你完整的方案,那么我觉得你是错了。
发表于 2012-8-16 13:40:22 | 显示全部楼层
用C语言产生356个随机且不重复的值,写在一个问题里,用verilog读。
发表于 2012-9-9 02:04:55 | 显示全部楼层
回复 1# yushuiyang1986


    这个 有点难度啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 00:16 , Processed in 0.023259 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表