Está en la página 1de 16

Circuitos Electrónicos Digitales

PRÁCTICA 1: DISEÑO CON PUERTAS LÓGICAS

OBJETIVOS:
• Aprender a utilizar adecuadamente circuitos integrados.
• Aprender la metodología necesaria en las conexiones de circuitos para lograr un
diseño claro y poco propenso a errores.
• Asentar los conocimientos teóricos sobre los circuitos combinacionales.

ENUNCIADO:
Construir un circuito sumador para números binarios de dos bits. El sumador tendrá
4 entradas, los dos bits A1A0 de un número A y los dos bits B1B0 de un número B, y tres
salidas S2S1S0, por las que se obtendrá la suma binaria de los dos números A y B.
Utilizar para ello las puertas AND, OR y NOT que sean necesarias. Tener en cuenta que
en algunos casos la utilización de puertas XOR pude resultar ventajosa. El circuito
debe ser simplificado al máximo pues eso facilitará su montaje en la práctica. Realizar
dos implementaciones distintas: (a) como suma de productos y (b) como producto de
sumas. En el laboratorio solo se montara el diseño como suma de productos.

NOTAS:
 Es conveniente utilizar un simulador para comprobar el funcionamiento antes
de montar un circuito en el laboratorio.
 Utilizar los conmutadores para seleccionar las entradas.
 Visualizar tanto las entradas como las salidas en los LEDs.

5
SOLUCIÓN:
A1 A0 B1 B0 S2 S1 S0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
0 0 1 1 0 1 1
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 0 1 1
0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

Suma de productos
A1A0
00 01 11 10
B1B0
00 0 4 12 8

01 1 S2 = A1A0B0 + A0B1B0 + A1B1


1 5 13 9

11 1 1 1
3 7 15 11

10 1 1
2 6 14 10

S2

A1A0
00 01 11 10
B1B0
00 1 1 S1  A1 ·A0 ·B1  A1 ·A0 ·B1  A1 ·B1 ·B0  A1 ·B1 ·B 0 
0 4 12 8
A1 ·A0 ·B1 ·B0  A1 ·A0 ·B1 ·B0 
01 1 1
1 5 13 9  ( A1  B1 )·A0  ( A1  B1 )·B0  ( A1  B1 )·A0 B0 
11 1 1  ( A1  B1 )·(A0  B0 )  ( A1  B1 )·A0 B0 
3 7 15 11

10 1 1  ( A1  B1 )·A0 B0  ( A1  B1 )·A0 B0 
2 6 14 10  ( A1  B1 )  A0 B0
S1
S1  ( A1  B1 )  A0 B0
1

6
A1A0
00 01 11 10
B1B0
00 1 1
0 4 12 8 S 0  A0 ·B0  A0 ·B0
01 1 1
1 5 13 9

11 1 1 S 0  A0  B0
3 7 15 11

10 1 1
2 6 14 10

S0
1

A1

A0

B1

B0

S 0  A0  B0

S2 = A1A0B0 + A0B1B0 + A1B1


S1  A1  B1  A0 B0

7
MONTAJE:
 CIs necesarios:
o 2 AND de 2 entradas  1x ’08 (4 AND de 2 entradas)
o 2 AND de 3 entradas  1x ’11 (3 AND de 3 entradas)
o 3 XOR de 2 entradas  1x ’86 (4 XOR de 2 entradas)
o 1 OR de 3 entradas  1x ’32 (4 OR de 2 entradas)
 Utilizar los interruptores para seleccionar las entradas.
 Visualizar las entradas y la salida en los LEDs.

Producto de sumas

A1A0
00 01 11 10
B1B0
00 0 0 0 0
0 4 12 8
S2 = (A1+ B1)( A1+A0)( B1+B0 )( A0+ B1)( A1+B0 )
01 0 0 0 = A1 B1 +A1A0B0 + A0B1B0
1 5 13 9

