HDL과 검증

위 4비트 카운터에서 count가 15일 때 클록이 상승하면 count는 얼마가 되는가?

reg [3:0] count;
always @(posedge clk)
    count <= count + 1;
  1. A16
  2. B0
  3. C15 그대로 변하지 않는다
정답과 해설 보기

정답: B. 0

4비트 reg는 0~15만 나타낼 수 있습니다. 15(2진수 1111)에 1을 더하면 10000이 되지만 상위 비트는 들어가지 못하고 버려지므로 count는 0000, 즉 0으로 돌아갑니다. 이 성질을 이용하여 정해진 수마다 반복하는 카운터를 만들 수 있습니다. 한편 의도하지 않은 곳에서 자릿수가 넘치면 오류의 원인이 되므로, 신호의 비트 폭에는 항상 주의해야 합니다.

  • A. 4비트의 범위는 0~15입니다.
  • B. 올바릅니다. 4비트로는 16을 나타낼 수 없으므로 0으로 돌아갑니다.
  • C. 덧셈은 수행되며, 오버플로하여 0이 됩니다.
이 분야 연습하기 분야로 돌아가기

HDL과 검증의 다른 문제

  1. Verilog에서 8비트 신호 a와 b를 더하여 그 결과를 8비트 신호 s에 대입했다(assign s = a + b;). 주의할 점으로 올바른 것은?
  2. a를 부호 있는 -1로 의도하여 위와 같이 작성했더니 gt가 1이 되었다. 이유로 올바른 것은?
  3. Verilog 시뮬레이션에서 사용되는 4값 논리의 값 조합으로 올바른 것은?
  4. 시뮬레이션에서 리셋이 없는 레지스터의 값이 처음에 X였다. 실제 칩에서는 어떻게 된다고 생각할 수 있는가?
  5. 위 기술에서 sel이 X(불정)일 때 Verilog 시뮬레이션에서는 y에 b가 선택된다. 이 성질이 검증에서 문제가 되는 이유로 올바른 것은?

이 분야의 비교