Sei sulla pagina 1di 536

simplyjarod.

com
EDIG
Carpeta
Montero

Apuntes y exámenes ETSIT UPM


Si alguna vez estos
apuntes te sirvieron
de ayuda, piensa que
tus apuntes pueden
ayudar a muchas
otras personas.

Comparte tus apuntes


en simplyjarod.com
EDIG
Teoría

· \
~j

www.monteroespinosa.es Clases de EDIG Tfnos 91 5445377, 619142355


PROGRAMA DE LA ASIGNATURA EDIG

1. Codificación de la Información
Introducción Electrónica Digital. Abstracción digital (analógico vs. digital). Sistemas de
numeración. Representación números negativos. Álgebra de Boole. Axiomas. Operadores
básicos. Tabla de Verdad. Puertas Lógicas simples y complejas. Mapas de Karnaugh.

2. Dispositivos de Lógica Programable (VHDL)


Introducción a los dispositivos lógicos programables y a los lenguajes de descripción
hardware (VHDL). Estructura código VHDL. Sintaxis básica.

3. Circuitos combinacionales
Multiplexores. Interconexión de varios MUX. Implementación de funciones con MUX.
Codificadores y Decodificadores. Interconexión de varios codificadores. Comparadores.
Sumadores. Memorias no volátiles.

4. Circuitos secuenciales
Elemento biestable básico. Báscula Set-Reset. Biestables activos por nivel (latch).
Biestables activos por flanco de CLK (flip-flops): tipo-D, po J-K y tipo-T. Temporización.
Registros de almacenamiento. Contadores. Registros de desplazamiento.

5. Autómatas (1,0 crédito)


Máquinas Moore y Mealy. Diagrama de estados. Tabla de transiciones autómatas.

l. )"
'---

~--)
--------------~------------------~----------------------------------------

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355


TEMA 1: CODIFICACiÓN DE LA INFORMACiÓN

(~.
1.1 Sistemas de numeración

Los símbolos Un sistema de numeración se defme por sus símbolos básicos, llamados dígitos ó cifras, y
numéricos con los que· las formas de combinar los mismos para representar toda la gama de números que
más familiarizados
estamos en la
requerimos.
actualidad se conocen
como dígitos
Decimos que nuestra notación de los números es posicional, puesto que cada dígito de un
arábigos, ya que se número tiene un valor fijo determinado por su posición. Este valor viene dado por el dígito,
desarrollaron en la multiplicado por una potencia de la base de numeración (con su posición como
cultura árabe medieval.
Como ya sabemos, exponente, empezando por cero).
son:
Así, un número "N" se representa en base "b" como " ... d7d6dsd4d3d2d¡" donde "d¡" son los
1,2,3,4,5,6,7,8,9 Y o dígitos.

do es el bit menos significativo (LSB)


d7 es el bit más significativo (MSB)

(\ ). Los sistemas más habituales son el decimal (base 10), el binario (base 2), el octal (base 8)
y el hexadecimal (base 16) de los que se presentan los primeros valores en la siguiente
tabla:

Decimal Binario Octal Hexadecimal

O O O O
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
'-j 8 1000 10 8
l~ 9 1001 11 9
10 1010 12 A
11 1011 13 8
12 1100 14 e
13 1101 15 D
14 1110 16 E
15 1111 17 F

1.1.1 Sistemas digitales. Tamaño de palabra

Bit = "Binary Digit" Como veremos en epígrafes posteriores, los sistemas digitales trabajan con numeración
binariª, en la que a cada dígito lo llamaremos bit. Un aspecto importante de estos sistemas
Los tamaños de
palabra normalmente es que sólo pueden manejar números con una cantidad fija de dígitos n. Así, por ejemplo,
son potencias de 2. los computadores tienen un tamaño de palabra específico, que es la longitud (número de
bits) de los números binarios procesados por las instrucciones internas del computador.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.1


1.2 Conversión entre las bases más comunes

De binario a:

-+ Octal: basta con agrupar los digitos binarios de tres en tres empezando por la derecha y
sustituir cada tema por el digito octal correspondiente (ver tabla de la página anterior).
Si el número de dígitos binarios no es multiplo de tres rellenamos con ceros por la
El subíndice indica en izquierda.
qué base está el
número Ejemplo: 1011101100h 10 111 011 OOb 2731 8

-+ Hexadecimal: basta con agrupar los digitos binarios de cuatro en cuatro empezando
por la derecha y sustituir cada grupo por el digito hexadecimal correspondiente (ver
Es igual que el octal tabla de la página anterior). Si el número de dígitos binarios no es multiplo de cuatro
pero agrupando de
cuatro en cuatro
rellenamos con ceros por la izquierda.
Ejemplo: 10111011001 2 101 1101 100h

-+ Decimal: multiplicamos cada dígito binario por 2 elevado a la posición que ocupa.
Tras ello sumamos todo y sale el número en decimal
Ejemplo:
1011101100h = 1 . 210 + O . 29 + 1 . 2 8 + 1 . 27 + 1 . 26 + O . 2 5 +
+ 1 . 24 + 1 . 23 + 1 . 22 + O . 21 + 1 . 2° = 1497 10

De octal a:

-+ Binario: basta con sustituir los digitos en octal por los tres digitos equivalentes en
binario (ver tabla de la página anterior).
Ejemplo: 12348 = 001 010011 1002

-+ Hexadecimal: Primero pasamos el dígito octal a binario y después de binario a


hexadecimal (ambos procedimientos ya están explicados)
Ejemplo: 12348 = 001 0100111002 = 0010 100111002 = 29C 16

-+ Decimal: multiplicamos cada dígito octal por S elevado a la posición que ocupa. Tras
ello sumamos todo y sale el número en decimal
Ejemplo: 12342 = 1 . S3 + 2 . S2 + 3 . SI + 4 . SO = 66S 1O

De hexadecimal a:

-+ Binario: basta con sustituir los digitos en hexadecimal por los cuatro digitos
equivalentes en binario (ver tabla, de la página anterior).
Ejemplo: CODE 16 = 1100 0000 110 1 11102

-+ Octal: Primero pasamos el dígito hexadecimal a binario y después de binario a octal


(ambos procedimientos ya están explicados)
Ejemplo: CODE 16 = 11000000110111102 = 1100 000 011 011110 2 = 140336 8

-+ Decimal: multiplicamos cada dígito hexadecimal por 16 elevado a la posición que


ocupa. Tras ello sumamos todo y sale el número en decimal
Ejemplo: CODE16 = 12· 163 + O . 162 + 13 . 161 + 14 . 16° = 49374 10

( I
~-_/

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.2


De decimal a:

~ Binario: Se va dividiendo el dígito en decimal entre 2 tantas veces como sea posible
(división entera, sin decimales) y nos vamos quedando con el resto que sobra en cada
división (que siempre será O ó 1). Esos restos ordenados del último al primero forman
el número binario:

Ejemplo: 108 + 2 = 54 Y sobra O (LSB)


+2 = 27 Y sobra O
+ 2 = 13 Y sobra 1
+2= 6 y sobra 1
+2=3 y sobra O
+ 2 = 1 Y sobra 1
+2 = O Y sobra 1 (MSB)

108 10 = 11011002

~ Octal: Se va dividiendo el dígito en decimal entre 8 tantas veces como sea posible
(división entera, sin decimales) y nos vamos quedando con el resto que sobra en cada
división (que esta-rá siempre entre Oy 7). Esos restos ordenados del último al primero
forman el número octal:

Ejemplo: 108 +8 = 13 y sobra 4 (LSB)


+ 8 = 1 Y sobra 5
+ 8 = O Y sobra 1 (MSB)

108 10 = 1548

~ Hexadecimal: Se va dividiendo el dígito en decimal entre 16 tantas veces como sea


posible (división entera, sin decimales) y nos vamos quedando con el resto que sobra
en cada división (que esta-rá siempre entre Oy 15). Esos restos ordenados del último al
primero forman el número octal:

Ejemplo: 108 + 16 = 6 Y sobra 12 (LSB)


+ 16 = O Y sobra 6 (MSB)

l_)
108 10 = 6C 16

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.3


1.3 Representación de números binarios negativos
Para representar número negativos en binario existen básicamente dos sistemas,
complemento a uno y complemento a dos.

1.3.1 Complemento a uno

El bit más significativo indica el signo y el resto el módulo si el número es positivo. En


caso de ser negativo el módulo es el resultante de cambiar los "1" por "O" y viceversa.
El rango de valores que se pueden representar con n bits es - (2n- 1 - 1) :::s número :::s (2n- 1 -
Usando el 1).
complemento a 1, el "O"
se puede representar
tanto 00000000 como El problema del complemento a uno es que el cero no queda unívocamente definido.
11111111 (en este
ejemplo, trabajando Ejemplo: 0101010lz = 85 10
con 8 bits).
101010102 == -85 10

1.3.2 Complemento a dos

Igual que c?~ple~ent~ol' a un o, pero si el número es negativo se suma "1" al resultado. Es la !)


representaclOn mas u lIzada. .
Para saber qué cifra
representa un número
negativo en El rango de valores que se pueden representar con n bits es - 2n- 1 :::s número :::s (2n- 1 - 1).
complemento a 2,
basta con volver a
complementarlo a 2, y Ejemplo: 0101010lz = 85 10
obtendremos su valor 1010101lz = -85 10
absoluto.

En la tabla siguiente tienes ejemplos de representación con 4 bits.

Complemento . Complemento
Decimal
a dos a uno
-8 1000
-7 1001 1000
-6 1010 1001
-5 1011 1010 j
-4 1100 1011
Recuerda que el bit
más significativo nos da -3 1101 1100
la información relativa
al signo del número.
-2 1110 1101
-1 1111 1110
O 0000 1111 Ó 0000
1 0001 0001
2 0010 0010
3 0011 0011
4 0100 0100
5 0101 0101
6 0110 0110
7 0111 0111

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.4


\+ \..0 ( ~~'btmos. e\ r'lú'iVle\ó .e-V\ 'Yll~(O'. lO \0
- b ~fuÓ~fYlO~ 0.;, \O~ \ de... C:;~10 ~\,~vo ~'-\.o-\-o-l---'ol
'\=- ~é)J~ 'E-scs\\:.lvYlOS. ~ to e<l 'b'lno.\Lc) . \ O\C
-b ~?lD-b',-w\oS \oi..\- de-S\~I"e,; \'C6t\-~"ól' 0\0\0

~ ÚDr-n ~.eme(1.\o...V\'1I 0'5> o- 'Z.- :


~~\e.Wle(l\aIYlcr;S ~ (a.Wl\o(a..moS c.ercó )
'1\1<- 0-'\ ~?C>r- Ll.t\Cf'::> ~ L.I-iII.d.> '. \ o \0 \
\>0 (' ce"os.
~ SU.~a.VV1OS \: r-\ -\o-~-'o-l

li ~S<D 'oe CCVV>1..~\..e¡tLeYt\a ~ '- CL ~e.c.~.


\"otO\<bJ --l> ~c\ )es~ho?=6t\.-t.VO.
-'b %\0 t-e1.€;:ncS. ~ ~ óe\'¡"'a.t"\o o-. '<:se...c(~. \+ te) I

\\o\.to\ \5;.\ 'ó-e.-~l~VlC (le~\lva, 1 ~s ~ "haUo.t')


\: <;.u.. vu\o, a." - á~\
-!)
.
_ \ \'DQ : : l \U O
~ CoMp\.et'l'\et1 \o.n'tos. Cl-:z...! ~ 0\00 \
*" 0\ 0\ O

-b ~Ct-SO-WlO':::> 6 e....\oir)a, ~ó O- Óe-c..lVna\ \= \0 I


~ ~l"evYlOS ~ <Q,.~;'\ü
1.4 Códigos para números decimales
Estos sistemas se usan En este apartado estudiamos formas alternativas de representar los números decimales, a
para excitación de
f"\ dispositivos externos caballo entre el "pensamiento" de una máquina (sistema binario) y el de una persona
, . como relés o LEOs. (sistema decimal). Los más utilizados son BCD y l-de-lO.

=
BCD "Binary-coded 1.4.1 Decimal codificado en binario (BCD)
decimal"

Hasta ahora hemos supuesto que los números decimales se traducen a binario para ser
BCD no es más que el procesados por circuitos digitales. Un método alternativo es codificar los dígitos decimales
sistema decimal, con
cada dígito codificado
en forma binaria, manteniendo su notación posicional. Estos números se denominan .
en binario. números decimales codificados en binario.

La forma de conversión es muy sencilla:


Un número decimal sin signo N IO = dn_Idn_2 ...dldo se convierte a la forma BCD
La correspondencia
entre cada dígito estableciendo la correspondencia de cada dígito di a un número binario de cuatro bits B¡.
decimal y su
representación en BCD
la tienes en la tabla del Ejemplo:
final de este epígrafe
Si tenemos el número decimal N IO = 710910 , el proceso de conversión a BCD es:

N IO = 7 1 O 9 = 0111000100001001 10
n Observa que el
/ subíndice del resultado
'-' es 10, para representar
~ ~ ~~
Olll 0001 0000 1001

que, efectivamente, no
está representado en Por supuesto, la conversión de BCD a la forma decimal ordinaria se efectúa reemplazando
binario, sino en BCD. los grupos de cuatro bits por el dígito decimal equivalente.
Ejemplo:
N IO = 001110000100100100000101 = 38490510
~~~'----v--"--v-'
3 8 4 9 o 5

1.4.2 l-de-l0

Este sistema consiste simplemente en codificar cada dígito decimal como una palabra
binaria de lO bits. En esta, todos los bits están puestos a cero excepto aquel que ocupa la
posición coincidente con el valor del dígito decimal representado.
Es importante recordar
que en este sistema
contamos las Así, por ejemplo, el dígito decimal O estará representado por '1000000000', y el decimal 7,
posiciones desde la
corresponderá al '0000000100'. Todas las correspondencias entre dígitos puedes
c) izquierda, empezando
por cero.
encontrarlas en la tabla adjunta.

Dígito decimal BCD 1-de-10

O 0000 1000000000
1 0001 0100000000
Observa que no se
utilizan las 2 0010 0010000000
combinaciones
comprendidas entre 3 0011 0001000000
1010 Y 1111, inclusive.
4 0100 0000100000
5 0101 0000010000
6 0110 0000001000
7 0111 0000000100
8 1000 0000000010
9 1001 0000000001

G!

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.5


1.4.3 Ejemplo de uso de BCD: excitación de los LEDs de "displays" de 7
segmentos

1..5247
FUNCTION TABLE
Display de 7 segmentos:
INPUTS OUTPUTS
D e B A
" b e d
• r 9 a
L
L
L
L
L
L
L
L
L
L
H
H
L
H
L
H
ON
OFF
ON
ON
ON
ON
ON
ON
ON
ON
OFF
ON
ON
OFF
ON
ON
ON
OFF
ON
OFF
ON
OFF
OFF
OFF
OFF
OFF
ON
01'1
fl-;-I b

L H L L
H
OFF
ON
ON
OFF
ON
ON
OFF
ON
OFF
OFF
ON
ON
ON
ON
el le
L H L
L H" H L ON OFF ON ON ON ON ON d
L H H "¡.¡ ON ON ON OFF OFF OFF OFF
SEGMENT
H L L L ot~ ON ON ON ON ON ON
H L L H ON ON Ol~ ON OFF ON ON IDENTIFICATION
H L H L OFF OFF OFF ON ON OFF ON
H L H H OFF OFF ON ON OFF OFF ON
H H L L OFF .oN OFF OFF OFF ON ON
H H L H ON OFF OFF ON OFF ON ON
H H H l OFF OFF OFF ON ON ON ON
H H H H OFF OFF OFF OFF OFF OFF OFF

74LS247: Decodificador de BCD a 7 segmentos I


lul ilcl-:I'-1IL.'¡~'¡ :lc:lyl,-bl'-JIL.lr-I I
o 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
NUMERICAL OESIGNATIONS ANO RESULTANT OISPLAYS

(j

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355 I T-1.6


1.5 Álgebra de Boole
Es un tipo de álgebra que, basándose en la teoría de conjuntos, se aplica a sistemas
matemáticos en los que sólo existen dos elementos posibles: el Oy el 1.

De la anterior definición se deduce su posibilidad de ser aplicada al análisis y diseño de


circuitos digitales, simplemente precisando el siguiente convenio:

Este convenio Presencia de tensión = 1.


responde al nombre de Ausencia de tensión = O.
"Lógica positiva", que
es la más utilizada.

1.6 Operaciones y propiedades básicas


En el álgebra de Boole sólo existen tres operaciones: '\
• Suma. ('O(;;:') (l
\
~ \\0
-
d resu.\\q.)c e.-s ~(t, c.uando-V'o...,-e.
'5011. o ,EiC.ucUl+e
. ~ "C?,~\UI1d?f
tu'lO \ e..., re.S\.t\·
• Multiplicación. 1Ar\?) &~ a..~ ~o es ~".
• Complementación o inversión. !
(~O() (5 -:: \' -=- co 1
En la tabla se indican las forma de representación, así como sus postulados básicos. Las
operaciones del álgebra de Boole cumplen las siguiente propiedades:

o a) Conmutativa: a + b = b + a
a·b=b·a
b) Asociativa: a+b+c=a+(b+c)
a·b·c=(a·b)·c
c) Distributiva: a· (b + c) = a·b + a· c
a+(b·c) = (a+b)·(a+c)

"..i • ,
Op~ración

0+0=0 a+O=a
O+ 1 = 1 a + 1 = 1
Suma F=a+b
1+.1=1 a+a=a
a +á = 1

0,0=0 a'O=O
F = a' b 0'1=0 a'l=a
C) Multiplicación F = ab
F = a *b
1,1=1 a'a=a
a' á = O

Complementación F=á
o inversión F = Q.b

1.7 Teoremas y leyes booleanas principales


Los teoremas de álgebra de Boole son demostrables, a diferencia de los del álgebra
convencional, por el método de inducción completa. Este método consiste en comprobar
que la relación entre los elementos que el teorema defme se cumplen en todos los casos
posibles. Para poder realizar esto se emplean las llamadas tablas de verdad, que no son
otra cosa que representaciones gráficas de todos los casos que pueden darse en una relación
y de sus respectivos resultados.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.7


Para comprender mejor lo anterior, demostremos la primera ley del álgebra de Boole,
llamada ley de absorción; su expresión es la que sigue:

Su demostración se encuentra en la tabla siguiente:


a+a·b =a
n

o O 0+0·0=0 O
O 1 0+0·1=0 O
1 O 1+1·0=1 1
1 1 1+1'1=1 1

Existen infinidad de teoremas en el álgebra de Boole, tantos como puedan ser demostrados
por el método ya referido; sin embargo, hay una serie de ellos que, dada su utilidad, es
importante conocer. La tabla siguiente muestra los más importantes.
Por otra parte, siempre que se cumple una ley o teorema en el álgebra de Boole, se cumple
también su llamada forma dual; es decir, se cumple también la expresión que se obtiene
cambiando solamente las operaciones de suma por las de producto y las de producto por
las de suma. Las formas duales de las leyes y teoremas básicos también se indican en la
tabla siguiente. (\
. J

: HórriÍi~é'~~'i~j~y, ," " , , ,: ,')Y~?~~~~~~,;""", :'f~~~:I~?;:~', ...'i;rL'~} . i~~#~~~irJ~


Ley de absorción a + a.b = a a . (a + b) = a (1)

., Teorema de De Morgan (a+b+c+···)-ii·li·c···· (a·b·c····)-ii+li+E+ ... '(2)

Leyes de transposición a· b+ii' c=(a+c)' (ii+b) (a+b) . (¿Hc)=a . c+ii· b (3)


ii· li+a' b=(ii+b) . (a+O) (¿HO) : (a+b)=ii' b+a . li (4)

Leyes varias a+ii· b=a+b a' (ii+b)=a . b (5)


ii+a' b=ii+b ii· (a+b)=ii· b (6)
a· b+a ·li· c=a . b+a . c (a+b)· (a+li+c)=(a+b)' (a+c) (7)
a' b+ii' c+b . c=a' b+ii . c ~+~.~+~.~+~=~+~.~+~ W
a· b+a 'li=a (a+b)· (a+O)=a (9)
a' b+a . c=a . (b+c) (a+b) . (a+c)=a+(b . c) (10)

1.8 Formas canónicas de una función booleana


Las ecuaciones o expresiones booleanas pueden adoptar dos estructuras o formas típicas,
denominadas formas canónicas. Dichas formas son:

• Primera forma canónica - Ecuaciones con estructura minterms: Esta ecuación


está estructurada como una suma de términos en forma de producto de las
diferentes variables que intervienen en la ecuación.
Ejemplo:

IMPORTANTE: Tanto
x = a·b·c+a·b·c+a·b·c
en una estructura como
en la otra, todos los • Segunda forma canónica - Ecuación con estructura maxterms: Se dispone
términos han de como un producto de términos en forma de suma de las diferentes variables que
contener todas las
variables que
intervienen en la ecuación.
intervienen en la
ecuación.
Ejemplo:

y = (~+b+c ).( a+b+~).(~+b+~).( a+b+c)

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.8


• Tercera forma canónica - Ecuación con producto de productos: Se dispone
Esta forma canónica se
utiliza para implementar como un producto de términos en forma de producto de las diferentes variables que
una función empleando intervienen en la ecuación.
sólo puertas NANO.
Ejemplo:

z = abe· abe· abe

Esta forma canónica se • Cuarta forma canónica - Ecuación con suma de sumas: Se dispone como una
utiliza para implementar suma de términos en forma de suma de las diferentes variables que intervienen en
una función empleando
sólo puertas NOR. la ecuación.
Ejemplo:

w= (a+b+e )+( a+b+e )+( a+b+e )+( a+b+e)

1.9 Obtención de la ecuación de una función lógica partiendo de


su tabla de verdad.
Dada la tabla de verdad,que representa la respuesta binaria de una función lógica, existen

o Con el ejercicio 1 de
clase comprenderemos
mejor estos métodos.
dos métodos para obtener su ecuación en primera y segunda forma canónica,
respectivamente. Estos métodos están expresados y resumidos en la tabla siguiente, en la
que también explicamos el método para obtener a partir de estas, la tercera y la cuarta
forma canónica.

Tipo de ecuación Método de obtención Convenio a aplicar

Ecuación minterms Primera forma Obtener la suma de productos de variables o variable negada
canónica cuyas combinaciones hacen 1 la función 1 variable sin negar

Obtener el producto de las sumas de


Ecuación maxterms
Segunda forma
variables cuyas combinaciones hacen O la
o variable sin negar
canónica 1 variable negada
función

Tercera forma Negar dos veces la ecuación en la primera


canónica forma canónica

Cuarta forma Negar dos veces la ecuación en la segunda


canónica forma canónica

1.10 Simplificación de ecuaciones booleanas


Existen dos procedimientos básicos a la hora de shnplificar las ecuaciones booleanas:

• Método de simplificación algebraico: Se realiza aplicando las leyes y teoremas


del álgebra.
• Métodos tabulares y gráficos: Destacamos entre estos, el método de Karnaugh,
que estudiamos a continuación.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.9


1.10.1 Simplificación utilizando el Método de Karnaugh

Se han propuesto diversos métodos para minimizar de modo sistemático. Algunos son
numéricos, y conducen a un algoritmo que puede programarse. Aquí veremos un método
gráfico que es el más sencillo y también el más conocido (aunque prácticamente deja de
tener utilidad para formas booleanas con más de seis variables).
Una tabla de Karnaugh no es otra cosa que una presentación alternativa de la misma
información contenida en una tabla de verdad. La tabla de Karnaugh es de doble entrada, y
tiene las asignaciones colocadas de tal modo que las que corresponden a productos
canónicos adyacentes están físicamente contiguas.
En la siguiente figura pueden verse las disposiciones de las tablas de Kamaugh para los
casos de tres, cuatro y cinco variables booleanas. Cada casilla corresponde a una línea de la
tabla de verdad, y se pondrá en ella un "O" ó un "1". En la figura hemos numerado las
casillas con los números de fila correspondiente de la tabla de verdad.

z 00 01 11 10

O O 2 6 4

1 1 3 7 5

,x. 01 11 10
x.;x4 00
00 O 4 12 8

01 1 5 13 9

11 3 7 15 11
IMPORTANTE: de una
casilla a otra adyacente 10 2 6 14 10
sólo puede cambiar
una variable.
x,=1
Es por esto que, por x.;x3 00 x.;x3
ejemplo, 01 11 10 x¡xs 00 01 11 10
x:;;:.
representemos la
entrada X4 X 5 = 11 justo 00 O 4 12 8 00 16 20 28 24
debajo de la casilla con 01 17 21 29 25
01 1 5 13 9
entrada X 4X 5 = 01

11 3 7 15 11 11 19 23 31 27

10 2 6 14 10 10 18 22 30 26

Una vez rellena la tabla, pasamos a agrupar términos para obtener la forma canónica
simplificada que buscamos y después expresar finalmente la función. Según sea esta la
primera o la segunda, actuaremos de formas diferentes:

• Primera forma canónica - Simplificación por unos:


Las reglas para agrupar los "1" son las que se enuncian a continuación:

1) Cada grupo debe tener 2n elementos (o sea, 1, 2, 4, 8, etc ... ).


2) Los grupos deben ser lo más grandes posibles.
3) Los grupos siempre deben ser rectángulos o cuadrados.
4) Está permitido pasar los bordes del mapa (en vertical y horizontal).
5) Cada grupo debe tener al menos un elemento en exclusividad (que no pertenezca a
ningún otro grupo).
6) Todos los "1" deben pertenecer al menos a un grupo.
7) Hay que intentar agrupar todos los" 1" en el menor número posible de grupos.
8) No es obligatorio que estén superpuestos unos grupos con otros.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.10


Una vez agrupados todos los unos, pasamos a expresar la función buscada.

Obtendremos tantos términos como grupos de unos (términos que se sumarán entre
sí)
(---\1 Cada uno de los términos se obtiene multiplicando las variables que quedan
constantes.
Complementamos las variables que valen O.

• Segunda forma canónica - Simplificación por ceros:


Las reglas para agrupar los "O" son las que se enuncian a continuación:

1) Cada grupo debe tener 2n elementos (o sea, 1,2,4,8, etc ... ).


ObseNa que son las 2) Los grupos deben ser lo más grandes posibles.
mismas reglas que 3) Los grupos siempre deben ser rectángulos o cuadrados.
para las agrupaciones
de unos, solo que 4) Está permitido pasar los bordes del mapa (en vertical y horizontal).
referidas a los ceros. 5) Cada grupo debe tener al menos un elemento en exclusividad (que no pertenezca a
ningún otro grupo).
6) Todos los "O" deben pertenecer al menos a un grupo.
7) Hay que intentar agrupar todos los "O" en el menor número posible de grupos.
8) No es obligatorio que estén superpuestos unos grupos con otros.

Una vez agrupados todos los ceros, pasamos a expresar la función buscada.

Obtendremos tantos términos como grupos de ceros (términos que se multiplicarán


entre sí)
Cada uno de los términos se obtiene sumando las variables que quedan constantes.
Complementamos las variables que valen 1.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.11


TEMA 2: DISP. DE LÓGICA PROGRAMABLE (VHDL).

2.1 Descripción de sistemas digitales complejos


La descripción de los sistemas digitales complejos se puede realizar, tal y como se indica
en el esquema siguiente, de diferentes maneras según tres parámetros característicos inter-
relacionados entre sí:

• El tipo de jerarquía.
• La representación del sistema.
• La relación con la realización física.

• Horizontal
• Según el tipo de
jerarquía { { . De abajo hacia arriba
• Vertical
• De arriba hacia abajo

Formas de • Estructural
descripción • Según la representación
de los sistemas del sistema • Funcional o de comportamiento (~)
digitales {
• Física O geométrica
complejos

En inglés "structural
design". • Independiente'
• Según la relación con
la realizaciónfisica
{ • Dependiente
. .

A pesar de que existen, tal y como hemos visto, tantas formas de describir un circuito, para
esta asignatura sólo vamos a centrarnos en la segunda de las clasificaciones y más concre-
tamente, sólo en las descripciones estructural y funcional.

2.1.1 Formas de descripción según la representación del sistema

2.1.1.1 Descripción estructural

La descripción estructural consiste en especificar la totalidad de los elementos que compo- )


nen el sistema digital y las interconexiones entre ellos. Inicialmente se realizó representan-
do los elementos mediante símbolos e interconectándolos para dar lugar a un esquema.

Las dificultades que presenta la descripción del esquema de un sistema digital complejo
mediante transistores o incluso mediante puertas lógicas hizo que a los programas de dise-
Estas bibliotecas con-
ño de esquemas se les dotase de bibliotecas (en inglés "libraries").
tienen componentes o
módulos denominados La edición de esquemas fue, hasta la década de 1980, la única forma de realizar la descrip-
macros que pueden ser
de dos tipos: Macros ción estructural asistida por computador de los sistemas digitales. Pero la elevación de su
hardware ("hard ma- complejidad propició el desarrollo de lenguajes orientados a la descripción de sistemas
cros') y Macros soft- digitales, que reciben el nombre de BDL, uno de los cuales (VHDL) estudiaremos en apar-
ware ("soft macros").
tados posteriores.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.1


2.1.1.2 Descripción funcional o de comportamiento

La descripción funcional consiste en especificar el funcionamiento del sistema digital en


lugar de detallar los elementos que lo forman.

Los formatos habituales para describir el funcionamiento de los sistemas digitales sencillos
son las tablas de verdad, las ecuaciones lógicas y los grafos de estado. Para sistemas
más complejos estos formatos habituales son el flujo de datos y los algoritmos de compor-
tamiento.

Para potenciar esta forma de descripción fue necesario desarrollar lenguajes de descripción
como el que estudiamos a continuación.

2.2 Introducción a los lenguajes de descripción


Como se ha dicho, los fabricantes de circuitos integrados iniciaron durante la década de
1970 el desarrollo de lenguajes que permitiesen realizar la descripción estructural y funcio-
nal de los sistemas digitales complejos. Estos lenguajes, que reciben el nombre genérico de
=
HDL "Hardware
Descriptíon Language". HDL, evolucionaron siguiendo dos caminos paralelos:

o Ejemplos de lenguajes
HDL no estructurados
son ABEL, CUPL y
PALASM.
• Algunos fabricantes de circuitos digitales configurables ó de equipos de instrumenta-
ción electrónica desarrollaron lenguajes HDL sencillos, denominados no estructura-
dos, ya que están orientados a la realización de un único circuito o módulo por fichero.

• Los fabricantes de circuitos integrado a medida desarrollaron lenguajes HDL comple-


jos, denominados estructurados porque permiten defmir submódulos y enlazarlos
Ejemplos de lenguajes jerárquicamente en un único fichero.
HDL estructurados son
RTLyVHDL. Estos lenguajes se caracterizan además por el hecho de que las herramientas de CAD
asociadas con ellos permiten utilizar un fichero HDL como nivel superior de lajerarqu-
ía, lo que propicia la creación de bibliotecas de circuitos y operadores frecuentemente
utilizados (puertas lógicas, bloques funcionales, operadores aritméticos ... ).

2.3 Lenguaje VHDL


2.3.1 Introducción
VHSIC - "Very High
Speed Integrated Cir- VlIDL es un lenguaje de descripción de sistemas digitales que fue desarrollado en el marco
cuits". del programa VHSIC del Departamento de Defensa de los Estados Unidos.
C) VHDL - "VHSIC Hard- Se trata de un lenguaje complejo y estructurado que permite la descripción de cualquier
ware Description Lan- circuito combinacional o secuencial. Por ser un lenguaje universal, permite la implemen-
guaje".
tación posterior del circuito descrito en cualquier tipo de circuito integrado disponible en la
actualidad, como los circuitos digitales configurables (pLDs y FPGAs). Actualmente, to-
das las herramientas de CAD para el diseño con PLDs y FPGAs incluyen una versión del
VHDL.

Además, cabe destacar que el lenguaje VHDL permite la descripción de un circuito de dis-
tintas formas, incluyendo las descripciones Estructural y Funcional, descritas en apartados
anteriores.
Cabe resaltar que
VHDL es independiente Para realizar la descripción de un circuito o sistema digital en VHDL, debe incluirse ésta en
de la tecnología em-
pleada. un fichero de texto, que posteriormente será compilado y sintetizado, obteniendo el código
necesario para programar el circuito configurable elegido.

En un fichero escrito en VHDL se puede incluir la descripción de un único circuito o blo-


En esto radica que se que funcional o la de varios, cuyas interconexiones se defmirán a su vez en el mismo fiche-
diga que VHDL es un
lenguaje estructurado. ro o en otro distinto.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.2


2.3.2 Sintaxis del fichero VHDL

A continuación se describe la sintaxis que debe presentar cualquier fichero fuente de


VHDL. El fichero debe constar de las siguientes secciones, que se muestran en el ejemplo
de la tabla siguiente (en negrita): n
Sintaxis básica del fichero VHDL

- Cabecera library ieee¡


use ieee.std_logic_1164.all¡
use ieee.std_logic_arith.all¡
use ieee.std_logic_unsigned.all¡

- Declaraciones entity BIESTABLED is


port
En este fichero se (
describe un biestable
-- Entradas
de tipo D activado por
flancos ascendentes. reloj : in std_logic¡
dato : in std_logic¡
-- Salidas
salida_º : out std_logic
) ;
end BIESTABLED

- Descripción lógica archi tecture ej emplo of BIESTABLED is


begin
process
begin
wai t until reloj' event and reloj '1' ¡
salida_º <= dato¡
end process¡
end ejemplo¡

- Fin del fichero

Si bien en sucesivos apartados de describen con más detalle cada una de las secciones del
fichero, vamos a comentar algunas generalidades:

• Cada instrucción debe terminar generalmente con punto y coma, pero no cada línea,
puesto que algunas instrucciones ocupan varias líneas.
• Los comentarios, que deben ir precedidos de dos guiones(--), deben situarse al fmal de
la línea o bien Qcupar toda una línea

2.3.3 Bibliotecas y paquetes

Una biblioteca ("library") es la agrupación de un conjunto de componentes y elementos


descritos en VHDL. Las bibliotecas están formadas por paquetes ("package") que contie-
nen a su vez definiciones de tipos de datos, funciones, procedimientos, componentes (cir-
cuitos), etc, descritos en VHDL.

Existen dos tipos de bibliotecas:

• Predefinidas: suelen venir incorporadas en las herramientas de CAD para diseño de


circuitos con VHDL.
En estos apuntes no
desarrollaremos la • Definidas por el usuario: éste puede incluir en ellas los circuitos que vaya a utilizar
definición de bibliotecas habitualmente en sus diseños.
por el usuario

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.3


En los ficheros VHDL de descripción de circuitos, es habitual incluir en su cabecera la
utilización de bibliotecas y paquetes, que permiten utilizar en todo el fichero las defmicio-
nes que incluyen.

La sintaxis para el uso de bibliotecas y paquetes es:

LIBRARY nombre_biblioteca;
USE nombre_biblioteca. nombre_paquete. elemento_paquete

Aquí se especifica el Ejemplo:


uso de todos los com-
ponentes del paquete
"std_logic_1164 LIBRARY IEEE;
2 de la biblioteca "IE- USE IEEE.std_logic_1164.all
EE", Y el uso del com-
ponente "dff' del pa- LIBRARY mi biblioteca;
quete "registros" de la USE mi_biblioteca.registros.dff
biblioteca
"mLbiblioteca".
Algunos paquetes típicos, disponibles en la biblioteca IEEE, existente en la mayoría de las
herraimentas CAD, son: std_logic_1164. vhd (estándar), stdjogic_arith. vhd (aritmética),
std_logic_unsigned. vhd (aritmética sin signo), std_logic_components. vhd. ..

o 2.3.4 Entidad

Una entidad ("entity") en VHDL consiste en la defmición del nombre del circuito y de sus
señales de entrada y salida (puertos), indicando el tipo de cada una de ellas.

Para cada circuito que


La sintaxis es la siguiente
se utilice en VHDL, es
necesario definir un
bloque entidad. ENTITY nombre circuito is
PORT (nombre_entradas: IN tipo_entradas;
nombre salidas: OUT tipo_salidas);
Más adelante explica-
END nombre_circuito;
remos los tipos de
datos de VHDL.
Ejemplo: Esos puertos pueden se de los siguientes
tipos:
ENTITY sumador total is IN -7 entrada
PORT (a, b, cin: IN bit; OUT -7 salida (que no se puede leer
En este ejemplo se sum, cout: OUT bit); desde el propio componente).
especifica la entidad END sumador_total; BUFFER -7 salida (que se puede leer
correspondiente a un desde dentro)
circuito sumador total
de dos números de un INOUT -7 salida ó entrada
bit.
2.3.5 Arquitectura
En la arquitectura Una arquitectura ("architecture") en VHDL es la definición del funcionamiento de un cir-
daremos la Descrip-
ción del circuito, en cuito, de cualquiera de las formas permitidas en VHDL, descritas ya anteriormente.
cualquiera de las
formas que hemos
visto del circuito.
Una arquitectura siempre debe asociarse con una entidad, aunque una entidad puede tener
varias arquitecturas, es decir, varias formas de realización o descripción. Cuando poste-
rionnente se utilice el circuito será necesario indicar cuál es la arquitectura que se utilizará.

Cada circuito en VHDL debe incluir una declaración de entidad y al menos una declaración
de arquitectura.
El conjunto entidad -
arquitectura es la uni-
dad mínima de diseño. Un mismo fichero puede contener la declaración de muchos circuitos, lo que permite dise-
ñar un sistema digital complejo mediante un solo fichero VHDL, aunque también se pueda
utilizar un fichero distinto para cada circuito. Esto lo convierte en un lenguaje estructurado,
que permite realizar fácilmente la descripción jerárquica de un sistema digital.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377,619142355 T-2.4


La sintaxis para la descripción de una arquitectura es la siguiente:

ARCHITECTURE nombre_arquitectura OF nombre entidad IS


-- Zona de declaraciones
BEGIN
-- Descripción lógica del circuito [cuerpo("body")]
o
END nombre_arquitectura

Ejemplo:

ARCH1TECTURE comportamiento OF sumador total 1S


Aquí se especifica una S1GNAL auxiliar: bit vector (1 DOWNTO O);
1-
posible arquitectura
correspondiente al
BEG1N
auxiliar <= a+b+cin; I-\s8 \"SB
+
circuito sumador total
de dos números de 1 sum <= auxiliar(O)
bit, cuya entidad se ha cout <= auxiliar(l)
Merecen especial mención los Enumerados,
definido en el apartado END comportamiento
anterior. forma con la que podemos defmir nuestros pro-
pios tipos de datos. La sintaxis para hacerlo es:
2.3.6 Descripción lógica
TYPE nombre tipo IS (lista de elementos)
2.3.6.1 Tipos de datos
Los tipos de datos son
las diferentes represen- Como en otros lenguajes, podríamos hacer una clasificación muy amplia de los tipos d~.
taciones de información datos existentes en VHDL. No obstante, sólo diremos que los tipos que posteriormente
que vamos a manejar vamos a ver se pueden catalogar en: Enumerados (conjunto de literales separados por co-
con circuitos lógicos.
mas), Numéricos (incluye los tipos natural, entero, real...) y Compuestos (conjuntos
homogéneos o heterogéneos de elementos.
Obviando esta clasificación, podemos decir que los tipos de datos más importantes para
la descripción de circuitos son:

• Bi t Puede tomar los valores 'O' y '1'.


• Bi t vector Conjunto de señales (o variables) de tipo bit.
Un bit_vector se pue-
de entender como un • Std_logic Puede tomar los valores:
número binario de
varios bits.
-'O' ........ 0 fuerte.
-'1' ........ 1 fuerte.
'X' ....... desconocido fuerte. ~ i~~e('
'Z' ....... alta impedancia. ~ un~~~ne.Ó
No se debe confundir el '-' ....... .indiferente.
símbolo utilizado para ....'D' ....... no inicializado.
un valor desconocido
fuerte ("X") con el 'L' ....... 0 débil.
símbolo de la indirefen- 'H' ....... 1 débil.
cia ("-").
'w' ...... desconocido débil
• Std_logic_vector Conjunto de señales (o variables) de tipo std_logic.

2.3.6.2 Tipos de objetos La sintaxis para declarar


Los tipos de objetos se Constantes: mantienen siempre el mismo valor. señales es:
refieren al tratamiento
que va a tener la infor- Ejemplo: CONSTANT ciclos: integer:=3; SIGNAL nombre: tipo;
mación manejada.
Variables: se puede cambiar su valor.
El uso de variables está
restringido a las estruc- Ejemplo: VARIABLE registro:
turas secuenciales
(dentro de procesos y Señales: su valor puede cambiar a lo largo del tiempo ivalen a una conexión física,
subprogramas). Sin
embargo, el uso de
por lo que es el tipo de datos más utilizado para la ripción de circuitos
señales NO está res-
tringido.
Ejemplo: SIGNAL entrada: bit; '1
"~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.5


2.3.6.3 Notación

• 2,8, 10, 16 ............... binario, octal, decimal o hexadecimal, respectivamente.


IMPORTANTE: los
(\ espacios ó caracteres La base debe preceder al valor, dispuesto entre caracteres #, para tipos numéricos.
de subrayado u_" no
son tenidos en cuenta y Ejemplo: 2#1100 0010#
sólo sirven para au-
mentar la legibilidad del
número.
• B, X, O ..................... binario, hexadecimal u octal, respectivamente.
Este símbolo debe preceder al valor de tipos "bit vector" o "bit string literal s" (literales
de cadenas de bits).
Por defecto, la base es binaria.
Ejemplo: X"2E"

2.3.6.4 Operadores

Operadores Lógicos Operadores aritméticos


and función Y lógica + suma aritmética
or función O lógica - resta ritmética (dos operandos)
f~
xor función O-exclusiva - signo negativo (un operando)
\. / xnor función O-exclusiva negada * multiplicación
not negación / división
nand función Y lógica negada mod módulo (resto de la división entera)
nor función O lógica negada ** exponenciación
sll desplazamiento lógico a izquierda sla desplazamiento aritmético a izda.
srl desplazamiento lógico a derecha sra desplazamiento aritmético a dcha.
& concatenación
La concatenación con
& permite unir varios
operandos del mismo Operadores de asignación Operadores de relación
tipo
.= - asignación de valores a constan- €') igual COY>'\. pcu-o.- t~\Aa.\ Óo-d
tes y variables.
/= distinto
- asignación de valor inicial a se-
ñales < menor que
t=d asignación a señales > mayor que
G menor o igual que
>= mayor o igual que

\~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-2.6


Vamos a distinguir
entre dos tipos de 2.3.6.5 Sentencias concurrentes
sentencias de descrip-
ción: las concurrentes y Las sentencias concurrentes son aquellas que se ejecutan de forma simultánea a otras sen-
las secuenciales.
tenciasconcurrentes, independientemente del orden en que estén escritas en el fichero
Las sentencias con- VHDL. Se puede decir que las sentencias concurrentes modelan un comportamiento com-
currentes son las que
distinguen al VHDL de
binacional.
los lenguajes de pro-
gramación y son las a) Process
que permiten modelar
el comportamiento real
de los circuitos. Los procesos siempre se ejecutan una vez durante la inicialización, pero posteriormente
sólo se ejecutan cuando se produce un "evento" (cambio) en alguna de las señales indica-
MUY IMPORTANTE:
los procesos se utilizan das en el proceso.
para modelar el com-
portamiento de cual-
quier circuito ante el
Existen dos formas de indicar las señales cuyos eventos producen la activación de un pro-
cambio en señales de ceso.
entrada, cuando este
comportamiento requie-
re una reacción se- Mediante una lista de "sensibilidad", que enumera entre paréntesis y separados por
cuencial. Esto es, comas, todas las señales cuyos eventos deben activar el proceso.
aunque se trata de un
bloque que en conjunto
funciona de forma La sintaxis de esta forma es:
combinacional (su
relación con otros
procesos no es se- PROCESS (lista de señales)
cuencial, e incluso
BEGIN
puede ser simultáneo
con otros), un proceso Sentencias secuenciales;
está compuesto por END PROCESS
sentencias secuencia-
les, que sí dependen
del orden de aparición.
Es por esto que los
Ejemplo:
procesos sirven para
describir circu itos PROCESS (a,b)
secuenciales. BEGIN
Cuando necesitemos
sentencias secuencia-
Salida <= a AND b;
les, tendrán que ir END PROCESS
dentro de un proceso.

En el ejemplo se espe- Mediante una sentencia ''wait'', que obliga al proceso a esperar a que se cumpla una
cifica un proceso que determinada condición para activarse. La condición puede ser de tipo booleano, un
describe una puerta
lógica AND de dos evento, o una condición temporal.
entradas.
La sintaxis de esta forma es: ,
\

")
PROCESS
BEGIN
WAIT ON señal; --o
Importante: sólo usa-
WAIT UNTIL expresión; --o
mos uno de los tipos de WAIT FOR expresión temporal;
sentencia WAIT aquí Sentencias secuenciales;
presentadas (por eso END PROCESS
comentamos con --o el
final de esas senten-
cias).
Ejemplo:

PROCESS
BEGIN
Espera flanco ascendente de reloj
WAIT UNTIL reloj'event and reloj = '1';
Aquí se especifica un Salida <= entrada;
proceso que describe
un biestable de tipo D
END PROCESS
activado por flancos.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.7


b) With ... select
Esta sentencia concu-
rrente es análoga a la
sentencia secuencial Se utiliza nonnalmente para las expresiones en las que intervienen varias señales. Se deben
condicional case, que cubrir todos los posibles valores de la expresión, de fonna excluyente. .
explicaremos más
adelante. 1I).SO'\o ~élGlV'o. e.V\ ~U."",ÓOVl ~~ ~C)(" '"ó·e LLV\.U
La sintaxis es la siguiente: Q..\C.prQ;;,.~n ~ \ _ \
MUY IMPORTANTE: .$'10 <G\~\{e. ~ va,,\,orf5 ~ u..Vla. ger'la...\
esta sentencia sólo se
utiliza para describir WITH jexpresiónLsELECT o va.rl&.
comportamientos com- señal <= nuevo valor WHEN valor expresión
binacionales. ¡,,-...~

UNAFFECTED WHEN OTHERS;

Ejemplo: Observa que se trata de una


sentencia de asignación, sólo,
Aquí se especifica el WITH operandos SELECT ~(\m{\ Wh"n "1<::,,
comportamiento de un resultado <= "100" WHEN "00"
circuito combinacional "010" WHEN "01
cuya salida es una
combinación de 3 bits
"000" WHEN OTHERS;
(resultado) y cuya
entrada es un vector de c) When ... else
2 bits (operandos)

Esta sentencia pennite la asignación condicional de valores a señales. Se utiliza nonnal-


( \ Esta es otra sentencia
mente para las condiciones en las que intervienen varias señales.'
" ) concurrente análoga a
- la sentencia secuencial La sintaxis es la siguiente:
condicional
1f...Then ... Else
Señal <= nuevo_valor_l WHEN expresión_l ELSE
MUY IMPORTANTE: nuevo valor 2 WHEN expres~ón_2 ELSE
esta sentencia sólo se ELSE
utiliza para describir
UNAFFECTED;
comportamientos com- t'l. ',,-
binacionales. a ~~ \)cZ.~ \L~.SK..~cc<cn <;:..Q. "'-o..c.Q.. -,e.V\ ~\..lYlCl o YJ
")e.. l.1f\O. ..Q....l( ~ lCIiÍ ~\..ea.irJO,. COr7l.~· ~
Ejemplo: ~ So\o sic-~ ~I"'c. a.S~'aVlal"" 'Ve-\.CXi?> a..~t.t.\.~ r5I \lo...f'I.s\o\.es..
Resultado <= "100" WHEN (operandos "00") ELSE
"010" WHEN (operandos = "01") ELSE
Aquí se especifica el "000"
comportamiento del
mismo circuito combi-
nacional anterior. 2.3.6.6 Sentencias secuenciales

Las sentencias secuenciales son aquellas que se ejecutan de fonna secuencial, es decir, en
Las sentencias se- el orden en que se han escrito en el fichero VHDL.
. cuenciales se compor-
(-- ') tan como las de cual- Las sentencias secuenciales sólo pueden aparecer dentro de procesos ("process") y subpro-
~ quier lenguaje de pro-
gramación. gramas (funciones y procedimientos).

a) If...then ... else l ~~ ~ '\~ .-' ~ ,~.. .;J.-;;¿ (1.,o--\b.")


Se utiliza generalmente para aquellas condiciones de transición que dependen de una sola
Esta sentencia secuen-
cial es análoga a la expresión o, a lo sumo, dos. Las expresiones no tienen por qué ser excluyentes, pero si al
sentencia concurrente evaluar una, ésta es verdadera, las demás no se comprueban.
when ... else • \ • '" r A.

La sintaxis es la siguiente: "'lA..~\.Qcc. \0\1 ~ ~ce en.. ~CJ.V1C(&]


'be... LLn ~ eJc~'.Qs·\"O~/boo~OtVIa..
MUY IMPORTANTE:
esta sentencia sólo se
IF expresión_l THEN
utiliza para describir COW\ ~~Q \0.. .
comportamientos se- Sentencias secuenciales;
cuenciales. ELSIF expresión_2 THEN ~ \bóe...mCl? ~CLc..a.\ m~ ~ LV'lc..
Sentencias secuenciales; ill'''I~\e oS..~VK)-C~{)~.
ELSE
Sentencias secuenciales;
END IF

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 ,619142355 T-2.8


Ejemplo:
IF RESET = '1' THEN
Ctr <= "0000";
Aquí se especifica el
comportamiento de un ELSIF (c1k'EVENT AND clk '1') THEN
contador ascendente IF LOAD = '1' THEN
con carga en paralelo y Ctr <= entrada;
señal de puesta en ELSE
estado inicial.
Ctr <= Ctr + 1;
END IF
END IF

b) Case...when
Esta sentencia secuen-
cial es análoga a la Se utiliza generalmente para las expresiones en las que intervienen varias variables o seña-
sentencia concurrente les y debe cubrir todos los posibles valores de la expresión, de forma excluyente.
with ...select

MUY IMPORTANTE: La sintaxis es la siguiente:


esta sentencia sólo se
utiliza para describir
comportamientos se- CASE \e~_resión S
cuenciales.
WHENlvalor expresiónllvalor expresión21 '" -»
Sentencias secuenciales;

El símbolo 1 representa WHEN OTHERS => NULL;


la función "o bien".
END CASE;

Ejemplo: • \o.~C::~h ~ 1.0-ce 5.0\0 Q...V\

CASE seleccion IS ~(..UI\C¿;{l óe. Una. Vc:L("' 'la\ol.e o seY>a.\ .


WHEN "0000"1"0001" =>
y <= 'O'; • ~~ ~(" mu.c\,¡o '/Mas ~
WHEN "0010"1"0011" => ~\. s\m\)\e. O-..'St.cy'lo-c.~n .
Y <= '1';
WHEN OTHERS => y <= 'O';
END CASE;

e) For

Permite repetir la ejecución de las sentencias incluidas en el bucle mientras el índice del
Desde aquí comenza-
mos las sentencias de
bucle se encuentre en el rango predefinido.
bucle.
La sintaxis es la siguiente:

FOR i IN rango_índice LOOP


Sentencias secuenciales;
END LOOP;

Ejemplo:
Bit_paridad_par <= 'O';
Aquí se especifica un
FOR i IN O TO 15 LOOP
bucle que calcula el bit IF x(i)='l' THEN
de paridad par de una Bit_paridad_par <= NOT bit_paridad_par;
combinación x(i) de 16 END IF;
bits.
END LOOP;

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355 I T-2.9


d) While

Pennite repetir la ejecución de las sentencias incluidas en el bucle mientras se cumpla la


condición defmida .
.. \
La sintaxis es la siguiente:

WHILE expresion LOOP


Sentencias secuenciales;
END LOOP;

Ejemplo: 1:: ")\G\~(\\o)e


producto <=~
WHILE (q~ LOOP
Aquí se especifica un producto <= producto + p;
bucle que multiplica q <= q - 1;
dos números "p" y "q" END LOOP;
mediante el método de
Isumas sucesivas.

C)

,---.-j 2.3.7 Ejemplos de circuitos combinacionales


----------------~------~--~-----------------------------------------------------------

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.10


2.3.7.1 Decodificador 3 a 8 74xx138

1 AO YO 15
2 A1 Y1 14
3 A2 Y2 13
Y3 12.
E1 Y4 11
Y5 ;0
Y6 9
Y7 7
MNA370

lHPUTS Ot1TPUTS
t, Et q Por, A, Ao y. Y, y~ Vi! y. Y, 'i't Y1
H X X X )( X H H H H H H H H
X H X X X X H H H H H H H ti
X X L X X Jo; H H H H H H H ti
L L H L L l. i.. H H ti: H H H H
L
L
L
L
L
L.
L
L
ti
ti
ti
H
H
L
H
L
L
H
H
L
l.
l.
L
H
H
H
H
H
L
H
Ji
Ji
H
l
H
H
ti
ti
L
H
ti
ti
ti
L
H
H
H
H
H
ti
H
H
H
H
H
ti
Cj
L L H ti L H H H H H H L H ti
L L H l H H H H H ti H H l H
L L Ji ti H H H H H H ti H ti L

library IEEE;
use IEEE.std-'ogic_1164.all;

entity V74x138 is
port (G1, G2A_L, G2B_L: in STD_LOGIC; -- enable inputs
A: in STD_LOGIC_VECTOR (2 downto O); -- select inputs
Y_L: out STD_LOGIC_VECTOR (O to 7)); -- decoded outputs
end V74x138;

architecture V74x138_a of V74x138 is


signal Y_LJ STD_LOGIC_VECTOR (O to 7);
begin
with A select Y_LJ <=
~QCO).:·l~~C~Or. '"?:.a.Sl cpV\
"01111111" when "000",
"10111111"when "001", ~~os.. a.c\\VdS. a.. ~Q..'p / ",,\te.\.
"11011111"when "010",
"11101111" when "011", Col' Q.~\fdcsa..S be.. ~~ eVta..\o\e ':
"11110111" when "100", .se. a...<;;t~o.. 4 ~~o.. o... Y_ L
"11111011"when "101",
"111111 Di" when "110"
cü..ll..Y\\o se
cump\o..: (,t.\.¿'Zl\_\. -b.ZB_\.::.\
"11111110"when "111": ~~ V\e,se. c.'-\fl\~le( ~}_o... q.a...\td~
"11111111" when others; se.CLS\~V'la.. \\ \1 (/ \1'.
Y_L <= Y LJ when (G1 and not G2A_L and not G2B_L)='1' else
"11111111 ";
end V74x138_a;

2.3.7.2 Multiplexor de 4 entradas de 8 bits

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-2.11


Iibrary IEEE;
use IEEE.stdJogic_1164.all;
./-----,'
!
entity mux4in8b is
port (
S: in STD_LOGIC_VEeTOR (1 downto O); -- Select inputs, 0-3 ==> A-D
A, B, e, D: in STD_LOGle_VEeTOR (1 to 8); -- Data bus input
Y: out STD_LOGIC_VEeTOR (1 to 8) -- Data bus output
);
end mux4in8b;

architecture mux4in8b of mux4in8b is


begin
with S select Y <=
B~I
. CO
~ 'Y .
Awhen "00",
B when "01",
C when "10",
D when "11",
(others => 'U') when others; -- this creates an 8-bit vector of 'U'
enamux4in8b; l. \ k .. \ ."-
~ t!.-i/\ ~o c..a...:;o ~net'\'tos ~\.GO..
o- no'lrt i-¿(Gt\i~a.óc,

2.3.7.3 Multiplexor especializado 4 entradas de 3 bits

Iibrary IEEE;
use IEEE.stdJogic_1164.all;

entity mux4in3b is
port (
S: in STD_LOGle_VEeTOR (2 downto O); -- Select inputs , 0-7 ==> ABAeADAB
A, B, e, D: in STD_LOGle_VEeTOR (1 to 18); -- Data bus inputs
Y: out STD_LOGle_VEeTOR (1 to 18) -- Data bus output
);
end mux4in3b;
Sl SI '50 Y
architecture mux4in3p of mux4in3b is 6 o G A..
begin 6 o \ Js
process(S, A, B, e, D) 61 o A
\fari¡¡ble i' II\ITEGERr -D... \ \ e
begin
case S is
when "000" I "010" I "100" I "110" => Y <= A;
,
G\ () o
ó
\ t 'O
l ~
A

A
when "001" I "111" => Y <= B; Ü I ..!S
when "011" => Y <= e;
when "101" => Y <= D;
when others => Y <= (others => 'U'); -- 18-bit vector of 'U'
end case;
end process;
end mux4in3p;

2.3.7.4 Comparador de 8 bits

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355


I T-2.12
Iibrary IEEE;
use IEEE.stdJogic_1164.all;

entity vcompare is
port (
(J
A, B: in STD_LOGIC_VECTOR (7 downto D);
EQ, NE, GT, GE, LT, LE: out STD_LOGIC
);
end vcompare;

architecture vcompare_arch of vcompare is


begin
process (A, B)
begin
EQ <= 'D'; NE <= 'D'; GT <= 'D'; GE <= 'D'; LT <= 'O'; LE <= 'O';
if A = B then EQ <= '1'; end if;
if A 1= B then NE <= '1 '; end if;
if A > B then GT <= '1'; end if;
if A >= B then GE <= '1'; end if;
if A < B then LT <= '1'; end if;
if A <= B then LE <= '1 '; end if;
end process;
end vcompare_arch

2.3.7.5 Comparador de 8 bits (alternativo)

library IEEE;
use IEEE.stdJogic_1164.all;
use IEEE.stdJogic_unsigned.all;

entity camp8 is
part ( A, B: in STD_LOGIC_VECTOR (7 downto D);
EQ, GT: out STD_LOGIC);
end comp8;

architecture camp8_arch of comp8 is


begin
EQ <= '1' when A = B else 'O';
GT <= '1' when A > B el se 'O';
end comp8_arch;

2..3.7.6 Barrel shifter de.16 bits con desplazamiento circular a la izquierda \.,-)

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.13


library IEEE;
use IEEE.std-'ogic_1164.all;

entitY rol16 is
port (
DIN: in STD_LOGIC_VECTOR(15 downto O); -- Data inputs
S: in STD_LOGIC_VECTOR (3 downto O); -- Shift amount, 0-15
DOUT: out STD_LOGIC_VECTOR(15 downto O) -- Data bus output
);
end ro116;

architecture rol16_arch of rol16 is


begin
process(DIN, S)
variable X, Y, Z: STD_LOGIC_VECTOR(15 downto O);
begin
if S(0)='1' then X:= DIN(14 downto O) & DIN(15); else X:= DIN; end if;
if S(1)='1' then Y:= X(13 downto O) & X(15 downto 14); else Y:= X; end if;
if S(2)='1' then Z:= Y(11 downto O) & Y(15 downto 12); else Z:= Y; end if;
if S(3)='1' then DOUT <= Z(7 downto O) & Z(15 dbwnto 8); else DOUT <= Z; end if;
end process;
end roI16_arch;

2.3.8 Ejemplos de circuitos secuenciales

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.14


2.3.8.1 Báscula R-S

library IEEE;
use IEEE.stdJogic_1164.all;

entity Vsrlatch is
n
port (S, R: in STD_LOGIC;
Q, QN : buffer STD_LOGIC );
end Vsrlatch;

architecture Vsrlatch_arch of Vsrlatch is


begin
QN <= S nor Q;
Q <= R norQN;
end Vsrlatch_arch;

2.3.8.2 Biestable D con flanco positivo


library IEEE;
use IEEE.stdJogic_1 164.all ;

entity Vdff is
port (D, CLK: in STD_LOGIC;
()
Q: out STD_LOGIC );
l end Vdff;

architecture Vdff_b of Vdff is


begin __ \..4. Je hdo.. : e.\ f>-rocess ~ ~c\.>t:x. c\p.ndo oo.rn b'l O- Lo..
process(CLK) l:>ero1 <::'Lk
begin
if (CLK'event and CLK='1') then Q <= D;
end if; c:¡.~ verp. un flo.na:::> de teL~ ~ ~o.. ck subcb..
end process ;
end Vdff_b;

2.3.8.3 Biestable D con Preset y Clear 74xx74


library IEEE;
use IEEE.std_logic_1164.all;

entity Vdff7 4 is
port (D, CLK, PR_L, CLR_L: in STD_LOG IC;
)
Q, QN : out STD_LOGIC );
end Vdff74 ;

r architecture Vdff74 b of Vdff74 is


signal PR, CLR: STD_LOGIC; '"'-'> -::,eñal~ oJ...))<.\ L\o..~-oo
beg in r el pNc.er.:o ~ ru::b vo.. c.o n lj CJ:f:,0J) / ~ So ó"LQ \J (\O..

process(CLR_L, CLR, PR_L, PR, CLK) eo el 'ídoj.


begin ~ toen. lotos re
PR <= not PR L' CLR <= not CLR L'
if (CLR and PR) ~ '1 ' then Q <= 'D"-Q'N
'
<= '0" ,\ ~- tp os~nc.rono
elsif CLR = '1' then Q <= 'O'; QN <= '1'; COtnfO~\.U.rolen
elsif PR = '1' then Q <= '1'; QN <= 'O';
elsif (CLK'event and CLK='1') then Q <= D; QN <= not D;
end if;
end process;
_ end Vdff74_b;

,)
2.3.8.4 Contador binari,o de cuatro bits 74xx163

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377,619142355 T-2.15


3 4 5 6

9
PE

10
CET
15
7
CE?
CP BINARY
2 COUNTER
MR

MNA901
14 13 12 11

INf'UTS OUTPUTS
CiPERATING mOE
Jm CP' CE? CET 'PE D;¡ a.. Te
re.et (deat} { t X x x X L 1.
parame¡.!tlad n t x X l' 1 L L
b t x X I h H ti)

eoxmt n t ti h ti X C>'Xlm (~¡

ilcId lo X f X h X ~t¡
CIII
¡

n
{do nolhirt;¡} b X X h X q,. l

library IEEE;
use IEEE.stdJogic_1164.all;
use IEEE.stdJogic_arith.all;

entity V74x163 is
port (CLK, CLR_L, LD_L, ENP, ENT: in STD_LOGIC;
D: in UNSIGNED (3 downto O);
Q: out UNSIGNED (3 downto O);
RCO: out STD_LOGIC );
end V74x163;

architecture V74x163_arch ofV74x163 is


signal IQ: UNSIGNED (3 downto O);
begin
process (CLK, ENT,IQ)
begín
if (CLK'event and CLK='1') then
íf CLR_L='O' then IQ <= (others => 'O');
elsif LD_L='O' then IQ <= D;
elsif (ENT and ENP)='1' then IQ <= IQ + 1;
end if;
end if;
if (IQ=15) and (ENT='1') then RCO <= '1';
else RCO <= 'O';
end if;
Q<=IQ;
end process;
end V74x163_arch;

'~ 2.3.8.5 Ejemplo de máquina de estados

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355 T-2.16


library IEEE;
use IEEE.std_logic_1164.all;

entity smexamp is
port ( CLOCK, A, B: in STD_LOGIC; (=-)
Z: out STD_LOGIC );
end;

architecture smexamp_arch of smexamp is


type Sreg_type is (INIT, AO, A1, OKO, OK1);
signal Sreg: Sreg_type;
begin
-
process (CLOCK) -- state-machine states and transitions
begin
if CLOCK'event and CLOCK = '1' then
case Sreg is
when INIT => if A='O' then Sreg <= AO;
elsif A='1' then Sreg <= A 1; end if;
when AO => if A='O' then Sreg <= OKO;
elsif A='1' then Sreg <= A 1; end if;
when A 1 => if A='O' then Sreg <= AO;
J
elsif A='1' then Sreg <= OK1; end if;
when OKO => if A='O' then Sreg <= OKO;
elsif A='1' and B='O' then Sreg <= A 1;
elsif A='1' and B='1' then Sreg <= OK1; end if;
when OK1 => if A='O' and B='O' then Sreg <= AO;
elsif A='O' and B='1' then Sreg <= OKO;
elsif A='1' then Sreg <= OK1 ; end if;
when others => Sreg <= INIT;
end case;
end if;
end process;

with Sreg select -- output values based on state


Z <= 'O' when INIT I AO I A1,
'1' when OKO I OK1, , )
'--
'O' when others;

end smexamp_arch;

2.3.8.6 Máquina de estados: intermitente de Tbunderbird

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.17


entity Vtbird is
port ( CLOCK, RESET, LEFT, RIGHT, HAZ: in STD_LOGIC;
L1GHTS: buffer STD_LOGIC_VECTOR (1 to 6) );
/~ end;
r '

architecture Vtbird_arch of Vtbird is


constant IDLE: STD_LOGIC_VECTOR (1 to 6) := "000000";
constant L3 : STD_LOGIC_VECTOR (1 to 6) := "111000";
constant L2 : STD_LOGIC_VECTOR (1 to 6):= "110000";
constant L 1 : STD_LOGIC_VECTOR (1 to 6):= "100000";
constant R1 : STD_LOGIC_VECTOR (1 to 6):= "000001";
constant R2 : STD_LOGIC_VECTOR (1 to 6):= "000011";
constant R3 : STD_LOGIC_VECTOR (1 to 6):= "000111";
constant LR3 : STD_LOGIC_VECTOR (1 to 6) := "111111";

begin
process (CLOCK)
begin
if CLOCK'event and CLOCK = '1' then
if RESET = '1' then LlGHTS <= IDLE; else
case LlGHTS is
when IDLE => if HAZ='1' or (LEFT='1' and RIGHT='1') then LlGHTS <= LR3;
() elsif LEFT='1' then LlGHTS <= L 1;
elsif RIGHT='1' then LlGHTS <= R1;
else LlGHTS <= IOLE;
end if;
when L 1 => if HAZ='1' then LlGHTS <= LR3; el se LlGHTS <= L2; end if;
when L2 => if HAZ=' 1, then LlGHTS <= LR3; el se LlGHTS <= L3; end if;
when L3 => LlGHTS <= IOLE;
when R1 => if HAZ=' 1, then LlGHTS <= LR3; else LlGHTS <= R2; end if;
. when R2 => if HAZ=' 1, then LlGHTS <= LR3; else LlGHTS <= R3; end if;
when R3 => LlGHTS <= IOLE;
when LR3 => LlGHTS <= IOLE;
when others => null;
end case;
end if;
end if;
end process;

end Vtbird_arch;

www.monteroespinosa.com - Clases de EOIG - Tfnos 91 5445377 , 619 142355 T-2.18


TEMA 3: CIRCUITOS COMBINACIONALES

3.1 Definiciones básicas


Un ciclo de
retroalimentación es 3.1.1 Circuitos combinacionales y circuitos secuenciales
la trayectoria de una
señal en un circuito que
permite que la salida de Los circuitos lógicos se clasifican en dos tipos, "combinacional" y "secuencial". Un
una puerta se propague circuito lógico combinacional es aquel cuyas salidas dependen solamente de sus entradas
de regreso hacia la
entrada de esa misma de corriente. Por el contrario, las salidas de un circuito lógico secuencial dependen no sólo
puerta. Un ciclo de esta de las entradas de corriente sino también de la secuencia anterior de las entradas,
naturaleza
generalmente genera
posiblemente arbitrarias, que sucedieron en el pasado.
un comportamiento
secuencial en un Un circuito combinacional puede contener una cantidad arbitraria de puertas lógicas e
circuito.
inversores, pero NO ciclos de retroalimentación.

3.1.2 Análisis VS Síntesis

En el análisis de un circuito combinacional comenzamos con un diagrama lógico y


procedemos hasta una descripción formal de la función que realiza el circuito, tal como una
tabla de verdad o una expresión lógica.

En la síntesis hacemos lo contrario, comenzamos con una descripción formal y procedemos


hasta un diagrama lógico.

3.2 Multiplexores
Son circuitos combinacionales que poseen las siguientes entradas y salidas:
• N entradas de información o canales de datos.
• n entradas de selección o control.
• Una salida de información
• Una entrada de autorización.
Los canales de entrada están relacionados con las entradas de selección por la siguiente
ecuación:

número de canales = 2número de entradas de selección ~ N = 2n


/)
Multiplexor

,
211 entradas ··· ¡

dedato$ 1 salida
I
¡
I
¡
I
¡

r-A--.
11···11
~
n bits
de selección

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377,619 142355 T-3.1


En los esquema representativos de estos circuitos se suele denominar a dichas entradas y
salidas con los símbolos que se exponen a continuación:
• Do o lo a DN o IN a las entradas de información.
• So a Sn a las entradas de direccionamiento.
• E a la entrada de autorización o enable.
• Wo Z a la salida del circuito.

Ejemplo de esquema de un multiplexor:

S
Pin Names Descnption
!{la
El componente aquí
lOa-1M Source o Data ¡nputs
descrito es el Ifa
'o~
74AC157, multiplexor Ita-1td Source 1 Data. tnputs
Za Ite
de dos entradas de
datos (de 4 bits cada 10b 12 Ze E Enable Input
una). 11 S Sefect Input
Ilb 'oc!
2b 10 ··lld Za...za Outputs
9 ZIt

3.2.1 Funcionamiento de un multiplexor


o El principio de funcionamiento del multiplexor es el siguiente: cuando una combinación
binaria aparece en las entradas de selección, la información de entrada presente en el canal
por ella defmido aparece en la salida.

Por tanto, se puede considerar a un multiplexor como un conmutador de múltiples entradas


cuya única salida se controla electrónicamente mediante las entradas de selección.
La estructura interna de estos circuitos puede llegar a ser relativamente compleja, y como,
por otra parte, nosotros los vamos a encontrar en el mercado bajo la forma de chips
integrados, no realizaremos su estudio interno.

3.2.2 Multiplexor 2 x 1

Esta es la tabla de verdad de un multiplexor de 2 Z


MUX Ca
lo canales de entrada (lo e 11 ) con 1 entrada de
11 z O lo
control ( Ca)
1 11
C) Co
y esta es la función que implementa:

Z Co lo + Ca 11 (la forma canónica)


Z = (Ca + lo)· (Ca + 11 ) (2 a forma canónica)

3.2.3 Multiplexor 4 x 2

La tabla de verdad de un multiplexor de 4 canales de entrada (10 ,11 ,12 e 13 ) con 2


entradas de control (Ca Y C I ) es la siguiente:

CI Ca Z
lo 00 MUX O O lo
11 01
12 10 z O 1 11
h II
1 O 1?
1 1 13
Cl Co

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-3.2


y esta es la función que implementa:
Z = CI Colo + CI CO 11 + CI CO 12 + el Co13 (la forma canónica)
Z = (el +Co+lo)·(CI +Co+11)·(CI +Co+12 )·(CI +Co+13) (2a forma'canónica)

3.2.4 Multiplexor 8 x 3

La tabla de verdad de un multiplexor de 8 canales de entrada (10 ,11 ,12 ,13, 14 ,15 ,16 e 17 )
con 3 entradas de control ( Co , CI y C2 ) es la siguiente:
1 0 - 000 MUX
! l - 001
l l - 010 - C2 CI eo Z
h - Oll
1 , - lOO
O O O lo
I s - 101
1 6 - 110 O O 1 11
1 7 - 111
O 1 O 17
1
III O
1 O
1 13
C, Cl Co O 14
1 O 1 l'i
1 1 O lF,
1 1 1 17
rj
'---
~

y esta es la función que implementa:

Z=~G~~+~G~I¡+~G~~+~G~~+~G~~+~G~~+
+~GCoI6 +~GCoI7

Análogamente se pueden deducir las tablas de verdad y la forma canónica de multiplexores


de mayor número de canales y entradas de control.

3.2.5 Realización de funciones lógicas con multiplexores

La circuitería interna que posee un multiplexor permite la implementación de funciones


lógicas mediante su adecuado conexionado externo. Existen dos métodos de emplear
multiplexores cuando se trata de implementar funciones lógicas:

a) Implementación de funciones booleanas de n variables con un multiplexor de n '\,j


entradas de control
En este caso basta con escribir la tabla de verdad de la función booleana y asignar
cada una de las líneas de esa tabla a uno de los canales de datos. Las n entradas de
control se reservan para las n variables de la función.
Una opción más mecánica es escribir la 1~ forma canónica estandar de una función
Veremos este método a la salida de un multiplexor, e identificar cada término (teniendo en cuenta que
en la práctica en el las entradas de control las identificamos directamente con las variables de la
ejercicio 1 de clase, de
este tema, apartado a, función. Por lo tanto, sólo nos queda saber qué valores, '1' ó 'O', ponemos en las
entradas de datos).
Vamos a detallar la explicación para la realización de una función F de dos
Recuerda que un variables (X e Y) con un multiplexor 4x2:
multiplexor 4x2 tiene 4
canales de entrada
(lo ,JI,J2 e 13 ) con Para este multiplexor, la forma desarrollada de su función de salida es:
2 entradas de control
(eo y CI )

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355 J T-3.3


Sobre esta función de salida, identificamos ya las entradas de control con las
En este momento
empezamos ya a variables, y Z con F, la función que queremos implementar:
completar el dibujo de
nuestro circuito con el
/~ multiplexor. F=XY~+XY~+XY~+XY~

Así, por ejemplo, si en


la función del
Donde sólo queda ya sustituir cada entrada de datos 10 ,11 ,12 e 13 por' 1' ó 'O'
enunciado no aparece según aparezca o no el término en cuestión en la función del enunciado.
el término XY ,
entonces ID tiene que
valer 'O'.
b) Implementación de funciones booleanas de n + 1 variables con un multiplexor de
Veremos este método n entradas de control y un negador
en la práctica en el
ejercicio 1 de clase, de
En este caso una de las variables de la función booleana será enchufada al multiplexor
este tema, apartado b. por las entradas de datos mientras que las otras n - 1 variables se siguen enchufando
en las entradas de control.

Nuevamente vamos a Para poder implementar la función vamos a seguir el segundo de los métodos del
seguir'la explicación a apartado a), pero realizando unos pasos previos.
partir de un multiplexor
4x2, sólo que ahora la Lo primero que debemos hacer es elegir qué dos variables van a estar conectadas a
funciónF que

O -
queremos implementar
es de tres variables, X,
Yy W.
las entradas de control. Vamos a suponer que en nuestro caso van a ser X e Y.

Acto seguido tenemos que transformar la expresión que nos den de la función,
para que en cada término de la misma aparezcan SIEMPRE estas dos variables
elegidas. Para ello, cuando en algún término falte alguna, multiplicaremos dicho
Recuerda dos
propiedades
importantes:
término por (X + X) Ó (y + y) ,según cuál sea la variable que falta.
la+a=ll Una vez expresadas estas multiplicaciones, deshacemos los paréntesis aplicando la
propiedad distributiva, simplificamos cuando se pueda, y reordenamos la
la.l =al expresión.

De esta forma, podremos ya escribir nuestra salida estandar (en la 1a forma


canónica) de un multiplexor de estas características:

Para después identificar:

F=XY~+XY~+XY~+XY~

Donde la única diferencia será que las entradas 10 ,11 ,12 e 13 no quedarán sólo
identificadas con' l' ó 'O', sino también por W ó W, la tercera de las variables
de la función.

Nota:

Veremos un ejemplo de
También es posible, en algunas ocasiones, implementar funciones con n + 2 variables o
este tipo en el ejercicio más mediante un múltiplexor de n entradas de control pero para ello el problema debe estar
1 de clase, de este
preparado.
tema, apartado c.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355 T-3.4


3.3 Decodificadores
Genéricamente, un decodificador es un circuito lógico con varias entradas y salidas que
convierte las entradas codificadas en salidas codificadas, donde los códigos de entrada y de
salida son diferentes. n
En ocasiones un código • El código de entrada que se utiliza con mayor frecuencia es un código binario de n bits,
binario de n bits es donde una palabra de n bits representa uno de 2n diferentes valores codificados,
truncado para
representar menos de normalmente los enteros de Ohasta 2n - l.
n
2 valores. Es el caso • El código de salida que se utiliza con mayor frecuencia es un código 1 fuera de m, que
del código BCD, en el
que las combinaciones contiene m bits, donde un solo bit se activa en un determinado momento.
0000 hasta 1001
representan los dígitos Son circuitos combinacionales provistos de n entradas y un número de salidas menor o
decimales O a 9, pero
las combinaciones igual 2n •
1010 hasta 1111no se
usan.
3.3.1 Decodificaror binario: funcionamiento

El circuito decodificador más común es un decodificador de n a 2n Ó decodificador


Efectivamente, son
decodificadores binario. Un decodificador de esta clase tiene un código de entrada binario de n bits y un
provistos de n código de salida 1 fuera de 2n .
entradas y un número
de salidas menor o
igual 2'. Se utiliza un decodificador binario cuando se necesita activar exactamente una de las 2n
salidas basado en un valor de entrada de n bits. Dicho de otra forma, funcionan de manera
que, al aparecer una combinación binaria en sus entradas, se activa una sola de sus salidas.

Normalmente, la salida activada presenta un 0, mientras que las demás permanecen a 1.


No todos los
decodificadores poseen Los decodificadores se emplean en los sistemas digitales para convertir las informaciones
la misma asignación de binarias, con las cuales trabajan, otros tipos de informaciones digitalizadas, pero no
estados lógicos.; de
hecho, hay muchos que
binarias, empleadas por otros dispositivos, por ejemplo, los visualizadores alfanuméricos.
trabajan tomando un
nivel alto (1) como nivel A continuación presentamos algunos ejemplos de circuitos de estas características.
activo.

3.3.2 Decodificador binario 2 a 4


Un ejemplo real de
decodificador (un Describimos aquí un decodificador de 2 a 4 líneas con entrada de inhibición que activa la
integrado con esta salida en nivel bajo.
funcionalidad) es el
74AC179, solo que
tanto sus salidas como La descripción completa de sus entradas y salidas es:
su entrada enable son
activas a nivel bajo.
• 10 e 11 son las dos entradas.
• Yo a 1; son las cuatro salidas. Una de ellas se activará en función del número
binario representado a la entrada.
• EN es la entrada de autorización o enable. Observa que se activa a nivel alto, esto
es, el decodificador funcionará cuando esta entrada esté a 1.

Su tabla de verdad es la siguiente:

a tabla de verdad del


decodificador binario
Inputs Outputs
introduce una notación
"sin importancia" para EN 11 lo Y3 Y2 YI Yo
combinaciones de
entrada. Si uno o más O x x O O O O
1 O O O O 1
valores de entrada no
afectan a los valores de
salida para alguna
1
1
°
O
1
1
O
O
O
O
1
1
O
O
O
combinación de las
entradas restantes, se 1 1 1 1 O O O
marcan con una X para
esa combinación de
entrada.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-3.5


Su esquema y su circuito equivalente (implementado con puertas) son:
Es importante entender
que en el número
binario que pongamos
!~ en l/o, 11 es el bit
más significativo. Aun
así, mira SIEMPRE la 2-to-4
tabla de verdad de decoder
cada circuito integrado,
para conocer con 10 YO
certeza estas
cuestiones. 11 Y1
Y2
EN Y3
En el circuito
equivalente, observa
que cada salida
consiste
en un minterrn de
las variables de
entrada

3.3.3 Decodificador 3 a 8

Otro ejemplo de decodificador es el de 3 a 8 líneas.

El que presentamos tiene las siguientes entradas y salidas:

• Eo a E2 son las tres entradas.


• So a S7 son las ocho salidas. Una de ellas se activará en función del número
binario representado a la entrada.
• EN es la entrada de autorización o enable.

Su tabla de verdad es la siguiente:

EN E2 El Eo So SI S2 S3 S4 S5 S6 S7
O X X X O O O O O O O O
1 O O O 1 O O O O O O O
1 O O 1 O 1 O O O O O O
1 O 1 O O O 1 O O O O O
1 O 1 1 O O O 1 O O O O
1 1 O O O O O O 1 O O O

o 1
1
1
1
1
1
O
1
1
O
1

1
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
1
O
O
O
1
O
O
O
1

y su esquema:

decodificador
3a8 So
SI
S2
S3
En este caso, E2 es el S4
Ss
bit más significativo de
la entrada S6
EN S7

1 )
\~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-3.6


3.3.4 Funciones de un decodificador

• La función que más nos interesa de un decodificador es la de implementar funciones


lógicas. La forma de hacerlo es muy sencilla: n
Necesitamos la tabla de verdad de la función.
Basta con unir en una puerta OR aquellas salidas del decodificador donde la
Observa que así es función valga uno.
como formamos los
minterms a la salida. Otra posibilidad es unir justo las contrarias (donde la función vale O) con una
puerta NOR.

Un decodificador es lo • Otras funciones importantes de un decodificador son la de hacer de decodificador


mismo que un estricto (que, en principio, es para lo que se inventaron) y la de hacer de demultiplexor
demultiplexor si cumple (si se cumplen las características antes enunciadas en el margen).
que:

- Tiene 2" salidas.


- Tiene entrada de
validación.

3.4 Comparadores binarios


Los circuitos comparadores son circuitos combinacionales que indican la relación de
El comparador más
sencillo que podemos
igualdad o desigualdad existente entre dos números binarios A y B de n bits cada uno.
encontrar es el de Además suelen disponer de una serie de entradas de acoplamiento en cascada para poder
igualdad entre dos bits, comparar con mayor número de bits que los permitidos por el comparador que usamos.
que es implementado
simplemente por una
puerta XOR. Ejemplo:

En la figura se muestra el diagrama esquemático de un comparador del tipo 74x85:

Entradas de cascada

Su tabla de funcionamiento la siguiente.

A3> 83 X X X X X X 1 O O
A3 <-83 X X X X X X O 1 O
A3= 83 A2>82 X X X X X 1 O O
A3 = 83 A2< 82 X X X X X O 1 O
A3 = 83 A2= 82 A1 > 81 X X X X 1 O O
A3 = 83 A2 = 82 A1 < 81 X X X X O 1 O
A3 = 83 A2 = 82 A1 = 81 AO> 80 X X X 1 O O
A3= 83 A2 = 82 A1 = 81 AO< 80 X X X O 1 O
A3= 83 A2 = 82 A1 = 81 AO= 80 1 O O 1 O O
A3= 83 A2 = 82 A1 = 81 AO=80 O 1 O O 1 O

-_~l
A3 = 83 A2 = 82 A1 = 81 AO= 80 O O O O '1
A3 = 83 A2= 82 A1 = 81 AO= 80 X X O O 1
A3 = 83 A2= 82 A1 = 81 AO = 80 1 1 O O O O
A3 = 83 A2 = 82 A1 = 81 AO = 80 .o O O 1 1 O

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355 T-3.7


3.5 Sumadores - Full Adder
El bloque elemental de los sumadores es el sumador completo o "full adder", con
tratamiento de acarreos de entrada (CIN) y salida (COUT). A continuación se muestra su
esquema y su tabla de verdad.

Al full adder lo
abreviaremos FA
x y Cin S Cout
O O O O O

x y O O 1 1 O
O 1 O 1 O
COUT GIN O 1 1 O 1
El FA sólo suma dos s 1 O O 1 O
bits más el acarreo de 1 O 1 O 1
entrada
1 1 O O 1
1 1 1 1 1

o
El circuito internp del sumador completo se muestra a continuación:
\ '.~
\c-'
,AO'
Ql' .
~.
y --+-lJ---l'-l s
Para más detalles CIN --I--I--+-----....J.
ver el ejercicio 1 de
clase de este tema

COUT

A partir del bloque elemental se pueden construir sumadores de más bits (n bits),
Estos sumadores de
dos palabras de n bits,
formados por full- Solo necesitamos una cascada de n etapas de sumadores completos, si cada una de las
adders, se suelen cuales maneja un bit.
denominar sumadores
de rizo.
Por ejemplo, aquí mostramos un sumador de cuatro bits construido a partir de cuatro
sumadores de un bit:

Ver febrero 2000- ej2 ~ Y3 ~ Y2 Xl Y1 Yo

y
En este tipo de .. CIN COUT
:r-- COUT ClN
sumadores la velocidad
de cálculo está limitada t col.
( s s
CIN COUT

s S
por el camino del
acarreo. Si este se
propaga en toda la
Camino
crítico ~
í
t
s,
,
I
cuenta, ralentiza la S3 S2 So
I operación
\~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-3.8


3.6 Memorias ROM
Podemos entender una memoria ROM (Read Only Memory) como una matriz de
matriz =memoria dimensión 2n x b, es decir una matriz de 2n filas y b columnas. A las filas de esta 'matriz las
vamos a llamar palabras y diremos que cada palabra está compuesta de b bits. Por tanto
fila =palabra tenemos que mirar siempre esta matriz por filas (nunca por columnas).
Nota: La longitud b de Para acceder a cada fila de la matriz tenemos una dirección que no es más que un número
la palabra puede ser
cualquiera, inde- binario que identifica cada fila. Por tanto si nuestra matriz tiene 2n filas necesitaremos un
pendientemente del dirección de n bits. A su vez cada fila alberga una información de b bits (que son las
número de filas
columnas que tiene la matriz).

El esquema genérico de. una memoria ROM de 2n x b es el siguiente:

2n xbROM
AO
Al DO
A2 D1
address
, inputs
• • data
outputs
• • (-)
• • \ -

An-2 Db-1
An-1

Resumen

• En la memoria caben 2n palabras de b bits, o sea, en total 2n x b bits.


• Consta de n entradas (llamadas Bus de direcciones) y b salidas (llamadas Bus de datos)
• Por cada combinación binaria de las entradas (2 n ) existe un dato de longitud b bits
t'\ i,.yM.p('c:> ~< pa\.a..brO-~ .
ti' ¿(\ll~S ~ ~\a.loío. :: ...\-a-"Vla.vt~ ~
3.6.1 Memoria ROM de 4 x 5 bl-tS ~e :1~.
'i ')(> Recuerda que b es 2
"G totalmente indepen- En este caso nuestra memoria tiene 2 = 4 palabras (esdecir, una matriz con 4 filas), las
~.e. diente de n , direcciones para referirnos a cada palabra tendrán 2 bits.
En concreto las direcciones de las
...."'==---:--::-~r--_~.-¡
\{ecc't;V\
cuatro palabras de la memoria serán 00, 01, 10, 11. Cada una de estas palabras tendrá una
información de 5 bits.

3.6.2 Memoria ROM de 'x 2

En este caso nuestra memoria tiene 23 = 8 palabras (es decir, una matriz con 8 filas) las
direcciones para referirnos a cada palabra tendrán 3 bits. En concreto las direcciones de las
ocho palabras de la memoria serán 000, 001, 010, 011, 100, 101, 110, 111. Cada una de
estas palabras tendrá una información de 2 bits.

3.6.3 Funcionamiento de las memorias.

El método de funcionamiento de una memoria es la siguiente: para elegir una fila de la


memoria debo introducir por las entradas (bus de direcciones o address inputs) el código de
esa fila. La memoria "va" a esa fila, extrae la información que hay en ella y la "saca" por
las salidas (bus de datos o data outputs).

www.m.tnteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355 J T-3.9


~1-1
, DA
A. 3

b.., . - ~~
iz --

1\0 ~
D

8 ' ~

-- kl
t 1l

es. Aa ~~
3.6.4 Uso de las memorias ROM

Una Memoria ROM puede implementar cualquier función lógica combinacional.

/\ Para ello basta con hacer los siguiente:

Las entradas de la función se conectan al bus de direcciones


Las salidas de la función se conectan al bus de datos

Ejemplo de implementación de una función lógica en una ROM:

Sea el circuito combinacional siguiente, .

lo
(Aa) Yo
(Do)

Y1
11 (Dl }
{Ai}

Y2
CDZ}

Y3
(D3}
POL
(A2)

Podemos implementarlo mediante una memoria ROM de 8 x 4 :

Inputs Outputs

8x4ROM A2 Ar AO D3 D2 0'1 Do
O O O 1 1 1 (}

O O 1 1 1 O 1
00 YO
C: !O Aa
01 Y1
o
ti
1
1
o 1
o
o
1
1
1
11 A1
02 Y2 1 (} o o () O 1
POL A2
D3 Y3 1 o o o 1 o
1 1 o o 1 o o
i 1 1 o o o

1. J1'l ~~eVl~O--c \c(11 ~ e.. ~ li.vz. c.. ~ov'les 01~d 'la v1 -k ~)..{:

Vi <01eáafYl~ ~ vot"ld.o\es. ,,-\ btAG k 6lre ccio", es.


fA ~\Cl-n1 cG t~ lCL~~ ~ ~ ~,kJ \e- ~ ~W'lc¡~ en
~ M.emon~ R6~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377,619142355 T-3.10


Recuerda lo explicado TEMA 4: CIRCUITOS SECUENCIALES
en el tema 3 sobre la
diferencia entre
circuitos
combinacionales y
secuenciales:
4.1 Introducción (J
- Un circuito lógico Los circuitos secuenciales se caracterizan por su capacidad para memorizar información; en
combinacional es
aquel cuyas salidas
consecuencia, los valores de las salidas, en un determinado momento, no dependen exclusi-
dependen vamente de los valores de las entradas en ese instante, sino que dependen también de los
solamente de sus que tuvieran presentes con anterioridad.
entradas.
- Un circuito lógico Definiremos el estado actual de un circuito secuencial como una colección de "variables de
secuencial es aquel
cuyas salidas estado" cuyos valores en cualquier tiempo contienen toda la información acerca del pasado
dependen no sólo necesario para explicar el comportamiento futuro del circuito.
de sus entradas
actuales, sino
también de la Dicho de otra forma, vamos a llamar "variables de estado" a las variables que guardan toda
secuencia pasada la información sobre la historia del circuito y permiten predecir la salida actual en base a su
de entradas,
posiblemente contenido y al de las señales de entrada actuales.
retrasada en el
tiempo de manera Las variables de estado se guardan en uno o más bits de información.
arbitraria.

Considerando como entradas las entradas del circuito y las variables de estado, el
diseño de un circuito secuencial es igual al de uno combinacional.
Tan grande como
parezca, 2n siempre
será finito, nunca
infinito, de modo que En un circuito de lógica digital, las variables de estado son valores binarios,
los circuitos
secuenciales en
correspondientes a ciertas señales lógicas en el circuito, como veremos en secciones
ocasiones se conocen posteriores. Un circuito con n variables de estado binarias tiene 2n estados posibles.
como máquinas de
estado finito.
4.1.1 Señales de reloj

Los cambios de estado en la mayoría de los circuitos secuenciales se presentan en tiempos


especificados por una señal de reloj de funcionamiento libre. En la siguiente figura
presentamos los diagramas de temporización y nomenclatura para señales de reloj típicas.

. los cambios de estado


r ocurren aquí "

~LK -.-1 . . . .'H"~.,\.---


____

·1:
.,;.' . ~.l. -----,\~.
...t.L. .~r :'r--.,.

'<períoPD ;= t per
_ _ __

..
11

- . , o. . ;' t per . · .1.. frecue'neia ;: 1ft par


)
Ciclo de trabajo::: tH ¡ tpar

,o,y < lo~cambiosdeest?d9S~ ~

." r.
r" presentan aquí~•.. ~

~L~-L'l' t-· I \r
--o tL -I~ t R -:
o

'. l. , tper ' • ' , . eí.clo de trabajo =t L J tper


Los sistemas digitales
típicos, desde relojes Por convención, una señal de reloj es de estado activo alto si los cambios de estado se
digitales hasta presentan en el flanco de subida del reloj o cuando el reloj está en ALTO, y de estado
supercomputadoras, activo bajo en el caso complementario.
utilizan un oscilador de
cristal de cuarzo para
generar una señal de El periodo del reloj es el tiempo entre transiciones sucesivas en la misma dirección.
reloj de funcionamiento
libre. La frecuencia del reloj es el inverso del periodo.
El primer flanco o pulso en un periodo de reloj (o en ocasiones el periodo mismo) se
denomina una ~ ( "tic") de reloj.
El ciclo de trabajo (duty eycle) es el porcentaje de tiempo que la señal de reloj se \ . _../
encuentra en su nivel asertivo. "

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-4.1


4.2 Biestables
El circuito secuencial más sencillo consiste en un par de inversores que forman un ciclo de
retroalimentación, como se muestra en la siguiente figura:

>Cf-----1''--- Q
Como puedes ver, no
tiene entradas y tiene
dos salidas, Q y Q_L

Este circuito se denomina con frecuencia biestable, puesto que en un análisis estrictamente
digital tiene dos estados estables:

Si Q es ALTO, entonces el inversor inferior tiene una entrada en ALTO y una salida en
BAJO, lo que fuerza un nivel ALTO a la salida del inversor superior, como supusimos
en primer lugar.
Pero si Q está en BAJO, entonces el inversor inferior tiene una entrada en BAJO y una
salida en ALTO, lo que fuerza Q a BAJO, otra situación estable.

o Podríamos por tanto utilizar una variable de estado simple, el estado de la señal Q, para
describir el estado del circuito. Así, existen dos estados posibles: Q = OY Q = l.
Un biestable tiene
mucho más que Este elemento es tan simple que no tiene entradas y así no hay manera de controlar o
mostrar si modificar su estado. Cuando se aplica primero la energía al circuito, llega aleatoriamente a
consideramos su un estado o al otro y se mantiene ahí permanentemente.
funcionamiento desde
el punto de vista
analógico, estudiando Por supuesto, este elemento biestable que presentamos en un comienzo, evoluciona a otras
conceptos de
meta estabilidad, que se
formas, controlables mediante entradas, que exponemos a continuación.
escapan del temario de
EDIG.

4.2.1 Cerrojos y flip-flops: generalidades

Los cerrojos y flip-flops son circuitos secuenciales constituidos por puertas lógicas,
capaces de almacenar un bit, la información binaria más elemental. Son los bloques de
construcción básicos de la mayoría de los demás circuitos secuenciales.

Estos circuitos pueden ser síncronos o asíncronos:


() • Todos los diseñadores digiales utilizan el nombre de flip-flop para un dispositivo
Se dice que los flip- secuencial que necesita una señal de reloj (CLK) para ser activado.
flops son dispositivos
síncronos. Esto significa que, aun-que cambie el valor de alguna de las entradas, la salida no
cambia hasta un determinado momento marcado por el reloj. Normalmente esta
activación sevproduce en el flanco de subida o bajada de la señal de reloj.

• Por otra parte, la mayoría de los diseñadores digitales utilizan el nombre de cerrojo
Se dice que los (latch) para un dispositivo secuencial que no necesitan una señal de reloj.
cerrojos son
dispositivos Esto es, la salida cambia cada vez que cambia una de las entradas.
asíncronos.

Es importante saber
que algunos textos y
diseñadores digitales La clasificación de los biestables, desde el punto de vista de su constitución y del número
pueden emplear
(incorrectamente) el
de entradas puede resumirse en: biestable R-S, biestable J-K, biestable T y biestable D.
nombre "flip-flop" para
un dispositivo que en
'~ realidad es un cerrojo.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-4.2


En EDIG a los cerrojos
4.2.2 Báscula R-S
les llamamos básculas.
Una báscula R-S tiene como símbolo lógico es cualquiera de los siguientes:
Encontrarás también
estas básculas con el
nombre de "Báscula S- - S Q r-- - S Q -
()
E" (set- reset, de
establecimiento - - R QN r-- - R Q O-
restablecimiento)

El circuito tiene dos entradas, S y R, y dos salidas, etiquetadas como Q y QN, donde
normalmente QN es el complemento de Q. La señal QN se representa en ocasiones como
Un poco más adelante
comprobaremos que
Qó º_L
esta definición de QN
no es completamente Se trata de un biestable asíncrono (no está monitoreado por un reloj) . Su tabla de
exacta. transiciones entre dos estados es la siguiente:

Ot representa la salida
R S Qt Q Qt+1
O en un detenminado O O O 1 O
instante t.
O O 1 O 1
Q, representa la salida O 1 O 1 1
Qen undetenminado O 1 1 O 1
1 O O 1 O -~)
instante t.
1 O 1 O O
Ot+1 representa la
1 1 O O -
salida O en el siguiente
instante, t+1.
Como se puede observar en la tabla si tanto S como R son O, el circuito se comporta como
el elemento biestable: tendremos un ciclo de retroalimentación que retiene uno o dos
estados lógicos, Q = O ó Q = 1. Pero tanto S como R pueden ser asertivas (ponerse al)
para forzar al ciclo de retroalimentación a un estado deseado:
S establece la salida Q a 1.
Recuerda que cuando
decimos "elemento R restablece o limpia la salida Q a O.
biestable" nos
referimos al biestable
básico, sin entradas, Después de que la entrada S ó R es negada de nuevo, la báscula permanece en el estado al
presentado en el cual fue forzado.
comienzo de este punto
5.2

Toda esta información queda resumida en la tabla de transición siguiente, más concisa:

)
R S 0t+1
O O Qt
O 1 1
1 O O
1 1. -

Inestabilidades:
Con esta observación
queda patente que en
un caso detenminado,
Cuando ambas entradas, S y R, están a 1, ambas salidas son forzadas a cero. Una vez que
Q no es el negamos cualquiera de las entradas, las salidas regresan a la operación complementaria
complemento de O, en como es habitual.
la salida de una
báscula R-S. Sin embargo, si negamos ambas entradas de manera simultánea, la báscula se encamina a
un estado siguiente impredecible y de hecho puede oscilar o entrar a un estado conocido
como metaestable.
La metaestabilidad no La metaestabilidad también puede presentarse se un pulso 1 que sea demasiado breve se
es objeto de esta
asignatura. aplica a S ó R.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 ,619142355 T-4.3


4.2.2.1 Implementación de una báscula R-S con puertas NOR
R---~
X)---....--Q
Para este circuito valen
todas las explicaciones
de la página anterior,
dado que esta es justo
su implementación )---....--QN
8------1

4.2.2.2 Implementación de una báscula R-S con puertas NAND


La báscula resultante
de esta implementación
suele recibir el nombre
>--....---Q
de Báscula Ji. - S

Observa que las


puertas OR con las
entradas negadas son, }------QN
en realidad, puertas
NAND:

x+y=x·y El resultado de esta implementación es una báscula con entradas de establecimiento y


restablecimiento a nivel bajo.

A continuación tenemos su símbolo y su tabla de verdad:

8_L R_L Q QN
O O
O 1 Q

o o
1 lastQ [astQN

El funcionamiento de esta báscula R - S es semejante al de la R - S, con dos


diferencias principales:

Ry S son de nivel activo bajo, de modo que el cerrojo recuerda su estado


Las entradas de nivel.
bajo se indican anterior cuando R = S =1 .
claramente en el
símbolo lógico de este Cuando tanto R como S son afirmadas de manera simultánea, ambas salidas de la
circuito.
báscula se van al, no a O como en la báscula R - S.

4.2.2.3 Báscula R-S con "enable"

5---1
}---'!>--- Q

e permite o impide que e


olas entradas R y S
lleguen a la báscula
QN
R----1

Este circuito se comporta como una báscula R - S S R e Q QN


cuando C = 1, Y retiene su estado anterior cuando C = O. o o [ast Q lastQN
Nota: o o 1
1 o 1 1 o
Si tanto S como R son 1 cuando C cambia de 1 a O, el
Esto es, el estado 1 1 1 1 1
siguiente es circuito se comporta como una báscula R - S en la cual S
impredecible y la salida y R son negadas simultáneamente. x x o [ast Q lastaN
puede llegar a ser
, metaestable
~/

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.4


Los cerrojos tipo O son
4.2.3 Latch D
útiles en aplicaciones
de control, donde con La figura muestra un cerrojo D. Su diagrama lógico se reconoce como el de una báscula R-
frecuencia pensamos
en términos de
establecer una marca
en respuesta a alguna
S con habilitación (enable), con un inversor agregado para generar entradas S y R a partir
de la entrada simple D (de datos). n
condición y
restablecerla cuando Esto elimina la situación problemática en los cerrojos R-S, donde R y S pueden afirmarse
cambian las de manera simultánea.
condiciones.

Con frecuencia D
necesitamos cerrojos

O
Q
simplemente para
almacenar bits de
información: cada bit es C
C Q
presentado en una
línea de señal, y nos QN
gustaría almacenarlo
en alguna parte.

Un cerrojo O puede
emplearse en una
aplicación de esta La entrada de control de un cerrojo D, etiquetada C, se llama en ocasiones ENABLE, CLK,
naturaleza.
ÓG.

La tabla de verdad de un latch D es la siguiente:


e D a QN
1 o o 1 (-)
Cuando C es afirmada, la salida Q sigue la entrada D. 1 1 1 O
En esta situación se dice que el cerrojo está abierto y la
El circuito se denomina
trayectoria desde la entrada D a la salida Q es O x lasta lastQN
con frecuencia un
"cerrojo transparente" transparente.
por esta razón.
Cuando la entrada C es negada, el cerrojo se cierra y la salida Q retiene su último valor
y ya no cambia en respuesta a D, mientras que C permanezca negada.

4.2.4 Flip-flop D disparado por flanco


El primer cerrojo de la
figura se conoce con el Un flip-flop D disparado por flanco positivo combina un par de cerrojos D como se ilustra
nombre de maestro; se
abre y sigue la entrada
en la siguiente figura:
cuando CLK es O.
Cuando CLK sube a 1,
el cerrojo maestro se QM
cierra y su salida se Do------I D Q D Q Q

=8
transfiere al segundo
cerrojo, conocido como e e N \)
esclavo. Éste se
encuentra abierto todo CLK Q
el tiempo que CLK es CLK
1, pero solamente
cambia al principio de
este intervalo, porque
el maestro está cerrado
y sin modificaciones
durante el resto del Así tenemos un circuito que muestrea su entrada D y cambia sus salidas Q y QN sólo para
intervalo. el flanco ascendente de la señal CLK de control.

El triángulo en la Su tabla de verdad es la siguiente:


entrada CLK de los f1ip-
flops O (en su símbolo D ClK Q QN
lógico) indica un
comportamiento de
disparo por flanco, y se
denomina indicador de
O S O 1

entrada dinámica.
1 I O
x: O lasta ¡ast QN
x: 1 lastQ las! QN

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.5


Podemos entender mejor el comportamiento de este biestable con la tabla de transiciones
del circuito:

C D Qt Qt+! La ecuación
(, O O O O
característica de
O O 1 1 un biestable Des:
A las cuatro primeras O 1 O O
filas se les llama modo O 1 1 1 Qt+! =D
retención y las cuatro
últimas modo transpa- 1 O O O
rente 1 O 1 O
1 1 O 1
1 1 1 1

Observaciones:

• Un flip-flop D disparado por flanco negativo simplemente invierte la entrada de reloj,


de modo que toda la acción se desarrolla sobre el flanco descendente de una entrada
CLK L.
• Algunos flip-flops D tienen entradas asíncronas que se pueden utilizar para llevar al
flip-flop a un estado particular, independientemente de las entradas CLK y D. Estas
entradas, generalmente se identifican como PR (preset, prestablecimiento) y CLR

o (c1ear, borrado), se comportan como las entradas de establecimiento y restablecimiento


de una báscula R-S.

4.2.5 Flip-flop J-K

El problema de qué Se trata de un biestable síncrono, con la siguiente configuración:


hacer cuando en una
báscula R-S, las
entradas R y S se
afirman de manera
simultánea, se resuelve
en un flip-flop J-K. J J Q
Q GLK
K Q
Observa que este QN
circuito utiliza un flip-
K
flop O disparado por CLK
flanco.

·CJ Su tabla de verdad es:

J K CLK Q QN
x: x: O lastQ lastQN
x: x: 1 lastQ lastQN
O O I lasí Q lastQN
O 1 I O
1 O I 1 O
1 1 I lastQN lastQ

Las entradas J y K son análogas a S y R (de la báscula R-S).


Por supuesto, recuerda
que la báscula RS es La novedad es que en este circuito, si J y K se afinnan de manera simultánea, el flip-
un circuito asíncrono.
flop se irá al valor opuesto de su estado actual.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355 I T-4.6


Así, su tabla de transiciones es la siguiente:

J K Qt Qt+l La ecuación
O O O O característica de
O O 1 1 un biestable J-K
O 1 O O es:
O 1 1 O
1 O O 1
1 O 1 1
1 1 O 1
1 1 1 O

Esta información se puede expresar de manera más concisa en la siguiente tabla:

J K Qt+l
O O Qt
O 1 O
1 O 1
1 1 o.
La aplicación más
común de los flip-flops De la anterior tabla de transiciones se puede extraer la siguiente tabla que es de gran
J-K se encuentra en las utilidad para los ejercicios de autómatas:
máquinas de estado
síncronas temporizadas
Qt Qt+l J K
O O O X
En esta tabla se inter- O 1 1 X
preta que: 1 O X 1
1 1 X O
x=Oó1

4.2.6 Flip-flop T
El circuito que aquí
presentamos es en
Se trata de un biestable J-K al que se han cortocircuitado las entradas:
realidad un flip-flop T
con habilitación
(ENABLE). EN Q EN Q
T
Este circuito es muy QN
importante para realizar
contadores.

Construido con un flip-flop D, el circuito queda:

En el ejercicio 1 de
clase veremos otra
modalidad de biestable Q
T, muy parecida a esta.
QN

Un flip-flop T cambia de estado con cada pulso de T, siempre y cuando la entrada de


T viene de "toggle", habilitación EN esté activa. Dicho de otra forma, se puede entender un biestable T como un
conmutación circuito con la siguiente tabla de transición:

T Qt Qt+l
T Qt+l La ecuación
O O O
La tabla de la derecha
O característica de
muestra la misma O 1 1 Qt
un biestable Tes:
información pero de 1 O 1 1
forma más concisa. Qt
1 1 O

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 ,619 142355 T-4.7


4.3 Temporización de circuitos lógicos
En ocasiones puede suceder que aunque un circuito está bien diseñado a nivel lógico
después no funciona como se espera en la práctica. Esto normalmente es debido al retardo
de cada uno de los componentes del circuito .
Se trata de estudiar en este apartado el período mínimo o, lo que es lo mismo, la
frecuencia máxima, que puede tener la señal de reloj para que un circuito funcione
correctamente teniendo en cuenta los retardos de los componentes implicados.

4.3.1 Parámetros característicos de las puertas lógicas

Las puertas son dispositivos asíncronos. Esto significa que la salida cambia en el momento
que cambia alguna de sus entradas (si suponemos que su tiempo de propagación es nulo),
sin esperar a ninguna señal de reloj.

• ¡Tiempo de propagación (td~ -7 Tiempo que tarda una puerta en cambiar su salida
desde que cambia alguna de sus entradas. El tiempo de propagación es un parámetro
dado por el fabricante.

4.3.2 Parámetros característicos de los biestables

o El flanco activo puede


ser el de.subida o el de
bajada
Los biestables son dispositivos síncronos. Esto significa que su salida solo cambia cuando
se produce un flanco activo de reloj (si suponemos que su tiempo de propagación es nulo).

• ¡Tiempo de propagación (tFF)I-7 Tiempo que tarda un biestable en cambiar la salida


desde que recoge las entradas en el flanco activo del reloj.

• ITiempo de establecimiento (set up time, tsetup~ -7 Tiempo antes del instante de flanco
activo en el cual las entradas del biestable no deben cambiar.

El tiempo de hold no es • ITiempo de hold (hold time, thold)l-7 Tiempo después del flanco activo en el cual las
un parámetro que entradas del biestable no deben cambiar.
intervenga en el cálculo
de la frecuencia
máxima del reloj de un Observación:
circuito.

El tiempo de propagación, el tiempo de setup y el tiempo de hold son parámetros dados


por el fabricante. Es decir, en los ejercicios son dato.

Todos estos 4.3.3 Parámetros característicos del reloj


parámetros del reloj
quedan completamente
ilustrados en la figura • IPeriodo del reloj (1)1-7 Tiempo entre transiciones sucesivas en la misma dirección.
de la página 5.1 Esto es, el tiempo que transcurre entre un flanco de subida y el siguiente flanco de
subida, por ejemplo.

Habitualmente se mide • IFrecuencia de reloj (f)I-7 Inversa del Período.


en Mhz . .

• ICiclo de trabajol-7 es el porcentaje de tiempo que la señal de reloj se encuentra en su


En porcentaje, % nivel ALTO.
Lo usual es que el ciclo de trabajo sea del 50% lo que significa que el reloj tiene los
dos semiciclos alto y bajo de igual duración. En este caso también se dice que el reloj
es simétrico.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.8


4.3.4 Cálculos de temporización
Estos son dos cálculos
típicos en ejercicios de
examen. 4.3.4.1 Periodo mínimo (ó frecuencia máxima) del reloj del circuito.
Los puntos 5.3.4.1 y
5.3.4.2 explican cómo
debemos actuar con
Para hallar este valor, calcularemos cuánto tarda en "volver" (por el camino más largo) O
una señal, desde la salida de un biestable hasta una de sus entradas. Este camino incluye:
ante circuitos con un
único biestable
(además de puertas Tiempo de propagación del biestable, tFF.
lógicas). Tiempos de propagación td de todas las puertas que se encuentre a su paso.
Tiempo de setup del biestable, t setup , necesario para que el biestable "se prepare" para
Observa que no su actuación en el siguiente flanco activo del reloj.
interviene el tiempo de
hold .

4.3.4.2 Máximo tiempo de hold de un biestable.

Para calcular el máximo tiempo de hold de un biestable, calcularemos cuánto tarda en


"volver" (por el camino más corto) una señal, desde la salida del biestable hasta una de
sus entradas.

Este será el tiempo real que van a tardar en cambiar sus entradas después del flanco
activo, y por lo tanto este es el tiempo máximo que debe necesitar de hold el
biestable. Si necesitase más, nuestro circuito no funcionaría con la topología actual.

Este camino incluye:


o
Observa que no Tiempo de propagación del biestable, tFF.
interviene el tiempo de Tiempos de propagación td de todas las puertas que se encuentre a su paso.
setup.

Observaciones para circuitos con más de un biestable:

• Para circuitos con más de un biestable, los caminos que buscaremos serán desde la
salida de cualquier biestable, hasta la entrada de cualquier biestable. Por supuesto,
podemos llegar al mismo biestable del que partimos.

• Lo importante es que exploremos TODOS los caminos posibles y elijamos:

~
\.kJs '\W\~na..VV\~ ü\. es\..e.
Q...ie~ ~\o l.U'l ~ \e.s\o.~\e
I

(l.c.\~~ \j e e-I/\ ~\.an CO óe


S \)..'-o\.O~ .
1'., '\
<1\.~( \.e.e el
l
/

IOl~~le

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4 .9


4.4 Contadores
Los contadores son circuitos secuenciales síncronos implementados internamente mediante
biestables. Si bien su función varía según su topología, se puede decir en general que estos
circuitos realizan una cuenta binaria, que podremos programar para forzar su inicio, su
final, y su sentido de cuenta.

4.4.1 Implementación mediante flip-flops T


Vcc
'L- T Q QO

CLK CLK

T Q Ql

>-- >CLK

I T Q Q2

....- 1> CLK

~ T Q Q3

'---- 1> CLK

4.4.2 Implementación mediante flip-flops D.

v ••
4, D Q QO

CLK CLK

I
,"'
~/

~
D

I>CLK
Q Ql

I
I ---1l' "
~/
D Q Q2

.....- I>CLK

--k->I---;r, D Q Q3

- I>CLK

.~

--------------~----------------------~---------------------------------------------

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.10


4.4.3 Contadores comerciales

En el caso de los contadores comerciales (como cualquier integrado comercial) el


fabricante siempre proporciona una hoja de especificaciones donde aparece un esquema del ~

patillaje y un cronograma (Timing Diagram). Este cronograma proporciona normalmente \ )


toda la información necesaria para conocer el funcionamiento del contador.

4.4.3.1 Contador 74LS169


El resto de contadores
comerciales tienen fun- A modo de ejemplo, vamos a estudiar con detalle un modelo determinado, el 74LS169,
cionamientos similares cuyo esquema y cronograma mostramos a continuación.
Dual-In-Line Package

~::; ,...-_O_UT_P_UT_S_ - - " ENABLE 3 14


A la izquierda Vcc OUT OA Os Oe OD T LOAD 4 A CA 13
mostramos el patillaje 1,6 15 14 13 12 11 10 9 5 S as 12
del integrado, tal y
6 e OC 11
como se comercializa. o QD ¡....j5
A la derecha, su
símbolo lógico. 2 Reo ~

CLK
,- :> 9....
----r--- LOAD
U/D
10 ....
Observa que en el 7":.. ENT
símbolo lógico se ---..,.. ENP
dibujan las entradas a 1 2 3 4 5 6 7 la 74L$169
la izquierda y las UfO CLOCK A s e D ENASLE GND
¡;
salidas a la derecha
DATA INPUTS

Timing Diagram
LS169A Binary Counters
Typical Load, Count, and Inhibit Sequences

LOAD~

Las líneas a trozos de


las entradas A BCD
significan que pueden
DATA
INPUTS
A

c
----+-'
.-
tomar el valor "O" ó "1" L_
indistintamente.

PANDl'

--.,
Os __ _

QD __ ---1

RIPPLE - --,..--+-1-----.
CARRY
OUTPUT - _-.J
I 13 14 15 o 2 2 2 o 15 14 13
I II--COUNTUP---t--INHIBIT--I I----COUNT DOWN - - -

LOAD

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142 355 T-4.11


Descripción del patillaje del 74LS169

Entradas A BCD
I~
En estas entradas podemos poner el número que nosotros queramos en binario desde el
D' = decimal D' 0=BOOOO hasta el D' 15=B' 1111. siempre teniendo en cuenta que A es el bit menos
=
B' binario
significativo y D es el más significativo.
Este número sólo pasa a las salidas QA QB Qc QD cuando se activa el LOAD.

EntradaCLK

Es la entrada del reloj. El contador sólo "funciona", es decir, solo lee las entradas y saca las
salidas, cuando se produce el flanco activo del reloj (que en nuestro caso, es el de subida).
El resto del tiempo el contador no hace nada.

Entrada LOAD

La bolita que hay en Cuando el LOAD se activa el valor de las entradas A BCD es transferido a las salidas QA
esta entrada señala QB Qc QD de forma inmediata y con independencia de lo que hubiese en las salidas
que es activa a nivel
bajo. Esto quiere decir anteriormente.

e que el.LOAD solo se


activa cuando ponemos
un "O" en esta entrada.
Mientras LOAD permanezca a "1" las entradas A BCD no se utilizan para nada.

Entrada VID (Up / Down)

Indica al contador si tiene que contar hacia arriba o hacia abajo. Si ponemos un "1" en esta
entrada entonces el contador, en cada flanco activo del reloj, aumentará en una unidad el
valor anterior de las salidas. Sin embargo si ponemos un "O" el contador disminuirá en una
unidad el valor anterior de las salidas.

Entradas ENT Y ENP

Estas son las entradas de ENABLE y las activaremos o desactivaremos Siempre


conjuntamente (es decir, las dos a "1" o las dos a "O").
Mientras ambas valen "O" el contador funciona correctamente pero si las dos valen "1"
La bolita significa que
son activas a nivel bajo. entonces el contador se inhibe (inhibit) y la salida ya no cambia más (se queda fija) en los
sucesivos flancos del reloj; esto equivale a "apagar" el contador.

Salidas Q~-ºº-ºr2

En estas salidas veremos aparecer, en cada flanco del reloj, un número entre el D'O=BOOOO
hasta el D' 15=B'1111.
Si el contador está inhibido (ENT=ENP="1") aparecerá siempre el mismo número y si no
10 está ese número irá cambiando siguiendo la secuencia que hayamos programado.
La salida de un contador puede servir, por ejemplo, para iluminar un display de siete
segmentos como el de un reloj digital.

Salida RCO (Ripple Carry Output)

Esta salida avisa de cuándo el contador ha llegado al tope. En nuestro caso avisa si el
contador llega a D'15=B'1111 si está subiendo o avisa si el contador llega a D'O=B'OOOO
si el contador está bajando.
La bolita significa que Por ser activo a nivel bajo, saldrá un "1" mientras la cuenta no haya llegado al tope y sale
es activo a nivel bajo. un "O" si llega al tope (es decir, 15 si está subiendo o Osi está bajando).

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.12


Estos circuitos también
reciben el nombre de
4.5 Registros de desplazamiento
"Registros de
corrimiento". Un registo de desplazamiento es un registro de n bits con una disposición para recorrer sus
datos almacenados por una posición de bit en cada tic del reloj. Al igual que los contadores
los registros son circuitos secuenciales síncronos implementados internamente mediante n
\ I
biestables.

4.5.1 Registros de desplazamiento de entrada serie y salida serie

La figura siguiente ilustra la figura de un registro de estas características:

SER IN o OC--

CLOCK ~CK

Un registro de
desplazamiento de n
Lo Oc--
bits de entrada serie y
)CK
salida serie puede
emplearse para
retardar una señal en n I
tics del reloj. •
• I
I

• I
I

I
01----- SEROUT
'------1) CK

La entrada serie SERIN especifica un nuevo bit que será desplazado en un extremo
para cada tic del reloj.
Este bit aparece en la salida serie, SEROUT, después de n tics del reloj, y se pierde un
tic más tarde.

4.5.2 Registros de desplazamiento de entrada serie y salida paralelo

La figura siguiente ilustra la figura de un registro de estas características:

SERIN o O 1Q
\

CLOCK ~CK )

L D Q 2Q

)CK
Un registro así puede
utilizarse para efectuar
la conversión serie a ! •
paralelo, muy utilizada
en electrónica digital. •

o Qt----NQ

CK

Como se puede observar, tiene salidas para todos sus bits almacenados, haciéndolos quedar
disponibles para otros circuitos.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 ,619 142355 T-4.13


4.5.3 Registros de desplazamiento de entrada paralelo y salida serie

Este circuito funciona a la inversa que el anterior, como se puede observar en la figura
siguiente:

CLOCK--------------------------------~

LOAD/SHIFT -------tJ--{j(

SERfN ---+--------+----j
'---'--'O Q

1D CK

Un registro así puede


utilizarse para efectuar
la conversión paralelo a O Q
serie.
2D ----+--------+-----1 CK

••

O Q SEROUT

NO----r---------~ CK

Para cada tic del reloj el registro carga nuevos datos de las entradas ID - ND, ó recorre su
contenido actual, dependiendo del valor de la entrada de control LOAD/SHIFT.

4.5.4 Registros de desplazamiento de entrada paralelo y salida paralelo

Al proporcionar salidas para todos los bits almacenados en un registro de desplazamiento


de entrada en paralelo, obtenemos el registro de desplazamiento de entrada paralelo y
salida paralelo de la siguiente figura:

CLOCK
LOAD/SHIFT

SERIN
10
C~~
D Q

10 CK

D Q 20
2D CK

••

D Q NO
NO CK

I
'~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.14


4.5.5 Registros comerciales

La siguiente figura muestra los símbolos lógicos para tres populares registros de
desplazamiento de 8 bits integrados:

74xl64 7
CLK
74x,166
n
8
CLK 'CLKINH 74x194
CLR 11
CLK
SERA
2
SERS SER
3. :2 si
QI;. A 9
4 3 SO
QS Eí
OC .5 4: 7
C UN
6 5 B 12
QD O O QD
m :lO 5 13
QE
11
E e QC
OF 11 '4 14
F B OB
12 12 3 15
QG G' A QA
1"
OH
,,-!:
14 1:3 2·
H OH RiN

4.5.5.1 Registro 74x164


(~)
Los integrados '164 y
'166 son registros de Es un dispositivo de entrada serie y salida paralelo con una entrada de borrado asíncrona "-._---:

desplazamiento (CLR_L). Tiene dos entradas serie que se operan con AND de manera interna, es decir,
unidireccionales, dado
que efectúan el
tanto SERA como SERB deben ser 1 para ser recorridos en el primer bit del registro.
desplazamiento en una
sola dirección. 4.5.5.2 Registro 74x166

Es un registro de desplazamiento de entrada paralelo y salida serie, también con entrada


asíncrona de borrado. El dispositivo efectúa el desplazamiento cuando SHlLD es 1 y de
otro modo carga nuevos datos.

;::~ClK :~
Los diseñadores del
'166 lo destinaron para
El '166 tiene un arreglo de temporización
poco habitual llamado "reloj de Cl..,K
que CLK sea colocada
a un reloj de sistema de compuerta": tiene dos entradas de reloj CLKINH
carrera libre y para que
CLKINH sea asertiva conectadas a los flip-flops internos como
para inhibir CLK. se muestra en la figura de la derecha:
to other
f1!p-l!ops
4.5.5.3 Registro 74x194
\
A modo de ejemplo, nosotros vamos a estudiar con más detalle detalle un modelo "--)
-
determinado, el 74LS194. Se trata de un registro de desplazamiento bidireccional de
entrada en paralelo y salida en paralelo de 4 bits.

A continuación, mostramos su function tab1e y cronograma:

Function Table
Inputs Outputs
El '194 es un registro Mode Serial Parallel
de desplazamiento Clear Clock OA OB Oc 00
bidireccional porque su
S1 SO Left Right ABCO
contenido puede ser L X X X X X XXXX L L L L
desplazado en H X X L X X XXXX OAO OBO OCO ODO
cualquiera de dos X
direcciones,
H H H t X a bcd a b e d
dependiendo de una
H L H t X H XXXX H OAn OBn OCn
entrada de control.
H L H t X L XXXX L OAn OBn OCn
H H L t H X XXXX OBn OCn ODn H
H H L t L X XXXX OBn OCn ODn L
H L L X X X XXXX OAO OBO OCO ODO (
1
\......J

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.15


CLOCK

MODE
CONTROL
¡so
INPUTS Sl

CLEAR

SERIAL! R
DATA
INPUTS L

PARALLEL{:
DATA
INPUTS C

OA :
O -
OUTPUTS B - -+-_+_---4
{ OC:

00 :-+--+----i
I
CLEAR LOAD
_r---INHIBlT
CLEAR

(J
Descripción del patillaje del 74LS194

Entradas A BCD
=
D' decimal En estas entradas podemos poner el número que nosotros queramos en binario desde el
B' = binario D'O=BOOOO hasta el D'15=B'1111. Este número solo pasa a las salidas QA QB Qc QD
cuando se activa S 1=" 1" , S0=" 1" .

EntradaCLK
Es la entrada del reloj. El registro solo "funciona", cuando se produce el flanco activo del
reloj (que en nuestro caso, es el de subida). El resto del tiempo el registro no hace nada.

Entrada CLEAR
Si ponemos esta patilla a "1" no hace nada ysi la ponemos a "O" ponemos todas las salidas
a cero Esta entrada es asíncrona, esto quiere decir que las salidas se ponen a "O" en el
mismo instante en que poenemos un "O" en la entrada CLEAR sin necesidad de esperar al
flanco activo.

Entradas SO SI
Vemos las cuatro combinaciones posibles:

Se comporta como el SI = "1" SO = "1"


LOAD de un contador
Cuando llega el flanco activo el valor de las entradas A BCD es transferido a las
salidas QA QB Qc QD con independencia de lo que hubiese en las salidas anteriormente.

Se comporta como el
SI = "0" SO = "0"
ENABLE de un conta-
dor
En este caso el registro se inhibe (inhibit) y las salidas ya no cambian más (se quedan
fijas) en los sucesivos flancos del reloj; esto equivale a "apagar" el registro.
(~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.16


SI = "1" SO = "0"
Cada vez que llega el flanco activo pone el valor de Serial_Left en la salida QD,
En la Function Table al traslada el anterior valor de QD a la salida Qc, el anterior valor de Qc a QB y .el anterior
valor anterior de las
valor de QB a QA. Es decir, desplaza las salidas hacia la izquierda (o hacia arriba, según
salidas los llaman
QAn, QBn, QCn, QDn se mire). Importante: El valor anterior de QA se pierde. t)
"---- /

SI = "0" SO = "1 "


Cada vez que llega el flanco activo pone el valor de Serial_Right en la salida QA,
Es análogo al caso
anterior pero en el otro
traslada el anterior valor de QA a la salida QB, el anterior valor de QB a Qc y el anterior
sentido valor de Qc a QD. Es decir, desplaza las salidas hacia la hacia la derecha (o hacia abajo,
según se mire). Importante: El valor anterior de QD se pierde.

Entrada Serial Left


En esta entrada podemos poner el valor que nosotros queramos (O Ó 1) que solo se utilizará
en el caso en que tengamos Sl="l", SO="O" (desplazamiento hacia la derecha}; En ese
caso el valor de Serial_Left será transferido a QD.

Entrada Serial Right


En esta entrada podemos poner el valor que nosotros queramos (O Ó 1) que solo se utilizará
en el caso en que tengamos Sl="O", SO="l" (desplazamiento hacia la ), en ese caso el
valor de Serial_Right será transferido a QA. (~)

Salidas Q&-º~~
En estas salidas veremos aparecer, en cada flanco del reloj, un valor entre el D'O=BOOOO
hasta el D'15=B' 1111.

~I
So

~,------
QL¡-----______ ~
Ger------_
~"t_---__.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.17


Báscula R-S
r ~¡'f\Crof\o
Latch O
~~ 6\\-,-o b
I~
(
1"---./
Flip-Flop O *
~:\.\'\cron.o
Flip-Flop ~~) '* Biestable T asíncrono F")FIOP T •
~
5~YIC(@l1o
klV\CXOt\O
'\)~''O<:..Cor)
a\'i~'

fi
~'
j~
o.t:. So'\oe~e: Q.
~~
<:.\1( .J
dI< __
~
- c-'t..kG'-\.
~
-~.
c. <lt

":!~ ~
el
Q ~
~
J>
"
c.c...óo... \}e..~~ ~
lo ó'~e'( iA ~t
~~
~\ ;)eJ E~6¡,e PAlZZ> ~t ~ :§
J b j,
e
.¿
D Qt Qt+1 D Qt Qt+1
~
J
./
K Qt Qt+1
J. T Qt Qt+i
-

.:{
o o o~ f-bó o"'" o -"0 o o
o o 1 - t-~ I o. . . 1 "'loO o o
0- ~c
1-¡,s. ..
o
o
o
1 ,o
o 1 0-!-bo 1 o ", o 1 o <9 '"~
.Q 1 o 1
o 1 1-~\
o~
v~
-
1 ~\ o 1 1 o 1 1 o
1 o. . o 1"'0 1 o o \Ji;
-

,1) 1 o 1 "0 1 o 1
1
I
03
f
1 o '"':bl
1'~
1 1 @- ~t
:1( 1 1 1 f'i-I 1 1 _g)~CJ
D Qt+1
o e
1
J K Qt+1 EN T Qt+1 T Qt+1
o o Qt:,. o X ~ o Q.t
o 1 o 1 o ~ «lo
R S Qt+1 e D Qt+1 1 o I 1 1 -
~
o
o
o
1 ,
CQr o
1
x
o
Q~
o IQ~=DJ
1 1 Cft:.
1 o o 1
____ L......
1 __ I 'Sobre \0'60 se ú.$O..
1
'---- -
1 - - .e..Vl Q..U~orno..las

, Qt Qt+1 J K I

o
o
1
o
1
o
,
O

X
X
Xl
I I

1 1 )( VI
- -

www.monteroespinosa.com Clases de EDIG Tfnos 91 5445377 619 142355 I


TEMA 5: AUTÓMATAS

Así pues, desde ahora En este tema vamos a estudiar el funcionamiento de autómatas, que son máquinas de
usaremos el término de estado síncronas temporizadas.
máquina de estado o
autómata
indistintamente. "Máquina de estado" es un nombre genérico dado a estos circuitos secuenciales.
"Temporizada" hace referencia al hecho de que sus elementos de almacenamiento
(flip-flops) emplean una entrada de reloj.
"Síncrona" significa que todos los flip-flops utilizan la misma señal de reloj. Como ya
hemos estudiado, una máquina de estado de esta naturaleza cambia de estado
solamente cuando se presenta un flanco de disparo o "pulso" en la señal de reloj.

Formalmente, se puede decir que un autómata es una quíntupla formada por:


• Un conjunto E fmito de entradas
• Un conjunto S finito de salidas
• Un conjunto Q de estados
• Una función de transición (también llamada "de estado siguiente):
f:ExQ~Q
• Una función de salida: f: E xQ ~ S
Si el conjunto de estados Q es fmito entonces decimos que es un autómata finito. Nosotros
cJ
estudiaremos solamente autómatas fmitos.

A lo largo de los siguientes apuntes nos referiremos continuamente a dos de estas


máquinas, que aprenderemos a analizar y diseñar: la máquina de Mealy y la de Moore.

Máquina de Mealy
En la máquina de Mealy la salida depende del estado en que se encuentra la máquina y de
las entradas, por tanto la salida no es síncrona con el reloj.

Se puede decir que en


Lógica ---">
una máquina de Mealy
las salidas están entradas -~ de estado excitación Memoria estado actual Lógica
siguiente de salida salidas
asociadas a las de estado 1-- --,1 -y

transiciones, no a los
estados.
'"-==> F entrada
G
de reloj

Maquina de Moore
En la máquina de Moore la salida depende exclusivamente del estado en que se encuentra
la máquina.

Se puede decir que en


la máquina de Moore
las salidas están Lógica
entradas
asociadas a los t_ o' > de estado
Siguiente·
excitación Memoria estado aclual Lógica
de salida
estados, o lo que es lo de estado - salidas
mismo, todas las -¡-'> F G
transiciones que entrada
conducen a un mismo de. reloj
estado tienen asociada
la misma salida.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355 I T-5.1


5.1 Análisis de autómatas
5.1.1 Estructura de una máquina de estado

En las figuras de la página anterior ilustramos la estructura general de una máquina de


estado síncrona temporizada. La memoria de estado es un conjunto de n flip-flops que
almacenan el estado actual de la máquina, y tiene 2n estados distintos. Los flip-flops se
encuentran todos conectados a una señal de reloj común que ocasiona que cambien de
estado en cada pulso del reloj.

En la máquina de Mealy:

El estado siguiente está determinado por la lógica de estado siguiente F, como una
función de la entrada y estado actuales.
Tanto F como G son
estrictamente circuitos La lógica de salida G determina la salida como una función de la entrada y el estado
lógicos actuales.
combinacionales.

Estado siguiente = F(estado actual, entrada)


Máquina de Mealy Salida = G(estado actual, entrada)

En la máquina de Moore:

El estado siguiente está determinado por la lógica de estado siguiente F, como una
función de la entrada y estado actuales.
La lógica de salida G determina la salida como una función de la sólo del estado
actual.

Estado siguiente = F(estado actual, entrada)


Máquina de Moare Salida = G( estado actual)

Obviamente, la única diferencia entre los dos modelos de máquina de estado se encuentran
en cómo son generadas las salidas. En la práctica, muchas máquinas de estado deber ser
categorizadas como máquinas de Mealy, porque tienen una ó más salidas del tipo Mealy
que dependen de la entrada así como también del estado. Sin embargo, muchas de estas
máquinas también tienen una ó más salidas de tipo Moore que dependen solamente del
estado.

Observación

Las máquinas de estado suelen emplear flip-flops D disparados por flanco positivo para su
memoria de estado, aunque también es posible hacer uso de flip-flops D disparados por
flanco negativo, cerrojos D ó flip-flops J-K.

5.1.2 Ecuaciones características

Como ya vimos en el tema 5, el comportamiento funcional de un cerrojo o flip-flop puede


describirse formalmente mediante una ecuación característica que especifica el siguiente
estado del flip-flop como una función de su estado y entradas actuales

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 5377 , 619 142 355 T-5.2
Las ecuaciones características de los flip-flap s del tema 5 se enumeran a continuación:

Tipo de dispositivo Ecuación característica


Latch D Ql+l = D
Flip-flop D disparado por flanco Qt+l =D
Báscula R-S Q+l =S+R·Q
Flip-flop J-K Ql+l = JQt +K ·Qt
Flip-flop T con habilitación (teoría) Qt+l =T·Qt +T ·Qt
Flip-flop T (problemas) Qt+l =Qt

5.1.3 Análisis de máquinas de estado con flip-flops D

El objetivo del análisis de circuito secuencial es determinar las funciones de salida y estado
siguiente de modo que pueda predecirse el comportamiento de un circuito.

El análisis de una máquina de estado síncrona temporizada tiene siete pasos básicos:

1. Determinar las ecuaciones de excitación para las entradas de control del flip-flop, que
son ecuaciones lógicas que expresan las señales de excitación como funciones del
Para biestables D, estado y entrada actuales. Estas ecuaciones pueden obtenerse del diagrama del circuito.
recordemos que en el
flanco ascendente de la 2. Sustituir las ecuaciones de excitación en las ecuaciones características del flip-flap para
señal de reloj, cada f1ip- obtener las ecuaciones de transición. Estas ecuaciones expresan el valor siguiente de
flop D muestrea su
entrada D y transfiere las variables de estado como una función del estado y entrada actuales.
este valor a su salida
Q. Por lo tanto, para 3. Hacer uso de las ecuaciones de transición para construir una tabla de transición. Para
determinar el siguiente ello, evaluamos dichas ecuaciones para cada posible combinación de estado/entrada.
valor de Q (es
Tradicionalmente, una tabla de transión enumera los estados en la izquierda y las
decir, Ql+l)' primero
Qombinaciones de entrada en la parte superior de la tabla.
deberemos determinar
el valor actual de D. 4. Determinar las ecuaciones de salida.
5. Agregar los valores de salida a la tabla de transiCión para cada combinación de estado
(Moare) o de estado/entrada (Mealy) y crear una tabla de transición/salida.
6. Nombrar los estados y sustituir nombres de estado por combinaciones de variables de
estado en la tabla de transición/salida para obtener una tabla de estado/salida.
7. Dibujar un diagrama de estado correspondiente a la tabla de estado/salida.
I )

Este apartado séptimo


Un diagrama de estado presenta la información de la tabla de estado/salida en formato "'-~
es opcional. gráfico.
Tiene un círculo (ó nodo) por cada estado, y una flecha (ó arco dirigido) para cada
transición.
La letra dentro de cada círculo es un nombre de estado. Cada flecha que abandona
un estado dado apunta al siguiente estado para una combinación de entrada dada.
También muestra el valor de salida producido en el estado dado para esa
combinación de entrada (si la máquina es de Mealy) ó puede mostrar los valores de
salida dentro de cada círculo de estado (si la máquina es de Moare, puesto que son
funciones de estado solamente).
Observación

En una máquina con n entradas, tendríamos 2n flechas dejando cada estado. Esto es
complicado si n es grande. Por convención, solamente usaremos una flecha para cada
distinto estado siguiente.
I
J

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-5.3


5.1.4 Análisis de máquinas de estado con flip-flops J-K

Las máquinas de estado síncronas temporizadas que se construyen a partir de flip-flops J-K
también se pueden analizar aplicando el procedimiento básico que se indicó en el capítulo
(\ anterior. La única diferencia es que existen dos ecuaciones de excitación para cada flip-
flop: una para J y otra para K.

Para obtener las ecuaciones de transición, ambas deben sustituirse en la ecuación


característica del biestable J-K, descrita en la tabla de la página anterior.

5.2 Diseño de autómatas


Los pasos de diseño de circuitos secuenciales, comenzando a partir de una especificación o
descripción en palabras, son justamente el inverso de los pasos de análisis que describimos
en el capítulo 6.1:

1. Pasar las especificaciones verbales a un diagrama de estados.


Algunos textos
recomiendan que el 2. Asignar códigos a los estados.
primer paso sea la
construcción de la tabla 3. Construir la tabla de transiciones entre estados.
estado/salida
Si la máquina es Mealy hace falta además incluir las salidas asociadas a cada

n transición.
Si la máquina es de Moore se puede hacer una tabla auxiliar con las salidas
asociadas a cada estado en vez de incluirlas en la tabla de transiciones.
4. Seleccionar los elementos de memoria (biestables J-K, D, oo.). Esto lo dicen en el
examen.
5. Obtener las tablas de excitación que muestren los valores de excitación requeridos
para obtener el siguiente estado deseado para cada combinación de estado/entrada.
Sólo asimilaremos bien 6. Simplificar las ecuaciones de excitación, a partir de la tabla de excitación.
estos pasos cuando los
abordemos hu 1 l"
directamente en 7. p ementar e CIrCUItO.
ejercicios.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-5.4


Abajo puedes encontrar APÉNDICE 1: PUERTAS LÓGICAS
ejemplos de
componentes
comerciales que
contienen estas puertas
lógicas:
PuertaAND x y X AND Y
O O O
74HC08
O 1 O
1 O O
1 1 1

Puerta OR x y XOR y
O O O
74HC32 O 1 1
1 O 1
1 1 1

PuertaNOT NOT X
74HC04 1
O (j

PuertaNAND X Y XNAND y
74HCOO
O O 1
O 1 1
1 O 1
1 1 O

PuertaNOR X Y XNOR y
74HC02 O O 1
O 1 O
1 O O
NOTA: Las puertas
NANO y NOR son
1 1 O
típicamente más
baratas y fáciles de
fabricar.
PuertaXOR X Y XXOR y
O O O
O 1 1
74HC86
=D- y' ~Y'-:' ~ y {. >,y
1
1
·0
1
1
O

PuertaXNOR X Y XXNOR y
O O 1
74HC86 O 1 O
1 O O

~ eP --
Y ::: X y +-.,¿v
1 1 1

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 54453 77 , 619 142 355 T-A1.1


APÉNDICE 2: METAESTABILIDAD,
NORMAS DE DISEÑO SíNCRONO

Bases del funcionamiento síncrono


• Las salidas de los circuitos secuenciales sólo pueden cambiar de estado en los flancos
activos de reloj.
• El régimen transitorio de los circuitos finaliza cuando ha transcurrido el tiempo de
propagación máximo del circuito desde el último flanco activo de reloj.

r "---t----!r.
tPLC
P~
¡ ÍPff
:'" t:<
¡
,-+--,
ÍPLC
~~
~'----.... ~ '~/'
Cambio de estado Fín del Régimen Transitorio

o • Para que las salidas de los circuitos combinacionales (conectadas a la entrada de


biestables) puedan registrarse correctamente deberán ser estables un tiempo antes del
flanco activo de reloj, el tiempo de set-up de los flip-flops.

----!I ¡tpff 1
:: T
tPLC
:
..
¡ ¡
tsu
>*-_.... _ .._-_._-----_..;¡.¡
:1041 ::
J...J:.lk:

Por tanto: Tclk> tpff + tpLC + tsu

• La frecuencia máxima de la señal de reloj en un circuito secuencial síncrono viene


dada por la expresión:

1
fCLKmax = ---------
tpffmax +tpLCmax +tsumin

Donde t pLCmax es el tiempo de propagación del bloque combinacional más lento de los
existentes en el circuito.

Normas de diseño síncrono


Un circuito digital síncrono funcionando con una frecuencia de reloj menor o igual a la
dada por la expresión anterior funcionará correctamente si:
• No se activan, durante la operación normal del sistema, las entradas asíncronas de los
flip-flops.
• Las entradas síncronas de los flip-flops no están alimentadas por señales asíncronas.
• Las entradas asíncronas de los flip-flops no están alimentadas por señales síncronas.
• No existe lógica combinacional realimentada.
Ver el apartado: • Todas las entradas de los circuitos combinacionales, incluso las externas al sistema,
"sincronización de
~J entradas asíncronas". están registradas.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 5377 , 619 142 355 T-A2.1
• Se emplean flip-flops activos en el mismo tipo de flanco como elementos de memoria
del sistema.

• A todos los flip-flops les llega de manera simultánea la señal de reloj del circuito. O
Esto, en general, no es posible que se verifique de manera estricta; el reloj llegará con
cierto desfase a las entradas de los flip-flops debido a las distintas longitudes de las
pistas y a las distintas cargas que soportan los buffers del árbol de reloj.

El desfase en la llegada del reloj a los flip-flops de un circuito se denomina skew del
reloj. Un circuito síncrono puede admitir un valor máximo de skew en la señal de reloj.
Vamos a verlo con más detenimiento:

Q1 Q2
IN D Q 1-------1 D Q

CLOCKD
En la figura, el skew: es la
diferencia de tiempo entre los FF2
flancos de CLOCK y CLOCK - - - - i l - - -____
CLOCKD

Cálculo del "skew"

No hay problemas en un circuito si se cumple que:

Itp-ff(min) +tcomb(min) - tho1d -tskew(max) > 01

Los dos primeros términos son el mínimo tiempo después del flanco de reloj tras el
cual el valor a la entrada de un biestable cambia.
El tiempo de "hold" es el mínimo tiempo en que la entrada puede cambiar
El "skew" se sustrae del margen existente en el tiempo de "hold"

Compesación del "skew"

Para solventar este problema, podemos acudir a varias técnicas, como lo son:
Usar biestables con mayor tiempo de propagación.
Realizar un ajuste específico de los retardos combinacionales.
Usar biestables con menor tiempo de hold.

Las normas de diseño síncrono son una buena guía para la realización de diseños con un
funcionamiento seguro. En su aplicación práctica es frecuente que se den casos en los que
resulta inevitable vulnerarlas: en el interfaz con buses asíncronos o con memorias
síncronas, por ejemplo, o en el de la sincronización de entradas asíncronas. Cuando esto
ocurra es aconsejable aislar los módulos de interfaz con sistemas asíncronos y diseñar el
resto del sistema ateniéndose a las reglas enunciadas.

En el diseño de circuito es aconsejable utilizar flip-flops tipo D, puesto que son los de
funcionamiento más simple y facilitan la interpretación del modo de operación del circuito.
Además, con los flip-flops tipo D resulta muy sencilla la incorporación de entradas
síncronas de reset, preset y habilitación de reloj. Las entradas asíncronas de los flip-flops
sólo deben utilizarse, si se desea, para la inicialización del circuito, pero nunca durante la
operación normal del mismo.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A2.2


Metaesta bilidad

~ Recuerda que en la Cuando se violan los tiempos de set-up o de hold en un flip-flop, su salida puede pasar a un
I \ báscula R-S, al poner nivel intennedio; al cabo de un tiempo indetenninado tomará aleatoriamente el valor Oó l.
sus entradas a 1,
podemos originar
también un estado La probabilidad de que un flip-flop entre en estado metaestable, así como el tiempo de
metaestable. pennanencia en dicho estado, dependen del proceso tecnológico y de las condiciones
ambientales de funcionamiento, aunque se puede generalizar que los flip-flops pasan
rápidamente a un estado estable.

El problema es que si la salida del flip-flop es muestreada en el estado metaestable, se


propagará un valor indefinido a la lógica a la que esté conectado.

Sincronización de entradas asíncronas


A menudo existen entradas al circuito que son asíncronas respecto a su reloj y deben ser
sincronizadas antes de poder ser usadas en el mismo.

o La sincronización consiste en registrar la entrada en un flip-flop conectado al reloj del


circuito. Durante esta operación puede ocurrir que se violen los tiempos de set-up o de hold
del flip-flop. Como consecuencia, el flip-flop puede registrar o no el evento de entrada o, lo
que es peor, entrar en un estado metaestable. Para evitar esto hay muchas topologías de
circuitos de sincronización.

El circuito de la figura siguiente muestra el esquema circuital típico para sincronizar


entradas asíncronas, abordando el problema de metaestabilidad explicado anterionnente:

Cabe reiterar que, Asíncrona Síncrona


según el tipo de -----ID Q Q D Q
entrada que deseemos
sincronizar, el circuito
de sincronización será
CLK CLK CLK
distinto. El mostrado es
un ejemplo muy típico.
Reloj

C) Este circuito provee un tiempo para que desaparezca la metaestabilidad antes de usar la
señal en el circuito. A cambio, nuestro sistema tendrá un mayor tiempo de respuesta.
Veamos el cronograma de la situación:

Reloj

Asíncrona

Síncrona

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A2.3


APÉNDICE 3: PUERTAS NANO Y NOR
La importancia de estas
En este apéndice vamos a dedicarnos a la implementación, mediante puertas· NAND y
puertas, NAND y NOR,
radica en que son
tipicamente más
baratas y fáciles de
NOR, de todas las demás funciones lógicas sencillas, vistas en el tema 3. Así mismo,
describiremos la función lógica que implementan, (NAND y NOR lógico), usando puertas
o
fabricar. "normales", si bien esta labor será de menor interés.

IPuertas NANDI
1. NAND mediante AND + NOT
NOT('X' AND 'Y')=X·Y='X' NAND 'Y'

2. NAND mediante OR + NOT


(NOT 'X') OR (NOT 'Y')=X +Y=X·Y='X' NAND 'Y'

3. Implementación del resto de funciones mediante NAND


• NOT
'X' NAND 'X'=X·X=X=NOT 'X'

• AND

La negación podemos hacerla


NOT('X' NAND 'Y')=X·Y=X·Y='X' AND 'Y'
mediante NANO.

~
• OR
~ (NOT 'X')NAND(NOT 'y')=x·Y=x +Y=X +Y='X' OR 'Y'
Las negaciones podemos
hacerlas mediante NANO.

IPuertas NOij
1. NOR mediante OR + NOT
NOT('X' OR 'Y')=X +Y='X' NOR 'Y'
:~J
2. NOR mediante AND + NOT
(NOT 'X') AND (NOT ,y,)=x·y=x +Y='X' NOR 'Y'

3. Implementación del resto de funciones mediante NOR


• NOT
'X' NOR 'X'=X +X=X=NOT 'X'

• AND
Las negaciones podemos
hacerlas mediante NOR.
(NOT 'X')NOR(NOT 'Y')=X +Y=x·Y=x·Y='X' AND 'Y'

• OR
La negación podemos hacerla
mediante NOR .
NOT('X' NOR 'Y')=X +Y=X +Y='X' OR 'Y'

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A3.1


APÉNDICE 4:0PERACIONES ARITMÉTICAS
Los sistemas digitales realizan operaciones sobre señales expresadas mediante secuencias
de números. Estas operaciones pueden ser de muy diversa índole, pero en este tema vamos
a centrarnos sólo en la realización de algunas operaciones aritméticas (comparación, suma
y resta).

A4.1. Comparación
Este procedimiento,
conocido como La comparación es la operación de determinar, dados dos argumentos X e y, si es
algoritmo de X>Y, X=Y ó X <Y.
comparación, supone
que los dos operandos
se expresan El procedimiento normalmente efectuado para ello es bien conocido: se comparan las cifras
empleando el mismo
número de cifras. Si no individuales (x¡ e y¡) de las dos cantidades comenzando por las más significativas, hasta
es así, previamente
habrá que extender encontrar dos que sean distintas. En este momento si x¡ > y¡ entonces X > Y , Y si x¡ < y¡
aquel número que
emplee menos cifras en
entonces X < Y . Por supuesto, si no se encuentra ningún par de cifras de igual peso tal que
su representación "*
x¡ y¡ , entonces X = Y .

Este algoritmo funciona para cualquier sistema de numeración (binario, octal, decimal,
o hexadecimal) estudiado anteriormente.

A4.1.1. Comparación de operandos en Complemento a 2 (C2)

En el caso de que los operandos estén expresados en complemento a 2 el método de


comparación es ligeramente distinto:

Si los dos operandos son positivos, o los dos son negativos, el procedimiento expuesto
es válido.
Pero si un operando es positivo y el otro negativo, directamente el mayor es el positivo.

Ejemplo:

Si X = 1101 0110C2 e Y = 1101 n 10C2 , puesto que los dos operandos son negativos
se procede a compararlos normalmente y se obtiene que X < Y.
Con X = 0101 011O C2 e Y = 01011110 C2 , los dos operandos son positivos, y X <Y
también.
C) En cambio, con X = O1O1 O11 OC2 e y =110 1 1110C2 ' puesto que X es positivo e Yes
negativo, se obtiene directamente que el mayor es el positivo: X > Y

A4.2. Suma
El mecanismo usualmente empleado para sumar, lA-l+ 1+
trabajando en distintos sistemas posicionales t 9 7 3 5 1
naturales, es similiar en todo momento al empleado
normalmente para sumar números en decimal. Este + i 3 8
.-1
5
Jt 3
I
I l..-i 1
mecanismo está presentado en la figura de la -.y. .,+, -.y '+' t
derecha. 4 3 5 9 3 4

El algoritmo clásico de suma consiste en sumar las cifras de igual peso de los dos
sumandos, comenzando por las cifras menos significativas. Cada una de estas sumas
parciales da lugar a cada una de las cifras del resultado.
i~
El proceso continua hasta haber sumado todas las cifras de los sumandos.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142 355 T-A4.1


A4.2.1. Acarreo

Puede ocurrir que alguna de estas sumas parciales no se exprese en una única cifra, sino
Con frecuencia se
emplea el término
inglés carry, ó la letra
con dos. En este caso la cifra menos significativa de la suma parcial formará parte del
resultado final, y la cifra más significativa se acarrea a la siguiente suma parcial. De esta
n
"'-.
e, para designar al
acarreo. manera, en la siguiente suma parcial se procede a sumar las cifras correspondientes, más el
acarreo previo para obtener la siguiente cifra del resultado.

En la siguiente figura presentamos la misma suma detallando más los acarreos intermedios.

o ~ Acarreos

4 3 5 9·3 4

A4.2.2. Desbordamiento
Aunque trabajando con
lápiz y papel el número Al trabajar con n cifras se puede producir una situación como la dada en la siguiente figura,
de cifras es flexible en la que n = 6. Como se ve, al sumar las últimas cifras de los sumandos junto con su
(siempre se puede
escribir una cifra más), acarreo se produce un nuevo acarreo. Este acarreo formaría parte, directamente, del
no ocurre lo mismo con resultado fmal, pero, puesto que se trabaja sólo con seis cifras, no puede ser así. En este
los sistemas que caso, si no podemos incluir esa última cifra, el resultado mostrado será claramente
proceesan información.
Usualmente estos se incorrecto.
diseñan de modo que
sólo son capaces de
trabajar con un número
de cifras determinado,
por eso el
desbordamiento es un
punto importante sobre
el que se debe prestar
atención.
1 2 3 5 9 3 4
.'--_____-.:....y~--_._.,1

Resultado

El desbordamiento Por tanto, cuando se trabaja con un número de cifras n fijo, puede ocurrir que el resultado
suele recibir el nombre
de overflow (del de la operación necesite un número mayor de cifras para expresarse. En este caso el
inglés) resultado obtenido de la operación con n cifras es incorrecto, y se dice que se ha producido )
un desbordamiento. '

A4.2.3. Suma en Binario Natural

El algoritmo recién presentado es de aplicación para cualquier sistema de numeración


posicional natural, y particularmente cuando se trabaja en binario natural. De hecho, la
suma en binario es más sencilla que en decimal, puesto que las cifras a sumar sólo pueden
tomar dos valores.

Las siguientes figuras ilustran este mecanismo.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355 T-A4.2


lB~Y=23 lB~Y=23
('\
o 1 .1 1.- O lB;; 1 1 O O O lB
te \,
V
t
\,
V
/

5=29 e 5=17

El resultado final de la primera suma es X + Y = 1110 1B = 29 D Y no hay acarreo (e = 1 )


final ni desbordamiento.

En el segundo caso, el acarreo final es 1 (e = 1) y, evidentemente, se ha producido


desbordamiento.

A4.2.4. Suma en Complemento a 2

El algoritmo anterior también es válido para sumar números expresados según el criterio
del complemento a 2.

La figura siguiente muestra cómo sumar dos cantidades expresadas en C2 con cinco bits,

o X=11000 C2 =-8 e Y=O 1101C2 =+13.

1 O O 1 O 1 .
t \ ...
"V
°1
e 5=+5

El resultado es S= O O1OlC2 = +5, se genera acarreo final y no hay desbordamiento.


Este problema
introduce la necesidad Ahora, la siguiente figura realiza otra suma de cantidades expresadas en complemento a 2
de detectar
desbordamiento en un con cinco bits, X=11001 c2 =-7 e Y=l 001lc2 =-13.
sistema que realice
operaciones
aritméticas.

1 o 1 10 0(2
\..~--~y------'---::/
te 5=+12

Vemos como mediante la aplicación directa del algoritmo descrito se obtiene


S = O 1100C2 = +12 (muy diferente del resultado que cabría esperar, -20), se genera
acarreo final ( e =1 ) y hay desbordamiento.
A4.2.5. Detección de desbordamiento en la suma
Recuerda que estamos
hablando siempre en
base 2, el proceso para Como ya se ha visto, es clave detectar cuándo se está produciendo desbordamiento y, si es
detectar y tratar el posible, realizar las correcciones oportunas al resultado de la operación realizada.
desbordamiento en
otras bases no es
objeto de nuestro Existe un mecanismo sencillo que pennite detectar la condición de desbordamiento:
.~. estudio.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A4.3


Sumando números sin signo se produce desbordamiento si el acarreo final vale 1.
Sumando números con signo (en complemento a 2) se produce desbordamiento si los
dos operandos tienen el mismo signo y el resultado tiene el signo contrario.
En· este caso también hay otro método: habrá desbordamiento si los dos últimos f \
acarreos son distintos. "--)

En caso de desbordamiento, trabajando en binario, deberemos añadir el acarreo fmal a la


izquierda, obteniendo la representación correcta del resultado con n + 1 cifras.

A4.2.6. Suma en BCD

La suma de cantidades expresadas en BCD también se efectúa mediante el algoritmo de


suma ya descrito. Sin embargo, su aplicación es más complicada que trabajando en binario
natural ó decimal, puesto que, ahora, se trabaja en un sistema en base diez, pero las cifras
individuales se expresan en base dos.

Para nuestros ejercicios, el mecanismo más rápido para operar en BCD será pasar los
operandos a decimal, realizar la cuenta, y expresar el resultado en BCD, prestando
atención, en la operación decimal, a los fenómenos de acarreo y desbordamiento.

A4.3. Resta
CJ
A4.3.1. Algoritmo clásico de resta

Aunque se trata de un algoritmo conocido (y asimilado, en decimal) por todos, en este


apartado no vamos a desarrollarlo, porque no será nuestra manera de operar a la hora de
hacer una resta.

Así, sólo vamos a presentar una imagen recordatoria del procedimiento clásico de resta:

Este es el algoritmo
preferido para realizar 8 9 14 3
restas en sistemas
digitales, y el más
6
·t<8
3+1 2
aconsejable.
t2 i5 i6 i1

A4.3.2. Algoritmo de resta por complementación

Simplemente consiste en complementar el sustraendo (hacer su complemento a 2) y


realizar la suma tal y como hemos aprendido. Además, vale todo lo dicho en lo que se
refiere a la detección de desbordamiento en la suma. Teniendo bien en cuenta este
desbordamiento en caso de producirse, el resultado de nuestra resta será directamente el de
esta suma (expresado en C2). .

A4.3.3. Detección de desbordamiento en la resta

Para detectar el desbordamiento en una resta de dos cantidades expresadas en complemento


a dos, podemos actuar de dos formas:

• Emplear el algoritmo de resta por complementación: esto es, en vez de restar, sumamos
al minuendo el opuesto del sustraendo (obtenido complementando este a dos, es decir,
complementando y sumando 1). En este caso, (cuando ya tenemos el minuendo
complementado a dos) cuando nos disponemos a hacer la suma, valen las reglas
. descritas en el punto 2.6.2.5 acerca del desbordamiento.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A4.4


• Observar directamente las cantidades del minuendo y sustraendo (sin complementar)
así como de la diferencia (obtenida por el método que queramos), y aplicar:
Restando números con signo (en complemento a 2) se produce desbordamiento si
los dos operandos tienen distinto signo y el resultado tiene el signo contrario al
minuendo.

Ejemplo 1:

Vamos a relizar la resta:


(-7)-( -2) =-5
Esto es, vamos a hacer X-Y, donde X = 1001c2 e Y = 1110c2 .
Para ello, complementamos Y, obteniendo -y =0010
Y sumamos ambas cantidades, con el algoritmo clásico de la suma, obteniendo:

X +(-Y)=1001+001O=1011C2

o Donde vemos que no se ha producido desbordamiento, y que el resultado final es:


S = 1011C2 = -5 D
Ejemplo 2:

Observa como, por Vamos a relizar la resta:


producirse
desbordamiento, el (-7)-3=-10
resultado final necesita
de una cifra más para Esto es, vamos a hacer X - Y , donde X = 100 lC2 e Y = 00 11C2 .
representarse

Para ello, complementamos Y, obteniendo -y = 11 O1


Y sumamos ambas cantidades, con el algoritmo clásico de la suma, obteniendo:

X + (-y) = 1001+ 1101 =lQ110 c2


Donde vemos que se ha producido desbordamiento (teniendo el mismo signo
minuendo y sustraendo, la cifra correspondiente del resultado no coincide con
este), y que el resultado final es:
C) Estas y otras
operaciones surgirán
en enunciados verbales
que tendremos que
pasar a una tabla de
verdad.

A4.4. Otras operaciones (multiplicación, división, potencias ... )


Para esta asignatura, y teniendo en cuenta las preguntas de examen a las que nos vamos a
enfrentar, la forma más rápida de efectuar otras operaciones aquí no descritas, como la
multiplicación, división y potenciación será "pensando en decimal" y expresando el
resultado en el sistema que se nos pida.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A4.5


APÉNDICE 5: PRINCIPIOS BÁSICOS. CMOS

Existen muchas maneras para diseñar un circuito lógico electrónico. Un buen r es.um.en de la
evolución de la tecno1ogía emp1eada en este diseño, a 10 largo del tiempo, es e1 slgmente:
n
1930s, Bell Labs: primer circuitos lógicos usando relés
1940s, usando tubos de vacío; ENIAC: 18000 tubos, 31mx3mx1m
1950s, invención del transistor bipolar: ordenadores más rápidos
1960s, invención del circuito integrado: diodos+transistores+otros componentes en un
solo chip
1960s: lógica de transistor-transistor (TTL) basada en bipolares
1960s. también demostración de circuitos lógicos con MOSFETs
1980s: desarrollo de la tecnología MOS: comp1ementary-MOS (CMOS)
Hoy en día CMOS usado casi únicamente en todos los circuitos integrados:
o mayor velocidad, menor consumo que TTL
o las tensiones de alimentación han venido decreciendo en los últimos años:
desde los 5 V de TTL -> 3.3 -> 2.5 -> 1.8 V

La lógica CMOS es la tecnología de lógica digital comercial con mayor capacidad y la más
fácil de comprender, y es la que vamos a estudiar en este tema. CJ

A5.1. Lógica CMOS


El comportamiento funcional de un circuito lógico CMOS es muy fácil de comprender, ya
que los únicos bloques básicos de construcción van a ser transistores CMOS.

AS.l.l. Niveles lógicos CMOS

Los elementos lógicos abstractos procesan dígitos binarios, Oy 1. Sin embargo los circuitos
lógicos reales procesan señales eléctricas tales como niveles de voltaje. En cualquier
circuito lógico existe un intervalo de voltajes que se interpreta como un O lógico y otro
intervalo que se interpreta como un 1.

Un circuito lógico CMOS típico funciona a partir de una fuente de alimentación de 5


voltios. Un circuito de esta clase interpretará cualquier voltaje que esté entre Oy 1.5 voltios
como un Ológico, e interpretará a cualquier voltaje que esté entre 3.5 y 5 voltios como un 1 ',,)
lógico.

5.0V
Los voltajes que están
en el intervalo Logic 1 (HIGH)
intermedio sólo
3.5 V
aparecerán durante las undefined
transiciones de señal, - logic level
por tanto producirán
valores lógicos 1.5 V
indefinidos. Logic O (LOW)
o.ov

AS.l.2. Transistores MOS

Se trata de un dispositivo de tres terminales que actúa como una


resistencia controlada por voltaje. El voltaje de entrada que se vIN [J-------
aplica en un terminal controla la resistencia entre las dos
terminales restantes. I
I ')

\~~

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142 355 T-A5.1


En aplicaciones de lógica digital, un transistor MOS opera de modo que su resistencia
siempre sea muy elevada (el transistor se encuentra apagado "OFF"), ó muy baja (el
transistor se encuentra encendido "ON)".
Los nombres de los dos
tipos de transistores se
refieren al tipo de Existen dos tipos de transistores MOS, de canal-n y de canal-p.
material semiconductor
que se utiliza en las
terminales cuya
resistencia está A5.1.3. Transistores NMOS
controlada.

En la siguiente figura vemos el símbolo esquemático de un transistor MOS de canal-n


Un aumento de la
(NMOS).
tensión V disminuye
gs
la resistencia entre
drenador y fuente, drain
gate
Rds·
source
Como se observa en el
circuito, el drenador se
encuentra normalmente
a un voltaje más alto
que la fuente. Las terminales se denominan compuerta (gate), fuente (source) y drenador (drain).

El voltaje de la compuerta a la fuente (Vgs ) en un transistor NMOS es normalmente cero ó


positivo. Según éste el transistor se comportará de dos formas muy sencillas:

Si Vgs = O el transistor se comportará como un circuito abierto entre drenador y


fuente (transistor "OFF").
A medida que incrementamos Vgs el transistor se comportará cada vez más como un
corto circuito entre drenador y fuente (transistor "ON").

A5.1.4. Transistores PMOS

En la siguiente figura vemos el símbolo esquemático de un transistor MOS de canal-p


(PMOS).

v~
, gs
+( source
CJ gate I drain

Su funcionamiento es análogo al de un transistor NMOS, excepto porque la fuente se


encuentra normalmente a un voltaje mayor que el drenador, y por lo general el voltaje de la
compuerta a la fuente (Vgs ) es negativo ó cero.

Observaciones:
El voltaje de compuerta
crea un campo eléctrico
que refuerza o retarda • La compuerta de un transistor MOS tiene una impedancia muy elevada. Es decir, esta
el flujo de corriente compuerta está separada de la fuente y el drenador por un material aislante que tiene
entre las terminales de
fuente y drenador. Este una resistencia muy elevada, con lo que la intensidad que corre entre la compuerta y las
es el "efecto de campo" otras terminales del transistor es despreciable.
en el término MOSFET.

• Los transistores NMOS y PMOS se utilizan en forma complementaria para formar la


lógica CMOS.
L"
www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A5.2
AS.loS. Circuito del inversor básico CMOS - Modelo de interruptores

El circuito CMOS más sencillo, un inversor lógico, requiere solamente uno de cada tipo de
transistor, conectados como se muestra a continuación: O
VDD =+5.0V

Normalmente el voltaje
de alimentación VDD
se encuentra en el
intervalo de 2 a 6
voltios y con mucha
frecuencia se establece
5V para tener
compatibilidad con los
circuitos TIL.

VIN Ql Q2 Vour
En términos ideales, el comportamiento
funcional de este circuito puede 0.0 (L) off on 5.0 (H)
caracterizarse como aparece en esta tabla: 5.0 (H) on off 0.0 (L) ()
• Cuando VENT = O, Ql está apagado porque su Vgs es O, pero Q2 está encendido porque
su Vgs es un valor negativo muy grande (-5.0 V). En estas condiciones VOUT = 5 V.
• Cuando VENT = 1, Ql está encendido porque su Vgs es un valor positivo grande (5.0
V), Y Q2 está apagado porque su Vgs es O. En estas condiciones VOUT = OV .

Una manera de ver este comportamiento, tal y como haremos en los ejercicios, será usando
interruptores.
VDD =+5.0V VDD =+5.0V

El modelo del transistor


de canal-n corresponde
a un interruptor
normalmente abierto
(cuando le ponemos un VOUT =H VOUT =L
1 lógico en la puerta), y
el transistor de canal-p
corresponde a un
interruptor
normalmente cerrado.

El modelo del
interruptor nos lleva a
una manera de dibujar VDD = +5.0 V
circuitos CMOS que
nos facilitará mucho su
comprensión. Como se muestra en la figura de la derecha, se
emplean símbolos diferentes para los transistores de
canal-n y de canal-p, a fin de reflejar su
comportamiento lógico.

El transistor de canal-n (01) se encuentra



activado cuando se aplica voltaje ALTO a su
compuerta.
• El transistor de canal-p (02) tiene el
comportamiento opuesto: se encuentra activado (, _)'
______________~~~c=u=an==do==s=e=ap=l=ic=a=v=o=l=ta=je==B=A=J=O~.__________________________~____________ -

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-A5.3


AS.1.6. Análisis de circuitos CMOS para obtener la función lógica que realizan

Para hallar la función booleana que implementa un circuito CMOS, podemos actuar de dos
maneras:

a) Estudiar el circuito equivalente ideal (con modelo de interruptores) para cada


combinación de las variables. Al fInal obtendremos la tabla de verdad de la función y
Para entender bien sólo tendremos que expresar la función que representa.
estas reglas, ve a los
ejercicios de examen.
b) Analíticamente: Nos plantearemos, viendo el circuito, con lógica proposicional, qué
transistores necesitamos "encendidos" y cuáles "apagados", para que la función
buscada valga O ó 1 (a nuestra elección).

Después, en la expresión obtenida cambiamos las condiciones referidas a cada


transistor ("encendido" ó "apagado") por otras, referidas al valor que deben tomar sus
entradas para que se produzca ese funcionamiento en cada uno. Recuerda que:

En transistores NMOS: ON -7 tensión de puerta = '1'


OFF -7 tensión de puerta = 'O'
En transistores PMOS: ON -7 tensión de puerta = 'O'

o OFF -7 tensión de puerta = '1 '

Sólo faltará complementar, en la expresión, aquellas variables que estén negadas


(complementando por tanto también su valor) para después cambiar la expresión con
lógica proposicional a una función booleana. Los cambios que debemos aplicar son:

/\ -7 . (AND)
V -7 + (OR)
variable igualada a '1' -7 variable sin negar.
variable igualada a 'O' -7 variable negada.

AS.1. 7. Implementación de funciones mediante circuitos CMOS

Implementaremos nuestra función siempre formando dos bloques, en cuya unión


obtendremos la función booleana deseada.

C) El primer bloque, conectado en su extremo superior a Vcc ' constará de transistores


PMOS (uno por cada término de la expresión de la función), realizando las siguientes
reglas: ...... .
o Cada· (AND) lo sustituiremos por una conexión SERIE.
o Cada + (OR) lo sustituiremos por una conexión rMO;~
PARALELO.
o Pondremos las variables en his puertas de los transistores,
I---F NEGADAS con respecto a como aparecen en la función
booleana.

El segundo bloque, conectado en su extremo inferior a tierra, constará de transistores


NMOS (uno por cada término de la expresión de la función), realizando las siguientes
reglas:

~,~
o Cada . (AND) lo sustituiremos por una conexión
PARALELO.
o Cada + (OR) lo sustituiremos por una conexión SERIE.
o Pondremos las variables en las puertas de los transistores,
.. ,
NEGADAS con respecto a como aparecen en la función '

booleana.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A5.4


AS.2. Comportamiento dinámico de los dispositivos CMOS
Dentro del estudio del comportamiento eléctrico de un circuito eMOS, en eEDG se le da
especial importancia al estudio del comportamiento dinémico del mismo, es decir, de cómo O
tanto la velocidad como el consumo de energía depende en gran medida de las
características dinámicas (ó de CA) del dispositivo y su carga, es decir, lo que sucede
cuando la salida cambia entre dos estados lógicos.

Nosotros nos vamos a centrar sólo en el estudio de la velocidad, que depende de dos
características importantes: el tiempo de transición y el retardo de propagación.

AS.2.1. Tiempo de transición

Es la cantidad de tiempo que requiere la salida de un circuito lógico para cambiar de un


estado a otro. Vamos a entender el concepto con la figura siguiente:

(a)

(b)

t
Observa que la parte
(e) HIGH --------~----------------'*\---------------
/'
VIHmm
inicial de una transición V
LOW ----~~~-----------------+~i'------------- V~m~

-- --
no se incluye en el ./
valor del tiempo de
ascenso ó de caída,
sino que contribuye al
valor del retardo de
t tr
--
propagación, que
estudiaremos en el
punto siguiente. a) Esta figura muestra la situación ideal para el cambio de estado en las salidas: en tiempo
cero.
b) En este caso se muestra una visión más realista de la salida de un circuito: una salida )
necesita una cierta cantidad de tiempo, denominado tiempo de ascenso (t r) para
cambiar de BAJO a ALTO, y un tiempo posiblemente diferente, denominado tiempo
de caída (ti) para cambiar de ALTO a BAJO.
Las salidas no pueden
cambiar c) Incluso la figura B no es bastante precisa, porque la razón del cambio del voltaje de
simultáneamente,
porque necesitan
salida no cambia instantáneamente. En su .lugar, el comienzo y el final de una
tiempo para cargar la transición son suaves, como se ve en la figura e.
capacidad parásita del
cableado y otros En la figura e, los tiempos de ascenso y caída indican cuánto tiempo tarda un voltaje
componentes que de salida en pasar a través de la región indefinida entre BAJO y ALTO.
controlan.

AS.2.2. Análisis de tiempos de ascenso y caída de una salida CMOS

Los tiempos de ascenso y caída de una salida de eMOS dependen principalmente de dos
factores, la resistencia del transistor "encendido" y la capacidad de carga. Una capacidad
grande incrementa los tiempos de transición, por 10 que será raro que conectemos a
propósito un condensador en la salida del circuito lógico. Sin embarlo, las capacidades
parásitas están presentes en cualquier circuito, provenientes de tres fuentes: los circuitos de
salida, el cableado que conecta la salida con otras entradas, y los circuitos de entrada.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355 T-A5.5


La capacidad parásita
se conoce en Se pueden analizar los tiempos de acceso y caída de una salida CMOS utilizando el circuito
ocasiones como carga equivalente que se muestra a continuación:
capacitiva o carga de
~ CA.
Vcc =+5.0 V Equivalent load for
transition-time analysis
eMOS

/
in verter
I
Observa que en el
ejemplo estudiamos un
inversor CMOS como el
que hemos visto en
estos apuntes.

• Los transistores de canal-p y canal-n están modelados por las resistencias Rp y Rn ,


o respectivamente. En operación normal, una resistencia es alta y otra baja, dependiendo
de estado de salida.

• La carga de salida se modela mediante un circuito de carga equivalente con tres


componentes:

RL , VL : Ambos componentes representan la carga de contínua (CD): determinan los


voltajes que se establecen cuando la salida se estabiliza en un nivel ALTO o BAJO. La
carga de CD no tiene demasiado efecto sobre los tiempos de transición cuando la salida
cambia de estado.
eL: esta capacidad representa la carga de CA: determina los voltajes y corrientes que
están presentes cuando cambia la salida de un estado a otro.

Cuando una salida CMOS controla sólo entradas CMOS, la carga CD es despreciable. Para
simplificar las cosas, analizaremos solamente este caso, con RL = 00 y ~ = O en el resto
de estos apuntes.
(j
Vamos a estudiar el análisis mediante un ejemplo:

Ejemplo:

Vamos a analizar los tiempos de transición de una salIda CMOS, para el circuito anterior,
con eL = 100 pF (carga capacitiva) y con Rp =200 Q Y Rn = 100 Q (resistencias "de
encendido" de los transistores)

Los tiempos de ascenso y de caída dependen del tiempo que se necesita para cargar y
descargar la carga capacitiva eL

Primero observamos el tiempo de caída:

La figura siguiente muestra las condiciones eléctricas en el circuito cuando la salida se


encuentra en un estado estable ALTO:

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A5.6


Vcc =+5.0V

VOUT =5.0V
AC load n
VIN
Iour=O
En este ejemplo
suponemos que
cuando los transistores
CMOS cambian entre
"encendido" y
"apagado", lo hacen de
forma instantánea.

Vamos a suponer que al tiempo t = O la salida CMOS cambia al estado BAJO, generando
así la situación que planteamos a continuación:

Vcc =+5.0V

AC load
Vour

Recuerda que el voltaje


en un condensador no Cuando t = O, VOUT todavía es 5.0 V. En el tiempo t = 00 el condensador tiene que estar
puede cambiar de
forma instantánea completamente descargado, y VOUT debe ser OV.

Entre los dos momentos, como sabemos, el valor de VOUT está gobernado por una ley
exponencial:
Esta ley exponencial es t t t

= 5.O. e 5.0. e V
12 9
resultado de resolver VOUT = y DD • e
TT Re
L L
100.100.10- = 10.10-
una Ecuación
Diferencial, tal y como
veremos en algún
problema de examen. La figura siguiente muestra una gráfica de VOUT en función del tiempo:

El factor ~CL tiene


200Q
unidades de tiempo >lMQi
(segundos) y se conoce
como constante de >lMQ lOOQ ~.-----------------------------------
tiempo Re. Como
hemos visto, en este
ejemplo la constante de 5V -j--.,
tiempo Re para las
transiciones ALTO a
BAJO es de 10 ns. Vour

oV4--,4--+----=======---------------
0 ___ time

tf

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 619 142355 I T-A5.7


Para calcular el tiempo
de caída recordamos Para obtener el tiempo de caída, debemos resolver la ecuación anterior para VOUT = 3.5 y
que 1.5 V Y 3.5 V son
las fronteras que VOUT = 1.5 . Así:
definimos para los
niveles BAJO y ALTO.

t=-R eL ·ln--=-
VOUT In-
10 . 109 . VOUT
-
n VDD 5.0
Obteniendo:

t35 =3.57ns}
. El tiempo de caída t f es la diferencia entre ambos números, 8.47 ns.
t1.5 = 12.04 ns

Tiempo de ascenso:

El tiempo de ascenso puede calcularse con un método semejante. La figura (a) muestra las
condiciones en el circuito cuando la salida se encuentra en un estado estable BAJO. Si al
tiempo t = O la salida CMOS cambia al estado ALTO, resulta la situación descrita en (b).

Vcc =+5.0V Vcc =+5.0V


(al (b)

o
VIN

Una vez más, VOUT no puede cambiar de forma instantánea, pero al tiempo t = Cf) el
capacitor estará completamente cargado y VOUT será 5V.

De nuevo, el valor de VOUT está determinado por una ley exponencial:

También sabemos
deducir esta ley a partir
de la resolución de una
ecuación diferencial.

~
>lMn I
>lMn loon --.-J
En este caso la
constante de tiempo
RCes 20 ns. 5V

Vour

oV - 1 - - - + - - + - - - - 1 - - - - - - - - - - - - - -
o time

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 ,619142355 T-A5.8


Resolviendo la ecuación anterior (despejamos el tiempo), obtenemos:

t = -Re· In VDD - VOUT = -20 .10-9 .In 5.0 - VOUT


VDD 5.0 o
En donde sustituimos los tiempos de frontera, para obtener:

- tI 5 = 7.13 ns }
. _ El tiempo de ascenso t r es la diferencia entre ambos números, 16.95 ns
- t3 .5 - 24.08 ns

Observaciones:

Se diría aquí que la • En el ejemplo anterior se supone que el transistor de canal-p tiene dos veces la
capacidad de resistencia del transistor de canal-n, y como resultado el tiempo de ascenso es el doble
excitación de la salida
es "asimétrica".
que el de caída.

• Un incremento en la capacidad de carga ocasionará un aumento en la constante de


tiempo RC y el correspondiente incremento en los tiempos de transición.
Este truco no es válido
para resolver ejercicios

Una regla sencilla y práctica para estimar los tiempos de transición es que éstos son O
de examen, pero sí aproximadamente igual a la constante de tiempo RC del circuito, cuando se está
para verificar, cargando o descargando. Sólo tienes que fijarte como, efectivamente, en el ejemplo
aproximadamente, si
nuestros resultados son resuelto de estos apuntes este "truco" es válido.
correctos.

• Los tiempos de transición calculados son bastante sensibles a la selección de los


Además, en algunas niveles lógicos: en el ejemplo resuelto, si usamos 2.0 V Y 3.0 V en vez de 1.5 y 3.5 V
familias lógicas (como como los umbrales para BAJO y ALTO, nos saldrían tiempos de transición más cortos.
TTL) los umbrales no
son simétricos en torno Por otro lado, si empleáramos 0.0 y 5.5, j los tiempos de transición calculados serían
a un punto medio de infinitos!
voltaje

A5.2.3. Retardo de propagación

Una trayectoria de señal es la ruta eléctrica de una señal particular de entrada hacia una
señal particular de salida, en un elemento lógico.

Los tiempos de El retardp de propagación tp de una trayectoria de señal es la cantidad de tiempo que
ascenso y de caída
sólo describen de requiere la señal de entrada para producir un cambio en la señal de salida.
forma parcial el
comportamiento
dinámico de un Un elemento lógico complejo con varias entradas y salidas puede especificar un valor
elemento lógico; se
necesitan parámetros
diferente de tp para cada trayectoria diferente de señal.
adicionales para
relacionar la
temporización de salida Sin tener en cuenta los tiempos de ascenso y caída, la siguiente figura muestra los
con la temporización de diferentes retardos de propagación para la trayectoria de señal de entrada a salida de un
entrada.
inversor CMOS, dependiendo de la dirección del cambio en la salida:

VIN
I I
Vour

J t pHL 1- I- tpuI--1I
(
"-/
)

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377,619 142355 T-A5.9


Donde:

• t pHL es el tiempo entre un cambio de entrada y el correspondiente cambio" de salida,


cuando la salida está cambiando de ALTO a BAJO.
• t pLH es el tiempo entre un cambio de entrada y el correspondiente cambio de salida,
cuando la salida está cambiando de BAJO a ALTO.

Entre los muchos factores que influyen en el retardo de propagación tenemos que destacar
los tiempos de ascenso y caída, lo que hace que especifiquemos los tiempos de retardo de
propagación como la distancia temporal entre los puntos medios de las transiciones de
entrada y salida, como se ilustra en la figura siguiente:

- - tPHL - - tpLH - -

o Esto nos da una definición ya formal de los tiempos de retardo de propagación:

¡Tiempo de propagación de ALTO a BAJO t pHL ¡


Vi(t)
Vcc
Es el tiempo que transcurre entre que la O,5Vcc
entrada llega a una tensión del 50% del valor
de alimentación (independientemente de si la i I

transición es de H a L o de L a H) y que la fO~)! i


salida alcanza dicho valor cuando pasa de H a
L.
Vcc
O,5*Vcc
--&== ' . •t

Tiempo de propagación de BAJO a ALTO t pLH

Vi(t)
Vcc
Es el tiempo que transcurre entre que la .....1 I
O,5Vcc
entrada llega a una tensión del 50% del i ...... J••••
I ' ••••••••••••••••••• .., t
valor de alimentación
(independientemente de si la transición es 1 I Vo(t)

+---+I7P:-----.
de H a L o de L a H) y que la salida Vcc
alcanza dicho valor cuando pasa de L a H. O,5*Vcc
t

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-A5.10


FEBRERO 2005

Problema 2

Se desea diseñar un circuito de sumar y restar dos números de un bit AO y BO con acarreo de entrada C i- 1
mediante una señal de control M. El resultado se compone de tres bits [S2,SO] expresado en complemento a dos.
La operación, en función de M es la siguiente:

M = "O" [S2,SO] = AO + BO + C j _1

M = "1" [S2,SO] = AO - (BO + Ci - 1)

2.1 Rellene la tabla de verdad, Tabla 2, y obtenga justificadamente la función lógica simplificada para SO.

M AO BO Ci-1 S2 S1 SO AUX
O O O O o o 1 tJ
O O O 1 G
"
t:J 1 O \
O O 1 O o Ó t 1 \
O O 1 1 e; 1 -o O 'Z
O 1 O O Cf) -o t 1
(.
O 1 O 1 o L P O

o O
O
1
1
1
1
O
1
(fj

~
,1 ll>
\
1
O
Z
"3-
1 O O O 6 o Ó O ()

1 O O 1 \ I I O -1
1
1
O
O
1
1
O
1
\
t
I
r
1
()
O
O
--
\
'2
i 1 O O o ó \ 1 \
1 1 O 1 ó o 6 O o
1 1 1 O o o <2:> 1 (:)

1 1 1 1 1 1 I O -1

2.2 Implemente la función AUX de la Tabla 2 con el mínimo número de puertas NOR de dos entradas.
Nota: Sólo se dispone de las entradas M, AO, BO y C i- 1 y no de sus complementarias.

e e
2.3 Implemente la función F = M . + A . + A . B . M utilizando únicamente dos multiplexores de 4
entradas de datos. Nota: Sólo se dispone de las entradas M, A, By C y no de sus complementarias.

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 I 619142355


SEPTIEMBRE 2006

PROBLEMA 1
-
La lectura de la temperatura de una cáman~ frigorífica, en grados centígrados, se obtiene con cuatro bits
(T3, T2, TI, TO) codificada en complemento a 2, siendo TO el bit menos significativo. Se necesitan dos
salidas (LR y LV) que activen un led rojo (LR) y un led verde (LV) respectivamente (ambos activos a
nivel alto). Para ello, se quiere implementar un circuito que active elled verde cuando la temperatura
de la cámara eS,té entre -3 y +4 oC, ambas incluidas, y elled rojo en el resto de los casos.

1.1 Complete la tabla de verdad siguiente (Tabla 1). (5 puntos)


-r" (deci M" e )
T3 T2 TI TO LR LV
o O O O O o i
LV 1 O O .0 1 o 1
z. O O 1 O o 1
3- O O 1 1 o 1
"i O 1 O O (> 1
5' O 1 O 1 i o

o 6
1
-I?
O
O

1
1
1
O
1
1
O
O
1
O
i
.1
1- o
o
o

u\
-1 1 O O 1 1 o
-6 1 O 1 O 1 o
-5 1 O 1 1 .1 o
-"1 1 1 O O i o
-3 1 1 O 1 o 1
-2 1 1 1 O o 1
-{ 1 1 1 1 o 1

1.2 Obtenga la función lógica simplificada para la salida LV. Para dIo utilice un mapa de Karnaugh. (5
puntos) ,
1.3 Implemente la salida LV utilizando el mínimo número necesario de multiplexores de cuatro y de
dos entradas de datos. (la puntos)

www.monteroespinosa.es - Clases de CEDG,.. Tfnos 91 5445377 , 619142355


I~
-
~
TITO
00 01 11 10

00 fr --)) O O

O/ 1 o '1~ o

" i o Vi o
. ,
10 1) o ~ o

Hvx Z Xi Tel'1(I"t o l, PNCo. e.;"'pe~",r

--\ L( v",,·;,;. bll:)


o Nu X Co>1 2 e.. ~. i:o,,~r~

.:.. t

A~ ~, ltA.u .....c1 ~ue Q.p~re i'c....VI e\ ~... l Ve.. r:c.. l,e'J e" C4. d c.. f¿r""'~ 1'10 c\e el;. f o.J1'Ic¡t.'"

LV -
-
r3 -
íz t
n Ti To (iZ t Ti) t t3 rz. ro t T3TZT,1 -
--
T3 r2
r1 To + T'3T2 Tb + T3
+ í3 rz f:1 To + T3 TZ TZ T 1. -
- - - + t3 rz l To + ti) -
-t'3TZT1TO
1-

í (iy~) - -
T~
~ 2

n
.:::;:.

- - r z í 1. ro t Ts T T t t:() ... Z ( o J "," L' ';,. i·


'.

- r> fZ ,
. .-

!1u)C '1 k l :

o / TZ
T3
I
Mv.x l
~ " " . .' .

f?¿I TiTO -
. 'T1. To • J. + Ti fo . o ., Ti ro .o t ti ro . o

= roí Ti+T1)
, '.,'

I~ To t T1
f r1 (ro t ro) ='

,1 .'

ri To + Ti To t TiTo t T.;1 lo ,-
.... .;., .
==
Ti T o· O.¡. r -:1 Te . j + Ti ro· í -1- Ti ro· i

, ....
.. ,
.. '... ., "
i
o
n·To -
y ..... . . - - - - n
C>

o
el C';
Io
Ir Ti To
_ _.......... I,
.Il y LV
~ _ _ _ _I r)
el c.

o r ..
Ir
i I, y ....._.----J
, ' 1 ' ;.I1, NOTA e<t~ guY1c;o",e¡ Ti· To y To + Ti se poó,'... ",

il"lp€{.-.(".f...r ~;rt.J.....-.t,..~;"Job;:(' é;'" f{Jx . '-f x2, re..


'.,
"" .' , .", , -4 Z V"-r;", ~er" r')
4"( tt>'\eMoJ e", ec..~.J ~"lc..
--" 2 e ... ~r• .cl.,j de c.,,,, t. "e
ti lo
As{ I s.;G. hc.r "I~(, f»Yltr f.. J v",r;",,6et j c.,.....o e..., ir...

J... l d~ c.. .... ~('oe I y ~ p:«.- {r ea.. la. he::.. d( ¡/erÓ"'>

be &.. S,,"¿"''l "" ,'"",pl?t,...e-,r6. r 14,.,.eC."'-~(·(1 <?",

OI-~v1, e..., ("1 e.JrA.ó...l d( Cb..~) def M.u,X 'i X e

Jt. pu~tJe,.." ¡,... p& - ... ~... .- e..,..., MlJX 2 X i


Mux 2)(1 : Iy = (o·Lo t Ce.XII !, )

Io :r',
Ti ·~I t· Ti ·0
.. To t1 - ro (Ti" Ti) ~ ji = ti· TCd· ti.ro + T1. -
~ -t-
"

..
'
;1
[ri ~cpl
: ..
,.

l.- . - Ti . To .¡. j1(~) - Ti ·(;DI t TLl] A.s;~"Á"".1


• Xo> r.
NOtA: e." el H.tJX Z J,t I&tt.J

To ntal: ~6. c\, l1e~Aí ~ \k..r;t:(.lA


o
y
--
TI-To
r, y
TOiT1
ro,
sóc.
evc~o

l1C6
I

M,}c..r\
~d",,'," ~c.. ...e.,l(, Si

Vj .... ¡

I"7l,;e
_ ~
Ji ,.().)cc)-,~..>\ I '
Le.,
P •
,)""'C1d''''l )
Ti·ro ehl,e1'10j '·""'I~C~,,~e.
tot\to e.., t.. 'oe. ti> f:G;o.e :
NOVIEMBRE 2011

PROBLEMA 2 (30 PUNTOS)


(~ Implemente un conversor de código BCD de dos dígitos (B para las decenas y A para las unidades)
a código binario de 7 bits (S6 ... SO) utilizando exclusivamente dos sumadores de 4 bits con acaneos
de entrada y salida como los de la Figura. Justifique adecuadamente su solución.

~ t:h Q;c. \) ~0\e-wloS I yo- e.Y) \?¡ nCU"'lo ~S Co-Y? ~ ~ a..)es '6e. 6ecena.s ~)
~ u-Y)lcdCes (A)/ WI"l e-\ LtvÚ.Co f0(,o'o\ema. 'be. ~ es~r'\ se.~r~S ~
\>a.ro- ~(Y'O-r ~\:L(' de. e..\la..s º-.o.. COU"L\;L'ónO C¿Vl \o lV1o..rt.o 0-0
<X.. I

-tenevnO'5 ~ t·VY\~e.(YleJ1\:o..r .ko(>e-l~Y\\",,~lO·S * ~J


"l \.0\0

m' B3 BZ ~l \3.0
o O
l( '\

G'\. ¡g,~
<G
O O
Wz. \31 ~
B3
O 'O
O

--
O
\31 '00
~~ ~z.
\30 O
~l
\33~'ój '6Z.+B:::>
~~ ~2

b.."3 f:\z 'Al 1\ó

---
+ rO
6 6
\3r\Jt?; R::.*(}.\ 1\0
~?\-~l ~\-~\-~
B>~ gt. S( ~
S~ S3 Sz.
~ ~

()

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355


NOVIEMBRE 2012

PROBLEMA 1 (35 PUNTOS)


Dados dos números representados en binario sin signo, A y B, de 2 bits cada uno (Al AO y BI BO,
siendo Al y BI los bits más signifIcativos)

1.1 Rellene la Tabla de verdad de la función lógica F = A> B. Para este apartado, los números A y
B sólo pueden tomar los valores decimales de 1,2 ó 3 (es decir, nunca valdrán O). (5 puntos)

A1 AO 81 80 F G
O O O O Y O
O O O 1 Y 1
O O 1 O )( X
O O 1 1 Y O
O 1 O O X O
O 1 O 1 o O
O 1 1 O O X
O 1 1 1 O O
1 O O O X X
1 O O 1 ( X
1 O 1 O O X
1 O 1 1 'O X
1 1 O O )( 1
1 1 O 1 ( 1
1 1 1 O I X
1 1 1 1 ñ O

1.2. Obtenga la expresión lógica simplificada (al máximo) de la nl11ción G, dada en la Tabla de
Verdad, utilizando un n~apa de Kamaugh. (lO puntos)
()
1.3 Implemente la función G utilizando exclusivamente dos multiplexores de 4 entradas de datos,
como los de la Figura. Para ello, NO se dispone de las seila1es negadas. Justifique adecuadamente
su solución. (J Opuntos)

tOO
lo
el
O 11
01-------' O b- ::- A.o ~ 1 (Al\-~) +
Al 12
Ao~A<l> :::.
O 13
::; A,g-, + Ao~ ~()

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619142355


_ ~'~l (Ao~ I\o)lr 1\0 ti ~él -::. A'O A,f; .t Ao~! }\\J. AC>~J \So -=

- ~éJ ~, A¡ ~ Aa \SI (A l \-\50')

~ 1 (,..' ~ Ai -t ~o '"::: 1:\, l~o.1.;~ ') ~ ~U~q4- Al ') -=


-
_ A 1 Be + A¡€o-+- >-0? A I 4-lSo f¡ ': :
-= ;, ~ + J\ \ fSo -l. Al 15 0

(
1.4 Implemente la fi.11lción G utilizando exclusivamente los siguientes componentes: un
í' decodificador 3-a-8, un decodificador 2-a-4 y una puelia lógica de su elección
Para ello, NO se dispone de las seiiales negadas. Justifique adecuadamente su solución. (10 plintos)

0°0
00
o::: Col o:::
O 01 O I
4:)<:;
o cto ·P;..~6¡ o 00
lo «
u
o~
11.1 «
U 4'1 '--
- 03
0\1 lo -LL 01
~.J':);
o-
11 LL
-o 00 )?,¡ 11 O2 lb
04 11
12 O 101
O 03
U O" U
l..L.l l..L.l
o 06 110 o
ltt
07

. (e)

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355


NOVIEMBRE 2012

PROBLEMA 2 (35 PUNTOS)


2.1 Implemente un 'Sumador completo (f'ull-Adder) mediante el uso ÚNICAMENTE de dos
medios-sumadores (Half-Adder) y la lógica combinacional necesaria. Justifique adecuadamente el
circuito empleado. (15 plintos)
Nota. Recuerde que un medio-sumador (Half-adder) es aquel que sólo tiene dos entradas de un bit cada una (los dos
sumandos, A y B) Y dos salidas de un bit cada una (la suma, S, y el acan-eo de salida, C our ), mientras que el sumador
completo (FlIll-Adder) dispone de una entrada adicional de un bit para el acan'eo de entrada (Ciu ). .

~~.\'O ~~t'I'IG>S ~ COYlSt,-u.·lr ,-\V\

A ~ C\(CUt\'o ~ Sl.tvn C<. \-res. lo As.


,
Y\

.l . ,
Wte.¿'(o.~
de. Z <2vI. L
c.·lrC';l\O~
~
~ Sl<.vY)<V')

A
!
B
I
A
J
B
ti A.+\3, -€..v\
VY\6c:; Civ¡
U~'/ ~ s-...
¿A \.\ Az
resu \ \020

(j
kI Half-adder

c,"' S

"1 1-1
- Cout
Half-adder

S
1
~ é....
./1
L."
v~ c;.... c:a..rreb
U¡..-Z \,-¡a.\or~ CLCa\¡'eo €.vH..\
Ii
e....V\ t\~\ o

\='A .

~
6

2.2 Siendo A la representación en binario de un número (con 3 bits sin signo, A2 Al AO, Y siendo
A2 el bit más significativo), se quiere obtener el valor en binario (sin signo), representado en F,
que resulta ele la siguiente expresión aritmética:

F = (A x 3) + 8

Determine el número de bits que deberá tener F para evitar el desbordamiento. Justifique su
. ()
I .
respuesta.
\ ".
(5 puntos)
\ \,
~ ,,_._"\.. e.,
<""\..('0-, ~ ....\Oe""
\ v\'ltANlefo " i -' ... _~I'
ele. '()ü.. <; he~~\lO so o '
l
-le.'\emoS 6iMC'
-~ -
e..~. ~.~..l(llo...f' e... co..S:'-C¡ ~~-;

Fj~=7 -;::?-3.\.~ -== ZC\.o ~ \'f"g. -:: ,\ \ 01 ~s \oQ'S~ CO"",

'S \o\\.c:;.
\0\0\
100<:>

I i I C) e

www.monteroespirfÓSa.coní.j,Clasé'~de EDIG - Tfnos 91 5445377 , 619142355


Ao
\
-\",
A ~
r Az At\ l A,
\11 ~,
- ....!!

Atl
~
1 A.,
1
,

~
Vn.~ e,'", eoJ
- CAl\: c\_ ~o
\ I

,
Liv\
I S
- i 2 _1 5

A-z ~ \ ~ll.A.1 A. r\-l\-c 40


,~

SI:¡ \:;~ S-z.... SI \S~ J

(
FEBRERO 2003

PROBLEMAS (15 PUNTOS)

1. Obtenga razonadamente la frecuencia máxima de reloj CLK a la que puede funcionar el circuito de la figura
suponiendo que el inversor tiene un retardo tdinv = 1ns y los biestables (FF 1 Y FF2) un tiempo de propagación
tdff = 2ns y un tiempo setup Ísetup = 3ns. Justifique la respuesta dibujando en un cronograma los tiempos pertinen-
tes involucrados y razónela en función de dicha figura. NOTA: Corno retricción adicional, suponga que la an-
chura mínima de los pulsos de la señal de reloj (tanto el de nivel alto corno el de nivel bajo) es de 1 ns, y tenga
en cuenta que la señal de reloj no tiene por qué tener un ciclo de trabajo del 50%.
FFl -
FF7

x- JI Q,
[>o "..
~
Jz
1.>
Q2 y

- -
K, Q1 loo- K2 Q2 ~

CLK -

+-.______~P~e~;~i~od~(~)_=~T______~__~.
n
2. Calcule razonadamente el tiempo de hold máximo tholdmax que podrá tener el biestable FF2, para que el
circuito funcione correctamente. Asuma las mismas restricciones que las descritas en la nota del apartado
anterior y justifique su respuesta·a partir del cronograma que ha realizado en el apartado anterior.

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


FEBRERO 2004
PROBLEMA 2
Se pretende diseñar un dispositivo luminoso consistente en una hilera de luces (Figura 1), tipo
LED, de las cuales sólo una se encuentra encendida en cada momento dado .
..
Figura 1: Hilera de luces 100000.01
El objetivo es realizar un dibujo de efecto hipnóti~ocon las luces para atraer la atención de las
personas que 10 contemplan. Para ello se realizará un movimiento oscilatorio cuya secuencia
periódica representamos en la Figura 2, Ydonde t = 9 es iITal a t = 1.
1000.• 000 1=1

10000.001 1=2

100000.01 1=3

. Figura 1: Muestra del Dibujo con los LED 10000.001 1=4

1000'.0001 1=5

(J 100.00001 1=6

10.000001 1=7

100.00001 t=8 .

1000..0001 1=9

La estructura del dispositivo luminoso es la de la Figura 3:

o
CIRCUITO
DE --;... 7
i --...t.~

O
O
BANCO
DE'
ACTIVACIÓN () LEDS
O
BloqueA O
Bloque B

o Figura 3: Diagrama de Bloques del Dispositivo Luminoso

El banco de LED tiene siete entradas, una por diodo [16••10] activas a nivel alto, de forma que si
tienen un "1" el LED correspondiente se ilumina. El circuito de activación (bloque A) se encarga de
generar las señales [16 ••10]. Para reálizar el diseño se utilizará como núcleo un registro de
desplazamiento bidireccionaJ de 8 bits (Figura 4).

A
-B
-C
-D
E
-F
-G
Figura 4: Registro de de!;plazamiento -H
SeriaCLefl
Seri.l_ Right

so
SI
CLEAR
-CLK

www.monteroespinosa.com - - Tfnos 91 54831 78,619142355


~e.~
~---------~--------"\
,r

W. c..\\<: CCVIec~Óo. o.. á.~_, ~c.1K-""Z * mWl'lio..


'& <:..~ CDr1€G-\C1"Co o.. C.\~A-R \ ~ c..ieAR.Z ~ vV\"'~o
~ 0 i i \, <;;0\ ~ SOz *' o.l'illt'l \.\0
~ ~l i, (\ S' \ ~q 'Z. ~w('ae

, Re~ _\ <;;e. e-t'\ Co-Ct:::f" ~.¿ Qa; b~\s


~ ~~ '2. S¿ e ,f)cCt.(~~ ~e ~ ~\k

( )
"'-/
La salida QA del registro irá conectada al LED ubicado en el extremo izquierdo del dispositivo,
mientras que QG se conectará al LED del extremo derecho (Figur.a 5),

Figura ·5: Conexión de las salidas del,Registro de DespÚlZIImientoa los LED (en ,el instante representlldoc¡ QF'= 1,
con Jo que su LEDasocilldo está encendido) ,

2.1 Construya e.I registro de desplazamiento de' la Figura 4 a partir de dos registros de
desplazamiento bidireccionales 74LS194, a los que llamaremos REG_l y REG~2 Y cuya hoja de:
características puede verse en el apéndice. Para ello complete el circuito de la Fig¡;¡ra 6. (10puntDs)

REG 1
, - - - - - - - - - - =1 A Q.A
~-------I B ' QB :---~~
- - - -- ---.--1 e Qc r---- .....'
----- -1 D Qo:--r-
__"---1 Serial_Left
.----1----1 Serial_Right

r+--t--t----:I------I SO
.--+--+--r--=--l S1
- - - + --f--r-t---t---i CLEAR
H--- i --,CLK "--------- QA
'-. QB
'---_ _- -Qc

r------------\\~
~------QD
QE
1
- --t-rtt=--U-+- + ---j AREG_2
QA
J- ~
rF
~~~ . QH
~--t\+""""-==l:~-\--t---I B QB '
---=r---\4I:::l~-4I--.-:::r-T--1 C Qc 'J 1
U-~-*~-~---ID QD~------~
' 1 - - --1:----.-1 Serial_Lcft
L----.----j Serial_Rigbt

L...--jr------- J so
--t::==::;--~ SI
- '""--1 CLEAR
t--:--~I CLK

Figura 6
)-~\ So
Fulk.®'tv
Ci o ' <-OY't?::l~:
o I Oe:;.~ el. a eOfi, o.
\ -o ~ e:;;.~ C\. '\,Iv..
¡ I LeAb
\..

• \J1> ~,ºmoS "",\~Va( cr.~ of<><~ en "'''I\.Ll() _",e.\~ ( ... v~¡,ó'


\,,~ ~ ~er ~o o- tf &\!>~ ~ Q"" L!;t>s\ w=1\P- -o ¡
... ~l -Aois. ek Óe\.e ",r COhGo\,.:;)" .. %S '-...\~~ l '* aft'O-n 1/"
"k ~1 'oé.. teo,.Íbk ~'ó<lIo,esl.1Je \:> (

II Gol'\. Q.c- c:::Mek 'lc/n k- l'\,.a.\COt la.f Co(\<;e~LL\'v.to s ~. UDn LoAt:: I


, ¡
\lo <;;. 'o o c:;.
~-ene.-€- . UY\OS heLes~~ pqro. ~~ecLa.(' ~(.L a;t(~
~,e~~.

\
~-
A continuación se conectará el registro de desplazamiento de la Figura 4 al resto de componentes
n para obtener el circuito de activación completo, cuyo funcionamiento es el siguiente:

• Ant~s de iniciarse el movimiento, se activa la señal LOAD conectada al biestable tipo D.


Corno consecuencia, se deberá cargar en el registro el valor "O 1000000" (el último bit no se
usa, pero es necesario cargarlo). Nóta: La señal LOAD es activa a nivel alto y se mantiene
activa como mínimo un ciclo de reloj OK.
• Cuando la séñal LOAD se desactiva, el LED iluminado se desplaza con cada pulso de reloj
en un sentido u otro (izquierda o derecha) hasta que la luz llega a uno de los extremos del
movimiento (QB ó QF encendidos).
• Cada vez que se llega a un extremo (QB ó QF encendidos), se cambia el. sentido del
movimiento.

2.2 Complete las conexiones necesarias que faltan en el esquema de la Figura 7. (20 puntos)

1< () -
.------,~-I: @-o-
A QA
Ir •
o \ o

o o '" o
0000

1.Id~ L
LOAD-D Q [ - B Q¡j f---..- - - -Io---:--'
o ---, C Q c 1--- -+------'--'
0- D Q[jl--_ _+-_ _ _ _..J
,.- ~ CLK
a- E QE r--:--- j f - -- - - - . . . . l
0- F QF r~-I-------9"-'-
EO 0 -- G QG~--4------~--~~--~
MUX f-,.....- 0 - H QH ~ ~(' o...'\M-l ~Q. forCA.d....U.'· sc0.
CK -l '\' «nvlco 'oCL~ ~-

\ EfV ti __ Serial_Left co.l'I1'o ,Ot ~'Oe<;;.\, un uno (i.AQ.Il '

\
O - ScriaJ_Right o...'óru:\.c:. 'SI" rz¡ ~rO-t1'1cS
Sft-=' ,' Co~'o~ o-
_ _V~'----l SO
..---~'--i SI Óe..c;.~\o.t.o..f
0 -':':" CLEAR o.... i.~doS
, ,
...--.-..- CLK

r- R Q# f.---J

'- Figura 7

8 .poVlevYlo~ e\ ~o ~co. ~e(a{ k S¿c ue,1c ( '0 . " 11' (C' l~


~ ~\ ~s.\o.c óe<;'f>\o. "CaYiOo ~ ~~"'a.s LI;L"e ~ e.'\br ~
o re s_~ po...~ ~ 'Vb C\...p~~'C.a.t'l V\lk..e\lOS LFD; C\I..\.¡NÚn.\'60'S
Ji \ 11 1\ 1, \ ' ,\ o.:.\~dc s,. 1\ ( r,
I / I t
SEPTIEMBRE 2004

PROBLEMA 5

U1A

En1 «__-'--1
U1A

En2 «:--~----------------L- __~


74HCOB U1A

t dAND = 1 ns
74HCOB U2A
t dff = 2ns
5
D Q
1 tsetup = 2 ns
CLK «~ __ ~ __________________ ~-¡ ______________ ~
CLK
Q 2

4
6 R
S
14
VOD

4013

n Figura 8

5.1 Obtenga la máxima frecuencia de funcionamiento el ~ircuito de la Figura 8 suponiendo los


valores de temporización que aparecen en el lateral de dlcha figura. (5 puntos)

5.2 Obtenga justificadamente el máximo tiempo de hold (l¡lOldmax) del biestable para un correcto
funcionamiento del circuito. (5 puntos)

5.3 Obtenga justificadamente la probabilidad de que el circuito de la Figura 8 no funcione


con-ectamente si utilizamos una frecuencia de reloj CLK de 125 MHz, suponiendo que las
entradas En1 y En2 pueden cambiar aleatoriamente en el tiempo con una distribución

; +min ~' E
unifonne. Indique claramente los motivos de fallo sobre un cronograma. (15 puntos)

\W\Í;'):: \.ó Q ~ ~.lAÑ.o-l


~
-lse'htp '::.
3
z-\-~.\- L.. =.:{t1'S,

t=
O

I
~ ~M ~Ó
.~~~
I ~.
~ ~ ~_; ~..L. 2"'31tug
T\>\it'\ 7",~
-:c

'Z 1 I I Z

L
www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 - 619142355
FEBRERO 2005

Problema 1
,~
( \
En el circuito de la figura los biestables tipo D, U6A y U7A, tienen distintos tiempos de propagación (tp ) Y de setup
(tsetup). Considere así mismo que las entradas de PRESET (PRE) y CLEAR (CLR) están desactivadas en todo
momento.

4 U6A
"---"P~RE=-----.
En~~_da_ ..._ _ _ _ _ _--,2:..;D o 5
---. 3 .ll< Q 6
CLR
r l' 7.474

cu<
.

tp Ísetup
Biestable U6A 1 ns 1 ns
Biestable U7A 2ns 2 ns
PuertaAND 5 ns

1.1 Utilizando los valores de la tabla obtenga justificadamente, dibujando un cronograma, la máxima frecuencia
del reloj (fCLK11IIlX) del circuito que asegure un correcto funcionamiento del mismo.

1.2 Determinar justificadamente, también sobre un cronograma, el máximo tiempo de hold (tho/d11lllX) que el
biestable U7A puede tener para que el circuito funcione correctamente.

L
www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355
FEBRERO 2008

PROBLEMA 5

Considere el siguiente circuito y los datos que se indican alIado.

D Q
A tD ÍsetuD
01 Q
Biestable DI I ns I ns
Biestable D2 2ns 1.5 ns
Biestable D3 2ns 0.5 ns
D Q J Q
B Biestable J-K 2 ns I ns
02 Q K Q
PuertaAND 1.5 ns
Puerta OR I ns
PuertaXOR 1.5 ns
C --+------ID Q t - - -.....

03 Q

o CLK

Figura 5

5.1 Utilizando los valores de la tabla obtenga justificadamente, dibujando un cronograma, la


máxima frecuencia del reloj (JCLKmax) del circuito de la figura 5 que asegure un correcto
funcionamiento del mismo. Exprese claramente los tiempos de todos los caminos que considere.
(5 puntos)

CLK

5.2. Determinar justificadamente, sobre un cronograma, el máximo tiempo de hold (tholdmax) que
puede tener el biestable DI y el J-K para que el circuito de la figura 5 funcione correctamente (5
puntos)
o

~..

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 , 619142355


FEBRERO 2009

(\ PROBLEMA 3 (15 PUNTOS)

FF1
J Q Q1 t nron tsetun
A
ell<
Biestables lns 2ns
CK
B
FFl yFF2
K Q
XOR 3ns
NAND 2ns
Tabla 1

C --+---------1 J Q 1 - - -........- - Q2

L-..-------O>Clk

D -----------1 K Q

FF2
Figura 5

3.1 Utilizando lo valores de la Tabla 1 obtenga justificadamente, dibujando un cronograma, la


máxima frecuencia del reloj (JCKmox) del circuito de la Figura 5 que asegure un correcto
funcionamiento del mismo si: (a) se utiliza un reloj con ciclo de trabajo igual a 50%, y (b) se utiliza
un reloj con ciclo de trabajo diferente al 50%, indicándose en este caso el ciclo de trabajo necesario.
(lO puntos)

3.2 Determinar justificadamente, también sobre un cronograma, el máximo tiempo de hold


(tholdmax) que el biestable FFI puede tener para que el circuito funcione correctamente. (5 puntos)

(~)

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 J 619142355


FEBRERO 2006

PROBLEMA 2 (20 PUNTOS)

El sistema de apertura de una caja fuerte dispone de dos pulsadores: Pulsador BLANCO y pulsador
NEGRO, que definen sendas señales BLANCO y NEGRO activas a nivel alto. La caja fuerte se
abre mediante la generación de una señal de apertura OP, activa a nivel alto, que abre la puerta de
la caja. Dicha apertura se produce si y solo si se efectúa una secuencia correcta de los pulsadores,
que es: BLANCO-BLANCO-NEGRO; es decir pulsando BLANCO dos veces consecutivas y luego
NEGRO.

El sistema también genera una señal de alarma, AL (activa a nivel alto), que se activa al finaliZar la
introducción de una secuencia de tres pulsaciones, si esta secuencia no fuera la correcta.

La operatividad del sistema es la siguiente:

• El sistema se encuentra inicialmel)lte en un estado de reposo, con la puerta de la caja fuerte


cerrada y ambas señales OP y AL desactivadas.

o • Una vez introducida la secuencia correcta (BLANCO-BLANCO-NEGRO) se activa la señal


OP (OP=l), la caja se abre y permanece abierta hasta que se cierra manualmente.
• El sistema se RESETEA, volviendo al estado inicial de reposo, pulsando los dos pulsadores
a la vez (BLANCO y NEGRO). Esta acción sólo se realiza al finalizar una secuencia de 3
pulsaciones (correcta-6 no). No se considera que se puedan pulsar los dos pulsadores a la
vez en ningún otro momento.
• La señal de alarma se debe activar (AL=l) si la secuencia introducida de pulsadores no es la
correcta, pero cuidado: dicha activación se debe producir al finalizar de introducir el-códi¡w
de 3 pulsaciones. Esta decisión de diseño sirve para evitar dar pistas de cual de las tres
pulsaciones ha sido la errónea.
• A la hora de dibujar el diagrama de estados tenga en cuenta:
o que todas las pulsaciones duran varios ciclos de reloj,
o que entre pulsación y pulsación' pasan varios ciclos de reloj sin tener ningún pulsador
pulsado,
o que ara c siderar activo el pulsar BLANCO ó NEGRO, hace falta pulsar die o
~-
C) 2.1 Dibuje el diagrama de estados de dicho sistema de apertura. Indique CLARAMENTE el tipo
de Máquina utilizada en su diagrama (Moore o Mealy), los estados, las entradas y las salidas. (20
puntos)
~ ~ ~ )Q., ret'0so tAL:::o/ O~~O)

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 5445377 , 619142355


<tq ? \JPnro
~ \ "
\)ü.'-'5QClo I
i
e.V1 Za. ~\.SCLClo~ \
i\1C04"íec\o.. (A-L':" <:) ,O~::o)
<:) Cu.o..\.~a. ~\~ .QYl -z.Q.. .(:)ul.sa...C.LO'Í\ e,.n CctJ'V1'/t10 ya. e...~t\.eO .

.e...ñ'C:WI.(¿ o. ( AL-=-o t OP '!;;. ti).

<t l \ =- ~lA~C.O ~~~ e,Y\ SQ. ~~~~~ e...rróY'leo., (k.-=-o, 0\>':'0)

(1 (~o.. H \\ \\ l \ ~ Camlrt-o yo.. Q.,((5l1.eO.

(--)
\ /

)
FEBRERO 2007 J,¡"9 0 e.. *"",. le De c-ü fo ....... t.. J ,

PROBLEMA 4 (30 PUNTOS) et re;fo res ...eefo.

Se desea realizar un juego de luces de navidad. El juego consta de 3 bombillas que se encienden
secuencialmente una tras otra, siguiendo la secuencia dibujada en la figura 6 en la que círculo negro
implica bombilla encendida, y círculo blanco indica bombilla apagada. El tiempo que la bombilla se
mantiene encendida será valiable según el modo de funcionamiento, y se explica más abajo. En el
ejemplo de la Figura 6 se muestra un modo de funcionamiento en el que cada bombilla se mantiene
encendida durante 1 segundo.

t =O S
8G
t =1 S
8 G
t =2 S 88
t =3 S
8G
t =4 S
8 G
t =5 S 80Figura 6

El circuito tiene cuatro entradas de control A, B C y D, todas activa a nivel alto y una única sefial de
relc~.i
CLK. El sistema tiene varios modos de funcionamiento, explicados a continuación:

• Cuando la sefial A está activada, todas las bombillas penllanecen apagadas.


• Cuando la sefial B está activada, cada bombilla se mantiene encendida durante un intervalo de
tiempo de 0.25 segundos.
• Cuando la sefíal C está activada, cada bombilla se mantiene encendida durante un intervalo de
tiempo de 0.50 segundos.
• Cuando la sefíal D está activada, cada bombilla se mantiene encendida durante un intervalo de
tiempo de 1 segundo. Este compOliarnÍento es el que se muestra como ejemplo en la Figura 6.
• Cuando ninguna de las sefíales de control está activada, todas las bombillas permanecen
apagadas.

Notas:
• NUNCA se dará el caso de que haya más de una sefial de control activada a la vez.
• Siempre que esté activada una señal de control, y pase a activarse otra diferente, todas las
bombillas se apagarán durante un ciclo de reloj y después pasan al modo que les corresponda,
según la entrada de control que se haya activado. .
4.1 Dibl~iar el diagrama de transiciones de estados de una máquina de Moore que realice el circuito
descrito. Explique detalladamente el significado de cada una de las entradas, de cada uno de los estados
y de cada una de las salidas. Indique en el diagrama los valores lógicos de las entradas, de la salidas y
de los estados. Diga también qué pedodo tendrá el reloj CLK que utilice. (15 puntos)
4.2 Supongamos que tenemos ahora los siguientes componentes: 1 contador módulo 4, 3 contadores
módulo 3, 3 descodificadores de 2 a 4 (Tabla de verdad en el Anexo del examen), un codificador de 4 a
2 (Tabla de verdad en el Anexo del examen), y un multiplexor de 4 entradas de datos de 4 bits cada una.
Dibuje las conexiones necesarias en la figura para realizar el circuito del apartado anterior. Se dispone
de una sefíal de reloj CLK de peliodo 0.25 segundos. (15 puntos)
www.monteroespinosa.es - Clases de CEDG - Tfnos 91 544 53 77 I 619142355
/3IJ
T= D' l5 S (

,1
Ce... .... ;..,DJ
tI
:

fJCt.l~tII.,)O ~ v1'10..... <:> 1,-0 (~c..c\.. o' Z 5 S)


,

I~ J~ ~ TI

0'5 J

,;¡zr
¡, .

~~oie...,c'>o 3 eH/re Cc..~CA. ..... "., .. d>e e.J,~.f&JJ;C";c..eu " Cu/lJC'j ....,·"".. J er'-f: e..


~, 0001
Tabla de verdad del Descodificador 2 a 4

2-to-4
decoder
10 YO
11 Y1
Y2
EN Y3

Inputs Outputs

EN 11 10 Y3 Y2 Y1 YO
o A X o o o o
o o o o o
o o o I o
I o o I o o
I I o o o

Tabla de verdad del Codificador 4 a 2

Entradas Salidas 10
13 12 11 10 Y1 YO
'"..¡. YO
11 (;
O O O O O O "ro
<J
O O O 1 O O
O O 1 O O 1 12 ~ Y1
()

O 1 O O 1 O 13
1 O O O 1 1

www.monteroespinosa.es- Clases de CEDG - Tfnos 91 544 53 77 , 619142355


...____________ o'Z5J
-"II~[> Contador x 4

01 00

o'¿5)
....__.---1[> Contador x 3
i..s
~[> Contador x 3
0'5 s
r--[> Contador x 3

01 00

:.....
1
1 • t
1
E~11 la dI
CLK Descodificador 2-4 I j

E~11 10
A Y3 Y2 Y1 YO Descodificador 2-4
E~11
B ----. ~ -* Y3 Y2 Y1 YO Descodificador 2-4
10
-.>f
C -1 >-
o• -
[1 ;
Y3 Y2 Y1 YO
~

o

, ~
13
O
I
12
O
I
11
j ~
rfff 10
¡Ho- 10
N
..¡. YO ,
.-
1 - ca is ,: c'SJ
Multiplexor 4 entradas de datos
o 'Z'~ j

--..
11

12
'-
o
"C
ro
o
""
'5 Y1 •
- C1
Y
/~ , r:::.. LS 5
o
u

- 13
MJ~

A= i
- r4>
(o/uu)
"
..--
.'
-,

cb
13= i ~ I.1

e
~=
=i
1
--
~
.IZ

.I3
(0'5 J)

Ud}
.

l'
",'
"
,
2'
i'~ ,t
..
.'0:' ~

3
, ...

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 ,.619 142 35~


..
Ii ~ ~ "'C:ck.. e ..... ,...],; c.\.'" ~ ~a. c\c... O' Z.S S·C'S ....,.,d Oj
113= 1
.Le ---"> 1/ 11 11 0'5 .seJ ... ..., Jo) fe = 1{
I""!> ~ Ir
" " >e<3~'" t:>c. ID:: "1 I

f'L c;p,.;.,..
".)1
co·,~-.plM~:
,......
.....,/. ~
_. 0<' ..
~.
L"
11-.1' CdP"
r-' '", oc J,' Veo. (fo- e;ie'~~'p~/
'..J
p

'Ji

...
r' L."
~C.r, ~ ..
.~.~ J ,.A -=.i
. I e( Ce o; )'~'"
~'A ;; ...
-. - >A ce... 00
I

sel1c;ee.1

V&A-~J ce.. pc...r/--ír ~ U,II"

. i
Se"'c.e CJt. lee.:.>. de • e) ,
ter·,> o'" o' z5;1I 'f
, v.... ,...., o)
.<
C\. ~p¡';pe:c.e..,.

c..,.... f.... ~ .. ,-
f°r' ~~)
'f pt>~ c.",e..fro (.I.Jb.I")~O V4 Yl?ó~L)e.
4 ( cUf",fc... ¡;t. "o C\. 1:1.)
I .
CLK J ~ I I 1\
~
"' ~

,
o'~ t
o

01
oleJ

t!J
,dT I ~

O
"
é
5
O
4 5

J ,jI' T =1s
" I
,-

O I• O
• O I
J

I
4i\
I
4r.
~
c-
=.
1.00 ~ DiO ~ OOi •

DO __ oi ~.10

A fe..
SEPTIEMBRE 2007

PROBLEMA 4 (20 PUNTOS)

Se desea proteger los datos enviados por una línea serie midosa, LS, mediante la inserción de un
código de seguridad de 2 bits al fmal de cada palabra de 4 bits de datos enviados. Este código de
seguridad se compondrá atendiendo a las siguientes reglas:

• Los 2 bits del código de seguridad, SI SO, codificarán el número de '1' que a al'ecen en la ~-_ _
palabra de 4 bits de datos enviada. EN e) VOl ... c..lr.. c\. c¡-t
• La palabra de datos nunca será el 1111. Ih...'1C... h.. h..( "1 "''''0) ,",CMe ~ A' "".... r.
• El sistema dispone también de una sefíal de habilitación, EN, que es S111 rona con e re 0.1 y que
se activa a nivel alto cuando está listo el primer bit de la palabra de datos a enviar por la línea
serie LS, indicando el inicio del proceso de generación del código de seguridad. En estado de
reposo, la sefíal EN está a cero.
• El código de seguridad (SI SO) sólo es válido una vez que se han recibido los 4 bits completos.
Los bits SI SO tendrán una duración equivalente al período de reloj y son síncronos con él.
• Al tenninar de recibirse los cuatro bits, se debe generar una sefíal activa a nivel alto llamada
. "Código de seguridad válido", CSV, que tendrá la duración de un ciclo de reloj.
• Una vez que se ha generado el código de seguridad y la sefíal CSV, se vuelve a atender a la
sefíal de entrada EN por lo que si EN está activada, se vuelve a proceSal' una nueva palabra de 4
bits yen caso contrario el sistema vuelve al estado de reposo.

4.1 Determine qué entradas y salidas tiene el sistema. (2 puntos)


4.2 Dibuje en un diagrama de tiempos, la fonna temporal de las entradas y las salidas para la palabra de
datos de 4 bits '0010'. (3 punros)
4.3 Dibuje una máquina de estados de Moare que genere el código de seguridad, SI SO, Y la sellal CSV
e identifique cuántos estados tiene y cuál es el significado de cada estado. (15 puntos) _

lLt t I EN S.
So
ENTI?.ADIH :

€I L. J: por 4.'1v{ ve. . . e>- e,., In.,,, e... se,-.'t,


I

LS 'j '-"'pó) de '-1 b: b


GS¡'
Ci..iI\ ,ª EN: Sóe. e..... pe r ..... I"toJ e... Cfer e.J '-{ t/j c'-'e-Yle\"

E:'rv =1 (tlO ),c.cc J. . eh.. pOo..... 1"7"))


)Lf. 2{
-
eL ¡..{ .,
1~ 1~ 1~ l .," l ~" l ~ l l
I
f'
-",

EN 1 lXl><l><J
LS O O
I

I
, I
O
-",

,
~
l

si O
, t @ C.$V: fb'~ "'I.~,,( Sc..Cc u,,", j

I 1- ,
Ocl f~c) i>e rc.e,;~;p e( "lO~; f.
I t
cS'v 1 , ,
I
,-
www.monteroespinos~;es::. Clases de CEDG - Tfnos 91 5445377 , 619142355
I~
- C\J~" ~'!> vr?o} y ,troj Vc..\ko,1 !c..,:C'.., ~t) ..
\ I , I
l~ 1 bd re ,; 6'-01> : Q{> == Ut1 cp O, - u.-1 1
\ , I
~ Z b; ,~ re,: b,'c)IlJ : Oz - óoJ ~ Q3 - UYJ
I

1 y ... .., ~' Q'1 == vOJ '1'


\ I \

C>oJ \~ y ""1 '1'


, I ,

~ 3 '!';h re ,; b;boJ
Os - he~ cp Q6 = Q1= Ul1 cJ> y cl>oJ 1
\ I

Oi == trel 1
\ I , I \ f ' I

4 b; 1> ttc.; b:~!.I : Qcr - c.vt.. ~fl) t> 01.0= ¡""el (/J Y I~ ,
QI/= 00) cp ~ ObJ 1
~
UI'!

• I

Q1Z. == "''1 cp ~ i/C.j \ l'


CCJArRO '1 f #
~

I M Po,RtANJ¡': Ac)t~l, ).,a.y ~ eJP..~o 1~'I;e..·,..e cl! repQJo, ece '1\0( yI..., Jc..e:~

I
TorAL:

p..f re,; 1,:,. e.. ,R:t...e..o'", c. '"'f p (ek.. ¡uf" ~o ,

heo~'" G~ (J~II ,I",c.t.,..:r) to~ !~ X e".. ~I >0


FEBRERO 2008

PROBLEMA 4 (20 PUNTOS)


Se pretende implementar una máquina de estados que controle el funcionamiento de dos semáforos
en la salida de un aparcamiento público, según el esquema de la Figura 4.

Señal A
(semáforo
o SeñalB
(semáforo
verde si A'="1", O verde si 8="1",
rojo si 8="0")
rojo si A="O")

Sensor 1
(51) Sensor 2
(82)

Figura 4

Para ello se dispone de:

• una seí'íal de reloj (CLK) con un periodo de 15 segundos.


• dos sensores de presencia/estacionamiento, entenados en el suelo, que detectan cuando un
coche está parado encima de ellos, activando dos señales activas a nivel alto; SI y S2 (si el
e.¡tc..
ho.ce.
~r"l(
x..fk
!..( coche está en movimiento, el detector no detecta nada). Dichos sensores están situados a
una distancia equivalente a la longitud de 3 coches por detrás de la línea del semáforo, y
tienen una superficie mayor gue la de un coche.
po.r... 11"'-6.... •
dos señales A y B que controlan las luces de dos semáforos. Cuando cualquiera de ellas está
activa (a nivel alto) enciende la luz verde del semáforo correspondiente.

El autómata debe funcionar de la siguiente manera:


,t
En condición nonnal, de poco tráfico, los semáforos están en verde durante 1 minuto cada uno,
alternándose. Este modo de funcionamiento cambia si en una de las dos salidas se acumulan coches
mientras esté dicho semáforo en rojo. En el momento que la cola de coches parados llegue hasta la
posición donde se encuentra el sensor de presencia/estacionamiento, el semáforo de dicha salida se
pondrá en verde en el próximo f1anco de subida de la seí'íal de reloj (CLK).

Tenga en cuenta 10 siguientes matices:

• Cualquiera de los dos semáforos estará verde durante un tiempo mínimo de 30 segundos y
un tiempo máximo de 1 minuto. -
• Los dos semáforos nunca podrán estar en verde o en rojo simultáneamente.
4.1 Dibuje el diagrama de estados de dicho sistema de control utilizando una máquina tipo Moore.
Indique CLARAMENTE los estados, las entradas y las salidas. (20 puntos)

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 544 53 77 , 619142355


5'1 ....... ", A.
S2 ........... ~

.i 5s

e", vtrcX! c"'~ se"'¡'$o,-o). A ,...,.};r ~)

eo.\"; ).:.. pe",Sc..""Ol c .. c:"~ Q ftAJ ... ,....) i:e WI ,Se"";,J.. r. C4. off"o I 't "" q"; t!'J ~c-..,)., C!kc., h."'t'" k :
M( c>.... ;'j....( e., 'l'l f'<J{
y~ f"'o", I'-'1"';" e_ "t(~ A, Vq.""J "Su, ... er ~" fDtu·,'.. ~Co/,(r
/-',c"l( '1" I!ll",( ce ol,/) sc:,,¡u,
e.. vtrh 1'.:>.'
~}e.,l~"c.»
Es f/).VI;)~ €A vtr~(

d Al ",t ¿,,,,

;<j-..t e. "1,( p...j (

(o .... ~1 11

r( B, Me 6.,. I.,~,P

('" 4'( pc..)( C~,. .s '(

po,) ( CDJI el .. ~il> leA..!" ,"


I
ver.':t 13 I Ile4( 'í.( ""1 e.> k fe.... J~,... eo....... VI.. e.etoA
el fui ef. ofr. .se"".," '3D Je,'""" il.) e. v(r.lt

Af1 E" 4-.). tlCl !e..,er ee o/ro ¡e" Sor CH.';",... c)" ( c)( c.t "1,,. e .. ef pr.,..er C'J fc...~o Q~ Ó Q"1 Óll Cc.v,

ec..~A.. ) yvtt: 11o,! o..e pr;,o..er e!lf.. ~ ixJ.e o/ro Cc..,-;'",,~


, pCII. ..... 'ja..rl4."" J; ~co. r ,., ,''''' ,......... i}e
"''''
30 S Cotl ee olro) sel'7';:Joo~ e .. ve.r~e

Le re.. ~CL :
OLf
Qo
S"e,...,;;.Jo."o A e" Ver~('
S"e .....:'J..,'\> A e.-, rOJ'o
~\
Os
11 Q6 " f> " "er.)f
QT 8 II ¡ojD

Q.,
Q3
FEBRERO 2009

PROBLEMA 4 (25 PUNTOS)


Se quiere realizar el mecanismo de control de puertas de entrada y salida de una nave espacial. En
la Figura 6 está representado un esquema del mismo. Entre el interior de la nave y el exterior, existe
una cámara intermedia de compensación de presión con dos puertas, controladas por señales lógicas
Al y A2, que separan el interior de la nave del exterior. Al activar a nivel alto cualquiera de estas
dos señales, la puerta correspondiente se abre en un tiempo despreciable. Cuando se desactivan
estas señales, la puerta correspondiente se cierra en un tiempo despreciable. Existen también dos
pulsadores, el pulsador A, accesible desde dentro de la nave y desde la cámara intermedia, y el
pulsador B accesible desde dentro de la cámara intermedia y desde fuera de la nave. También
existen un extractor de aire, controlada por una señal lógica E, cuya misión es extraer el aire de la
cámara de compensación (cuando se activa E a nivel alto) y un impulsor de aire, controlada por
una señal lógica 1 cuya misión es insuflar aire a la cámara de compensación (cuando se activa 1 a
nivel alto). La presión dentro de la nave es P >0 y la presión fuera de la nave es P=O. Asimismo en
el interior de la cámara de compensación tenemos un sensor de presión SI SO que tiene tres posibles
salidas: Si SI SO vale 00 la presión en la cámara es O, si vale 01 la presión en la cámara está entre
Oy P y si vale 11, la presión en la cámara es igual a P.

sensor de
presión
exterior
(51 SO)-----I~ (espacio)
A1 cámara
compensación
interior
nave
espacial 1
i~p~lsor/
ae aire

Figura 6

El sistema debe funcionar de la siguiente manera:

1. En el estado de reposo las dos puertas Al y A2 se encuentran cerradas (Al=O y A2=0).


2. Cuando un astronauta que se encuentra dentro de la nave quiera salir al exterior, primero
debe pulsar el botón A. - La pulsación de A será de duración suficiente para que sea
registrada correctamente en el siguiente flanco de reloj. En ese instante el impulsor de aire
empezará a llenar la cámara de compensación con aire hasta que la presión interna dentro de
la misma sea P.
3. Cuando la presión en la cámara de compensación sea P, se abrirá la puerta Al y se
mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5 segundos,
se supone que el astronauta puede entrar en la cámara de compensación.
4. A continuación el astronauta puede pulsar B. La pulsación de B será de duración suficiente
para que sea registrada correctamente en el siguiente flanco de reloj. En ese instante el
extractor de aire empieza a actuar hasta que la presión en la cámara sea O. Si durante este
tiempo, el astronauta pulsa A, se pasará a la situación del punto 2.

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 , 619142355


5. Cuando la presión dentro de la cámara de compensación se iguala a 0, se abrirá la puerta A2
y se mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5
segundos, se supone que el astronauta sale de la cámara de compensación hacia el espacio
exterior.

Alternativamente, si el astronauta está fuera de la nave y quiere volver al interior de la misma:

Primero deberá pulsar el botón B, que se encuentra fuera de la nave. La pulsación de B será
de duración suficiente para que sea registrada correctamente en el siguiente flanco de reloj.
En ese instante el extractor de aire empieza a actuar hasta que la presión en la cámara de
compensación sea O.
Cuando la presión en la cámara de compensacÍón sea 0, se abrirá la puerta Al y se
mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5 segundos,
se supone que el astronauta puede entrar en la cámara de compensación.
8. A continuación, el astronauta deberá pulsar el botón A repitiéndose 10 apuntado en los
puntos 2 y 3. En caso de ue ulsase i ación del unto 6.
9. Cuando la preSlOn en a cámara de compensación sea .P, se abrirá la puerta y se
mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5 segundos,
se supone que el astrona:uta puede volver a entrar en. la nave.

Para implementar este sistema se dispone de una señal de reloj de 5 segundos de periodo.

Nota. Nunca pueden pulsarse simultáneamente los pulsadores A y B.

4.1 Indique CLARAMENTE cuáles son las entradas y las salidas de la máquina de Moare que
controla el funcionamiento de este sistema. (2 puntos)

4.2 Dibujar el diagrama de transiciones de estados de una máquina de Moare que realice el circuito
descrito. Explique CLARAMENTE el significado de cada una de las entradas, de cada uno de los
estados y de cada una de las salidas. (15 puntos)

4.3 Suponga ahora que las puertas Al y Al no se abren ni cierran en un tiempo despreciable SL'10
que tardan 10 segundos en abrirse ó cerrarse. En este apartado, mientras se está abriendo o cerrando
alguna de las puertas, el sistema ignora cualquier pulsación de A ó B. Dibuje ahora el nuevo
diagrama de estados de la máquina de Moore. Para cada estado explique 10 que significa el mismo y
la salida que se obtiene. (8 puntos)

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 I 619142355


Ai,l\t/~/I

L• ., •.--. :

xxxx
io )< X

07-Xi 01 xx ~~ ,..tI.. 6, SilVA<:'" @


~=;)0 p-'" ilt

J O·y.....)

!
0).( '\1..(. ,,¡. e><fr,er v..>k DO
IL r-L" A XOII \

OXoo ""~~1l
,,'" r....eJ ..r A Y '1<1 pn:,¡;"o'" l'

Q~ _ p..ort... A{ e..~; e.. t.. I 5 se.:t"""~~ l! c.:.. f.:.)


Q~ - e"h-.. ye..,&>¡, o..I\-r k.J~" "fo.( P=o
,( ;x r-.7<

10xx

e OixX

1
bXX1.

Oxoo

®
!
>,CM>'

;xxxx
FEBRERO 2005

Problema 5

r A continuación se describe un componente en lenguaje VHDL.


library IEEE;
use IEEE.stdJogic_1164.ali;
use IEEE.stdJogic_arlth.all;
entity V74xxxx is
port (CLK, CLR_L, LO_L, ENP, ENT: in STO_LOGIC;
O: in UNSIGNED (3 downto O);
O: out UNSIGNEO (3 downto O);
RCO: out STOJOGIC );
end V7 4xxxx;
architecture V74xxx_arch ofV74xxxx is
signallO: UNSIGNEO (3 downto O);
begin - \
process (,9 L15, ENT, I ~ en T~I do.d no ~nd,Cl....
begin
~ if (CLK'event and CLK='1') then
b~~ ""ít'CY"O\"()

t
2 if CLR_L='Q' then 19 <= I'(o';:
+ th':"::e:':":r~
s -=->-:-'o-::')"";/ __ ';> Sisnirlco.. ::¡'U"e. ponemos
~ ~ec.utct. en <
9-lcLY'C..() t s elsif LO_L='Q' then 10 <- O; ~ .l t::t:QO'2:. lo~ bit::, de m o.. CG\..O,
l¡ elsif (ENT and ENP)='1' thenlO <= 10 + 1; L. C.LRsínc~no o.c!::iVQ Q n'lve.1 ~
5 end'f If; . ~l:
pOne.. Lo... I
do- Q. ~
d to. b en d 1;
l\jodefBnde. \~€C. meV1~<-,--+\--,----t if (IQ=15) and (ENT='1') then Reo <= '1'; LD síncrono a.cDvo o-
de 014<: perod.e~ndede else RCO <='0'; (llve.L ¡, Q.O.v;p- DenLo.w..lich
I Q.. ~ I Q d~ CLk... end ir cuent o.. OJ::lCen ~ n te c.lo..oclo
Qca oca \.O o.. T"live,Lt S\.lle. r~ O <= 10; - -, co.ícn.. \Q en Lo. m..lIdct. EN' = ENP= ~
i ~ d.1l ,p '(\0..). ck <:\lc:nto.
O-\) t:: u - "
lió) I-\QIo, Li ta..c1o pe-< El-JT end process;
'- end V74xxx_arch;

Nota: El tipo UNSIGNED es equivalente al tipo STD_ LOGIC_VECTOR que permite la función adicional "+"
que es la función "suma de números naturales".

5.1 Sobre el bloque de la Figura 5, dibuje las entradas y salidas del componente y explique detalladamente su
funcionamiento.
Nota: Las entradas se dibujan a la izquierda y las salidas a la derecha del bloque.

5.2 Modifique el código VHDL para que:

a) El reloj se active con el flanco de bajada.


b) La señal RCO sea activa a nivel bajo.
c) Funcione en módulo 10. En este caso, la señal RCO debe ser activa cuando el componente esté en su último

estado. es U(\ (ot\~)c.{ (Á-SC e(~e.hl. vYlÓ~ u.\o U~((\J ev,l.o.. d-e. [¡ C\ lS)
Stlt

71
.4
----' '
, GIl(
D
, CLR-L
aa~• .
<So
t.l"

u
www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 , 619 142 355
, i
\..l ('\ o

q '" --\~el'\
Rco <=--=
\ ,
1; '-(,\ \~ ~ ~= ~ -\he", I'Q,¿-:-&!\-'¡

\. e ¡¿\.se. Te;¡ c:=~ (t':J t~rS ~ \'0' ) ;


4 ..5
fl"} \ \;
S eí'\a 'i.~;
'1 ,~ \1 Q ~ q) cu~ (.éÑt-;:. \ l.') ~'-"ev¡ ~o ¿::: \ \'
FEBRERO 2006

( \ PROBLEMA 5 (10 PUNTOS) Muy JÁc;(, pWr.Qr?p(Pr.r VI-lPl (Cc>"",b;..,c.c:o~


.:Le) )'ut) DI. 12je,.., I't:., d,( dc..J'C.
Consideremos el siguiente fragmento de un módulo hardware descrito en VHDL.

library ieee;
use ieee.std_logic_1164.all;
use ieee.std logic arith.all;
use ieee.std=logic=unsigned.all;

entity XXXXX is

port ( AA: in std_logic_vector(5 downto O);


BB: in std logic vector(5 downto O);
CC: out stct logi-;;
DD: out std_logic_vector(5 downto O)
) ;

end XXXXX;

architecture behv of XXXX~ is / pt<!'}""t.... 53 . (h!o\l"jU ro- v>1 6'0'" ¡e€oft.sl!)


signal result: std_lOgiC_vector~ownto O);

begin

resul t <= (' O" & AA) + ( , o' & BB);


DD <= result(5 downto O);
ce <= result(6);
end behv;

Tener en cuenta que el operador '&' pennite la concatenación de cadenas de bits.


(por ejemplo, '1' & '0011 '= '10011 ').

5.1 Dibujar en el bloque de la Figura 6la interfaz del módulo hardware (puertos de entrada y
O salida), colocando las entradas a fa izquierda y las salidas a la derecha. (1 punto)

ce

AA~

Bl5 DH

Figura 6
i~.'

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142355


5.2 ¿Cuál es la función que realiza el circuito? Es decir, ¿qué módulo hardware estamos definiendo?
(1 punto)

5.3 ¿Cuál debiera ser el valor de 'N' en el tamaño de la señal result? (Justificar la respuesta). (2
puntos)
W debe. Vea.eer 6, C0r"10 V-(!t"7OJ e.. eJ~o, J.~ á.et...mrj ;
ce
.. A~~), reJ ..fI "j ~I·.,),. el re.J...e fc.Oo k fe. Sul"7c\. ek d.t ni>('1fI\)J e(! b b¡ Ij I lo",c.1-e ~

At"'IhJ c.... VI'! )c-pkf."oo 1; ~ ext.-o.. t cp J. AA, \ 4>' g


I J3 B). A4í q~(~... d .. 'b 'i,t kl't! . . D)

lit'.. s... ,..,.. ()e 6 b; h M;', &l.C&A rre o .

Después de la fase de síntesis, la implementación con puelias lógicas de otro módulo hardware es el
representado en la Figura 7.
no.~ 'l'l. ""r Ce;, ef

......kri .., .If!

AA
--~------------~----~ A
~ ce i _)

BB $ALiM

.s
:z

o
.
o
O
Figura 7

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355


5.4 Complete, rellenando las casillas necesarias que aparecen en trazo discontinuo, el siguiente
fragmento de código VHDL de fOUlla que defina el esquemático de la figura 7. (3 puntos).
(\
library ieee;
use ieee.std_logic 1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity XXXXX is

port ( AA: in std_logic¡


BB: in std_logic¡
ee: out std_logic
) ¡

end XXXXX¡

architecture syn of XXXXX is

1 component NAND2
l port( A, B : in std_logic¡ Z: 'out std_logic)¡

o 3 end component i

component INV
~
f port( A : in std_logic¡ Z out std_logic)¡
6 end component¡

t component OR2
S port( A, B in std_logic¡ Z out std_logic)¡
q end component¡

10 component AND3
1\ port( A, B, e in std_logici Z out std_logic) ¡
IL end component¡

declaración de señales
11 r' "0':' ";ij:;:!l'i~"""""" ............... :
~i~~~f
~-----------------._-------------------------------~
l'i L.:!~~~~ .. !-..:. !.1~:: f~\~, __ ", __ "" __ ., ____ , ____ ,. j
1~ L,!~~~~.. X.: ..~!~"e~!l~~ __ .,. __ ., __ ,. __ ...... ____ .. j
/! begin
It 'üi";' 'ÑAND2-- p;';;t"
____________________________________
• • __ o
-- ffi"ap:-- '(Á::;--, AA' --';' :'B~>--i3'i ----~ --;'2;:':;-- --q.--. --, --);':"""""""""
~ ____________________ ~ __________________ l ______________________ ~ ~"" _
________ ______________

'C)s U2: INV port map : (A=>


------------------------------------t----------------- ---7------------------T----------------------~-------- -------.-------
13B , : Z=> R ) ¡: :
I'l U3: OR2 port map . (A=> JI. " B=> AA " Z=> S ) ¡,
lo "".', 'ü ¡j;' 'ÁND"3' 'p' ort' roa'p'-- '!'--(A;;; --.~-- -- --, '~'B~>' S' --,. ----t'C:':;-- ·SR·----"" --;' z':;; ,'ce' --,." .)':--
........................................... '" ................................................. .! ........................................... ......'_ .. "! ....................................... ! .... !. .................... "10 ..... ................ .... ' .......1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! ... ..
:al end syn;

5.5 Indicar qué modificaciones deberían realizarse en el código anterior para obtener la versión
negada de la salida en lugar de la versión implementada. (3 puntos)

r?;:/
f2l A.;",o; ....... , ..ul HOT ( •• J,.~ '1'( "'... ..,1.;.., L pe"ti s'
ee Gb,.,,cttt",rt, f
• ,.
o."'..o.r
"M-, lJ5
i[ )"Jf.lo;r eL ANB por NANj)J :
ec,,(Clo.. o.. Ut; ...,td:a.,,~ ....... 1'<.( ... .lI!';,,( o,,,,.¡e.. r
'0 cC"'p.t1I!~¡ NAND3 ~-)-II-y-ll-i-j
....-e-,s;-,,¡., .... 15L;J ,i:}"J T: sl.Ll?..,it ' /
2.e \.I L
\, AND3 ,Pc<~""'r iA.=?Q( 13~)5, e =:1513, e =) T)
2o~iJ LJS: ;f,J\! r... f "'Ar \A =) T, t =~ ce)

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619142355


NoY;EI1~ItE 101 I

(\ PROBLEMA 3 (30'PUNTOS)

Consideremos el siguiente circuito electrónico.

o salida(6)
....... ~ 1íJ)
ro ro I~
"'C :"Q
ca ro
<1)
-ro
"'O , sa.lida(O) <1)
.•
FPGA ca
CJ) Ñ ~
ro ro
~ ~
ro
<1)
ro
<1)

salida(3)
lJ.
o ..
En la FPGA se"sintetiia "él 'siguIente fragmento de un módulo hardware descrito en VHDL,
compuesto de dos submódulos:
COrt'l P. i
Esh. ,.,.. c1..R.. "J W4 ,c.Aj:, ... dc. r Je 8(. D c.. i .s'1~,,,tD)
library IEEE;
use IEEE.STD LOGIC_1164.ALL; leo"" A,''ji ~~ de. err-or)

entity comp1 is
port (
input : in std logic vector(3 downto O); -
I¡output , out std_logic_vector(6 downto ~~~r~I"I~I"I-'I'I'f'l
end comp1; _______ scJ';,\p.~,) sc.t.l.. to)

architecture Behavioral of comP1-is

begin , ._¡
with input select output <= 1_ _ 1 ~) f~ .=(

::~ii~~~~:: :~:~ ::~~~~:::~


VJ /./
"1101101" when "0010" ,f~-.)J. .1-:
.. _1 ""h

::~~~~~~~:: :~:~ ::~~~~>~ ,_., ~:~.J


"1011011" when "0101":~'
"1011111" when "0110ff,~--"" 1 :1
"1110000" when "0111" ,_ ,1; ,-
"1111111" when "1000",- e_j' (
"1111011" when "1001",~ I-,I_i
"1001111 ff when "1111" 1'._ ~i
"0000000" when others; t -
i-=:'
end Behavioral; - .1;,; f• .!.t erro; ,"r~ e~ L!" frA<:!L 1~ ~ í

L
COME 2.
Es~e ~;c.ho e~ ''''1 Y"\of Ji" ft)Cor 2)< ~ , el, d ..) , e..~r.... J"'J
á(
kt.) cIt t.¡ bi b t:o.a.. 111'\ .. , ""'c.. e-.Ir..~ ~ 'o",~",f ~¿ ,.., ),¡}, '1
()
library IEEE;
use IEEE.STO_LOGIC_1164.ALL;

entity f2!!lp.2 is
I,r: I.J"'' ' s...e;cl.. c.e 4 bib
,,'
"--,'

port(
C: in STO LOGIC; - f ; L1 fCA.I, el.{ ú>, ~rú( ~ ~ b;~
A,B: in STD- LOGIC- VECTOR (3 downto O);~ 2 i!4 h. . d., ell 'f b; 1, coJ. "......
Y: out STO- LOGIC- VECTOR (3 downto O)~ :1
--
F«f;<t. d, '-( b;I,
);
,- f1I.,,.. l).\

- A
end comp2; -
architecture comp] _ beh of comPl is

begin
---
-
"
I?...-A' Y
e
-
-
-
-
1
with C select Y <= e. t.bc• .:I,
A when ' O' ,
6 vtrcU dt. "" Hu" 2 X 1 ~o~T" e,. 'f ¿,'b , ..... e.f,.A.)
B when '1' ,

~
(others =>' O') when others ;
end comp2_beh; O A

I 1 15 ()
, ,
llbrary IEEE;
use IEEE.STO LOGIC_1164.ALL;

entity edig is ec:l;~


port(
Co ... pt
da.to:' in STO LOGIC_VECTOR(3 downto O); Cot?pi
/4J'/.
s: in STO_LOGIC; t2 A
salida: out STO LOGIC'VECTOR (6 downto O) '"
.Q "1-
::.
) ; Y
i
'~
~ :;, "- O
end edig; ~
d.
B
~
e
archi tecture ~g ~ of edig is S.;.¿ .... ,,;t"'" ft'J'

signal aux: STO_LOGIC_VECTOR (3 downto O);

I component compl
".,.,- to~,<~v- C. ....pi
'Y c.,,.,,~
I
S
I port(
I input in std logic vector (3 downtoD); I
: output out std_logic_vector (6 downto O));:
I end component; j
- - - - - - - - - - - - - - ---
component comp1.
port(
C: in STO LOGIC;
A,B: in STO LOGIC VECTOR (3 downto O);
(
({: out STD_LOGIe_VECTOR (3 downto O));
I-.:n~ c~mponent; _
------ -----,
begin

Ul: comp2 port map(s,dato,"llll",aux);


U2: compl port map(aux,salida);

3.1 Explique razonadamente la funcionalidad del los módulos compl y comp2, indicando en un
esquema de bloques las entradas y salidas de cada módulo. (10 puntos)
Nota. Dispone de una copia (reducida en 2 páginas en una) del código VHDL de este problema en la última
página de este examen, a modo de Anexo, que puede arrancar para poder trabajar más cómodamente con él.
(
I
3.2 Explique razonadamente la funcionalidad' del circuito completo. (10 puntos) ,,-,
3.3 Modifique el circuito para que incorpore una señal de reset (activa a nivel alto) que ponga todas
las salidas a 'l' cuando se active. (10 puntos)
3.1 Explique razonadamente la funcionalidad del los módulos compl y comp2, indicandó en un
esquema de bloques las entradas y salidas de cada módulo. (10 puntos)
Nota. Dispone de una copia (reducida en 2 páginas en una) del código VHDL de este problema en la última
página de este examen, a modo de Anexo, que puede arrancar para poder trabajar más cómodamente con él.

El módulo compl es un decodificador BCD - 7 segmentos con un código especial de error


para la entrada "1111" que muestra en el display la letra "E".

El módulo comp2 es un multiplexor de dos entrada de datos de 4 bits cada una, una entrada
de control y una salida de datos de 4 bits.

3.2 Explique razonadamente la funcionalidad del circuito completo. (10 puntos)

El circuito digital controla el display de 7 segmentos. Según en valor de la entrada de control


o muestra el código BCD de la entrada en el display (entrada de controlO) o bien muestra la
letra "E" (entrada de controll).

3.3 Modifique el circuito para que incorpore una señal de reset (activa a nivel alto) que ponga todas
las salidas a '1' cuando se active. (10 puntos)

Una posible solución, aunque no la única, sería la siguiente:

entity comp.l is ce..J! (dt c.;:cl: 1" pro'(edoelo


port ( e... t<. p; c. . tr... ( y e,
input: in std logic vector(3 downto O);
rst: in std_logic;
output : out std_logic_vector(6 downto O)
) ;
end com~l; ~
~~~'~~.~~~~~~~~~---
archl tecture J:lehaVlOral or comp lS Ario.d:f'N)~o.... e.J.... ~ re..Jd
begin (
if (rst = '1') then tl: C.l>ir-(d,~ I3,cD -.1 75.,,.,,
output <= "1111111"; ~ "'/"( poflf. ''"P r.l.:cl
I A
... '1 ",e
a.'~;"""'J(
end if;

entity edig is
porte
dato: in STO_LOGrC VECTOR(3 downto O);
s: in STO_LOGrC;
reset: in STD_LOGIC;
salida: out STO LOGrC VECTOR (6 downto O)
) ;
end edig;

component compl port (input: in std logic vector(3 downto O);rst: in


std_logic_vector; output : out std~logic_vector(6 downto O));end component;

U2: compl port map(aux,reset,salida);

61'1 /Y2. 355


CEDO - Septiembre 2011 Página 9 de 10

(\ PROBLEMA 5 (15 PUNTOS)

5.1. Razone cuál de las dos opciones Ca ó b) consigue intercambiar los valores iniciales de los
objetos «codigol» y «codigo2». ¿Por qué? (5 puntos)

Opción a:
process
variable codigol : integer := 57;
variable codigo2 : integer := 92;
begin
codigol := codigo2;
codigo2 := codigol;
wait;
end process;

Opción b:

o Signal codigol: integer := 57;


signal codigo2 : integer := 92;

process (codigol, codigo2)


begin
codigol <= codigo2¡
codigo2 <= codigol;
end process;

Las variables se asignan de manera inmediata mientras que la


señales se asignan simultáneamente al finalizar el proceso
concurrente (process).

Por lo tanto, para intercambiar los valores iniciales de los


objetos se utilizará la opción b. En la opción a los objetos
siempre toman el mismo valor.
CEDG - Septiembre 2011 Página 10 de 10

5.2. Describa razonadamente la funcionalidad del siguiente circuito, indicando claramente la


funcionalidad de todas las entradas y salidas: (10 puntos) - n
library ieee;
use ieee.std_logic_1164.all;

entity cedg is
port(clk, input: in std_logic;
linput: in std_logic_ vector (7 dO'tmto O);
len: in std logic;
sr: in std_Iogici
output : out std_logic);
end cedg;

architecture archi of cedg is


signal tmp: std_logic_vector(7 dOvlDto O);
begin

process (clk,srl
begin
if sr ='1' then
tmp <= (others => 'O');
elsif len = '1' then
tmp <= linput¡
elsif clk'event and clk='l' then
tmp <= tmp(6 downto O) & input;
end if;
end processi
output <= tmp(7);

end archi¡

El circuito descrito es un registro de desplazamiento de 8 bits,


con entrada/salida serie y carga en paralelo y reset asíncrono.

Funcionalidad de las entradas y salidas:

clk: entrada de reloj


input: entrada al registro de desplazamiento serie
linput: carga de 8 bits en paralelo del registro. La carga se
.produce cuando len está activo de manera síncrona.
len: activación de la carga en paralelo, se produce de manera
síncrona.
sr: reset asíncrono. Inicializa el registro a "00000000"
ouput: salida serie del registro de desplazamiento (bit más
significativo)
ENERO 2012

{\:
PROBLEMA 1 (20 PUNTOS)

1.1 En un sistema que trabaja con aritmética de 4 bits, se dispone de dos números A y B de 4 bits
expresados en complemento a dos ([A3 .. AO] y [B3 .. BO]) y de dos bits de control SO y SI. Se quiere
constmir un circuito que realice las siguientes operaciones en función de los bits de control:

SO SI OPERA.CIÓN

O O A+B

O 1 -A-B

1 O B-A

1 1 A-B

Se dispone para ello exclusivamente de los sumadores completos de la figura y puertas XOR.
Implemente, de manera justificada, el circuito que lleva a cabo las operaciones deseadas.
(15 puntos)

e :(
" ((.ut (U)

;
'( v
,<:.:.ut (in
S.

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355


(' 1.2 Explique cuál o cuales de los siguientes códigos de VHDL sintetizan el circuito descrito en el
primer apartado. Justifique razonadamente su respuesta. (5 puntos)

,
~~~::Qi:e,f
use i.eee.sta logie 1164.0.11;
~~~a~:Qi~e"V
use ieee.std logic 1164.all;
use ieee.std=logic=unsigned.all; use ieee.std=logic=unsigned.all:

entitv adders 1 is entity adders 2 is


o~rt (A, B :- in std logic vector (3 downto O); port (11., B : in std logie v€ctor (3 do'tmto O);
- s: in sta logic vector (1 ao\mto O); s: in st.d logic vector(1. downto O);
Q: out integer); Q: out integeri;
end. adders 1; end adders 2;

architectur€; arehi or adders 1 is architecture archi oI adders - 2 is


I sl.gnal t~IP; integer; I - Ivariable tmp: inteaer; I
regin begin

PROCESS(A,B,S) PROCESS(A,B,S) VARiA$Lé .-


,-

o BEGIN BEGIN
CASE S 18 CASE S I5
W'HEN noon => bnp <= A + B; WHEN "OO'f => tmp.- A + B;
vlH.EN ffOl n => tmp <= -A-B; WHEN "01'1 => tmp:= -~lt-B:
WHEN "10" => tmp <= B-A; WHEN 1' l0 n t
=> tmp:= E-A;
WHEN "11" => tmp <= A-E; tiREN "11" => t.mp.- A-B;
¡OJEEN O'1'HERS => tmp <= O; WHEN O'I'HERS => tmp. O;
END CASE; END CASE;
END PROCESS; END PROCESS;
Q <= bnp; Q <= tmp;
end archi; end archi;

CÓDlGOC ><
library ieee;
use ieee.sta logic 1164.all;
use ieee.std=logíc::::uIlsigned.a11;
FP6A

entity adders 3 is
~ Ef. c.;~i":),:) e tlo. f¡e~e S e"" e.. e:l fe. ~t
port{A,B: in std_logic_vector(3 downto O);
s: in std_logic_vector{l downto O);
Q : out integer); .s:c-.,; ¡,.;e:ác.cl I plr e. '1 .... c.:..rob: o e., ~ vd.... k
'0 €na adders 3;
cu-.G¡";erA dt e.J r~J c--I-r",~
v,,",

110 GlJ le"i,)o er. cc.€>'\t.... :


arch.itecture archi of adders 3 is
signa1 tmp: int.eger;
begin
el c;rc.. ;to c&""r:"'~,,- ~A~;"'~'" e. () 'fra. cio.... q \,( ~~l-.
:1 PROCESS (lt,B)
BEGIN
, r'Atb. ... ~ h':'Jlt. 10( oSt fr~a.'tt:.. V" ' .... Mb.·" &) Aó B
CASE S 15
\~H.EN "00" => tmp <= A + B; Por el~f el CÁD;r;Q e N'O RfAl.;'l'/t L.,q
¡-mEN "01" => tmp <= -A-B;
WHEN "lO" => bnp <= B-A; o PE 1U\c. i órJ úlúEO Uf; Rf:tI ~
WHEN "11" => tmp <= A-E;
WHEN OTHERS => tmp <= O;
F..ND CASE; ~ Lo) eÓi'Ji1") A '1 8 cc>r~c.. C) h ¡ID bec. Mo.., ~ tc ... l':l.......
END PROCESS;
Q <= tmp;
f... ()pcrcoc: ..~ ,.... 1'" tt!1"Ml" ¿(JI.. ",,;&.. CI)~'" e~h"t
end archi;
"".... be-> C.) e( ulo ~ """ v_,..-~~ o LA. SeHd po.lt
j-..rd.r ~l tc).f~... Oo kMpon..f. t-. (JI..J; j"'Go~S1 clt

v.. i."~~J sr. },.. c.t i4M&d:.:o.h.r-.lt t'1'c..p..) 9" (... "'>S';' ....¿b·
k .re;",eeJ se. },l-~ .. Cj....c ..Ir! P"'<5='J ( P'~ Y:e..~ e(",~
L")h. *' A)d... J.. Cbrn:d'!:! $""':o"",,,.,:e-.fo der e:,.,v:to, '
www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142355
NOVIEMBRE 2012

PROBLEMA 3 (30 PUNTOS)


El siguiente módulo está descrito en VHDL y sintetizado en una FPGA.

1ibrary IEEE;
use IEEE.STD LOGIC_1164.ALLi

-entitl; comp1 is
port ( A : in STD
se1: in STD
E: in STD
LOGIC_VECTOR (3 do"mto O) ¡
LOGIC- VECTOR (1 downto O) ;
LOGIC¡
Y: out STD LOGIC) ;
end comp1¡

architecture beh_comp1 of comp1 is

signa1 aux1: STD_LOGIC¡

begin

with se1 se1ect aux1 <=


E"
10
~,
v
scl"l. y)(

A(O) when "00", \


o
CY
o
\
'"
A,,-
A(l) when "01",
A(2) when "la",
¡
, l
r
i
lb
k~
A(3) when "11",
'O' when othersi

y <= aux1 AND E¡

end beh_compl;
'-"-
"" - y----
entity comp2 is port (A : in STD_LOGIC_VECTOR(3 downto O);
8e1: in STD_LOGIC_VECTOR(l downto O)¡
E: in STD LOGIC;
Y: out STD_LOGIC);
end comp2¡

architecture beh_comp2 of comp2 is

() begin
'¡'-=- ~\. seto Ao-4 ~ 5e\o .A. \-\ I

-\-(.e.\.40 Az 4sl \Qo A-:,


! .
Y <= E AND ( A(O) AND (NOT 8e1(0)) AND (NOT se1(1)) OR
A(l) AND se1(0) AND (NOT se1(1)) OR
A(2) AND NOT(se1(0)) AND se1(1) OR
A(3) AND se1(0) AND se1(1)) i

end beh_comp2¡

- K -----)( - - -
entity comp3 is
port (11,12 :in STD_LOGIC¡
Y: out STD_LOGIC)¡
end comp3¡

architecture beh_comp3 of cornp3 is

begin

Y <= I1 OR I2¡
(
\..----/

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619142355


entity comp4 is
(--- -----=~-=--
por,- (1 :in STD_LOG1C¡
Y: out STD_LOG1C)¡
end comp4;

architecture beh_comp4 of comp4 is

begin

y <= NOT 1;

end beh_ comp4;

entity noviembre is
Port ( data : in STD_LOG1C_VECTOR (7 downto O);
sel : in STD LOG1C VECTOR (2 downto O);
f: out STD_LOG1C) ;
end noviembre;

(l i -- ~
architecture Behaviora1 of noviembre is

signal auxl, aux2, aux3: STD_LOG1C;

component compl port (A :in STD_LOG1C_VECTOR (3 do . . mto O);


se1: in STD LOG1C VECTOR (1 downto O);
E: in STD_LOG1C;
Y: out STD_LOG1C)¡
end component;

component comp2 port(A :in STD_LOG1C_VECTOR (3 downto O);


se1: in STD LOG1C VECTOR (1 downto O);
E: in STD LOG1C;
Y: out STD_LOG1C);
end component;

component comp3 port(1l,12 :in STD_LOG1C;


. ()
r ~
Y:out STD_LOG1C)¡
end component;

component comp4 port(I :in STD_LOG1C;


Y: out STD_LOG1C);
end component¡

begin

Ul: comp1 port map (data(3 downto 0),3e1(1 downto O) ,auxl,aux2)¡


U2: comp2 port map (data(7 downto 4),3e1(1 do . . mto O), 3el (2), aux3) ¡
U3: comp3 port map (aux2, aux3, f) ¡
U4: comp4 port map (3e1(2), auxl) ¡

end Behavioral¡

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355


3.1 Dibuje un esquema de bloques de cada uno de los módulos (compl, comp2, comp3 y comp4)
(' identificando claramente sus entradas y sus salidas y explique razonadamente la funcionalidad de
cada uno de los módulos (15 puntos)
Nota. Dispone de una hoja"alleXO al final del examen con el código VHDL comprimido en una única hoja, que puede anancar para
trabajar con él más fácilmente.

Esquema de Bloques de cada uno de los módulos.

comp 1 comp 2

~ ~~
'1
.
:::l ".
_ A, \
-- -'1: - "'A.-...
"- '-z t-
A.-s '1 r--
- .E
-It: ~) ~'l ~'seL.
l I \l

comp 3 comp 4

=€J- ~T. J-

Funcionalidad de cada uno de los módulos.

comp 1
Ter'\er'l1o.s ut1 yY1u)( lh'Z ( l.( e.r1~a. S ~ ).o-los Z e..,I\~('o..¿y..!l.<;;;. J

~e GOVl\..va ) (O" ENABLE,,~.:... lt.i'\ ~.\\ o..c\-\.JG a.. ",,' \ v~ 0.\\0.

comp 2 J...-\IlX lt)( L (~é.-i\~-Cldo.~ 'ce ~ -\OS I do s. de.- Cb"" \\0\) Le v, Uvl

E~I\t>LE /~C-U~1 hr\.¡O-c\..\VO ClAíve.\ ~\\o i /1'l1:S;"Y1D ce rr/l)bY\6.Ae. ~


CotY\p \ '00..'60..... su. de sc.t"\ D¿lÓrt º'
UV\ e LOV\o..\.
comp 3
~u...Q..'\:c1.. o~ "de.. {j()<;. {LV\\rc\.do. OS ,' '1 - '1: \- '\
- -'Z.. /' ':I~
¡ 1:- '1 '2.

comp 4 \>u"Q..\o lt'\ \/12..(<;bn:).. -


, y -::: ':1: . 1'._j:::.o-'1
/-

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619142355


3.2 Dibuje un esqllema con todas las conexiones entre los diferentes bloques, indicando claramente
(1 las entradas y salidas del circuito completo. (10 puntos)

~~oo
I ~f>\
n.a
~;"\o.' ~¡
'i
'6~-z . -
(h..
A~
a.ll.x z 1 (;;,mP:S
i>o-\&.?; -b.. ...... l ~\ ';t.\o
1]7
A.~"1 I "}:.
-) '7
\
"J"z

~\o.'t - <0 .... (> 7.


~\a.S

-- ~
. 1

Irz '/
)0.\0- G
eo\o--:¡.
-
....
A~ C\..\.l\l~

r~
o ~"t
€>Q.\ i
- - "
~. ~e
J
\
SQ\~
.-

3.3 Explique razonadamente la funcionalidad del circuito completo (entity "noviembre").


(5 puntos) ~_ I
~~ \.l.VI · WlU\ \\~(¿k.Of Bx~ (~e t \-cCJ..()as a.e cl ~\.cs ~ ~ *'-es;.
6'€.- CID/) \.n~)\ ) ~ccrr'o,Ó<0 (>0'- d~ 1Y\.c..L\\.. .l~~k:ort?<; l<X'Z. J LAVlCl ~It? -h fJO\
~ v,no.. ~e.,h ()~-

Se.ilzJ .e.-5.. L ~O-.. I

Q...\ d.,tí0 .

u
www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 I 619 142 355
CEDG - Febrero 2012 Página 9 de 11

PROBLEMA 6 (15 PUNTOS)

Consideremos el siguiente circuito electrónico.

salida(6J
,tI
ro
:!2
ñi
ro salida(O¡ VI

FPGA "'O
ro
Vl ""ro
N--I ro
:!2
ro
O VI VI

1U - -..
"'O

En la FPGA se sintetiza el siguiente fragmento de un módulo hardware descrito en VHDL,


compuesto de dos submódulos:

library ieee¡
use ieee.std_logic_1164.al1¡
use ieee.std_logic_unsigned.all;

entity compl is
port(A,B in std_logic_vector(3 downto O);
SAL GE out std;....logic;
SAL LT out std_logic);
end compl¡

architecture archi of compl is


begin

SAL GE <= '1' when A >= B else 'O';


SAL LT <= '1' when A < B el se 'O';

end archi;

library ieee;
use ieee.std_logic_1164.all;

entity comp2 is
port (e, D : in std logic vector(6 downto O);
S in std logic¡ -
O : out std_logic_vector(6 downto O»);
end comp2;

architecture archi of comp2 is


begin
with S select O <=
e when 'O' I
D when ' 1 ' I
e when others;
end archi;

library IEEE;
use IEEE.STD LOGIe_1164.ALL¡
use IEEE.STD_LOGIe_ARITH.ALL;
CEDG - Febrero 2012 Página 10 de 11

entity edig is
port( datol: in STO LOGIC VECTOR(3 downto O):

end edig:
dat02: in STD-LOGIC-VECTOR(3 downto O);
salida: out STO LOGrC VECTOR (6 downto O»; o
architecture edig_beh of edig is
signal aux1: std logic:
signa1 aux2: std=logic:

component comp1 port (A,B in std logic vector(3 downto O):


SAL GE : out ;td_logic:
SAL LT: out std_1ogic)¡
end component¡

component comp2 port(C, O in std_1ogic_vector(6 downto O):


S instd 10gic;
O out std_logic_vector(6 downto O»:
end component;

begin
01: compl port map(dato1,dat02,auxl,aux2);
02: comp2 port map("llll110", "0110000",auxl,sa1idal¡
end edig_beh¡

6.1 Explique razonadamente la funcionalidad del los módulos compl y comp2, indicando en un
esquema de bloques las entradas y salidas de cada módulo. (5 puntos)
Nota. Dispone de una copia del código VHDL de este problema en la última página de este examen, a modo de
Anexo, que puede arrancar para poder trabajar más cómodamente con él.

El módulo comp 1 es un comparador de dos entradas de datos de 4 bits cada una. Tiene dos salidas,
una que se activa (nivel alto) cuando A es mayor o igual a B (SAL_ GE) Y otra que se activa (nivel
alto) cuando A es menor que B (SAL_LT).

compl
B

El módulo comp2 es un multiplexor de dos entradas de datos de 7 bits cada una y una entrada de
control, que selecciona la entrada e en el caso de ser Oy la D en el caso de ser 1.

e
o
comp2

s
CEDG - Febrero 2012 Página 11 de 11

6.2 Explique razonadamente la funcionalidad del circuito completo. (5 puntos)

El circuito completo es un comparador con salida gráfica a través del display de 7 segmentos. Si
dato! es mayor o igual que dat02 aparecerá un 1 en el display. En caso contrario aparecerá un Oen
el display.

6.3 Modifique el circuito para que incorpore una señal de reset (activa a nivel alto) que ponga todas
las salidas a 'O' cuando se active. (5 puntos)

e Una posible solución, que no la única, puede ser:

entity edig is
porte dato1: in STD LOGIe VECTOR(3 downto O);
dato2: in STD-LOGIC-VECTOR(3 downto O);
reset: in STD-LOGIe;
salida: out STD LOGIC VECTOR (6 downto O});
end edig¡

begin
if (reset = '1') then
salida <= "OOOOooe u ¡
elsif
U1: comp1 port map(dato1,dato2,aux1,aux2)¡
U2: comp2 port map(n1111110","0110000",aux1,salida)¡
end if;
end edig_beh¡

L
EDIG
Problemas de
examen

www.monteroespinosa.es - Clases de EDIG - Tfnos 91 5445377 , 619142355


FEBRERO 2001

2. Se desea realizar un sumador/restador de dos números A y B de 5 bits cada uno, representados en


complemento a 2. De esta forma; cuando la señal de control M sea igual a O deberá realizarse la suma A + B,
mientras que si M es igual a 1 se efectuará la resta A - B. Por otra parte, se desea evitar problemas de
desbordamiento, para lo cual el resultado de salida deberá tener el número de bits suficiente para poder
representar todos los posibles resultados de las operaciones.

Para realizar el diseño se dispone de puertas XOR de 2 entradas y de dos sumadores ripple carry de 4 bits como
los que se muestran en la figura 4(advierta que uno de los sumadores carece de acarreo de entrada).

Complete la figura 4 para realizar el sumador/restador utilizando el menor número de puertas XOR adicionales.
Indique cuál es el mínimo número de bits de salida que garantiza la ausencia de desbordamiento en las
operaciones y señale claramente qué terminales escogería como resultado de salida.

()
Yl Yi. Y, Yil
---~­

Cout .:- .Cout . 'Y'-


L.J.

s~-

C~)

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


FEBRERO 2002

2. La función mayoría, MAY(xo, Xl> ••• , Xn-l), recibe un número impar de bits XQ, Xl> •.• , Xn-l e indica si existe una
mayoría de unos o no. Por ejemplo, dos casos concretos de función mayoría de 3 bits serían: .
• MAY(1,l,O) = 1 (pues hay más unos que ceros)
• MAY(1,O,O) = °(pues no hay más unos que ceros)
2.1. Construya una función mayoría de tres bits, Y utilizando únicamente el multiplexor de 4 entradas de

. . _- . .
XQ, Xl X2
datos de la figura.
MUX

=fJ
~

1~1
~-'
.. Jo

1.
r;

1)
Y

o 2.2. Complete la siguiente figura para construir una función mayoría de 7 bits, XQ, ••• , x¡;, utilizando:
• El diseño del apartado 2.1. para generar una función mayoría de 3 bits por medio de un multiplexor de 4
entradas de datos. NOTA: En caso de no haber resuelto el apartado 2.1, suponga que dispone de una caja
negra que implemente la función mayoría de 3 bits y utilícela donde lo precise.
e Un multiplexor de 16 entradas de datos.
• Todas las puertas. NAND de 2 entradas que necesite. Se valorará utilizar el menor número de puertas
NAND posible.
MUX

f'.HJX

CJ Y
•f
I
I
tI L"

I 11 'f".
.

C', e, e, C"
I I I ¡

2.3. Se desea implementar una función mayoría de 3 bits empleando esta vez una memoria ROM. Dimensione el
tamaño mínimo que habrían de tener los buses de dirección y de datos e indique el contenido de cada una de las
LJ palabras de la memoria. Justifique su respuesta.

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 , 619142355


o o o e o :Jo
e o I o ~AX
-rl y
o l o o '/..z .
o \ 1 1
::rz
o :¡3 (,
c:. o

VI "é)

~: Ole

,y, HAX
'1(0 lO'
no
11 ,

flSr O-$-tl >G.~ u...w') b


CJ2.f O Jo 000 o
~t ~~~~~ o _----4I~II 000 \
_ _ ~ ht-:::()-:-)(:-z~
x,7.'i:-
o---1:_---....-i :rz o o ~ 'O
. - -__~I :t'1 DO II
t l -1--- --04 ]" '" o l 00

~\-i~fW3
.'.:::'-'_-l~t--""::~'J::5> o 1o I
' - - -1IIJ-1 4 ~ \t o
1.7 D\ll Y
.......-\.- -- "1 1'2, 'eoo
.---."""-........ :te:¡ \ oC) I
__- - .., 'I1t> \ 0\0

3" lo 1/
L--- ....--t'Z \ \06
'1:.\3 \\0 I
v 3\"t II to
TI5 \\tI
!
\
, ,
• ¡

j
FEBRERO 2002

" Problema4
Se desea que el circuÍtú de la figura 8 funcione a una frecuencía de reloj de 25MHz.
Teniendo en cuenta los siguientes parámetros temporales:
tsu= 8ns
thold"" 7ns
t¡ITIJPPF'" 100$

t-propNOR ""6ns

t pmpNAND,,;:4ns
detennine los instantes de tiempo máximo (!mM) y mínimo(tmin) relativos al flanco de
subida del reloj entre Tos cuales la señal E2 podría varia:r~ permitiendo un correcto
funcionamiento del circuito. Justifique su respuesta mediante un cronograma. (10
puntos).

El

fF 1

} -- - - - - j' D Q

fF~
.82

eLK

Figura 8

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 , 619 142355


SEPTIEMBRE 2002

1. El circuito de la figura 1 utiliza un multiplexor 74x 151 (tabla de verdad en la figura 1) y un inversor para realizar
la función lógica combinacional F de cuatro variables (A, B, e y D).
74x 151

EN_L
Inputs

e 8 A Y
Outputs

Y_L
A
_V -
~ EN
A
I x x x o 8 B
o o o o 00 DO' G e
o o o 1 Dl Di ' o DO
y .F
~

D1
o o 1 o 02 02"
.' D2
o o 03 03' D3
Y P
o 1 o o 04 04' D4

o 1 o 1 Ds os' D5
06
o o 06
o· 1 07
OS'
07' L[> -,' '''' 07

. Figura 1
1.1. Función lógica
Rellene el mapq de Kamaugh de dicha función lógica F. No olvide etiquetar convenientemente las filas y columnas
de la tabla (valores de las variables de entrada.

1.2. Implementación
Implemente la función F utilizando única y exclusivamente tres puertas lógicas y justifique la solución que ha
empleado.
ITTl
b '7 o
"1 .. c.o
ADo ~ e.A ,D I ;+ e & Ii Dz..\ G BAC>~4 GBA-1)~o\ c...BAOS 4 CBAO e +CaAj)~

~ ¿ (\?~5\-~Ab ~~6\-\SA~) '\- c.l~~ ~~~{3~S) \-\3AÓ) -


- ¿[rs (~~~t\-t» \- \S(~-\A~)1~CL~(A-D~A~)~B(A\)~l\f>\) -;

== (~~~ c..~1+ CLf3.(A®t)") -\- ~(A~\t)~ ~


LtB
~ ¿ t ª-® ( fs~ D>1 \- c. [ B4I (A ~ l> ) J -
- c. ~ eg6)\.AG>O)):- C~~~A~D
www.monteroespinosa.com ~ Clases de CEDG ~ Tfnos 91 54831 78 , 619 142355
j
FEBRERO 2003

3. Queremos realizar un visualizador de números romanos (encontrará la tabla de números romanos al final de este
examen) comprendidos entre ell y ell5 a partir de una palabra binaria de cuatro bits (D3D2DIDO), siendo D3 el
más significativo entendiendo que el valor de cero tiene como equivalente el visualizador apagado.
Para ello dispondremos de cuatro elementos C4, C3, C2 y C I como los de la figura 4 que formarán la cifra romana.
En cada uno de ellos colocaremos tres neones, uno para cada símbolo romano"I", "V" Y "X" que se controlarán
con tres señales activas a nivel alto Ii, Vi Y Xi, respectivamente (por ejemplo, si 12 ="1", se encenderá el neón
correspondiente a la cifra romana "1" del elemento C2, y así sucesivamente. La cifra romana completa se alienará a-
la derecha, dejando en blanco los elementos no usados en la parte izquierda del visualizador.

()
Para gobernar el visualizador deberemos realizar un decodificador de binario (D3D2DIDo) a las señales que atacan a
dicho visualizador (~, V 4, 4, X 3, V3, 13, X 2, V 2, 12, XI, VI, 11).

1. Obtenga la tabla de verdad correspondiente a 12, rellenando la tabla

D3 D2 Dl Do 12
O O O O
O O O 1
O O 1 O
O O 1 1
O 1 O O
O 1 O 1
O 1 1 O
O 1 1 1
1 O O O
1 O O 1
(1 1 O 1 O
~j
1 O 1 1
1 1 O O
1 1 O 1
1 1 1 O
1 1 1 1

2. Obtenga la expresión simplificada de h uSando el método de Karnaugh. Realice la simplificación por


"unos" gráficamente y por "ceros". Escrib~ a continuación las expresiones correspondientes.

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


3. Utilizando el decodificador de cuatro entradas de la figura (cuya tabla de verdad se encuentra junto a la
misma), la lógica adicional que crea conveniente y las conexiones necesarias, obtenga razonadamente la
función F = (D/·D2 '·D¡·Do) + (D3 'D/'D¡"Do') + (D3·D2·D¡'·Do). Considere que representamos una señal
,n S negada como S':

DECODlF1CAJ)OR

EN 00
01
O2
o)
04
O;
lo 06
J, 07
- 11 08
1) 09
Oui
0 1,
0,2
o,)
0'4
OIS

o
_. -- _. -
EN 13 12 11 -lo 0 0
_..
0 1-:- O2 03 - 6~- Os 06
---
0 7 08 0 9 010 bl! 012 0]3 0 14 015
O X X X- X O O O O O O
O O O O O O O O O O
1 O O O O 1 O O O O O
O O O O O O O O O O
1 O O O 1 O 1 O O O O
O O O O O O O O O O
1 O O 1 O O O 1 O O O
O O O O O O O o O O
1 O O 1 1 O O O 1 O O
O O O O O O O O O O
1 O 1 O O O O O O 1 O
O O O O O O O O O O
1 O 1 O 1 O O O O O 1
O O O O O O O O O O
1 O 1 1 O O O O O O O
1 O O O O O O O O O
1 O 1 1 1 O O O O O O
O 1 O- O O O O- O O O
1 1 O O O O O O O O O O O 1 O O O O O O O
1 1 O O 1 O O O O O O O O O 1 O O O O O ~
1 1 O 1 O O O O O O O O O O O 1 O O O O O
1 I O 1 1 O O O O O O O O O O O 1 O O O O
1 1 1 O O O O O O O
~ . O O O O O O 1 O O O
-1--- . 1 - 1 O - 1 O O O O O O O O O O O O O 1 O O
1 1 1 1 O O O O O O O O O O O O O O O 1 O
1 1 1 1 L1 O O O O O O O O O O O O O O O 1

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 619 142355 I


4. Utilizando el multiplexor de 8 a 1 en la figura (cuya tabla de verdad se encuentra junto a la misma) y las
conexiones necesarias, obtenga razonadamente la función G = (D/"D2"DI'"Do') + (D3'"D2"D I'"Do) +
/~
(D3"D2"DI"Do') + (D3"D2"D¡"Do). Para ello sólo dispone de las señales D3 aDo afirmadas (no las negadas) y
( I
no se puede utilizar ninguna puerta lógica adicional. Considere que representamos na señal S negada
como S'"

MULTIPLEXOR

EN EN C2 Cl CO y
O X X X O
1 O O O 10
1 O O 1 I1
y
1 O 1 O I2
1 O 1 1 13
1 1 O O I4
1 1 O 1 I5
1 1 1 O 16
1 1 1 1 17

(~')""" 5. Indique qué señales de entre las que atacan al visualizador de números romanos (X4, V4, 4, X 3, V 3, 13, X2,
V 2, I2, XI, V ¡, II) son implementadas por las funciones F y G de los apartados 3 y 4 respectivamente"

(~

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


FEBRERO 2003

(\, PROBLEMA 4 (25 PUNTOS)

l. Se desea diseñar un contador binario que permita obtener la secuencia de cuenta 255, 254,
253, . ,2, 1, 0,255, 254, ... , a partir de una señalde reloj CLK. Sobre el esquema de la
o.'

figura 7 realice todas las conexiones necesarias para ello, utilizando dos contadores
74XX169 (cuyo cronograma de funcionamiento se encuentra al final de este examen). El
valor de la cuenta se representará con una palabra de 8 bits: 07,06,0 5 ,04 ,03, 0z, 01 Y 0 0 ,
siendo 0 7 el bit más significativo. Indique también sobre el esquema estas señales y, por
favor, sea limpio en el dibujo. (5 puntos)

R
A
l! Qu
e
ti Qc
Qo
CLOCK
Reo
l,OAD
uro
T

n
p

Figura 7

2. A partir de las señales 0 7 a 00 del apartarlo anterior, queremos construir dos bloques
detectores que generen sendas señales V16 y V64, que se activen cuando el valor de la
cuenta &'ea 16 y 64, respectivamente. Para ello, dispone de dos comparadores de magnitud
cuya tabla de verdad se encueni.raal fími.lde este examen. Realice sobre la figura 8 las
conexiones necesarias para obtener dichos detectores y las señales deseadas. Por favor, sea
limpio en el esquema. (5 puntos)

DETlOCTÓRV¡6 DETECTORV 64
_ • •~••••• - • ., •••• _ ....... " •• , ...... <............. _ .................... - ............, •••••••••••••••
o, •••••••• -. '-~" ."., .. , ................. '" o" ............. ".,. ............ -',

COMPARADOR COMPARAJ)OR

-~-----I Po -+------1 Po
--'------1 PI -.;..-.-----1 PI
,C) -';'-...;....,-----1 P2
-.;....------1 P3
.....,-+------1 P2
_ . i . -_ _ _........ P
3
-.;--'------1 P4 -+------1 P4
- . ; - - - - - - 1 P5 -+------1 P s
- o i - - - - - - - I 1'6 -;..------1 1\
-~-----I p-, -;.__-"'-----4 P7
P=Q V16 P=Q
- Qu Qo
-QI Q1
-(b Q2
- QJ Q~
---.. - Q4 Q4
- Qs Qs
- Q6 Q6
- Q7 Q7
Figura 8

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

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 619 142355 l


Cronogratna del funcionamiento de los contadores 74XX169 (problen1a 4):

..
cJ-
DJ"
Ci..OCKLJ I

U/D __ ..1--r---+r----------------~L--_ _I--_ _----"-_ _ _--"-'.

~~T~~--H-------____~
n o ... ---,
___ J

óa ==-=1
- -- r--I----.,
Oc ___ J. L-------+-------i-+----'

_IZ __
0
0
- - - r-"-+--..,......---'
- - _J
~ ¡---.+,.---.
'------t-:------:.-t---'"'-+--.,--.;..-I.

~~~_-_l
1. iJ< 14 lISO t 2: 2:;Z 11 o 'lO , .. ,..
J II----,-COUNTt»" I _T --1 .....---.. COONr o o ' ; ' H - - -

Tabla de ve[dad del cornparador de la figura 8 (problerna 4):


Estado
PEQQ
entradas
P=Q _. 1 --_.
P:;éQ O

Tabla de verdad dellTIultiplexor de la figura 9 (problelua 4):

SEL T[7:0]
- o R(7:0]
1 S[7:0J

Arranque esta página del examen


3. Ahora se desea diseñar un contador que, a partir de una señal de reloj CLK, pennita obtener
la secuencÍa de cuenta:

0,1,2, 3, ... ; 14. 15~ 16, 96, 95~ ... ,65,64,0, 1,2,3, ... , 14, 15, 16,96,95, ... ,65,64, O, ...

Disponiendo de los detectores V16 y V64del apartado anterior, de un multiplexor de dos


entradas de 8 bits (cuya tabla de verdad se encuentra al final de este examen) y de las puertas
lógicas que considere necesarias, realice todas las conexiones pertinentes sobre la figura 9
para que el circuito funcione como se desea. Por favor, sea limpio en el esquema. (15
puntos)

T[3:0] CONTADOR
O[D:A]
QA
Os
Oc
Qo
CLOCK
RCO
LOAD
U/O
() T
P

DETECTORV64
MULTIPLEXOR OA
Po 6
Pj
Oc
Pz
00
V64 P3
P4

Ps
.Oa
Pa
Oc
P7 00

DETECTORV16
OA
Po
P1
P2
V16 P3
P4
·C~)
A.
Ps OB
Ps
OC
P7
Ou

CONl"ADOR Q[D:A]

QA
Os
Oc
00
CLOCK
ReO
LOAD
UfO
T
P
FEBRERO 2003

PROBLEMAS (15 PUNTOS)

1. Obtenga razonadamente la frecuencia máxima de reloj CLK a la que puede funcionar el circuito de la figura
suponiendo que el inversor tiene un retardo tdinv = 1ns y los biestables (FF 1 Y FF2) un tiempo de propagación
tdff = 2ns y un tiempo setup Ísetup = 3ns. Justifique la respuesta dibujando en un cronograma los tiempos pertinen-
tes involucrados y razónela en función de dicha figura. NOTA: Corno retricción adicional, suponga que la an-
chura mínima de los pulsos de la señal de reloj (tanto el de nivel alto corno el de nivel bajo) es de 1 ns, y tenga
en cuenta que la señal de reloj no tiene por qué tener un ciclo de trabajo del 50%.
FFl -
FF7

x- JI Q,
[>o "..
~
Jz
1.>
Q2 y

- -
K, Q1 loo- K2 Q2 ~

CLK -

+-.______~P~e~;~i~od~(~)_=~T______~__~.
n
2. Calcule razonadamente el tiempo de hold máximo tholdmax que podrá tener el biestable FF2, para que el
circuito funcione correctamente. Asuma las mismas restricciones que las descritas en la nota del apartado
anterior y justifique su respuesta·a partir del cronograma que ha realizado en el apartado anterior.

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


JUNIO 2003

3. El circuito del multiplexor de la figura 4, cuya tabla de verdad encontrará junto a la figura 4, implementa una
función lógica F de cuatro variables:

r - - - - - - o f lo
EN e2 el co y
.,-.-----f I I o x X x o.
o o o 10
"

. . . - - - - - . . , 12 1
....- - - - - 1 13 y
r------I 14
F 1 o o 1 n
. - - - - 1 15 1 o 1 o 12,
t---..,16 1 o 1 1 B
h
1 1 o o 14
1 1 o 1 I5.'
1 1 1 o 16
1 1 1 1 17
w x y z
Figurl! 4
3.1. Escriba la expresión lógica de la función F.
3.2. Obtenga la expresión simplificada de F usando el método de Karnaugh. Realice la simplificación por "unos"
gráficamente sobre la tabla 2 y por "ceros" sobre la tabla 3. Escriba a continuación las expresiones
correspondientes.

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


JUNIO 2003

3. El circuito del multiplexor de la figura 4, cuya tabla de verdad encontrará junto a la figura 4, implementa una
. (!2( función lóg.~ca F de cuatro variables:
. i Vc
c

EN
lo
\·.BN el el CeQ' y
..
11 o x v·
.J.... X o
12
13
1 (J o b JO
14
Y F 1 D o r 11
Is 1 o 1 o 12
16 1 :0 1 1
.1, 1:3-
1 1 O O 14
"='" C2 el Co
1 :1 O 1. 15-
l' 1 1 9 :.10
1 1 1 1 17
w x y z
FJ§UFO: 4. , .
r't-q; 3.1. Escriba la expresión lógica de la función F.. .. ..
r}3.~. Obtenga la expresión simplificada deF usando el método de. Karnaug~. Re~~ice la simpl~caciónpor "unos"
..

correspondientes.

NI) rA .
I eL-l.
graficamente sobre la tabla 2 y por "ceros" sobre la tabla 3. Escoba a contmuaClOn las expresIOnes

~ i ~_l

AJ ~ Jl
J
·é' I~ Y = e zc, (/> ro + LzC.CoI, + C:c.c•.l") t C: z e. ~ r" c.l.(u J.s H:z(,(.I, .f lz c.(~
f
. .¡. LzC,Co Iz .¡.

~ ~ XyiwfXn W f XH WtXy?W't)<Ylw t xYlW+XYlWfXH·

T;)e,J:fc .. ,... ..} ----" LT> "Le ~e'"'.J obJe..,;dO .s~" ,...,:"k ........ ,S
.1;
~

r';".- e) e. u.,,~ L.. ~e. ~ \Á?,.J...,) I 17(.

F ( W/ x. YI t ). Ij .. c.f t. '1!' ..... u I'7cJo"

---
F= wXYt t Vv XYt t w;''I1 rWXY?
--
t W;XYl t
--
¡,..Ix}'? t WXy~ -

_ w ( xY"f ~ XYt + Xy(" + X't"{ ) + ~ (x Yi 1-)( Yt + x)'"2)


... -.'-.~. ~:.-

.~:-. ",
- .......--.
w x y t
o () o o o
~ 5,'n p (:!:C4. ..... ""J for l<c..,~>? .....:J'~ (for

~
o o o
o

o
o o
o

o
o
o

o
I
1:> y~

00

0 1
.00

O
01

~
"-"
I
./
1
1I
O

o
~
(

I
~

r
\

D
11 o o o I
o I o

O
1 J o
lb D ([ O
~\
I O O O

I O o F::: w)( y + WXc + vv'~


I O O

O 5:...., pl:J:cc..-, ..; ro'" K~r"'''~.J 4 (ro,- \o; ')


O O o
C> O
10
O C>
I~
\_J
o

r~).
,
'.~

r~~)
'----j
SEPTIEMBRE 2003

2. Se pretende diseñar un sistema de llen~do de un depósito de agua, cuyo esquema es el de la Figura 3, y donde:
,1 11

A B \ • CIz;lVl U o \
(';'
::::Q9 ~ c/o--c*-\vas
o(¡~á. (p7 Uf\
" l(

J I 11 • A Y B son dos señales, activas a nivel alto, que controlan


dos electroválvulas que permiten el llenado del depósito,
-N2 abriendo las entradas de agua correspondientes.

• D es una señal que controla una electroválvula que


N1 permite el vaciado del depósito, a través del desagüe
correspondiente.

-No, NI, N2 son detectores de nivel de agua que se


activan generando un nivel alto de tensión "1" al entrar
NO en contacto con el agua.

• AL es una señal de alarma que se activa en ciertos cas6s


(ver más abajo).
o

El funcionamiento del cirC\lito a diseñar es el siguiente:

• Si el agua descienqy por deblijo de NO, se deben de activar las dos electroválvulas simultáneamente A y B,
permitiendo el llenado del tanque a través de las dos entradas.
• Si el agua alcanza NO, solo se activará A, desactivándose B.
• Si el agua alcanza NO y NI, se desactivarán las dos señales A y B.
• Si el agua alcanza NO, NI Y N2, se desactivarán A y B Y se activará D.
• Cualquier otra situación anómala de N[O,I,2] activará la alarma y provocará la parada la parada de A y B,
así como la desactivación de D.

NOTA: Se considera una situación anómala cualquiera de los casos no contemplados anteriormente, por ejemplo,
el que se activen N2 y NI Y no active NO.

2.1 Realice el mapa de Karnaugh para las salidas D y AL respecto a las entradas NO, NI Y N2 e implemente el
circuito completo de ambas señales tras la simplificación. (10 puntos)

2.2 Implemente el circuito completo correspondiente a las salidas A y B utilizando exclusivamente los siguientes
multiplexores: (15 puntos)
• Señal A - Un multiplexor de cuatro entradas
• Señal B - Tres multiplexores de dos entradas

~2 tJ, f\)e- ti> ~ ~ CJO 0-\ \I \ ()

e 6 ó o
o
o (3 o o o
., e,
,,
(S) 6 1 o ,) I
(9 o <5 ~,

Ó \ o b A-L~ .;::
$1 o <::) o I

,\ 01
1 <o
,
1 b
o ,
I
~"Z.
\ ~
eto D\ It \11
'1 ) 1 I I (")
é) 6 o o o
,-,
I \ ó le \ <S

L 1) ';:' ~~\ kl ~
www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355
\)
Ñ-L ----....------,,-----
f<.l\
FEBRERO 2004

1. Se desea diseñar un circuito capaz de dividir dos números naturales de dos bits cada uno [Al, AO] entre [B1, BO]
para obtener el cociente [el, eo] y el resto [R1, RO]. En el caso en los que el divisor [B1, BO] sea cero, el cociente
y el resto serán iguales al dividendo [Al, AO] y se activará una señal de error E.

1.1 Rellene la tabla de verdad Tabla 1 y obtenga justificadamente las funciones lógicas simplificadas para R1, RO
Y E. (5 puntos)

Al AO B1 BO C1 CO R1 RO E AUX
O O O O O
O O O 1 O
O O 1 O O
O O 1 1 O
O 1 O O 1
O 1 O 1 O
O 1 1 O 1
O 1 1 1 1
1 O O O O
1 O O 1 O
1 O 1 O O
O 1 1 O
(:1 1
1 1 O O 1
1 1 O 1 O
1 1 1 O 1
1 1 1 1 O

1.2 Implemente la función AUX de la Tabla 1 con el mínimo número de puertas NAND de dos entradas. Nota:
Sólo se dispone de las entradas Al, AO, B1 y BO y no de sus complementarios. (5 puntos)
1.3 Implemente la función AUX de la Tabla 1 con dos multiplexores de 4 entradas de datos. Nota: Sólo se
dispone de las entradas Al, AO, B1 y BO y no de sus comp1ementarios.(l0 puntos)
1.4 Implemente la función AUX de la Tabla 1 en tecnología eMOS utilizando el mínimo número de transistores.
En este caso supondremos que se dispone de las entradas Al, AO, B1 y BO negadas y sin negar. (lO puntos)

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


FEBRERO 2004
PROBLEMA 2
Se pretende diseñar un dispositivo luminoso consistente en una hilera de luces (Figura 1), tipo
LED, de las cuales sólo una se encuentra encendida en cada momento dado .
..
Figura 1: Hilera de luces 100000.01
El objetivo es realizar un dibujo de efecto hipnóti~ocon las luces para atraer la atención de las
personas que 10 contemplan. Para ello se realizará un movimiento oscilatorio cuya secuencia
periódica representamos en la Figura 2, Ydonde t = 9 es iITal a t = 1.
1000.• 000 1=1

10000.001 1=2

100000.01 1=3

. Figura 1: Muestra del Dibujo con los LED 10000.001 1=4

1000'.0001 1=5

(J 100.00001 1=6

10.000001 1=7

100.00001 t=8 .

1000..0001 1=9

La estructura del dispositivo luminoso es la de la Figura 3:

o
CIRCUITO
DE --;... 7
i --...t.~

O
O
BANCO
DE'
ACTIVACIÓN () LEDS
O
BloqueA O
Bloque B

o Figura 3: Diagrama de Bloques del Dispositivo Luminoso

El banco de LED tiene siete entradas, una por diodo [16••10] activas a nivel alto, de forma que si
tienen un "1" el LED correspondiente se ilumina. El circuito de activación (bloque A) se encarga de
generar las señales [16 ••10]. Para reálizar el diseño se utilizará como núcleo un registro de
desplazamiento bidireccionaJ de 8 bits (Figura 4).

A
-B
-C
-D
E
-F
-G
Figura 4: Registro de de!;plazamiento -H
SeriaCLefl
Seri.l_ Right

so
SI
CLEAR
-CLK

www.monteroespinosa.com - - Tfnos 91 54831 78,619142355


~e.~
~---------~--------"\
,r

W. c..\\<: CCVIec~Óo. o.. á.~_, ~c.1K-""Z * mWl'lio..


'& <:..~ CDr1€G-\C1"Co o.. C.\~A-R \ ~ c..ieAR.Z ~ vV\"'~o
~ 0 i i \, <;;0\ ~ SOz *' o.l'illt'l \.\0
~ ~l i, (\ S' \ ~q 'Z. ~w('ae

, Re~ _\ <;;e. e-t'\ Co-Ct:::f" ~.¿ Qa; b~\s


~ ~~ '2. S¿ e ,f)cCt.(~~ ~e ~ ~\k

( )
"'-/
La salida QA del registro irá conectada al LED ubicado en el extremo izquierdo del dispositivo,
mientras que QG se conectará al LED del extremo derecho (Figur.a 5),

Figura ·5: Conexión de las salidas del,Registro de DespÚlZIImientoa los LED (en ,el instante representlldoc¡ QF'= 1,
con Jo que su LEDasocilldo está encendido) ,

2.1 Construya e.I registro de desplazamiento de' la Figura 4 a partir de dos registros de
desplazamiento bidireccionales 74LS194, a los que llamaremos REG_l y REG~2 Y cuya hoja de:
características puede verse en el apéndice. Para ello complete el circuito de la Fig¡;¡ra 6. (10puntDs)

REG 1
, - - - - - - - - - - =1 A Q.A
~-------I B ' QB :---~~
- - - -- ---.--1 e Qc r---- .....'
----- -1 D Qo:--r-
__"---1 Serial_Left
.----1----1 Serial_Right

r+--t--t----:I------I SO
.--+--+--r--=--l S1
- - - + --f--r-t---t---i CLEAR
H--- i --,CLK "--------- QA
'-. QB
'---_ _- -Qc

r------------\\~
~------QD
QE
1
- --t-rtt=--U-+- + ---j AREG_2
QA
J- ~
rF
~~~ . QH
~--t\+""""-==l:~-\--t---I B QB '
---=r---\4I:::l~-4I--.-:::r-T--1 C Qc 'J 1
U-~-*~-~---ID QD~------~
' 1 - - --1:----.-1 Serial_Lcft
L----.----j Serial_Rigbt

L...--jr------- J so
--t::==::;--~ SI
- '""--1 CLEAR
t--:--~I CLK

Figura 6
)-~\ So
Fulk.®'tv
Ci o ' <-OY't?::l~:
o I Oe:;.~ el. a eOfi, o.
\ -o ~ e:;;.~ C\. '\,Iv..
¡ I LeAb
\..

• \J1> ~,ºmoS "",\~Va( cr.~ of<><~ en "'''I\.Ll() _",e.\~ ( ... v~¡,ó'


\,,~ ~ ~er ~o o- tf &\!>~ ~ Q"" L!;t>s\ w=1\P- -o ¡
... ~l -Aois. ek Óe\.e ",r COhGo\,.:;)" .. %S '-...\~~ l '* aft'O-n 1/"
"k ~1 'oé.. teo,.Íbk ~'ó<lIo,esl.1Je \:> (

II Gol'\. Q.c- c:::Mek 'lc/n k- l'\,.a.\COt la.f Co(\<;e~LL\'v.to s ~. UDn LoAt:: I


, ¡
\lo <;;. 'o o c:;.
~-ene.-€- . UY\OS heLes~~ pqro. ~~ecLa.(' ~(.L a;t(~
~,e~~.

\
~-
A continuación se conectará el registro de desplazamiento de la Figura 4 al resto de componentes
n para obtener el circuito de activación completo, cuyo funcionamiento es el siguiente:

• Ant~s de iniciarse el movimiento, se activa la señal LOAD conectada al biestable tipo D.


Corno consecuencia, se deberá cargar en el registro el valor "O 1000000" (el último bit no se
usa, pero es necesario cargarlo). Nóta: La señal LOAD es activa a nivel alto y se mantiene
activa como mínimo un ciclo de reloj OK.
• Cuando la séñal LOAD se desactiva, el LED iluminado se desplaza con cada pulso de reloj
en un sentido u otro (izquierda o derecha) hasta que la luz llega a uno de los extremos del
movimiento (QB ó QF encendidos).
• Cada vez que se llega a un extremo (QB ó QF encendidos), se cambia el. sentido del
movimiento.

2.2 Complete las conexiones necesarias que faltan en el esquema de la Figura 7. (20 puntos)

1< () -
.------,~-I: @-o-
A QA
Ir •
o \ o

o o '" o
0000

1.Id~ L
LOAD-D Q [ - B Q¡j f---..- - - -Io---:--'
o ---, C Q c 1--- -+------'--'
0- D Q[jl--_ _+-_ _ _ _..J
,.- ~ CLK
a- E QE r--:--- j f - -- - - - . . . . l
0- F QF r~-I-------9"-'-
EO 0 -- G QG~--4------~--~~--~
MUX f-,.....- 0 - H QH ~ ~(' o...'\M-l ~Q. forCA.d....U.'· sc0.
CK -l '\' «nvlco 'oCL~ ~-

\ EfV ti __ Serial_Left co.l'I1'o ,Ot ~'Oe<;;.\, un uno (i.AQ.Il '

\
O - ScriaJ_Right o...'óru:\.c:. 'SI" rz¡ ~rO-t1'1cS
Sft-=' ,' Co~'o~ o-
_ _V~'----l SO
..---~'--i SI Óe..c;.~\o.t.o..f
0 -':':" CLEAR o.... i.~doS
, ,
...--.-..- CLK

r- R Q# f.---J

'- Figura 7

8 .poVlevYlo~ e\ ~o ~co. ~e(a{ k S¿c ue,1c ( '0 . " 11' (C' l~


~ ~\ ~s.\o.c óe<;'f>\o. "CaYiOo ~ ~~"'a.s LI;L"e ~ e.'\br ~
o re s_~ po...~ ~ 'Vb C\...p~~'C.a.t'l V\lk..e\lOS LFD; C\I..\.¡NÚn.\'60'S
Ji \ 11 1\ 1, \ ' ,\ o.:.\~dc s,. 1\ ( r,
I / I t
FEBRERO 2004

PROBLEMA 3

3.1 Implemente un biestable tipo D con "ENABLE" usando un biestable tipo T y la lógica
combinacional que crea necesaria. Se valorará el grado de simplicidad. (5 puntos)

3.2 Obtenga justificadamente la máxima frecuencia del reloj CLK del circuito de la Figura 8 que
asegure un correcto funcionamiento del mismo. Suponga que el ciclo de trabajo del reloj CLK es
del 50%. (10 puntos)

115A,
,---"" , 2 U2i\ '
El U1Á
" 3' 4 PRE
J, , 3A, 14 J, t.:! 12
,Q 7 ,,\ '
5 'LK:... 2 3 ~LI<,
, , ,Qtt'--~
¡..;::....--40. _ _ _ _+-..:....¡1 K. ' 7 1j, ;/' 3
7408,

,2

Figura 8
Nota: Considere que las señales CLR* y PRE* están desactivadas.
Parámetros: '-tdp~crtas == T 11S ' - - .
tdFF= 3 ns
tsetup = 2 ns

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619 142355


Apéndice
74LS194 Bidirectional Universal Shifi Register
(Extracto de la Hoja de Características)

so

n Function Table
Inwts Outputs
Moáe Berial ParaUél
elear CIDck OA. Os Oc OD
61 so Lefl Rlght A B e D
L X X X X X X X X X L L L L
H X X L X X X X X X OAO aso Ceo 000
H H H t x x a b e d a b e c;I
H L H t X H X X X X H OAn OSn OCn
H L H t x L X X X X L OAn aBn Qen
H H L t H X X X X X OSn OCn ann I'i
H H L i L X X X X X OSn Oen aDn L
H L L X X X X X X X -aAO asa Ceo 000
H ~ HigII Lovel (!OOIIdy 811110). L = Low Leva! (SluadV slalo), X = Oon', COte (any input, including trIlnsfliorls)
i ~ TlanSltian lrom-Iow 10 hlgh '''''01
n. b, o. d ., TOOlovol 01 stoady 1IUIlo inpul al In¡una A. B. e Of O, lOapocliVoly.
afIO- Oso. Oco. Doo ~ Tho lovol oIOA. De. 0001 00' 19.pOCtNe!y, bolOl'Hh9 indioalod steady Slato-input conditlonswOfo <lStablishod. -
0An' Os •. 0eno- OOn = TM /ove' el CA, 0B' 00 I88pOClively, b<lforu tha mosl.locont i "anSilion 01 Iho dock.

Timing Diagram
TyplclIl Clear. Lolld, Rlght·Shlft,L..ft-Shlft. Jnhiblt.:and Clelll' Sequences

() CLOCK

linDE
CONTROL
Iso
IM'lITS SI

SERIAL
DATA
IIfPUTS
¡
ClEAR

PARALLEL
DATA
IHPUTS
¡:e
o

oo,J:~++-I
Lo: INHIBIT ---1
CLEAA
SEPTIEMBRE 2004

PROBLEMA 2
Diseñe un sumador de dos números A y B (8= A + B) de-cuatro bits en complemento a dos
utilizando el mínimo número de componentes. Dibuje el esquema resultante. Para ello dispone de
restadores de dos números A y B (R = A - B) de cuatro bits en complemento a dos (Figura 2) y de
inversores: (15 puntos)

A3

A2
Al R3
AO R2

83 R1

62 RO

61
60

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355


SEPTIEMBRE 2004

PROBLEMA 3
(~ Se desea implementar un generador de números seudo-aleatorios utilizando un registro de
desplazamiento de 3 bits basado en biestables de tipo D, según la Figura 3.

La secuencia a generar será la siguiente, codificada en binario como "ABe" donde e es el bit
menos significativo:

0,4, 6, 7,3, 1, O, 4,6, 7,3, 1, ...

A
'---
Lógica

()
B
C
combi-
nacional
Z
--- O Q O Q O Q
-
A.a. A
Q A'O

I 1 'I
CLOCK I :>
A :>
B e
Figura 3

3.1 Rellene la tabla de verdad de la señal Z en función de A, B YC. (J Opuntos)

A B e W
o o o 1
o o 1 1
o 1 o o
o 1 1 o
o o 1
1 o 1 o
1 1 o o
1 x
3.2 Dibuje el mapa de Kamaugh y utilice dicha simplificación para determinar la expresión
lógica de Z. Nota: En caso de no haber respondido el primer apaliado utilice la tabla de
verdad de la señal W. (5 puntos)

3.3 Implemente la lógica combinacional para generar Z utilizando únicamente multiplexores de 4


entradas (Figura 4). Nota: En caso de no haber respondido el primer apartado utilice la tabla
de verdad de la señal W. (5 p u n t o s ) '

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 - 619142355


SEPTIEMBRE 2004

PROBLEMA 5

U1A

En1 «__-'--1
U1A

En2 «:--~----------------L- __~


74HCOB U1A

t dAND = 1 ns
74HCOB U2A
t dff = 2ns
5
D Q
1 tsetup = 2 ns
CLK «~ __ ~ __________________ ~-¡ ______________ ~
CLK
Q 2

4
6 R
S
14
VOD

4013

n Figura 8

5.1 Obtenga la máxima frecuencia de funcionamiento el ~ircuito de la Figura 8 suponiendo los


valores de temporización que aparecen en el lateral de dlcha figura. (5 puntos)

5.2 Obtenga justificadamente el máximo tiempo de hold (l¡lOldmax) del biestable para un correcto
funcionamiento del circuito. (5 puntos)

5.3 Obtenga justificadamente la probabilidad de que el circuito de la Figura 8 no funcione


con-ectamente si utilizamos una frecuencia de reloj CLK de 125 MHz, suponiendo que las
entradas En1 y En2 pueden cambiar aleatoriamente en el tiempo con una distribución

; +min ~' E
unifonne. Indique claramente los motivos de fallo sobre un cronograma. (15 puntos)

\W\Í;'):: \.ó Q ~ ~.lAÑ.o-l


~
-lse'htp '::.
3
z-\-~.\- L.. =.:{t1'S,

t=
O

I
~ ~M ~Ó
.~~~
I ~.
~ ~ ~_; ~..L. 2"'31tug
T\>\it'\ 7",~
-:c

'Z 1 I I Z

L
www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 - 619142355
FEBRERO 2005

Problema 1
,~
( \
En el circuito de la figura los biestables tipo D, U6A y U7A, tienen distintos tiempos de propagación (tp ) Y de setup
(tsetup). Considere así mismo que las entradas de PRESET (PRE) y CLEAR (CLR) están desactivadas en todo
momento.

4 U6A
"---"P~RE=-----.
En~~_da_ ..._ _ _ _ _ _--,2:..;D o 5
---. 3 .ll< Q 6
CLR
r l' 7.474

cu<
.

tp Ísetup
Biestable U6A 1 ns 1 ns
Biestable U7A 2ns 2 ns
PuertaAND 5 ns

1.1 Utilizando los valores de la tabla obtenga justificadamente, dibujando un cronograma, la máxima frecuencia
del reloj (fCLK11IIlX) del circuito que asegure un correcto funcionamiento del mismo.

1.2 Determinar justificadamente, también sobre un cronograma, el máximo tiempo de hold (tho/d11lllX) que el
biestable U7A puede tener para que el circuito funcione correctamente.

L
www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78,619142355
FEBRERO 2005

Problema 2

Se desea diseñar un circuito de sumar y restar dos números de un bit AO y BO con acarreo de entrada C i- 1
mediante una señal de control M. El resultado se compone de tres bits [S2,SO] expresado en complemento a dos.
La operación, en función de M es la siguiente:

M = "O" [S2,SO] = AO + BO + C j _1

M = "1" [S2,SO] = AO - (BO + Ci - 1)

2.1 Rellene la tabla de verdad, Tabla 2, y obtenga justificadamente la función lógica simplificada para SO.

M AO BO Ci-1 S2 S1 SO AUX
O O O O o o 1 tJ
O O O 1 G
"
t:J 1 O \
O O 1 O o Ó t 1 \
O O 1 1 e; 1 -o O 'Z
O 1 O O Cf) -o t 1
(.
O 1 O 1 o L P O

o O
O
1
1
1
1
O
1
(fj

~
,1 ll>
\
1
O
Z
"3-
1 O O O 6 o Ó O ()

1 O O 1 \ I I O -1
1
1
O
O
1
1
O
1
\
t
I
r
1
()
O
O
--
\
'2
i 1 O O o ó \ 1 \
1 1 O 1 ó o 6 O o
1 1 1 O o o <2:> 1 (:)

1 1 1 1 1 1 I O -1

2.2 Implemente la función AUX de la Tabla 2 con el mínimo número de puertas NOR de dos entradas.
Nota: Sólo se dispone de las entradas M, AO, BO y C i- 1 y no de sus complementarias.

e e
2.3 Implemente la función F = M . + A . + A . B . M utilizando únicamente dos multiplexores de 4
entradas de datos. Nota: Sólo se dispone de las entradas M, A, By C y no de sus complementarias.

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 I 619142355


FEBRERO 2005

PROBLEMA 4

Se dispone de una línea serie de datos por la cual se transmiten tramas de 8 bits de infol1nación
[D7 .. DO] con una cabecera de 4 bits. El funcionamiento del sistema es el siguiente:

• La línea de datos en reposo se encuentra estado alto (" 1").


• Cada vez que se quiere transmitir una nueva trama, primero se transmite una cabecera de 4
bits predeterminados, seguidos de los 8 bits de datos.
• Los 4 bits de cabecera tienen el código 0110.
• Al detectarse la cabecera se generará una señal INICIO de duración un ciclo de reloj.
• Una vez registrado el octavo bit de infol111ación (D7), se generará una señal FIN de duración "
un ciclo ele reloj. . . ~ _ ~ ¿,~ e-\..w ~~s
~C(.~
.
Y)o~r~~
• . ,.(.~
.:
..........,5
......as , .. tl_~o.. ~~ ~tawcé:>.
oe. '-"L '-~":'li
<..V\ ~ 'P7

Un ejemplo ele cronograma de transmisión se puede ver en la Figllra 2.

,,,
Unea de ,,
datos
,- "1" I"1"
"O"
,
"O" DO 01
. .
02 03 04 05 06 07
,
,
. ..¡
dato
!'
:
CLK

,
INICIO ··,,,
: I I I
·
---'T"---' I I I 1 I I I

-----_ ..·-·--1'·----·--¡-··--···---t----··+··-
I I I I _1..____._.'. ._ . __
.... _.,: .. _._ ..... 1__-"-"r:__L_
,1 _ _ _ .•: .. _____
,--- ........__--:-_
' ..-
: : : : ¡ i i 1 ¡ ! ¡ ¡ !
FIN ¡ ¡ ¡ 1 : : : : : ; :: 1,

I I I I I : : I : : I :
~¡.-_.

Figllra 2

4.1 Utilizando un único registro de desplazamiento 74HC164, un comparador de 8 bits 74HC682 y


las pue11as inversoras necesarias, implemente el circuito que genere la señal Il\lCIO sobre el
esquema de la Figura 3. Dibuje todas las conexiones necesarias para un funcionamiento correcto.
Dibuje también la sefíal de reloj (CLK) en la Figllra 2. (10 puntos)

Nota. El registro de desplazamiento 74HC164 eSTá formado por biestables tipo D con tiempos de set-lIp no
despreciables. En el anexo del examen se enC/lenT/"CI11 las camcterísticas del 74HC164 y del 74HC681. lJtiltce la
info1711aciól1 de dichas hojas.

-
www.monteroespinosa.es - Clases de CEDG - Tfnos 91544 53 77 . 619142355
FEBRERO 2007 J,¡"9 0 e.. *"",. le De c-ü fo ....... t.. J ,

PROBLEMA 4 (30 PUNTOS) et re;fo res ...eefo.

Se desea realizar un juego de luces de navidad. El juego consta de 3 bombillas que se encienden
secuencialmente una tras otra, siguiendo la secuencia dibujada en la figura 6 en la que círculo negro
implica bombilla encendida, y círculo blanco indica bombilla apagada. El tiempo que la bombilla se
mantiene encendida será valiable según el modo de funcionamiento, y se explica más abajo. En el
ejemplo de la Figura 6 se muestra un modo de funcionamiento en el que cada bombilla se mantiene
encendida durante 1 segundo.

t =O S
8G
t =1 S
8 G
t =2 S 88
t =3 S
8G
t =4 S
8 G
t =5 S 80Figura 6

El circuito tiene cuatro entradas de control A, B C y D, todas activa a nivel alto y una única sefial de
relc~.i
CLK. El sistema tiene varios modos de funcionamiento, explicados a continuación:

• Cuando la sefial A está activada, todas las bombillas penllanecen apagadas.


• Cuando la sefial B está activada, cada bombilla se mantiene encendida durante un intervalo de
tiempo de 0.25 segundos.
• Cuando la sefíal C está activada, cada bombilla se mantiene encendida durante un intervalo de
tiempo de 0.50 segundos.
• Cuando la sefíal D está activada, cada bombilla se mantiene encendida durante un intervalo de
tiempo de 1 segundo. Este compOliarnÍento es el que se muestra como ejemplo en la Figura 6.
• Cuando ninguna de las sefíales de control está activada, todas las bombillas permanecen
apagadas.

Notas:
• NUNCA se dará el caso de que haya más de una sefial de control activada a la vez.
• Siempre que esté activada una señal de control, y pase a activarse otra diferente, todas las
bombillas se apagarán durante un ciclo de reloj y después pasan al modo que les corresponda,
según la entrada de control que se haya activado. .
4.1 Dibl~iar el diagrama de transiciones de estados de una máquina de Moore que realice el circuito
descrito. Explique detalladamente el significado de cada una de las entradas, de cada uno de los estados
y de cada una de las salidas. Indique en el diagrama los valores lógicos de las entradas, de la salidas y
de los estados. Diga también qué pedodo tendrá el reloj CLK que utilice. (15 puntos)
4.2 Supongamos que tenemos ahora los siguientes componentes: 1 contador módulo 4, 3 contadores
módulo 3, 3 descodificadores de 2 a 4 (Tabla de verdad en el Anexo del examen), un codificador de 4 a
2 (Tabla de verdad en el Anexo del examen), y un multiplexor de 4 entradas de datos de 4 bits cada una.
Dibuje las conexiones necesarias en la figura para realizar el circuito del apartado anterior. Se dispone
de una sefíal de reloj CLK de peliodo 0.25 segundos. (15 puntos)
www.monteroespinosa.es - Clases de CEDG - Tfnos 91 544 53 77 I 619142355
/3IJ
T= D' l5 S (

,1
Ce... .... ;..,DJ
tI
:

fJCt.l~tII.,)O ~ v1'10..... <:> 1,-0 (~c..c\.. o' Z 5 S)


,

I~ J~ ~ TI

0'5 J

,;¡zr
¡, .

~~oie...,c'>o 3 eH/re Cc..~CA. ..... "., .. d>e e.J,~.f&JJ;C";c..eu " Cu/lJC'j ....,·"".. J er'-f: e..


~, 0001
Tabla de verdad del Descodificador 2 a 4

2-to-4
decoder
10 YO
11 Y1
Y2
EN Y3

Inputs Outputs

EN 11 10 Y3 Y2 Y1 YO
o A X o o o o
o o o o o
o o o I o
I o o I o o
I I o o o

Tabla de verdad del Codificador 4 a 2

Entradas Salidas 10
13 12 11 10 Y1 YO
'"..¡. YO
11 (;
O O O O O O "ro
<J
O O O 1 O O
O O 1 O O 1 12 ~ Y1
()

O 1 O O 1 O 13
1 O O O 1 1

www.monteroespinosa.es- Clases de CEDG - Tfnos 91 544 53 77 , 619142355


...____________ o'Z5J
-"II~[> Contador x 4

01 00

o'¿5)
....__.---1[> Contador x 3
i..s
~[> Contador x 3
0'5 s
r--[> Contador x 3

01 00

:.....
1
1 • t
1
E~11 la dI
CLK Descodificador 2-4 I j

E~11 10
A Y3 Y2 Y1 YO Descodificador 2-4
E~11
B ----. ~ -* Y3 Y2 Y1 YO Descodificador 2-4
10
-.>f
C -1 >-
o• -
[1 ;
Y3 Y2 Y1 YO
~

o

, ~
13
O
I
12
O
I
11
j ~
rfff 10
¡Ho- 10
N
..¡. YO ,
.-
1 - ca is ,: c'SJ
Multiplexor 4 entradas de datos
o 'Z'~ j

--..
11

12
'-
o
"C
ro
o
""
'5 Y1 •
- C1
Y
/~ , r:::.. LS 5
o
u

- 13
MJ~

A= i
- r4>
(o/uu)
"
..--
.'
-,

cb
13= i ~ I.1

e
~=
=i
1
--
~
.IZ

.I3
(0'5 J)

Ud}
.

l'
",'
"
,
2'
i'~ ,t
..
.'0:' ~

3
, ...

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 ,.619 142 35~


..
Ii ~ ~ "'C:ck.. e ..... ,...],; c.\.'" ~ ~a. c\c... O' Z.S S·C'S ....,.,d Oj
113= 1
.Le ---"> 1/ 11 11 0'5 .seJ ... ..., Jo) fe = 1{
I""!> ~ Ir
" " >e<3~'" t:>c. ID:: "1 I

f'L c;p,.;.,..
".)1
co·,~-.plM~:
,......
.....,/. ~
_. 0<' ..
~.
L"
11-.1' CdP"
r-' '", oc J,' Veo. (fo- e;ie'~~'p~/
'..J
p

'Ji

...
r' L."
~C.r, ~ ..
.~.~ J ,.A -=.i
. I e( Ce o; )'~'"
~'A ;; ...
-. - >A ce... 00
I

sel1c;ee.1

V&A-~J ce.. pc...r/--ír ~ U,II"

. i
Se"'c.e CJt. lee.:.>. de • e) ,
ter·,> o'" o' z5;1I 'f
, v.... ,...., o)
.<
C\. ~p¡';pe:c.e..,.

c..,.... f.... ~ .. ,-
f°r' ~~)
'f pt>~ c.",e..fro (.I.Jb.I")~O V4 Yl?ó~L)e.
4 ( cUf",fc... ¡;t. "o C\. 1:1.)
I .
CLK J ~ I I 1\
~
"' ~

,
o'~ t
o

01
oleJ

t!J
,dT I ~

O
"
é
5
O
4 5

J ,jI' T =1s
" I
,-

O I• O
• O I
J

I
4i\
I
4r.
~
c-
=.
1.00 ~ DiO ~ OOi •

DO __ oi ~.10

A fe..
FEBRERO 2008

PROBLEMA 4 (20 PUNTOS)


Se pretende implementar una máquina de estados que controle el funcionamiento de dos semáforos
en la salida de un aparcamiento público, según el esquema de la Figura 4.

Señal A
(semáforo
o SeñalB
(semáforo
verde si A'="1", O verde si 8="1",
rojo si 8="0")
rojo si A="O")

Sensor 1
(51) Sensor 2
(82)

Figura 4

Para ello se dispone de:

• una seí'íal de reloj (CLK) con un periodo de 15 segundos.


• dos sensores de presencia/estacionamiento, entenados en el suelo, que detectan cuando un
coche está parado encima de ellos, activando dos señales activas a nivel alto; SI y S2 (si el
e.¡tc..
ho.ce.
~r"l(
x..fk
!..( coche está en movimiento, el detector no detecta nada). Dichos sensores están situados a
una distancia equivalente a la longitud de 3 coches por detrás de la línea del semáforo, y
tienen una superficie mayor gue la de un coche.
po.r... 11"'-6.... •
dos señales A y B que controlan las luces de dos semáforos. Cuando cualquiera de ellas está
activa (a nivel alto) enciende la luz verde del semáforo correspondiente.

El autómata debe funcionar de la siguiente manera:


,t
En condición nonnal, de poco tráfico, los semáforos están en verde durante 1 minuto cada uno,
alternándose. Este modo de funcionamiento cambia si en una de las dos salidas se acumulan coches
mientras esté dicho semáforo en rojo. En el momento que la cola de coches parados llegue hasta la
posición donde se encuentra el sensor de presencia/estacionamiento, el semáforo de dicha salida se
pondrá en verde en el próximo f1anco de subida de la seí'íal de reloj (CLK).

Tenga en cuenta 10 siguientes matices:

• Cualquiera de los dos semáforos estará verde durante un tiempo mínimo de 30 segundos y
un tiempo máximo de 1 minuto. -
• Los dos semáforos nunca podrán estar en verde o en rojo simultáneamente.
4.1 Dibuje el diagrama de estados de dicho sistema de control utilizando una máquina tipo Moore.
Indique CLARAMENTE los estados, las entradas y las salidas. (20 puntos)

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 544 53 77 , 619142355


5'1 ....... ", A.
S2 ........... ~

.i 5s

e", vtrcX! c"'~ se"'¡'$o,-o). A ,...,.};r ~)

eo.\"; ).:.. pe",Sc..""Ol c .. c:"~ Q ftAJ ... ,....) i:e WI ,Se"";,J.. r. C4. off"o I 't "" q"; t!'J ~c-..,)., C!kc., h."'t'" k :
M( c>.... ;'j....( e., 'l'l f'<J{
y~ f"'o", I'-'1"';" e_ "t(~ A, Vq.""J "Su, ... er ~" fDtu·,'.. ~Co/,(r
/-',c"l( '1" I!ll",( ce ol,/) sc:,,¡u,
e.. vtrh 1'.:>.'
~}e.,l~"c.»
Es f/).VI;)~ €A vtr~(

d Al ",t ¿,,,,

;<j-..t e. "1,( p...j (

(o .... ~1 11

r( B, Me 6.,. I.,~,P

('" 4'( pc..)( C~,. .s '(

po,) ( CDJI el .. ~il> leA..!" ,"


I
ver.':t 13 I Ile4( 'í.( ""1 e.> k fe.... J~,... eo....... VI.. e.etoA
el fui ef. ofr. .se"".," '3D Je,'""" il.) e. v(r.lt

Af1 E" 4-.). tlCl !e..,er ee o/ro ¡e" Sor CH.';",... c)" ( c)( c.t "1,,. e .. ef pr.,..er C'J fc...~o Q~ Ó Q"1 Óll Cc.v,

ec..~A.. ) yvtt: 11o,! o..e pr;,o..er e!lf.. ~ ixJ.e o/ro Cc..,-;'",,~


, pCII. ..... 'ja..rl4."" J; ~co. r ,., ,''''' ,......... i}e
"''''
30 S Cotl ee olro) sel'7';:Joo~ e .. ve.r~e

Le re.. ~CL :
OLf
Qo
S"e,...,;;.Jo."o A e" Ver~('
S"e .....:'J..,'\> A e.-, rOJ'o
~\
Os
11 Q6 " f> " "er.)f
QT 8 II ¡ojD

Q.,
Q3
FEBRERO 2009

PROBLEMA 4 (25 PUNTOS)


Se quiere realizar el mecanismo de control de puertas de entrada y salida de una nave espacial. En
la Figura 6 está representado un esquema del mismo. Entre el interior de la nave y el exterior, existe
una cámara intermedia de compensación de presión con dos puertas, controladas por señales lógicas
Al y A2, que separan el interior de la nave del exterior. Al activar a nivel alto cualquiera de estas
dos señales, la puerta correspondiente se abre en un tiempo despreciable. Cuando se desactivan
estas señales, la puerta correspondiente se cierra en un tiempo despreciable. Existen también dos
pulsadores, el pulsador A, accesible desde dentro de la nave y desde la cámara intermedia, y el
pulsador B accesible desde dentro de la cámara intermedia y desde fuera de la nave. También
existen un extractor de aire, controlada por una señal lógica E, cuya misión es extraer el aire de la
cámara de compensación (cuando se activa E a nivel alto) y un impulsor de aire, controlada por
una señal lógica 1 cuya misión es insuflar aire a la cámara de compensación (cuando se activa 1 a
nivel alto). La presión dentro de la nave es P >0 y la presión fuera de la nave es P=O. Asimismo en
el interior de la cámara de compensación tenemos un sensor de presión SI SO que tiene tres posibles
salidas: Si SI SO vale 00 la presión en la cámara es O, si vale 01 la presión en la cámara está entre
Oy P y si vale 11, la presión en la cámara es igual a P.

sensor de
presión
exterior
(51 SO)-----I~ (espacio)
A1 cámara
compensación
interior
nave
espacial 1
i~p~lsor/
ae aire

Figura 6

El sistema debe funcionar de la siguiente manera:

1. En el estado de reposo las dos puertas Al y A2 se encuentran cerradas (Al=O y A2=0).


2. Cuando un astronauta que se encuentra dentro de la nave quiera salir al exterior, primero
debe pulsar el botón A. - La pulsación de A será de duración suficiente para que sea
registrada correctamente en el siguiente flanco de reloj. En ese instante el impulsor de aire
empezará a llenar la cámara de compensación con aire hasta que la presión interna dentro de
la misma sea P.
3. Cuando la presión en la cámara de compensación sea P, se abrirá la puerta Al y se
mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5 segundos,
se supone que el astronauta puede entrar en la cámara de compensación.
4. A continuación el astronauta puede pulsar B. La pulsación de B será de duración suficiente
para que sea registrada correctamente en el siguiente flanco de reloj. En ese instante el
extractor de aire empieza a actuar hasta que la presión en la cámara sea O. Si durante este
tiempo, el astronauta pulsa A, se pasará a la situación del punto 2.

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 , 619142355


Ai,l\t/~/I

L• ., •.--. :

xxxx
io )< X

07-Xi 01 xx ~~ ,..tI.. 6, SilVA<:'" @


~=;)0 p-'" ilt

J O·y.....)

!
0).( '\1..(. ,,¡. e><fr,er v..>k DO
IL r-L" A XOII \

OXoo ""~~1l
,,'" r....eJ ..r A Y '1<1 pn:,¡;"o'" l'

Q~ _ p..ort... A{ e..~; e.. t.. I 5 se.:t"""~~ l! c.:.. f.:.)


Q~ - e"h-.. ye..,&>¡, o..I\-r k.J~" "fo.( P=o
5. Cuando la presión dentro de la cámara de compensación se iguala a 0, se abrirá la puerta A2
y se mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5
segundos, se supone que el astronauta sale de la cámara de compensación hacia el espacio
exterior.

Alternativamente, si el astronauta está fuera de la nave y quiere volver al interior de la misma:

Primero deberá pulsar el botón B, que se encuentra fuera de la nave. La pulsación de B será
de duración suficiente para que sea registrada correctamente en el siguiente flanco de reloj.
En ese instante el extractor de aire empieza a actuar hasta que la presión en la cámara de
compensación sea O.
Cuando la presión en la cámara de compensacÍón sea 0, se abrirá la puerta Al y se
mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5 segundos,
se supone que el astronauta puede entrar en la cámara de compensación.
8. A continuación, el astronauta deberá pulsar el botón A repitiéndose 10 apuntado en los
puntos 2 y 3. En caso de ue ulsase i ación del unto 6.
9. Cuando la preSlOn en a cámara de compensación sea .P, se abrirá la puerta y se
mantendrá abierta durante 5 segundos, cerrándose a continuación. Durante esos 5 segundos,
se supone que el astrona:uta puede volver a entrar en. la nave.

Para implementar este sistema se dispone de una señal de reloj de 5 segundos de periodo.

Nota. Nunca pueden pulsarse simultáneamente los pulsadores A y B.

4.1 Indique CLARAMENTE cuáles son las entradas y las salidas de la máquina de Moare que
controla el funcionamiento de este sistema. (2 puntos)

4.2 Dibujar el diagrama de transiciones de estados de una máquina de Moare que realice el circuito
descrito. Explique CLARAMENTE el significado de cada una de las entradas, de cada uno de los
estados y de cada una de las salidas. (15 puntos)

4.3 Suponga ahora que las puertas Al y Al no se abren ni cierran en un tiempo despreciable SL'10
que tardan 10 segundos en abrirse ó cerrarse. En este apartado, mientras se está abriendo o cerrando
alguna de las puertas, el sistema ignora cualquier pulsación de A ó B. Dibuje ahora el nuevo
diagrama de estados de la máquina de Moore. Para cada estado explique 10 que significa el mismo y
la salida que se obtiene. (8 puntos)

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 I 619142355


,( ;x r-.7<

10xx

e OixX

1
bXX1.

Oxoo

®
!
>,CM>'

;xxxx
SEPTIEMBRE 2007

PROBLEMA 4 (20 PUNTOS)

Se desea proteger los datos enviados por una línea serie midosa, LS, mediante la inserción de un
código de seguridad de 2 bits al fmal de cada palabra de 4 bits de datos enviados. Este código de
seguridad se compondrá atendiendo a las siguientes reglas:

• Los 2 bits del código de seguridad, SI SO, codificarán el número de '1' que a al'ecen en la ~-_ _
palabra de 4 bits de datos enviada. EN e) VOl ... c..lr.. c\. c¡-t
• La palabra de datos nunca será el 1111. Ih...'1C... h.. h..( "1 "''''0) ,",CMe ~ A' "".... r.
• El sistema dispone también de una sefíal de habilitación, EN, que es S111 rona con e re 0.1 y que
se activa a nivel alto cuando está listo el primer bit de la palabra de datos a enviar por la línea
serie LS, indicando el inicio del proceso de generación del código de seguridad. En estado de
reposo, la sefíal EN está a cero.
• El código de seguridad (SI SO) sólo es válido una vez que se han recibido los 4 bits completos.
Los bits SI SO tendrán una duración equivalente al período de reloj y son síncronos con él.
• Al tenninar de recibirse los cuatro bits, se debe generar una sefíal activa a nivel alto llamada
. "Código de seguridad válido", CSV, que tendrá la duración de un ciclo de reloj.
• Una vez que se ha generado el código de seguridad y la sefíal CSV, se vuelve a atender a la
sefíal de entrada EN por lo que si EN está activada, se vuelve a proceSal' una nueva palabra de 4
bits yen caso contrario el sistema vuelve al estado de reposo.

4.1 Determine qué entradas y salidas tiene el sistema. (2 puntos)


4.2 Dibuje en un diagrama de tiempos, la fonna temporal de las entradas y las salidas para la palabra de
datos de 4 bits '0010'. (3 punros)
4.3 Dibuje una máquina de estados de Moare que genere el código de seguridad, SI SO, Y la sellal CSV
e identifique cuántos estados tiene y cuál es el significado de cada estado. (15 puntos) _

lLt t I EN S.
So
ENTI?.ADIH :

€I L. J: por 4.'1v{ ve. . . e>- e,., In.,,, e... se,-.'t,


I

LS 'j '-"'pó) de '-1 b: b


GS¡'
Ci..iI\ ,ª EN: Sóe. e..... pe r ..... I"toJ e... Cfer e.J '-{ t/j c'-'e-Yle\"

E:'rv =1 (tlO ),c.cc J. . eh.. pOo..... 1"7"))


)Lf. 2{
-
eL ¡..{ .,
1~ 1~ 1~ l .," l ~" l ~ l l
I
f'
-",

EN 1 lXl><l><J
LS O O
I

I
, I
O
-",

,
~
l

si O
, t @ C.$V: fb'~ "'I.~,,( Sc..Cc u,,", j

I 1- ,
Ocl f~c) i>e rc.e,;~;p e( "lO~; f.
I t
cS'v 1 , ,
I
,-
www.monteroespinos~;es::. Clases de CEDG - Tfnos 91 5445377 , 619142355
I~
- C\J~" ~'!> vr?o} y ,troj Vc..\ko,1 !c..,:C'.., ~t) ..
\ I , I
l~ 1 bd re ,; 6'-01> : Q{> == Ut1 cp O, - u.-1 1
\ , I
~ Z b; ,~ re,: b,'c)IlJ : Oz - óoJ ~ Q3 - UYJ
I

1 y ... .., ~' Q'1 == vOJ '1'


\ I \

C>oJ \~ y ""1 '1'


, I ,

~ 3 '!';h re ,; b;boJ
Os - he~ cp Q6 = Q1= Ul1 cJ> y cl>oJ 1
\ I

Oi == trel 1
\ I , I \ f ' I

4 b; 1> ttc.; b:~!.I : Qcr - c.vt.. ~fl) t> 01.0= ¡""el (/J Y I~ ,
QI/= 00) cp ~ ObJ 1
~
UI'!

• I

Q1Z. == "''1 cp ~ i/C.j \ l'


CCJArRO '1 f #
~

I M Po,RtANJ¡': Ac)t~l, ).,a.y ~ eJP..~o 1~'I;e..·,..e cl! repQJo, ece '1\0( yI..., Jc..e:~

I
TorAL:

p..f re,; 1,:,. e.. ,R:t...e..o'", c. '"'f p (ek.. ¡uf" ~o ,

heo~'" G~ (J~II ,I",c.t.,..:r) to~ !~ X e".. ~I >0


Línea de
(~
I datos
-~ el\<
74x682
I i ~ PO
Crear
3
00
A
Le B
74HC164 Crack ,<¡o..
..--- 01
I~ P1
5

QA QB Qc Qo QE QF QGQH I~ P2
7
. - - Q2 h. 19 ........_
'-
T:l~
I PEOO
.....
P3

~~
03
P4
12
04
JJ¡~ P5
PGTO
~
14
OS
~
\ --=-l·

16
P6
Q6
'O~ P7

-
1 ~ 18 07

CJ lo \l 1i t O Il 1fI , 11 J
~

Figura 3

4.2 Utilizando un contador binario 74HCl63 (infonnación en el anexo), una báscula Set-Reset, las
puertas inversoras necesarias, y paItiendo de la sefíal Il\1JCIO implemente el circuito que genere la
sefíal FIN sobre el esquema de la Figura 4. Dibuje todas las conexiones necesa11as para un
funcionamiento correcto. Se valorará el grado de simplifIcación. (10 puntos)

INICIO

el'"
74x163
2
CLK
. ,--,\
L/
S Q ENP
ENT
R QN 3 14
(} A CA
4 13
() B OB
5 12
o C OC VltJ
6 11
t:> o 00
15
RCO

Figura 4

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 , 619142355


FEBRERO 2005

Problema 5

r A continuación se describe un componente en lenguaje VHDL.


library IEEE;
use IEEE.stdJogic_1164.ali;
use IEEE.stdJogic_arlth.all;
entity V74xxxx is
port (CLK, CLR_L, LO_L, ENP, ENT: in STO_LOGIC;
O: in UNSIGNED (3 downto O);
O: out UNSIGNEO (3 downto O);
RCO: out STOJOGIC );
end V7 4xxxx;
architecture V74xxx_arch ofV74xxxx is
signallO: UNSIGNEO (3 downto O);
begin - \
process (,9 L15, ENT, I ~ en T~I do.d no ~nd,Cl....
begin
~ if (CLK'event and CLK='1') then
b~~ ""ít'CY"O\"()

t
2 if CLR_L='Q' then 19 <= I'(o';:
+ th':"::e:':":r~
s -=->-:-'o-::')"";/ __ ';> Sisnirlco.. ::¡'U"e. ponemos
~ ~ec.utct. en <
9-lcLY'C..() t s elsif LO_L='Q' then 10 <- O; ~ .l t::t:QO'2:. lo~ bit::, de m o.. CG\..O,
l¡ elsif (ENT and ENP)='1' thenlO <= 10 + 1; L. C.LRsínc~no o.c!::iVQ Q n'lve.1 ~
5 end'f If; . ~l:
pOne.. Lo... I
do- Q. ~
d to. b en d 1;
l\jodefBnde. \~€C. meV1~<-,--+\--,----t if (IQ=15) and (ENT='1') then Reo <= '1'; LD síncrono a.cDvo o-
de 014<: perod.e~ndede else RCO <='0'; (llve.L ¡, Q.O.v;p- DenLo.w..lich
I Q.. ~ I Q d~ CLk... end ir cuent o.. OJ::lCen ~ n te c.lo..oclo
Qca oca \.O o.. T"live,Lt S\.lle. r~ O <= 10; - -, co.ícn.. \Q en Lo. m..lIdct. EN' = ENP= ~
i ~ d.1l ,p '(\0..). ck <:\lc:nto.
O-\) t:: u - "
lió) I-\QIo, Li ta..c1o pe-< El-JT end process;
'- end V74xxx_arch;

Nota: El tipo UNSIGNED es equivalente al tipo STD_ LOGIC_VECTOR que permite la función adicional "+"
que es la función "suma de números naturales".

5.1 Sobre el bloque de la Figura 5, dibuje las entradas y salidas del componente y explique detalladamente su
funcionamiento.
Nota: Las entradas se dibujan a la izquierda y las salidas a la derecha del bloque.

5.2 Modifique el código VHDL para que:

a) El reloj se active con el flanco de bajada.


b) La señal RCO sea activa a nivel bajo.
c) Funcione en módulo 10. En este caso, la señal RCO debe ser activa cuando el componente esté en su último

estado. es U(\ (ot\~)c.{ (Á-SC e(~e.hl. vYlÓ~ u.\o U~((\J ev,l.o.. d-e. [¡ C\ lS)
Stlt

71
.4
----' '
, GIl(
D
, CLR-L
aa~• .
<So
t.l"

u
www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 , 619 142 355
, i
\..l ('\ o

q '" --\~el'\
Rco <=--=
\ ,
1; '-(,\ \~ ~ ~= ~ -\he", I'Q,¿-:-&!\-'¡

\. e ¡¿\.se. Te;¡ c:=~ (t':J t~rS ~ \'0' ) ;


4 ..5
fl"} \ \;
S eí'\a 'i.~;
'1 ,~ \1 Q ~ q) cu~ (.éÑt-;:. \ l.') ~'-"ev¡ ~o ¿::: \ \'
tflNational Semiconductor

MM54HC164/MM74HC164
8-Bit Serial-in/Parallel-out Shift Register
General Description
The MM54HC164/MM74HC164 utilizes advanced silicon-
gate CMOS technology. It has the high noise immunity and
low consumption of standard CMOS integrated circuits. It
al so offers speeds comparable to low power Schottky de- OUTPUTS
vices.

o This 8-Bit shift register has gated serial inputs and CLEAR.
Each register bit is a D-type master/si ave flip flop. Inputs A
& B permit complete control over the incoming data. A low
1 14 13 12 11 10 9 8

at either or both inputs inhibits entry of new data and resets


the first flip flop to the low level at the next clock pulse. A
high level on one input enables the other input which will
then determine the state of the first flip flop. Data at the
serial inputs may be changed while the clock is high or low,
- -
<
but only information meeting the setup and hold time re-
quirements will be entered. Data is serially shifted in and out
of the 8-Bit register during the positive going transition of
the clock pulse. Clear is independent of the clock and ac-
complished by a low level at the CLEAR input. 1 2 3 4 5 6
17
A B as Oc 00, GNO
SERIAL INPl,lT$ OI,lTPVTS

Truth Table
Inputs Outputs

·c Clear Clock A B QA QB ... aH


L x X X L L L
H L X X OAO OBO OHO
H i H H H OAn OGn
H i L X L OAn OGn
H i x L L OAn OGn
H = High Level (steady state), L = Low Level (steady state)
X = Irrelevant (any input, including transitions)
i = Transition from low to high level.
OAO, OBO, OHO = the level of OA, OB, or OH, respectively, before the
indicated steady state input conditions were established.
OAn. OGn = The level oí OA or OG before the most recent i transition of
the clock; indicated a one-bit shift.

CEDG Página 10 de 11 16 de Febrero de 2005


SN54HC682, SN74HC682
(~
I ,
8-BITMAGNITUDE COMPARATORS



Compare Two S-Bit Words
100-kQ Pullup Resistors Are on the
FUNCTION TABLE

Q Inputs DATA OUTPUTS

• Package Options Inelude Plastie


INPUTS
P,Q p;-Q P>Q -
Small-Outline (DW) and Ceramie Flat (W) P=Q L H
Paekages, Ceramie Chip Carriers (FK), and
P>Q H L
Standard Plastie (N) and Ceramie (J)
P<Q H H
300-mil DIPs
The P < Q function can be
description generated by applying 'P"";Q
and P"'>'Q to a 2-input NANO
gateo
These magnitude comparators perform
comparisons of two 8-bit binary or BCD words.
o The 'HC682 feature 100-kQ pullup termination
resistors on the Q inputs for analog or switch data.

MM54HC163/MM74HC163 Synchronous
Binary Counter with Synchronous Clear
These counters may be preset using the LOAD input. Pre-
settíng of all tour flip-f/ops is synchronous to the rising edge CLEAR ----,"
163 L-f'1, (SVNCHRONOUS)

of CLOCK. When LOAD is held low counting is disabled and LOAD U,.---------------
the data on the A, B. C, and D inputs is loaded into the r--------------

INDpAuTTAs{c:====:~~~:r ======- =~ - -~ ~ ~ . .:.


counter on the rising edge of CLOCK. If the load input is
taken l1igh before the positive edge ot CLOCK the count
" ODeration will be unaffected. ,...----t---r--------------
L _____________ _

D--1r---;--"T~==== ====-=== =...:..


Al! of these counters may be cleared by utilizing the CLEAR
input. The clear functíon on the MM54HC162/MM74HC162
and MM54HC163/MM74HC163 counters are synchronous
CLOCK
to the clock. That is. the counters are cleared on the posi- 163
tive edge of CLOCK while the clear input is held low.
ENABLE P _ - - t - - + '

ENABLE T - - - t - - + '
H ~ l1igl1 level, L = low level
X ~" don·t care, t = low \0 high transi\ion
OA==
CLK CLR ENP
'HC1621HC163
ENT Load Function
OUTPUTS
{
= = -+-t--+---'
Oa _ _
OC _ _

i L X X X Clear 0o __
X H H L H Count & RC disabled
X H L H H Count disabled RIPPLE CARRY ---t---r-::;12----r.1:;"'37::14--7, 2
X H L L H Count & RC disabled OUTPUT - - - j O. . .~-INHlaIT-

i H X X L Load CLEAR PRESET


i H H H H Increment Counter sequence:
(1) Clear outputs to zero
(2) Preset to binary twelve
(3) Count to thirteen, fourteen, fifteen. zero. one and two
(4) Inhibit

CEDG Página 11 de 11 16 de Febrero de 2005


SEPTIEMBRE 2005

PROBLEMA 3 (25 PUNTOS)


Se desea diseílar un contador binario libre de 3 bits, (B2 Bl BO), que permita contar hacia aniba
cuando una seílal de control VID es '1', o hacia abajo cuando vale 'O'.

3.1 Dibuje el diagrama de estados del contador utilizando una máquina de Moore con OCHO
estados, cada lillO de ellos CODIFICADO con su valor en binario. Indique CLARAMENTE las
entradas, las salidas, los estados y su codificación. (5 puntos)
Ejemplo: Número 3 = estado (Oll) = salida (Oll).
3.2 Complete la siguiente tabla de transiciones y excitaciones en base al diagrama de estados del
contador obtenido en el apartado 3.1 utilizando biestables tipo D. (5 puntos).

(Q2 Ql QO) = estado actual


(Q2* Ql * QO*) = nuevo estado
(D2 DI DO) = entradas de los biestables tipo D
(B2 Bl BO) = Salidas del contador

o VID Q2 Ql
O O
Ó"
O
QO Q2*
O
Ql* QO* D2 DI DO B2 Bl BO

O O 1
O O 1 O
O O 1 1
O 1 O O
O 1 O 1
O 1 1 O
O 1 1 1
1 O O O
1 O O 1
1 O 1 O
1 - O 1 1
1 1 O O
1 1 O 1
1 1 1 O
1 1 1 1

3.3 Obtenga las expresiones simplificadas por Kamaugh para las entradas de los tres biestables,
(D2 DI DO), Y para las salidas del contador, (B2 BI BO). (5 puntos) ...

3.4 Dibuje la implementación final del circuito necesario para obtener DO y DI con el mínimo
número de puelias XOR, AND y/o OR de dos entradas .. Disponemos de la seílal U/D y de su
complementmia. (5 puntos). Nota: Se valorará la claridad.

3.5 Asumiendo que la frecuencia del reloj que usamos es fija, modifique el diagrama de estados del
apmiado 3.1 para que el contador cuente a la mitad de velocidad. Suponga que la seílal UlD
permanece invariable. (5 puntos).

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 • 619142355


n

~ .S ~ía 'óu.~\~ c.a., .~ *("'lO~ ~. t-~~ ~\O ~~(\e iYl S ~


el

o-..ñQ\~é ~n \\~S~~ óe 'o~~~r ...e.-~ce...c~~ 'dos. ef..~ib5


O\\~{)a.\e~ L~ esÍo<;. \\ ¿ s~ )e ~~f( eLct. Set..\:...~ no
CaMbi.o. te'S~eG\o .'óe Jlo. o..n \.erl;" ).
SEPTIEMBRE 2005

'~
Problema 4
( ,

4.1 Para la siguiente Máquina de Estados codificada en VHDL, obtenga el diagrama de estados indicando
CLARAMENTE los estados, entradas y salidas.

LIBRARY ¡eee;
USE ieee.stdJogic_1164.al!;

ENTITY Automata 1 IS
PORT (Clock, Resetn :IN STO_LOmC;
w :IN STO_Lomc;
z :OUT STD-,-LOGIC);
END Automata 1;

ARCHITECTURE Behavior OF Automatal 18


TYPE State_type IS (A,B);
SIGNAL y : State_lype;

o BEGIN

PROCESS (Resetn, Clock)


BEGrN
IF Resetn = 'O' THEN
y<=A;
ELsrF (Clock'EVENT AND Clock = 'l')THEN
CASE Y r8
WHEN A=>
IF w = 'O' THEN
y<=A;
z<='O';
ELSE
y<=B;
z<=w;
END IF;
WHEN B=>
IF w =~iO' THEN
y<=A;
z <='0';

o ENO rF;
ELSE
y<=B;
z<="W;

ENDCASE;
ENDIF;
END PROCESS;

END Behavior~

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 , 619142355


4.2 Para la siguiente Máquina de Estados codificada en VHDL, obtenga el diagrama de estados indicando
CLARAMENTE los estados, entradas y salidas.

UBRARY ieee;

USE ieee.stdJogic_1164.all;

ENTITY Automata2 rs
PORT (Clock, Resetn :IN STD_LOGIC;
w :JN STD_LOGIC;
z :OUT STD_LOGrC);
END Automata;

ARCHITECTURE Behavior OF Automata2 IS


TYPE State_type IS (A,H);
SIGNAL y: State_type;
BEGIN

PROCESS (Reseln, Clock)


BEGIN

o Ir: Resetn -= 'O' THEN


y<=A;
ELSrF (Clock'EVENT AND Clock = '¡')THEN
CASE Y IS
WHEN A=>
IF w '" 'O' THEN
y<=A;
ELSE
y<=B;
END IF;
WHEN B=>
IF w = 'O' THEN
y<=A;
ELSE
y <= B;
ENDIF;
END CASE;
ENDIF;
END PROCESS;

PROCESS (y, w)
BEGIN
CASE Y IS
WI-lEN A =-,>
z<= 'O';
WHEN B~>

END CASE;
END PROCESS;

END Bchavior;

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 54831 78 , 619142355


FEBRERO 2006

PROBLEMA 2 (20 PUNTOS)

El sistema de apertura de una caja fuerte dispone de dos pulsadores: Pulsador BLANCO y pulsador
NEGRO, que definen sendas señales BLANCO y NEGRO activas a nivel alto. La caja fuerte se
abre mediante la generación de una señal de apertura OP, activa a nivel alto, que abre la puerta de
la caja. Dicha apertura se produce si y solo si se efectúa una secuencia correcta de los pulsadores,
que es: BLANCO-BLANCO-NEGRO; es decir pulsando BLANCO dos veces consecutivas y luego
NEGRO.

El sistema también genera una señal de alarma, AL (activa a nivel alto), que se activa al finaliZar la
introducción de una secuencia de tres pulsaciones, si esta secuencia no fuera la correcta.

La operatividad del sistema es la siguiente:

• El sistema se encuentra inicialmel)lte en un estado de reposo, con la puerta de la caja fuerte


cerrada y ambas señales OP y AL desactivadas.

o • Una vez introducida la secuencia correcta (BLANCO-BLANCO-NEGRO) se activa la señal


OP (OP=l), la caja se abre y permanece abierta hasta que se cierra manualmente.
• El sistema se RESETEA, volviendo al estado inicial de reposo, pulsando los dos pulsadores
a la vez (BLANCO y NEGRO). Esta acción sólo se realiza al finalizar una secuencia de 3
pulsaciones (correcta-6 no). No se considera que se puedan pulsar los dos pulsadores a la
vez en ningún otro momento.
• La señal de alarma se debe activar (AL=l) si la secuencia introducida de pulsadores no es la
correcta, pero cuidado: dicha activación se debe producir al finalizar de introducir el-códi¡w
de 3 pulsaciones. Esta decisión de diseño sirve para evitar dar pistas de cual de las tres
pulsaciones ha sido la errónea.
• A la hora de dibujar el diagrama de estados tenga en cuenta:
o que todas las pulsaciones duran varios ciclos de reloj,
o que entre pulsación y pulsación' pasan varios ciclos de reloj sin tener ningún pulsador
pulsado,
o que ara c siderar activo el pulsar BLANCO ó NEGRO, hace falta pulsar die o
~-
C) 2.1 Dibuje el diagrama de estados de dicho sistema de apertura. Indique CLARAMENTE el tipo
de Máquina utilizada en su diagrama (Moore o Mealy), los estados, las entradas y las salidas. (20
puntos)
~ ~ ~ )Q., ret'0so tAL:::o/ O~~O)

www.monteroespinosa.com - Clases de CEDG - Tfnos 91 5445377 , 619142355


<tq ? \JPnro
~ \ "
\)ü.'-'5QClo I
i
e.V1 Za. ~\.SCLClo~ \
i\1C04"íec\o.. (A-L':" <:) ,O~::o)
<:) Cu.o..\.~a. ~\~ .QYl -z.Q.. .(:)ul.sa...C.LO'Í\ e,.n CctJ'V1'/t10 ya. e...~t\.eO .

.e...ñ'C:WI.(¿ o. ( AL-=-o t OP '!;;. ti).

<t l \ =- ~lA~C.O ~~~ e,Y\ SQ. ~~~~~ e...rróY'leo., (k.-=-o, 0\>':'0)

(1 (~o.. H \\ \\ l \ ~ Camlrt-o yo.. Q.,((5l1.eO.

(--)
\ /

)
FEBRERO 2006

( \ PROBLEMA 5 (10 PUNTOS) Muy JÁc;(, pWr.Qr?p(Pr.r VI-lPl (Cc>"",b;..,c.c:o~


.:Le) )'ut) DI. 12je,.., I't:., d,( dc..J'C.
Consideremos el siguiente fragmento de un módulo hardware descrito en VHDL.

library ieee;
use ieee.std_logic_1164.all;
use ieee.std logic arith.all;
use ieee.std=logic=unsigned.all;

entity XXXXX is

port ( AA: in std_logic_vector(5 downto O);


BB: in std logic vector(5 downto O);
CC: out stct logi-;;
DD: out std_logic_vector(5 downto O)
) ;

end XXXXX;

architecture behv of XXXX~ is / pt<!'}""t.... 53 . (h!o\l"jU ro- v>1 6'0'" ¡e€oft.sl!)


signal result: std_lOgiC_vector~ownto O);

begin

resul t <= (' O" & AA) + ( , o' & BB);


DD <= result(5 downto O);
ce <= result(6);
end behv;

Tener en cuenta que el operador '&' pennite la concatenación de cadenas de bits.


(por ejemplo, '1' & '0011 '= '10011 ').

5.1 Dibujar en el bloque de la Figura 6la interfaz del módulo hardware (puertos de entrada y
O salida), colocando las entradas a fa izquierda y las salidas a la derecha. (1 punto)

ce

AA~

Bl5 DH

Figura 6
i~.'

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142355


5.2 ¿Cuál es la función que realiza el circuito? Es decir, ¿qué módulo hardware estamos definiendo?
(1 punto)

5.3 ¿Cuál debiera ser el valor de 'N' en el tamaño de la señal result? (Justificar la respuesta). (2
puntos)
W debe. Vea.eer 6, C0r"10 V-(!t"7OJ e.. eJ~o, J.~ á.et...mrj ;
ce
.. A~~), reJ ..fI "j ~I·.,),. el re.J...e fc.Oo k fe. Sul"7c\. ek d.t ni>('1fI\)J e(! b b¡ Ij I lo",c.1-e ~

At"'IhJ c.... VI'! )c-pkf."oo 1; ~ ext.-o.. t cp J. AA, \ 4>' g


I J3 B). A4í q~(~... d .. 'b 'i,t kl't! . . D)

lit'.. s... ,..,.. ()e 6 b; h M;', &l.C&A rre o .

Después de la fase de síntesis, la implementación con puelias lógicas de otro módulo hardware es el
representado en la Figura 7.
no.~ 'l'l. ""r Ce;, ef

......kri .., .If!

AA
--~------------~----~ A
~ ce i _)

BB $ALiM

.s
:z

o
.
o
O
Figura 7

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355


5.4 Complete, rellenando las casillas necesarias que aparecen en trazo discontinuo, el siguiente
fragmento de código VHDL de fOUlla que defina el esquemático de la figura 7. (3 puntos).
(\
library ieee;
use ieee.std_logic 1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity XXXXX is

port ( AA: in std_logic¡


BB: in std_logic¡
ee: out std_logic
) ¡

end XXXXX¡

architecture syn of XXXXX is

1 component NAND2
l port( A, B : in std_logic¡ Z: 'out std_logic)¡

o 3 end component i

component INV
~
f port( A : in std_logic¡ Z out std_logic)¡
6 end component¡

t component OR2
S port( A, B in std_logic¡ Z out std_logic)¡
q end component¡

10 component AND3
1\ port( A, B, e in std_logici Z out std_logic) ¡
IL end component¡

declaración de señales
11 r' "0':' ";ij:;:!l'i~"""""" ............... :
~i~~~f
~-----------------._-------------------------------~
l'i L.:!~~~~ .. !-..:. !.1~:: f~\~, __ ", __ "" __ ., ____ , ____ ,. j
1~ L,!~~~~.. X.: ..~!~"e~!l~~ __ .,. __ ., __ ,. __ ...... ____ .. j
/! begin
It 'üi";' 'ÑAND2-- p;';;t"
____________________________________
• • __ o
-- ffi"ap:-- '(Á::;--, AA' --';' :'B~>--i3'i ----~ --;'2;:':;-- --q.--. --, --);':"""""""""
~ ____________________ ~ __________________ l ______________________ ~ ~"" _
________ ______________

'C)s U2: INV port map : (A=>


------------------------------------t----------------- ---7------------------T----------------------~-------- -------.-------
13B , : Z=> R ) ¡: :
I'l U3: OR2 port map . (A=> JI. " B=> AA " Z=> S ) ¡,
lo "".', 'ü ¡j;' 'ÁND"3' 'p' ort' roa'p'-- '!'--(A;;; --.~-- -- --, '~'B~>' S' --,. ----t'C:':;-- ·SR·----"" --;' z':;; ,'ce' --,." .)':--
........................................... '" ................................................. .! ........................................... ......'_ .. "! ....................................... ! .... !. .................... "10 ..... ................ .... ' .......1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! ... ..
:al end syn;

5.5 Indicar qué modificaciones deberían realizarse en el código anterior para obtener la versión
negada de la salida en lugar de la versión implementada. (3 puntos)

r?;:/
f2l A.;",o; ....... , ..ul HOT ( •• J,.~ '1'( "'... ..,1.;.., L pe"ti s'
ee Gb,.,,cttt",rt, f
• ,.
o."'..o.r
"M-, lJ5
i[ )"Jf.lo;r eL ANB por NANj)J :
ec,,(Clo.. o.. Ut; ...,td:a.,,~ ....... 1'<.( ... .lI!';,,( o,,,,.¡e.. r
'0 cC"'p.t1I!~¡ NAND3 ~-)-II-y-ll-i-j
....-e-,s;-,,¡., .... 15L;J ,i:}"J T: sl.Ll?..,it ' /
2.e \.I L
\, AND3 ,Pc<~""'r iA.=?Q( 13~)5, e =:1513, e =) T)
2o~iJ LJS: ;f,J\! r... f "'Ar \A =) T, t =~ ce)

www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619142355


SEPTIEMBRE 2006

PROBLEMA 1
La lectura de la temperatura de una cámara frigorífica, en grados centígrados, se obtiene con cuatro bits
(T3, T2, TI, TO) codificada en complemento a 2, siendo TO el bit menos significativo. Se necesitan dos
salidas (LR y LV) que activen un led rojo (LR) y un led verde (LV) respectivamente (ambos activos a
nivel alto). Para ello, se quiere implementar un circuito que active elled verde cuando la temperatura
de la cámara esté entre -3 y +4 oC, ambas incluidas, y elled rojo en el resto de los casos.

1.1 Complete la tabla de verdad siguiente (Tabla 1). (5 puntos)

T3 T2 TI TO LR LV
O O O O
O O O 1
O O 1 O
O O 1 1
O 1 O O
O 1 O 1

o O
O
1
1
1
O
1
1
O
O
1
O
1 O O 1
1 O 1 O
1 O 1 1
1 1 O O
1 1 O 1
1 1 1 O
1 1 1 1

1.2 Obtenga la función lógica simplificada para la salida LV. Para dIo utilice un mapa de Karnaugh. (5
puntos)
1.3 Implemente la salida LV utilizando el mínimo número necesario de multiplexores de cuatro y de
dos entradas de datos. (JO puntos)

C)

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 J 619 142355


SEPTIEMBRE 2006

PROBLEMA 1
-
La lectura de la temperatura de una cáman~ frigorífica, en grados centígrados, se obtiene con cuatro bits
(T3, T2, TI, TO) codificada en complemento a 2, siendo TO el bit menos significativo. Se necesitan dos
salidas (LR y LV) que activen un led rojo (LR) y un led verde (LV) respectivamente (ambos activos a
nivel alto). Para ello, se quiere implementar un circuito que active elled verde cuando la temperatura
de la cámara eS,té entre -3 y +4 oC, ambas incluidas, y elled rojo en el resto de los casos.

1.1 Complete la tabla de verdad siguiente (Tabla 1). (5 puntos)


-r" (deci M" e )
T3 T2 TI TO LR LV
o O O O O o i
LV 1 O O .0 1 o 1
z. O O 1 O o 1
3- O O 1 1 o 1
"i O 1 O O (> 1
5' O 1 O 1 i o

o 6
1
-I?
O
O

1
1
1
O
1
1
O
O
1
O
i
.1
1- o
o
o

u\
-1 1 O O 1 1 o
-6 1 O 1 O 1 o
-5 1 O 1 1 .1 o
-"1 1 1 O O i o
-3 1 1 O 1 o 1
-2 1 1 1 O o 1
-{ 1 1 1 1 o 1

1.2 Obtenga la función lógica simplificada para la salida LV. Para dIo utilice un mapa de Karnaugh. (5
puntos) ,
1.3 Implemente la salida LV utilizando el mínimo número necesario de multiplexores de cuatro y de
dos entradas de datos. (la puntos)

www.monteroespinosa.es - Clases de CEDG,.. Tfnos 91 5445377 , 619142355


I~
-
~
TITO
00 01 11 10

00 fr --)) O O

O/ 1 o '1~ o

" i o Vi o
. ,
10 1) o ~ o

Hvx Z Xi Tel'1(I"t o l, PNCo. e.;"'pe~",r

--\ L( v",,·;,;. bll:)


o Nu X Co>1 2 e.. ~. i:o,,~r~

.:.. t

A~ ~, ltA.u .....c1 ~ue Q.p~re i'c....VI e\ ~... l Ve.. r:c.. l,e'J e" C4. d c.. f¿r""'~ 1'10 c\e el;. f o.J1'Ic¡t.'"

LV -
-
r3 -
íz t
n Ti To (iZ t Ti) t t3 rz. ro t T3TZT,1 -
--
T3 r2
r1 To + T'3T2 Tb + T3
+ í3 rz f:1 To + T3 TZ TZ T 1. -
- - - + t3 rz l To + ti) -
-t'3TZT1TO
1-

í (iy~) - -
T~
~ 2

n
.:::;:.

- - r z í 1. ro t Ts T T t t:() ... Z ( o J "," L' ';,. i·


'.

- r> fZ ,
. .-

!1u)C '1 k l :

o / TZ
T3
I
Mv.x l
~ " " . .' .

f?¿I TiTO -
. 'T1. To • J. + Ti fo . o ., Ti ro .o t ti ro . o

= roí Ti+T1)
, '.,'

I~ To t T1
f r1 (ro t ro) ='

,1 .'

ri To + Ti To t TiTo t T.;1 lo ,-
.... .;., .
==
Ti T o· O.¡. r -:1 Te . j + Ti ro· í -1- Ti ro· i

, ....
.. ,
.. '... ., "
i
o
n·To -
y ..... . . - - - - n
C>

o
el C';
Io
Ir Ti To
_ _.......... I,
.Il y LV
~ _ _ _ _I r)
el c.

o r ..
Ir
i I, y ....._.----J
, ' 1 ' ;.I1, NOTA e<t~ guY1c;o",e¡ Ti· To y To + Ti se poó,'... ",

il"lp€{.-.(".f...r ~;rt.J.....-.t,..~;"Job;:(' é;'" f{Jx . '-f x2, re..


'.,
"" .' , .", , -4 Z V"-r;", ~er" r')
4"( tt>'\eMoJ e", ec..~.J ~"lc..
--" 2 e ... ~r• .cl.,j de c.,,,, t. "e
ti lo
As{ I s.;G. hc.r "I~(, f»Yltr f.. J v",r;",,6et j c.,.....o e..., ir...

J... l d~ c.. .... ~('oe I y ~ p:«.- {r ea.. la. he::.. d( ¡/erÓ"'>

be &.. S,,"¿"''l "" ,'"",pl?t,...e-,r6. r 14,.,.eC."'-~(·(1 <?",

OI-~v1, e..., ("1 e.JrA.ó...l d( Cb..~) def M.u,X 'i X e

Jt. pu~tJe,.." ¡,... p& - ... ~... .- e..,..., MlJX 2 X i


Mux 2)(1 : Iy = (o·Lo t Ce.XII !, )

Io :r',
Ti ·~I t· Ti ·0
.. To t1 - ro (Ti" Ti) ~ ji = ti· TCd· ti.ro + T1. -
~ -t-
"

..
'
;1
[ri ~cpl
: ..
,.

l.- . - Ti . To .¡. j1(~) - Ti ·(;DI t TLl] A.s;~"Á"".1


• Xo> r.
NOtA: e." el H.tJX Z J,t I&tt.J

To ntal: ~6. c\, l1e~Aí ~ \k..r;t:(.lA


o
y
--
TI-To
r, y
TOiT1
ro,
sóc.
evc~o

l1C6
I

M,}c..r\
~d",,'," ~c.. ...e.,l(, Si

Vj .... ¡

I"7l,;e
_ ~
Ji ,.().)cc)-,~..>\ I '
Le.,
P •
,)""'C1d''''l )
Ti·ro ehl,e1'10j '·""'I~C~,,~e.
tot\to e.., t.. 'oe. ti> f:G;o.e :
SEPTIEMBRE 2006

PROBLEMA 3

El circuito de la figura 2 funciona con una señal de reloj CLK con periodo T = 30 ns y ciclo de trabajo
variable.

tp t setup
D Q n-_~D Q Biestable FFl 7ns 1 ns
A
FF1 FF2
Q Q Biestable FF2 8 ns 2 ns
PuertaAND 3 ns
PuertaNAND 2ns
Parámetros de temporización de los
CLK------L------------~ componentes del circuito

Figura 2

3.1 Si definimos como TI y TO los tiempos durante los cuales las señal del reloj CLK toma los valores
lógicos de 1 y O respectivamente, dentro de un periodo T, determinar justificadamente, sobre el dibujo

o de este apartado, los mínimos valores que pueden adquirir TI y TO para un correcto funcionamiento del
circuito. Obtenga también la máxima frecuencia del reloj CLK que garantiza el correcto
funcionamiento del circuito para los casos: (a) ciclo de trabajo del reloj del 50 %; (b) ciclo de trabajo
del reloj diferente del 50%. (10 puntos)

.. T
--
TI TO
1- -1- --1
.J I I
3.2 Con los valores obtenidos en el primer apartado, determine el rango del ciclo de trabajo de la señal
de reloj CLK que garantiza un correcto funcionamiento del circuito. Si no ha realizado el primer
apartado considere los valores de Tlmin= 14 ns y TOmin= 12 ns. (5 puntos)

3.3 Determine justificadamente, sobre un cronograma, el máximo tiempo de hold que pueden tener los
biestables FFl y FF2 del circuito de la Figura 2 para garantizar un correcto funcionamiento. Considere
para este apartado un ciclo de trabajo para la señal de reloj CLK del 50 %. (5 puntos)

www.monteroespinosa.es - Clases de CEDG - Tfnos 91 5445377 • 619142355


SEPTIEMBRE 2006

PROBLEMA 4 (20 PUNTOS)

r-'\
. J Disponemos de un sistema con:

• Dos pulsadores que controlan las seilales de entrada BLANCO y ~'EGRO, activándolas a nivel
alto al ser pulsados.
• Una señal de salida, OUT.
• Una señal de reloj, CK, con un periodo de 10 ns.

Se desea implementar una máquina de estados que realice la siguiente operación:

• Al activar la señal BLANCO, el sistema emite por su salida OUT una señal de frecuencia 50 MHz.
• Al activar la señal NEGRO, el sistema emite por su salida OUT una señal de frecuencia 33,3 MHz
• . Si no se pulsa ningún pulsador, el sistema emite por su salida OUT una señal constante e igual a
cero.

Nota. No se considera la activación simultánea de las dos entradas: NO se puede pulsar BLANCO y
NEGRO a la vez.

o 4.1 DiseJ.lar el diagrama de estados de dicha máquina, indicando claramente qué representa cada estado.
(10 puntos)
4.2 Complete la Tabla 2 de transiciones y excitaciones en base al diagrama de estados de la Figura 3,
utilizando biestables tipo D (para la variable de estado QO) y tipo J-K (para la variable de estado Q1).
(10 puntos)
00/ O
01/ O
Codificación de estados:
(Ql,QO)
qo = (0,0)
. ql = (0,1)
00/0 'l2 = (1,1)
'b = (1,0)

Leyenda en las transiciones:


00/0 AB/C
01/1 Figura 3
01/1
A,B = entradas; e= salida; (Ql QO) = estado actual; (Ql * QO*) = nuevo estado;
A B Ql QO Ql* QO* JI Kl DO e
o o o o O o e 'i o '0
o o o 1 ,1 \ \ ')( \ (!)

,
• 0-

o o 1 o -'(1 (") X \ o (J_


o o 1 1 \:..... 1-- . )( 6 \ I(t)
o 1 o o O 'O o {) o
o
o
1 o
1 1
1
o
.'X
><
O
x
){
"o Y )t!'

·0 . ,~

o 1 1 1 •I O v.. o o I
1 o o o \ O 1< <:)

,
(") \ )

1 o o 1 0 l ~ x '\ O
1 o 1 o té) )t. O (;) O
1 o 1 1 \ E) x 1) '"O rc>--
1 1 o o 'X x X. ><. '>< )(
1 1 o 1 X X' X Y x ~
1 1 1 o X X x X ~ X Tabla 2
1 1 1 1 X x x )( X )r'

www.monteroespinosa~es - Clases de CEDG - Tfnos 91 5445377 • 619 142355


T

Gh< leo ,·al~


()
6b Yill"'l \ 1
~~t:l \ Ó \.'. D 1t I ~ 1
'W~tt~e;
\ ~\ '1 '.~ " ", •
§O

C). 0\
\~. . ~
lo

®tXo
01 .

EB~@
t,Cd
ltl ( JO I I i!f
@ lO

C)
FEBRERO 2007

PROBLEMA 2
(~. Se quiere construir un circuito que proporcione los bits (S7 ... SO) de la función aritmética S =2·n+ 14,
siendo n un número de 4 bits expresado en complemento a 1 [N3 N2 NI NO]. El resultado debe
expresarse mediante dos dígitos en código BCD (cada uno de ellos de 4 bits).
2.1 Ignore la columna F y complete la tabla de verdad siguiente correspondiente a dicho circuito (5
puntos) Cü.., K' t3C...~
~
n s '"""
Dígito BCD Dígito BCD
N3 N2 NI NO más menos F

o O O O O ~
si ,.ificativo
6 (2;> \ O
,
si ,.ificativo
<b Ó 1
,
\ O O O 1 O O O I( (9 ( { O 1 \
Z. O O 1 O O O Ó ( \ (5 O b O \
3 O O 1 1 (!) O l o (é) C) o O O
Ll O 1 O O O 'O \. C5 O O l <:::::> 1 "2
? O 1 O 1 b C> l 6 O l O O 1 2
6 O 1 1 O (:;J O l U él \. t O O
7 O 1 1 1 O O l O t. o O ~ O Z
O --:¡
-{,
1
1
O
O
O
O
O O O O O
1 O b O O
tD O O
O O { a
O 1
1
-S 1
-~ 1
-"3 1
-2- 1
-'
1
O
O
1
1
1
1
1
O
O
1
O ó o o o
1 6 o (':) "C
O o O Ó a
1 <9 o 6
O C0 o o
1
(
.
o
o
o
o O
~
6
l 'O
{ (
<O o
o o
{
o
o

Ó