11 0
3 7 15 11

10 0 0
2 6 14 10

S2

A1A0
00 01 11 10
B1B0 S1  ( A1  B1  B0 )( A1  A0  B1 )( A1  B1  B0 )
00 0 0 ( A1  A0  B1 )( A1  A0  B1  B0 )( A1  A0  B1  B0 ) 
0 4 12 8
( A1  B1 )  A0 B0
01 0 0
1 5 13 9

11 0 0 Complementando 2 veces y trabajando como producto de sumas


3 7 15 11 se llega a esa expresión final.

10 0 0
2 6 14 10

S1
1

8
A1A0
00 01 11 10
B1B0
00 0 0
0 4 12 8 S 0  ( A0  B0 )( A0  B0 )  A0 A0  A0 B0  B0 A0  B0 B0 
01 0 0 A0 B0  B0 A0  A0  B0
1 5 13 9

11 0 0 S 0  A0  B0
3 7 15 11

10 0 0
2 6 14 10

S0
1

Se obtienen las mismas expresiones como suma de productos y producto de sumas.

9
Circuitos Electrónicos Digitales

PRÁCTICA 2: DISEÑO CON CIRCUITOS


COMBINACIONALES INTEGRADOS

OBJETIVOS:
 Estudiar el codificador de prioridad integrado ‘148.
 Estudiar el conversor de código integrado ’48.
 Familiarizarse con el visualizador de siete segmentos.

ENUNCIADO:
Construir un circuito digital que tenga como entradas 8 líneas de petición de servicio
activas a nivel bajo y que nos muestre en un visualizador de 7 segmentos el número de
la línea de mayor prioridad que esté activada.

Si el codificador no está habilitado o no hay ninguna línea activa el visualizador


no mostrará ningún número. En estas dos situaciones sólo se iluminará el “digital
point” (DP) del visualizador. En el resto de los casos el “digital point” estará apagado y
el visualizador mostrará el número de la línea de petición activa.

Indicar la manera en que se puede comprobar que todos los segmentos del
visualizador funcionan correctamente.

Utilizar el multímetro para comprobar el valor de las entradas y salidas del circuito.

NOTAS:
 Utilizar los conmutadores para seleccionar las entradas.
 Utilizar una resistencia 1k o 1k2 para el “digital point” para evitar que se funda.
 Comprobar que se respeta la prioridad al atender las peticiones de servicio.
 Es aconsejable montar primero el codificador y asegurarse de que funciona
(conectar LEDs a las salidas). Montar después el conversor y comprobar su
funcionamiento aislado. Unir finalmente los dos circuitos.

10
SOLUCIÓN:

I 0 I1 I 2 I 3 I 4 I 5 I 6 I 7 “0”

I0 I1 I2 I3 I4 I5 I6 I7 EI
CODIFICADOR `148
O2 O1 O0 EO GS
a
f b
“0”
“1”
g
e c
1k2
d D A3 A2 A1 A0 RBI LT
P

a…………..g CONVERSOR DE CÓDIGO `48


a….g RBO
….

MONTAJE:
 CIs necesarios:
o Codificador ’148
o Conversor de código ‘48
o 4 NOT  1x ’04 (6 NOT)
o Display de 7 segmentos
 Utilizar los conmutadores para seleccionar las entradas.
 EI  0 para habilitar el codificador.
 GS  1 cuando el codificador está deshabilitado o no hay petición de
servicio. Al invertirla y conectarla a RBI y DP hacemos que en el display
solo luzca el DP en estas dos situaciones..
 Con LT  0 podemos comprobar que lucen todos los segmentos del display.
 No dejar entradas al aire: conectar A3 a “0”.
 Comprobar que se respeta la prioridad al atender las peticiones de servicio.

11
Circuitos Electrónicos Digitales

PRÁCTICA 3: DISEÑO DE UN CIRCUITO SECUENCIAL


SÍNCRONO

