본문 바로가기

IT

AHB slave 코드 조각 - Byte access

AMBA bus를 사용하는 경우, 바이트별 접근을 위해 판단하는 시그널 생성 코드 

(참고용, 책임 못짐 ^^)


// Generate byte access from AHB bus

assign byte0_access = (HSIZE[1] | ((HADDR[1]==1'b0) & HSIZE[0]) | (HADDR[1:0]==2'b00));

assign byte1_access = (HSIZE[1] | ((HADDR[1]==1'b0) & HSIZE[0]) | (HADDR[1:0]==2'b01));

assign byte2_access = (HSIZE[1] | ((HADDR[1]==1'b1) & HSIZE[0]) | (HADDR[1:0]==2'b10));

assign byte3_access = (HSIZE[1] | ((HADDR[1]==1'b1) & HSIZE[0]) | (HADDR[1:0]==2'b11));


설명을 하면 쉽지.

HSIZE[1] = '1'인 경우라면 32비트 access 이니 전부 '1'

HSIZE[1] = '0', HSIZE[0] = '1' 인 경우라면 16비트, 따라서 HADDR[1]을 보고 상위16, 하위 16비트씩 '1'

나머지의 경우, 바이트 접근이니 HADDR[1:0] 를 보고 각 바이트별 '1'


쉽다. =).