76
16. 16. An Aná lisis y dise lisis y diseñ o de o de sistemas secuenciales sistemas secuenciales Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 – 2007 Análisis y diseño de sistemas secuenciales 2 Introducci Introducción

Sist Sec

Embed Size (px)

Citation preview

Page 1: Sist Sec

1

16.16. AnAnáálisis y diselisis y diseñño deo desistemas secuencialessistemas secuencialesOliverio J. Santana Jaria

Sistemas DigitalesIngeniería Técnica en Informática de Sistemas

Curso 2006 – 2007

Análisis y diseño de sistemas secuenciales 2

IntroducciIntroduccióónn� No resulta fácil deducir el funcionamiento de un circuito secuencial a partir de un diagrama de puertas lógicas� De la misma manera, dada la descripción funcional de un circuito secuencial, no es trivial obtener el diagrama que represente la implementación del mismo� Los objetivos de este tema son:� Describir el proceso de análisis que permite comprender el funcionamiento de un circuito secuencial partiendo de su implementación� Describir el proceso de síntesis que permite implementar un circuito secuencial a partir de una descripción funcional

Page 2: Sist Sec

2

Análisis y diseño de sistemas secuenciales 3

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 4

Estado de un sistema secuencialEstado de un sistema secuencial� Los sistemas secuenciales se caracterizan por el hecho de que sus salidas dependen no sólo de las entradas actuales, sino de toda la secuencia de entradas anteriores� Toda esta secuencia de entradas anteriores da lugar a lo que se denomina el estado del circuito, que estáalmacenado en componentes de memorizaciónconjunto

de puertas lógicas

memoria

x0

x1

xm…

y0

y1

yn…

{x0, x1, … xm} ≡ Xt

{y0, y1, … yn} ≡ Yt

Yt = F(Xt, Xt-1, Xt-2 , …)

Page 3: Sist Sec

3

Análisis y diseño de sistemas secuenciales 5

Estado de un sistema secuencialEstado de un sistema secuencial� De acuerdo con esta definición, el estado de un sistema secuencial depende de la secuencia de entradas anteriores al sistema� Este planteamiento permite descomponer la ecuación general de los sistemas secuenciales en otras dos ecuaciones: una de salida y otra de estado siguienteYt = F(Xt, Et)

Et = F(Xt-1, Xt-2 , …)

Yt = F(Xt, Xt-1, Xt-2 , …) = F(Xt, Et)

salida actual � Yt = h(Xt, Et)

estado siguiente � Et+1 = f(Xt, Et)

Análisis y diseño de sistemas secuenciales 6

CaracterizaciCaracterizacióón de sistemas secuencialesn de sistemas secuenciales� Para caracterizar completamente un sistema secuencial es necesario plantear:� Las tablas y ecuaciones booleanas que definen el siguiente estado del sistema a partir de las entradas del circuito y el estado actual del mismo� Las tablas y ecuaciones booleanas que definen las salidas del sistema a partir de las entradas del circuito y el estado actualdel mismo� Esta información puede visualizarse usando un diagrama de estados que muestre todos los estados posibles del sistema y las transiciones entre ellos

Page 4: Sist Sec

4

Análisis y diseño de sistemas secuenciales 7

Modelo de mModelo de mááquinas de estados finitosquinas de estados finitos� Esta forma de caracterizar un sistema secuencial estábasada en un modelo de máquinas de estados finitos (FSM – Finite-State Machine)� Teóricamente, el modelo FSM se define como una quíntupla < S, I, O, f, h>� S � conjunto de estados (states)� I � conjunto de entradas (inputs)� O � conjunto de salidas (outputs)� f � función de estado siguiente� h � función de salida

Análisis y diseño de sistemas secuenciales 8

Modelo de mModelo de mááquinas de estados finitosquinas de estados finitos� Este modelo FSM supone que el tiempo se divide en intervalos uniformes y que las transiciones de un estado a otro solo ocurren al principio de cada intervalo� La función de salida h define los valores de salida durante el intervalo de tiempo actual de acuerdo con el estado y las entradas actuales� La función de estado siguiente f define cuál será el estado en el siguiente intervalo de tiempo de acuerdo con el estado y las entradas en el intervalo actualYt = h(Xt, Et)

Et+1 = f(Xt, Et)

Page 5: Sist Sec

5

Análisis y diseño de sistemas secuenciales 9

Tipos de FSMTipos de FSM� En realidad, la función de salida puede definirse de dos maneras distintas, lo que da lugar a dos modelos FSM distintos� El modelo de Moore describe sistemas secuenciales cuyas salidas dependen única y exclusivamente del estado del circuito� El modelo de Mealy describe sistemas secuenciales cuyas salidas dependen del estado del circuito y de las entradas en el intervalo de tiempo actualYt = h(Et)

Yt = h(Et, Xt)Et+1 = f(Xt, Et)

Et+1 = f(Xt, Et)

Análisis y diseño de sistemas secuenciales 10

ImplementaciImplementacióón de FSMn de FSM� De esta manera, cualquier sistema secuencial se puede modelar utilizando una máquina de estados finitos y, a partir de ella, realizar su implementación� El estado del sistema secuencial será almacenado en circuitos biestables que actuarán como elementos de memorización� Las funciones de estado siguiente f y de salida h se implementarán utilizando lógica combinacional

Page 6: Sist Sec

6

Análisis y diseño de sistemas secuenciales 11

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 12

AnAnáálisis de sistemas secuencialeslisis de sistemas secuenciales� El proceso de análisis de un sistema secuencial consiste en la generación de una descripción funcional a partir del diagrama lógico de un determinado circuito� La descripción funcional contendrá varios elementos� Diagrama de estados del circuito� Ecuaciones y tablas que definan el estado siguiente� Ecuaciones y tablas que definan la salida del circuito� Una vez obtenida la descripción funcional, es posible desarrollar cronogramas que permitan estudiar el comportamiento del sistema

Page 7: Sist Sec

7

Análisis y diseño de sistemas secuenciales 13

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 14

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� Los circuitos secuenciales de tipo Moore son aquellos en los que las salidas no dependen del valor actual de las entradas, sino únicamente del estado actual� Este diagrama muestra un circuito secuencial de tipoMoore compuesto de dosbiestables D

Page 8: Sist Sec

8

