본문 바로가기
Digital Logic/FPGA

[IP 설계] AXI4-Lite Interface 란?

by 고뭉나무 2021. 5. 11.

지난 포스팅에서 IP 설계의 중요성에 대해 언급했다. 우리가 FPGA 칩을 통해 원하는 어플리케이션을 구현하기 위해서는 해당 기능을 수행하는 IP를 설계해야 한다. 그리고 그 IP의 상태를 읽고 쓰는 방식이 바로 이번 시간에 다룰 'AXI4-Lite Interface'이다.

2021.05.05 - [Digital Logic/FPGA] - FPGA 설계에 있어 중요한 점은? 큰 줄기를 잡고 가자

 

FPGA 설계에 있어 중요한 점은? 큰 줄기를 잡고 가자

글에 앞서 현재 이 블로그에서 다루고 있는 실습 보드 Zybo z7-20는 Xilinx사의 ZNYQ-7000으로 FPGA 뿐만 아니라 ARM 프로세서도 같이 있는 모델이다. 따라서 위의 실습 내용을 Zybo 보드 하나로 해결할 수

rubber-tree.tistory.com

 

AXI4는 무엇인가?

 

AXI는 AMBA 시스템의 한 종류로써, AMBA는 ARM Advanced Microcontroller Bus Architecture의 약자이다.

그리고 AXI는 Advanced eXtensible Interface 의 약자로 IP 블록의 통신을 제어하게 하는 protocol인 것이다.

현재 대다수의 HW IP들이 이 AMBA protocol을 따르고 있기 때문에 표준과도 같은 것이다. 그러므로 알아두고 사용하면 매우 유용하다.

AMBA System

 

AXI4-Lite Interface로 무엇을 하는 가?

 

HW IP의 상태를 Read하거나 Write 하기 위한 Interface이다. 이 과정은 Register에 접근하여 수행한다.

 

 

그러하니 IP를 설계함에 있어서 필수적으로 사용되는 부분이다.

그럼 이 AXI4-Lite interface를 사용하기 위해 알아두어야 할 특징 2가지를 알아보고자 한다.

 

 

Ready / Valid handshake

Ready와 Valid 신호가 동시에 '1' 일 때 Data가 정상적으로 전송된다.

 

Ready / Valid handshake

Data의 전송은 Transmitter -> Receiver로 이루어지며, Transmitter는 아무때나 데이터를 보내지 않고 Receiver도 아무때나 데이터를 받지 않는다. Transmitter가 valid에 '1' 값을 실어 보내면 Receiver가 이 값을 받고 준비가 되었을 때 ready에 '1' 값을 실어서 보내준다.

그렇게 valid와 Ready 값이 모두 '1'인 타이밍에 Transmitter -> Receiver로 데이터가 전송된다. 물론 Clock 타이밍에 맞춰서 말이다.

이것이 AXI4-Lite interface의 기본 규칙이다.

 

 

5개의 AXI Channels

 

AXI4-Lite는 Read/Write를 위해 아래와 같이 5개의 Channel을 갖고 있다. (화살표 하나당 1 Channel)

여기에 있는 모든 Channel은 Ready / Valid handshake 규칙을 따른다. 즉 어떤 Channel 이냐에 따라 Transmitter와 Receiver가 정해진다.

AXI통신은 Master가 먼저 Slave에게 Read 혹은 Write 하고자 하는 Register의 Address를 물어보면서 시작된다.

AXI Master & Slave

 

AXI Read Transactions

Master가 읽고 싶은 레지스터의 주소를 보내면 Slave가 그에 맞는 데이터 정보를 보내준다.

 

AXI Write Transactions

Master가 쓰고 싶은 레지스터의 주소를 보내고 Ready/Valid handshake가 만족하면 쓰고 싶은 데이터를 보낸다. 그러면 Slave가 그에 대한 ACK와 같은 확인 결과를 Master에게 보내준다.

 

참조: forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/AXI-Basics-1-Introduction-to-AXI/ba-p/1053914

반응형

댓글