공부방/Verilog_노진호교수님_서울기술교육센터_필기

240614_ AXI4_Lite_RAM

맘스터치보단파파이스 2024. 6. 14. 16:51

AMBA : Adavanced Microcomtroller Bus Architecture 

ARM사가 개발한 시스템 LSI 용 칩. One-Chip) SoC. 

                      AMBA 3.0

 1.0       2.0         AXI

ASB -> AHB   -> AHB

APB -> APB   -> APB

지금까지 한거 : AMBA AHB-Lite 구조. : Master가 1개.

AHB : APB에 비해 높은 성능의 버스. 64/128bit, Multi Mater 기능.

APB : 낮은 대역폭의 주변기기를 위한 버스.

즉 AHB는 CPU와 Memory를 이어주는 버스.

APB는 주변기기를 이어주는 버스.

ARM 사에서 프로토콜에 맞는 BUS가 필요함을 느껴서 새로운 BUS 제작. 회로복잡, 데이터 많아져서.

AXI-Lite : Burst 기능이 없다. ( 메모리 시작주소, 크기 입력) BURST.

AXI4-Stream : 단방향전송 BUS , Master -> Slave

프로토콜이 더 단순하다.

protocol : 데이터 교환방식을 정의하는 규칙 체계.

프로세스 : 마스터, 다른 장치 : 슬레이브.

 

AIX 가 크게 달라진점 : 여러개의 MASTER, CAHNNEL 

데이터의 transaction : 자유도가 높아졌다. 여러개의 마스터 덕분. 통신이 안되던 구간도 사라진다. 마스터1번은 1번대로 2번은 2번대로 하면서 계속 통신.

 

5개의 Channel로 늘어났다.

Write : 3개

Read : 2개.

AXI 4 Protocol, interface

VALID, READY가 HandShake 한다.

HandShake 방식이 AW, W, B, AR, R 모든 Channel에서 개별적으로 일어난다.

Info -> valid.

READ Transaction

Valid 와 Ready. 같이 handShake. Vaild로 받은 정보를 받고 저장 후 READY 출력.

Valid - Ready HandShake.

info : Addr, Data, Resp 등등 모든게 될 수 있다.

이러한 Channel들이 이렇게 되어있다.

통으로 되어있는 BUS 전용도로처럼 각각 따로 쓰인다.

위 : Read Transaction

아래 : Write Transaction

분리가 되어 있다.

독립적인 처리.

상승 edge 전에 Slave 직전에서 Addr 대기.

Addr를 보내는 과정.

Destination 에서 Ready를 보낸다.

info, valid도 없는데 Ready가 먼저? 어떤 상황일까? 

5개의 채널중 어느 채널?

CPU에서 메모리를 바라본다 : Source -> Destination 어디서 바라보는지.

Address. 먼저 보낸다. Data 올 것을 기대. 빨리 처리하려고 Ready를 먼저 보낸다.

FSM을 다 따로따로 구현해야 한다.

IDLE 상태에서 -> 다음 상태. 변화하는 트리거 : Valid.

Transaction 이름 규칙 :

AW, W, B, AR, R

AXI : Advanced eXtansible Interface
IP간의 데이터 전송을 위한 인터페이스
다중 채널 버스 읽기/쓰기
AXI 프로토콜은 트랜잭션 기반
쓰기요청 AW, 쓰기 W, 쓰기 응답 B, 읽기 요청 AR, 데이터 읽기 요청 R

READY가 먼저 뜰 수는 있다. 하지만 결국 RVALID로 가야한다.

amba_axi4 p.79

read address 부터 먼저 간단하게 작성.

 

앞으로 할거

 

Xilinx Microblaze CPU

VIVADO = AXI4 - Lite Template 제공. 

UVM 검증.

'공부방 > Verilog_노진호교수님_서울기술교육센터_필기' 카테고리의 다른 글

240618_ UVM_tutorial --> Adder  (0) 2024.06.18
240617 AXI4_Lite  (0) 2024.06.17
240604_ GPIO, Assembly  (1) 2024.06.04
240604_ 플젝 목표.  (0) 2024.06.04
240603_RISC-V GPO  (1) 2024.06.03