OBJETIVOS:
• Comprender el mecanismo de diseño e implementación de un circuito secuencial
síncrono.

ENUNCIADO:
• Se dispone de una señal digital periódica C de período T y ancho de impulso T/10. A
partir de dicha señal y en sincronismo con sus flancos de subida se necesita generar otra
señal periódica S cuyo período y ancho de impulso deben ser seleccionables mediante
dos señales de control C0 y C1 tal y como se indica en la tabla adjunta.

Controles Características de la señal S


C0 C1 Ancho de impulso Período
00 No se genera impulso No se genera impulso
01 T 2T
10 2T 3T
11 3T 4T
Diseñar el circuito Moore correspondiente (salidas dependientes sólo del estado)
utilizando FF-JK y las puertas AND/OR/NOT necesarias.

SOLUCIÓN

Dibujamos en primer lugar el diagrama de secuencias:

T
T/10

S (C0C1=00)

S (C0C1=01)

S (C0C1=10)

S (C0C1=11)

12
El ciclo completo de cada forma de onda se genera siempre desde el estado S
(salida)=0, pero los ciclos son de diferente duración. Podemos plantear el problema
como un autómata de Moore cuyo diagrama de flujo es:
C0C1

1/1 Estado/S
01

**
00
10 ** 3/1
0/0 2/1
**
11
4/1 ** **
5/1 6/1

**
Observaciones al diagrama de flujo:
- Una vez aplicada una entrada de control C0C1 determinada, ya no importa el
valor que pueda tomar, pues el sistema tiene que seguir el ciclo completo.
- Lo hemos diseñado como un autómata de Moore, hemos asignado un ciclo
independiente a cada combinación C0C1. La salida en cada estado interno solo va
a depender del estado anterior (no de las entradas).

Diferencias con asíncronos:


- Asíncronos : hablábamos de estados estables, que eran los que realmente se
apreciaban. Los estados inestables eran estados transitorios en la evolución hacia un
estado estable.
- Síncronos : trabajamos con los estados correspondientes a cada flanco activo de la
señal de reloj. Ponemos lo que ocurre en cada ciclo de reloj pero no hablamos de
estados estables.

Dibujamos la tabla de fases, en la que representamos el estado actual y el estado


siguiente. No hay estados estables. Las entradas aparecen colocadas en orden binario
(no en Gray):

C0 C1
00 01 10 11 S
E.A.
0 0 1 2 4 0
1 0 0 0 0 1
2 3 3 3 3 1
3 0 0 0 0 1

4 5 5 5 5 1

5 6 6 6 6 1
6 0 0 0 0 1

E. Siguiente

13
Veamos si podemos simplificar el número de estados. Para ello aplicamos la siguiente
regla:

DOS ESTADOS SON EQUIVALENTES SI TIENEN LA MISMA SALIDA Y


LLEVAN A ESTADOS SIGUIENTES IGUALES O EQUIVALENTES. No se pueden
considerar iguales o equivalentes un estado y un estado imposible.

Método visual para comprobarlo: tabla de implicación.

- Colocamos los distintos estados actuales de forma vertical (desde el segungo


hasta el último) y de forma horizontal (desde el primero hasta el penúltimo) : de
esta manera no contemplamos que un estado sea equivalente consigo mismo.
- Cada casilla corresponde a la equivalencia entre los estados correspondientes a
la fila y a la columna.
- Indicamos en cada casilla si son equivalentes o no, o qué condición ha de
cumplirse para que sean equivalentes.

1 X
2 X X
3 X √ X
4 X X 3=5 X
5 X X 3=6 X 6=5
6 X √ X √ X X
0 1 2 3 4 5

 El estado 0 no es equivalente a ninguno pues posee una salida distinta.


 1, 3, y 6 son equivalentes pues tienen la misma salida y los tres conducen al
estado 0.
 Como el estado 0 no es equivalente a ninguno, 1, 3, y 6 no pueden ser
