인프런 커뮤니티 질문&답변

tjrrjs88님의 프로필 이미지
tjrrjs88

작성한 질문수

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 2장] Testbench 와 DUT (Design Under Test) 란?

HDL 2장 수업내용

작성

·

46

1

안녕하세요 🙂

HDL 2장 내용 확인차 질문을 하게 되었습니다.

-Testbench는 디자인(module)에 대한 시뮬레이션을 실행하기 위한 환경으로 어떤방식, 어느 주기로 확인하는 과정을 어떻게 꾸밀지 정하며 크게 stimulus -> module -> checker로 구성되어 있다.

-DUT는 설계한 logic으로 testbench에서 module에 들어가며 verilog, VHDL로 작성된 하드웨어 설계이다.

-stimulus는 DUT의 input역할

-checker는 DUT의 output이 원하는 결과에 맞는지 check하는 모듈이다.

 

위와 같이 정리를 하였는데 시뮬레이션과 테스트벤치의 개념이 확실히 이해가되지 않아 작성하게 되었습니다.

예를 들어 DUT가 단순히 and logic이라고 했을떄 시뮬레이션은 입력에 따라 and의 결과가 잘나오는지 확인하는 것이고 테스트벤치는 clock주기와 시뮬레이션을 모두 포함하는것이라고 생각하면 될까요?

시뮬레이션은 단순히 and를 돌려보는 것이고 그것에 필요한 input,clk주기등은 테스트벤치에서 정하는것이라고 생각하면되나요?

답변 2

1

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 🙂

Testbench는 설계한 하드웨어 모듈(DUT, Design Under Test)을 테스트하기 위한 환경입니다. Testbench는 DUT가 예상대로 동작하는지 확인하기 위해 입력 신호(stimulus)를 생성하고, 출력 신호를 검증(checker)하는 역할을 합니다. Testbench는 보통 다음과 같은 구성 요소로 이루어집니다:

  • Stimulus (입력 생성기): DUT에 전달될 입력 신호를 생성합니다.

  • DUT (Design Under Test): 테스트하고자 하는 실제 하드웨어 모듈입니다.

  • Checker (출력 검증기): DUT에서 나온 출력이 예상한 결과와 일치하는지 확인합니다.

  • Clock Generator (클록 생성기, 필요 시): DUT가 동작하기 위해 필요한 클록 신호를 생성합니다.

Simulation은 Testbench를 사용하여 DUT의 동작을 확인하는 과정입니다. 시뮬레이션은 Testbench가 정의한 대로 DUT에 다양한 입력을 주고, 그에 따른 출력을 관찰하며, 예상된 결과와 일치하는지를 확인하는 과정입니다.

 

  • SimulationDUT가 주어진 입력(stimulus)에 대해 예상된 출력을 생성하는지를 확인하는 과정입니다.

  • Testbench는 이 Simulation을 실행하기 위해 입력, 클록, 출력 검증 등의 요소를 포함하는 환경을 제공합니다.

따라서, 시뮬레이션을 통해 AND 게이트가 올바르게 동작하는지를 확인하고, Testbench는 시뮬레이션을 수행하기 위해 필요한 입력 신호와 검증 로직을 포함하는 것입니다. 클록 주기나 입력 신호 등의 요소는 Testbench에서 정의된다고 보시면 됩니다.

tjrrjs88님의 프로필 이미지
tjrrjs88
질문자

답변 감사합니다~~

0

안녕하세요, 인프런 AI 인턴입니다.

네, 맞습니다. 시뮬레이션과 테스트벤치에 대한 이해가 이미 잘 되어 계신 것 같습니다.

시뮬레이션은 특정 디자인(예: and logic)의 동작을 검증하기 위해 입력값에 대한 출력을 확인하는 과정을 의미합니다. 이때, 입력값이 무엇이고, 어떤 조건(예: 클록 주기) 하에서 테스트할 것인지를 정하는 환경이 바로 테스트벤치 입니다.

즉, 테스트벤치는 시뮬레이션을 실행하기 위한 시나리오(스티뮬러스), 클록 주기와 같은 입력 조건을 설정하고, 디자인된 모듈(DUT)을 통해 얻은 결과를 원하는 값과 비교(checker)하는 과정을 포함합니다.

따라서, 단순히 AND 로직의 결과가 제대로 나오는지 확인하는 것이 시뮬레이션 과정이며, 이러한 시뮬레이션을 실행하기 위하여 입력값, 클록 주기 등을 정하고 결과를 검증하는 전체적인 환경 구성이 테스트벤치라고 할 수 있습니다.

tjrrjs88님의 이해가 정확하시니, 같은 방식으로 다른 디자인 또한 테스팅하며 깊이 있는 연구를 계속해 나가시길 바랍니다!

tjrrjs88님의 프로필 이미지
tjrrjs88

작성한 질문수

질문하기