AMBA / AXI4-Lite Interface

Mo·2024년 10월 14일

FPGA

목록 보기
3/7

AMBA, Adavanced Microcontroller Bus Architecture

AMBA : soc설계 내부 모듈간의 연결 및 관리를 위한 '표준' Interconnect Spec이다.

현재 대부분의 HW IP들이 AMBA Protocol을 준수하고 있다.

AMBA, 주요 개념

Protocol

  1. AHB (Advanced High-performance Bus)

고성능 시스템을 위한 버스.
높은 대역폭을 요구하는 주변 장치와 프로세서 사이의 데이터 전송을 처리.
파이프라이닝 및 다중 마스터 시스템을 지원하여 효율성을 극대화함.

  1. APB (Advanced Peripheral Bus)

저속 주변 장치와의 통신을 위한 버스.
상대적으로 낮은 전력 소비와 간단한 데이터 전송 방식이 특징.
주로 타이머, UART, GPIO 등과 같은 단순한 주변 장치에 사용됨.

  1. AXI (Advanced eXtensible Interface)
Xilinx에서 AXI4를 적극적으로 사용하고 있다.

고성능, 고대역폭 시스템에서 사용되며, SoC에서 가장 많이 사용되는 버스 프로토콜 중 하나.
높은 데이터 전송 속도를 지원하고, 동시에 여러 데이터 전송 채널을 처리할 수 있음.
읽기/쓰기 트랜잭션을 독립적으로 처리하여 효율성을 높임.

Register Space

Ready / Valid Handshake

data를 전송할 때 ready/valid 신호 둘다 1이 되었을 때 (정상적으로)전송이 되었다는 Rule
Data를 전달하는 입장에서는 전달할 Data가 있다면, Valid 신호를 1로 set함과 동시에 함께 전송할 Data를 출력시킴
Data를 받는 입장에서는 Data를 받을 준비가 되었을 때 Ready 신호를 1로 set

AXI Channel

AXI4 Lite는 Read / Write를 위해 5개의 Channel을 갖는다.

AXI4 testbench 이해하기

AXI4-Lite

AXI4-Lite는 HW IP(CORE)를 제어하고 상태를 확인하기 위해서 사용하는 '인터페이스'이고 복잡한 데이터 전송이 필요하지 않은 단순한 제어 작업을 수행할 때 자원 효율적이고 직관적으로 사용할 수 있다

HW IP 제어/상태 확인

LED 점등 IP의 점등 시간을 직접 이력 받아 제어, 실제 Setting된 점등 시간 확인

Vivado : IP 생성 - HW Platform 생성
Vitis : Application Code - 실행

BRAM에 Write / Read

BRAM은 Internal Memory에 속한다.

Register와 BRAM은 1Bit 저장하는데 필요한 Size가 다르다.

레지스터 사용

  1. 작은 크기의 데이터를 저장하고 빠른 접근이 필요할 때 적합.
  2. 상태 저장, 제어 신호 저장, 간단한 카운터, 신호 지연 등에 주로 사용.
  3. 복잡한 연산 및 빠른 반응 시간이 필요한 상황에서 레지스터가 더 유리.

BRAM 사용

초기에 딱 한번 값을 저장하고 남아있는 동작 중에 이 Data는 절대 변할일이 없는 곳에 적용하면 좋다.
ex) AI 연산 : Weight Stationary, 가중치인 Weight값이 변할일이 없다.
  1. 대규모 데이터를 저장해야 할 때 적합.
  2. 비디오 프레임, 오디오 샘플링, 대용량 데이터 버퍼 등 많은 양의 데이터를 처리할 때 BRAM이 적합.
  3. 상대적으로 긴 지연 시간과 넓은 데이터 폭이 필요할 때 BRAM을 사용하는 것이 더 효율적.

H/W Accelerator

CPU에서 구동하는 SW보다 더 빠르게 수행할 수 있는 HW 가속기
과정 : DATA를 가속기에 Loadign 후 Core를 RUN한 후 결과값을 읽는다.

Data를 전달하는 과정, Core를 Run하는 과정, 결과를 읽어가는 과정을 Pipeline처리를 할 수 있다면 좋은 성능을 하는 Aceelerator를 만들 수 있다.

0개의 댓글