Análisis y diseño de sistemas secuenciales 15

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� El primer paso en el análisis es obtener las ecuaciones de entrada a cada biestable del circuito� En este caso hay dos biestables cuyas entradas son D0 y D1, por lo que plantearemos dos ecuaciones en función de la entrada Cnt y de las salidas de los biestables

Análisis y diseño de sistemas secuenciales 16

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� Estas ecuaciones se denominan ecuaciones de excitación, ya que determinan el valor de las entradas de los biestables del circuito� A continuación hay que transformar estas ecuaciones en las ecuaciones de estado siguiente características de cada biestable� Dado que el estado siguiente de un biestable D es igual al valor de la señal D, tenemos que:

Page 9: Sist Sec

9

Análisis y diseño de sistemas secuenciales 17

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� A continuación debemos calcular la ecuación de salida � Dado que estamos hablando de un circuito de tipo Moore, la salida dependerá sólo del estado actual del sistema, es decir, de las salidas de los biestables

Análisis y diseño de sistemas secuenciales 18

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� A partir de las ecuaciones de estado siguiente y de salida generamos una tabla que refleje esta información� Cada fila de la tabla se corresponde con un estado del circuito� Cada columna de la tabla representa un valor de las entradas� Dado que el circuito tiene dos biestables, el número total de estados posibles es cuatro

Page 10: Sist Sec

10

Análisis y diseño de sistemas secuenciales 19

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� Para facilitar la visualización del funcionamiento del circuito podemos representar el contenido de esta tabla usando un diagrama de estados� Cada estado se representa con un círculo que contiene el valor de los biestables que representa y el valor de las salidas� Las transiciones entre estados se representan como flechas entre los círculos, etiquetadas con el valor de las entradas que causa la transición� En general, en un circuito con m biestables y k entradas, el número total de estados será 2m y el número total de transiciones será 2m · 2k

Análisis y diseño de sistemas secuenciales 20

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� El diagrama de estados puede obtenerse fácilmente a partir de la tabla de estado siguiente y de salida

Page 11: Sist Sec

11

Análisis y diseño de sistemas secuenciales 21

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� Con este diagrama podemos comprobar que:� Cuando Cnt = 0 el circuito permanece en el estado actual� Mientras Cnt = 1 el circuito va recorriendo todos los estados siguiendo esta secuencia: 0, 1, 2, 3, 0, 1, 2, 3, 0, …� Por lo tanto, este circuito es un contador módulo 4 con una entrada de control que habilita la cuenta

Análisis y diseño de sistemas secuenciales 22

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� Con toda esta información podemos generar un cronograma que permita ver el comportamiento del circuito bajo determinadas circunstancias

Page 12: Sist Sec

12

Análisis y diseño de sistemas secuenciales 23

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� Este cronograma muestra cuatro ciclos de reloj con la señal Cnt activa entre los instantes de tiempo t0 y t4� Suponemos que el estado inicial del contador es 00

Análisis y diseño de sistemas secuenciales 24

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� El contador pasa al estado 01 tras el flanco de subida de la señal de reloj en t1� El contador pasa al estado 10 tras el flanco de subida de la señal de reloj en t2

Page 13: Sist Sec

13

Análisis y diseño de sistemas secuenciales 25

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� El contador pasa al estado 11 tras el flanco de subida de la señal de reloj en t3, activando la salida Y� Dado que la señal Cnt se desconecta en t3, el contador permanece en el estado 11 tras el flanco de subida de t5

Análisis y diseño de sistemas secuenciales 26

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MooreMoore� Para comprobar el comportamiento del circuito sería necesario construir cronogramas para todas las posibles secuencias de valores de entrada� Finalmente, estos cronogramas deben ser verificados utilizando una herramienta de simulación de circuitos� Las herramientas de simulación a nivel físico permiten describir el circuito lógico utilizando puertas y biestables� Las herramientas de simulación a nivel funcional permiten describir el circuito en base a tablas o diagramas de estado� En cualquier caso, estas herramientas no permiten verificar los retardos reales del circuito, ya que no tienen información sobre su implementación

Page 14: Sist Sec

14

Análisis y diseño de sistemas secuenciales 27

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 28

AnAnáálisis de sistemas tipo lisis de sistemas tipo MealyMealy� Los circuitos secuenciales de tipo Mealy son aquellos en los que las salidas dependen del valor actual de las entradas y del estado actual� Este diagrama muestra un circuito secuencial de tipo Mealy compuesto de dos biestables D

Page 15: Sist Sec

15

Análisis y diseño de sistemas secuenciales 29

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� El primer paso en el análisis es obtener las ecuaciones de excitación que definen la entrada de cada biestable� En este caso hay dos biestables cuyas entradas son D0 y D1, por lo que plantearemos dos ecuaciones en función de la entrada Cnt y de las salidas de los biestables

Análisis y diseño de sistemas secuenciales 30

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� A continuación hay que transformar estas ecuaciones en las ecuaciones de estado siguiente características de cada biestable� Dado que el estado siguiente de un biestable D es igual al valor de la señal D, tenemos que:

Page 16: Sist Sec

16

Análisis y diseño de sistemas secuenciales 31

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� A continuación calculamos la ecuación de salida� En un circuito de tipo Mealy la salida depende tanto del estado actual del sistema como de los valores actuales de las entradas del mismo

Análisis y diseño de sistemas secuenciales 32

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� A partir de estas ecuaciones generamos la tabla de estado siguiente y de salida� La principal diferencia de esta tabla con la de un circuito de tipo Moore es que los valores de salida también dependen de los valores de entrada

Page 17: Sist Sec

17

Análisis y diseño de sistemas secuenciales 33

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� El diagrama de estados puede obtenerse a partir de esta tabla, pero teniendo en cuenta que las salidas no se asocian con los estados sino con las transiciones

Análisis y diseño de sistemas secuenciales 34

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� Un arco con la etiqueta X/Y se interpreta así:� Mientras el circuito permanezca en el estado del que sale el arco y el valor de las entradas sea igual a X, la salida del circuito será igual a Y� Si el valor de las entradas en el flanco de reloj es igual a X, el circuito cambiará en el siguiente ciclo al estado apuntado por el arco

Page 18: Sist Sec

18

Análisis y diseño de sistemas secuenciales 35

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� A partir del diagrama de estados podemos comprobar que el circuito es un contador módulo 4 con una entrada de control que habilita la cuenta� Cuando Cnt = 0 el circuito permanece en el estado actual� Mientras Cnt = 1 el circuito va recorriendo todos los estados siguiendo esta secuencia: 0, 1, 2, 3, 0, 1, 2, 3, 0, …

