Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivos que se deben haber alcanzado antes de realizar la prctica Antes de preparar esta prctica se deben haber alcanzado los objetivos especficos que se indican en la siguiente tabla. Para ello, es recomendable haber estudiado las secciones de la documentacin que se indican en la primera columna de la tabla. Secciones de la documentacin a estudiar Captulo 3: Seccin 3.2 Captulo 5: Secciones 5.1.3, 5.1.4 y 5.1.5. Seccin 5.2.2 y 5.3. Secciones 5.5.2 y 5.5.3. Seccin 5.1.8 Estos objetivos sern evaluados en el informe previo que debis entregar al inicio de la sesin de laboratorio y en la prueba previa individual que se har al inicio de la sesin. Objetivos que se deben alcanzar al realizar la prctica Despus de realizar esta prctica, adems de haber mejorado el nivel de consecucin de los objetivos necesarios para preparar la prctica (citados en la tabla anterior) y de los objetivos de la prctica anterior relativos al manejo del programa LogicWorks, el alumno ser capaz de: 1) 2) 3) 4) Implementar en LogicWorks un sumador binario combinacional con propagacin del acarreo usando Full-adders. Encapsular el dispositivo usando buses de 16 bits para las entradas y salidas del circuito. Obtener el tiempo de propagacin del sumador binario usando LogicWorks. Implementar en LogicWorks un circuito secuencial a partir de un grafo de estados y comprobar su correcto funcionamiento. Obtener el tiempo de ciclo mnimo de un circuito secuencial usando LogicWorks.
Esta prctica tiene dos partes bien diferenciadas: a) implementacin de un sumador combinacional conectando Full-adders en propagacin del acarreo y b) introduccin al biestable D activado por flanco (secuencial ms simple que usaremos para construir otros ms complejos) e implementacin de un circuito secuencial contador.
A continuacin mostramos tres diseos, uno de ellos es un Full-adder implementado con menos de tres Half-adders y alguna puerta ms.
A)
x y z
B)
x y z
C)
x y z
HA c s
HA c s HA c s
HA c s
HA c s
b)
c)
Son intercambiables las entradas del Fa-ha en cuanto a tiempo de propagacin (Tpx-c = Tpy-c= Tpz-c?, Tpx-s = Tpy-s= Tpz-s? )?
Como conclusin podemos decir que hay distintas formas de implementar un Full-adder (como cualquier otro dispositivo). Todas las implementaciones tienen el mismo comportamiento lgico (la misma tabla de verdad) pero pueden tener distinto comportamiento en cuanto a tiempos de propagacin, nmero de puertas y tipos de puertas utilizadas.
X x15x14 x1x0
Y y15 y14 y1 y0
con
xi , yi {0,1}i .
puede valer
x, y 2 1 ,
16
la suma Wu = Xu + Yu
0 Wu 2 2 .
combinacional tendr 32 entradas y 17 salidas de un bit. Ya no es un circuito con pocas entradas y salidas, verdad?
Dada la inviabilidad de construir un sumador a partir de la especificacin exhaustiva del valor de las salidas para todos los posibles valores de las entradas, vamos a implementar el sumador usando un algoritmo equivalente al que usamos cuando sumamos en decimal con lpiz y papel, pero ahora en base sumador binario en propagacin del acarreo.
Dgito 4
X Y
k =0 k =1 k=2 k=3 w0 c1 w1 c2 w2 c3 w3 c4 W
Dgito 3 A 8
Dgito 2 3 E
Dgito 1 B 6
Dgito 0 2 4
b)
Obtened los valores Xu, Yu y Wu (en decimal) de los nmeros naturales representados hexadecimal por los vectores de dgitos X, Y y W. Realizad el clculo Xu + Yu (en decimal) y comprobad que os da igual al valor Wu obtenido. Si es as, la suma en hexadecimal que habis hecho en el apartado anterior es correcta. Xu = Yu = Wu = Xu + Yu = Wu? Suma en binario (b=2) de los vectores de bits X=0101 e Y=1101 Dgito 4 Dgito 3 0 1 Dgito 2 1 1 Dgito 1 0 0 Dgito 0 1 1
c)
X Y
k =0 k =1 k=2 k=3 w0 c1 w1 c2 w2 c3 w3 c4 W
d)
Obtened los valores Xu, Yu y Wu (en decimal) de los nmeros naturales representados en binario por los vectores de dgitos X, Y y W. Realizad el clculo Xu + Yu (en decimal) y comprobad que os da igual al valor Wu obtenido. Si no es as, la suma en binario que habis hecho en el apartado anterior no es correcta. Xu = Yu = Wu = Xu + Yu = Wu?
x3 y3 xyz Fa c s c w c4 w3 Fa c s Fa3
x2 y2
x1 y1
x0 y0 c0
Fa c s Fa2
Fa c s Fa1
Fa c s Fa0
w2
w1
w0
w4 c4 ). No hemos nombrado w4 porque en los computadores generalmente todos los datos tienen el mismo nmero de dgitos. Cuando la salida cn del sumador vale 1 nos indica que el resultado correcto de
la suma no puede representarse en binario con n bits.
w4 la
hemos denominado
c4
1 0
1 0
1 0 Fa c s Fa c s Fa c s Fa c s
Nos centramos ahora en el sumador basado en Fa-ha, para reducir el trabajo de la siguiente pregunta. El circuito sumador que hemos diseado usando Fa-ha, como en general ocurre con cualquier circuito, no tarda siempre lo mismo en dar el resultado correcto y estable en sus salidas. Este tiempo depende de las entradas concretas en las que se produce el cambio, del valor de las entradas antes y despus de producirse un cambio y del valor de las entradas que no cambian. (Cuando hablamos de tiempo de propagacin estamos considerando el peor caso). El siguiente ejercicio trata de este aspecto, aunque es un tema que no debe obsesionarnos, pues excepto en estos ejercicios siempre hablamos de tiempo de propagacin considerando que los valores de las entradas son los que producen el mayor tiempo de propagacin y lo obtenemos calculando el camino crtico. Es til que recordis para responder a las siguientes preguntas que cuando una puerta And-2 tiene una entrada fijada a 0, la salida es 0 independientemente del valor de la otra entrada. De forma dual, cuando una puerta Or-2 tiene una entrada fija a 1, la salida vale 1 independientemente del valor de la otra entrada. Adems, como ya vimos en la prctica anterior, la puerta Xor-2 tiene un tiempo de propagacin que depende de los valores concretos que cambian en sus entradas (realmente, segn el cambio a veces el tiempo es de 0 u.t., 40 u.t. o 50 u.t.). Copiamos a continuacin la tabla de tiempos de la puerta Xor-2. Valor de x e y en t-t 00 Valor de x e y en t+t 01 10 11 00 10 11
01
d (delay) 40 40 50 40 50 50
10
11
00 01 11 00 01 10
40 50 50 0 50 50
d4
d3
d2
d1
d0
b)
c)
Explicad las diferencias entre el caso a) y b): i. Por qu en el caso a) d3 es mayor que d2, d2 mayor que d1, y d1 mayor que d0 mientras que en el caso b) d3, d2, d1 y d0 tienen el mismo tiempo? ii. Por qu en el caso a) d4 es menor que d3 mientras que en el b) d4 es 0?
Vamos a comprobar en el laboratorio si son correctas vuestras respuestas a la pregunta 8 del informe previo. Para ello, en el sumador con Fa-ha, poned un Switch que vaya a la entrada del acarreo del primer Full-adder (c0) y cuatro Switches ms en las entradas de cada uno de los dos nmeros que queremos sumar. Dad nombres a las salidas para poder visualizar en la ventana de tiempos del LogicWorks los cronogramas de las seales de salida.
d4
d3
d2
d1
d0
Coincide con la respuesta del informe previo? Si no coincide indicad la razn. b) Repetid el ejercicio anterior para X = 1010, Y = 0101 y C0 = 0. d4 d3 d2 d1 d0
Para acceder a los cables de un bit que hay dentro de un bus, hay que usar un Breakout. Para poner un breakout en un circuito tenis que ir al men Schematic -> New Breakout. Nos aparece una ventana que nos pregunta o Pin List. Aqu tenis que copiar: b0..15 (exactamente as, de lo contrario no funcionar) o Pin Spacing. Podis usar el nmero 1, 2, 3, 4, etc. Dependiendo de lo separados que queris que salgan los cables del bus (probad distintas opciones para ver el resultado). Si usis el espaciado 6 como hemos usado nosotros en el circuito anterior, el diseo os cabr en una sola pgina y quedar muy bonito. Se puede dibujar un bus de n bits (que es una lnea azul gruesa) para unir, por ejemplo, el bus del PORTIN X con un breakout que obtendr sus bits internos, o para unir dos patillas de tipo bus de dos
dispositivos en un circuito complejo. Para ello se estira de la patilla de tipo bus del dispositivo (como se hace para el caso de cables de 1 bit), o se usa el botn cables de un bit). (equivalente al botn usado para dibujar
Despus de esta pequea introduccin sobre los buses en LogicWorks vamos a dibujar el circuito en la pgina que se abre al hacer doble clic sobre el smbolo ADD y que slo contiene los tres PORT CONNECTORS. Ahora ya podis crear tres breakout, dos para conectarlos a los PORTIN X e Y y otro para conectarlo a W, como se muestra en la figura anterior. El siguiente paso consiste en pegar los 16 Full-adder a los cables que salen de los breakout. Una vez terminado el circuito ya podis cerrarlo. Ahora podis seleccionar el smbolo ADD para salvar los cambios que habis hecho en su circuito interior en la librera LibPrac2, de la misma forma que ya conocis de la prctica anterior para los dispositivos que tienen patillas de un bit.
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
b11 b10 b9 b8
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
b7 b6 b5 b4
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
b3 b2 b1 b0
ADD
Tenis que sustituir el dispositivo ADD, cuyo circuito interno slo tiene los ports connectors, por vuestro dispositivo ADD-P2. Probad varios nmeros haciendo clic en los teclados hexadecimales y observad la salida en los displays hexadecimales. Comprobad que el sumador funcione correctamente.
0
CLK D 0 Q Out
Ini CLS-2 w1 w0
El comportamiento del circuito queda especificado en el siguiente grafo de estados.
10
Si consideramos que las salidas w1 y w0 representan un nmero natural codificado en binario con dos bits, podemos decir que el circuito genera la secuencia 1, 2, 3 y la repite indefinidamente si en el estado E3 la entrada Ini vale 1. Si Ini vale 0 en el estado E3 el sistema se va al estado inicial, E0, generando la salida 0 durante todos los ciclos que permanezca en este estado. Para salir del estado inicial Ini tiene que valer 1 durante un ciclo. El valor de Ini en los estados E1 y E2, en los que la salida vale 1 y 2 respectivamente, no afecta al funcionamiento del circuito.
11
Estado Entrada Estado fututo Salida Q1Qo INI Q1+Q0+ w1w0 00 0 00 00 00 1 01 00 01 0 10 01 01 1 10 01 10 0 11 10 10 1 11 10 11 0 00 11 11 1 01 11 Q1+= !Q1Q0!INI+ !Q1Q0 INI+ Q1!Q0!INI + Q1!Q0 INI = = !Q1Q0+ Q1!Q0 Q0+= !Q1!Q0INI+ Q1!Q0!INI + Q1!Q0 INI + Q1Q0 INI = =!Q1!Q0INI+ Q1!Q0+ Q1Q0 INI
Tiempo de ciclo En un circuito secuencial el tiempo de ciclo (periodo) de la seal de reloj tiene que ser suficientemente grande como para que todas las seales que llegan a la entrada D de los biestables estn estables en su valor correcto cuando llegue el flanco ascendente de reloj. Si esto no ocurre, los biestables almacenarn valores incorrectos y el sistema no funcionar como debe. Para ello el periodo de la seal de reloj (el tiempo entre dos flancos ascendentes de reloj) debe ser mayor que el tiempo del camino crtico del circuito. Vamos a calcular el tiempo de ciclo mnimo del CLS-2.
Implementad en LogicWorks el circuito que habis diseado en la pregunta 9 del informe previo. Encontraris los dispositivos flip-flop (biestable D) y puertas And-2, Or-2 y Or-4 en la LibPrac2, Tambin se encuentra en esta librera el dispositivo CLS-2, que slo tiene ports connectors en su circuito interno, para que encapsulis vuestro diseo. Recordad que en el diseo de un circuito secuencial es necesario inicializar las salidas Q de los biestables, para que cuando comience el funcionamiento los biestables se pongan en el estado inicial del circuito. Los biestables de nuestras libreras de LogicWorks se encuentran por defecto inicializados a 0. Es decir, al hacer reset en el simulador, la salida de los biestables es 0. As que si el estado inicial de un biestable tiene que ser 0, como ocurre en esta prctica, no es necesario modificar el valor que est por defecto. No obstante, si al hacer reset quisiramos que un biestable concreto se inicialice a 1, habra que haber modificado previamente la definicin de ese biestable con el siguiente procedimiento. Haced clic con el botn derecho del cursor en la patilla Q del biestable (en la parte de la patilla cercana a la caja). La patilla se selecciona como indica la figura y aparece una ventana de dialogo. Seleccionad Attributes y aparece otra ventana en la que tenis que seleccionar InitialPin, Visible y poner un 1 la caja del valor, como muestra la figura. Por ltimo haced clic en Done y ya est. Aparece un 1 en azul al lado de patilla para recordar que ese biestable se inicializar a 1 al hacer reset.
12
Por ltimo, antes de comenzar la simulacin no olvidis de hacer clic en el botn de reset del simulador, , para inicializar los biestables de la unidad de control al valor que tienen asignado.
13
Pregunta 1
Pregunta 2
a)
b)
14
Pregunta 3
a)
b)
Pregunta 4
a)
Dgito 4
X Y
k =0 k =1 k=2 k=3 w0 c1 w1 c2 w2 c3 w3 c4 W
Dgito 3 A 8
Dgito 2 3 E
Dgito 1 B 6
Dgito 0 2 4
b)
X Y
k =0 k =1 k=2 k=3 w0 c1 w1 c2 w2 c3 w3 c4 W
d)
15
Pregunta 5
a)
b)
Pregunta 6
a)
Pregunta 7
a) d4 d3 d2 d1 d0
b) d4 d3 d2 d1 d0
c)
Explicad las diferencias entre el caso a) y b): i. Por qu en el caso a) d3 es mayor que d2, d2 mayor que d1, y d1 mayor que d0 mientras que en el caso b) d3, d2, d1 y d0 tienen el mismo tiempo?
Pregunta 8
16
Pregunta 9
Pregunta 10
Pregunta 11
a) b) (Dibujado sobre el esquema respuesta de la pregunta 10 del informe previo)
17
Grupo: .......
Pregunta 1 (1 punto)
Fa-ha Comentario del profesor: Firma del profesor:
Pregunta 2 (1 punto)
Sumador de 4 bits Comentario del profesor: Firma del profesor:
Pregunta 3
a) (1 punto) d4 d3 d2 d1 d0
(0.5 puntos) Coincide con la respuesta del informe previo? Si no coincide indicad la razn.
b) (1 punto) d4 d3 d2 d1 d0
(0.5 puntos) Coincide con la respuesta del informe previo? Si no coincide indicad la razn.
Pregunta 4 (1 punto)
ADD-P2 Comentario del profesor: Firma del profesor:
Pregunta 5 (3 puntos)
CLS-2 Comentario del profesor: Firma del profesor:
19