SystemVerilog UVM으로 기능 요구사항 기반 테스트벤치 설계 결
테스트벤치를 처음부터 설계한 경험은 학교 수업에서 SystemVerilog UVM을 활용해 간단한 FIFO 컨트롤러 검증 환경을 구축한 것입니다. 기능 요구사항을 먼저 정리하고, 어떤 동작을 검증해야 하는지를 시나리오로 먼저 작성한 뒤 구현했습니다.
테스트벤치 구조는 드라이버·모니터·스코어보드로 분리했습니다. 드라이버가 DUT에 자극을 주고, 모니터가 출력을 수집하며, 스코어보드가 기대값과 비교합니다. 각 컴포넌트를 독립적으로 개발하면 한 부분에 문제가 생겼을 때 다른 부분에 영향 없이 수정할 수 있습니다.
테스트벤치 설계에서 배운 것은 검증은 DUT가 완성된 후에 시작하는 것이 아니라, 설계와 동시에 진행해야 한다는 점입니다. 스펙을 작성하는 시점에 테스트 케이스를 함께 정의하면, 설계자가 간과한 엣지 케이스를 검증 단계 초기에 발견할 수 있습니다.