Issuu on Google+

Y SISTEMAS DIGITALES Carmen Baena • Manuel Jesús Bellido • Alberto Jesús Molina María del Pilar Parra • Manuel Valencia

ID

1 4 IC6 7448

A B C D

1

1

UA

o1 Q~

Q Q

2

9 a$ 43 n4 n4

IC

7

' .

v z~

n,

cb4 oa

R2 10K

I1

B .R, 0 ' 9 9 (

1

A B

2

1

A

7

2

1 1

UNIVERSIDADE DE VIGO BIBLIOTECA _ .. ,

1111111111 III III I II II

74

3V00072350 1 F

vcc


C-

Áq7

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES Carmen Baena Oliva Manuel Jesús Bellido Díaz Alberto Jesús Molina Cantero María del Pilar Parra Fernández Manuel Valencia Barrero Departamento de Tecnología Electrónica Universidad de Sevilla

McGraw-Hill MADRID • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA • MÉXICO NUEVA YORK • PANAMÁ • SAN JUAN • SANTAFÉ DE BOGOTÁ • SANTIAGO • SÁO PAULO AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL • NUEVA DELHI • PARÍS SAN FRANCISCO • SIDNEY • SINGAPUR • ST . LOUIS • TOKIO • TORONTO


TABLA DE CONTENIDOS

PRÓLOGO

vi¡

1.

REPRESENTACIÓN Y CODIFICACIÓN BINARIA 1

2.

ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN 19

3.

ANÁLISIS DE CIRCUITOS COMBINACIONALES 35

4.

DISEÑO DE CIRCUITOS COMBINACIONALES 51

5.

SUBSISTEMAS COMBINACIONALES

6.

CIRCUITOS ARITMÉTICOS

7.

ANÁLISIS DE CIRCUITOS SECUENCIALES 169

8.

DISEÑO DE CIRCUITOS SECUENCIALES 197

9.

SUBSISTEMAS SECUENCIALES

229

10 .

MEMORIAS SEMICONDUCTORAS

263

11 .

INTRODUCCIÓN A LOS SISTEMAS DIGITALES 291

12 .

DISEÑO DE UNIDADES DE CONTROL

325

13

MISCELÁNEA

359

BIBLIOGRAFÍA

391

89 141

v


PRÓLOGO

Este ejemplar es un libro de problemas resueltos en el campo del Diseño Lógico . Como tal libro de problemas ha sido concebido con la finalidad de enseñar cómo se aplican los conceptos y herramientas a casos concretos . Esto significa que nuestra atención no se centra en el desarrollo de la doctrina teórica, sino en tratar de explicar cómo interpretar enunciados de problemas más o menos bien especificados y, empleando los conocimientos teóricos adquiridos por otras vías, resolver ese problema en particular y no otro . Como se ve, nuestros objetivos primarios son potenciar las capacidades de aplicación de la teoría y la de resolución práctica de problemas . En cuanto a la disciplina, el término Diseño Lógico alude a materias tan bien conocidas como son los Circuitos y Sistemas Digitales o la Teoría de Conmutación . En ella se incluyen : 1) los fundamentos matemáticos usuales (álgebra de Boole, representaciones binarias de números y su aritmética, codificación binaria) ; 2) la presentación, análisis y diseño de circuitos a nivel de conmutación, tanto combinacionales como secuenciales ; y 3) la descripción y realización de sistemas digitales a nivel de transferencias entre registros (RT), organizando el sistema como una unidad de procesado de datos y otra de control . Aunque claramente fuera del contexto de este libro, las materias fronteras son, en el nivel inferior, el tratamiento eléctrico de las puertas lógicas y, en el nivel superior, la arquitectura de computadores, así como los sistemas multiprocesadores . La proliferación de aplicaciones y el considerable aumento de la complejidad experimentada por los circuitos digitales en los últimos años hacen inviable el cubrimiento completo de esta materia . Nuestro propósito ha sido desarrollar un conjunto de problemas que den soporte y fundamenten adecuadamente a todos los circuitos y técnicas de Diseño Lógico . Nuestro libro está pensado para un primer curso de Diseño Lógico, con aplicación en diversos estudios universitarios tales como Informática (fundamentos del hardware) e Ingeniería Electrónica (realización de sistemas digitales) . También es útil en algunos campos científicos, en concreto, los relacionados con la Teoría de Conmutación, la Teoría de Autómatas y la Aritmética del Computador . Además, al estar fuertemente enfocado a la resolución de problemas, este texto también puede servir a profesionales que deseen realizar una puesta al día

vi¡


viii

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

rápida y eficiente en las realizaciones de circuitos y de sistemas digitales . El uso de este libro no requiere conocimientos específicos previos ni en Electrónica, ni en Computadores, ni en Matemáticas avanzadas . Sin embargo, al ser un libro de problemas, el lector debe conocer a nivel teórico los conceptos, principios y técnicas del diseño digital . En la actualidad hay disponibles suficientes libros que cubren satisfactoriamente los aspectos teóricos de esta materia (véanse las referencias que citamos) . A ellos deberá acceder el lector para conocer los fundamentos teóricos de este libro de problemas . No obstante, con el doble fin de resumir los conceptos más importantes y de presentar la terminología que utilizamos, en cada Capítulo hay una pequeña presentación teórica . Además, en los problemas que introducen materias, durante su resolución se detallan los nuevos aspectos teóricos involucrados . En la realización del libro hemos huido de los ejercicios puramente repetitivos, de los excesivamente simples y de los de escasa entidad . Esto es debido a que, en nuestra experiencia, es claramente preferible primar el nivel de profundidad de los problemas sobre la cantidad de éstos . Por otra parte y desde un punto de vista más práctico, hemos establecido dos tipos de ejercicios . En primer lugar hemos seleccionado un amplio conjunto de problemas para resolverlos en detalle . Sobre ellos el lector aprenderá la metodología de resolución . Hemos intentado que cada aspecto importante de la materia esté cubierto por problemas bien desarrollados . Posteriormente se presenta un segundo conjunto de problemas de los que sólo se ofrece la solución final . Con ello se pretende que el lector se aventure en la resolución de éstos y simplemente pueda comprobar la corrección de sus resultados . La organización elegida obedece a un cubrimiento de la materia que va de abajo a arriba (de forma similar a la metodología "bottom-up"), avanzando desde lo más simple a lo más complejo . En gran parte el material es autocontenido por lo que no se necesita ningún prerrequisito . Básicamente la materia contenida en este libro de problemas está dividida en tres grandes bloques más un Capítulo final . El primero de los bloques (Capítulos 1 al 6) corresponde a circuitos combinacionales, el segundo (Capítulos 7 al 10) a circuitos secuenciales y el último (Capítulos 11 y 12), donde se aumenta significativamente la complejidad, a los sistemas digitales . Dentro de cada bloque hemos ordenado los problemas procurando ordenarlos para que el lector pueda apoyarse en los ya realizados a la hora de abordar los que vengan a continuación . Así, cada bloque consta de varios Capítulos, cada uno de los cuales contiene problemas de una materia concreta . Los problemas de estos Capítulos han sido desarrollados procurando que el lector vaya aprendiendo a resolverlos dentro de esa materia . Por el contrario, el último Capítulo está ideado con la finalidad de que el lector evalúe su nivel de conocimientos . Para ello, por una parte, los problemas no se han ordenado según la materia, de forma que el lector no los sitúe

a priori en un contexto predeterminado ; por otra, se incluyen algunos que afectan

a más de una unidad temática ; y, por último, se presentan todos los enunciados juntos, cada problema separado de su solución, con el fin de que el lector tenga que ir a buscar explícitamente cada solución .


PRÓLOGO

ix

Concretando, la organización de este libro de problemas es como sigue : Capítulo 1 .- Aplicación de los conceptos básicos como son los sistemas de numeración y la codificación binaria . Estos problemas están orientados a practicar con las representaciones no decimales de magnitudes y las conversiones entre las distintas bases, así como la de números con signo y fraccionarios incluyendo tanto el punto fijo como el punto flotante . También se tratan los principales códigos binarios y decimales . Capítulo 2 .- Desarrollo de los problemas relacionados con el álgebra de Boole y con el manejo de las funciones booleanas incluyendo demostraciones de teoremas e identidades, y las diversas representaciones de funciones de n variables (tablas de verdad, mapas binarios y de Karnaugh) y los teoremas para dichas funciones que dan lugar a las expresiones canónicas y estándares . Capítulo 3 .- Análisis de circuitos combinacionales, tanto a nivel puramente lógico como temporal, incluyendo técnicas específicas para el análisis de circuitos con sólo puertas NAND o NOR . Capítulo 4.- Diseño de funciones . En él se aplican técnicas de reducción para obtener las expresiones mínimas en suma de productos o producto de sumas (basadas en mapas de Karnaugh y en los métodos de Quine-McCluskey y de Petrick) . Además se presta una especial atención a la obtención de los O's y los l's de una función cuando ésta se da a través de una descripción verbal de su comportamiento . Capítulo 5.- Presentación de los subsistemas combinacionales de propósito específico, en particular los que convierten códigos binarios (decodificadores, codificadores y convertidores de códigos) y los comparadores . También se incluyen los subsistemas de propósito general como son los multiplexores y los subsistemas programables (las memorias de sólo lectura, los PLA's y los PAL's) . Los subsistemas se estudian desde tres perspectivas : cómo se construyen a nivel de puertas, cómo se analizan circuitos que los contienen y cómo se diseñan funciones utilizándolos como componentes de la realización . Capítulo 6 .- Desarrollo de los problemas relacionados con la aritmética binaria . En ellos se muestran tanto las operaciones aritméticas (suma, resta, multiplicación . . .) como los circuitos combinacionales que las realizan (sumadores, sumadores-restadores y unidades aritmético-lógicas) . Capítulo 7 .- Presentación del biestable tanto a nivel lógico (RS, JK, D y T) como a nivel temporal (sin reloj, disparados por nivel, tipo Master-Slave y disparados por flanco) . También se aborda el análisis de circuitos secuenciales . Se desarrollan tanto los circuitos síncronos o con una única señal de reloj, como los asíncronos, incluyendo en éstos los que operan mediante entradas asíncronas y los circuitos que poseen más de una señal de reloj .


x

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Capítulo 8 .- Diseño de circuitos secuenciales síncronos . Se muestran los distintos pasos del proceso habitual de diseño, sistemático en su mayor parte, y que consigue como resultado un circuito de coste reducido u óptimo . Algunos de los problemas van encaminados a practicar con determinados pasos del proceso mientras que otros muestran el proceso globalmente . Capítulo 9 .- Desarrollo de los problemas de análisis de circuitos secuenciales construidos con contadores y registros, el diseño interno de estos dispositivos para que posean operaciones específicas, su realización mediante la asociación de subsistemas semejantes de menor tamaño y el diseño en general de funciones secuenciales . Capítulo 10 .- Problemas de memorias semiconductoras . Básicamente están dirigidos al uso de estas memorias y a la formación de memorias "principales" por la asociación de varios de estos dispositivos (realización de mapas de memorias) . Capítulo 11 .- Introducción al nivel de transferencia entre registros (nivel RT) y al diseño de sistemas digitales . En particular, se tratan las formas de descripción (notación RT, cartas ASM y lenguaje HDL), conectándolas con los bloques de circuitos funcionales, básicamente registros . También se incluyen problemas sobre las técnicas de interconexión entre registros mediante buses y la realización de unidades de datos simples cuando se conoce su operación a nivel RT . Capítulo 12 .- Diseño de sistemas digitales completos, esto es, la unidad de datos y la de control . En los primeros problemas se parte de una unidad de procesado de datos conocida y hay que desarrollar una unidad de control adecuada . Finalmente se afrontan problemas de diseño completo de sistemas digitales . Capítulo 13 .- Presentación de problemas de las materias ya tratadas .


Capítulo 1 REPRESENTACIÓN Y CODIFICACIÓN BINARIA

Los circuitos digitales operan con dos niveles de señal, la mayoría de las veces una tensión baja y otra alta . Desde el punto de vista matemático decimos que operan con señales binarias y los dos niveles se representan mediante 0 y 1 . Toda la información que ha de procesar un sistema digital ha de expresarse mediante combinaciones de esos dos valores . En consecuencia, hay que describir cómo se representan los entes mediante 0 y 1 (codificación binaria) y, más específicamente, por ser esencial en el cálculo, cómo se representan los números . REPRESENTACIÓN POSICIONAL DE MAGNITUDES Un sistema numérico se caracteriza por sus símbolos básicos ; estos son llamados dígitos, cada uno de los cuales representa una determinada cantidad de unidades . A su vez, cada cantidad puede expresarse mediante una secuencia de tales dígitos . En algunos sistemas la posición ocupada por cada uno de los dígitos dentro de la secuencia está asociada a un valor determinado (peso) . Decimos entonces que se trata de un sistema de representación posicional . Un sistema numérico de base r es un sistema posicional de representación donde los pesos de los dígitos son potencias de r. Así, una magnitud M puede representarse en la base r de la siguiente forma : M = dn-1 d n_2 . . . d1 do . d_1 d-2 ... d_m (r n-1 siendo d; un dígito de dicha base y cumpliéndose que d i e {0, 1, . . ., r-1} y M = d . r1 . j -m Para realizar cambios entre distintas bases existen diversos métodos . En este Capítulo se usan fundamentalmente los siguientes : n -1 - Para cambiar de base r a base 10, se aplica la fórmula : M = Y, r• .

d.

j= -m - Para cambiar de base 10 a base r, se utiliza el método de las divisiones sucesivas para obtener la parte entera y el método de las multiplicaciones sucesivas para obtener la parte fraccionaria .

1


2

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

- Para cambiar de una base arbitraria rl a otra r 2 , se pasa en primer lugar de rl a 10 y después de 10 a r2 . - Para cambiar entre las bases 2, 8 y 16 (potencias de 2) se utiliza un método de agrupación de bits .

REPRESENTACIÓN DE NÚMEROS CON SIGNO De entre las notaciones existentes para expresar números con signo nos hemos centrado en las notaciones signo-magnitud, complemento a 1 y complemento a 2 . En algunos aspectos que detallaremos a continuación las tres notaciones son similares . Se designa un bit especial denominado bit de signo (bs ) cuyo valor es 0 en números positivos y 1 en números negativos . En números positivos los demás bits representan la magnitud : A = ° n-1 a n _2 . . . al a0 . a_ 1 a_2 . . . a- m/ l bit de signo

T magnitud

La forma de representar los números negativos es distinta para las tres notaciones : - En la notación signo magnitud b s se hace igual a 1 y el resto de bits representan de nuevo la magnitud :

- A = 1 a 1 a n_2 . . . al a0 . a-1 a-2 . . .a_T 1

7

5

T bit de signo

magnitud

- En la notación complemento a 1, el número negativo es el complemento a 1 del correspondiente número positivo : -A= Cal (A) = 1 an_ l a n _ 2 . . . al ao . a-1 a-2 . . . a_ m - En la notación complemento a 2, el número negativo es el complemento a 2 del correspondiente número positivo : -m - A = Ca2(A) = Cal (A) + 2 REPRESENTACIÓN DE NÚMEROS EN PUNTO FLOTANTE La representación en punto (o coma) flotante se basa en la notación exponencial o científica . En dicha notación los números se expresan en la forma M = m x b e (m mantisa, b base, e exponente) . Esto permite expresar cantidades de muy distinto tamaño de forma compacta, por ejemplo, la masa del sol : 1 .989 x 1030 Kg o la carga del electrón : -1 .602 x 10 -19 C . Si se supone conocida la base, basta representar los valores de mantisa y exponente . Esto es lo que se hace cuando se representan números en punto flotante . Una cantidad se puede expresar de muchas formas distintas en notación exponencial, por ejemplo la velocidad de la luz, c, es 3 x 10 8 m/s ó 0 .003 x 10 11 m/s ó 3000,n 10 m/s, etc . Para trabajar con números en punto flotante se suele adoptar un convenio acerca de cuál de las múltiples expresiones de la forma m x be es la que se escoge . En este Capítulo trabajaremos con mantisas cuyo dígito más significativo es "no nulo" (notación normalizada) . Por ejemplo,


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

supongamos que disponemos de 5 dígitos para la mantisa, representaciones normalizadas de c serían : 3 .0000 x 108 ó 3000 .0 x 105 ó 30000 x 10 4, pero no lo sería 0 .0030 x 10 11 ó 0.00003 x 10 13 . Sin embargo, aún es necesario adoptar un segundo convenio para elegir una entre las diversas representaciones normalizadas . Ese convenio se refiere a concretar cuál es la posición del punto decimal de la mantisa . En este texto se trabaja con dos convenios : - Notación fraccionaria : el punto decimal está a la izquierda del primer dígito representado de la mantisa, en nuestro ejemplo : 0 .30000 x 109 . - Notación entera : el punto decimal está a la derecha del último bit representado de la mantisa, en nuestro ejemplo : 30000 x 104. CODIFICACIÓN BINARIA Por codificación binaria se entiende la representación de un conjunto de entes, numéricos o no numéricos, mediante palabras de n bits . Ahora presentaremos algunos códigos binarios de cada tipo . La conversión entre la base 2 y la base 8 ó 16 se realiza por agrupación de bits . Por extensión cualquier código binario puede representarse mediante los dígitos de dichas bases . Así podemos hablar de código octal y código hexadecimal .

0 1 2 3 4 5 6 7

código octal 000 001 010 011 100 101 110 111

0 1 2 3 4 5 6 7

código hexadecimal 0000 0001 0010 0011 0100 0101 0110 0111

8 9 A B C D E F

código hexadecimal 0000 0001 0010 0011 0100 0101 0110 0111

Entre los códigos más utilizados se encuentran los llamados códigos decimales . Estos asignan a cada uno de los dígitos de la base 10 una palabra binaria . Con su utilización se evita el proceso de conversión entre base 2 y base 10, aunque el número de bits precisado para expresar una cantidad es, en general, mayor . En la siguiente tabla se muestran algunos ejemplos : dígito decimal

BCD natural

BCD exceso 3

2 de 5

7 segmentos

0 1 2 3 4 5 6 7 8 9

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

00011 00101 00110 01001 01010 01100 10001 10010 10100 11000

1111110 0110000 1101101 1111001 0110011 1011011 0011111 1110000 1111111 1110011


4

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Otro código de gran interés es el código Gray (o código reflejado) de n bits . En las siguientes tablas se muestran los casos n = 3 y n = 4 . Puede observarse en ellas la particularidad de que las palabras asignadas a dos números consecutivos se diferencian únicamente en 1 bit . Se trata por tanto de un código con distancia unidad . código Gray(n=3) 0 000 0 1 001 1 2 011 2 3 4 5 6 7

010 110 111 101 100

3 4 5 6 7

código código Gray(n=4) Gray(n=4) 0000 8 1100 0001 9 1101 0011 10 1111 0010 0110 0111 0101 0100

11

1110

12

1010

13 14 15

1011 1001 1000

Como ejemplo de código alfanumérico, en este texto se usa el código ASCII . Mediante este código de 7 bits es posible codificar las 26 letras del alfabeto, tanto mayúsculas como minúsculas, los 10 dígitos decimales, caracteres como <, @ , secuencias de control como ESC, NULL, etc . A continuación se muestran algunos ejemplos : símbolo

código ASCII

símbolo

código ASCII

A B a b 0

1000001 1000010 1100001 1100010 0110000

1

0110001 0111100 1000000 0011011 0000000

ESC NULL

A cualquiera de los códigos anteriores se les puede añadir un bit de paridad . El valor de dicho bit se asigna de forma que el número total de unos en la palabra sea par (hablamos entonces de bit de paridad par) o impar (hablamos entonces de bit de paridad impar) . Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Representación posicional de magnitudes . - Conversión entre bases . - Codificación binaria . - Números con signo . - Números fraccionarios en punto flotante . PROBLEMAS RESUELTOS Problema 1 .- Recientemente se ha rescatado una extrañísima nave espacial que provenía de los confines de la constelación Ophiocus . Tras múltiples esfuerzos, nuestros científicos han logrado deducir algunos datos sobre la civilización que la construyó . En vez de dos brazos, sus criaturas poseían uno sólo que terminaba en una "mano" con un número 8 de


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

5

dedos . En un cuaderno que encontraron en la nave había escrito: "5X2 - 50X+ 125= 0 -4 X t = 8, X2 = 5" Suponiendo que tanto el sistema de numeración como las matemáticas extraterrestres tengan una historia similar a los desarrollados en la Tierra, ¿cuántos dedos (B) poseían? Solución Pl .-Debemos encontrar un sistema de numeración B en el cuál se verifique que 8 y 5 son soluciones a la ecuación encontrada . En un sistema posicional de base B una secuencia de dígitos, d n_ 1 d n _2 . . . d l do, repre-

n-1 senta a una magnitud M si se cumple que M

=

d . B~ .

_ -M Aplicando dicha fórmula a los coeficientes de la ecuación : 5, 50 y 125, obtenemos la siguiente :

5 •X2 -(5 •B +0) •X +(1 •B2 +2 •B +5)=0 Sustituyendo los valores X 1 = 8 y X2 = 5 en la variable X :

5 .82-(5 •B +0) •8 +(1 •B 2+2 •B +5)=0 5 . 52 -(5 . 8+0) •5 +(1 •B2+2 •B +5)=0 Basta resolver el sistema formado por estas dos ecuaciones para encontrar que el único valor de B que satisface ambas es B = 13 . Por tanto, los extraterrestres de Ophiocus poseían 13 dedos en su único brazo .

Problema 2.- Represente posicionalmente la cantidad "dieciséis unidades" en las bases 3, 7, 8 y 16. Solución P2 .- La cantidad "dieciséis unidades" en base 3 deberá cumplir (utilizando la notación decimal en las operaciones) : 16= . . .+d3 . 3 3 +d 2 .3 2 +d 1 . 3 1 +1 . 3 0 +d_ 1 3 -1 + . . .

con di =0,1ó2 .

Para obtener los valores de los dígitos d i hay dos métodos : 1) Comprobar valores de d i hasta que la suma sea igual a la magnitud . En nuestro caso : 16=1 . 3 2 +2 . 3 1 +1 . 3 0 =121 (3 2) Mediante divisiones sucesivas para la parte entera y multiplicaciones sucesivas para la parte fraccionaria . En nuestro caso sería :

do d i

d2

d3

Con lo que 16 = . . .0121 (3 = 121 (3 . Nótese que sin más que sustituir el dividendo por la suma del divisor por el cociente y del resto, se obtiene la expresión general .


6

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Operando de la misma forma para los demás casos obtenemos : 16=2 . 7 1 +2 . 70 =22(7 16 = 2 . 8 1 + 0 . 80 = 20(8 16 = 1 En general,

"r unidades"

en base

• 16' +0 160 = 10(16

r se

representa 10 (r •

Problema 3 .- Represente el número decimal 23 .75 en las bases 2, 5, 6, 8 y 16 . Solución P3.- Obtendremos en primer lugar la representación de la parte entera por el método de las divisiones sucesivas . Para pasar a base 2 : 23

v

t 11

v

5

v

do d i

`I ' C_2 1 0 1 v v

d2

d3

d4

Por tanto : 23 (10 = 1011 l(2 Igualmente para las otras bases obtenemos : 23 (10 = 43 (5 = 35 (6 = 27 (8 = 17 (16 En cuanto a la parte fraccionaria, ha de obtenerse mediante el método de las multiplicaciones sucesivas . En el caso del paso a base 2 : 0 .75

• 2 = 1 .5

La parte entera de esta cantidad es d_ 1 ; la parte fraccionaria es la que se multiplica por la base en el paso siguiente : 0 .5

• 2 = 1 .0

La parte entera, en esta ocasión, nos da el bit d_ 2 . Como la parte fraccionaria es 0, todas las siguientes multiplicaciones darían como resultado 0 y, por tanto, el resto de los bits (d_ 3 , d_4 , . . .) son iguales a 0 . Por tanto : Para base 5 :

0 .75 (10 =0 .11 (2

y

23 .75 (10 = 10111 .1 l (2

0 .75 5 = 3 .75 - d_, = 3 0 .75 . 5=3 .75--> d_2=3=d_3= . . .

por tanto, 23 .75 (10 = 43 .333 . . . (5 Para base 6 :

0 .75

• 6 = 4 .5 - d_ 1 = 4

0 .5 . 6=3 .0 -4d_3=3,d_4=0=d_5= . . . por tanto, 23 .75 (10 = 35 .43 6 Para base 8 :

0 .75

• 8 = 6 .0 - d_, = 6, d_ 2 = 0 = d_ 3 = . . .

por tanto, 23 .75 (10 = 27 .6 (8


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

7

0 .75 • 16 = 12 .0 -+ d_, = 12, d_ 2 = 0 = d_3 = . . .

Para base 16 :

por tanto, 23 .75 (10 = 17 .C (16

Problema 4 .- Convierta los siguientes números a base 10: a) 100.111010 (2; b) 50(8, c) 101 .1(2; d) 198 F(16Solución P4 .- Para convertir a base 10 basta sustituir el valor de la base y de los dígitos en la

expresión

M =

n-1 E d . • r1

y realizar las operaciones .

j = -m a) 100 .111010 (2 = 1 • 2 2 + 1 • 2 -1 + 1 • 2 -2 + 1 • 2-3 + 1 •

2-5

= 4 .90625 (1 0

b)50 ( 8=5 • 8+0=40 (1 0 c)101 .1 (2 =1 •2 2 +1 •2 0 +1 •2 -1 =5 .5 ( 10 d) 198F(16 = 1

16 3 + 9 • 16 2 + 8 • 16 1 + 15 • 160 = 6543(, 0

Problema 5.-Se cuenta que un rey, encantado con el juego, ofreció al inventor del ajedrez el premio que desease . El inventor sólo pidió 1 grano de arroz por la primera casilla del tablero, 2 granos por la segunda, 4 por la tercera y así, el doble cada vez, hasta llegar a la última casilla (la número 64) . Los matemáticos del reino concluyeron que no había arroz suficiente para pagar al inventor. ¿Sabría decir cuántos granos de arroz se necesitaban? Solución P5.-La cantidad pedida M es, en base 2, el número compuesto por 64 unos : 63 M=1 1 . . .1 1 1 1 ya que en ese caso M=1 •20 +1 •2 1 +1 •2 2 + . . .+1 •2 Esta cantidad es una unidad menos que la representada por un 1 seguido de 64 ceros . 19 Entonces : M = 264 - 1 = 1 .844674407 x 10

Problema 6.- ¿ Cuántos bits son necesarios como mínimo para representar cada uno de los siguientes números decimales? 50, 1000, 5000, 100000 y 1000000. Solución P6 .- Para calcular el número mínimo n de bits que representa la magnitud M, tengamos en cuenta que n ha de cumplir la siguiente desigualdad :

2n-1-1 <M<-2 n -1 El valor de n puede deducirse de dos formas : 1) A partir de la expresión n = r 192 (M + 1)1 de x . 2) Por búsqueda en la tabla de potencias de 2 .

donde [xl es el entero por exceso


8

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Para los números decimales propuestos tendremos : M

n

50 1000 5000 100000 1000000

6 10 13 17 20

Problema 7.-Convierta el número binario 10110110011 .10110 a las bases 4, 8 y 16 ; el número 372.105 en base 8 a base 2, 4 y 16 y el número FO .A en base 16 a base 2, 4 y 8 . Solución P7 .- Para convertir un número de base 2 a base 4, basta agrupar a partir del punto fraccionario de 2 en 2 bits y convertir cada grupo a base 4 . De la misma forma, para convertir a base 8 ó 16 se agrupan de tres en tres o de cuatro en cuatro bits respectivamente . Entonces : 1 01 10 11 00 11 .10 11 0

1 1 2 3 0 3 . 2 3 0 (4

10 110 110 011 .101 10

2 6 6

3.

5 4 (8

101 1011 0011 .1011 0

5

B

3.

B

0 (16

Para pasar de bases 4, 8 ó 16 a base 2, se hace la descomposición inversa . Por otra parte, la conversión entre las bases 4 y 16 también se realiza de la misma forma . Sin embargo, para pasar de base 8 a base 4 ó 16, o viceversa, conviene pasar antes a base 2 . Por tanto : 372 .105 (8 = 011 111010 . 001 000 101 (2 = 3322 .020224 = FA .228( 16 F0.A( 16 = 11110000- 1010(2 = 3300 .22 (4 = 360 .50 (8

Problema 8.-En la colonia humana de Ganimedes la energía se obtiene con pilas atómicas de exactamente 1 Kg de peso . Las pilas son enviadas desde Tritón en 6 cajas de 50 pilas cada una . a) Tras un envío se avisa a Ganimedes que, por error, una de las cajas contiene pilas malas con 1 g de menos. Deben detectarla y reenviarla a Tritón . Los operadores de Ganimedes deciden detectarla mediante una sola pesada . ¿Cómo? b) Tiempo después y tras otro envío, el aviso es que una o más cajas contienen pilas malas con 1 g de menos . ¿Cómo podrán ahora detectar las cajas erróneas con sólo una pesada? Solución P8. a) Identifiquemos cada una de las seis cajas con una letra : caja A, caja B, caja C, caja D, caja E y caja F . Si pesamos 1 pila de la caja A, 2 de B, 3 de C, 4 de D, 5 de E y 6 de F, la cantidad de gramos que falten para un número entero de Kg indica la caja errónea . b) En este caso será necesario tomar 1 pila de A, 2 de B, 4 de C, 8 de D, 16 de E y 32 de F . Con esto, el número de gramos que faltan para un número entero de Kg representados


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

9

en base 2 indica las cajas erróneas . Por ejemplo, supongamos que las cajas erróneas son A, B, D y F : entonces, faltarán 1 + 2 + 8 + 32 = 43 g . El número 43 expresado en binario es : 101011 lo que señalaría a las cajas F - D - B A .

Problema 9 .- La figura representa 6 cartas con las que se pretende hacer un juego de magia . Alguien debe pensar un número y, sin decir cuál es, debe indicar las cartas donde el numero está presente . Conociendo sólo esto, se podrá adivinar el número pensado . Por ejemplo, si está en las tarjetas A, D, F y G, se trata del número 75 . Sabiendo que el juego se basa en la representación binaria de magnitudes : a) Explíquelo . b) ¿Cómo lo cambiaría si quiere incluir hasta el número 123?¿ Ysi incluye hasta el200?

' 64 65 66 67 68 69~ "'32 33 34 35 36 37~ 38 39 40 41 42 43 70 71 72 73 74 75 44 45 46 47 48 49 76 77 78 79 80 81 50 51 52 53 54 55 82 83 84 85 86 87 565758596061 88 89 90 91 92 93 62 63 96 97 98 99 94 95 96 97 98 99 A

B

~45671213 "\~ 14 15 20 21 22 23 28 29 30 31 36 37 38 39 44 45 46 47 52 53 54 55 60 61 626368697071 76 77 78 79 84 85 86 87 92 93 94 95

6 17 18 19 20 21 1 ,11 8 9 10 11 12 13 14 15 24 25 26 27 22 23 24 25 26 27 28 29 30 31 40 41 28 29 30 3148 49 42 43 44 45 46 47 50 51 52 53 54 55 56 57 58 59 60 61 565758596061 62 63 72 73 74 75 62 63 80 81 82 83 76 77 78 79 88 89 84 85 86 87 88 89 90 91 92 93 94 95~ 90 91 92 93 94 95

%23671011 14 15 18 19 22 23 26 27 30 31 34 35 38 39 42 43 46 47 50 51 54 55 58 59 626366677071 74 75 78 79 82 83 86 87 90 91 94 95 98 99

13 25 37 49 61 73 85

1357911 15 17 19 21 27 29 31 33 39 41 43 45 51 53 55 57 63 65 67 69 75 77 79 81 87 89 91 93 97 99

23 35 47 59 71 83 95

Solución P9. a) El mayor número, el 99, se representa en binario con 7 bits, concretamente como 99 (2 = 1100011 . De aquí que haya 7 tarjetas (A, B, C, . . ., G) cada una encabezada por una potencia de 2 (2 6 = 64 para A, 25 = 32 para B, 2 4 = 16 para C, etc) . El resto de números en cada tarjeta son aquellos cuya representación en base 2 contiene un 1 en la posición de la potencia correspondiente a la tarjeta . Así el 99 estará en las tarjetas A, B, F y G pero no en las otras . El número 75 (= 64 + 8 + 2 + 1) estará sólo en las tarjetas A, D, F y G ; etc . b) El 123 precisa también 7 bits por lo que no hay que aumentar el número de tarjetas . A cada una de éstas habría que incorporar los nuevos números (del 100 al 123) de la forma explicada antes ; por ejemplo : el 111 (10 = 1101111 (2 se incorporaría a A, B, D, E, F y G .


10

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Para añadir hasta el 200 se necesitaría una nueva tarjeta encabezada por 128 = 27 , ya que para representar números mayores de 128 se precisan 8 bits .

Problema 10.- Represente el 6 en los siguientes casos: • Código Gray asumiendo que se representan del 0 al 7. • Código Gray asumiendo que se representan del 0 al 9 . c) Código Gray asumiendo que se representan del 0 al 15 . • En código ASCII. • En código ASCII con paridad par. f) En código ASCII con paridad impar. • En código "2-out-of-5" . Solución P10 .- El código Gray es un código reflejado de distancia unidad que utiliza el mínimo número de bits necesarios . La distancia unidad implica que dos números consecutivos tienen códigos adyacentes (sólo se diferencian en un bit) . Por otra parte, el ser un código reflejado, implica simetría respecto a la mitad de los números representados, con lo que, dos números simétricos tienen códigos adyacentes . a) Para representar los números del 0 al 7 necesitaremos 3 bits . Por tanto, el código Gray será : 000 001 011 010 0

1

2

110 111 101 100

3

4 5

6

7

(eje de simetría) b) y c) Para representar tanto los diez números del 0 al 9, como los 16 números del 0 al 15 se necesitan 4 bits, con lo que el código Gray a utilizar es el de 4 bits . Al ser un código reflejado, para asignar valores del código a los diez números (0-9) lo haremos con los 10 códigos centrales, tal como se muestra . En la codificación de los 16 números (0-15) ocupamos los 16 códigos existentes .

0000 0001 0011 0010 0110 0111 10101 0100 b) c) 0

0 1

2

3

1 4

2 5

3

4 7

1100 1101 1111 1110 1010 1011 1001 1000 5

6

7

8

9

-

8

9

10

11

12

13

14

15

(eje de simetría) d) El código ASCII consta de 7 bits y representa 26 letras minúsculas, 26 letras mayúsculas, 10 dígitos decimales, 32 caracteres especiales y 34 comandos . La codificación procede de un convenio y, en concreto, el código del 6 es 0110110 que, expresado en código hexadecimal, es $36 . e) Para un código de n bits, incluir la paridad supone añadir 1 bit adicional a los n anteriores que se llama bit de paridad . Su fin es hacer que el número total de unos en el código


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

11

(ahora de n + 1 bits) sea par en el caso de paridad par o impar en el caso de paridad impar . La posición del bit de paridad es convenida previamente ; por ejemplo, ponemos el bit de paridad en primer lugar . El código ASCII de paridad par para el 6 será 00110110 (añadimos un 0 para tener un total de cuatro unos) . En hexadecimal será $36 . f) El código ASCII de paridad impar para el 6 será 10110110 (añadimos un 1 para tener un total de cinco unos) . En hexadecimal, $B6 . g) El código 2-out-of-5 representa los 10 dígitos decimales mediante 5 bits de los que tres son 0 y dos son 1 . La codificación es la mostrada a continuación : número

código

0 1 2

00011 00101 00110 01001 01010 01100 10001 10010 10100 11000

3 4 5 6 7 8 9

Problema 11 .- Determine el bit de paridad impar para cada uno de los 10 dígitos decimales en el código 8, 4, -2, -1 . Solución P11 .-En la siguiente tabla, se muestra la codificación para cada dígito decimal en el código pesado 8, 4, -2, -1, junto con el bit de paridad que hay que generar para que en cada dígito haya un número impar de 1 .

dígito

84-2-1

P

0 1 2 3 4 5 6 7 8 9

0000 0111 0110 0101 0100 1011 1010 1001 1000 1111

1 0 1 1 0 0 1 1 0 1


12

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 12.- Obtenga el complemento a 1 y a 2 de los siguientes números binarios : 1010101, 0111000, 0000001, 10000, 00000 . Solución P12 .- Dado B = b n- 1 b n _2 . . .b 1 b 0 se obtienen su complementos a 1 y a 2 . El complemento a 1 se obtiene como Cal(B) = bn-1bn-2 . . . blbo El complemento a 2 puede obtenerse de dos formas : sumando 1 al complemento a 1 (ya que Ca2(B) = Cal (B) + 1) ó dejando iguales todos los bits menos significativos hasta llegar al primer bit igual a 1 (que también se deja igual) y complementando los bits restantes . Para las palabras propuestas : palabra

compl . a 1

compl . a 2

1010101 0111000 0000001 10000 00000

0101010 1000111 1111110 01111 11111

0101011 1001000 1111111 10000 00000

Problema 13 .- Obtenga el complemento a 9 y a 10 de los siguientes números decimales : 13579, 09900, 90090, 10000, 00000. Solución P13.- Se define Ca9(N) = (Ion - 1) - N . De esta definición podemos inferir que si N = Nn_1Nn_2 . . .N1N0, entonces Ca9(N) = (9 - N n_ 1 )(9 - N n_2 ) . . .(9 - N 1 )(9 - N 0) . Por otra parte CalO(N) = 10 n - 1 = Ca9(N) + 1 Para las cantidades propuestas en el enunciado : número

compl . a 9

compl . a 10

13579 09900 90090 10000 00000

86420 90099 09909 89999 99999

86421 90100 09910 90000 00000

Problema 14.- Represente con el mínimo número de bits posibles los siguientes números decimales en notación binaria, signo-magnitud, complemento a 1 y complemento a 2 : a) ± 122, b) ± 64 ; c) ± 15; d) ± 37 Solución P14 .- La representación binaria con n bits permite representar los números comprendidos entre 0 y 2 n-1 , siendo una representación sin signo . Esto es, no podemos representar +N ni -N sino sólo N . En particular, operando como en el problema 2 : a) 122 = 1111010 (2 b) 64 = 1000000(2 c) 15 = 1111(2 d) 37 = 100101(2


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

13

La representación signo-magnitud añade un bit de signo (0 para + y 1 para -) a la representación binaria de la magnitud, situando ese bit de signo en la posición más significativa. Entonces, con n bits pueden representarse todos los números enteros comprendidos entre - (2 n-1 - 1) y + (2n-1 -1) . En particular, a)+122=01111010 -122=11111010 b) + 64 = 01000000 - 64 = 11000000 c)+15=01111 -15=11111 d)+37=0100101 -37=1100101 La representación complemento a 1 sigue el siguiente convenio : - Un número positivo se representa igual que en signo-magnitud . - Un número negativo se representa complementando a 1 el correspondiente número positivo . Con n bits pueden representarse todos los números enteros comprendidos entre - (2 n-1 - 1) y + (2 n-1 - 1) . En particular, a) + 122 = 01111010 - 122 = 10000101 b) + 64 = 01000000 - 64 = 10111111 c)+15=01111 -15=10000 d)+37=0100101 -37=1011010 La representación en complemento a 2 sigue el siguiente convenio : - Un número positivo se representa como en los casos anteriores . - Un número negativo se representa mediante el complemento a 2 del correspondiente n-1 número positivo . Con n bits pueden representarse los 2 n números comprendidos entre - 2 y + (2 n- -1) . En nuestro caso, a) + 122 = 01111010 b) + 64 = 01000000

- 122 = 10000110 - 64 = 1000000 -15=10001 -37=1011011

c)+15=01111 d)+37=0100101

Problema 15 .- Se dispone de palabras de 10 bits . Sobre ellas se escriben números fraccionarios en punto fijo dedicando 3 bits a la parte fraccionaria . Represente los siguientes números en las notaciones signo-magnitud, complemento a 1 y complemento a 2, en los dos casos siguientes : a) Redondeando el valor; b) Truncando el valor . Nota: Para los números negativos, obtenga primero el valor de la magnitud y, después, aplique la notación . 1)+27.625 3)+33.3 5)+45.67 7)+45 .7 2)-27.625 4)-33.3 6)-45.67 8)-45 .7 Solución P15 .

1) + 27 .625 = 0011011 . 101(2, en este primer caso, no es necesario redondear ni truncar la parte fraccionaria pues sólo hay tres dígitos en la parte fraccionaria del número exacto . Por tanto, la representación con 10 bits (7 para la parte entera y 3 para la fraccionaria) sería : 010111110

1


PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

14

2) - 27 .625 = 1011011 .101 S-m = .010c ., 1100100 1 = 1100100 - 011 , ., 2-

3) + 33 .3 = 0100001 .0100 . . . truncando en 3 bits para la parte fraccionaria : 0100001 .010, redondeando se obtiene el mismo valor ya que el valor exacto en el bit b-4 es 0 . 4) - 33 .3 = 1100001 .01 Os-n] = 1011110 .101 101,. a 1 = 1011110: 110, . a 25) + 45 .67 = 0101101 .10101 . . . truncando en 3 bits para la parte fraccionaria :

0101101 .101, redondeando : 0101101 .110 . 6) - 45 .67 = 1101101 .101 S _ m = 1010010 .010c . a 1 = 1010010.011 c . a 2 (truncando) . -45 .67 = 1101101 .110 s _ m = 1010010 .001, . a 1 = 1010010-010, .a2 (redondeando) . 7) + 45 .7 = 0101101 .1011 truncando en 3 bits para la parte fraccionaria : 0101101 .101

y redondeando : 0101101 .110 . 8) - 45 .7 = 1101101 .1 l OS-n1 = 1010010 .001, . a 1 = 1010010 .010, . a 2 (truncando) . - 45 .7 = 1101101 .1 l OS-n1 = 1010010 .001c . a 1 = 1010010 .01 Oc . a 2 (redondeando) .

Problema 16.- Se dispone de 30 bits para escribir números en notación exponencial . De ellos se destinan 21 a la mantisa y 9 al exponente . Mantisa y exponente se escriben en notación signo-magnitud. a) Determine los rangos de valores decimales que se pueden escribir . b) Represente en BCD los siguientes números : 1 . Velocidad de la luz en mis (3x10 8). 2. Carga del electrón en culombios (- 1,602x10 -19) . -31) . 3. Masa del electrón en kilogramos (9,109x10 4 . Aceleración de la gravedad en mis 2 (9,807) . 5. Cero. 6. Infinito . Solución P16 .- En notación exponencial los números se expresan en la forma : M = m x be (m mantisa, b base, e exponente) . En nuestro caso, hay que representar las cantidades pedidas en BCD . Por tanto la base es decimal . Cada dígito BCD es codificado por 4 bits . Disponemos de 21 bits para la mantisa de los cuales uno es para el signo, los otros 20 bits nos permiten almacenar 5 dígitos BCD . En cuanto a la parte fraccionaria, tenemos 9 bits, uno para el signo y 8 para dos dígitos BCD . Por tanto, el espacio disponible se distribuye de la siguiente forma : mantisa

Sm

exponente

Se Utilizaremos normalización fraccionaria, es decir, el punto decimal se encuentra a la iz-

quierda del primer dígito representado y ese primer dígito ha de ser no nulo . a) El rango de valores positivos que se puede representar viene dado por el menor número representable : mantisa + 10000 y exponente - 99 que corresponde al 0 .1 x 10 -99 , y el 99 mayor representable : mantisa + 99999 y exponente + 99 que corresponde al 0 .99999 x 10 Por tanto el rango cubierto es [0 .1 x 10-99 , 0 .99999 x 1099 ] . -99 ] En cuanto al rango de valores negativos, será [- 0 .99999 x 1099 , - 0 .1 X 10


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

15

b) Las cantidades propuestas quedan : 1) 3 x 10 8 , normalizado -* 0 .3 x 109 , los 30 bits serán :

0011100001000010000 0000

010000 1001

mantisa

exponente -18 2) - 1 .602 x 10-19 , normalizado - - 0 .1602 x 10 , los 30 bits serán : 1 0001101101000010010_ 0000

1

1100011 1000

3) 9 .109 x 10-31 , normalizado -4 0 .9109 x 10-30, los 30 bits serán : 01100110001100001100110000

0011 0000

4) 9 .807, normalizado -* 0 .9807 x 10 1 , los 30 bits serán : 0 1001 1000 000110111 0000

000010001

5) Por convenio, cero, es el único número con el primer dígito de la mantisa a 0 . (Normalmente se ponen todos los dígitos de la mantisa y el exponente a 0, pero bastaría sólo con fijar a cero el primer dígito de la mantisa) . xl00001xxxxlxxxxlxxxxlxxxx

xlxxxx xxxx1

6) Infinito . Con signo positivo, por convenio viene dado por el mayor número representable . Con signo negativo, será el menor representable : + infinito - infinito

10011100111001 1001 10011 1 100111001110011100111001 mantisa

011001 1001 101100111001 exponente

Problema 17.- Represente el número (+ 31 .5) 10 con un coeficiente entero normalizado de 13 bits y un exponente de 7 bits como : a) Un número binario (asuma base 2) . b) Un número octal binario codificado (asuma base 8) . c) Un número hexadecimal binario codificado (asuma base 16) . Solución P17 . a) 31 .5 ( 10 = 11111 .1(2 pero hemos de escribirlo en forma exponencial de manera que la mantisa tenga 13 bits (incluido el bit de signo) y el exponente 7 bits (incluido bit de signo) : _7 (2 31 .5 (10 = 0111111000000 x 2 Entonces la mantisa, de 13 bits, es : 0 1111110000000 y el exponente, de 7 bits, es : 1000111 .


16

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

b) 31 .5 (10 = 37 .4 (8 , también hemos de escribirlo en forma exponencial de manera que la mantisa tenga 13 bits (incluido el bit de signo) y el exponente 7 bits (incluido bit de signo) . Sin embargo, en este caso se trata de dígitos octales, y cada dígito octal se codifica mediante tres bits . Por tanto, hemos de escribirlo en forma exponencial de modo que la mantisa tenga 4 dígitos octales (+ el bit de signo son un total de 13 bits) y el exponente 2 dígitos octales (+ el bit de signo hacen un total de 7 bits) . Entonces : 8-2(8, con lo que la mantisa quedaría : 0 011 111 100 000 y el exponen31 .5 (10 = 3740 x te, de 7 bits, es 1 000 010 . c) 31 .5 (10 = 1F .8 (16 , en este caso la normalización ha de realizarse teniendo en cuenta que un dígito hexadecimal se codifica con 4 bits . La mantisa, por tanto, ha de tener 4 dígitos hexadecimales (12 bits) . 31 .5 (1 0 = 1F8 x 16 -1 , por tanto, la mantisa será : 0 0001 1111 1000, y el exponente quedará : 1 00 0001 .

PROBLEMAS CON SOLUCIÓN RESUMIDA

Problema 18.- Represente los siguientes números decimales en base 2 y compruebe el resultado : a) 17,, b) 94 . Solución P18 . a) 17(10 = 10001(2 b) 94 (10 = 1011110(2 .

Problema 19.- Pase los siguientes códigos hexadecimales a código binario, octal y BCD : a) $F2.85; b) $B02.A ; c) $25.FA ; d) $71 .02. Solución P19 .- El código BCD corresponde a la representación binaria de un número decimal . Esta se obtiene asociando a cada dígito decimal su representación binaria de 4 bits . Para pasar un número desde una determinada base a BCD, deberá obtenerse en primer lugar el número en base 10, y después hacer la conversión antes indicada . a) $F2 .B5 = 1111 0010 .1011 0101(2 = 011 110 010 .101 101 010( 2 = 362.552( 8 . Para representarlo en BCD pasamos a base 10 : $F2 .B5 = F x 16 + 2 x 160 + 11 x 16 -1 + 5 x 16 -2 = 242 .70(10 _3 0010 0100 0010 .0111 (BCD) • Procedemos de igual forma con el resto de los casos : b) $B02 .A = 1011 0000 0010 .1010 (2 = 5402 .5 ( 8 = 2818 .625 ( 10 = 0010 1000 0001 1000 .0110 0010 0101 (BCD) . c) $25 .FA = 0010 0101 .1111 1010 (2 = 45 .764 ( 8 = 37 .977(10 = 0011 0111 .1001 0111 0111 (BCD) • d) $71 .02 = 0111000 1 .0000 0010 (2 = 161 .004(8 = 113 .007(10 = = 000 1000 100 11 .0000 0000 0111 (BCD) •


REPRESENTACIÓN Y CODIFICACIÓN BINARIA

17

Problema 20.- Represente el número decimal 8620 (a) en BCD, (b) en código exceso 3, (c) en código 2, 4, 2, 1 y (d) como número binario . Solución P20 . a) 8620(10 3 1000 0110 0010 0000 (BC p) . b) 8620 (10 -3 1011 1001 0101 001 1 (exceso-3) • c) El código 2,4,2,1 es un código pesado de 4 bits cuyos pesos son precisamente 2,4,2,1 . dígito decimal

Pesos : 2421

0 1 2 3 4 5 6 7 8 9

0000 0001 0010 0011 0100 1011 1100 1101 1110 1111

Entonces, 8620 (10 -3 1110 1100 0010 0000 d) Lo más fácil es pasar primero a base 16 por el método de las divisiones sucesivas y después pasar a base 2, desde base 16 . 8620 (10 -3 21AC(16 -* 0010 0001 1010 1100 ( 2 -* 10000 110 10 1100(2 .

Problema 21 .- Un código binario usa 10 bits para representar cada uno de los diez dígitos decimales . A cada dígito le asigna un código de nueve ceros y un uno . El código binario para el número 6, por ejemplo, es 0001000000. Determine el código binario para los números decimales restantes . Solución P21 .- Se trata del código "1-hot", también llamado "1-out-of-n" . En este caso n = 10 . dígito

bg b 8 b 7 b6 b 5 b 4b3 b2b l bo

0 1

0000000001 0000000010

2 3 4 5 6 7 8 9

0000000100 0000001000 0000010000 0000100000 0001000000 0010000000 0100000000 1000000000


18

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 22.- Obtenga un código binario pesado para los dígitos de la base 12 usando los pesos 5421 . Solución P22.

dígito

5421

dígito

5421

0 1 2 3 4 5

0000 0001 0010 0011 0100 1000

6 7 8 9 A B

1001 1010 1011 1100 1101 1110

Problema 23.- Determine el rango de valores numéricos que pueden escribirse en palabras de 8, 16 y 32 bits, en las diferentes notaciones de números enteros con signo . Solución P23 .- Con n bits se representan los siguientes rangos : n-1 - 1)] - Signo-magnitud : [- (2n-1 - 1), + (2 - Complemento a 1 : [- (2n-1 - 1), + (2 n-1 - 1)] - Complemento a 2 : [- 2 n-1 , + (2n-1 - 1)] Entonces para los valores de n propuestos : n 2 de bits

8 16 32

signo-magnitud y complemento a 1

complemento a 2

[- 127,+ 127] [- 32767, + 32767] [- (231- 1) + (2 31- 1 )]

[- 128,+ 127] [- 32768, + 32767] 231,+ (2 31- 1)] 1-

Problema 24.- Un registro de 30 bits almacena un número decimal en punto flotante representado en BCD. Los coeficientes ocupan 21 bits del registro y se asume como un entero normalizado . Los números en el coeficiente y el exponente se asumen representados en forma de signo-magnitud. ¿ Cuáles son las cantidades mayores y menores que pueden ser acomodadas excluyendo el cero? . Repita para representación binaria, con base 2, si se representa con fracción normalizada . Solución P24 . BCD normalizado entero, 99 - Cantidad mayor positiva : 99999 x 10 10 -95 -Cantidad menor positiva : 10000 x 10-99 = Base 2 fracción normalizada, 11111111 = (1 -2 -21) x 2 255 . - Cantidad mayor positiva : 0 .111 . . .111 x 2 2-1 -255 =2 -256 - Cantidad menor positiva : 0 .100 . . .000x2-11111111 = x2


Capítulo 2

ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

El modo más riguroso e inequívoco de describir la funcionalidad de los circuitos digitales es de forma matemática, mediante expresiones y funciones de conmutación . Con ello, además, se facilita el desarrollo de métodos más o menos sistemáticos a la hora de abordar las tareas de análisis o diseño de circuitos . Es objetivo de este Capítulo familiarizar al lector con los conceptos relacionados con el álgebra de conmutación, el manejo de expresiones lógicas y las formas de representación de funciones que se utilizarán en este y otros Capítulos . ÁLGEBRA DE CONMUTACIÓN El álgebra de conmutación es un sistema matemático compuesto por un conjunto de dos elementos : B = {0, 11, y dos operaciones OR (+) y AND ( •) definidas en B de la siguiente forma : 0

1

0

0

1

0

0 1 0 0

1

1

1

1

0 1

OR

AND

El álgebra de conmutación cumple los postulados del álgebra de Boole . De ahí que podamos decir que la primera es un caso particular de la segunda . Los postulados del álgebra de Boole son los siguientes : P1 . Ley de identidad : Existen elementos identidad (0 para la operación "+" y 1 para la operación " ") de forma que para cualquier elemento x, se cumple : x+0=x x • 1=* P2. Ley conmutativa : Para cualesquiera dos elementos x e y, se cumple : x+y=y+x x .y=y .x P3 . Ley distributiva : Dados tres elementos x, y, z se cumple : x+(y .z)=(x+y) .(x+z) x . (y+z)=x .y+x .z

19


20

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

P4 . Ley del complemento : Para todo elemento x existe un elemento x tal que: x+x= 1 x • x=0 A partir de estos postulados es posible probar una serie de propiedades de interés . Estas propiedades, que aquí simplemente se enumeran, son demostradas en el problema 1 para el caso general del álgebra de Boole y probadas en el problema 2 para el álgebra de conmutación . TI . Ley de idempotencia : x + x = x x • x = x T2 . Ley de unicidad del complemento : el elemento x del postulado cuarto es único . T3 . Ley de los elementos dominantes : x + 1 = 1 x •0 = 0 T4 . Ley involutiva : (x) = x T5 . Ley de absorción : x + x • y = x T6 . Ley del consenso : x + x • y = x + y T7 . Ley asociativa : x • (y • z) _ (x • y) T8 . Ley de DeMorgan : xy=x+y T9 . Ley de De Morgan generalizada : T10. Ley del consenso generalizado :

x • (x + y) = x x • (x + y) = x • y •z x + (y + z) = (x + y) + z x +y=x •y x y z ... = x + y + z + .. . x + y + z . . .= x •y •z • . . . x •y + x • z + y z = x y +x• z (x+y) •( x+z) •( y+z)=(x+ y) •(x+z)

FUNCIONES DE CONMUTACIÓN Son funciones que se definen sobre el conjunto B = (0, 1 } del álgebra de conmutación . Estricf: Bx . . . xBxB = Bn -4 B . tamente se definen como : Así una función de n variables asigna un valor o imagen de B (0 ó 1) a cada punto del espacio B ' : (x 1 ,x 2 , . . .,x,) . Por ejemplo, una función de tres variables : f(x, y, z) se puede definir de la siguiente forma: f(0,0,0) = 0, f(0,0,1) = 1, f(0,1,0) = 0, f(0,1,1) = 1, f(1,0,0) = 0, f(1,0,1) = 0, f(1,1,0) = 1, f (1,1,1) = 1 . A veces no todas las combinaciones de las variables tienen imagen, decimos entonces que la función es incompleta o que está incompletamente especificada. Cuando esto sucede, por ejemplo, en la combinación (x 0 ,Y 0 ,z0) lo simbolizamos de la siguiente forma : f(x0,y o,z 0 ) = d ó f(x 0 ,Y 0,z 0) = -, donde los símbolos "-" y "d" (don't care) son llamadas inespecificaciones o indeterminaciones . REPRESENTACIÓN DE FUNCIONES Existen diversos modos de representar las funciones de conmutación . Algunas formas utilizan tablas o mapas (modos gráficos) . Otras, consisten en expresiones algebraicas . A continuación daremos algunos detalles sobre las formas de representación utilizadas en este texto . - Tablas de verdad. En una tabla se representan dos columnas . En la primera de ellas se escriben todas las combinaciones de las variables de entrada en orden binario . En la otra columna se anota el valor que toma la función para cada combinación de las variables de entrada . A continuación se muestra un ejemplo para una función de tres variables . Nótese que para n variables se necesitaría una tabla de 2n filas . Así, este tipo de representación es más interesante para funciones de un número reducido de variables .


ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

xyz

21

f

000 001 010 011 100 101 110 111

Mapa de Karnaugh . Es también una forma gráfica . Las variables de la función se dividen en dos grupos . Uno de ellos se sitúa en el eje horizontal de una tabla y el otro en el eje vertical . Las combinaciones de cada grupo de variables se escriben en el orden del código Gray . Así, disponemos de una cuadrícula en cuyas celdas se anota el valor de la función para la combinación de las variables asignada . La propiedad principal es que dos celdas geométricamente adyacentes también corresponden a códigos lógicos adyacentes . En el ejemplo se muestra un mapa para una función de 4 variables . En los problemas aparecen ejemplos para 5 variables . Al igual que en el caso de las tablas de verdad, este tipo de representación aumenta su tamaño de forma potencial con el número de variables . Si el orden en que se escriben los valores de las variables es el binario natural, el mapa es denominado binario . -

ab c

11

10

00 0

0

0

0

01

1

1

0

0

11

0

0

1

1

10

0

1

1

1

f

- Expresiones o fórmulas . En este caso se utiliza una expresión algebraica para representar las funciones . Se combinan las variables con los operadores NOT I , AND 2 y OR . Aquellas combinaciones de las variables que hagan 1 (ó 0) la expresión serán las combinaciones en que la función es 1 (ó 0) . Algunos tipos de fórmulas son de un interés particular . Entre las más destacables están las formas canónicas y estándares . Tanto unas como otras tienen en común que son fórmulas compuestas únicamente por suma de productos, o bien, únicamente por producto de sumas . En las formas canónicas, además, se cumple que los productos son siempre mintérminos y las suNOT(x) = x. 2 El símbolo del operador AND ( •) puede omitirse: a • b = a b . 1


22

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

mas son maxtérminos . Tenemos así que las formas canónicas son sumas de mintérminos o producto de maxtérminos . A continuación se muestra para la función de cuatro variables del ejemplo anterior expresiones en forma canónica y estándar tanto de sumas como de productos . - Suma de mintérminos : f(a,b,c,d)=abcd+abcd+abcd+abcd+abcd+abcd+abcd= =m1+m5+m6+m10+m11+m14+m15=E(1,5,6, 10, 11, 14, 15) . Producto de maxtérminos : f(a,b,c,d)=(a+b+c+d)(a+b+c+d)(a+b+c+d)(a+b+c+d) (a+b+c+d)(a+b+c+d)(a+b+c+d)(a+b+c+d)(a+b+c+d)= = M0 M2 M3 M4 M7 M8 M9 M12 M13 = IT (0, 2, 3, 4, 7, 8, 9, 12, 13) . - Suma de productos : f(a,b,c,d)=acd+ac+bcd . - Producto de sumas : f(a, b, c, d) = (c + d) (á + c) (a + c + d) (a + b + c). Mientras que las dos primeras formas son únicas para cada función (canónicas), las dos siguientes (es- tándares) no lo son, pero presentan una mayor simplicidad . Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Demostración de teoremas e identidades . - Manejo de expresiones lógicas . - Representación mediante tablas, mapas y formas canónicas y estándares . PROBLEMAS RESUELTOS Problema 1 .- Demuestre los teoremas booleanos en base a la definición del álgebra . Solución P1 .-Nos basaremos en los postulados del álgebra de Boole : P1 . Identidad : x+ 0= x x- 1= 1 P2 . Conmutativa : x+ y= y+ x x • y= y . X x • (y + z) = x • y + x • z P3 . Distributiva : x + (y - z) = (x + y) - (x + z) 0 P4 . Complemento : x+ 1 x• Los teoremas y sus demostraciones se relacionan a continuación . T1 . Idempotencia : x+ x= x x • x= x 1 =(x+x)(x+x)=x+xx=x+0=x x+x=(x+x) • x-x=x-x+0=x-x+x-x=x-(x+x)=x- 1 =x Hemos aplicado los postulados PI, P4, P3, P4 y P1, en ese orden . da e B, 3' a' E B 1 a'= á T2 . Unicidad del complemento : Si existieran dos complementos, al y a2 se cumplirían las siguientes igualdades (por P4) : a .a2 =0 a+a 1 =1 a+a 2 =1 a .a1=0 Entonces : al =al • 1=a1 •( a+a2),=a1 -a+ al •a2=0+a1 •a 2=a •a 2+a1 •a2= =(a+al)-a2=1 •a 2=a2

x=

x=


ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

23

Se han aplicado los postulados P1, P4, P3, P2, P4, P3 y P1, en ese orden . x • 0= 0 T3 . Elementos dominantes : x + 1= 1 x+x)= x +1 • x_= x+x=1 x+1=(x+1) •1 =(x +1) •( x •0 =x •0 +0=x •0 +x •x =x(O+x)=x •x =0 Los postulados utilizados son P1, P4, P3, P2, Pl y P4 . T4 . Lev involutiva: (x) = x

(x)=(x)+0=(x)+x • x=[(X)+x] • [(X)+x]=[(X)+x] • 1 = =[(x)+x](x+x)=x+ [x •( x)]=x+0=x donde se han aplicado PI, P4, P3, P4, P2, P4, P2, P3, P4 y P1 . x • (x + y) = x T5 . Ley de absorción : x + x • y = x x+x •y =x •1 +x •y =x •( 1+y)=x •1 =x x •( x+y)=(x +0) •( x+y)=x +0 •y =x+0=x En esta demostración hemos usado PI, P3, T3 y Pl en ese orden . x • (x + y) = x • y T6. Ley del consenso: x + x • y = x + y x+ x •y =(x+x) •( x+y)=1 •( x+y)=x+y x •( x+y)=x •x +x •y =0+x •y =x •y Los postulados en que nos hemos apoyado son P3, P4, P2 y P1 . T7. Lev asociativa : x • (y • z) = (x • y) • z x + (y + z) = (x + y) + z Para demostrarla es necesario demostrar previamente tres lemas : (ambos por T5) a = a • [a + (b + c)] L1 . a = a + a • (b • c) cuya demostración es : a = a • [b + (a + c)] L2 . a = a + b • (a • c) a •c )=(a+b) •( a+ a •c )=(a+b) • a =a a+b •( .b+a=a a •[ b+(a+c)]=a •b +a •( a+c)=a donde hemos utilizado P3 y T5 . L3 . a=a+b •(c •a ) a=a •[ b+(c+a)] por P2 y L2. Ahora demostremos la ley asociativa : (por L2, L3 y L1) x • (y • z) = [x + z • (x • y)] • ([y + z • (x • y)] • [z + z • (x • y)]) _ (porP3) =[x+z .(x .y)] .(y •z +z .(x •y ))= (aquí también hemos aplicado P3) = x (y • z) + z (x • y) = (esto, por P2) = z (x y) + x (y z) = (donde hemos aplicado P3) = [z + x • (y • z)] • [x • y + x (y • z)] = (por L3) = z . [x • y + x • (y • z)] = (porP3) = z • [x + x • (y • z)] [y + x • (y • z)] = z (por LI, L2 y finalmente P2) . = z • (x • y) = (x • y) • Luego, hemos probado x • (y • z) = (x • y) • z Por otra parte, x+(y+z)=x [z+(x+y)]+(y •[ z+(x+y)]+z • [z + (x + y)]) = (porL2, L3 y LI) = x • [z + (x + y)] + (y + z) • [z + (x + y)] = (por P3) _ [x + (y + z)] • [z + (x + y)] = (aquí también hemos aplicado P3) = [z + (x + y)] • [x + (y + z)] = (esto, por P2)


y OR (+) en el álgebra de

24 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

= z • [x + (y + z)] + (x + y) • [x + (y + z)] = (donde hemos aplicado P3) =z+(x+y) •[ x+(y+z)]= (porL3) = z + x • [x + (y + z)] + y • [x + (y + z)] = (por P3) = z + (x + y) = (x + y) + z (por LI, L2 y finalmente P2) . Con lo que queda probado que x + (y + z) _ (x + y) + z . T8 . Ley de DeMorgan : x y = x + y x+y=x .y La base de la demostración es que como el complemento es único y cumple el postulado P4, entonces, si A + B = 1 y A • B = 0 es porque A = B, esto es : A=BOA+B=1 y A B=0 . Sean A = x + y, B = x • y ; demostremos que A = B . A +B=x+y+x •y =x+y+x=x+x+y=1+y=1 (T6, P2, P4 y TI) . A•B =(x+y) •x•y =x •x•y +y •x•y =0 •y +0 •x =0+0=0(P3,P2,P4,T3,T1) . Sean A = x y, B = x + y ; demostremos que A = B . A +B= x •y +x+y=y+x+y=x+y+y=x+1=1 (T5, P2, P4 y T3) . A•B =x •y•( x+y)=x •y•x +x •y•y =0 •y +x •0 =0+0=0(P3, P2, P4, T3, TI) . T9 . Ley de De Morgan generalizada : x + y + z . . .=x ... xyz . . .=x+y+z+ . .x =x(yz . . .)=x+yz . . .=x+y(z . . .)=x+y+z . . .= xyz . . . =x+y+z( . . .)= . . .=x+y+z+ . . . x+y+z . . .=x+(y+z+ . . .)=x • y + z . . .=x y+(z . . .)=x y z+ . . .= =x +( . . .)= . . .=x .. En las dos demostraciones se utilizan los teoremas T7 y T8 alternativamente . T10. Lev del consenso generalizado : =x .y+x x +x +y (x+y) x+z) y+z)=(x+y) x+z) = =x x +x +y +x +y (P1) =x +x +y x+x)= (P4) = =x .y+x +y +y (P3) =x .y+x •y•z +x •z +x .z •y = (P2) =x .y+x •z (T5) • •(x+z) •( •(x+z) (x+y) (y+z)=(x+y) y+z+0)= (P1) =(x+y) •( x+z) •( y+z+x • x) = (P4) =(x+y) •( x+z) •( y+z+x) •( y+z+ x)= (P3) =(x+y) x+y+z) x+z) x+z+y)= (P2) = (x + y) • (x + z) (T5)

•y•z

•y•z

•y

•z

•z

•y

• •

•y•z• .

•z

•(

•(

•(

•z •z •y •z •z•1 •y •z •z•( •z •z•x •z•x

•(

•(

•(

Problema 2.- Demuestre los teoremas booleanos en el álgebra de conmutación comprobando su validez mediante tablas de verdad . Solución P2 .- A partir de la definición de las operaciones AND ( •) conmutación, comprobaremos : - Idempotencia : x = x + x, x = x • x; - Elementos dominantes : x + 1 = 1, x • 0 = 0 ;


ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

25

- Involutiva : x = x; - Absorción : x (x + y) = x ; x + x y = x, - Consenso : x (x + y) = x y ; x + x y = x + y, - Asociativa: (x + y) + z = x + (y + z), (x y) z = x (y z) ; -LeyDeDeMorgan : xy=x+y, x+y=xy . En las dos tablas siguientes podemos ver la comprobación de todos los teoremas excepto el de la ley asociativa que se prueba a continuación . x y

x

x+x

xx

x+1

x0

x

p(donde p=x)

x+xy

x(x+y)

0 0 0 1 1 0 1 1

0 0 1 1

0 0 1 1

0 0 1 1

1 1 1 1

0 0 0 0

1 1 0 0

0 0 1 1

0 0 1 1

0 0 1 1

x y

x+xy

x+y

x(x+y)

xy

xy

x+y

x+y

xy

0 0 0 1 1 0 1 1

0 1 1 1

0 1 1 1

0 0 0 1

0 0 0 1

1 1 1 0

1 1 1 0

1 0 0 0

1 0 0 0

La comprobación de la ley asociativa : xyz

x+y

(x+y)+z

y+z

x+(y+z)

xy

(xy)z

yz

x(yz)

000 001 010 011 100 101 110 111

0 0 1 1 1 1 1 1

0 1 1 1 1 1 1 1

0 1 1 1 0 1 1 1

0 1 1 1 1 1 1 1

0 0 0 0 0 0 1 1

0 0 0 0 0 0 0 1

0 0 0 1 0 0 0 1

0 0 0 0 0 0 0 1

Problema 3.-Para elementos del álgebra de conmutación, pruebe la validez de : b)a+b=a+c-+b=c ; a) a b=a c- b=c ; c) a •b =a cya+b=a+c->b=c . Solución P3 . a) No se cumple, por ejemplo, para a = 0, b = 1, c = 0 . b) No se cumple, por ejemplo, para a = 1, b = 1, c = 0 . c) Sí se cumple . Se puede comprobar que para cualquier combinación de valores se cumple . También se puede demostrar algebraicamente :


26

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

b=b+a •b =b+a •c =(b+a) •( b+c)=(a+b) •( b+c)=(a+c) •( b+c)= =a •b +c=a •c +c=c . Se han aplicado la ley del consenso, las propiedades distributiva y conmutativa, y las igualdades a • b= a • c y a+ b= a+ c . Problema 4 .- Compruebe las siguientes igualdades: a) x y+

xz

+ y z = x y+ x

z

(ley del consenso generalizado)

b)x(x+y)+z+zy=y+z c)xy+xyz=xy+z d)w+wx+yz=w(y+z) e)w[x+y(z+w)]=w+xy+xz f) (w+x+ y)

(w+x+y)

(y+z) (w+z)= (w+ y) (y+z)

Solución P4 . a)xy+xz+yz=xy+xz+(x+x)yz=xy+xz+xyz+xyz=

=xy+xyz+xz+xzy=xy(1+z)+xz(1+y)=xy+xz donde hemos aplicado P4, P3, P2, P3, T3 y P1 b)x(x+y)+z+zy=xy+z+y=y+yx+z=y+zporT6,P2yT5 (por la ley del consenso : u + u z = u + z donde u = x y) c) x y + xyz = x y + z porT5yT8 d)w+wx+yz=w+yz=wyz=w(y+z) e)w[x+y(z+w)]=w+x+y(z+w)=w+xy(z+w)=w+x(y+z+w)= por T8yT6 =w+xy+xzw=w+xy+xz fl(w+x+y)(w+x+y)(y+ z) (w+z)= [(w+y)+xx](y+z)(w+z)= por P2,P3,P4,PlyT10 . =(w+y)(y+z)(w+z)=(w+y) (y+z) Problema 5.- Reduzca las siguientes expresiones del álgebra de Boole al número de literales solicitado al lado de cada una de ellas . a)abc+abc+abc+abc+abc b) b c + a c + a b+ b c d c)[cd+a]+a+cd+ab d) [(a + c + d) (a + c + d) (a

(a cinco literales)

(a cuatro literales) (a tres literales)

+ c+

d) (a + b)]

Solución P5. a) abc+abc+abc+abc+abc= =abc+abc+abc+abc+abc+ábc= =abc+abc+abc+abc+abc+ábc= =ab(c+c)+ab(c+c)+(a+a)b c=

(a cuatro literales)

(ya que x + x = x) (por la propiedad conmutativa)


ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

27

(ya que x+x= 1) =ab 1 +áb 1+ 1 bc= (ya quex • 1=1 •x =x) . = a b + a b + b c = b (a + c) + a b b) b c + a c + a b + b c d = b c + b c d + a c + a b =(por la propiedad conmutativa) (ya que x + x y = x) =bc+ac+ab=bc+ac+ab(c+c)= (por la propiedad distributiva) = b c+ a c+ a b c+ a b c= =bc(1+a)+ac(l+b)= (ya que 1 +x= 1) . =bc+ac c) aplicando la ley de De Morgan a la expresión, obtenemos : (por la propiedad conmutativa) cdá + a + c d + a b =cdá + a + a b + c d = = c d + a + c d = (ya que x + x y = x) . =a+cd (yaquex+x=x) d)(a+c+d)(a+c+d)(a+c+d)(a+b)= (yaquex=xx) =(a+c+d)(a+c+d)(a+c+d)(a+c+d)(a+b)= (por la propiedad distributiva) . = (a + c) (a + d) (a + b) = a + b c d

Problema 6.- Verifique si se cumplen o no las siguientes igualdades : a)M(a,b,c)+M(d,e,f)=M(a+d,b+e,c+f) . b) M (a, b, c) • M (d, e, f) = M (a • d, b • e, c • f) . c) M (a, b, M (c, d, e)) = M (M(a, b, c), d, M(a, b, e)]. donde M (x y, z) es la función mayoría de x y, z: M (x, y, z) = x y + x z + y z. Solución P6 .

a) No se cumple pues para a = 0, b = 0, c = 1, d = 0, e = 1 y f = 0 se tiene que M(a, b, c) + M(d, e, f) = M(0, 0, 1) + M (0, 1, 0) = 0 + 0 = 0 y, sin embargo : M(a+d,b+e,c+f)=M(0, 1, 1)=1 . b) No se cumple, pues para a = 0, b = 1,c = 1, d = 1, e = 0 y f = 1 se tiene que M(a, b, c) M (d, e, f) = M(0, 1, 1) • M(1, 0, 1) = 1 • 1 = 1 mientras que M(a •d ,b e,c •f)=M(0,0,1)=0 c) Sí se cumple pues M[a, b, M(c, d, e)] = M[a, b, c d + c e + d e] _ =ab+a(cd+ce+de)+b(cd+ce+de)=ab+acd+ace+ade+bcd+bce+bde y, por la otra parte : M[M(a, b, c), d, M(a, b, e)] = M[a b + a c + b c, d, a b + a e + b e]= =(ab+ac+bc)d+(ab+ac+bc)(ab+ae+b e)+d (ab+ae+b e)= =abd+acd+bcd+ab+abe+abc+ace+ a b c e+ abce+bce+abd+ade+bde= = a b+ a c d+ b c d+ a c e+ b c e + a d e+ b d e, luego ambas expresiones son iguales . Problema 7.- Obtenga la tabla de verdad de las siguientes expresiones : a)f=wyz+xy+wy) b) f= (w+x+y) (x+z) (w+x) .


28

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P7 . a) Si f = w y z + x y + w y, entonces es fácil deducir cuándo f = 1 : /wyz=1 ==> w=1,y=1,z=1 f=1 f=> xy=1 ~x=1,y=1 \wy=1~w=1,y=1 con ello, la tabla de verdad es : wxyz

f

wxyz

0000 0001 0010 0011 0100 0101 • 110 • 111

0 • • • • • 1 1

1000 1001 1010 1011 1100 1101 1110 1111

f

b) Si f = (w + x + y) (x + z) (w + x), es fácil encontrar los ceros de f: /w+x+y=O==> w=0,x=0,y=0 f=0e-> x+z=0~ x=0,z=0 \w+x=0~ w=0,x=0 con ello, la tabla de verdad es :

Problema 8.- Obtenga los a) b) c)

wxyz

f

wxyz

0000 0001 0010 001 1 0100 0101 • 110 0111

• 0 0 • 1 1 1 1

1000 1001 1010 1011 1100 1101 1110 1111

mapas de las siguientes funciones : f = E (5, 6, 7, 12) + d(1, 3, 8, 10) . f =11 (10, 13, 14, 15) • d(0, 1, 2, 8, 9) . f = E (1, 2, 3, 8, 12, 23) + d(17) .

f


ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

29

Solución P8. a) f (a, b, c, d) = E (5, 6, 7, 12) + d(1, 3, 8, 10)

c

11

10

00

0

0

1

d

01

4

d

0

o

11 d

1

0

0

10 0

1

0

4

f b) f (a, b, c, d) = fI (10, 13, 14, 15) + d(0, 1, 2, 8, 9) ab c

01

11

10

00

d

1

1

d

01

d

1

0

d

11

1

1

0

1

10 d

1

0

0

f

c) f (a, b, c, d, e) = E (1, 2, 3, 8, 12, 23) + d(17) cd 00

0

0

1

1

0

0

0

0

01

1

0

0

0

0

0

0

d

11

1

0

0

0

0

0

1

0

10

1

0

0

0

0

0

0

0

f

Problema 9 .- Obtenga las formas normales en suma de productos y producto de sumas de las siguientes expresiones : a)f=(ab+ac)(ab)) b)f=xy(v+w)[(x+y) vi . c)f=x+yz) d)f=(a+b+c)(d+a)+bc+ a c .


30

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P9. a) (a b + a c) (a b) = a b (por la ley del consenso) Con esto tenemos una forma en suma de productos, donde el producto p = a b es el único. También tenemos un producto de sumas, donde los términos suma son dos : s1 = a y s = b . b) x y (v + w) [(x + y) v] = x y (v + w) (x + y) v = v x y (x + y) = v x y (ley de absorción) . Con esto tenemos una forma en suma de productos, donde el producto p = v x y es único . = v, s = x, También tenemos un producto de sumas, donde los términos suma son tres : s y. c) x + yz, es suma de dos productos, = P = y z . Por otra parte, aplicando la propiedad distributiva : x + yz = (x + y) (x + z) . Con ello tenemos una expresión en producto de sumas : s1 =x+y, s =x+z . d)f=(a+b+ c) (d + a) + b c + a c Para reducirlo a una forma en producto de sumas operaremos sobre la expresión de f aplicando repetidas veces la propiedad distributiva : (a + b + c) (a + d) + b c + a c = (a + b + c) (a+d)+(a+b)c= =[(a+b+c)(a+d)+(a+b)] [(a+b+c)(a+d)+c]= =[(a±b+c+a+b)+(a+d+a+b)] [(a+b+c+c)(a+d+c)]= =(a+b+ c) (a+b+ d) (a+c+ d) . Obtenemos por tanto un producto de tres términos suma : s1 = a + b + c, s = a + b + d y s3=a+c+d. De forma similar se puede obtener una expresión en suma de productos : (a + b + c) (a + d) + b c + a c = [a + (b + c) d)] + a c + b c = a + a c + b c + (b + c) d= =a+bc+bd+c d . Son, por tanto, cuatro términos producto : = a, = b c, p = b d, P = c d .

2

2

SI

3

pl X, 2

2

2

pl

3

P2

4

Problema 10.- Determine y exprese en forma de mintérminos y maxtérminos las funciones f, + f2 y f, - f2, siendo : f, = II (1, 2, 3, 5, 6, 7, 13, 14, 15) ; f2 = E (0, 4, 8, 9, 10, 14, 15) Repetir para f, O f2 y la equivalencia : f, O f2.

1 2 1

Solución P10.- Para expresar la función f + f como suma de mintérminos hay que tener en consideración que todos los mintérminos de f y todos los mintérminos de f son mintérminos de f + f ya que 1 + x = 1 . Entonces : f + f = E (0, 4, 8, 9, 10, 11, 12, 14, 15), y por exclusión : f + f = U (1, 2, 3, 5, 6, 7, 13) . Para expresar la función f . f , es mejor comenzar por la expresión en forma de producto de maxtérminos ya que debido a que 0 • x = 0 podemos decir que todos los maxtérminos de f y todos los de f son maxtérminos de f • f . Entonces : f • f =11(1, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15) =E (0, 4, 8, 9, 10) . En cuanto a la función f O f , para que sea 1 es preciso que f y f sean distintas . Por tanto, los mintérminos de f O f son los mintérminos de f que no lo son de f y los de f que no lo son de f : f = E (11, 12, 14, 15) = fI (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13) .

1 2 l 2

1

1 2

1 2

2

l 2

1 f2

2

1

1 2

1 2 1 2

1

1 2

2

2


ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

31

Finalmente, como f 1 0 f2 es la función negada de f 1 O+ f2 , tendremos : f 1 O+ f2 = fI (11, 12, 14, 15) = E (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13) . Problema 11 .- Sea el circuito combinacional con cuatro entradas A, B, C y D, tres salidas intermedias P, Q y R y dos salidas T 1 y T2, como se muestra en la figura . Sólo Q y R pueden tener inespecificaciones .

T 1 = E (0, 1, 3, 4, 5, 7, 11,15) T 2 = E (2, 3, 6, 7, 11,15) a) Suponiendo que tanto G 1 como G2 son puertas AND, obtenga el mapa de la función (es decir, la función P que tiene el menor número de mintérminos) que permite obtener Pmin T 1 y T2. • Obtener los mapas para Q y R correspondientes al Pmin anterior. Indique, explícitamente, las posiciones de las inespecificaciones . • Suponiendo que G 1 y G2 son puertas OR obtenga el mayor Pmax (la función P con mayor número de mintérminos) y sus mapas correspondientes para a y R. • ¿ Pueden obtenerse Q, P y R si G 1 es una puerta AND y G2 una puerta OR? ¿ Y si G 1 es una puerta OR y G2 una puerta AND? Solución Pll . a) G 1 y G2 son puertas AND . En este caso T 1 = Q . P y T2 = R • P, por tanto, Q y P tienen que tener todos los mintérminos de T 1 (o sea : 0, 1, 3, 4, 5, 7, 11, 15), y R y P tienen que tener todos los mintérminos de T2 ( o sea : 2, 3, 6, 7, 11, 15) . Entonces P como mínimo tiene que contener todos esos mintérminos, luego : Pmin = E (0, 1, 2, 3, 4, 5, 6, 7, 11, 15) . b) La función Q tiene al menos los mintérminos de T1 ; R tiene los de T 2 . Ahora bien, Q tiene ceros en las celdas en que Pmin vale 1 pero T 1 no es 1 ; por ejemplo, 2 es mintérmino de Pmin pero no lo es de T 1 , por lo que 2 es un 0 de Q . Lo mismo ocurre para R con respecto a T2 Y Pmin • Por último, en las celdas donde T 1 vale 0 y Pmin también es 0, Q está inespecificada ; algo similar ocurre para R respecto a T 2 y P min . Por tanto : Q = E (0, 1, 3, 4, 5, 7, 11, 15) + d (8, 9, 10, 12, 13, 14) .

R = E (2, 3, 6, 7, 11, 15) + d (8, 9, 10, 12, 13, 14) . c) G 1 y G 2 son puertas OR . En este caso T 1 = Q + P y T2 = R + P, por tanto donde T 1 sea cero también deben de serlo forzosamente Q y P (o sea en 2, 6, 8, 9, 10, 12, 13, 14) y donde T2 lo sea deberán serlo


32

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

también R y P (o sea en 0, 1, 4, 5, 8, 9, 10, 12, 13, 14) . Así, P tendrá como máximo los mintérminos que sean comunes a TI y T2 : Pmax = Y- (3, 7, 11, 15) . Q y R contendrán los mintérminos que le faltan a P para completar los de T I y T2 : Q = E (0, 1, 4, 5) + d (3, 7, 11, 15) . R = E (2, 6) + d(3, 7, 11, 15) . Las celdas en que Q está inespecificada son aquellas en las que T I vale 1 y Pmax también es 1 . Algo similar ocurre para R respecto a T2 y Pmax • d) No es posible, ya que si G 1 es una AND y G 2 una OR : T I = Q • P, T 2 = R + P . Entonces, en aquellos valores en los que T I es 1 y T 2 es 0 (como por ejemplo en 4) sería imposible encontrar un valor adecuado para la función P . Si P valiese 1 forzaría T2 = 1 y si valiese 0 forzaría T I = 0) . Si G 1 es una OR y G 2 es una AND, tampoco es posible ya que T I = R + P y T2 = Q • P . Así, en aquellos puntos en que T I = 0 y T2 = 1 (como por ejemplo en 6) no se puede encontrar un valor adecuado para P.

PROBLEMAS CON SOLUCIÓN RESUMIDA

Problema 12.- Encuentre los complementos de las siguientes funciones : a)f=(bc+adL(ab+cd)_ b)f=bd_+ab c+ acd+b) c) f = [(a b) a] ((a b) b]. d)f=ab+cd .

Solución P12 . a)f=(E+c)(a+d)+(á+b) (c+d) . b)f=bd+ábc+acd+ábc=ab+acd+bd,entonces : f = (a + b) (á + c + d) (b + d) . c) Operando obtenemos f = 0 luego f = 1 . d)f=(á+b) (c+d) .

Problema 13 .- Demuestre que x, O+ x 2

+p . . . Oe

x„ = (x, O . . . O+

x ;) 0 (x ; + , ©

donde a 0 b= a O b .

Solución P13.-La operación XOR cumple la propiedad asociativa . Entonces : (x 1 O+ . . . $ xi) 0 (xi+1 O+ . . .(9 x n ) = ( x1 0 . . . O+ xi) O (xi+1 © . . . O+ xn) =

= xlm . . . mxi E ) xi+l O+ . . . 0 x n

. . . O+ x„) ;


ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN

33

Problema 14 .- Escriba las siguientes func iones como suma de mintérminos : a)f(a, b, c)=a+b+c . b) f (a, b, c) = (a + b) (b + c) . c)f(a, b, c, d)=(ab+bcd)+acd .

Solución P14 . a) f (a, b, c) = E (0, 1, 3, 4, 5, 6, 7). b) f (a, b, c) = E (0, 2, 3, 4, 5, 6, 7) . c) f (a, b, c, d) = E (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10, 11) . Problema 15.- Exprese las siguientes funciones como producto de maxtérminos : a) f (a, b, c, d) = (a + c) d + b d. b) f (x, y, z) _ (x y + z) (y + x z) . c)f(a,b c)=(abc+abc) d) f (a, b, c) _ (a b + c (a + b)) (b + c) .

Solución P15 . a) b) c) d)

f(a, b, c, d) =11(0, 2, 4, 6, 8, 10, 12, 13, 14) . f(x, y, z) =1-1(0, 1, 3, 4, 5, 6, 7) . f(a, b, c, d) =11(5, 6) . f(a, b, c) =11(0, 2, 4, 6) .

Problema 16.- A partir de las tablas de verdad de las siguientes funciones, obtenga sus expresiones algebraicas. xy

f,

xy

f2

xy

f3

00 01 10 11

1 0 1 0

00 01 10 11

0 1 1 0

00 01 10 11

1 1 1 0

Solución P16.-Directamente de las tablas : f1 =xy+xy=y. f2=xy+xy=xODy. f3=xy+xy+xy=x+y=xy .


34

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 17.- Obtenga las expresiones algebraicas de las siguientes funciones : X y z

f,

f2

f3

f4

f5

f6

000 001 010 011 100 101 110 1 11

0 1 0 0 0 1 0 0

1 0 0 1 1 1 0 0

0 0 0 0 1 1 0 0

1 1 1 0 1 1 1 1

1 0 1 0 1 1 1 1

1 0 1 0 1 0 1 0

Solución P17 . f =xyz+xyz=yz . f2 =xyz+xyz+xyz+xyz=xy+yz+xyz . f3 =xyz+xyz=xy . f4 =x+y+z . f =x+z f6 =xyz+xyz+xyz+xyz=z .

Problema 18.- Interprete las siguientes expresiones lógicas considerando que el dato tiene n bits. (Para ayudarse puede considerar un caso particular de n, por ejemplo: n = 4) . a)z=xo©x1(D . . .©x,1)bz=n-0 x1(D . . .(D Xn_2 . k = n - 2, . . ., 1, 0, con zn _ 1 = xn - 1 c) zk = xk+ 1 © Xk, k = n - 2, . . ., 1, 0, con zn _ 1= xn _ 1 . d) zk = zk+ 1 (D Xk, k = n - 1, n-2, . . . . 1,0 e) zk = xk q) yk, donde yk = yk 1 + xk 1 , con k > 1, 2, . . ., n - 1 e yo = 0. Solución P18 . a) La operación XOR de n variables se hace 1 si y sólo si hay un número impar de unos en las n variables . Por tanto, en este caso z es un detector de paridad . b) La función z forma parte de la palabra den bits dada por : x0 x 1 x 2 . . . x n - 2 xi- 1 . Entonces, z es el bit de paridad par para x 0 x 1 x 2 . . . x n _ 2 . c) Si se particulariza paran = 4 y se obtiene la tabla de verdad de las 4 funciones se puede concluir fácilmente que se trata de una conversión binario-Gray . d) Procediendo como en el apartado anterior se puede concluir que se trata de una conversion de código Gray a binario . e) Si se considera el caso particular de n = 4 y se obtiene la tabla puede observarse que z 3-0 = Ca2(x3-0)


Capítulo 3 ANÁLISIS DE CIRCUITOS COMBINACIONALES

Un circuito digital combinacional es aquel que implementa funciones de conmutación cuyas salidas en un instante, t, dependen sólo del valor de las entradas en ese mismo instante . El circuito consta de puertas lógicas interconectadas entre sí sin que haya lazos de realimentación . Hay dos enfoques principales : si es conocido el circuito y se desea establecer cuál es la operación que realiza, se trata del análisis, que es el aspecto que se trata en este Capítulo ; si se plantea el problema contrario, conocida la función hay que obtener el circuito, se trata del diseño o síntesis, lo que se aborda en el Capítulo siguiente . circuito

combinacional z(t) = f(x(t))

ANÁLISIS DE CIRCUITOS El objetivo principal del análisis de un circuito combinacional es, por tanto, obtener una representación de la función de conmutación que implementa . A este objetivo se le llama análisis lógico del circuito . En algunos casos es posible, además, obtener una descripción verbal de la operación del circuito (del tipo "hace la suma", "compara números", etc) . Además, incluso cuando es posible esta operación a partir de las tablas o expresiones lógicas es difícil salvo que se esté sobre aviso . En este texto no se hará el paso a la descripción verbal salvo que se indique explícitamente en el enunciado (véase, p . ej ., el problema 4) . Aunque el análisis lógico es el objetivo principal no es el único aspecto que debe contemplar un buen análisis de un circuito . Otros aspectos que se deben considerar son : - El coste del circuito . Una manera de medir el coste es a través del número de puertas lógicas y conexiones entre puertas del circuito . - Un análisis de parámetros eléctricos . Se debe establecer la tecnología en la que se im-

35


36

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

plementa el circuito y evaluar, en función de las características eléctricas de la misma, el rendimiento del circuito en cuanto a márgenes de ruido, fan-in y fan-out, potencia disipada, etc . - Un análisis temporal . Este tipo de análisis consiste en, dado un patrón de entradas, determinar la forma de onda de las señales de salida considerando los retrasos de propagación de las puertas lógicas . El análisis temporal sirve para verificar si el circuito realiza correctamente la función de conmutación o si, por el contrario, existen fenómenos transitorios como por ejemplo azares, así como para calcular los valores máximos y mínimos de los tiempos de propagación que determinan la velocidad de operación del circuito . Este Capítulo está centrado en el análisis de circuitos a nivel de puertas lógicas . Los aspectos que se tratan son los de análisis lógico, mostrando métodos generales válidos para cualquier circuito e independientes del tipo de puerta, y métodos específicos para circuitos con sólo NAND o sólo NOR . Estos procedimientos son explicados en los problemas 1 y 3 respectivamente . Además, en este Capítulo también se incluyen algunos casos de análisis del coste del circuito, medido en función del número de puertas y conexiones del circuito y de análisis temporal, analizando circuitos que presentan azares . Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Análisis lógico según el procedimiento general . - Análisis lógico de circuitos sólo NAND (y sólo NOR) . - Análisis temporal . PROBLEMAS RESUELTOS Problema 1 .- Analice a nivel lógico el siguiente circuito combinacional . Ponga también la función en forma de suma de productos o producto de sumas y realice el nuevo circuito a partir de estas expresiones . 1

z

Solución Pl .- El proceso de análisis de un circuito combinacional consiste en, a partir de un circuito, obtener una expresión algebraica, o bien su tabla de verdad o mapa de Karnaugh . Para ello se puede proceder bien desde las entradas hasta las salidas o bien desde las salidas hasta las entradas . Deben encontrarse expresiones para la salida de cada puerta en función de sus entradas :


ANÁLISIS DE CIRCUITOS COMBINACIONALES

37

x +y+z)(z+y)i z

z+

A partir de esta expresión puede obtenerse otra simplificada o la tabla de verdad o el _ mapa de Karnaugh, y un nuevo circuito : f=(x+y+ z) ( z + y ) z = z (y + z) = y z

00

01

11

10

0

1

1

0

0

0

0

0

z

3--

Problema 2.- Realice un análisis lógico del circuito representado en la figura . Obtenga las expresiones en forma de suma de productos y producto de sumas . Liste los mintérminos y maxtérminos correspondientes . Determine el coste . xl

>_1 - f xl X2 -

x3

x3 X2

D --X 1 x2

Solución P2.- Comencemos determinando el coste del circuito . Este se calcula : 1 .- dando el número de puertas del circuito ; 2 .- dando el número de entradas a puertas (conexiones) del circuito y el número de salidas . Además, a veces se evalúa el "coste" temporal estableciendo los retrasos máximos y mínimos que experimentan las señales de entrada al propagarse hasta las salidas . Para ello, lo más habitual es considerar una unidad de retraso por puerta . En este circuito el coste es el siguiente:


38

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

coste n° puertas

7

n° conexiones

16 entradas + 1 salida

retraso máximo

3 niveles de puertas

retraso mínimo

2 niveles de puertas

Análisis lógico . Teniendo en cuenta la función lógica que realiza cada puerta, se obtiene la siguiente expresión para f :

f = x3

(x,x 2 ) + x 3 (x,x2 )

( x 3 x2)

+x 1 x2 = x 3 (x 2 +x,) +x 3 (x2+x,) (X2 +X3) +x,x 2

f=x 1x3 +x3x2 +x1x2x3 +x 1 x2 =x 1 x 3 +x3x2 +x I x2 =x3 (x2 +x 1 )

+ x 1 x2

A partir de esta expresión se obtienen otras en forma sp y ps, el mapa de Karnaugh y un nuevo circuito que implementa la función :

fsp

= X 3 (x ] x2 ) +x 1 x 2 = x3 +x 1 x2

fps

=

(x3 +x1 ) (x 3 +x 2 )

x3

Problema 3.-Analice la función que realiza el circuito, encontrando una expresión reducida en dos niveles .

3

- fi e

3-

Solución P3 .- Todas son puertas NAND, salvo la de salida f 1 ; llamando M a la entrada desconocida de esa puerta, f 1 = e M . Ahora, M y f2 pueden obtenerse por el método específico de circuitos con sólo puertas NAND . Este método consta de los siguientes pasos : 1 .- Hay que construir un árbol del circuito en el que los nodos representan a las puertas


ANÁLISIS DE CIRCUITOS COMBINACIONALES

39

y las ramas las conexiones . Las puertas se estratifican en niveles distintos comenzando por la puerta de salida que da lugar al primer nivel del árbol . A partir de este nivel y en función de las conexiones del circuito se van situando el resto de puertas en niveles sucesivos hasta alcanzar las señales de entrada . 2 .- Por la equivalencia de dos niveles de puertas NAND con dos niveles AND-OR, se va a asociar a cada nivel de puertas del árbol la función AND o la OR alternando ambos tipos de función y comenzando por la función OR . 3 .- Se obtendrá la función que realiza el circuito considerando sólo operaciones AND u OR . Hay que tener en cuenta que aquellas variables de entrada que estén conectadas a puertas que correspondan a un nivel OR deben complementarse . A continuación se aplica este método al circuito . Se numeran las puertas de la forma que se muestra en la figura : a b

3

3

d

- f1

1 e

f

3- f

Se construye el árbol para cada salida : M

M=d+c(á+b)

1 f2=c(á+b)+fg

OR

AND

De aquí se tiene :

f,

= de + ¿ice + bce

f2

=ác+bc+fg

OR


40

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 4 .- Analice el circuito de la figura indicando verbalmente qué operación realiza . _1 b2 a2

>_1 3--. ?1

al

-

b

y

Solución P4 .- Análisis de coste : coste n° puertas

7

n° conexiones

16 entradas + 2 salidas

retraso máximo

4 niveles de puertas

retraso mínimo

2 niveles de puertas

Análisis lógico :

z sp = a 2 b 2 +a,b,a 2 b 2 +a,b,a 2 b 2 Zps = (a, + a 2 ) (b, + b 2 ) (a 2 + b 2 ) (a 2 + b,) (a, + b 2 ) y Sp

=a 2 b 2 +a,b,a 2 b 2 +a,b,a 2 b 2

yps = (b, +b2) (a, +a 2 ) (b2+a2) (b2+a,) (b, +a2)

z (a 2 a,b 2 b,) = E (4,8,9,12,13,14) = fl (0,1,2,3,5,6,7,10,11,15 ) y (a2 a,b 2 b,) =Y- (1,2,3,6,7,11) = fI (0,4,5,8,9,10,12,13,14,15)

Si se representan ambas funciones (z e y) en un mapa binario ordenado en función de a 2 a l y b 2 b l , se obtiene :

b2b l

00

01

10

11

00

00

10

10

10

01

01

00

10

10

10

01

01

00

10

11

01

01

01

00

zy


ANÁLISIS DE CIRCUITOS COMBINACIONALES

41

Interpretando a2 a l como un número binario A y b 2 b l como B, las funciones pueden representarse por la tabla : zy 1 0 0 0 01 Por tanto, el circuito es un comparador de dos números binarios de dos bits cada uno, que distingue entre mayor, menor o igual . Problema 5.- Analice la función que realiza el circuito, encontrando una expresión reducida en dos niveles .

e e

3-D-- f

d

Solución P5.- El circuito está compuesto exclusivamente por puertas NOR, por lo que vamos a aplicar el método específico de análisis de sólo puertas NOR . Este método es el mismo que el utilizado en el problema anterior, sólo cambian dos aspectos : 1 .- El primer nivel de puertas es de tipo AND, por lo que la expresión que se obtendrá para f es del tipo producto de sumas de producto de sumas . 2.- Ahora son las variables de entrada que están conectadas a los niveles AND las que deben complementarse . Numerando a las puertas de la forma que se ve en la figura :

e e

3

>1 D-f

a-

O-

6 7

3

O-


42

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Se construye el árbol para la salida :

f

OR

OR

AND

AND

OR

AND

De aquí se tiene :

f= {c+éé+a(d+éé) (b+d(e+e))} {a+b(d+éé)} f=ac+bcd+aé+abd+bé Problema 6.- En el circuito de la figura todas las puertas poseen el mismo retraso, 0 . A

C D - F

D

a) Obtenga el mapa de F(A,B,C,D) . b) Considerando el retraso, determine la forma de onda de F si A=B=D= 1 y C cambia periódicamente. c) Igual que b, si A=C=D= 1 y B cambia periódicamente . d) Igual que b, si B=D= 1 y A y C son como las representadas : A

C 4

D

e) Discuta los resultados obtenidos en los apartados anteriores . Solución P6. a) Vamos a obtener una expresión de F mediante análisis lógico . Nombraremos los nudos internos del circuito como se muestra en la siguiente figura :


ANÁLISIS DE CIRCUITOS COMBINACIONALES

43

x

D- F

y

Analizando la función realizada por cada puerta, se tiene lo siguiente :

u=BC

x=ABu

v=u

y=Dv

F = xy = ABC+DCB

Con lo que el mapa de F queda :

00

01

11

10

00

0

0

1

0

01

0

0

1

0

11

0

1

1

0

10

0

0

0

0

CD

F

b) Con A = B = D = 1, y C cambiando periódicamente, el diagrama temporal queda como se observa en la figura :

C

u=C A x=v=u f-

1-

y=v A F=xy

-t A

4-


44

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

c) Con A=C=D=1, y B cambiando periódicamente, el diagrama temporal queda como se observa en la figura : B

u=B

v=u

y=v

x=Bu F=xy d) Con B=D=1, y A y C cambiando periódicamente, el diagrama temporal queda como se observa en la figura :

C

u=C

v=u 4x=Au

y=v

F=xy e) En el caso b) : Las entradas pasan de ABCD=1101 a ABCD=1 111 periódicamente . En ambos casos la función debe ser 1 . Sin embargo, ocurre un pulso de 0 en la salida F, lo que es un azar estático . En el caso c) : ABCD pasan de 1011 a 1111 alternativamente . La función debe tomar los siguientes valores según el mapa de Karnaugh : F(1011)=0 y F(1111)=1, la salida debería seguir los cambios de B con el retraso del circuito . Sin embargo, ocurre que la señal de salida oscila (ver figura del apartado c) cuando B sube . Esto es un azar (se llama dinámico) .


ANÁLISIS DE CIRCUITOS COMBINACIONALES

45

En el caso d) : ABCD pasan de 1101 a 0101 (éste durante un tiempo A), de aquí a 0111, 0111, 1111 (durante un tiempo A) y vuelven de nuevo a 1101 . La función, debe tomar los valores : 1, 0, 1, 1 que es lo que se muestra en la salida . El pulso de 0 es mayor que la duración en 0101, pero esto no es azar: la función debe pasar por el valor 0, explicándose el cambio de duración por el distinto tiempo de retraso cuando cambia A (2 puertas) a cuando después cambia C (4 puertas) . PROBLEMAS CON SOLUCIÓN RESUMIDA

Problema 7.- Analice a nivel lógico los siguientes circuitos combinacionales . Ponga la función en suma de productos o producto de sumas . a) >_1 - f >_1

b)

=1 - f

c)

y =1 D- f

Solución P7.- a)

f = (xy + xy) (z + xy) = x (z + xy) = xz + xy x` 00

01

11

Z\ 0

0

0

0

1

0

0

1

10 f 1


46

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

= xz+xy

b) f = xy +O (z+x)

0

00

01

11

10

0

0

1

o

1

1

0

00

01

11

10

0

0

0

1

0

0

0

1

1

f

c) f = y O+ (y + x) = xy

Problema 8.- Realice un análisis lógico de los circuitos representados en la figura correspondiente. Obtenga las expresiones en forma de suma de productos y producto de sumas . Liste los mintérminos y maxtérminos correspondientes . Determine el coste . a) x I-

>1 f 3-

b) xl

1 f

x2 3


ANÁLISIS DE CIRCUITOS COMBINACIONALES

c) >_l

x3 X4

Solución P8 . a) Análisis de coste : coste n° puertas

6

n° conexiones

10 entradas + 1 salida

retraso máximo

4 niveles de puertas

retraso mínimo

2 niveles de puertas

Análisis lógico : fsp = x2 + x 1 x3

fps = (x2 + XI) (x3 + x2) . f(x 1 , x 2, x3 ) = E (2, 3, 4, 6, 7)=11(0, 1, 5) . b) Análisis de coste : coste n° puertas

7

n° conexiones

12 entradas + 2 salidas

retraso máximo

5 niveles de puertas

retraso mínimo

2 niveles de puertas

Análisis lógico : fl sp = X3 X4 + x1 x2 x4 + x1 x2 X4 + x1 x2 x3 x4 + x1 X2 X3 x4 . fips = (x3 + x4) (xl + x2 + x4) (x1 + x2 + x3 + x4) (x1 + x2 + x4) (x1 + x2 + x3 + x4) . f2sp = x3 + XI x2 + x1 x2 f2ps =(x1+23) x+, f l (x l , x 2 , x 3 , x4) = E (1, 3, 4, 7,8, 11, 13, 15) = II (0, 2, 5, 6, 9, 10 12, 14) . f2(x l , x 2 , x 3 , x4 ) = E (0, 1, 2, 3, 6, 7, 10, 11, 12, 13, 14, 15) = fI (4, 5, 8, 9) . c) Análisis de coste : coste n° puertas

3

n° conexiones

6 entradas + 1 salida

retraso máximo

2 niveles de puertas

retraso mínimo

2 niveles de puertas

47


48

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

An谩lisis l贸gico : fsp - XI + X2 + x3 x4 fps = ( x2 + XI + x3) (x2 + x1 + x4) . f2 (x l , x 2 , x3 , x 4 ) = E (3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) =11(0, 1, 2) .

Problema 9.-Analice la funci贸n que realiza cada circuito encontrando una expresi贸n sp o ps . a) VIL-

X Y -

b)

b

d g

C) xl x2 x3 -

X2 3

3

xl X2 -

XI 3 x3

x3


ANรLISIS DE CIRCUITOS COMBINACIONALES 49

Soluciรณn P9.a)f = wxz+xyz+xyw+xyz . b)z = รกce+cicf+bce+bcf+รกde+รกdf+bde+bdf+gh . c)f = x I x2 +x1 x3 +x ] x2x4 +x3x4x2 +x1x;x2 + 3x I x4 .


Capítulo 4 DISEÑO DE CIRCUITOS COMBINACIONALES

El proceso inverso al de análisis es el de diseño de circuitos combinacionales . Básicamente, este proceso consiste en, dada una función de conmutación, obtener un circuito que la realice . Planteado de esta manera, cualquier expresión lógica de la función sería válida para obtener el circuito . Sin embargo, el objetivo del proceso de diseño es, en realidad, más complejo y consiste en obtener un circuito óptimo respecto a algún criterio . El circuito óptimo responde a una expresión óptima, de forma que lo que hay que obtener es esta expresión . OBJETIVO DE DISEÑO Existen diversos criterios respecto a los cuales optimizar, de manera que en función del criterio elegido, el circuito óptimo puede ser uno u otro . En este tema los criterios según los cuales se van a optimizar los circuitos son dos : 1 .- Minimizar el número de niveles de puertas que deben atravesar las señales de entrada hasta alcanzar la salida, considerando que sólo se usan puertas AND y OR (o bien sólo NAND o sólo NOR) con fan-in y fan-out ilimitados y entradas en doble rail . 2 .- Minimizar el coste de la función en cuanto : a) al número de puertas lógicas de que consta el circuito ; b) al número de conexiones total del circuito . De estos criterios, el primero conduce a buscar expresiones que den lugar a circuitos en dos niveles de puertas . Expresiones de tipo suma de productos (sp) o producto de sumas (ps) son las más apropiadas para cumplir este requisito . Para este tipo de expresiones el segundo criterio, reducción del coste, significa reducir el número de términos productos (en expresiones sp) o reducir el número de términos sumas (en expresiones ps) y, además, buscar términos productos o sumas con el menor número de literales posible . Existen expresiones que cumplen estos requisitos que son las llamadas suma mínima de la función (expresión sp) o producto mínimo (ps) . Por otra parte, existe un teorema que indica cómo obtener la suma o el producto mínimo y es el siguiente : Teorema .- La suma mínima (producto mínimo) de una función de conmutación está formada por el conjunto mínimo de implicantes primas (implicadas primas) con el menor número

51


52

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

de literales posible que cubren completamente la función . Definición de implicante (implicada) prima .- Una implicante (implicada) prima es un término producto o implicante (término suma ó implicada) cuyos mintérminos (maxtérminos) son todos mintérminos (maxtérminos) de la función y, además, no existe otra implicante (implicada) de la función que contenga a todos los mintérminos (maxtérminos) de dicho término producto (suma) . Una implicante (implicada) se dice que es esencial si obligatoriamente pertenece a la solución óptima, ya que sólo ella cubre a algún mintérmino (maxtérmino) de la función . Según el teorema, el objetivo del proceso de diseño de una función de conmutación, con los criterios que se han elegido, es encontrar una expresión formada por el conjunto mínimo de implicantes (implicadas) primas que cubran completamente la función . PASOS DEL PROCESO DE DISEÑO El proceso de diseño se desarrolla realizando el conjunto de pasos que se muestran en el siguiente diagrama : Descripción verbal

1 Descripción formal : Tabla de verdad, mapa de Karnaugh, expresión de la función

i Minimización : forma sp o ps mínima

1 Circuito En cada uno de estos pasos hay que realizar las siguientes acciones : 1 .- Dado un enunciado con palabras (descripción verbal) de la función hay que obtener una primera representación de dicha función mediante una tabla de verdad, un mapa de Karnaugh o una expresión de la función . Esta representación es lo que se conoce como una descripción formal de la función . 2 .- A partir de la descripción formal obtenida al finalizar el paso anterior, hay que realizar el proceso de minimización . Con este proceso se pretende obtener la expresión suma o producto mínimo de la función . En particular, se presentan dos métodos para hacer la minimización, uno basado en el mapa de Karnaugh y el otro, tabular, que denominaremos de QuineMcCluskey . 3 .- De la expresión suma de productos o producto de sumas mínimo de la función se obtiene el circuito óptimo . En concreto, para las expresiones sp de las funciones se derivan circuitos en dos niveles AND-OR .y NAND-NAND ; si se obtienen las expresiones sp de las funciones complementadas, el circuito puede implementarse con las estructuras AND-OR-INV, AND-NOR ó NAND-AND . Las estructuras duales (OR-AND o NOR-NOR ; y OR-AND-INV, OR-NAND ó NOR-OR) proporcionan los circuitos cuando se obtienen expresiones ps (de f y de f, respectivamente) .


53

DISEÑO DE CIRCUITOS COMBINACIONALES

Estos pasos del proceso se realizan antes de tener en cuenta otros aspectos como son si la disponibilidad de las entradas es en único rail, si el fan-out es limitado, si se dispone de circuitos integrados en vez de puertas individuales, etc . Solamente no se siguen estos pasos cuando el circuito final no se obtiene a partir de expresiones sp (ps) . En estos casos (p .ej . en realizaciones con puertas EXOR) el diseñador debe saber cómo pasar del paso 2 a la realización de su circuito . El conjunto de problemas que se presentan en este Capítulo, tanto los resueltos como los de solución resumida barren completamente los diferentes pasos del proceso . Además, se dedica especial atención al primer paso del proceso de diseño por ser el menos sistemático y, por tanto, el más complejo de realizar .

Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Paso de descripciones verbales a descripciones formales . - Proceso de minimización por mapa de Karnaugh . - Proceso de minimización por Quine-McCluskey . - Otros tipos de realizaciones .

PROBLEMAS RESUELTOS

Problema 1 .- Se tiene una palabra de 5 bits : los cuatro últimos bits representan un dígito BCD; el primero es un bit de paridad impar . Obtenga la tabla de verdad (o el K-mapa) de las funciones siguientes: 1) f, se hará "1 "para valores de entrada que no correspondan con dígitos BCD . 2) f2 se hará "1 »para palabras con paridad incorrecta . Solución Pl .- El circuito que se pretende diseñar tiene 5 señales de entrada . Sean a, b, c, d, e, siendo a el bit de paridad impar y b, c, d, e un número BCD . Por otra parte tiene dos salidas f l y f2 que toman los siguientes valores : f1 = 1 si y sólo si (b, c, d, e) no es un número BCD .

f2 = 1 si y sólo si el número de "1 " en (a, b, c, d, e) es par . Los mapas de Karnaugh de las funciones son los siguientes :

abc

abc 000 001 011 010 110 111 101 100

00

d

000 001 011 010 110 111 101 100

0

1

0

0

1

0

0

00

1

0

1

0

1

0

01

0

0

1

0

0

1

0

0

01

0

1

0

1

0

1

0

1

11

0

0

1

1

1

1

0

0

11

1

0

1

0

1

0

1

0

10

0

0

1

1

1

1

0

0

10

0

1

0

1

0

1

0

1

f,

f2


PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

54

Problema 2.- Las normas de seguridad de los modernos aviones exigen que, para señales de vital importancia para la seguridad del aparato, los circuitos deben estar triplicados para que el fallo de uno de ellos no produzca una catástrofe . En caso de que los tres circuitos no produzcan la misma salida, ésta se escogerá mediante votación . Diseñe el circuito "votador" que ha de utilizarse para obtener como resultado el valor mayoritario de las tres entradas . Solución P2 .- El proceso de votación consiste en tomar el valor mayoritario de las entradas . De esta forma, la salida, f, del circuito tendrá la siguiente codificación : f = 0 si hay más ceros que unos en las entradas f = 1 si hay más unos que ceros en las entradas El circuito votador tiene tres señales de entrada : a, b y c, que son las salidas de los circuitos triplicados . Podemos construir el mapa de Karnaugh o bien la tabla de verdad : abc 000 001 010 011 100 101 110 111 En zamos un f Un

f 0 0 0 1 0 1 1 1

00

c 0

01

11

10

rol ríaECó'i~

1 B

C

el mapa de Karnaugh seleccionamos las implicantes de la función, A, B y C y realicubrimiento óptimo : = A+B+C = ab+bc+ac circuito hecho sólo con puertas NAND es el siguiente :

Problema 3.- Se pretende diseñar un circuito combinacional que tenga como entrada un dígito BCD natural y como salida la parte entera del cociente de su división por tres . Se pide : a) expresar las funciones mínimas de salida como suma de productos y como productos de sumas; b) obtener el circuito correspondiente a la mínima de estas expresiones, realizado con un solo tipo de puertas . Solución P3.- La salida es un número, N, igual a la parte entera de dividir un dígito BCD por 3 : N=Ent .[N2 BCD/3] . El mayor dígito BCD es 9, por tanto el mayor valor de N será 3, mientras que el menor valor será 0 . Representaremos a N por dos bits : z1z0 = N(2 .


55

DISEÑO DE CIRCUITOS COMBINACIONALES

La entrada es el dígito BCD que está formado por 4 dígitos binarios : x3x2x1xo . Teniendo en cuenta esto, podemos formar la tabla de verdad y, a partir de ella, el mapa de Karnaugh de cada una de las funciones de salida sabiendo que las celdas que no corresponden a dígitos BCD (celdas 101- y 11--) son inespecificaciones (d) para las funciones : x3x2x 1 x0

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

N 0 0 0 1 1 1 2 2 2 3

A

z 1 zp

0 0 0 0 0 0 1 1 1 1

H

3 2

0 0 0 1 1 1 0 0 0 1

3x2

00 01' 11 10

x lxo 00

1

01

1

11 10

a_~ riii d I

x 1 x0 00

d ~l

IN L1

00 01 11 10

01 E

11 10

B4 z1

ZO

~ G

Las expresiones como suma de productos y productos de sumas son la siguientes :

ZIS,=D+C = x 3 +x 1 x2 zosP = I + H + J zoPs =GFE=

z 11,

= AB = (x3+x1) (XI +x 2 )

= x 3 xo +x2 x 1 +x2x l xo

(x 2 +xo ) (x 1 +x2 ) (x 3 +x 2 +x 1 )

El coste sp y ps de zo es el mismo, por lo que da igual realizarla sólo con NAND o sólo con NOR . (En la realización mínima de z o la celda 15 es tomada como 1 para zo sp y como 0 para z ops ; no se trata de un error sino del uso más conveniente para esa inespecificación) . Por otra parte, el coste de z1 en sp es menor que en ps por lo que la realizaremos con NAND : x3 xo 2 X2 1

x

X1

x2 X1 Xo

Problema 4.- Las cuatro líneas de entrada de un circuito combinacional corresponden a un número natural codificado en binario natural . Diseñe un circuito en dos niveles que sirva para detectar cuándo un número es una potencia de dos.


56

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P4 .- Es un circuito con 4 señales de entrada, a, b, c y d y una salida f. La función de salida debe detectar la llegada de un número potencia de 2 . Las potencias de dos son : 20=1, 2'=2, 2 2=4, 2 3 =8 . Cuando en la entrada se detecte alguno de estos números, la salida tomará el valor 1 . El mapa de Karnaugh de esta función es el siguiente : ab c\ 00

01

11

10

00

0

1

0

1

01

1

0

0

0

11

0

0

0

0

10

1

0

0

0

f La expresión mínima en forma sp es la siguiente : f

= ábcd + ábcd

+ a_bcd + abcd

El circuito en dos niveles AND-OR es el siguiente :

c

b _1

a b d b

Problema 5.- Diseñe un circuito combinacional que acepte un número de tres bits y genere un número binario de salida igual al cuadrado del número de entrada . Solución P5.- Con tres bits, a b y c, se representan desde el 000-0 hasta el 111-7 . En la salida debe aparecer el cuadrado de la entrada : abc- N . Dec .

000-0

001-1

010-2

011-3

100-4

101-5

110-6

111-7

(abc) 2

0

1

4

9

16

25

36

49


DISEÑO DE CIRCUITOS COMBINACIONALES

57

El mayor valor que debe aparecer en la salida es el 49 . Para representar el 49 se necesitan 6 bits . Por tanto, el circuito posee 6 señales de salida, z 5 z 4 z 3 z 2 z l zo , que toman los siguientes valores :

000-0

001-1

010-2

011-3

100-4

101-5

110-6

111-7

000000

000001

000100

001001

010000

011001

100100

110001

abc- N . Dec . Z5Z4Z3z2z

De esta tabla se obtiene un mapa de Karnaugh para cada salida y, de él, una expresión de las mismas :

11

00 01

10

í1\ 0 0

0

1

0 0 0 0

0 U

z 5 = ab

z 4 = ac+ ab

00 01 z2 = bc

11

10

0

0

0

0

z 3= ábc+ abc

C 0

0

1

o

0

z1= 0

N 11,1 Oa >

Ahora ya es inmediato dibujar un circuito en dos niveles AND-OR ó NAND-NAND, de la misma forma que ya se ha hecho en los problemas anteriores . Problema 6.- El horario laboral de una factoría es de 8 horas diarias, divididas en tres turnos : de 8 a 11 (primer turno), de 11 a 13 (segundo turno), de 13 a 16 (descanso) y de 16 a 19 (tercer turno) . Se pretende diseñar un circuito que tenga como entradas la representación binaria de la hora actual menos ocho y que proporcione a la salida el número de turno que está trabajando (si procede) o "0" si es hora de descanso . Se pide : a) Expresar las funciones mínimas de salida como suma de productos y como producto de sumas . b) Obtener las expresiones correspondientes a cada una de las anteriores funciones realizadas con un solo tipo de puertas. Solución P6 .- De acuerdo con el enunciado, si H es el número decimal de la hora, (H-8) (2 es el valor en binario asociado que actúa como entrada del circuito . La última hora a señalar va desde las 18h a las 19h, por lo que en binario corresponde a (18-8)=10 . Se necesitan 4 bits para


58

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

poder representar los números 0-10 : a, b, c y d . Las salidas deben representar cuatro casos : descanso, ]ir turno, 22 turno y 3e' turno . Se necesitan, por tanto, dos señales de salida : z1zo, cuyo valor en binario representará los 4 casos con la siguiente codificación : TURNO 1 2 descanso 3

HORAS 8-9-10 11-12 13-14-15 16-17-18

HORAS-8 0-1-2 3-4 5-6-7 8-9-10

z 1 zO

0 1 0 1

1 0 0 1

A partir de esta tabla se construyen los mapas de Karnaugh y de ellos se obtienen las siguientes expresiones de las salidas, en forma sp y ps :

~1 ~ V1 -J

~ÍLr

z 1 =a+bcd+bcd

z 1 = ( a + b + c)(a + c +d)(d+ b)

z0=bc+bd

zp=b(c+d)

b) Las expresiones sp son trasladables directamente a expresiones NAND-NAND y las ps a expresiones NOR-NOR . Así: Expresiones : NAND-NAND NOR-NOR

z 1 = a(bcd)(bcd) z 1 = ( a+b+c)+(a+ c +d)+(d+ b)

zp=(bc)(bd) z 0 = b +(c +d )

Las mínimas son : NAND-NAND para z1 y NOR-NOR para z 0 .

Problema 7.- Se pretende diseñar un circuito comparador de 2 números de 2 bits, A=(a s a o) y B=(b 1 ,bo). Dicho circuito deberá tener tres salidas M, 1, m, de tal forma que : M = 1 sü A>8 1= 1 sii A=B m = 1 sü A<8 Diséñese exclusivamente con puertas NOR . Solución P7 .- Para hacerlo exclusivamente con puertas NOR obtendremos las expresiones ps de las tres salidas, M, 1 y m . Del enunciado se obtienen directamente los mapas de Karnaugh de cada una de las funciones :


59

DISEÑO DE CIRCUITOS COMBINACIONALES

00

01

11

10

00

1

morra r-

I/IV 00

LES

a

VOL:J

EN

Za-

M

90 0

I

M = (a i +ao) (a 1 +b o ) (a 1 +E 1 ) (b 1 +ao) (bi+bo)

01

11

10

Crac=~!~1 or!~~~J Dula= a ar`v~i m

m = (b i +b o ) (b i +a o) (b 1 +a 1 ) (a l +bo) (a i +a o )

I =(a l +i) (á 1 +b 1 ) (ao+b0) (áo+b o )

Problema 8.- Se ha diseñado una puerta de tres entradas llamada bomba (cuyas características se muestran) con un resultado desafortunado . Experimentalmente se encuentra que las combinaciones de entrada 101 y 010 hacen explotar la puerta . Determine si hay que inutilizar las puertas o, por el contrario, pueden ser modificadas externamente (añadiendo un circuito) de forma que sea funcionalmente completa y que sin embargo no explote . ABC

1 11 BOMBA

BOMBA(A,B,C)

BOMBA(A,B,C)

Solución P8.- Debemos conseguir que el circuito no explote en ninguna combinación de entrada de forma que no cambiemos la función de salida . Para ello vamos a añadir un circuito con 3 entradas (a, b, c) y tres salidas (A, B, C) de manera que BOMBA(a,b,c) = BOMBA (A,B,C) según la tabla del enunciado :

CIRCUITO b

A DISEÑAR

m B

BOMBA(a,b,c) = BOMBA(A,B,C)

O m

Las salidas ABC=101 y 010 deben ser evitadas para que no explote el circuito . Como BOMBA(0,1,0) = 1, podemos hacer que para abc=010 las salidas ABC sean cualquiera de las que dan 1 en la salida del circuito BOMBA . Esto es, ABC= 000, 011, 100 . Como BOMBA(1,0,1)= 0, podemos hacer que para abc=101 las salidas del circuito sean cualquiera de las que dan 0 en la salida del circuito BOMBA . Esto es, ABC= 001, 110, 111 .


60

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Con el fin de no producir más cambios, para cualquier otra combinación de abc, haremos ABC=abc . Tenemos que hacer dos elecciones, una para abc=010 y otra para abc=101 . Una buena solución es la que implica menos cambios en las señales : abc = 0l0 -* ABC = 000 abc = 101 - ABC = 111 Con estas elecciones la única señal que cambia es B mientras que A y C cumplen A=a y C=c . Del mapa de Karnaugh se obtiene una expresión de B en función de a, b y c :

sal J 1 al'l~~L

B=ab+ac+bc

Problema 9.- Utilizando el mapa de Karnaugh, determine las expresiones mínimas en suma de productos y producto de sumas de las siguientes funciones : a) f(x, y, z, u) = E(3, 4, 7, 8, 10, 11, 12, 13, 14) b) f(x, y, z, u) = E(0, 4, 6, 7, 10, 12, 13, 14) Solución P9 .

a) z xy

00

0

01

11

a non rol ORO

01 11 10

nono e Enn

00

C4:110.

1 1

jlezOC ©© ro

f=(x+y+ z) (x+z+

f=yzu+xyz+xzu+xyz+xu (y

+ z + u)

u)

(x+z+u)

(x + y + z + u)

b) z xy

00

01

11

0

dan

01

o

11 0 10

uo

z xy

01 Lle

n0

11

n01»

10

f=xzu+xyz+xyz+xzú

00

01

11

0

01a

nl ,

111

f=(y+u)(x+y+z)(x+z+u)

(x+z+

ú)

(x+y+z)


DISEÑO DE CIRCUITOS COMBINACIONALES

61

Problema 10.- Simplifique f = E(1, 2, 7, 8, 19, 20, 25) + d(10, 11, 12, 13, 14, 15, 26, 27, 28) Solución P10 . abc d

110

J

00 01

1

-

11

0

10

CE

0

0

G I-

111 101

C

100

17

0

0

0

0

0 0

f=abe+abcde+ácde+ +acde+acde+abce+acde

-

-

Problema 11 .- Razone si una OR de dos entradas con inhibición puede ser funcionalmente completa si disponemos del "0" y del "1 ". Las variables se encuentran en único raíl . Implemente f=m 1 +m3+m 4+m 6 usando este tipo de puertas . Solución P11 .-La puerta OR opera de acuerdo con la siguiente tabla : I I 0 1

1 z

z x+y 0 : Inhibicón

La puerta será funcionalmente completa si podemos realizar las operaciones AND, OR y NOT . En la figura siguiente se muestra cómo es posible implementar cada una de estas funciones contando sólo con esta puerta, el "0" y el "1" . : NOT:

AND :

OR :

.A

-1

A+B ?1

AB

Por tanto, la puerta es funcionalmente completa . Para implementar f=m 1 +m 3 +m4+m6 obtenemos una expresión mínima en forma sp a partir del mapa de Karnaugh y la implementamos directamente :

la >_1

ac

`M ffiffila f = ác+ ac

>_1

ac

0 1 >_1


62

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 12.- Un circuito que realiza la función z(a, b, c) está compuesto de dos subcircuitos (ver figura) . La combinación de entradas abc=001 nunca ocurre . La tabla de verdad del subcircuito N, es la mostrada . ¿ Es posible cambiar algunos valores de u, v, x a inespecificaciones sin modificar z(a, b, c)?. Si es así, indique todos ellos y realice un buen diseño de N 1 con puertas NOR tras obtener todos los valores inespecificados . abc 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 10 1 1 1 0 1 1 1

uvx 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1

-----------------------------------N2

a b c

1

---------------------------------

Solución P12 .-Llamemos P ala salida de la puerta EXOR : P = v O+ x . Busquemos las posibles inespecificaciones de u, v y x, de forma que no se modifique la función z, la cual toma el siguiente valor : z = P u . De esta manera : 1) Si u=0, entonces z=0 independientemente del valor de P . De aquí que P pueda estar inespecificado para u=0 . 2) Si P = 0, entonces z=0 independientemente del valor de u . 3) Si u=P=1, entonces z=1 . Por otra parte, P = v O+ x , de forma que : P=0 si v=x ; P=1 si

v=x .

Las inespecificaciones pueden ocurrir en los siguientes casos : a) Valores de entrada que nunca pueden ocurrir . En este caso en el enunciado del problema se dice que la combinación de entrada abc = 001 nunca ocurre . Por tanto para esta combinación de entrada u, v, x = d, d, d, siendo d inespecificación . b) Valores de entrada para los que u=0 . En este caso P puede tomar cualquier valor, de forma que v y x pueden ser inespecificaciones . Así, para abc = 0 0 0, 0 1 1, 1 1 0, u = 0 y v,x=d,d . c) Valores de entrada que hacen P=O . Esto es, valores para los que v=x . En este caso u es inespecificación . Así, para abc = 010, 101, v=x y por tanto, u= d . La tabla de verdad considerando las inespecificaciones sería la siguiente : abc uvx 0 0 0 0 d d 0 0 1 d d d 0 1 0 d 1 1 011 Odd 1 0 0 1 1 0 10 1 d l l 110 Odd 1 1 1 1 0 1


DISEÑO DE CIRCUITOS COMBINACIONALES

63

Para diseñar el circuito N 1 con puertas NOR vamos a construir los mapas de Karnaugh y obtener las expresiones mínimas ps :

oma

arv~o uo u= a(b + c)

Mal- 0111

v= a+ b

>1

x=á+c

>1

>1

>1

>1

>_1

Problema 13.- En la tabla representada aparecen todas las implicantes primas y todos los mintérminos de una función f(a,b,c,d) que también tiene inespecificaciones . Determine cuáles son los mintérminos (m, m) e implicantes (A, B) desconocidos, así como todas las inespecificaciones de la función . 3

ad ac bc cd A B

5

X X

7

8 X

12 X

m

m' X X

X X X

X

X

Solución P13 .- La resolución del problema puede efectuarse utilizando una representación de la información que aporta la tabla del enunciado sobre un mapa de Karnaugh . En esta tabla aparecen expresiones de todas las implicantes primas menos dos (A y B) de la función y todos los mintérminos menos dos (m y m') . En el siguiente mapa se muestra la información de partida acerca de la función :


64

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

u®= -u =amo Ramo f Implicante a d : Vale 1 cuando a = 1 y d = 0 . Son las posiciones 8, 10, 12 y 14 sobre un mapa de Karnaugh . 8 y 12 son mintérminos de f . Como esta implicante cubre a m' este mintérmino solo puede ser ó el 10 ó el 14 . El que no sea m' será una inespecificación, d . Implicante ac : Vale 1 cuando a = 1 y c = 1 . Son las posiciones 10, 11, 14 y 15 sobre un mapa de Karnaugh . Esta implicante sólo cubre a un mintérmino de f, m', por lo que posee tres inespecificaciones . De la implicante anterior se sabe que m' o es el mintérmino 10 ó el 14 . De esta forma las posiciones 11 y 15 del mapa son inespecificaciones, d . Implicante Ec : Vale 1 cuando b = 0 y c = 1 . Son las posiciones 2, 3, 10 y 11 sobre un mapa de Karnaugh . Esta implicante solo cubre al mintérmino 3 y al m . La posición 11 ya sabemos que es inespecificación por lo que m sólo pueden ser la posición 2 o la 10 . Ahora bien de las anteriores implicantes sabemos que la posición 10 es m' o inespecificación . Esta implicante no cubre a m' por lo que la posición 10 no puede ser el mintérmino m', sino inespecificación . Por tanto el mintérmino m es el mintérmino 2 y el mintérmino m' es el mintérmino 14 . Implicante c d : Vale 1 cuando c = 1 y d = 1 . Son las posiciones 3, 7, 11 y 15 sobre el mapa de Karnaugh . 3 y 7 son mintérminos de f y 11 y 15 ya sabemos que son inespecificaciones por lo que esta implicante no aporta más información . Con lo que hemos obtenido hasta ahora, el mapa de karnaugh de la función f queda de la siguiente manera : b d 00 01 11 10

00

01

11

10

..01a .a- . vpvR =a .1 f

Falta por averiguar cuáles son la implicantes primas A y B . Implicante A: cubre a los mintérminos m=2 y 8, que están en esquinas opuestas . La única posibilidad es que A sea la asociación de las posiciones en las cuatro esquinas, esto es, las posiciones 0, 2, 8 y 10. Como 8 y 2 son mintérminos, 10 es inespecificación y, teniendo en cuenta que A sólo cubre a dos mintérminos, la posición 0 es inespecificación . La expresión para A es b d


DISEÑO DE CIRCUITOS COMBINACIONALES

65

Cualquier otra posibilidad para A daría lugar a que alguna de las implicantes que ya conocemos, no fuese prima y sabemos que sí lo son . Teniendo en cuenta que en la primera columna del mapa de Karnaugh, posiciones 0, 1, 3 y 2 todas son inespecificaciones o mintérminos menos el 1 y que no existe ninguna implicante prima que los cubra a todos (la implicante B no posee al mintérmino m = 2) la posición 1 tiene que ser un maxtérmino . Al igual le ocurre a las posiciones 13, 6, 9 y 4 que son maxtérminos . Implicante B : cubre a los mintérminos 5 y 7 . Las casillas adyacentes a 5 y 7 son maxtérminos (1, 6, 4, 13) por lo que B es la implicante prima que asocia exclusivamente a los mintérminos 5 y 7 . La expresión de B es ábd . Resumiendo, el mapa de Karnaugh de f queda de la siguiente manera : ab c\ 00

01 11

10

m=2

1

m` = 14

00

d

0

01

0

1

0

0

11

1

1

d

d

10

1

0

1

d

A=bd B=ábd

f

Problema 14.- El circuito de la figura ha sido diseñado para comparar las magnitudes de dos números binarios de dos bits a 2 a l y b2 b 1 . Si z=1 e y=0, a 2 a l es el mayor. Si z=0 e y=1, b 2 b 1 es el mayor. Si z=y=0, los dos números son iguales . Sin embargo el circuito propuesto no cumple las especificaciones solicitadas . Compruebe este hecho y modifique el diseño para que sea correcto .

- z

a2

b a, Solución P14 .-Analicemos el circuito :

z=a,b 1 (a2b2 +a2b2)

=

a 1 b 1 a2b2 +a 1 b 1 a2 b2

y = a 1 b1 (a2b2 +a2b2)

=

a,b,a 2b2 +a,b 1 a 2b2


66

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Ahora vamos a construir los mapas de Karnaugh correspondientes a las funciones de z e y que suministra el circuito y el mapa de Karnaugh correspondiente a la función especificada en el enunciado : FUNCIÓN

CIRCUITO

ESPECIFICADA

a2al

a 2a l

b 2\ 00

01

11

10

b2\ 00

01

11

10

00

00

10

00

00

00

00

10

10

10

01

01

00

00

00

01

01

00

10

10

11

00

00

00

01

11

01

01

00

01

10

01

01

10

00

10

00

00

10

00

zy

zy

Se observa que (zy)cir # (zy)func . En particular las diferencias están en que tanto z como y tienen 4 mintérminos más en la función especificada que en el circuito suministrado en las siguientes posiciones :

r ---DJ -------

----

--

r a-. al a-

----

EN a 2b2

z

y

Así, las funciones correctas serán : Z zc„ + a2b2

Y = Yc„ + a2b2 La reforma del circuito consistirá en añadir dos puertas OR para hacer las sumas ya que los términos productos ya están en el circuito :

L

>1 Zfunc

C

>_1

a2 -a

C Ycir

>1 - Yfunc

bl al


DISEÑO DE CIRCUITOS COMBINACIONALES

67

Problema 15.- Las funciones del circuito de la figura dependen, en general, de las variables (w,x,y,z) . Sabiendo que f = E (0, 4, 9, 10, 11, 12): (incluyendo funciones f2 :# 0 y f3 :# 0 completamente las a)Determine inespecificaciones) . b)Realice los circuitos que proporcionan f2 y f3. ---------------w x

f

z f

-s

f

f ---------------

Solución P15 . a) Analizando el circuito de la figura se obtiene que f = H + f 3 , siendo H la salida de la puerta AND . De aquí se deriva que los maxtérminos de f son maxtérminos de H y de f 3 , mientras que los mintérminos de f son mintérminos de H ó de f3 . Por tanto, los mapas de Karnaugh de H y f 3 tienen los siguientes maxtérminos : wx

wx

wx

Y\

00

01

11

10 Y\

00

01

11

10

\ y 00

01

11

10 0

00

1

1

1

0

00

01

0

0

0

1

01

0

0

0

01

0

0

0

11

0

0

0

1

11

0

0

0

11

0

0

0

10

0

0

0

1

10

0

0

0

10

0

0

0

f

0

00

f3

H

Por otra parte, H = f 1 f2 = (x0 z)f2 . De aquí que los mintérminos de H son mintérminos de f 1 y de f2 , mientras que los maxtérminos de H son maxtérminos de f 1 ó de f2 . Como f 1 es conocida, a partir de ella y de H se obtiene parte del mapa de f 2 : wx f2 está inespecificada en aquellas celdas en las queH=Oyf 1 = 0 . Por otra parte, f2 = 0 en celdas en las que H = 0 yf i =1 .

--------

-

Revisando los mapas de H, f2 , f3 y f podemos concluir lo siguiente : - H vale 0 en las celdas 0 y 10 porque f 1 vale 0 en esas celdas . Como f = 1 en las celdas 0 y 10, f3 tiene que valer 1 en esas mismas celdas . - Como f2 tiene que ser distinta de 0, tendrá algún mintérmino en alguna de las celdas


68

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

donde no es ni inespecificación ni 0 (celdas 4, 9, 11 ó 12) . Como f = 1 en esas celdas, en aquellas en las que f2 = 0, f3 debe tomar el valor 1 . Por tanto, existen varias soluciones, dependiendo de cuáles de las celdas 4,9,11 ó 12 consideremos mintérminos de f 2 . - Una de las posibles soluciones es la que se muestra a continuación : wx 00

Y\ 00

=amo

000 000 0 0

01

11

1

10 0

01

0

0

0

11

0

0

0

1

10

0

0

0

1

f3

b) De los mapas de f2 y f3 obtenemos expresiones para f 2 y f3 : wx

wx

00_1 000 000 0 0

Yz 00

00

01

10 0

01 = wY

11

0

11

0

0

0

10

0

0

0

n 111

f3=wyz+wxy

Problema 16.- En la figura se representa una función de 4 variables incompletamente especificada . Asigne valores a las inespecificaciones para conseguir especificar completamente la función de la forma que se indica en cada uno de los casos siguientes : ab 00 01 11 10 cd 00 1 d d d 01

a) b) c) d) e)

z z z z z

d

d

0

0

11 0

d

0

0

10 d

d

0

1

z

pasa a depender de sólo dos variables . tiene únicamente cinco mintérminos sin implicantes superiores . tiene exactamente cuatro implicantes primas . tiene una implicante prima no esencial . tiene el mismo número de implicantes primas que de implicadas primas .

Solución P16 . a) Teniendo en cuenta que hay dos mintérminos en esquinas opuestas, para lograr que z dependa sólo de dos variables, las inespecificaciones de las otras esquinas deben sustituirse por


DISEÑO DE CIRCUITOS COMBINACIONALES

69

mintérminos . El resto de inespecificaciones se sustituirán por maxtérminos .El mapa de Karnaugh y la expresión final de z quedan como sigue : ab cd

00

01

11

10 1

00

1

01

0

0

0

0

11

0

0

0

0

10

1

0

0

1

z=bd

b) Para que no haya implicantes superiores, no puede haber dos mintérminos adyacentes. El mapa quedaría de la siguiente manera : ab 00

01

11

10

00

1

0

1

0

01

0

1

0

11

0 0

0

0 0 0

1

cd

10

0

c) Una implicante prima es aquella implicante (agrupación de mintérminos) que no está incluida en una implicante de orden superior . Para conseguir 4 implicantes primas exactamente debemos hacer las siguientes substituciones en el mapa :

d) Una implicante prima no esencial no posee ningún mintérmino distinguido :. ab 00

01

11

00

1)

1

0 H-

01

1

1

0

0

11

0

0

0

0

10

0

0

0

r

cd

10

Implicante prima no esencial


70

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

e) En el siguiente mapa existen dos implicantes primas y dos implicadas primas (implicada como agrupación de maxtérminos) :

J v~a -ú

u w~w I

Problema 17.- Realice la función f con puertas : a) NAND, b) NOR . f = abcd + atice + acde + atice + ábce

+ aticé + abcd

+ abec

Solución P17.

a) Para realizar la función con puertas NAND vamos a obtener la expresión mínima en forma de suma de productos (sp) que nos da una forma directa de implementarla en dos niveles de puertas NAND . Para obtener la expresión mínima vamos a aplicar el método de Quine-McCluskey . Este método parte de la expresión suma de mintérminos de la función . En primer lugar, obtenemos esa expresión a partir de la que nos dan . Para ello construimos el mapa de Karnaugh :

000 001 011 010 110 111

101

100

0

0

0

00

0

1

1

0

01

0

0

1

1

1

1

1

1

11

0

0

0

1

1

0

1

1

10

0

1

0

0

0

0

1

0

f = 1 (4,6,9,11,12,13,17,19,21,22,23,25,27,29) Una vez con la expresión suma de mintérminos, el método consta de dos partes : 1) Obtención de las implicantes primas . El procedimiento de obtención de las implicantes primas consta de los siguientes pasos : 1) Listar todos los mintérminos por su índice (número de unos del código asociado a cada mintérmino) . 2) Comparar cada mintérmino de índice j (empezando por j=0) con cada mintérmino de índice j+l . En el caso de ser adyacentes : a) Formar una nueva pareja con ambos mintérminos e incluirla en una nueva lista, dentro del grupo de índice j . (Cada pareja es una implicante) . b) Marcar ambos mintérminos .


DISEÑO DE CIRCUITOS COMBINACIONALES

71

3) Una vez comparados todos los mintérminos, proceder con la nueva lista (la de implicantes) de forma similar al punto 2 . Esto es, comparar cada implicante de índice j con cada implicante de índice j+l . En caso de ser adyacentes, formar la nueva implicante que cubre a las implicantes anteriores y añadirla a una nueva lista . Además, marcar las implicantes agrupadas . 4) Una vez comparadas todas las implicantes de todas las listas generadas, son implicantes primas todas aquellas que están sin marcar al final del proceso . El desarrollo de estos pasos, en este caso, es el siguiente : Mintérminos listados por su índice

Implicantes de dos mintérminos (4,6)-2 J (4,12)-8 1

índice 1

4<

índice 2

6< 9< 12< 17<

índice 3

índice 4

11< 13< 19< 21< 22< 25< 23< 27< 29<

(6,22)-16 H (9,1l)-2< (9,13)-4< (9,25)-16< (12,13)-1 G (17,19)-2< (17,21)-4< (1 7,25)-8< (11,27)-l6< (13,29)-16< (1 9,23)-4< (19,27)-8< (21,23)-2< (21,29)-8< (22,23)-1 F (25,27)-2< (25,29)-4<

Implicantes de cuatro mintérminos (9,11,25,27)-2,16 E (9,13,25,29)-4,16 D (17,19,21,23)-2,4 C (17,19,25,27)-2,8 B (17,21,25,29)-4,8 A Expresión de cada implicante a b c d e A

1--01

ad

B

1-0-1

a e e

C

lo—

1

abe

D

-1-01

bde

E

-10-1

b e e

F

1011-

abcd

G

0110-

abcd

H

-0110

bcd-e

1

0- 100

acde

J

001-0

asee

II) Cubrimiento mínimo . El proceso de obtención del cubrimiento mínimo consta de varios pasos : 1) Formar la tabla de implicantes primas . Para ello, poner los mintérminos de la función como cabezas de columnas y las implicantes primas como cabezas de filas . Marcar los mintérminos cubiertos por cada implicante . 2) Determinar las columnas distinguidas seleccionando las implicantes primas esenciales para formar la expresión de la función . Eliminar todos los mintérminos cubiertos por las implicantes esenciales . 3) Si hay mintérminos de la función que aún no han sido cubiertos, simplificar la tabla . Para ello, eliminar las filas dominadas (si el coste es mayor o igual que la dominante) y las columnas dominantes .


72 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

4) Verificar si hay implicantes esenciales secundarias, en cuyo caso repetir el proceso desde el paso 2 . 5) Si se llega a una tabla cíclica, obtener el cubrimiento mínimo bien por el método exhaustivo, bien por el método de Petrick . 6) La suma estrictamente mínima de la función se obtiene mediante la suma de las implicantes seleccionadas en los pasos 2 y 5 . Notas adicionales : 1 .- En funciones incompletamente especificadas, las inespecificaciones se toman como "unos" a la hora de obtener las implicantes primas y no se tienen en cuenta a la hora de formar la tabla de implicantes primas . 2 .- La obtención del producto de sumas mínimo, sigue el mismo proceso tomando los "ceros" de la función en vez de los "unos" . Comenzamos construyendo la tabla de implicantes primas : 6

22 23 17 :19 21 A ~{ . . .. ... . . . . . . . . . ... . . . . . . . . . . .. . . . . . . . . . . . . . .... x X . . . . . . . .... . ..... . .. . . . . . . . . . .... . . . . . . . . .. . .. . . . . . . . . . . . .. .. . . . . . . . . . . . . . ..... . . . . . . . .l. .x . . . . . . . .. . . . . . . . . . . .... . .. . . . . C... . . D X E X X F X X G X X H X X I X X J X 9

11

12

13

25 t{ ... . X . . . .

,.

27

29 X

x ....... .. .. A X

t{ X

'

Columnas distinguidas : 11 . Por tanto, E es implicante prima esencial y se selecciona . Se eliminan de la tabla de cubrimiento los mintérminos de E : 9, 11, 25, 27 . Filas dominadas : B es dominada por C . Por tanto, eliminamos B . Columnas dominantes : la columna 17 domina a 19 y 21 . Se elimina 17 . Columnas distinguidas secundarias : 19 . Por tanto, C Implicante prima esencial secundaria y se selecciona . Se eliminan sus mintérminos : 19, 21, 23 . En este punto, por claridad, reescribimos la tabla eliminando las columnas y filas ya tachadas . 4 6 12 13 22 29 A ; ;~ . . . . . . . . . . . . .. .. . . . . . . . . . . . ..... . . . . . . . . . . . . . . . .

0 0

.

S

F

. . . .. . . . . . . . . . . . . ..

V. . . . .

X

0

.

c.... . . . . . . .. . . . . . . .. . . . . . . . . .

Í

1

I

-. . . .


DISEÑO DE CIRCUITOS COMBINACIONALES

73

Filas dominadas : A es dominada por D . Por tanto, eliminamos A ; F es dominada por H, de aquí que eliminemos F . Columnas distinguidas secundarias : 22 . Por tanto, H es esencial secundaria y se selecciona . Columna 29 . Por tanto, D es esencial y se selecciona . Eliminamos los mintérminos 6, 22 (de H), 13, 29 (de D) . Filas dominadas : G es dominada por 1 y J es dominada por 1 . Eliminamos G y J . Columnas distinguidas secundarias : 4 -* 1 es esencial y con ella la función queda completamente cubierta . Por tanto :

f = E+C+H+D+I = bce+abe+bcdé+bde+ácdé b) Con puertas NOR, el procedimiento es similar con las diferencias de que hay que obtener una expresión mínima en forma producto de sumas (ps) y, por tanto, hay que partir de la expresión producto de maxtérminos de f . A partir de esta expresión, el método de Quine-McCluskey se aplica exactamente igual que en el caso anterior . La solución que se obtiene es la siguiente :

f = ( c+e) (a+b+é) (a+d+e) (b+c+d) Problema 18.- Florencio va a ir a una fiesta esta noche, pero no solo . Tiene cuatro nombres en su agenda : Ana, Bea, Carmen y Diana . Puede invitar a más de una chica pero no a las cuatro . Para no romper corazones, ha establecido las siguientes normas : - Si invita a Bea, debe invitar también a Carmen . - Si invita a Ana y a Carmen, deberá también invitar a Bea o a Diana . - Si invita a Carmen o a Diana, o no invita a Ana, deberá invitar también a Bea . Antes de llamarlas por teléfono, quiere utilizar un circuito que le indique cuándo una elección no es correcta . Ayúdele a diseñar el circuito óptimo en dos niveles con puertas NAND . (Utilice el método de Quine-McCluskey) . Solución P18 .- Descripción de las variables : Vamos a asociar una variable de conmutación a cada persona : A, a Ana ; B, a Bea ; C, a Carmen y D, a Diana . Cada variable puede valer 0 ó 1 con el siguiente significado : - Si vale 0 significa que la persona NO va a la fiesta . - Si vale 1 significa que SÍ va a la fiesta . Vamos a diseñar un circuito con una salida F que tomará los siguientes valores : - F=0 si la elección es correcta (cumple todas las normas) . - F=1 si la elección es incorrecta . OBTENCIÓN DE LA FUNCIÓN : En el enunciado se indican 5 condiciones a cumplir : - C 1 : Que no va solo . - C 2 : Que no van las 4 chicas juntas . - C 3 : Si va B (Bea), debe ir C (Carmen) .

- C4 : Si van A y C, debe ir B ó D .

- C 5 : Si va C óD ó no va A, debe ir B . F valdrá 1 cuando la elección sea incorrecta, esto es, cuando se incumpla alguna de las condiciones . Podemos expresar F como una suma de productos donde cada término producto representa una condición :

F = C1 + C2 + C3 + C4 + C5

Debemos encontrar los términos productos asociados a cada condición, teniendo en cuenta lo siguiente :


74

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

CX = 1 si no se cumple la condición . CX = 0 si se cumple la condición . La condición C 1 se incumple en el caso de que no vaya ninguna chica, esto es, en el caso de que A=0 B=0 C=0 y D=0 . En este caso C 1 =1 . El término producto asociado a esta condición es el mintérmino 0 : C 1 =A B C D . La condición C2 se incumple en el caso de que vayan todas las chicas, esto es, en el caso de que A=1 B=1 C=1 y D=1 . En este caso C 2=1 . El término producto asociado a esta condición es el mintérmino 15 : C 2=A B C D . La condición C3 se incumple en el caso de que vaya B y no vaya C . Esto es, si B=1 y C=0 . En este caso C3=1 . El término producto asociado a esta condición es : C3=B C . La condición C4 se incumple en el caso de que vayan A y C y no vayan ni B ni D . Esto es, si A=1 C=1 B=0 y D=0 . En este caso C4=1 . El término producto asociado a esta condición es : C4=A C B D. La condición C 5 se incumple en el caso de que vayan C o D o no vaya A y no vaya B . Esto es, si (C=1 ó D=1 ó A=0) y B=O . En este caso C 5 =1 . El término asociado a esta condición es : C 5 = (C+D+A)B= A B+ B C+ B D . De esta forma se obtiene que F=ABCD+ABCD+BC+ACBD+AB+BC+BD En forma de suma de mintérminos queda : F = E (0,1,2,3,4,5,9,10,11,12,13,15) A continuación, vamos a obtener una expresión óptima de F mediante el método de Quine-McCluskey que consta de dos partes . 1) Obtención de las implicantes primas . En nuestro caso, se obtiene : Mintérminos listados por su índice índice 0

0<

índice 1

1< 2< 4<

índice 2

3< 5< 9< 10< 12<

Implicantes de dos míntérminos (0,1)-1< (0,2)-2< (0,4)-2< (1,3)-2< (1,5)-4< (1,9)-8< (2,3)-1< (2,10)-8< (4,5)-1 < (4,12)-8<

Implicantes de cuatro míntérminos (0,1,2,3)-2,1 (0,1,4,5)-4,1 (1,3,9,11)-8,2 (1,5,9,13)-8,4 (2,3,10,11)-8,1 (4,5,12,13)-8,1

11 12 13 14 15

16

(9,11,13,15)-4,2 17

Expresión de cada implicante ABCD

índice 3 índice 4

11 < 13< 15<

(3,11)-8< (5,13)-8< (9,11)-2< (9,13)-4< (10,11)-1< (12,13)-1< (11,15)-4< (13,15)-2<

11

00--

ÁB

12

0-0-

AC

13

-0-1

BD

14

--01

CD

15

-01-

BC

16

-10-

BC

17

1--1

AD


DISEÑO DE CIRCUITOS COMBINACIONALES

75

I I) Cubrimiento mínimo Construimos la tabla de implicantes : 0

1

2

3

A

X

X

X

X

B

X

X

X C D X E . . ... . F . . . . . . . . . . . . .

9

X

X

10

11

X

12

X k . . .

- -----

. .-

. . . . . K . . . . ..x

. . . . . .. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .. . . . . . . . . . . . . . . . . .

15

X . . . . .

. . . . . . .

13

X

:

o

... . . .

5

X

.... .

4

.. . . . . . . . . . . . . . . -. . . .i . .

.... .

L

.....

a . . . . . . .; .....

10 es una columna distinguida, entonces, IE es una implicante prima esencial . Se eliminan los mintérminos de IE : 2, 3, 10, 1 . Lo mismo ocurre con la columna 12 y la implicante IF, y se eliminarán los mintérminos de IF : 4, 5, 12, 13 . 15 también es una columna distinguida e IG es una implicante prima esencial . En este caso se eliminan los mintérminos de IG : 9, 11, 11, 15 . En este punto reescribimos la tabla eliminando las columnas y filas ya tachadas . 1

B . . . .e ...... ....

0

1 X

X

X

Filas dominadas : C y D son dominadas por A y B, entonces eliminaremos C y D . En la tabla resultante tras eliminar C y D, tanto IA como IB cubren todos los mintérminos que faltan y además tienen el mismo coste, por lo que se puede elegir cualquiera de ellas . Por tanto :

AB F = IE+IF+IG+ IA = BC+BC+AD+ IB AC

Problema 19 .- Una empresa distribuye un cierto producto en ocho pueblos (A, B, C, D, E, F, G, H) de una comarca, comunicados entre sí como indica la tabla siguiente (cada X señala dos pueblos vecinos): A

x x x xx x x x B

C

D xE

x

F G

X

x

H

La empresa quiere construir almacenes de forma que cada pueblo, o bien tenga un almacén o bien un pueblo vecino lo tenga .


76

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

a) Determine todas las formas de hacerlo construyendo el menor número de almacenes posibles . b) Si en los pueblos A y G se ponen almacenes por tener mayor número de habitantes, determine todas las soluciones más económicas . Solución P19 .- a) Este es un problema de cubrimiento : con el menor número de almacenes, cubrir todos los pueblos . Vamos a aplicar la segunda parte del método de Quine-McCluskey, que consiste en hacer un cubrimiento óptimo . Si bien en el caso del método de Quine-McCluskey el problema consiste en obtener un "conjunto de implicantes mínimo" que cubra a todos los "mintérminos", en nuestro caso vamos a aplicarlo a obtener un "conjunto mínimo de almacenes instalados en los pueblos" de forma que cubramos a todos los "pueblos" . Existe una equivalencia entre implicantes y almacenes en los pueblos y entre mintérminos y pueblos . Vamos a construir una tabla de cubrimiento donde vamos a tener una fila por cada almacén que se pueda instalar en un pueblo y una columna por cada pueblo : A

B

a

X

X

b

X

X

X

X

X

X

X

X

X

X X

c d

X

e f

X

C

D

E

F

X

g h

G

H

X

X

X

X X

X

X

X

X

X X

X X X

donde a, b, c, d, e, f, g y h representan un almacén en los pueblos A, B, C, D, E, F, G y H respectivamente . Cada uno de ellos cubre al pueblo donde está instalado y a los pueblos vecinos . Por ejemplo, un almacén en el pueblo A, fila a, cubre a los pueblos A, B, D y F . A partir de aquí el procedimiento es igual al del cubrimiento en Quine-McCluskey : Columnas distinguidas ; filas dominadas y columnas dominantes . No obstante, en el enunciado

todas las soluciones mínimas . Cuando se pretende obtener todos los cubrimientos mínimos, no se debe aplicar el criterio de eliminar filas dominadas, ya nos dicen que se deben obtener

que este criterio elimina algunas soluciones mínimas . Cubrimiento mínimo de la tabla . Eliminamos las columnas dominantes : D (domina a B) y C y H (dominan a G) . El resultado de eliminar estas columnas, es la siguiente tabla cíclica : A

B

a

X

X

b

X

X X

c d

X

e f g

X

X

E

F

G

X X X X

X

X

X X X

X


DISEÑO DE CIRCUITOS COMBINACIONALES

77

Para resolver esta tabla vamos a aplicar el método exhaustivo . En este método se parte de una columna con el mínimo número de marcas . En este caso la columna E . Para cubrir el pueblo E hay tres opciones : Instalar almacén en d ó en e ó en f . Analicemos cada una de ellas : 1 .- Eligiendo d : Eliminamos las filas que cubre d : A, B, y E quedando la siguiente tabla : F X

a b c e f g

G

X X X X X

X

Con h se cubre el resto de la tabla . Así pues con d y h se cubren todas las columnas . 2.- Eligiendo e : Eliminamos las filas que cubre e : E y F quedando la siguiente tabla : a b c d f g h

X X

X X X X

X X

X

X X

Además de e se necesitan al menos dos más (por ejemplo : a y c ó b y g) . En total tres, con lo que no son soluciones mínimas . 3.- Eligiendo f: Eliminamos las filas que cubre f: A, E y F quedando la siguiente tabla : a b c d g h

B X X X X

G

X X

Con c se cubre el resto de la tabla . Así pues con f y c se cubre todas las columnas . Existen por tanto dos soluciones mínimas : Poner almacenes en los pueblos D y H ó ponerlos en los pueblos C y F . Existe otra forma de resolver la tabla de cubrimiento, aplicando el método de Petrick . Este es un método que consiste en lo siguiente : 1 .- Se forma la función de Petrick como expresión producto de sumas, donde cada término suma corresponde a las formas de cubrir una columna mediante filas . P.ej ., A se cubre con (a+b+d+f) :


78

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

P = (a+b+d+f)(a+b+c+d)(b+c+d+g+h)(a+b+d+e)(d+e+f)(a+e+f+h)(c+g+h)(c+f+g+h) . 2 .- Se obtiene la función de Petrick como suma de productos . El cubrimiento mínimo se obtiene con las filas que aparecen en los términos producto con menor número de literales : P = cf+dh+acd+ace+ (el resto de términos producto tiene 3 o más literales) . Por tanto, las soluciones mínimas son construir en C y F ó en D y H . b) Si en A y G se colocan almacenes están cubiertos todos los pueblos vecinos de A y G junto con ellos . Se pueden eliminar de la tabla de cubrimiento inicial . Al eliminar estos pueblos la tabla queda como sigue : 1

d e

E X X

Hay, pues, tres soluciones mínimas en esta caso son : { A,G,E }, { A,G,D } y { A,G,F } .

Problema 20.- Diseñe, con el menor número posible de puertas, un divisor por 2 de un dígito BCD . Dé el resultado con una cifra decimal (también en BCD) . Solución P20 .-Debemos diseñar un circuito con 4 señales de entrada representando un dígito BCD y que genere a la salida el resultado de dividir ese dígito por 2 . El resultado deberá tener una cifra decimal y estará representado en BCD . Por tanto la salida tendrá 8 señales : z3 z 2z 1 _ z0 .u3u2u1u0, donde z3z2z1z0 representa el dígito BCD de la parte entera de la división y u3u2u1u0 el dígito BCD de la parte fraccionaria . La tabla de verdad del circuito es la siguiente :

N 0 1 2 3 4 5 6 7 8 9

ENTRADAS a b c d 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0101 0 1 1 0 01 1 1 1 0 0 0 1001

SALIDAS N/2 0 .0 0 .5 1 .0 1 .5 2 .0 2 .5 3 .0 3 .5 4 .0 4 .5

z3z2z1z0 .u3u2u1u0

0 0 0 0 .0 0 0 0 0 0 0 0 .0 1 0 1 0 0 0 1. 0 0 0 0 0 0 0 1 .0 1 0 1 0 0 1 0 .0 0 0 0 0010 .0101 0 0 1 1 .0 0 0 0 001 1 .0101 0 1 0 0 .0 0 0 0 0100 .0101

De la tabla de verdad se obtiene una expresión para cada salida sin más que comparar las columnas de cada salida con las columnas de las entradas . Así se tiene : z3=0,z2=a,z1=b, z0=c,u3=0,u2=d,u1=0,up=d .


DISEÑO DE CIRCUITOS COMBINACIONALES

79

Problema 21 .- Una cierta puerta de cuatro entradas llamada LIMON realiza la función siguiente: L IMON(A, B, C, D)=BC(A+D) Suponiendo entradas en doble raíl: a) Realice la función: f (v, x, y, z) = E (0, 1, 6, 9, 10, 11, 14, 15) con sólo tres LIMON y una OR . b) ¿ Puede realizarse cualquier función en lógica LIMON/OR? .

Solución P21 .- La puerta LIMON realiza la siguiente función : LIMON(A,B,C,D)=L(A,B,C,D)=BC(A+D) = ABC + BCD . Es posible realizar términos productos de 1 variable (por ejemplo con L(1,x,1,1)=x), de dos variables (por ejemplo L(l,x,y,1) = xy), de 3 variables (por ejemplo L(O,x,y,z) = xyz) ó una suma de 2 términos productos de 3 variables con al menos dos literales comunes . Teniendo en cuenta esto vamos a obtener una expresión en forma de suma de productos para f y posteriormente veremos si es posible implementarla con puertas LIMON . Del mapa de Kamaugh se obtiene la siguiente expresión para f :

n 090

f = vy + v x y + v x z + xyz (1) x y z (2) f

Tenemos dos opciones para f, (1) y (2) . Como sólo disponemos de tres puertas LIMON y la función f tiene 4 términos productos, debemos usar una puerta LIMON para implementar dos de los 4 términos productos . Para ellos necesitamos dos términos productos que compartan dos variables . Esto es posible en la opción (2), con los términos productos v x y y x y z. La suma de estos términos productos la podemos implementar con la siguiente puerta LIMON : LIMON (v,x,y,z) = v x y + x y z = L 1 Los otros dos términos productos los implementamos cada uno de ellos con una puerta LIMON de la siguiente manera : LIMON (l ,v,y,1) = v y = L 2. LIMON (v,x,z,0) =v x z = L3. Por tanto : f= L, +L2 +L3 b) Con la puerta LIMON podemos implementar términos productos de hasta tres variables . Para implementar un término producto de más de tres variables necesitamos más de una puerta LIMON pero es posible implementarlo . Por tanto sí es posible implementar cualquier función utilizando exclusivamente puertas 'LIMON (con tantos niveles como se necesiten) y puertas OR.


80

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 22.- Se desea enviar mensajes de tres bits de una estación a otra y, para evitar en lo posible los errores, se ha decidido añadirle al mensaje un bit de paridad impar . Disponiendo únicamente de puertas EXOR y NO-EXOR de dos entradas : a) Diseñe el circuito que genere ese bit de paridad impar en la estación emisora . b) Diseñe también el circuito que compruebe en la estación receptora que el mensaje recibido es correcto. c) Generalice ambos apartados para n bits. Solución P22 . a) El enunciado nos pide diseñar un circuito que genere un bit de paridad impar a un código de 3bits :

b P = 0 si el n°- de "1" en abc es impar CIRCUITO COMBINACIONAL

p

P = 1 si el n2 de "I" en abc es par

Hay que diseñar el circuito usando exclusivamente puertas EXOR y NO-EXOR . La función EXOR se hace 1 cuando el número de 1 `s en sus variables es impar . Entonces, teniend o en cuenta la definición de P, P es el complemento de la función EXOR de a, b y c : P = a$b(Dc = (a$b) ©c Así, el circuito combinacional que genera P es el siguiente :

b

b) El enunciado nos pide diseñar un circuito que detecte un error de paridad impar en un código de 4 bits :

b

CIRCUITO COMBINACIONAL

E = 0 si el n4 de "1" en abcP es impar E = 1 si el n °- de "1" E en abcP es par

Teniendo en cuenta la definición de la función EXOR que se vio en el apartado a y la definición de E, E es el complemento de la función EXOR de a, b, c y P : E = aObOcOP = (aOb) O (cOP)


DISEÑO DE CIRCUITOS COMBINACIONALES

81

Así, el circuito combinacional que genera P es el siguiente : a _ b

=1

o- E

c) Generalización al caso de n bits : xn-1,xn-2 x1 ,x0. En el caso del generador de bit de paridad impar, la función del bit de paridad P es : P = 1 si el número de 1 `s en los n bits es impar P = 0 si el número de 1 `s en los n bits es par De esta forma teniendo en cuenta la definición de la función EXOR, la función P es el complemento de la operación EXOR de los n bits : P = x„- 1 O+xi-20+ O+ x 1 Ox o El circuito se puede hacer encadenando puertas EXOR de dos entradas y una última puerta NEXOR . En el caso del detector de bit de paridad impar, la función se define exactamente igual incluyendo un bit más que es el bit de paridad P : E = 1 si el número de l's en los n+l bits es impar E = 0 si el número de l's en los n+l bits es par De esta forma teniendo en cuenta la definición de la función EXOR, la función P es el complemento de la operación EXOR de los n bits : E = POxi _ 1 O+x,i-20+ (D XI +O X 0 Problema 23.- La expresión algebraica Co =Ao k = 1, 2, . . . Ck = (A o + A 1 + . . . + Ak_ 1) O+ A k proporciona el valor de la salida Ck de un circuito en función de las entradas A0, ., Ak-1, Ak. (a) Diseñe el circuito correspondiente a cuatro bits de entrada . (b) Describa verbalmente qué tarea realiza dicho circuito . (c) Utilizando como módulo el circuito diseñado en (a), realice un nuevo circuito para 12 bits de entrada, indicando las nuevas entradas y salidas que hay que añadir al módulo diseñado en (a), para que el nuevo circuito de 12 bits pueda operar correctamente .

Solución P23 .- Para 4 bits de entrada existen 4 bits de salida cuyas expresiones y el circuito final son las siguientes :


82

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

A2

Ao

Co = Ao ?1

>1

C 1 =A o +OA 1 C2 = (Ao+A1) OA2 C3 = ( Ao+A 1 +A 2 ) +OA 3 C3

C2

C1

Co

b) Analizando la tabla de verdad de las funciones C ; (i = 0, 1, 2, 3) se comprueba que se obtiene el complemento a 2 del número de 4 bits de entrada : A 3 A2 Al Ao C 3 C 2 C 1 C o 0 0 0

0 0 0

0 0 1

0

0

0

0

0

1 0

1 1

1

1

1

0

0

1

1

1 1

1 0

0 1

0 0

1 1

0 0

0 1

1 1

1

0 1

0 1

0 0

1 1

1 1

0 1

1

0 1

1

0 0

0

0

1 1 1 1

0 0 1

1 1 1

0 1

1

1 0

0 1 0

1 1

0 1

1 0

1

1

1

1 1

0 0

1 1

0 0

0 0

0 0 0

1

1

1

1 1

1 0

0 1

0 0

1 0

0 1

0 1

0

0 0

1 0

0 1

0

C 3 - o= Ca 2 (A3-o)

0

c) Para obtener la variable C k hay que ir arrastrando la operación OR de las K variables de entrada anteriores (A0 hasta Ak _ 1 ) . Para ello hay que añadir al módulo de 4 bits diseñado en el apartado a) una señal de entrada, Kin, que permita introducir la operación OR de las variables de entrada de los módulos que se coloquen antes, y una señal de salida, Kout, que transmita la operación OR de las variables de entrada anteriores al siguiente módulo . De esta manera la primera variable de salida del modulo, C0, no se obtiene directamente de la entrada A o sino como la operación EXOR de Ao y Kin (en Kin se conectará la señal Kout del módulo anterior o bien un 0 si es el primer módulo de la cadena) .


DISEÑO DE CIRCUITOS COMBINACIONALES

83

Módulo de 4 entradas y 4 salidas A3

A1

A2 >_1

_1

Ao >_1

>_1

Kout-

Kin

1 =1

=1

=1

=1

Bo

c,

C3

Conexión entre módulos A 11

A jo A9 A 8

A7

A6

A5

A4

A3

A2

Al

Ao

A3 Kout

A2

Al

Ao Kin

A3 A2 Kout

A1

Ao Kin

C3

C2

Cl

A3 A 2 Kout C3 C2

C10

C9

C11

Al

Ao Kin CO

C8

C7

C6

Cl

Co

C3

C2

C1

Co

C5

C4

C3

C2

C1

Co

0

PROBLEMAS CON SOLUCIÓN RESUMIDA

Problema 24 .- Dada la función de la figura, obtenga la mínima expresión en forma de suma de productos . c b a

oo0 001 011 ojo 110 111 101 100 00 0

0

0

0

0

01

0

0

0

0

1

11

1

1

1

1

1

0

0

lo 0

0

1

0

0

1

0

0

0

0

0 0

Solución P24.-f=abe+abcd+acde+abde

Problema 25.- Diseñe de forma óptima, un circuito que genere la función f(a,b,c,d,e) y cuya realización sea en dos niveles : a) f = E ( 0, 1, 5, 6, 9) + d (10, 11, 12, 13, 14, 15) . b) f = 1 ( 0, 2, 5, 7, 13, 15, 18, 26, 29, 31) + d(20, 24, 28) .


84 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P25 . a)fsp =ábc+bcd+cd fps =(á+d) (b+c) (c+d) (b+c+d) b)fsp =ace+bce+atice+acde fps =(c+ e) (c + e) (a + b + c) (a + d + e) (a+ b + e) Problema 26.- Sea F una función de un dígito BCD y de una entrada de control X. F vale "1 " en los siguientes casos : 1) Si X= 1 y el n° BCD es múltiplo de 3. 2) Si X=0 y el n° BCD tiene un n 2 impar de unos. Implemente F como un circuito en dos niveles utilizando puertas NAND .

Solución P26 .- El mapa de Karnaugh y una expresión en forma sp (para implementar la función en dos niveles NAND-NAND) son los siguientes : Xab 000 001 011 010 110 111

d 00 01 11 10

Lp R∎ Ei ,v

d C~ 1 o ~4\

101

100

0 f

d

f = Xábcd+Xbcd+Xbcd+Xbcd+Xad+Xad+Xbcd+Xbcd+Xábcd

Problema 27.- Rediseñe el circuito de la figura con puertas NAND solamente .

x y z Solución P27 .- Primero hay que analizarlo, para posteriormente buscar una expresión en suma de productos :

f = xy+ (y+z) = x+y+yz = x+y(1 +z) = x+y = xy


DISEÑO DE CIRCUITOS COMBINACIONALES

85

Problema 28.- Diseñe un circuito cuya salida sea el resto de la división de un número A de tres bits entre un número B de dos . El número B nunca puede ser cero . Solución P28 .- El mapa de Karnaugh y las expresiones en forma sp para las dos salidas que forman el "resto" de la división son los siguientes :

011

010 110

111

101

100

dd

dd

dd

dd

dd

dd

dd

dd

00

00

00

00

00

00

00

00

00

01

00

10

00

01

10

01

00

01

01

00

00

01

01

00

r a ro

r, =a 2 a,a o b l b o +a 2 a,a o b,b o r o = ao b o +a 2 a,ao b 1 +a 2 a 1 a ob 1 +a 2 a,a o b l b o

Problema 29.- Un sistema sencillo para hacer votación secreta es utilizar un circuito combinacional cuyas entradas estén controladas por interruptores que puedan accionar los miembros del jurado . Cada miembro votará con un SÍ o un NO (no hay abstenciones) . El sistema que queremos realizar es el siguiente . Hay dos tribunales : A y B. El tribunal A tiene 4 miembros (a,b,c, y d) y el tribunal B tres (e,f, y g). El veredicto deberá ser.. - El del tribunal A en el caso de que no se produzca empate . -4 Si se produce empate en el tribunal A, el veredicto será el del tribunal B . Diseñe el circuito según el diagrama de bloques de la figura:

CIRCUITO A CIRCUITO C

f

CIRCUITO B

Solución P29 .- Codificación de las variables : Entradas : a, b, c, d, e, f, g = 0 si el voto es NO . a, b, c, d, e, f, g = 1 si el voto es SÍ . Salidas : Del circuito A : F 1 F2 = 0 0 cuando gana NO en la votación del tribunal A . F 1 F2 = 0 1 cuando gana SÍ en la votación del tribunal A . F1F2 = 1- cuando se empata en la votación del tribunal A .


86

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Del circuito B : F 3 = 0 cuando gana NO en la votación del tribunal B . F 3 = 1 cuando gana SÍ en la votación del tribunal B . Del circuito C : S = 0 cuando gana NO en la votación global . S = 1 cuando gana SÍ en la votación global . Los mapas de Karnaugh para cada una de las funciones y sus expresiones en forma sp son los siguientes : ab cd\ 00 01 11 10

ab cd\ 00 01 11 10

00

0

0

1

0

00

0

0

d

0

01

0

1

0

1

01

0

d

1

d

11

1

0

0

0

11

d

1

1

1

10

0

1

0

1

10

0

d

1

d

F I = ábcd+ábcd+ábcd+ a b e d + a b c d + a b c d

F2= a b + c d

u aoo

S= F 1 F2 + F 1 F 3

F3 =ef+eg+fg

Problema 30.- Se desean visualizar las siguientes representaciones utilizando un visualizador de 7 segmentos . Diseñe un circuito de tres entradas que encienda correctamente el segmento g . REPRESENTACIONES El 1

I_ 1

P

IC

uLUL

VISUALIZADOR

C

1

Solución P30 .- La función de salida toma los siguientes valores : g = 0 si no se enciende el LED . g = 1 si se enciende el LED .

7 SEGMENTOS


DISEÑO DE CIRCUITOS COMBINACIONALES

87

Son 6 casos los que hay que representar por lo que se necesitan tres entradas : x, y, z : REPRESENTACIONES

x y z

g

> 000

1

L

u r L > U

C L C >

001

1

010

0

011

1 g=y+z

100

1

101

1

Problema 31 .- Una caja de seguridad dispone de 5 cerrojos (V,W,X,Y,Z) los cuales deben ser desbloqueados para abrirla caja . Las llaves de la caja están distribuidas entre 5 ejecutivos de la siguiente manera : A tiene llaves para los cerrojos V, X; B para V, Y; C para W, Y; D para X, Z; E para V, ZZ a) Determine todas las combinaciones mínimas de ejecutivos requeridos para abrir la caja . b) Determine el ejecutivo "esencial". Solución P31 .- Es un problema de cubrimiento mínimo y para resolverlo se debe aplicar el método ya conocido (véanse los Problemas 17 y 19) . La tabla de cubrimiento es :

A B

V

X

x x

x

C E

x x

x

z

x x

D

y

x x

Las combinaciones de ejecutivos mínimas que se obtienen con esta tabla de cubrimiento son : (A, C, E } ( A, C, D ) { B, C, D } {C, D, E } . El ejecutivo "esencial" es el C .

Problema 32.- Dada una palabra "A" de n bits y una señal de control "C", diseñar un circuito combinacional cuya salida sea el complemento a 1 (Ca 1) ó el complemento a 2 (Ca2), según el valor de C . Utilice exclusivamente puertas EXOR y OR . Solución P32 .- Sea A=An_1An_2 A 1 Ap el número de entrada y B = Bn_1Bn_2 B 1 Bp el número de salida . El circuito que obtiene el complemento a 1 ó a 2 en función del valor de C es el siguiente :


88

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Si C = 0, B = Ca2(A) Si C = 1, B = Cal (A) A

n-

_1

An-

?l

A

>1

=1

B n-1 -

Problema 33.- Una luz se enciende cuando su señal de excitación está en nivel bajo . Esta señal está controlada por un circuito de cuatro entradas : x, ->orden de encender la luz, activa en bajo ; x2 ->orden de inhibir la luz, activa en bajo ; x3 ->orden de emergencia, activa en bajo; x4 ->aviso del estado de la luz en la calle : "1" si es de día, "0" si es de noche . La luz se debe iluminar cuando haya orden de encenderla, el estado de la luz exterior sea el apropiado y no haya inhibición, excepto si hay emergencia, en cuyo caso la luz se enciende independientemente de las otras señales . De una tabla de verdad del circuito que controla la luz diseñándolo con los elementos que estime oportunos . Solución P33.- Función de salida : L=0 luz encendida . L = 1 luz apagada . Variables de entrada : x1 = 0 encender luz . x 1 = 1 no encender luz . x 2 = 0 inhibir luz . x 2 = 1 no inhibir luz . x 3 = 0 emergencia . x3 = 1 no emergencia . x4 = 0 es de noche . X4= 1 es de día. Función L : L = 0 si se enciende y es de noche y no hay inhibición : (xt+x 4+x2) . L = 0 si hay emergencia : x 3 L = (x 1+x4+x2)x3 .


Capítulo 5 SUBSISTEMAS COMBINACIONALES

En este Capítulo se abordan los subsistemas combinacionales . Con este nombre se agrupa a una gran diversidad de circuitos que, a nivel estructural son generalmente mucho más complejos que las puertas estando integrados en al menos la escala MSI y cuya funcionalidad va mucho más allá de las meras operaciones algebraicas . Una clasificación atendiendo a dicha funcionalidad los divide en subsistemas de propósito específico y subsistemas de propósito general . Los primeros realizan funciones fijas, mientras que los segundos realizan cualquier función lógica mediante una "programación" interna o de sus entradas y salidas . Antes de conocer uno a uno los dispositivos que componen ambos grupos, destacamos algunas características comunes . En cuanto a los tipos de entradas se pueden distinguir dos : las de control y las de datos . Las primeras controlan la operación del dispositivo y suelen recibir nombres como el de señal de habilitación (Enable) . Y las segundas corresponden a las variables independientes de las funciones que desarrollan . Es importante destacar que en estos dispositivos, cada entrada de dato suele poseer un peso asociado, de modo que las entradas no son intercambiables como ocurría en las puertas . Respecto a las salidas, también existen las de control, que avisan de determinadas situaciones o estados en el que se encuentra el dispositivo, y las de datos, que son realmente las que dan respuesta al conjunto de entradas en cada instante . Respecto a la actividad de las señales, estas pueden ser activas en bajo o en alto . Si por ejemplo, nos referimos a la entrada de habilitación (EN), que sea activa en alta significa que cuando ésta tenga el valor lógico 1 1 , el dispositivo realiza la función para la cual está diseñado, y si está a 0, el dispositivo no está habilitado para desarrollar su función . En los circuitos de esta obra, las señales activas en bajo se representan con un "círculo" (por ej ., las señales de habilitación 1 y 2 del problema 6) y las que son en alto, sin él (por ej ., E 3 en el problema 6) . Cuando un dispositivo no está habilitado, sus salidas estarán fijas a un valor determinado que, según su diseño, puede ser 0, 1 o un tercer estado de alta impedancia (HI) .

1 Recordemos

que usamos lógica positiva (L * 0, H -* 1) .

89


90

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

SUBSISTEMAS DE PROPÓSITO ESPECÍFICO Decodificador : Se trata de un dispositivo con n entradas y 2n salidas donde en función de la combinación binaria de sus entradas, una y sólo una de las salidas se activa . Es decir, convierte un código binario de entrada en código "1-entre-n" . Su símbolo para el caso DEC 2 :4 con habilitación y salidas activa en alta, su tabla de verdad y sus ecuaciones de cada salida se muestran a continuación :

EN 1

EN 3 - d3

o

xo

do

dl

d2

d3

0

0

0

0

0

.xo •EN = x 1 .x o•EN 0 - d o = x 1 .xo •EN 2- d 2 1 - d1

1

x1

= x 1 .x o •EN = x1

DEC 2 :4

DEC 2 :4 con salidas activas en alto

1

0

0

1

0

0

0

1

0

1

0

1

0

0

1

1

0

0

0

1

0

1

1

1

0

0

0

1

Si el decodificador posee m salidas, donde m <

2n, se denomina decodificador no com-

pleto . Codificador : Realiza la operación contraria al decodificador . Es decir, convierte el código "l-entre-n" en código binario . Un codificador completo posee 2" entradas, de las que sólo una puede estar activa, y n salidas que ofrecen la combinación binaria asociada a dicha entrada . Su símbolo, tabla y ecuaciones de salida son las siguientes :

C3

C2

C1

Co

1

0

0

0

1

0

0

0

1

0

0

0

1

Yl

Yo

Y1= c3+c2

• •

2 1

Co

0

Y0= C3+c 1

COD 4 :2

Si el codificador posee m entradas y n salidas, con m < 2", se denomina codificador no completo . Por otro lado, existe el llamado codificador de prioridad . Se trata de un dispositivo equivalente al anterior . La diferencia es que sus entradas no necesitan estar en código "1-entre-n" ya que cada una de ellas tiene una prioridad sobre las otras, de forma que la salida es la codificación binaria asociada a la entrada de mayor prioridad que tenga el valor activo . Su tabla de verdad es :


SUBSISTEMAS COMBINACIONALES

c3

c2

1 • • •

1 0 1 0 0 1

C

1

c0

Yi

91

Yo

Convertidor de códigos : Consiste en un subsistema combinacional que convierte un código de entrada en otro de salida . El número de líneas de entrada y de salida depende de los códigos que se convierten . Los casos particulares en los que uno de los códigos sea "1-entre-n" son los dispositivos antes vistos . Comparador de magnitudes : Es un dispositivo que compara las magnitudes de dos datos A y B de n bits, para dar como resultado si A<B, A=B o A<B . El símbolo y la tabla son : A -,> n

B

-2o( -A

n

A>B A=B

E

A<B - L

Datos G E L A>B 1 0 0 A=B 0 1 0 A<B 0 0 1

SUBSISTEMAS DE PROPÓSITO GENERAL Multiplexor : Un MUX-n o MUX 2" :1 es un dispositivo de 2" canales de entrada (datos), n entradas de selección de canal y 1 salida . Su funcionalidad es dejar pasar hacia la salida la información que entra por uno de sus canales de entrada, aquel que está seleccionado en función de la codificación binaria de las señales de selección . Un MUX-n es un módulo lógico universal de n variables o de n+l variables si algunas de ellas está en doble raíl . El símbolo que se utilizará en este Capítulo y su tabla de verdad son : Co C1 C2 C3

F=C 0•S 1 •So+C 1 •S 1 •S o+C2 •S 1 •So +C3 •S 1 •S O

S I SO

S i So

F

0 0 0 1 1 0 1 1

Co C1 C2 C3

Demultiplexor : Realiza la función inversa al multiplexor . Un DEMUX-n o DEMUX 1 :2", posee una entrada de dato, n entradas de selección y 2n líneas o canales de salida . Su función consiste en pasar la información de entrada de dato a una de las líneas de salida, la determinada por la combinación


92

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

binaria de las señales de selección . El símbolo que se utilizará en el Capítulo y su tabla se muestran a continuación :

C 0= C1= C2= C3=

Din

Din •S 1 •Sp Din •S 1 •S o Din S, -«90 Din •S 1 -So

siso

S 1 So

Co C1 C2

C3

0 0 1 1

Din 0 0 0 Din 0 0 0 Din

0 0 0

0 1 0 1

0

0

0

Din

Analizando la tabla se puede comprobar que el dispositivo es equivalente a un decodificador con señal de habilitación EN= Din . Dispositivos Lógicos Programables (PLD's) : Su estructura general es la siguiente :

plano AND ----

plano OR líneas AND

.

entradas

salidas

Atendiendo a la posible programación de cada plano podemos hacer la clasificación siguiente :

plano AND

plano OR

No programable

Programable

ROM

Programable

Programable

PLA

Programable

No programable

PAL

ROM : Una ROM(2 n xm) posee n entradas de dirección y m salidas, que puede verse como un dispositivo que almacena 2n palabras de m bits, de forma que para cada combinación binaria de sus n entradas se selecciona una de sus 2n palabras . En las m líneas de salida se lee la palabra almacenada . Del plano AND de una ROM se obtienen todos los mintérminos de las n variables de entrada, y en función de la programación del plano OR, se eligen los que interesen para realizar la función lógica que se desee . Por tanto, una ROM es un dispositivo lógico universal de n variables para m funciones .


SUBSISTEMAS COMBINACIONALES

93

PLA : Un PLA(n,p,m) es un subsistema con n entradas, m salidas y p términos productos (salidas del plano AND) . Mediante este dispositivo pueden implementarse m funciones lógicas de n variables expresadas en sumas de productos si para ello no se superan los p términos ANDs disponibles . PAL: En este dispositivo cada salida es la OR de un conjunto determinado de líneas AND, no estando compartidas ninguna de ellas por otra salida . La implementación de una función con este dispositivo es similar al caso anterior, salvo que en el PAL cada función de salida se trata independientemente de las otras . Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Análisis de circuitos con subsistemas . - Diseño de subsistemas . - Diseño de funciones lógicas con subsistemas . PROBLEMAS RESUELTOS Problema 1.-Describa con palabras el funcionamiento del circuito : x>y xo

yl

x=y E x<y 2 3 4 5 6

Solución Pl .- Si las entradas x t xo son mayores o igual a y yo, se activarán las salidas G o E, respectivamente, del comparador de magnitudes . Estas salidas, gracias a la puerta OR, provocan que la entrada del demultiplexor sea un 1 lógico . Habrá, ahora, que determinar cuál es el canal de salida, en función de las señales de selección . Puesto que x>y, la salida L del comparador es 0, por tanto los canales seleccionados dependen sólo de y t (canal 1 o canal 5) . Como puede verse, estos canales están unidos mediante una OR, por lo que la salida será 1 . Cuando x<y, la salida L del comparador está activa . La entrada del DMUX se encuentra a 0 e, independientemente de las entradas de selección, los canales valdrán todos 0, y la salida también . En resumen, si x>y, f=1 y si x<y, f=0 .


94

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 2.-Rediseñe en dos niveles el circuito de la figura : A2 A 1 Ao D4 D 3 D 2 D I D o ROM D4 xA2 D Y- Al D zAo DI D

do 0 di 1 d2 d 2 1

F 0

u v

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

0 0 0 0 1 1 - 1 0 1 - 0 1 1 1 1 0 0 0 0

0 0 0 1 0

1 0 1 1 1 0 1 1 1

1 1 - 1 0 0 1 0 0 0 1 0 - 0 1

Solución P2 .- Los canales de entrada del multiplexor responden a la siguiente tabla : d2 d3

x y z

do d

0 0 0 0 1 1 1 1

0 0 0 0 1 1 1 0 0 1 - 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 - 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

que, junto con las señales de selección de canal, podemos construir el K-mapa siguiente : xyz 000 001 011 010 110 111 101 100

uv 00

0

1

1

0

0

1

1

0

01

0

1

1

1

1

0

1

0

11

0

0

1

0

0

1

0

0

10

0

1

-

0

1

0

-

f de donde obtenemos la expresión mínima :

f = v Problema 3.-

•z +ú •y . z+u •y -z+ú •v «y •z +ú •x •z

Interprete la utilidad del sistema mostrado en la figura .

D A3 A2 Al Ao

D3 D2

convertidor binario/BCD

conv BCD 7 seg

b c e f g

el

ROM D D

conv BCD 7 seg

b' e' f

l c d a'

fl

1

9

e l

l b, l c'

d'


SUBSISTEMAS COMBINACIONALES

95

Solución P3 .- Dada una entrada (A3,A 2,A 1 ,A0), se selecciona una posición de la ROM cuyo contenido se vuelca en el bus de datos (D 4-0) . El convertidor binario a BCD, transforma el número binario en su correspondiente BCD de 2 dígitos . Estos dígitos BCD, se muestran en sendos displays de 7 segmentos . Por tanto, el sistema de la figura, sirve para mostrar el contenido de una memoria ROM en formato decimal . Problema 4 .-Diseñe un codificador de prioridad de 4 entradas activas en el nivel bajo . Añada una salida que indique cuándo no hay ninguna entrada activa .

Solución P4 . EO EO El . E2 E

El

E2

E3

0 A1 AO

c 1

2 C

Y COD

1

0

1

1

0

1

1

1

0

1

1

1

1

A1

Ao

Y

0

0

0

0

1

0

1

0

0

1

1

0 1

Las entradas al codificador son activas en baja, siendo E O la de mayor prioridad y E 3 la de menor. La salida Y señala cuando no hay ninguna entrada activa en el codificador de prioridad . Y = E0-E1-E2-E3 las restantes ecuaciones algebraicas para las demás salidas : A1 = E O •E 1 A0 = EO. (É 1 + E2) ,

Problema 5 .- Se tienen dos codificadores de prioridad 4 a 2 como el de la figura . Este dispositivo dispone de una entrada de habilitación El y dos salidas EO y GS . EO se activa cuando el codificador está habilitado pero no hay ninguna entrada de datos activa, mientras que GS se activa cuando el codificador está habilitado y hay alguna entrada activa . Diseñe un codificador de prioridad de 8 a 3 de las mismas características de los anteriores . Además de los dos codificadores, se pueden emplear hasta un máximo de ocho puertas de Jos entradas .


96 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

EO

El 13 12 I1 lo

GS COD

Ql Qo

Solución P5.- De acuerdo con la descripción del enunciado y suponiendo que la entrada del dispositivo con mayor prioridad es 1 3 , la tabla de verdad es : El

EO

GS

1

1

1

0

1

0

1

1

1

0

1

0

1

0

0

1

0

0

0

1

0

0

1

1

0

0

1

1

1

0

1

0

0

1

1

1

1

0

1

Q

Qo No habilitado

Habilitado con alguna entrada activa

Habilitado, pero no activo

El dispositivo a realizar es una extensión de éste . Llamando con minúsculas a sus variables, nuestro objetivo es realizar el siguiente circuito :

1

COD 8 :3

i7

i6

i5

i4

i3

i2

il

eo

gs

1

1

1

q2

q1

q0

0

1

1

1

1

0

1

1

0

1

0

1

0

1

1

0

1

0

0

1

0

0

1

1

1

0

0

1

0

1

0

0

0

1

0

0

0

eo

1

gs

0

0

0

1

0

q2

0

1

1

0

q1

0

1

1

1

0

q0

0

1

1

1

1

0

0

1

1

1

1

1

0

0

1

1

1

1

1

1

0

o

1

1

1

1

1

1

1

0

1

0

0

1

1

1

1

1

1

1

1

0

1


SUBSISTEMAS COMBINACIONALES

97

Para realizar el codificador de ocho entradas necesitamos dos codificadores de cuatro entradas, uno recibirá las entradas más significativas (i7 - i4) y el otro las menos significativas (i 3 - i o) . Las variables de entrada y salida correspondientes al primer codificador las notaremos con el superíndice "H" y a las correspondientes al segundo codificador con el superíndice "L" . Para dar la solución adoptamos una de las posibles alternativas de conexionado mostrada en la siguiente figura: ------------------------------------------------------e¡

EO >

El

i7

C 13

i6

c 12

GS

3

H

T ea g

I

Ql

lo COD

Qo Circuito q2

combinacional qi q0 -C

J

'3 2 it

io

-

-~ I 1

I

Ql Qo COD

COD 8 :3 -----------------------------------------------------En esta solución, la habilitación externa actúa sobre el codificador H (más prioritario) y, sólo cuando no hay petición en i 7 , o i 4 , se habilitará el codificador L (menos prioritario) . Para ello, conectamos EO H con EIL . Además existe un circuito combinacional que, recibiendo como entradas las salidas de los codificadores, genera las salidas deseadas . Para nuestra solución se cumplen las siguientes relaciones : El = e; EIL = EOH La tabla siguiente muestra los valores de entradas del codificador completo y el valor de las señales intermedias que serán las salidas de cada uno de los dos codificadores que estamos utilizando .


98

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

e;

17

16

15

14

11

13

10

EO H GSH QIH QO

1

1

1

1

0

1

1

0

1

H

EO

L

GS L QI L. Q0

1

1

1

1

1

1

0

1

1

0

0

1

1

1

1

0

0

0

1

1

0

1

1

0

1

1

0

1

1

0

1

0

0

1

1

0

0

1

0

0

0

0

0

1

0

0

1

1

0

0

1

1

1

0

0

1

1

1

1

0

0

1

1

1

1

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

1

0

0

1

1

0

0

1

1

1

1

1

1

1

1

0

1

0

1

1-

A partir de la tabla anterior se pueden obtener las relaciones algebraicas para las cinco funciones de salidas . Se han especificado a O las inespecificaciones en las salidas de los codificadores . eo = EOL

gs = GS H

• GSL

q2 = EOH

q1 = Q1 H + QI L

q0 = QOH + Q0L

Si pasamos a la implementación de estas ecuaciones mediante puertas, el circuito global sería el que se muestra a continuacion : EO )---

El 13 12

co

GS H gs

I,

Ql

o

CODQ0

El

EO

i3 c I GS i2 1 L

I1

q1

Ql

io

q0

COD

Problema 6.- Utilizando decodificadores 74138 (mostrados en la figura) y el menor número de puertas posible, ¿cómo diseñarías . . . a) un decodificador 4 a 16 . b) un decodificador 5 a 32? .


SUBSISTEMAS COMBINACIONALES

99

Solución P6.- El decodificador del que disponemos, el Cl 74138, es el que se muestra a continuación :

A2 Al A0

2 1 0

Oo O1 02 03 04 05 06

07

A partir de él, se quiere conseguir un decodificador 4 :16 . Para ello se requiere dos decodificadores y una de las posibles formas de asociarlos es como se ve en la siguiente figura, donde la nueva variable de entrada elige, según su valor lógico, cuál de los dos decodificadores estará habilitado . Para ello, de las tres entradas de habilitación que tiene cada uno de los decodificadores, dos de ellas la fijamos al valor lógico correcto para habilitar al decodificador, y la tercera entrada de enable es con la que se pretende ir habilitando uno u otro .

Oo O1 Ó2 04 05 06 O6

2

089 0 10

Oll 0,2 0,3 0 14 X15

Como comentario del decodificador obtenido se puede decir que no posee señales de habilitación como tenía el inicial . Si se hubiera querido conservar éstas, se tenían que haber utilizado mayor número de decodificadores . Procediendo del mismo modo se puede conseguir un decodificador 5 :32 asociando cuatro decodificadores y un inversor . Se muestra en la siguiente figura :


100

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

-----------------------------------

É EA 1 r-~1 0 a4

4 5

1 2 3 04 5

7

07

a3 -

11 É, E2E, J_ 1 a2 -` al a0

2 1

E, E2 E3 2 1 0

2T- ~

~r

4 Ser 6 !7 --

8 9 10 11 12 13 0 14 0 15

`16 1 ~-~17 2>-r 18 3~-~19 4° 20 5r- ` 0 21 822 T 23 01

ÉÉE 30-24 1>~ 25 2> 26 ! 2 3) . 27 1 1 4' 28 5 >- :- 029 0 30 7Yr 0 31

DEC 5 :3L 1

Problema 7.-La figura muestra un comparador de dos números de 1 bit y su tabla de verdad . Se desea obtener un comparador de números de 6 bits, utilizando exclusivamente comparadores de 1 bit. El diseño debe contemplar que el tiempo de retraso no supere 4T, donde T es el retraso asociado al comparador de 1 bit .


SUBSISTEMAS COMBINACIONALES

101

Bi

A; Ci Ai B i Ei 0 1 1 1 1

0 0 1 1

0 1 0 1

0 1 0 0 1

1

Ei

Solución P7 .- Para comparar dos números de 6 bits, con estos dispositivos, necesitaremos comparar, bit a bit, los dos números . Utilizaremos, por ello, 6 comparadores : A2 C

C

B2

C2

1

1

A5

1

El A4

EO

B5

E2 A3

B4

B3

1

C

C

1

1

1

E5

E4

E3

Supongamos que los bits A 0 y B 0 son distintos . La salida E0 , evaluará 0 . Esto implica que, independientemente de que los restantes bits sean iguales, la salida global debe evaluar 0 . Nos podemos valer de las entradas de habilitación de los restantes comparadores para que sus salidas también sean 0 . Extendemos este concepto a sólo 3 comparadores, para no superar las restricciones temporales . Ao

Al

BO

B1

A2

B2

1

C2

C

C

E

E

A4 C5

B4

1

B

C3

C4

E5

A3

E4

1

E3

1

Para las estructuras anteriores, E 2 y E3 serán distintos de 0, cuando los bits de los números A y B sean iguales . Si alguno de ellos varía, E 2 o/y E 3 , pero al menos uno de los dos, será 0 . En efecto, supongamos que A 1 es distinto de B 1 , y todos los bits restantes son iguales . La salida del primer comparador, E 0 , será 1 (en el supuesto de que la entrada de habilitación sea 1) . Esto habilita la comparación del segundo comparador que, como sus bits de entrada difieren, generará un 0 en su salida E 1 . Esta salida inhibe al siguiente comparador, cuya salida también será 0, independientemente de A 2 y B 2 .


102

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Es importante destacar el hecho de que las respuestas de E 2 y E3 , se obtienen con un tiempo de retraso de 3T . Vamos a añadir, ahora, la señal de habilitación del comparador de 6 bits . Por la estructura y funcionamiento mostrados anteriormente, podemos pensar que la mejor forma de introducir esta señal, es utilizando las entradas de habilitación de los comparadores 0 y 5 . De esta forma se inhibe la operación de los 6 comparadores, generando, las dos ramas de comparadores, un 0 lógico, en sus salidas respectivas (E 2 y E3)A0

Bo

A1

Co

B1

A2

C1

C2

E o E l A5

B

E2

A4

C5

B4

A3

C4

E5

B2

B3

C3

E4

E3

Nos falta, por último, generar una única salida E del comparador partir de E 2 y E3 y utilizando, como mucho, un comparador más, para no superar el tiempo de respuesta (4T) . Se han tabulado las posibles respuestas de E 2 , E 3 y de la salida a generar, E, en función de los bits de datos y habilitación C 0

A,B

xxxxxxxxxxxx

E2 E 3

E

0 0

0

1

A0-2 = B0-2 y A 3-5 = B3-5

1

1

1

1

A0-2 = B0-2 y A3-5#B3-5

1

0

0

1

A0-2#B0-2 y A3-5 = B3-5

0

1

0

1

A0-2#B0-2 y A3-5#B3-5

0 0

0

Podemos pensar que la forma de obtener la salida E, a partir de E2 y E3 , es introduciendo éstas en la entrada de un nuevo comparador, sin más . Esto no sería del todo correcto, porque como vemos en la tabla, cuando E 2 y E 3 valen 0, la salida debe ser 0 . Esto se puede resolver, simplemente, utilizando como señal de habilitación cualquiera de las señales de entrada del comparador, (E2 y E 3 ), como muestra la figura :


SUBSISTEMAS COMBINACIONALES

E2

103

E3

C 1 E Cuando E 2=0 (ver tabla), la salida E vale 0, por estar este comparador inhabilitado . Cuando E2 =1, el comparador está habilitado y sólo tenemos dos posibilidades, E 3 =1 y E3 =0 . En la primera, el comparador activa su salida (E= 1) y en la segunda no .

Problema 8.-Realice las siguientes funciones haciendo uso de los dispositivos que se dan en cada uno de los apartados: a) Utilizando un decodificador con salidas activas en nivel alto y puertas OR . • Utilizando un decodificador con salidas activas en nivel bajo y puertas AND . • Utilizando un decodificador con salidas activas en alto y puertas NOR. • Utilizando un decodificador con salidas activas en bajo y puertas NAND . • E(0,9,11,15) + d(1,2,3) F= JJ (0, 3,5) • d(1,2) Solución P8 .- Si se dispone de un decodificador con salidas activas en alta, la expresión algebraica que define cada una de éstas será el mintérmino correspondiente al número de entradas que tenga dicho decodificador . Por tanto, si usamos en cada apartado un decodificador con tantas entradas como variables tiene la función a diseñar, se dispondrá de todos los mintérminos de ese número de variables, en cuyo caso sólo nos queda elegir entre todas las salidas cuáles son los mintérminos de la función y realizar la operación OR de todos . De forma análoga, si el decodificador tiene las salidas activas en baja, la expresión para cada un de ellas serán los maxtérminos del número de variables que posea el decodificador en su entrada . Siguiendo el mismo procedimiento, podemos conseguir todos los maxtérminos distintos del número de variables que posea la función y elegir los que sean maxtérminos de ésta . Bastaría después realizar la operación AND de éstos . Pasamos a resolver el problema para cada una de las funciones del enunciado F (a,b,c,d) = E(0,9,11,15) + d(1,2,3) a) utilizando decodificador salidas activas nivel alto y puertas OR : 0 1 2

3

b c

4 5 6 7 8

2 1

9 10

d

DEC 4 :16

1 11 13 14 15


104

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

b) utilizando decodificador salidas activas nivel bajo y puertas AND .

2 1

0 a

DEC 4 :16 c) utilizando decodificador salidas activas nivel alto y puertas NOR . Para este caso, dado que disponemos de una puerta NOR, tomaremos los maxtérminos de la función complementaria a la que queremos diseñar . De esta forma, a la salida de la puerta se obtiene la función del enunciado .

b

2 1

d DEC 4 :16

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

F

d) utilizando decodificador salidas activas nivel bajo y puertas NAND . Aplicando un razonamiento análogo al anterior dado que disponemos de una puerta NAND, damos la siguiente solución al problema :

b

2

c

1

d DEC 4 :16

0 1 2 3 4 5 6 7 8 9 10 11 12 13

F

15

Para todos los apartados hemos despreciado la existencia de inespecificaciones .


SUBSISTEMAS COMBINACIONALES

105

Repetimos el mismo razonamiento para cada una de las funciones siguientes : F = n (0,3,5) • d(1,2) a) utilizando decodificador salidas activas nivel alto y puertas OR :

b

0 1 2 3

1 0

DEC 3 :8

F

6 7

b) utilizando decodificador salidas activas nivel bajo y puertas AND : 0 1 2 3

2 1 0

4 DEC 3 :8

6 7

c) utilizando decodificador salidas activas nivel alto y puertas NOR : 0 1 2 3

b

I0 DEC 3 :8

6

7

d) utilizando decodificador salidas activas nivel bajo y puertas NAND :

Problema 9.-Encuentre un diseño mínimo para cada una de las siguientes funciones si sólo disponemos de un decodificador 3 :8 y de puertas de dos entradas . a) F= E(0,9,11,15) + d(1,2,3) b) F= fi (0, 3,5) - d(1,2) c) F = n (1, 3,4, 6, 9,11) • d(7,12,14) d) F = n (1,2,3,7,8,9) Solución P9.- Para dar solución a este problema, en el apartado b) se sigue el mismo procedimiento que en el Problema 8, pero para los otros tres apartados, las funciones son de cuatro variables y el decodificador del que se dispone sólo posee tres entradas . Con ello, de las salidas de éste, se obtienen los mintérminos o maxtérminos de tres variables (dependiendo del tipo de salida del decodificador), y añadiendo la cuarta variable (bien mediante operador AND u OR) se consiguen los mintérminos o maxtérminos de la función que se necesiten .


106

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

a) F(a,b,c,d) = E(0,9,11,15) + d(1,2,3) : abcd 1

a b c

abcd b) F(a,b,c,d) = 11 (0,3,5) • d(1,2) = a .(b + c) :

c

d m6 + m7

c) F(a,b,c,d) = I1 (1,3,4,6,9,11) • d(7,12,14):

2 1 0 DEC 3 :8

d) F (a,b,c,d) = [1 (1,2,3,7,8,9) :

a b

1

2 1

3

0 DEC 3 :8

4 5 6 7

/


SUBSISTEMAS COMBINACIONALES

107

Problema 10.- Un circuito tiene como entradas dos números binarios de dos bits cada uno : Y= y,yo; X= x,xo . Se desea que tenga salidas 11 si Y=X, 10 si Y>X y 01 si Y<X . Diseñe un circuito con un decodificador de 3 a 8 con salidas activas en alto, un número no determinado de puertas NAND de dos entradas y dos puertas NAND de un número de entradas no limitado . Añada una señal de habilitación (enable) . Las entradas están en único raíl . Utilice obligatoriamente el decodificador.

Solución P10 .-Las funciones del circuito, considerando E como señal de habilitación, están representadas en la siguiente tabla : X

E

Y

0

Zi

Zo

0

0

1

X=Y

1

1

1

X>Y

1

0

1

X<Y

0

1

Hemos elegido la salida Z 1 Z0 = 0 0 para indicar que el circuito está no activo puesto que era la combinación de salida no utilizada en el enunciado . Para diseñar el circuito, primero consideraremos que no tenemos señal de habilitación, y como segundo paso añadiremos ésta al circuito ya diseñado previamente . Para cada uno de los casos posibles de valores en las entradas X e Y conocemos los valores para las señales de salida . Mostramos este resultado en el siguiente mapa de Karnaugh : 00

01

11

10

Y 00

11

01

01

01

01

10

11

01

01

11

10

10

11

10

10

10

10

01

11

Z1 Zo A partir del mapa anterior podemos dar las expresiones de cada una de las funciones de salida . (0,1,2,3,5,6,7,10,11,15)=fl (4,8,9,12,13,14) . Z1 (x1 ,x0 ,y1 ,yo) = (0,4,5,8,9,10,12,13,14,15) =11(1,2,3,6,7,11) . Zo (x1 ,x0 , y1 ,yo) = Ambas funciones dependen de cuatro variables . Como el decodificador es de tres entradas y ocho salidas activas en alta, en cada salida aparece uno de los ocho mintérminos de las tres variables que actúan como entradas en el decodificador . Esto es, dado que las salidas del decodificador no proporcionan directamente los mintérminos de las funciones, tendremos que realizar la operación AND de la salida del decodificador con la cuarta variable con o sin complementar, según corresponda . Así tendremos:


108

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

xl'xo'Y¡ , Yo = mo

Yo xl'x0

Yl 1'

xl'x0'Y]

1

x1

Xo '

x0'Y1'Yo -M i

Yl

2 x1'xo'Y]

xo

1

3

x1

Xo'

Yi

4

Yl

5 6

xl'x0'Yi xl'xo . Y 1

DEC3 :8

o -

Y1

Yo -

m14

xo " Y F Yo =

m15

xl . x0' Y1'

Yo

Yo

Yo

Al disponer de puertas NAND de dos entradas, si las puertas AND anteriores son sustituidas por puertas NAND, a la salida de éstas dispondremos del complemento del mintérmino, es decir, maxtérmino correspondiente de cuatro variables . Además, en el problema disponemos de dos puertas NAND de un número no limitado de entradas . Podemos realizar las dos funciones descritas por producto de sus maxtérminos . Como para ello tenemos dichas puertas NAND, este producto es negado a la salida, por lo que podemos usar una puerta NAND de dos entradas actuando como inversor para conseguir la función final .

miMi . . . M k

mi Mi . . . M k

Mi +mj + . . .mk

Como se puede ver en el gráfico anterior, a la salida de la primera puerta NAND podemos obtener la función como suma (operación OR) de sus mintérminos, y a la salida de la segunda puerta NAND se expresaría la función como producto (operación AND) de los maxtérminos . Si pasamos a dar la solución para cada una de las funciones obteniéndolas como salidas de las puertas NAND de número variable de entradas, tendrías os que elegir como entradas de dicha puerta los maxtérminos de cuatro variables, cuyo subíndice sean las combinaciones binarias que hacen 1 a la función, así quedaría expresada ésta como suma de sus mintérminos .


SUBSISTEMAS COMBINACIONALES 109

Yo - • &

Mo

Yo -

M

Yo

M

Yo l 2

XI 1

M1

3 4 5

0

Y1

DEC 3 :8

M

o

Yo

M1

6 M1 M1 M1

Yo

[& •

Yo

Yo

M oiM 1 M2•M 3 M5 M M7 M10M11 M15

Si elegimos expresar la función como producto (operación AND) de sus maxtérminos y utilizamos una puerta NAND actuando como inversor a la salida, el circuito final sería el mostrado a continuación : Yo

xl xo Y1

M .M M

c

1 0

M1 DEC 3 :8

M M8 M9 _J Yo

Yo

M12 •M 13

ZI

M1 Yo

Si incluimos la señal de habilitación E que se definió en una tabla anterior, una de las opciones para resolverlo sería añadirle al decodificador una entrada de habilitación definida de la siguiente forma :


110

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

E

O ; (cada salida del decodificador)

0

todas las salidas a 0

X1 Xo

1

1

sólo una de las salidas activa

y1

0

1 2 3 4 5 DEC 3 :8

6

00 01 02 03 04 05 06 07

Problema 11 .- Diseñe un circuito de 4 entradas y 3 salidas, z0, z,, z2 que realice las siguientes funciones : zo vale 1 cuando tres o más entradas sean 1 . z, vale 1 cuando haya el mismo número de unos que de ceros . z2 vale 0 cuando dos o más entradas sean 1 . Para ello se dispone de : a) Un decodificador con salidas activas en nivel alto y puertas NOR . b) Un decodificador con salidas activas en bajo y puertas NAND . Solución P11 .- El mapa de Karnaugh para las tres funciones de salidas y el circuito final se muestra a continuación :

00

01

11

10

00

001

001

010

001

01

001

010

100

010

11

010

100

100

100

10

001

010

100

010

zO=E (7,11,13,14,15) z 1 = E (3,5,6,9,10,12) z 2 = E (0,1,2,4,8)

zo z t z2 a) Se dispone de decodificador con salidas activas nivel alto y puertas NOR . z0 = II (0,1,2,3,4,5,6,8,9,10,12) . z 1 = 11 (0,1,2,4,7,8,11,13,14,15) . Z2 = fI (3,5,6,7,9,10,11,12,13,14,15) .


SUBSISTEMAS COMBINACIONALES

m

DEC 4 :16

m58

m10

m6 m 7

7

1

m3

mp ml m2 m3 m4 m5

1 2 3 4 5 6

2

b

m1

m° m2 m4 6 m9

zp

12

l

m2

8

7 11 m14

4

8 -- m8 9 m9 mip 10 11 mil 12 m12 13 M13 14 m14 15 m 15

m10 m12

m14

zl

m6 m9

z2

11 M l3 15

a) Se dispone de decodificador con salidas activas nivel bajo y puertas NAND . z0 =1(7,11,13,14,15) .

z l = 11 (3,5,6,9,10,12) . z2 = II (0,1,2,4,8) . M7

0

M il

Mo

1

b c

2 1

DEC 4:16

M1 2 r--- M2 M3 3 ) 4 M4 5 ) 5 M6 6 M7 7 , 8 M8 9 M9 10 Mi0 11 ' M11 12 ' M12 13 ~-- M13 14' -- M14 15 , M15

M13 M14 M15

M5 z1 M9 M12 M° M1

M2 M4 M8

Problema 12.- Diseñe los siguientes convertidores de código : a) BCD - EXCESO-3. b) BCD -2de5 .

zp

z2

111


112

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Soluci贸n P12 . a) Estructura general : 0 DECOD A B

4

2 1

C D

1 2 3 5

6 7

BCD/Decimal 8

9

do d1 d2 d3 d4 d5 d6 d, dR d9

1 2 3

CODIF Z

4

2 Decimal/ 1

5

Exceso3 0

6 7

Z2 zi Zo

8

Convertidor BCD/ Exceso-3

BCD

Exceso -3

ABCD

Z3

Z2

0 1

0

0

1

Zo 1

o

1

0

0

2

0

1

0

1

3

o

1

1

0

4

0

1

1

1

5

1

0

0

0

6

1

0

0

1

7 8

1 1

0 0

1 1

0

9

1

1

0

0

z1

Z3 = E (5,6,7,8,9) = d5 +d 6+d 7+d8 +d9 Z 2 = E (1,2,3,4,9) = d l +d 2 +d 3 +d4 +d9 Z 1 = E (0,3,4,7,8) = d0+d3 +d4+d 7 +d8

Zo = E (0,2,4,6,8) = d0+d 2 +d4+d 6+d8

1

b) Estructura general : o DECOD AB

C D

1 2

3 2 1

4 5

6 7

BCD/Decimal 9

do , d, d2 d3 d4 d5

d6 d7 dR d

1

CODIF

2 3

4 5

Z 3 Decimal/ 2

6 7

8

Convertidor BCD/ 2 de 5

2de5

1 0

Z3 Z2 ZI Z


SUBSISTEMAS COMBINACIONALES

BCD ABCD 0 1 2 3

Z4 0 0 0 0

Z3 0 0 0 1

2 de 5 Z2 0 1 1 0

Z1 1 0 1 0

ZO 1 1 0 1

4

0

1

0

1

0

5 6 7 8 9

0 1 1 1 1

1 0 0 0 1

1 0 0 1 0

0 0 1 0 0

0 1 0 0 0

113

Z 4 = E (6,7,8,9) = d6+d7 +d 8+d9

Z3 = E (3,4,5,9)= d 3+d4+d5+d9 Z 2 = E (1,2,5,8)= d 1 +d2+d5+d8 Z 1 = E (0,2,4,7)= d0+d2+d4+d7 ZO = E (0,1,3,6)= d0+d 1+d3+d6

Cada una de las funciones de salida se realizarían con puertas OR cuyas entradas serían las salidas correspondientes del decodificador BCD/Decimal . Problema 13 .- En un determinado sistema microcomputador, existen 3 subsistemas que procesan la información de forma independiente a través de cuatro fases de operación . Por propósitos de control, es necesario conocer : a) Cuándo dos o más subsistemas están en la misma fase . b) Cuándo exactamente dos subsistemas están en la misma fase . Cada subsistema genera una señal de dos bits para indicar en qué fase se encuentra (00, 01,10,11) . Diseñe un circuito que permita conocer cuándo el conjunto de subsistemas se encuentra en alguna de las situaciones a) y b) .

Solución P13 .- Sean A, B y C los tres subsistemas que generan las señales A 1 A0, B1B0 y C 1 CO, que indican la fase de operación de los tres subsistemas respectivamente . El circuito a realizar debe tener dos salidas F y G que tomarán los siguientes valores : F=1 si hay 2 o 3 subsistemas en la misma fase . G=1 si hay exactamente dos subsistemas en la misma fase . G=F=O en otros casos . Para conocer si dos sistemas están en fase o no, utilizamos un comparador de magnitudes de 2 bits : Al AO B, BO

IAB

Si la salida 'AB =1 , los subsitemas A y B están en fase . Necesitaremos un total de 3 comparadores, a cuyas salidas las llamaremos IAB, I AC e IBC. Con estas salidas, diseñamos un circuito con puertas lógicas que genere las


114

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

salidas F y G . En el siguiente K-mapa vienen representadas las salidas F y G en función de las salidas de los comparadores : IAB 'AC

ama EN a 10

FG

Tan sólo comentar que existen casos que no pueden darse como entrada del circuito a diseñar con puertas . Uno de estos casos es IAB IAC e I BC = 011 . En efecto, si el subsistema A está en fase con el C (I AC = 1), y el subsistema C está, a su vez, en fase con el subsitema B (I BC = 1) es imposible que el subsistema A está en desfase con B . Las ecuaciones para las funciones F y G son : F = IAB +IAC + IBC

G =

IAB - IAC

+ IAC

• IAB + IBC • IAB

A Ao

IA

BI B0 AI Ao

1

CI CO C, Co

G IB

B,B0

Problema 14 .- Diseñe un circuito que a la salida de un multiplexor 8 :1 realice la función: F=1 (3,4,5,11,12,13,14,15,16,17,24,26,28,29,31) . Para el diseño se pueden usar, además de dicho multiplexor, un máximo de 8 puertas de 2 entradas. Solución P14.- Dada la función a implementar, el proceso es el siguiente . Basta con elegir tres variables de la función para las señales de selección del multiplexor . De esta forma, los residuos que deben entrar por cada uno de los canales de éste son funciones de las otras dos variables, y estos se implementarán con las puertas que disponemos . Una de las posibles soluciones es la que se muestra :


SUBSISTEMAS COMBINACIONALES

F=

115

E (3,4,5,11,12,13,14,15,16,17,24,26,28,29,31)

00 01 10 11

000 0 0 0 1

001 1 1 0 0

010 0 0 0 1

011 1 1 1 1

100 1 1 0 0

101 0 0 0 0

110 1 0 1 0

111 1 1 0 1

F

Problema 15.- Un desplazador a la derecha de n bits, es un circuito combinacional que tiene como entrada un número A, de n bits, m señales de control s m_ 1 , . . .s o que indican el número de posiciones que se desplazará a la derecha el número de entrada A, y genera la salida Z de n bits, correspondiente al número A desplazado . Así por ejemplo, para un desplazador de 8 bits, cuya entrada sea 10010101 y las señales de control s 2 s 1 so = 0 1 0, se genera un desplazamiento de dos posiciones a la derecha dando, como resultado, la salida XX100101 . Si s2 s, so = 0 0 0, no hay desplazamiento . a) Diseñe un desplazador a la derecha de n=4 bits y m=2 bits, utilizando 4 MUX's de 4 canales . Suponga que los bits más significativos del resultado, X. ., se llenan con 0's . b) Dibuje las formas de onda de las salidas, cuando A 3 A 2 A, A o = 1011 y las señales s, s o cambian según la secuencia 00,01,00,11,00,10 con una frecuencia de 1kHz . c) Indique una aplicación aritmética para el desplazador. Solución P15 .

a) Dibujamos el diagrama de bloque del desplazador combinacional y su tabla de verdad : A3 A2 A 1 Ao

1 Si SO

y Z3 Z 2 Z 1 Zp

SI

SO

0 0 1 1

0 1 0 1

Z3 A3 0 0 0

Z2 A2 A3 0 0

Z1 A1 A2 A3 0

Zp Ao Al A2 A3


116

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Cada Zi se obtiene de un MUX-2, donde cada fila s1 s 0 es un canal de entrada . Realizando el diseño quedaría : A3A2A I A 0

0 A3A2A 1

I

1

4

l ü

SI So

0 0 A3A 2

0 0 0 A3

I J

1

Z3

Zo

Z

b) Para el caso A3 A 2 A 1 A 0 = 1 0 1 1 y las líneas s 1 s 0 cambiando a una frecuencia de 1 KHz según la secuencia : s 1 s o : 00 01 00 11 00 10 Se obtienen las siguientes formas de ondas : lms= 1/1KHz S I so

00

01

00

11

00

10

Z3 z2 J

I

ZI zo 1011

0101 1011 0001 1011

0010

c) La operación aritmética que realiza el desplazador es la división por potencias de 2 . En este caso concreto se pierden los bits menos significativos, resultando :

donde s es el número s 1 s 0

y Lx]

es el entero por defecto de x .

Problema 16.- Rediseñe el circuito de la figura, utilizando sólo MUX s 2 :1 . Deberá reducirse en los posible el número de multiplexores . La única entrada disponible en doble raíl es e . 1 0 e 0 e 1 e 1

0 1 2 3 4 5 6 7

F

o

1 s c

2 1 0 1 I I a b d


SUBSISTEMAS COMBINACIONALES

117

Solución P16.- Para resolver este problema determinaremos, en primer lugar, el K-mapa de la función F .

00 01 11 10 F Para obtener el circuito de menor coste que implemente la función F, utilizando multiplexores de 2 canales, sólo podemos ir probando las diferentes realizaciones que surgan de suponer a, b, d ó e, como variables de selección del primer multiplexor ( el que genera F en su salida) . De todas ellas, la mejor es :

1 s i

b

e

Z ls 1

a

a -

ls 1

d

Problema 17.- Empleando un multiplexor de tres entradas de selección y todos los multiplexores que hagan falta de dos entradas de selección, realice la función lógica f(x 1 , x2 , . . .x6) que se caracteriza por tomar el valor '1' si y sólo si se cumple : x1+x2 +x3 +2x4 +2x5+3x6 _> 4 donde x; = (0,1) para i = (1,2, . .,6) y las operaciones de adición y multiplicación indicadas son aritméticas .

Solución P17 .- La desigualdad del enunciado describe una función booleana de 6 variables f(x1,x2,x3,x4,x 5 ,x 6 ), que toma el valor 1 cuando las asignaciones binarias de las variables (x 1 , . .x6 ) , satisfacen la expresión anterior, y 0, cuando no . Esta función booleana puede desarrollarse según el teorema de expansión de Shannon : f(x1,x2,x3,x4,x5,x6) =x4 x5 x6 f(x1 , x2 ,x3 ,0,0,0 ) + x4 x5 x6 f(x1 , x2, x3 ,0,0,1 ) + + x4 x5 x6 f(x1,x2,x3,0,1,0) + x4 x5 x6 f(x1,x2,x3,0,1,1) + + x4 x5 x6 f(x1,x2,x3,1,0,0) + x4 x5 x6 f(x 1 ,x2 ,x 3 ,1,0,1) + + x4 x5 x6 f(x1,x2,x3,1,1,0) + x4 x5 x6 f(x1,x2,x3,1,1,1)

Hemos expandido las variables x4 , x 5 y x 6 , por ser las más relevantes de la desigualdad . Esta expansión se puede implementar con un multiplexor, cuyas señales de control son x4, x 5 y x6 , y los canales, las funciones residuo . A partir de ahora, tenemos que determinar la expresión de las funciones residuo .


118

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Si en la desigualdad, sustituimos x 4, x 5 y x 6 por 0, 0, 0, podemos comprobar que, independientemente de los valores binarios que tomen las variables x1, x 2 y x3 , la desigualdad no se cumple . Por tanto, la función booleana vale 0 .

f (XI, x2 , x 3 , 0, 0, 0) = 0 Las siguientes funciones residuo, evalúan siempre 1, ya que la desigualdad se cumple siempre, independientemente de los valores de x 1 , x 2 y x 3 .

f (x 1 , x2 , x 3 , 1, 1, 1) = 1 f (x 1 , x 2 , x 3 , 0, 1, 1) = 1 f (XI, x 2 , x3 , 1, 0, 1) = 1 f (x 1 , x 2 , x 3 , 1, 1, 0) = 1 De las restantes 3 funciones residuo, podemos deducir que :

f (X1, X2, X3, 0, 1, 0) = f ( x 1, X2, X 3, 1 , 0 , 0 ) por lo que sólo tenemos que obtener las funciones residuo f(x 1 , x2 , x 3 , 0, 0, 1)

y

f(x 1 , x 2 , x3 , 0, 1, 0) . Los mapas correspondientes son :

--x _1x2 00 X3

01

11

10

x

2 00

01

11

10

0

1

0

1

1

1

3

0

0

1

1

1

1

1

1

0

1

1

f(x l , x2 , x3 , 0, 0, 1)

0

f(x 1 , x2 , x3 , 0, 1, 0)

Para implementar estas funciones residuo, podemos utilizar multiplexores de 4 canales escogiendo, como señales de control, las variables (x1, x 2 ) . A continuación se muestra el circuito resultante : x3

1 1

f(x1, x2, x3, x4, x5, x6)

0 x3 x3

1


01 SUBSISTEMAS COMBINACIONALES

119

Problema 18.- Realice la función F=E (1,2,3,4,6,7,8,9,14), mediante la PAL de la figura : .

~> - 1

D - < >

F-

IG

L >1

L F-

1

Solución P18 .- Sea F(a,b,c,d) la función a implementar cuyo mapa se muestra a continuación : ab c d

00

00 01 11 10

01

11

10

F

La expresión algebraica de F y de la función complementaria F será : F = a •c + a b•d + á •b•d + b •c•d + a •b •c F = a .b •c .d + b . -.d + a•b •c+ a•c•d + a .b.c

Para realizar esta función con el PAL de la figura tenemos que resolver tres problemas : 1) El número de entradas del PAL son tres y la función F necesita cuatro variables . Para solucionar el problema se usa una de las entrada-salidas del PAL como entrada . Esto se consigue poniendo un "0" (a través del producto x.x) sobre la línea de control del inversor 3-estados correspondiente :


120

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

X •X

&

= 0

&

L >1

E}<> d

F

X X

2) El PAL del que se dispone realiza la operación AND-OR-INV . Para resolver el problema se escogerá a la función F como suma de productos y, al invertirse a la salida, se obtiene la función F . Para que en la salida se obtenga F, el control del inversor 3-estados debe estar a " 1 " (para ello basta con no programar ningún fusible de la AND que proporciona dicho control :

o» F

3) EL PAL sólo puede sumar (operación OR) tres términos productos y F tiene cinco . Para resolver el problema se descompone F en dos subfunciones de forma que, en cada una de ellas, sólo se sumen tres términos : F = (a.b•c•d + b.c .d + a .b .c) + a•c•d + a •b •c = G + a •c •d + a •b•c . donde G = á •b •c•d + b •c•d + a •b•c . De esta forma, G se obtiene por una de las salidas de la PAL y es reintroducida para formar F.

G

.9

G Finalmente, tras las consideraciones anteriores se muestra la configuración final del PAL:


SUBSISTEMAS COMBINACIONALES 121

ccbbaaddGG C .C

= 0

d

bcd bcd ac

G acd

>F

abc

Problema 19.- Se desea diseñar un circuito que tenga como entradas dos números de dos bits a=(a, a 0) b=(b, b 0) y un bit de paridad par correspondiente a los cuatro bits anteriores . El circuito indicará en una salida si a>b, y en otra si se ha producido una entrada ilegal (con el bit de paridad mal) . El circuito deberá realizarse con multiplexores de dos entradas de selección y una ROM de 8 posiciones de memoria . Solución P19 .- El circuito a diseñar posee cinco entradas, P, a1, a0, b 1 , b0 y dos salidas . Llamaremos G a la salida que indica cuándo el número a = al a0 es mayor o igual que el b = b 1 b o, y salida 1 cuando se produce una entrada con el bit de paridad P erróneo .


122

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

a > b

G=1

a<b

G=0

error en P

I=1

P correcto

1 = 0

Para resolver el problema disponemos de dos multiplexores de dos entradas de selección y una ROM de 8 posiciones de memoria . El proceso será el siguiente : de la salida de cada uno de los multiplexores se obtendrá cada una de las dos funciones . Dado que las funciones dependen de cinco variables, al ser multiplexores de dos entradas de selección, sus residuos son funciones de tres variables . Estas ocho funciones que componen los residuos serán implementadas con la memoria, que al ser un módulo lógico universal, en este caso de tres entradas, podemos implementar cualquier función de tres variables nada más que rellenando su contenido de forma adecuada . Por tanto, se comenzará haciendo el mapa de Karnaugh de las cinco variables para las dos funciones, G e 1, y sobre él se marcarán los residuos correspondientes a cada multiplexor .

001

010

011

100

101

110

111

1

1

1

1

1

1

1

Go

0

1

1

1

0

1

1

1

G1

0

0

1

1

0

0

1

1

G2

0

0

0

1

0

0

0

1

G3

1

G

o 001

010

011

100

101

110

111

00

0

1

1

0

1

0

0

1

01

1

0

0

1

0

1

1

0

lo II

10

1

0

0

1

0

1

1

0

12

11

0

1

1

0

1

0

0

1

13

b e bo

I Eligiendo b 1 y b0 como entradas de selección de los multiplexores, y por tanto, P a l a0 como entrada de la memoria, se observa que algunos de los residuos de las funciones de salida tienen una expresión muy simplificada, bien una constante o una variable de entrada . En esos casos, pueden ser conectadas directamente a las entradas de los multiplexores pudiéndose ahorrar en el tamaño de la memoria ya que no se necesita implementar esas funciones como salidas de la ROM . Estas son : G0=1

'G2=a1

1 3 =10

1 1= 12


SUBSISTEMAS COMBINACIONALES

123

A continuación se muestra el contenido de la memoria y el esquema final del circuito :

al a0

1

1

0

[$1 1

o ROM

1

A

P

2 3 x4

2

A

3

D

al a0

4

2

P

3 2 1 0

1111 G IG31 0 1 2

5

9

6

9

7

E

0 1

al- 2 1

2 1 0 ROM 0 23x4

lo

G G3 I0

b Ib0

12

o 1- 2 3

I

I1 b Ib0

Problema 20.- Se desea realizar un convertidor de código, de entrada 2-out-of-5 y de salida BCD. Además, este circuito deberá poseer otra salida que detecte un error en la entrada . En el caso de que ocurra tal error, las salidas BCD se pondrán en alta impedancia . a) Realice el detector de error usando un MUX 8 :1 y puertas. b) Realice el convertidor 2-out-of-5 a BCD usando un PLA de no más de 10 términos producto (AND). c) Dibuje el circuito completo . Solución P20.- Se organizará el circuito en bloques, y se resolverá cada uno por independiente . El circuito global dispone de cinco variables de entrada X4 - X, , por donde se expresa el código 2 de 5, y cinco salidas, cuatro de las cuales Z 3 - Z0 expresan el código de salida, código BCD, y la quinta señal, E, detecta cuando hay un error en la combinación de entrada .

X 4 - X0

Convertidor de código 2de5/BCD

0

7

Buffers 3-estados ~-4-r

Detector de error

Z3 - Z0

E

a) Definimos la señal de error E de la siguiente forma : E = 0 si X 4 - X 0 es código correcto . E = 1 si X4 - X0 es código incorrecto . De esta forma se puede presentar el mapa de Karnaugh para la función E : X4X3X 2 XIXO

000

00

001

010

011

100

1

1

0

1

0

1

0

0

1

0 1

01

1

10

1

0

11

0

1

1 E

101

110

111

0

1

1

1

1

1

1

1

1

1

1


124

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Una vez conocido el mapa de la función E, dado que se dispone de un multiplexor de 3 canales de selección, los residuos de la función serán dependientes de 2 variables de entrada . Por tanto, a partir del mapa anterior se deducen cada una de las funciones residuo y se muestra el circuito resultante . X

xo o

XI -

2 3 4 5 6 7 2 1 0

Xo X

X 4 X 3X2

b) Para realizar el convertidor de código 2 de 5 a código BCD natural, se muestra la tabla de conversión para cada una de las diez combinaciones : X4

X3

X2

x1

0 0

0

0

1

0 0

1 1

0 1

1

0

0

1 1

0 1

0

0 0 0

Xo 1

03 0

02 0

01

00

0

0 0

1

0

0 1

0 1

0 0

0

1

0

1 0

1 0

0

1

1

0

0

0 1

0

0 0

0 1

0 0

1 1

0 1

1 0

0 0

0

1

1 1

0 1

1

0 0

1

1

0

0

0

1 1

0 0

0 0

0 1

0 1 1

Una vez conocidas las cuatro funciones de salida basta implementar el circuito utilizando un PLA . Suponiendo que todas las combinaciones de entrada que no correspondan a código 2 de 5 no ocurren nunca, y asignando un término producto para cada una de las combinaciones de entrada obtendríamos diez términos producto para realizar en el plano AND del PLA . A continuación, para cada función de salida se hará la operación OR de aquellos términos producto de los que participa . Siendo P0, P 1 , P 2 , . . .P 9 cada uno de estos términos, las funciones serán : 03 = P8 + P9 02 = P4 + P5 + P6 + P7 0 1 = P2 + P3 + P6 + P7 00=P1 +P3 +P5 +P7 +P 9 El esquema del PLA será el que se muestra :


SUBSISTEMAS COMBINACIONALES

125

• PI • . P,) •

P3 P4 P5 P6

P7 PA

Pq

X4 X3 X2 X 1 XO

03 02 0 1 00

c) El circuito completo será el siguiente, donde el resultado de los apartados anteriores quedan representados simplemente por un diagrama de bloque :

X4 X3 X2 xl xo

z3

PLA

MERIMIO Convertidor código

~ E

2de5/BCD

~EN

z2 zl

zo

ILL

Detector de error

Problema 21 .- Analice el circuito de la figura describiendo con palabras la función que realiza. ¿ Puede diseñarse con una ROM un circuito que realice la misma tarea? En caso afirmativo, indique cómo se haría, así como el contenido de la ROM para los siguientes valores en hexadecimal de X e Y: XY: 10, 11, 12, 67, 84, AA,DF

z3 Y3 Y2

Yo X3 x2 xl xO

A3 A2 A1 Ao B3 B2 B1 BO

A>B A=B A<B zO


126

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P21 .- Si el número X>Y, la salida A<B del comparador de magnitudes, se activa . Esto provoca que, en la batería de multiplexores, se escoja el canal 1 . Por tanto, el conjunto de las salidas de estos multiplexores, contiene el número x . La salida del sistema dependerá de la salida A=B del comparador . Como ésta se encuentra a 0 lógico, las salidas Z 3 _0 contienen el número X . De igual modo razonamos cuando el número X<Y . La salida A<B del comparador se encuentra a O lógico, lo que provoca que en la batería de multiplexores se escoja el canal 0 . Las salidas Z 3 _ 0 , contienen, en este caso, el número Y . Por último, cuando X=Y, la salida A=B del comparador se encuentra a 1 lógico, por lo que el inversor provocará que las salidas Z 3 _ 0 se encuentren a O lógico . La función de salida de este circuito puede representarse mediante una ROM, que se dimensiona con 8 líneas en su bus de direcciones (correspondientes a los 4 bits de los 2 números), y 4 bits por palabra . En la tabla siguiente, se han representado los contenidos de la ROM para las direcciones indicadas en el enunciado : POS CONT Y3 Y2 Yl Yo

XI

A7 A6 A5 A4 A3 A2 Al

xo

Ao ROM

X3 x2

$10 $11 $12 $67 $84 $AA $CB $DF $FF

D3 D2 D1 Do

1 0 2 7 8 0 B F 0

De los 2 dígitos que forma la dirección, el primero hace referencia al número A, y el segundo, al B . En el caso de que los dígitos sean iguales, la salida es 0, si son distintos, la salida es el mayor de los dos .

Problema 22.- Necesitamos un circuito lógico con cuatro entradas que genere una salida z que se activa cuando se satisface una de las dos condiciones siguientes, pero no las dos : 1) Ambas entradas, a y b, son activas . 2) o bien c o d o ambas son activas . Diseñe este circuito en cada uno de los casos siguientes : a) Con MUX s de 4 canales, suponiendo que a y b son activas en nivel alto, c y d activas en bajo y z activa en bajo . b) Con un DEC 3 :8 con salidas activas en alto, una puerta NAND de 6 entradas y un número no mayor de 8 puertas NAND de dos entradas, suponiendo que todas las entradas y salidas son activas en alto . Solución P22 .-

Definamos las variables booleanas C ; (i = 1, 2), de forma que tomen el valor

lógico 1 cuando la condición i se cumple y 0, en caso contrario . La salida z se puede expresar en función de estas variables booleanas, como : z = C1 O C2


SUBSISTEMAS COMBINACIONALES 127

en el caso de que la salida sea activa en alto, o como : z = C 1 00C2 en el caso de que sea activa en bajo . a) Debemos obtener, ahora, la relación entre las variables C ; y las entradas a, b, c, d . Condición 1 : C, tomará el valor lógico 1 cuando a y b están activas ( en alto ) : C 1 = a •b Condición 2 : C 2 tomará el valor lógico 1, cuando c o d estén activas ( c = 0 o d = 0) : C2 = c+d La salida z vendrá dada por la expresión z= (a - b) © (c + d), y su K-mapa es: cdab00 01 11 10 0 00 0 0 0 0 1 01 0 1 1 1 11 1 0 10 0 0 Z Si implementamos la función Z con multiplexores de 4 canales, nos queda : 0 0 0 1 1 1 1 0 d b) Ahora, todas las variables de entrada y la salida, son activas en alto . Procediendo de forma similar al apartado anterior, obtendremos : z = (a - b) ® (c + d) cuyo K-mapa es : cdab00 01 11 10

00 00 0 00 00 0

Z Esta función la implementaremos como producto de maxtérminos . Si escogemos a, b, c, como entradas del decodificador y las salidas de este se llaman O ;, tenemos que : M o = a+b+c+d = á • b .

d = 00 . d

M 4 = a+b+c+d = á •b .J .d = 0 2 •d


128

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

M8 M13

= á+b+c+d = a .b .c .d = 04 •d = á+b+c+d = a •b •c •d = 0 6 •d

M

14 = á+b+c+d = a •b •c •d =

M

15 = á+b+c+d = a •b •c •d = 0 7 •d

07 .d

El producto de los maxtérminos M14 Y M15 puede simplificarse = á+b+c = 5 7 M14 •M 15 El circuito queda como : M

a b c

M

1 2 3 4 5 6

1

M M1

DEC3 :8

1

3--

Z

~M •M 15 1 -

1

PROBLEMAS CON SOLUCIÓN RESUMIDA Problema 23.- Represente las salidas del siguiente circuito como suma de productos .

b- A a - Al c- Aó

POS CONT 0 A

_

ROM D3 D2 D1

1 2 sisó

~- fi f2

2 3 4 5 6 7

02 B C 7 3 7

Solución P23.- Las salidas f1 y f2, tienen las siguientes expresiones, donde se han sustituido las señales de selección del demultiplexor, sl y s o, por las salidas de la ROM D 1 , y D o, respectivamente. f1 = D 3 s 1 • so +D 3 • s 1 • so +D 3 s 1 • s o = D3+D1 • Do y f3 =

D 3 ' SI ' SO

= D3 ' D1 . Do

Nos falta, por tanto, determinar las relaciones entre las salidas de la ROM (D3 , D 1 y D o), y las variables de entrada a, b y c . De la tabla de programación de la ROM, deducimos los siguientes K-mapas para D 3, D 1 y D o:


SUBSISTEMAS COMBINACIONALES

11

ama ama

a una

DI

Do

A partir de estos K-mapas , podemos obtener los K-mapas de las funciones f l y f2 :

00

01

11

10

0

o

o

o

o

1

o

1

o

o

f,

f2

De donde deducimos que : f, = a+cyf2 = b •a •c

Problema 24 .- Analice el circuito de la figura. s

1

u

1

d

fo s

D

f

d y

1 2 3

is

d2 0

1

d

fi

u

s

Solución P24 .- Las ecuaciones de salida del multiplexor son :

do = y+x+E d, =

y+x+E

d2

=

y+x+E

d3

=

y+x+E

donde el enable E, se expresa como :

E = ú •y +u •x Sustituyendo en las expresiones anteriores y simplificando, queda :

do = 1 d, = y+x+ú d2 = y+x+u Por otro lado, las funciones f 1 y fo se expresan como : fo = do -d2 = y+x+u f, = d i x d 3 = x •y

d3

=

y+x

Por último, la función de salida f que se obtiene, una vez reducida, es :

f = y •ú +x •Y

129


130

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 25.- Diseñe un convertidor de código Gray a binario natural de 4 bits utilizando sólo tres puertas EXOR de tres entradas . Solución P25 .- Llamaremos g3 g2 g1 go a las variables de entrada (código Gray) y b 3 b 2 b 1 b o a las de salida (binario natural) . La tabla de verdad que muestra el comportamiento del convertidor es la siguiente :

g3

g2

g1

g0

b3

b2

b1

bo

g3

g2

g1

g0

b3

b2

b1

bo

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

0

0

0

0

1

0

0

0

1

1

1

0

1

1

0

0

1

0

0

1

1

0

0

1

0

1

1

1

1

1

0

1

0

0

0

1

0

0

0

1

1

1

1

1

0

1

0

1

1

0

1

1

0

0

1

0

0

1

0

1

0

1

1

0

0

0

1

1

1

0

1

0

1

1

0

1

1

1

1

0

1

0

1

0

1

0

1

1

0

1

0

0

1

1

1

1

0

0

1

0

0

0

1

1

1

1

0

0

0

1

1

1

1

A partir de esta tabla pueden deducirse las relaciones : b3 = 93 Por simple inspección observamos que b 2 vale 0 si g 3 = g 2 y vale 1 en caso contrario, de donde : b2 = g3 E+ 92 Por otra parte, recordemos que z = x E+ y p v se hace 1 si y sólo si el número total de unos en x, y, v es impar . Observamos que b 1 vale 1 cuando g 3 g2 g1 tiene un número impar de unos, de donde : b1 = g3EOg2Og1 O bien, b 1 se hace 1 cuando g 1 :# b 2 y se hace 0 cuando g 1 = b 2 de donde : b1 = g1 E+ b2 = g30g20g1 Análogamente, b o es 1 cuando es impar el número de unos en 93929190 o, alternativamente, cuando go :# b 1 , de donde : bo = goOb1 = g3 +Eg20g10g0 Para hacer el diseño con puertas EXOR de tres entradas, basta tener en cuenta que x O+ y = x p y Ep 0, con lo que se muestra un posible diseño :


SUBSISTEMAS COMBINACIONALES

b

g3 92-

o -

131

b 91o-al-a0-0

go -

- bo

0 -

Problema 26.- Se dispone de decodificadores 2 a 4 con señal de habilitación activa en nivel alto. Diseñe, con las mismas características: a) Un decodificador 1 :2 . b) Un decodificador 3:8 . c) Un decodificador de 4 :16 . Solución P26. a) Se quiere diseñar un decodificador 1 :2 con señal de habilitación activa en alta. Para ello se dispone de uno de esas características pero con dos entradas y cuatro salidas . Una de las posibles soluciones sería elegir una de las dos variables de entradas que tiene el decodificador dado y fijarla a un valor constante . De esta forma sólo dos de las salidas podrán activarse, y serán éstas las salidas del decodificador que buscamos . Disponemos del siguiente decodificador : E

m0 1 m1 2 0 m2 m3 DEC2 :4 3 Si fijamos una de las entradas (por ejemplo la de mayor peso asociado) a "0" quedaría : E

} ;

ao

0

1 2

DEC2 :4 3 =

DEC :21---

m0 m1


132

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

b) Se quiere conseguir ahora un decodificador 3 :8 a partir de decodificadores 2 :4 . Tendremos que introducir una nueva variable de entrada, y en función de la combinación binaria de las tres entradas se activará una y sólo una de las ocho salidas de las que dispone el decodificador (si éste está habilitado, E = 1) . Para ello, asociamos tres decodificadores de forma que las salidas de uno de ellos sean cuatro de las del nuevo decodificador, por ejemplo, las cuatro menos significativas, las cuatro salidas del segundo formarán las otras cuatro salidas, y el tercer decodificador servirá para seleccionar a uno u otro de los anteriores según el valor lógico de la tercera variable de entrada que hemos incorporado . A continuación se muestra el esquema : E

------

m0

a2

1

1

MI

0

2

m2

3 DEC 2 :4

m3

1 2 3 DEC 2 :4

E

0

m4

al

m5

ao

m6 3 DEC 2 :4

m7

DEC 3 :8

c)

'

Con un razonamiento

análogo al del apartado anterior, se quiere un decodificador 4 :16 . Para ello asociaremos cinco decodificadores 2 :4, uno de ellos irá seleccionando uno a uno los cuatro decodificadores restantes, proporcionando cada uno cuatro de las dieciséis salidas que tiene el decodificador que se busca . En la siguiente figura se muestra el esquema :


SUBSISTEMAS COMBINACIONALES

133

E --------------------------------------------

mo

1 0

1 MI 2 -'r-- m2 m3

DEC2 :4 3 a3 a2 -

0

2

DEC 2 :43 al ao

2

-

m4 m5 m6 m7

DEC 2 :4

M8

0

1 Y m9 2 m10 Mil

DEC2 :4

1 0

1 2

DEC 2 :4

m12 m13 m14 m15

DEC 4 :16 '

Problema 27.- Utilizando multiplexores de menos entradas de selección que el dado, se pide : a) ¿Cómo implementaría un MUX de 3 entradas de selección? b) ¿Cómo implementaría un MUX de 2 entradas de selección? c) ¿Cómo implementaría un MUX de 4 entradas de selección?


134

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P27 .- Multiplexor de 3 entradas de selección a partir de MUX-2 y MUX- 1 : Co C1 C2 C3 C4 C5 C6

C7 S iso Multiplexor de 2 entradas de selección a partir de MUX-1 : C C C C

Multiplexor de 4 entradas de selección a partir de MUX-2 : Co C1 C2 C3 C4 C5 C6 C7 Cg C9 C 10 C11 C12 C13 C14 C15

S I SO

Problema 28.- Se dispone de ROMs den líneas de dirección y m bits por palabra, todas ellas con CS. Diseñe una ROM con CS, n líneas de dirección y 2m bits por palabra.


SUBSISTEMAS COMBINACIONALES

135

Solución P28.- Disponemos de dispositivos como los que se muestran a continuación : cs

A(n-1) - 0

y se desea obtener una memoria del mismo número de líneas en el bus de dirección pero con el doble número de líneas en el bus de datos, es decir, que cada palabra contenga 2m bits . Para ello asociamos en paralelo dos memorias de las iniciales . De esta forma, cuando ambas sean seleccionadas simultáneamente, para una misma dirección de palabra, (el bus de direcciones es común para ambas), se accede a una palabra de cada memoria leyendo su contenido . Basta sólo reunir los m bits de cada uno de los contenidos en un bus común que será el de datos de la memoria final que se busca . A continuación se muestra el esquema de conexionado : cs cs A(n-1)-0- , :\ ', n n

o

cs

ROM 2"* m

n

m

ROM 2n *m

m 1

1

4

. $2m

Problema 29.- Se dispone de circuitos comparadores de magnitud de 4 bits y puertas lógicas . Diséñese un comparador de números de 16 bits . Solución P29 .- Este problema puede tener diferentes soluciones . Presentamos, aquí, la solución más simple . Para consturir un comparador de 16 bits haremos comparaciones a grupos de 4 bits . Comenzaremos por los 4 bits de mayor peso de los números A y B : A15-12

B15-12

A>B A=B A<B


136

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Si de este grupo de 4, los bits del número A son mayores que los del B, no haría falta comparar los restantes bits ; el número A es mayor que el B . De igual modo razonamos cuando los 4 bits del número B son mayores que los respectivos del A . Podemos ver, entonces, que las salidas de este primer comparador, pueden utilizarse como salidas del comparador de 16 bits . Sólo en el caso en que los 4 bits más significativos de los dos números sean iguales, se necesitará comparar los restantes bits . 4 A11-8 -x-30 A G'

4 A15-12 -/_ A G'

G E L

E B11-8 -1 -> B 4

2

B15-12

f~ B

1

A>B A=B A<B

Si los bits A15-12, son iguales a los bits B15-12 , Y los bits A 11 - 8 son mayores que B11-8 , la salida G del segundo comparador, está activa, y provocará que se active la salida G del comparador primero . De igual modo, si los bits A15-12 son iguales a los bits B15-12 Y los bits A 11 - 8 son menores a los bits B 11 - 8 , la salida L del comprador número 2, se encontrará activa, y provocaría la activación de la salida L del comparador 1 . Sólo en el caso de que el conjunto de los 8 bits A15-8 y B 15-8 sean iguales, habrá que comparar el siguiente grupo de 4bits de los 2 números . La estructura del comparador de 16 bits se obtendría extendiendo el esquema anterior para el grupo de 8 bits restante . A11-s

A15-12 > A

A G' E' L' B 2

E L B 15-12

E L

A>B A=B A<B

A7-4

A G' E' L' B 4

G' E' L' B 1

E L

DI A G' E' E L' L B7-4 -~ B 3

Se resalta el hecho de que el comparador 4 ( el que actúa sobre los bits de menor peso), tiene en sus entradas G',E', L', la terna (0,1,0) . Esto es necesario para el caso en que los dos números, A y B, sean iguales, para activar la salida A=B .

Problema 30.- Sea F =

E (1,3,11,13,21,23,25,31)

+ d(5,19,27) . Implemente esta función con un único demultiplexor 1 :8, una puerta NAND de ocho entradas y puertas NAND de dos entradas .


SUBSISTEMAS COMBINACIONALES

137

Solución P30.- F(a,b,c,d,e) = E (1,3,11,13,21,23,25,3 1) + d(5,19,27) L& o 1 2

e 34

F

5 6 2107 III

abc

Problema 31 .- Una llamada de teléfono puede dirigirse a cuatro secretarias. (Nunca hay más de una llamada simultáneamente) . La recepcionista distribuirá las llamadas según el siguiente criterio: Si la llamada procede de empresas de alimentación o de ropa, se pasa a la secretaria número 4. Si procede de una empresa de venta de ordenadores, o de un banco, se pasará a la secretaria número 3. Si se trata de una llamada procedente de una empresa de viajes o del aeropuerto, deberá sonar el teléfono de la secretaria número 2 . En cualquier otro caso se enviará a la secretaria número 1 . Diseñe un circuito que indique el número de la secretaria que deberá recibir la llamada, utilizando un único codificador 8 :3, una NOR de 2 entradas y una NOR de 6 entradas.

Solución P31 .- Interpretamos cuáles serán las variables de entrada y de salida del problema . Variables de salida: Z 1Zp: indican la secretaria a la que va dirigida la llamada : Z1 Zo 0 0 0 1 1 0 1 1

secretaria secretaria secretaria secretaria

n4 1 n °- 2 n °- 3 n °- 4

Variables de entradas : Se nombrarán con X0, X 1 , ... a las distintas llamadas de empresas . Xk = 1 indicará que hay llamada de la empresa "k" (ver tabla) . Hay siete procedencias distintas de las llamadas, organizadas en cuatro grupos dependiendo de la secretaria que la reciba . Utilizando un codificador 8 :3 se transforman estos 8 casos en código de tres variables de las que dependerán las variables de salida . A continuación se muestra la tabla :


138

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Llamada

Xo

XI

X2

X3

X4

X5

X6

X7

C2

C1

C0

Z1

Z0

Alimentación

1

0

0

0

0

0

0

0

0

0

0

1

1

Ropa

0

1

0

0

0

0

0

0

0

0

1

1

1

Ordenadores

0

0

1

0

0

0

0

0

0

1

0

1

0

Banco

0

0

0

1

0

0

0

0

0

1

1

1

0

Viajes

0

0

0

0

1

0

0

0

1

0

0

0

1

Aeropuerto

0

0

0

0

0

1

0

0

1

0

1

0

1

Otras

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

1

1

1

1

Por último basta obtener las expresiones de Z 1 y Z0 en función de las salidas del codificador . C2 C 1

C C 00

C

1 1

O1

10

C

0

00 01

0

0

1

0

1

1

1

0

11

10

0

1 1

Z

Zo

Z1 = U2

Zo = C1

La realización del circuito utilizando los dispositivos de los que disponemos quedaría como se muestra a continuación :

X0 X1 X2

>1

X3 X4 X5 X6

6

NC

7 COD 8 :3

C C 0 NC : no conectada

Problema 32.- Un sistema que mide periódicamente la temperatura de un experimento de laboratorio, da la información utilizando números de 4 bits en notación complemento a dos . Diseñe un circuito que detecte el intervalo cerrado de códigos [-5,41, utilizando, exclusivamente, comparadores de magnitud de cualquier número de bits y puertas de dos entradas que no sean operadores lógicos universales .


SUBSISTEMAS COMBINACIONALES

1 39

Solución P32. Sistema de medida

1 3-0

C.C .

Z

4

Todas las salidas que genera el sistema de medida, se representan en la siguiente tabla . Asimismo, se ha representado el equivalente en notación Ca2, y la salida Z . T +0 +1 +2 +3 +4 +5 +6 +7

1 3 12 1 1 10 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0111

Z 1 1 1 1 1 0 0 0

T

13 12 11 10

Z

-8 -7 -6 -5 -4 -3 -2 -1

1 0 0 0 1 0 0 1 1010 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

0 0 0 1 1 1 1 1

Para el diseño con comparadores, procedemos de la siguiente manera: a) Todas las magnitudes menores de 0101, activarán la salida . b) Las magnitudes mayores de 1010 activarán, también, la salida . c) La unión de los casos a) y b), genera la salida Z . El circuito resultante es : 4 0101 -

' 1A

1 3-0 '90 B 4 1010 f) A 1 3-0

4

B

A>B A=B A<B Z A>B A=B A<B -

Como puede observarse, el operador utilizado, el OR, no es universal, puesto que no se puede generar cualquier función utilizando, exclusivamente, este tipo de puerta . Problema 33.- El bloque A de la figura pone su salida yk=1 sí y sólo si hay k entradas a 1 . Diseñe la unidad B de forma que el bloque completo C ponga z=1 si y sólo si hay j entradas a 1 . Utilice sólo MUX 2 :1 . --------------------------------------C XO X1 X2 -

>

YO

1 -

X 3 _

.J- > ZO B

-

Z1 Z2 > Z3 > Z4


140

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P33.- Construyamos la tabla de verdad para este problema :

Xo

XI 0

X2

Yi 0

Y3

X3

zo

z

Z2

Z3

Z4

0

Yo 1

Y2

0

0

0

0

1

0

0

0

0

0

0

1

0

1

0

0

0

0

1

0

0

0

0

1

0

0

1

0

0

0

0

1

0

0

0

0

1

1

0

0

1

0

0

0

0

1

0

0

1

0

0

0

1

0

0

0

0

1

0

0

0

1

0

1

0

0

1

0

0

0

0

1

0

0

1

1

0

0

0

1

0

0

0

0

1

0

0

1

1

1

0

0

1

0

0

0

0

0

1

0

0

0

0

1

0

0

0

1

0

1

0

0

0

0

0

1

0

1

0

0

1

0

0

1

0

0

0

1

0

0

1

0

0

1

0

0

1

0

0

0

1

1

0

0

1

0

1

0

0

0

1

0

1

0

0

0

1

0

0

1

0

0

1

0

0

1

0

1

0

0

1

0

1

0

0

0

1

0

1

1

0

0

0

1

0

1

0

0

0

1

0

1

1

1

0

0

0

1

1

0

0

0

0

1

De aquí se deduce que : X3 =0=Z i =¡

(i = 0, 1,2,3 y Z4

=

0)

X3 - 1 = Zi = Y¡-1 (i = 1 , 2 , 3 ,4 y Z0 = 0) con lo que se obtiene el circuito que se muestra a continuación :

X3


Capítulo 6 CIRCUITOS ARITMÉTICOS

ARITMÉTICA BINARIA La suma de dos magnitudes A y B en base 2 se realiza de forma similar a la suma en base 10 . En cada columna se suman los bits de esa columna (A i y Bi) y el acarreo generado previamente o carry, (Ci); del resultado de la suma (A i+Bi+Ci = 0,1,2 ó 3) se genera el bit del resultado de esa columna (F i ) y el acarreo a la siguiente columna (Ci+1) : Ci+1Fi = 00, 01, 10 o 11, respectivamente . En el siguiente ejemplo se representa la suma de dos números y los acarreos que se generan 1 : 11 111 Acarreos 01101110 A=110 00 00100011 B=35(10 10010001 F=A+13=145 (10 La resta de dos magnitudes binarias, A-B, también es similar al caso decimal . En cada columna existe un bit de pedir prestado (borrow, Bw i ) generado en la etapa previa y cuyo significado para Bwi = 1 es el cotidiano "me llevo uno" . En cada columna se hace la operación Ai - (B1 + Bwi) generándose Bwi+1 = 0, o (2 + A i ) - (B i + Bwi ) generándose Bw1+ ,=1 . A continuación se presentan dos ejemplos . En el primero se cumple que A>B y en F se obtiene el resultado correcto A-B . En el segundo, A<B, se genera Bwn =1 y en F no está el resultado correcto : 11 1 Borrows 1 Borrows 11010 A=26 000100 A=4 1101 B=13 - 110000 B=48 01101 F=13 110100 F=52 No presentaremos, en esta introducción, otras operaciones aritméticas como la multiplicación y división entre números binarios . Remitimos al lector a los problemas 1, 4, 5 y 15 de este Capítulo . 1 . En adelante se sobreentenderá que los números como A, B o F están en base 10 sin necesidad de explicarlo, tal como aparecen en las operaciones de más abajo .

141


142

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Suma de números en notacióncomplemento a 1 (Cal) y a 2 (Ca2) Se puede demostrar que con el empleo de la notación Cal o Ca2 para la representación de números con signo, la suma y resta binarias puede obtenerse usando, exclusivamente, circuitos sumadores de magnitud . A continuación se presenta esta operación . La suma de dos números binarios con signo en notación Cal y en notación Ca2 se basa en la suma de magnitudes binarias . En el caso de que A y B estén en Cal, a la suma de A y B, como si fueran magnitudes, se le suma el bit de acarreo de salida que haya sido generado . El resultado último es el valor de la suma F=A+B escrito en notación Cal . Análogamente se realiza la suma en el caso del Ca2, salvo que aquí el resultado final se obtiene directamente tras la primera suma . Cal

Ca2

5ét AB

+

F F Desbordamiento (overflow ) La suma de dos números binarios con signo de n bits, expresados en cualquier notación, puede tener un resultado erróneo en el caso de que ambos tengan el mismo signo y el valor de la suma no pueda ser expresado en n bits . En estos casos diremos que se ha generado un desbordamiento (overflow) . En el siguiente ejemplo se muestran dos casos de overflow . En el primero, tenemos dos números en Cal positivos de magnitudes 13 y 8 . El resultado de la suma es un número negativo lo cual es incorrecto . El segundo ejemplo representa la suma de dos números negativos expresados en Ca2 . De idéntica forma, el resultado obtenido es positivo, lo cual no representa el valor correcto : Cal

Ca2

01101+13 01000+8 10101 -10

10001 -15 11000 - 8 01001 +9

DISEÑO DE CIRCUITOS ARITMÉTICOS Las celdas básicas de los circuitos sumadores habituales realizan la suma de dos bits . Existen dos tipos : los semisumadores (Half Adder, HA) y los sumadores completos (Full Adder, FA) . Semisumadores Tienen dos entradas A ; y B ;, y dos salidas S ; y C ; +1 que se corresponden con el bit de suma y de acarreo, respectivamente . El esquema de un semisumador- HA-, su tabla de verdad y su estructura interna son :


CIRCUITOS ARITMÉTICOS

Ai

A i Bi Si Ci+l 00 00 01 10 10 10 11 01

Bi

HA Ci+I Si y

143

i 1

Sumadores completos Tienen tres entradas A; , B i y Ci que se corresponden, las dos primeras, con los bits de los números A y B y, la última, a la entrada de acarreo, y dos salidas, S i y C i+l , con idéntico significado que en los semisumadores . El esquema, tabla de verdad y estructura interna de un sumador completo son : . A i B i C i Si Ci+l 000 001 010 011 100 101 110 111

00 10 10 01 10 01 01 11

Ci Bi Ai

Ci+I

Sumador de n bits Los semisumadores y sumadores completos pueden unirse para formar sumadores de 2 números de n bits . Esto se consigue mediante el empleo de n sumadores completos en los que la entrada de acarreo del sumador j+1 se conecta a la salida de acarreo del sumador j . En la siguiente figura se muestra el esquema de bloques y constitución interna de un sumador de 4 bits . B3-0 14

Cout

A3-0 14

Sumador de 4 bits 4 Z3-0

Ci n

Cout

A3 B3

A2 B2

Al

B1

A0 B 0

1 1

1 1

1 1

1 1

a b FA Ci+l Ci S.

a b FA Ci+l Ci S

a b FA Ci+l Ci S.

a b FA Ci+l Ci S-

Cin

Z 3

2

1

0

Sumador BCD Un tipo particular de sumadores binarios lo constituyen aquellos que aceptan números BCD en sus entradas y generan el resultado también en BCD . El sumador BCD más básico es el que realiza la suma de dos dígitos BCD, A y B, junto con un posible acarreo de entrada, K ;,, y genera un acarreo de salida, K ot, t , y el resultado BCD de la suma, Z . Su estructura interna está basada en sumadores binarios de 4 bits . Existe un circuito combinacional que detecta si el resultado del primer sumador es un número BCD y un segundo sumador, que añade la magnitud 6 ó 0, según corresponda, para convertir la suma binaria al valor BCD de la salida :


144

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Kont < i

Kout

0 0 1 r1

Sumador K'n EBCD

-

Sumador c,,,, -0 de 4 bits CinE0

E-,

Cout

Sumador de 4 bits -in n:-,-

in

f

Detector error BCD

iz Encadenando en serie "K" de estos sumadores, se construyen sumadores BCD paralelos de K dígitos decimales . Sumador-restador de números con signo en Ca2 Un circuito sumador-restador de números con signo en Ca2 consta, básicamente, de un sumador binario de magnitud y un circuito que deja pasar, o complementa, el dato que actúa de sustraendo, según se muestra en la figura . Si se ordena la suma (s/r=0), Y=B y F=A+B ; si se ordena la resta Y = B y F = A + B + 1 = A + Ca2(B) = A - B . El desbordamiento se representa mediante el bit V y se puede implementar de varias formas como, por ejemplo, V = Exor(C n ,Cn- 1) :

I

B

Transfiere/ F Complementa

4Y c o t Sumador binario V

s/r in

UNIDAD ARITMÉTICO-LÓGICA (ALU) Una ALU de n bits es un circuito combinacional que realiza operaciones lógicas y aritméticas sobre 2 datos de entrada de n bits cada uno . En la siguiente figura se presenta el esquema y tabla funcional de una ALU de 4 bits, donde existen 3 señales de selección que permiten escoger entre 4 operaciones lógicas y 4 operaciones aritméticas, además de acarreo de entrada y salida para las operaciones aritméticas : A3s2 SI SO

s2 s1

B3-0

t

SO

000 001 010 011 100 101 110 111

Operación F = AND(A,B) F = OR(A,B) F = EXOR(A,B) F = NOT(A) F = A+B+C¡ n F = A- B+C n F=A-1+ C; n F=A+C;n


CIRCUITOS ARITMÉTICOS 145

Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Aritmética binaria . - Diseño de subsistemas aritméticos . - Manejo de circuitos y subsistemas aritméticos . PROBLEMAS RESUELTOS Problema 1 .-Sean A y B dos números binarios . a) Determinar en función del número de bits de A y B el mayor números de bits de A + B y A*B . b) Realice en binario las sumas 110 + 35 y 110 +73 suponiendo que se dispone de un solo byte . Solución Pl .

a) Supongamos que los números A y B tienen el mismo número de bits na n b=n. Pongámonos, a su vez, en el peor de los casos a la hora de realizar la suma, esto es, los números A y B son todo 1's . El resultado de la suma provocará un acarreo en los bits más significativos, por lo que necesitaremos 1 bit más para almacenar el resultado, n+1 . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0

A B

Si el número de bits de A es mayor que el de B, en el peor de los casos, se puede generar un acarreo en el último bit del número A que provoque un resultado de n a+1 bits. 1 1 1 1 1 A 111 B 100 110 En general, podemos concluir que el número de bits del resultado vendrá dado por la siguiente expresión : + 1 na+b = max (n a , n b )

Esta misma expresión se obtiene razonando sobre los valores máximos : A<B<-2 nb -1 ->A+B<-2 n a+2 nh -2<2

n 2 a -

1 y

max(n a +nb+l)

-1 Para la multiplicación también debemos ponernos en el peor de los casos : todos los bits de A y B son 1's . 11 . ..11 A 1 .. .11 B 11 . ..11 S O 11 . . .110 s i 1 1 .. . 1 1 0

0 0 0 snb-I . .. 0 1

Supongamos que el número A tiene más bits que el B (n a > nb). Llamemos S i , a los


146

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

resultados parciales procedentes de multiplicar el bit i del número B, por el número A (ver figura anterior) . El número de bits del resultado parcial S 0 es de n a ; el de S 1,n a +1 ; en general, el del S i , es n a + i. El resultado parcial con mayor número de bits es Snb-1, con n a + nb - 1 bits . Por el apartado a) sabemos que la suma de los resultados parciales S 0 y SI, necesitarán un resultado de n a +2 bits . Este resultado, sumado con S 2 ( que tiene n a +2 bits), producirá un nuevo resultado que necesitará n a+3 bits . De forma sucesiva, llegamos sumando las resultados parciales, hasta el último, Snb-1 . El tamaño del resultado de esta última suma, se necesitará almacenar con un bit más de los que posee Snb-1, es decir, n a + n b -1 + 1 . En resumen, el resultado de la multiplicación de dos números A y B de n a y nb bits, respectivamentes es : na x n = n a + n,

b) Convertimos los números 110 (10, 35 (1 0 y 73 (10 en binario 110 12 Jb 5 5 12 j 2712 131 2 1 6 ( 2 v,312

v

112.

v 0

110 (10 = 1101110 (2 , o bien , si utilizamos un byte para almacenar el número 110(10 = 01101110 (2-

73 12 `D 3 6 12 `0 181 2 `0 91 2 j 412 `0 2 2 `0 11 2 j 0

73 (10 =

01001001 (2 .

Por último : 35 12. ,U 17 12

v v81 2 v

41 2

2 1 2 1

`0

35 10 = 00100011(2 Las sumas son :

1

2

v 0


CIRCUITOS ARITMÉTICOS 147

Problema 2.-

+

01101110 00100011 10010001

110 35 145

+

01101110 01001001 10110111

110 73 183

Realice la substracción de los siguientes números binarios usando

(i) el complemento a dos (fi) el complemento a 1 Compruébese la respuesta por substracción directa . a) 11010- 1101 b)11010-10000 c) 10010 - 10011 d) 100 - 110000 Solución P2 .

a) Por substracción directa 1 1010 1101 01101

26 13 13

01 1010 + 110010 1001100 L--> + 1 001101

+26 -13

Por el complemento a 1

+13

Por el complemento a 2 + 011010 +26 110011 -13 .00 1 1 0 1 +13 í b) Por substracción directa 11010 - 1 0000 01010

+26 -16 +10

011010 + 101111 1001001 L--> + 1 001010

+26 -16

Por el complemento a 1

+10


148

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Por el complemento a 2 01 1010 +26 + 110000 -16 >40010l0 +10

_

c) Por substracción directa . En este caso se genera un acarreo de salida ya que el substraendo es mayor que el minuendo . Sabemos que el resultado debe ser un número negativo cuya magnitud se puede obtener restando al número mayor, el menor . Existe Borrow final 1 10010 18 10011 19 10011 19 - 10010 18 1 1 1 1 1 =9 0 0 0 0 1 1

Resultado -1

Por el complemento a 1 010010 + 101100 111110

+18 -19 -1

010010 + 101101 111111

+18 -19 -1

Por el complemento a 2

d) Por substracción directa Existe Borrow 1 _ 000100 4 final . 1 10000 48 1 1 0 1 0 0 =?

110000 48 000100 4 1 0 1 1 0 0 44 Resultado -44

Por el complemento a 1 0000100 + 1001111 1010011

+4 -48 -44

0000100 + 1010000 1010100

+4 -48 -44

Por el complemento a 2

Problema 3 .- Sea una ALU de 8 bits que entre otras operaciones realiza la suma sin signo (SSS) y la suma en complemento a dos (SC2) . Indique justificadamente : a) Dados dos números positivos A y B, ¿ da igual sumarlos mediante SSS que mediante SC2?. b) ¿En qué consisten y cómo se reconocen los errores de desbordamiento (oven7ow)? En su caso, ¿cómo puede obtenerse el resultado correcto? . c) Realice, si es posible, las siguientes operaciones indicando si es con SSS o SC2 . 1 . (-75) + 125 2. (-75) +(-125) 3. 75 + (-125) 4 .75+125


CIRCUITOS ARITMÉTICOS

149

Solución P3 . a) Disponemos de dos números positivos A y B . En primer lugar determinaremos la estructura de estos números en ambas notaciones . En SSS, los números son la representación binaria de una magnitud . El rango oscila entre 0 y 255 para los 8 bits de la ALU . En SC2, los datos están representados según el convenio basado en el complemento a 2 . Esto es, A y B representan valores positivos y negativos, existe un bit de signo y sus valores van del -128 al +127 . Para la comparación de las operaciones SSS y SC2 cabe distinguir varios rangos : 1) A+B < 127, esto es, la magnitud que representa la suma de los dos números es menor que 128 . En este caso, tanto SSS como SC2 dan el mismo resultado . 2) 127 < A+B < 255 . En este caso el resultado que da SSS es correcto, pero no así SC2, ya que la representación en esta notación necesitaría un bit más . El resultado sería interpretado como un número negativo . 3) A+B > 255 . Este caso es absurdo para SC2, ya que, como máximo, la suma de dos números positivos en Ca2 es de 254 . Para SSS existe un error en el resultado, porque las 8 salidas de la ALU son insuficientes para representar la magnitud de la suma . b) Los errores de desbordamiento ocurren cuando se sobrepasa la capacidad de representación de los sistemas, produciendo estos, resultados incorrectos . Para reconocer el desbordamiento, disponemos de la señal de acarreo C 8 y de overflow

V, que

ofrecen la mayoría

de las ALU's . El bit de overflow es útil para operaciones en las que intervengan números expresados en notación Ca2 . Se obtiene realizando la operación Exor entre el acarreo de la columna de signo C 7 y el acarreo de salida C 8 : V=Exor(C 7 ,C 8) . Aclaremos este aspecto . Supongamos que tenemos dos números positivos de 8 bits expresados en Ca2 . Si la suma de los bits A6-0 y B6-0, es menor de 128, no se produce ningún acarreo C 7 =C8=O, y el resultado es correcto, tal como muestra la figura : C 8 =O C7=O

- --------------0 A6 A5 .. . 0 : B6 B5 .

0 : F6 F5 . . . ----------- ----------Si la suma de los bits A6-0 y B6-0 es mayor de 127, se produce un acarreo C 7 =1 que provocará que el resultado se interprete como un número negativo . Existe overflow o desbordamiento . En este caso, como se puede observar, no existe acarreo de salida C 8=O . C 8=0 C7=1 0 A6 A5 . . . 0 B6 B5 ... 0

F6

F5

...

Cuando los dos números son negativos, se produce siempre un acarreo de salida que se desprecia . En tal situación se producirá un overflow cuando, al producirse un C 7 =O, se obtiene un resultado positivo :


150

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

C8=1 :

C7=0 111, 1 0' A6 A 5 . . . 0 B6 B5 ... 0 F6

F5

.. .

La situación siguiente es correcta y en ella no se produce overflow : C8=1 C7 =1

`~` r- -1~ 0 A6 A5 . . . 0 B6 B5 ...

0 F 6 F5 . . . -----------------------Si damos un rápido repaso a las condiciones que producen desbordamiento V=1 en función de C 7 y C8, comprobaremos que se cumple la expresión dada para V . Dicho todo esto tenemos que : 1 ) En SSS sabemos que existe un desbordamiento cuando el bit de acarreo C 8 se encuentre a 1 lógico, independientemente del bit V . 2) En SC2 sabemos que existe overflow cuando el bit V se encuentre a 1 lógico . No obstante, en ambas notaciones es posible recuperar la suma correcta, utilizando como noveno bit el de acarrero C 8 : C 8F7F6F 5F4F3 F Z F 1 Fo Mostremos a continuación la validez de esta solución para SC2 (para SSS es evidente) . La suma A + B genera desbordamiento sólo en dos casos : si ambos sumandos son positivos (A 7 = B7 = 0) o si ambos son negativos (A 7 = B 7 = 1) . Como el desbordamiento se elimina al contar con suficiente número de bits, imaginemos que existe un noveno bit en la posición más significativa (columna 8) . El valor de este hipotético bit será el del signo de los números A 8 = B 8 = 0 en el primer caso y A 8 = B 8 = 1 en el segundo . Entonces, al sumar la columna 8 se tendrá 0 + 0 + C8 o 1 + 1 + C 8 , por lo que en ambos casos el hipotético bit de signo del resultado correcto es F 8 = C8 . c) Los tres primeros casos sólo pueden realizarse con SC2 ya que se trata de números con signo, mientras que el último se realizará con SSS . 1) SC2(101 10101 + 01111101) . Las salidas de la ALU son 00110010, que representan el número +50 . Se produce acarreo, C 8 = 1 que se desprecia en la aritmética en Ca2, y el bit de overflow, V, se encuentra a 0 porque los acarreos C 8 y C 7 están a 1 . 2) SC2(10110101 + 10000011) . Las salidas de la ALU son 00111000, que representan el número +56 . Pero el bit V está a 1 (C 7 = 0, C 8 = 1) indicando que existe un error de desbordamiento . El resultado correcto se puede obtener formando un número de 9 bits, constituido por el bit de acarreo C8 como bit de signo, y los 8 bits del resultado, A+B = 100111000 . Esto representa el número -200, lo cual es correcto .


CIRCUITOS ARITMÉTICOS 151

3) SC2(01001011 + 10000011) . Las salidas de la ALU son 1100 1110, que representan el número -50 . No se produce acarreo C8 y V=O . 4) SSS(01001011 + 01111101) . Las salidas de la ALU son 11001000, que representan la magnitud correcta, 200 . No se produce acarreo de salida C 8=0 . Si se hubiese realizado SC2(01001011 + 01111101) las salidas de la ALU también son 11001000, pero V = 1 indicando desbordamiento . Problema 4.-Muestre la palabra de 8 bits que representan los números +36 y -36 en las tres notaciones (S-M, Cal, Ca2) . Represente también el resultado de multiplicar por dos y de dividir por dos, esos números . ¿ Qué relación hay entre la palabra inicial y la final? Solución P4 .

a) Para números positivos: En las tres notaciones se representan de igual forma los números positivos . Por tanto : (+36) x 2 = +72 - 01001000 +36 - 00100100 (+36) _ 2 = +18 -3 00010010 . En general, la multiplicación por 2 equivale a desplazar el número hacia la izquierda introduciendo un 0 como bit menos significativo y conservando el bit de signo ; esto puede comprobarse comparando las representaciones de +36 y +72 . Análogamente, la división por 2 equivale a desplazar hacia la derecha introduciendo un 0 como bit más significativo de la magnitud y conservando el bit de signo ; se puede comprobar con +36 y +18 . Gráficamente estas operaciones admiten la siguiente ilustración : x2

S

c

0

0

=2

S?

b) Para números negativos : La representación de los números negativos varía de una notación a otra . En este problema tenemos : bl) Signo-magnitud : -36 - 10100100 0 x 2 x 2 = -72 11001000 ; en general, x 2 (-36) U o = 2 (-36) - 2 =-18 - 10010010 ; en general,- 2 UN b2) Complemento a : -36 -> 11011011 (-36) x 2 = -72 --> 10110111 ; en general, x 2

(-36) - 2 = -18 - 11101101 ; en general, - 2

S Ur 1 = 2 S~ U,, 2

c1


152

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

b3) Complento a 2 : -36 -* 11011100 0 (-36) x 2 = -72 -> 10111000 ; en general, x 2

x 2

(-36) --.2=-18 - 11101110 ; en general, - 2

--.2

S 1

Ur Problema 5.- Realice las siguientes operaciones en binario, comprobando el resultado : • 22 x 18 b) 75 x 8 • 18x40 d)61=16 • 168 x-14 0168--. 20 Solución P5. a) 22 x 18 = 396 10110 x10010

22 18

101100 101100000 110001100

396

b) Desplazamos a la izquierda tres veces los bits del número 75 e introducimos un 0 por la derecha cada vez que realicemos un desplazamiento . 75 = 1001011 ; 75 x 8 = 1001011000 c) 18 x 40 = 720 101000 x10010

40 18

1010000 1010000000 1011010000

720

d) Dividir un número A entre una potencia de dos equivale a desplazar hacia la derecha los bits del número A . Así 61 _ 16 = 111101 - 10000 = 11 .1101 . Este resultado representa el número 3 .8125 . e) 168 _ 14 = 12 1010100011110 -1110 1100 01110 - 1110 0


CIRCUITOS ARITMÉTICOS 153

f) 168=20=8 .4 10101000 110100 -10100 1000 .0110 . . . 100000 - 10100 11000 -10100 01000

El resultado exacto es 8 .4 ; el obtenido hasta el cuarto dígito decimal es 8 .375 . Problema 6.-Las sumas y restas en complemento a 10 tienen las mismas reglas que las sumas y restas en complemento a 2 . a) Represente +149 y -178 en complemento a 10 con 4 dígitos, el más significativo de los cuales actúa como "dígito de signo" . b) Sume (+ 149) +(-178) en complemento a 10 . c) Represente+ 149 y -179 en BCD bajo complemento a 10, usando un bit como signo . d) Sume en BCD y complemento a 10 (+ 149) + (-178), interpretando la respuesta . Solución P6. a) El complemento a 10 de un número A, para n dígitos, viene determinado por la expresión CalO(A) = 10 ° - A . Por ejemplo, para n = 4 el Cal0(9876) = 104 - 9876 = 0124 ; y el Cal0(4342) = 5658 . Para representar números decimales con signo en el convenio basado en el Cal 0 se procede como en el caso del Ca2 ; esto es, +N se representa como N(10 y -N, como CalO(N) . En consecuencia : + 149 -* 0 1 4 9 : el dígito 0 se corresponde con el signo + - 178 - Cal 0(0178) = 9 8 2 2 : el dígito 9 corresponde con el signo b) Realizamos, ahora, la suma . Con idéntico criterio que en Ca2, si se produce un acarreo, se desprecia . 0149 +9822 9971

En nuestro caso el primer dígito es 9 lo que significa que el resultado es negativo . Para conocer la magnitud del resultado aplicamos, nuevamente, la definición del Calo : Cal 0(9971) = 0 0 2 9 . El resultado, por tanto, es el -29 . c) Si representamos los valores anteriores codificados en BCD, utilizando un único bit para el signo (0 para los positivos y 1 seguido del Calo para los negativos), nos queda : + 149 - 0(149) B C D = 0000101001001 - 178 -* 1 Ca 10(178) BCD = 1(822) = 1100000100010


154

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

d) La suma de los valores anteriores será : 1< 0 0001 0100 1001 + 1 1

1000 0010 0010 1001 0111 1011 0110 0001

Obsérvese que, al sumar los 4 bits del dígito menos significativo, se produce un resultado que no es BCD . La aritmética BCD exige en estos casos que se añada la cantidad 6 para obtener el resultado correcto . Esto provoca un acarreo hacia el siguiente dígito BCD . El resultado final es 1100 10 111000 1, que corresponde a -029 (el primer bit 1 indica que es negativo y los otros 12 bits, en BCD, equivalen a 971 por lo que el resultado es -Ca 10(971) = -29 .

Problema 7.-La substracción binaria directa F=A-B produce una diferencia correcta si A es mayor o igual que B. ¿ Cuál podría ser e/ resultado sí A es menor que B ? . Determine la relación entre el resultado obtenido en F y el bit de borrow en la posición más significativa . Solución P7 .- Para determinar el resultado, investiguemos con un ejemplo sencillo qué número obtenemos al realizar la resta binaria F = A - B . Supongamos que realizamos la siguiente operación (A = 10 (10 y B = 15 (1 0) :

Borrow final=l 1010 A -1111 B 1011

F

Como se observa, se produce un acarreo final o borrow y el resultado F de la operación (F = 11 (10 ) no se corresponde con el valor correcto de la diferencia (-5) . Supongamos que realizamos la operación 2 ° + A - B, donde n representa el número de bits de los números A y B . La nueva operación sería :

Borrow final=0 11010 A -01111 B 01011 : F En este caso no se genera borrow y el resultado es el correcto ( 26 - 15 = 11) . Como se puede observar, el resultado F de esta operación es el mismo que el de la anterior, con la salvedad que la cantidad 2" es suficiente para cubir el arrastre final . Entonces, F = 2 n - (B - A) lo que significa que el resultado del restador de magnitud proporciona el número A - B en la notación Ca2 . Así, 1011 como número con signo en Ca2 es -Ca2(1011) = -(0101) = -5 . Por último podemos decir que el número formado por el borrow y los bits del resultado, representa siempre A-B en Ca2 . Si A>B, no se produce arrastre, por lo que tenemos un bit de signo positivo (borrow=0), y si A<B, se produce arrastre (borrow=l), por lo que tenemos un número negativo expresado en notación de complemento a 2 .


CIRCUITOS ARITMÉTICOS

155

Problema 8.-Diseñe a nivel de puertas un sumador completo de tres bits (además de posibles acarreos) . Utilizando el diseño anterior, realice un sumador paralelo de 3 números de n bits .

Solución P8 .- El sumador completo a diseñar debe tener como entradas en cada etapa los bits de los tres números y el acarreo generado en la etapa anterior . Debe generar la suma de las entradas anteriores y el acarreo de salida hacia la siguiente etapa . Para determinar el número de bits que será necesario utilizar para el acarreo, vamos a realizar una suma de tres números que son todos 1's : Acarreo

2221 11111 11111 . ..11101 ..

Como puede observarse, en el peor de los casos cada celda sumadora de 3 bits debe sumar los tres l's de los números, y añadirles un acarreo de como mucho 2 . Para codificar los posibles acarreos, necesitaremos dos bits . Por tanto la celda a diseñar tiene 5 entradas y 3 salidas . Nótese que es imposible que se genere, en ningún momento, como acarreo, la magnitud 3 : Xj

F;

yi Sumador

zl co cl

Co Cl

completo

La salida Fp responde al siguiente K-mapa : Xi

Yj Zi 000 001 011 010 110 111 101 100

c lco 00

0

1

0

1

0

1

0

1

01

1

0

1

0

1

0

1

0

Fj

11 10

0

1

0

1

0

1

0

1

En este caso, en lugar de minimizar la salida, vamos a acomodarla a las expresiones de salida que conocemos para los sumadores convencionales . Como puede observarse en el K-mapa, las ecuación de salida es la función Exor de las variables de entrada, salvo c l que, si escogemos adecuadamente las inespecificaciones, no afecta : Fj = x, O+y, ®z,

(D c o


156

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Para el acarreo de salida, tenemos el siguiente K-mapa : xi yi Zi 000 001 011 010 110 111 101 100 CICO

00

00 00 01 00 01 01 01 00

01

00 01 01 01 01

10 01 01 C' Co

11 10

01 01

10 01

10 10 10 01

de donde se obtienen las siguientes ecuaciones :

C, = y_Zi C 1

+-iy C~ +X-i Z f C~

Co =

+x1 z1 c 1 +y~z1 c 1 +xA C0+xj z1c0+y~z1c0+X c1c0+x1z1 c 1 C 0 +yj z1 c 1 C 0 A

AC1

X

+x, y zi C o

b) Para el sumador paralelo de n bits, utilizaremos n unidades sumadoras, realizando una conexión de acarreo en serie entre ellas . Zn-1 yn-1 xn-1

Z1 Y1 X1

ZO Yo x0

Problema 9.-La ALU de 4 bits de la figura se incluye dentro de un Cl . Muestre las conexiones entre 3 Cl pra formar una ALU de 12 bits . Asigne los arrastres de entrada y salida en la ALU de 12 bits . 1111 A 3 A2 A Ao Co E

1111 B B B, B o

ALU F 3 F2 F I Fo W W

s2 SI SO Ci

W

Solución P9 .- Para formar una ALU de 12 bits nos basta con 3 ALU's de 4 bits . En ellas conectaremos los distintos grupos de 4 bits de las entradas A y B de 12 bits . Por otro lado, las señales de control de las tres deben ser idénticas, por lo que irán interconectadas . Por último, cuando se realicen operaciones aritméticas, será necesario que cada ALU conozca si la ALU anterior ha generado un acarreo o no para añadírselo a su suma parcial . Por tanto se sugiere una estructura de acarreo en serie . El circuito resultante sería :


157

CIRCUITOS ARITMÉTICOS

A11-8

A7-

B11-8

Cout

S2

S2

2 S

B

1111 1111

1111 1111

1111 1111 ALU

A

B

1

ALU

SI

So

SO

Ci

Ci

ALU

SI SO

C,

1111

1111

1111

F11-8

F7-4

F3-o

S2 S1 So Cin

Problema 10.- Diseñe un circuito aritmético con dos variables de selección s, ys o que realice las siguientes operaciones aritméticas . Indique una solución para una etapa típica . S 1 SO

0 0 1 1

0 1 0 1

Ciñ 0

C ¡'=1

F=A+B F=A F=B F=A+B

F=A+B+1 F=A+ 1 F=B+1 F=A+B+1

Solución P10.- Daremos una solución basada en un sumador de n bits con entrada de acarreo, a cuyas entradas a y b habrá que conectar los datos adecuados en función de s1 y s o . En concreto, si sls0 = 00, las entradas a y b tendrán los números A y B respectivamente ; si s1s0=01,a=Ayb=0 ; si s1s0=10,a=Oyb=B ;ysislso=11,a=Ayb=B . Una solución con subsistema consiste en utiliza dos grupos de multiplexores de 4 canales cuyas salidas se conectarán con la entrada a o b y, en función de sus señales de control, se escogerá el canal que tenga el dato apropiado para la operación : AAO A

B OB B

S1 SO

F A continuación haremos el diseño interno de la etapa típica de un sumador que responda al conjunto de operaciones especificadas . Mediante la repetición e interconexión de etapas típicas se obtendrá el sumador entero . Utilizaremos como base del diseño un sumador


158

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

completo (FA) . La estructura de la etapa viene representada en la siguiente figura: Bi SI SO

Hay que diseñar el circuito combinacional (C .C .) de modo que, en función de los valores de control s i s 0 , y los bits i de los números A y B, permita suministrar las entradas adecuadas a; y b i del sumador completo, para que su salida se corresponda con la operación especificada . Podemos obtener, sin mayor dificultad, el K-mapa del C .C . : Bi s 1 s0

00

01

11

10

00

00

01

11

10

a;=A;

b ;=B ¡

01

00

00

10

10

a;=A;

b 1 =0

11

01

00

10

11

a ;=A ;

b ;=B1

10

01

00

00

01

a ;=0

b1 =Bi

al b i de donde obtenemos las siguientes ecuaciones :

a ¡ = A i s, +A is 0

b . = B i s l s„ + b i s 1 Problema 11 .- Se desea obtener el valor de un número binario sin signo A, de 8 bits (A=A7_ 0), multiplicado por 129. a) Obtenga un circuito que lo realice . No pueden utilizarse circuitos aritméticos de n bits (n > 1), pero sí semisumadores (HA), sumadores completos(FA) y puertas . b) Repita para Ax40 . Solución P11 . a) Realizaremos, en primer lugar, la multiplicación entre los dos números : A7 A6 A5 A4 A 3 A 2 A l A0 1 0 0 0 0 0 0 1 A7 A6 A5 A4 A 3 A 2 A l A0 A7 A 6 A 5 A 4 A 3 A 2 A l A0 Z15 Z14Z13Z12Z11 Z10Z9 z8 Z7 Z6 Z5 Z4 Z3 Z2 Z1 ZO


CIRCUITOS ARITMÉTICOS

159

Comprobamos que los 7 bits menos significativos del resultado se obtienen directamente de los 7 bits menos significativos del número A . A partir de aquí, el siguiente bit del resultado, Z 8 , debe calcularse sumando A 7 con A0 . Si esta suma genera un acarreo, se deberá añadir al siguiente bit (A 1 ) para obtener Z g . Así se procede sucesivamente . Para ello, como estas sumas son sólo entre dos bits, bastará usar semisumadores (HA) . El acarreo de la última unidad, es el bit de mayor peso del resultado, Z 15 . El circuito resultante es :

Z15

Z14

Z13

b) Operamos de forma similar al apartado anterior . Realicemos en primer lugar la multiplicación para conocer qué elementos debemos utilizar en el circuito . A 7 A 6 A5 A4 A3 A2 A l 1 0 1 0 0 A 7 A6 A5 A4 A 3 A 2 A l A0 0 0 A7 A6 A5 A4 A3 A 2 A 1 A 0 Z13 Z12ZIIZIOZ9 Z 8 Z7 Z6 Z5Z4 Z3 0 0

Ao 0 0 0

Los tres bits menos significativos del resultado son 0 . Los dos bits siguientes, coinciden con los bits menos significativos del número A . A partir de aquí, el bit Z5 debe obtenerse sumando A 0 con A 2, lo cual puede obtenerse con semisumador ; el bit Z6 , sumando A 1 con A 3 más el posible acarreo anterior, lo cual debe hacerse con un sumador completo . Utilizaremos sumadores completos para obtener los bits Z 5 hasta Z10 . Los bits Z11 y Z12 pueden obtenerse con semisumadores y el bit Z 13 corresponderá con el acarreo del último semisumador . El circuito resultante es : A7 A b

b

HA Co s

HA Co s

b FA Co Ci s

A6 A4 b

A5 A3 A4 A 2 A3 b

b

A1 A2 A 0 A 1 A0 b

b

FA _ FA FA FA HA Co Ci Co Ci _ Co Ci Co Ci - Co s s s s s

0 0 0

III Z13

Z12

Z11

Z10

Z7

Z6

Z5

Z4 Z3 Z 2 Z I Z 0


160

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 12.- Se dispone de una ALU de 8 bits muy simple, ya que sólo hace las operaciones de "suma " y " transfiere el complemento", como se indica en la figura adjunta : A

B

F Cout

A+B A+B+1 A

V

F Considere dos números con signo de 16 bits (K y L), representados en complemento a dos . Cada uno está escrito en dos palabras de 8 bits, una con la parte más significativa (H) y otra con la menos significativa (L), es decir, (K= KHKL y L=LHLD. a) Utilizando una sola AL U, indique justificadamente, qué hay que realizar para obtener M=K+L (M=MHMÜ incluyendo la posibilidad de desbordamiento (overflow) . No hay que explicar cómo se almacenan los resultados intermedios, sino que, simplemente, hay que decir que se almacenan . b) Repita el apartado anterior para obtener M=K-L . c) Diseñe la ALU con puertas y sumadores completos (FA) de 1 bit. Solución P12 . a) Para realizar la suma de los dos números de 16 bits, tendremos que hacerlo en dos etapas : primero la parte menos significativa y, segundo, la parte más significativa . Los números pueden ser positivos o negativos, puesto que están representados en Ca2 . Por tanto es la salida V de la suma más significativa la que nos determinará la existencia o no de un overflow . 1) Introducimos por las entradas A y B los bytes K L y L L , respectivamente. Las señales de control de la ALU deben ser XC in = 00 . Por la salida F, obtendremos el byte menos significativo del resultado, M L que se almacenará. Lo mismo se hará con el acarreo de salida generado Cout = C82) Introducimos por las entradas A y B los bytes K H y LH , respectivamente . Las señales de control de la ALU son XCin = OC 8 , de forma que si en la etapa anterior se generó acarreo, C 8 = 1, se calcula la operación A+B+1 y en caso contrario, A+B . La salida F corresponderá con el byte significativo del resultado M H . Llamemos C 16 , al acarreo que se haya generado en Cout . 3) Es en este momento cuando debemos evaluar la salida V de la ALU para determinar la existencia de overflow : Si V=0, no existe overflow y el resultado correcto de la suma K+L está en M . Si V=1, existe overflow y el resultado correcto de la suma K+L está en el número de 17 bits formado por C 16M . b) Para realizar la diferencia K-L, calculamos previamente el complemento a 2 del número L, el cual se lo sumamos a K . La ALU no permite calcular el Ca2 de un número, sólo


CIRCUITOS ARITMÉTICOS

161

dispone de la operación A, que se corresponde con el complemento a 1 del número A . Sabemos que el complemento a dos puede ser obtenido fácilmente a partir del complemento a 1, sin más que añadirle la unidad . Por tanto, primero procederemos a calcular el complemento a 1 del número L y posteriormente, realizaremos la operación K+L+1 . Esto determina la diferencia K-L. 1) Introducimos el byte menos significativo de L (L L ), por la entrada A . Las señales de control de ALU deben ser XC i „=1- . Por la salida F, obtenemos EL y se almacena. 2) Introducimos ahora el byte significativo, L H , por la entrada A . Las señales de control de la ALU deben ser XC i ñ 1- . A la salida obtenemos F=L H y se almacena . 3) Introducimos K L y LL por las entradas A y B de la ALU . Las señales de control deben estar a XC in =01 . Por la salida F, obtenemos M L y se almacena . 4) Repetimos, por último, los pasos 2 y 3 del apartado anterior . c) Los sumadores permiten realizar las operaciones F=A+B cuando el acarreo de entrada está a 0 lógico, y F=A+B+l, cuando está a 1 lógico . Construimos, por tanto', un sumador de 8 bits utilizando sumadores completos de 1 bit . Por otro lado utilizaremos inversores para implementar la única función lógica de esta ALU, F=A . La unión entre la parte lógica y la aritmética se puede realizar mediante multiplexores controlados por la variable X . La señal de overflow, puede ser obtenida mediante la Exor del acarreo de salida (C 8) y el acarreo de la etapa anterior (C 7).

Cout V

Problema 13 .- Sean X e Y dos números binarios positivos expresados en notación complemento a 2. Utilizando la ALU de la siguiente figura, indique las operaciones a realizar en la ALU para que sus salidas representen el módulo del resultado de la diferencia entre los números X e Y. 3

SI SO

t

S I SO

Operación

00 01 10 11

F F F F

= AND(A,B) = A+Ci n = A+B+C in = A+B+C in


162

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P13 .- El valor pedido, IX - YI, se obtiene con X - Y si X > Y y con Y - X = -(X -Y) si X < Y . Para obtenerlo hacemos A = X, B = Y, C i„ = 1 y s i so = 11 . Así se realiza la operación F = X + Y + 1 = X + Ca2(Y) = X - Y . Como ambos números son positivos no hay desbordamiento aunque existen dos opciones : X > Y, en cuyo caso F muestra IX - YI, y C0,t = 1 ; y X < Y, en cuyo caso F = X - Y es un número negativo y C o„t = 0. Por tanto, si C0,t = 1, la salida F proporciona directamente el módulo de la diferencia y si C o„t = 0 habrá que realizar algunos pasos adicionales para obtener la salida deseada . Aquí presentamos dos opciones : a) Repetir el proceso anterior pero cambiando las entradas, esto es, A = Y, B = X, ;,,=1ys 1 so =11 . C b) Reintroducir el resultado anterior F = X - Y por A y aplicar las entradas C i„ = 1 y s 1 so = 01, en cuyo caso obtendremos a la salida F = A+1 = Ca2(A) = Y - X. PROBLEMAS CON SOLUCIÓN RESUMIDA

Problema 14.- Realice las siguientes sumas sin pasar a la base decimal : a)1110(2 +1001 (2 b) 100.1(2 + 111 (2 c) F02B( 16 +1021 (16 d) 1230(4 + 23(4 Solución P14. a)

b)

1011 .1 c) 1 F02B(16 + 1021 (16 1 0 0 4 C06 d)

+

1 wn 1230 (4 23 (4 1313 (4


CIRCUITOS ARITMÉTICOS 163

Problema 15.- Multiplique los números del problema anterior sin pasar a la base decimal . Solución P15 .

a)

b) 100 .1 x 111 1001 1001 1001 11111 .1 c) Debe utilizarse la "tabla de multiplicar" en base 16, de la que se ilustran algunos casos :

x

F02B (1 6 1021(16

2 x B = 16(16 2 xF =1 E(16

F 0 2 B 1E056 F02B F21 A 58 B(16 d) Debe utilizarse la "tabla de multiplicar" en base 4, de la que se ilustran algunos casos 1230 (4 23(4 11010 3120 102210 (4

+

3x3=21 (4 3x2=12 (4 2x2=10 (4

Problema 16.- Realice las operaciones aritméticas siguientes en binario utilizando : a) la notación en complemento a 1 b) la notación en complemento a 2 y compruebe el resultado usando la aritmética decimal : 1) (+42) + (-13) 2) (+42) - (-13) 3) (-42) + (-13) 4) (-42) - (-13)


164

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P16. 1) 1

a)

0101010 42 1110010 -13 0011100 > 1 0011101 29

• •

b)

0101010 + 1110011 0011101

42 -13 29

2) En este caso y en el siguiente la magnitud del resultado es mayor que la magnitud de cada operando . Aunque en este problema no ocurre, en situaciones similares puede haber desbordamiento por lo que hay que verificar si V = 0 antes de validar el resultado : a)

42 13 55

b)

1010101 1110010 1000111 > 1 1001000

-42 -13

b) X

1010101 + 0001101 1100010

-42 13 29

0101010 +0001101 0110111

0101010 + 0001 101 0110111

42 13 55

3) a)

1

1010110 + 1110011 1001001

-42 -13 -55

1010110 + 0001 101 1100011

-42 13 29

-55

4) a)

b)

Problema 17.- Realice las siguientes operaciones utilizando 10 bits, 3 de ellos para la parte fraccionaria, usando la notación en complemento a 2 . Compruebe el resultado verificando los posibles errores. • (+22.25) + (+13.13) • (+22.25) - (+13.13) • (-22 .25) + (+13.13) • (-22.25) - (+13.13)

Solución P17.- La cantidad 22 .25 se representa en binario como 10110 .01 . La cantidad 13 .13 se representa como 1101 .00100010. .. Puesto que sólo tenemos 7 bits para almacenar la parte entera y 3 para la parte fraccionaria de los números, su representación será 22.25 = 0010110 .010 y 13 .13 = 0001101 .001.


CIRCUITOS ARITMÉTICOS

165

a) 0010110 .010 22 .25 + 0 0 0 1 1 0 1 .0 0 1 13 .13 0100011 .011 35.375 El resultado correcto sería 35,38 . Se ha producido un error de 0,005 . b) Para realizar la resta sumaremos el Ca2 de 13 .13 . Ca2(0001101 .001) = 1110010.111 0010110 .010 + 1 1 1 0 0 10.1 1 1 0001001 .001

22.25 -13 .13 9.125

El resultado que se lee tiene un error de 0,005 con respecto al resultado correcto, 9 .12 . c) Determinaremos, primero, el Ca2 de 22 .25 Ca2(0010110.010) = 1101001 .110 1101001 .110 -22 .25 + 0 0 0 1 1 0 1 .0 0 1 13.13 1110110.111 -9 .125 El resultado se obtiene con un error de 0 .005. d) x 1101001 .110

+ 1 1 1 0 0 10.1 1 1 1011100.101

-22 .25 -13 .13 -35 .375

Se produce un error de 0 .005. Problema 18.- Se dispone de circuitos lógicos ITE. Estos circuitos poseen tres entradas y una salida, y realizan la siguiente función de conmutación ITE(f,g, h)=f g + T h. Realice la etapa típica de una unidad lógica que responde a la siguiente tabla, según la organización indicada en la figura y utilizando, exclusivamente, MUX 4:1 en el C. C. . Las entradas se disponen en raíl doble.

S2 S i S o F¡ 0 0 0 A¡ 0 0 1 0 1 0 0 1 1 1 0 0

101 1 1 0 1 1 1

B_ A¡Bi Ai +B ¡ A¡ B i A¡ +B i Exor(A¡ ,B ¡ ) Nexor(A¡,Bi )

A¡ B¡ S2 Si S

C .C .

I g T E

Fi


166

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P18 .- Se pueden dar múltiples soluciones a este problema. La que presentamos consiste en hacer g = 1 y h = 0 en el ITE de salida, con lo que F i = f es la única función que debe realizarse con el C .C . Para diseñar C .C . con multiplexores representamos F ; en un mapa binario natural : s2 SI s 0

A¡Bi 00

000 001 010 011 100 101 110 111 0 1 0 1 0 1

01

0

0

0

1

0

1

1

0

10

1

1

0

1

1

0

1

0

11

1

0

0

1

0

1

0

1

f = F¡

Como se observa, cada columna de la función f corresponde a la operación lógica especificada en el enunciado . El circuito resultante, utilizando multiplexores de cuatro canales, es :

1 2 310

11 A¡ B¡

1

g

0

11 s2 s1

Problema 19.- Diseñe un circuito aritmético con una variable de selección s y dos entradas de datos A y B de 4 bits . Cuando s = 0 el circuito realiza la operación de suma F= A+B. Cuando s = 1, el circuito realiza la operación de incremento F=A +1 . Solución P19 .- Utilizaremos un sumador de 4 bits, en el que una de las entradas será el número A y en la otra el número B para s = 0 y el número 0 para s = 1 . Asimismo conectaremos S al acarreo de entrada C i „ para generar F = A+ 1 cuando s = 1 . El circuito de la figura siguiente deja pasar aB si s=0y da un0si s= 1 :


CIRCUITOS ARITMÉTICOS

167

------------ ------------ ------------ ----------------& & & & t t t r El circuito final será : 3-

3 SS

I1. Sumador 4 bits

C; n

Problema 20.- Para la ALU de 8 bits de la figura, determine la salida F para todas las combinaciones posibles de s2 s, s o si las entradas A y B contienen los números binarios $23 y $FO, respectivamente, y el acarreo de entrada es 0 .

A7-o

s2 s1 s0

B7-0

s2 SI SO

t

000 001 010 011 100 101 110 111

Operación F = AND(A,B) F = OR(A,B) F = EXOR(A,B) F = NOT(A) F = A+B+C ;,, F = A+ B+C ;,, F = A+ $FF +C ;,, F=A+C in

Solución P20 . a) s 2 S 1 so = 000 . F = AND($23,$F0) = $20 . b) s2 S 1 s o = 001 . F = OR($23,$F0) = $F3 . c) s 2 s 1 so = 010 . F = EXOR($23,$F0) = $D3 d) s2 s 1 s o = 011 . F = NOT(A)=$DC . e)s 2 s 1 so=100 .F=A+B+C;,,=$23+$F0=$13yC o „ t =1 . f) S 2 S 1 s o = 101 . F = A + B + C ;,, = $23 + $OF = $32 y Cout=0 . g) s2 s 1 s o = 110 . F = A + $FF+ C;,, = $23 + $FF = $22 y Cout =1 h) s2 s 1 s o = 111 . F = A + C i „ = $23 y Cout=0 .


Capítulo 7 ANÁLISIS DE CIRCUITOS SECUENCIALES

Los circuitos combinacionales no tienen capacidad de almacenamiento de información por lo que su salida está perfectamente determinada a partir de los valores presentes en las entradas . En múltiples e interesantes casos, por el contrario, la salida Z del sistema en un instante to depende no sólo del valor de las entradas X en t0 sino de la evolución del sistema hasta t0 ; esto es : Z(t 0) = Z((X(t 0), X(t < to)) Este tipo de función corresponde a las denominadas funciones secuenciales, autómatas o máquinas de estados finitos . Su estudio para el caso de realizaciones con circuitos digitales es el propósito de este Capítulo . MODELOS SECUENCIALES Y REPRESENTACIONES Las "situaciones" en las que puede estar un circuito secuencial no son ilimitadas . Entonces, para caracterizar al circuito es posible establecer un conjunto finito de estados internos (o simplemente estados), S 1 , S 2, ... S k, cada uno de los cuales representa una de las "situaciones" del circuito . La salida y la evolución del sistema quedan bien establecidas si se conoce el valor de las entradas (estado de entradas Ij) y el estado presente (S i ). El valor de la salida O admite dos modelos : - De Mealy, en el que la salida depende tanto de la entrada como del estado presente, cumpliéndose que O = O(h, Si). - De Moore, en el que la salida depende sólo del estado presente, O = O(S i). La evolución del sistema viene marcada por el cambio desde el estado presente S i al próximo estado NS que en ambos modelos depende de la entrada y del estado presente : NS = NS(Ip S i) . La representación de una máquina secuencial suele hacerse mediante grafos o tablas de estados/salida, de la forma siguiente :

169


170

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

NS O(NS)

Si

Mealy

Ii

O

NS

O(S i )

Moore

CIRCUITOS SECUENCIALES La realización de máquinas secuenciales con circuitos digitales es lo que se conoce como circuitos secuenciales . En ellos, los estados de entrada 1 corresponden a valores de las señales de entrada X, los de salida O a las señales de salida Z y, también, los estados internos corresponden a valores "0" y "1" sobre un conjunto de variables llamadas de estado . Esto es, cada estado tiene asignado un código binario sobre las variables de estado del circuito . Éste se representa mediante la denominada tabla de transición de estados/salida, la cual es similar a las anteriores (de estados/salida) sin más que sustituir cada estado por el código binario asignado (S i -~ q, donde q = q l . . . qn ; análogamente, NS -> Q) . La evolución desde un estado presente a un próximo estado, lo que simplemente es pasar de un valor a otro en las variables de estado, puede realizarse de múltiples formas . La más común es disponer de un circuito específico, llamado biestable porque tiene dos estados estables (el 0 y el 1), que implementa una variable de estado . Cada biestable muestra en su salida el estado 0 ó 1 almacenado, que corresponde al valor presente en la variable de estado implementada en ese biestable . Para cambiar de valor almacenado y así poder hacer el cambio al próximo estado, los biestables poseen unas entradas de excitación (normalmente llamadas SR, JK, D o T) . A su vez, este cambio de estado puede hacerse de forma asíncrona o síncrona, en cuyo caso el cambio de estado es controlado por una señal de reloj (clk) . Una vez elegido el tipo de biestable, la máquina se describe por la denominada tabla de excitación/salida . En esta tabla, la representación de los cambios de estado se hace mediante el valor de las entradas de excitación que hay que poner en cada biestable para que cambie adecuadamente su valor almacenado ; por ej ., para biestables T, la tabla de excitación tiene la forma : X

Ii Ti junto con el estado presente q i producen el adecuado Q i

Las funciones de excitación (por ej . Ti ) y de salida (Z) son funciones combinacionales de las entradas (X) y de las variables de estado presente (q) . Así, el esquema general de un circuito secuencia) síncrono es :


ANÁLISIS DE CIRCUITOS SECUENCIALES

X

171

Z

Circuito combinacional

q Banco de biestables clk 11

Excitacio nes de los biestables (por ej T

BIESTABLES En esta breve introducción nos centraremos únicamente en los biestables más comunes . Desde el punto de vista lógico los cuatro biestables más usuales son :

9

00 01 11 l0 1 1 0 1 1 0 1

aa a aa

Q Tabla de transición biestable JK

Tabla de transición biestable SR D 0 1 0 0 1

a a

SóJ -

q

RóK-

q

Símbolo lógico

DóT -

q q

Q Tabla de transición biestable T

Tabla de transición biestable D

Símbolo lógico

Desde el punto de vista temporal, las formas síncronas de los biestables son : - Disparados por nivel (a veces llamados latches síncronos): en estos biestables uno de los dos niveles de la señal de reloj habilita los cambios de estado (según la tabla de estado del biestable), mientras que durante el otro nivel no hay cambio de estados (Q = q) . - Disparados por flancos (a veces llamados flip flops) : en estos biestables los cambios de estado se producen siempre tras uno de los flancos de la señal de reloj . Existen dos estructuras : - Master-Slave en la que el biestable puede captar valores de entrada durante el nivel previo al flanco activo . - Edge-triggered, en el que las entradas sólo afectan en el entorno del flanco activo . q q clk 1 (Latch, nivel H)

clk

clk

(Master-Slave, flanco bajada) (Edge-triggered, flanco subida)


172

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

La mayoría de los biestables síncronos incorporan una o dos señales de excitación asíncronas para la puesta a 1 (preset) o a 0 (clear) del biestable . Operan de forma similar a las señales S y R . El biestable debe tener las entradas asíncronas desactivadas para poder operar síncronamente .

ANÁLISIS DE CIRCUITOS SECUENCIALES El problema del análisis de un circuito secuencial tiene como dato el circuito y, a veces, la secuencia de valores de entrada . Como objetivo, hay que determinar la tabla o grafo de estados/salida ; a veces, también una descripción verbal de la operación que realiza y, en otros casos, un diagrama temporal de la evolución entrada-salida . Si el circuito secuencial obedece al esquema general presentado previamente, (síncrono con una sola señal de reloj), el proceso de análisis es : 1 °-) se determinan las ecuaciones de excitación y de salida por análisis de la parte combinacional del circuito global ; 22) se representan esas funciones en forma de tabla (de excitación y de salida) ; 32) a partir de ésta, se obtiene la tabla de transición sin más que tener en cuenta la tabla de estados de los biestables involucrados ; 42 ) se obtiene la tabla de estados/salida, sin más que asociar un símbolo de estado a cada código de las variables de estado ; en su caso ; 52) se dibuja el grafo y se interpreta, y 6r° ) se determina la secuencia entrada-salida . Si el circuito secuencial no obedece al esquema general, el análisis se debe llevar a cabo mediante la obtención de cronogramas de las señales de estado y de salida .

Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Diseño de un biestable a partir de otro . - Análisis temporal de un biestable . - Análisis de circuitos secuenciales . - Análisis de circuitos secuenciales sin el esquema general .

PROBLEMAS RESUELTOS Problema 1 .-Obtenga los biestables JK y T a partir de un biestable D . Solución Pl .- Este problema se reduce a obtener un circuito combinacional CC que, para cualquier combinación de entradas JK y estado presente q, genere una entrada en el biestable D que provoque, en éste, la transición de estado que correspondería al biestable JK para idénticas condiciones de entrada y estado .

Para construir la solución, comenzaremos por presentar la tabla de transición del


ANÁLISIS DE CIRCUITOS SECUENCIALES

173

biestable JK y la tabla de excitación del biestable D . JK 9-> Q D 00 01 11 10 0-31 1 1-40 0 1-91 1 0-30 0 Q Para cada transición del biestable JK se puede encontrar la excitación en el biestable D que la lleve a efecto . Expresándolo en el siguiente mapa de Karnaugh se tiene : JK 00 01 1

D De aquí obtenemos la expresión para D : D = J • q + K q . El circuito correspondiente se muestra en la figura:

L KJ-

& &

F Para el biestable T procedemos de idéntica manera .

elh

D 9 q

A partir de la tabla de transición del biestable T y de la de excitación para el biestable D, se llega al mapa que se muestra a continuación de donde se obtiene la ecuación lógica para la línea D y asimismo se muestra el circuito resultante :

a a

u

E

Q La ecuación de entrada al biestable D es : D = T - q + T • q

L

r

&

-1--

_q q

1


174

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 2.-Se pretende construir un circuito como el de la figura, el cual podrá actuar como RS, D, T o JK dependiendo del valor de C, y C o (ver tabla). Diséñelo utilizando como único elemento de memoria un biestable tipo T.

C, Co

I, lo

0 0 0 1 1 0

R S D T J K

- Q

C, Co 1 1 I1 l o

1 1

Solución P2.- Este problema se reduce a obtener los distintos tipos de biestables a partir del T . Procediendo de forma similar a como se hizo en el emblema 1, obtenemos las siguientes ecuaciones de entrada :

T = S q + R q T = J q+K q T = DOq Asociando cada ecuación con el caso correspondiente C 1 Co e identificando las entradas 1 1 e lo con las del biestable en cada caso, se tiene : T = l o • q+1, q C 1 C o =00 T = I, O+ q C 1Co=01 T = T CICO = 10 C 1 C o =11 T=1, •q +lo •q

Combinando estas expresiones en una sola : T= (I, •q +I,, •q ) •C , •C„+(I,O+q) •C , •C„+T •C, •C„+(1, •q +l„ •q ) •C , •CO Esta expresión, nos permite realizar el circuito utilizando un multiplexor, cuyas entradas de selección son C 1 y Co. Problema 3.-a) Encuentre la forma de onda de salida de un biestable RS Master-Slave para la siguiente secuencia de entrada :

clk S R

1

1

n

1

b) ¿Cómo sería la onda de salida si se tratara de un RS disparado por flanco descendente (negativo)? c) ídem para flanco positivo .

Solución P3. a) El biestable Master-Slave está formado internamente por dos latches SR, tal como se muestra en la siguiente figura :


ANÁLISIS DE CIRCUITOS SECUENCIALES

Master S- S

q

R- R

175

Slave Ss

qs

s

qs

f

clk

El biestable amo (Master) es disparado por el nivel alto de la señal de reloj y recibe las entradas del conjunto Master-Slave . Sólo puede cambiar de estado cuando clk = 1 y lo hará dependiendo de sus entradas de excitación . El biestable esclavo (Slave) sólo lo hará si clk = 1 (clk = 0) . Sus entradas son las salidas del amo, por lo que sólo se pueden dar las combinaciones SR=10 (puesta a 1) y SR=01 (puesta a 0) . Las salidas q s del esclavo son las salidas del conjunto Master-Slave . Para resolver este problema, vamos a representar las formas de onda de salida del biestable amo y del esclavo . to

t1

t2

t3

t4

t5

clk S R qm q = qs

A

1

E-

Los dos biestables comienzan por un estado desconocido representado por la banda rayada en el gráfico anterior . Cuando clk = 1 el biestable amo puede cambiar de estado, y el cambio ocurre como consecuencia del cambio en la señal S, dado que este valor de entrada (S m = 1) fuerza a que q,,, = 1 . En el intervalo [t 1 ,t 2 ], clk = 0, con ello el biestable Master mantiene su estado inalterable, y el Slave lee en sus excitaciones los valores 10 (SsRs = gmgm = 10) por lo que q s toma el valor lógico 1 . En el intervalo [t 2 ,t 3 ], clk = 1 .

SR = 00 por lo que el Master mantiene el valor del estado en el que estaba, pero el cambio que ocurre en Rm provoca un cambio en q,,, que toma el valor 0 . Durante [t 3 ,t 4 ] clk = 0, el amo mantiene su estado y el esclavo cambia a 0 ya que sus entradas SsRs = 01 . A principio del intervalo,

Con este razonamiento se continúa deduciendo la evolución temporal del biestable Master-Slave la cual se muestra en la figura . b) En los biestables disparados por flanco el proceso es diferente . Sólo se tiene en cuenta las entradas existentes en el momento que se genera un flanco activo en la señal de reloj . Estas entradas, y el estado presente del biestable, determinan el próximo estado . En el caso de que exista una transición de entradas en el flanco activo, se tomarán como valores válidos, los inmediatamente anteriores al flanco . En la siguiente figura se representan las formas de onda RS disparado por flanco negativo .

del biestable


176

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

clk

to S

1

t3 1

R

1

q

1

Hasta el instante t o , el estado del biestable es desconocido . En ese instante, las entradas al biestable son SR = 10 por lo que, en el prรณximo ciclo de reloj, la salida del biestable se pone a 1. En el instante t 1 , las entradas son SR = 01, esto implica que, durante el siguiente ciclo de reloj, la salida es 0 . En el instante t 2 , las entradas son SR = 00 por lo que se mantiene el estado . Para el instante t 3 , las entradas son nuevamente SR = 00, por lo que se mantiene el estado . c) Para flanco positivo se opera de igual forma . clk to S

I

3

I

R

1

q Podemos observar en el cronograma que se mantiene el estado desconocido inicial durante muchos ciclos, porque en los flancos ascendentes, que ocurren en los instantes to y t l , las entradas son SR = 00 . En el instante t2 la entrada es SR = 01 por lo que se almacena un 0 en el biestable . La llegada del siguiente flanco, en t 3 , no altera el contenido del biestable ya que SR = 00 .

Problema 4.-Para cada uno de los circuitos de la figura, justifique razonadamente si es vรกlido como biestable para realizar cualquier circuito secuencial . & q

a

a

_1

L

1 (a)

Soluciรณn P4 .-

a

(b)

r=

&

1

(c)

Para que los circuitos de la figura puedan ser utilizados como elementos de

memoria en los circuitos secuenciales, deben ser capaces de almacenar dos estado estables : el 0 y el 1 y permitir el cambio de uno a otro . Esto es equivalente a decir que estos elementos deben tener la posibilidad de realizar cualquier tipo de transiciรณn : 0 ---3 0, 1 -3 1, 1 -> 0, 0 --> 1 . El circuito de la figura (a) presenta el siguiente K-mapa, donde se puede observar que no existe la transiciรณn 0 -3 1 .


ANÁLISIS DE CIRCUITOS SECUENCIALES

ab 00

Ql

11

10

0

0

0

0

0

1

0

0

1

0

177

Q SI obtenemos el K-mapa para el circuito de la figura (b), podemos observar que no existe transición de 1 - > 0 :

Q El circuito de la figura (c), es el único que permite las cuatro transiciones posibles, por lo que puede ser utilizado, como elemento de memoria . Su k-mapa se muestra a continuación :

ME

ama Problema 5.-Analice el circuito de la figura :

Y-

1 T

q2 2

_

n

0-

D3 ci

q2

q3

1 1

X J q Y X- K q clk

Solución P5.-

Cuando se analiza un circuito secuencial se tiene como objetivo determinar su

operación . Los pasos del método de análisis son : a) Obtener las ecuaciones de excitación y de salida . Cada una de las entradas (excitaciones) de los biestables así como las distintas salidas que posea el circuito se expresan mediante ecuaciones algebraicas cuyas variables son las de entrada al circuito y las variables de salida de cada uno de los biestables (variables de estado presente) . En nuestro caso :


178

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

K,=X

J, = Y • q3

T2 = Y .(X+Og 3 ) = X .Y .g 3 +X .Y .g 3

D3 = q2' Gy'g2 -~. X'g1 = X

g2'g2+X'gi'g2 = X+q,+q2

Z=X+q 3 +X •q2 +X .q, =X+q2(+q 3 b) Escribir la tabla de excitación/salida . Las ecuaciones antes obtenidas se expresan mediante un mapa de Karnaugh . En nuestro caso : XY

q 1q2q3

00

01

11

10

000

00,0,1, 1

00,0,1, 1

01,1,1, 1

01,0,1, 1

001

00,0,1, 1

10,1,1, 1

11,0,1, 1

01,0,1, 1

011

00,0,1, 0

10,1,1, 0

11,0,0, 1

01,0,0, 1

010

00,0,1, 1

00,0,1, 1

01,1,0, 1

01,0,0, 1

110

00,0,1, 1

00,0,1, 1

01,1,1, 1

01,0,1, 1

111

00,0,1, 0

10,1,1, 0

11,0,1, 1

01,0,1, 1

101

00,0,1, 1

10,1,1, 1

11,0,1, 1

01,0,1, 1

100

00,0,1, 1

00,0,1, 1

01,1,1, 1

01,0,1, 1

J I K 1 ,T2,D3 , Z c) Determinar la tabla de transición/salida . La tabla de excitación se traduce a otra, la de transición donde aparecen los próximos estados . Para ello se procede de la siguiente forma . En cada celda de la tabla de excitación se observa el valor de las excitaciones del biestable considerado, por ejemplo, para el biestable 1, en la celda XY = 00, q1q2q3 = 000, se tiene J 1 K 1 = 00 . Apoyándonos en la tabla de estados del biestable JK, esas excitaciones dan lugar a un cierto próximo estado ; así, para JK = 00 se da Q = q . Entonces, como en la celda considerada q 1 = 0, en la misma celda de la tabla de transición pondremos Q 1 = 0 . Análogamente, en esa celda Q 2 = 0 (ya que T 2 = 0) y Q3 = 1 (ya que D 3 = 1 y, por tanto, Q 3 = D3 = 1) . La tabla resultante es : XY

g1g2q3 000

00

01

11

10

001,1

001,1

011,1

001,1

001 011

001, 1

111, 1

101, 1

001, 1

011,0

101,0

110,1

010, 1

010

011,1

011, 1

000, 1

010,1

110

111, 1

111,1

001,1

011,1

111 101

111,0

101,0

011,1

011, 1

101, 1

111, 1

001, 1

001,1

100

101, 1

101,1

011,1

001, 1

Q1Q2Q3,Z d) Obtener la tabla de estados/salida. Cada estado de la tabla de transición está dado por


ANÁLISIS DE CIRCUITOS SECUENCIALES

179

las variables de cada uno de los biestables . Ahora, asignaremos a cada combinación binaria de esas variables un símbolo concreto que identifique a ese estado . En nuestro problema, llamando 0, 1, 2, . . ., 7 a los estados según la codificación g1g2q3 = 000, 001, 010, •••, 111, se obtiene la tabla de estados/salida que se muestra a continuación :

7

00

01

11

10

1, 1 1,1 3,1 3,0 5, 1 5, 1 7,1 7,0

1, 1 7,1 3,1 5,0 5, 1 7, 1 7,1

3, 1 51 01 6, 1 3, 1 1,1 1,1 3, 1

1, 1 1,1 2,1 2, 1 1,1 1,1 31 3, 1

5,0

NS,Z e) Presentar el diagrama de estados/salida . Ofrece la misma información que la tabla anterior, tan sólo que expresada en forma de grafo . En nuestro caso :

10,1 01,0

01,1 n n

1-,1 J

00,1


180

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

f) Expresar verbalmente el funcionamiento . Esto sólo tiene sentido en casos muy especiales . En nuestro problema no es aplicable .

Problema 6.-Un circuito secuencial síncrono se ha obtenido de acuerdo con el esquema de la figura . ¿Correspondería este circuito a la estructura general de los circuitos secuenciales síncronos?. Analícelo hasta obtener su tabla de estados . (La ROM ha sido programada de acuerdo con la tabla adjunta, donde $ representa posición y [$] su contenido) . X

> Ao Al > A2

do dl

Z

d2 d3 A3 ROM D3 D

$

[$]

$

[$]

0 1 2 3 4 5 6 7

A B 6 8 6 C 7 6

8 9 A B C D E

4 7 D 1 8 4 A 9

F

D

Solución P6.- Sí, corresponde a una estructura de circuito secuencial síncrono (con 8 o menos estados) ya que la ROM es un módulo lógico universal . Así, Z puede ser cualquier función de la entrada y del estado presente, y D 3 , D 2 y D 1 pueden ser cualquier función de excitación de las mismas variables . Analizamos el circuito identificando la variable asociada a cada línea de entrada y salida de la ROM . Así, tenemos : A3A2A1 = q3q2q1, Ao = X, D 3 D2 D 1 = d 3 d 2d 1 y Z = Do y podemos reescribir la tabla de contenido de la ROM :

g3g2q1X A3A2A1Ao

D3 D 2 D 1 Do

1000

0100 0111

g3g2q1X A3 A 2 A 1 Ao

D 3 D2D 1 D o

0000 0001

1010 1011

0010 0011

0110

1001 1010

0100

1000 0110

1011 1100

0001 1000

0101

1100

1101

0100

0111 0110

1110 1111

1010 1001

0110 0111

d 3 d2d 1 do

d 3d 2d 1 d o

1101

A continuación escribimos la tabla de excitación y salida del circuito que coincide con la de transición, ya que estamos utilizando biestables tipo D para los cuales se cumple Qi = Di :


ANÁLISIS DE CIRCUITOS SECUENCIALES

939291 000 001 010 011 100 101 110 111

0 101,0 011,0 011,0 011,1 010,0 110,1 100,0 101,0

181

1 101,1 100,0 110,0 011,0 011,1 000,1 010,0 100,1

D3D2D1,Z = Q3Q2Q1,Z

Pasamos a la tabla de estados y salida llamando 0, 1, 2, 3, 4, 5, 6 y 7 a los estados cuya codificación es g3g2q1 = 000,001,010,011, ...,111 . El resultado es el siguiente : 0 5,0 3,0 3,0 3, 1 2,0 6, 1 4,0 5,0

1 5, 1 4,0 6,0 3,0 3, 1 0,1 2,0 4,1 NS, Z

Problema 7 .-Analice el circuito de la figura . Encuentre la forma de onda de la salida para la secuencia de entradas dada . X Y

>1 >1 J2 q2 K~92

lk clk

x Y

1

z


182

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P7.- Análisis del circuito : a) Ecuaciones de excitación y salida : D 1 =X+Y J 2 =X K 2 =Y b) Tabla de excitación y salida:

Z=q2+Y .q1

00 0, 0 0, 0

01 1, 0 1, 1

0,00,1

11 10

q1 q2 00 01

11

10

1,01,1

1, 1 1,1 1,11,1

1, 1 0, 0 1,10,1

0,00,1

1,01,1

1,11,1

1,10,1

0,00,0

1,01,0

1, 1 1,0

1, 10,0

D 1 , J2 K 2 , Z c) Tabla de transición y salida :

00

q II

0

11

10

00,0

lo,

01 1

1 1, 1

1 1,0

01,1 01,1

10,1 10,1

10,1 10,1

11,1 11,1

00,0

10,0

11,0

11,0

QiQ2, Z d) Llamando a = 00, b = 01, c = 11 y d = 10 obtenemos la siguiente tabla de estados y salida . Esta tabla puede ser reducida en un estado, ya que b es equivalente a c : XY

\Y S 00 a,0

01 d, 1

11 c, 1

10 c, 0

a

00 a, 0

01 d, 1

11 c, 1

b, 1 b, 1

d, 1 d, 1

d, 1

c, 1

c

c, 1

d, 1

d, 1

c, 0 c, 1

c, 1 c, 0

a,0

d, 0

c, 0

c, 0

d, 0

d, 1 c, 0

d

a,0

10

NS, Z

NS, Z

Obtención de la forma de onda para la señal de salida : Utilizando la tabla de estados anterior, encontremos la secuencia de estados . Para ello, en cada flanco de reloj activo (en nuestro caso, el negativo) se considera cuál es el estado presente y las entradas existentes justo antes del flanco ; para ese par de valores, se observa en la tabla cuál es el próximo estado . Éste es el estado del circuito durante el próximo ciclo de reloj . La solución, en nuestro caso, la mostramos en la siguiente figura : Como inicialmente no conocemos el estado presente, hemos dejado como interrogante cuál es ese estado (otra solución podría ser suponer un estado inicial cualquiera) .


ANÁLISIS DE CIRCUITOS SECUENCIALES

183

Una vez conocida la secuencia de estados por los que pasa la máquina dibujemos la forma de onda de la salida . Para determinarla, basta conocer el estado presente total (XY, S) y mirar en la tabla de salida cuál es el valor de ésta . Como es un circuito de Mealy, la salida puede cambiar, tanto cuando cambie el estado (flanco negativo de clk), como cuando cambien cualquiera de las entradas X e Y . clk X

__

Y S

?

d

c

c

c

c

Z

d

c

c

1

Problema 8.-Para el circuito de la figura, dibuje la forma de onda de la salida para las secuencias que se muestran . Supongamos que el sistema parte del estado (q1,g2,q 3,) = (0,0,0) . y l

clk 1 clk2 Y X

Solución P8 .-

Para conocer la forma de onda de la señal de salida Z obtenemos previamente

la forma de las señales ql, q2 y q3 . Cada una de las transiciones de las señales tiene asociada un número en la figura y a continuación se expone la explicación relativa a cada número .


184

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

clk 1

S

clk2 Y

1 1

X q1 q2 q3

Fo

0

o Fo

o 4e

o

o

Fo

o

o

0

~ OO

Fo

F

z

• Dado que J j K 1 = 11 e Y = 1, se cumple Q 1 = q 1 en el flanco negativo de clkl .

O O 2

Como Y = 0, tenemos que Q1 = 0 y Q1 = 1 (independientemente del reloj clkl ) .

3

Como Y = 0, tenemos que Q 2 = Q3 = 1 (independientemente del reloj clk2) .

• Dado que Y = 1 y D2 = X y D 3 = X, según sea el valor de X se cumplirá que Q 2 ó Q 3 = 1 en el flanco negativo de clk2 .

• Dado que Y = 1 y D2 = X y D 3 = X, según sea el valor de X se cumplirá que Q 2 ó Q 3 = 0 en el flanco negativo de clk2 . Z se obtiene como resultado de evaluar en el tiempo la ecuación : Z = Y ql q2 q3 .

Problema 9.-En el circuito de la figura, las entradas A, 8, y C están todas inicialmente a cero . La salida Y también está inicialmente a cero (0) y pasa a uno (1) después de una cierta secuencia en el cambio de A, B y C a uno (1) . a) Determine la secuencia que hará que Y pase a uno (1). b) Explique por qué se necesita el pulso de Start. J1 >clk

J2

K

K l CL

clk C u

Start


ANÁLISIS DE CIRCUITOS SECUENCIALES

185

Solución P9 .- Como K 2 = 0, las entradas del biestable Y sólo pueden ser J 2K2 = 00, en cuyo caso el biestable no cambia de estado, o J 2K2 = 10, en cuyo caso Y = 1 . Si inicialmente Y = 0 y se desea que pase a 1 necesitamos : 1-O) que J 2 = X sea 1 22) que el reloj del biestable X : C, suba a 1 (tenga un flanco de subida) . Para cumplir la condición primera, de forma análoga, A debe subir a 1 y, después, B (reloj del biestable X) también debe subir a 1 . Por tanto, la secuencia de cambios a seguir por las señales A, B y C es :

Cuando Y = 1, como J2K2 = 00 ó 10, no puede cambiarse el estado del biestable "Y" mediante las entradas síncronas . De aquí que sea necesario ponerlo a 0 asíncronamente (Start) cada vez que se desee que la entrada "Y" tenga un flanco de subida . Problema 10.- Analice el circuito de la figura donde los biestables son disparados por flanco y obtenga la secuencia que genera partiendo del estado inicial q1q2q3q4 = 1000 . q1 A

Di

q2

D

q2

q4

q3

D3

D

clk

Este circuito posee bloqueo. Usando puertas lógicas, modifique el circuito (añadiendo lo necesario) de forma que se evite el bloqueo : 1 . Utilizando las señales asíncronas de los biestables (no mostradas en la figura) . 2. Sin utilizar las señales asíncronas de los biestables . ¿ Qué ocurriría en el caso de que los biestables fuesen disparados por nivel?

Solución P10.- Analizamos el circuito aplicando el método habitual de análisis de circuitos secuenciales síncronos . Obtenemos en primer lugar las ecuaciones de excitación : D1 = q10+ q4 D2 = q1 D3 - q2 D4 = q3


186

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Dado que en biestables tipo D se cumple D i = Q, tenemos la siguiente tabla de estados para el circuito : q2

00

01

11

lo

00

0000

0010

1110

1100

01

1000

1010

0110

0100

11

1001

1011

0111

0101

10

0001

0011

1111

1101

q3q4

Q1Q2Q3Q4

De la tabla anterior, llamando cada estado por la representación decimal de la palabra binaria ql q2 q3 q4 se obtiene el grafo de estados que se muestra :

09009000 CI Goce*** Existe bloqueo en el funcionamiento del circuito, ya que si el circuito entrase en el estado 0 nunca saldría de él . Para eliminar el bloqueo basta detectar cuándo el sistema se encuentra en dicho estado, y realizar alguna acción que lo fuerce a salir de él . Planteamos dos soluciones distintas : 1) Solución asíncrona : Activar la señal de preset PR de cualquiera de los biestables . De esta forma obligamos a que el sistema cambie de estado asíncronamente . 2) Solución síncrona : Se trataría de introducir un 1 por la entrada de alguno de los biestables forzando igualmente el cambio de estado . Para detectar que nos encontramos en el estado 0 definimos una señal Z como :

Z

= ql

q 2 . q 3 . q4

De esta forma las soluciones asíncrona y síncrona aplicadas al biestable 1 son respectivamente : Z

- q4

q4 - q3 - q2

- q3 - q2

PR

D 1 q1

D Solución asíncrona

Solución síncrona


ANÁLISIS DE CIRCUITOS SECUENCIALES

187

Analicemos qué sucede si los biestables son disparados por nivel (por ejemplo, por el nivel alto del reloj) . Cuando clk = 0 se mantendría estable el último estado almacenado y cuando clk = 1 iría modificándose el estado de acuerdo con el grafo de estados . Esto se haría al ritmo fijado por los tiempos de propagación de los biestables y puertas . Así, por ejemplo, si clk = 1 durante 4 veces el tiempo de propagación de los biestables tendríamos que en cada pulso habría 4 cambios de estados : clk S

13

6

9

4

4

4

2

1

8

12

12

Como el tiempo de propagación es difícilmente controlable (cambia de un biestable a otro, varía con la temperatura, etc . . .), la secuencia de estados no podría ser determinada . No obstante, sí se puede controlar la anchura del pulso clk =1 y hacerla suficientemente grande como para que haya un cambio de estado y suficientemente pequeña como para que no haya dos . Así, el comportamiento del circuito con latches sería equivalente al del circuito con

flip f lops . Problema 11 .- Para el circuito de la figura se pide : a) Analizarlo . b) Indicar la secuencia de salida que se obtiene si inicialmente los tres biestables tienen salida cero. c) Indicar cómo pueden sustituirse los biestables D y JK por biestables PM sin tener que rediseñar el circuito.

q

P

q

D2 q2

q3 -

K clk

PM 0 0 01 1 0 1 1

Q(t+1) Q(t) 1 0 Q(t)

q3


188

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P11 .

a) Ecuaciones de excitación : P1 = q3 M1 = q1 +q3

D2 = q1 ED q3

J3 - g2'g3

K3 = 1

Z = g2-g3 De las ecuaciones de excitación pasamos a la tabla de excitación y salida : 9392 q

0 1

00

01

11

10

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

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

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

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

J 3K3,D 2 ,P 1 MI, Z

Pasamos a la tabla de excitación, a partir de las tablas de transición de cada uno de los distintos biestables :

0 Q

Q

A continuación la tabla de transición y salida : q3q2 q1 0

1

00

01

11

10

001, 0 011, 0

101, 1 111, 1

010, 0 000, 0

010, 0 000, 0

Q3Q2Q1 , Z

Y como último paso del análisis la tabla de estados y salida, donde hemos llamado a los estados 0, 1, 2, 3, 4, 5, 6 y 7 según la codificación de las variables de estado que se muestra : q3q2q 1 = 000, 001, 010, 011, 111 S

NS

Z

0 1 2 3 4 5 6 7

1 3 5 7 2 0 2 0

0 0 1 1 0 0 0 0


ANÁLISIS DE CIRCUITOS SECUENCIALES

189

b) Inicialmente g3g2q1 = 000 (S = 0) S: 0

-> 1

-~

Z :0

0

3

-

lo 0' -

7

1

0

1

-o 3

-> 7

0

1

0

-

T

T secuencia que se repite

c) La sustitución del biestable D y JK por uno PM es como sigue : - Respecto al biestable D : A partir de la tabla de excitación del biestable D y la del PM se obtiene la tabla para PM en función de D y q . Las tres tablas se muestran en la figura :

PM

q -~> Q

a 0

_0 ó .-1 _ 01 1 0

0

1

o

-0 ó 1-

0 1

1

10

0-ó- 1

q

0-6,-1

PM ---------------------------

Una solución es : P=D M=D --------------------------- Respecto al biestable JK : A partir de la tabla de excitación del biestable JK (que se muestra en la siguiente figura) y de la del PM se obtiene la tabla para PM en función de JK y q (que también se muestra en la figura) : JK q 0 1

00 0 - ó 1 -

-0 ó 1 -

01

0-ó- 1

1 0

1 0

Q

01 0-ó- 1

PM

• Una solución es : P=J •q M=K .q

J

P

q q


190

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

PROBLEMAS CON SOLUCIÓN RESUMIDA

Problema 12.- Obtenga los biestables JK, T y D a partir del biestable RS.

Solución P12 .

Problema 13 .- Obtenga los biestables JK y D a partir del biestable T .

Solución P13.

D-

J -

Problema 14 .- Obtenga los biestables D y T a partir del biestable JK .

Solución P14 .

9 9

T

9 9

Problema 15.- Para las secuencias de entrada de la figura, encuentre la forma de onda de salida para el caso de un biestable JK disparado por flanco negativo . Repítalo para el caso de ser disparado por flanco positivo.

clk J K


ANÁLISIS DE CIRCUITOS SECUENCIALES

191

Solución P15 .- Biestable disparado por el flanco positivo de clk .

clk

q

00/1

Biestable disparado por el flanco negativo de clk .

clk

1

q

Problema 16 .- Analice el circuito secuencial síncrono de la siguiente figura :

q S A A0

d3 -

K q

d2 d, d

D3

ROM

$ (A l A 0)

f$1

0 1 2

F 0

3

2 B

T2

clk

Solución P16.- Si denominamos a los distintos estados por los que pasa la máquina como se muestra a continuación, podemos dar la tabla de estados correspondiente a este circuito secuencial síncrono .


192

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

g1g2q3= 000 g1g2q3= 001 q1 q2 q3= 01 0 q1 q2 q3= 01 1 g1g2q3 =100 q1 q2 q3 = 1 0 1 q 1 q2 q3 = 1 1 0 ql q2 q3 = 1 1 1

S=0 S=1 S=2 S=3 S=4 S=5 S=6 S=7

0

1

7,0 0,0

7, 1 0,0

2,0

2,0

5,0

5, 1

3,0 4,0

6,0 7,1

6,0

5, 1

1,0

4,0 NS, Z

Problema 17.- Para el circuito secuencial de la figura, obtenga la forma de onda de la salida Z correspondiente a la forma de onda X mostrada tambi茅n en la figura . Parta del estado inicial q1 q0 = 00. X q0 -

- L_ J

q

X -

K

q

Tp _ q0

q0 -

clk q0 -

X -

q0 q1 q0 q1 -

clk

x Soluci贸n P17.- Nombraremos a los estados del circuito de la forma mostrada a continuaci贸n, y a partir de la tabla de estados obtenida deduciremos la secuencia de salida . X q1 q0 =00 g1g0= 01 q1 q0 = 10 g1g0 =11

S=0 S=1 S=2 S=3 NS, Z


ANÁLISIS DE CIRCUITOS SECUENCIALES

193

El valor de X se toma en el flanco negativo de clk . El estado inicial consideramos que es el 0 (q 1q0 = 00) . La secuencia de salida es la mostrada a continuación : clk

1

1

3

0

1

3

0

Problema 18.- Analice el circuito de la figura . Si inicialmente los biestables están a 0, indique la secuencia de salida para la siguiente secuencia de entrada : x: 1 1 1 0 0 0 (cada bit corresponde a un ciclo de reloj) X _ q1 q2

x

X q1 q2 -

X -

J3

q

K3

q

q1 q2 q

K

J2

1

q2

K2

clk Solución P18.- Tras el análisis del circuito obtenemos el diagrama de estados al que responde la máquina secuencial . La codificación que se ha usado para cada uno de los estados es : g1g2q3=000 S=A 0;0 0;0 01,0 g1g2q3= 001 S=B 919293=01 1 S=C 0,1 1,0 , g1g2q3=010 S=D 0,0 0,1 g1g2q3=110 S=E glg2g3=111 S=F 1,1 g1g2q3=101 S=G 0,0 g1g2q3=100 S=H 1,1

O

O 0010

O

O

Para dar la secuencia de salida partiremos del estado inicial A (q1q2q3 = 000) y aplicaremos la secuencia de entrada .


194

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

clk

x S

A

C

H

E

A

D

G

Z 1

Problema 19.- Para el circuito y secuencia de entrada de la figura, determine la forma de onda de salida . El estado inicial es desconocido . Los biestables son disparados por flanco . Justifique las transiciones producidas en la salida . Y

clk

i

Y

Solución P19 . clk

__r-

x

L

Y Zi

ML

Z2

Problema 20.- Analice el circuito de la figura y muestre la secuencia de salida para la secuencia de entrada dada .¿ Qué ocurriría si los biestables son disparados por el nivel alto del reloj?


ANÁLISIS DE CIRCUITOS SECUENCIALES

D

D

q1 qi

195

q2 q2

clk clk

I

I

I

I

1

I

I

1

I I I I I I I I I 1

Solución P20 .- Tras el análisis del circuito secuencial síncrono se obtiene la siguiente tabla de estados como resultado . La codificación de los estados de la máquina secuencia) es :

q1 q2= 00 q1 q2= 0 1

S=0

q1 q2= 10 q1 q2 =11

S=2

S=1 S=3 NS, Z

Aplicando la secuencia de entrada que propone el problema se obtiene la siguiente salida . Suponemos que inicialmente la máquina se encuentra en el estado 0 . clk

x S

0 0 0 2 1 2 3 1 0 0 2 3 3 1 2 3 1 0 0 0 0 0 0 0

Z Si los biestables fuesen disparados por nivel se podrían dar múltiples cambios de estado durante el nivel activo del reloj . El circuito funcionaría respondiendo a la tabla de estados dada en la solución si se diseña el reloj clk con una anchura de pulso suficientemente grande para que el biestable cambie una vez por ciclo del reloj, y suficientemente estrecha para que no cambie más de una vez .


Capítulo 8 DISEÑO DE CIRCUITOS SECUENCIALES

El análisis de circuitos secuenciales básicamente consiste en lo siguiente : dado un circuito hay que describir su comportamiento verbalmente o, al menos, mediante la tabla o el diagrama de estados . Este Capítulo esta dedicado al proceso inverso, esto es, dada una función secuencial hay que obtener un circuito que la implemente . A este proceso es lo que se le llama el diseño de circuitos secuenciales . Más concretamente, en este Capítulo se va a tratar el proceso de diseño de circuitos secuenciales síncronos . PASOS DEL PROCESO DE DISEÑO Existe un procedimiento formado por un conjunto de pasos que permite realizar este proceso de una forma lo más sistemática posible . Este conjunto de pasos es el que se muestra en la figura: Descripción verbal l Descripción formal : Tabla o Diagrama de estados/salida Reducción de estados l Tabla mínima de estados/salida Asignación de estados

1

Tabla de transición/salida Elección de bi estables

1

Tabla de excitación/salida Síntesis de fun ciones combinacionales l Ecuaciones de excitación y de salida i Circuito

197


198

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

A continuación se describe en qué consiste cada uno de estos de pasos . 1 . El primer paso consiste en generar una descripción formal del comportamiento a partir del enunciado de la función secuencial . La descripción formal consiste en la tabla o el diagrama de estados siguiendo alguno de los dos modelos de máquina secuencial, el de Mealy o el de Moore . La forma de obtenerla depende en gran medida de la función secuencial, de forma que no existe un único método que sea válido para cualquier enunciado de función secuencial . Es un paso no sistemático . Por este motivo es el paso más difícil de realizar y de lo bien que se haga depende en gran medida el buen desarrollo del resto del proceso de diseño . 2 . El segundo paso consiste en obtener la tabla de estados mínima. Esta es una nueva tabla de estados equivalente con la obtenida en el paso anterior (i .e ., dan lugar al mismo comportamiento de entrada-salida) con el menor número de estados posible . Este paso se llama de reducción de estados y existe un método sistemático que permite realizar dicha reducción en tablas de estados completamente especificadas . Este método se presenta en el problema 6 . 3 . De la tabla mínima de estados hay que pasar a la tabla de transición/salida . En esta nueva tabla se representan los estados por un código binario . Este código binario debe ser almacenado por el circuito y para ello se utilizan un conjunto de biestables, tantos como bits tenga el código . Esta asociación de un código binario a cada estado es lo que se llama la asignación de estados . La asignación determina cómo va a ser la tabla de excitación y de salida y, por tanto, afecta al coste del circuito . Como criterio básico, en este Capítulo se va a utilizar el menor número posible de variables de estados, lo que significa diseñar circuitos con el menor número de biestables posibles . Por otra parte, para hacer la asignación concreta en los problemas correspondientes se van a utilizar dos métodos diferentes . En el caso de tablas de estado de 3 ó 4 estados se aplicará el método exhaustivo que consiste en obtener el circuito para las tres únicas asignaciones que dan lugar a circuitos con coste distinto y elegir la de menor coste . Para tablas con mayor número de estados se aplicará el método basado en las reglas de adyacencia . Este método da lugar a asignaciones de buen coste pero no necesariamente el óptimo . Se desarrolla con detalle en el problema 11 . 4 . De la tabla de transición hay que pasar a la tabla de excitación del circuito . En ella se representa cuál es el valor de cada una de las entradas de los diferentes biestables para conseguir las transiciones de la tabla de transición . Este paso exige que previamente se haga la elección del tipo de biestables que se van a usar en el circuito . 5 . A partir de la tabla de excitación/salida se obtienen las ecuaciones de excitación (i .e ., ecuaciones de entrada de los biestables) y de salida mediante métodos de síntesis de funciones combinacionales, ya considerados en el Capítulo 4 . 6 . Por último, a partir de las ecuaciones se obtiene el circuito . Índice del Capítulo Este Capítulo desarrolla problemas de las siguientes materias : - Construcción de diagramas/tablas de estados . - Reducción de tablas de estado . - Asignación de estados . - Proceso de diseño completo .


DISEÑO DE CIRCUITOS SECUENCIALES

199

PROBLEMAS RESUELTOS

Problema 1 .-Construya la tabla de estados para una máquina de Mealy con una entrada X y una salida Z, que detecte la llegada de tres ceros o tres unos consecutivos, dando una salida Z = 1 coincidiendo con la aparición del tercer bit . Solución Pl .- Para construir la tabla de estados vamos a partir de un estado conocido como, por ejemplo, aquél que representa la llegada de 2 ceros consecutivos (llamémosle estado A) . En A : - Si X = 0 : el próximo estado es A y la salida vale 1 . - Si X = 1 : se pasa a un nuevo estado, que llamamos B . La salida es 0 . B es un estado que representa el comienzo de una secuencia de 1's . En B : Si X = 0 : se pasa a un nuevo estado, C . La salida es 0 . Si X = 1 : se pasa a un nuevo estado, D . La salida es 0 . C es el estado que representa el comienzo de una secuencia de 0's . Por otra parte, D es el estado que representa la llegada de 2 unos consecutivos . En C : - Si X = 0 : se pasa al estado A . La salida es 0 . - Si X = 1 : se pasa al estado B . La salida es 0 . En D : - Si X = 0 : se pasa al estado C . La salida es 0 . - Si X = 1 : se pasa al estado D . La salida es 1 . De esta forma, el diagrama y la tabla de estados quedan como se observa :

499

X 1

W

/0

0/1

00/0 0/0 Diagrama de estados

Estados

0

1

A

A, 1

B,0

B

C,0

D,0

C

A,0

B,0

D

C,0

D, 1

Tabla de estados

Obsérvese que el estado A realmente es el estado que resulta tras detectar 2 o más ceros ; análogamente, la detección de 2 o más unos conduce al estado D .

Problema 2.-Obtenga el diagrama de estados de un circuito con dos entradas, X e Y, que dé salida Z= 1 cuando en los cuatro últimos ciclos de reloj, las entradas hayan sido 11, 01, 01, 11 . Solución P2 .- Siguiendo el modelo de Mealy : Partimos del estado que corresponde a que no ha llegado ningún valor de la secuencia de entrada que hay que detectar : estado A . En A : - Cuando XY = 11, se pasa a un estado nuevo : B . Z = 0 . - Con cualquier otro valor en XY se permanece en el estado A . Z = 0 .


200 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

B es el estado que guarda la información de que ha sido detectado el primer valor de la secuencia (XY = 11) . En B : - Cuando XY = 01, se pasa a un estado nuevo : C . Z = 0 . - Cuando XY = 11, se permanece en B . Z = 0 . - Con cualquier otro valor se pasa al estado A . Z = 0 . C es el estado que guarda la información de que ha sido detectado el segundo valor de la secuencia (XY = 01) tras el 11 . En C : - Cuando XY = 01, se pasa a otro estado : D . Z = 0 . - Cuando XY = 11, se pasa al estado B . Z = 0 . - Con cualquier otro valor se pasa al estado A . Z = 0 . D es el estado que guarda la información de que se ha detectado el tercer valor de la secuencia (XY = 01) tras el 11 y 01 . En D: - Cuando XY = 11, se completa la secuencia . Z = 1 . Se pasa a B . - Con cualquier otro valor se pasa al estado A . Z = 0 . El diagrama de estados queda de la siguiente manera : 0-/0 10/0

11/0

11/1

/0

Siguiendo el modelo de Moore : Partimos del estado que corresponde a que no ha llegado ningún valor de la secuencia a detectar : estado A . En A, la salida vale 0 (Z = 0) : - Cuando XY = 11, se pasa a un estado nuevo : B . - Con cualquier otro valor en XY, se permanece en el estado A . B es el estado que guarda la información de que ha sido detectado el valor (XY = 11) . En B,Z=0 : - Cuando XY = 01, se pasa a un estado nuevo : C . - Cuando XY = 11, se permanece en B . - Con cualquier otro valor se pasa al estado A . C es el estado que guarda la información de que ha sido detectado el 01 tras el 11 . En C, Z=0 : - Cuando XY = 01, se pasa a otro estado : D . - Cuando XY = 11, se pasa al estado B . - Con cualquier otro valor se pasa al estado A . D es el estado que guarda la información de que se ha detectado el 01 tras el 11 y 01 . En D,Z=0 : - Cuando XY = 11, se pasa a un nuevo estado E . Con cualquier otro valor se pasa al estado A .


DISEÑO DE CIRCUITOS SECUENCIALES

201

E es el estado que guarda la información de que se ha detectado la secuencia completa . Por tanto, Z = 1 . Tras E : - Cuando XY = 00 ó 10, se pasa al estado A . - Cuando XY = 11, se pasa al estado B . - Cuando XY = 01, se pasa al estado C . El diagrama de estados queda de la siguiente manera :

11

Problema 3.-Ha recibido de un viejo amigo la siguiente carta : "Querido amigo: Al poco tiempo de comprar esta vieja mansión tuve la desagradable sorpresa de comprobar que está hechizada con dos sonidos de ultratumba que la hacen prácticamente inhabitable: un canto picaresco y una risa sardónica . Aún conservo sin embargo cierta esperanza, pues la experiencia me ha demostrado que su comportamiento obedece ciertas leyes, oscuras pero infalibles, y que puede modificarse tocando el órgano o quemando incienso . • cada minuto, cada sonido está presente o ausente . Lo que cada uno de ellos hará en el minuto siguiente depende de lo que pasa en el minuto actual, de la siguiente manera : El canto conservará el mismo estado (presente o ausente) salvo si durante el minuto actual no se oye risa y toco el órgano, en cuyo caso el canto toma el estado opuesto . • cuanto a la risa, si no quemo incienso se oirá o no según el canto esté presente o ausente (de modo que la risa imita el canto con un minuto de retardo) . Ahora bien, si quemo incienso la risa hará justamente lo contrario de lo que hacía el canto . • el momento en que te escribo, estoy oyendo a la vez la risa y el canto . Te quedaré muy agradecido si me dices qué manipulaciones de órgano e incienso debo seguir para restablecer definitivamente la calma ." Conteste la carta . Solución P3 .- Los sucesos de la vieja mansión obedecen a una máquina secuencia], de la siguiente forma : - Valores (o estados) de entrada Son las acciones que realiza "nuestro viejo amigo" . Existen 4 posibles estados de entrada :


202

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

In : Ni toca el órgano ni quema incienso . Ii : Quema incienso (pero sin tocar el órgano) . Io : Toca el órgano (pero sin quemar incienso) . Iio : Quema incienso y toca el órgano simultáneamente . - Valores (o estados) de salida Son las posibles situaciones de sonido en la casa : On : No se oye nada (¡situación de tranquilidad!) . Oc : Se oye el canto picaresco (pero no la risa) . Or : Se oye la risa sardónica (pero no el canto) . Ocr : Se oye la risa y el canto . - Estados de la Máquina Como la salida cambia con "la señal de reloj" (esto es, cada minuto), cambia con el estado por lo que es una máquina de Moore . En principio, pues, asociamos 4 estados, uno por cada una de las salidas (Sn -* On ; Sc -4 Oc ; Sr - Or ; Scr - Ocr) . Estos estados están determinados por el valor (SÍ, NO) de dos variables de estados que, por conveniencia, denominaremos "c" (canto) y "r" (risa) . . OPERACIÓN : Representaremos con minúsculas (c, r) el valor presente y con mayúsculas (C, R) el valor próximo . i) Canto : Si no se oye la risa, r = NO, y se toca el órgano, lo ó I io , cambia de estado : C = c. En cualquier otro caso, el canto no cambia de valor : C = c . ü) Risa : Si no se quema incienso (valores de entrada In ó I o) sigue al canto, C, con un minuto de retraso : R = c . Si se quema incienso, (valores de entrada I i ó Iio ), la risa hace lo opuesto al canto con un minuto de retraso : R = c De esta forma la tabla de estados queda como sigue :

c

r

Sn

NO NO

Sc

SÍ NO

Sr

NO SÍ

Scr SÍ SÍ

In

10

Ii

NONO SÍ NO NO SÍ SÍ SÍ

ha SÍ SÍ

On

NO SÍ SÍ NO NONO

Oc

NONO NONO NO SÍ NO SÍ

Or

SÍ SÍ

SÍ SÍ

SÍ NO

SÍ NO

Ocr

CR l, La respuesta a la carta debe decir lo siguiente : r minuto : Se oye risa y canto por lo que debe quemar incienso ; 2° minuto : Se oye canto pero no risa, por lo que debe quemar incienso y tocar el órgano ; 3` minuto : No se oye nada por lo que no debe hacer nada .


DISEÑO DE CIRCUITOS SECUENCIALES

203

Problema 4 .-Sobre una única línea X se envía una información sincronizada con una señal de reloj Ck . Se ha convenido que la información sea correcta siempre que no haya dos o más unos consecutivos o cuatro o más ceros consecutivos . Obtenga el diagrama de estados de un circuito cuya salida sea uno si se detecta un error en la transmisión y que permanezca en ese valor en tanto dure el error .

Solución P4 .- Para que la salida (señal Z) sólo indique error (con Z=1) mientras éste permanezca, haremos que Z dependa de X (máquina de Mealy) . Para construir el diagrama de estados se parte de un estado conocido, por ejemplo : sea A el estado que indica que el último valor de X almacenado es 1 . Estando en A : Si X=1, hay error (dos 1's consecutivos) por lo que Z=1 y el próximo estado es A ya que el último valor recibido es 1 . Si X=0, no hay error (Z=0) y el próximo estado será B . El estado B indica que el último valor recibido es 0 (mientras que el penúltimo era 1) . Estando en B : Si X=1, no hay error (Z=0) y el próximo estado es A . Si X=O, no hay error (sólo dos O's consecutivos) y el próximo estado es C . El estado C corresponde a haber recibido dos ceros consecutivos . Estando en C : Si X=1, no hay error y el próximo estado es A . Si X=O, no hay error (sería el 3 cero) y el próximo estado es D . El estado D refleja la existencia de tres ceros consecutivos . Estando en D : Si X=1, no hay error y el próximo estado es A . Si X=0 sería el cuarto 0 consecutivo con lo que hay error (Z=1) y el próximo estado es el propio estado D . El diagrama de estados completo es el siguiente : 1/0

s0

0/0

OVIAM

Problema 5.-Un circuito secuencial tiene dos entradas (X1 , X2) y dos salidas (Z 1 , Z2) . Las entradas representan un número binario natural de dos bits, N . Si el valor presente de N es mayor que el valor inmediatamente anterior, entonces, Z 1 = 1 . Si dicho valor es menor, entonces la salida Z2 = 1 . En cualquier otro caso, Z1 = Z2 = 0. Se pide : 1) Escribir la tabla de estados correspondiente del circuito, como autómata de Mealy . 2) ¿Cuántos estados tendría el circuito como autómata de Moore?

Solución P5 .- 1 .- El funcionamiento del circuito es el siguiente : si y sólo si (XIX 2)N > (X 1 X2)N-1 entonces, Z 1 = 1 ; por otra parte, si y sólo si (X 1 X2 )N < (XIX2)N-1 entonces, Z 2 = 1 ; si (X1X2)N = (X1X2)N_1, entonces Z 1 Z2 = 00 .


204

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Para comparar el valor actual con el anterior se necesita almacenar ese último valor . Por tanto, la máquina debe tener un estado por cada posible valor de X 1 X 2 : A estado que almacena que el último valor recibido de X 1 X2 = 00 B estado que almacena que el último valor recibido de X 1 X2 = 01 C estado que almacena que el último valor recibido de XI X2 = 10 D estado que almacena que el último valor recibido de X 1 X 2 = 11 Con esto se puede construir directamente la tabla de estados, que queda de la siguiente manera :

00

01

10

11

A,00

B, 10

C, 10

D, 10

B

A,01

B, 00

C, 10

D, 10

C

A,01

B, 01

C, 00

D, 10

D

A,01

B, 01

C, 01

D, 00

NS, Z 1 Z2 2 .- Como máquina de Moore, en principio se necesita un estado que almacene el último valor recibido y si era mayor (salidas Z 1 Z2 = 10), igual (salidas Z 1 Z2 = 00), o menor (salidas Z 1 Z2 = 01) que el anterior. En total, como pueden lleg~wl4 valores diferentes 100, 01, 10, 111, son 4x3 = 12 estados distintos . La tabla de estados queda de la siguiente manera :

Est .

SIGNIFICADO DE LOS ESTADOS Z1Z2 Último valor recibido

00

01

10

11

Ao

Co

A1

A2

A3

10

00

A1

Bo

C1

A2

A3

10

01

A2

Bo

B1

C2

A3

10

10

A3

Bo

B1

B2

C3

10

11

Bo

Co

A1

A2

A3

01

00

B1

Bo

C1

A2

A3

01

01

B2

Bo

B1

C2

A3

01

10

B3

Bo

B1

B2

C3

01

11

Co

Co

A1

A2

A3

00

00

C1

Bo

C1

A2

A3

00

01

C2

Bo

B1

C2

A3

00

10

C3

Bo

B1

B2

C3

00

11

NOTA : Se comprueba que la tabla es irreducible salvo por la posible eliminación de los estados Ao y B 3 que sólo pueden alcanzarse si son estado inicial .


DISEÑO DE CIRCUITOS SECUENCIALES 205

Problema 6.-Muestre la tabla de estados mínima de una máquina secuencial síncrona con una entrada X y una salida Z que opera de la siguiente forma : cuando se detecta la llegada de 110 (primero 1,después 1, después 0), Z se pone a 1, manteniendo este valor hasta detectar la secuencia 010, en cuyo caso Z pasa a tomar valor 0 manteniendo este valor hasta que llegue una nueva secuencia 110 . Solución P6 .- Partimos de un estado conocido para construir el diagrama de estados . Por ej . sea A el estado que se alcanza al detectarse la secuencia 110, por lo que la salida será 1 hasta que se detecte 010 . Consideramos que la máquina es de Mealy . El diagrama de estados con el significado de cada estado y la tabla de estados son los siguientes :

0/1 á%- 1/0 0/1 ~Q

Q 1/1

`1/

w1/1

©' 1/1

1/0 1/0 O 0/0 00/0

Significado de cada estado Est . Recibido . . . .110 A B . . . .00 (con . . . .01 C (con . . . .11 E (con . . . .010 D F . . . .00 (con G . . . .1 (con H . . . .11 (con

Z = 1) Z = 1) Z = 1)

S

0

1

A

B1

C1

B

B1

C1

C

DO El

D E

FO GO A1 El

F

FO GO

G

DO HO A1 HO NS, Z

Z = 0) Z = 0) Z = 0)

Para obtener la tabla de estados mínima debemos comprobar si se pueden reducir o eliminar estados . Para ello seguimos el proceso de reducción de estados, que consta de los siguientes pasos : 1 . Formar la lista de estados con salidas diferentes (son estados incompatibles) : { A,C ; A,D ; A,F ; A,G ; A,H ; B,C ; 13,13 ; B,F ; B,G ; B,H ; C,D ; C,E ; C,F ; C,G ; C, H ; D,E ; D,H ; E,F ; E,G ; E,H ; F,H ; G,H} . 2 . Construir la tabla de pares compatibles o de reducción, que es una tabla en forma de escalera asignando un escalón a cada estado como se observa en la figura del paso siguiente . 3 . En esa tabla, marcar las casillas de los pares de la lista del paso 1 . (Es obvio que esta tabla se puede obtener sin necesidad de haber listado los estados incompatibles) :


206

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

a

X

Tabla de reducción Fase inicial

X .Z'~.1,X 091 EN 09 X

H

4 . Observando la tabla de estados, escribir dentro de cada casilla de la tabla de reducción los estados que deben ser compatibles para que el par que corresponde a dicha casilla lo sea también :

X X

X X X E X HA, X X X X 011 FA P,al X

AB CE

Tabla de reducción

H

5 . En la tabla de reducción tachar aquellas casillas en las que exista escrito algún par de estados incompatibles . Repetir este paso de forma iterativa hasta que se hallan marcado todos los pares incompatibles :

un

C

©-© D LWI ©© w=, aun ©.~'

Tabla de reducción Fase final G

© .Z'©©--© Al final de este punto, todas las celdas sin tachar corresponden a parejas de estados compatibles (o equivalentes si, como en este caso, la tabla de estados/salida está completamente especificada) . 6 . Construir la lista de compatibles . Para ello hay que formar una tabla con tres columnas : en la primera anotar un estado (se empieza por el del escalón más bajo) ; en la segunda se anotan los estados equivalentes del primero (aquellos cuyas casillas no estén marcadas) ; en la tercera se anotan los compatibles . En máquinas completamente especificadas, los compatibles se agrupan por clases de equivalencia, por lo que la lista final de compatibles se forma fácilmente, agrupando todos los estados que sean compatibles entre sí.


DISEÑO DE CIRCUITOS SECUENCIALES

S Equivalentes H

• F

• •

F

C B A

B

Compatibles {H} {H,G} {H,G,F} {H,G,F,E} {H,G,DF,E} { H,G,DF,E,C } { H,G,DF,E,C,B } (H, G, DF, E, C, AB)

Nuevos estados :

A partir de los compatibles se construye la nueva tabla de estados :

rrTrr~

0

1

A1

C 1

D 0

E 1

D 0

G 0

A 1

E 1

D 0

H 0

A 1

H 0

207

NS, Z

H, G, D, E, C, A

Problema 7.-Un circuito secuencial tiene una entrada X y una salida Z Por X se transmiten pulsos positivos de 1, 2 ó 3 ciclos de duración . Desde un pulso al siguiente X permanece a 0 un mínimo de 10 ciclos . La salida Z se pondrá a 1 tras terminar el pulso de entrada y permanecerá en 1 durante 3 ciclos si el pulso de X duró un ciclo, durante 2 ciclos si X duró 2 y durante 1 ciclo si X duró 3 . En otros asos Z es cero. Obtenga la tabla de estado /salida mínima según el modelo de máquina de Mealy . Del enunciado se deduce el comportamiento del circuito, que es el siguiente :

Solución P7 .-

3

2

Partamos de un estado conocido . Sea el estado A aquel en el que no se ha detectado ningún pulso . En A : - Si X= 1 se detecta el primer ciclo del pulso en X . Se pasa al estado B . Z=O . - Si X=0 se permanece en A . Z=O . En B : - Si X=1 se detecta el segundo ciclo del pulso en X . Se pasa a C . Z=O . - Si X=0 fin del pulso de un ciclo de duración . Se pasa a D . Z=1 . En C : - Si X=1 se detecta el tercer ciclo del pulso en X . Se pasa a E. Z=O . - Si X=0 fin del pulso de dos ciclos de duración . Se pasa a F . Z=1 . En D, E y F, X no puede valer 1 porque, según se dice en el enunciado, el pulso mayor es de tres ciclos y, tras finalizar un pulso, la entrada permanece a 0 un mínimo de 10 ciclos de reloj . En D, Z debe durar 1 durante dos ciclos más de reloj . Se pasa a G . Por tanto, Z=1 en el estado D y en el estado G .


208

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

En E, se pasa directamente a A y se da el único pulso de salida . Z=1 . En F : Z debe durar 1 durante un ciclo más de reloj . Se pasa a A . y se da Z=1 . El diagrama de estados/salidas de Mealy y la correspondiente tabla de estados son los siguientes :

0/1

0/1

0/1

e

0

1

A,0

B,0

D,1

C,0

0

F,1

E,0

G,1

1/0 A,1 0/1

A,1 A,1 NS, Z

Siguiendo el proceso de reducción de estados obtenemos la tabla mínima :

S COMPATIBLES PRMOMM

{4 4 4,

{A, B, C,

wwdmw Tabla de reducción

1G}

0

1

A

A,0

B,0

B

C,1

C,0

C

D,1

D,0

D

A,1

D} NS, Z Tabla de estados mínima

Problema 8.-Por una línea X se recibe, bit a bit, un número binario N, empezando por el menos significativo. a) Obtenga la tabla de estados mínima correspondiente al circuito que permite generar una única salida Z con el valor Z = 2 x N . b) Repita el apartado a) para obtener Z = 3 x N . Comience por un estado de reset. No tenga en cuenta cuándo acaba N.


DISEÑO DE CIRCUITOS SECUENCIALES

209

Solución P8. a) Sea el número binario N = . . . N3 N2 N 1 N o . Entonces, el número binario Z = 2 x N = . . . N3 N 2 N 1 N o 0, pues multiplicar en binario por 2 equivale a "poner un 0 a la derecha" . En nuestro caso, N viene por la línea X y 2 x N sale por Z . Esto es, se cumplirá : Ciclo 1 : En X está X0, por Z sale Z0 = 0 Ciclo 2 : En X está X 1 , por Z sale Z l = XO Ciclo 3 : En X está X2, por Z sale Z2 = X 1 Ciclo 4 : En X está X3 , por Z sale Z3 = X2 Ciclo j+1 : En X está Xj , por Z sale Zj = Xj _ 1 Para obtener Zj , basta conocer el valor de Xj _ 1 que sólo puede ser 0 (estado A) ó 1 (estado B) . Con ello, el diagrama y la tabla de estados son : X

0/1 Diagrama de estados

X

Estado`

0

1

RE

A,0

B,0

A

A,0

B,0

B

A,1

B,1

Estado\

0

1

A

A,0

B,0

B

A,1

13,1

NS, Z Tabla de estados mínima

NS, Z Tabla de estados

En la tabla de estados se observa que : A y RE son el mismo estado ; A y B son incompatibles . La tabla de estados mínima consta de sólo dos estados, pero el inicial debe ser A . b) En el primer ciclo (el estado presente es el de reses RE) hay que sumar N 0 + N0 + N0 ; el resultado será Z0 = 0 (y acarreo 0) si N0 = 0 y Z 0 = 1 junto con un acarreo de 1 si No = 1 . En el segundo ciclo deberemos sumar N 1 + N 1 + N 1 con el acarreo (0 o 1) anterior ; el resultado de esta suma puede ser Z 1 = 0 o Z 1 = 1 con acarreos de 0, 1 o 2 . En general, en el ciclo j-ésimo hay que sumar tres veces el bit presente en X (0 01) junto con el acarreo generado anteriormente, para lo cual dicho acarreo deberá estar "almacenado" en un estado (A si el acarreo es 0, B si es 1 y C si es 2) . La salida Z mostrará el bit de la suma, mientras que el próximo estado informará de cuál ha sido el acarreo generado . Con este razonamiento se obtiene la tabla de estado siguiente : Tabla de estados

Tabla de estados mínima

X S\

0

1

RE

A,0

B, 1

A

A,0

13,1

B

A,1

C,0

C

B,0

C, 1

NS, Z (Como antes, RE y A son el mismo estado) .

\S~ A

0

1

A,0

B, 1

B

A,1

C,0

C

B,0

C, 1

NS, Z


210

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 9.-Diseñe un circuito secuencia) síncrono con dos entradas X 1 y X2 y dos salidas Z1 y Z2 . Por las entradas se reciben bit a bit dos números de n bits, N 1 y N2 , comenzando por el bit más significativo . Las salidas deben representar lo siguiente : Z2 = mayor(N2 ,N1 ) Z1 = menor(N2 , N1 ) Obtenga la tabla de estados/salida mínima, suponiendo el siguiente comportamiento : X2 : 0 0 1 0 0 1 . . . . X1 : 0 0 1 1 0 0 . . . . Z2 : 0 0 1 1 0 0 . . . . Z1 : 001001 . . . . Nota. Obsérvese que en el ejemplo N 1 > N2 por lo que X1 sale por Z2 y X2 lo hace por Z1 . Solución P9.- El número mayor entre N 1 y N 2 es aquél por el que se recibe el primer 1 mientras que se recibe un 0 por el otro . Así, en el ejemplo del enunciado, el 4° bit de X 1 es 1 mientras que el de X 2 es 0 . A partir ¿It este momento y con independencia de los bits que se reciban, el número mayor (N I en el ejemplo) saldrá por Z2 y el menor por Z 1 . Hasta que ocurra eso (X 1 X2 =10 ó 01) por primera vez, los bits son iguales de forma que tanto por Z 1 como por Z2 sale el bit de entrada recibido . En el comportamiento dado en el enunciado, las salidas cambian en el mismo ciclo que ocurre el cambio de entrada, lo que indica que Z1,2 dependen de X1,2 y, por tanto, es una máquina de Mealy . Sea A el estado inicial . Al no haberse recibido ningún bit los números son "hasta ese momento" iguales . Las posibles entradas y la respuesta del circuito son : X 1 = X 2 : Los números continúan siendo iguales . No hay cambio de estado . Las salidas serán : Z1 = Z2 = X1 = X2 . X 1 X 2 = 10 : El número N 1 es mayor que el número N 2 , por lo que se pasará a un nuevo estado B . Las salidas serán : Z 2 = X1 Y Z 1 = X 2 . X 1 X2 = 01 : El número N 2 es mayor que el número N 1 , por lo que se pasará a un nuevo estado C . Las salidas serán : Z 2 = X2 Y Z 1 = X 1 . El estado B representa el caso en que N 1 >N2 , y por tanto, Z2 = X1 Y Z 1 = X 2 hasta el final . El próximo estado de B, es B . Lo mismo ocurre para C estado en el que N 2 > N 1 . La tabla de estado queda como sigue :

00

01

11

lo

A,00

B,10

A,11

C,10

B,00

13,10

13,11

B,01

Los estados son incompatibles : la tabla NS, Z2 , Z i

C,00

C,01

C,11

C,10

es irreducible


DISEÑO DE CIRCUITOS SECUENCIALES

211

Problema 10.- Diseñe una máquina secuencial que responda a la tabla de estados siguiente. Diséñela con biestables JK atendiendo a las siguientes asignaciones : a) Asignación 1 : A = 00, B = 01, C = 11, D = 10 b) Asignación 2: A = 00, B = 11, C = 01, D = 10

X S\

0

1

A

A,0

C,0

B

D, 1

C

A,0 A,0

D

D,0

B,1 D,0 NS, Z

Solución P10.

a) Dada la asignación y la tabla de estados, se obtiene la tabla' de transición/salida sin más que sustituir los estados por los códigos que se han asignado . De esta tabla ya se pueden obtener las ecuaciones de salida . Además, de la tabla de transición junto a la de excitación del biestable JK, se pasa a la de excitación del circuito . De esta tabla obtenemos la ecuaciones de excitación : X

J 1 =X

X 1

q1 9\ 0

A 00

00

11

B 01

00

10, 1

C 11

00

D 10

10

01,1 10

Q 1 Q2, Z

Tabla de transición/salida

q -3Q

JK

q 1 q2

0-*0 0-31 1 ->0 1 --3 1

01-1 -0

00

0 0-,0_

01

0-, -1

11

-1, -1 -0,0_

10 Tabla de excitación del biestable JK

1

K1 =q 2

1-, 1-

J2 = Xq1

1-, -1 -I,-0 -0,0_

K2 = Xq1

J 1 K 1 , J2 K2

Tabla de excitación

Z = Xq2 Ecuaciones de excitación y de salida

El circuito queda como se muestra :

1

X

2 q

K D

A

Ck 1 Por simplicidad, en las distintas tablas sólo pondremos los mintérminos de las salidas (celdas con Z= 1) .


212

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

b) Para la segunda asignación, las tablas de transición/salida y de excitación y las ecuaciones de excitación y de salida son las siguientes : X

91 \q

0

1

00

00

01

01

00

1 1, 1

11

00

10,1

10

10

10

J1 = X92

q 1 92

0

1

00

0-,0_

0-, 0-

01

0-, -1

J-1_,_0

K1 = X q2

q-*Q

JK

0 -* 0

0-

0-41

1-

1 -~ 0

-1

11

-1, -1

-0 , _1

K2 = X+q1

1 -* 1

-0

10

-0,0_

-0,0_

Z = X92

Q I Q2, Z

J2 = X91

J1 K1 , J2 K2

Problema 11 .- Obtenga una buena asignación para las siguientes tablas de estado : Tabla a :

Tabla b : 0

1

A

A, 1

D

B

A

C D

S

X 0

1

A

D, 1

B

D

B

D

B

B

D

C

C

A, 1

C

D

D

A

C NS, Z

NS, Z

Solución Pll .- Para obtener "una buena" asignación basta con aplicar las reglas de adyacencias . Estas reglas son las siguientes : 1 .- Hacer adyacentes los estados cuyos próximos estados sean iguales para cada valor de entrada . 2 .- Hacer adyacentes los estados cuyos próximos estados sean los mismos aunque en diferentes valores de entrada, siempre que esos próximos estados también se hagan adyacentes . 3 .- Hacer adyacentes los estados cuyos próximos estados sean los mismos para algún valor de entrada . 4 .- Hacer adyacentes los próximos estados de cada estado . 5 .- Hacer adyacentes los estados que tengan los mismos valores de salida . Aplicando las reglas a las tablas de estado obtenemos lo siguiente : REGLAS 1 2 3 4 5

Tabla a (A,B) -(A,C),(A,D), (B,C), (B,D),

Tabla b (A,B) (C,D) si (A,C) --

(C, D) 2x(A,D), (B,D), (C,D) (B,C) (B,D) (C,D)

2x(B,D), 2x(A,C) (B,D)


DISEÑO DE CIRCUITOS SECUENCIALES

213

Una vez aplicadas las reglas, se forma un mapa de Karnaugh en el que las variables son las variables de estado necesarias para la asignación . En este caso, en ambas tablas se necesitan dos variables de estado y l e Y 2 . En este K-mapa, asignamos a cada estado un código tratando, por prueba y error, de cumplir el máximo número posible de las reglas de adyacencia : Tabla a

Tabla b

Reglas que cumple : 1. 2. 3. 4. 5.

Reglas que cumple : 1. 2. 3. 4. 5.

1 (Todas) -- (Todas) 3 (de 5) 3 (de 4) 3 (Todas)

1 1 -4 1

(Todas) (Todas) (Todas) (Todas) (Todas)

Problema 12.- Un sistema recibe secuencialmente datos de 1 bit a través de su entrada X . Diseñe un circuito que dé salida Z=1 cuando se haya recibido X=1 durante tres o más intervalos de reloj consecutivos. Dé dos diseños alternativos : a) como autómata de Moore ; b) como autómata de Mealy. Discuta ventajas e inconvenientes de ambos diseños . Solución P12 .- Un ejemplo del comportamiento que describe el enunciado es el siguiente : X : 011001011101111110 Z : 000000000100011110 De este comportamiento se obtienen los diagramas de estado, siguiendo el modelo de Moore o el modelo de Mealy : 0

s CO

B,0

00 -

OLAM SIGNIFICADO DE CADA ESTADO

Mealy

A : no se ha recibido ningún 1 . B : se ha recibido el primer 1 . C : se ha recibido el segundo 1 . (En Máquina de Mealy, si X=1, es el tercer 1 y Z=1 . En máquina de Moore, si X=1 se pasa a un nuevo estado D .) D (exclusivo de la máquina de Moore) : se ha recibido el tercer 1 ; Z=1 Para observar las diferencias entre las máquinas de Moore y de Mealy, en la figura siguiente se muestra un diagrama de tiempo donde se observa la secuencia de estados y de salida de cada tipo de máquina para una misma secuencia de entrada .


214

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Ck X ZMoore A ZMeaJy

A

C A

A! B

A B C

A': B : A B

A' A B A

C D

B C

A 13 C D D D D

C A 1 13

C C C C

A A A

C A

Las características de cada tipo de máquina son la siguientes : Z=1 durante períodos de reloj completos . Moore : Z=1 después de detectar la llegada de 3 unos . Posee más estados que la máquina de Mealy . Mealy : Z=1 después de detectar 2 unos y siempre que X siga siendo 1 . Posee menos estados que la máquina de Moore . Se pueden presentar algunas diferencias temporales entre ambas salidas si las entradas cambian en instantes arbitrarios, como los que se muestran a continuación : Ck _ X ZMoore

A

B

C

D

ZMealy A! A

B

C

A A A

A

La máquina de Moore da salida 1 durante 1 ciclo tanto si X permanece en 1 durante poco más de 2 ciclos (siempre que X = 1 en 3 flancos activos) como si X prácticamente permanece en 1 durante 3 ciclos . La máquina de Mealy puede dar Z = 1 durante intervalos arbitrarios de tiempo, según cuándo cambia X en relación a Ck .

El resto del proceso de síntesis es el siguiente : 1) Reducción de las tablas de estado : en este caso son irreducibles . 2) Asignación de códigos : como son máquinas de 3 ó 4 estados se utiliza el método exhaustivo : ESTADOS A B C (D)

ASIGNACIONES DE COSTE DISTINTO 1 II 111 00 00 00 01 01 11 10 11 01 11 10 10

3) Obtenención de las ecuaciones mínimas de excitación y de salida : se aplica el procedimiento de diseño mínimo para funciones combinacionales . Aplicando este proceso a la solución como máquina de Moore :


215

DISEÑO DE CIRCUITOS SECUENCIALES

0

1

Z

A

A

B

0

B

A

C

0

C

A

D

0

D

A

D

1

S

filo " : 3,D

Tabla de estados

una Tabla de reducción

NS ASIGNACIÓN I X

ASIGNACIÓN III

ASIGNACIÓN II X

X

91 90

0

1

Z

91 90

0

1

Z

q1

A=0 0

00

01

0

A=0 0

00

01

0

B=0 1

00

10

0

B=01

00

11

D=1 1

00

11

1

C=11

00

10

C=1 0

00

11

0

D=1 0

00

10

Q1Q0= D1D0

0

1

Z

A=0 0

00

11

0

0

C=0 1

00

10

0

0

B=1 1

00

01

0

1

D=1 0

00

10

1

90

Q1Q0=D1D0

QIQ0=D1 D 0

Las ecuaciones de excitación y salida para cada asignación se muestran a continuación :

D I = Xq 1 +Xq0

D I = Xq 1 +Xq0 L

II :

IDO = Xq 1 + Xqo Z =

Do = Xq 1 Z =

g1g0

D I = Xq 1 +Xqo III:

Do = X (q1 G ) q0) Z =

g1g0

g1g0

La solución de menor coste es la segunda (II) y el circuito el siguiente :

D 1

0

Problema 13 .- Diseñe un chequeador de paridad para caracteres de 4 bits enviados en serie . El circuito recibirá, partiendo de un estado inicial, 4 bits en serie por una línea de entrada, X ; coincidiendo con el cuarto bit, la salida del circuito será 1, si y sólo si el número total de unos recibidos ha sido par . Tras la recepción del cuarto bit, el circuito volverá a aceptar en la entrada un nuevo carácter de 4 bits . Utilice en el diseño biestables D .


216

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P13 .- Del enunciado se puede concluir lo siguiente : 1 .- La secuencia viene en grupos de 4 bits, por lo que la máquina debe reconocer si un valor de X corresponde al primer, segundo, tercer o cuarto bit . Esto es, no hay solapamiento . 2 .- Se trata de una máquina de Mealy, ya que la salida se hace 1 "coincidiendo" con el cuarto bit . 3 .- Existe un estado inicial (R) . El estado R es aquél en que se encuentra la máquina cuando el valor presente en X es el del primer bit de la secuencia . Puesto .que debemos detectar la paridad par de la secuencia, los estados de la máquina deben guardar información del número de 1's que van, y del lugar que ocupa el bit en la secuencia . Por tanto, el diagrama de estado queda como se muestra : NÚMERO DE UNOS PAR

Orden del bit que se espera 10

IMPAR

0/0 1/1 W-

30

40

El resto del proceso de síntesis es el siguiente : 1 á- Reducción de la tabla de estados :

0

1

A

B

C

D

D

C

E

F

F

E

R,1

R

R

R,1

Ma A B

NS, Z

∎1ai-i.o"

C D

©©©VIER V Tabla de reducción Fase final : es irreducible .


DISEÑO DE CIRCUITOS SECUENCIALES

217

2 .- Asignación . Construcción de la tabla de transición/salida . REGLAS Tabla 1 (E,F) 2 (A,B) si (C,D), (C,D) si (E,F) 3 4 (A,B), 2(C,D), 2(E,F) 5 (R,A,B,C,D)

Y2 , Y¡ ,YO

0

1

A=000

010

011

B=001

011

010

D=011

111

110

C=010

110

111

E=110

100,1

100

F=111

100

100,1

000

001

Reglas de adyacencia

101

ama

®N

R=100

La asignación cumple todas las reglas menos 3 de la regla 5

Y2Y l Y o, Z Tabla de transición

3 .- Ecuaciones de excitación/salida. Se utilizan biestables D que cumplen : D ; = Y 1 . De esta forma la tabla de transición/salida coincide con la tabla de excitación . De esta : D2 = Y i Di = Y2 Do = x Y2Yo + xy2yo + xy i yo Z=

X

Y2Ytyo + Y2Yo

El diagrama de circuito se obtiene directamente de las ecuaciones de excitación y salida .

Problema 14.- Se pretende diseñar un circuito secuencia) síncrono con una entrada X y dos salidas Y, Z que cumpla la siguiente tabla de estados/salida : X 0

1

Eo

E0 ,00

13 1 ,00

El

E2,00

E 1 ,01

E2

E2,10

E3 ,10

E3

E0,10

E3 ,11

NS, Y,Z Utilizando el diagrama de bloques de la figura : a) Calcule el número de biestables tipo D que se necesitan . b) Dé el tamaño y contenido de la ROM.


218

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Y Z

Solución P14.- Es una tabla con cuatro estados, todos incompatibles, por lo que es irreducible . Se necesitan dos variables de estado . Por lo tanto, siguiendo el esquema de la figura del enunciado se necesitan dos biestables D . El tamaño de la ROM depende del número de entradas y salidas . Como entradas de dirección se tienen : X, entrada de datos, y q l y q0 variables de estado (salidas de los biestables tipo D) . Como salidas se tienen : Y y Z, salidas del circuito, y D I y D0 entradas a los biestables . Por tanto se necesita una ROM de 8x4 (8 palabras de 4 bits cada una) . Utilizando un asignamiento cualquiera, se obtiene la tabla de transición/salida y de ella el contenido de la ROM :

X ql q 0 Do D 1 Y Z X q 1 qo

0

1

E o =00

00,00

01,00

E l =01

10,00

01,01

E2= 10

10,10

11,10

E3= 11

00,10

11,11

Q 1 Qo=D 1 Do , Y Z Tabla de transición/salidas

0 0 0 0 0 1 010 011 100 1 0 1 110 111

0 0 0 0 1 1 1 1

0 1 1 0 0 0 1 1

0 0 1 1 0 0 1 1

0 0 0 0 0 1 0 1

A2A 1 Ao H 3 H2 H 1 Ho Contenido de la ROM

X > A2 H A ROM 1 1 8x4 H 2 Ao H

> Z > Y

q0

D q1

Ck Circuito final

Problema 15.- Se desean obtener 4 señales Z 1 , Z2, Z3, Z4 a partir de una señal de reloj Ck disponible en un determinado sistema . Realice el circuito correspondiente utilizando exclusivamente: 2 biestables JK, un DEC 2 :4 y 4 puertas AND. Ck Z1 Z2 Z3 Z4


DISEÑO DE CIRCUITOS SECUENCIALES

219

Solución P15 .- En el diagrama temporal observamos dos hechos : 1 .- Cada 4 ciclos de reloj se repiten las señales . De aquí que el sistema tenga 4 estados (llamémosles A, B, C y D), cuya secuencia es :

Se trata de un contador módulo 4 . 2 .- Cada salida se hace 1 durante un semiperiodo de reloj, concretamente con Ck = 1 . Así, si llamamos Z a, Zb, Zc y Z d a una señal que se hace 1 cuando estamos en el estado A, B, C y D, respectivamente, se cumplirá : Z, = Z„Ck

Z2 = Z,,Ck

z3

= Z,.Ck

Z4 - Zd Ck

En consecuencia, aplicando el proceso sistemático de diseño de circuitos secuenciales : Za Zb Z, Zd 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

Tabla de estados (es irreducible) Con Z1 , Z2 , Z3 Y Z4 tomando el valor indicado en el punto 2 .

NS Utilizando la asignación habitual en los contadores (asignar códigos consecutivos a estados consecutivos) obtenemos la siguiente tabla de transición :

q í q0\ Za Zb Zc Zd A=0 0 01 1 0 0 0 B=0 1 10 0 1 0 0 C=1 0 11 D=1 1 00

0 0 1 0 0 0 0 1

QiQo Tabla de transición/salida

q 1 qo\ A=0 0 0-, 1B=0 1 1-, -1 D=1 1 -1, -1 C=1 0 -0,1_

J O =Ko = 1 J,=K,=q0

J 1 K 1, JOKO Tabla de excitación

Ecuaciones de excitación

Las funciones Za , Z b, Z c y Zd se obtienen como las salidas de un decodificador 2 :4 con salidas activas en nivel alto, cuyas entradas son q 1 y q0 . El circuito es el siguiente :


220

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

1

1 0 K

1 K

DEC 2 :4 2 Z4

Ck

PROBLEMAS CON SOLUCIÓN RESUMIDA

Problema 16 .- Construya el diagrama de transición de estados simplificado de un autómata de Mealy con dos entradas X, Y y una salida Z que cumpla las siguientes características : a) cuando Xpasa de 1 a 0, Z=1 . b) cuando Y pasa de 1 a 0, Z=O. c) en otro caso Z no cambia de valor . X e Y no pueden valer simultáneamente 1 . De un ciclo al siguiente, sólo puede cambiar una variable de entrada, no las dos a la vez.

Solución P16.- El diagrama de estados es el siguiente : XY/Z : 00/1 10/1

1~9 01/1

0/0 01/1

SIGNIFICADO DE CADA ESTADO A : El último flanco negativo en llegar ha sido en X (Z=1) y con las entradas actuales es imposible que Y cambie de 1 a 0, porque Y=0 B : Recoge que Y ha subido : cuando vuelva a bajar, habrá cambio en Z . C : El último flanco negativo ha sido el de Y (Z=0) . Similar al estado A pero para Z -O . D : Similar a B, pero para el caso de que X suba, siendo Z=O .

Problema 17.- Desarrolle un diagrama de estados para un circuito de Moore que genere salida Z= 1, durante un ciclo de reloj, cuando a la línea de entrada X se han suministrado exactamente tres "1 " durante los tres intervalos precedentes del reloj . Si durante cuatro o más ciclos del reloj hubiese "1 ", la salida será Z = 0.


DISEÑO DE CIRCUITOS SECUENCIALES

221

Solución P17 .- El diagrama de estados es el siguiente :

SIGNIFICADO DE CADA ESTADO A : No se ha recibido ningún 1 . A,0

B : Recibido el primer 1 . C : Recibido el segundo 1 . D : Recibido el tercer 1 . E : Recibido el cuarto o más 1 .

Problema 18.- Diseñe un circuito secuencia) síncrono con una entrada de datos X, que produzca salida "1 " durante un ciclo de reloj cuando la secuencia de los tres últimos valores de la entrada sean : 111, 110 ó 000. Solución P18 .- Realizando el circuito mediante el modelo de máquina de Moore, la tabla de estados queda de la siguiente manera : SIGNIFICADO DE CADA ESTADO Estado

so

últimos 3 bits recibidos

SI

000 001

S2 S3

010 0 1 1

S4

100

S5

101

S6

110

S7

111

NS A partir de la tabla de estados se continúa el proceso de diseño normal : reducción de estados (son equivalentes S y S 5 ) ; asignación ; elección de biestable ; ecuaciones de excitación .

Problema 19.- Diseñe un autómata de Mealy que detecte la secuencia 1, 0, 0, 1, 0 ; esto es, el circuito debe tener una única entrada X y una única salida Z En los intervalos de reloj en los que X=0, la salida será Z= 1 si en los cuatro intervalos de reloj precedentes la entrada ha sido 1, 0, 0, 1 .


222

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Solución P19 .- El diagrama de estados es el siguiente : 1/0

SIGNIFICADO DE CADA ESTADO Estado A

1/0

• C

1/0

• •

Recibido 1 10 100 1001 Nada de la secuencia

Problema 20.- Diseñe un circuito secuencial síncrono que reciba una entrada X y produzca una salida Z=1 después de que haya recibido las secuencias de entrada 0, 0, 1 ó 1, 0, 0 . Comience el diseño por un estado de reset. Solución P20 .- Es una máquina de Moore y hay solapamiento en la secuencia . El diagrama de estados queda de la siguiente manera : SIGNIFICADO DE CADA ESTADO Estado R A B C

• • F

Recibido No se ha recibido nada Primer 0 de la secuencia 0 0 1 Primer 1 de la secuencia 1 0 0 Segundo 0 de la secuencia 0 0 1 Recibido 0, 0, 1 Recibido 1, 0 Recibido 1, 0, 0

A partir del diagrama de estados se continua el proceso normal de diseño .

Problema 21 .- Diseñe un autómata de Mealy con dos entradas X, Y y una salida Z cuyo funcionamiento sea el siguiente : a) si XY = 00, entonces Z = 0 . b) si XY = 11, después de que las entradas hayan sido durante dos ciclos de reloj XY= 01, entonces Z= 1 . En el resto de los casos se mantiene la salida . Nota : en cada ciclo sólo puede cambiar una variable de entrada, no las dos a la vez .


DISEÑO DE CIRCUITOS SECUENCIALES

Solución P21 .-

223

El diagrama de estados reducido queda de la siguiente manera : 11/0 00/0

SIGNIFICADO DE CADA ESTADO A:

-0/0 1-/0

B: C: D:

Estado en el que la salida es 0 y recoge secuencias de entrada distintas de 01, 01, 11 . Recoge el primer valor de la secuencia que genera Z = 1 . Recoge el segundo valor. Se alcanza tras recibirse la secuencia que genera Z = 1 .

Problema 22.- Se desea diseñar un autómata de Mealy con dos entradas (X1 ,X2) y una salida Z, que obedezca al siguiente comportamiento : 1) En ningún caso ambas entradas pueden estar a 1 simultáneamente . 2) La salida Z alcanzará el valor 1 si y sólo si aparecen dos unos consecutivos en la misma línea de entrada, pasando a dicho valor cuando se detecte el segundo 1 . Solución P22 .- El diagrama de estados queda de la siguiente manera :

00/0 SIGNIFICADO DE CADA ESTADO A:

00/0 10/1

01/1

B: C:

Estado que indica que el último valor recibido es 00. Se recibe 1 en la variable Y . Se recibe 1 en la variable X .

10/0

Problema 23.- Por una línea se envían (bit a bit) grupos de cuatro bits . Obtenga el diagrama de estados de un circuito secuencial síncrono de Mealy que produzca una salida Z = 1 cuando detecte las secuencias de entradas 1100 ó 0011 . Comience por un estado de reset. Solución P23 .- El enunciado dice que la máquina es de Mealy . El diagrama de estados queda de la siguiente manera :


224

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Orden del bit que se espera 1° 1/0 20

/0

0/0

-/0

1/0 0/1

0/0

1/0

0/0

/0

-/0 y 4° A, C, D - Estados que detectan la secuencia 0 0 1 B, E, F - Estados que detectan la secuencia 1 1 0

Problema 24 .- Reduzca las máquinas cuyas tablas son las de la figura . ¿Se trata de máquinas de Mealy o de Moore? 0

1

si

SI

S2

si

S5 S5

S3

S2

S6

S4

S2

S6

S5

S3

S7,1

S6

S3

S7,1

S7

S4

S 8 ,1

S8

S4

S8,1

S

NS, Z

NS, Z

Solución P24.-Las dos son máquinas de Mealy . Tras el proceso de reducción las tablas resultantes son :

Si S2 , S3 , S4 S5, S 6 , S7, S s NS, Z NS, Z


DISEÑO DE CIRCUITOS SECUENCIALES 225

Problema 25.- Obtenga una buena asignación para la siguiente tabla de estados . .

NS, Z Solución P25 .-La tabla no puede reducirse . Aplicando las reglas de adyacencia se obtiene : REGLAS 1 2 3

Tabla (S4,S6), ( S3,S5) -(S0,S1),(S0,S2), (S0, S3) , (SO,S4), (S0 , S5), ( SO, S6) , ( S1 , S3) ,

(S1 , S5) , (S2,S4), (S2,S6) (S1 , S2) , (S2,S3),(S1,S4), 2 x(S2 , S5) , 2x(S1,S6) (SO,S 1 , S2 , S3 , S4)

4 5

Dos asignaciones posibles para esta tabla son las siguientes :

Tabla 1

aS6 so ma ®®®

Reglas que cumple : 1 . 2 (Todas) 2. 3 . 5 (de 10) 4 . 4 (de 5) 5. 3

NS, Z Tabla 2 Y2Y 1

00

Yo 0

S4

1

S6

01

11

10 S2

So NS, Z

Si

Reglas que cumple : 1. 2 (Todas) 2. 3. 4 (de 10) 4. 4 (de 5) 5. 3


226

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Problema 26 .- a) Para la tabla de estados siguiente, determine cuál de las tres asignaciones que se dan es la que cumple mejor las reglas de adyacencias . b) Para la asignación número 1, realice el circuito utilizando biestables JK y puertas .

ESTADO

ASIGNACIONES (q1 q2)

A B C D

1

2

3

00 01 11 10

00 01 10 II

00 11 01 10

NS Solución P26 . a) Las reglas de adyacencia que debe cumplir la tabla de estado son : Reglas 1 y 2 : Regla 3 : (A,B), 2x(A,D), (B,C) . Regla 4 : 2x(A,C), 4x(A,D), (C,D), 2x(A,B), (B,C), (B,D) . Regla 5 : (A,D), (B,C) En la siguiente tabla se muestra cuántas reglas cumple cada asignación :

Asignación

Adyacencias que cumple

1 2 3

AB, AD, BC, CD AB, AC, BD, CD AC, AD, BC, BD

REGLAS QUE CUMPLE R3 4 1 3

R4 8 6 8

R5 2 2

La asignación que más reglas cumple es la número 1 . b) Con la asignación 1, siguiendo el proceso de diseño (tabla de transición, tabla de excitación, ecuaciones de excitación) las ecuaciones que se obtienen son :

J 1 = X 2 +X 1

g2

K 1 = X2 +X 1 g 2 +X 1 g 2

J2 -X 2

K2 Z

-q 2

= q2

+X 1 X 2


DISEÑO DE CIRCUITOS SECUENCIALES

227

Problema 27.- En un analizador lógico se observa el siguiente comportamiento : Ck

_

J

X 9i q2 Za Zb

Realice el circuito con biestables T y puertas NAND .

Solución P27 .- Vamos a obtener directamente la tabla de transición/salida . Como las variables de estado q 1 q2 cambian con el flanco de bajada de Ck, los biestbles serán tipo flip flop disparados por el flanco de bajada . En cada ciclo de Ck, estamos viendo el estado presente (q1 q2) y el valor actual de la entrada X : también el de las salidas Z a Zb se ven en ese mismo ciclo, mientras que el valor del próximo estado se determina viendo cuánto valen q 1 y q2 en el ciclo siguiente . Las tablas de transición y de salida quedan de la siguiente manera : X 9 i \q

0

00

10

1 11

01

11

10

11 10

01 00

01 01

91 92

0

1

00

10

00

01

01

11

11

00

10

11

10 11

Q1 Q2

ZaZb Tabla de salida

Tabla de transición

Las ecuaciones de salida y excitación son las siguientes: T, = 1

Za = Xq0+g1g2+Xq2

To = Xq 1 +Xq 2

Zn = g1g2 + g2g1


Capítulo 9 SUBSISTEMAS SECUENCIALES

Las operaciones secuenciales más comunes están en circuitos integrados con una complejidad superior a la del biestable . Así podemos encontrar contadores de n bits que incrementan o decrementan su contenido, además de otras operaciones ; registros, como elementos almacenadores de palabras de n bits ; PLD secuenciales que básicamente son PAL y PLA que incluyen algunos biestables y que permiten programar funciones secuenciales ; etc. En este Capítulo se estudiarán, fundamentalemente, los contadores y los registros, ya que la técnica de análisis y de diseño con PLD es la de circuitos secuenciales genéricos . CONTADORES Los contadores son circuitos que tienen la propiedad de incrementar su contenido (ascendentes), decrementarlo (descendentes) o ambas (reversibles) . Un contador módulo K cuenta K valores de forma cíclica, normalmente entre 0 y el K-1 (p .ej ., si es ascendente, del 0 pasa al 1, del 1 al 2, y así hasta el K-1, a partir del cual se pasa nuevamente al 0, etc) . Además, estos dispositivos pueden tener operaciones que permitan cargar un estado inicial de cuenta ,(carga o load) y restablecer el estado inicial de cuenta, ya sea el cero para contadores ascendentes (clear) o todos los bits a 1 (estado 2"-1) para los descendentes (preset) . En cuanto a las salidas, además de las que indican el estado de cuenta, se incorporan las que avisan que se ha alcanzado el estado de cuenta final : todo 1 para los ascendentes y 0 para los descendentes . Existe gran diversidad de contadores dependiendo del tipo de operaciones que realizan y del tamaño del contador . El tamaño se especifica por el módulo (p .ej . : módulo 10) o por el número de bits en caso de módulos 2" . Por ejemplo, en la siguiente figura se muestra el esquema de un contador síncrono ascendente de módulo 8 (3 bits) con las operaciones de cuenta arriba, carga, puesta a 0 e inhibición.

229


230

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Up

111 Up

Up Cl Ld

Operación TC=Terminal Count

D D D

CI

Clear

Ld

Load

n

TC

q2 q1 qo

clk

000 100 x10 xxl

TC=1 si q2 q 1 q o =111 TC=O en otros casos

Inhibición Cuenta Puesta a cero Carga dato

En la siguiente figura aparece la secuencia de salidas de un contador módulo 8 ascendente . Como se observa, el periodo de las señales de salida va duplicándose, lo que motiva que a los contadores se les denomine, también, divisores de frecuencia . clk q0 q1 q2

[cont]

1

O~©

©^.O

DISEÑO DE CONTADORES Hay dos formas de realizar contadores : 1) los de rizado (ripple-counter) o contadores asíncronos ; y 2) los síncronos . En los contadores de rizado la salida de cada biestable se utiliza como señal de reloj del siguiente . El contador tiene bajo coste, pero debido al diferente instante de tiempo en que cambia cada biestable, a veces presenta estados incorrectos transitorios .

clk En la siguiente figura se muestra una estructura alternativa, la del contador síncrono . En ella, todos los biestables tienen la misma señal de reloj por lo que no presentan estados incorrectos . L 1

clk

T

q


SUBSISTEMAS SECUENCIALES

231

Las entradas de control de los biestables, descritas con anterioridad (clear, carga o inhibición), pueden tener dos modos de operación, síncrono o asíncrono, en función de si para su ejecución esperan o no la llegada de un flanco de reloj . En la siguiente figura se representa la estructura interna de un contador síncrono ascendente de módulo 4, con operación de clear asíncrono y la respuesta temporal para una secuencia de entrada de control . En ella se observa que, inmediatamente después de que se activa clear, el contador se pone en el estado de cuenta 0, sin esperar la llegada de un flanco activo de reloj .

X

Up/Clear q 1 q0

n Q

clk

X

Operación

0 1

Puesta a cero Cuenta arriba clk

clk X [cont] En la siguiente figura se muestra la estructura de un contador de similares características que el anterior pero con un clear en modo síncrono . Como se observa en las formas de onda, el contador se pone a 0 cuando, tras estar activa la orden de borrado, recibe el flanco activo en la entrada de reloj .

To q 0

T

q1- .