diseño digital 7

43
Diseño de circuitos secuenciales síncronos 257 ________________________________________________________________________________ Capítulo 7 Diseño de circuitos secuenciales síncronos En este capítulo se describirán los métodos básicos de análisis y de diseño de circuitos secuenciales síncronos. A continuación se presentarán las estructuras o módulos secuenciales de uso más frecuente, incluyendo un breve inciso referido a las memorias de lectura y escritura. El capítulo presenta en primer lugar un procedimiento sistemático que permite tanto el análisis como la síntesis de sistemas secuenciales síncronos en formato canónico, es decir en forma de red combinacional más biestables. De la misma forma que ocurría en el diseño combinacional, los módulos secuenciales estándar surgen como respuesta a las necesidades más habituales, y al mismo tiempo son herramientas que facilitan el diseño de sistemas más complejos; en este capítulo se presentan los módulos secuenciales más comunes, concretamente los registros, los contadores y los circuitos lógicos programables, estos últimos de utilización muy extendida en la actualidad. Finalmente el capítulo realiza una breve incursión en las memorias de lectura/escritura y las configuraciones de memorización básicas realizadas con transistores MOS. 7.1 Diseño canónico de sistemas secuenciales síncronos Existen procedimientos sistemáticos y estandarizados para analizar y/o diseñar sistemas secuenciales síncronos en forma canónica. Como se verá enseguida, estos métodos son utilizables manualmente siempre que el número de variables no sea excesivo, situación en la cual es preferible recurrir o bien al diseño no canónico (por ejemplo, el basado en estructuras o módulos estándar) o bien a la ayuda de herramientas informáticas (diseño asistido por ordenador). 7.1.1 Método sistemático de análisis Entendemos por análisis el procedimiento que, partiendo de una realización de un sistema lógico (esquema circuital, logigrama, etc.), conduce al conocimiento de su funcionalidad; en otras palabras, analizar un circuito lógico supone ser capaz de especificar de forma completa y normalizada su funcionamiento.

description

buen libro para el estudio de diseño digital

Transcript of diseño digital 7

Page 1: diseño digital 7

Diseño de circuitos secuenciales síncronos 257________________________________________________________________________________

Capítulo 7 Diseño de circuitos secuenciales síncronos

En este capítulo se describirán los métodos básicos de análisis y de diseño de circuitos secuencialessíncronos. A continuación se presentarán las estructuras o módulos secuenciales de uso másfrecuente, incluyendo un breve inciso referido a las memorias de lectura y escritura.

El capítulo presenta en primer lugar un procedimiento sistemático que permite tanto el análisis comola síntesis de sistemas secuenciales síncronos en formato canónico, es decir en forma de redcombinacional más biestables. De la misma forma que ocurría en el diseño combinacional, losmódulos secuenciales estándar surgen como respuesta a las necesidades más habituales, y al mismotiempo son herramientas que facilitan el diseño de sistemas más complejos; en este capítulo sepresentan los módulos secuenciales más comunes, concretamente los registros, los contadores y loscircuitos lógicos programables, estos últimos de utilización muy extendida en la actualidad.Finalmente el capítulo realiza una breve incursión en las memorias de lectura/escritura y lasconfiguraciones de memorización básicas realizadas con transistores MOS.

7.1 Diseño canónico de sistemas secuenciales síncronos

Existen procedimientos sistemáticos y estandarizados para analizar y/o diseñar sistemas secuencialessíncronos en forma canónica. Como se verá enseguida, estos métodos son utilizables manualmentesiempre que el número de variables no sea excesivo, situación en la cual es preferible recurrir o bienal diseño no canónico (por ejemplo, el basado en estructuras o módulos estándar) o bien a la ayuda deherramientas informáticas (diseño asistido por ordenador).

7.1.1 Método sistemático de análisis

Entendemos por análisis el procedimiento que, partiendo de una realización de un sistema lógico(esquema circuital, logigrama, etc.), conduce al conocimiento de su funcionalidad; en otras palabras,analizar un circuito lógico supone ser capaz de especificar de forma completa y normalizada sufuncionamiento.

Page 2: diseño digital 7

258 Diseño digital________________________________________________________________________________

Red Combinacional

x z

ResetCLK

q fRegistro de

estado

n

r

k

m

Figura 7.1 Variables en un circuito secuencial síncrono canónico

En este apartado vamos a presentar un procedimiento de análisis aplicable a sistemas secuencialessíncronos realizados en forma canónica, es decir, como una red combinacional más un conjunto debiestables sincronizados mediante el mismo reloj (ver figura 7.1). Este método es totalmentesistemático y se puede esquematizar en los pasos siguientes:

1- Identificación de las variables del sistema. Mediante inspección del circuito, identificar lasvariables de entrada (x), de salida (z) y las que caracterizan el estado (q).

2- Identificación de la función (o funciones) de salida z(x,q). Esta función nos permiteconocer el valor de la salida en función de los valores actuales de las entradas y de lasvariables de estado. Se puede obtener directamente mediante análisis de la parte combinacionaldel circuito.

3- Obtención de las funciones de entrada a los biestables f(x,q). Las entradas a los biestablesdel circuito también son función, en general, de las variables de entrada y de estado. Por tanto,analizando la parte correspondiente del circuito combinacional es posible obtener susexpresiones.

4- Construcción de las tablas de verdad de las funciones de entrada a los biestables. A partirde las expresiones algebraicas obtenidas en el paso anterior es inmediato construirlas.

5- Construcción la tabla de verdad de la función de transición de estados q+(x,q). En el pasoanterior hemos obtenido en forma de tabla las funciones de entrada a los biestables. Esta tabla,juntamente con la de transiciones de los biestables utilizados, permite obtener de formainmediata el próximo valor de las variables de estado, con lo que es posible obtener la tabla deverdad de la función transición de estados.

6- Obtención del diagrama de estados. En el paso anterior se ha obtenido la tabla de lafunción transición de estados, mientras que en el paso 2 se había obtenido la de la función desalida. Con esta información es directa la obtención del diagrama de estados, así como de

Page 3: diseño digital 7

Diseño de circuitos secuenciales síncronos 259________________________________________________________________________________

cronogramas, e incluso en algunas ocasiones realizar una interpretación de la utilidad delcircuito.

Los dos ejemplos que siguen a continuación ilustran la aplicación de este procedimiento de análisis ados casos concretos.

Ejemplo 7.1

Obtenga una especificación del funcionamiento del circuito secuencial de la figura 7.2.

xz

Clock

J Q

QK

1

x2

Figura 7.2 Circuito secuencial del ejemplo 7.1

Es evidente que se trata de un circuito secuencial síncrono en forma canónica, puesto que constade un único biestable (tipo JK, sincronizado por flanco ascendente) y una red combinacional. Portanto, aplicaremos el procedimiento sistemático de análisis descrito.

1- Identificación de las variables: El circuito propuesto tiene dos entradas (x1 y x2) una salida(z), y una variable de estado (la salida del biestable, Q). Luego son posibles cuatrocombinaciones de entrada, dos de salida y dos estados.

2- Identificación de la función de salida: Por inspección del circuito se obtiene que la salida esfunción de una de las entradas y de la variable de estado. Una consecuencia de esto es que se tratade una máquina de Mealy.

z= Q⋅ x 2 + Q ⋅ x2 = Q⊕x2

3- Obtención de las funciones de entrada a los biestables: Se observa que las funciones deentrada a los biestables en este caso concreto dependen únicamente de las entradas del circuito yno de la variable de estado.

J = x2x 1 K = x2x1

4- Tabla de verdad de las funciones de entrada a los biestables: Es Inmediato obtenerla a partirde las expresiones algebraicas del paso 3.

Page 4: diseño digital 7

260 Diseño digital________________________________________________________________________________

J KQ X2=X1=0 X2=0 X1=1 X2=1 X1=0 X2=X1=1

0 0 0 0 0 1 0 0 11 0 0 0 0 1 0 0 1

5- Tabla de verdad de la función transición de estados: Para escribirla es preciso recordar elfuncionamiento del biestable JK, que mostramos a continuación en forma de tabla deexcitaciones y expresión algebraica.

Q

0 1

J K Q+

0 0 0 1 1 0 1 1

Q

Q+ = Q J+ QK

Si se conocen los valores de las entradas a los biestables (J, K) en función de los valores de lasentradas (x1, x2) y de la variable de estado (Q) y si también se conoce el valor próximo de lavariable de estado (Q+) en función de Q, J, y K, es fácil obtener una tabla indicando el valor deQ+ en función de x1, x2 y Q. Esta tabla corresponde a la función de transición de estados.Podemos integrar en la misma tabla la función de salida, cuya expresión algebraica se obtuvo enel paso 2.

Q+, zQ X2=X1=0 X2=0 X1=1 X2=1 X1=0 X2=X1=1

0 0, 0 0, 0 1, 1 0, 11 1, 1 1, 1 1, 0 0, 0

6- Diagrama de estados: La información contenida en la tabla del paso 5 constituye ya unaespecificación completa del funcionamiento del circuito de la figura 7.2, por lo que estrictamenteel análisis puede darse por concluido. Ahora bien, a partir de ese resultado es inmediato obtenerel diagrama de estados del sistema, que se muestra en la figura 7.3.

11/0

0 1

10/1 00/1 01/1 10/0

00/0 01/0 11/1

Figura 7.3 Diagrama de estados del circuito del ejemplo 7.1

_________________________________________________________________________________

Page 5: diseño digital 7

Diseño de circuitos secuenciales síncronos 261________________________________________________________________________________

Ejemplo 7.2

Obtenga una especificación del funcionamiento del circuito secuencial de la figura 7.4. Indíqueseuna posible utilidad del circuito, si las entradas varían a un ritmo muy inferior al del reloj delsistema.

