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

Verilog中能否用二进制数作为数组索引?求正确写法

在Verilog中使用二进制数作为数组索引的正确写法

在Verilog里,直接写111会被默认解析为十进制整数111,而不是你想要的二进制数7,这就是A = B[111];达不到预期效果的原因。

要直接用二进制数作为索引,必须给数字加上二进制基数说明符,格式为'b(大小写'B也可以),写法有两种:

  • 显式指定位宽:在基数符前加上位宽数字,比如3'b111,这里的3表示这是一个3位的二进制数,对应十进制7。这种写法更清晰,能避免位宽歧义,推荐使用。
  • 省略位宽:直接写'b111,Verilog会根据上下文自动推断位宽,但在数组索引场景下,省略位宽通常也能正常工作。

对应的正确代码示例:

// 显式指定位宽的写法
A = B[3'b111];

// 省略位宽的写法
A = B['b111];

补充:Verilog还支持其他基数的数字表示,比如十六进制'h、八进制'o,但针对二进制索引需求,使用'b前缀就可以解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:12:00