Circuitos Combinacionales VHDL
Circuitos Combinacionales VHDL
Circuitos Combinacionales VHDL
CIRCUITOS
COMBINACIONALES
No importa
p el orden como se escriban las
señales
TIPOS DE DECLARACIONES
CONCURRENTES
1
1. Declaraciones condicionales asignadas a una
señal (when - else).
4. Instrucciones Generate
DECLARACIÓN CONDICIONAL
ASIGNADA A UNA SEÑAL
Declaración
D l ió (when
( h - else):
l ) se utiliza
tili para asignar
i
valores a una señal determinando así la función del
circuito.
circuito
-- Sintaxis:
signal
g _name <= expression
p WHEN logic
g _expression
p ELSE
.
.
.
{expression WHEN logic_expression ELSE}
expression;
Ejemplo de asignación de señal
simple
Utilizando la tabla de verdad que describe el
comportamiento
i d l circuito,
del i i es posible
ibl
determinar la salida en función de las entradas
library ieee;
use ieee.std_logic_1164.all;
Begin
a) Instrucción IF
b) Instrucción CASE
c)) Instrucción
I t ió LOOP
DEFINICIÓN DE UN PROCESO
(PROCESS)
Permite separar asignaciones concurrentes de
l secuenciales
las i l
[VARIABLE declarations]
BEGIN
-- Sintaxis:
IF expression THEN
statement;
Ejemplo
j p de MUX 2-1:
{statement;}
IF s = '1' THEN
ELSIF expression THEN
sal <= a;
statement;
ELSE
{statement;}
sal <= b;
END IF;
ELSE
statement;
{statement;}
END IF;
INSTRUCCIÓN CASE
-- Sintaxis:
CASE expression IS
Ejemplo
j p de MUX 2-1:
WHEN constant_value
constant value =>
statement;
CASE s IS
{statement;}
WHEN ’0' =>
WHEN constant_value
constant value =>
s <= a;
statement;
WHEN OTHERS =>
{statement;}
s <= b;
END CASE;;
WHEN OTHERS =>
statement;
{statement;}
END CASE;
INSTRUCCIÓN LOOP
Library ieee;
use ieee.std_logic_1164.all;
Entity
y multiplexor1
p is
port ( sel : in std_logic;
a : in std_logic_vector ( 3 downto 0 );
b : in std_logic_vector ( 3 downto 0 );
c : out std_logic_vector ( 3 downto 0));
end multiplexor1;
library ieee;
use ieee.std_logic_1164.all;
entity decoder is
port ( q1 : in std_logic_vector ( 1 downto 0 );
q2 : out std_logic
q g _vector ( 3 downto 0 ));
end decoder;
Library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_signed.all;
Entity su_res is
port (x : in std_logic_vector (3 downto 0);
y : in std_logic_vector
std logic vector (3 downto 0);
s : out std_logic_vector (4 downto 0);
sel : in std_logic );
end su_res;