Documentos de Académico
Documentos de Profesional
Documentos de Cultura
secuenciales
Sentencia de asignación simple de señal
Sentencia de asignación condicional de señal
Sentencia de asignación con selección de señal
Sentencia de asignación condicional vs. sentencia con selección de señal
Jorge Scandaliaris
2012-06-11
Circuitos combinacionales:
No tiene estado interno
Circuitos secuenciales
Tienen estado interno
Ejemplo:
y <= a + b + 1 after 10 ns;
Ejemplos
1 status <= ’1’
par <= (p1 and p2) or (p3 or p4);
3 arith_result <= a + b + c -1;
Sintácticamente correcta
Sintaxis
Sintaxis simplificada:
1 nombre_de_señal <= expr_valor_1 when expr_booleana_1 else
expr_valor_2 when expr_booleana_2 else
3 expr_valor_3 when expr_booleana_3 else
...
5 expr_valor_n
Ejemplo: multiplexor de 4 a 1
Tabla de función:
entrada salida
s x
00 a
01 b
10 c
11 d
Ejemplo: multiplexor de 4 a 1
1 library ieee;
use ieee.std_logic_1164.all;
3 entity mux4 is
port(
5 a,b,c,d: in std_logic_vector(7 downto 0);
s: in std_logic_vector(1 downto 0);
7 x: out std_logic_vector(7 downto 0)
);
9 end mux4;
Tabla de función:
entrada salida
r código activo
1--- 11 1
01-- 10 1
001- 01 1
0001 00 1
0000 00 0
Implementación conceptual
Sintaxis:
nombre_de_señal <=
2 expr_valor_1 when expr_booleana_1 else
expr_valor_2 when expr_booleana_2 else
4 ...
expr_valor_n;
Multiplexor “abstracto” de 2 a 1
Implementación conceptual
1 nombre_de_señal <= expr_valor_1 when expr_booleana_1 else
expr_valor_2;
Implementación conceptual
nombre_de_señal <= expr_valor_1 when expr_booleana_1 else
2 expr_valor_2 when expr_booleana_2 else
expr_valor_3 when expr_booleana_3 else
4 expr_valor_4;
Implementación conceptual
Sintaxis
Sintaxis simplificada
1 with expr_seleccion select
nombre_de_señal <= expr_valor_1 when opcion_1,
3 expr_valor_2 when opcion_2,
...
5 expr_valor_n when opcion_n;
Sintaxis
expr_seleccion
Arreglo unidimensional de tipo discreto
opcion_i
Un valor del tipo de dato de expr_seleccion
Ejemplo: multiplexor de 4 a 1
1 architecture sel_arch of mux4 is
begin
3 with s select
x <= a when "00",
5 b when "01",
b when "10",
7 d when others;
end sel_arch;
Implementación conceptual
Basada en un circuito
multiplexor
Multiplexor abstracto de
(k+1) a 1
sel puede tomar (k+1)
valores: c0, c1, c2, ...,
ck
7 sig <=
expr_valor_0 when (sel=c0) else
9 expr_valor_1 when (sel=c1) or (sel=c3) or (sel=c5) else
expr_valor_2 when (sel=c2) or (sel=c4) else
11 expr_valor_n;
Comparación
Comparación
Comparación