P. 1
AnÁlisis y DiseÑo de Circuitos Secuenciales

AnÁlisis y DiseÑo de Circuitos Secuenciales

|Views: 2.738|Likes:
Publicado porOscar Salazar

More info:

Published by: Oscar Salazar on Mar 18, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

08/11/2013

pdf

text

original

AnÁlisis y DiseÑo de Circuitos Secuenciales

El Análisis y Diseño de Circuitos Secuenciales se encuentra estrechamente relacionado con el control secuencial, denominado también control lógico o control binario. En los sistemas de control secuencial las entradas y las salidas son de tipo binario y determinan una serie de pasos para la operación de un proceso. Las entradas por lo general son: pulsadores, interruptores, microinterruptores, fines de carrera o detectores de proximidad. Las salidas pueden ser: Válvulas solenoides, cilindros neumáticos, contactores para arranque y parada de motores, pilotos de señalización, alarmas, etc. Cuando el sistema de control secuencial es pequeño se realiza con circuitos digitales combinatorios y secuenciales. Cuando es grande se realiza con PLC´s (Controladores Lógicos Programables), microcomputadores, microprocesadores especiales para control secuencial y por software en PC. En este capitulo se mostraran las metodologías básicas para el Diseño de Circuitos Secuenciales y su aplicabilidad en dispositivos secuenciales para funciones específicas. Teoría de MÁquinas de Estado (FSM) La teoría de máquinas de estado es el nombre con el que se conocen los métodos de Análisis y Diseño de Circuitos Secuenciales Sincrónicos. Esta lección constituye una introducción al tema del capítulo, donde se definirá lo que son las máquinas de estado y los conceptos básicos para entender la metodología de Análisis y Diseño de Circuitos Secuenciales. Las máquinas de estado son circuitos secuenciales que se encuentran constituidos por una etapa combinacional y una etapa de memoria, relacionadas de tal forma que conforman un sistema secuencial para algún propósito especial. Los registros y contadores con entradas asincrónicas son ejemplos de este tipo de sistemas secuenciales. MÁquinas de Estado de Mealy y Moore Los circuitos secuenciales se clasifican dentro de una categoría conocida como máquinas de estado, de la cual se distinguen comúnmente dos tipos:

Máquina de Mealy: En esta máquina de estados las salidas se encuentran determinadas por el estado interno del sistema y por las entradas no sincronizadas con el circuito. El diagrama de bloques representativo de esta máquina se muestra en la figura 7.1.1. donde se observa que las salidas del sistema son tanto sincrónicas como asincrónicas.

Figura 7.1.1. Maquina de estados de Mealy

Máquina de Moore: Las salidas solo dependen del estado interno y de cualquier entrada sincronizada con el circuito, como se observa en la figura 7.1.2. donde

las salidas del sistema son unicamente sincrónicas. Un ejemplo de este tipo de máquinas de estado son los contadores (ver capítulo 6).

Figura 7.1.2. Maquina de estados de Moore Los circuitos secuenciales se caracterizan por tener una etapa combinacional y otra de memoria conformada por flip-flops. En la figura 7.1.3. se puede observar un ejemplo particular de este tipo de circuitos, el cual corresponde a una Maquina de estado de Mealy. Observe que hay salidas que dependen de la etapa de memoria y hay una salida que depende directamente de la etapa combinatoria.

Figura 7.1.3. Circuito Secuencial de ejemplo Con base en el circuito de la figura 7.1.3. se dará una descripción de las herramientas básicas que son empleadas para el Análisis y Diseño de Circuitos Secuenciales. Entre estas herramientas se encuentran las ecuaciones lógicas, las los diagramas de estado, las tablas de estado, las tablas de transición y los mapas de Karnaugh. Ecuaciones Lógicas Las ecuaciones lógicas son funciones que definen la relación existente entre los estados de entrada y los estados de salida del sistema. Para determinar las ecuaciones lógicas de la máquina de estados de la figura 7.3.1. inicialmente se deben identificar los estados siguientes. Estos estados corresponden a aquellos que ocurren después de una transición en la señal de reloj de los flip-flops. Recuerde que para los flip-flops tipo D el estado siguiente (Qi+1) es igual al estado de la entrada D. Teniendo en cuenta lo anterior las ecuaciones lógicas para los flip-flops A y B del circuito de la figura 7.1.3 serían las siguientes: A = DA = A·X + B·X B = DB= A’·X La salida Y esta dada por: Y = (A + B)·X’ Observando esta última ecuación se concluye que la salida (Y) es función del estado presente del sistema (A y B) y de la entrada asincrónica (X).

Las ecuaciones lógicas en los circuitos secuenciales tienen una estructura formada por dos clases de estados: • • Los estados siguientes, los cuales se agrupan al lado izquierdo de la expresión y representan las variables dependientes del sistema. El estado de estas variables cambia en el momento que ocurra un transición en la señal de reloj. Los estados actuales y entradas del sistema. Agrupados al lado derecho de la exprexión, constituyen las variables inpendientes, las cuales pueden o no cambiar en sincronía con el sistema.

Cuando las ecuaciones de estado contienen varios términos, se pueden simplificar empleando metodologías de reducción de términos como Algebra de Boole, Mapas de Karnaugh, o mediante el Algoritmo de Quine-McCluskey , las cuales fueron presentadas en el Capitulo 2. Tablas de Estado Una tabla de estado es un listado que contiene la secuencia de los estados de entradas, estados internos y salidas del sistema, considerando todas las posibles combinaciones de estados actuales y entradas. Las tablas de estado por lo general se divididen en tres partes: estados actuales, estados siguientes y salidas, tal como se muestra en la tabla 7.1.1. Estados actuales Entrada Estados siguientes Salida A B X A B Y 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 Tabla 7.1.1. Tabla de estado (circuito Figura 7.1.3) La tabla de estado para un circuito secuencial con m flip-flops y n entradas tiene 2m+n filas. El estado siguiente tiene m columnas, y el número de columnas depende del número de salidas. Existe una forma mas conveniente de organizar la información en la tabla de estado, la cual se muestra en la Tabla 7.1.2, donde los estados se agrupan de tal modo que la tabla se puede traducir a un diagrama de estados. Al igual que la tabla anterior esta tiene tres secciones: estados actuales, estado siguientes y salidas, sin embargo los estados se agrupan dependiendo del valor de las entradas. La sección de estados actuales agrupa los estados que ocurren antes de una transición en la señal de reloj, la sección de estados siguientes lista aquellos que ocurren después de la transición del reloj y la sección de salidas reúne los estados que se dan en el mismo instante de los estados actuales. Estado Actual AB 00 01 10 Estado Siguiente Salida X=0 X=1 X=0 X=1 AB AB Y Y 00 01 0 0 00 11 1 0 00 10 1 0