equivalentes al resto.
 2 y 5 tienen la misma salida y conducen a dos estados 3 y 6 que son
equivalentes, luego 2 y 5 son equivalentes.
 4 no puede ser equivalente al 2 o al 5 pues 3 y 6 no son equivalentes a 5.

Luego asignamos:
0 →A
1-3-6 → B
2-5 → C
4 →D

La tabla de estados siguientes reducida queda:

14
C0 C1
00 01 10 11 S
E.A.
A A B C D 0
B A A A A 1
0
C B B B B 1
D C C C C 1
E. Siguiente

El diagrama de transición sería:

00 A B 01
Ya no es necesario dibujar el
diagrama de transiciones. No va a
haber problemas de carreras porque
ya no realimentamos directamente.
11 D C 10

Dibujamos la tabla de transiciones en la que indicamos el estado actual, la salida


correspondiente al estado actual y el estado siguiente. Indicamos también los valores
que han de tomar las variables J (S) K(R) para implementar el circuito con FF JK :

Qin Qin1 J K Q1 Q0
J0K0 - Q0 0
0 0 0 * A 0 0
J1K1 - Q1
0 1 1 * B 0 1
1 0 * 1 C 1 0
1 1 * 0 D 1 1
+ +

15
Entradas E. Actual E. Siguiente Salida actual Excitaciones
C0 C1 Q1n Q0n Q1n1 Q0n1 S J1 K1 J0 K0
0 0 A 0 0 A 0 0 0 0 * 0 *
0 0 B 0 1 A 0 0 1 0 * * 1
0 0 C 1 0 B 0 1 1 * 1 1 *
0 0 D 1 1 C 1 0 1 * 0 * 1
0 1 A 0 0 B 0 1 0 0 * 1 *
0 1 B 0 1 A 0 0 1 0 * * 1
0 1 C 1 0 B 0 1 1 * 1 1 *
0 1 D 1 1 C 1 0 1 * 0 * 1
1 0 A 0 0 C 1 0 0 1 * 0 *
1 0 B 0 1 A 0 0 1 0 * * 1
1 0 C 1 0 B 0 1 1 * 1 1 *
1 0 D 1 1 C 1 0 1 * 0 * 1
1 1 A 0 0 D 1 1 0 1 * 1 *
1 1 B 0 1 A 0 0 1 0 * * 1
1 1 C 1 0 B 0 1 1 * 1 1 *
1 1 D 1 1 C 1 0 1 * 0 * 1

Dibujamos los diagramas de Karnaugh para las variables de los FF y para la salida. En
los diagramas de Karnaugh hemos de utilizar el código Gray para las combinaciones de
las variables.
C0C1
Q1 Q0 00 01 11 10 C0C1
Q1 Q0 00 01 11 10
00 0* 0* 1* 1*
00 0* 1* 1* 0*
01 0* 0* 0* 0*
01 *1 *1 *1 *1
11 *0 *0 *0 *0
11 *1 *1 *1 *1
10 *1 *1 *1 *1
10 1* 1* 1* 1*
J1K1 (Q1)
K1  Q0 Q1 J0K0 (Q0) C1
J 1  C0 ·Q0
K0  1 J0=C1+Q1

C0C1
00 01 11 10 J 1  C0 ·Q0
Q1 Q0
K1  Q0 S=Q0+Q1
00 0 0 0 0
J0 = C1+Q1
01 1 1 1 1 K0  1
11 1 1 1 1
10 1 1 1 1

S
S=Q0+Q1

16
El circuito implementado con FF JK es:

C0
S
J0 Q0 J1 Q1
C1 FF 0 FF 1
CLK0 CLK1
“1” K0 Rd0 Q0 K1 Rd1 Q1
CLK

Inicialización

Problema 7.1. Circuito implementado con flip-flops JK.

El pulsador de inicialización coloca al sistema en el estado inicial A=0.

