본문 바로가기
나의 전자 공부방/SOC

1. [SOC] AXI 4 LITE를 설계해보기

by 나만의생각 2023. 7. 18.

AXI를 설계하게 된 이유는 어떠한 전송장치에서 보내야되는 통신프로토콜이 필요한데 APB, AHB가 있습니다.  이중에 가장 빠르고 크기가 큰 프로토콜을 사용하고 싶기 때문에 AXI를 선택하여 설계를 하기로 계획하였습니다.

AXI를 처음보았을 때, 굉장히 복잡한 프로토콜로 보일수 있지만 통신을 계속 보다보니 익숙해졌습니다.

 

System on chip에서 데이터를 전송하는데 중요한 AMBA BUS중에 데이터가크고 속도가 빠른 AXI를 Verilog로 설계해 보겠습니다.

 

AXI 버스는 채널을 이용합니다

- Write Address Channel

- Write Data Channel

- Write Response Channel

- Read Address Channel

- Read Data Channel

AXI버스는 채널이 독립적으로 작동할수 있습니다.

 

VALID는 유효한 address, data 확인.

READY는 데이터를 사용할수 있는지 여부.

BRESP 전송이 완료.

 

ARM사에서 제공해주는 데이터시트를 이용하였습니다.

 

AXI Write

Wirte의 경우입니다.

AXI Master에서 주소를 보낸뒤 Data를 제공합니다. Axi Slave에서는 WriteData를 받았는지에 대한 응답을 Master에게 전달합니다.

 

Read의 경우입니다.

AXI Read

Read의 경우입니다.

AXI Master에서 Address를 보내면 Slave에서 ReadData를 Master에게 보냅니다.

 

Write Data

 

AXI 파라미터 이동방향
AWADDR M->S
AWVALID M->S
AWREADY S->M
WDATA M->S
WVALID M->S
WREADY S->M
BRESP S->M
BVALID S->M
BREADY M->S

제가 제작한 코드는 WLAST가 없습니다. 이유는 한번에 출력되기 때문입니다.

 

 

AXI Read

AXI 파라미터 이동방향
ARADDR M->S
ARVALID M->S
ARREADY S->M
RDATA S->M
RVALID S->M
RREADY M->S

 

 

이를 바탕으로 제작해보겠습니다.

 

다음내용은 다음에

'나의 전자 공부방 > SOC' 카테고리의 다른 글

2. AXI4_Lite Verilog 설계 [완료]  (0) 2023.07.20