Registros. Buses. Memorias.



Documentos relacionados
REGISTROS DE DESPLAZAMIENTO

Electrónica Digital. Tema 3. Diseño Síncrono

Figura 1: Símbolo lógico de un flip-flop SR

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008

Tema 7. SISTEMAS SECUENCIALES SISTEMAS SECUENCIALES SÍNCRONOS

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

18. Camino de datos y unidad de control

CIRCUITOS SECUENCIALES

La Unidad Procesadora.

TEMA - 3 LÓGICA SECUENCIAL. REGISTROS DE DESPLAZAMIENTO Y CONTADORES. 1.- Introducción.

Registros y Contadores

TEMA7. SISTEMAS SECUENCIALES

UNIDADES DE ALMACENAMIENTO DE DATOS

Organización de Computadoras. Turno Recursantes Clase 8

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

Laboratorio 2: Mediciones Digitales

GUIAS ÚNICAS DE LABORATORIO GENERADOR DE NÚMEROS PRIMOS AUTOR: ALBERTO CUERVO

Actividad 4: Comunicación entre PLC s vía Ethernet

COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT)

CONTADORES Y REGISTROS

Contadores. Introducción n a los Sistemas Lógicos y Digitales 2009

3. Número inicial y número final de mensajes mostrados en la página actual.

MEMORIAS DE SEMICONDUCTORES

Circuitos Electrónicos. Septiembre 2005/2006. Problema 1º parcial

GUIAS ÚNICAS DE LABORATORIO DETECTOR DE MONEDAS AUTOR: ALBERTO CUERVO SANTIAGO DE CALI UNIVERSIDAD SANTIAGO DE CALI DEPARTAMENTO DE LABORATORIOS

INTRODUCCIÓN A HDL VERILOG

Circuitos Electrónicos. Primer parcial curso

Tema 5: Sistemas secuenciales

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

DESCRIPCION DE PLC UP32 17/07/11 MAN-PLC-UP32-01A

Circuito de refresco de un Display

Un contador es un circuito secuencial que genera una secuencia ordenada de salidas que se repite en el tiempo. La salida coincide con el estado de

Comparadores UNIDAD V

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Pipelining o Segmentación de Instrucciones

Práctica I Modelado y simulación de una máquina expendedora de refrescos

Laboratorio 4: Uso de una FPGA

k 11 N. de publicación: ES k 51 Int. Cl. 5 : G01R 21/133

INTRODUCCION A LA PROGRAMACION DE PLC

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Guía de instalación de LliureX 5.09

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Introducción a la Firma Electrónica en MIDAS

Tema 4. Gestión de entrada/salida

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Matemática de redes Representación binaria de datos Bits y bytes

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

GUIAS ÚNICAS DE LABORATORIO TRANSFERENCIA ENTRE REGISTROS AUTOR: ALBERTO CUERVO


Capitulo V Administración de memoria

GUIAS ÚNICAS DE LABORATORIO CIRCUITOS CONTADORES AUTOR: ALBERTO CUERVO SANTIAGO DE CALI UNIVERSIDAD SANTIAGO DE CALI DEPARTAMENTO DE LABORATORIOS

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Tema IV. Unidad aritmético lógica

Capítulo 5 Programación del algoritmo en LabVIEW

Tema 4: Diseño de un microprocesador

CIRCUITOS ARITMÉTICOS

SISTEMAS DE NUMERACIÓN. Sistema decimal

Tema 8. Circuitos secuenciales de Propósito general: REGISTROS Y CONTADORES

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

DECODIFICADORES. Para cualquier código dado en las entradas solo se activa una de las N posibles salidas. 2 N

2 Entrada binaria, 4 canales, DIN

t i Q 7 Q 6 Q 5 Q 4 Q 3 Q 2 Q 1 Q 0

PROCEDIMIENTO DE ENLACE TCPIP

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores

Puertas Lógicas. Contenidos. Objetivos

Gestión de la Configuración

by Tim Tran:

TEMA 3: Control secuencial

Guía de Usuario. Premier 24/48/88/168/640

COMUNICACION DE PLC S MEDIANTE EL PUERTO RS- 485 Y MONITOREADO POR PANTALLA.

EJERCICIOS RESUELTOS DE SECUENCIALES

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas

Sube Selector Canales. Canal. Baja. Tema 4: Bases Matemáticas II. 4.1 Sistemas con memoria o secuenciales Introducción.

El protocolo IMAP ofrece la descarga de correos en modo sólo lectura, es decir descarga sólo una copia del correo y no permite el borrado.

Unidad 1: Conceptos generales de Sistemas Operativos.

Manual de Palm BlueBoard 2.0

