Circuite aritmetice elementare l Sumator l l l

  • Slides: 15
Download presentation
Circuite aritmetice elementare l Sumator l l l Multiplicator l l Intregi fara semn

Circuite aritmetice elementare l Sumator l l l Multiplicator l l Intregi fara semn Intregi cu semn Evitarea depasirii Sumatoare rapide Multiplicator cu arbore binar Multiplicator secvential Multiplicator pipe-line Divizor 1

Circuite aritmetice elementare l Sumatorul Celula elementara de sumare cu 2 intrari foloseste structura

Circuite aritmetice elementare l Sumatorul Celula elementara de sumare cu 2 intrari foloseste structura de logica si structura de transport a unui Slice (vezi curs 2). 2

Circuite aritmetice elementare l Sumatorul l Intregi fara semn: in binar intregii pozitivi se

Circuite aritmetice elementare l Sumatorul l Intregi fara semn: in binar intregii pozitivi se aduna bit cu bit incepand de la cel mai putin semnificativ. Exemplu: sumator pe 4 biti 3

Circuite aritmetice elementare l Intregi cu semn in c 2: sumarea se face ca

Circuite aritmetice elementare l Intregi cu semn in c 2: sumarea se face ca la intregii fara semn, bitul cel mai semnificativ reprezentand de aceasta data semnul. Exemplu: adunarea a 2 intregi fara semn pe 4 biti, respectiv a 2 intregi cu semn pe 4 biti. 4

Circuite aritmetice elementare l Evitarea depasirii: l l l 2 intregi fara semn pe

Circuite aritmetice elementare l Evitarea depasirii: l l l 2 intregi fara semn pe B biti => depasire daca rezultatul corect este mai mare decat 2 intregilor cu semn in c 2 reprezentati pe B+1 => depasire daca rezultatul real nu este in intervalul (vezi curs 3) depasirea poate aparea numai daca cei 2 operanzi au acelasi semn si se manifesta prin schimbarea semnului rezultatului 5

Circuite aritmetice elementare l Folosirea bitilor de garda: 6

Circuite aritmetice elementare l Folosirea bitilor de garda: 6

Circuite aritmetice elementare Exemplu: suma a 2 intregi cu semn in c 2 pe

Circuite aritmetice elementare Exemplu: suma a 2 intregi cu semn in c 2 pe 4 biti. Se repeta bitul de semn, se claculeaza suma pe 5 biti si se alege rezultatul fara depasire. 7

Circuite aritmetice elementare l Saturare: daca se constata depasirea, se alege ca rezultat una

Circuite aritmetice elementare l Saturare: daca se constata depasirea, se alege ca rezultat una dintre limitele intervalului de reprezentare, in functie de semnul operanzilor. Exemplu: suma a 2 intregi cu semn in c 2 pe 4 biti. 8

Circuite aritmetice elementare l Sumatoare rapide l l Fan-out mare Calculeaza simultan bitii de

Circuite aritmetice elementare l Sumatoare rapide l l Fan-out mare Calculeaza simultan bitii de transport 9

Circuite aritmetice elementare l Exemplu: suma a 2 intregi fara semn pe 4 biti.

Circuite aritmetice elementare l Exemplu: suma a 2 intregi fara semn pe 4 biti. 3+5=8 0011 + 0101 --------1000 10

Circuite aritmetice elementare l Multiplicatorul cu arbore binar 11

Circuite aritmetice elementare l Multiplicatorul cu arbore binar 11

Circuite aritmetice elementare l Multiplicatorul secvential 12

Circuite aritmetice elementare l Multiplicatorul secvential 12

Circuite aritmetice elementare l Multiplicatorul pipe-line Furnizeaza rezultatele pe ceas, dupa o latenta de

Circuite aritmetice elementare l Multiplicatorul pipe-line Furnizeaza rezultatele pe ceas, dupa o latenta de procesare de N 2 tacte 13

Circuite aritmetice elementare l Divizorul l Poate fi realizat doar cu registre de deplasare

Circuite aritmetice elementare l Divizorul l Poate fi realizat doar cu registre de deplasare si sumatoare 14

Circuite aritmetice elementare Exemplu: 101 impartit la 7 Impartitor Deimpartit Reg 1 Reg 2

Circuite aritmetice elementare Exemplu: 101 impartit la 7 Impartitor Deimpartit Reg 1 Reg 2 = [Reg 2_1 Reg 2_2] Hi Lo 0000 0111 0000 0110 0101 0000 1100 1010 0001 1001 0100 0011 0010 1000 0110 0101 0000 1100 1010 0000 -0000 0111 ----------0000 0101 1010 0000 1011 0100 0001 -0000 0111 ----------0000 0100 0001 0000 1000 0011 -0000 0111 ----------0000 0001 1000 0011 0000 0111 0000 0110 0000 1110 0000 0011 0000 1110 Rest = 3 Cat = 14 Incarcare registre Pas 0: <-- Shift 0 Pas 1: Scadere/Reincarcare Shift 0 Pas 2: Scadere/Reincarcare Shift 0 Pas 3: Scadere/Reincarcare Shift 0 Pas 4: Scadere/Reincarcare Shift 0 Pas 5: Scadere/Pastrare rezultat Apoi <-- Shift 1 Pas 6: Scadere/Pastrare rezultat Apoi <-- Shift 1 Pas 7: Scadere/Pastrare rezultat Apoi <-- Shift 1 Pas 8: Scadere/Reincarcare Shift 0 Pas final: --> Shift HI 15