x1

z

CLKJ1 K1

Q1 Q1

J 0 K0

Q0 Q0

CLK

x0

OUT

Figura 7.4 Circuito del ejemplo 7.2

Una inspección preliminar de la figura 7.4 permite identificar la parte recuadrada como uncircuito síncrono canónico, por lo que podemos aplicarle el método sistemático de análisis yrealizar las interpretaciones globales a posteriori.

Identificación de las variables: El circuito tiene dos entradas (x1 y x0), una salida (z), y dosvariables de estado (Q1 y Q0). Luego son posibles cuatro combinaciones de entrada, dos de saliday cuatro estados.

Obtención de la función de salida: Se trata de una máquina de Mealy: la salida es función de lasentradas y de las variables de estado.

z= x 1x0 + x1Q 1Q 0 + x1x 0Q1Q0

Obtención de las funciones de entrada a los biestables: En este caso las funciones de entrada alos biestables dependen únicamente de las variables de estado.

J1 = Q0 K1 = Q 0 J0 = Q 1 K0 = Q1

Page 6: diseño digital 7

262 Diseño digital________________________________________________________________________________

Nótese que cada biestable tiene como entradas una misma variable directa y su negada, por lo quefunciona como si fuera de tipo D:

D1 = Q0 D0 = Q 1

Tabla de verdad de las funciones de entrada a los biestables: Inmediata a partir de lasexpresiones del paso anterior. Nótese que estas funciones son independientes de x1 y x0.

D1 D0

Q1 Q0 X1=X0=0 X1=0 X0=1 X1=1 X0=0 X1=X0=1

0 0 0 1 0 1 0 1 0 10 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 01 1 1 0 1 0 1 0 1 0

Tabla de verdad de la función transición de estados: Para escribirla basta recordar que en unbiestable D el estado siguiente coincide con la entrada actual (Q+=D), por lo que la tabla deverdad de la función transición de estados será idéntica a la obtenida en el paso anterior, quereproducimos a continuación añadiendo la función de salida.

(Q1 Q0)+, z

Q1 Q0 X1=X0=0 X1=0 X0=1 X1=1 X0=0 X1=X0=1

0 0 0 1, 0 0 1, 1 0 1, 1 0 1, 10 1 1 1, 0 1 1, 1 1 1, 0 1 1, 01 0 0 0, 0 0 0, 1 0 0, 0 0 0, 01 1 1 0, 0 1 0, 1 1 0, 1 1 0, 0

Diagrama de estados: Inmediato a partir de la tabla anterior. Nótese que la variación de estadosdel sistema es automática con el reloj e independiente de las entradas.

10

00

01

11

10, 0 11, 0

10, 1 11, 1

10, 0 11, 0

10, 1 11, 0 00, 0

01, 100, 0 01, 1

00, 0 01, 1

00, 0 01, 1

Page 7: diseño digital 7

Diseño de circuitos secuenciales síncronos 263________________________________________________________________________________

Interpretación: Dado que por una parte la salida OUT es el producto lógico de z y CLK y porotra las entradas x1 y x0 tienen una variación lenta respecto a CLK, podemos pensar que lamisión del sistema es realizar algún tipo de manipulación de la señal de reloj. Podemoscomprobar esto mediante un cronograma como el de la figura 7.5.

x1

z

Q0

0

CLK

x

Q1

OUT

Figura 7.5 Cronograma del circuito del ejemplo 7.2

El cronograma revela que, mientras la entrada está fija en los valores x1=1 x0=0, el circuitoelimina uno de cada dos pulsos de reloj, quedando la salida como un reloj cuya frecuencia y ciclode trabajo son la mitad de los de CLK. Asimismo cuando las entradas están fijas en x1=x0=1 elcircuito elimina tres de cada cuatro pulsos de reloj, siendo la frecuencia y el ciclo de trabajo de lasalida la cuarta parte de los de CLK.

Puede completarse esta interpretación comprobando que, de acuerdo con el diagrama de estadoso la tabla de verdad del circuito, se tiene OUT=0 (o sea z=0) para x1=x0=0 y OUT=CLK (o seaz=1) para x1=0 x0=1. Con esto podemos concluir diciendo que el circuito puede utilizarse comodivisor de frecuencia programable.

_________________________________________________________________________________

Ejercicio 7.1

Analice el sistema secuencial de la figura 7.6. Obtenga su diagrama de estados e interprételocomo un detector de secuencia con 4 posibles entradas. Para la codificación de las entradas dada,encuentre la secuencia a detectar.

Page 8: diseño digital 7

264 Diseño digital________________________________________________________________________________

0

T Q

Q

T Q

Q

Clk

Z

x 1

x 0

Q1

Qa b c d

0 0 0 1 1 0 1 1

xx0

x1

0 0 0 1 1 0 1 1

SS S S

SQ0Q

1

1

2

3

4

Figura 7.6 Sistema y codificaciones del ejercicio 7.1

_________________________________________________________________________________

7.1.2 Método sistemático de síntesis

El método sistemático de síntesis de circuitos secuenciales síncronos que vamos a presentar es elinverso del método de análisis descrito en el apartado anterior y, por tanto, permite obtener uncircuito síncrono que, mediante biestables y una red combinacional, implementa la especificaciónpropuesta.

El método consta de tres fases: I) obtención de una especificación normalizada, II) traducción de laespecificación a nivel binario (variables lógicas), y III) obtención y optimización de las funciones deentrada a los biestables y de salida del sistema. A continuación se indican con detalle los pasosconcretos a seguir:

1- Identificar las entradas, las salidas y los estados del sistema. Dicha identificación debehacerse a partir de una primera especificación del funcionamiento del sistema. Con frecuenciasuele ocurrir que la especificación inicial sea verbal o, en general, no normalizada, por lo queidentificar los datos con los que tiene que trabajar el sistema no es siempre inmediato.

2- Construir la tabla de verdad de las funciones de salida y de transición de estados (o suequivalente en forma de diagrama de estados). Una vez completado este paso se dispone deuna especificación normalizada (basada en el estado) del sistema. Si se desea realizar undiseño compacto, es conveniente aplicar el método de minimización del número de estadospresentado en el capítulo 6.

3- Codificar las variables del sistema. Es decir, si no lo están ya, traducir a variables lógicaslos conjuntos de entradas, salidas y estados. En ausencia de restricciones concretas esrecomendable codificar utilizando el menor número posible de bits (recuérdese que paracodificar N informaciones son necesarios como mínimo n bits, cumpliéndose que 2n•N). Conesto la especificación del sistema estará hecha a nivel binario.

Page 9: diseño digital 7

Diseño de circuitos secuenciales síncronos 265________________________________________________________________________________

4- Escoger el tipo de biestables a utilizar. Es evidente que la implementación circuital serádistinta en función del tipo de biestables utilizados.

5- Construir la tabla de verdad de las funciones de entrada a los biestables. Se trata de seguirel mismo procedimiento que en el caso de análisis pero en sentido contrario: a partir de latabla de verdad de la función transición de estados q+(x,q) y de la tabla de excitaciones de losbiestables, obtener los valores f(q, x) que es necesario introducir en las entradas de éstos.

6- Una vez obtenida la tabla de verdad de las funciones de entrada a los biestables, esinteresante escribir sus expresiones algebraicas y, eventualmente, simplificarlas. Lo mismosuele hacerse con las funciones de salida. En ambos casos son aplicables los métodos desimplificación presentados en capítulos anteriores.

7- Finalmente, y de acuerdo con las expresiones obtenidas en el paso anterior, construir elesquema lógico resultante.

Al igual que en el caso de análisis, es pertinente ilustrar este método de síntesis con la ayuda dealgunos ejemplos concretos.

Ejemplo 7.3

Diseñe un contador binario módulo 5 (capaz de dar a su salida valores entre 0 y 4, en códigobinario) síncrono. El contador tiene dos posibles entradas, "C" (contar) y "NC" (no contar), demanera que cuando la entrada es "C" el valor de la salida se incrementa con cada período de relojsiguiendo el ciclo 0,1,2,3,4,0,1... y que cuando toma el valor "NC" la salida permanece fija en elúltimo valor alcanzado.

Evidentemente es posible utilizar el método de síntesis descrito. Además, como veremos enseguida, en este caso es fácil obtener una especificación normalizada del funcionamiento delsistema.

1- Identificación de variables: La entrada sólo puede tomar dos valores, concretamentex∈ C,NC{ }. Por su parte la salida puede tomar hasta 5 posibles valores z∈ 0,1,2,3,4{ }. En loque respecta a los estados internos, podemos optar por un conjunto de estados Si, siendo "i" elvalor hasta el cual ha llegado el sistema contando. Este criterio implica que habrá tantos estadosposibles como salidas: s∈ s0,s1,s2,s3,s4{ }.

2- Diagrama de estados: Podemos obtenerlo "traduciendo" el enunciado a términos de losconjuntos de entradas, salidas y estados definidos en el paso anterior, tal como muestra la figura7.7. El diagrama muestra claramente el funcionamiento del contador. Nótese que se trata de unamáquina de Moore en la que cada estado implica una salida diferente, por lo que su número, deacuerdo con el método de minimización, ya es mínimo.

Page 10: diseño digital 7

266 Diseño digital________________________________________________________________________________

S /00 S /11 S /22 S /33 S /44

NC NC NC NC NC

C C C C

C

Figura 7.7 Diagrama de estados de un contador binario módulo 5

