verilog中的总线表示法

verilog中的总线表示法,verilog,system-verilog,Verilog,System Verilog,我一直认为总线符号的注释如下: input bus[MSB:LSB] 其中MSB>=LSB 但最近,有人告诉我,即使这样也有可能: wire LSB >= MSB. 这是真的吗 如果是这样的话,那么合成器工具是如何获得总线大小的呢?他们认为哪个指标大的是MSB?< /P> < P>比特编号不重要,除非你选择一个或一个部分的总线选择。只要您知道信号是如何声明的,任何工具都可以计算出位宽度和msb顺序是的,位编号的两个方向都可以在声明中使用。但是,在进行位选择时,必须使用相同的顺序。比如说

我一直认为总线符号的注释如下:

input bus[MSB:LSB]
其中MSB>=LSB

但最近,有人告诉我,即使这样也有可能:

wire LSB >= MSB.
这是真的吗


如果是这样的话,那么合成器工具是如何获得总线大小的呢?他们认为哪个指标大的是MSB?< /P> < P>比特编号不重要,除非你选择一个或一个部分的总线选择。只要您知道信号是如何声明的,任何工具都可以计算出位宽度和msb顺序

是的,位编号的两个方向都可以在声明中使用。但是,在进行位选择时,必须使用相同的顺序。比如说

wire [0:15] bus;
reg  [15:0] data;
assign bus [3:6] = data[3:0];

在大多数情况下,整个行业都使用第二种符号(msb>lsb),出于一致性原因,鼓励使用第二种符号。但是,在某些情况下,做相反的事情很方便。

这是不正确的。也许这是个打字错误。您需要选择
总线[6:3]
它是正确的。因为
总线
被声明为
[0:15]
位选择必须是
[3:6]
,反之亦然。对不起,我的错误