17
Circuitos Electrónicos Digitales

PRÁCTICA 4: DISEÑO DE UN REGISTRO DE


OPRACIONES

OBJETIVOS:
• Comprender el mecanismo de diseño e implementación de un registro que pueda
realizar una serie de operaciones seleccionadas mediante bits de operación.

ENUNCIADO:
• Construir un registro que permita realizar las siguientes operaciones:
1. Escritura desde un bus.
2. Lectura a un bus.
3. Complementación de su contenido.
4. Puesta a cero.
Todas ellas deberán ser síncronas salvo la de lectura. Implementarlo con flip-flops JK y
las puertas lógicas necesarias.

SOLUCIÓN
Se pueden construir registros que respondan a una u otra orden (escritura,
lectura, etc.). La orden se indicará activando el terminal de control correspondiente. En
un sistema síncrono la orden se realizará en el siguiente flanco activo de la señal de
reloj.

Supongamos que queremos ordenarle a un sistema una serie de operaciones. Podemos


realizar las operaciones de dos maneras:

a) Operaciones individualizadas en registros separados (cada registro realizaría una


sola operación)  Más flexibilidad.
b) Un registro que responda a distintas órdenes  nos permitirá ahorrar hardware.

Como ejemplo de este último tipo vamos a diseñar un registro que responda a 4 órdenes
que se muestran en la tabla. Nuestro registro tendrá 4 terminales de control: W, R, C y
Z. En cada instante solo uno estará a 1 lógico y los demás a 0.

Símbolo Orden
W Escribe en el registro la palabra situada en el bus
R Lee la palabra del registro y la lleva al bus
C Complementa el registro
Z Borra el registro

18
Todas las operaciones (salvo la de lectura, R) se realizarán de forma síncrona. Nuestro
registro contará de n FFs JK. Representaremos por FFi el FF i-ésimo del registro, con
entradas Ji, Ki y asociado a la línea Bi del bus.

a) Escritura en el registro

Para transferir una palabra del bus al registro cuando W=1 debe cumplirse que al
llegar el flanco activo de la señal de reloj

Ji=Bi·W i=1,….,n Si W=1  Ji=Bi


Ki= Bi ·W Ki= Bi

Con W=1 se almacena en el registro el dato presente en Bi y si W=0 Ji=Ki=0


con lo que se mantiene el contenido del registro.

b) Lectura del registro

Para leer del registro y transferir un bit del FFi al bus cuando R=1 utilizaremos
un buffer triestado. Cuando R=1 el buffer dejará pasar el dato al bus y cuando
R=0 el buffer se colocará en alta impedancia, aislando el registro del bus. De
este modo pueden conectarse varios registros al mismo bus.

Qi

R
Bi

La transferencia registrobus tendrá lugar en cuanto R=1, siendo independiente


del reloj. Eso sí, si la palabra escrita en el bus se transfiere a un registro esa
operación sí que es síncrona.

c) Complementación

Para complementar el dato del registro si C=1 debemos hacer:

Ji=Ki=C para i=1,….., n

Si C=0 el registro mantendrá su contenido y si C=1 lo complementa.

d) Borrado del registro

Para borrar el registro si Z=1 y dejarlo inalterado si Z=0 habrá que poner:

Ji=0 Ki(R)=Z para i=1,….., n

19
Teniendo en cuenta que en un instante dado sólo una de las variables W, R, C, Z
está a 1 lógico, podemos combinar las expresiones anteriores:

Ji=Bi·W + C i=1,….,n
Ki= Bi ·W + C + Z

Por tanto la etapa i-ésima del registro será:

Bi
W

C
Z

Ki Ji

CLK Ci FF i
Qi

R
Bi

El registro completo se puede representar como:

n Conexión
transferencias
W bus  registro
R Registro
Líneas
C de n bits
de control
Z Conexión
CLK transferencias
n registro  bus

20

También podría gustarte