HDL과 검증

Verilog의 등호 연산자 "=="와 "==="의 차이로 올바른 것은?

  1. A==는 X나 Z를 포함하면 결과가 X가 되지만, ===는 X나 Z도 하나의 값으로 엄밀하게 비교하여 결과가 반드시 0이나 1이 된다
  2. B==와 ===는 완전히 같은 동작이다
  3. C===는 세 개의 값을 동시에 비교하는 연산자이다
정답과 해설 보기

정답: A. ==는 X나 Z를 포함하면 결과가 X가 되지만, ===는 X나 Z도 하나의 값으로 엄밀하게 비교하여 결과가 반드시 0이나 1이 된다

==는 회로의 비교기와 같은 역할을 하는 연산자로, 어느 한쪽 값에 X나 Z 비트가 있으면 결과도 X(불정)가 됩니다. ===는 케이스 등호(case equality)라고 하며 X는 X, Z는 Z로 문자 그대로 비교하므로, "출력이 X가 되지 않았는지"를 테스트벤치에서 확인하는 데 사용할 수 있습니다. 실제 회로에는 X나 Z를 구별하는 기능이 없으므로 ===는 합성할 수 없으며 테스트벤치용 연산자입니다.

  • A. 올바릅니다. ===는 주로 테스트벤치에서 사용합니다.
  • B. X나 Z의 취급이 다릅니다.
  • C. 두 개의 값을 비교하는 연산자입니다.
이 분야 연습하기 분야로 돌아가기

HDL과 검증의 다른 문제

  1. Verilog 같은 HDL로 작성한 기술과 C 언어 같은 소프트웨어 프로그램의 큰 차이로 올바른 것은?
  2. Verilog에서 module을 사용하는 목적으로 올바른 것은?
  3. Verilog의 wire형과 reg형의 차이로 올바른 것은?
  4. 위 Verilog의 assign문이 나타내는 회로로 올바른 것은?
  5. 위 Verilog 기술이 논리 합성으로 만드는 회로로 올바른 것은?

이 분야의 비교