Oscar Ignacio Botero Henao. Contadores. CONTADORES CON

Anuncio
Oscar Ignacio Botero Henao.
Contadores.
CONTADORES CON XILINX
----------------------------------------------------------------------------------------------- CONTADOR ASCEDENTE DE 4 BIT´S CON SALIDAS BINARIAS
---------------------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
CLK
SALIDA 0
?
SALIDA 2
SALIDA 3
COUNT_INT
entity Contador_bin is
Port ( CLK : in STD_LOGIC;
SALIDAS : out STD_LOGIC_VECTOR (3 downto 0));
end Contador_bin;
architecture Comportamiento of Contador_bin is
signal COUNT_INT : STD_LOGIC_VECTOR(3 downto 0) := "0000";
begin
SEQ: process (CLK)
Begin
if CLK ='1' and CLK'event then
COUNT_INT <= COUNT_INT + 1;
else
COUNT_INT <= COUNT_INT;
end if;
end process SEQ;
SALIDAS <= COUNT_INT;
end Comportamiento;
SALIDA 1
-- Reloj manual
-- Vector de 4 salidas Binarias
-- Señal COUNT_INT e inicializado en 0
-- Comienza
-- Proceso de la Secuencia SEQ
-- Comienza
-- Si hay evento y flanco positivo
-- Incremente COUNT_INT
-- Si no
-- Quédese ahí
-- Fin si
-- Fin del proceso SEQ
-- Lleve COUNT_INT a las SALIDAS
-- Fin de la arquitectura
Oscar Ignacio Botero Henao. 2
Contadores.
------------------------------------------------------------------------------------------------------------ CONTADOR ASCEDENTE DE 4 BIT´S CON SALIDAS BINARIAS Y RESET
----------------------------------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
CLK
SALIDA 0
?
SALIDA 1
SALIDA 2
SALIDA 3
entity Contador_bin1 is
Port ( CLK : in STD_LOGIC;
RESET : in STD_LOGIC;
SALIDAS : out STD_LOGIC_VECTOR (3 downto 0));
end Contador_bin1;
COUNT_INT
-- Reloj manual
-- Reset del sistema
-- Vector de 4 salidas Binarias
architecture Comportamiento of Contador_bin1 is
signal COUNT_INT : STD_LOGIC_VECTOR(3 downto 0) := "0000";
begin
SEQ: process (CLK, RESET)
Begin
if RESET='0' then
COUNT_INT <= "0000";
else
if CLK ='1' and CLK'event then
COUNT_INT <= COUNT_INT + 1;
else
COUNT_INT <= COUNT_INT;
end if;
end if;
end process SEQ;
SALIDAS <= COUNT_INT;
end Comportamiento;
RESET
-- Señal COUNT_INT e inicializado en 0
-- Comienza
-- Proceso de la Secuencia SEQ
-- Comienza
-- Si RESET=0, entonces
-- Lleve 0 al COUNT_INT
-- Si no
-- Si hay evento y flanco positivo
-- Incremente COUNT_INT
-- Si no
-- Quédese ahí
-- Fin si
-- Fin si
-- Fin del proceso SEQ
-- Lleve COUNT_INT a las SALIDAS
-- Fin de la arquitectura
Oscar Ignacio Botero Henao. 3
Contadores.
----------------------------------------------------------------------- CONTADOR DE DECADA CON SALIDAS BCD
---------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
CLK
SALIDA 0
?
SALIDA 2
U_D
entity Contador_BCD is
Port ( CLK : in STD_LOGIC;
SALIDAS : out STD_LOGIC_VECTOR (3 downto 0));
end Contador_BCD;
architecture Comportamiento of Contador_BCD is
signal COUNT_INT : STD_LOGIC_VECTOR(3 downto 0) := "0000";
begin
SEQ: process (CLK)
Begin
If CLK ='1' and CLK'event then
COUNT_INT <= COUNT_INT + 1;
If COUNT_INT = "1001" then
COUNT_INT <= "0000";
Else
End if;
Else
COUNT_INT <= COUNT_INT;
End if;
End process SEQ;
SALIDAS <= COUNT_INT;
End Comportamiento;
SALIDA 1
COUNT_INT
-- Reloj manual
-- Vector de 4 salidas BCD
RESET
-- Contador interno, inicializado
-- Comienza
-- Proceso de la SECUENCIA
-- Comienza
-- Si hay evento del CLK y flanco positivo, entonces
-- Incremente COUNT_INT y llévelo a COUNT_INT
-- Si COUNT_INT es =10, entonces
-- Lleve "0000" a COUNT_INT
-- Si no
-- Fin si
-- Si no
-- Lleve COUNT_INT a COUNT_INT, quédese ahí
-- Fin si
-- Fin del proceso SECUENCIAL
-- Lleve COUNT_INT a las SALIDAS
-- Fin de la arquitectura
SALIDA 3
Oscar Ignacio Botero Henao. 4
Contadores.
----------------------------------------------------------------------------------- CONTADOR DE DECADA CON SALIDAS BCD Y RESET
---------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
CLK
SALIDA 0
?
SALIDA 2
U_D
entity Contador_BCD1 is
Port ( CLK : in STD_LOGIC;
RESET : in STD_LOGIC;
SALIDAS : out STD_LOGIC_VECTOR (3 downto 0));
end Contador_BCD1;
SALIDA 1
COUNT_INT
-- Reloj manual
-- Reset del sistema
-- Vector de 4 salidas BCD
SALIDA 3
RESET
architecture Comportamiento of Contador_BCD1 is
signal COUNT_INT : STD_LOGIC_VECTOR(3 downto 0) := "0000";
-- Contador interno, inicializado
begin
-- Comienza
SEQ: process (CLK, RESET)
-- Proceso de la SECUENCIA
Begin
-- Comienza
If RESET='0' then
-- Si RESET=0, entonces
COUNT_INT <= "0000";
-- Lleve 0 al COUNT_INT
Else
-- Si no
If CLK ='1' and CLK'event then
-- Si hay evento del CLK y flanco positivo, entonces
COUNT_INT <= COUNT_INT + 1; -- Incremente COUNT_INT y llévelo a COUNT_INT
If COUNT_INT = "1001" then -- Si COUNT_INT es =10, entonces
COUNT_INT <= "0000";
-- Lleve "0000" a COUNT_INT
Else
-- Si no
End if;
-- Fin si
Else
-- Si no
COUNT_INT <= COUNT_INT;
-- Lleve COUNT_INT a COUNT_INT
End if;
-- Fin si
End if;
-- Fin si
End process SEQ;
-- Fin del proceso SECUENCIAL
SALIDAS <= COUNT_INT;
-- Lleve COUNT_INT a las SALIDAS
end Comportamiento;
-- Fin de la arquitectura
Oscar Ignacio Botero Henao. 5
Contadores.
----------------------------------------------------------------------------------------------- CONTADOR UP/DOWN CON SALIDA BINARIA DE 4 BIT´S (0-15)
----------------------------------------------------------------------------------------------- Entrada U_D: con '1' UP y con '0' DOWN
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Contador_ud is
Port ( CLK : in STD_LOGIC;
U_D : in STD_LOGIC;
SALIDAS : out STD_LOGIC_VECTOR (3 downto 0));
end Contador_ud;
CLK
SALIDA 0
?
SALIDA 1
SALIDA 2
U_D
COUNT_INT
SALIDA 3
-- Reloj manual
-- Selector Up/Down
-- Vector 4 salidas
architecture Comportamiento of Contador_ud is
signal COUNT_INT : STD_LOGIC_VECTOR(3 downto 0) := "0000";
-- Vector Contador Interno con inicialización en 0000
Begin
-- Comienza
SEQ: process (CLK)
-- Lista de sensibilidad, Proceso SEQ
Begin
-- Comienza
If CLK ='1' and CLK'event then
-- Si hay Evento y CLK está en 1, entonces
If U_D ='1' then
-- Si el selector U/D es = 1, entonces
COUNT_INT <= COUNT_INT + 1; -- Incremente el COUNT_INT y llévelo a COUNT_INT
else
-- Si no
COUNT_INT <= COUNT_INT - 1; -- Decremente el COUNT_INT y llévelo a COUNT_INT
end if;
-- Fin si
end if;
-- Fin si
end process SEQ;
-- Fin del proceso SEQ
SALIDAS <= COUNT_INT;
-- Lleve los datos de COUNT_INT a las SALIDAS
end Comportamiento;
-- Fin de la arquitectura
Oscar Ignacio Botero Henao. 6
Contadores.
----------------------------------------------------------------------------------------------------------------- CONTADOR UP/DOWN CON SALIDA BINARIA DE 4 BIT´S (0-15) CON RESET
----------------------------------------------------------------------------------------------------------------- Entrada U_D: con '1' UP y con '0' DOWN
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
CLK
SALIDA 0
?
SALIDA 1
SALIDA 2
U_D
COUNT_INT
SALIDA 3
entity Contador_ud1 is
RESET
Port ( CLK : in STD_LOGIC;
-- Reloj manual
U_D : in STD_LOGIC;
-- Selector Up/Down
RESET : in STD_LOGIC;
-- Reset del sistema
SALIDAS : out STD_LOGIC_VECTOR (3 downto 0));
-- Vector 4 salidas
end Contador_ud1;
architecture Comportamiento of Contador_ud1 is
signal COUNT_INT : STD_LOGIC_VECTOR(3 downto 0) := "0000";
-- Vector Contador Interno con inicialización en 0000
begin
-- Comienza
SEQ: process (CLK, RESET)
-- Lista de sensibilidad, Proceso SEQ
Begin
-- Comienza
If RESET='0' then
-- Si RESET=0, entonces
COUNT_INT <= "0000";
-- Lleve 0 al COUNT_INT
Else
-- Si no
if CLK ='1' and CLK'event then
-- Si hay Evento y CLK está en 1, entonces
if U_D ='1' then
-- Si el selector U/D es = 1, entonces
COUNT_INT <= COUNT_INT + 1; -- Incremente el COUNT_INT y llévelo a COUNT_INT
else
-- Si no
COUNT_INT <= COUNT_INT - 1; -- Decremente el COUNT_INT y llévelo a COUNT_INT
end if;
-- Fin si
end if;
-- Fin si
end if;
-- Fin si
end process SEQ;
-- Fin del proceso SEQ
SALIDAS <= COUNT_INT;
-- Lleve los datos de COUNT_INT a las SALIDAS
end Comportamiento;
-- Fin de la arquitectura
Oscar Ignacio Botero Henao. 7
Contadores.
--------------------------------------------------------------------------------------------------------------------------- CONTADOR UP/DOWN CON SALIDA BINARIA DE 4 BIT´S (0-15) CON SET Y RESET
--------------------------------------------------------------------------------------------------------------------------- Entrada U_D: con '1' UP y con '0' DOWN
-- Con RESET=1 las salidas se ponen todas en 0 (0 decimal)
CLK
-- Con SET=1 las salidas se ponen todas en 1 (15 decimal)
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
SET
SALIDA 0
?
SALIDA 2
U_D
COUNT_INT
entity Contador_ud2 is
Port ( CLK : in STD_LOGIC;
RESET : in STD_LOGIC;
SET : in STD_LOGIC;
U_D : in STD_LOGIC;
SALIDAS : out STD_LOGIC_VECTOR (3 downto 0));
end Contador_ud2;
SALIDA 1
-- Reloj manual
-- Reset del sistema
-- Set
-- Selector Up/Down
-- Vector 4 salidas
SALIDA 3
RESET
architecture Comportamiento of Contador_ud2 is
signal COUNT_INT : STD_LOGIC_VECTOR(3 downto 0) := "0000";
-- Vector Contador Interno con inicialización en 0000
Begin
-- Comienza
SEQ: process (CLK, SET, RESET)
-- Lista de sensibilidad, Proceso SEQ
Begin
-- Comienza
if CLK ='1' and CLK'event then
-- Si hay Evento y CLK está en 1, entonces
if U_D ='1' then
-- Si el selector U/D es = 1, entonces
COUNT_INT <= COUNT_INT + 1;
-- Incremente el COUNT_INT y llévelo a COUNT_INT
if SET='1' then
-- Si SET=1, entonces
COUNT_INT <= "1111";
-- Lleve el 15 decimal al COUNT_INT
else
-- Si no
end if;
-- Fin si
else
-- Si no
COUNT_INT <= COUNT_INT - 1; -- Decremente el COUNT_INT y llévelo a COUNT_INT
Oscar Ignacio Botero Henao. 8
Contadores.
if RESET='1' then
COUNT_INT <="0000";
else
end if;
end if;
end if;
end process SEQ;
SALIDAS <= COUNT_INT;
end Comportamiento;
-- Si RESET=1, entonces
-- Lleve el 15 decimal al COUNT_INT
-- Si no
-- Fin si
-- Fin si
-- Fin si
-- Fin del proceso SEQ
-- Lleve los datos de COUNT_INT a las SALIDAS
-- Fin de la arquitectura
Descargar