Instrumentación Virtual con LabVIEW

Manual de usuario para Facturación Electrónica 2011

Capítulo 9. Archivos de sintaxis

MANUAL COPIAS DE SEGURIDAD

solecméxico Circuitos de disparo 1 CIRCUITOS DE DISPARO SCHMITT - TRIGER

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Osciloscopio Funciones

Clase 20: Arquitectura Von Neuman

En el presente capítulo se describe la programación del instrumento virtual y cómo

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

CAPITULO V. Cuando hablamos de los lenguajes de programación nos referimos a diferentes formas en las que se puede escribir el programa del usuario.

EXAMEN DE SEPTIEMBRE DE CIRCUITOS ELECTRÓNICOS. CURSO 2007/08. PROBLEMA DEL PRIMER PARCIAL

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Componentes básicos de memorización

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el

Transcripción:

Capítulo 5 egistros. Buses. Memorias. 5.. egistros. Se denomina registro a una serie de flip-flops agrupados y con señales de control común. Se considera que se leerán o escribirán como una unidad. Se muestra a continuación un registro de largo 4, con controles de preset y reset (o clear) asincrónicos, y con reloj común. Se asume que el grupo es disparado por canto de subida. S D Q CP Q _ S D Q CP Q _ clk S D Q CP Q _ eset S D Q CP Q _ Set Figura 5.. egistro de cuatro bits. 5.2. egistro con habilitación de escritura. Un esquema de un registro con habilitación de escritura, dispositivo muy empleado para almacenar variables locales en un procesador, se muestra en la figura 5.2.

2 Sistemas Digitales La señal de control Write Enable habilita el registro para escritura. Con el canto de subida del reloj, estando WE =, se escribe (o carga) el registro con los datos de entrada. Cuando WE = 0, el registro conserva su valor (queda en modo hold). Un diseño comercial similar al que se muestra, es el 74LS73, que además tiene salida de tercer estado. La celda básica del registro resulta más simple si el flip-flop es JK, ya que naturalmente éste permanece en modo hold con J=0 y K = 0. Puede anotarse la transferencia como: también suele usarse: WE: Q = D; WE: D Q o bien: WE: Q D. La señal de control que produce la transferencia es WE. D3 Q3 D Q _ CP Q D2 Q2 D Q CP Q D Q Q D CP Q _ D0 Q0 WE D Q CP Q _ clk Figura 5.2. egistro con habilitación de escritura.

Capítulo 5. egistros. Camino de datos. Memorias. 3 La señal WE debe estar estable durante el tiempo de setup del registro. En la práctica las señales de control de los registros son generados en una máquina de estados con modelo de Moore. En este caso, se ingresa a un estado con el canto del reloj, y se mantienen las salidas asociadas al estado hasta el próximo canto de subida del reloj. Estado WE= Estado 2 WE=0 Figura 5.3. Estados que generan la señal de control WE. Durante el estado, la máquina de estados habilita la escritura del registro, activando WE. Notar que la señal efectivamente se activa después del canto de subida del reloj, y es sincrónica con el reloj. En el estado, las señales Di se propagan a través de las compuertas y llegan a niveles estables en las entradas de los flip-flops. En el estado 2, se captura la información en el registro y permanecerá hasta que se inicie otro ciclo de escritura en el registro. Nótese que antes y durante el Estado, la salida del registro contiene la información que se haya escrito anteriormente. A partir del estado 2, tiene nueva información. clk WE Habilitación Estado Escritura Estado 2 Figura 5.4. Control del registro con WE.

4 Sistemas Digitales Si el registro se hubiera formado con latchs transparentes, habrían salidas nuevas durante el estado. Es decir se puede comenzar a usar la nueva información un ciclo de reloj antes, relativo al caso de registros disparados por cantos. Un registro puede anotarse simbólicamente como se muestra en la Figura 5.5: A la derecha del esquema para el registro, se indica la descripción de la transferencia. Que se interpreta así: Cuando WE esté alto y cuando llegue el canto del reloj, entonces capture en el registro, lo que esté estable en A, tsetup antes del canto del reloj. Suele no indicarse el reloj, en la ecuación TL (egister Transfer Level). WE A WE: = A Figura 5.5. epresentación simbólica de registro con habilitación de escritura. 5.3 Funcionamiento Sincrónico. Transferencias entre egistros. clk Se tienen los siguientes registros: WE WE 2 WE 3 A ed Combinacional. Tc Tm 2. Comb. Tc2 Tm2 3 clk clk clk Figura 5.6. Transferencia entre registros.

