1 Organización del Computador 1Lógica Digital 2 Circuitos y memorias
2 Flip-flops Circuitos combinatorios Funciones BooleanasEl resultado depende sólo de las entradas Para hacer aplicaciones mas interesantes, necesitamos circuitos que puedan “recordar” su estado y que actúen según su estado y las entradas. ¿Para que? Para construir memorias, registros, contadores, etc. Un circuito lógico de estas características se denomina flip-flop. La razón porque memoriza un estado hasta que se le grabe otro estado diferente.
3 Realimentación Para utilizar sus valores previos, los circuitos secuenciales recurren a la realimentación. La realimentación se produce cuando una salida se conecta a una entrada. Ejemplo simple:. Si Q es 0 siempre será 0, si es 1, siempre será 1, porqué?
4 Flip-flop SR Uno de los circuitos secuenciales más básicos es el flip-flop SR. “SR” por set/reset. Circuito lógico y diagrama en bloque
5 Flip-flop SR La tabla característica describe el comportamiento del flip-flop SR. Q(t) es el valor de la salida al tiempo t. Q(t+1) es el valor de Q en el próximo ciclo de clock.
6 Flip-flop SR A los efectos del análisis de los estados, podemos considerar que el flip-flop SR tiene en realidad 3 entradas: S, R, y su salida actual Q(t). Note los dos valores indefinidos, cuando las entradas S y R son 1, el flip-flop es inestable ¿Por qué?
7 Flip-flop RS Para uniformar el tipo de compuerta a utilizar puede demostrarse fácilmente que todos los circuitos lógicos se pueden construir utilizando compuertas NOR o Compuertas NAND solamente. Esto ayuda a trabajar con los elementos reales ya que minimiza la cantidad de componentes físicos que incluimos en nuestro diseño lógico
8 Flip-flop RS NAND Q S R Q S R Q S R Aplicando De MorganS + Qt = S . Qt Q S R
9 Habilitación de datos (Enable)Generalmente es necesario determinar cuando grabar información en un latch, a pesar de tener datos en la entrada Para habilitar (enable) es ideal la compuerta AND. Si Enable = 0, Q = 0 Si Enable = 1, Q = A A Q Enable
10 Flip-flop SR con EnableQ S’ R’ S R Enable S S’ Q Enable Integramente con compuertas NAND Q R’ R
11 Ejercicio Encontrar Q para las señales R, S dadas S R S Q Q Q R t R S Q Q Q t R
12 Ejercicio Encontrar Q para las señales R, S dadas S R S Q Q Q R t R S Q Q Q t R
13 Circuitos sincrónicosLos circuitos sincrónicos funcionan sobre lo que denominaremos base de tiempo. Es decir, las salidas dependen no sólo de las entradas, sino del estado en que estaban las salidas y del ritmo que impone la base de tiempo.
14 Bases de tiempo = RelojesEn general, necesitamos una forma de ordenar los diferentes eventos que producen cambios de estados Para esto usamos relojes Un “reloj” (clock) es un circuito capaz de producir señales eléctricas oscilantes, con una frecuencia uniforme
15 Cambios de estado Los cambios de estado se producen en cada tick de reloj Estos cambios pueden producirse cuando se produce un cambio de flanco (ascendente o descendente) o por un cambio nivel (alto o bajo)
16 Flip-flop RS sincrónicoCK S R Q 1 - Q S CK Q R
17 Flip-flop RS sincrónicoCK S R Q 1 - set S Q clock CK Q reset R
18 Ejercicio Encontrar Q para las señales R, S dadas usando RS síncronoCK S R Q 1 - CK S R S Q Q CK t Q R
19 Ejercicio Encontrar Q para las señales R, S dadas usando RS síncronoCK S R Q 1 - CK S R S Q Q CK t Q R
20 Flip-flop D Otra modificación al flip-flop SR es el denominado flip-flop D. Elimina el estado inestable asegurando que siempre S y R son mutuamente inversas Note que retiene el valor de la entrada al pulso de clock, hasta que cambia dicha entrada, pero al próximo pulso de clock.
21 Flip-flop D El flip-flop D es el circuito fundamental en:una celda de 1 bit de memoria RAM, de tecnología estática (de las que nos ocuparemos en breve). un bit de un registro de un controlador Entrada Salida. un bit de un registro que compone la arquitectura de la CPU
22 Latch D con Preset y ClearCLR CK D Q 1 X data D Q clock CK Q CLR
23 Registros Registro de 4 bits compuesto por 4 flip-flop D.
24 Registro de desplazamiento basado en flip-flop Ddata D Q D Q D Q D Q CK CK CK CK
25 Limitaciones de los flip-flopCiclo de reloj data Q D Q D clock CK CK Q Q tpd Cuando se conectan en cascada para construir circuitos secuenciales, el tiempo de propagación tpd, que es el que tarda la entrada del latch en grabarse a su salida, puede hacer que una entrada tome el nuevo estado en tpd en lugar de en el ciclo siguiente de clock. Se trata de dispositivos transparentes. La entrada se propaga a la salida luego de tpd. tpd ¿Cómo se arregla esto?
26 Flip-flops Master SlaveSon dispositivos de almacenamiento no transparentes S Q S1 Q1 S2 Q2 CK CK Ciclo de reloj tpd Q Q2 Q1 R1 R2 R Q1 Q2
27 Flip-flop JK La idea es convertir el flip-flop SR en un flip-flop estable. Es posible realizar esta modificación. El flip-flop modificado se denomina JK. “JK” en honor de Jack Kilby (inventor del circuito integrado).
28 Flip-Flop JK A la derecha podemos ver el circuito lógico de flip-flop SR modificado. La tabla característica indica que es estable para cualquier combinación de sus entradas.
29 Latch JK CK J K Q 1 X J Q clock CK Q K
30 Diseño de circuitos Los circuitos digitales se pueden ver desde dos puntos de vista: análisis digital y síntesis digital. El Análisis Digital explora la relación entre las entradas a un circuito y sus salidas. La Síntesis Digital crea diagramas lógicos utilizando los valores expresados en una tabla de verdad. Los diseñadores de circuitos digitales deben tener en cuenta el comportamiento físico de los circuitos electrónicos, es decir existen retardos de propagación, los cuales pueden incidir cuando las señales toman distintos caminos, en la tabla de verdad de todo el sistema.
31 Contadores Un contador binario es otro ejemplo de circuito secuencial.El bit de menor orden se complementa a cada pulso de clock. Cualquier cambio de 0 a 1 , produce el próximo bit complementado, y así siguiendo a los otros flip-flop.
32 Contador de 4 bits basado en Flip Flop JK1 1 1 1 J Q J Q J Q J Q CK CK CK CK K K K K 1 1 1 1 LSB MSB
33 Ejemplo Diseño de un circuito secuencialDiseñar un circuito secuencial que genere una secuencia de estados binarios: 00, 01, 10, 11 a partir de una señal de control x, que cada vez que esté en 1 y venga una señal de clock cambie de estado.
34 Ejemplo Diseño de un circuito secuencialDiseñar un circuito secuencial que genere una secuencia de estados binarios: 00, 01, 10, 11 a partir de una señal de control x, que cada vez que esté en 1 y venga una señal de clock cambie de estado. 00 Diagrama de estado 01 11 10
35 Diagrama de estado Diseño de un circuito secuencial x = 0 00 x = 101 11 x = 0 x = 0 x = 1 x = 1 10 x = 0 x : señal de control
36 Como el contador tiene dos bits, se usarán dos flip-flops (A y B), uno para cada bit. A B x ? 1 AB x = 0 00 x = 1 x = 1 01 11 x = 0 x = 0 control x = 1 x = 1 10 x = 0 x : señal de reloj
37 t t +1 Tabla de estado x = 0 00 x = 1 x = 1 01 11 x = 0 x = 0 control1 Tabla de estado x = 0 00 x = 1 x = 1 01 11 x = 0 x = 0 control x = 1 x = 1 10 x = 0 x : señal de reloj
38 t t +1 A B x 1 JA KA ? CK J K Q 1 J Q control CK FF Usando flip-flops JK cómo deben ser sus entradas para que A cambie de su estado t a su estado t+1? Q K
39 Tabla de verdad Flip Flop JKx 1 JA KA X 1 CK J K Q 1 J Q control CK FF Tabla de excitación Q K Tabla de verdad Flip Flop JK
40 t t +1 Mapas de Karnough A B x 1 JA KA X 1 JA B A x KA B A x
41 t t +1 Mapas de Karnough A B x 1 JA KA X 1 JA B A X 1 x KA B A 1 X x
42 t t +1 JA B A x KA B A JA = B.x KA = B.x x X 1 1 X Mapas de Karnough A1 JA KA X 1 JA B A X 1 x KA B A 1 X JA = B.x KA = B.x x
43 t t +1 A B x 1 JB KB ? CK J K Q 1 J Q control CK FF Usando flip-flops JK cómo deben ser sus entradas para que B cambie de su estado t a su estado t+1? Q K
44 t t +1 A B x 1 JB KB X 1 CK J K Q 1 J Q control CK FF Usando flip-flops JK cómo deben ser sus entradas para que B cambie de su estado t a su estado t+1? Q K
45 Tabla de verdad Flip Flop JK xMapas de Karnough A B x 1 JB KB X 1 JB B A x KB B A Tabla de verdad Flip Flop JK x
46 t t +1 Mapas de Karnough A B x 1 JB KB X 1 JB B A X 1 x KB B A 1 X x
47 t t +1 JB B A x KB B A JB = x KB = x x X 1 1 X Mapas de Karnough A B x1 JB KB X 1 JB B A X 1 x KB B A 1 X JB = x KB = x x
48 A JA Q JA = B.x CK FFA Q KA = B.x KA JB = x B JB KB = x Q CK FFB Q KB
49 A JA Q JA = B.x CK Q KA = B.x KA JB = x B JB Q KB = x CK Q x KB clockFFA Q KA = B.x KA JB = x B JB KB = x Q CK FFB Q x KB clock
50 Circuitos secuencialesConsideraciones de diseño: Hacer un diagrama de estado identificando las variables entrada (control) y salida. En el diagrama: un estado es un círculo, un flecha es una transición de un estado a otro. El número de flip-flops necesarios para el circuito es el número de bits que tienen los estados. Se realiza la tabla de estados y la tabla de excitación para cada flip-flop. Se diseña el circuito combinacional para cada entrada de cada flip-flop usando mapas de Karnough. Se implementa el circuito secuencial.
51 Celda de memoria seleccionar entrada S Q salida R leer/escribir (1/0)
52 Celda de memoria Celda de memoria S Q BC R seleccionar entrada salidaleer/escribir (1/0) leer/escribir (1/0)
53 Unidad de memoria de 4 x 3 bitsUnidad de memoria de 4 × 3 bits Dato de entrada (3 bits) D0 A0 BC BC BC A1 D1 BC BC BC Entrada de selección de memoria D2 BC BC BC D3 Decoder 2×4 BC BC BC leer/escribir Dato de salida
54 Unidad de memoria RAM
55 Unidad de memoria RAM
56 Celda de memoria RAM
57 Buffer de 3 estados EN = 0 EN = 1 IN OUT IN OUT EN: enable IN: inputOUT: output Esquema eléctrico
58 Buffer de 3 estados Tabla de verdad Diagrama EN: enable IN: inputOUT: output
59 Buffer de 3 estados Diagrama Tabla de verdad
60 Ejemplo: RAM de 16 x 1 bit
61 Ejemplo: RAM de 16 x 1 bit usando celdas de 4 x 4
62 Diagrama en bloque RAM de 64K x 8 bitsChip 64 x 8 RAM
63 Ejemplo: RAM de 256K con 4 chips de 64K x 8
64 Ejemplo: RAM de 64K x 16 utilizando 2 chips de 64K x 8
65 Memoria ROM (read only memory)
66 Lógica interna de una ROM
67 Tabla de verdad ROM 32 x 8
68 Programación de ROM 32 x 8