You are on page 1of 111

Sistemas Digitales Secuenciales

Georffrey Acevedo González 1a versión 2007

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MEDELLÍN
22 de julio de 2007
UN
2
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
¡OH dicha de
entender, mayor que la de
imaginar o la de sentir!
Borges.

El curso de Sistemas Digitales Secuenciales, es un curso introductorio en el


a apasionante tema de la electrónica Digital Secuencial. Ha sido diseñado para ser
un curso de tercer nivel en los programas de Ingeniería o Tecnología Electrónica.

Para leer el módulo se necesitan los conceptos básicos de la teoría


conjuntos, la lógica proposicional, álgebra Booleana, las técnicas de simplificación
de Mapas de Karnaugh y analítica al igual que los conceptos básicos de
electrónica digital combinacional, como lo son los diferentes tipos de compuertas y
el diseño de circuitos de aplicación.

La intención es que el estudiante pueda aprender de este módulo por sí


mismo, en este sentido es un texto escrito más para los estudiantes que para el
profesor y tiene la pretensión de motivar la generación de preguntas antes de
comenzar a ofrecer cualquier información.

Los sistemas digitales secuenciales introducen el concepto de memoria a


los circuitos combinacionales, lo que nos permitirá dar solución a nuevos y
apasionantes problemas.

La posibilidad de recordar el estado actual y “tomar una decisión” para


entregar luego una salida abre el abanico de las posibilidades en el diseño de
dispositivos digitales electrónicos, tanto en el control de procesos industriales como
en la electrónica de consumo.

El área del conocimiento que corresponde este curso académico es ciencias


básicas e ingeniería, específicamente el campo de formación profesional
específico, adquiriendo importancia, pues es el encargado de fundamentar el
estudio de los sistemas digitales que conservan la “memoria” de sus estados
anteriores, condición que permite el diseño de circuitos que pueden establecer
secuencias.

Tiene como propósito que el estudiante domine los conceptos básicos sobre
almacenamiento y procesamiento de información digital; así, el estudiante estará
en capacidad de realizar diseños básicos usando temporizadores, comprenderá las
secuencias y protocolos para el almacenamiento y lectura en memoria, diseñará
contadores y estará en capacidad de seguir un proceso adecuado en el diseño de
circuitos secuenciales.
Algunos aspectos esenciales, que resalta el curso son:

Aplicar las etapas del diseño de circuitos digitales secuenciales para la


solución de problemas propios del campo de aplicación de la Electrónica Digital a
nivel de Ingeniería y de Tecnología.
Conocer las diferentes herramientas del diseño que sirven como
componentes básicos para el desarrollo de dispositivos electrónicos digitales.

Mediante el desarrollo de las unidades didácticas se pretende ubicar al


estudiante en un ambiente ideal para la apropiación de conceptos y destrezas
indispensables para la comprensión y diseño de sistemas digitales secuenciales y
sus aplicaciones en la solución de problemas prácticos. Este desarrollo de
habilidades y competencias propias del área digital tendrá aplicables en otros
campos de su formación que permitirán proyectar el curso como herramienta vital
en el campo de la investigación.

Que estas páginas os brinden muchas horas de diversión.

Agradezco a todos los estudiante y tutores su valiosa colaboración.

Georffrey Acevedo G.

UN
2
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

CONTENIDO

capítulo 1 almacenamiento en registros


-objetivo general
-objetivos específicos

1. LATCH
-compuerta or
1.1 LATCH set
1.2 LATCH reset
1.3 LATCH set-reset
-diseño
-símbolo
-tabla de verdad
-diagrama de estados
1.4 LATCH sr con línea de control
1.5 LATCH tipo data
vhdl latch tipo data
1.5.1 LATCH d con señal de control
1.6 LATCH tipo jk
1.6.1 LATCH tipo jk con señal de control
1.7 LATCH tipo toggle
1.7.1 LATCH tipo t con señal de control
1.8 circuitos de aplicación de los latch
1.8.1 Circuitos Multi-vibradotes
1.8.1 Circuitos de tiempo
1.8.2 Módulo temporizador de precisión 555

CAPÍTULO 2 FLIP-FLOPS
2.1 Flip-Flop activos por flanco positivo y flanco negativo
2.1.1 Flip-Flop activo por flanco Positivo
2.1.2 Flip-Flop activo por flanco Negativo
2.1.3 Circuitos generadores de Flanco
-Señal de reloj a la salida del circuito detector de flancos de bajada
-Señal de reloj a la salida del circuito detector de flancos de subida
-Circuito detector de Flanco de Subida
-Circuito detector de Flanco de Bajada
VHDL Flip-Flop Data Sícrono
2.2 Aplicaciones de los Flip-Flop
2.2.1 Contadores
VHDL Circuito Contador Ascendente O Descendente
2.2.3 División de frecuencia
2.2.2 Registros y Memorias
3
Anexos

Anexo A – Instalacón de Xilinx 7.1i


Anexo B – Cómo crear un proyecto esquemático en Xilinx 7.1i

UN
4
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Unidad 1: MEMORIA

UNIDAD BÁSICA DE ALMACENAMIE FLIP FLOPS ALMACENAMIE


ALMACENAMIENTO NTO EN DISPARADOS NTO EN
REGISTROS POR FLANCO REGISTROS

Definición, objetivos
y Clases de: Registros de Flip- Flop Aplicaciones
desplazamiento
Maestro
esclavo
Datos
Latches Flip-Flop Monoestables
Cerrojo tipo JK

Latch S-R Flip-flop tipo Aestable


FPGA Toggle
VHDL
Latch D Temporiza
Flip-flop tipo dor 555
Resueltos Data

FPGA FPGA FPGA


VHDL VHDL VHDL

Resuelto Resuelto Resuelto


s s s

5
Unidad 1: CIRCUITOS SECUENCIALES

ALMACENAMIENTO ALMACENAMIE FLIP FLOPS DISEÑO DE


EN REGISTRO NTO EN DISPARADOS CIRCUITOS
REGISTROS POR FLANCO SECUENCIALES

Secuenciador CIRCUITOS
CONTADORES ETAPAS DEL
MORE Y DISEÑO
MEALEY
Registros Contadores de
cola Jonson Reducción Circuitos
Secuencia de por
almacenamiento inspección Identificación
en memoria Contadores del número de
Asíncronos Reducción estados
por partición
Secuencia de
lectura de Diagramas Asignación
memoria de tiempos Flip-flop tipo de estados
Data

Estructura Contador
Síncrono FPGA Tabla de
básica de VHDL
una transición

FPGA FPGA Ejercicios


VHDL VHDL Resueltos y
Ecuaciones
Probuestos de excitación

Ejercicios Ejercicios
Resueltos y Resueltos y Ecuaciones
Probuestos Probuestos de salida

Circuito de
aplicación

FPGA
VHDL

Ejercicios
Resueltos y
UN
6 Probuestos
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

UNIDAD 1

Sistemas de Almacenamiento de Información.

Capítulo 1:

Almacenamiento en Registros

Sistema Secuencial

Sistema
Combinacional

Sistema de
Retroalimentación

7
OBJETIVO GENERAL

Estudiar, analizar y profundizar los conceptos fundamentales de la teoría del


diseño y manejo de datos, mediante cerrojos, y el almacenamiento en Latches,
Latch S-R, Latch D, Flip flops disparados por flanco (Flip- Flop Maestro esclavo,
Flip-Flop tipo JK, Flip-flop tipo Toggle, Flip-flop tipo Data, con aplicaciones con
Monoestables, astables, y por último en cada capítulo se aplicará al diseño en
FPGA y programación en VHDL.

OBJETIVOS ESPECÍFICOS

1. Identificar los dispositivos de almacenamiento básicos.


2. Distinguir las diferentes clases Latch.
3. Representar una función usando diagramas de tiempos.
4. Realizar diseños usando LATCH.
5. Aplicar los diagramas de tiempo para el análisis de un circuito secuencial.

UN
8
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

FASE DE RECONOCIMIENTO

En esta lección reforzaremos algunos conceptos de Sistemas Digitales Básicos y


VHDL que se deben manejar para poder hacer una lectura significativa del curso:

Álgebra de variables lógicas:

Características de las variables lógicas:

La variable lógica debe ser excluyentes:


Debemos poder determinar su valor de verdad, definiéndola como verdadera o
falasa.

La variable lógica debe ser diferenciable:


Debeos poder decir con claridad si son o no son verdaderas o falsas. (Que la
variable exprese sentencias claras). Por ejemplo:

P = La temperatura es de 250C.

Esta es una variable de la cual podemos afirmar con claridad que sea verdadera o
falsa.

Los valores de verdad podemos representarlos así:

Verdadera = ON = VERDE = 1

Falasa = OFF = ROJO = 0

Como los valores de verdad son mutuamente excluyentes podemos usar la


siguiente representación:
_____

Verdadero = Falso
__________

Falso = Verdadero

Aquí la línea horizontal representa la negación del valor que tiene debajo.

Representación de las variables lógicas:


Para representar las variables lógicas usamos las últimas letras del alfabeto como
p, q, r, s, t. v. x. y. z.

9
Si usamos como variable lógica la p, ésta podrá tomar uno sólo de los valores de
verdad del conjunto:
{verdadero, falso}.

Es decir que p puede ser verdadera o falsa pero no tener los dos valores de
verdad al mismo tiempo de acuerdo a la propiedad de ser excluyente.

Tablas de verdad:
Una tabla de verdad esta constituida por los posibles valores de la variable lógica y
las posibles funciones de la variable.

Variables Función
Posibles Posibles
Valores de Valores de
Verdad de la Verdad de la
variable función

Función de las variables lógicas:


La función de dichas variables lógicas la representamos comúnmente por la letra
F. Y está determinada por su tabla de verdad.

Función de una variable lógica:


F(p) = se lee “efe de P”. Y será la función de la variable lógica p. F(p) al igual que
p también toma un valor de verdad del conjunto:

{verdadero, falso}.

Pero dicho valor de verdad siempre estará determinada por el valor de verdad de
la variable p. En otras palabras F(p) depende del valor de p.

F(p) = Verdadero.
F(p) = Falso.

Observemos como en la siguiente tabla de la función, las posibles funciones de la


variable son en total 4.

UN
10
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Este número de posibilidades podemos calcularlo como 22.

Posibles Variable. Posibles funciones de la variable


p F1(p) F2(p) F3(p) F4(p)
F F V F V
V F F V V

En términos de la variable p, estas funciones podemos definirlas como sigue:

F1(p) = F
__
F2(p) = p

F3(p) = p

F4(p) = V

Funciones de dos variables p y s:

Las posibles funciones de las variables son en total 16. Este número de
posibilidades podemos calcularlo como 24, en donde el cuatro son el número de
posibles combinaciones verdadero y falso para dos variables es así:

(Dos valores de verdad)22 (dos variables)

p s F1(p,s) F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16


F F F V F V F V F V F V F V F V F V
F V F F V V F F V V F F V V F F V V
V F F F F F V V V V F F F F V V V V
V V F F F F F F F F V V V V V V V V

11
En términos de la variable p y de s, estas funciones podemos definirlas como
sigue:

F1(p,s) = F
F2(p,s) = p NOR s
F3(p,s) = (p EXOR s). s
F4(p,s) = No p
F5(p,s) = (p EXOR s). p
F6(p,s) = NO s
F7(p,s) = p EXOR s
F8(p,s) = p NAND s
F9(p,s) = p AND s
F10(p,s) = p EXNOR s
F11(p,s) = s
F12(p,s) = NO[(p EXOR s). p]
F13(p,s) = p
F14(p,s) = NO[(p EXOR s). s]
F15(p,s) = p OR s
F16(p,s) = V

Las funcione subrayadas corresponden a las funciones más utilizadas, las cuales
especificaré a continuación:

P S NO P P AND S P OR S P EXOR S
F F V F F F
F V V F V V
V F F F V V
V V F V V F

Nemotécnicamente podemos definirlas así:

AND: Verdadero-verdadero para ser verdadero...... x


OR: Falso-falso para ser falso.............. +
EXOR: Iguales para ser falso. .......... ⊕

UN
12
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Funciones de más de dos variables lógicas:

Son las funciones que para establecer su valor de verdad dependen de más de
dos variables lógicas:

Ejemplo:
Representación de una función de tres variables lógicas:

Primero debemos determinar el número de las posibles combinaciones de valores


de verdad para las tres variables, que en este caso denominaremos A, B y C. Y los
valores de vedad los representaremos por 1 para Verdadero y 0 para falso.

Como se trata de combinara 3 variables lógicas diferentes, y los valores de verdad


posibles son dos Verdadero y Falso, son necesarias:

23 = 8 Ocho combinaciones posibles.

Ahora sí podemos construir la tabla de verdad para la función:

A B C F(A,B,C) = Z
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1

Z, está definida por todos aquellos valores que la afirman. Es decir únicamente por
los valores que observamos resaltados en la tabla de verdad.

Representación gráfica de las funciones lógicas:

Por comodidad usaremos las letras A y B para representar las variables:

La representación gráfica de las funciones coincide con la representación en


diagrama de bloque de un sistema:

Señales de Función
entrada COMPUERTA OUT

13
1-Función Inversora. (Invierte el valor de verdad de las funciones lógicas)

A Ā

2-Función AND.
Es equivalente a decir: A and B = A . B = AB
A A and B
B

3-Función OR.
Es equivalente a decir: A or B = A + B
A A+ B
B

3-Función XOR.
Es equivalente a decir: A or B = A + B
A A B
B

4-Función BUFFER.
Mantiene la señal.
A A

5-Función NAND.

6-Función NOR.

7-Función EXNOR.

UN
14
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Tecnología TTL y CMOS:

TTL:
Significa tecnología de transistor a transistor y maneja los siguientes umbrales de
voltaje para determinar el 1 o el 0 lógico:

Margen de
seguridad.

CMOS:
Significa tecnología metal oxido semiconductor y maneja los siguientes umbrales
de voltaje para determinar el 1 o el 0 lógico:

Margen de
seguridad.

La notación de los valores de verdad tendrá entonces la siguiente representación:

1 para el VERDADERO
0 para el FALSO

Haciendo uso de estas representaciones y de esta notación, podemos representar


la función Z de una variable lógica así:

1. Definimos la función Z por su tabla de verdad,


La función Z como vimos, está definida arbitrariamente. Pero dependerá de los
valores de verdad de las variables A; B y C tal y como lo determine la tabla de
verdad siguiente:

15
B C F(A,B,C) = Z
A
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1

2. Recordemos que Z, está definida por todos aquellos valores que la afirman.
Es decir únicamente por los valores que observamos resaltados en la tabla de
verdad.

La función Z es: Z = ABC + ABC + ABC + ABC

El circuito lógico de la variable Z es como sigue:

UN
16
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Representación en diagramas de bloques:

CIRCUITO
LOGICO

Técnicas De Simplificación

Teoremas del álgebra Booleana:

I- Teoremas para una variable:


A = A

A+0 = A

A+1 = 1
A+ A = A

A+A = 1
Teoremas Duales:
A.0 = 0

A.1 = A

A.A = A

A.A = 0

A manera de nemotectnia, observemos como las operaciones de suma y producto


coinciden para las funciones OR y AND:

0+0 = 0 0. 0 = 0

0+1 = 1 0.1 = 0

1+1 = 1 1.1 = 1

17
Teoremas para dos variables:

1) A + AB = A
Demostración: A(1 + B) = A(1) = A

