You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非零起始索引向量用作非打包数组索引的取值规则咨询

数组索引求值规则说明

在SystemVerilog中,使用向量作为非打包数组的索引时,直接取向量的原始整数值作为索引,不会因为向量的位宽起始偏移(比如[31:2])补全低位。

针对你的代码:

logic myArray [1023:0];
logic [31:2] myVal;

logic result;

assign myVal = 30'hA; // 1010b
assign result = myArray[myVal];
  • myVal的类型是[31:2],表示它存储30个bit(从第2位到第31位),赋值30'hA后,它的整数值就是十进制10(0xA),而不是把低两位补0得到的0x28(十进制40)。
  • myArray[myVal]等价于myArray[10],取的是数组中索引为10的元素值。

简单来说:向量作为索引时,看的是它代表的数值大小,和向量的位宽起始位置无关,不会自动补全被截断的低位。

内容的提问来源于stack exchange,提问作者ahmouse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 15:24:51