Esercitazioni pratiche di elettronica/Logica Combinatoria/Il decodificatore da BCD a 7 segmenti in VHDL
Il file VHDL
modificaQui di seguito il contenuto di una file in linguaggio vhdl che realizza un decodificatore da BCD a 7 segmenti:
Clausola library
modificalibrary IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all;
Clausola entity
modificaentity decBCD7seg is
Port ( d : in std_logic_vector(3 downto 0); disp : out std_logic_vector(6 downto 0));
end decBCD7seg;
Clausola architecture
modificaarchitecture Behavioral of decBCD7seg is
begin process(d) begin
case d is when "0000" => disp <= "1111110"; when "0001" => disp <= "0110000"; when "0010" => disp <= "1101101"; when "0011" => disp <= "1111001"; when "0100" => disp <= "0110011"; when "0101" => disp <= "1011011"; when "0110" => disp <= "1011111"; when "0111" => disp <= "1110000"; when "1000" => disp <= "1111111"; when "1001" => disp <= "1111011"; when others => disp <= "0000000"; end case;
end process;
end Behavioral;
Da cui si evince la relativa facilità di realizzazione di un hardware, se comparata con l'implementazione dello stesso fatta utilizzando blocchi schematici.
Procedura
modifica1- Creare un nuovo sorgente come VHDL Module
modifica2- Compilare e se non ci sono errori
modifica3- Lanciare il processo Create Schematic Symbol
modificaOttenendo così il nostro blocco di logica combinatoria pronto per essere inserito in un altro schema.
Schema ottenuto dal processo Create Schematic Symbol
modificaSimulazione del decodificatore
modificaNB:
disp[6] corrisponde al segmento A del display
e così via...fino a
disp[0] che corrisponde al segmento G del display