2) A + AB = A + B
Demostración: A + AB +AB = A + B(A + A) = A + B
(Aplicando el criterio anterior).

3) AC + AB + BC = AC + AB

4) AC + AB = (A + B)(A + C)

Teoremas DUALES para dos variables:

1) A(A + B) = A

2) A(A + B) = AB

3) (A + C)(A + B)(B + C) = (A + C)(A + B)

4) (A + C)(A + B) = AB + AC

Observemos que el truco para obtener estas funciones consiste en cambiar + por *
y * por +. Esto es gracias al teorema de Morgan.

Teorema de Morgan:

A.B.C = A + B + C

Igualmente podemos expresar el teorema en su dualidad:

A + B + C = A. B. C

UN
18
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Formas estándar de las funciones lógicas:

Las funciones lógicas se pueden expresar como suma de productos o productos


de sumas lógicas. Estos productos son llamados estándar, es decir, involucran
todas las variables. Ejemplo:
B C F(A,B,C) = Z
A
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Como suma de productos:


Z estará dada por los valores de Z que la hacen verdadera (1)

La función Z es: Z = ABC + ABC + ABC + ABC + ABC + ABC

Como producto de sumas:


Z estará dada por los valores de Z que la hacen falsa (0). Pero al contrario de del
caso anterior, las variables se complementan donde están afirmadas y no se
complementan donde están negadas.

La función Z es: Z =(A + B + C) (A + B + C)

Las representaciones anteriores de Z reciben el nombre de Minterms y Maxterms:

Z como Minterms mi: Z = Σ(m0 , m1 , m3 , m5 , m6 , m7 )

Z como Maxterms mi: Z = ΠM(2,4)

Niveles de integración de los circuitos digitales básicos


Según el número de puertas lógicas los circuitos integrados se clasifican como:
Nombre Significado Compuertas lógicas
SSI Small-scale-integrated <12
MSI Medium-scale-integrated 12 - 100
LSI Large-scale-integrated 100 - 1000
VLSI Very-large-scale-integrated

Un ejemplo de SSI es la 7408, de MSI un multiplexor y de LSI una memoria.

19
DECODIFICADOR PARA DISPLAY

Display de 7 segmentos:

a a

f b f b
g g

e c e c

d d
Ánodo Cátodo
común común Integrado
a

7447 7448 Usar

Internamente, se trata de siete diodos dispuestos de la siguiente manera


respectivamente:
Vcc

R R
E E
S S

UN
20
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Diseño de un Multiplexor en VHDL:

En esta lección haremos un reconocimiento de los conocimientos adquiridos en


sistemas digitales básicos sobre VHDL, para lograr nuestro objetivo diseñaremos
un multiplexor dos a 1 en VHDL, retomando y analizando las etapas del programa:

Recordemos que un circuito multiplexor 2 a 1 permite seleccionar entre dos


canales de entrada cual será el canal que podrá salir por la única línea de salida:

MULTIPLEXOR 2 a 1

Canal A

Salida un
único canal

Canal B

Selecciona la salida
( Es la señal de control)

Selecciona el
canal A con 0 y el
Canal B con 1

Este es un circuito de multiplexión en el tiempo (TDM) muy común en


telecomunicaciones; imaginemos que Venn y Aristóteles desean comunicarse de
Natunga a Macondo pero entre los dos destinos sólo existe un único canal de
comunicaciones. ¿Cómo usar este único canal para que las dos personas puedan
estar en comunicación con Macondo al mismo tiempo? ....La solución es muy
simple: permitimos que Aristóteles se comunique por unas fracciones de segundo y
que en la siguiente fracción de segundo lo haga Venn, pero debemos hacerlo a
una velocidad tal que los usuarios no se percaten del asunto.

La tarea de conectar y desconectar rápidamente los canales A y B (usuarios de


Natunga) de la única señal de salida es realizada por el circuito multiplexor.

Veamos la tabla de estados:


21
Tabla de estados:
Caso A B Control C Salida
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
4 1 0 0 1
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1

Obtengamos la función lógica:


(Puedes repasar estos conceptos en el captítulo de Álgebra Booleana del módulo
de Lógica Matemática y complementarlos con el Módulo de Sistemas Digitales
Básicos)

f(A,B,Control) = A'BC + AB'C' + ABC' + ABC


