HDL과 검증
Verilog에서 8비트 신호 a와 b를 더하여 그 결과를 8비트 신호 s에 대입했다(assign s = a + b;). 주의할 점으로 올바른 것은?
- A8비트끼리의 덧셈은 Verilog에서 쓸 수 없다
- B결과는 자동으로 16비트로 확장된다
- 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. 올바릅니다. 대입 대상의 폭으로 결과가 잘립니다.