Vous êtes sur la page 1sur 6

Architecture des Ordinateurs (I) Vue densemble

Travaux pratiques: Objectif:

Additionneur 4-bits Dcouvrir les outils de conception par lexemple dun additionneur
4-bits.
Comprendre le fonctionnement dun additionneur.
Thorie:
Cours Architecture des ordinateurs I
Support:
Polycopi du cours, Computer Organization & Design (Hennessy &
Patterson), Digital Design (Wakerly)
Outils:
EPFL I&C LAP+LSL ModelSim, Leonardo, Uedit
Dure:
1 heure

2 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03

Rappel:
Logique combinatoire Additionneur 4-bits traditionnel

Inverseur (NOT): AND:


A B S Exemple:
A S
0 0 0 Entres:
0 1 0 1 0 A = 0010 = 2
1 0 1 0 0 B = 0110 = 6
S=A S = AB 1 1 1 C0 = 1
(NAND: idem avec un inverseur la sortie)
Sorties:
S = 1001 = 9
OR: XOR: C4 = 0
A B S A B S
0 0 0 0 0 0 Nous allons analyser deux mthodes pour raliser ce
0 1 1 0 1 1 composant:
1 0 1 1 0 1 Structurelle: Additionneurs complets (Full Adder) en cascade
S = A+B 1 1 1 S = AB 1 1 0
Oprateur arithmtique + des bibliothques IEEE
(NOR: idem avec un inverseur la sortie) La fonction logique XOR ralise un comparateur

3 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 4 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03
Additionneur complet (Full Adder)

Un additionneur complet ralise laddition de deux bits A


et B, plus le report Cin, en produisant le bit de rsultat
S et le bit de report Cout.

Additionneurs complets A B Cin Cout S

en cascade 0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

5 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 6 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03

Schma logique de Programme VHDL de


ladditionneur complet ladditionneur complet

S = A B Cin LIBRARY ieee ;


USE ieee.std_logic_1164.all;
Cout = AB + Cin(A B) USE ieee.std_logic_arith.all;

ENTITY FA IS
PORT( A, B, Cin : IN std_logic;
Cout, S : OUT std_logic);
END FA ;

ARCHITECTURE synth OF FA IS
BEGIN
S <= A xor B xor Cin;
Cout <= (A and B) or (Cin and (A xor B));
END synth;

7 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 8 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03
Programme VHDL structurel
Additionneur 4-bits (Ripple Adder) de ladditionneur 4-bits (I)

Un additionneur 4-bits est ralis laide de 4 additionneurs


complets en cascade. Exemple: C0=0, A=0110, B=0100
LIBRARY ieee ;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;

ENTITY Add4_FA IS
PORT( A, B : IN std_logic_vector (3 DOWNTO 0) ;
C0 : IN std_logic ;
C4 : OUT std_logic ;
S : OUT std_logic_vector (3 DOWNTO 0));
C3 = 1 C2 = 0 C1 = 0 C0 = 0 END Add4_FA ;
A(3) = 0 A(2) = 1 A(1) = 1 A(0) = 0
B(3) = 0 B(2) = 1 B(1) = 0 B(0) = 0
S(3) = 1 S(2) = 0 S(1) = 1 S(0) = 0
C4 = 0 C3 = 1 C2 = 0 C1 = 0

9 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 10 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03

Programme VHDL structurel


de ladditionneur 4-bits (II) Additionneur 4-bits
ARCHITECTURE struct OF Add4_FA IS

SIGNAL C1, C2, C3 : std_logic; Question 1:


COMPONENT FA
Rsoudre la main les oprations binaires suivantes en mettant
PORT ( A, B, Cin : IN std_logic ; en vidence le report (carry) :
Cout, S : OUT std_logic);
END COMPONENT; 0001 1000 1011
+ 0010 + 0001 + 1001
BEGIN 00011
I3 : FA PORT MAP (A(3), B(3), C3, C4, S(3));
I2 : FA PORT MAP (A(2), B(2), C2, C3, S(2));
I1 : FA PORT MAP (A(1), B(1), C1, C2, S(1));
I0 : FA PORT MAP (A(0), B(0), C0, C1, S(0));
END struct;

11 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 12 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03
Additionneur 4-bits Simulation

Question 2:
Ecrire les programmes VHDL prcdents dans 2 fichiers spars:
FA.vhd et Add4_FA.vhd
Ecrire un script de simulation pour tester les oprations rsolues
la main prcdemment.
Utiliser le document Guide dutilisation des outils de conception
et effectuer les diffrentes tapes de la dmarche:
Simulation
Synthse (Type de FPGA: Altera APEX EP20K200EFC484-2X)
Les transparents suivants prsentent les rsultats que vous
devriez obtenir:

13 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 14 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03

Rappel:
Chemin critique (Critical Path) Synthse: chemin critique

Chaque composant a un dlai de propagation du signal entre son


entre et sa sortie. utilisation
du FPGA:
Exemple: Un inverseur: => 8 LCs
In
Out
Dlai Dlai

Un circuit combinatoire avec plusieurs entres et sorties est


compos de diffrents chemins dont les temps de propagation
diffrent.
Le chemin critique correspond au chemin dont le dlai de
propagation est le plus grand.
Chemin
Pour un FPGA, le chemin critique est calcul en fonction de critique:
limplmentation dans le FPGA (schma technologique). 13,83 ns

15 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 16 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03
Synthse: schma logique

Loprateur arithmtique +
des bibliothques IEEE

Affichage obtenu par loption Show hierarchie du menu contextuel li au schma RTL

17 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 18 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03

Optimisation avec
loprateur arithmtique + Programme VHDL
LIBRARY ieee ;
La construction dun additionneur base dadditionneurs USE ieee.std_logic_1164.all;
complets (Full Adders) permet de comprendre le principe USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
de fonctionnement.
ENTITY add4_op IS
PORT( A, B : IN std_logic_vector (3 DOWNTO 0);
Cependant, lorsquon programme en VHDL, on utilise de Cin : IN std_logic;
prfrence loprateur + des bibliothques IEEE. La Cout : OUT std_logic;
S : OUT std_logic_vector (3 DOWNTO 0));
bibliothque std_logic_arith autorise les oprations avec END add4_op ;
des oprandes de type std_logic_vector. ARCHITECTURE synth OF add4_op IS
signal S_int : std_logic_vector (4 DOWNTO 0);
Limplmentation de ladditionneur est ainsi optimise en BEGIN
fonction du type de FPGA. S_int <= ('0' & A) + ('0' & B) + ("0000" & CIn);
S <= S_int(3 DOWNTO 0);
COut <= S_int(4);
END synth;

19 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 20 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03
Simulation et synthse Synthse: Schma gnr

Question 3:
Ecrire le programme VHDL prcdent dans un fichier Leonardo a reconnu dans le code VHDL un module
Add4_op.vhd. additionneur, plutt quun schma structurel.
Lancer une simulation et vrifier que le comportement est
identique la solution des additionneurs complets en cascade en
analysant notamment leffet de Cin et la valeur de Cout.
Lancer une synthse. Observer le schma gnr et la fentre
Information qui donne la valeur du chemin critique.
Les transparents suivants prsentent le rsultat que vous
devriez obtenir.

21 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03 22 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03

Synthse: chemin critique

utilisation
du FPGA:
=> 6 LCs

Chemin
critique:
7,08 ns

23 ArchOrd(I) Add 4-bits EPFL 2002 25.08.03

Vous aimerez peut-être aussi