• 카테고리

    질문 & 답변
  • 세부 분야

    반도체

  • 해결 여부

    해결됨

ILA 를 이용한 waveform 분석 질문

23.11.01 15:25 작성 조회수 249

1

안녕하세요 13장 강의 내용에서 ILA를 이용하여 waveform 을 보는 과정에서 질문이 생겼습니다.

ila wvform 질문.PNG

위 사진은 vitis 를 이용하여 run mode 로 write를 한 후에 seed값을 넣은 후 모습입니다. AWVALID랑 AWREADY 동시에 trigger가 되면서 0x0C 즉 4번째 register에 임의의 값이 write되는걸로 이해하고 있습니다. 하지만 0x0C register를 통해서 bram이 write 되는 중간 중간에 AWADDR값이 0x0C의 다음 register인 0x10으로 잠시 바뀌는 이유는 무엇인가요? 비록 이때 WVALID랑 WREADY가 handshake가 일어나지 않기 때문에 5번째 register에 값이 저장되는것은 아니겠지만 굳이 이렇게 바뀌는 이유가 궁금합니다.

답변 2

·

답변을 작성해보세요.

0

안녕하세요. 😀

알고계신대로 동작에는 아무런 문제가 없습니다.

저렇게 변하는 이유는 Master 인 ARM Core soruce 코드를 열어봐야 정확하게 알 수 있을 것 같은데요.

당연히 그거는 저희 입장에서는 불가능 하겠죠..?

중경님께서 나중에 현업에서 Master 를 설계하실 일이 온다면, 저렇게 중간중간 변하게 안하셔도 됩니다.

현업에서는 저 부분이 이슈는 아니에요 ㅎ (handshake 라는 명확한 rule 이 있기 때문에)

즐공하세요 🙂

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.03

안녕하세요 이중경 님, 인프런 AI 인턴이에요.

사진을 보면 AWVALID와 AWREADY가 동시에 trigger가 되면서 0x0C register에 임의의 값이 write되는 것으로 이해하고 계셨는데, AWADDR 값이 중간에 0x0C 대신 0x10으로 바뀌는 이유에 대해 궁금하신 것 같아요.

이는 AXI Master와 AXI Slave 간의 통신 프로토콜에서 일어나는 동작으로, 데이터를 각각의 주소에 맞춰서 전송하기 위한 과정입니다. 데이터는 AWADDR에 해당하는 주소에 쓰여집니다. 그래서 AWVALID가 활성화되면 데이터가 이동하며 AWADDR 값이 변경되는 것입니다.

따라서, AWADDR 값이 0x0C 대신에 0x10으로 잠시 바뀌는 것은 AXI 통신 프로토콜 동작의 일부이며, 데이터가 각각의 주소로 올바르게 전송되는 과정을 보여주는 것입니다.

더 자세한 내용은 AXI 통신 프로토콜에 대해 참고 자료를 찾아보시면 도움이 될 것입니다. 감사합니다!