Análisis y diseño de sistemas secuenciales 36

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� Con toda esta información podemos generar un cronograma que permita ver el comportamiento del circuito bajo determinadas circunstancias

Page 19: Sist Sec

19

Análisis y diseño de sistemas secuenciales 37

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� Este cronograma muestra cuatro ciclos de reloj con la señal Cnt activa entre los instantes de tiempo t0 y t4� Suponemos que el estado inicial del contador es 00

Análisis y diseño de sistemas secuenciales 38

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� El contador pasa al estado 01 tras el flanco de subida de la señal de reloj en t1� El contador pasa al estado 10 tras el flanco de subida de la señal de reloj en t2

Page 20: Sist Sec

20

Análisis y diseño de sistemas secuenciales 39

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� El contador pasa al estado 11 tras el flanco de subida de la señal de reloj en t3, activando la salida Y� Dado que la señal Cnt se desconecta en t3, el contador permanece en el estado 11 tras el flanco de subida de t5

Análisis y diseño de sistemas secuenciales 40

AnAnáálisis de sistemas de tipo lisis de sistemas de tipo MealyMealy� La principal diferencia con respecto al contador equivalente de tipo Moore es que la salida Y no permanece a 1 cuando se desactiva Cnt, sino que también pasa a 0

Page 21: Sist Sec

21

Análisis y diseño de sistemas secuenciales 41

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 42

Procedimiento de anProcedimiento de anáálisislisis� En general, el procedimiento de análisis de lógica secuencial sigue los pasos que pueden verse en este diagrama� A continuación vamos a ver unos ejemplos que nos permitirán clarificar todos estos conceptos

Page 22: Sist Sec

22

Análisis y diseño de sistemas secuenciales 43

Ejemplo de anEjemplo de anáálisis 1lisis 1� Vamos a realizar el análisis de este circuito� En primer lugar podemos determinar que se trata de un circuito de tipo Moore, ya que las salidas dependen únicamente del estado del circuito y no de las entradas

Análisis y diseño de sistemas secuenciales 44

Ejemplo de anEjemplo de anáálisis 1lisis 1� El circuito tiene 3 biestables, es decir, 8 estados posibles� El circuito tiene una única señal de entrada X� El circuito tiene tres señales de salida Y0, Y1, e Y2

Page 23: Sist Sec

23

Análisis y diseño de sistemas secuenciales 45

Ejemplo de anEjemplo de anáálisis 1lisis 1� A partir del circuito podemos obtener las ecuaciones correspondientes a las entradas de los biestables

Análisis y diseño de sistemas secuenciales 46

Ejemplo de anEjemplo de anáálisis 1lisis 1� Conociendo el funcionamiento de un biestable JK es posible, partiendo de las ecuaciones de las entradas, generar la tabla de excitación y de estado siguiente

Page 24: Sist Sec

24

Análisis y diseño de sistemas secuenciales 47

Ejemplo de anEjemplo de anáálisis 1lisis 1� A partir del circuito también podemos obtener las ecuaciones correspondientes a las señales de salida

Análisis y diseño de sistemas secuenciales 48

Ejemplo de anEjemplo de anáálisis 1lisis 1� Dadas las ecuaciones de salida, es sencillo obtener la tabla de salida

Page 25: Sist Sec

25

Análisis y diseño de sistemas secuenciales 49

Ejemplo de anEjemplo de anáálisis 1lisis 1� Con las tablas anteriores podemos obtener el diagrama de estados que describe el funcionamiento del circuito

Análisis y diseño de sistemas secuenciales 50

Ejemplo de anEjemplo de anáálisis 1lisis 1� El circuito es un contador módulo 8� Cuando X = 1 sigue la secuencia 0,1,2,3,4,5,6,7,0,1,2,3,…� Cuando X = 0 el circuito cuenta en orden inverso

Page 26: Sist Sec

26

Análisis y diseño de sistemas secuenciales 51

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 52

Ejemplo de anEjemplo de anáálisis 2lisis 2� A continuación analizaremos el siguiente circuito� Podemos determinar que se trata de un circuito de tipo Mealy porque las salidas dependen tanto del estado del circuito como de las entradas del mismo

Page 27: Sist Sec

27

Análisis y diseño de sistemas secuenciales 53

Ejemplo de anEjemplo de anáálisis 2lisis 2� El circuito tiene 2 biestables, es decir, 4 estados posibles� El circuito tiene una única señal de entrada X� El circuito tiene una única señal de salida Y

Análisis y diseño de sistemas secuenciales 54

Ejemplo de anEjemplo de anáálisis 2lisis 2� A partir del circuito podemos obtener las ecuaciones correspondientes a las entradas de los biestables

Page 28: Sist Sec

28

Análisis y diseño de sistemas secuenciales 55

Ejemplo de anEjemplo de anáálisis 2lisis 2� Conociendo el funcionamiento de los biestables JK y D es posible, partiendo de las ecuaciones de las entradas, generar la tabla de excitación y de estado siguiente

Análisis y diseño de sistemas secuenciales 56

Ejemplo de anEjemplo de anáálisis 2lisis 2� Partiendo del circuito también podemos obtener la ecuación correspondiente a la señal de salida

Page 29: Sist Sec

29

Análisis y diseño de sistemas secuenciales 57

Ejemplo de anEjemplo de anáálisis 2lisis 2� A partir de la ecuación de salida podemos generar la tabla de salida

Análisis y diseño de sistemas secuenciales 58

Ejemplo de anEjemplo de anáálisis 2lisis 2� Con las tablas anteriores podemos obtener el diagrama de estados del circuito que describe su funcionamiento

Page 30: Sist Sec

30

Análisis y diseño de sistemas secuenciales 59

Ejemplo de anEjemplo de anáálisis 2lisis 2� El circuito es un contador módulo 4� La entrada X es una señal de reset síncrono� La salida Y es una indicación de vuelta a cero

Análisis y diseño de sistemas secuenciales 60

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Page 31: Sist Sec

31

Análisis y diseño de sistemas secuenciales 61

