Q1
시뮬레이션 결과를 보시면 클럭 rising edge 순간에 판단 대상이 되는 신호도 함께 천이 됩니다. 이런 경우 시뮬레이션 결과처럼 실제 fpga 구현 되었을 때 문제가 없을까요?
A1
안녕하세요 :)
Functional Simulation 에는 Timing 정보가 들어있지 않아서, edge 동기화 되서 waveform 이 보여집니다. 강의에서는 Post Simulation 을 보여드린 적은 없지만, 구글링 하시면 이해가 되실꺼에요. ("Netlist 추출 + Timing 정보" 와 함께하는 Simulation)
시뮬레이션 결과를 보시면 클럭 rising edge 순간에 판단 대상이 되는 신호도 함께 천이 됩니다. 이런 경우 시뮬레이션 결과처럼 실제 fpga 구현 되었을 때 문제가 없을까요?
우선, 제가 공유드린 소스코드 전부 Waveform 의 결과와 동일하게 동작하고 있다.
즉 Simulation 결과 처럼 실제 FPGA 에 구현이 되고 있는 상태입니다.
여기서 Waveform 에서 확인한 모듈을 실제 FPGA 에 구현되었을때, 문제가 없으려면 기본적으로 Tool 에서 Reporting 하는 Util, Timing, Power 등등 의 Violation 이 존재하면 안됩니다.
FPGA 의 장점이, "언제든 올려볼 수 있다." 이기 때문에 Waveform 의 Function 을 확인하시고, 실제로 바로 올려서 결과를 확인하는 Flow 로 개발합니다. (Post sim 과 같은 중간 단계를 굳이 거치지 않고 개발합니다.)
결론
FPGA Implementation 후에 Violation 이 존재하지 않는다면, Waveform 의 Functional sim 결과와 동일하게 동작합니다.
ps.
Violation 이 존재하지 않는다.. 가 현업가시면 쉬운 조건은 아님을 직접 깨달으시길 바랄께요. (취뽀하셔라. 혹은 현업이시라면 경험해보셔라 라는 긍정의 의미입니다.)
즐공입니다. :)
Q2
상세한 답변으로 제가 모르고 있었던 부분도 알게 되었습니다.
꼼수일지 모르지만 always 문에서
if(조건) a <= 1; 보다 if(조건) a <= #1 1;
이런 식으로 표현하니 시뮬레이션 타이밍 차트를 볼 때 조금 구분이 되더라구요.
좋은 하루 되세요. 감사합니다.
A2
꼼수 아니에요! 현업에서 이렇게 보기도 합니다.
응용하실 생각을 하시다니, 훌륭합니다.
즐공하세요 :)
'개발 편의성을 위한 소소한 Tips > 04 질의 응답 정리' 카테고리의 다른 글
[Verilog HDL Q/A. 006] verilog 특성 관련 질문 (동작 관련) (0) | 2021.09.14 |
---|---|
[Verilog HDL Q/A. 005] High impedance 출력 (0) | 2021.09.11 |
[Verilog HDL Q/A. 004] 비메모리 설계시, 리눅스 환경을 사용하는 이유 (3) | 2021.09.10 |
[Verilog HDL Q/A. 002] $readmemh 의 사용방법과 사용처 (1) | 2021.09.08 |
[Verilog HDL Q/A. 001] testbench 의 input, output, reg, wire ?? (0) | 2021.09.07 |