inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

[FPGA 12장] AXI4-Lite I/F 를 사용하여 Register 가 아닌 메모리에 Write / Read 해보기 - 코드리뷰편

AXI의 AW 채널 디버깅 질문

113

Seokmin Hong

작성한 질문수 8

1

안녕하세요 🙂

[1. 질문 챕터] : 19장

[2. 질문 내용] : 19장의 실습에서 AXI에 ILA를 추가하여 waveform을 다음과 같이 확인하였습니다.

image.png

위 화면에서 2가지 질문이 있습니다.

 

  1. AWADDR이 write HS 지점에서는 정확하게 0x0c로 되어있습니다. 맛비님의 레지스터맵에 의하면 정확한 동작임을 확인할 수 있습니다. 그러나, HS가 끝난 후에 AWADDR이 0x10이 되는 이유가 궁금합니다!

  2. HS 후에, AW_CNT가 1을 나타내는 것이 AWADDR이 0x10이 된 것과 관련이 있는지 궁금합니다!

좋은 강의 감사드립니다 !!

fpga 임베디드

답변 2

0

설계독학맛비

안녕하세요 🙂

정답은.....

저 부분은 제가 답변드리기 어려운 부분입니다. (코드가 없어요 ㅠ) ARM Core 내의 IP 가 그렇게 설계되어 있기 때문이에요. 하하..? AXI 는 Verilog S2 에서 다루었지만, 설명을 잠시 해드리면.

 

AWADDR 을 발행하는 주체 (Master) 는 ARM Core 입니다.

우리가 만든 IP 는 Slave 죠.

 

결국 Handshake 당시의 값만 유효함으로 0x10 이 되는건 실 동작에 영향은 없을거라 생각됩니다.

그래서.. 이유는..? 저도 모르겠네요.

즐공하세요 🙂

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

Seokmin Hong님께서 질문하신 내용에 대해 유사한 질문과 답변을 찾아보았습니다. 아래 답변은 비슷한 맥락의 질문들에서 지식공유자가 제공한 내용을 바탕으로 하였습니다.

질문 1: AWADDR이 0x10으로 바뀌는 이유

이는 AXI Master와 AXI Slave 간의 통신 프로토콜에서 발생하는 현상으로, Master가 다음 주소 값을 준비하는 과정에서 나타날 수 있습니다.
- 관련 질문: FPGA 16장의 AXI_awaddr에 대해 질문 있습니다!
- 답변 요약: 주소 값이 잠시 0x10으로 변경되는 현상은 AXI 프로토콜 내부 또는 Master 내부의 다른 주소 접근으로 인해 발생할 수 있습니다. 이는 정상적인 동작이므로 특별히 문제가 되지는 않습니다.

질문 2: AW_CNT와 AWADDR 변경의 관계

AW_CNT가 1을 나타내는 것이 AWADDR이 0x10으로 변경되는 것과 직접적인 관련은 없습니다.
- 관련 질문: AXI4-lite interface
- 답변 요약: AW_CNT는 특정 Write Transaction의 카운트로, AWADDR의 변경과는 별개로 특정 Write Operation이 끝난 후 새로 준비되는 주소를 나타내는 경우입니다. 이 부분도 AXI 프로토콜의 일환으로 정상적인 동작입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

UART0, 1 중 선택

1

51

2

datamoverbram모듈질문

1

63

2

vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.

1

96

2

vitis 설치 관련 질문 있습니다!

1

84

2

FPGA 공식문서 읽는법

1

95

2

보드 추가의 클릭창이 없습니다.

1

70

2

Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다

1

81

2

BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문

1

106

1

Vitis 코드 작성

1

130

2

vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.

1

290

3

[9장 led 점등 시간 제어 불가]

1

81

2

Platform Invalid 오류

1

145

3

WSL 설치 관련 문의드립니다!!

1

96

2

Vivado 툴, 파일 질문드립니다!

1

150

2

9장 LED 점등 안됨

1

109

3

Edit in IP Packager 이후에

1

82

1

Fpga 로직

1

89

2

pmu-fw is not running

1

126

2

Create Project에 대해서 궁금해요

1

89

2

장치관리자 USB 포트

1

98

2

FPGA 7장 AXI_LITE I/F질문

1

89

1

bram mover에서 합성할때

1

77

2

타이밍 위반 질문

1

78

2

rvalid 초기화

1

66

2