막힌 검증 지점을 좁힌 결
무엇을 만들었는지보다, 검증에서 막혔던 지점과 그걸 어떻게 풀었는지를 말씀드리고 싶습니다. 학교 프로젝트에서 간단한 신호 처리 회로를 프로그램 가능한 검증용 칩에 올려 동작을 확인하는 일을 했습니다. 가장 어려웠던 건, 시뮬레이션에서는 잘 되는데 실제 칩에 올리니 특정 조건에서만 결과가 어긋난 점이었습니다. 처음엔 설계 오류로 보고 코드를 뒤졌는데, 반복해도 그 조건에서만 나타나 가설을 바꿔야 했습니다. 그래서 어긋나는 조건을 좁혀, 그 순간의 신호를 직접 관찰할 수 있게 일부 신호를 밖으로 빼서 봤습니다. 알고 보니 코드 오류가 아니라, 시뮬레이션이 가정한 타이밍과 실제 칩의 동작 시점이 달랐던 것이었습니다. 그 차이를 반영해 고치자 안정됐습니다. 어려웠던 핵심은 코드가 아니라, 시뮬레이션과 실제의 간극을 어디서 좁히느냐였습니다. 다만 모든 검증 기법을 깊이 안다고는 못 한다는 한계는 둡니다. 핵심은, 결과 나열이 아니라 막힌 검증 지점을 어떻게 좁혀 풀었는지를 보인다는 점입니다.