Câu trả lời:
Cú pháp đó được gọi là một phần được chọn . Thuật ngữ đầu tiên là bit offset và thuật ngữ thứ hai là chiều rộng. Nó cho phép bạn chỉ định một biến cho phần bù, nhưng chiều rộng phải không đổi.
Ví dụ từ LRM SystemVerilog 2012:
logic [31: 0] a_vect;
logic [0 :31] b_vect;
logic [63: 0] dword;
integer sel;
a_vect[ 0 +: 8] // == a_vect[ 7 : 0]
a_vect[15 -: 8] // == a_vect[15 : 8]
b_vect[ 0 +: 8] // == b_vect[0 : 7]
b_vect[15 -: 8] // == b_vect[8 :15]
dword[8*sel +: 8] // variable part-select with fixed width
Cuối cùng tôi đã nhận được trang nguồn cho việc này, đây được gọi là phần Vector được lập chỉ mục Chọn ("+:") .
Để giải thích thêm một chút
PQR_AR[44*8 +: 64];
Với phần chọn vector được lập chỉ mục, được thêm vào trong Verilog 2000, bạn có thể chọn một phần của xe buýt thay vì chọn toàn bộ xe buýt.
Phần 44 * 8 là điểm bắt đầu của biến chọn phần và 64 là chiều rộng của phần chọn andis hằng. Điều đó có nghĩa là nếu ban đầu chúng ta đã khởi tạo
input [415:0] PQR;
chúng tôi đang chọn một phần cụ thể của PQR bằng cách sử dụng
PQR_AR[44*8 +: 64];
đó là PQR_AR [352+: 64] hoặc điều đó có nghĩa là chúng tôi đang tham gia một phần từ 352 đến 415 trong số 0 đến 415.