Simplificación:
f(A,B,Control) = (A'BC + ABC) + (AB'C' + ABC')
f(A,B,Control) = BC(A' + A) + AC'(B' + B)
f(A,B,Control) = BC(1) + AC'(1)
f(A,B,Control) = BC + AC'

Recordimos que el algoritmo en VHDL consta de básicamente tres etapas:

1. Definición de las librerías

2. Declaración de las variables de entrada y salida

3. Arquitectura, donde se describe el comportamiento lógico del sistema.

A continuación hacemos la descripción detallada de éstas etapas.. (No olvides


retomar todos éstos conceptos en el módulo de Sistemas Digitales Básicos).

UN
22
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Agoritmo en VHDL:

Definiciones:
Librerías y paquetetes a utilizar
ieee. : Librería a utilizar
library ieee; std_logic_1164.all: Paquete a utilizar; más completo que el tipo
use ieee.std_logic_1164.all; bit, al incluir los estados de alta impedancia y de no importa.

Entidad
entity MUX2a1_a is port( Donde se definen las señales de entrada y salida del sistema:
A, B: in std_logic;
A SISTEMA
C: in std_logic;
Y: out std_logic); IN B Y OUT
end MUX2a1_a; f(A, B, C)
Sel

architecture funcionamiento of MUX2a1_a is


begin
Arquitectura
Y<= ( B and C ) or
( A and not(C) ); Donde se define la función del circuito
end funcionamiento;
Funición del sistema:
f(A, B, C) = Y = B*C + A*~C

Otra forma de resolverlo es:

library ieee;

use ieee.std_logic_1164.all;

entity mux2a1 is port(


entrada: in std_logic_vector(3 downto 0); --Definimos las entradas A, y B
control: in std_logic; --Definimos las señales ce dontrol C1
y: out std_logic);
end mux2a1;

23
architecture archmux2a1 of mux2a1 is
begin
p1: process (entrada,control)
begin
case control is
when "0" => y<=entrada(0);
when "1" => y<=entrada(1);
when others => y<=entrada(0);
end case;
end process;
end archmux2a1;

UN
24
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Lección 1. Latch

En esta lección aprenderemos a diseñar una unidad básica de almacenamiento a


partir de los conocimientos adquiridos en el curso de sistemas digitales básicos.

1.1.1 LATCH

Un LATCH es la unidad de almacenamiento básico es y la unidad fundamental


para construir los diferentes tipos de FLIP-FLOP que estudiaremos más adelante.

Partamos de considerar un LATCH como un sistema con una variable de entrada y


una variable de salida, tal y como se muestra en la siguiente figura:

Entrada Salida
IN LATCH OUT
Figura 1

Estamos buscando diseñar un circuito que permita el almacenamiento de la


mínima unidad lógica, es decir, de un bit. Esto es, pretendemos diseñar un circuito
que nos permita almacenar un uno lógico o un cero lógico. En otras palabras,
queremos almacenar o retener 5Voltios ó 0Voltios en un punto específico de un
circuito hasta que lo deseemos.

La pregunta ahora es, ¿qué utilidad práctica podría tener dicho circuito digital?,
¿De qué puede servirnos almacenar un dígito?

Dejemos volar la imaginación y propongamos una aplicación a nuestro primer


circuito digital de almacenamiento de un bit:

Resulta que nuestro amigo Boole ha puesto en la jaula de su hermoso canario un


nuevo columpio pero ha pasado horas sin lograr determinar si su canario hace o no
uso del nuevo juguete. ¿Cómo podemos ayudar a Boole con ésta fatigante tarea?

Circuito
Figura 2

Señal de entrada Señal de salida


25
Muy bien, ya tenemos nuestro primer problema por resolver, ahora procederemos
a diseñar un sistema tal que una luz permanezca encendida una vez que nuestro
canario halla hecho uso del columpio.

Necesitamos entonces que la luz no se apague hasta que Boole la observe.


¿Cómo podemos hacer uso de la electrónica digital para crear nuestra primera
unidad de almacenamiento de información?

Para dar inicio al proceso de diseño debemos hacer un repaso de algunos de los
conceptos aprendidos en el curso de Sistemas Digitales Básicos y lógica
Matemática. El primer concepto que repasaremos es el de las compuertas OR.

Repaso: COMPUERTA OR:


Recordemos los posibles valores de verdad para la compuerta OR, nuestra unidad
fundamental en el diseño de un LATCH:

Las señales de entrada a la compuerta lógica OR son respectivamente P y Q. La


salida depende del estado lógico de la entrada, ésta será cero cuando ambas
entradas sean cero, es decir, basta con que una de las entradas se active, P ó Q
para que la salida también esté activa:

P
PνQ
Q
Figura 3
Compuerta OR

P Q PνQ

TABLA DE 0 0 0
VERDAD 0 1 1
1 0 1
1 1 1

1.1.1.1 LATCH SET

LATCH que tiene una señal de entrada que obliga a la salida a tomar el valor de
uno (1). Esta diseñado con una compuerta OR, aunque también puede ser
diseñado por compuertas AND. Lo que hacemos a continuación es introducir un
laso de retroalimentación de la señal de salida Q a la señal de entrada P en la
compuerta OR, tal y como se muestra en la figura 4:

UN
26
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

0
Q
S 0 Estado Inicial,
0
todo en Cero
Figura 4 LATCH SET

El estado inicial de la compuerta OR es el de todas sus señales de entrada y salida


en cero lógico.

De acuerdo con la tabla de verdad para la OR cualquier uno en las entradas


obligará un uno en la salida, este uno de la salida Q será retroalimentado hacia la
entrada como se muestra en la figura 5:

1
Q
S 1 El uno de la salida Q
1 se retroalimenta a la
Figura 5 entrada
LATCH SET

Observamos que poner S =1 obligó a que la salida Q se convirtiera en 1

Suponiendo que la señal de entrada S se pone en alto cuando el canario se posa en el nuevo
columpio, logramos que la salida Q correspondiente a la bombilla se ponga también en alto
(encienda), ahora necesitamos que este estado alto de la bombilla se conserve hasta que
nuestro amigo Boole así lo determine.

Para verificar que el sistema conserva el estado alto en la salida (Bombilla


encendida) supongamos que el canario se retira del columpio produciéndose una
señal de cero en la entrada S del sistema. ¿Continuará la bombilla encendida?
Veamos:

27
Finalmente llevemos la entrada S a cero observemos lo que pasa:

1
Q
S 1 El uno que
0 permanece en la
entrada, obliga un
LATCH SET
uno en la salida Q,
sin importar el
Figura 6 nuevo estado de S

Logramos memorizar un 1 en la salida Q del circuito, ya que ésta salida no


cambiará, es decir, la bombilla no se apagará aunque el canario se retire del
columpio o se vuelva a posar en él.
115VAC
Veamos como queda el sistema:
5V Circu
ito de
acopl
e de
poten
cia.
Q
S

Etapa de acople
Señal de entrada de potencia con
Optoacoplador
Al posarse el ave la entrada S se y Triac
desconecta de tierra produciendo un 1
lógico en la entrada de la compuerta
TTL

Figura 7
¿Qué deberá hacer Boole para apagar el LED y la Bombilla?.

Una vez que el estado lógico alto queda almacenado en el circuito es imposible
apagar la bombilla por medio de un cambio en nuestra única señal de entrada S,
UN
28
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Boole deberá desenergizar el circuito digital, es decir, deberá interrumpir el


suministro de energía de 5 Voltios.

Boole ha encontrado que el canario tiene miedo de usar el balancín, para obligar a
usarlo, Boole desea ahora que el sistema funcione al contrario, es decir, que la
bombilla permanezca encendida hasta que el canario se pose en el columpio.
Dado que al canario no le gusta la presencia de la luz, Boole espera que el canario
aprenda a apagarla parándose en el columpio. Igual que en el sistema anterior la
bombilla debe permanecer apagada a pesar de que el canario se retire del
columpio.

Para dar solución a este nuevo reto, procedemos a diseñar el Latch Reset:

Esta vez la
bombilla
inicia
encendida
Circuito

Señal de entrada Señal de salida

Lección 2. Latch Reset

1.1.1. 2 LATCH RESET

LATCH que tiene una señal de entrada que obliga a la salida a tomar el valor de
cero (0).

Para el diseño de este nuevo LATCH es necesario que recordemos la función


lógica de la compuerta NOT:

P P’ P ~P TABLA DE
VERDAD
0 1
Compuerta NOT 1 0
Figura 8

Para este diseño, partimos del LATCH SET en su estado inicial:


29
0
Q
S 0 Estado Inicial,
0
todo en Cero

Figura 9 LATCH SET

Adicionamos dos inversoras, lo que no producirá ninguna alteración en la salida:

0 Q ~Q
Q
S 0
0
Figura 10
Ahora convertiremos la señal intermedia ~Q en la nueva señal de salida:

0
Figura 11 Q
R 0 ~Q
1
0

Ahora cambiemos el estado de R (de Cero a Uno ) y veamos que pasa:

1
Q
R 1 0
~Q
1

Figura 12
LATCH RESET
UN
30
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Como en el caso del LATCH SET, al cambiar nuevamente el estado de R


observaremos que el 1 a la entrada de la OR no permitirá el cambio en el estado
de la salida de ésta, permaneciendo ~Q en 0, y este estado se mantendrá hasta
que el circuito sea desenergizado.

Redibujemos el LATCH RESET:

Q
R

LATCH RESET

Dibujando nuevamente todo el sistema tendremos que al posarse el ave en el nuevo columpio se
apagará la bombilla y a pesar de que el ave se retire, la bombilla no volverá a encender:
115VAC

Circu
5V
ito de
acopl
e de
poten
cia.
Q
R

Etapa de acople
Señal de entrada de potencia con
Optoacoplador
Al posarse el ave la entrada S se y Triac
desconecta de tierra produciendo un 1
lógico en la entrada de la compuerta
TTL

¿Qué debe hacer Boole ahora para activar nuevamente el sistema, es decir de
apagar la bombilla en el caso de usar un LATCH SET o de encender nuevamente
la bombilla en el caso de usar un LATCH RESET si no desea interrumpir el
suministro de corriente del circuito digital?

31
Como te habrás dado cuenta, el hecho de tener que desenergizar “desconectar” el
circuito para retornarlo a su estado original, puede resultar en un inconveniente.
Para solucionar esto, hagamos un nuevo diseño: El Latch Set-Reset, un circuito
tal que permita el cambio de estado de la salida sin necesidad de interrumpir el
suministro de energía al circuito digital:

Lección 3. Latchset- reset

1.1.1. 3 LATCH SET- RESET

Es el LATCH que tiene dos entradas, una entrada que obliga a la salida a tomar el
valor de cero (0) y otra entrada que obliga a la salida a tomar el valor de uno (1).

Para su diseño, partimos del LATCH SET:

0
Q ~Q Q
S 0
0
Figura 14

Recordemos que por medio de una compuerta OR podemos diseñar una


compuerta inversora:

P’
= P
Figura 15
Reemplacemos una inversora por una OR:

0 ~Q
Q Q
S 0
0
Figura 16

UN
32
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Ahora procedemos a separar una de las entradas de la compuerta NOR a manera


de señal de control, señal que denominaremos R(RESET):

~Q
S
Q
R
Figura 17
A continuación procedemos a analizar las salidas Q y ~Q al variar los estados de
las entradas S y R:

1) Si S = R = 0

1.1) Si Q estaba en 0 y hacemos S = R = 0, observaremos que Q continúa siendo


cero:

1 ~Q
Q
S 0
R 0 0

Figura 18

1.2) Si Q estaba en 1 y hacemos S = R = 0, observaremos que Q continúa siendo


uno:

0 ~Q
Q
S 0
R 1
0
Figura 19

33
Luego, podemos concluir que con S y R en cero se conserva el estado anterior.
NO hay cambios.

2) Si S = 0 y R = 1
2.1) Si Q estaba en 0 y hacemos S = 0 y R = 1, observaremos que el estado de la
salida Q se conserva:

~Q
1 Q
S 0
R 1 0

Figura 20

2.2) Si Q estaba en 1 y hacemos S = 0 y R = 1, observaremos que Q se vuelve


cero:

0 ~Q
Q
S 0
R 10
1
Figura 21
Luego, podemos concluir que con R en uno se resetea el estado de la salida, es
decir, la salida se vuelve cero.

3) Si S =1 y R = 0
3.1) Si Q estaba en 0 y hacemos S = 1 y R = 0, observaremos que Q se vuelve
uno:

10 ~Q
Q
S 1
R 01
0
Figura 22
UN
34
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

3.2) Si Q estaba en 1 y hacemos S = 1 y R = 0, observaremos que el estado de la


salda Q se conserva igual:

~Q
0 Q
S 1
R 11
0
Figura 23
Luego, podemos concluir que con S en uno se pone en estado de SET , es decir,
la salida se vuelve UNO.

4) Si S =1 y R = 1

4.1) Si Q estaba en 0 y ~Q en 1 hacemos S = 1 y R = 1, observamos que:

1
0 ~Q
Q
S 1
R 00
1

4.1) Si Q estaba en 0 y ~Q en 0 hacemos S = 1 y R = 1, observamos que:

0 ~Q
Q
S 1
R 10
1

Observa como en estos dos casos Q y ~Q toman valores iguales, lo que nos
representa un estado no deseado: (Se trata de no dar las ordenes de Reseteo y
de Set al mismo tiempo.

35
Reorganicemos la el diagrama y construyamos con la información anterior una
tabla que comprenda todos los cuatro casos vistos:

S 0 ~Q

Q
R

LATCH SET - RESET


Entrada de
excitación
Estado Estado
SET RESET
actual siguiente
Función
S R Q ~Q Q ~Q

0 0 0 1 0 1 PERMANECE
0 0 1 0 1 0 (Q no cambia)
0 1 0 1 0 1
RESET
0 1 1 0 0 1
1 0 0 1 1 0
SET
1 0 1 0 1 0
ESTADO
1 1 0 1 X X
PROHIBIDO
1 1 1 0 X X
(No Válido)

TABLA DE ESTADOS LATCH SET - RESET

S LATCH
~Q
R SR Q
DIAGRAMA DE BLOQUE
DEL LATCH SR

UN
36
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Circuito de aplicación:

Cómo podemos ver la aplicación útil de este sistema sobre el circuito detector que
venimos diseñando para el canario de nuestro amigo Boole?

Ahora disponemos de un circuito que tiene dos señales de entrada, una entrada S
ó SET que permite encender nuevamente la bombilla si ésta se ha apagado antes
usando la entrada R ó RESET. Es decir, si ingresamos un 1 en SET y la bombilla
está apagada, ésta se encenderá y únicamente podrá apagarse mediante un 1 en
la señal de RESET.

Si la bombilla está apagada e ingresamos un 1 por la entrada de RESET, la


bombilla se apagará y no podrá encenderse tornando a 0 la señal de RESET.
Únicamente se puede encender mediante un 1 en la señal de SET.

Pero el sistema tiene una falencia, debemos cuidar de no enviar las señales de
SET y RESET al mismo tiempo ya que la respuesta del sistema será impredecible,
es por esto que en la tabla de estados marcamos ésta condición como estado
prohibido.

Con éste circuito Boole tiene los dos LATCH, SET y RESET, en uno sólo y podrá
poner a funcionar el sistema como desee:

1. Si desea que la bombilla se encienda cuando el ave se pose en el


columpio, entonces deberá conectar la señal del columpio a la entrada SET. Y así,
él podrá apagar la bombilla mediante una señal en la entrada RESET, sin
necesidad de desconectar el circuito de las baterías.
2. Si desea que la bombilla se apague cuando el ave se pose en el
columpio, entonces deberá conectar la señal del columpio a la entrada RESET. Y
así, él podrá encender nuevamente la bombilla cuando lo desee mediante una
señal en la entrada SET, sin necesidad de desconectar el circuito de las baterías.
115VAC
pulsador

5V Circu
5V
ito de
S acopl
e de
poten
cia.
R Q

Señal de entrada
37
Lección No.4 Latch SR con NAND

Representación del LATCH SR usando compuertas NAND:

S 0 ~Q

Q
R

LATCH SET – RESET


CON NAND

Ahora, vamos a suprimir las compuertas inversoras; En este caso, decimos que las
entradas S y R S son activas en bajo:

LATCH SET – RESET


CON NAND y ENTRADAS ACTIVAS
EN BAJO.

LATCH
SR

SÍMBOLO DEL
LATCH SET – RESET
UN
CON ENTRADAS ACTIVAS EN
38
BAJO.
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Función Lógica del LATCH SET-RESET:

De la tabla de estados del LATCH SET – RESET, tomando como variables de


entrada a S y R y como función de salida el estado actual Q* . Con estos datos
obtendremos la
SET RESET Estado Estado función lógica para el
Actual siguiente LATCH SET-
*
S R Q Q RESET:

0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 X
1 1 1 X 1) Observa como
esta tabla de
estados corresponde a la siguiente tabla de verdad:

*
No. S R Q Q
0 0 0 0 0
1 0 0 1 1 S' R’ Q
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1 S R' Q'
5 1 0 1 1 S R' Q
6 1 1 0 X
7 1 1 1 X

2) De la tabla de verdad obtenemos la siguiente función lógica:

f (S, R, Q) = Q* = S' R’ Q + S R' Q' + S R' Q

