这个Verilog初始化语法的重要性顺序是什么?

Ric*_*ich 2 verilog system-verilog

这是一个简单的SystemVerilog问题,我很难找到答案.

在这种位数组初始化语法中,b [0]部分是分配给最高有效位还是最低有效位?

bit a[7:0];
bit b[7:0] = 8'hff;
bit c[7:0] = 8'h00;

a = {b[0], c[6:0]};
Run Code Online (Sandbox Code Playgroud)

那么[0] == 1还是[7] == 1?

Pau*_*l S 5

你发现很难找到答案的原因是因为结果取决于你如何宣布事物.

你已经宣布a[7:0].因此位a的排列如下:

a7 a6 a5 a4 a3 a2 a1 a0
Run Code Online (Sandbox Code Playgroud)

然后您分配{b[0], c[6:0}a:

a7 a6 a5 a4 a3 a2 a1 a0 = b0 c6 c5 c4 c3 c2 c1 c0
 1  0  0  0  0  0  0  0 =  1  0  0  0  0  0  0  0
Run Code Online (Sandbox Code Playgroud)

A[7] == 1

如果你宣称a[0:7]的结果将是:

a0 a1 a2 a3 a4 a5 a6 a7 = b0 c6 c5 c4 c3 c2 c1 c0
 1  0  0  0  0  0  0  0 =  1  0  0  0  0  0  0  0
Run Code Online (Sandbox Code Playgroud)

A[0] == 1