Estratto del documento

Relazione progetto Select Carry Adder

Andrea Dell’Osso mat. 209865, Mario Barbieri mat. 213540

November 28, 2021

Funzionamento generale

Il Carry Select Adder(CSA) è un particolare sommatore il cui vantaggio è l’elevata velocità di calcolo, rispetto ad

un comune Ripple Carry Adder(RCA), a dispetto di un più alto costo al livello di porte logiche usate. Un CSA

ad n bit è generalmente costituito da un RCA ad n/2 bit che effettua la somma degli n/2 bit meno significativi,

mentre per gli n/2 bit più significativi la somma viene eseguita nel seguente modo:

2 RCA da n/2 bit, dei quali uno con il riporto in entrata fissato a ’0’, mentre l’altro ad ’1’.

Le somme di ogni bit entrano in un Multiplexer, che ne seleziona la somma finale con il segnale di controllo

preso dal riporto in uscita del primo RCA precedentemente descritto.

L’elevata velocità di calcolo è dovuta al calcolo simultaneo della somma degli n/2 bit più significativi. Infatti

il secondo blocco dei 2 RCA effettuano a priori la somma dei bit più significativi nei casi in cui i riporto sia ’0’ e

’1’. Il risultato corretto della somma e del riporto in uscita del CSA è determinato dal riporto in uscita del primo

RCA. S_OBUF[0]_inst_i_1 S_OBUF[0]_inst

I0 I O 0 S[16:0]

I1 O

B_IBUF[2]_inst OBUF

I2

I O

2 LUT3

IBUF

cin_IBUF_inst

I O

cin S_OBUF[1]_inst_i_1

IBUF B_IBUF[3]_inst I0

I O

3 S_OBUF[1]_inst

I1

B_IBUF[0]_inst I O 1

IBUF I2 O

I O

0

B[15:0] OBUF

I3

IBUF I4 LUT5

B_IBUF[1]_inst S_OBUF[3]_inst_i_2

I O

1 S_OBUF[2]_inst_i_1

I0

IBUF S_OBUF[2]_inst

I0

I1 I O 2

I1 O

A_IBUF[0]_inst I2 O OBUF

I2

I O

0

A[15:0] I3 LUT3

S_OBUF[5]_inst_i_2

IBUF I4 I0

LUT5 S_OBUF[3]_inst_i_1

I1

A_IBUF[1]_inst I0

A_IBUF[2]_inst I2 O

I O

1 S_OBUF[3]_inst

I1

I O

2 I3 I O 3

IBUF I2 O

IBUF I4 OBUF

I3

LUT5

A_IBUF[3]_inst I4

I O

3 LUT5

IBUF S_OBUF[4]_inst_i_1 S_OBUF[4]_inst

I0 I O 4

I1 O OBUF

I2 LUT3

S_OBUF[5]_inst_i_1

I0 S_OBUF[5]_inst

I1 I O 5

I2 O OBUF

I3

A_IBUF[4]_inst I4

I O

4 LUT5

S_OBUF[7]_inst_i_2

IBUF I0 S_OBUF[6]_inst_i_1

I1

A_IBUF[5]_inst S_OBUF[6]_inst

I0

I2 O

I O I O

5 6

I1 O

I3

IBUF OBUF

I2

I4 LUT3

LUT5

B_IBUF[4]_inst

I O

4 S_OBUF[7]_inst_i_1

IBUF A_IBUF[6]_inst I0

I O

6

A_IBUF[8]_inst S_OBUF[7]_inst

I1

B_IBUF[5]_inst

I O I O

8 7

IBUF I2 O

I O

5

IBUF OBUF

I3

IBUF A_IBUF[7]_inst I4

I O

7

A_IBUF[9]_inst LUT5

I O

9 IBUF S_OBUF[10]_inst_i_2

IBUF S_OBUF[8]_inst_i_1

I0 O S_OBUF[8]_inst

I0

A_IBUF[10]_inst I1 I O 8

I1 O

I O

10 LUT2 OBUF

A_IBUF[13]_inst I2

S_OBUF[12]_inst_i_2

IBUF I O

13 LUT3

I0 cout_OBUF_inst_i_2

IBUF

B_IBUF[8]_inst I1 I0 S_OBUF[9]_inst_i_1

I O

8 I2 O I1 I0

IBUF B_IBUF[6]_inst

I3 S_OBUF[9]_inst

I2 O I1

I O

6

I4 I O 9

