Esercitazioni pratiche di elettronica/Logica Combinatoria/Il decodificatore da BCD a 7 segmenti in VHDL
Il file VHDL
[modifica | modifica sorgente]Qui di seguito il contenuto di una file in linguaggio vhdl che realizza un decodificatore da BCD a 7 segmenti:
Clausola library
[modifica | modifica sorgente]library 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
[modifica | modifica sorgente]entity decBCD7seg is
Port ( d : in std_logic_vector(3 downto 0); disp : out std_logic_vector(6 downto 0));
end decBCD7seg;
Clausola architecture
[modifica | modifica sorgente]architecture 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
[modifica | modifica sorgente]1- Creare un nuovo sorgente come VHDL Module
[modifica | modifica sorgente]2- Compilare e se non ci sono errori
[modifica | modifica sorgente]3- Lanciare il processo Create Schematic Symbol
[modifica | modifica sorgente]Ottenendo così il nostro blocco di logica combinatoria pronto per essere inserito in un altro schema.
Schema ottenuto dal processo Create Schematic Symbol
[modifica | modifica sorgente]Simulazione del decodificatore
[modifica | modifica sorgente]NB:
disp[6] corrisponde al segmento A del display
e così via...fino a
disp[0] che corrisponde al segmento G del display