강의

멘토링

로드맵

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

어진님의 프로필 이미지
어진

작성한 질문수

설계독학's Verilog 마스터 Season 1 (실전 코딩 Test 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)

[L0-P12] Testbench 작성 - 4bit 카운터 DUT를 검증하기

155ns 타이밍 이슈에 관한 궁금증(?)

작성

·

13

0

안녕하세요 🙂

[1. 질문 챕터] : testbench 작성 - answer.txt 155ns~156ns 부분

[2. 질문 내용] :
155ns 부분에 원래 13이 찍혀야 하는 거 아닌가요?! 근데 시간은 1ns delay되어서 156ns로 찍혀있고 출력은 14(1110)으로 나와있는게 왜 그런지 궁금합니다.

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

155시점에서 expected_count가 13일 때, if 조건문이 먼저 걸려서 #1 force에 걸려있는 지연 때문에 뒤에 있는 task 호출이 밀렸나? 생각이 들어서 task 호출을 if 조건보다 앞에 작성하고 다시 build를 돌려도 실행 결과는 #1 지연된 14가 출력되었습니다,,

답변 2

0

ETA님의 프로필 이미지
ETA
지식공유자

안녕하세요 어진님 혹시 어떻게 고치셨을까요?

제가 아래와 같이 한줄을 추가해서

image.png

결과를 보니

image.png

155ns에는 13으로 찍히고있습니다.

어느 부분에 코드를 넣으셨을까요?

코드 수정해주신 부분을 공유해주시면 확인해보겠습니다.

 

감사합니다.

 

0

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

현재 testbench 작성 중 155ns와 156ns 사이의 타이밍 이슈에 관련하여 궁금하신 점이 있으시군요. Verilog HDL에서의 시뮬레이션 타이밍과 관련된 문제는 크게 두 가지 이유에서 발생할 수 있습니다. 이는 종종 신호의 전파 지연과 코드 내 설정된 지연에 관련된 문제 때문입니다.

문제의 이해 및 해결

  1. 지연이 있는 경우:

    • Verilog에서 #1 과 같은 지연은 즉각적으로 신호를 변경하지 않고, 지연을 적용한 후에 신호가 변경되도록 합니다. 그래서 해당 지점에서, 지연의 영향을 받는 statement는 후순위로 실행이 될 가능성이 있습니다.
  2. 조건문과 타이밍의 문제:

    • if 조건문과 같이, 조건에 맞춰 특정 동작이 지연없이 즉각적으로 적용될 것으로 예상하는 경우에는 코드의 순서와 논리가 제대로 검토되어야 합니다. 이는 하드웨어 설계에서는 대개 발생하지 않는 것으로, 논리적 오류가 발생할 수 있습니다.
  3. 변수의 변환 시간:

추천 자료

만약, 여전히 타이밍 이슈가 해결되지 않는다면 질문글에 시뮬레이션 파형 이미지와 코드를 조금 더 구체적으로 설명해 주시면 더 정확하고 실질적인 도움을 드리겠습니다.

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

어진님의 프로필 이미지
어진

작성한 질문수

질문하기