B_IBUF[9]_inst I3 I2 O

IBUF

I5

I O

9 OBUF

I4 I3

LUT6 LUT5

IBUF B_IBUF[7]_inst I4

I O

7 LUT5

B_IBUF[10]_inst IBUF cout_OBUF_inst_i_3

I O

10 S_OBUF[12]_inst_i_3 S_OBUF[10]_inst_i_1

I0

IBUF I0 I0

A_IBUF[14]_inst I1 S_OBUF[10]_inst

I1 I1

I O

14 I2 O I O 10

I2 O I2 O

IBUF I3 OBUF

I3 I3

I4

I4 I4

LUT5

I5 I5

LUT6 LUT6

A_IBUF[15]_inst

S_OBUF[13]_inst_i_2 I O

15 S_OBUF[11]_inst_i_1

A_IBUF[11]_inst I0 IBUF I0

I O

11 I1 S_OBUF[11]_inst

I1

IBUF I2 O I O 11

I2 O

I3 OBUF

A_IBUF[12]_inst I3

I4

I O

12 I4

LUT5 LUT5

IBUF

B_IBUF[11]_inst S_OBUF[12]_inst_i_1

I O

11 I0

IBUF S_OBUF[12]_inst

I1

S_OBUF[13]_inst_i_3 cout_OBUF_inst_i_4 I O 12

I0 I0 I2 O OBUF

B_IBUF[12]_inst I1 I1 I3

I O

12 I2 O I2 O I4

IBUF I3 I3 I5 LUT6

I4 I4

LUT5 LUT5 cout_OBUF_inst_i_1

I0

S_OBUF[12]_inst_i_4 cout_OBUF_inst

I1

B_IBUF[13]_inst I0 O I O cout

I2 O

I O

13 I1 OBUF

I3

LUT2

IBUF I4 LUT5

B_IBUF[14]_inst B_IBUF[15]_inst

I O

14 I O

15 S_OBUF[13]_inst_i_1

IBUF IBUF I0 S_OBUF[13]_inst

I1 I O 13

I2 O OBUF

I3

I4

S_OBUF[14]_inst_i_2 LUT5

I0

I1 O S_OBUF[14]_inst_i_1

I2 I0

LUT3 S_OBUF[14]_inst

I1 I O 14

I2 O

S_OBUF[14]_inst_i_3 OBUF

I3

I0 I4

I1 O LUT5

I2 LUT3 S_OBUF[15]_inst_i_1

I0 S_OBUF[15]_inst

I1 I O 15

I2 O OBUF

I3

I4 LUT5

S_OBUF[16]_inst_i_1

I0 S_OBUF[16]_inst

I1 I O 16

I2 O OBUF

I3

I4 LUT5

1

Componenti

I componenti utilizzati in questa implementazione del CSA, sono:

Full Adder

Il Full-Adder è un componente fondamentale la cui funzione è quella di eseguire la somma tra due numeri binari ad

1 bit. É caratterizzato da 3 ingressi(numero1, numero2, riporto in entrata) e due uscite (somma, riporto in uscita).

Di seguito riportiamo il codice VHDL del componente FA:

library IEEE ;

1 use IEEE . STD_LO GIC_1164 . ALL ;

2

3 entity FA is

4 Port ( A : in STD_LOGIC ;

5 B : in STD_LOGIC ;

6 cin : in STD_LOGIC ;

7 cout : out STD_LOGIC ;

8 S : out STD_LOGIC ) ;

9 end FA ;

10

11 architecture Behavioral of FA is

12

13 begin

14 cout <=( A and B ) or (( A xor B ) and cin ) ;

15 S <= A xor B xor cin ;

16 end Behavioral ;

17 2

Multiplexer 2:1 n

Il multiplexer è un circuito logico base, che consente di selezionare 1 tra 2 ingressi in base allo stato di n segnali di

controllo . Nel caso del Multiplexer 2:1, i bit di ingresso sono 3: due possibili bit di scelta e uno di selezione/co

Anteprima
Vedrai una selezione di 4 pagine su 12
Relazione progetto Select Carry Adder Pag. 1 Relazione progetto Select Carry Adder Pag. 2
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Relazione progetto Select Carry Adder Pag. 6
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Relazione progetto Select Carry Adder Pag. 11
1 su 12
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher andrea.dellosso.1 di informazioni apprese con la frequenza delle lezioni di Elettronica digitale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università della Calabria o del prof Costanzo Sandra.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community