DiseDiseñño de sistemas secuencialeso de sistemas secuenciales� El objetivo del proceso de diseño es generar la implementación de un sistema secuencial a partir de una descripción funcional� El primer paso de este proceso es tomar la descripción del sistema y convertirla en un diagrama de estados con las correspondientes tablas de estado siguiente y salida� Una vez obtenido el diagrama de estados hay que reducir lo más posible el número de estados para minimizar el número de biestables necesarios

Análisis y diseño de sistemas secuenciales 62

DiseDiseñño de sistemas secuencialeso de sistemas secuenciales� Con el diagrama de estados minimizado debe realizarse la codificación de estados, es decir, asignar los códigos binarios que representarán cada estado en los biestables� Tras la codificación es posible generar las ecuaciones de estado siguiente y de salida� El siguiente paso es determinar el tipo de biestablesmás adecuado para la implementación del circuito, ya que cada biestable necesitará una cantidad de lógica diferente para representar una determinada función

Page 32: Sist Sec

32

Análisis y diseño de sistemas secuenciales 63

DiseDiseñño de sistemas secuencialeso de sistemas secuenciales� Una vez elegido el tipo de biestable se pueden obtener las ecuaciones de excitación para las entradas de cada uno de los biestables� Estas ecuaciones permiten diseñar y optimizar la lógica necesaria para completar el circuito� El diseño del circuito proporciona la base para la generación de un cronograma que pueda verificarse por simulación para comprobar si el comportamiento del sistema es el que se deseaba obtener

Análisis y diseño de sistemas secuenciales 64

DiseDiseñño de sistemas secuencialeso de sistemas secuenciales� Este diagrama muestra un resumen de todos los pasos necesarios para completar el diseño de un sistema secuencial a partir de una descripción funcional del mismo

Page 33: Sist Sec

33

Análisis y diseño de sistemas secuenciales 65

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 66

GeneraciGeneracióón de un diagrama de estadosn de un diagrama de estados� El diseño de un sistema secuencial se inicia con la generación de un diagrama de estados a partir de una descripción funcional de su comportamiento� Esta descripción puede estar en lenguaje natural e incluir cronogramas, aunque es preferible usar métodos más precisos para evitar ambigüedades� Diagramas de flujo o diagramas ASM� Lenguajes de descripción de hardware (VHDL,…)� Con el diagrama de estados se pueden generar las tablas de estado siguiente y salida para facilitar el diseño

Page 34: Sist Sec

34

Análisis y diseño de sistemas secuenciales 67

Ejemplo de sistema secuencialEjemplo de sistema secuencial� Como ejemplo vamos a generar el diagrama de estados de un contador ascendente/descendente módulo 3� El circuito tendrá dos entradas� C – habilitación de cuenta: cuando C=1 el circuito contará y cuando C=0 el circuito permanecerá parado� D – dirección de cuenta: cuando D=0 el circuito contaráascendentemente y cuando D=1 contará descendentemente� El circuito tendrá una salida Y que se activará cuando regrese al valor 0 en sentido ascendente o al valor 2 en sentido descendente

Análisis y diseño de sistemas secuenciales 68

GeneraciGeneracióón del diagrama de estadosn del diagrama de estados� Este contador debe memorizar los códigos de tres dígitos: 0, 1, y 2� Además, siempre que la entrada C esté activa, debe permitir dos secuencias de acuerdo con el valor de la entrada D: una ascendente y otra descendente

Page 35: Sist Sec

35

Análisis y diseño de sistemas secuenciales 69

GeneraciGeneracióón del diagrama de estadosn del diagrama de estados� El contador puede cambiar de dirección durante la cuenta si cambia el valor de D mientras C está activa� Ya que no se menciona en la descripción, podemos suponer que el contador seguirá contando en la nueva dirección a partir del estado actual

Análisis y diseño de sistemas secuenciales 70

GeneraciGeneracióón del diagrama de estadosn del diagrama de estados� Por último, es necesario tener en cuenta el caso en el que la señal C está desactivada, lo que implicará que el contador debe permanecer en el estado actual

Page 36: Sist Sec

36

Análisis y diseño de sistemas secuenciales 71

Tabla de estado siguiente y salidaTabla de estado siguiente y salida� Ahora que el diagrama de estados está completo podemos generar la tabla de estado siguiente y salida

Análisis y diseño de sistemas secuenciales 72

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Page 37: Sist Sec

37

Análisis y diseño de sistemas secuenciales 73

MinimizaciMinimizacióón del diagrama de estadosn del diagrama de estados� Resulta sencillo entender el diagrama de estados generado para el contador ascendente/descendente módulo 3, ya que los dos modos de operación se distinguen claramente� Sin embargo, la claridad no es el objetivo prioritario, ya que una mayor cantidad de estados implica una mayor cantidad de biestables y un coste mayor� Desde este punto de vista, es importante considerar la minimización del diagrama de estados como parte del proceso de diseño

Análisis y diseño de sistemas secuenciales 74

MinimizaciMinimizacióón del diagrama de estadosn del diagrama de estados� El objetivo de la minimización de estados es reducir el número de estados y, por tanto, el de biestablesnecesarios para implementarlos� Menor número de biestables implica menor complejidad� Menor número de biestables también implica menos puertas para implementar la funciones de entrada y salida� Estas puertas también necesitarán un menor número de entradas, por lo que serán más rápidas� Hay que tener en cuenta que para reducir realmente el número de biestables es necesario reducir el número de estados por debajo de una potencia de dos

Page 38: Sist Sec

38

Análisis y diseño de sistemas secuenciales 75

Equivalencia funcionalEquivalencia funcional� Dos máquinas de estados finitos son funcionalmente equivalentes si producen la misma secuencia de salidas para todas las posibles secuencias de entrada� Dentro de una máquina de estados también puede darse el caso de que dos estados sean equivalentes, por lo que se los puede asociar para reducir el número de estados� Dos estados son equivalentes si y sólo si:� Ambos estados producen la misma salida para cada entrada� Ambos estados tienen estados siguientes equivalentes para cada entrada

Análisis y diseño de sistemas secuenciales 76

Procedimiento de minimizaciProcedimiento de minimizacióón de estadosn de estados� El procedimiento para la minimización de estados requiere agrupar todos los estados del sistema en grupos denominados clases de equivalencia� En primer lugar se comparan las salidas de cada estado para cada entrada y se agrupan todos los estados que coincidan� En segundo lugar se determina el estado siguiente de cada estado del grupo para cada entrada, creando subgrupos de estados cuyos estados siguientes estén en un mismo grupo� Este segundo paso puede hacer que estados que tenían los estados siguiente en un mismo grupo ya no los tengan, por lo que sería necesaria una nueva partición� Cada grupo estará representado por un único estado