3- Codificación de las variables: Como sólo hay dos posibles entradas basta con una variablelógica (x) para codificarlas. Para los estados Si podemos optar por codificar el valor "i" enbinario, para lo cual necesitaremos tres variables de estado (q2, q1, q0). Como hay tantos estadoscomo salidas, parece adecuado escoger la misma codificación para las salidas que para losestados, por lo que harán falta tres variables (z2, z1, z0). Con esto las funciones de salida sontriviales: z2=q2, z1=q1, z0=q0.

Salida o estadoS /0 S /1 S /2 S /3 S /4

0

1

2

3

4

0 0 0 0 0 1 0 1 0 0 1 1 1 0 0

z z z q q q

012012

Entrada x

NC C

0 1

Figura 7.8 Codificación de las variables del contador

La codificación realizada permite escribir la tabla de funcionamiento del sistema (funciones desalida y de transición de estados) en términos de variables lógicas. Obsérvese que, al tratarse deun contador módulo 5, se supone que los tres últimos estados/salidas de la tabla no se daránnunca y que, por tanto, las transiciones a partir de estos tres estados son indiferentes, aspecto quese ha recogido en la tabla.

Q2+Q1

+Q0+

Q2 Q1 Q0 x=0 x=1 z2 z1 z0

0 0 0 0 0 0 0 0 1 0 0 00 0 1 0 0 1 0 1 0 0 0 10 1 0 0 1 0 0 1 1 0 1 00 1 1 0 1 1 1 0 0 0 1 11 0 0 1 0 0 0 0 0 1 0 01 0 1 X X X X X X X X X1 1 0 X X X X X X X X X1 1 1 X X X X X X X X X

Page 11: diseño digital 7

Diseño de circuitos secuenciales síncronos 267________________________________________________________________________________

4- Elección de los biestables: Escogemos de forma arbitraria biestables tipo T. Como tenemostres variables de estado hacen falta tres biestables. Dado que la salida del contador coincide consu estado, el esquema básico del circuito será de la forma dada en la figura 7.9, donde sólo faltarealizar las funciones de entrada a los biestables T2, T1, y T0 para completarlo.

T T Q

Q

z

Clock

2 2

T T Q

Q

z1 1

T T Q

Q

z0 0

Q 2

Q 1

Q 0

Figura 7.9 Organización básica del contador binario módulo 5

5- Tabla de las funciones de entrada a los biestables: Conociendo la tabla de la funcióntransición de estados y el funcionamiento de un biestable T, es inmediato construir la tabla de lasfunciones de entrada de los biestables: recuérdese que un biestable T cambia de estado con T=1(Q+=QΗT); por tanto, si el valor futuro de una variable de estado debe modificarse con respectoal actual es necesario un "1" a la entrada del biestable correspondiente. La tabla resultante semuestra a continuación.

T2 T1 T0

Q2 Q1 Q0 x=0 x=10 0 0 0 0 0 0 0 10 0 1 0 0 0 0 1 10 1 0 0 0 0 0 0 10 1 1 0 0 0 1 1 11 0 0 0 0 0 1 0 01 0 1 X X X X X X1 1 0 X X X X X X1 1 1 X X X X X X

6- Simplificación de las funciones: Se trata de 3 funciones incompletamente especificadas (T2,T1, T0) de las mismas 4 variables (x, Q2, Q1, Q0). Buscando conseguir una implementacióncompacta conviene simplificar dichas funciones. Al aplicar el método de Karnaugh se obtiene elresultado indicado a continuación.

Page 12: diseño digital 7

268 Diseño digital________________________________________________________________________________

T2 = xQ2 + xQ1Q0 T1 = xQ0 T0 = xQ 2

7- Esquema lógico resultante: A partir de las expresiones algebraicas del paso anterior se obtiene

T Q

Q

z

Clock

2

T Q

Q

z 1

T Q

Q

z 0

x

Figura 7.10 Esquema lógico del contador binario módulo 5

Ejemplo 7.4

Un determinado sistema secuencial ha sido implementado mediante el circuito de la figura 7.11.Hállese la especificación de dicho sistema en forma de diagrama de estados mínimo y, si ello esposible, una implementación más sencilla hecha con biestables D y puertas lógicas.

zCLK

J Q

QKx

J Q

QK

q 1

q 0

Figura 7.11 Circuito inicial del ejemplo 7.4

El circuito de la figura 7.11 es una máquina de Mealy con una entrada (x), una salida (z) y dosvariables de estado (q1 y q0). Un análisis de la parte combinacional permite obtener las siguientesexpresiones algebraicas.

Page 13: diseño digital 7

Diseño de circuitos secuenciales síncronos 269________________________________________________________________________________

J1 = xq1 J0 = x

K1 = x K0 = xq0 z = x ⊕ q0

Las expresiones anteriores, junto con el conocimiento de la funcionalidad de los biestables JK,permiten obtener sucesivamente las tablas de verdad de las funciones de entrada a los biestables yde las funciones de salida y de transición de estados, que mostramos a continuación.

x=0 x=1 q1+q0

+ ,zq1 q0 J1 K1 J0 K0 J1 K1 J0 K0 x=0 x=10 0 0 0 0 0 0 1 1 0 0 0, 0 0 1, 10 1 0 0 0 0 0 1 1 1 0 1, 1 0 0, 01 0 0 0 0 0 1 1 1 0 1 0, 0 0 1, 11 1 0 0 0 0 1 1 1 1 1 1, 1 0 0, 0

En la figura 7.12 se muestra la tabla de verdad y el diagrama de estados del circuito analizado,tras hacer una decodificación de los estados para simplificar la notación.

A, 0 B,1 B, 1 A,0 C, 0 B,1 D, 1 A,0

SS , z+

A B C D D

A B

C

0/0

1/0

x=0 x=1

1/1

0/1

0/0

1/0

1/1

0/1

Figura 7.12 Tabla de verdad y diagrama de estados del circuito de la figura 7.11

Una forma de simplificar la implementación del sistema es ver si es viable hacerla con menosbiestables, es decir, ver si se puede reducir el número de estados. La aplicación del método deminimización da lugar a la serie de particiones siguiente, que indica que en realidad basta con dosestados para especificar el funcionamiento del sistema:

p0 = (A, B,C, D)

p1 = (A,C) (B, D)

p2 = p1

A ≡ C

B ≡ D

A partir de aquí podemos rediseñar el sistema aplicando el método sistemático de síntesisutiizando un biestable tipo D. El circuito resultante, mucho más sencillo que el inicial, se muestraen la figura 7.13.

Page 14: diseño digital 7

270 Diseño digital________________________________________________________________________________

A, 0 B,1

B, 1 A,0

qq , z+

A

B

x=0 x=1

0, 0 1, 1

1, 1 0, 0

qq , z+

0

1

x=0 x=1

0 1

1 0

Dx=0 x=1

D Q

Q

D q

Clock

x

z

D = z = x q

Figura 7.13 Tabla de verdad y circuito final del ejemplo 7.4

_________________________________________________________________________________

Ejercicio 7.2

Para el diagrama de estados de la figura 7.14, proponga un diseño con biestables JK.

A B0/1 0/0

1/0

C 1/10/0

1/0

Figura 7.14. Diagrama de estados del ejercicio 7.2

Si el diseño propuesto contempla estados que no se dan nunca, realice el análisis de dichosistema, y complete el diagrama de estados.

_________________________________________________________________________________

7.2 Módulos secuenciales

En el apartado anterior hemos presentado métodos que permiten analizar y diseñar sistemassecuenciales síncronos cualesquiera. Sin embargo es evidente que dichos métodos son plenamenteoperativos sólo cuando el número de estados y/o variables es reducido. Al igual que ocurría en el casode sistemas combinacionales, algunos circuitos de utilización más frecuente se han estandarizado yexisten como módulos específicos ya sea como circuitos integrados comerciales MSI, LSI o bienformando parte de librerías para entornos de diseño custom VLSI. Los más característicos de entreestos módulos secuenciales son los registros y los contadores, que serán el objetivo de los próximosapartados.

Page 15: diseño digital 7

Diseño de circuitos secuenciales síncronos 271________________________________________________________________________________

Un aspecto adicional que conviene tener presente es que la existencia de estos bloques estandarizadospermite acometer diseños de mayor complejidad que los que serían abordables razonablementemediante el procedimiento de síntesis presentado en la sección anterior.

7.2.1 Registros

Un registro es un circuito secuencial cuya principal función es almacenar un vector de n bits duranteun tiempo indefinido. La figura 7.15 presenta el esquema genérico de un registro de n bitssincronizado por flanco ascendente.

Q0Q Q1

I0I n-1 I 1

Registro de n bits

n-1

...

...

CLK

LOADRESET

Q

I

Figura 7.15 Esquema de un registro de n bits

La descripción del funcionamiento de este registro gira en torno a la entrada LOAD (carga enparalelo). Así, si LOAD=0 el registro mantiene inalterado su contenido tras el flanco ascendente de laseñal de reloj Qi+=Qi (con 0<i<n-1), mientras que para LOAD=1 tras el próximo flanco ascendentedel reloj los valores de las entradas Ii se cargan en el registro: Qi

+=Ii. Una especificación de estafuncionalidad "síncrona" sería:

Q+ = Q(i + 1)=I (i) si LOAD( i) =1

Q(i ) si LOAD(i )= 0

Por otro lado los registros suelen disponer de una entrada adicional de reinicialización (CLEAR oRESET) que permite cargar de forma asíncrona, es decir, inmediata e independientemente del reloj,un valor determinado (habitualmente Qi=0). En consecuencia, el funcionamiento síncrono antesdescrito debe entenderse como el que se produce para el valor de la señal RESET=0.

Una posible realización del registro de la figura 7.15, basada en la utilización de biestables D conentrada asíncrona de reset y multiplexores de dos canales, se propone en la figura 7.16 para n=4 bits.Con cada flanco ascendente del reloj el valor presente a la entrada Di de cada biestable se transfiere asu salida; así, para LOAD=1 el valor que se transfiere es Qi

