목차
1. 개요
2. 알고리즘
3. Verilog코드 - RCA와 Subtracter(가감산기 코드 따로 되어있음)
4. 파형 및 분석 - 결과파형을 십진수와 이진수 두개로 보여줌.
2. 알고리즘
3. Verilog코드 - RCA와 Subtracter(가감산기 코드 따로 되어있음)
4. 파형 및 분석 - 결과파형을 십진수와 이진수 두개로 보여줌.
본문내용
ull_sub s2(a[2], b[2], b1[1], d[2], b1[2]);
full_sub s3(a[3], b[3], b1[2], d[3], b1[3]);
full_sub s4(a[4], b[4], b1[3], d[4], b1[4]);
full_sub s5(a[5], b[5], b1[4], d[5], b1[5]);
full_sub s6(a[6], b[6], b1[5], d[6], b1[6]);
full_sub s7(a[7], b[7], b1[6], d[7], Bo);
endmodule
4. 파형 및 분석
* Ripple-Carry Adder실험 결과파형
1) 첫 번째 파형 : Input a가 0(00000000)부터, Input b가 248(11111000)부터 일 때의 결과이고, Output sum이 255(11111111)이상이 되었을 때, Cout(Carry)의 증가를 나타내는 파형을 Binary Mode로 출력한 것이다.
- 빨간색 동그라미 부분이 8Bit Ripple-Carry Adder의 한계 255(11111111)이다. 전 실험에서와 같이 약간의 Time Delay가 발생하여 약간 늦게 나타났다.
- 파란색 동그라미 부분이 Cout(Carry)의 발생이다. 8Bit의 한계인 255에 도달하면, 그 이상의 결과는 Output sum에 올바르게 출력되지 않는데, 이 때, Cout(Carry)가 증가해서, 그 이상의 수는 8Bit로 나타낼 수 없음을 표시한다. 역시 Time Delay의 발생으로 정확한 위치에서 Cout(Carry)발생은 되지 않으며, Output sum또한 마찬가지이다.
2) 두 번째 파형 : Input a와 Input b모두 첫 번째 파형의 입력조건과 동일하다. 단, 8Bit의 숫자의 계산이 번거로움을 Unsigned Number로 바꾸어 출력하여 결과 확인하기는 훨씬 더 수월하다.
* Subtracter 결과파형
1) Ripple-Carry Adder와 거의 유사한 형태이다. RCA에서의 Carry가 빌림수 bo, sum과 d가 각각 새로 Matching되었다.
2) RCA와 마찬가지로 Binary파형과 Unsigned Decimal Number파형을 동일한 입력조건하에 출력하여 결과 확인을 수월하게 하였다.
3) 역시 빨간색 동그라미 부분이 8Bit Subtracter의 한계 255(111111111)을 나타내고, 파란색 동그라미 부분이 bo(borrow)의 발생이다. 그 이상은 d(차)가 올바르게 출력되지 않는데, 이 때, bo(borrow)가 증가하여, 그 이상의 수는 8Bit로 나타낼 수 없음을 표시한다.
4) Time Delay의 발생으로 정확한 위치에서 bo(borrow)가 발생은 되지 않으며, d(difference) 또한 마찬가지이다.
5) 249 - 252부분부터 잘 살펴보면 Borrow가 증가했다. 그러나 249-252의 계산 이후로는 정말 엉터리 값이 나오고 있음을 알 수 있다. 이는 Unsigned Decimal Number계산만을 가능하게 하므로 발생하는 결과이다.
full_sub s3(a[3], b[3], b1[2], d[3], b1[3]);
full_sub s4(a[4], b[4], b1[3], d[4], b1[4]);
full_sub s5(a[5], b[5], b1[4], d[5], b1[5]);
full_sub s6(a[6], b[6], b1[5], d[6], b1[6]);
full_sub s7(a[7], b[7], b1[6], d[7], Bo);
endmodule
4. 파형 및 분석
* Ripple-Carry Adder실험 결과파형
1) 첫 번째 파형 : Input a가 0(00000000)부터, Input b가 248(11111000)부터 일 때의 결과이고, Output sum이 255(11111111)이상이 되었을 때, Cout(Carry)의 증가를 나타내는 파형을 Binary Mode로 출력한 것이다.
- 빨간색 동그라미 부분이 8Bit Ripple-Carry Adder의 한계 255(11111111)이다. 전 실험에서와 같이 약간의 Time Delay가 발생하여 약간 늦게 나타났다.
- 파란색 동그라미 부분이 Cout(Carry)의 발생이다. 8Bit의 한계인 255에 도달하면, 그 이상의 결과는 Output sum에 올바르게 출력되지 않는데, 이 때, Cout(Carry)가 증가해서, 그 이상의 수는 8Bit로 나타낼 수 없음을 표시한다. 역시 Time Delay의 발생으로 정확한 위치에서 Cout(Carry)발생은 되지 않으며, Output sum또한 마찬가지이다.
2) 두 번째 파형 : Input a와 Input b모두 첫 번째 파형의 입력조건과 동일하다. 단, 8Bit의 숫자의 계산이 번거로움을 Unsigned Number로 바꾸어 출력하여 결과 확인하기는 훨씬 더 수월하다.
* Subtracter 결과파형
1) Ripple-Carry Adder와 거의 유사한 형태이다. RCA에서의 Carry가 빌림수 bo, sum과 d가 각각 새로 Matching되었다.
2) RCA와 마찬가지로 Binary파형과 Unsigned Decimal Number파형을 동일한 입력조건하에 출력하여 결과 확인을 수월하게 하였다.
3) 역시 빨간색 동그라미 부분이 8Bit Subtracter의 한계 255(111111111)을 나타내고, 파란색 동그라미 부분이 bo(borrow)의 발생이다. 그 이상은 d(차)가 올바르게 출력되지 않는데, 이 때, bo(borrow)가 증가하여, 그 이상의 수는 8Bit로 나타낼 수 없음을 표시한다.
4) Time Delay의 발생으로 정확한 위치에서 bo(borrow)가 발생은 되지 않으며, d(difference) 또한 마찬가지이다.
5) 249 - 252부분부터 잘 살펴보면 Borrow가 증가했다. 그러나 249-252의 계산 이후로는 정말 엉터리 값이 나오고 있음을 알 수 있다. 이는 Unsigned Decimal Number계산만을 가능하게 하므로 발생하는 결과이다.
키워드
추천자료
4-bit 2진 가감산기 회로 조립 및 측정 작업
4BIT RIPPLE CARRY ADDER VHDL 설계
4Bit Carry Look-Ahead Adder VHDL 설계
8-비트 binary adder design(sign and magnitude, 2's complement)
Ripple carry Adder(리플캐리에더)
[디지털논리회로]4-비트 Adder / Subtracter 결과 보고서
[논리회로] 반가산기(half adder)와 전가산기(full adder) 회로 설계 및 2 Digit Adder-Subtr...
ALU( Ripple Carry Adder 이용 ),Wallace( 곱셈기 ),베릴로그,쿼터스, 소스
논리회로 CSA (Carry Select Adder) Design and Simulation
소개글