출처: https://3months.tistory.com/307 [Deep Play]

3-2/디지털회로개론

7주차(Chapter 4)

코딩하는 랄뚜기 2021. 10. 14. 02:41

Full Adder

 


Gate delay

A가 바뀐다고 해서 바로 X가 바뀌는 것이 아니다. Gate 안에서 연산이 되므로 값이 바뀔 때마다 delay가 발생한다. 따라서 무작정 값을 바꾸자마자 원하는 값을 확인하는 것이 아니라 싱크를 맞춰서 값을 가져와야한다. 이를 하지않으면 이상한 값을 가져올 수 있다.


위는 full adder의 time delay를 나타낸 것이다. 회로를 보면 6개의 Gate delay가 일어나는 것을 알 수 있다.

ㅇㄹㅇㅁ

 

수식적으로 보면 XOR을 하는데 3Gate Delay가 일어남으로 Sum은 6Gatedelay가 일어난다는 것을 알 수 있다.(단, a,b가 먼저 계산)

또, Cout은 a*b는 먼저 계산되지만 a⨁b가 일어날 때까지 기다리므로 무시한다. Cin*a⨁b가 일어나고 이 값을 후에 a*b와 or연산을 하므로 5Gatedelay가 발생하는 것을 알 수 있다.

n개의 bit를 계산할 때 걸리는 시간은 위를 보면 2𝛥+4의 시간이 걸린다는 것을 알 수 있다.

4-bit adder와 8-bit adder이다. 4-bit adder는 12, 8-bit adder는 20의 시간이 걸린다.

이렇게 serial하게 논리회로를 만드는 것보다 parallel하게 만들면 Gatedelay를 훨씬 줄일 수 있다.


Carry look-ahead adders

Carry-look-ahead의 장점은 논리회로를 parallel하게 만들어 delay를 줄일 수 있다는 것이다.

 

4bit을 add한다고 할 때, carry-generate function gi=xi*yi로 carry-propagate function pi=xi⨁yi로 look ahead한다.

carry-generate functioncarry-propagate function을 사용하면 Ci+4를 구할 수 있다.

 

Cout=x*y+Cin(x⨁y)

Ci+4에서 노란부분을 x*y 파란부분을 x⨁y라고 이해하면 편하다.

각각의 g 값과 p값을 만드는데 1Gatedelay

각각의 term을 and하는데 1Gatedelay(이 때 파란부분에는 Cin이 아직 안들어왔다)

들어온 Cin과 파란색 and, 그리고 노란거 or 연산하면서 1Gatedelay

노란거와 파란거를 or하면서 1Gatedelay

 

따라서 총 4 Gatedelay만으로 Ci+4를 구한다.

 

4-bit carry look-ahead adder가 4개 있으므로 Gate delay는 16이고 S15=P15^C16연산을 해줘야 하기 때문에 16+1=17이 된다.


2-level 16-bit carry look ahead adder(cont)

2

이번에는 CLA level을 2개로 늘렸다.

1) 1 gate delay : p15 ... 0, g15 ... 0 에 대한 계산

    => gi = xy, pi = x ^ y 이므로 1 gate delay 가 소요됨

 

2) 2 gate delay : g(12, 15), g(8, 11), g(4, 7), g(0, 3) 에 대한 계산

    => g(i, i+3) = gi+3 + pi+3gi+2 + pi+3pi+2gi+1 + pi+3pi+2pi+1gi 

                        이므로 2 gate delay 가 소요됨 (AND => OR)

    => 반면에 p(i, i+3) = pi+3pi+2pi+1pi 이므로 1 gate delay 가 소요됨 (AND)

 

3) 2 gate delay : c16, c12, c8, c4 에 대한 계산 (c0는 input 임을 고려)

     => ci+4 = g(i, i+3) + p(i, i+3)ci 에서 p(i, i+3)ci 에 대한 AND 연산 1 gate delay 와

          g(i, i+3) + p(i, i+3)ci 에 대한 OR 연산을 통해 최종 2 gate delay 가 소요됨

 

4) 2 gate delay : c12, c8, c4, c0 를 이용하여 

                         c15, c14, c13, c11, c10, c9, c7, c6, c5, c3, c2, c1 에 대한 계산

    => ci+1 = gi + pici 에서 pici 에 대한 AND 연산 1 gate delay 와

         gi + pici 에 대한 OR 연산을 통해 최종 2 gate delay 가 소요됨

 

5) 1 gate delay : 최종 sum s15 ... 0 에 대한 계산

    => si = pi ^ ci 이므로 1 gate delay 가 소요됨

'3-2 > 디지털회로개론' 카테고리의 다른 글

9-1주차(ROM,PLA,PAL)  (0) 2021.11.02
8주차(Adder/Subtractor/decoder/Multiplexer/Bus)  (0) 2021.11.02
6-2주차(chapter3)  (0) 2021.10.06
6-1주차(Chapter3 The Karnaugh Map)  (0) 2021.10.04
5-2주차(chapter 3)  (0) 2021.10.04