Page 39: Sist Sec

39

Análisis y diseño de sistemas secuenciales 77

MinimizaciMinimizacióón de estadosn de estados� El contador ascendente/descendente módulo 3 de nuestro ejemplo tiene seis estados, como puede comprobarse en la tabla de estado siguiente y salida� A partir de esta tabla se puede aplicar la minimización

Análisis y diseño de sistemas secuenciales 78

MinimizaciMinimizacióón de estadosn de estados� Se empieza por el conjunto de todos los estados y se determinan los valores de salida para cada combinación de valores de entrada, lo que da lugar a tres grupos

Page 40: Sist Sec

40

Análisis y diseño de sistemas secuenciales 79

MinimizaciMinimizacióón de estadosn de estados� Para cada valor de las entradas los estados siguientes de cada estado de un grupo siempre están en el mismo grupo, por lo que no es necesario seguir particionando

Análisis y diseño de sistemas secuenciales 80

MinimizaciMinimizacióón de estadosn de estados� Cada grupo representa una clase de estados equivalentes y, por lo tanto, solo es necesario que la máquina de estados final tenga un estado perteneciente a cada uno de los grupos

Page 41: Sist Sec

41

Análisis y diseño de sistemas secuenciales 81

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 82

CodificaciCodificacióón de estadosn de estados� Cada biestable es capaz de almacenar un valor binario por lo que un circuito con n biestables puede tener un total de 2n estados, cada uno con un código binario� Cada código se asignará a un único estado aunque, en principio, cualquier código puede asignarse a cualquiera de los estados� Sin embargo, el coste y el retardo de la lógica de entrada y salida dependerá de a qué estado concreto se le asigna cada uno de los códigos

Page 42: Sist Sec

42

Análisis y diseño de sistemas secuenciales 83

CodificaciCodificacióón de estadosn de estados� Por ejemplo, una máquina de estados finitos con cuatro estados necesitará dos biestables, los cuales podrán codificar los estados de (4!) formas diferentes

Análisis y diseño de sistemas secuenciales 84

CodificaciCodificacióón de estadosn de estados� La comprobación manual de todas las posibles codificaciones, así como la estimación de su retardo y complejidad, sería un proceso tedioso en el que un error podría suceder con facilidad� Para evitar este problema se usan varias estrategias y heurísticas de asignación, siendo tres de ellas las más comúnmente usadas:� Mínimo cambio de bits� Prioridad de adyacencia� Codificación del uno caliente

Page 43: Sist Sec

43

Análisis y diseño de sistemas secuenciales 85

MMíínimo cambio de bitsnimo cambio de bits� Esta estrategia asigna valores booleanos a los estados de forma que se minimice el número total de cambios de bits en todas las transiciones� De esta forma se reducirá la cantidad de puertas lógicas usadas para implementar el circuito� Para cada cambio de bit, un biestable cuya lógica asociada está diseñada en dos niveles en forma de suma de productos necesita:� Una puerta AND adicional� Una entrada más en la puerta OR

Análisis y diseño de sistemas secuenciales 86

MMíínimo cambio de bitsnimo cambio de bits� A cada arco del diagrama de estados le podemos asignar un peso igual al número de bits distintos entre los códigos de los estados origen y destino� De acuerdo con esta estrategia, la codificación óptima será aquella que minimice la suma de los pesos de todas las transiciones

Page 44: Sist Sec

44

Análisis y diseño de sistemas secuenciales 87

Prioridad en adyacenciaPrioridad en adyacencia� Esta estrategia consiste en asignar codificaciones adyacentes (que sólo difieran en un bit) a todos los estados que tengan un destino, fuente o salida común� Se da mayor prioridad a los estados que tienen el mismo estado siguiente para un valor dado de entrada� El motivo de esta prioridad es que, si minimizamos por Karnaugh, aparecerá la misma codificación de estado siguiente en dos celdas adyacentes, permitiendo simplificar la lógica asociada a los biestables

Análisis y diseño de sistemas secuenciales 88

Prioridad en adyacenciaPrioridad en adyacencia� Un segundo nivel de prioridad se asigna a los estados siguientes de un mismo estado� Esta prioridad se basa en el hecho de que, si las entradas difieren en un bit, estos estados aparecen adyacentes en el mapa de Karnaugh durante la minimización� Finalmente, el tercer nivel de prioridad se da a los estados que tienen el mismo valor de salida para los mismos valores de entrada, facilitando también la minimización por Karnaugh

Page 45: Sist Sec

45

Análisis y diseño de sistemas secuenciales 89

Prioridad en adyacenciaPrioridad en adyacencia� En este diagrama de cuatro estados podemos ver que:� S1 y S2 tienen un mismo estado siguiente S3 para el valor de entrada 0 (primera prioridad)� S1 y S2 son estados siguientes de S0 (segunda prioridad)� S0 y S1 tienen el mismo valor de salida 0 para el mismo valor de entrada 0 (tercera prioridad)� S2 y S3 tienen el mismo valor de salida 1 para el mismo valor de entrada 0 (tercera prioridad)

Análisis y diseño de sistemas secuenciales 90

CodificaciCodificacióón del uno calienten del uno caliente� Esta estrategia utiliza codificación redundante, de manera que, en lugar de usar n biestables para 2nestados, a cada estado se le asigna su propio biestable� En cada momento sólo habrá un biestable con valor 1, que será aquel que se corresponda con el estado actual, mientras que todos los demás estarán a 0� De esta forma, el 1 va pasando de biestable en biestablesegún el circuito cambia de estado en estado, siguiendo el algoritmo del juego de la “patata caliente”

Page 46: Sist Sec

46

Análisis y diseño de sistemas secuenciales 91

CodificaciCodificacióón del uno calienten del uno caliente� La ventaja de esta estrategia está en el hecho de que la lógica para implementar las funciones de entrada a los biestables es muy simple� La principal desventaja radica en el hecho de que es necesario utilizar una cantidad mayor de biestables de lo que es habitual� En consecuencia, esta estrategia debe usarse para implementar sistemas secuenciales con pocos estados, ya que en otro caso el coste adicional sería excesivo

Análisis y diseño de sistemas secuenciales 92

