返回介绍

12.3.2 randc修饰符

发布于 2020-09-09 22:55:50 字数 709 浏览 1048 评论 0 收藏 0

使用randc声明的变量是周期随机变量,它在一个它们声明范围内的一个随机排列中循环地选择所有的值。周期随机变量只能是bit类型或枚举类型,并且可以被限制到一个最大的尺寸。

为了理解randc,考虑一个两位的随机变量y

randc bit [1:0] y;

变量y可以在0、1、2和3之间取值。随机化的过程会为y的取值范围计算一个初始的随机排列,然后再连续的调用中按顺序返回这些值。当返回一个排列的最后一个元素后,它会通过计算一个新的随机排列来重复这一过程。

randc的基本思想是在取值范围内的所有值上随机地迭代,并且在一次迭代中不会有重复的值。当本次迭代结束后,会自动启动一个新的迭代。

对于任意指定的randc变量,当针对该变量的约束发生变化或者排列中余下的数值都不能满足这个约束的时候会重新计算排列顺序。

为了减少内存的要求,具体实现时可以在randc变量上强加一个限制,但这个变量不能小于8位。

周期随机变量的语义要求它们必须在其它随机变量之前求解。一组既包含了rand变量也包含了randc变量的一组约束应该保证randc变量首先被求解,并且有时可能导致randmize()失败。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文