【问题标题】:Systemverilog: assignment between unpacked arrays of different order (downto vs. upto)Systemverilog:不同顺序的解包数组之间的分配(向下与向上)
【发布时间】:2022-01-07 07:04:59
【问题描述】:

假设两个(编辑:未打包的)int 数组以不同的索引顺序(向下与向上)但大小相同,例如

int  a [10:1];
int  b [1:10];

会在这些之间分配,

assign b = a;
  1. 是非法的,或者
  2. 导致“相同索引”分配 (b[1]=a[1] ... b[10]=a[10]),或
  3. 导致“镜像索引”分配 (b[1]=a[10] ... b[10]=a[1])?

我无法在语言参考手册中找到信息,两个商业工具的行为不同。

【问题讨论】:

    标签: arrays system-verilog


    【解决方案1】:

    这是合法代码,您显示的是一个 unpacked 数组,而不是 packed 数组。但是无论哪种方式,范围都是从左到右。因此,您的选项 3 是正确的行为。请参阅IEEE 1800-2017 SystemVerilog LRM

    中的 6.22.2 等效类型7.6 数组分配 部分

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 2022-11-20
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多