+=Ii (carga en paralelo), mientras que paraLOAD=0 el valor transferido es Qi+=Qi (memorización).

Page 16: diseño digital 7

272 Diseño digital________________________________________________________________________________

I 3

Q3 Q2 Q1 Q0

ys MUX

01

CLK

LOAD

I 2 I 1 I 0

ys MUX

01

ys MUX

01

ys MUX

01

D

QRS

D

QRS

D

QRS

D

QRS

RESET

Figura 7.16 Realización de un registro mediante biestables D

Ejemplo 7.5

Considere la alternativa de realización de un registro propuesta en la figura 7.17, y compárela conla de la figura anterior.

Q0

CLKLOAD

RESET

Q3 Q2 Q1

I0I3 I 2 I 1

DRS

Q

DRS

Q

DRS

Q

DRS

Q

Figura 7.17. Realización alternativa del registro de la figura 7.15

Un primer análisis indica que el funcionamiento del registro coincide con el del anterior. Es decir,si LOAD=0 no hay flancos de subida a la entrada de reloj de los biestables, y estos mantienen suestado. En el caso de que LOAD=1, cada flanco de reloj fuerza que el estado de cada biestable seactualice al valor de la entrada correspondiente.

Es obvio que la circuitería implicada en la realización de este segundo diseño es mucho menorque en el primero, siendo esta una clara ventaja. Por otro lado, un análisis más pormenorizadonos permitirá apreciar las diferencias de comportamiento de ambas realizaciones. Si observamosel cronograma de la figura 7.18

Page 17: diseño digital 7

Diseño de circuitos secuenciales síncronos 273________________________________________________________________________________

Transición sincronizada

t

t

t

t

CLK

LOAD

CLK LOAD

Q

.

i

Transición no sincronizada

Figura 7.18. Cronograma de la respuesta del registro de la figura 7.17

Podemos observar claramente en el cronograma que la señal de LOAD no se comportasincronizada por el flanco ascendente del reloj, sino por nivel alto. Este puede llevar, como es elcaso de la segunda mitad del cronograma, a una carga en paralelo indeseada (LOAD=0 en los dosflancos de reloj de esta parte del cronograma). Hay que considerar también que incluso en el casode funcionamiento correcto, en la primera parte del cronograma, la puerta AND añade un retardoa la señal de reloj que puede provocar problemas al conectar este registro a otros bloquessincronizados con el mismo reloj.

_________________________________________________________________________________

Ejercicio 7.3

Proponga un diseño para un registro con una señal de carga LOAD y una de inicializaciónRESET activa a nivel bajo, ambas síncronas. En el caso de que las dos señales sean activas, debepredominar la de RESET.

_________________________________________________________________________________

7.2.2 Registros de desplazamiento

Existen registros en los cuales es posible no sólo cargar y memorizar la información, sino tambiéntransferirla entre biestables vecinos. Estos registros son llamados de desplazamiento.

Existen distintas maneras de organizar la introducción y/o el acceso a la información almacenada endichos registros; concretamente es posible organizar la introducción de datos en serie (uno detrás deotro por la misma línea) o en paralelo (n datos a la vez por n líneas diferentes), y otro tanto con suacceso (salida en serie o en paralelo), con lo que tenemos hasta cuatro posibles variantes de formatoentrada/salida.

En la figura 7.19 se muestra, a título de ejemplo, la realización mediante biestables y puertas de unregistro de desplazamiento con entrada en serie y salida en paralelo. El análisis del funcionamiento de

Page 18: diseño digital 7

274 Diseño digital________________________________________________________________________________

este circuito es inmediato: con cada flanco ascendente del reloj los bits se desplazan un lugar a laderecha: (Q3+,Q2

+,Q1+,Q0

+)=(IN,Q3,Q2,Q1).

CLK

RESET

IN

Q0Q3 Q2 Q1

DQ

RS

DQ

RS

DQ

RS

DQ

RS

Figura 7.19 Realización mediante biestables D de un registro de desplazamientocon entrada en serie y salida en paralelo

_________________________________________________________________________________

Ejercicio 7.4

Diseñe un detector de secuencia que active su única salida al haber recibido en su entrada lasecuencia 1011. Realízelo mediante el procedimiento general y proponga un diseño alternativoutilizando un registro de desplazamiento. Compare ambas realizaciones.

_________________________________________________________________________________

Ejemplo 7.6

Analice las modalidades de funcionamiento del registro serie/paralelo de la figura 7.20. Propongaun diseño alternativo que permita al registro, adicionalmente, realizar cargas síncronas enparalelo o bloquear el desplazamiento. Proponga también una segunda variante que permitarealizar cargas paralelo asíncronas.

CLK

Q3 Q2 Q1 Q0

ILIR

R/L

D

Q

MUXy

s01

D

Q

D

Q

D

Q

MUXy

s01

MUXy

s01

MUXy

s01

Figura 7.20 Registro de desplazamiento del ejemplo 7.6

Page 19: diseño digital 7

Diseño de circuitos secuenciales síncronos 275________________________________________________________________________________

Salta a la vista el carácter modular del circuito (la misma estructura se repite cuatro veces), muysimilar al de la figura 7.16, por lo que su análisis se puede particularizar fácilmente para cada bit.Así, podemos ver que para R/ L = 1 el desplazamiento con cada flanco ascendente de reloj eshacia la derecha (con entrada IR): (Q3

+,Q2+,Q1

+,Q0+)=(IR,Q3,Q2,Q1), mientras que para

R/ L = 0 el desplazamiento es hacia la izquierda (con entrada IL): (Q3+,Q2

+,Q1+,Q0

+)=(Q2,Q1,Q0,IL). Es decir, se trata de un registro de desplazamiento serie/paralelo bidireccionalsincronizado por flanco ascendente.

Para incluir más posibilidades síncronas de funcionamiento, como hacer entrada en paralelo odetener el desplazamiento, podemos mantener la estructura básica compuesta por un multiplexormás un biestable para cada bit, ampliando el tamaño del multiplexor de forma que admita estasnuevas variantes (ver figura 7.21).

C0C1 Qi+

Función

0 0 0 1 1 0 1 1

Qi+1

I i

Qi-1

Qi Parar desp. Desp. derecha Desp. izquierda Carga paralelo

i

Qi

CLKD

Q

01MUX

I

23

01

Qi-1Qi+1

C0

C1

y

Figura 7.21 Célula básica de un registro de desplazamiento bidireccional concarga paralelo síncrona

Finalmente, para obtener un registro que pueda cargar en paralelo de forma asíncrona podemosutilizar biestables D con puesta a "1" (Preset) y a "0" (Reset) asíncrona y añadir la lógicacombinacional necesaria para evitar las órdenes contradictorias (ver figura 7.22).

LOAD I RSPR Función

0 0 1 0 0 1

Funcionamiento síncrono Preset (salida a "1") Reset (salida a "0")

i

0 X 1 1 1 0

y

PRRSD

Q iLOAD

Qi

CLK

Qi+1 Qi-1

I

R/L

LOADI i

MUXs01

Figura 7.22 Célula básica de un registro de desplazamiento bidireccional con carga paralelo asíncrona

_________________________________________________________________________________

Page 20: diseño digital 7

276 Diseño digital________________________________________________________________________________

Ejercicio 7.5

Diseñe, con la misma filosofía del ejemplo anterior, la célula básica para componer un registro dedesplazamiento con las prestaciones y señales de control descritas en la tabla que sigue.

CLR LD SH L / R Función Modo0 X X X Reset Qi

+ = 0 asíncrono1 1 X X Carga paralelo Qi

+ = Ii asíncrono1 0 1 X Mantener estado Qi

+ = Qi síncrono1 0 0 1 Desplazar izquierda Qi

+ = Qi−1 síncrono1 0 0 0 Desplazar derecha Qi

+ = Qi+1 síncrono

_________________________________________________________________________________

7.2.3 Contadores

Un contador es un bloque secuencial cuya función básica es presentar, en un determinado código, elnúmero de impulsos de reloj que se han producido a su entrada.

S /00 S /11 S /22 S /p-1p-1

0 0 0 0

1 1 1

1

...

Figura 7.23 Diagrama de estados de un contador módulo p

La figura 7.23 muestra el diagrama de estados típico de un contador módulo p, donde podemos verque se trata de una máquina de Moore: la salida depende únicamente del estado actual (z=f[s]). Elfuncionamiento es tal que, mientras la entrada (orden de contar) toma el valor "1", el sistema pasa deun estado al siguiente a cada impulso de reloj, hasta que después de pasar por el estado "p-1" vuelveal estado inicial "0". Cuando la entrada vale "0", el contaje se detiene y el sistema permanece en elúltimo estado alcanzado.

Existen diversas variantes de contador en función de cuál es el código de salida. Así, por ejemplo,podemos encontrar contadores binarios con 2n estados y n salidas (correspondientes a los valoresentre 0 y 2n-1 codificados en binario), contadores decimales con 10 estados y 4 salidas(correspondientes a la codificación BCD del estado), contadores en código Gray, etc. También esusual encontrar distintas variantes de funcionamiento: contadores reversibles (es decir,contadores/descontadores), contadores con carga en paralelo síncrona o asíncrona, etc.

Page 21: diseño digital 7

Diseño de circuitos secuenciales síncronos 277________________________________________________________________________________

TC

Contador módulo 16

I0I2 I1I3

Q0

Q2

Q1

Q3

CE

CLK

CLRLD

Figura 7.24 Contador binario módulo 16

