HDL과 검증
조합 회로에서 if・else if를 길게 이은 기술과 조건이 서로 겹치지 않는 case문 기술을 비교했을 때의 설명으로 올바른 것은?
- Aif・else if의 연속은 앞의 조건을 우선하는 회로가 되어 단이 깊고 느려지기 쉽지만, case는 병렬로 선택하는 회로가 되기 쉽다
- B어느 쪽 방식으로 써도 합성되는 회로는 완전히 같다
- Ccase는 합성할 수 없고 if만 합성할 수 있다
정답과 해설 보기
정답: A. if・else if의 연속은 앞의 조건을 우선하는 회로가 되어 단이 깊고 느려지기 쉽지만, case는 병렬로 선택하는 회로가 되기 쉽다
if・else if의 연속은 "첫 번째 조건이 성립하면 그것, 아니면 다음을 조사한다"는 의미이므로, 우선순위가 붙은 회로(우선순위 인코더 같은 형태)가 되어 조건 수만큼 멀티플렉서가 직렬로 이어져 지연이 길어지기 쉽습니다. 서로 겹치지 않는 값으로 선택하는 case는 1단의 큰 멀티플렉서와 같은 병렬 회로가 되기 쉬워 빠릅니다. 다만 최근의 합성 도구는 둘 다 최적화하는 경우가 많습니다.
- A. 올바릅니다. 조건에 우선순위가 있는지의 차이입니다.
- B. 우선순위 유무에 따라 회로가 달라질 수 있습니다.
- C. case도 합성할 수 있습니다.