Correction VHDL Exercices
Correction VHDL Exercices
On veut réaliser un montage permettant d’effectuer l’addition ou la soustraction sur 1 bit avec
retenue entrante et sortante.
library ieee;
use ieee.std_logic_1164.all;
Entity Demi_additionneur is
Port ( Ai : in std_logic ;
Bi : in std_logic ;
Ci : out std_logic;
Si : out std_logic);
end Demi_additionneur;
library ieee;
use ieee.std_logic_1164.all;
Entity Full_additionneur is
Port ( Ai : in std_logic ;
Bi : in std_logic ;
Ci_1 : in std_logic;
Ci : out std_logic;
Si : out std_logic);
end Full_additionneur;
library ieee;
use ieee.std_logic_1164.all;
Entity Full_additionneur is
Port ( Ai : in std_logic ;
Bi : in std_logic ;
Ci_1 : in std_logic;
Ci : out std_logic;
Si : out std_logic);
end Full_additionneur;
library ieee;
use ieee.std_logic_1164.all;
Entity Demi_soustracteur is
Port ( Ai : in std_logic ;
Bi : in std_logic ;
Ci : out std_logic;
Si : out std_logic);
end Demi_soustracteur;
library ieee;
use ieee.std_logic_1164.all;
Entity Full_soustracteur is
Port ( A : in std_logic ;
B : in std_logic ;
bi : in std_logic;
b : out std_logic;
S : out std_logic);
end Full_soustracteur;
Entity Full_soustracteur is
Port ( A : in std_logic ;
B : in std_logic ;
C_1 : in std_logic;
C : out std_logic;
S : out std_logic);
end Full_soustracteur;
library ieee;
use ieee.std_logic_1164.all;
Entity Full_soustracteur is
Port ( A1 : in std_logic ;
B1 : in std_logic ;
M : in std_logic;
C1 : out std_logic;
S1 : out std_logic);
end Full_soustracteur;
architecture arch of Full_soustracteur is
Component Full_additionneur is
Port ( Ai : in std_logic ;
Bi : in std_logic ;
Ci_1 : in std_logic;
Ci : out std_logic;
Si : out std_logic);
end Component Full_additionneur;
Signal sig1 : std_logic ;
Begin
U1 : Full_additionneur port map (A1, sig1, M, C1, S1);
sig1 <= B1 XOR M ;
End arch;
C. Soustraction 4 bits.
library ieee;
use ieee.std_logic_1164.all;
library ieee;
use ieee.std_logic_1164.all;
Entity Full_additionneur_TB is
end Full_additionneur_TB;
Exercice 2 :
Ecrire les circuits combinatoires réalisant les fonctions logiques précédentes utilisant un
design à base de langage de description VHDL.
Entity MUX_2_1 is
Port ( E0 : in std_logic ;
E1 : in std_logic ;
S0 : in std_logic ;
Y : out std_logic);
end MUX_2_1;
library ieee;
use ieee.std_logic_1164.all;
Entity MUX_4_1 is
Port ( E0 : in std_logic ;
E1 : in std_logic ;
E2 : in std_logic ;
E3 : in std_logic ;
S0, S1 : in std_logic ;
Q : out std_logic);
end MUX_4_1;
library ieee;
use ieee.std_logic_1164.all;
Entity Encodeur_8_1 is
Port ( E : in std_logic_vector (7 downto 0) ;
Q : out std_logic_vector (3 downto 0));
end Encodeur_8_1;