ElecciEleccióón de una estrategian de una estrategia� En general, la estrategia para codificar estados consiste en determinar las posibles opciones y, después, estimar el coste y el retardo de la lógica de entrada y salida para cada tipo de codificación� A modo de ejemplo aplicaremos las tres estrategias al contador ascendente/descendente módulo 3� Dado que este circuito tiene tres estados necesitaremos dos biestables para implementarlo, a excepción de la estrategia del uno caliente, que necesitará tres

Page 47: Sist Sec

47

Análisis y diseño de sistemas secuenciales 93

CodificaciCodificacióón del contador mn del contador móódulo 3dulo 3� Si se utiliza la estrategia del mínimo cambio de bits se obtiene una codificación sencilla, que llamaremos codificación A, omitiendo la combinación 11 y asignando S0 = 00, S1 = 01 y S2 = 10� Usando la estrategia de prioridad en adyacencia no hay estados que cumplan las dos primeras reglas de prioridad, pero la tercera la cumplen S0S1 y S1S2� La codificación A cumple estas condiciones, pero podríamos plantear una alternativa, que llamaremos codificación B, que asigna 01 a S0 y 10 a S2 para reducir el número de entradas de la puerta AND de salida

Análisis y diseño de sistemas secuenciales 94

CodificaciCodificacióón del contador mn del contador móódulo 3dulo 3� Finalmente, la estrategia del uno caliente daría lugar a una codificación que llamaremos codificación C y que necesitaría tres biestables� Para elegir una de estas tres codificaciones es necesario estimar el coste y el retardo de la implementación de la lógica de entrada y salida

Page 48: Sist Sec

48

Análisis y diseño de sistemas secuenciales 95

CodificaciCodificacióón del contador mn del contador móódulo 3dulo 3� En primer lugar es necesario obtener las ecuaciones de excitación para cada uno de los biestables, así como la ecuación de salida� A partir de estas ecuaciones puede estimarse el coste y el retardo de su implementación usando dos niveles de puertas NAND� Para simplificar la estimación supondremos que el complemento de cada variable está disponible sin retardo respecto al propio valor de la variable

Análisis y diseño de sistemas secuenciales 96

CodificaciCodificacióón del contador mn del contador móódulo 3dulo 3� Aquí podemos ver la estimación del coste y retardo de la codificación A, usando el método de Karnaugh para obtener las ecuaciones de estado siguiente y salida

Page 49: Sist Sec

49

Análisis y diseño de sistemas secuenciales 97

CodificaciCodificacióón del contador mn del contador móódulo 3dulo 3� Aquí podemos ver la estimación del coste y retardo de la codificación B, usando el método de Karnaugh para obtener las ecuaciones de estado siguiente y salida

Análisis y diseño de sistemas secuenciales 98

CodificaciCodificacióón del contador mn del contador móódulo 3dulo 3� Aquí podemos ver la estimación del coste y retardo de la codificación C, usando el método de Karnaugh para obtener las ecuaciones de estado siguiente y salida

Page 50: Sist Sec

50

Análisis y diseño de sistemas secuenciales 99

CodificaciCodificacióón del contador mn del contador móódulo 3dulo 3� La codificación C es la más rápida, pero también es la más costosa, por lo que la elección de la codificación adecuada dependerá de las prioridades del diseñador� La codificación A tiene un coste 66, un retardo máximo de entrada de 4,0ns y un retardo de salida de 3,6ns� La codificación B tiene un coste 64, un retardo máximo de entrada de 4,0ns y un retardo de salida de 3,2ns� La codificación C tiene un coste 82, un retardo máximo de entrada de 3,6ns y un retardo de salida de 3,2ns� Usaremos la codificación A para seguir desarrollando este ejemplo, ya que es la más común y fácil de entender

Análisis y diseño de sistemas secuenciales 100

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Page 51: Sist Sec

51

Análisis y diseño de sistemas secuenciales 101

ElecciEleccióón de los n de los biestablesbiestables� Una vez completado el proceso de minimización y codificación de estados hay que elegir el tipo de biestable más apropiado para la implementación� Los biestables T suelen ser una buena elección para circuitos de tipo contador, donde los biestables deben cambiar de estado con gran frecuencia� Los biestables D son más apropiados cuando la información de entrada debe almacenarse durante algún tiempo para su uso posterior

Análisis y diseño de sistemas secuenciales 102

ElecciEleccióón de los n de los biestablesbiestables� En situaciones en las que el estado de los biestablescambia en función de varias señales de entrada pueden usarse biestables SR o JK, ya que tienen dos entradas� El biestable JK es más complejo que el SR, pero no tiene ninguna combinación de entrada prohibida� Sin embargo, aunque tienden a reducir el coste de la lógica asociada por tener dos entradas, los biestablesSR y JK también necesitan el doble de conexiones� Dado que necesitan un menor número de conexiones, los biestables D y T se adaptan mejor al diseño de circuitos integrados

Page 52: Sist Sec

52

Análisis y diseño de sistemas secuenciales 103

ElecciEleccióón de n de biestablesbiestables para el contadorpara el contador� Para elegir el tipo de biestable que minimice el coste y el retardo de la lógica de entrada del contador ascendente/descendente módulo 3 hay que partir de:� La tabla de estados siguientes del contador� La tabla de excitación de los cuatro tipos de biestable

Análisis y diseño de sistemas secuenciales 104

ElecciEleccióón de n de biestablesbiestables para el contadorpara el contador� Para cada pareja de estados actual y siguiente se sustituyen los valores de estado siguiente por los valores de entrada requeridos en la tabla de excitación� De esta forma se obtendrán los mapas de entrada para los cuatro tipos de biestable, que contendrán dos submapas en el caso de los biestables D y T, y cuatro submapas en el caso de los biestables SR y JK� A partir de estos mapas de entrada se pueden obtener las expresiones mínimas de la lógica de entrada de cada uno de los biestables

Page 53: Sist Sec

53

Análisis y diseño de sistemas secuenciales 105

ElecciEleccióón de n de biestablesbiestables para el contadorpara el contador� Este es el mapa de entrada correspondiente al uso de biestables SR, junto con la expresión mínima de las ecuaciones de entrada

Análisis y diseño de sistemas secuenciales 106

ElecciEleccióón de n de biestablesbiestables para el contadorpara el contador� Este es el mapa de entrada correspondiente al uso de biestables JK, junto con la expresión mínima de las ecuaciones de entrada

