HDL과 검증
Verilog의 등호 연산자 "=="와 "==="의 차이로 올바른 것은?
- A==는 X나 Z를 포함하면 결과가 X가 되지만, ===는 X나 Z도 하나의 값으로 엄밀하게 비교하여 결과가 반드시 0이나 1이 된다
- B==와 ===는 완전히 같은 동작이다
- 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. 두 개의 값을 비교하는 연산자입니다.