【问题标题】:In Verilog, what does a plus/minus sign after index do? [duplicate]在 Verilog 中,索引后的加号/减号有什么作用? [复制]
【发布时间】:2014-01-07 21:39:40
【问题描述】:

例如,这里:

a = b[16:0] + c[0+:WIDTH];

+ 号有什么作用? 假设 b 是 16'h1234,c 是 16'ABCD。

【问题讨论】:

标签: arrays verilog


【解决方案1】:

reg1[a+:b] 表示从“a”开始并递增索引直到“b”单元格。

reg1[a-:b] 表示从“a”开始并递减索引直到“b”单元格。

所以

reg1[0+:8] 等价于 reg1[0:7]

reg1[7-:8] 等价于 reg1[7:0]

【讨论】:

  • 值得一提的是为什么这很重要:不可能以 reg1[i:i+8] 的形式执行切片,因为编译器将其解释为可变宽度切片。因此,如果尝试使用可变偏移量(例如在循环中)获取向量的切片,则必须使用此表示法。
猜你喜欢
  • 2014-02-22
  • 2019-09-15
  • 2013-12-28
  • 1970-01-01
  • 2023-03-18
  • 2016-06-10
  • 2014-05-13
  • 2011-05-19
  • 1970-01-01
相关资源
最近更新 更多