Page 54: Sist Sec

54

Análisis y diseño de sistemas secuenciales 107

ElecciEleccióón de n de biestablesbiestables para el contadorpara el contador� Este es el mapa de entrada correspondiente al uso de biestables D, junto con la expresión mínima de las ecuaciones de entrada

Análisis y diseño de sistemas secuenciales 108

ElecciEleccióón de n de biestablesbiestables para el contadorpara el contador� Este es el mapa de entrada correspondiente al uso de biestables T, junto con la expresión mínima de las ecuaciones de entrada

Page 55: Sist Sec

55

Análisis y diseño de sistemas secuenciales 109

ElecciEleccióón de n de biestablesbiestables para el contadorpara el contador� La estimación de coste y retardo que acompaña a cada ecuación no incluye los inversores de entrada ni el coste y retardo de los biestables� De acuerdo con los resultados obtenidos, el biestablemás apropiado es el JK ya que implica un menor coste y retardo de la lógica de entrada� En la práctica, no sólo habría que tener en cuenta el coste y retardo de la lógica de entrada, sino el de todo el circuito en su conjunto antes de tomar una decisión

Análisis y diseño de sistemas secuenciales 110

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Page 56: Sist Sec

56

Análisis y diseño de sistemas secuenciales 111

ImplementaciImplementacióón del sisteman del sistema� El paso final en el diseño de un sistema secuencial consiste en realizar su implementación utilizando componentes lógicos

Análisis y diseño de sistemas secuenciales 112

ImplementaciImplementacióón del sisteman del sistema� Se han utilizado inversores dobles en la entrada para suministrar más corriente al circuito y, por tanto, reducir el retardo de las puertas

Page 57: Sist Sec

57

Análisis y diseño de sistemas secuenciales 113

ImplementaciImplementacióón del sisteman del sistema� Los retardos de cada puerta determinarán el tiempo de ciclo mínimo que debe tener la señal de reloj para que el circuito funcione correctamente

Análisis y diseño de sistemas secuenciales 114

VerificaciVerificacióón del sisteman del sistema� Por último, hay que desarrollar cronogramas que permitan verificar el comportamiento del sistema al compararlos con los resultados proporcionados por una herramienta de simulación

Page 58: Sist Sec

58

Análisis y diseño de sistemas secuenciales 115

VerificaciVerificacióón del sisteman del sistema� La señal C habilita el contador en t0 y, a partir de ahí, dado que la señal D está desactivada, va realizando la cuenta módulo 3 en sentido ascendente en cada pulso de la señal de reloj

Análisis y diseño de sistemas secuenciales 116

VerificaciVerificacióón del sisteman del sistema� Más adelante, en el instante t4, se activa la señal D, por lo que el contador empieza a realizar la cuenta en sentido descendente en cada pulso de la señal de reloj

Page 59: Sist Sec

59

Análisis y diseño de sistemas secuenciales 117

VerificaciVerificacióón del sisteman del sistema� Para una completa verificación sería necesario desarrollar cronogramas para todos los casos posibles, teniendo también en cuenta el retardo de los componentes lógicos

Análisis y diseño de sistemas secuenciales 118

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Page 60: Sist Sec

60

Análisis y diseño de sistemas secuenciales 119

Ejemplo de diseEjemplo de diseñño 1o 1� Vamos a realizar el diseño del circuito secuencial correspondiente a este diagrama de estados� Las salidas dependen sólo del estado actual (están indicadas en el estado) así que obtendremos un circuito de tipo Moore

Análisis y diseño de sistemas secuenciales 120

Ejemplo de diseEjemplo de diseñño 1o 1� A partir del diagrama de estados puede generarse fácilmente la tabla de estado siguiente

Page 61: Sist Sec

61

Análisis y diseño de sistemas secuenciales 121

Ejemplo de diseEjemplo de diseñño 1o 1� Dado que los estados del diagrama dado ya están codificados, no tenemos necesidad de asignar ninguna codificación a los estados� El diagrama contiene cuatro estados, por lo que tendremos que utilizar dos biestables� Para simplificar el ejemplo supondremos que el primer biestable es de tipo JK y el segundo biestable es de tipo D

Análisis y diseño de sistemas secuenciales 122

Ejemplo de diseEjemplo de diseñño 1o 1� A partir de la tabla de estado siguiente, y conociendo el tipo de biestable, podemos generar la tabla de excitación

Page 62: Sist Sec

62

Análisis y diseño de sistemas secuenciales 123

Ejemplo de diseEjemplo de diseñño 1o 1� La lógica de entrada a los biestables puede obtenerse simplificando las funciones correspondientes

Análisis y diseño de sistemas secuenciales 124

Ejemplo de diseEjemplo de diseñño 1o 1� La lógica de entrada a los biestables puede obtenerse simplificando las funciones correspondientes

Page 63: Sist Sec

63

Análisis y diseño de sistemas secuenciales 125

Ejemplo de diseEjemplo de diseñño 1o 1� La lógica de entrada a los biestables puede obtenerse simplificando las funciones correspondientes

Análisis y diseño de sistemas secuenciales 126

Ejemplo de diseEjemplo de diseñño 1o 1� A partir del diagrama de estados también puede generarse la tabla de salida, teniendo en cuenta que estamos hablando de un circuito de tipo Moore

Page 64: Sist Sec

64

Análisis y diseño de sistemas secuenciales 127

Ejemplo de diseEjemplo de diseñño 1o 1� La lógica de salida del circuito puede obtenerse simplificando las funciones correspondientes

Análisis y diseño de sistemas secuenciales 128

Ejemplo de diseEjemplo de diseñño 1o 1� Ahora que tenemos las ecuaciones podemos completar el proceso de diseño dibujando el diagrama del circuito

Page 65: Sist Sec

65

Análisis y diseño de sistemas secuenciales 129

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 130

Ejemplo de diseEjemplo de diseñño 2o 2� Vamos a diseñar un circuito que monitorice una determinada línea de entrada y que active una señal de salida cuando detecte que la entrada ha seguido la secuencia 0110 durante los últimos cuatro ciclos� El circuito diseñado será de tipo Mealy, por lo que las salidas dependerán tanto del estado actual como del valor de la entrada� A partir de esta descripción en lenguaje natural debemos desarrollar el diagrama de estados que describa el circuito de forma funcional

