강의

멘토링

커뮤니티

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

pyj4164님의 프로필 이미지
pyj4164

작성한 질문수

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

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

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

작성

·

19

1

안녕하세요 🙂

[1. 질문 챕터] : FPGA 12장 Simulation과 Edit in IP Packager 부분

 

[2. 질문 내용] : 안녕하세요 맛비님! 강의 잘 수강하고 있습니다. 다름이 아니라 FPGA 12장에서 공부를 하던 도중 처음에는 맛비님이 알려주신 코드를 그대로 사용해서 IP를 수정해서 update IP를 하고 시뮬레이션을 하니 결과가 정상적으로 나왔습니다. 그 후에, 다시 조금 코드를 간단히 수정해보고 제가 생각한 결과와 맞게 나오나 결과를 보고싶어서 같은 방식으로 Edit in IP Packager에 들어가서 코드 수정하고 update IP까지 했는데, 결과가 그대로 이길래 이상해서 시뮬레이션 창 내부에서 Source코드를 확인하니 내부 코드 수정이 전혀 안되어있더군요. 분명 Edit in IP Packager로 들어가면 코드가 수정되어 있는데, 제가 시뮬레이션 하려고 시뮬레이션 창으로 들어가면 그 때 사용되는 코드가 제대로 수정이 안되어 있고 기존의 코드를 사용 중에 있어서 이 부분 어떻게 해결하면 좋을지 싶습니다. 나중에도 분명히 시뮬레이션 결과를 보고 다시 코드를 수정하고 싶을 때가 있을 텐데, 이럴 때 어떻게 코드 수정된 부분이 시뮬레이션에 반영되게 하는 지가 궁금합니다. 감사합니다!!

 

[3. 시도했던 내용, 그렇게 생각하는 이유] : GPT에게 물어보니 파일 path가 꼬이거나 .gen 파일을 사용해서 업데이트된 IP를 사용하는 것이 아닌 기존 파일을 사용하는 것 같다고 하던데 제가 생각한 것 보다 그냥 코드 수정하는게 너무 복잡한 것 같아서 이상해서 질문드립니다. 감사합니다!

 

 

답변 2

0

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

안녕하세요 🙂

이 문제는 Edit in IP Packager에서 수정한 코드가 Vivado 프로젝트의 시뮬레이션 경로에 제대로 반영되지 않아서 생기는 현상입니다. 핵심은 IP를 수정하고 update IP만 한 것으로는 simulation source 경로가 자동으로 갱신되지 않는다는 점 입니다.

Vivado의 시뮬레이션은 기본적으로 “project 내에 복사된 simulation용 wrapper 파일”을 바라보고 동작합니다. 즉, IP Packager 안에서 코드를 수정해도, update IP를 한 뒤에 generate output products → generate simulation sources를 다시 해줘야 Vivado가 수정된 파일을 simulation 경로로 반영합니다.

그래서 아래 순서로 정리드릴게요.

  1. Edit in IP Packager에서 수정 후 저장

  2. Packager 창 닫을 때 반드시 “Package IP → update repository”까지 완료

  3. Vivado로 돌아가서 해당 IP 선택 후

    • 오른쪽 클릭 → “Regenerate Output Products”

    • 다시 오른쪽 클릭 → “Generate Simulation Sources”

  4. 그 뒤 simulation을 다시 실행

이렇게 해야 Vivado가 기존 simulation 디렉토리 안의 .v 파일을 새로 덮어씁니다.

만약 그래도 반영이 안 된다면, simulation 폴더(sim_1/simulations/ip_name)를 직접 삭제한 후 위 단계를 다시 하면 됩니다. Vivado가 새로 복사하면서 최신 IP 코드로 시뮬레이션을 돌립니다.

그리고 이런 문제를 반복해서 겪지 않으려면, IP를 수정할 때마다 Vivado에서 Tools → Report IP Status로 확인하세요. “Out of date”가 표시되는 IP는 반드시 regenerate를 해야 simulation이 정상 반영됩니다.

정리하면, update IP만으로는 simulation 쪽이 갱신되지 않고, generate output + generate simulation sources 두 단계를 꼭 수행해야 수정된 코드로 동작합니다.

즐공하세요!

pyj4164님의 프로필 이미지
pyj4164
질문자

헤매고 있었는데 친절하고 자세하게 답변해주셔서 감사합니다!

 

0

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

Edit in IP Packager에서 코드를 수정한 후에 IP를 업데이트하고 시뮬레이션을 할 때, 수정된 코드가 반영되지 않는 문제를 겪고 계시군요. 이 문제는 IP 수정 후의 시뮬레이션 환경 설정 또는 파일 경로 혼동에서 발생할 수 있습니다.

해결 방법 및 팁:

  1. 파일 경로 및 버전 확인: 먼저, 수정한 IP가 제대로 경로에 존재하는지, 그리고 올바른 버전의 IP를 사용하고 있는지 확인하세요. Vivado 내에서 시뮬레이션을 실행할 때 특정 폴더나 환경은 이전 버전의 IP를 참조할 수 있습니다.

  2. 시뮬레이션 초기화: 때로는 시뮬레이션 환경을 초기화하거나 재설정해야 새로 수정된 데이터를 가져올 수 있습니다. 기존의 시뮬레이션 결과나 환경설정이 남아있을 수 있으므로, 환경 초기화 후 다시 시뮬레이션을 수행해 보세요.

  3. IP를 다시 불러오기: IP 수정이 제대로 반영되지 않았다면, 프로젝트 내의 IP 사용을 참조하는 설정을 재확인하고, IP를 일단 제거한 후 다시 추가해보는 방법도 있습니다.

  4. Generate Output Products: IP 수정 후, Generate Output Products 옵션을 사용하여 모든 아티팩트 파일을 업데이트해보세요. 이 과정을 통해 IP의 모든 관련 파일이 재생성됩니다.

아래는 비슷한 문제에 대한 강의 내 다른 질문 및 답변 링크입니다:
- FPGA 9 장 IP 제작관련 질문: IP 제작 및 사용 중 발생할 수 있는 일반적인 질문과 해결 방법에 대한 정보.
- 8장 myip: Vivado 환경에서의 IP 관련 문제 해결에 대한 다른 유용한 피드백.

이외에도 추가적으로 궁금한 점이 있다면 언제든지 질문 주세요. 곧 지식공유자께서도 추가적인 도움을 주실 수 있습니다.

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

pyj4164님의 프로필 이미지
pyj4164

작성한 질문수

질문하기