Vous êtes sur la page 1sur 21

Proyecto Final

Fernando Flores Hernández


Lic. En Ingeniería en Comunicaciones y Electrónica
DICIS
Universidad de Guanajuato
Carretera Salamanca – Valle de Santiago km. 3.5 + 1.8 Comunidad de Palo Blanco, Salamanca,
Guanajuato. C.P. 36885, México
f.flores.hernandez@ugto.mx

Lógica secuencial

Contrario a la lógica combinacional donde las funciones dependen exclusivamente


de las entradas, en la lógica secuencial además de las entradas, las funciones de
salida dependen del estado que guarda la máquina. Esto implica la existencia de
elementos de memoria que almacenan las condiciones o estados del circuito.
En general se puede decir que un circuito secuencial es un circuito combinacional
que contiene elementos de memoria y guarda la información del estado de la
máquina.

Elementos de memoria
La clave para tener un circuito secuencial consiste entonces en contar con
elementos de memoria que guarden los estados o condiciones internas de
operación del sistema.

Elemento de memoria: es un dispositivo lógico formado con compuertas que


mediante un anillo de retroalimentación es capaz de guardar información.

Estado: se entiende por estado de un sistema secuencial a todas y cada una de las
combinaciones lógicas que pueden presentar los elementos de memoria.

Sistema secuencial: se dice que un sistema es secuencial cuando contiene uno o


varios elementos de memoria. Dado que la presencia de memoria en el sistema
implica la existencia de un estado actual y un estado futuro. La variable de tiempo
se encuentra implicada y de ahí lo secuencial.

Estado futuro o próximo estado: es la combinación lógica de los elementos de


memoria que presentaran cuando se produzcan cambios en las entradas del
sistema secuencial.

Elemento de memoria asíncrono: se dice que un elemento de memoria es


asíncrono si el cambio de estado depende exclusivamente de sus entradas y no
contiene una señal de control maestra.

Elemento de memoria síncrono: un elemento de memoria es síncrono o


sincronizado si el cambio de estado depende de sus entradas y es controlado por
una señal maestra que proporciona la temporización.
Elementos de memoria asíncronos

el circuito de la figura 1 es un elemento de memoria muy simple que permite guardar


la información de 1 bit. Este elemento de memoria es asíncrono puesto que sus
estados dependen solamente de las entradas y no existe una señal de control
maestra de temporización. Este circuito es conocido como es candado SR, donde
S significa puesta (set) y R significa borrado (reset). De tal forma que cuando se
activa S, la salida es forzada a 1 lógico y cuando R es activa, la salida es forzada a
0 lógico, tal como aparece en la tabla 1. En este caso las señales S y R son activas
en bajo, es decir, con novel lógico 0.

Figura 1

Tabla 1

La interpretación de la tabla 1 es como sigue; cuando las entradas SR sean iguales


a 01, el próximo estado del candado será igual a 1; cuando las entradas sea 10, el
próximo estado será igual a 0; cuando las entradas sean iguales a 11, el próximo
estado será igual al estado presente, es decir, conserva o memoriza el estado
actual; la condición de las entradas 00 es un estado no permitido en la operación
normal del candado. A la salida se encuentran disponibles los estados en forma
normal y complementaria de manera simultanea en el candado SR. Los posibles
estados para un elemento de memoria son dos: 0 y 1, para dos elementos de
memoria se tienen cuatro estados y así sucesivamente.
Otra versión del candado SR puede ser obtenida utilizando compuertas NOR en
lugar de compuertas NAND, tal como se muestra en la figura 2.
Figura 2

La tabla de operación del candado SR con compuertas NOR se muestra en la tabla


2.

Tabla 2

El candado SR es el elemento más básico de memoria y solamente consta de dos


compuertas de entradas, sin embargo, tiene la desventaja de que su funcionamiento
es continuo y asíncrono y en algunas aplicaciones será necesario contar con una
señal para sincronizar su funcionamiento.

Elementos de memoria síncrona


Para añadir una señal de sincronía al candado SR de la figura 2 es necesario
agregar un par de compuertas, tal como se muestra en la figura 3.

