【发布时间】:2020-10-28 07:26:16
【问题描述】:
我尝试在 Icarus Verilog 中以以下方式创建一个“真实”类型的值数组:
parameter width = 10;
shortreal b [width-1:0] = {0.0181,0.0487,0.1227,0.1967,0.2273,0.1967,0.1227,0.0487,0.0181};
给出以下错误:
error: Cannot assign to array b. Did you forget a word index?
我浏览了 icarus verilog src 代码错误消息,对此的解释是“特殊情况:左值是整个内存或数组
slice”。这实际上是 l 值的错误。检测
通过注意索引计数是否小于
数组维度(未打包)”,我认为这意味着数组索引大小与声明的 [width-1:0] 不同,如果我理解的话,这是不正确的。
我也试过了:
parameter width = 10;
parameter [32:0] b [width-1:0] = {0.0181,0.0487,0.1227,0.1967,0.2273,0.1967,0.1227,0.0487,0.0181};
但没有任何成功。
使用带有 -g2012 标志的 Icarus Verilog(用于 SV 支持)
【问题讨论】:
标签: arrays parameters verilog icarus