39
3) Simplifiquemos usando Mapas de Karnaugh:

R’Q’ R’Q RQ RQ’


00 01 11 10
S’ = 0 0 1 0 0
S =1 1 1 X X

La función simplificada es:

f (S, R, Q) = Q* = S + R’ Q

Ejercicio 1

Asigna a S, y R los valores posibles y observa el valor así obtenido para la


función, luego compáralos con los valores de la tabla de estado.

UN
40
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Lección No.5 Diagrama de Estados.

Diagrama de ESTADOS para el LATCH SR:

Si el estado actual es un
SR CERO en la salida;
Cuando S=1 y R=0
podemos pasar al estado en
que la salida es 1, la flecha
10 ( )indica este cambio de
estado.

0X 0 1 X0

01 Si el estado actual es un UNO en


la salida, Con, ningún valor de S
producirá un cambio de estado.
Solo cuando S=0 y R= 1 podemos
pasar al estado en que la salida es
0, la flecha ( ) indica este
cambio de estado.

41
Hemos aprendido que el LATCH-SR tiene un estado prohibido, en el cual S y R
toman el valor de 1, produciendo cambios indeseados en las salidas Q y ~Q del
Latch.

¿Cómo podemos evitar el estado prohibido?

Recordemos que con una compuerta AND, sólo se obtendrá un uno (1) a la salida
siempre y cuando ambas entradas estén también en uno (1), luego, si tomamos
una de las entradas como entrada de control. Mientras esta entrada esté en cero,
la salida también será cero.

Entrada
Salida = Entrada
Solo cuando
Control
Control ≠ 0
En otro caso es = 0
Compuerta AND

1.1.1.4 LATCH SR CON LÍNEA DE CONTROL:

Aplicando la compuerta NAND, podemos bloquear las ambas entradas (SR); esto
es, habilitar o deshabilitar el LATCH.

LATCH
C SR

LATCH SET – RESET


CON SEÑAL DE CONTROL.

UN
42
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Símbolo para el LATCH-SR con señal de control:

LATCH
C SR con
Control

SÍMBOLO DEL
LATCH SET – RESET
CON SEÑAL DE CONTROL.

Ejercicio 2

1. Construye una tabla de verdad para la función Q* . Recuerda que ahora


esta nueva función depende del estado de las variables: CSRQ
2. Luego obtén la función sin simplificar.
3. Usando los mapas de Karnaugh encuentra una función simplificada.
4. Verifica que tu función cumpla la tabla de verdad.
5. Consulta y grafica Integrados comerciales que contengan el LATCH SR
6. Consulta que es un circuito antirrobote.
7. Consulta como usar el LATCH SR para eliminar los rebotes.

43
Lección No.6 Latch Tipo Data

1.1.1.5 LATCH TIPO DATA:

Existe otra forma de evitar que las entradas S y R tomen el valor de 1 al mismo
tiempo, y es usando una compuerta inversora entre las dos señales, así, cuando S
sea Uno (1), R será (0), y cuando S sea Cero(0), R será UNO (1):

D
0 S Q Q
LATCH
SR Q
Un cero en S se R Q
transforma en 1 1
para R LATCH DATA

De esta manera, un 1 en S da la orden de SET que pone la salida Q en alto (1) y


un 0 en S da la orden de RESET que pone la salida Q en bajo (0).

Tabla de verdad LATCH D:

DATA SALIDA
D Q

0 0
1 1
Tabal de verdad LATCH DATA

Ejercicio 3

1. Elabora un diagrama de estados para el LATH DATA.


2. Consulta y grafica Integrados comerciales que contengan el LATCH
DATA.
UN
44
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

VHDL flip-flop tipo data:

library ieee;
use ieee.std_logic_1164.all;

Definición de la entidad:

En la entidad definimos el nombre de la unidad funcional que estamos creando


(entidad), definimos las señales de entrada, que en este caso serán la señal de
entrada de datos (data) representada en la letra d, y finalmente definimos la señal
de salida q, recordemos que para definir estas variables como entradas y salidas
usamos las palabras clave in y out respectivamente.
entity biestD is port(

d: in std_logic;
q: out std_logic);

end entity;

Observemos que también se definió el tipo de variable como std logic.

Definición de la arquitectura:

En la arquitectura definimos la función lógica que determinará el comportamiento


del sistema como un flip-flop tipo data; dado que en un flip-flop data la señal de
salida Q sigue a la entrada D, éste queda bien representado por la instrucción:
q <= d

Equivalente a d llévele q, a la salida llévele la entrada.

Definidas éstas características el flip-flop data, queda completamente definido así:


architecture archbiestD of biestD is

begin

p: process(d)
begin
q<=d;
end process;

end;

45
1.1.1.6.1 LATCH D CON SEÑAL DE CONTROL:

Como ya habrás deducido, es poco práctico que la salida Q siga a la entrada D


frente a cualquier cambio. Ya que si se produce una señal indeseada en D, esta
pasará inmediatamente a la salida S. Para tener un control sobre la salida,
podemos adicionar una señal de control o habilitación del LATCH:

Adicionemos una línea de habilitación partiendo del LATCH SR con señal de


control:

D S Q
LATCH Q
R SR con
C C Control Q Q

LATCH DATA CON SEÑAL DE CONTROL.

Diagrama de ESTADOS para el LATCH DATA CON LÍNEA DE CONTROL:

CD
11

0X Ó 0 1 0X Ó 11
10
10
UN
46
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Ejercicio 4
1. Elabora una tabla de verdad y halla la función lógica para el LATH
DATA.
2. Simplifica la función lógica obtenida y verifica los datos que ésta
entrega.
3. Elabora un diagrama de tiempos para le LATH DATA.

47
Lección No.7 Latch Tipo JK

1.1.1.7 LATCH TIPO JK:

Al juntar las señales S y R del LATCH SR mediante una inversora, no solo


eliminamos el estado prohibido, sino, que también eliminamos el interesante
estado de permanencia.

¿Cómo podemos eliminar el estado prohibido, sin eliminar el estado de


permanencia?

Para lograrlo, partiremos del LATCH Data:

De acuerdo a la tabla de verdad del LATCH DATA, podemos interpretar éste como
un seguidor de la entrada, tengamos esto en cuenta para nuestro diseño:

D Q

Q
Observa también que para el siguiente circuito retroalimentado, si la salida es
inicialmente cero, ésta continuará siendo cero a pesar de los cambios de estado
que se produzcan en la señal de entrada:

0
0
010

Igualmente, si el estado de la salida es inicialmente un 1, éste se conservará sólo


mientras la entrada sea un 0. Una vez que la entrada asuma el valor de 1 la salida
será cero y el circuito quedará enclavado en salida cero.

1
1
0 1
UN
48
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Ahora, analicemos el mismo circuito pero con las señales de entrada invertidas:

1 0
1
010

Tendremos el efecto inverso: Si la salida es inicialmente un 1, ésta seguirá


siendo uno, sin importar el estado de la señal de entrada.

0 1
0
0

Igualmente, si el estado de la salida es inicialmente un 0, éste se conservará sólo


mientras la entrada sea un 0. Una vez que la entrada asuma el valor de 1 la salida
será uno y el circuito quedará enclavado en salida uno.

Conclusión:

0 1 0
0 1

Circuito para enclavar un cero Circuito para enclavar un uno

Si procedemos a juntar los dos circuitos tendremos:

0
0
K
0

Observa como en las condiciones de la gráfica, solo la entrada J podrá cambiar el


estado de la salida tomando el valor de 1. Pero una vez en este estado, solo K
podrá cambiar el estado de la salida.
49
Lección No.8 Resumen Latch Tipo D
---La Clave:----
Como en un LATCH TIPO DATA, la salida es transparente a la entrada,
podemos adicionar el LATCH D sin afectar neustro diseño, lo que nos
permitirá generar ~Q y CONSERVAR EL ESTADO almacenado, siempre y
cuando le adicionemos luego una señal de control C, de lo contrario, no
tendrá sentido adicionar el LATCH TIPO DATA:

K LATCH
D0
DATA
J Q Q

LATCH JK
Ahora que logramos llegar tan deliciosamente (mediante un proceso analítico) a un
diseño interesante, como lo es el de un LATCH JK, usaremos las herramientas
que aprendimos en lógica matemática y sistemas digitales básicos, tales como
tablas de verdad y simplificación de funciones lógicas, para llegar al mismo diseño,
si bien mecánicamente, no de una manera menos divertida:

Partimos de la tabla de verdad de la función lógica deseada:


Entrada de excitación
Estado Estado
actual siguiente
SET RESET Nombre de la
Función
deseada Función

J K Q Q*

0 0 0 0 PERMANECE
0 0 1 1 Q no cambia
0 1 0 0
RESET
0 1 1 0
1 0 0 1
SET
1 0 1 1
ESTADO
1 1 0 1
COMPLEME
1 1 1 0
NTARIO
UN TABLA DE ESTADOS LATCH JK
50
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Función lógica deseada:

Q* = J’K’Q + JK’Q’ + JK’Q + JKQ’

Simplificación usando mapas de K:

K’Q’ K’Q KQ KQ’


00 01 11 10
J’ = 0 0 1 0 0
J =1 1 1 0 1

Función lógica deseada:

Q* = JK’ + K’Q

Circuito lógico correspondiente a la función lógica simplificada:

K’Q
K
K’ LATCH
D0 DATA
J JQ’
Q Q

LATCH JK
Llegamos a obtener el mismo circuito, pero, ¿recuerdas que justifica la presencia
del LATCH DATA? ...Busca la respuesta en la siguiente página...

51
1.1.1.7.1 LATCH TIPO JK CON SEÑAL DE CONTROL:

Resumen

Recordemos, que el LATCH SR nos dio la posibilidad de desenclavar sin


desenergizar pero usando dos señales de entrada diferentes (S y R), luego el
LATCH D nos otorgó la misma posibilidad con una sola señal de entrada a cambio
de esto, desapareció el estado de permanencia y el estado prohibido.
Posteriormente, adicionamos una señal de control al LATCH D para no perder el
dato almacenado. Luego, el LATCH JK nos permitió adicionar la propiedad de
permanencia perdida con el LATCH D, y eliminó el estado prohibido convirtiéndolo
en el estado complementario.

Ahora, con el objeto de conservar el dato de la salida, adicionemos una señal de


control:

K’Q
K
K’ D0
Q Q
J LATCH
JQ’
C DATA Q Q
C

LATCH JK
Línea de Control

UN
52
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Lección No.9 Latch tipo Toggle

1.1.1.8 LATCH TIPO TOGGLE:

Este latch también es conocido como latch tipo T.

Toggle significa cambiar alternadamente el estado de la salida cuando se genere


un cambio de flanco en la entrada T.

Entrada de excitación
Estado Estado
actual siguiente
TOGGLE SET RESET
Función Nombre de la
deseada Función

T J K Q Q*

0 0 0 0 PERMANECE
0
0 0 1 1 Q no cambia
ESTADO
1 1 0 1
1 COMPLEMENTA
1 1 1 0
RIO
Observemos que de la siguiente tabla de estados para el latch Jk podemos
obtener la función deseada restringiendo el la tabla a la función de estado
complementario y de permanencia únicamente:

Como J y K tienen el mismo valor, éstas pueden unirse en una nueva función que
llamaremos togglie T

T J 0LATCH
JK
K
Q Q
LATCH T

En conclusión, el latch tipo T siempre estará cambiando el estado de la salida por


cambio en el estado de la señal de entrada.

53
1.1.1.8.1 LATCH TIPO T CON SEÑAL DE CONTROL:

Para controlar el latch, introducimos la señal de control:

T 0
J D
K C Q Q
C

LATCH T
Con señal de control
Línea de Control

UN
54
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Lección No.10 Multi-vibradores

1.8 Circuitos de aplicación

1.8.1 Multi-vibradores

Monoestable o One-shot:

• Son circuitos de almacenamiento digital con un único estado estable.

• Se pueden llevar temporalmente a un estado transitorio mediante un


cambio de estado, es decir mediante una transición de 0 a 1 o 1 a 0 en su
entrada:

1
One-Shot

IN
0

Flanco de subida Tiempo controlado por


la red RC externa.
1
One-Shot

IN
0

Flanco de bajada
Con uno de los dos flancos se produce un cambio de
estado en la salida.

