1. 문제
- 4비트 감가산 연산시 발생할 수 있는 오류 overflow를 해결하는 방법을 서술하시오.
2. 문제 분석
- 4비트 감가산시 입력의 연산 결과값이 출력범위를 넘어서면 overflow가 발생한다. 이를 해결하지 않으면 결과값이 쓰레기값이 출력되어 원하는 값을 얻어낼 수 없다.
3. VHDL code
5. 결론 및 고찰
-결론 : 감가산시 Overflow가 방생하여 원하지 않은 결과값이 발생하는 것을 방지하기위해 출력값의 범위를 입력값보다 더 넓게 설정한다.
가산시(출력=out1) : 출력값의 범위를 넓혀 Overflow의 발생을 방지하였다.
감산시(출력=out2) : 이진수 뺄셈을 하는 절차에 따라 문제를 해결하기위해서 tem1과 tem1라는 변수를 만들었다. 예를 들어 a - b를 하는데 a가 클 경우에는 Overflow가 발생하지않는다. 하지만 b가 더 크게 될 경우 결과값이 음수의 범위로 넘어가게 되고 이를 처리해 주어야한다. b를 2의보수를 취해 a와 더하고 그 값에 다시 2의 보수를 취하여 빼기 연산의 결과값을 얻었고 이를 함수 구현에 적용하였다.
Simulation상의 out2에서 보면 결과값이 음수의 범위로 넘어간 경우 최상위비트를 1로 주어 음수임을 표시하였다.
2X4 Decoder 설계 VHDL - case & for-loop (0) | 2008.10.14 |
---|---|
Difference of Latch & Flip/flop (0) | 2008.10.08 |
And 연산기 VHDL (Clock 이용) (0) | 2008.10.08 |
4bit 감가산기 VHDL (SIgnal : Integer) (0) | 2008.10.08 |
감산기 VHDL (0) | 2008.10.08 |
S | M | T | W | T | F | S |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |