我想知道以这种方式声明解压缩端口的区别是什么:
input logic a[10];
或者这样:
input logic a[9:0];
我无法在任何地方找到差异,我只是根据经验知道连接两个端口与这些“不同?”类型不会引起任何警告(在vcs和modelsim中都进行过测试),但数据的顺序可能会颠倒过来。
答案 0 :(得分:3)
在Verilog中input logic a[10]
逻辑是不允许的,并且会导致
此verilog模式中不允许单值范围
错误。您需要使用范围声明一个数组(即[9:0]
)。
另一方面,在SystemVerilog中,您可以使用范围或大小声明数组(即[10]
)。基于IEEE 1800-2012 ch。 7.4.2:
每个固定大小的维度应由地址范围(...)或单个正数表示,以指定固定大小的解压缩数组的大小,如C中所示。换句话说,
[size]
与[0:size-1]
相同。