Capítulo 5. egistros. Camino de datos. Memorias. 5 Consideremos que las redes combinacionales tienen un tiempo mínimo de propagación y un tiempo máximo o crítico, desde que se le aplican entradas hasta que se tienen salidas. El esquema simboliza la capacidad de efectuar acciones u operaciones monádicas de una red combinacional. Se ilustra: 2 = f() y 3 = g(2), con un ingreso de datos simbolizado por la transferencia = A. En el esquema se ilustra la composición de funciones, ya que globalmente puede escribirse: 3 = g(f(a)). 5.3.. equerimientos de tiempo. Se considera el tiempo de variabilidad del reloj, o tiempo de corrimiento (skew), debido a que en dos lugares distintos no puede tenerse la misma señal. Éstas viajan a través de cables y debería asumirse que el reloj que llega al registro 2, puede estar adelantado (clk2a) respecto a clk o atrasado (clk2b) respecto de él, como se muestra en la gráfica a continuación. clk clk2a clk2b Corrimiento clk. ( tskew) Figura 5.7. Corrimientos del reloj (skew). Con: Tf = Tiempo desde el canto de subida de clk hasta tener salidas estables en las salidas de. Tc = tiempo de propagación a través de la ruta crítica en la red combinacional. Es decir, cuando haya tomado nivel estable la señal que se propaga más lentamente a través de la red, a la salida de. Tm = tiempo mínimo de propagación a través de la red combinacional. Es decir, cuando haya tomado nivel estable la señal que se propaga más rápidamente a través de la red que alimenta a 2. Tsu2 = Tiempo de setup-up de los flip-flops del registro 2. Thold2 = Tiempo de sostenimiento de los flip-flops del registro 2. Para que la captura de información sea confiable en el registro 2 debe cumplirse que el período del reloj debe ser mayor que: T(clk2 ) > Tskew + Tf + Tc + Tsu2

6 Sistemas Digitales T(clk2) clk2 clk Tskew Tf Tc Tsu2 Figura 5.8. equerimientos de setup del registro 2. Se considera el peor caso, ya que se asume que clk está atrasado respecto de clk2. En caso de estar adelantado, se podría tener una frecuencia de funcionamiento sincrónica mayor, ya que en este caso se requiere un T(clk2) menor. Para que las entradas permanezcan estables un poco después del canto de subida en el registro 2, debe cumplirse: Thold2 < Tf +Tm + Tskew clk2 clk Thold 2 Tskew Figura 5.9. equerimientos de hold para el registro 2. También se ha considerado el peor caso para determinar que se cumpla el requerimiento del tiempo de sostenimiento de las entradas después del canto; se asume que el clk está atrasado respecto del clk2. En general este requerimiento es más fácil de cumplir que el de tiempo de setup. Si se desea usar el mismo reloj, para efectuar transferencias entre registros, deben cumplirse los requerimientos de estableciemiento (setup) y sostenimiento (hold) de todos los registros del sistema. Esto implica que la etapa más lenta es la que determina la frecuencia del reloj. Tf Tm

Capítulo 5. egistros. Camino de datos. Memorias. 7 5.3.2. Operaciones posibles. Asumiendo que las señales WE, WE2 y WE3 son salidas de una máquina secuencial de Moore, controlada por el mismo reloj, se tendrá que es posible efectuar concurrentemente las operaciones: = A; 2 = f(); 3 = f2(2) Durante el ciclo en que están habilitadas las señales WE, los valores de A, y 2 permanecen estables (son los que figuran a la derecha en las ecuaciones anteriores). Al terminar dicho ciclo, se establecen los nuevos contenidos de estos registros; los nuevos valores serán asignados a las variables que figuran a la izquierda en las ecuaciones anteriores. Si se omite el registro 2, la misma operación anterior puede plantearse: = A; 3 = f2(f()) Con ello se tiene una red combinacional más compleja, y posiblemente resulte una frecuencia sincrónica menor, debido a que aumentan los tiempos de propagación, si las funciones combinacionales deben efectuarse en secuencia. No obstante, el tiempo de propagación entre A y la salida de 3 se reduce. 5.3.3. Operaciones combinacionales alternativas. Si las funciones combinacionales son alternativas, puede expresarse: = A; if ( C ) then 3 = f() ; else 3 = f2(); Lo cual puede lograrse con un multiplexor, comandado por la señal de control C, la cual también es generada por la máquina secuencial que genera los WE. En este caso la frecuencia máxima queda determinada por la función combinacional que tenga propagación más lenta. Obviamente debe agregarse al tiempo que toma realizar las acciones, el tiempo que adiciona el multiplexor. WE C WE 3 A f( ) 3 f2( ) 0 Figura 5.0. Funciones combinacionales alternativas.

