RTL 시뮬레이션에서 클럭 도메인 경계 동기화 누락으로 인한 오동작 디버깅 경험
RTL 환경에서 테스트를 처음 실행할 때 가장 어려웠던 점은 시뮬레이션 타이밍과 실제 인터페이스 스펙 간의 불일치였습니다. 테스트벤치에서 클럭 엣지 타이밍을 맞추지 않으면 정상 동작 코드도 시뮬레이션에서 오동작으로 잡히는 문제가 반복됐습니다. 원인을 추적해보니 클럭 도메인 경계에서의 동기화 누락이 핵심이었고, 크로스-도메인 신호에 플립플롭 두 단을 삽입해 해결했습니다.
이후로는 테스트 케이스를 작성하기 전에 클럭·리셋 초기화 순서를 체크리스트로 정리해두는 습관을 들였습니다. 디버깅 과정에서 웨이브폼을 구간별로 분리해 보는 방식이 문제 범위를 빠르게 좁히는 데 효과적이었고, 지금도 새 테스트 환경을 열 때 같은 방식을 씁니다.