강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

[프로젝트-1] Mem copy IP 를 FPGA 에 올려보기 (Zybo Z7-20)

[wdma] AWLEN_w의 값이 1일 경우 r_burst_cnt_w와 AWLEN_w의 async 인한 bready 발행X 이슈?

작성

·

40

1

안녕하세요 맛비님🙂
정말 하나부터 열까지 많이 배우고 있습니다 !
맛비님께서 공사가 다망하시고 강의 방향성과 좀 다른 것 같아 답변을 바란다기보단 bug의심 report라고 봐주시면 감사하겠습니다.

늘 많이 배우고 있습니다 *^^*

[1. 질문 챕터] : HDL 39장(WMDA)

[2. 질문 내용] : 맛비님 코드를 이용하며 이것 저것 바꿔보고 실험도 해보고 있는데요. 실험 중 write_timeout error가 report 되었습니다. 해당 Test case를 dump해보니 다음과 같은 issue가 있었는데요. (아래 그림 참고 부탁 드립니다.)

문제 상황: r_burst_len_aw가 1인 경우 아직 fifo를 거치지 않아 AWLEN_w의 값이 업데이트 되지 않았는데 그 기간 동안 w_hs가 발생하여 is_burst_done_w가 1'b1로 toggle되지 않고 이에 last b chanel transaction이 일어나지 않음.

image.png

답변 2

0

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 🙂

작성자 정보가 삭제되다니 ㅠㅠ 그래도 답변 드리겠습니다.

이것저것 test 해보셨군요.

AWLEN이 1인 경우, burst가 2개 이하로 짧아져 r_burst_cnt_w == AWLEN_w 조건이 아주 빨리 도달해야 합니다. 하지만 이 타이밍이 깨지면 is_burst_done_w가 제대로 assert되지 않아, bvalid가 발생하지 않고 결국 Write Timeout이 발생하게 됩니다.

따라서, AW → W의 burst control 경로를 좀 더 신중하게 동기화하거나, w_hs를 제한하는 gating 조건을 추가하는 방식으로 방지할 수 있을 것으로 생각됩니다.

즐공하세요!

0

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

코드 실험 중 발생한 write_timeout error와 관련된 상황에 대해 설명해 드리겠습니다.

문제 상황 분석

  1. AWLEN_w 업데이트: r_burst_len_aw의 값이 FIFO를 통과하여 AWLEN_w로 업데이트되기 전에, w_hs (Write Handshake)가 발생한 경우를 설명하고 있습니다. 이로 인해 is_burst_done_w가 1’b1로 할당되지 않고, 마지막 B 채널 트랜잭션이 발생하지 않는 상황입니다.

  2. 버스트 완료 조건: is_burst_done_w 신호가 트리거되지 않으면, 특정 버스트 전송이 완료되지 않아 B 채널의 응답이 돌아오지 않는 문제가 생길 수 있습니다. 이는 AXI 프로토콜에서 BREADY 신호가 발생하지 않아 발생할 수 있는 상태입니다.

해결 제안

  • FIFO 통과 시간 확인: FIFO에서 r_burst_len_aw가 적절히 이동하여 AWLEN_w로 설정되었는지 시뮬레이션을 통해 다시 검증하시기 바랍니다. 이 과정에서 딜레이가 필요할 수 있습니다.

  • 버스트 핸드셰이크 로직 점검: w_hs 신호가 발생하는 타이밍과 AWLEN_w가 올바르게 설정되는 시점을 조절하여 두 신호 간의 비동기성을 해소하는 방법을 고려해 보세요.

  • 제어 신호 조건 추가: is_burst_done_w의 설정 조건을 강화하거나 추가 상태 제어 로직을 통해 타이밍 이슈를 해결할 수 있습니다.

이번 문제는 타이밍 이슈와 관련이 있을 가능성이 큽니다. Waveform을 통해 직접 시뮬레이션 결과를 분석하면서 clk 및 다른 제어 신호들이 올바르게 트랜지션 되는지 확인하는 것이 중요합니다.

이와 관련된 유사한 질문과 답변을 참고하시기 바랍니다:
- AXI 바이퍼 장치를 이용한 WDMA 설정: 비슷한 버스트 조건 및 핸드셰이크 문제를 다루고 있습니다.

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기