본문 바로가기

예제로 아는게 최고다. 일단 기본은 아래와 같다.

 

SystemVerilog Array Slice - Verification Guide

+: NOTATION

byte = data[j +: k];

j -> bit start position
k -> Number of bits up from j’th position

byte = data[0 +: 8];  

0 -> Starting point
8 -> 8 elements up from 0 , so end point is 7.

byte = data[7:0];  

The above 32-bit data copying to byte array can be re-written with + notation as below.

 

foreach(byte[i]) byte[i] = data[8*i +: 8];
Above code can be expanded as below,

byte[0] = data[8*0 +: 8]; //data[7:0]  
byte[i] = data[8*1 +: 8]; //data[15:8]  
byte[i] = data[8*2 +: 8]; //data[23:16]  
byte[i] = data[8*3 +: 8]; //data[31:24]

 

꼭 코드를 보면 [0:7] 이렇게 될것 같지만 시작 점과 길이가 역순으로 배치된다.

[7:0] [15:8] 이런식으로..

 

헷갈리지 말자

 

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.