Download Lógica digital - memorias
Document related concepts
no text concepts found
Transcript
Organización del Computador 1 Lógica Digital 2 Circuitos y memorias Flip-flops Circuitos combinatorios Funciones Booleanas El 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. 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é? 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 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. 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é? 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 Flip-flop RS NAND S Q Aplicando De Morgan S Q S + Qt = S . Q t Q R Q R S Q Q R 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. A Enable Q Si Enable = 0, Q = 0 Si Enable = 1, Q = A Flip-flop SR con Enable S S’ Q Enable R’ Q R S Integramente con compuertas NAND S’ Q Enable R’ R Q Ejercicio Encontrar Q para las señales R, S dadas S 1 0 1 0 1 1 1 1 1 0 R 0 0 1 1 1 0 1 0 1 1 S Q t R Q Q Ejercicio Encontrar Q para las señales R, S dadas S 1 0 1 0 1 1 1 1 1 0 R 0 0 1 1 1 0 1 0 1 1 S Q 0 1 1 1 1 0 0 0 0 1 t R Q Q Circuitos sincrónicos Los 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. Bases de tiempo = Relojes En 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 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) Flip-flop RS sincrónico CK Q S CK Q R S R Q 0 0 Q 0 1 0 1 0 1 1 1 - Flip-flop RS sincrónico CK set S clock CK reset R Q Q S R Q 0 0 Q 0 1 0 1 0 1 1 1 - Ejercicio Encontrar Q para las señales R, S dadas usando RS síncrono CK CK S S R Q 0 0 Q 0 1 0 1 0 1 1 1 - R S Q Q CK t R Q Ejercicio Encontrar Q para las señales R, S dadas usando RS síncrono CK CK S S R Q 0 0 Q 0 1 0 1 0 1 1 1 - R S Q Q CK t R Q 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. 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 Registros Registro de 4 bits compuesto por 4 flip-flop D. Registro de desplazamiento basado en flip-flop D data D CK Q D CK Q D CK Q D CK Q Limitaciones de los flip-flop Ciclo de reloj data clock D Q CK Q CK Q D Q 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 tpd ¿Cómo se arregla esto? Flip-flops Master Slave S Son dispositivos de almacenamiento no transparentes S1 Q1 R1 Q2 Q CK CK R S2 Q1 R2 Q2 Q Q1 Q2 Ciclo de reloj tpd tpd 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). 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. 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. 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. Celda de memoria seleccionar entrada S Q R leer/escribir (1/0) salida Celda de memoria Celda de memoria seleccionar entrada S Q salida seleccionar R entrada BC salida leer/escribir (1/0) leer/escribir (1/0) Unidad de memoria de 4 x 3 Unidad de memoria de 4 × 3 bits bits Dato de entrada (3 bits) A0 A1 Entrada de selección de memoria D0 BC BC BC BC BC BC BC BC BC BC BC BC D1 D2 D3 Decoder 2×4 leer/escribir Dato de salida Unidad de memoria RAM Ejemplo: RAM de 16 x 1 bit Ejemplo: RAM de 16 x 1 bit usando celdas de 4 x 4 Diagrama en bloque RAM Chip de 6464K x 8 bits x 8 RAM Ejemplo: RAM de 256K con 4 chips de 64K x 8 Ejemplo: RAM de 64K x 16 utilizando 2 chips de 64K x 8