Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica
Sumator zecimal pe principiul propagarii seriale a transportului

Sumator zecimal pe principiul propagarii seriale a transportului


Sumator zecimal pe principiul propagarii seriale a transportului

Precizam, de la inceput, ca dintre codurile zecimale vom face doar cele BCD (binary-code decimal) pur, cu ponderile 8421, si exces de 3 (excess-3 BCD). De asemenea, operatia vizata este adunarea, iar operanzii sunt admisi numere fara semn, acordarea la aritmetica BCD cu semn neintampinand dificultati deosebite.

Adunarea operanzilor BCD in general poate fi intreprinsa pe doua cai, si anume, fie convertind operanzii in cod binar pur, efectuand operatia si apoi reconvertind rezultatul in BCD, prin fie efectuand operatia in mod direct in codul BCD. Apeland la aceasta din urma metoda , referindu-ne la codul BCD8421 remarcam faptul ca, la conversia numerelor din binar in BCD prin cunoscuta metoda a deplasarii stanga (inmultirea cu doi) [][Omon94], anumitor cifre zecimale trebuie sa li se aplice adunarea cifrei colective 01102 = 610. Astfel, inmultirea cu 2 a cifrelor zecimale cuprinse intre 0 si 4 da valorile de la 0 la 8, avand valorile binare de la 0000 la 1000, care in BD8421 corespund doritelor de la 0 la 8, fara niciun fel de corectie. Daca insa inmultim cu 2 cifrele zecimale de la 5 la 9 inclusiv ,obtinem numerele pare de la 10 la 18, care au cifra cea mai semnificativa 1 cu pondere de 101 in sistemul de numeratie zecimal, dar cu pondere 24 =16 in sistemul de numeratie binar, ceea ce revendica adunarea la echivalentii binari de la 1010 la 10010 a valorii 01102 = 610 obtinand de la 10000 la 11000 carora le corespund in BCD8421 doritele numere, de la 10 la 18. Tot asa adunand echivalentii binari a doua cifre zecimale, spre exemplu, 01112 = 710 cu 10002 = 810 , rezulta valoarea 11112 = 1510 , care, in zecimal, prezinta un transport (pondere 101) inspre adunarea proximei perechi de cifre zecimale ceea ce echivaleaza cu scaderea din valoarea sumei 11112 a lui 10102 = 1010 . Doar aceasta operatie de scadere se executa prin adunarea complementului de doi , adica adunarea valorii 01102 = 610 obtinandu-se echivalentul binar 01012 = 510 si asteptatul carry out este egal cu 1. Generalizand acest aspect de fiecare data cand la adunarea echivalentilor binari a doua cifre zecimale rezulta pentru echivalentul binar al sumei valori cuprinse intre 1010 si 1111, la acestea se impune adunata valoarea 0110, iar carry-out-ul rezultat trebuie transmis pentru a contribui la insumarea echivalentilor binari corespunzatori urmatoarei perechi de cifre zecimale. Pe de alta parte, adunand, de aceasta data, echivalentii binari ai cifrelor zecimale 810 = 1000 si 910 = 10012 , obtinem carry-out si echivalentul binar al sumei 0001, situatie in care, din motive legate de transformare a carry-out-ului cu valoarea 10 corespunzatoare sistemului de numeratie zecimal in valoarea 16 corespunzatoare sistemului de numereatie binar, reclama, si de aceasta data adunarea valorii 0110 astfel incat cei patru biti (tetrada) ai sumei sunt corectati la 01112 = 710. Prin urmare, insumarea in codul BCD 8421, se realizeaza prin adunarea - de la dreapta la stanga - tetradelor binare corespunzatoare perechilor de cifre zecimale si corectia selectiva a echivalentilor binari suma prin adunarea valorii 0110 in cele doua situatii relevate cand pentru tetrada suma se obtin numere binare de la 1010 la 1111 sau cand la evaluarea tetradei suma rezulta carry-out. Astfel, in fig. 2.13, se prezinta o adunare exemplu intre X = 473510 si Y=291810, la care se considera ca toate insumarile tetradelor se efectueaza in paralel, avand initial, la toate, intrarile de transport cin pe zero, facilitate care poate fi asigurata in anumite tehnologii, cum ar fi, spre exemplu tehnologia CMOS prin preincarcare (precharging) HePa03 . Se observa ca la adunarea tetradelor celor mai putin semnificative rezulta numar binar 1101, valoare care trebuie corectata cu 0110, operatie in urma careia rezulta cout=1, care trebuie adunat, intr-o a doua instanta la tetrada suma corespunzatoare adunarii celei de a doua (de la dreapta spre stanga) perechi de cifre zecimale. Aplicarea corectiei de 0110 este necesara si la adunarea echivalentilor binari ai cifrelor zecimale 7 si 9, dar acum pe motiv de cout=1, transport avansat pentru a fi adunat, intr-o a doua instanta, la tetrada suma cea mai semnificativa. Ar mai fi de remarcat ca suma Z = 0111 0110 0101 0011BCD = 765310 se obtine gradual, esalonat in timp, in urma operarii tuturor potentialelor transporturi cout intertetrade, fapt sugerat prin prezentarea "in trepte" a executiei operatiei in fig. 2.13.