8 Sistemas Digitales Hasta el momento se ha estado desarrollando cómo efectuar operaciones y depositar los resultados en registros. Los recursos planteados permiten implementar la asignación a una variable del resultado de una operación monádica. Otra cuestión que es de interés es el poder mover los datos entre registros, ya sea para memorizar un resultado parcial, o para intercambiar el contenido de éstos, o para copiar una variable en otra. Es decir deseamos estudiar un conjunto de registros y las conexiones entre ellos para posibilitar dichas transferencias. 5.4. Camino de Datos. Se denomina así a las formas empleadas para conectar los recursos, en este caso los registros. Existen varias estrategias que se diferencian entre sí por los recursos empleados y el tiempo que demoran en efectuarse las transferencias. Cuando el camino de datos soporta transferencias simultáneas se requerirán menos estados para realizar las acciones requeridas. 5.4.. Conexiones punto a punto. Esta estrategia requiere conexiones entre cada registro fuente y cada registro destino. Es decir si deseamos conectar punto a punto a tres registros, se requiere que las tres salidas estén conectadas con las tres entradas. En el desarrollo actual los registros suelen ser de 32 bits, y se dispone de un número elevado de ellos, sobre 32.

Capítulo 5. egistros. Camino de datos. Memorias. 9 M0 WE0 0 2 0 M 0 2 WE M2 0 2 WE2 2 Figura 5.. Conexiones punto a punto entre 3 registros. La transferencia = 2 se logra activando en un mismo ciclo a: WE y M = 2 En este caso la señal M está formada por dos líneas que llevan el control M[]= y M[0] =0, al multiplexor que alimenta la entrada del registro. La conexión también permite la transferencia simultánea: 0 = y 2 =. Se logra en el mismo ciclo de reloj, que activa las salidas: WE0 =, WE2 =, M0 =, M2 = Nótese que se está leyendo el registro y escribiendo en 0 y 2. Durante el ciclo de reloj, la salida de está estable y viaja a través del camino de datos, y se propaga a través de los circuitos combinacionales que forman los multiplexores 0 y 2, y llega a las entradas de los registros 0 y 2 antes del próximo canto de subida del reloj. En este mismo ciclo, los valores de 0 y 2 conservan los valores que tenían desde la última vez que fueron escritos. Los nuevos valores de 0 y 2 son capturados al terminar el ciclo, justo cuando vuelve a subir el reloj. Las transferencias 0 =, = 2 también pueden realizarse. Nóte que en ésta, se lee y se escribe en el mismo ciclo.

0 Sistemas Digitales Se activan: WE0, WE, M0 =, M = 2. En el ciclo que se activan estas salidas desde el controlador, el contenido de no cambia. Permitiendo así mantener el valor en la entrada de 0. Por otro lado, como 2 no cambia su valor, posibilita que éste llegue en forma estable a las entradas de, pasando por el multiplexor. Al llegar el próximo canto de subida del reloj, se captura el nuevo valor de y de 0. La operación de intercambio de dos registros puede también efectuarse en un mismo ciclo. Esto puede verse analizando el caso anterior, con: 0 =, = 0. La estructura permite =. La transferencia = 2, =0 en la cual se escribe dos cosas diferentes en el mismo registro, no puede efectuarse, ya que el multiplexor sólo acepta un valor. Excluyendo así estas operaciones ilegales. La versatilidad y rapidez con que se pueden realizar transferencias en el esquema anterior se debe a la gran cantidad de recursos destinados al camino de datos. 5.4.2. Bus simple. Se emplea bus para un grupo de cables que efectúa determinados recorridos, transportando los datos, y que son compartidos por varias fuentes de datos. La siguiente estructura emplea un bus de escritura que es compartido por las erntradas de los registros. Ahora se tiene un solo multiplexor. Si se considera el costo de un multiplexor de 3 vías de 32 bits cada una; más aún si se tienen 32 registros, ya que en este caso debería ser un mux de 32 vías de entrada con 32 bits cada una, podrá estimarse que esta configuración emplea menos recursos de hardware que la conexión punto a punto( es decir, mucho menos compuertas o productos). Al existir el bus, éste solo puede ser empleado para una transferencia por ciclo. Se estudiarán transferencias similares a las vistas antes, para poder comparar los aumentos de tiempo que derivan de ocupar menos espacio de silicio.

