基于另一个数组在SystemVerilog中约束整个数组

帝陀·蒂米(Tudor Timi)

是否可以将SystemVerilog中的整个数组约束为具有与另一个数组相同的值?

我尝试了这个:

class some_class;
   rand bit array1[10][10];
   rand bit array2[10][10];

   constraint arrays_c {
      array1 == array2;
   }
enclass

我尝试过的2个Big3模拟器不允许这样做。一个说它当前不受支持,另一个说我是约束BNF,抱怨它不是有效的整数表达式。

除了设置foreach约束之外,还有其他方法可以这样做吗?我最终想要的是从一个函数返回一个数组,并使用它来约束另一个作为类字段的数组。

格雷格

使用foreach,参见IEEE Std 1800-2012§18.5.8.1了解每个迭代约束

constraint arrays_c {
  foreach(array1[i,j]) {
    array1[i][j] == array2[i][j];
  }
}

如果要复制随机数组,更好的方法是在post_randomize函数中分配副本这是较少的CPU激励。

class some_class;
   rand bit array1[10][10];
   bit array2[10][10];

   function void post_randomize();
     array2 = array1;
   endfuction : post_randomize
enclass

如果foreach在约束块中并且post_randomize计算不是可行的解决方案,则使用压缩数组。

class some_class;
   rand bit [9:0][9:0] array1; // double packed
   rand bit [9:0][9:0] array2;

   constraint arrays_c {
    array1 == array2;
   }
enclass

或使用包数组和位流分配使最终结果解包

class some_class;
   bit array1[10][10];
   bit array2[10][10];
   rand bit [$bits(array1)-1:0] flat_array1,flat_array2;

   constraint arrays_c {
    flat_array1 == flat_array2;
   }

   function void post_randomize();
     {>>{array1}} = flat_array1; // bit-stream assignment
     {>>{array2}} = flat_array2;
   endfuction : post_randomize
enclass

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于另一个数组在SystemVerilog中约束整个数组

来自分类Dev

Underscore.js,测试整个数组是否在另一个数组中

来自分类Dev

在 mongoDB 中的另一个数组中查询整个特定数组

来自分类Dev

基于另一个数组映射一个数组

来自分类Dev

Pyspark 在主数组中查找整个数组并使用另一个数组替换

来自分类Dev

基于另一个数组的ndarray的子集

来自分类Dev

如何用javascript中获取的数据中的另一个数组替换整个数组

来自分类Dev

在将其值移动到另一个数组后显示整个数组

来自分类Dev

用另一个数组过滤整个数组

来自分类Dev

基于另一个数组中包含的索引的数组值

来自分类Dev

基于另一个数组中的信息对NumPy数组进行操作

来自分类Dev

如何在Python中基于另一个数组更新数组?

来自分类Dev

从基于另一个数组的数组中删除对象

来自分类Dev

如何基于存储在另一个数组中的索引获取数组的项目

来自分类Dev

ruby基于另一个数组从数组中删除项目

来自分类Dev

如何基于另一个数组删除或屏蔽numpy数组中的值

来自分类Dev

基于另一个数组索引在 PHP 中对数组进行排序

来自分类Dev

检查基于另一个数组的数组中是否存在值

来自分类Dev

如何在numpy中创建新数组,并从一个数组中选择一个基于另一个数组的元素?

来自分类Dev

在另一个数组中查找一个数组的匹配索引

来自分类Dev

从另一个数组中删除一个数组的内容

来自分类Dev

从PHP中的另一个数组中提取一个数组

来自分类Dev

如何从php中的另一个数组排序一个数组?

来自分类Dev

修改另一个数组中的一个数组

来自分类Dev

从另一个数组中删除一个数组的内容

来自分类Dev

通过另一个数组中的值过滤一个数组?

来自分类Dev

根据另一个数组中的条目拆分一个数组

来自分类Dev

修改另一个数组中的一个数组

来自分类Dev

根据另一个数组中的数据过滤一个数组

Related 相关文章

  1. 1

    基于另一个数组在SystemVerilog中约束整个数组

  2. 2

    Underscore.js,测试整个数组是否在另一个数组中

  3. 3

    在 mongoDB 中的另一个数组中查询整个特定数组

  4. 4

    基于另一个数组映射一个数组

  5. 5

    Pyspark 在主数组中查找整个数组并使用另一个数组替换

  6. 6

    基于另一个数组的ndarray的子集

  7. 7

    如何用javascript中获取的数据中的另一个数组替换整个数组

  8. 8

    在将其值移动到另一个数组后显示整个数组

  9. 9

    用另一个数组过滤整个数组

  10. 10

    基于另一个数组中包含的索引的数组值

  11. 11

    基于另一个数组中的信息对NumPy数组进行操作

  12. 12

    如何在Python中基于另一个数组更新数组?

  13. 13

    从基于另一个数组的数组中删除对象

  14. 14

    如何基于存储在另一个数组中的索引获取数组的项目

  15. 15

    ruby基于另一个数组从数组中删除项目

  16. 16

    如何基于另一个数组删除或屏蔽numpy数组中的值

  17. 17

    基于另一个数组索引在 PHP 中对数组进行排序

  18. 18

    检查基于另一个数组的数组中是否存在值

  19. 19

    如何在numpy中创建新数组,并从一个数组中选择一个基于另一个数组的元素?

  20. 20

    在另一个数组中查找一个数组的匹配索引

  21. 21

    从另一个数组中删除一个数组的内容

  22. 22

    从PHP中的另一个数组中提取一个数组

  23. 23

    如何从php中的另一个数组排序一个数组?

  24. 24

    修改另一个数组中的一个数组

  25. 25

    从另一个数组中删除一个数组的内容

  26. 26

    通过另一个数组中的值过滤一个数组?

  27. 27

    根据另一个数组中的条目拆分一个数组

  28. 28

    修改另一个数组中的一个数组

  29. 29

    根据另一个数组中的数据过滤一个数组

热门标签

归档