当前位置: 首页 > news >正文

做商城网站建设哪家好番禺做网站开发

做商城网站建设哪家好,番禺做网站开发,网站建站论坛,优秀网站作品$random(seed)是verilog中最简单的产生随机数的系统函数。 在调用系统函数$random(seed)时#xff0c;可以写成三种样式#xff1a;1#xff09;$random#xff0c;2#xff09;$random()#xff0c;3#xff09;$random(seed)。下面分别说明#xff1a; 1#xff09;…   $random(seed)是verilog中最简单的产生随机数的系统函数。   在调用系统函数$random(seed)时可以写成三种样式1$random2$random()3$random(seed)。下面分别说明 1$random 这是最简单的一种写法略去了seed这个传入参数$random会使用一个默认的seed这个默认值为0。也正因此每次进行仿真时$random产生的随机数序列都是相同的。 2$random() 这种写法和写法1的作用是相同的同样是没有给$random传入seed。 3$random(seed) 这种写法与上面两种不同给$random传入了参数seed因此$random根据seed来产生随机数。seed不同产生的随机数的序列也不同。而且每执行一次$random(seed)产生一个随机数seed也自动更新一次。   下面讨论seed的产生。 据我有限的知识seed有两种产生方式4直接赋值为一个确定数5利用系统函数$get_initial_random_seed获得值。下面分别讨论 4直接赋值 在一个initial块中直接将seed变量写成某值如下面代码 integer seed; reg [7:0] rand_num; initial  begin seed 0; end always (posedge clk) begin rand_num $random(seed); end 在上面代码中seed初始值被赋为0也可以是1或其它数在第一个时钟上升沿rand_num取得的第一个随机数就是$random(0)产生的seed也随即更新在第二个时钟上升沿时rand_num取得第二个随机数是$random(更新后的seed)产生的seed又随即更新如此下去。 值得注意的是如果把seed赋值为0那么利用$random(seed)产生的随机数序列和直接执行$random产生的随机数序列是相同的。这个结论是我根据经验得出的。 5seed $get_initial_random_seed() 如下面代码 integer seed; reg [7:0] rand_num; initial  begin seed $get_initial_random_seed(); end always (posedge clk) begin rand_num $random(seed); end 在上面代码中利用系统函数得到的seed的值是1此后seed更新后的值和$random(seed)产生的随机数序列都和将seed直接赋值成1利用$random(seed)产生随机数的情况相同。这也是我根据经验得出的结论。 我在网上没有找到关于$get_initial_random_seed的详细介绍。   下面讨论仿真时如何改变seed的初值 如果seed的初值是确定的那么不论进行多少次仿真产生的随机数的序列总是确定的就不能覆盖更多的情况。因此在仿真时要能够改变seed的初值。目前我所知道的改变seed的初值有两种方法6修改代码7采用deposit方式。下面分别介绍 6修改代码 这种方式最直接缺点是每次要修改seed时都需要重新编辑一遍代码。 比如第一次仿真时代码写成下面的样子 integer seed; reg [7:0] rand_num; initial  begin seed 0; end always (posedge clk) begin rand_num $random(seed); end 而第二次仿真时想修改seed的初值就写成下面的样子 integer seed; reg [7:0] rand_num; initial  begin seed 1; end always (posedge clk) begin rand_num $random(seed); end 7采用deposit的方式 这种方式比较灵活不必修改代码也不必重新编译直接修改输入到仿真软件的命令即可。 下面是最简单的一个命令 deposit top.seed 2 run 125ns exit 上面命令的意思是将信号或变量seed的初值设成1然后开始仿真仿真时间为125ns然后结束仿真。 deposit是在仿真开始之前起作用的如果没有给deposit加上其它时间方面的条件而且它只是将某个信号的初始值设为某一个数可以是确定数也可以是随机数此后便不再干预该信号的值。如果仿真开始后有别的条件或语句改变该变量的值则该变量就变成改变后的值。 如果代码按下面的样子写 integer seed; reg [7:0] rand_num; initial  begin seed 1; end always (posedge clk) begin rand_num $random(seed); end 我们来看一下在仿真开始之前deposit将seed赋值为2然而仿真开始后的0ns时刻initial块又将seed赋为1因此相当于deposit没有起到预期的作用。我们想要的是seed的初值为2$random(2)产生一个随机数后seed再由2变成其它的数而不是$random(1)产生一个随机数然后seed又由1变成其它的数。 为了达到我们的预期目的要把deposit命令改成下面的样子 deposit top.seed 2 -after 1ns run 125ns exit 在仿真开始的0ns时initial块执行将seed设为1。加上-after 1ns后deposit命令就会在仿真开始后的1ns时起作用把seed的值改为2然后作用于第一次$random(seed)的执行然后seed再更新。   综上讨论我得出以下结论 1. 利用$random产生随机数时最好利用上seed参数即写成$random(seed)样式。 2. 没有必要利用$get_initial_random_seed()函数给seed赋值直接写成一个值即可像4一样。 3. 建议用deposit的方式在仿真时改变seed的初值使$random(seed)产生不同的随机数序列 转载于:https://www.cnblogs.com/Dinging006/p/8592393.html
http://www.zqtcl.cn/news/519178/

相关文章:

  • 做一百度网站保健品网站建设案例
  • 沙田镇仿做网站如何建设钓鱼网站
  • 如何用域名进网站企业做电商网站有哪些
  • soho做网站网站的k线图怎么做
  • 成都专业的网站建设公司做网站需要哪个专业
  • php彩票网站建设源码有人看片吗免费观看
  • 自己做网站的准备工作营销平台推广
  • 建站网站平台建站工具的优点
  • 各学院二级网站建设通报wordpress 修改admin
  • 网站建设加推广需要多少钱wordpress标签自动生成插件下载
  • 周村区建设局网站石家庄网站运营公司
  • 网站描述怎么设置wordpress仿模板
  • 宁波市网站建设公司h5游戏是什么意思
  • 青岛网站设计案例全栈网站开发
  • 欢迎访问中国建设银行网站个人客户网站建设需要经历什么步骤
  • 建设银行怀柔支行营业部网站企业官网手机版
  • cms那个做网站最好大连网站开发平台
  • 佛山建设外贸网站公司可信网站图标
  • 沈阳.....网站设计连云港优化网站团队
  • 网站添加白名单想学ui设计从哪里入手
  • 做期货与做网站的关系淮安市城市建设档案馆网站
  • 网站建设的技术亮点单位宣传册设计样本
  • 网站建设与维护服务敦化市建设局网站
  • 官方网站建设思路wordpress改成织梦
  • 网站建设推广方法网站调优
  • 苏州做企业网站wordpress前台发布文章
  • 怎么建个私人网站网络营销就业前景和薪水
  • 专业的网站开发团队京东电商平台
  • 做网站手机微信小程序怎么加入我的小程序
  • 做网站困难吗公司如何注册网站