Capítulo 5. egistros. Camino de datos. Memorias. WE0 Bus 0 B 0 2 WE WE2 2 Figura 5.2. Bus simple. La transferencia = 2 se logra activando: WE =, B = 2. En un ciclo. La transferencia simultánea: 0 = y 2 =, se logra en un ciclo. Se activan WE0 =, WE2 = y B=, logrando al finalizar el ciclo la captura simultánea del valor de en 0 y 2. Esto es posible ya que el bus queda ocupado con la información que proviene de la salida de. Las transferencias 0 =, = 2 demandan dos ciclos, pero importa el orden en que se activen los controles. Ya que primero debe leerse y escribirse en 0; luego puede sobreescribirse con el contenido de 2. Lo cual se logra con los controles: WE0 =, B = en el primer ciclo; luego: WE =, B = 2 en el segundo ciclo de reloj. En general en esta estructura sólo puede efectuarse una escritura en un registro por ciclo de reloj. Debe compartirse el bus.

2 Sistemas Digitales La operación de intercambio de dos registros: 0 =, = 0, resulta más compleja en esta estructura. Su realización requiere de un registro temporal, en caso de arreglos de 32 registros suele haber un grupo dedicado a estas funciones; en el caso muy simplificado que se estudia se empleará el registro 2 como temporal. Entonces, en un primer ciclo: 2 = 0 salvando el contenido de 0. En el siguiente 0=, sobreescribe 0, cambiando su contenido original que ya está salvado en 2. Finalmente 0=2. En lugar del multiplexor puede emplearse registros que tengan habilitación de la salida en tercer estado, suele denominarse OE (output enable) a esta señal. Entonces un simple decodificador de 2 a tres vías, en este caso, permite alimentar a una y sólo una señal habilitadora de tercer estado. Ver por ejemplo el 74LS73. 5.4.3. Estructura multibus. Para implementar operaciones diádicas resulta útil disponer de salida dual del arreglo de registros. Es decir que cada registro puede alimentar dos buses diferentes, sean éstos los buses de salida A y B. Los buses A y B suelen alimentar una red combinacional que es capaz de realizar operaciones diádicas; es decir con dos operandos. Dicha red combinacional se denomina unidad aritmética. Además para escribir en el arreglo de registros puede disponerse de un bus de escritura, sea éste el bus C. Esta arquitectura limita la escritura a un solo registro por ciclo. Lo que esté alimentando al bus C, en el esquema la señal Weg, se escribe en un registro del arreglo. En un mismo ciclo pueden realizarse transferencias simultáneas a los buses de salida, y una escritura, por ejemplo: bus A = 0; bus B = 2; = Weg; Transferencias que pueden lograrse con los controles: A = 0 ; B = 2; WE =; Incluso puede escribirse en un registro que se esté leyendo. Esto es posible, ya que la señal WEi habilita el camino desde el bus C hasta la entrada del registro i, pero el contenido de éste no cambia hasta el próximo canto del reloj. Y en el mismo ciclo, puede estarse leyendo en forma estable la salida actual del registro i. Si el registro estuviera implementado con latchs transparentes, cuando se habilita el WEi, se dispone a la salida del registro i-ésimo el valor que se tenga en el bus C. es decir: i = Weg Si las señales WE se implementan con un decodificador, se asegura que sólo una de ellas estará activa. Esto en el caso que se desee escribir solamente en un registro. El esquema de buses múltiples se muestra a continuación:

Capítulo 5. egistros. Camino de datos. Memorias. 3 WE0 0 A Bus C 0 2 Bus A WE f(a,b) Weg B WE2 2 0 2 Bus B Figura 5.3. Camino de datos con tres buses.

4 Sistemas Digitales 5.5. Memoria AM Estática. Desde un punto de vista lógico una memoria tiene un bus unidireccional de direcciones, un bus bidireccional de datos y señales de control. En general se asume una comunicación asincrónica entre la memoria y los registros del sistema sincrónico; esto permite adaptarse a memorias con diferentes tiempos de acceso. Desde que se coloca la dirección en el bus de direcciones, transcurre un tiempo hasta que en la salida se tiene datos válidos en el bus de datos, esto en una operación de lectura; también transcurre un tiempo para que, lo que se ha colocado en el bus de datos, sea grabado en la dirección de memoria, esto en una operación de escritura. Ese tiempo se denomina de acceso. Las memorias estáticas asincrónicas no necesitan que se les suministre un reloj, y para su control disponen de tres señales que las manejan: Chip Enable (E ): Con esta señal en nivel bajo se habilita la memoria. Write Enable (W ): Cuando está baja (y la memoria está habilitada), los valores en el bus de datos son escritos en la localización seleccionada por el bus de direcciones. Output Enable (G ): Cuando está baja (y la memoria está habilitada), el bus de datos es alimentado con el valor de la localización de memoria seleccionada por el bus de direcciones. Cuando está alta, el bus de datos interno de salida queda en un estado de alta impedancia. ADD[n..0] E W G Memoria Estática D[m..0] Figura 5.4. Control asincrónico de memoria estática. Para una memoria de 8KB, se tiene que m es 7, y n es 2. Es decir 8 bits de datos y 3 de direcciones, ya que 8K equivale a 8x024=2 3. 5.5.. Ciclo de lectura. Los fabricantes establecen los requerimientos temporales de las señales de control. Indicando las secuencias que deben cumplir las formas de ondas de las señales de control, y una tabla con valores mínimos y máximos para los parámetros.

