inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

개인공부하다 질문이 생겨 질문합니다!!

1523

베릴로그

작성한 질문수 6

1

VIVADO 사용해서 개인 공부하고 있는데
질문이 생겨 질문합니다!!
Behavioral Simulation과 Post Synthesis Functional Simulation의 경우 결과물이 이상적으로 나오는데
Post Syntehsis Timing Simulation을 하는 경우, 입력값에 따라 에러가 발생하는 것 같습니다..
에러가 처음 발생하는 시점은 찾았는데
이런 경우 어떤식으로 디버깅을 해야할지 조언해주실 수 있나요?
Synthesis 하고나면 block구조도 조금씩 바뀌어 있고 wire,port name 도 바뀌어 있어서
Simulation 할 때 뭐가 뭔지 어려운것같습니다.,,,
( Setip/Hold time 은 만족하는것 확인했습니다.)

fpga 임베디드 verilog-hdl

답변 1

1

설계독학맛비

안녕하세요.

일단 일반적인 이야기를 먼저 시작하겠습니다.

Sub module 단위의 입출력을 기준으로 Debugging 을 합니다.

현업에서는 각 sub module 의 input, output 의 결과를 file dump 받을 수 있도록 코딩합니다. 그래야 어느지점이 문제인지 금방 파악 하겠죠. (평소에는 off 시켜놓고, 결과가 이상함을 발견하면, dump 합니다. run time 이 오래걸리니까..)

그 후에 sub module 을 찾아내면 지점을 Debugging 하겠죠.

그 다음, Wire, port name 이 변경되어서 불편하다 의 답변이구요.

post synth 를 debugging 하는 case 는 흔치않아서, 다음과 같이 해보실래요?

(안될 수 있습니다.)

vivado 에는 don't touch 라는 attribute 가 있습니다.

예를들어,

(* dont_touch = “true” *) wire    [31:0]  temp;

이렇게 하게 되면, 합성 후 Netlist 에서 변수가 살아있을 것? 같아요.

don't touch 자체가 optimize 를 안하겠다 이구요.

opt 로 인해서 name 이 변경되었을 가능성이 굉장히! 높아보입니다.

안되면.. 저도 잘.. ㅎㅎ

즐공하세요 :)

0

베릴로그

Post Syntehsis Timing Simulation 에서 디버깅을 잘 안하신 다는건 에러 발생할 일이 거의 없다는 말씀이신 건가요? ,,, 보통 이런경우 RTL 설계를 바꾸기도 하나요?

0

베릴로그

말씀해주신  (* dont_touch = “true” *) 키워드로 합성 후 변수 살아있는것 확인했습니다.!

근데 다른 부분변화 없이 저 키워드만 넣고 결과를 확인했느데 결과가 제가 생각하던 옳게 변했습니다..

어떤식으로 이해해야할까요? 감사합니다!

0

설계독학맛비

Q. Post Syntehsis Timing Simulation 에서 디버깅을 잘 안하신 다는건 에러 발생할 일이 거의 없다는 말씀이신 건가요? ,,, 보통 이런경우 RTL 설계를 바꾸기도 하나요?

A.

이미 Timing Met 을 확인한 상태이기 때문에,  발생할 확률이 극히 드물죠..?

IP 설계 회사에서는 Post synthesis Timing Simulation 를 스킵하기도 했어요. (디자인이 크면, 너무 오래걸려서 검증하기 너무 힘들어요.) FPGA 에 일단 올리고 문제있는 case 는 시간이 오래걸리지만 돌려봐요.  (극히 드물다..)

Q. 근데 다른 부분변화 없이 저 키워드만 넣고 결과를 확인했느데 결과가 제가 생각하던 옳게 변했습니다..

A. 어허...... tool 에서 optimize 를 하는 과정에서 문제가 있다, 라고 생각할 수 밖에 없는 상황인데요...?

don't touch 넣기 전에의 post synthesis 의 결과에서

Timing Report 에서 문제가 없는지 꼭 Check 해보세요.

Violation 없이 Met 한거는 맞죠..?

0

베릴로그

네... 확인해봤는데 그렇습니다 ㅠ 조금 당황스럽지만,,  그래도 감사합니다!! 

0

설계독학맛비

굉장히 드문? (저도 경험해보지 못한) 케이스를 경험 하셨군요.

이런게 쌓여서 노하우가 되니까 많이많이 Try 해보세요.

즐공입니다. :)

latency 개념 구현

1

126

3

비바도 all os버전

1

92

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

98

2

다운로드용량

1

82

2

비바도리눅스설치

1

97

2

전체path복사넣기

1

73

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

179

2

explorer.exe오류

1

119

3

mobaxterm설치오류

1

102

2

./build시, waveform 'divide color' 사용

1

62

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

147

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

73

1

안녕하세요 설치 관련 질문 드립니다.

1

72

3

16장 mealy 설계.

1

80

2

14장 Cycle 관련, Testbench 코드.

1

75

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

68

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

76

2

build에러 질문

0

63

2

1장 ./build에서 에러가 나요

1

82

2

FPGA 강의 보드 문의 드립니다.

1

117

2

5장 DFF특성에 대한 질문

1

87

3

vivado linux 사용 이유.

1

150

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

114

2

디스코드 멤버쉽 등업 관련 문제

1

97

2