Figura 3
Cuando la señal LD del circuito de la figura 3 es igual a 0, la entrada al candado es
00 lo cual, de acuerdo con la tabla 2 hace que se conserve el estado anterior,
independientemente de los valores de S y R. Cuando LD es 1 lógico, entonces se
permite el paso de las señales S y R al candado el cual opera de manera normal.
En la tabla 3 se muestra el funcionamiento de este circuito.
Tabla 3
Además del candado SR también existen otros tipos de candados cuyo
funcionamiento es diferente y tienen aplicaciones en diversos problemas. Los
candados mas populares son los tipos T, JK y D. Todos los demás candados se
basan en la estructura fundamental SR.
El candado D tiene una estructura como la mostrada en la figura 4 y su operación
característica se encuentra en la tabla 4.

Figura 4

Tabla 4

En la figura 5 se muestra la estructura del candado JK y su operación se describe


en la tabla 5.
Figura 5

Tabla 5

El candado tipo T tiene una estructura como la que se muestra en la figura 6 y su


operación se muestra en la tabla 6

Figura 6

Tabla 6

El hecho de que las entradas en un candado sincronizado puedan afectar el


funcionamiento del mismo mientras la señal de sincronía este activa, puede
ocasionar problemas en circuitos con retroalimentación, produciendo estados
transitorios o no deseados. La técnica más generalizada para evitar este problema
es el añadir circuitos a los candados para que la señal de sincronización se active
solamente por un corto periodo de tiempo, como por ejemplo, durante una transición
de estado denominada flanco o borde disparo.
La sincronización por borde de disparo permite que las entradas se encuentren
activas solamente mientras dura la transición de la señal de sincronía de un estado
al otro. Se dice que la sincronía es de borde de disparo positivo cuando la transición
activa se produce en el cambio de 0 a 1 lógico, y se denomina borde de disparo
negativo cuando la transición activa se produce en el cambio de 1 a 0 lógico.
Para obtener un circuito que sea activado por borde se necesita añadir varias
compuertas extras. En la figura 7 se encuentra la estructura que permite el disparo
por borde positivo al candado D y en la tabla 7 se encuentra la operación
característica de este circuito. Los circuitos secuenciales activos al borde reciben la
denominación de flip-flop.

Figura 7

Tabla 7
En forma compacta los candados y flip-flops tienen un símbolo particular y se
muestra en las figuras 8 y 9 respectivamente.
Figura 8

Figura 9

Algunos candados y flip-flops tienen, además de las terminales sincronizadas, otras


terminales que nos son síncronas y que permiten el borrado o puesta del dispositivo.
Estas terminales son denominadas Preset (puesta en uno PRE) y Reset (borrado
RST) y generalmente son activas en bajo. El símbolo de un candado tipo D y un
flip-flop JK con preset y reset se muestran en la figura 10.

Figura 10

En la tabla 8 se muestra la operación de un candado D con señales de puesta y


borrado.
Tabla 8

Elementos de memoria en VHDL

Los elementos básicos de memoria son de dos tipos principales: candados y flip-
flops. Se debe recordar que un candado se activa mediante una señal de nivel y un
flip-flop se activa mediante un flanco de transición, no son equivalentes.
Tanto los candados como los flip-flops pueden o no tener señales de borrado y/o
inicialización, tanto en forma síncrona como asíncrona.
Primeramente, se define bajo VHDL el candado que aparece en la figura 11.

Figura 11
El candado de la figura 11 se activa con un nivel alto en la terminal LD y la
información de D pasa a Q. Una vez en el estado inactivo, la salida Q mantiene su
estado, aunque haya cambios en D. la descripción VHDL de este circuito se muestra
en la figura 12..

Figura 12
Notese que se ha utilizado una estructura if sin el else para inferir un elemento de
memoria. Esta es la razón por la cual es preferible no utilizar la estructura if en
circuitos combinacionales, debido a las posibles omisiones que se pueden realizar.
La descripción VHDL contenida en las líneas 16 a 18 del listado se pueden leer
como si LD es igual a 1 entonces Q toma el valor de D, si no es el caso, Q conserva
el estado anterior.

Un banco de pruebas es una descripción VHDL que genera señales y verifica