Capítulo 5. egistros. Camino de datos. Memorias. 5 Figura 5.5. Ciclo de lectura. Las formas de ondas para el ciclo de lectura son con W =. Parámetro Símbolo mín máx Tiempo de ciclo de lectura t AVAV 2 - Tiempo acceso dirección t AVQV - 2 Tiempo acceso luego de habilitación de chip t ELQV - 2 Tiempo acceso luego de habilitación de salida t GLQV - 6 Mantenimiento desde cambio de dirección t AXQX 4 - De chip enable bajo a salida activa t ELQX 4 - De chip enable alto a salida alta impedancia t EHQZ 0 6 De output enable bajo a salida activa t GLQX 0 - De output enable alto a salida alta impedancia t GHQZ 0 6 Tiempo de encendido t ELICCH 0 - Tiempo de apagado t EHICCL - 2 Figura 5.6. Parámetros de lectura. Los valores corresponden a una memoria con tiempo de acceso igual a 2 ns, que suele indicarse al final de las siglas que identifican la memoria. El ciclo de lectura comienza cuando E y G están bajas. Los datos son válidos luego del tiempo de acceso en lectura. Luego de que E o G suben, los datos se mantienen en la salida, hasta que ésta entra en flotación. El tiempo de ciclo es el tiempo mínimo que debe transcurrir entre dos requerimientos a la memoria. Esto implica que no se puede cambiar el bus de direcciones durante una operación.

6 Sistemas Digitales tc direcciones Chip enable E Output enable G datos ta tae tag tb tf validos Figura 5.7. equerimientos temporales lectura. Se actualiza el bus de direcciones. Luego de un tiempo se activan: chip enable y output enable. Luego del tiempo de acceso desde el cambio de dirección (ta), o del canto de bajada de chip enable (tae), o del tiempo de acceso desde la habilitación de la salida (tag), el tiempo que sea mayor, los datos quedan disponibles para ser capturados en el bus de datos. El tiempo de acceso al bus, luego de activar la salida se indica con tb. Luego de esto puede deshabilitarse la salida y la señal chip enable. Los datos se mantienen en la salida un breve lapso (tf). El bus de direcciones debe permanecer estable durante el tiempo de ciclo, antes de proceder a un nuevo acceso a la memoria (tc). 5.5.2. Ciclo de escritura. Las formas de ondas para el ciclo de escritura son con G =. Figura 5.8. Ciclo de escritura.

Capítulo 5. egistros. Camino de datos. Memorias. 7 Parámetro Símbolo mín máx Tiempo de ciclo de escritura t AVAV 2 - Tiempo de setup de la dirección t AVWL 0 - Dirección válida hasta el fin de la escritura t AVWH 0 - Ancho de pulso de escritura t WLWH 0 - Ancho de pulso de escritura hasta enable t WLEH 0 - Datos válidos hasta fin de escritura t DVWH 6 - Tiempo de mantenimiento de datos (hold) t WHDX 0 - De write bajo hasta alta impedancia t WLQZ 0 6 De write alto hasta salida activa t WHQX 4 - Tiempo de recuperación escritura t WHAX 0 - Figura 5.9. Parámetros de escritura. Los datos son capturados en la celda de memoria cuando W tiene un canto de subida, en ese momento los datos del bus deben estar estables. Además el bus de direcciones debe estar estable antes del canto de bajada de W (setup), y luego del canto de subida de W (hold). Los glitches en el bus de direcciones pueden producir cambios de estado no deseados en la memoria. tc direcciones Chip enable E Write enable W datos tas tah tw th ts validos Figura 5.20. equerimientos temporales escritura. Luego de establecida la nueva dirección, no puede activarse el canto de bajada de write enable hasta tas segundos después. El ancho del pulso de escritura debe tener un mínimo de tw. Los datos que serán escritos en la celda, no deben cambiar durante el tiempo de setup, ts segundos antes del canto de subida del pulso de escritura, y deben mantenerse th segundos después del canto de subida del pulso de escritura. También no puede cambiarse el bus de dirección, debiendo mantenerlo estable tah segundos luego del canto de subida del pulso de escritura. 5.5.3. Control de memoria ram estática. Se desea diseñar un controlador que permita conectar una memoria a un sistema sincrónico. Los controles read y write, sincronizados por cantos de bajada, desencadenan las secuencias de señales de control, que permiten leer y escribir en la memoria. La Figura 5.2, muestra el ambiente de diseño.