La figura 7.24 muestra un esquema típico de contador binario módulo 16. En dicho contador se puedeiniciar el contaje desde un estado determinado por el usuario, para ello se dispone de la señal LD(carga en paralelo) y las entradas Ii; al activar la señal LD y producirse un flanco ascendente del relojse carga en las salidas Qi el valor presente en las entradas Ii, valor a partir del cual se continuará elrecuento cuando LD se desactive y se reciban nuevos impulsos de reloj. La entrada CE habilita laacción de contar: si CE=0 se interrumpe el recuento y el circuito mantiene su último valor Qi

+=Qi. Laentrada CLR (clear) permite cargar, de forma asíncrona, el estado Qi=0.

CE

Q

CLK

Q

CLR

TC

Q

Q

3

2

1

0

Figura 7.25 Cronograma de funcionamiento de un contador binario módulo 16

El cronograma de la figura 7.25 ilustra el funcionamiento del contador para LD=0 partiendo de unainicialización producida mediante la activación de la entrada CLR. Nótese que la orden de detener elrecuento CE=0 es atendida únicamente si dura lo suficiente como para coincidir con un flancoascendente del reloj.

Page 22: diseño digital 7

278 Diseño digital________________________________________________________________________________

Podemos generalizar este comportamiento para un contador binario módulo 2n en las siguientesecuaciones para el estado futuro:

S+ =

0 si CLR= 1 (asíncrono)

I si CLR= 0 y LD = 1

S+ 1( )mod 2n si CLR= 0,LD = 0 y CE = 1

S si CLR= 0,LD = 0 y CE = 0

La salida TC es una indicación de fin de cuenta, y toma el valor "1", como se observa en elcronograma, sólo cuando Qi=CE=1. Esta salida permite encadenar contadores de forma sencilla, talcomo podemos ver en la figura 7.26, donde se muestra un contador módulo 256 hecho mediante laconexión de dos contadores módulo 16.

I4I6 I5I7

Q4Q6 Q5Q7

I0I2 I1I3

Q0Q2 Q1Q3

CELD

CLR

TCCLK

I0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LD

I0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LD

Figura 7.26 Contador binario módulo 256

Obsérvese que al llegar por primera vez el contador de la izquierda (bits menos significativos) alvalor "15" y existir orden de seguir contando (CE=1), TC valdrá "1", con lo que en el siguiente flancode reloj el contador de la derecha (bits más significativos), se incrementará una unidad y permanecerádetenido hasta que, dieciséis períodos de reloj después, el contador de la derecha vuelva a completarsu ciclo, momento en que volverá a incrementarse, y así sucesivamente.

J K

Q RSJ K

Q RSJ K

Q RSJ K

Q RS

CE

CLK

TC Q0Q2 Q1Q3

CLR

Figura 7.27 Contador binario módulo 16 realizado mediante biestables JK

Page 23: diseño digital 7

Diseño de circuitos secuenciales síncronos 279________________________________________________________________________________

La realización de contadores con biestables y puertas lógicas no supone ninguna dificultad especial,por lo que basta con aplicar el método sistemático de síntesis presentado en este mismo capítulo.Como ejemplo, la figura 7.27 muestra una posible realización mediante biestables JK y puertas ANDde un contador hexadecimal (es decir, binario módulo 16) sin carga en paralelo. Se deja al lector lareconstrucción de las etapas de su diseño, así como la comprobación del funcionamiento correcto delcircuito.

Nótese que la modularidad del circuito de la figura 7.27 es evidente y que se trata de una estructurafácilmente ampliable: no hay más que añadir un biestable y una puerta AND por cada nuevo bit.

A su vez, la figura 7.28 muestra la implementación mediante biestables JK y puertas lógicas estándardel contador binario módulo 16 descrito en la figura 7.24, manteniendo la filosofía modular de suestructura.

CE

CLK

TC Q0Q2 Q1Q3

CLRJ K

QRS

J K

QRS

J K

QRS

J K

QRS

LD

I 0I 2 I 1I 3

Figura 7.28 Realización de un contador hexadecimal con carga en paralelo

A pesar de su aspecto aparentemente complejo, el análisis del circuito de la figura 7.28 esrelativamente sencillo. Para ello podemos evaluar las expresiones algebraicas de las entradas de losbiestables.

J0 = CE⋅ LD+ I0 ⋅ LD

K0 = CE⋅ LD+ I 0 ⋅ LD

J1 = CE⋅ LD ⋅Q0 + I1⋅ LD

K1 = CE⋅ LD ⋅Q0 + I 1⋅ LD

....

⇒ Ji = CE⋅ LD⋅Qi ⋅...⋅Q0 + Ii ⋅ LD

Ki = CE⋅ LD⋅Qi ⋅...⋅Q0 + I i ⋅ LD

Podemos ver que para LD=0 el circuito se comporta exactamente igual que el de la figura 7.27,mientras que para LD=1 las entradas Ji y Ki de cada biestable toman valores complementarios. Enestas condiciones los biestables JK se comportan como biestables D, que permiten la carga enparalelo.

Page 24: diseño digital 7

280 Diseño digital________________________________________________________________________________

LD=1 ⇒ Ji = I i

Ki = I i

⇒ Qi+ = QiK i + Q iKi = (Qi + Q i )I i = I i

Ejemplo 7.7

Añada la lógica necesaria para usar el contador hexadecimal de la figura 7.24 como un contadorBCD (sin opción de carga en paralelo).

Para que el contador se comporte como BCD, después de la codificación del 9, debe venir lacorrespondiente al cero. Podemos conseguirlo haciendo una carga en paralelo al alcanzar lacuenta de 9, siempre que CE valga uno. Hay que tener en cuenta que los estados 10 a 15 no sedarán nunca, lo que nos permitirá simplificar el "detector de nueves". La implementaciónpropuesta en la figura 7.29 cumple estos requisitos.

CLR

TCI0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LDCLK

CE

Figura 7.29 Realización de un contador BCD

Además, si queremos que el contador sea encadenable, debemos generar una nueva señal de TC,dado que la interna no se activará nunca. Es sencillo razonar que la misma señal que activa LDsirve como marcador de final de cuenta.

_________________________________________________________________________________

Ejercicio 7.6

Añada la lógica necesaria para usar el contador hexadecimal de la figura 7.24 como un contadorBCD exceso a 3, sin opción de carga en paralelo.

_________________________________________________________________________________

7.3 Dispositivos lógicos programables

En el capítulo 5 se mencionó la existencia de los módulos lógicos combinacionales programables(PROM, PLA, PAL, etc). Estos módulos tienen en común el estar compuestos por matrices de puertascuyas conexiones pueden ser programadas por el usuario para implementar funciones lógicas.

Page 25: diseño digital 7

Diseño de circuitos secuenciales síncronos 281________________________________________________________________________________

De forma análoga existen estructuras compuestas por matrices de puertas lógicas que adicionalmentedisponen de biestables u otros elementos secuenciales, cuyas conexiones son también programables.Este tipo de estructuras goza de una gran aceptación, y son utilizadas tanto para implementar diseñossecuenciales de una cierta complejidad como para realizar prototipos de sistemas que posteriormentese implementan mediante otras estrategias.

Las variantes presentes en el mercado son numerosas, y dan lugar a un panorama algo confuso dedenominaciones (PLD, GAL, PAL, EPLD, FPGA, LCA, etc.) que en algunos casos se refieren aestructuras diferentes y en otros a nombres comerciales dados a un mismo tipo de cicuito por distintosfabricantes. Puesto que se trata de bloques que conceptualmente son similares, en este textoutilizaremos para ellos el nombre genérico PLD (programmable logic device, dispositivo lógicoprogramable).

El diseño de sistemas secuenciales mediante PLD mantiene los rasgos distintivos apuntados en sumomento en el caso de los módulos programables combinacionales. Por un lado la existencia dedispositivos programables por el fabricante y de dispositivos programables en campo (es decir, por elusuario); éstos últimos pueden ser programables más de una vez, o no, en función de la tecnologíacon la que hayan sido realizados. Por otra parte para trabajar con dispositivos programables en campoes necesario el concurso de herramientas software de ayuda al diseño y de un grabador que, una vezcompletado y simulado el diseño, realice la operación física de programación del PLD.

Ejemplo 7.8

El objetivo es realizar mediante un PLD un circuito que simule el lanzamiento de un dado ypresente el resultado en un display adecuado. Tal como se muestra en la figura 7.30.a, se trata deun sistema secuencial síncrono con una entrada conectada a un pulsador manual (ON) y sietesalidas (A,B,C,D,E,F,G) conectadas a un visualizador compuesto por siete diodoselectroluminiscentes (LEDs) y la circuitería necesaria para activarlos.

Mientras se acciona el pulsador (ON=1) el circuito sigue la secuencia 1,2,3,4,5,6,1,... al ritmomarcado por el reloj (lo bastante rápido como para no ser visible), mientras que al soltar elpulsador (ON=0) la secuencia se detiene en el último valor alcanzado, valor que sí es posiblevisualizar. Las seis visualizaciones posibles se muestran en la figura 7.30.b.

7

A,B,C,..,GPLDON

CLK

Display

CLR

A

B

D

C F

EG

Circuito de control

a) b)

Figura 7.30 Simulador del lanzamiento de un dado

Page 26: diseño digital 7

282 Diseño digital________________________________________________________________________________

El diseño de este circuito secuencial es sumamente sencillo, y se puede realizar en forma demáquina de Moore utilizando tres biestables. Una posible tabla de estados futuros y salidas seríala dada en la figura 7.31. Nótese que hay dos combinaciones de las variables de estado que danlugar a inespecificaciones.

ON=0 ON=1Valor Q2 Q1 Q0 Q+

2 Q+1 Q+

0 Q+2 Q+

1 Q+0 A B C D E F G

