Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DIGITAL APLICADA
2
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
INDICE
No se encuentran entradas de índice.
Contenido
PRESENTACIÓN ............................................................................................................ 5
ORIENTACIONES PARA EL USO DE LA GUÍA DE ESTUDIOS ............................. 6
Unidad Didáctica I .......................................................................................................... 8
Los dispositivos lógicos de última generación y el lenguaje descriptor de
hardware.......................................................................................................................... 8
Introducción de la Unidad Didáctica I: .................................................................... 8
Objetivo de la Unidad Didáctica I: ........................................................................... 8
Actividades de aprendizaje de la Unidad Didáctica I: .......................................... 9
Actividad de Aprendizaje 1 de la Unidad Didáctica I: ............................................. 9
Actividad de Aprendizaje 2 de la Unidad Didáctica I: ........................................... 10
Actividad de Aprendizaje 3 de la Unidad Didáctica I: ........................................... 14
Actividad de Aprendizaje 4 de la Unidad Didáctica I: ........................................... 15
Actividad de Aprendizaje 5 de la Unidad Didáctica I: ........................................ 16
Resumen ................................................................................................................... 26
Actividades de Auto-evaluación de la Unidad Didáctica I: ................................ 27
Actividad de Evaluación de la Unidad Didáctica I: ............................................. 28
Unidad Didáctica II ....................................................................................................... 30
Lógica combinacional mediante VHDL .................................................................... 30
Introducción de la Unidad Didáctica II: ................................................................. 30
Objetivo de la Unidad Didáctica II: ........................................................................ 30
Actividades de aprendizaje de la Unidad Didáctica II: ....................................... 31
Actividad de Aprendizaje 1 de la Unidad Didáctica II: .......................................... 31
Actividad de Aprendizaje 2 de la Unidad Didáctica II: .......................................... 40
Actividad de Aprendizaje 3 de la Unidad Didáctica II: .......................................... 44
Resumen ................................................................................................................... 56
Actividades de Auto-evaluación de la Unidad Didáctica II: ............................... 57
Actividad de Evaluación de la Unidad Didáctica II: ............................................ 58
Unidad Didáctica 3 ....................................................................................................... 59
Lógica secuencial mediante VHDL ........................................................................... 59
Introducción de la Unidad Didáctica N: ................................................................ 59
3
Objetivo de la Unidad Didáctica N: ........................................................................... 59
Actividades de aprendizaje de la Unidad Didáctica III: ...................................... 60
Actividad de Aprendizaje 1 de la Unidad Didáctica III: ........................................ 60
Actividad de Aprendizaje 2 de la Unidad Didáctica III: ........................................ 61
Actividad de Aprendizaje 3 de la Unidad Didáctica III: ........................................ 65
Actividad de Aprendizaje 4 de la Unidad Didáctica III: ........................................ 70
Resumen ................................................................................................................... 76
Actividades de Auto-evaluación de la Unidad Didáctica N: .............................. 77
Actividad de Evaluación de la Unidad Didáctica N:............................................ 78
4
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
PRESENTACIÓN
Ante los cambio tecnológicos de la era actual y la implementación cada vez más
creciente de la automatización de sistemas inteligentes y sofisticados, se
presenta la necesidad de profundizar en los estudiantes sobre el estudios de
electrónica digital aplicada, sistemas embebidos que permiten el control digital
de sistemas basados en programación VHDL.
5
ORIENTACIONES PARA EL USO DE LA GUÍA DE
ESTUDIOS
Antes de empezar con nuestro estudio, debes tomar en cuenta lo siguiente:
Imagen Significado
Sugerencia
Talleres
Reflexión
6
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Apunte clave
Foro
Resumen
Evaluación
7
DESARROLLO DE ACTIVIDADES
Unidad Didáctica I
Los dispositivos lógicos de última generación y el lenguaje descriptor de
hardware
Los FPGA,
arutectura,
consideracion
es de diseño y
aplicaciones
VHDL para
síntesos y Lenguaje
UNIDAD 1 VHDL
simulación
Entidad y
arquitectura
8
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
9
Actividad de Aprendizaje 2 de la Unidad Didáctica I:
Los FPGA
La palabra FPGA se debe a las siglas en inglés de “Fiel Programmable Gate
Array”, que quiere decir, arreglo de compuertas lógicas programables en sitio.
Por lo cual se define a una FPGA como un circuito integrado que consta una
gran matriz de compuertas que interconecten unas con otras por medio de
claves programables.
10
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
11
c. Flash: Usa tecnología Flash para el almacenamiento de las
configuraciones de canales o líneas que conectan los bloques lógicos.
Tecnología de programación
Características Antifuse SRAM Flash
Reprogramable No Si Si
Memorias externa No Si No
Velocidad Rápido Lento Lento
Potencia Bueno Malo Mejor
Densidad Bueno Mejor Bueno
Toleración a ruido Mejor Malo Bueno
Ventajas de FPGA
Las FPGA han revolucionado el mercado y son ampliamente usadas en especial
para el campo de la electrónica de consumo, debido a las siguientes ventajas:
Procesamiento de información ráido
Costo bajo
Capacidad de reconfiguración en campo
Durabilidad larga
Flexibilidad
Posibilidad de reconfirmación de hardware
Procesamiento en paralelo
Versatilidad, etc.
12
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Consideraciones de diseño
Muchos FPGA emplean LUT de 4 entradas para implementar cualquier función
lógica, con el fin de mejorar las prestaciones de estos dispositivos se han
ampliado las rutas permitiendo LUT de 6, 7, incluso 8 entradas, cuya salida
estaba conectada a la entrada de un multiplexor. La salida del multiplexor
alimenta la entrada de un registro, mismo que se puede configura para que
funciones como un biestables.
Los FPGA son bloques de alta velocidad, que pueden soportan interfaces en el
orden de GB seriales. La estructura programable en una FPGA puede usarse
para implementar cualquier función digital, es decir, que es exclusivo para
procesamiento digital, presentando limitaciones en cuanto a circuitos analógicos.
Para lo cual va a tener entradas y salidas digitales que va a ser procesadas por
la placa.
Bloques de entrada: conformada por pulsadores e interruptores que
proporcionan las señales de entrada al circuito implementado.
Bloques de salida: conformado por led, display; los cuales permiten la
visualización de salidas luego de procesar las entradas.
Periféricos de Periféricos
FPGA
entrada de salida
13
Tarjeta entrenadora: Permite, comprobar el correcto funcionamiento de
los circuitos programados en lenguaje especial.
Características de VHDL
VHDL es un leguaje para diseño de circuitos digitales, por lo que presenta
limitaciones en el área analógica
La norma IESSS 1076 define estándares y síntesis de diseño, más no el
estilo.
No existe reconocimiento entre mayúsculas y minúsculas, es decir,
reconoce por igual a: HOLA u hola u HoLa.
Los comentarios se expresar mediante dos guiones el inicio (--)
Las líneas de instrucciones finalizan con un punto y como (;)
14
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Entidad de diseño
La entidad de diseño es la principal abstracción de hardware con el lenguaje
VHDL, permite presenta una porción del diseño de hardware que tiene entrada
y salidas definidas en el programa, puede expresar sistemas completos,
subsistemas, un marco de celda, una compuerta lógica, un biestable o cualquier
abstracción de la electrónica digital.
Entidad
Una entidad de diseño puede ser descrita en términos de un jerarquía de
bloques, cada uno de los cuales receta un porción del diseño completo, de
manera general es la sección del programa donde se van a realizar la
declaración de las variables definiendo su función (si es entrada o salida) así
como el tipo de datos que va a manejar (en función a norma IEEE 1076).
15
Figura 6: Declaración de entidad
Fuente: La autora
Arquitectura
La arquitectura es el cuerpo principal de programa, especifica las relaciones
entre las entradas y las salidas, esta expresada en términos de estructura, flujo
de datos o comportamental.
Tipos de datos
VHDL usa un conjunto limitado de datos, mismos que son suficientes para
diseñar los circuitos eléctricos digitales de alta complejidad, todos estos
definidos por el estándar IEEE 1076 y 1164.
Ante todo es importante conocer los tipos de objetos que maneja VHDL, mismos
que se pueden visualizar en la figura 8.
16
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Constantes
Tipos de Variables
Ficheros
objetos
Señales
Dentro de los tipos de datos predefinidos por el estándar IEEE para VHDL están:
Bit: Solo puede tomar valores de 0 ó 1 lógicos
Bit_vector: Consiste en una agrupación de tamaño definidos de bits
Integer: Toma valores números reales enteros, utilizados para índices de
loop, constantes, valores genéricos, entre otros.
Boolean: puede tomar valores de False o True
Enumerated: Enumeración de valores definidos previamente por el usuario.
Std_logic: Similar al bit, pero representan todos los posibles estados es un
señal, es un tipo de datos de estándar industrial.
Std_logic_vector: Es un arreglo o vector que consiste en una agrupación
de std_logic.
Std_ulogic y std_ulogic_vector: Esta función decide cual debe ser el valor
de la señal cuanto tiene dos fuentes de asignación diferentes; por ejemplo,
si una fuente asigna un 1 y la una un L, la función decide con qué valor se
queda.
17
Participación en foro de debate sobre FPGA y programación VHDL
Declaración de constantes
Las constantes son aquellos objetivos que mantiene el mismo valor del tipo de
datos especificado durante toda la ejecución del programa, la sintaxis usada en
VHDL es la siguiente.
Declaración de variables
Las variables son objetos que almacenan valores de tipo de dato especificado,
estos pueden tomar cualquier valor durante la ejecución del programa, se los
debe declarar al inicio del programa. No tienen significado físico directo. La
sintaxis para declaración de variables es la siguiente.
Declaración de señales
Las señales con aquellos objetivos que almacenan valores que pueden cambiar
durante la ejecución del programa con una repetición física, es decir, emiten un
estímulo eléctrico para que se conecten los diferentes componentes. Se declara
18
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Declaración de entidad
Una entidad es una parte de la estructura en la cual se especifican las señales y
entradas del programa, así como la definición del tipo de dato a usar, es decir,
define la interfaz entre una entidad de diseño y el entorno en el cual se usará.
Se emplea la siguiente sintaxis.
Declaración de arquitectura
La arquitectura constituye el cuerpo del programa mimo que está definido por la
entidad de diseño. Se coloca las instrucciones de las arquitectura luego de la
declaración de entidad, se especifican las operaciones, funciones o acciones que
se van a ejecutar, puede ser expresada en forma estructural, comportamental
o diagrama de flujo.
19
Fuente: La autora
Entre architecture y begin se declaran los objetos a usar en el programa ya
sean: constantes, variables o señales, seguidos del begin se escribe las
operaciones, cálculos o acciones que se van a desarrollar en función a las
entradas previamente establecidas para obtener las salidas deseadas. La
asignación de las salidas se realiza empleando el símbolo <=, tal y como se
muestra en la figura 13.
20
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Ejemplos
Library IEE
21
Existen dos posibles formar se trabajar con arreglos en VHDL, de forma
ascendente (valor mínimo to valor máximo) o de forma descendente (valor
máximo downto valor mínimo). Lo que cambia es la posición que va ir tomando
cada valor, por ejemplo si se tiene el siguiente vector arreglo1= {0 1 1 0 0} para
que tomen lo valores la misma posición descrita en la figura 16, se puede
declarar como:
Arreglo1 : std_logic_vector ( 4 downto 0) := “00110”
Arreglo1 : std_logic_vecto (0 to 4) := “01100”
Xilinx
Xilinx es una empresa especializada en la fabricación de placas FGPA, además
de eso licencia el código descriptor de Hardware, como ISE Design Suite, que
permite el diseño de circuitos lógicos.
22
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
23
4. Definir las entradas y salidas del circuito (representas los puertos que
conforman la entidad), luego dar clic en siguiente.
24
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Taller 2
25
Resumen
26
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
27
Actividad de Evaluación de la Unidad Didáctica I:
1. FGPA significa:
a. Fiel Programmable Gateway Array
b. Fiel Programmable Gate Access
c. Fear Programmable Gate Access
d. Ninguna de las anteriores
28
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
29
Unidad Didáctica II
Lógica combinacional mediante VHDL
Declaraciones
concurrentes
Diseño
jerárquico
simple
30
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
31
5. Desarrollar el programa en Xilinx
6. Simulación
32
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Ejemplo:
Realizar la implementación del circuito electrónico que se muestra en la figura
25 en una FPGA usando lenguaje descriptor de hardware.
--declaración de entidades
entity zoologico is
Port ( x,y,z : in STD_LOGIC;
a,b : out STD_LOGIC);
end zoologico;
-- arquitectura
architecture Behavioral of zoologico is
begin
33
Simulación
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY zoologico_tb IS
END zoologico_tb;
COMPONENT zoologico
PORT(
x : IN std_logic;
y : IN std_logic;
z : IN std_logic;
a : OUT std_logic;
b : OUT std_logic
);
END COMPONENT;
--Inputs
signal x : std_logic := '0';
signal y : std_logic := '0';
signal z : std_logic := '0';
--Outputs
signal a : std_logic;
signal b : std_logic;
-- No clocks detected in port list. Replace <clock> below with
-- appropriate port name
BEGIN
-- Stimulus process
stim_proc: process
begin
x<='1';
y<='1';
z<='1';
wait for 300 ms;
34
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
x<='1';
y<='1';
z<='0';
wait for 300 ms;
x<='0';
y<='1';
z<='0';
wait for 3000 ms;
x<='1';
y<='1';
z<='0';
wait for 3000 ms;
x<='1';
y<='1';
z<='1';
wait for 3000 ms;
end process;
END;
35
Desarrollo caso práctico 1
Preguntas.
Identificar las entradas y salidas del sistema
Elaborar la tabla de verdad
Simplificar el circuito empleando mapas de Karnaugh
Realizar el esquemático del circuito en el software Xilinx, añadir capturas de
pantalla
Realizar la simulación de esquemático en Xilinx, añadir capturas de pantalla
Realizar un video explicando el desarrollo del esquemático, incluir URL de
acceso
36
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Proceso
Un procesos es la principal sentencia concurrente que se usa en VHDL, los
procesos se definen siempre dentro de la arquitectura, se pueden declaran más
de un proceso y estos interactúan entre sí de forma concurrente.
Un proceso se ejecuta cuando cambia alguna de las señales que aparecen en la
lista de sensibilidad (las entradas sobre las cuales se presente generar un
evento) o cuando se da una condición por la que se está esperando mediante
WAIT.
Es preciso resaltar que los procesos son importantes, ya que sobre estos se
colocan las sentencias secuenciales. La sintaxis es la siguiente:
etiqueta_opcional : PROCESS (lista sensibilidad opcional)
declaraciones
BEGIN
sentencias secuenciales
END PROCESS etiqueta_opcional;
Ejemplo de proceso
Se presenta un ejemplo en VHDL empelando una estructura básica mediante
declaración concurrente con process.
37
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;
entity ejer2 is
Port ( a : in STD_LOGIC_VECTOR (0 to 3);
b : in STD_LOGIC_VECTOR (0 to 3);
x : in STD_LOGIC;
y : in STD_LOGIC;
c : out STD_LOGIC_VECTOR (0 to 3));
end ejer2;
Ejemplo
WAIT Equivalen
38
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
[rótulo:] asignaicón_señal_condicional
[rótulo:] asignaicón_señal_seleccionada
asiganción_señal_condicional::=
señal <= opciones de ondas
ondas_condionales:= {onda WHEN condición ELSE} onda
39
Figura 27: Ejemplo de asignación de señal condicional
Fuente: La autora
Sentencia IF
Este tipo de sentencia permite evaluar una condición, es decir, si cumple cierta
condición se ejecuta una acción, la sintaxis que usa en la siguiente, la sintaxis
que se usa es la siguiente:
if (condición) then
sentencias_secuenciales ;
{elsif (condición) then
sentencias_secuenciales}
else
sentencias_concurrentes
end if;
40
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
entity ejer2 is
Port ( a : in STD_LOGIC_VECTOR (0 to 3);
b : in STD_LOGIC_VECTOR (0 to 3);
x : in STD_LOGIC;
y : in STD_LOGIC;
c : out STD_LOGIC_VECTOR (0 to 3));
end ejer2;
41
Ejemplo de bicle for
PROCESS (a)
BEGIN
z <= "0000";
FOR i IN 0 TO 3 LOOP
IF (a = i) THEN
z(i) <= '1';
END IF;
END LOOP;
END PROCESS;
Sentencia CASE
Esta estructura selecciona un secuencia de sentencia en función del valor de
una expresión, generalmente se usa cuando se tiene varias condiciones a fin de
simplificar el código usando varias veces la estructura if, se emplea case. La
sintaxis es la siguiente:
CASE expresión IS
WHEN valor_1 =>
sentencias secuenciales
WHEN valor_2 =>
sentencias secuenciales
..............
WHEN valor_n =>
sentencias secuenciales
END CASE;
42
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
ENTITY mux IS
PORT(
seleccion : IN BIT_VECTOR (1 downto 0);
Entrada0, Entrada1, Entrada2, Entrada3 : IN BIT_VECTOR (0 to 7);
Salida : OUT BIT_VECTOR(0 to 7));
END mux;
P1 P2 P3 Display
0 0 0 “0”
0 0 1 “1”
0 1 0 “2”
0 1 1 “3”
1 0 0 “4”
1 0 1 “5”
1 1 0 “6”
1 1 1 “7”
Preguntas.
Realizar el programa VHDL empleando declaraciones secuenciales y concurrentes.
Desarrollar la simulación con test bench
Realizar el respectivo informe en el formato proporcionado al inicio del curso.
43
Actividad de Aprendizaje 3 de la Unidad Didáctica II:
44
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
entity componente1 is
Port ( a1 : in STD_LOGIC;
b1 : in STD_LOGIC;
s1 : out STD_LOGIC);
end componente1;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity componente2 is
Port ( a2 : in STD_LOGIC;
b2 : in STD_LOGIC;
s2 : out STD_LOGIC);
end componente2;
begin
s2 <= a2 or b2;
end Behavioral;
45
Componente 3: función (i1 AND i2) XOR
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity componente3 is
Port ( i1 : in STD_LOGIC;
i2 : in STD_LOGIC;
en : in STD_LOGIC;
s3 : out STD_LOGIC);
end componente3;
entity Alto_nivel is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
c : in STD_LOGIC;
sal : out STD_LOGIC);
end Alto_nivel;
COMPONENT componente1
PORT(
a1 : IN std_logic;
b1 : IN std_logic;
s1 : OUT std_logic
);
END COMPONENT;
COMPONENT componente2
PORT(
a2 : IN std_logic;
b2 : IN std_logic;
s2 : OUT std_logic
);
END COMPONENT;
COMPONENT componente3
PORT(
i1 : IN std_logic;
i2 : IN std_logic;
en : IN std_logic;
s3 : OUT std_logic
);
46
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
END COMPONENT;
Esquemático
47
Nota: En el programa VHDL para poder comprobar sintaxis de cada programa
se debe dar la opción de Set as Top Module.
Caso práctico
48
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Preguntas.
Realizar el programa VHDL de un sumador completo, empelando diseño
jerárquico
Desarrollar la simulación
Realizar el respectivo informe en el formato proporcionado al inicio del curso.
Elaborar un video de 2 0 4 min en el cual se evidencie el funcionamiento del
programa (Simulación e incluir el link en el respectivo informe de
presentación)
49
sistemas hexadecimal para que pueda entender la máquina, eso no
garantiza que las respuestas del diseño implementado sean las
esperadas).
4. Realizar la simulación para comprobar el correcto funcionamiento del
diseño digital, mediante el test bench (este paso es opcional, pero es
indispensable para corroborar el funcionamiento)
5. Cargar el programa en la placa FGPA.
Compilación
La compilación actúa como un traductor, si el código no compila de manera
exitosa o da errores el programa no puede ser cargado en la placa FPGA; si no
existe errores de sintaxis aparecer un visto en check sintaxis, tal y como se
muestra en la siguiente figura.
50
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Simulación de diseño
No es un requerimiento pero si se recomienda verificar el correcto
funcionamiento previo a la carga del código en una FPGA. Los pasos para la
son:
1. Dar click derecho sobre el nombre de programa y crear nueva fuente de
VHDL Test Bench y en nombre se recomendar dar el mismo sobre el cual se
requiere la simulación.
51
2. Se generar una ventana de edición, para visualizar dar click sobre la opción
simulación. Una vez ahí comentar todas las líneas de reloj y asignar valores
a las entradas.
3. Comprobar sintaxis y dar click sobre Simulate Behavioral; aparece una nueva
ventana donde se puede ver las salidas en estado de alto (1) o bajos 0.
52
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
53
Figura 37: Inicialización de diseño para carga en FPGA
Fuente: La autora
3. Seleccionar los GPIO para las entradas y salidas (los pines físicos que se van
a usar para conectar las elementos de entradas y salida en la FPGA)
54
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
55
Resumen
Los circuitos lógico combinaciones con aquellos cuyas salidas dependen
únicamente de las entradas, no capacidad de almacenar un bit y emplea
principalmente los puertas lógicas.
Dentro de las estructuras básicas para el diseño de circuitos electrónicos
digitales en VHDL son:
Estructura Sintaxis
Básicas Puertas lógicas And, or, xor, nand, not, nor
etiqueta_opcional : PROCESS
(lista sensibilidad opcional)
Declaraciones declaraciones
Procesos
concurrentes BEGIN
sentencias secuenciales
END PROCESS etiqueta_opcional;
if (condición) then
sentencias_secuenciales ;
{elsif (condición) then
IF sentencias_secuenciales}
else
sentencias_concurrentes
end if;
COMPONENT nombre-componente
PORT(
entradas : IN tipo_dato ;
Componentes
salidas : OUT tipo_dato
);
END COMPONENT;
56
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Inst_nombre-componente : nombre-
componente PORT MAP(
Diseño jerárquico Instancias Entrada_componte =>
entrada_programa
);
57
10. Para implementación de circuito en una placa FPGA no es necesario definir
los fines de las entradas y salidas.
a. Verdadero
b. Falso
Parte 1: Fundamentación
Desarrollo de cuestionario de temas estudiados en unidad didáctica 2
Parte 2: Práctica
Del problema dado realizar:
Unidad Didáctica 3
Lógica secuencial mediante VHDL
Características
del diseño
lógico
secuencial
Diseño de
sistemas Flip - Flops
embebidos
UNIDAD 3
Máquinas de Registros y
estado contadores
59
Actividades de aprendizaje de la Unidad Didáctica III:
60
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Los flip flops, o también conocidos como disponible biestables, son circuitos
integrados de tipo multivibrador y secuencial que pueden adquirir dos estados
de manera indefinida, a menos que exista una perturbación ya sea de origen
interno o externo. Estos elementos internamente están formados por
compuertas lógicas de tipo NAND y OR, se conectan entre sí, donde las salidas
realimenta a la entrada, tal y como se muestra en la siguiente imagen.
61
En el mercado existen diversos tipos de biestables, entre los más comerciales
se tiene:
Flip-Flop R-S
Flip-Flop D
Flip-Flop T
Flip-Flop J-K
Flip Flop T
Este tipo de flip-flop, se produce un cambio de estado mediante un pulso externo,
el cual se constituye como un ciclo de cero a uno de manera completo. Este
biestables pude emplearse como un complemento de reloj para otros modelos
de biestables.
62
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Flip Flop D
Es biestable tipo D se caracteriza por actuar como almacén, cuya que la salida
es exactamente igual a la entrada.
63
Figura 47: Flip Flop J-K
Fuente: http://hyperphysics.phy-astr.gsu.edu/hbasees/Electronic/jkflipflop.html
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity biestabled is
Port ( d : in STD_LOGIC;
clk : in STD_LOGIC;
qn : out STD_LOGIC;
q : out STD_LOGIC);
end biestabled;
begin
process(d, clk)
begin
if(clk'event and clk='1') then
q <=d;
qn <= not d;
end if;
end process;
end Behavioral;
64
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Existen varios tipos de registro entre los cuales destacan los siguientes:
Registros con carga en paralelo: Se caracterizas porque las entradas de cada
Flip-flop son independientes, pero se comparte la señal de habilitación.
65
Figura 49: Registro de corrimiento
Fuente: https://electrouni.files.wordpress.com/2010/08/registros.pdf
Ejemplo.
En el siguiente ejemplo se muestra un registro sencillo, en donde se depositaran
ciertos valores de 8 bits (se puede realizan de cualquier número), al son de tic
tac de las señales de reloj.
66
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity registro is
Port ( ent : in STD_LOGIC_VECTOR (7 to 0);
sal : out STD_LOGIC_VECTOR (7 to 0);
clk : in STD_LOGIC;
reset : in STD_LOGIC);
end registro;
end Behavioral;
Nota: La línea de condición del reloj también puede ser reemplaza por la
siguiente expresión, teniendo la misma validez, son alterar el funcionamiento del
programa VHDL.
If (rising_edge (clk)) then
Contadores
Los contadores digitales son circuitos que realizan el conteo ya sea de forma
ascendente o descendente entre un valor inicial y un final. Los contadores
contienen elementos de memoria que almacenan el valor de cada cuanta con el
son de tic tac del reloj.
67
Los circuitos contadores se usan principalmente para:
Realizar operaciones de suma, resta, en cada ciclo de reloj
Sistemas digitales para lleva la cuenta de varios eventos
Contadores síncronos
Estos contadores hacen que un flip-flop cambie su estado solo cuando todos los
flip-flops se cuentren en estado de alto (1) en las etapas anteriores. A diferencia
de los contadores asíncronos la señal de reloj va conectada en todos los
biesatbles.
68
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Ejemplo
En el siguiente ejemplo se muestra el código en VHDL de un contador de 0 a
255, para lo cual se emplea un vector de 8 posiciones, una variable que indica si
finalizado el conteo, el reset para iniciar el conteo desde cero y la señal de reloj
que es que permitirá ir contando. En la señal cuenta se va realizando el conteo.
library IEEE;
use IEEE.std_logic_1164.all;
use ieee.numeric_std.all;
entity contador is
port(
clk : in std_logic;
reset : in std_logic;
sal : out std_logic_vector(7 downto 0);
a : out std_logic
);
end entity;
69
Actividad de Aprendizaje 4 de la Unidad Didáctica III:
Máquinas de estado
Una máquina de estados finitos de esta es una herramienta que se emplea para
el diseño de circuitos secuenciales de aplicación específica, la máquina de
estado es considerada como una abstracción computacional que describe el
comportamiento de un sistema reactivo mediante un número determinado de
estados y transiciones.
Hay que resaltar que una máquina de estado no son diagramas de flujo, son
acciones que se asocian a las transiciones esperando que suceda un evento
para tener una salida; se emplean para el diseño de autómatas (diseño lógico) o
aplicaciones de uso específico como la arquitectura de computadores.
70
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity MEF is
Port ( x : in STD_LOGIC;
y : out STD_LOGIC;
clk : in STD_LOGIC;
71
reset : in STD_LOGIC);
end MEF;
architecture Behavioral of MEF is
type estados_t is (q0,q1,q2,q3,q4);
signal estado, estado_siguiente : estados_t;
begin
process(x,estado)
begin
y <= '0';
estado_siguiente <= estado;
case(estado) is
when q0 =>
y <= '0';
if(x='0') then
estado_siguiente <= q1;
else estado_siguiente <= q2;
end if;
when q1 =>
y <= '0';
if(x='0') then
estado_siguiente <= q1;
else estado_siguiente <= q3;
end if;
when q2 =>
y <= '0';
if(x='0') then
estado_siguiente <= q4;
else
estado_siguiente <= q2;
end if;
when q3 =>
y <= '1';
if(x='0') then
estado_siguiente <= q4;
else
estado_siguiente <= q2;
end if;
when q4 =>
y <= '1';
if(x='0') then estado_siguiente <= q1;
else estado_siguiente <= q3;
end if;
72
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
--when q5 =>
--salida
--condiciones de entrada evaluar los eventos
when others => null;
end case;
end process;
end Behavioral;
73
en amplio rango de necesidades de forma general para múltiples propósitos;
mientras los sistemas embebidos solo cubren necesidades específicas.
Un celular
Una Tablet
Una tarjeta de video
Una tarjeta de audio
Decodificadores
Un módem, etc.
Ventajas y desventajas
Los sistemas embebidos son ampliamente aplicados a diferentes áreas, como la
automatización, salud, electrónica de consumo, milicia, telecomunicaciones y la
industria. Siento el sector de la industrial es quien mejor aprovecha esta
tecnología debido a los siguientes aspectos:
Control total: permiten personalizar los sistemas, usando propia código para
realizar los cambios o modificaciones necesarias.
Conectividad y adaptabilidad: la información es de fácil extracción y
modificación en otros dispositivos externos de manera sencilla.
74
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
Así como toda tecnología y dispositivos también tienen sus desventajas dentro
de estas tenemos:
Cifrado débil, es decir que se puede acceder con facilidad a la información
Fala de certificador
No se puede bloquear o deshabilitar puertos de entrada y salida
El código es libre, es decir, que otro usuario lo puede reutilizar.
Son susceptibles a ataques de red.
75
Resumen
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity biestabled is
Port ( entrada : in STD_LOGIC;
clk : in STD_LOGIC;
qn : out STD_LOGIC;
q : out STD_LOGIC);
end biestabled;
begin
process(entrada, clk)
begin
-- procesos;
end if;
end process;
end Behavioral;
76
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA
77
Actividad de Evaluación de la Unidad Didáctica N:
78
Ing. Lissette Salinas