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

베릴로그님의 프로필 이미지
베릴로그

작성한 질문수

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

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

작성

·

1.2K

1

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

답변 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 이 변경되었을 가능성이 굉장히! 높아보입니다.

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

즐공하세요 :)

베릴로그님의 프로필 이미지
베릴로그
질문자

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

베릴로그님의 프로필 이미지
베릴로그
질문자

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

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

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

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

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 한거는 맞죠..?

베릴로그님의 프로필 이미지
베릴로그
질문자

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

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

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

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

즐공입니다. :)

베릴로그님의 프로필 이미지
베릴로그

작성한 질문수

질문하기