In ceea ce priveste sinteza unui sumator zecimal operand numere fara semn, in codificare BCD8421, aceasta poate fi realizata conform cu adunarea exemplu din figura 2.13 in maniera RCA, inlantuind serial, in cascada, sumatoare destinate operarii cate unei tetrade din fiecare operand, X si Y, obtinand o cifra conforma a codificarii BCD8421 (1-digit BCD8421 adder), asa cum se prezinta in fig. 2.14. Fiecare astfel de suma, cum ar fi, spre exemplu, cel care aduna tetradele Xi si Yi, este compusa dintr-un etaj care realizeaza suma binara conventionala Zi si dintr-un al doilea etaj care permite adunarea selectiva a valorii corective 0110. Activarea acestuia din urma se petrece prin functia booleana Zi (fig. 2.15a), obtinuta prin minimizare cu diagrama Karnaugh a expresiei constand din schema logica a minterm-ilor corespunzatori tetradelor suma de la z i,3z i,2z i,1z i,0 = 1010 la z i,3z i,2z i,1z i,0 = 1111, sau prin ci+1, reprezentand transportul cout al sumatorului binar conventional (fig. 2.15b). Cu alte cuvinte, pentru transportul ci+1, spre tetrada calculeaza echivalentul binar Zi+1 corespunzator cifrei zecimale urmatoare, avem urmatoarea ecuatie booleana:

(2.9)

Fig. 2.15a

Atunci cand ,in  baza relatiei (2.9), rezulta ci+1=1, aceasta valoare este aplicata la FAC-urile interne ale celui de-al doilea etaj de insumare astfel incat acesta sa adune la tetrada Z'i valoarea 22+21=610, obtinandu-se tetrada corectata Zi.

Ar mai putea fi mentionat ca la configurarea atat a sumatoarelor de tetrade (fig.2.15) cat si la cea globala pentru numerele BCD8421(fig 2.14) pot fi utilizate ,in scopul imbunatatirii de performanta , metode de accelerare a procesului de insumare de tipul celor ce vor fi prezentate in paragrafele urmatoare . Oricum, penalitatile de performanta cauzate de corectarea rezultatelor determina o aplicabilitate limitata chiar si a sumatoarelor pentru acest cel mai raspandit cod zecimal, reprezentat de BCD8421 , cu atat mai mult a dispozitivelor pentru operatii mai complexe, cum ar fi inmultirea sau impartirea totusi exista o gama de aplicatii in care cantitatea de procesare este redusa si predomina conversiile la introducerea si extragerea datelor de la/la interfete umane pentru care se preteaza solutii bazate pe aritmetica zecimala in general, in particular prin sumatoare BCD8421.

In acelasi context al sumatoarelor zecimale ne vom referi , succint, la adunarea numerelor zecimale reprezentate in codul BCD exces de 3 , acesta datorita unei interesante proprietati pe care o poseda . Se pleaca de la faptul ca fiecare cifra zecimala are un deplasament (bias) de 3 , ceea ce ne conduce, la adunarea a doua astfel de cifre, la generarea corect a lui carry-out chiar si in cazurile critice cand la codul BCD8421, tetradele suma rezultau cu valori intre 1010 si 1111, pentru ca este asigurata implicit corectia 3+3=6. Desi carry-out se produce in mod corect la adunarea reprezentarilor BCD exces de 3 a oricaror doua cifre zecimale, in consecinta , adunarea a doua numere BCD exces de 3 poate fi intreprinsa printr-un sumator binar conventional. Este insa adevarat ca, in urma efectuarii operatiei de adunare, pentru a obtine reprezentarea sumei in cod BCD exces de 3 este necesara corectarea tuturor tetradelor suma . Astfel , daca la adunarea reprezentarilor BCD exces de 3 a doua cifre zecimale se obtine carry-aut=1, atunci la tetrada suma binara, se aduna, pentru compensatie, valoarea 00112 ,iar, daca la respectiva adunare, se obtine carry-aut=0, atunci din tetrada suma binara trebuie scazuta valoarea 00112 (corespunzatoare unuia din cele doua bias-uri). In fig.2.16 este operat acelasi exemplu din fig 2.13, de aceasta data in reprezentare BCD exces de 3 (BCDE3). Sunt scoase in relief valorile de carry intertetrade care determina, dupa caz, adunarea sau scaderea valorii corective 00112 = 310 a tetradelor suma. Este de remarcat ca operatia necesita doar doua treceri, una pentru obtinerea sumei binare conventionale si una de corectie, fiind mai performanta decat cea executata in codul BCD8421.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.