반응형
몇일 전 Code review를 하다 동료 중에 한명이 +: 문법을 사용하여 RTL을 기술 한 것을 보고 순간 이해가 되지 않아서 당황했었습니다. 스쳐지나가면서 본 기억은 있지만 확장성 있는 코드를 작성할 때 개인적으로는 data[i +: j] 방법보다는 좀 더 직관적인 data[(i+j-1) : i] 방법으로만 코딩을 하였기 때문에 어떻게 bit을 계산해야 할지 생각나지 않았기 때문입니다.
이 기회에 아래와 같이 정리해 보면서 인터뷰 질문에 목록에 추가해 봅니다.
data[i +: j]; // data[(i+j-1) : i] data[i -: j]; // data[i : (i+1-j)] // Example if 0<= i < 4 data[8*i +: 8]; data[8*0 +: 8]; //data[7:0] data[8*1 +: 8]; //data[15:8] data[8*2 +: 8]; //data[23:16] data[8*3 +: 8]; //data[31:24] data[(8*(i+1))-1 -: 8]; data[(8*1)-1 -: 8]; //data[ 7 -: 8] => data[7:0] data[(8*2)-1 -: 8]; //data[15 -: 8] => data[15:8] data[(8*3)-1 -: 8]; //data[23 -: 8] => data[23:16] data[(8*4)-1 -: 8]; //data[31 -: 8] => data[31:24]
반응형
'SoC' 카테고리의 다른 글
UPF 1.0, UPF 2.0, UPF 2.1, UPF 3.0, 그리고 UPF 3.1 (0) | 2020.06.22 |
---|---|
프로세서 검증에 대하여 (0) | 2020.05.11 |
Verilator 를 이용한 function simulation (0) | 2020.05.01 |
Icarus Verilog 를 이용한 function simulation (3) | 2020.04.30 |
CDC(Clock Domain Crossing)의 동기화 기법 (1) | 2019.10.20 |