3.2. Esta línea marcada como 1/0 indica que el circuito secuencial se encuentra en el estado 00 mientras la entrada X=0 y la salida Y=0. La información sombreada en la tabla se interpreta de la .1. Tabla de transición del flip-flop JK En la tabla. La tabla 7.4. Qi corresponde al estado actual y Qi+1 al estado siguiente.1. teniendo en cuenta las entradas y salidas. Figura 7. y que después de que ocurra una transición en la señal de reloj el estado cambia a 01.2.1. estos dos números corresponden a la entrada y salida presentes antes de la transición. cuando se presentan la entrada y salida indicados. Tablas de Transición de flip-flops Las tablas de transición se usan en conjunto con las de estado y representan la tabla de verdad de los flip-flops con los cuales se desea implementar el circuito secuencial.1. La tabla contiene los estados actuales y siguientes según el estado de las entradas de los flip-flops. Tabla de estado (forma simplificada) Haciendo un análisis de la operación del circuito de la figura 7.3 corresponde a la tabla de transición del flip-flop JK.2 Las líneas que salen y regresan al mismo círculo indican que no hay cambio en el estado. A manera de ejemplo observe la línea que une los estados 00 y 01 en el diagrama de estado de la figura 7. Diagramas de Estado Un diagrama de estados es una representación gráfica que indica la secuencia de los estados que se presentan en un circuito secuencial. Los circulos representan los estados del circuito secuencial y cada uno de ellos contiene un número que identifica su estado.1.1.1. El diagrama se forma con círculos y líneas. J y K son las entradas de los flip-flops. los estados de las salidas se comportan tal como se resume en la tabla 7. y cuando X=1. Las líneas indican las transiciones entre estados y se marcan con dos números separados por un (/).1. se puede observar lo siguiente: Cuando la variable X=0 los estados actuales A y B cambian a 0 después de la transición de reloj . Transiciones de Salida Entradas al flip-flop Qi Qi+1 J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0 Tabla 7. Se plantea como ejercicio verificar la información de la tabla. Diagrama de estados correspondiente a la Tabla 7.3.11 00 10 1 0 Tabla 7.4.

Mapas de Karnaugh Generalmente la tablas de estado y de transición de los flip-flops se fusionan en una sola para agrupar la información de tal forma que permitan construir los Mapas de Karnaugh para simplificar las funciones lógicas.1.1.5 se observa que la expresión correspondiente a la entrada J1 es: J1 = Q0 Esta expresión indica que en el circuito lógico la salida Q0 debe ir conectada a la entrada J1. Mapa de Karnaugh para el estado J1 Observe que cada celda en el mapa representa uno de los estados actuales de la secuencia en la tabla de estado.siguiente forma: cuando el estado presente de la salida Q=0 y las entradas J=1 y K=X (X indica una condición de no importa. En la siguiente lección se explicara de una forma detallada el procedimiento para el Diseno de Circuitos Secuenciales. Las regiones sombreadas en la tabla indican que el estado Qi cambia estando presentes las entradas Ji y Ki correspondientes después de una transición del reloj. Observe que esta tabla incluye las entradas J y K para cada una de la transiciones (estado actual a estado siguiente).4. AnÁlisis y DiseÑo de Circuitos Secuenciales SincrÓnicos La gran mayoría de los circuitos digitales contienen flip-flops y compuertas para realizar funciones específicas. La tabla 7. . 1 o 0).5.1.5 corresponde al Mapa de karnaugh de la entrada J1. Figura 7.4 corresponde a una tabla de estado de un contador de tres bits con flip-flops JK. de la tabla de estado 7. La figura 7.1. Una vez asignados todos los estados posibles a cada celda en el Mapa de Karnaugh se procede a simplicar y deducir las exprexiones lógicas. después de un pulso de reloj en el flipflop la salida cambia al estado siguiente Q=1.1. El diseño de estos circuitos inicia a partir de las especificaciones y finaliza con las funciones lógicas. Tabla de estado y transición de un contador de 3 bits Los Mapas de Karnaugh se emplean para definir la lógica de las entradas de los flipflops y se debe hacer uno para cada una de las entradas.4. Estado Actual Estado Siguiente Entradas de los flip-flop Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 0 0 1 0 X 0 X 1 X 0 0 1 0 1 0 0 X 1 X X 1 0 1 0 0 1 1 0 X X 0 1 X 0 1 1 1 0 0 1 X X 1 X 1 1 0 0 1 0 1 X 0 0 X 1 X 1 0 1 1 1 0 X 0 1 X X 1 1 1 0 1 1 1 X 0 X 0 1 X 1 1 1 0 0 0 X 1 X 1 X 1 Tabla 7. En la figura 7. de las cuales se obtiene el circuito lógico.1.

