Programming,  System Verilog

What is this operator called as “+:” in Verilog

Verilog coding을 하다보면 “+:” 또는 “-:” 연산자를 자주 볼 수 있다. 이는 좌항의 값을 기준으로 우항의 값을 더하거나 뺀 값을 index value로 사용한다는 의미다. 예제는 아래와 같다.

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

Reference

Leave a Reply

Your email address will not be published. Required fields are marked *