강의

멘토링

커뮤니티

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

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 14장] HW 가속기의 비밀인 Pipeline 을 이해해보자 (실습편)

14장 Cycle 관련, Testbench 코드.

작성

·

9

·

수정됨

0

안녕하세요 🙂

[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.

  • 14장에 tb에 negedge clk 오류?

[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂

  • 14장에 53번째 negedge clk 오류? 로 인한 주석 처리 질문을 찾고 input과 ouput의 latency 3cycle로 동작을 확인하였습니다.
    여기서, i_vaild와 o_vaild는 시작은 3cycle인데 마지막은 2.5cycle로 동작하는 거 같은데, 3cycle이 의도 된 동작이 맞는거죠?
    (58번줄 negedge clk도 삭제하고 sim하니 3cycle 동작을 확인하였습니다.)

  • 추가로, 제가 tb의 코드를 바꿔가면서 simulation 파형을 보고싶은데 매번 vivado 창을 닫고 리눅스에서 파일을 열어 수정하고 다시 vivado 창을 열고 하는데 로딩시간이 많이 걸립니다. vivado창에서는 tb 코드를 수정하고 저장해도 simulation에는 적용이 안되는거 같은데, 혹시 다른 방법이 있나요?

 

 

답변 1

0

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

14장에서 언급하신 negedge clk 에 대한 오류 및 주석 처리와 관련된 질문에 대해 설명드리겠습니다.

질문 핵심 요약

  1. Clock Edge 및 Cycle 관련: 14장의 시뮬레이션에서 inputoutput의 latency가 예상했던 3 cycle이 아닌 2.5 cycle로 보였다고 하셨는데, code 수정 후에 확인하신 사항들이 정상이신지 궁금하신 것 같습니다.
  2. Vivado에서 시뮬레이션 효율성: Vivado 환경에서의 테스트벤치(tb) 코드를 수정하고, 시뮬레이션 결과 확인 시 효율적인 방법에 대한 질문이 포함되어 있습니다.

관련 문제 해설 및 대안 제시

문제 설명:

  • i_valido_valid 등의 신호 처리 시 cycle 수는 설계된 pipe-lining 구조에 따라 3 cycles이 맞습니다. negedge clk 주석 처리 및 수정 시 3 cycle 동작을 확인하셨다면, 의도된 동작입니다.
  • 시뮬레이션상의 부정확한 latency는 negedge에 대한 처리가 충분히 합리적이지 않았거나, clock의 edge에 대한 오해가 원인이 될 수 있습니다.

대안 및 솔루션:

  • Cycle 처리: negedge clk에 대한 오버헤드를 줄이거나, posedge clk만을 사용해 stable한 시뮬레이션 환경을 조성하는 것도 좋은 접근입니다.
  • Vivado 효율성: Vivado의 경우 일부 프로젝트 설정을 변경하면 개발 속도를 높일 수 있습니다.
    • 콜라보레이터 기능 사용: 프로젝트 내에서 Source Code를 열고, 수정 후 저장한 뒤 런처를 통해 직접 Simulation 프로세스를 재실행하십시오.
    • Integrated Environment 사용: Vivado 내에서 Scripting 기능을 활용하여 시뮬레이션 스크립트를 작성, 필요 시 리로딩하는 방법이 있습니다.

추가로 유사한 질문을 다루는 링크를 참고하시길 권장드립니다:

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

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

질문하기