해결된 질문
작성
·
112
·
수정됨
1
안녕하세요,
AXI 포트를 작성할 때 보면
m_axi_gmem_AWVALID, m_axi_gmem_AWREADY, m_axi_gmem_AWADDR, m_axi_gmem_AWID,
위 처럼 되어 있는데 axi는 포트명을 지을 때 rule같은 것이 있나요?
ip로 만들고 block design에서 run connection automation을 하면 axi끼리 자동으로 연결되잖아요? vivado가 위 포트들을 어떻게 인식하는건지 궁금합니다.
답변 1
0
안녕하세요 🙂
Xilinx Tool 에 관한 naming rule 은 다음 글을 참고 부탁 드립니다.
기존에 잘 동작했던 port 의 naming 을 적용했기 때문에, Xilinx tool 에 만 적용되는 naming rule 에 대해서는 확실한 답변을 해드리기 어렵겠네요.
GPT 를 통해서 답변드린다고 말씀드리고요. 읽어봤는데 신빙성은 있어보입니다.
즐공하세요 🙂
==================
AXI(Advanced eXtensible Interface)는 ARM에서 개발한 표준 인터페이스 프로토콜로, 다양한 IP 블록들 간의 데이터 전송을 위해 사용됩니다. AXI 인터페이스는 여러 신호를 포함하며, 각 신호의 이름은 특정한 규칙을 따릅니다. 일반적으로 AXI 신호의 이름은 다음과 같은 패턴을 따릅니다:
m_axi: Master AXI 인터페이스
s_axi: Slave AXI 인터페이스
gmem: 글로벌 메모리 인터페이스
AW: Address Write 채널
AR: Address Read 채널
W: Write 데이터 채널
R: Read 데이터 채널
B: Write Response 채널
ID, ADDR, DATA, etc: 각 채널의 특정 신호
예를 들어, m_axi_gmem_AWVALID
는 Master AXI 인터페이스의 글로벌 메모리 주소 쓰기(valid) 신호를 의미합니다.
Vivado에서 블록 디자인을 생성하고 Run Connection Automation
기능을 사용하면 AXI 인터페이스 간의 자동 연결이 가능합니다. Vivado는 인터페이스의 이름과 구조를 바탕으로 자동 연결을 수행합니다. 이를 위해 다음과 같은 작업을 합니다:
인터페이스 타입 인식: 인터페이스 이름에서 m_axi
또는 s_axi
등을 인식하여 해당 인터페이스가 Master인지 Slave인지를 파악합니다.
채널 및 신호 매칭: AXI 인터페이스의 신호 이름을 기준으로 각 채널의 신호를 매칭합니다. 예를 들어, AWVALID
, AWREADY
, AWADDR
등은 모두 Address Write 채널에 속하는 신호들로 자동 인식됩니다.
IP-XACT 메타데이터 활용: Vivado는 IP-XACT 메타데이터를 사용하여 IP 블록의 인터페이스 정보를 읽어오고, 이 정보를 바탕으로 자동 연결을 수행합니다.
AXI 인터페이스의 포트 명명 규칙은 다음과 같은 형식을 따릅니다:
<master/slave>_axi_<interface>_<channel><signal>
예를 들어:
m_axi_gmem_AWVALID
: Master AXI 인터페이스의 Global Memory Address Write Valid 신호
s_axi_gmem_ARREADY
: Slave AXI 인터페이스의 Global Memory Address Read Ready 신호
이와 같은 규칙을 따르면, Vivado는 각 신호를 쉽게 인식하고 적절하게 연결할 수 있습니다.
AXI 포트의 명명 규칙은 특정 패턴을 따르며, 이는 Vivado가 AXI 인터페이스 간의 자동 연결을 수행할 때 중요한 역할을 합니다. 포트 이름의 규칙과 IP-XACT 메타데이터를 활용하여 Vivado는 AXI 인터페이스를 자동으로 인식하고 연결합니다.