Documente Academic
Documente Profesional
Documente Cultură
S 0 - starea la care se aduna la un moment dat 2 biti si din starea anterioara nu a provenit
transport(carry);
ci-1
0
1
0
1
0
1
0
1
Outputs
zi
ci
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
z x1 x 2 c (t 1)
c(t) x1 x 2 x1 c(t 1) x 2 c (t 1)
a
b
La versiunea data avem si o alternativa daca dupa tabel am fi ales un bistabil de tip D (delay
element). La fiecare impuls de clock adun 2 full adder cell bit, rezulta ca daca vreau sa adun
doua numere a n biti avem nevoie de n impulsuri de clock. Din nefericire un sumator serial
executa suma ntr-un numar de impulsuri de clock egal cu n, daca operanzii au n biti si de
accea, uzual, se apeleaza la sumatoare paralele.
s 0 A B
B A s s 1 B A 1 B A
c1
0
1
0
1
0
1
0
1
Outputs
z0
V
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
yi xi bi zi
zi xi yi bi
b i1 y i x i y i b i x i b i
Se obtine un scazator complet din celule diferenta.
c 1 a 0 b 0 a 0 c 0 a 0 b 0 ( a 0 b 0 ) c 0
p0
c 2 a 1 b 1 ( a 1 b 1 ) c 1 g 1 p 1 g 0 p 1 p 0 c 0
g1
p1
c3 g2 p2 g1 p2 p1 g0 p2 p1 p0 c0
c g p g p p g p p p g p p p p c
3
3
2
3
2
1
3
2
1
0
3
2
1
0
0
4
Avantajul:
Avem doar 5 nivele logice n fata de 2n nivele logice ca la ripple-carry-adder pentru
obtinerea sumei.Cele 5 nivele logice sunt:
o 1 - generarea lui p si g;
o 2,3 - generarea lui carry;
o
Dezavantaje:
creste numarul intrarilor din SI-urile pentru carry si SAU-rile(pentru bitul i avem i+1
intrari);
creste fan-out-ul p-urilor, adica numarul de circuite pe care le poate alimenta. De
exemplu fan-out-ul lui p n 1 este egal cu n;
structura este neregulata si creste n complexitate si de aceea apar probleme la
implementare.
c1 g 0 p0 c0
c 0 G 0 ,1 P 0 ,1 c 0 g 1 p 1 g 0 p 1 p 0 c 0
G 0 ,1 g 1 p 1 g
P 0 ,1 p 1 p 0
i,K
i,K
j1,K
P i , K P i , j P
j1,K
G
Aceste relatii sunt valabile daca i j K si
P i,K c i
i ,i
j1,K
P i p i ,i
si
i,j
si problema acestei
P 0 , 3 P 0 ,1 P 2 , 3 P 0 , 0 P 1 ,1 P 2 , 2 P 3 , 3
0 ,3
2 ,3
0 ,2
P 2 ,3 G
3 ,3
P 3 ,3 G
2 ,2
g3 p3 g2 p3 p2 g1 p3 p2 p1 g
P 2 ,2 P 3 ,3 ( G
1 ,1
0 ,0
P 1 ,1 )
n termeni de VLSI (very large scale integration) schema se implementeaza foarte usor
castigndu-se spatiu de siliciu. Complexitatea circuitului n termeni de spatiu este n l o g
n , iar
P 0 ,3 p 3 p 2 p 1 p 0
G 0 ,3 g 3 p 3 g 2 p 3 p 2 g 1 p 3 p 2 p 1 g
S-a ajuns la urmatoarea solutie tehnica:
Aceasta solutie tehnica se bazeaza pe faptul ca n ceea ce priveste tehnologia CMOS prin
precharging este posibil sa se realizeze initial carry-urile cu 0(intersegment), prezentate mai
sus. Carry-ul se poate genera simultan pentru toate segmentele, ignornd carry-ul care intra n
portile SI.n situatia n care din intrari pentru un anumit segment nu s-a generat carry datorita
carry-ului de intare n segment, este posibil totusi sa fie generat carry dar acesta nu va fi
generat n maniera seriala conform solutiei RCA ci va omite(skip) propagarea seriala prin
traversarea portii SI conditionata pe intrari de factorul logic
produsul p 3 p 2 p 1 p
P i, j
,...
,...
T ad (4 (
20
2 ) 4 )d 1 1d
4
n 20
Se poate obtine o solutie mai performanta daca se mparte sumatorul n segmente inegale( se
apeleaza la un artificiu).
Aceasta solutie are timpul de propagare:
Tad (6 1.5 2) d
Concluzie:
Este posibil ca prin divizarea numarului de ranguri al sumatorului n segmente inegale RCA sa
se obtina o solutie mai performanta dect cea corespunzatoare mpartirii n segmente RCA
egale.
n anumite tehnologii faptul ca semnalul de carry trebuie sa comande foarte multe intrari duce la
ntrzieri si de aceea semnalul trebuie amplificat. Carry-ul real selecteaza suma parallel
calculata(anterior calculata). Problema care se pune este cum sa se faca mpartirea intrarilor n
segmente RCA astfel inct adunarea sa se faca n forma cea mai favorabila.
Vom face o comparatie ntre toate solutiile de sumatoare prezentate pna acum:
Type
RCA
CLA
CskA
CSeA
Space
O(n)
O(n log2n)
O(n)
O(n)
Time
O(n)
O(log2n)
O( n )
O( n )
Este un sumator asemanator solutiei RCA care prezinta un lant serial, care poarta o denumire
specifica Manchester Chain, si care este implementat nu cu porti logice lente ci cu
comutatoare(switch-uri) rapide situate de-a lungul lantului dupa cum sugereaza figura
urmatoare:
Daca avem a i b i atunci se propaga oricum 1 logic, iar daca avem a i b i atunci se propaga
oricum 0 logic.
Solutia a revenit odata cu epoca VLSI prin asa numitele pass transistors, de exemplu la AMD29050(Lynch-Swartzlnder). n termeni de VLSI aceste celule se implementeaza favorabil, de
mare viteza.
Pentru a implementa aceasta idee, clasica structura de full adder se modifica prin adaosul
revendicat de propagarea celor doua tipuri de carry: carry0 si carry1.Vom avea:
c i0 1 a i b i ( a i b i a i b i ) c i0
c i1 1 a i b i ( a i b i a i b i ) c i1
Carry-completion adder-ul are urmatoarea figura:
Este posibil sa apara semnalul parazit carry-completion signal(CC), care are urmatoarea forma:
C C ( c 10 c 11 ) . . . ( c i0 c i1 ) . . . ( c n0 1 c n1 1 )
Circuitul SI are un numar mare de intrari(53) si nu poate fi realizat pe un singur nivel, ceea ce
reprezinta o scadere(pentru ca apar ntrzieri).
A a n 1 . . . a 0
B b n 1 . . .b 0
carora le atasam 2 biti de paritate:
b n 1 . . . b i . . . b 0
n 1
. . . a i . . . a
s
Suma lor este S s n 1 . . . s 0 cu bitul de paritate
s
(a
p
n 1
s n 1 . . . s i . . . s 0
b n 1 c n 1 ) . . . ( a i b i c i ) . . . ( a 1 b 1 c 1 ) ( a 0 b 0 c 0 )
b p c n 1 . . . c 0
c
A 01101101 a
B 00101110
b
1 0
S 1 0 0 1 1 0 1 1 s
C 1 1 0 1 1 0 0 0 c
1 1
A 10101101 a
B 00010110
b
0 1 1 1
S 1 1 0 0 0 0 1 1 s
C 0 0 1 1 1 0 0 0 c
0 0 0
c i j
mod artificial si afectarea prin eroare a bitului imediat inferior al sumei, adica
s i j
Provocnd un pachet de erori cu un numar impar de erori poate fi pus n evidenta controlul de
paritate.
s i a i c i c i1 b i c i c i1 a i c i c i1
b i c i c i1 a i b i c i c i1 a i b i c i c i1
g i a i bi
pi ai bi
s i p i c i c i1 g i c i c i1 p i c i c i1 g i c i c i1
Stagii:
C
C=0
C=1
C=0
C=1
C=0
C=1
C=0
C=1
1
0
C
0
1
0
0
0
0
0
////
0
0
C
0
0
0
1
C
0
1
0
1
1
0
C
0
1
0
1
C
0
1
1
1
1
1
1
C
0
0
0
0
0
C
0
0
0
1
1
C
1
S
1
0
1
1
1
1
1
//// ////
S
0
1
0
1
0
1
0
//// ////
S
1
0
1
0
1
0
0
//// ////
S
1
0
1
0
1
0
0
//// ////
S
1
0
0
0
0
S
0
1
1
1
1
S
0
1
1
1
1
S
0
0
0
0
1
1
0
//// //// //// //// //// //// ////
Detaliul circuitului:
s0 a 0 b0
c1 a 0 b0
s 1 ( a 1 b 1 ) c 1 a 1 b 1 c 1 a 1 b 1 c 1
c 2 ( a 1 b 1 ) c 1 a 1 b 1 c 1
Apar niste forme degenerate ale carry-ului si sumei:
s 2 ( a 2 b 2 ) c 2 a 2 b 2 c 2
c 3 ( a 2 b 2 ) c 2 a 2 b 2 c 2
c3 a 2 b2 a 2 b2 a 2 b2 c2 a 2 b2 c2
s3 (a 3 b3) c3 a 3 b3 c3
(a 3 b3) a 2 b2 c2 (a 3 b3) a 2 b2 c2 a 3 b3 (a 2 b2 ) c2 a 3 b3 a 2 b2 c2
c4 (a 3 b3) c3 a 3 b3 c3
(a b ) (a b ) c (a b ) a b c a b a b c a b a b c
3
3
2
2
2
3
3
2
2
2
3
3
2
2
2
3
3
2
2
2