salidas como si se tratase de un laboratorio donde se está realizando la verificación
funcional del sistema. El banco de pruebas consiste en un archivo VHDL que tiene
mayor jerarquía que el circuito a probar y genera las señales necesarias para la
prueba, al mismo tiempo que monitorea las salidas y verifica su funcionalidad.
En la figura 13 se encuentra la descripción de un banco de pruebas simple para la
simulación y verificación del candado descrito en la figura 12. Nótese que para llevar
a cabo la simulación hay que incluir ambos archivos dentro del mismo proyecto en
la plataforma disponible.
Figura 13
La estructura general de un banco de pruebas es similar a una descripción
jerárquica en VHDL. Contiene una sección de declaración de librerías, líneas 1 y 2,
declaración de la entidad del banco de pruebas líneas 4 y 5 y la descripción de la
jerarquía en las líneas restantes.

La simulación resultante del banco de pruebas de la figura 13 aplicado al candado


de la figura 12 se encuentra en la figura 14. Notese que al iniciar el proceso de
simulación del candado es desconocido hasta que no se aplique una señal de
activación en la carga de datos; esta es la razón por la cual es preferible contar con
una señal de inicialización asíncrona como un preset o reset maestra en
aplicaciones practicas para determinar el valor inicial de memoria.

Figura 14

Dado que in elemento de memoria inicia su operación en un estado desconocido es


necesario incluir una señal de inicialización para garantizar que comience un estado
conocido. Para realizar esta tarea hay que incluir una terminal de control maestro
que opere de manera asíncrona para forzar el estado inicial. En la figura 15 se
muestra un candado D con una señal de borrado asíncrona, activa en bajo. El
estudiante debe recordar que se pueden tener todas las combinaciones para las
señales de control maestro: borrado y puesta en uno, activos o en bajo o en alto; y
que la elección depende de la aplicación particular. El caso más común que se
presenta en los diseños prácticos es un borrado activo o en alto, dependiendo de la
plataforma de desarrollo.

Figura 15
La descripción VHDL del candado D con borrado asíncrono y su correspondiente
banco de pruebas se encuentran en las figuras 16 y 17 respectivamente. La
simulación del circuito se encuentra en la figura 18. Nótese que ahora el candado
inicia en el estado cero perfectamente definido.
Figura 16
Figura 17
Figura 18

En algunas aplicaciones es necesario contar con señales de borrado que estén


sincronizadas a la base de tiempo. Este tipo de borrado se denomina síncrono. Para
inferir el candado de la figura 19 con un borrado síncrono la figura 16 se debe
modificar para que aparezca como la figura 20. El banco de pruebas para este
candado se encuentra en la figura 21. La simulación del banco de pruebas y el
candado se muestra en la figura 22. Nótese como el borrado no interviene hasta
que se activa la señal de control LD.

Figura 19

Figura 20
Figura 21
Figura 22

Si lo que desea es una inicialización a uno lógico en el candado, tanto asíncrona


como síncrona solamente hay que cambiar la condición de Q a 1 en las líneas 18 y
19 de las figuras 16 y 20 respectivamente. Igualmente, si lo que se desea es cambiar
el nivel lógico de la activación del candado, solamente hay que invertir la lógica de
la terminal LD.
Para inferir un flip-flop, la declaración VHDL es un poco diferente a la de un candado.
La descripción VHDL del flip-flop de la figura 23 se muestra en la figura 24, el banco
de pruebas correspondiente se la figura 25 y la simulación en la figura 26.

Figura 23

Figura 24
Figura 25
Figura 26

Para inferir un flip-flop se necesita que el proceso tenga como variables de


sensibilidad a la terminal del reloj solamente y la línea 16 de la figura 24 contiene
los elementos que indican el tipo de borde de disparo deseado. En este caso al decir
(CLK event and CLK=1) se infiere el borde de disparo positivo. Si se desea tener un
borde de disparo negativo se debe cambiar la condición a CLK = 0.
Si ahora se desea un flip-flop con borrado asíncrono como el que aparece en la
figura 27 se necesita modificar la figura 24 para obtener el listado de la figura 28
que ya incluye el borrado. El banco de pruebas se encuentra en la figura 29 y la
figura 30 muestra la simulación de este flip-flop.

Figura 27
Figura 28
Figura 29
Figura 30

Se pueden hacer todas las combinaciones de borrado, inicialización, lógica negativa


o lógica positiva y borde de disparo para inferir los diferentes tipos de flip-flops.
Solamente se debe tener cuidado que el dispositivo sobre el cual se realiza la
síntesis contemple estos bloques funcionales.

Vous aimerez peut-être aussi