我在声明压缩数组时遇到了以下语法。
bit arr [bit[3:0];
我的理解是,这个arr的深度是16,宽度是1位。但当我尝试使用下面的循环打印值时,它不会打印任何内容:
foreach(arr[ii])
$display("arr[%0d] = %0d",ii,arr[ii]);
此外,我可以写&读取任何索引,如arr[56]=1,并且能够打印相同的索引而没有任何错误。
有人能解释一下这背后的逻辑吗?
这是一个未封装的关联数组,其元素为单个位,索引(键(类型为4位的压缩数组。
只有对特定的键索引进行赋值,关联数组元素才会被分配。因此,foreach
循环在分配了元素之前不会迭代。