Inflearn brand logo image

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

2024620043님의 프로필 이미지
2024620043

작성한 질문수

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

27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기

작성

·

40

1

안녕하세요 🙂

[1. 질문 챕터] : 29:00

[2. 질문 내용] :

idle 조건이 충족하지 않아서 무한 루프에서 break 되지 않고 있습니다.

OS Name : Ubuntu 22.04.2 LTS

Xilinx version : 2024.02

[3. 시도했던 내용, 그렇게 생각하는 이유] :

#define XPAR_MATBI_DMA_IP_TOP_0_BASEADDR 0x40000000
#define XPAR_MATBI_DMA_IP_TOP_0_HIGHADDR 0x40000fff

#define ADDR_AP_CTRL 0x00
#define CTRL_DONE_MASK 0x00000002
#define CTRL_IDLE_MASK 0x00000004

void matbi_hw_memcpy(void* dest, const void* source, size_t num){
while(1) {
read_data = Xil_In32((XPAR_MATBI_DMA_IP_TOP_0_BASEADDR) + ADDR_AP_CTRL);

if( (read_data & CTRL_IDLE_MASK) == CTRL_IDLE_MASK ) // IDLE

break;

}
}

image.png

 

image.png


 

답변 2

0

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

https://inf.run/7x89H

위 링크와 중복 질문이실까요?

IDLE 충족이 안된다면, 내부 HW 의 문제일 가능성이 높은데요.

ILA 를 통해서 SW 가 셋팅한 value 가 온전히 HW 로 잘 들어가고 있는지 디버깅을 해보셔야 할 것 같아요.

강의 촬영에 사용했던 동작했던 project 와 비교해서 보셔도 좋고요. (모든 버전을 보장할 수 없지만, 최소 강의에서 사용했던 버전은 잘 동작 하실꺼에요)

0

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

현재 CTRL_IDLE_MASK 조건이 충족되지 않아 무한 루프에서 벗어나지 못하는 문제를 겪고 계신 것 같습니다. 이 문제는 주로 하드웨어의 현재 상태를 반영하기 위한 소프트웨어와의 통신 문제에서 발생할 수 있습니다. 아래에 확인해 보실 몇 가지 사항을 제안드립니다:

문제 원인 및 해결 방법

  1. 하드웨어 설정 확인: DMA IP의 하드웨어 설정이 올바른지 확인하세요. XPAR_MATBI_DMA_IP_TOP_0_BASEADDR를 포함한 메모리 맵과 하드웨어의 메모리 주소 할당이 정확한지 검토해 보세요.

  2. 레지스터 상태 확인: ADDR_AP_CTRL 레지스터 내에서 CTRL_IDLE_MASK 비트가 정확히 설정되어 있는지 확인하세요. 하드웨어가 실제로 이 상태가 되도록 명확히 설정되어 있어야 합니다.

  3. 타이밍 문제 고려: 때로는 타이밍 문제로 인해 무한 루프가 발생할 수 있습니다. 하드웨어가 실제로 해당 상태가 되기 전에 소프트웨어가 습관적으로 상태를 읽어 상태 전환이 감지되지 않을 수 있습니다. 작은 지연을 넣어 상태 변화를 기다려보는 것도 한 방법입니다.

  4. 디버그 툴 활용: 현재 제공하신 디버그 인터페이스 이미지를 참고로, 디버깅 툴을 활용하여 하드웨어 레지스터의 상태를 실시간으로 모니터링해 보세요.

아래에 유사한 문제들에 대해 해결했던 기존의 질문을 확인해 보시기 바랍니다:

이 정보들이 문제를 해결하는 데 도움이 되길 바랍니다.

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

2024620043님의 프로필 이미지
2024620043

작성한 질문수

질문하기