1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 12 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 03 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 14 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 05 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 16 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0- 1 1 0 X X X X X X X X X X X X X- 1 1 1 X X X X X X X X X X X X X

Figura 7.31 Tabla de verdad del circuito del ejemplo 7.8

Aplicando los métodos habituales de simplificación se llega a las expresiones siguientes para lasfunciones de salida y de transición de estados:

A = F = Q 2Q 1Q 0

B = E = Q 2 + Q 0

C = D = Q 2Q 1 + Q 2Q 0

G = Q0

D2 = Q2+ = Q1Q0ON + Q2Q 0 + Q2ON

D1 = Q1+ = Q 2Q 1Q0ON + Q1Q 0 + Q1ON

D0 = Q0+ = Q 0ON + Q0ON

Estas funciones se han implementado sobre el PLD mostrado en la figura 7.32, donde se disponede biestables tipo D incluidos en una estructura aparentemente compleja, pero que en realidad esuna versión muy reducida y simplificada de estructuras disponibles a nivel comercial. Podemosver que el PLD consta de una matriz de productos programable, otra de sumas fija, y módulos desalida compuestos de un biestable más un multiplexor. Se dispone de un máximo de seis entradas,seis productos adicionales de control de los multiplexores y hasta seis salidas.

Los multiplexores permiten escoger si la salida correspondiente es la dada por la matriz OR o ladada por el biestable. Nótese que las tres primeras salidas coinciden con las de los biestables (esdecir, con las variables de estado del sistema), mientras que las tres restantes coinciden lasentradas de los tres últimos biestables (y dan lugar a las funciones A, B, C, D, E, y F), con loéstos que quedan sin utilizar.

Page 27: diseño digital 7

Diseño de circuitos secuenciales síncronos 283________________________________________________________________________________

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

CLR

G

A

B

C

CLK

ON

1

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

D2

D1

D0

Q2

Q1

Q0

Figura 7.32 Circuito simulador del lanzamiento de un dado realizado con PLD

_________________________________________________________________________________

Page 28: diseño digital 7

284 Diseño digital________________________________________________________________________________

Ejercicio 7.7

Determine si es posible realizar un contador como el especificado en la figura 7.24 programandoadecuadamente el PLD de la figura 7.32.

_________________________________________________________________________________

7.4 Memorias RAM

Tradicionalmente se ha venido utilizando la discutible denominación RAM (Random Access Memory,memoria de acceso aleatorio) para las memorias de lectura y escritura.

Dado que las memorias RAM son evidentemente sistemas secuenciales, es oportuno hablar de ellasen este capítulo. Ahora bien, como veremos enseguida, se trata de módulos con unos objetivos,configuraciones y características muy específicos y diferentes a los vistos en los apartados anteriores,lo que justifica el tratamiento aparte aplicado.

7.4.1 Descripción genérica

Una memoria RAM es un módulo secuencial cuyo objetivo básico es el almacenamiento deinformación, incluyendo la posibilidad de lectura y escritura de esta información. Desde un punto devista funcional podemos entender una memoria RAM como un conjunto de registros más lacircuitería de control necesaria para transferir al exterior la información almacenada en cualquiera delos registros (lectura), así como para introducir en un registro concreto la información que se desee(escritura).

La figura 7.33 muestra un esquema genérico para una memoria RAM de 2kx n bits de capacidad,donde podemos observar k entradas de dirección (Ak-1,.., A1, A0), n entradas de datos (DIn-1,.., DI1,DI0), n salidas de datos (DOn-1,.., DO1, DO0), y dos entradas de control: E (habilitación del módulo)y R/W' (orden de lectura o escritura).

2 x n RAM

kA k-1

A 1A 0

...

...

R/W'

E

DIn-1 DI1DI0

DOn-1 1 0

...

DODO

Figura 7.33 Esquema genérico de una memoria RAM

Page 29: diseño digital 7

Diseño de circuitos secuenciales síncronos 285________________________________________________________________________________

Si suponemos que la memoria RAM de la figura 7.33 está compuesta por 2k registros de n bits,podemos comprender fácilmente su comportamiento. Para E=1 es posible efectuar una operación delectura y/o escritura, mientras que para E=0 la memoria se limita a almacenar la informaciónintroducida anteriormente. Por otro lado, cuando el módulo es activo, la entrada R/W' controla elmodo de operación, en lectura o escritura. Si R/W'=0 se introduce en el registro señalado por ladirección A (nótese que hay tantos registros como direcciones distintas) el vector (palabra) presenteen las entradas DI, mientras que para R/W'=1 se vuelca el contenido del registro señalado por A en lassalidas DO. La figura 7.34 muestra, a nivel de bloques, un estructura interna habitual para unamemoria RAM.

A k-1

A 1A 0

...

2 x n células

de memoria

k

...

R/W'

DIn-1 DI1DI0

DOn-1 1 0

...

DODO

E

De

cod

ifica

do

r b

ina

rio

2 -1

1

0

...

k

Registro de palabra

...

OE

Figura 7.34 Esquema de bloques de una memoria RAM

Nótese que una memoria RAM es, en principio, un sistema secuencial asíncrono: su funcionamientono está gobernado por ningún reloj externo. Además, en la práctica suele ser conveniente que los nbits resultado de una operación de lectura estén disponibles en determinados instantes de tiempo (ellose debe a que normalmente estos bits se introducen en una línea de comunicación en paralelo -BUS-compartida por diferentes sistemas en diferentes instantes de tiempo); por ello se incluye en elesquema de la figura 7.34 un registro de palabra: un registro tipo latch (cerrojo, nombre dadofrecuentemente a un registro sincronizado por nivel) con salidas tri-state, de manera que para OE=0las salidas DO quedan en alta impedancia (dejando la memoria aislada), y que para OE=1 la palabraleída se transmite al BUS. Este registro con salida tristate permite usar las mismas conexiones físicascon el exterior del módulo para las entradas y salidas de datos. La señal OE puede ser una señal decontrol accesible desde el exterior, o bien ser activa durante toda la operación de lectura, esto es,OE=E.R/W'.

Ejemplo 7.9

El presente ejemplo ilustra la posibilidad de encadenar memorias RAM con el objetivo de obtenermemorias de mayor capacidad. Concretamente, vamos a obtener una memoria de 1Mx4 bits apartir de los módulos RAM de 256kx1 bits (ver figura 7.35).

Page 30: diseño digital 7

286 Diseño digital________________________________________________________________________________

2 x 4 RAM

20A 19

A 1A 0

...

...R/W'

E

DI3 DI1 DI0

DO3 1 0

...

DODO

a)

2 x 1 RAM

18A 17

A 1A 0

...

R/W'

E

DI

DO

b)

Figura 7.35 Elementos del ejemplo 7.9

La solución se muestra en la figura 7.36. Nótese que para totalizar la capacidad requerida esnecesario utilizar 16 módulos de 256kx1, que se han dispuesto en cuatro columnas (tantas comobits de salida) y cuatro filas, de modo que los dos bits más significativos de la dirección (A19 yA18) son fijos para cada fila. El resto de la dirección (A17, ..,A0), así como la señal R/W', llegapor igual a todos los módulos. Las salidas de cada bloque pueden ser conectadas entre sí siaseguramos que nunca será activa más de una a la vez, y se trata de salidas tristate.

DO3 1 0DODO

DI3 DI1 DI0

R/W'

E

De

cod

ifica

do

r

1

0

A 19

A 17

A 1A

0

...

A 18 3

0

2

12 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2DO

DI2

Figura 7.36 Ejemplo de encadenamiento de memorias

_________________________________________________________________________________

Page 31: diseño digital 7

Diseño de circuitos secuenciales síncronos 287________________________________________________________________________________

Ejercicio 7.9

Modifique la estructura de encadenamiento del ejemplo anterior para el caso en que las salidas dedatos de las memorias no sean del tipo tristate, añadiendo la lógica necesaria.

_________________________________________________________________________________

7.4.2 Memorias MOS dinámicas y estáticas

La sugerencia anterior de que en una memoria RAM cada palabra se almacena en un registro esfuncionalmente correcta, pero irreal con respecto a su implementación. Si pensamos que un registroutiliza un biestable para almacenar cada bit se llega a la conclusión de que las memorias RAM estánformadas por matrices de biestables; ahora bien, esto choca frontalmente con un requisito típico deeste tipo de módulos: maximizar la capacidad por unidad de superficie. Esto en la práctica ha llevadoal uso de estructuras de memorización de un bit de tamaño mucho menor que un biestable.

En función del tipo de memorizador unitario (o célula de memoria) existen dos tipos de memoriasRAM, las estáticas (SRAM) y las dinámicas (DRAM). Las memorias SRAM utilizan células quepermiten almacenar por un tiempo indefinido la información grabada. Por el contrario, las DRAM soncapaces de almacenar la información solamente durante un tiempo limitado.

Como veremos enseguida, una célula de memoria SRAM utiliza un mínimo de 6 transistores MOSpara almacenar un bit de información, número que puede reducirse hasta 2 o 3 en el caso de unamemoria DRAM. Por tanto es aparente que las memorias dinámicas permiten una mayor capacidad aigual número de transistores.

En la figura 7.37 se muestra el esquema básico, a nivel circuital y físico, de una célula de memoriadinámica: una capacidad de puerta más un transistor de paso que regula su carga/descarga. Lainformación se almacena en forma de carga introducida en la capacidad de puerta, carga que semantiene aislada (memorización) cuando se pone en corte el transistor de paso.

p

n

p

Vx

IS

n n

...

Vx

Cg

...

...

Vc

Vc

+ + +n+

...

Figura 7.37 Célula dinámica de memorización

