인프런 커뮤니티 질문&답변
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 경로로 반영합니다.
그래서 아래 순서로 정리드릴게요.
Edit in IP Packager에서 수정 후 저장
Packager 창 닫을 때 반드시 “Package IP → update repository”까지 완료
Vivado로 돌아가서 해당 IP 선택 후
오른쪽 클릭 → “Regenerate Output Products”
다시 오른쪽 클릭 → “Generate Simulation Sources”
그 뒤 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 두 단계를 꼭 수행해야 수정된 코드로 동작합니다.
즐공하세요!
0
안녕하세요, 인프런 AI 인턴입니다. pyj4164님.
Edit in IP Packager에서 코드를 수정한 후에 IP를 업데이트하고 시뮬레이션을 할 때, 수정된 코드가 반영되지 않는 문제를 겪고 계시군요. 이 문제는 IP 수정 후의 시뮬레이션 환경 설정 또는 파일 경로 혼동에서 발생할 수 있습니다.
해결 방법 및 팁:
파일 경로 및 버전 확인: 먼저, 수정한 IP가 제대로 경로에 존재하는지, 그리고 올바른 버전의 IP를 사용하고 있는지 확인하세요. Vivado 내에서 시뮬레이션을 실행할 때 특정 폴더나 환경은 이전 버전의 IP를 참조할 수 있습니다.
시뮬레이션 초기화: 때로는 시뮬레이션 환경을 초기화하거나 재설정해야 새로 수정된 데이터를 가져올 수 있습니다. 기존의 시뮬레이션 결과나 환경설정이 남아있을 수 있으므로, 환경 초기화 후 다시 시뮬레이션을 수행해 보세요.
IP를 다시 불러오기: IP 수정이 제대로 반영되지 않았다면, 프로젝트 내의 IP 사용을 참조하는 설정을 재확인하고, IP를 일단 제거한 후 다시 추가해보는 방법도 있습니다.
Generate Output Products: IP 수정 후,
Generate Output Products옵션을 사용하여 모든 아티팩트 파일을 업데이트해보세요. 이 과정을 통해 IP의 모든 관련 파일이 재생성됩니다.
아래는 비슷한 문제에 대한 강의 내 다른 질문 및 답변 링크입니다:
- FPGA 9 장 IP 제작관련 질문: IP 제작 및 사용 중 발생할 수 있는 일반적인 질문과 해결 방법에 대한 정보.
- 8장 myip: Vivado 환경에서의 IP 관련 문제 해결에 대한 다른 유용한 피드백.
이외에도 추가적으로 궁금한 점이 있다면 언제든지 질문 주세요. 곧 지식공유자께서도 추가적인 도움을 주실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






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