55
• El One-Shot conservará su salida en el nuevo estado durante el tiempo
especificado por una red RC que se conecta en sus pines.

Los One-Shot puedenser:

1. Redisparables:
Si se produce una transición en su entrada, éste vuelve a comenzar
el ciclo de tiempo programado, descartando el tiempo ya contado.
Ej: SN74122 y SN74123.

2. No Redisparables:
Si ya se ha iniciado un ciclo de tiempo, cualquier cambio producido en
las entradas es ignorado hasta que finalice el ciclo de tiempo
programado.
Ej: SN74121.

UN
56
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Lección 11. Multi-vibradores

1.8. 2 CIRCUITOS DE TIEMPO

1.8.2.1 MÓDULO TEMPORIZADOR DE PRECISIÓN 555:

Es un dispositivo de memoria que se utiliza para muchas aplicaciones, pues puede


configurarse para ser utilizado como monoestable o one-shot y como un
multivibrador astable o reloj.

8
Vcc Cont
5

7 DISCH

4
RESET
R1
R
6 THRES AO1
R
R Out 3
AO2 Q
2 TRIG
S
R Q1

GND
1

La siguiente lista es un resumen de las funciones de los pines:

Vcc: Voltaje entre 4.5V y 8V DC.

CONT: Control. Normalmente conectada a tierra por medio de un


condensador de 0.01µf con el fin de obtener mejor estabilidad
en la frecuencia de salida del sistema.

RESET: Pin de poner a cero activo en bajo.


Pin 4 = 0 
→ Pin 3 = 0
DISCH: Descarga. (Discharge)

57
Si la salida Q del latch se pone en uno, este pin 7 será
conectado internamente a tierra por medio del transistor de
descarga Q1, ya que un nivel alto en la base del transistor lo
llevará a la región de saturación o estado de ON.

Pin 3 = 0 
→ Pin 7 = GND
Por el contrario, si la salida Q del latch se pone en uno, este
pin 7 estará aislado o en estado de alta impedancia, ya que un
nivel bajo bajo en la base del transistor lo llevará a la región de
corte o estado de OFF.

Pin 3 = 1 
→ Pin 7 = ↑ Z
Los pines Threshold y Trigger son las entradas que controlan las salidas de los
comparadores analógicos AO1 y AO2. La salida de cualquier comparador es 1
lógico si su entrada superior tiene un voltaje mayor que su entrada inferior.

Los voltajes de referencia para las comparaciones son de 2/3 Vcc para AO1 y 1/3
Vcc para AO2. Estos voltajes se obtienen mediante el divisor de tensión formado
por las tres resistencias iguales R.

THRES: Límite superior, Umbral (threshold) o entrada del comparador


superior AO1.

Si el voltaje en este pin 6 es mayor que dos tercios de Vcc (2/3


Vcc), será aplicado un 1 lógico a la entrada R del latch
borrándolo, lo que podrá en cero la salida 3, ya que este pin
esta conectado internamente a la salida negada del latch –Q
conectada al inversor. Ver nota 1.

2Vcc
Threshold > 
→ Pin 3 = 0
3

UN
58
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

TRIG: Disparador o Trigger.


Si esta entrada 2, es inferior a 1/3 de Vcc, se aplica un 1 lógico
a la entrada S del latch (estableciéndolo), lo que pone un 1
lógico en el pin 3 del integrado. Ver nota1.

Vcc
Trigger < 
→ Pin 3 = 1
3
Disparo: Definimos el disparo como una transición de alto a
bajo en el pin 2.

Trigger de 1 a 0 
→ Pin 3 = 1
Nota:
Se debe tener cuidado de no producir el estado prohibido del latch: S = R = 1.

En conclusión podemos resumir las funciones de los pines como sigue:

RESET Desactivar
Pin 4 = 0 
→ Pin 3 = 0
DISCHARGE A tierra o
Pin 3 = 0 
→ Pin 7 = GND descarga.
Alta
Pin 3 = 1 
→ Pin 7 = ↑ Z impedancia
o Carga.
THRESHOLD
2Vcc Comparador
Threshold > 
→ Pin 3 = 0 del nivel
3 superior.
Como
Vcc comparador
TRIGGER Trigger < 
→ Pin 3 = 1 de nivel
3 inferior.

Como
Trigger de 1 a 0 
→ Pin 3 = 1 disparo.

59
Aprovechando estas propiedades del 555 podemos configurarlo como:

Lección No.12 555 como astable:


Vcc

RA 8
Vcc
4 RL
RESET
7
DISCH Señal cuadrada
RB 6 3
THRES Out
2 5
TRIG Cont
C
GND 0.01µf
1

Sensores de nivel

C = Condensador de fijación de tiempo.


RA = Resistencia de Carga.
RB = Resistencia de Carga y descarga.
RL = Resistencia de Carga. Load. (Carga aquí tiene el sentido de peso
o trabajo).

Funcionamiento:

Básicamente para que en el sistema se comporte como un astable, sin


necesidad de entradas para funcionar, hacemos que el 555 se dispare a sí
mismo, activando y desactivando las entradas de disparo y de límite mediante
un circuito RC.

UN
60
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

I) Carga y Descarga:

3 Cuando el pin 7 este en estado de alta impedancia el condensador de


fijación de tiempo estará cargándose por medio de las resistencias RA y RB,
Lo que se dará mientras la salida 3 esté en 1 lógico.

En conclusión, si denominamos Tc el tiempo de carga, podemos


calcularlo como:
Tc = 0.693 × (R A + R B ) × C
4 Cuando el pin 7 este conectado a tierra el condensador de fijación de tiempo
estará descargándose por medio de la resistencia RB, Lo que se dará
mientras la salida 3 esté en 0 lógico.

Td = 0.693 × R B × C
Esto nos permite calcular el tiempo de descarga Td como:

Como el tiempo de carga Tc coincide con un 1 lógico en la salida,


podemos llamar a este tiempo el tiempo de ON o TON. Igualmente Td
puede ser denominado tiempo de OFF o TOFF, ya que durante este la
salida permanece en 0 lógico.

II) Ciclo repetitivo:

1. Inicialmente el condensador de fijación de tiempo está descargado.


2. El comparador inferior leerá que su entrada superior(Directa) es mayor
que la inferior(Inversora) generando un 1 lógico en el pin SET del
latch, esta acción pondrá en 1 lógico la salida 3.
3. Un 1 lógico en la salida dará inicio al proceso de carga a través de las
resistencias RA y RB, hasta que el voltaje en los pines Disparador y
Límite sea lo suficientemente alto como para generar un cambio de
estado en el latch SR interno. Tal que R=1 y S=0.
4. Cuando el pin 6 de límite llegue a un voltaje mayor que 2/3 de Vcc el
comparador superior generará un 1 lógico en el pin R del latche, esta
acción pondrá en 0 lógico la salida 3 conectando internamente a
tierra el pin 6 para permitir la descarga del condensador C por medio
de la resistencia RB, hasta que el voltaje sea lo suficientemente bajo
como para poducir R=0 y S=1.
5. Una vez producido el estado R=0 y S=1 estaremos en el paso inicial de
condensador descargado generándose un ciclo que se repetirá
indefinidamente.

61
Notas:
a) Obsérvese que con esta conexión estamos evitando el estado prohibido del
latch R=1 y S=1.
b) Por los pines 6 de Umbral y 2 de disparo no circula corriente hacia el circuito
integrado, es decir, que no existen para el condensador. Esto se debe a que
las entradas de comparadores son de muy alta impedancia.
c) El pin de RESET permanecerá desactivado para que el latch funcione.

Observaciones:
Aplicando la ley distributiva para la ecuación de Tc obtenemos:

Tc = 0.693 × R A × C + 0.693 × R B × C
Como se ve, en esta ecuación esta presente el tiempo de descarga Td, luego:
Tc = 0.693 × R A × C + Td
Luego el tiempo de carga siempre será mayor que el tiempo de descarga en
una cantidad igual a 0.693RAC gráficamente podemos darle la siguiente
representación:

Vcc
2/3 Vcc

1/3 Vcc

0.693RAC Td Td

TON = Tc TOF
Por esta razón siempre que necesitemos calcular RA y RB dados los tiempos de
carga y descarga, es necesario comenzar por la ecuación que contiene el
tiempo de descarga.

Teniendo en cuenta lo anterior, si fijamos el valor del condensador de tiempo,


podemos obtener los valores de RA y RB usando las siguientes ecuaciones:
Td
RB =
0.693 × C
Tc - Td
RA = con Tc > Td
0.693 × C
UN
62
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Lección 13. FRECUENCIA DE OSCILACIÓN

1.8.2.1 FRECUENCIA DE OSCILACIÓN:

Recordemos algunos conceptos:

Periodo:
Es el tiempo que emplea la señal para repetirse y esta dado en segundos:

T
Son dos formas de
T
medir el período de la
.
señal
Frecuencia:
Es el número de veces que se repite la señal por unidad de tiempo y está
dada en 1/s es decir en Hertz Hz

Conociendo el periodo podemos hallar la frecuencia y conociendo la


frecuencia podemos hallar el periodo.

La frecuencia f de oscilación puede determinarse como el inverso del


periodo T. Así:

1
f =
T

63
Cálculo de la Frecuencia de oscilación:

La frecuencia de oscilación depende del valor de las resistencias RA , RB y


del capacitor C. Dividiendo la señal de salida en dos componentes de
tiempo que llamaremos TON y TOFF, podemos calcular el periodo de la señal
como la suma de dichos tiempos y con ellos calcular la frecuencia de
oscilación:

TON TOFF

Periodo de la señal:

T = TON + TOFF
T = TC + TD
T = (0.693 × R A × C + TD ) + TD
T = 0.693 × R A × C + 2TD
T = 0.693 × R A × C + 2 × 0.693 × RB × C
T = 0.693 × C × (R A + 2 × RB )
T = 0.693C (R A + 2 RB )

Frecuencia de oscilación:
1
f =
TON + TOFF
1
f =
0 .693 C (R A + 2 R B )
1, 44
f =
C (R A + 2 R B )
UN
64
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Observemos que en la última ecuación hay tres incógnitas, por lo tanto para
obtener una frecuencia en particular es necesario suponer el valor de dos
componentes (parámetros) para calcular luego el faltante.

Si los parámetros conocidos son C y RA podemos usar la siguiente fórmula


para calcular el parámetro desconocido RB:

1,44
RB = − RA
2× f ×C
1,44 − R A × f × C
RB =
2×f × C

Si los parámetros conocidos son C y RB podemos usar la siguiente fórmula


para calcular el parámetro desconocido RA:

1,44
RA = − 2 × RB
f ×C
1,44 − 2 × R B × f × C
RA =
f ×C

65
Lección 14. 555 como monoestable

1. 555 como monoestable, one-shot, timer o temporizador:

Vcc

8
RS RC
Vcc
4 RL
RESET
7 Pulso de
DISCH
6 3 duración T
THRES Out
2 5
TRIG Cont
C 0.01µf
GND

Disparo Censor de nivel

RC = Es la resistencia de carga.

RS = Es la resistencia del Switch para reestablecer Vcc.

Funcionamiento:
Cuando se produzca el disparo la salida saltará a 1 lógico cambiando la
salida, de modo que el estado regresa en forma automática a su valor
predefinido después de cierto tiempo de carga del condensador T calculado
por la red de carga RC como:

T = 1.1× R C × C

UN
66
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Este será el tiempo estimado para que el condensador llegue al nivel de


Threshold. Una vez superado este nivel el comparador superior pondrá la
salida en 0 lógico, descargando casi instantáneamente el condensador.

En este caso la descarga del condensador no afecta la entrada de disparo,


la cual estará “esperando” siempre la señal externa del pulsador.

El tiempo T es también llamado período de temporización.

Este monoestable es No Redisparable:


Si producimos un disparo mientras la salida está en ON, el condensador
continuará su carga normal, en otras palabras no le “hará caso” al nuevo
disparo.

67
Lección 15. Flip-Flops.

Los Flip-Flops no son mas que latch con señal de control. A diferencia de los
Latch sin señal de control, éstos se pueden habilitar o deshabilitar a discreción.

Esta línea de control, recibirá ahora el nombre de señal de Reloj o CLK (Clock).

Recordemos que cuando la señal de reloj tienen una línea superior, ésta hace
referencia al complemento que se estudió en Lógica Matemática. Es decir, la línea
es habilitada en bajo:

CLOCK

