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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3675|回复: 12

[原创] SV动态队列的$能否代表最小值

[复制链接]
发表于 2022-7-4 14:18:35 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ic_xiaosuan 于 2022-7-4 14:20 编辑

如果大家有看过SV绿皮书的话就会看到这么一段话

image.png

而你在网络上检索动态队列也基本上会出现类似的话,那么这段话的第二个如果在文中代码基本都没错,我们自己去运行也没出错,但是问题就出现在第一个如果,$放在范围表达式的左边能不能代表最小值?

答案当然是不能的!!

上代码:
image.png

image.png
结果是这样子的,直接就表明了$在范围表达式中代表的式最大值,不论在左还是右。
至于为什么某些博文,说可以写在最右代表最小值呢?
QVQ: 我也不清楚,反正在同行的帮助下,不管是win下的环境还是我自己用linux环境下运行,出来都是一个结果。好了客观描写就到这,至于原因大家仁者见仁智者见智。
PS:这应该是一道不错的SV考题哈哈哈!!!
我们来看IEEE SV的标准
image.png
明确写了0代表第一个,$代表最后一个

发表于 2022-7-4 17:02:01 | 显示全部楼层
优秀的实践者
发表于 2022-7-4 22:23:54 | 显示全部楼层
优秀,感谢分享
发表于 2022-7-5 11:26:42 | 显示全部楼层
顶一下
发表于 2022-8-28 18:35:12 | 显示全部楼层
非常感谢分享
发表于 2022-8-28 23:27:44 | 显示全部楼层
学习了!另外$放在左边表示最小值可能是随机化中的表示,在随机化中
如:
```// Code your testbench here
// or browse Examples
module tb;

  class A;
    rand bit [3:0] a;

    constraint c {
      a inside {[$:5], [10]};
    }
  endclass
  A obj = new();
  initial begin
    repeat(10)begin
            obj.randomize();
      $display("value a is %0d", obj.a);
    end
  end
endmodule

```
确实可以表示最小值,这个刚才跑了一下,是可以的。
动态数组中$不能表示最小值是刚刚知道,学习了学习了。
 楼主| 发表于 2022-8-31 17:31:28 | 显示全部楼层


Pu1se 发表于 2022-8-28 23:27
学习了!另外$放在左边表示最小值可能是随机化中的表示,在随机化中
如:
```// Code your testbench here ...


帖子开头的绿皮书是出现在29页队列操作的中间段落,由于我看的是旧版的电子书,不知道新版是否有改动。应该来说是特指队列的操作
至于其他类型我还没操作过。

你程序中有个表情吧 我无法直接复制使用,麻烦带上完整程序或者截图,一起学习

发表于 2022-8-31 19:14:35 | 显示全部楼层
感谢
发表于 2022-11-18 19:46:22 | 显示全部楼层
发表于 2023-2-23 17:28:52 | 显示全部楼层


Pu1se 发表于 2022-8-28 23:27
学习了!另外$放在左边表示最小值可能是随机化中的表示,在随机化中
如:
```// Code your testbench here ...


这个随机中用$,感觉用处不大呀,请问有什么使用的特定场景么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-8 07:27 , Processed in 0.025266 second(s), 8 queries , Gzip On, Redis On.

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