Sin embargo, existen caminos de fuga de la carga almacenada: nótese que existe una unión PNpolarizada en inversa entre el nodo Vx y el substrato del transistor de paso (conectado a masa); luego

Page 32: diseño digital 7

288 Diseño digital________________________________________________________________________________

si se memoriza un "1" (Vx=VDD) la carga almacenada en Cg se irá perdiendo a través de la corrienteinversa de saturación, con lo que la tensión Vx disminuirá progresivamente. Por lo tanto, si queremosmantener la información un tiempo indefinido deberemos regrabarla periódicamente, es decir, prevermecanismos de refresco.

Ejemplo 7.10

Si en el circuito de la figura 7.37 se tiene Cg=1pF, VTN=1V y VDD=5V, hágase una estimacióndel tiempo que tarda en descargarse totalmente la capacidad si la corriente inversa de saturaciónde la unión drenador-substrato del transistor de paso es IS=1nA.

La carga almacenada en la capacidad Cg es

Q= Cg ⋅ VDD − VTN( )=10−12F ⋅ 4V = 4⋅10−12C

En consecuencia, el tiempo que a razón de 10-9C/s tardará Cg en descargarse es

t =4⋅10−12C

10−9 A= 4 ms

_________________________________________________________________________________

Las células estáticas de memorización se basan en la estructura elemental mostrada en la figura 7.38.El almacenamiento de la información se realiza utilizando las capacidades de entrada de dosinversores realimentados (la salida de cada uno de ellos conectada a la entrada del otro) a través de uninterruptor. Un primer análisis de la estructura revela que para el valor de la señal de control C1=1 setiene, tras la correspondiente carga/descarga de las capacidades por acción de los inversores, O'=I(fase de grabado o carga de la información). Asimismo, para C1=0 se cierra el bucle derealimentación y se tiene O'=x, siendo "x" el valor cargado en la capacidad de entrada del primerinversor (fase de memorización). Por otro lado, la señal de control C2 controla la lectura del valoralmacenado en la célula, O=O' (fase de lectura).

C1

C1

x x OI

C2

O'

Figura 7.38 Célula estática de memorización

Page 33: diseño digital 7

Diseño de circuitos secuenciales síncronos 289________________________________________________________________________________

Podemos notar además que la carga almacenada en las dos capacidades será estable, puesto que lostransistores de los inversores tienden a compensar las posibles fugas. A modo de ejemplo la figura7.39 muestra el caso concreto de una realización CMOS en fase de memorización de un "1": eltransistor NMOS del primer inversor conduce y asegura la descarga de CI1, mientras que el transistorPMOS del segundo inversor también conduce y asegura la estabilidad de la carga almacenada en CI2.

0 VDDOUT

CI2CI1

Figura 7.39 Célula de memorización estática CMOS almacenando un "1"

Ejemplo 7.11

En la figura 7.40 se muestra el esquema de una célula de memoria RAM dinámica realizada con4 transistores nMOS.

g3 g4C

T2T1

T4T3

B B'

SEL

C

Figura 7.40 Célula de memoria dinámica de 4 transistores

Procedimiento de escritura: Para escribir un "1", la línea B debe ponerse a "1" (VDD) y B' a "0".En el caso contrario (escribir un "0"), debe ponerse B=0 y B'=1. Para centrar ideas veamos elcaso concreto de escribir un "1".

Una vez se tiene B=1 y B'=0 se tiene que habilitar, es decir, poner en conducción, los transistoresde paso T1 y T2. De esta forma los valores de tensión en B y B' se propagarán hasta cargar lascapacidades de puerta de T3 y T4; es decir, habrá un "1" en Cg4 y un "0" en Cg3. Por último hay

Page 34: diseño digital 7

290 Diseño digital________________________________________________________________________________

que poner en corte los transistores T1 y T2, con ello la información queda almacenada en formade carga en Cg3 y Cg4, o si se prefiere, como valores de tensión en las puertas de T3 y T4.

Procedimiento de lectura: En primer lugar deben precargarse a "1" las dos líneas B y B'. Acontinuación se ponen en conducción los transistores T1 y T2. En función de cuál de los dostransistores T3 o T4 tenga un "1" en su puerta, se descargará una de las dos líneas.

Para fijar ideas, supongamos que se ha almacenado en la célula un "1" (por tanto, la puerta de T4está a "1" y la de T3 a "0"). Al conducir simultáneamente los transistores T1 y T4 la linea B' sedescargará mientras que la linea B se mantendrá a "1". A continuación se vuelve a aislar la célulacortando los transistores de paso T1 y T2. En función de los valores finales de tensión en la líneasB y B' sabremos si hemos leído un "1" (caso de nuestro ejemplo) o un "0" (caso opuesto).

_________________________________________________________________________________

Ejercicio 7.9

La figura 7.41 muestra una célula de memoria RAM estática de 6 transistores. El funcionamientode dicha célula es, en líneas generales, análogo al descrito para la célula dinámica de la figura7.41. La única diferencia estriba en que, en este caso, el mantenimiento de la información estágarantizado por los dos inversores. Analice detalladamente sus procedimientos de carga ydescarga. ¿Es necesaria una precarga de las líneas B y B' al hacer una lectura?

g2 C

VDD

T2T1

B B'

SEL

C g1

Figura 7.41 Célula de memoria estática de 6 transistores

_________________________________________________________________________________

Cuando, como en el caso de las células de memoria presentadas, la transmisión de la informaciónimplica cargar y/o descargar capacidades, existe un factor que puede afectar decisivamente sufuncionamiento y que debe tenerse en cuenta: la compartición de carga.

Page 35: diseño digital 7

Diseño de circuitos secuenciales síncronos 291________________________________________________________________________________

Para ver en qué consiste consideremos la estructura de la figura 7.42, donde tenemos una pistaconductora con una capacidad Ca respecto del sustrato puesta a tensión Va y aislada del resto delcircuito. En un cierto momento conectamos la pista a un circuito (por ejemplo, con la intención de"leer" la tensión Va), que modelamos como una capacidad Cb puesta inicialmente a tensión Vb.

CbCa

Va Vb

Figura 7.42 Fenómeno de la compartición de carga

Es evidente que la carga existente en la estructura después de la conexión es la misma quealmacenaban las capacidades Ca y Cb cuando inicialmente estaban aisladas, es decir

Qa = CaVa Qb = CbVb

También es evidente que después de la conexión tenemos una estructura formada por dos capacidadesen paralelo, cuya capacidad y tensión globales serán

CT = Ca + Cb

Va final = QT / CT

⇒ Va final =CaVa + CbVb

Ca + Cb

La conclusión a extraer de este resultado es obvia. Si queremos que la lectura no afecte al dato(tensión) almacenado en Ca, hay que cumplir dos condiciones: CaVa<<CbVb y Ca<<Cb.

Nótese que este fenómeno afecta al funcionamiento de todas las células de memoria, dinámicas yestáticas, presentadas, donde la lectura o escritura de un dato puede verse en términos de traslado decarga de unas capacidades a otras.

7.5 Cuestiones y problemas

Cuestiones

C7.1 Resuelva el ejercicio 7.2 usando distintas codificaciones para los estados. Compare lassoluciones encontradas.

Page 36: diseño digital 7

292 Diseño digital________________________________________________________________________________

C7.2 Una implementación para un sistema secuencial, llamada One-Hot, consiste en usarcodificaciones "1 entre n" (código redundante) para sistemas con n estados internos. Encuentre unaimplementación One-Hot para el ejercicio 7.2, con biestables de tipo D.

C7.3 Usando las tablas intermedias de resultados de la cuestión anterior, escriba las ecuaciones querelacionan el estado futuro de cada biestable con las entradas y el estado, esto es,Qi

+ = f (Q0,...,Qn,x0,...,xm) . Intente relacionar la ecuación de los estados futuros con las ramas quellegan a cada estado en el diagrama de estados. ¿Puede proponer un método para encontrar unaimplementación One-Hot directamente a partir del diagrama de estados?

C7.4 Considere el funcionamiento del siguiente sistema, cuya misión es encontrar la diferencia entredos valores consecutivos que toma una variable (sistema de interés a la hora de compactar lainformación en señales que varian lentamente con respecto al reloj).

Registro

Pa

rale

lo 1

n

n

Registro

Pa

rale

lo 2

n

X

Clk

du

lo

resta

do

r

²Xm

Analice su funcionamiento en el caso de que el reloj que controla el registro 2 estuvieraapreciablemente retrasado (retraso comparable o superior al tiempo de respuesta de los registros)con respecto al que controla el registro 1. Compare este funcionamiento con el ideal.

C7.5 Generalice, a partir de la respuesta de la cuestión anterior, el tipo de problemas que puedenprovocar retardos en el reloj dentro de sistemas con diversos bloques sincronizados.

Blo

qu

e 1

i jX

Clk

Blo

qu

e 2

kZ

C7.6 Disponiendo de un contador hexadecimal, sin posibilidad de carga en paralelo pero con un resetasíncrono, proponga una realización de un contador BCD, y compárela a la del ejemplo 7.7.

Page 37: diseño digital 7

Diseño de circuitos secuenciales síncronos 293________________________________________________________________________________

C7.7 Discuta el interés del esquema de encadenamiento de contadores propuesto en la siguientefigura, y compárelo con el de la figura 7.26.

Contador módulo 16

Q3

Q2

Q1

Q0

Contador módulo 16

Q3

Q2

Q1

Q0

Clk

Q3

Q2

Q1

Q0

Q7

Q6

Q5

Q4

C7.8 Modifique la implementación propuesta en el ejercicio 7.6 para para obtener un contador BCDexceso 3 con posibilidad de carga en paralelo síncrona.

C7.9 Considere los dos esquemas de decodificación de la figura para una RAM de 1kbit (1024 bits).

10231022