En este caso, si se desea mantener deshabilitado el Flip-Flop, debes mantener en


1 la señal de Reloj.

Si la línea de CLOK no tiene ninguna raya superior, el Flip-flop se deshabilita con


un cero (0).

A continuación se representa gráficamente una señal de reloj, el cambio del nivel


alto al nivel bajo recibe el nombre de flanco de Bajada y el cambio de nivel bajo a
nivel alto recibe el nombre de flanco de subida.

Flanco de
Bajada
Nivel alto

Nivel Bajo
Flanco de
Subida

UN
68
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Los Flip-Flop se activan en un flanco determinado de la señal de reloj, ya


sea el flanco de subida o el flanco de bajada. Para representar el tipo de
flanco en que es activado el Flip-Flop, usamos la siguiente representación:

La señal introducida por el pin de flanco, también se denomina señal de


control o señal de reloj. Para indicar esto, usamos la palabra CLK (por el
nombre en inglés para reloj CLOCK)

2.1 Flip-Flop activo por Flanco Positivo y Flanco Negativo:

2.1.1 Flip-Flop activo por flanco Positivo:

LATCH
D0 JK
Q Q
Señal de reloj

Flip Flop Tipo Data Activo Por Flanco Positivo

2.1.2 Flip-Flop activo por flanco Negativo:

LATCH
D0 JK
Q Q
Señal de reloj

Flip Flop Tipo Data Activo Por Flanco Negativo

69
Lección No.16 Circuitos generadores de Flanco.

2.1.3 Circuitos generadores de Flanco:

Observemos la siguiente situación:

En un Flip-Flop tipo Data activo por Flanco Positivo, mientras la señal de reloj está
activa, indeseablemente, es decir en 1 lógico, cualquier pequeño cambio que se
halla producido en los niveles de la señal de entrada Data (D) podrá generar
cambios en la salida, éstas señales así generadas reciben el nombre de
transcientes indeseables o ruido. Con el ánimo de evitar este ruido, proponemos a
continuación un circuito detector de flancos, tal que un flanco de subida generado
en la señal de reloj, genera únicamente un pequeño pulso en la nueva señal de
reloj de salida, siempre y cuando se trate del circuito diseñado para detectar
flancos de subida, igualmente debe ocurrir con el circuito diseñado par detectar los
flancos de bajada; se debe generar un pequeño pulso, únicamente cuando en la
señal de reloj se produzca un flanco de bajada.

UN
70
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Señal de reloj original:

Flanco de
Bajada
Nivel alto

Nivel Bajo
Flanco de
Subida
Señal de reloj a la salida del circuito detector de flancos de bajada:

Nivel alto

Nivel Bajo

Señal de reloj a la salida del circuito detector de flancos de subida:

Nivel alto

Nivel Bajo

71
Diseño de Sistemas síncronos en VHDL:

Recordemos que lo que diferencia a un sistema síncrono de un sistema asíncrono


es la presencia de una señal de reloj que normalmente se está representada por
las letras CLK.

En un flip-flop síncrono los datos de las señales de entrada se transfieren a las


salidas del flip-flop sólo con el flanco de disparo del impulso del reloj. Por esto
decimos que decimos que los datos se transfieren sincronizados con la señal de
reloj.

Para definir un sistema síncrono en VHDL, simplemente debemos generar un


proceso que involucre un ciclo de espera relacionado con la variable de entrada de
la señal del reloj clk como condición para ejecutar el proceso.

Diagrama de flujo para detectar un cambio de flanco en la señal de reloj:

CLK = 0

¿CLK = 1? NO

Se ha generado un
NO flanco de subida.
¿CLK = 0?

Se ha generado un
flanco de bajada.

En VHDL es más fácil, dado que existe una función que evalúa tanto un cambio en
el estado de la señal de reloj como la espera del tipo de flanco par tomar una
acción:

UN
72
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

La instrucción VHDL es la siguiente:

if clk'event and clk='1' then

Aquí van las instrucciones a ejecutar luego de la señal de


reloj.

end if;

En este algoritmo, la función de la palabra clk'event es la de detectar los cambios


en la señal de reloj clk y la función de de la clk='1' es la de detectar el flanco de
subida del reloj.

Las instrucciones en VHDL para detectar el flanco de bajada de reloj es la


siguiente:

if clk'event and clk='0' then

Aquí van las instrucciones a ejecutar luego de la señal de


reloj.

end if;

73
Flip Flop Tipo Data con circuito detector de Flanco:

LATCH
D0 JK
Cto detector Q Q
de Flanco

Nueva señal de
reloj
Flip Flop Tipo Data con circuito detector de Flanco

Diseño de los circuitos generadores de flanco:

Circuito generador de flanco de subida:

CLK Nueva señal de reloj

Circuito generador de flanco de bajada:

CLK
Nueva señal de reloj

Ejercicio 5
1. Se propone al estudiante demostrar la operabilidad del diseño, se
recomienda usar diagramas de tiempos y funciones lógicas para
construir la tabla de excitación.

UN
74
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

VHDL Flip-flop Data síncrono.

Recordemos que en un flip-flop síncrono los datos de las señales de entrada se


transfieren a las salidas del flip-flop sólo don el flanco de disparo del impulso del
reloj. En otras palabras, decimos que los datos se transfieren sincronizados con la
señal de reloj.

las entradas de los datos se transfieren

Recordemos la tabla de estados del flip-flop tipo Data asíncrono:

D Qn Qn+1
0 0 0
0 1 0
1 0 1
1 1 1

Recordemos la tabla de estados del flip-flop tipo Data síncrono:

Clock D Qn Qn+1
010 0 0 0
010 0 1 0
010 1 0 1
010 1 1 1

library ieee;
use ieee.std_logic_1164.all;

Definición de la entidad:
En la entidad definimos el nombre de la unidad funcional que estamos creando
(entidad), definimos las señales de entrada, que en este caso serán la señal de
reloj clk y la señal data representada en la letra d, y finalmente definimos la señal
de salida q, recordemos que para definir estas variables como entradas y salidas
usamos las palabras clave in y out respectivamente.
entity biestD is port(
clk,d: in std_logic;
q: out std_logic);
end entity;

Observemos que también se definió el tipo de variable como std logic.

75
Definición de la arquitectura:

En la arquitectura definimos la función lógica que determinará el comportamiento


del sistema como un flip-flop tipo data; dado que en un flip-flop data la señal de
salida Q sigue a la entrada D, éste queda bien representado por la instrucción:
q<=d

Equivalente a d llévele q, a la salida llévele la entrada.


Como se trata del diseño de un sistema síncrono en VHDL debe determinarse si el
flip-flop será activado por flanco de subida o por flanco de bajada. Para éste flip-
flop usaremos el flanco de bajada, luego la instrucción de detección de flanco
deberá ser clk='0'

Definidas éstas características el flip-flop data síncrono, activo por flanco de bajada
queda completamente definido así:

architecture archbiestD of biestD is


begin
p: process(clk,d)
begin

if clk'event and clk='1' then

q<=d;

end if;

end process;
end;

UN
76
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Aplicaciones de los Flip-Flop:

Dispositivos de almacenamiento
La unidad más elemental de memoria es el FLIP.FLOP, la cual nos permite
almacenar 1 bit. En esta lección veremos como un arreglo de bits nos permite
diseñar un registro o vector de almacenamiento.

Los arreglos de registros constituyen lo que llamamos una MEMORIA.


Lección 17. Almacenamiento paralelo de datos

En la puerta de un ascensor hay un contador de personas que va de 0 a 15.


Se requiere almacenar el número de personas que ingresaron al ascensor a
las 8:00AM como parte de un conjunto de estadísticos que requiere la
administración.

Para proceder al diseño del contador, debemos partir de determinar el número de


bits requeridos para representar un número decimal de 0 a 15 y éstos son cuatro
bits, es decir un nible.

Con un sistema binario se requieren cuatro bits, ya que dos a la cuatro es 16,
luego son 16 combinaciones diferentes para 16 números decimales..

Q Q0
D0 D0
Q Q

Q1
D1 D0 Q
Q Q

Q2
D2 D0 Q
Q Q

Q3
D3 D0 Q
Q Q

CLK
77
CLK

Q0 0 0 1 0 1 0 1 0
1

Q1 0 0 1 1 0 0 1 1 0

Q2 0 0 0 0 1 1 1 1 0

Q3 0 0 0 0 0 0 0 0 1

0 1 2 3 4 5 6 7 8

Números decimales equivalentes


La administración ahora requiere que el número de personas que ingresa al
ascensor a las 8:00AM se sume al número 1.

Para dar solución a este nuevo requerimiento, es necesario garanticar que


el contador inicie en 1 a las 7:30AM, y continúe el conteo. En este caso se
requiere controlar el estado de las salidas Q0, Q1, Q2 y Q3 sin importar que
haya iniciado o no la secuencia de reloj.

Este nuevo estado lo denominamos PRESET o SET asíncrono, ya que debe


permitir cargar un dato inicial de conteo independientemente del estado de
la señal de reloj.

Igulamente, cuando el estado a almacenar en las salidas Q0 a Q3 es un


cero, la señal recibe el nombre de CLEAR (CLR) o RESET asíncrono.

UN
78
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Circuitos de PRESET y RESET asíncronos:

RESET

S
Q

R ~Q

PRESET

Actividad:
Consultar el circuito integrado 74LS74, 74LS175

Ejercicio:

Diseñe el circuito requerido para almacenar el número de personas que ingresan al


ascensor utilizando un flip-flop tipo data con las nuevas señales de PRESET y
RESET.

79
VHDL F-F tipo D con puesta a cero y a uno asíncronas:

La mayoría de los circuitos integrados flip-flop aparte de las entradas síncronas,


también pueden tener entradas asíncronas. Estas entradas no dependen de la
señal de reloj para cambiar el estado de las señales de salida del flip-flop.

Estas señales reciben el nombre de inicialización o preset (PRE)y señal de borrado


ó clear (CLR).

La señal de preset permite poner en estado de SET el flip-flop y la señal de CLR


pone en estado de RESET el flip-flop.

Normalmente estas señales son activas en bajo, luego estas señales deben
mantenerse en alto para que el dispositivo pueda funcionar.
library ieee;
use ieee.std_logic_1164.all;

Definición de la entidad:
Para el proceso de declaración de variables es necesario definir aparte de las
señales clk, d y q, declarar las señales de entrada set y reset:
entity biestD is port(
clk,d: in std_logic;
set,reset: in std_logic;
q: out std_logic);
end entity;

Definición de la arquitectura:
Para lograr que las señales de SET y de RESET no estén afectadas por la señal
de reloj es necesario que en el ciclo
architecture archbiestD of biestD is
begin
p: process(clk,d,set,reset) Donde se
begin verifican los
if reset='1' then q<='0'; estados de
RESET Y SET
elsif set='1' then q<='1';
elsif clk'event and clk='1' then
q<=d;
end if; Flip-flpo Data
síncrono activo
end process; por flanco de
end; subida.

UN
80
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Divisor de frecuencia:

Vcc

Q1 Q2
J J f/4
f/2

Frecuencia C C
de entrada f

K K

Al conectar dos flip-flops se obtiene un divisor de frecuencia por 2


Al conectar dos flip-flops se obtiene un divisor de frecuencia por 4

¿Cuantos flip-flops se deben conectar para obtener una frecuencia de 3 Khz a


partir de una frecuencia de 24KHz?

Una forma de deducir la función que permita resolver el problema es partir del
diagramas de tiempos.

81
Lección 18. Contadores:

Contadores Asíncronos

Para dar continuidad al diseño del circuito contador de personas en el ascensor,


procedemos ahora a diseñar el circuito contador de eventos, en este caso los
eventos son los pulsos generados cada que una persona cruza el ascensor para
ingresar en éste.

Con el conteo es de máximo 15 personas, el contador debe ser módulo 16; un


contador que genere la secuencia de cero a 15, para lo cual se requieren
únicamente cuatro bits.

Ejercicio
1. . Siga la secuencia del diagrama de tiempos e identifique a Q0,Q1, Q2 y
Q3 en el esquema del contador.
2. 2. Consulte los siguientes circuitos integrados: 74160, 74163, 74176,
74177, 74191 y 74293.

UN
82
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

VHDL Contadores:

Contador ascendente-descendente con carga paralela síncrona y reset asíncrono:

Clk