8 Sistemas Digitales add direcciones reset read write la controlador E W G Memoria Din ld cd dw doe datos Dout clk Figura 5.2. Entorno de diseño. La operación de lectura, puede describirse por la transferencia: Dout = M[add] La operación de escritura, puede escribirse: M[add] = Din Un diagrama de bloques simplificado se muestra en la Figura 5.22. read write add Din Memoria Controlador Dout clk clk Figura 5.22. Entorno de diseño.

Capítulo 5. egistros. Camino de datos. Memorias. 9 Las señales de lógica negativa: E, G, W y doe, se identifican con: Ep, Gp, Wp y doep. Las órdenes: reset, read y write se consideran pulsos de un ancho de pulso del reloj, y sincronizadas por cantos de bajada. Todas las salidas del controlador serán señales sincronizadas por cantos de subida, por lo cual las habilitaciones de escritura en los registros se efectúan con cantos de bajada del reloj. Se emplean: la por load address, ld por load data, cd por captura datos. Para cumplir con los requerimientos temporales de la memoria, basta que dos períodos del reloj sean mayores que el tiempo de acceso. Esto puede comprobarse, en el esquema de las señales de control de la Figura 5.23, ya que transcurren dos ciclos desde que se tiene una nueva dirección hasta que se graba en el registro de lectura. clk read la Ep a Gp Cd E0 E4 E5 E6 E0 Figura 5.23. Secuencia de lectura. La Figura 5.24, desarrolla las secuencias de escritura en tres ciclos del reloj. clk write ld la Ep a Wp doep E0 E E2 E3 E0 Figura 5.24. Secuencia de escritura. La Figura 5.25 ilustra el diagrama de estados del controlador. Sólo se muestran las señales la y cd asociadas a los estados del diagrama de Moore; el resto de los valores se ilustran en las Figuras 5.23 y 5.24.

20 Sistemas Digitales reset read=0 write=0 E4 la= read= E0 write= E5 E6 cd= E la= E2 E3 Figura 5.25. Diagrama de estados del controlador. Mediante las especificaciones de las Figuras 5.23, 5.24 y 5.25, resulta sencillo especificar el diseño en Verilog. module MSE(clk, reset, read, write, Din, Dout, add, direcciones, Ep, Wp, Gp, doep, la, ld, cd, datos); input clk, reset, read, write; input [7:0] Din; output [7:0] Dout; input [2:0] add; output [2:0] direcciones; output Ep, Gp, Wp, doep, la, ld, cd; inout [7:0] datos; reg [7:0] Dout; reg [7:0] dw; reg [2:0] direcciones; reg [2:0] estado, next; reg Ep, Gp, Wp, doep, la, ld, cd; wire [7:0] datos; assign datos = doep? 8'hz : dw; //doep= alta impedancia. // Asignación de estados parameter IDLE = 0; parameter write = ; parameter write2 = 2; parameter write3 = 3; parameter read = 4; parameter read2 = 5; parameter read3 = 6;

Capítulo 5. egistros. Camino de datos. Memorias. 2 always @ (posedge clk) begin if (reset) estado <= IDLE; else estado <= next; end always @ (negedge clk) begin if (la) direcciones <= add; if (cd) Dout <= datos; if (ld) dw <= Din; end // Bloque combinacional. Genera próximo estado y las señales de control. always @ (estado or read or write) begin case (estado) IDLE: begin Ep= ; Wp= ; Gp= ; doep=; la= 0; ld= 0; cd= 0; if (write) next = write; else if (read) next = read; else next = IDLE; end write: begin Ep= ; Wp= ; Gp= ; doep=0; la= ; ld= ; cd= 0; next = write2; end write2: begin Ep= 0; Wp= 0; Gp= ; doep=0; la= 0; ld= 0; cd= 0; next = write3; end write3: begin Ep= ; Wp= ; Gp= ; doep=0; la= 0; ld= 0; cd= 0; next = IDLE; end read: begin Ep= ; Wp= ; Gp= ; doep=; la= ; ld= 0; cd= 0; next = read2; end read2: begin Ep= 0; Wp= ; Gp= 0; doep=; la= 0; ld= 0; cd= 0;