Page 66: Sist Sec

66

Análisis y diseño de sistemas secuenciales 131

Ejemplo de diseEjemplo de diseñño 2o 2� Dado un estado inicial, debemos permanecer en él hasta que aparezca un cero� A partir del primer cero debemos avanzar de estado mientras nos sigan llegando bits de la secuencia 0110

Análisis y diseño de sistemas secuenciales 132

Ejemplo de diseEjemplo de diseñño 2o 2� En el caso de que aparezca un número que no pertenezca a la secuencia correcta tendremos que regresar a un estado anterior� Si llega un 0 fuera de secuencia lo consideramos como el primer 0 de la siguiente secuencia y vamos al segundo estado� Si llega un 1 fuera de secuencia regresamos al estado inicial a esperar que llegue un 0

Page 67: Sist Sec

67

Análisis y diseño de sistemas secuenciales 133

Ejemplo de diseEjemplo de diseñño 2o 2� Por último regresaremos al estado inicial� Si regresamos porque se completó la secuencia correcta con un 0 activaremos la señal de salida� Si regresamos porque apareció un 1 fuera de secuencia mantendremos la señal de salida desactivada

Análisis y diseño de sistemas secuenciales 134

Ejemplo de diseEjemplo de diseñño 2o 2� A continuación debemos asignar códigos a los cuatro estados del diagrama� Para no entrar en demasiado detalle, asignaremos los códigos de forma arbitraria� En total necesitaremos dos biestables, que también elegiremos de forma arbitraria: un JK y un D

Page 68: Sist Sec

68

Análisis y diseño de sistemas secuenciales 135

Ejemplo de diseEjemplo de diseñño 2o 2� A partir del diagrama de estados podemos generar la tabla de estado siguiente

Análisis y diseño de sistemas secuenciales 136

Ejemplo de diseEjemplo de diseñño 2o 2� Con la tabla de estado siguiente, y conociendo cuáles son los tipos de biestable utilizados, podemos generar la tabla de excitación y obtener las ecuaciones

Page 69: Sist Sec

69

Análisis y diseño de sistemas secuenciales 137

Ejemplo de diseEjemplo de diseñño 2o 2� A partir del diagrama de estados también puede generarse la tabla de salida y la ecuación correspondiente, siempre teniendo en cuenta que estamos hablando de un circuito de tipo Mealy

Análisis y diseño de sistemas secuenciales 138

Ejemplo de diseEjemplo de diseñño 2o 2� Ahora que tenemos las ecuaciones podemos completar el proceso de diseño dibujando el diagrama del circuito

Page 70: Sist Sec

70

Análisis y diseño de sistemas secuenciales 139

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 140

Ejemplo de diseEjemplo de diseñño 3o 3� Como último ejemplo diseñaremos un circuito que implemente el funcionamiento descrito por este diagrama de estados usando biestables tipo T � La parte combinacional del sistema la vamos a implementar usando únicamente puertas NAND

Page 71: Sist Sec

71

Análisis y diseño de sistemas secuenciales 141

Ejemplo de diseEjemplo de diseñño 3o 3� A partir del diagrama de estados podemos deducir la tabla de estado siguiente

Análisis y diseño de sistemas secuenciales 142

Ejemplo de diseEjemplo de diseñño 3o 3� Conociendo el comportamiento de los biestables T podemos extender la tabla de estado siguiente y formar la tabla de excitación

Page 72: Sist Sec

72

Análisis y diseño de sistemas secuenciales 143

Ejemplo de diseEjemplo de diseñño 3o 3� La tabla de excitación nos permite obtener las ecuaciones de excitación de los biestables

Análisis y diseño de sistemas secuenciales 144

Ejemplo de diseEjemplo de diseñño 3o 3� La tabla de excitación nos permite obtener las ecuaciones de excitación de los biestables

Page 73: Sist Sec

73

Análisis y diseño de sistemas secuenciales 145

Ejemplo de diseEjemplo de diseñño 3o 3� A partir del diagrama de estados también podemos deducir la tabla y las ecuaciones de salida, teniendo en cuenta que se trata de un sistema de tipo Moore

Análisis y diseño de sistemas secuenciales 146

Ejemplo de diseEjemplo de diseñño 3o 3� Todo lo que nos queda por hacer es transformar las ecuaciones usando las leyes de DeMorgan para que puedan ser implementadas con puertas NAND

Page 74: Sist Sec

74

Análisis y diseño de sistemas secuenciales 147

Ejemplo de diseEjemplo de diseñño 3o 3� Una alternativa para la implementación de este tipo de sistemas sería utilizar decodificadores o multiplexores para implementar la parte combinacional del circuito� En este ejemplo utilizaremos un decodificador con dos entradas de control para generar T0 y un multiplexor con dos entradas de control para generar T1� A parte del decodificador y el multiplexor hará falta lógica adicional que implementaremos con el menor número posible de puertas AND, OR y NOT

Análisis y diseño de sistemas secuenciales 148

Ejemplo de diseEjemplo de diseñño 3o 3� Esta implementación del circuito puede deducirse a partir de la tabla de excitación, ya que la tabla de salida es trivial

Page 75: Sist Sec

75

Análisis y diseño de sistemas secuenciales 149

Estructura del temaEstructura del tema� Introducción� Modelo de máquinas de estados finitos� Análisis de sistemas secuenciales� Análisis de sistemas de tipo Moore� Análisis de sistemas de tipo Mealy� Ejemplos� Diseño de sistemas secuenciales� Generación del diagrama de estados� Minimización del diagrama de estados� Codificación de estados� Elección de los biestables� Implementación y verificación del sistema� Ejemplos� Resumen y bibliografía

Análisis y diseño de sistemas secuenciales 150

ResumenResumen� Los circuitos secuenciales implementados usando biestables son vitales para el diseño de sistemas digitales complejos� Dado un circuito secuencial, no es sencillo comprender su objetivo, por lo que resulta necesario un detallado proceso de análisis para estudiarlo� De la misma forma, dada la descripción funcional de un objetivo, el diseño de un sistema secuencial que lo implemente debe seguir un conjunto determinado de pasos para llegar a un resultado óptimo

Page 76: Sist Sec

76

Análisis y diseño de sistemas secuenciales 151

BibliografBibliografííaaPrincipios de Diseño DigitalCapítulo 6Daniel D. GajskiPrentice Hall, 1997