Sei sulla pagina 1di 12

Università della Calabria

Dipartimento di Ingegneria Informatica,


Modellistica, Elettronica e Sistemistica

Corso di Laurea Triennale in Ingegneria Informatica

PROGETTAZIONE E ANALISI DI UN MOLTIPLICATORE DI WALLACE BASATO SU FPGA


________________________________________________________________________________________
Candidato
Relatore
Giorgio Ubbriaco
Prof.ssa Stefania Perri
Matricola 209899

Anno Accademico 2021-2022


Sommario
◦ Motivazioni e stato dell’arte

◦ Progettazione del Moltiplicatore di Wallace a 8 bit e a 16 bit.

◦ Confronto tra il Moltiplicatore di Wallace a 8 bit e il Moltiplicatore standard «Carta e Penna» a 8 bit.

◦ Analisi delle simulazioni e dei report dei sistemi elettronici digitali progettati.

1
Strutture di moltiplicatori

◦ Moltiplicatore digitale: circuito elettronico digitale che permette la moltiplicazione binaria tra due
operandi ad bit.

3
Strumenti di progettazione
◦ ZedBoard™: piattaforma ideale sia per
sviluppatori principianti sia per quelli esperti.

◦ FPGA: uno dei dispositivi logici programmabili


più diffusi. ZedBoard

FPGA

◦ Vivado Design Suite: suite di strumenti utilizzata


per la sintesi e l’analisi di progetti scritti in HDL.

Vivado Design Suite

2
Moltiplicatore di Wallace

◦ Moltiplicatore ad albero veloce di tipologia


seriale-parallelo.

◦ Maggiore area di occupazione su chip.

◦ Notevoli guadagni in termini di velocità di


calcolo.

◦ Minore dissipazione di potenza.


RTL Schematic del Moltiplicatore di Wallace a 8 bit RTL Schematic del Moltiplicatore di Wallace a 16 bit

4
Generazione e gestione dei prodotti parziali
◦ Generazione dei prodotti parziali operazione a7
b7
a6
b6
a5
b5
a4
b4
a3
b3
a2
b2
a1
b1
a0
b0
x

logica and tra gli operandi ad bit. ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------

b0a7 b0a6 b0a5 b0a4 b0a3 b0a2 b0a1 b0a0


- '0' se B positivo b1a7 b1a6 b1a5 b1a4 b1a3 b1a2 b1a1 b1a0
- NOT(A)+1 se B negativo b2a7 b2a6 b2a5 b2a4 b2a3 b2a2 b2a1 b2a0

◦ Gestione dei
b3a7 b3a6 b3a5 b3a4 b3a3 b3a2 b3a1 b3a0

prodotti parzialiiterazioni di b5a7


b4a7
b5a6
b4a6
b5a5
b4a5
b5a4
b4a4
b5a3
b4a3
b5a2
b4a2
b5a1
b4a1
b5a0
b4a0

compressione. en7 n7
b6a7
n6
b6a6
n5
b6a5
n4
b6a4
n3
b6a3
n2
b6a2
n1
b6a1
n0
b6a0

------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------

en7 ha5R fa16R fa15R fa14R fa12R fa10R fa8R fa6R fa4R fa3R fa2R fa1R ha1R ha1S b0a0
n7 ha5S fa16S ha4R fa13R fa11R fa9R fa7R fa5R ha2R fa3S fa2S fa1S
fa15S fa14S fa12S ha3R fa8S fa6S fa4S ha2S b3a0

◦ Terna di bit Full-Adder. n4 ha4S fa13S fa10S


fa11S
n1
fa9S
ha3S
fa7S
b6a0
fa5S

------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------

en7 ha10R ha9R fa26R fa25R fa24R fa22R fa21R fa20R fa19R fa18R fa17R ha6R ha6S ha1S b0a0
ha11S ha10S ha9S fa26S fa25S fa23R ha8R ha7R fa20S fa19S fa18S fa17S

◦ Coppia di bit Half-Adder.


n4 ha4S fa24S fa22S fa21S ha7S fa5S
fa13S fa23S ha8S
------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------

en7 ha15R ha14R fa33R fa32R fa31R fa30R fa29R fa28R fa27R ha13R ha12R ha12S ha6S ha1S b0a0
ha16S ha15S ha14S fa33S fa32S fa31S fa30S fa29S fa28S fa27S ha13S
fa13S fa23S ha8S
------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------

◦ bit singolobit propagato all’iterazione successiva. en7 ha23R


ha24S
ha22R
ha23S
ha21R
ha22S
ha20R
ha21S
fa36R
ha20S
fa35R
fa36S
fa34R
fa35S
ha19R
fa34S
ha18R
ha19S
ha17R
ha18S
ha17S ha12S ha6S ha1S b0a0

------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------

Res_15 Res_14 Res_13 Res_12 Res_11 Res_10 Res_9 Res_8 Res_7 Res_6 Res_5 Res_4 Res_3 Res_2 Res_1 Res_0

Struttura del Moltiplicatore di Wallace a 8 bit


◦ Compressione finale Ripple Carry Adder.

5
Constraint di clock
◦ È una specifica di progetto.

◦ Frequenza massima di funzionamento maggiore della frequenza garantita dal constraint di clock.

6
Post-Synthesis
Moltiplicatore «Carta e Penna» a 8 bit Moltiplicatore di Wallace a 8 bit Moltiplicatore di Wallace a 16 bit
LUT / / /
FF / / /
IO / / /
BUFG / / /

Synthesis Schematic

7
Post-Implementation
Moltiplicatore «Carta e Penna» a 8 bit Moltiplicatore di Wallace a 8 bit Moltiplicatore di Wallace a 16 bit

Static Dynamic Static Dynamic Static Dynamic


Total On-Chip Power

Junction
Temperature
Thermal Margin
Effective

Device

8
Simulazioni di timing

Post-Implementation Timing Simulation del Moltiplicatore «Carta e Penna» a 8 bit

Post-Implementation Timing Simulation del Moltiplicatore di Wallace a 8 bit

Post-Implementation Timing Simulation del Moltiplicatore di Wallace a 16 bit

9
Conclusioni

◦ I moltiplicatori digitali sono fondamentali al


giorno d’oggi nell’ambito del digital signal
processing e delle reti neurali.

◦ La generazione e la gestione dei prodotti parziali


sono, oggigiorno, oggetto di ricerca.

◦ Stanno prendendo il sopravvento i moltiplicatori


approssimati che permettono di mantenere costi e
delay relativamente bassi.

10
Grazie per l’attenzione

Potrebbero piacerti anche