Datos de Salida
precarga Contador Vector q
Vector d

Up Load Reset

Up = 1 indica conteo ascendente


Load = 1 carga los datos de entrada en la salida luego de un flanco de subida en
la señal de reloj
Reset = pone todas las señales de salida en bajo
Clk = Señal de reloj

Definición de paquetes:
Antes de iniciar el programa es necesario hacer algunas aclaraciones sobre los
paquetes a usar . En palabras de Medrano C.(2005):

“std_logic_arith
Define el tipo unsigned y la operación suma "+" de unsigned con enteros

std_logic_unsigned
Este paquete puede tratar en ciertas situaciones un std_logic_vector como
un unsigned (y sumarlo a un entero por ejemplo).

buffer
Permite usar variables de salida a la derecha de ecuaciones.

Sobre vectores:
Es importante recordar que en la definición de un vector como 3 downto 0,
el bit 0 es el menos
significativo.

Un vector definido como x"00" es un vector hexadecimal que equivale a 8 ceros


binarios.”
library ieee;
use ieee.std_logic_1164.all;
83
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity contador is port(


clk,load,up,reset: in std_logic;
d: in std_logic_vector(7 downto 0);
q: buffer std_logic_vector(7 downto 0));
end entity;

Diagrama de flujo del algoritmo desarrollado en la arquitectura:

CLK = 0

SI
¿Reset = 1? Q=0

NO

NO
¿ ?

¿ Load= 1? SI
Q=D

¿ up = 1? SI
Q= Q + 1

Q= Q - 1

UN
84
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Algoritmo en VHDL equivalente:

architecture archcontador of contador is

begin
p: process(clk,d,q,load,up,reset) Reset
begin asíncrono
if reset='1' then q<=x"00";
elsif clk'event and clk='1' then
if load='1' then q<=d;
Precarga
elsif up='1' then q<=q+1; síncrona
else q<=q-1;
end if;
end if;
end process;

end architecture;

85
Modelo de un circuito Secuencial:

Un circuito secuencial es en realidad una Máquina de estados ó máquina


generadora de estados ó etapas ó secuencias. Por ejemplo: en un circuito que
genera los estados o secuencias 1 – 2 – 3 – 1 – 2 – 3 – 1 – 2 – 3, llamamos a cada
momento de la secuencia un estado.

Etapas de un circuito secuencial:

Un circuito secuencial está conformado por dos etapas: una etapa lógica y una
etapa de memoria.

Etapa lógica:

Es la etapa conformada por circuitos combinacionales. A esta etapa ingresan tanto


las entradas (I0, I1,…Im) como las variables de estado (Q0,Q1,…Qx), para generar
las entradas (Y0,Y1, …,Yp) de excitación a la etapa de memoria.

Etapa de memoria:

Es la etapa que está conformada por las unidades de memoria ó flip-flops. Esta
etapa permite al sistema avanzar de un estado denominado estado actual a un
estado futuro (Q0,Q1,…Qn) también denominado estado siguiente está
determinado por las líneas de excitación (Y0,Y1, …,Yp) y el estado actual de las
variables de estado (Q0,Q1,…Qx)

Circuito secuencial sincronizado:

Es el circuito secuencial que tienen una entrada de reloj en la etapa de memoria.


Un impulso de reloj permite el avance entre el estado actual y el estado siguiente o
futuro.

1. Diagrama de estados:

Este diagrama permite mostrar la progresión de los diferentes estados por los que
va avanzando el sistema.

El diagrama de estados o circuito secuencial más básico es el de un contador, el


cual no posee más señales de entrada que la señal de reloj.

A continuación se presenta un diagrama de estados de un contador de 0 a 7:

UN
86
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

6 1

7 3

5 2

Como se trata de diseñar un sistema digital, debemos construir el diagrama de


estados en binario:

000

110 001

111 011

010
101

100

87
Tabla de estados:
La tabla de estados consiste en la representación del diagrama de estados
mediante una tabla en la cual cada fila corresponde a un estado:

Veamos la tabla de estados equivalente al diagrama propuesto:

Secuencia deseada Q2 Q1 Q0
0 0 0 0
1 0 0 1
3 0 1 1
2 0 1 0
4 1 0 0
5 1 0 1
7 1 1 1
6 1 1 0

2. Tabla del estado futuro

La tabla del estado futuro muestra cada estado actual del contador con su
correspondiente estado futuro, es decir, con el estado al cual pasa el contador
desde su correspondiente estado actual:

Estado actual Estado futuro


Secuencia deseada Q2 Q1 Q0 Q2 Q1 Q0
0 0 0 0 0 0 1 1
1 0 0 1 0 1 1 3
3 0 1 1 0 1 0 2
2 0 1 0 1 0 0 4
4 1 0 0 1 0 1 5
5 1 0 1 1 1 1 7
7 1 1 1 1 1 0 6
6 1 1 0 0 0 0 0

UN
88
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

3. Tabla de los filp-flops a usar:

Es una tabla en la cual se muestran todas las posibles transiciones de salida,


indicando el cambio de la salida Q del flip-flop al pasar éste de cada estado actual
al estado futuro.

Qn es el estado actual del flip-flop

Qn+1 es el estado futuro del flip-flop

X indica los estados indiferentes del flip-flop.

Para el flip-flop JK las entradas son precisamente J y K

Estado Salida Estado Siguiente


actual de cada
estado
Qn Qn+1 J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0

Recordemos que esta tabla nos está indicando tres cosas:

1. Que si el estado actual es 0, el estado futuro se tornará 1 cuando J sea 1


2. Que si el estado actual es 1, el estado futuro se tornará 0 cuando K sea 1
3. En cualquier otra condición el estado actual se conserva en el futuro.

¿Cuantos flip-fliop se requiere usar?

Como se deben generar tres salidas Q0, Q1 y Q2. Se requiere de tres flip-flop para
generar cada un de ellas.

Lo que debemos lograr ahora es generar las señales de entrada J y K para cada
uno de los flip-flop, tal que se generen las transiciones de estado que se plantean
en la tabla de estados.

Es decir, necesitamos generar los estado futuros Qo, Q1 y Q2 de los estados


actuales dados, ¿cómo deberán ser entonces J0K0, J1K1 y J2K2 para que éstos
cambios de estado se generen?

89
Como las salidas de los flip-flop Q0, Q1 y Q2 no son sistemas aislados, es decir,
deben interactuar todos juntos, los estados de las variables J y K de cada flip-flop
deberán armonizar con los estados de Q0,Q1 y Q2.

Analicemos el caso de Q0:

Tomemos los valores de Q0 de la tabla de estado y veamos que valores deben


tomar J0 y K1 para generar las transiciones de Q0 de acuerdo con la tabla del flip-
flop JK:

Qn Qn+1
J0 K0
Secuencia deseada Q0 Q0
0 0 1 1 X La
1 1 1 X 0 correspondencia
3 1 0 X 1 con el flip-flop
2 0 0 0 X debe buscarse
horizontalmente
4 0 1 1 X
5 1 1 X 0
7 1 0 X 1
6 0 0 0 X

Para obtener las funciones de J0 y K0 debemos realizar el mapa de Karnaugh de


J0 y K0 el cual, como ya lo habíamos analizado debe depender de Q0, Q1 y Q2.

Secuencia
Q2 Q1 Q0 J0 Q2 Q1 Q0 K0
deseada
0 0 0 0 1 0 0 1 X
1 0 0 1 X 0 1 1 0
3 0 1 1 X 0 1 0 1
2 0 1 0 0 1 0 0 X
4 1 0 0 1 1 0 1 X
5 1 0 1 X 1 1 1 0
7 1 1 1 X 1 1 0 1
6 1 1 0 0 0 0 0 X
Mapas de Karnaugh:

UN
90
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Mapa de Karnaugh para J0:

Q1’Q0’ Q1’Q0 Q1Q0 Q1Q0’


00 01 11 10
Q2’ = 0 1 x x 0
Q2 = 1 1 x x 0

Función lógica de J0:


J0 = Q1’ + Q0

Mapa de Karnaugh para K0:

Q1’Q0’ Q1’Q0 Q1Q0 Q1Q0’


00 01 11 10
Q2’ = 0 x 0 1 x
Q2 = 1 X 0 1 x

Función lógica de K0:

K0 = Q1 + Q0’

Ahora que hemos aprendido a obtener las funciones podemos diseñar una única
tabla de estados que las contenga a todas:

Estado act Estado fut


Q2 Q1 Q0 Q2 Q1 Q0 J0 K0 J1 K1 J2 K2
0 0 0 0 0 0 1 1 1 X 0 X 0 X
1 0 0 1 0 1 1 3 X 0 1 X 0 X
3 0 1 1 0 1 0 2 X 1 x 0 0 X
2 0 1 0 1 0 0 4 0 X x 1 1 X
4 1 0 0 1 0 1 5 1 X 0 X X 0
5 1 0 1 1 1 1 7 X 0 1 X X 0
7 1 1 1 1 1 0 6 X 1 x 0 X 0
6 1 1 0 0 0 0 0 0 X x 1 X 1

91
Mapa de Karnaugh para J1:

Q1’Q0’ Q1’Q0 Q1Q0 Q1Q0’


00 01 11 10
Q2’ = 0 0 1 x x
Q2 = 1 0 1 x x

Función lógica de J1:


J1 = Q1 + Q0

Mapa de Karnaugh para K1:

Q1’Q0’ Q1’Q0 Q1Q0 Q1Q0’


00 01 11 10
Q2’ = 0 x x 0 1
Q2 = 1 X x 0 1

Función lógica de K1:


K1 = Q1’ + Q0’

Mapa de Karnaugh para J2:


Q1’Q0’ Q1’Q0 Q1Q0 Q1Q0’
00 01 11 10
Q2’ = 0 0 0 0 1
Q2 = 1 X x x x

Función lógica de J2:


J2 = Q2 + Q1Q0’

Mapa de Karnaugh para K2:


Q1’Q0’ Q1’Q0 Q1Q0 Q1Q0’
00 01 11 10
Q2’ = 0 x X X x
Q2 = 1 0 0 0 1

Función lógica de K2:

K2 = Q2’ + Q1Q0’
UN
92
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Las funciones Jk de los flip-flop quedan:

J0 = Q1’ + Q0
K0 = Q1 + Q0’
J1 = Q1 + Q0
K1 = Q1’ + Q0’
J2 = Q2 + Q1Q0’
K2 = Q2’ + Q1Q0’

A manera de ejercicio, se deja al estudiante la tarea de construir y verificar el


circuito.

Podemos resumir el diseño de circuitos secuenciales en las siguientes etapas:

Establecer secuencia

Identificar números de estados

Asignación de estados

Tabla de transición

Ecuaciones excitación

Ecuaciones de la salida

Circuito

Básicamente existen dos técnicas para el diseño de circuitos secuenciales


conocidas como circuitos Moore y circuitos Mealy.

Cada etapa de un circuito secuencial recibe el nombre de estado. Así, un contador


de 0 a 5 tendrá seis estados: los estados 0 - 1 - 2 - 3 - 4 -5, en cada uno de éstos
estados se almacena un recuerdo de la historia o estados anteriores del circuito, lo
que permite determinar el estado futuro, en otras palabras, para que un circuito
contador pase del estado 3 al 4, debe saber que su estado anterior es 3 para poder
pasar al estado 4.

93
Lección 19 Circuitos Moor y Meeley

Circuitos Moore:

En éstos circuitos, las salidas únicamente son función del estado.

Circuitos Mealy:

En éstos circuitos, las salidas son función del estado y de las entradas.

Veamos mediante un diagrama la diferencia entre los circuitos Moore y los Mealy:

MOORE MEALY

Transición Variable de entrada


de acuerdo Salida
Estado con el valor
Estado
(Q) de la variable
de entrada
Salida (X)
(Z)
Z = f (... X 1... XI , Q1...., Qi )

Z = F (Q0 ...Q1 )
La salida sólo depende La salida Z depende del
del estado Q, es por estado y del valor de la
esto que la salida Z se variable de entrada.
introduce dentro del
estado

UN
94
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Desarrollemos el concepto partiendo de un ejemplo:


En este ejercicio se diseñará un sistema en el cual la salida Z del circuito sea 1
cuando ingresen tres unos seguidos, es decir, un circuito secuencial que identifica
la secuencia 1-1-1.

Diagrama de bloques del sistema:

x z

