감가산 연산시 Overflow 해결법

Posted 2008. 10. 8. 22:35 by MINOK

1. 문제

- 4비트 감가산 연산시 발생할 수 있는 오류 overflow를 해결하는 방법을 서술하시오.

2. 문제 분석

- 4비트 감가산시 입력의 연산 결과값이 출력범위를 넘어서면 overflow가 발생한다. 이를 해결하지 않으면 결과값이 쓰레기값이 출력되어 원하는 값을 얻어낼 수 없다.

 

3. VHDL code

4. Simulation

 

5. 결론 및 고찰

-결론 : 감가산시 Overflow가 방생하여 원하지 않은 결과값이 발생하는 것을 방지하기위해 출력값의 범위를 입력값보다 더 넓게 설정한다.

가산시(출력=out1) : 출력값의 범위를 넓혀 Overflow의 발생을 방지하였다.

감산시(출력=out2) : 이진수 뺄셈을 하는 절차에 따라 문제를 해결하기위해서 tem1과 tem1라는 변수를 만들었다. 예를 들어 a - b를 하는데 a가 클 경우에는 Overflow가 발생하지않는다. 하지만 b가 더 크게 될 경우 결과값이 음수의 범위로 넘어가게 되고 이를 처리해 주어야한다. b를 2의보수를 취해 a와 더하고 그 값에 다시 2의 보수를 취하여 빼기 연산의 결과값을 얻었고 이를 함수 구현에 적용하였다.

Simulation상의 out2에서 보면 결과값이 음수의 범위로 넘어간 경우 최상위비트를 1로 주어 음수임을 표시하였다.