3210

De

cod

ificad

or

A 9A 8

A 0

Celdas

E

a) Decodificación simple b) Decodificación doble

3130

3210

De

cod

ificad

or

A 4A 3

A 0

Celdas

31210

Decodificador

A 8A 9 A 5

E

Compárelos en términos de los transitores necesarios para hacer una implementación CMOS delos decodificadores. Si la complejidad añadida a cada célula unitaria de memoria en el esquemade decodificación doble, o coincidente, respecto a la simple es de dos transistores, ¿cuál de elloses más ventajoso?

C7.10 ¿Cómo afectaría al resultado del ejemplo 7.10 que la puerta de transimisión que controla lacarga o descarga de la capacidad fuera CMOS, en vez de NMOS? ¿Y si se tratara un transistor depaso PMOS?

Problemas

P7.1 Analice la red secuencial de la figura. Obtenga su diagrama de estados. Obtenga unaimplementación alternativa con biestables de tipo D y puertas lógicas elementales.

Page 38: diseño digital 7

294 Diseño digital________________________________________________________________________________

J Q

Q

01

Mu

x

23

01

y

01

Mu

x

23

01

y

J Q

Q

x

z

0

1Q

0

y

x

y

xy

x

Q0

Q0

Q1

Q1

Q1 Clk

K

K

012

De

c

3

0

1

P7.2 Considere el siguiente sistema secuencial síncrono. Analícelo, y dé, si es posible, unadescripción de alto nivel. Discuta la necesidad de una entrada de reset para dicho sistema.

xD

Q

DQ

DQ

Y

X0

X1

Y0

Y1

Mu

ltiple

xor

Dual

X

SA0

A1

B0

B1

Co

mp

ara

do

r

qa qa

qa

qb

qb

qb

x1

x1

0

x0

z0

z1

Clk

qcA>B

P7.3 Diseñe un sistema secuencial síncrono con la siguiente tabla de transición de estados.

s x=0 x=1A B,a F,bB C,a A,cC D,a B,bD E,b C,c s+,zE F,b D,bF G,c E,c

Page 39: diseño digital 7

Diseño de circuitos secuenciales síncronos 295________________________________________________________________________________

P7.4 Diseñe un contador/descontador de 3 bits encadenable. Esto es, con salida de fin de cuenta TC yentrada de habilitación CE. Considere una entrada adicional U / D que indique si el contador avanza,U / D =1, o retrocede, U / D =0 cuando CE está activa. Nótese que la salida TC debe activarsetambién cuando al descontar se pasa del estado "000" al "111".

P7.5 El siguiente circuito es llamado contador de Moebius o de doble secuencia, realizado, en estecaso, con un registro de desplazamiento. Obtenga su diagrama de estados. Proponga unaimplementación con menos biestables del mismo sistema. La señal CLR del registro es asíncrona.

SHCLR

CERESET Clk

Z3 Z2 Z1 Z0

P7.6 Implemente un contador en anillo de 8 estados. Este tipo de contador tiene 8 salidas, de lascuales sólo una es activa en cada estado. Proponga una realización aplicando el método de diseño desistemas secuenciales síncronos, otra, a partir de registros de desplazamiento con capacidad de cargaen paralelo, y aun una tercera con un contador binario y un decodificador.

P7.7 Analice el funcionamiento del siguiente circuito asimilándolo al de algún bloque de lospresentados en este capítulo, en el caso en que las señales CLK1 y CLK2 nunca son activas a la vez,es decir, CLK1.CLK2=0. ¿Con qué reloj observamos el sincronismo a la salida?

IN OUT

CLK1CLK2CLK1 CLK2

Proponga, con la misma filosofia de registro dinámico con puertas de transmisión e inversores ydos fases de reloj, una realización de un registro de desplazamiento de 4 bits con capacidad decarga en paralelo.

Page 40: diseño digital 7

296 Diseño digital________________________________________________________________________________

P7.8 Usando un contador como el descrito en la figura 7.24, aquí repetida, consiga un módulocontador con las siguientes secuencias:

I0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LD

a) Contador módulo 13

b) Contador entre 4 y 11

c) Secuencia de salidas ...,0,1,2,3,4,5,8,9,10,11,14,15,0,...

P7.9 Utilizando un reloj de período 1 segundo, un contador binario de 5 bits con capacidad de cargaen paralelo y la lógica que sea necesaria, implemente un sistema secuencial síncrono para unmarcador de treinta segundos de un partido de baloncesto. El sistema debe tener 2 entradas: laprimera, R, debe inicializar el contador a 30 independientemente del valor de la otra; la segunda, D,debe permitir al contador descontar, o no. Así, si D=1 el marcador quedará parado, mientras que siD=0 el marcador deberá descontar segundos. El sistema tiene una sola salida que activa una bocinacuando el marcador llega a cero. Nota: Un contador con salidas activas bajas se comporta como undescontador.

P7.10 Considere el sistema secuencial de la figura siguiente, donde las señales CE del contador, y LDdel contador y del registro son síncronas y tienen su significado habitual, es decir, habilitación paracontar y carga en paralelo.

RAM 256x4A

dd

ress

Din

Dout

R/W

4-bit COUNTER

In

OutCELD

LD1 LD2 CNT

W

M1

CLR

P/P

R

EG

IST

ER

LD

CLKX

CLK

z

8 8 4

4

RESET

Page 41: diseño digital 7

Diseño de circuitos secuenciales síncronos 297________________________________________________________________________________

a) Diseñe el módulo de control M1 para que sus salidas sigan el cronograma mostrado acontinuación, usando el método propuesto en este capítulo.

W

LD2

CLK

LD1

CNT

b) Explique el funcionamiento del sistema, analizando cómo varían los contenidos de cadaposición de memoria al cabo de un ciclo completo del módulo M1. ¿Qué indica la salida z?Suponga que la entrada x varía mucho más lentamente que el reloj y dé una descripción de altonivel del sistema.

P7.11 Considere el circuito de la figura siguiente, donde la parte encerrada por la línea de puntoscorresponde a un único circuito integrado. El contenido de la memoria ROM está indicado en la tablade verdad incluida más abajo.

ROM 16x2a1

a2

a3y1

y0a0

q1

q2

q0

12

0

1

2

0Reg

istr

o

LD

1

x0

xCLK

a3 a2 a1 a0 y1 y0 a3 a2 a1 a0 y1 y0

0 0 0 0 0 0 1 0 0 0 1 00 0 0 1 0 1 1 0 0 1 1 10 0 1 0 0 0 1 0 1 0 1 00 0 1 1 0 0 1 0 1 1 1 00 1 0 0 0 1 1 1 0 0 1 10 1 0 1 1 0 1 1 0 1 0 00 1 1 0 0 1 1 1 1 0 1 10 1 1 1 0 1 1 1 1 1 1 1

Page 42: diseño digital 7

298 Diseño digital________________________________________________________________________________

Se pide:

a) Analice el funcionamiento del circuito, obteniendo su diagrama de estados, si se hace lasuposición de que la entrada x1 está fija en el valor "1".

b) ¿Cómo se altera el funcionamiento del circuito si x1 puede variar? Obtenga el diagramade estados para esta situación modificando el obtenido en el apartado anterior.

c) Debido a un error en la fabricación del circuito integrado existe un cortocircuitopermanente entre la entrada y la salida del inversor, de forma que la señal x0 queda conectadadirectamente a la entrada de menos peso del registro. Esta anomalía provoca un funcionamientoincorrecto del circuito. Para corregir este defecto se sugiere insertar una red combinacional en laslíneas que van del registro a la ROM (que son externas al cicuito integrado). ¿Es viable estasolución? Si la respuesta es afirmativa, diseñe el circuito corrector utilizando el menor númeroposible de puertas NOR.

P7.12 El siguiente layout corresponde a una célula de memoria RAM. Determine si se trata de unacélula dinámica o estática. La línea de datos es la pista llamada BIT que, en el caso de una lectura,deberemos precargar a VDD; mientras que en una escritura, forzamos en ella el valor a memorizar.Explique su funcionamiento, sabiendo que las señales WR y RD nunca pueden estar activas en elmismo instante.

BIT

RDWR

VSS

Page 43: diseño digital 7

Diseño de circuitos secuenciales síncronos 299________________________________________________________________________________

P7.13 Pretendemos estudiar los problemas asociados al fenómeno de compartición de carga en elcircuito de la figura.

IN OUT

T3

B

A

Φ

Φ

CO

CA

C B

VDD

Φ

IN

t

t

t 1 t 2 t 3

VDD

VDD

Se pide:

a) ¿Qué función lógica realiza el circuito? Suponiendo un funcionamiento ideal, es decir sinefectos resistivos, capacitivos y/o inductivos, obtenga el cronograma de la señal de salida OUTcorrespondiente a la evolución de las entradas dada en la figura. (Nota): Suponga que el valorinicial de OUT es 0 V.

b) Si ahora consideramos que las pistas de conexión son no ideales y que tienen lascapacidades indicadas en la figura (para simplificar, tómese CA=CB=CO), calcule el valor de latensión en los nodos A, B y OUT una vez alcanzado el régimen permanente dentro del intervalo(t1,t2). Repita el cálculo para el intervalo (t2,t3).

c) Repita el cálculo del apartado anterior para el intervalo (t3,∞ ). Compare este resultadocon el obtenido en el apartado (a). Proponga algún cambio en el diseño del circuito que elimine,si es posible, las diferencias con el caso ideal.

d) Suponga que la salida OUT se conecta a la entrada de otra puerta con VIH=0,7xVDD.¿Cuál es el valor máximo de capacidad de entrada de dicha puerta que puede tolerarse sin quehaya problemas de niveles de tensión en el cronograma estudiado?