y la entrada será identificada como X. Analizando este diagrama se observa que el estado 10 se mantiene mientras X=0 y en el momento que X=1 pasa al estado 11. se mantienen cuando X=0 y el estado 01 se mantiene cuando X=1. después al estado 00 y finalmente al estado 01. Obtención de ecuaciones o funciones lógicas 5. hasta el momento que nuevamente X=0. Luego de seleccionar el número y tipo de flip-flops con los cuales se desea hacer el diseño. Figura 7.1. Paso 3.1). Diagrama de estados Paso 2.1 corresponde al diagrama de transición. Ejemplo Diseñar el circuito secuencial del proceso que se cumple de acuerdo al diagrama de estados de la figura 7. se deduce la lógica combinatoria necesaria para generar la secuencia de estados.2. volviendo de esta forma al estado AB=10. Asignación de estados Este proceso tiene cuatro estados. Para representar los cuatro estados se usarán dos flipflops identificados como A y B de tipo JK. Paso 1.2. para identificar la secuencia de estados que deseada. Elaboración de la tabla de estados 4.Inicialmente se debe crear una tabla de estado o representación equivalente. Realización de circuitos lógicos Para explicar este método se desarrollará un ejemplo aplicado a un diseño particular. una entrada y no tiene salidas (se pueden considerar como salidas las de los flip-flops). Entrada Estado Actual Estado Siguiente Excitaciones X A B A B JA KA JB KB 0 0 0 0 0 0 X 0 X 1 0 0 0 1 0 X 1 X . Construcción del diagrama de transición 3. Asignación de estados 2.1. Los circuitos secuenciales se pueden analizar y diseñar siguiendo un procedimiento claramente definido que consiste en los siguientes pasos: 1. Adicionalmente observe que los estados 00 10 y 11.2.2. Elaboración de la tabla de estados A partir del diagrama de estados y de la tabla de transción del flip-flop JK se puede contruir la tabla de estados (ver tabla 7. Contrucción del diagrama del transición o de estado La figura 7.

se muestran los Mapas de Karnaugh y las funciones lógicas correspondientes. se efectúan mediante el uso de compuertas e inversores y en la figura 7.2. Mapas de Karnaugh para las entradas JA . A continuación en la figura 7.1. se muestra el diseño final del circuito lógico.3. Realización de circuitos lógicos Este es el ultimo paso del diseño. JB.2. En este paso se obtienen las funciones lógicas para las entradas de los flip-flops (JA.0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 X X X X X X 0 0 0 1 X X 0 1 X X 1 0 X X 0 1 Tabla 7. . Tabla de estado Para la simplificación de los circuitos combinatorios es conveniente que se presenten condiciones de"no importa".2. JB y KB) y el objetivo es deducir la lógica combinatoria de estado siguiente.2. Paso 4. KA y KB Paso 5. Obtención de ecuaciones o funciones lógicas. KA. Figura 7. ya que estas permiten simplicar las funciones lógicas y por tanto el tamaño del circuito lógico. Las conexiones correspondientes. y consiste en implementar la lógica combinacional a partir de las ecuaciones lógicas obtenidas en el paso anterior para las entradas J y K de los flip-flops.2. mediante el uso de Mapas de Karnaugh.2.

3. Asignación de estados Este proceso al igual que el ejemplo anterior tiene cuatro estados de dos bits (AB). Tabla de estado Paso 1. En la figura 7.3 se hizo con flip-flops JK. una entrada (X) y una salida (Y). Construcción del diagrama del transición o de estado El diagrama de transición es el mismo del ejemplo anterior.2. pero adicionamente se agregó una salida (Y).2. Entrada Estado actual Estado siguiente Salida X A B A(DA) B(DB) Y 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 Tabla 7. En el siguiente ejemplo se verá como realizar el diseño de circuitos secuenciales con flip-flops D. En esta sección veremos como se realiza el diseño de circuitos secuenciales mediante el uso de flipflops tipo D. Paso 2.2.Figura 7. .2.4 se observa el diagrama de estado.2. A diferencia de las entradas de los flip-flops JK. excepto que ahora se tiene en cuenta la salida (Y).2.2. las entradas en los flip-flops D corresponden exactamente a los estados siguientes. Ejemplo Realizar el diseño del circuito lógico correspondiente a la tabla de estado 7. Por esta razón en la tabla de estado no se requiere una columna independiente para las excitaciones. Circuito Lógico del Diseño Diseño de Circuitos Secuenciales con flip-flops D El diseño del circuito de la figura 7. Para representar los cuatro estados se usarán dos flip-flops D identificados como A y B. Observe que esta tabla es la misma del ejemplo anterior.

5. Figura 7. la cual se observa en la tabla 7.4.6 se muestra el diseño del circuito. DB) y la salida (Y). Diagrama de estados . y Y Paso 5.Ejemplo 2 Paso 3. Realización de circuitos lógicos Con las ecuaciones lógicas obtenidas en el paso anterior se puede implementar el circuito lógico. . Las conexiones correspondientes. En la figura 7. Elaboración de la tabla de estado.2.5 se muestran los Mapas de Karnaugh y las funciones lógicas correspondientes.2.2.2. Mapas de Karnaugh para las entradas DA .Figura 7. Paso 4.2.2. Obtención de ecuaciones o funciones lógicas. se efectúan mediante el uso de compuertas e inversores y en la figura 7. Para este ejemplo inicialmente se dió la tabla de estados. DB. En este paso se deben obtener las funciones lógicas para las entradas de los flip-flops (DA.

KA.2. 0001. JB. Observe que en cada mapa los estados resaltados en rojo corresponden a los estados no usados. 1101.6. se muestran en la figura 7. al momento de elaborar los Mapas de Karnaugh. Estos estados se identifican con una (X) en los Mapas de Karnaugh. KB. Tabla 7. los cuales se han .3. Circuito Lógico Estados no usados Durante el diseño de los circuitos secuenciales para simplificar las representaciones lógicas. 1100. Note que en esta tabla hay seis estados que no están presentes (0000. Las seis filas de la tabla correspondientes a estos estados se identifican como estados X (1 o 0) o condiciones de "No importa" Estado actual Entrada Estado siguiente Excitaciones Salida A B C X A B C JA KA JB KB JC KC Y 0 0 1 0 0 0 1 0 X 0 X X 0 0 0 0 1 1 0 1 0 0 X 1 X X 1 0 0 1 0 0 0 1 1 0 X X 0 1 X 0 0 1 0 1 1 0 0 1 X X 1 0 X 0 0 1 1 0 0 0 1 0 X X 1 X 0 0 0 1 1 1 1 0 0 1 X X 1 X 1 0 1 0 0 0 1 0 1 X 0 0 X 1 X 0 1 0 0 1 1 0 0 X 0 0 X 0 X 1 1 0 1 0 0 0 1 X 1 0 X X 0 0 1 0 1 1 1 0 0 X 0 0 X X 1 1 .Condiciones de "no importa" Los mapas de karnaugh correspondientes a las entradas de cada flip-flop (JA. Tabla de estado . observe la tabla 7.3. 1110 y 1111) .2.2.2. C y X.7. es conveniente emplear los estados no usados como condiciones que no importa. JC y KC) y la salida (Y). Para ilustrar como emplear estos estados. Teniendo en cuenta todas las posibles combinaciones de las variables A.Figura 7. B.

7.2. Para mas información sobre simplificación de funciones lógicas ver la Lección 4. .7 y hacer el diseño del circuito secuencial sin tener en cuenta los estados no usados para comparar los dos casos y notar las diferencias.incluido como condiciones "no importa" para simplificar la mayor cantidad de variables en las expresiones. como referencia de tiempo para controlar los cambios de estado.2. debido a que no existen pulsos de reloj. Figura 7. podemos decir que es recomendable incluir los estados no usados en el diseño de los circuitos secuenciales. Esto implica una reducción en las expresiones lógicas y por consiguiente en el tamaño del circuito. Mapas de Karnaugh. sin embargo estos circuitos requieren un tratamiento particular. AnÁlisis de Circuitos Secuenciales AsincrÓnicos El análisis de Circuitos Asincronicos es similar al analisis de los circuitos sincrónicos. Se plantea como ejercicio hacer el diagrama lógico correspondiente a las ecuaciones halladas a partir de los mapas de Karnaugh de la figura 7. que en otros términos representará obviamente un menor tiempo de desarrollo y costo de implementación. Mapas de Karnaugh para las entradas a los flip-flops Como conclusión sobre esta sección.

Figura 7. Diagrama de bloques de un Circuito Asincrónico Activado por Nivel Veamos la descripción y características de este esquema. En la figura 7. Los Circuitos Secuenciales Asincrónicos se clasifican dependiendo del tipo de entradas o del cambio en el tiempo de las estas. a continuación se describe un procedimiento para analizar los estados lógicos. donde algunas de sus salidas se unen a las entradas formando lazos de realimentación. 2. debido a la posible ocurrencia de estados indeterminados en las salidas.1 se observa un diagrama de bloques descriptivo de este tipo de sistemas secuenciales. en dos grupos: los Circuitos Asincrónicos en Modo Fundamental y los Circuitos Asincrónicos en Modo Pulso.3. Los mapas de Karnaugh contienen los estados secundarios versus los estados de salida. Elaborar los mapas de Karnaugh para los estados de las variables de excitación y salida a partir de las ecuaciones halladas.En los Circuitos Cecuenciales Asincrónicos las variables de entrada actuan directamente sobre el sistema. Hallar las ecuaciones lógicas para las variables de excitación y salida del circuito. Se pueden presentar estados estables e inestables. . el cual se desarrolla en los siguientes pasos: 1. y las variables en mayúscula corresponden a las variables secundarias en el instante t+1 (Yt+1). Las variables en minúscula (yn) corresponden a las variables secundarias en el instante t (Yt).1. Circuitos Asincronicos Activados por Nivel (Modo Fundamental) Los circuitos asincrónicos operando de esta forma fueron los primeros que se implementaron en los inicios del análisis de los sistemas secuenciales en Electrónica Digital y se encuentran constituidos por un sistema combinacional. y los inestables son aquellos en los que el valor del estado presente es diferente al estado siguiente. Los estables son aquellos en los que el valor de estado presente es igual al estado siguiente. es decir que un cambio en tales variables produce un cambio sobre el estado interno.3. En este tipo de sistemas secuenciales no se permiten cambios en forma simultánea en las variables de entrada. • La variable t representa el tiempo de retardo mínimo para que ocurra una transición y corresponde al retardo que ocurre cuando una señal viaja a través de una o más compuertas del circuito secuencial. • • • Para observar los fenómenos que pueden ocurrir en este tipo de sistemas.

Mapa de Karnaugh para estados de excitación y salida . deberán considerarse movimientos horizontales.3.3. x2 y y se puede llegar al mapa de Karnaugh de la figura 7. Figura 7.3. así como el de los estados inestables. y los estados inestables cuando yt≠ Yt. se observa que la variable de excitación corresponde a la variable de salida.3. sin cambio en las entradas. 5. Localizar e identificar todos los estados estables e inestables en el mapa de Karnaugh de las variables de excitación. • Obtención de las ecuaciones lógicas del circuito. reemplazando cada estado estable de excitación con el mismo nombre que tiene asignado el estado secundario. Circuito Secuencial Asincrónico de ejemplo Este circuito tiene dos variables de entrada (x1. Asignar un nombre (pueder ser un caracter) a cada fila de la tabla. Y = x1·x2' + x2·y z = x1·x2' + x2·y • Elaboración de Mapas de Karnaugh para las variables de excitación y salida. una variable de estado interno o secundaria (y) y una variable de salida o exitación (Y=z). cuando ocurran cambios en las entrada.1.3.3. el cual es el mismo para Y como para z. Para ilustrar el proceso de análisis se desarrollará un ejemplo basado en el circuito de la figura 7.2. Partiendo de las expresiones lógicas anteriores y teniendo encuenta todas las posibles combinaciones de las variables x1. Elaborar una tabla de flujo. Para analizar la tabla de flujo. por esta razón las expresiones son las mismas.3. Los estados estables ocurren cuando yt = Yt. Comparando este circuito con el de la figura 7. 4. y movimientos verticales cuando se dén transiciones de estados inestables a estados estables.2. Según la lógica del circuito se deducen las siguientes expresiones para los estados de excitación y salida.3. Figura 7. x2).

Esta tabla indica los cambios en el estado de la varible Y después de un cambio en las entradas x1 y x2. De la figura 7. basta observar si los estados actuales cambian al alterar las entradas.3. Flujo de estados Circuitos Asincronicos Activados por Pulso (Modo Pulso) Los circuitos asincrónicos operando de este modo son similares a aquellos que operan en modo fundamental. Los cambios en los estados internos ocurren únicamente por la presencia de un pulso en las terminales de entrada. excepto que las señales de entrada corresponden a pulsos que se ocuren de forma asíncrónica.4.3. Tabla de flujo o transición de estados lógicos. Teniendo en cuenta lo anterior se puede concluir que los estados inestables son aquellos que estan sombreados y los demás son estables. se caracteriza por cumplir las siguientes condiciones: • • • Como mínimo. Las filas de la tabla seán identificadas como a y b para identicar los estados 0 y 1 de la variable Y.3.3 se pueden deducir las estados estables e inestables. donde se observa la transición de estados a y b según el estado de las entradas. debido a que no hay cambios en el estado siguiente. observe el estado sombreado (1) en la figura 7. Circuito Asincrónico Activado por Pulsos Un circuito secuencial activado por pulsos.3.3. • • Figura 7.5 se observa un diagrama de bloques ilustrativo sobre este tipo de sistemas. en la figura 7. Asignación de nombres a cada fila de la tabla de excitación.5. una de las entradas debe ser un pulso. • Localización de estados estables e inestables.4 se muestra la tabla de flujo. el cual indica que el estado actual Y=0 cambia a Y=1 cuando las entradas son x1=x2=1. . Cada estado de entrada. desencadena únicamente un cambio en el estado interno del circuito. Figura 7. en la figura 7. A manera de ejemplo.3. Teniendo en cuenta que los estados de las entradas no deben tener cambios simultaneamente.3.

De la figura 7.3.7.6.3. Secuencia de pulsos para x1 y x2 Para analizar el estado de las variables del circuito se deben deducir las expresiones lógicas para S. lo cual es una característica particular de las entradas de estos sistemas secuenciales. Existen dos tipos de circuitos en esta modalidad de funcionamiento: La máquina de estados de Mealy y Moore (Ver Lección 1. Circuito Asincrónico de Ejemplo Para comenzar el análisis considere que los pulsos de entrada ocurren en la secuencia que se observa en la figura 7.8 se observan las transiciones de los estados correspondientes a la secuencia de las señales de entrada. R y z.• No se permiten dos o más pulsos en forma simultánea en las señales de entrada.3. Figura 7.3.3.6. En la figura 7. se desarrollará un ejemplo con base en el circuito de la figura 7. se tiene: S = x1·y' R = x2·y z = x1·y A partir de las expresiones lógicas se puede construir el diagrama de tiempos para las variables del circuito.6. Note que los estados de las entradas son complementarios y las transiciones ocurren en instantes de tiempo diferentes.7. Figura 7.3. . Teoría de máquinas de estado (FSM)) • Para entender el funcionamiento de este tipo de circuitos. En caso de incumplirse esta condición la única forma de analizar el circuito es con un diagrama de tiempos.

Estados de Excitación y Salida Ejemplos de Control Secuencial Los sistemas combinacionales y secuenciales tienen gran variedad de aplicaciones en la vida real. En la mayoría de sistemas digitales encontrados en la práctica se incluyen elementos que memorizan la información. Diagrama de tiempo del circuito de la figura 7. El semáforo tiene cuatro estados. los cuales se pueden representar con 2 flip-flops.10.3. lo cual es característico de una señal pulsada.8.3.9 muestra los estados siguientes y los estados de salida de la forma "estado siguiente/estado salida" (y/z). mediante dos ejemplos sencillos.6 La figura 7. El objetivo de esta lección consiste en dar aplicabilidad a la teoría vista en este capítulo. cuyos tiempos se pueden distribuir de la siguiente forma: • • • Verde (3 ciclos) Amarillo (1 ciclo) Rojo (3 ciclos) .9. Observe que los estados de las entradas son complementarios.3.3. así que la columna correspondiente se puede suprimir. sin alterar el análisis.10. la figura 7.3. Estados de Excitación y Salida En la tabla no se tuvo en cuenta la columna correspondiente a la entrada x1x2=11.3. Figura 7. Teniendo presente esta condición. Figura 7. Esta tabla de estados se puede simplificar aun mas debido a que el estado 00 no implica ningún cambio en los estados del circuito. debido a que los circuitos secuenciales asincrónicos no admiten entradas activas de forma simultanea. sin embargo para asignar el tiempo de duración de cada estado se emplearan 3 flip-flops. Rojo y Rojo/Amarillo.3. Amarillo. Implementación de un Semáforo Construir el circuito lógico para un semáforo que responda a la siguiente secuencia: Verde. por lo cual se requieren de circuitos secuenciales. de los cuales se pueden obtener 8 estados.9 se reduce a la figura 7.Figura 7. con los cuales se harán uso de las herramientas de análisis y diseño de circuitos secuenciales: la implementación de un semáforo y un control de un motor de pasos.

4. a partir del cual se realizará el diseño. El primer paso para realizar el diseño consiste en asignar los estados lógicos. A y R (Verde. sin embargo.4. Esta asignación de estados se puede hacer de forma libre y no necesariamente debe corresponder a una secuencia binaria.1.1.4.• Rojo-Amarillo (1 ciclo) Donde cada ciclo representa una transición en la señal de reloj. en este caso por comodidad sean establecido de esta forma para implementar el circuito con base en un contador sincrónico de tres bits. Para ello se deben construir los mapas de Karnaugh y obtener las ecuaciones lógicas. A y R.1.1 se observa un contador sincrónico de tres bits construido con flipflops JK. Figura 7. Amarillo y Rojo) del semáforo. como se puede notar en la tabla 7. Contador de tres bits El siguiente paso consiste en deducir la logica combinacional adicional para generar los estados de las variables V. Observe que la duración de la secuencia de los cuatro estados es de 8 ciclos.4.2 se muestran los mapas con las ecuaciones resultantes para cada variable. Color Verde> Amarillo Rojo Rojo-Amarillo Salidas de los flip-flops Salidas al Semáforo Q2 Q1 Q0 V A R 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 Tabla 7. Q1 y Q0) para generar los estados de las variables V. En la figura 7. Asignación de estados En la figura 7.4. El objetivo de hacer uso del contador es emplear sus salidas (Q2. .

4.3.4. Estos motores se utilizan en varios sistemas de control de posición debido a la presición que manejan. Circuito Lógico Motor paso a paso operando en forma unipolar Un motor de pasos es un tipo especial de motor diseñado para rotar un determinado ángulo como respuesta a una señal en su circuito de control. Este tipo de motor puede tener una o dos bobinas por fase.1.4.2. Para este ejemplo se empleará un motor de fase partida.4. Mapas de Karnaugh Con las expresiones obtenidas solo resta agregar la lógica al contador de la figura 7.Figura 7. . como el que se indica en la figura 7. Animación 7. El diseño del final del circuito de muestra en la animación 7.1.4. Observe la foma en que debe ser conectado para hacer el control. Los que tienen una bobina por fase se conocen como motores de tres hilos y los que tienen dos bobinas por fase se conocen como motores de devanado partido.1.

son complementarios.2.4 se observan las dos opciones para manejar los interruptores.4.4. Figura 7.4. se puede notar que los estados de los interruptores S1 y S2. Note que las variables S2 y S4 no se tuvieron en cuenta. ya sea con tiristores (SCR's) o mediante el uso de relevos.Figura 7. El primer paso para realizar el diseño de la unidad de control.3.4. En la figura 7. al igual que los interruptores S3 y S4.2.3 se relacionan los estados lógicos de las salidas y los estados de las entradas j y k de los flip-flops. . los cuales corresponden a la posición de los interruptores se indican en la tabla 7. Secuencia de estados de los interruptores (4 pasos) Los interruptores se pueden controlar de dos formas. Numero de paso 1 2 3 4 Estado de los interruptores S1 S2 S3 S4 ON OFF OFF ON ON OFF ON OFF OFF ON ON OFF OFF ON OFF ON Tabla 7.4. Motor de pasos de devanado partido En este ejemplo se hará el diseño del circuito de control para manejar cuatro pasos.4.4.2.4. En la tabla 7. consiste en asignar los estados lógicos y seleccionar el tipo de flip-flop con el cual se implementará el circuito lógico. lo cual simplifica el diseño del circuito. debido a que sus estados son el complemento de S1 y S3 respectivamante. Interruptor por relevo y de estado solido Observando la tabla 7.

Diseño final del circuito lógico . Mapas de Karnaugh El último paso del diseño consiste en construir el circuito lógico a partir de las ecuaciones lógicas obtenidas. K3). J3.4.4.6. el cual se muestra en la figura 7.5 con las ecuaciones lógicas correspondientes.3.6. K1.4. Figura 7.4.5. Figura 7.Estado Actual Entrada Estado Siguiente Estadas de los flip-flops S1 S3 D S1 S3 J1 K1 J3 K3 1 0 0 0 0 X 1 0 X 1 1 0 1 0 X 0 X 1 0 1 0 1 1 1 X X 0 0 0 0 0 1 0 X 1 X 1 0 1 1 1 X 0 1 X 1 1 1 0 1 X 1 X 0 0 1 1 0 0 0 X X 1 0 0 1 1 0 1 X 0 X Tabla 7.4. Tabla de estado El siguiente paso consiste en construir los mapas de Karnaugh para los estados de los flip-flops (J1. Tales estados se indican en los mapas de Karnaugh mostrados en las figura 7.

donde se puede notar lo siguiente: • Todos los flip-flops se encuentran conectados a una señal común de reloj. A continuación veremos estas dos categorías de PLDs y sus diferencias.1. 2 entradas de alimentación (pines 10 y 20). dispuestos de la misma manera que en los PLDs combinatorios. En esta lección veremos la descripción de algunos PLDs secuenciales de uso comercial. la gran parte de los PLDs existentes en el mercado tienen incorporados estos dispositivos en su estructura interna. Se puede agregar que los PLDs facilitan el ruteado de las placas de circuito impreso debido a la libertad de asignación que proporcionan. En la Figura 8. Los PLDs secuenciales se componen de un arreglo programable de compuertas AND seguido de un arreglo fijo de compuertas OR. . se observa la estructura interna de este PLD. como en los circuitos secuenciales sincrónicos.1. Su diferencia con los PLDs combinatorios se debe a que el estado de las salidas se almacena en flip-flops cuando se presenta un flanco activo en la señal de reloj del PLD. Debido a que los flip-flops tienen esta característica. Arquitectura de Diversos PLD's Secuenciales En el capítulo 4 vimos la descripción y arquitectura de los PLD's combinatorios. 8 salidas (pines 12 a 19).1.1 se muestra un PLD secuencial PAL16R6. en el cual se dieron los detalles sobre su estructura y funcionamiento. En este capitulo veremos la arquitectura de algunos PLDs de uso general y ejemplos de programación para aplicaciones particulares mediante el Programa ABEL. PLD's Secuenciales En la mayoría de las aplicaciones en electrónica digital se requiere del almacenamiento de información de forma temporal para efectuar operaciones lógicas. PLDs no reprogramables En este tipo de PLD's es posible programar el arreglo de compuertas sólo una vez. En la figura 8. Este PLD tiene la posibilidad de obtener 10 entradas como máximo y 6 salidas de registro con flip-flop tipo D. y además permiten realizar modificaciones posteriores del diseño. Estos dispositivos son conocidos por la sigla PAL (Programmable Array Logic).Observe que los estados S2 y S4 no se tuvieron en cuenta en el diseño debido a que los flip-flops por defecto entregan en sus salidas una variable y su complemento. además de la ventaja que ofrecen para reducir el tamaño de los circuitos. Los PLDs secuenciales se encuentran clasificados en dos tipos: "no reprogramables" y "reprogramables". 1 entrada de reloj (pin 1). Este dispositivo tiene 20 pines. los cuales se distribuyen de la siguiente forma: • • • • • 8 entradas principales (pines 2 a 9). Estos dispositivos lógicos se conocen como PLDs de registro y son empleados para construir máquinas de estado de propósito especial. de tal manera que no es posible hacer modificaciones posteriores al estado de los fusibles. 1 entrada de habilitación (pin 11). quedando únicamente operando con la lógica definida por las conexiones internas programadas.

1.1.1. lo cual permite crear lazos de realimentación. Entradas Nº de por PLD pines compuerta AND PAL16R4 20 16 PAL16R6 20 16 PAL16R8 20 16 PAL20R4 24 20 PAL20R6 24 20 PAL20R8 24 20 Salidas Salidas Entradas Salidas combinacionales tipo principales combinacionales bidireccionales registro 8 8 8 12 12 12 4 2 0 4 2 0 4 6 8 4 6 8 0 0 0 0 0 0 Tabla 8.• • • Cada una de las salidas de los flip-flops pasa por un buffer triestado cuya señal de habilitación es común para los demás buffers de las salidas. En la figura 8. Los PLDs PAL16XX indicados en la tabla tiene el mismo arreglo de compuertas de 16 variables. Descripción de PLDs secuenciales no reprogramables de uso general .1.1 se observa una lista de algunos PLDs secuenciales de uso general.1. Existen dos pines especiales IO1 e IO8. En la tabla 8. Las salidas de los flip-flops retornar hacia el arreglo de compuertas. lo cual permite implementar contadores y registros. los cuales son bidireccionales y se pueden configurar como entrada o como salida.2 se observan los esquemas lógicos de los PLDs relacionados en la tabla 8. Los PLDs de la familia PAL20XX tienen un arreglo de compuertas similar con 20 variables.1.

1 entrada de habilitación (pin 11). Las salidas se pueden programar como salida secuencial o como salida combinacional dependiendo del estado de los fusibles de selección ubicados en la macrocelda lógica de cada salida.Figura 8. Figura 8. Estas celdas son conocidas como OLMCs de la sigla en inglés Output Logic MacroCell y en la figura 8.4 se observa la estructura interna de una de estas celdas en sus dos configuraciones disponibles (salida secuencial y salida combinacional). Wakerly) PLDs reprogramables Estos PLDs utilizan tecnología EEPROM (Electrical Erasable Programmable ROM) y se conocen con el nombre de GALs (Generic Array Logic). En la Figura 8. Diagramas lógicos de PLDs secuenciales no reprogramables (Copyright © 1999 by John F. (Copyright © 1999 by John F. Estos dispositivos a diferencia de los anteriores permiten modificar la disposición interna de las conexiones de las compuertas después de haber sido programados. La macrocelda corresponde al conjunto de elementos agrupados en cada salida.1. 1 entrada de reloj (pin 1). incluyendo la compuerta OR). Arquitectura de Diversos PLD's Secuenciales . 8 salidas de registro programables (pines 12 a 19).1. Wakerly).1.2. Este dispositivo tiene 20 pines distribuidos de la siguiente forma: • • • • • 8 entradas dedicadas (pines 2 a 9).4.3 se observa la arquitectura de una GAL16V8. Macroceldas lógicas para el PLD GAL16V8. 2 entradas de alimentación (pines 10 y 20).1.

.

Wakerly) Arquitectura de Diversos PLD's Secuenciales .1.Figura 8.1. (Copyright © 1999 by John F. PLD secuencial PAL16R6.

.

Recordando lo visto en el capítulo 4.qd1]. Designer G.d = !reset & (state:1 # state:2). Company Assisted Technology. Date 9/12/95. qa1. asignación de pines de entrada y salida y ecuaciones lógicas.qc0]. Assembly None. Inc. En esta lección se indicarán algunos ejemplos para aplicaciones particulares desarrolladas en CUPL. 1 */ /* using software emulated exclusive or's */ qa0. /* two-bit counter example no..1 . Device P16R8. Revision 03. /* * Outputs: define outputs and output active levels */ Pin 19 = qa0. Pin 13 = qd0. Pin 2 = reset. Se plantea al estudiante analizar el código de estos ejemplos para comprender la forma en que se pueden programar en CUPL. Los ejemplos ilustrados en esta lección fueron tomados de algunos fabricantes que han desarrollado estos códigos para aplicaciones particulares en sus dispositivos. 4 */ /* using bit fields on the left hand side of the equals sign */ field q = [qd0. qc0. q. qb1.d = !reset & !qa0.d = !reset & (qa1 $ qa0). 3 */ /* using bit fields on the right hand side of the equals sign */ field state = [qc1. en este lenguaje el código fuente se dividide en tres partes: Encabezado. Partno CA0008. Woolhiser. /* two-bit counter example no. qc1.Contador Sincrónico de 8 bits con Cargue en Paralelo Name Count8. */ /* and flexibilty of expression with CUPL.d = !reset & (state:0 # state:2).!qd1] & [qd1.Uso de los flip-flop D en un PLD Name Flops. Pin 15 = qc0. Ejemplo 8. Pin 18 = qa1.!qd0] # [!qd0. Pin 17 = qb0. EP300 */ /****************************************************************/ Pin 1 = clock. Pin 11 = !enable. /* * Logic: examples of two-bit counters using d-type flip-flops */ /* two-bit counter example no.Ejemplos de ProgramaciÓn de PLDs Secuenciales En el capitulo 4 se vieron las bases sobre la programación de PLD's con CUPL. 2 */ /* using expanded exclusive or's */ qb0. The following */ /* are four implementations of a two bit counter. Location None.d = !reset & (!qb0 & !qb1 # !qb0 & qb1).2. Ejemplo 8.2. Pin 16 = qb1. */ /* */ /****************************************************************/ /* Target Devices: PAL16R8. /* two-bit counter example no. Pin 12 = qd1. Partno CA0002. /****************************************************************/ /* */ /* This example demonstrates the use of D-type flip-flops. . PAL16RP8.qd0]).2 . Pin 14 = qc1.d = !reset & (!qb0 & qb1 # qb0 & !qb1).qd1] & [!qd1.d = !reset & ([!qd0.

d = clear # (count # hold) & !Q6 $ load & !D6 # count & carry_in & [Q0. The increment function adds one to the output */ /* register when the CARRY-IN is true (!ci=LO). The Lower limits are loaded into the dedicated input registers on the rising edge of LLC and the upper limits are loaded into the input registers found in the I/O macrocells on the rising edge of ULC.. because the equations are already minimized and in sum of products form. when preloading is done.. load = instruction:2 .. The counter begins counting upwards.7]:& . !Q3. Assembly COUNTER.2.5]:& .Contador Up/Down con Límites Name CYP_CNT.11] = [instr0. */ PIN 1 = CLK. /* Register Clock */ PIN [2. Ejemplo 8..Date 7/19/95. !Q5.7] . and */ /* hold capability.7] = [LL0.. /* Carry-Out Output */ PIN [15. begins counting downward.d = clear # (count # hold) & !Q5 $ load & !D5 # count & carry_in & [Q0.. /* This design is an up/down counter with preloadable limits. /** Logic Equations **/ carry_out = carry_in & [Q0.. Company Assisted Technology. /* Clock used for counting */ PIN 2 = LLC.1]:& .. /* Operation Types */ hold = instruction:1 . Revision 01.10] = [D0.. This design. and then. Location U1. /* Register Outputs */ /** Declarations and Intermediate Variable Definitions **/ field instruction = [instr1.6]:& . clear. otherwise the */ /* operation is a hold.3 . /* Register Output Enable */ PIN 23 = !carry_in . otherwise false */ /* (!co=HI).3].. /* Instruction Field */ clear = instruction:0 . The HOLD */ /* operation holds the previous value regardless of clock */ /* transitions. /****************************************************************/ /* */ /* Octal Counter (74LS461) */ /* */ /* 8-bit synchronous counter with parallel load. Partno CY7C330. /* Lower limit hold registers */ .d = clear # (count # hold) & !Q0 $ load & !D0 # count & carry_in . !Q2.0] .1] . count = instruction:3 . Company Cypress Semiconductor..d = clear # (count # hold) & !Q1 $ load & !D1 # count & carry_in & Q0 .d = clear # (count # hold) & !Q2 $ load & !D2 # count & carry_in & [Q0. Device P7C330. Revision 01. Device P20X8. */ /****************************************************************/ /** Allowable Target Device Types : PAL20X8 */ /****************************************************************/ /** Inputs **/ PIN 1 = clock . /* Carry-In Input */ /** Outputs **/ PIN 14 = !carry_out . The LOAD operation loads the inputs */ /* (D7-D0) into the output register (Q7-Q0).2]:& . !Q6. !Q4. should only be compiled with the default minimization (-M1 flag). Designer Kahl. /* Data Inputs */ PIN 13 = !out_enable . Location None..4]:& . !Q0. Assembly None.d = clear # (count # hold) & !Q3 $ load & !D3 # count & carry_in & [Q0.d = clear # (count # hold) & !Q7 $ load & !D7 # count & carry_in & [Q0. /* Clock for preloading lower limit */ PIN 3 = ULC.3]:& . !Q7. The CLEAR */ /* operation resets the output register to all LOWs.0]... The CARRY-OUT is true (!co=LO) when */ /* the output register (Q7-Q0) is all HIGHs. Designer Joe Designer. until the upper limit is reached.. !Q1.d = clear # (count # hold) & !Q4 $ load & !D4 # count & carry_in & [Q0. Date 02-25-95.22] = [Q7. /* Instruction Type Inputs */ PIN [3. /* Clock for preloading upper limit */ PIN [4.

SR = RESET. /* Count direction */ PIN 16 = !RESET. PIN 18 = UL6.DQ & CNT2 & !PLDONE # LL2. !CNT1..IMUX = CNT2. /* Shared input MUX definition */ PINNODE 50 = UL1. /* Also used for Upper limit loading */ PIN 24 = CNT5. LPL. /* Also used for Upper limit loading */ PIN 17 = CNT3. Note how the use of the XOR terms significantly reduces the number of product terms that are needed. UL4 = CNT4. !CNT2.IOD. /* through the share feedback MUX. /* Lower limit preload indications */ /* Counter output registers.DQ & LPL.CKMUX = LLC. /* Used for Upper limit loading */ PIN 25 = UL7.. /* Output enable will be controlled by pin 14 */ /* Count equations.CKMUX = LLC. /* Pin 3 will be used for upper preload */ [LL0. /* Preloading has finished */ PINNODE 31 = LEQUAL.CKMUX = ULC.7].IOD..OEMUX = CNTOE.IOD. /* Shared input MUX definition */ PINNODE 49 = UL3.DQ & LPL. /* Used for Upper limit loading */ PIN 27 = UPL.DQ & !CNT0 # CNT0 & !UL0 & UPL. /* Count register will be reset with pin 16 */ [CNT0.IOD.D = !CNT2 $ !LL2. . UL1..PIN [9.5].7].IOD. UL3 = CNT3.IOD. /* indicate which pin will be fed */ UL5.IMUX = CNT5.DQ & !PLDONE & !UL1 & CNT1 # UPL. /* Shared input MUX definition */ PINNODE 48 = UL4.DQ & CNT2 & !UL2 & !PLDONE # UPL.DQ & LPL.. [CNT0. PIN 23 = CNT7.DQ & !PLDONE & CNT1 # LL1. PIN 13 = LPL.D = !CNT0 $ PLDONE # !LL0.DQ & LPL.*/ UL4.CKMUX = LLC.7].DQ. */ !CNT0. UL3. PINNODE 29 = UEQUAL.DQ & !PLDONE & UL1 & !CNT1 # CNT0 & PLDONE & !UP # !CNT0 & PLDONE & UP . /* Shared input MUX definition */ PINNODE 47 = UL5.IOD. /* Also used for Upper limit loading */ PIN 19 = CNT4.DQ # LL0.IOD. /* Also used for Upper limit loading */ PIN 15 = CNT1.. /* Reset signal clears all registers */ PIN 14 = !CNTOE. /* Shared input MUX definition */ UL0. /* Also used for Upper limit loading */ PIN 26 = CNT2. RESET.7]. /* Upper limit has been reached */ PINNODE 30 = PLDONE.IMUX = CNT4. /* Pin 2 will be used for lower preload */ [CNT0.DQ & LPL.DQ & LPL.IOD.DQ .DQ & CNT0 # !CNT0 & UL0 & UPL. UL0 = CNT0.12] = [LL4.IMUX = CNT1. Pin assignments are based on the number of product terms are available on that pin. /* Pin 3 will be used for upper preload */ [UL6. UL5 = CNT5. UPL.DQ & !PLDONE & !CNT1 # UPL. /* These definitions are used to */ UL2.D = !CNT1 $ !LL1.7].IOD.IMUX = CNT0.IMUX = CNT3.CKMUX = ULC. UL2 = CNT2..DQ & !CNT2 & UL2 & !PLDONE # CNT0 & PLDONE & !UP & CNT1 # !CNT0 & PLDONE & UP & !CNT1.IOD.IOD. /* Shared input MUX definition */ PINNODE 46 = UL2. /* I/O pin OE used for loading upper limit */ PINNODE 45 = UL0. */ PIN 28 = CNT0. UL1 = CNT1. This allows this complex design to fit into the device. /* Also used for Upper limit loading */ PIN 20 = CNT6. /* Lower limit has been reached */ PINNODE 32 = UP.DQ & !CNT2 & !PLDONE # UPL.CKMUX = ULC.

DQ & CNT5 & !PLDONE # LL5.DQ # UPL.D = !LPL.!CNT3.DQ & !CNT7 # UL3 & !CNT3 # CNT5 & !UL5 # !CNT5 & UL5 # !UL1 & CNT1 # !CNT0 & UL0 # CNT2 & !UL2 # !UL4 & CNT4 # UL4 & !CNT4 # CNT0 & !UL0 # UL1 & !CNT1 # CNT6 & !UL6.DQ & UL7.DQ & LPL.DQ & CNT3 # LL2.DQ & !CNT7 & !PLDONE # CNT0 & CNT2 & CNT5 & PLDONE & CNT6 & CNT4 & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & !CNT5 & PLDONE & !CNT6 & !CNT4 & UP & !CNT3 & ! CNT1.D = LL6.DQ & LPL.DQ & !PLDONE & CNT6 # LL6.DQ & CNT7 # UL7.DQ & !UL7.DQ # !UL7.DQ & !CNT5 # !LL1.DQ & !PLDONE & !CNT6 # UPL.DQ & LPL.DQ & CNT0 # LL1.DQ & !CNT6 # !LL7.DQ & !CNT1 # !LL6.DQ & CNT1 # LL0.DQ & !CNT5 & !PLDONE # UPL.DQ & CNT6 # !LL3.DQ .DQ & !PLDONE & !CNT3 # UPL.DQ & LPL.D = !CNT4 $ !LL4.DQ & LPL. !CNT7.DQ & CNT7 # LL7.DQ & !PLDONE & CNT3 # LL3.D = !CNT3 $ !LL3.DQ & !PLDONE & CNT4 # LL4.DQ & !PLDONE & !CNT4 # UPL.DQ & !UPL. !CNT4.DQ & !CNT4 # !LL0.DQ & !CNT0 # !LL2.D = !CNT7 $ !LL7.DQ & !CNT7 & !PLDONE # UPL.DQ & LPL.DQ & LPL.DQ & LPL.DQ & !PLDONE & !UL4 & CNT4 # UPL.DQ & !PLDONE & UP. /* Has the upper limit been reached */ UEQUAL.D = !CNT5 $ !LL5.D = !CNT6 $ !LL6.DQ & CNT2 # !LL4.DQ & LPL.DQ & CNT7 & !PLDONE # LL7. !CNT6.DQ & !PLDONE & UL4 & !CNT4 # CNT0 & CNT2 & PLDONE & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & PLDONE & UP & !CNT3 & !CNT1. !CNT5.D = !CNT6 & UL6. /* Has preloading finished */ PLDONE. /* Direction of count */ UP.DQ & !PLDONE & !CNT6 & UL6.DQ & CNT7 & !PLDONE # UPL.DQ & !CNT7 # LL3.DQ & LPL.DQ & !CNT5 & UL5 & !PLDONE # CNT0 & CNT2 & PLDONE & CNT4 & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & PLDONE & !CNT4 & UP & !CNT3 & !CNT1.DQ & CNT5 # LL5.DQ & CNT4 # LL4.DQ & !CNT3 # !LL5. /* Has the lower limit been reached */ LEQUAL.DQ & !PLDONE & !UL3 & CNT3 # UPL.DQ & CNT5 & !UL5 & !PLDONE # UPL.DQ .DQ & !PLDONE & !UP # LPL.D = UP $ !UEQUAL & !UP & PLDONE # !LEQUAL & UP & PLDONE # UPL.DQ & !PLDONE & UL3 & !CNT3 # CNT0 & CNT2 & PLDONE & !UP & CNT1 # !CNT0 & !CNT2 & PLDONE & UP & !CNT1.DQ & !CNT2.DQ & !PLDONE & CNT6 & !UL6.DQ # CNT0 & CNT2 & CNT5 & PLDONE & CNT4 & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & !CNT5 & PLDONE & !CNT4 & UP & !CNT3 & !CNT1.

/* Counter/Shifter Outputs */ /** Declarations and Intermediate Variable Definitions **/ count_up = !shift & cntup & !shlft. Company Personal CAD Systems. Device ep600.Contador Up/Down de 16 bits Name Tcounter.# !UL3 & CNT3 # !CNT2 & UL2... Inc. /* Counter Reset Command */ Field counter = [q15.6]:& # shift_left & (q6 $ q7) # shift_right & (q7 $ q8)) # 'h'0100 & (count_up & [q0. Assembly None. Ejemplo 8.. Revision 01.0].4]:& /* BIT 5 */ # count_down & ![q0.5]:& /* BIT 6 */ # count_down & ![q0.2]:& # shift_left & (q2 $ q3) # shift_right & (q3 $ q4)) # 'h'0010 & (count_up & [q0.t = 'h'0001 & (count_up & 'b'1 /* BIT 0 (LSB) */ # count_down & 'b'1 # shift_left & (data_in $ q0) # shift_right & (q0 $ q1)) # 'h'0002 & (count_up & q0 /* BIT 1 */ # count_down & !q0 # shift_left & (q0 $ q1) # shift_right & (q1 $ q2)) # 'h'0004 & (count_up & [q0. Partno CA0020. /* Serial Shift Data Input */ Pin 11 = cntup.3]:& # shift_left & (q3 $ q4) # shift_right & (q4 $ q5)) # 'h'0020 & (count_up & [q0.1]:& /* BIT 2 */ # count_down & ![q0.... count_down = !shift & !cntup & !shlft... /****************************************************************/ /* */ /* 16 Bit Synchronous Up/Down Counter */ /* */ /* This is a 16-bit up/down counter with built-in shift */ /* register using toggle flip-flops. /* Shift Left Mode Control */ /** Outputs **/ Pin [3.... Designer Kahl. shift_left = shift & !cntup & shlft..2.1]:& # shift_left & (q1 $ q2) # shift_right & (q2 $ q3)) # 'h'0008 & (count_up & [q0.7]:& /* BIT 8 */ . Date 6/9/95. The various modes are */ /* controlled by the signals CNTUP (1 = count up) */ /* SHIFT (1 = shift) */ /* SHLFT (1 = shift left) */ /****************************************************************/ /* Allowable Target Device Types : EP600 */ /****************************************************************/ /** Inputs **/ Pin 1 = clock1.15.4 . reset_count = shift & cntup & shlft.4]:& # shift_left & (q4 $ q5) # shift_right & (q5 $ q6)) # 'h'0040 & (count_up & [q0... Location None. /* Counter Clock 2 */ Pin 2 = data_in.10.3]:& /* BIT 4 */ # count_down & ![q0. /* Declared Counter Field */ /** Logic Equations **/ counter.2]:& /* BIT 3 */ # count_down & ![q0.6]:& /* BIT 7 */ # count_down & ![q0... /* Shift/Count Mode Control */ Pin 23 = shlft..15].22] = [q0. /* Counter Clock 1 */ Pin 13 = clock2.. shift_right = shift & !cntup & !shlft.5]:& # shift_left & (q5 $ q6) # shift_right & (q6 $ q7)) # 'h'0080 & (count_up & [q0. /* Count Up/Down Mode Control */ Pin 14 = shift.

10]:& # shift_left & (q10 $ q11) # shift_right & (q11 $ q12)) # 'h'1000 & (count_up & [q0.14]:& # shift_left & (q14 $ q15) # shift_right & (q15 $ data_in)) .. /* Resets the Counter */ ..10]:& /* BIT 11 */ # count_down & ![q0.13]:& /* BIT 14 */ # count_down & ![q0.11]:& # shift_left & (q11 $ q12) # shift_right & (q12 $ q13)) # 'h'2000 & (count_up & [q0...8]:& /* BIT 9 */ # count_down & ![q0. counter..12]:& /* BIT 13 */ # count_down & ![q0.13]:& # shift_left & (q13 $ q14) # shift_right & (q14 $ q15)) # 'h'8000 & (count_up & [q0..# count_down & ![q0...8]:& # shift_left & (q8 $ q9) # shift_right & (q9 $ q10)) # 'h'0400 & (count_up & [q0.11]:& /* BIT 12 */ # count_down & ![q0.ar = reset_count....14]:& /* BIT 15 (MSB) */ # count_down & ![q0.9]:& # shift_left & (q9 $ q10) # shift_right & (q10 $ q11)) # 'h'0800 & (count_up & [q0.7]:& # shift_left & (q7 $ q8) # shift_right & (q8 $ q9)) # 'h'0200 & (count_up & [q0...12]:& # shift_left & (q12 $ q13) # shift_right & (q13 $ q14)) # 'h'4000 & (count_up & [q0...9]:& /* BIT 10 */ # count_down & ![q0.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->