답변:
이 구문을 indexed part-select 라고합니다 . 첫 번째 항은 비트 오프셋이고 두 번째 항은 폭입니다. 오프셋에 변수를 지정할 수 있지만 너비는 일정해야합니다.
SystemVerilog 2012 LRM의 예 :
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
마지막으로 소스 페이지가 있는데이를 Indexed Vector part Select ( "+ :")라고합니다 .
좀 더 설명하기 위해
PQR_AR[44*8 +: 64];
Verilog 2000에 추가 된 Indexed vector part select를 사용하면 전체 버스를 선택하는 대신 버스의 일부를 선택할 수 있습니다.
44 * 8 파트는 파트 선택 변수의 시작점이고 64는 파트 선택의 너비이며 일정합니다. 이는 초기에 초기화 한 경우를 의미합니다
input [415:0] PQR;
우리는 PQR의 특정 부분을 사용하여 선택하고 있습니다.
PQR_AR[44*8 +: 64];
즉 PQR_AR [352+ : 64]이거나 0에서 415 사이에서 352에서 415 사이의 부분을 취하고 있음을 의미합니다.