Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TRIESTADO
El objetivo es crear una puerta que tenga una señal de operación la cual, a estado alto,
habilite la salida, por lo tanto el valor de la entrada pasará a la salida. Cuando la señal de
operación esté a nivel bajo la puerta no sacará una señal, es decir, estará en alta impedancia.
Entradas:
o entrada: entrada de datos.
o op: señal que indica el modo de funcionar de la puerta.
Salidas:
o salida: salida de datos.
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
ENTITY triestado IS
PORT(op, entrada: IN std_logic;
salida: OUT std_logic);
END triestado;
El objetivo es crear un sistema que devuelva un valor dependiente de otra señal de entrada, la
cual será la encargada de seleccionar la salida. Además, se definirán varias entradas de datos
que actuarán como salidas. Cuando la señal de selección este a cero no se producirá ninguna
salida, es decir el valor será cero.
Entradas:
o a, b, c: entradas de datos.
o sel: señal que indica la señal que va a ser devuelta.
Salidas:
o salida: salida de datos.
library IEEE;
use IEEE.STD_LOGIC_1164.all;
ENTITY mux IS
PORT(a : IN std_logic_vector(3 DOWNTO 0);
b : IN std_logic_vector(3 DOWNTO 0);
c : IN std_logic_vector(3 DOWNTO 0);
sel : IN std_logic_vector(1 DOWNTO 0);
salida : OUT std_logic_vector(3 DOWNTO 0));
END mux;
ARCHITECTURE synth OF mux IS
BEGIN
PROCESS (sel, a, b, c) IS
BEGIN
CASE sel IS
WHEN "00" => salida <= (others => '0');
WHEN "01" => salida <= a;
WHEN "10" => salida <= b;
WHEN "11" => salida <= c;
WHEN OTHERS => salida <= (others => '0');
END CASE;
END PROCESS;
END synth;
SUMADOR
El objetivo es crear un sumador que dadas dos entradas de datos devuelva la suma de estos.
Entradas:
o a: operando 1.
o b: operando 2.
Salidas:
o salida: suma de las entradas.
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
ENTITY sum IS
PORT (a : IN std_logic_vector(3 DOWNTO 0);
b : IN std_logic_vector(3 DOWNTO 0);
salida : OUT std_logic_vector(4 DOWNTO 0));
END sum;
PROCESS (a, b) IS
BEGIN
salida <= std_logic_vector('0' & UNSIGNED(a) + UNSIGNED(b));
-- concatenar un cero para que las dimensiones de la suma de los
vectores coincidan
END PROCESS;
END synth;
CONTADOR
El objetivo es crear un contador con reset asíncrono, señal de habilitación y salida con un
número de bits configurable, con la siguiente definición de interfaz:
Entradas:
o reset: Reset del sistema.
o clk: Reloj del sistema.
o enable: Activación-Desactivación del contador.
Salidas:
o count: Salida del contador.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;
USE IEEE.NUMERIC_STD.all;
ENTITY count IS
GENERIC (width:POSITIVE:=8);
PORT (clk : IN std_logic;
reset : IN std_logic;
enable: IN std_logic;
count : OUT std_logic_vector(width-1 DOWNTO 0)
);
END count;
BEGIN
END arch1;
Biestable - Latch
Entradas:
o rst: Reset del sistema.
o clk: Reloj del sistema.
o a: Entrada de datos.
Salidas:
o b: Salida de datos.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;
ENTITY biestable IS
PORT (clk : IN std_logic;
rst : IN std_logic;
a : IN std_logic_vector(31 DOWNTO 0);
b: OUT std_logic_vector(31 DOWNTO 0));
END biestable;
END synth;
MÁQUINAS DE ESTADOS
El objetivo es crear un sistema que genere unas salidas determinadas, dependiendo de los
estados por donde va fluyendo la ruta de datos. Por consiguiente, hará falta el reset y reloj del
sistema como entradas del sistema. También se añade una señal para sacar el estado al
exterior.
Entradas:
o rst: Reset del sistema.
o clk: Reloj del sistema.
Salidas:
o a: Salida de datos.
o b: Salida de datos.
o estado: Salida del estado.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY maquina_estados IS
PORT (clk : IN std_logic;
rst : IN std_logic;
a : OUT std_logic;
b : OUT std_logic;
estado : OUT std_logic_vector(3 downto 0));
END maquina_estados;
-- maquina de estados
END synth;
ALU – UNIDAD ARITMETICOLÓGICA
El objetivo es crear un dispositivo capaz de realizar cualquier operación dependiendo del valor
de una señal de entrada, además se dispondrá de dos entradas de datos.
Entradas:
o a: Entrada de datos 1.
o b: Entrada de datos 2.
o proceso: Entrada de la operación.
Salidas:
o c: Salida de datos.
LIBRARY ieee;
USE IEEE.STD_LOGIC_1164.all;
USE IEEE.NUMERIC_STD.all;
ENTITY alu IS
PORT(op1 : IN std_logic_vector(7 DOWNTO 0);--entrada 1
op2 : IN std_logic_vector(7 DOWNTO 0);--entrada 2
proceso : IN std_logic_vector(3 DOWNTO 0);--que hara la alu
res : OUT std_logic_vector(15 DOWNTO 0));
END alu;
a <= UNSIGNED(op1);
b <= UNSIGNED(op2);
res <= std_logic_vector(c);
END synth;