3일차는 드디어 내가 만든 회로가 제대로 동작하는지 확인하는 검증 단계였다. 그동안 개념으로만 알고 있던 Testbench를 직접 짜보니까, 입력 신호를 어떻게 넣고 설계해야 하는지 감이 조금씩 잡히기 시작했다.
오늘 흐름은 Quartus Prime에서 RTL Simulation 돌리고, Questa 시뮬레이터로 넘어가서 파형 확인하는 과정이었다. run -all로 $stop 걸린 지점까지 실행하고, restart로 초기화하면서 신호 흐름을 계속 반복해서 보는 식이었다. 슬라이드에 표시된 포인트들이 왜 중요한지 직접 해보니까 바로 이해됐다.
가장 인상 깊었던 건 valid 신호 하나로 결과가 완전히 달라진다는 거였다. valid가 0이면 계산 결과가 있어도 파일로 출력이 안 된다는 걸 파형으로 확인했는데, 조건 하나 차이가 이렇게 크게 작용한다는 게 확 와닿았다. 그리고 output.txt가 프로젝트 경로 안 simulation/questa 폴더에 저장되는 것도 직접 확인하면서 흐름을 제대로 이해했다.
디버깅 과정은 처음엔 쉽지 않았다. clk, reset, data_0부터 data_3까지 신호를 하나씩 따라가면서 어디서 값이 꼬였는지 찾는 게 생각보다 시간이 걸렸다. 근데 파형 창에서 하나씩 짚어보니까 문제 지점이 보이기 시작했고, 수정하고 다시 시뮬레이션 돌렸을 때 원하는 결과가 딱 나오는 순간이 꽤 짜릿했다.
1일차에 배운 Sequential logic, 2일차 HDL 문법이 오늘 검증 단계에서 하나로 이어지는 느낌이었다. 단순히 코드 짜고 끝나는 게 아니라, 시뮬레이션 → 디버깅 → 수정 이 과정을 계속 반복하는 게 설계의 핵심이라는 걸 제대로 체감했다.
내가 목표로 하는 반도체 공정 설비 쪽에서도 이런 검증 감각은 분명 도움이 될 것 같다. 나중에 장비에서 이상 신호가 나왔을 때, 어디서 문제가 생겼는지 흐름을 따라가면서 찾는 과정이랑 많이 닮아 있다는 생각이 들었다.
3일이라는 짧은 시간이었지만, 직접 손으로 해보는 실습 중심이라 전체 설계 흐름을 한 번에 경험할 수 있었던 게 가장 큰 수확이었다. 이 흐름은 꼭 내 걸로 만들어야겠다는 생각이 든다.