CLK
X 0011 10 0 111 101 0 1 1 1 0
Z (Moore) 0000 01 0 000 110 0 0 0 0 1
Z (Mealy) 0000 10 0 001 100 0 0 0 1 0

Diagrama de tiempos

Señal de reloj
CLK

Señal de
entrada
X

Señal de salida
MOORE
Z

Señal de salida
MELY
Z
Circuito
secuencial
95
Mealy.

1/1

0/0
0/0
0/0
B
1/1 1/0 0/0 D
C
C
1/0
1/0

F 0/0

DE OTRA
FORMA Mealy:

1/1

0/0 0/0

B
1/1 0/0
1/0

C
0/0
1/0

UN
96
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

MOORE:

A/1
A/
0 0 1

B/0
0
1
0
C/0 D/0
1

Del ejemplo propuesto podemos concluir que existen diferentes formas de


establecer la secuencia de estados para un mismo comportamiento circuital, a
continuación analicemos otro par de ejemplos en los que partimos de un estado
inicial en ceros:

A continuación veamos dos ejemplos de sistema Moore con entradas en


ceros:

Partimos de definir el estado A como el estado que tomará el sistema en un ciclo


de reloj si en el estado anterior la entrada X=0.

Una vez que nos encontramos en el estado A y X toma el valor de 0 nuevamente,


¿es necesario que el sistema cambie de estado?, la respuesta es no, mientras la
entrada continúe siendo 0, el sistema debe permanecer en el mismo estado A,
esperando a que ingrese un 1.

97
X=0

A/0

X=1
X=0

B/0
X=1
X=0
C/0

X=0 X=1
D/1

Si estando en el estado A ocurre que X = 1, este evento debe memorizarse, lo cual


se logra evolucionando a otro estado (el estado B), en este estado, la salida
continuará siendo cero, ya que sólo se ha detectado un 1.

Si estando en el estado B ocurre que X=0, el sistema debe regresar al estado A


para eliminar el 1 que se había memorizado.

Pero si estando en el estado B, ocurre un 1, éste también debe memorizarse


haciendo que el sistema pase al estado C y la salida del sistema debe ser un 0, ya
que sólo han ocurrido dos unos.

Si estando en el estado C ocurre que X=0, el sistema debe regresar al estado A


para eliminar los dos 1’s que se habían memorizado.

Pero si estando en el estado C, ocurre un 1, éste también debe memorizarse


haciendo que el sistema pase al estado D y la salida del sistema debe ser un 1,
indicando que han ocurrido tres unos seguidos.

Si estando en el estado D ocurre que X=0, el sistema debe regresar al estado A


para eliminar la historia de tres 1’s que se había memorizado.

Pero si estando en el estado D, ocurre un 1, éste también debe memorizarse


haciendo que el sistema permanezca en el estado D y la salida del sistema debe
ser un 1, indicando que han ocurrido nuevamente tres unos consecutivos.
UN
98
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Modelado del sistema mediante un sistema Mealy:

En el circuito Mealy el valor de la salida Z no se conoce por el hecho de conocer el


estado, es necesario que la variable de entrada X sea especificado para poder
conocer el valor de la salida Z.

Es por esta razón que en los circuitos Mealy en valor de la salida no viene
especificado en la entrada.
Variable de entrada
Salida
Estado

Así, en el siguiente diagrama observamos como el valor de la salida Z en un


estado específico puede tener dos valores de salida diferente: /0 ó /1 dependiendo
del valor de la entrada X, luego la pareja entrada/salida (X/Z) toma valores como
0/1 y 1/0.

0/0

1/0 = X/Z
X=0

B
1/0
1/1
X=0
C

Si estando en el estado A, X toma el valor de 1, la salida será cero y el sistema


pasará al estado B.

Si estando en el estado B, X toma el valor de 1, la salida será cero y el sistema


pasará al estado C.

Si estando en el estado C, X toma el valor de 1, la salida será uno y el sistema


continuará en el estado C.

99
En cualquiera de los estados, cuando X tome el valor de 0, la salida será cero y el
estado siguiente será el estado A.

Encontramos entonces que dependiendo de la secuencia asumida aparece un


circuito diferente, en la práctica al activar un sistema asumimos el estado CLEAR
como el primer dato, en este caso nos conviene partir de un diseño con entradas
en cero. En otras palabras, partimos del estado que nos convenga.

Segunda etapa del diseño: Identificación del número de estados:

En el circuito Moore de estado inicial en unos, contamos sólo cuatro estados, A, B,


C y D mientras que en el circuito Mealy fueron necesarios tres estados, esta
reducción de estados puede redundar en un reducción o simplificación del circuito
pero dada la naturaleza del sistema Mealy, identificar o seguir un señal es a la vez
más complejo, lo que dificulta la detección futura de errores.

Tabla de estados equivalente al diagrama de estados Moore:

Estado Salida
actual de cada Estado Siguiente
estado
EA Z X=0 X=1
Si estando
A 1 B A en el estado
B 0 B C A la
C 0 B D entrada X
D 0 B A es 1, el
estado
Tabla de estados equivalente al diagrama de estados siguiente
continúa
siendo A

Estos cuatro estados indican que para el diseño del circuito serán necesarios dos
slip-flop con salidas Q1 y Q2.

UN
100
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Tercera etapa del diseño: Asignación de estados:

Es el proceso de asignar las combinaciones de los diferentes valores de las salidas


de los dos fip-flop Q1 y Q2 a los estados A, B, C, D.

Q1Q0
A=00
B=01
C=10
D=11

Tabla de transición:
Reemplazando la asignación de estados la tabla de transición se transforma en:

Estado actual Salida Estado siguiente


Actual X=0 X=1
Q1 Q0 Z
A 0 0 1 0 1 (B) 0 0 (A)
B 0 1 0 0 1 (B) 1 0 (C)
C 1 0 0 0 1 (B) 1 1 (D)
D 1 1 0 0 1 (B) 0 0 (A)
Tabla de transición

Ahora se debe determinar el tipo de flip-flop a usar para terminar el circuito:

101
Lección 19 Memorias

La memoria fabricada con materiales semiconductores o semiconductora se


clasifica en memorias RAM, ROM, PROM, EPROM y EEPROM.

Disposición de los registros y celdas en una memoria:


Para acceder a las diferentes celdas y registros es necesario definir una
nomenclatura al igual que lo acemos para encontrar direcciones en una ciudad,
ésta convención nos permitirá almacenar, recupera y borrar el contenido de las
celdas.

Normalmente, los registros o vectores se representan en celdas horizontales y los


bits de cada registro son indicados por las columnas:

1 0 1 0
Registros 0 0 0 0

0 0 0 0
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
0 0 1 0
Tabla 1: Memoria
En la tabla 1 vemos representada una memoria de ocho registros cada uno de
cuatro bits.
¿Cuantos bits podemos almacenar en esta memoria?

Operación de escritura en memoria:

Bus de direcciones:
Para localizar una posición de memoria, es necesario contar con las señales para
ubicar la celda específica, éstas líneas recibirán el nombre de líneas de
direccionamiento, que en su conjunto son denominadas bus de direcciones.

Bus de datos:
La información a extraer de la memoria debe estar presente en el momento de
lectura en pines diferentes a los que indican la dirección. Este conjunto de señales
reciben el nombre de bus de datos.
UN
102
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

Señales de control:

Para indicarle a la memoria que los datos presentes en el bus de datos deben ser
almacenados en la posición indicada por el bus de direcciones, la memoria debe
contar con unos pines especiales:

1. Un pin para habilitar la memoria en su conjunto


2. Un pin para indicar que la tarea a realizar es de escritura
3. Un pin para indicar que la tarea es de lectura

¿Cuantas líneas de direccionamiento de memoria se requieren para


direccionar completamente una memoria de ocho registros de cuatro bits?

En el momento de almacenar la información en la memoria, únicamente es


necesario direccionar cada registro, las señales del bus de datos deberán seguir
un orden específico para el almacenamiento de los bits en la celda correcta, luego,
no es necesario direccional las celdas como tal, únicamente el registro:

Este es el bit cero,


0 0 0 0 o bit de menor
1 0 1 0
peso
Registros
0 0 0 0
0 0 0 0
Datos Input/Outp1
de Input/Outp2 0 0 0 0
entrada Input/Outp3 1 1 1 1
Input/Outp4
1 1 1 1
0 0 1 0

A2 A1 A0 R/W E/D

Señales de control
Bus de direcciones
Dirección a ingresar: 2 = 0 0 1 0

103
¿Para qué se utiliza la memoria RAM en un computador?

La memoria RAM normalmente se divide en dos secciones denomidadas RAM de


propósito general y RAM de propósito específico. En la RAM de propósito general,
el programador puede almacenar datos que son denominados Variables del
sistema, mientras que en la RAM de propósito específico, cada celda tiene un
función dada por el diseñador del procesador o microprocesador; en éste caso el
programador no puede utilizar éstos espacios de la RAM para definir y almacenar
variables.

UN
104
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

ANEXO A

INSTALACIÓN DE XILINX 7.1i

Ver documentos anexos.

105
Proceso de instalación del software Xilinx 7.1i

La instalación completa de Xilinx requiere de aproximadamente 500 Megas de


espacio disponible en el disco duro, y toma aproximadamente una hora para
completarse.

1. Ejecuta el archivo stup.exe

UN
106
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

BIBLIOGRAFÍA

• Echavarría Cifuentes, Rubén Darío. Circuitos Digitales I. Universidad de


Antioquia. Colombia 2000.

• GOMEZ, Carlos, GOMEZ, German, BOTERO, William. Matemática Digital.


Mc Graw Hill. Bogotá 1998.

107
Ejemplo de TALLER PARA LA FASE DE RECONOCIMIENTO período 2007 - 1

Actividad grupal por el ?%


Amigo estudiante, desarrolle este taller de manera individual en su
portafolio1 para ser socializado en foro con sus compañeros de pequeño
grupo.

Estimados jóvenes!!!
¡Sean ustedes bienvenidos a este curso! Inicia el periodo académico e inicia
también la primera actividad que tenemos programada para nuestro curso de
Sistemas Digitales Secuenciales. La Actividad 01 es, un conjunto de actividades
que solicitamos realicen durante las primeras semanas del curso, y que servirán
como punto de arranque y preparación para poder "sumergirnos" en los
contenidos del curso.

Van con este mensaje nuestros mejores deseos de que lo que aquí aprendamos
sea de provecho para su formación...

1. Luego de observar las unidades del módulo y de haber leído la introducción


del mismo ¿Cuál piensa usted que es la diferencia entre el curso de sistemas
digitales básicos y el de sistemas digitales secuenciales?
2. ¿Crees que para desplegar en una pantalla la secuencia 1 2 3 4, se requiera
de alguna forma elemental de memoria? Explica y debate con tus compañeros.
3. Si requiere diseñar un sistema de seguridad en el cual para que se abra una
puerta se debe digitar una clave con la condición de que si se ingresar la clave
equivocadamente tres veces suene una alarma. ¿Podrá usted hacer este diseño
con los conocimientos de electrónica digital básica?
4.Cuando Juan intenta cruzar la calle, mira y ubica los vehículos en la distancia,
lo que le permite calcular la velocidad y trayectoria de éstos, para luego calcular
la trayectoria y velocidad propias. Al observar que el vehículo acelera, Juan
actualiza su velocidad y trayectorias, sin dejar de observar el vehículo. Este
proceso, define un sistema retroalimentado, el cual está capturando información
constantemente, discute con tus compañeros cuales son las variables que se
retroalimentan y cuál es el procesamiento que sufren. Luego realiza un diagrama
de flujo que representen la situación planteada.

1
El portafolio es un cuaderno personal en el que proponemos registres las actividades individuales y
de pequeño grupo. En éste espacio se registran fechas, consultas, trabajos, talleres, objetivos, conclusiones de
su trabajo promedio semanal que se espera sea al menos de seis horas para éste formidable curso.

UN
108
__________________________________________________________________
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD – www.unad.edu.co
Dudas y sugerencias: e-mail: georffrey@gmail.com
Sistemas Digitales Secuenciales

5. Recordando conocimientos del curso Sistemas Digitales Básicos. Diseñe y


ensamble un circuito digital para la función F(MAX)= F(0,2,3,5,7,11,14)
previamente simplificada usando mapas de Karnaugh.
6. Investigue qué es un sistema y qué lo caracteriza

109