22 Sistemas Digitales next = read3; end read3: begin Ep= 0; Wp= ; Gp= 0; doep=; la= 0; ld= 0; cd= ; next = IDLE; end default: begin Ep= ; Wp= ; Gp= ; doep=; la= 0; ld= 0; cd= 0; next = IDLE; end endcase end //always endmodule El siguiente módulo efectúa una simulación del controlador. `timescale ns / ps module test_v; // Inputs reg clk; reg reset; reg read; reg write; reg [7:0] Din; reg [2:0] add; // Outputs wire [7:0] Dout; wire [2:0] direcciones; wire Ep; wire Wp; wire Gp; wire doep; wire la; wire ld; wire cd; // Bidirs wire [7:0] datos; // Instantiate the Unit Under Test (UUT) MSE uut (.clk(clk),.reset(reset),.read(read),

Capítulo 5. egistros. Camino de datos. Memorias. 23 );.write(write),.din(din),.dout(dout),.add(add),.direcciones(direcciones),.ep(ep),.wp(wp),.gp(gp),.doep(doep),.la(la),.ld(ld),.cd(cd),.datos(datos) initial begin // Initialize Inputs clk = 0; reset = 0; read = 0; write = 0; Din = 0; add = 0; // Wait 00 ns for global reset to finish #00; // Add stimulus here reset=; clk=0; #00; clk=; #00; reset=0; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; add=3'b000000000000; read=; clk=0; #00; clk=; #00; read=0; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; end endmodule add=3'b0000000000; Din=8'b0000; write=; clk=0; #00; clk=; #00; write=0; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00; clk=0; #00; clk=; #00;

24 Sistemas Digitales Figura 5.26. Formas de ondas generadas por la simulación. 5.3.4. Memorias flash o EEPOM. El procedimiento de lectura de memorias flash o EEPOM es el mismo que para las memorias estáticas SAM. Estas memorias disponen de un circuito interno que genera el voltaje de programación de tipo 2 V, y además tienen una máquina secuencial de estados internas que permite escribirlas. Las señales de escritura deben cumplir los requerimientos temporales de la máquina de estados, y usan las mismas señales de control. 5.3.5. Memorias sincrónicas. En la actualidad se dispone de memorias estáticas sincrónicas que logran velocidades de acceso mayores.

Capítulo 5. egistros. Camino de datos. Memorias. 25 Índice general. CAPÍTULO 5... EGISTOS. BUSES. MEMOIAS.... 5.. EGISTOS.... 5.2. EGISTO CON HABILITACIÓN DE ESCITUA.... 5.3 FUNCIONAMIENTO SINCÓNICO. TANSFEENCIAS ENTE EGISTOS.... 4 5.3.. equerimientos de tiempo.... 5 5.3.2. Operaciones posibles.... 7 5.3.3. Operaciones combinacionales alternativas.... 7 5.4. CAMINO DE DATOS.... 8 5.4.. Conexiones punto a punto.... 8 5.4.2. Bus simple.... 0 5.4.3. Estructura multibus.... 2 5.5. MEMOIA AM ESTÁTICA.... 4 5.5.. Ciclo de lectura.... 4 5.5.2. Ciclo de escritura.... 6 5.5.3. Control de memoria ram estática.... 7 5.3.4. Memorias flash o EEPOM.... 24 5.3.5. Memorias sincrónicas.... 24 ÍNDICE GENEAL.... 25 ÍNDICE DE FIGUAS... 26

26 Sistemas Digitales Índice de figuras Figura 5.. egistro de cuatro bits.... Figura 5.2. egistro con habilitación de escritura.... 2 Figura 5.3. Estados que generan la señal de control WE.... 3 Figura 5.4. Control del registro con WE.... 3 Figura 5.5. epresentación simbólica de registro con habilitación de escritura.... 4 Figura 5.6. Transferencia entre registros.... 4 Figura 5.7. Corrimientos del reloj (skew).... 5 Figura 5.8. equerimientos de setup del registro 2.... 6 Figura 5.9. equerimientos de hold para el registro 2.... 6 Figura 5.0. Funciones combinacionales alternativas.... 7 Figura 5.. Conexiones punto a punto entre 3 registros.... 9 Figura 5.2. Bus simple.... Figura 5.3. Camino de datos con tres buses.... 3 Figura 5.4. Control asincrónico de memoria estática.... 4 Figura 5.5. Ciclo de lectura.... 5 Figura 5.6. Parámetros de lectura.... 5 Figura 5.7. equerimientos temporales lectura.... 6 Figura 5.8. Ciclo de escritura... 6 Figura 5.9. Parámetros de escritura.... 7 Figura 5.20. equerimientos temporales escritura.... 7 Figura 5.2. Entorno de diseño.... 8 Figura 5.22. Entorno de diseño.... 8 Figura 5.23. Secuencia de lectura.... 9 Figura 5.24. Secuencia de escritura.... 9 Figura 5.25. Diagrama de estados del controlador.... 20 Figura 5.26. Formas de ondas generadas por la simulación.... 24