HDL과 검증

Verilog에서 8비트 신호 a와 b를 더하여 그 결과를 8비트 신호 s에 대입했다(assign s = a + b;). 주의할 점으로 올바른 것은?

  1. A8비트끼리의 덧셈은 Verilog에서 쓸 수 없다
  2. B결과는 자동으로 16비트로 확장된다
  3. C합이 255를 넘으면 9번째 비트의 캐리가 버려지므로, 캐리가 필요하면 s를 9비트로 한다
정답과 해설 보기

정답: C. 합이 255를 넘으면 9번째 비트의 캐리가 버려지므로, 캐리가 필요하면 s를 9비트로 한다

8비트끼리의 합은 최대 255+255=510이 되어 나타내려면 9비트가 필요합니다. 대입 대상 s가 8비트이면 상위의 캐리는 조용히 버려져, 예를 들어 200+100은 44가 되어 버립니다. 캐리도 사용하고 싶을 때는 s를 9비트로 선언합니다. Verilog는 폭이 다른 신호의 대입을 오류로 처리하지 않고 잘라내거나 확장하므로, Lint 도구로 폭의 불일치를 조사하는 것이 효과적입니다.

  • A. 보통 쓸 수 있습니다.
  • B. 대입 대상이 8비트이면 8비트로 잘립니다.
  • C. 올바릅니다. 대입 대상의 폭으로 결과가 잘립니다.
이 분야 연습하기 분야로 돌아가기

HDL과 검증의 다른 문제

  1. a를 부호 있는 -1로 의도하여 위와 같이 작성했더니 gt가 1이 되었다. 이유로 올바른 것은?
  2. Verilog 시뮬레이션에서 사용되는 4값 논리의 값 조합으로 올바른 것은?
  3. 시뮬레이션에서 리셋이 없는 레지스터의 값이 처음에 X였다. 실제 칩에서는 어떻게 된다고 생각할 수 있는가?
  4. 위 기술에서 sel이 X(불정)일 때 Verilog 시뮬레이션에서는 y에 b가 선택된다. 이 성질이 검증에서 문제가 되는 이유로 올바른 것은?
  5. HDL에서 Z(하이 임피던스)를 출력하는 트라이스테이트 기술에 대해 일반적으로 올바른 것은?

이 분야의 비교