Diseño de interfaz FPGA SDRAM (1)

Tabla de contenido

1. Introducción básica y plataforma experimental de SDRAM:

1. Introducción a SDRAM:

2. Historia de la SDRAM:

3. Introducción de SDRAM experimental:

2. Descripción de la función SDRAM — W9812G6KH-6:

1. Descripción general:

2. Proceso de trabajo general:

Introducción a la función de pin:


1. Introducción básica y plataforma experimental de SDRAM:

1. Introducción a SDRAM:

La memoria dinámica sincrónica de acceso aleatorio ( memoria dinámica sincrónica de acceso aleatorio, conocida como SDRAM) es una memoria dinámica de acceso aleatorio (DRAM) que tiene una interfaz sincrónica que se puede implementar para almacenar y leer datos. La atención principal aquí es la sincronización , dinámica y aleatoria .

Sincronización : SDRAM tiene una interfaz de sincronización, esperará una señal de reloj antes de responder a la entrada de control, para que pueda sincronizarse con el bus del sistema de la computadora. Esta palabra se encuentra a menudo en FPGA, que refleja los requisitos de tiempo que SDRAM debe cumplir, es decir, los datos y los comandos se sincronizan en el reloj.

Dinámico : la estructura de almacenamiento en RAM se perderá cuando se encienda la alimentación y también se perderá cuando se encienda. Debido a que los datos almacenados en SDRAM son datos binarios, si no es 0, entonces 1. El circuito utilizado para almacenar los datos binarios está compuesto por condensadores, dado que los condensadores son dispositivos que se descargan lentamente con el tiempo, es necesario refrescar constantemente el circuito de almacenamiento interno para lograr la función de almacenar datos. En comparación con la SRAM que puede almacenar datos sin un circuito de actualización, hay una operación de actualización más en SDRAM, pero puede ahorrar mucho costo. Por lo tanto, la selección del dispositivo debe considerar muchos aspectos como la función y el costo.

Aleatorio : se puede ver por el significado literal de que SDRAM puede realizar operaciones de acceso a datos en la dirección interna de manera aleatoria.

2. Historia de la SDRAM:

La SDRAM ha pasado por cinco generaciones desde su desarrollo, que son: SDR SDRAM de primera generación, SDRAM DDR de segunda generación, SDRAM DDR2 de tercera generación, SDRAM DDR3 de cuarta generación y SDRAM DDR4 de quinta generación.

La primera generación de SDRAM usa una señal de reloj de un solo extremo (Single-Ended), y la segunda, tercera y cuarta generaciones usan una señal de reloj diferencial que puede reducir la interferencia como reloj de sincronización debido a la frecuencia de operación más rápida.

La frecuencia de reloj de SDR SDRAM es la frecuencia de almacenamiento de datos. La memoria de primera generación recibe el nombre de la frecuencia de reloj. Por ejemplo, pc100 y pc133 indican que la señal de reloj es 100 o 133 MHz, y la velocidad de lectura y escritura de datos también es 100 o 133 MHz.

Después de la segunda, tercera y cuarta generación de memoria DDR (velocidad de datos doble), la velocidad de lectura y escritura de datos se utiliza como estándar de denominación, y el símbolo que representa su álgebra DDR se agrega al frente, es decir, PC, DDR, PC2 = DDR2, PC3 = DDR3 . Por ejemplo, PC2700 es DDR333, su frecuencia de operación es 333/2 = 166MHz y 2700 significa que el ancho de banda es 2.7G.

La frecuencia de lectura y escritura de DDR varía de DDR200 a DDR400, DDR2 varía de DDR2-400 a DDR2-800 y DDR3 varía de DDR3-800 a DDR3-1600.

Muchas personas malinterpretan a SDRAM como la primera generación, que es SDR SDRAM, y es engañoso como sustantivo.

SDR no es igual a SDRAM.

3. Introducción de SDRAM experimental:

1. Arquitectura de memoria

Este experimento utiliza el chip SDRAM W9812G6KH-6 de Winbond Company y la placa de desarrollo AC620FPGA de Xiaomei Ge. Antes de escribir la interfaz SDRAM, primero debemos comprender la arquitectura del sistema y la descripción general de esta SDRAM. El manual de datos de este tipo de memoria se puede descargar de Internet:

                                                             Figura 1: Arquitectura de memoria IS42S16400F

La memoria IS42S16400F incluye principalmente decodificador de instrucciones, línea de dirección, línea de datos, bloque de memoria, registro de modo y control de circuito dinámico.

(1) decodificador de instrucciones

El decodificador de instrucciones incluye señal de reloj (clk), habilitación de reloj (cke) y señal de instrucción de control (cs / ras / cas / we), y la señal de instrucción de control realiza una serie de acciones de control en la memoria después de la decodificación.

(2) Línea de dirección

Las líneas de dirección incluyen líneas de dirección de fila y columna de 16 bits y líneas de dirección de bloque de 2. Las líneas de dirección de fila y columna son A0-A11, que son buses multiplexados, y las direcciones de fila y columna están multiplexadas por división de tiempo. Las líneas de dirección de bloque ba0 y ba1 seleccionan el bloque de ram de la memoria.

(3) Cable de datos

La línea de datos es un bus de datos dq de 16 bits, que es una señal de tres estados y es una interfaz de datos para la escritura y lectura de datos.

(4) Bloque de almacenamiento

IS42S16400F tiene cuatro bloques de almacenamiento y cada bloque puede almacenar datos. Los bloques de almacenamiento se pueden seleccionar a través de ba0 y ba1.

(5) Registro de modo

El registro de modo sirve para configurar el modo de trabajo de la SDRAM, el modo de lectura y escritura, la duración de la ráfaga, etc.

(6) Control de circuito dinámico

Estos módulos incluyen principalmente la codificación de direcciones de filas y columnas, temporización de actualización automática y operación de actualización automática.

2. Funciones básicas

(1) Frecuencia de reloj: 200, 166, 143MHz)
(2) Sincronización completa, salida de datos en el flanco ascendente del reloj
(3) Fuente de alimentación de 3.3V
(4) Duración de conflicto programable (1,2,4,8, página completa)
(5) Cada Actualizar 4096 veces en 64ms
(6) Retardo de cas programable (2,3 ciclos de reloj) (hablaré de ello más adelante)
(7) Lectura y escritura en ráfaga o lectura y escritura única
(8) Byte es controlado por LDQM y UDQM
(9) Capacidad de almacenamiento 1Mbit * 16bit * 4Bank = 64Mbit
profundidad de almacenamiento: IS42S16400F tiene 4 bloques, dirección de fila de 12 bits, dirección de columna de 8 bits. Entonces, cada bloque tiene 2 ^ 12 * 2 ^ 8 = 4096 * 256 = 1,048,576
Ancho de almacenamiento:
capacidad de almacenamiento de 16 bits por unidad de almacenamiento : 4 * 1,048,576 * 16 = 64 Mbit

2. Descripción de la función SDRAM — W9812G6KH-6:

1. Descripción general:

La SDRAM de 64Mb es un CMOS de alta velocidad, diseñado dinámicamente para una memoria de acceso aleatorio de 3.3V, que puede almacenar 67,108,864 bits de datos. Cada área de almacenamiento de 16.777.216 bits está organizada en 4.096 filas x 256 columnas de unidades de almacenamiento, y cada unidad almacena datos de 16 bits.

La SDRAM de 64Mb incluye un modo de actualización automática, modos de ahorro de energía y apagado. Todas las señales se registran en el flanco ascendente de la señal de reloj CLK.

Todas las entradas y salidas son compatibles con LVTTL.

La SDRAM de 64 Mb tiene la capacidad de sincronizar conflictos e inicia la precarga de línea temporizada al final de la ráfaga.

Cuando visite uno de los bancos, la precarga de un banco y los otros tres ocultará el ciclo de precarga y proporcionará operaciones de acceso aleatorio, de alta velocidad y sin problemas.

El acceso de lectura y escritura de SDRAM está orientado a ráfagas, acceso de lectura y escritura a la ubicación seleccionada y continúa accediendo a la ubicación seleccionada. Antes del acceso de lectura y escritura, se requiere un comando de activación, seguido de un comando READ o WRITE, y la precarga se inicia después del final. La longitud de ráfaga programable READ o WRITE incluye 1, 2, 4 y 8 posiciones o páginas completas, con opciones de terminación de ráfaga.

2. Proceso de trabajo general:

Primero inicialice la SDRAM al encender. El proceso de inicialización incluye:
(1) Encienda y espere a que el reloj se estabilice, DQM es alto y CKE es alto.
(2) Retardo de 200 μs, durante el cual no se permiten otros comandos excepto el comando Sin operación. Hay al menos un comando de no operación durante este período.
(3) Dar el comando PRECARGA después de 200us. Precargue todos los bancos para que todos los bancos estén inactivos.
(4) Dos operaciones de refresco automático.
(5) Registro del modo de configuración.

Después de la inicialización, la SDRAM se encuentra en estado inactivo y se pueden realizar otras operaciones en la SDRAM, como operaciones de lectura, operaciones de escritura y operaciones de actualización automática. La operación de actualización automática está escrita en el artículo anterior, actualizando 4096 veces cada 64 ms, es decir, actualizando 4096 filas de celdas de memoria cada 64 ms para evitar la pérdida de datos. Debe haber un comando activo (ACTIVE) antes de las operaciones de lectura y escritura para activar el banco determinado y la fila determinada, y luego realizar las operaciones de lectura y escritura. Se requiere el comando de precarga después de leer y escribir.

Introducción a la función de pin:

El siguiente es el diagrama de pines del chip IS42S16400F y la tabla de descripción de pines:

  

A0-A11 (Entrada): Entrada de dirección. Muestras A0-A11 durante el comando ACTIVE (direcciones de fila A0-A11) y comandos READ / WRITE (A0-A7, donde A10 define la precarga automática) para seleccionar una ubicación de la matriz de memoria del banco correspondiente. Durante el comando PRECARGA, A10 se muestrea para determinar si precargar todos los bancos de memoria (A10 es alto) o los bancos de memoria seleccionados por BA0 y BA1 son (BAJO). La entrada de dirección también proporciona un código de operación durante el comando LOAD MODE REGISTER.

DQ0-DQ15 (Inout): pines de E / S. Las E / S a través de estos pines se pueden controlar en bytes utilizando los pines LDQM y UDQM.

BA0, BA1 (Entrada): Dirección de selección de banco. BA0 y BA1 definen el banco al que se aplica el comando ACTIVE, READ, WRITE o PRECHARGE.

CLK (Entrada): CLK es la entrada de reloj principal del dispositivo. Con la excepción de CKE, todas las entradas del dispositivo están sincronizadas con el flanco ascendente de este pin.

CKE (Entrada): la entrada CKE determina si se habilita la entrada CLK. El próximo flanco ascendente de la señal CLK es válido cuando CKE es alto e inválido cuando es bajo. Cuando CKE es BAJO, el dispositivo estará en modo de apagado, modo de suspensión de reloj o modo de auto-actualización. CKE es una entrada asincrónica.

CS (Entrada): La entrada CS determina si la entrada de comando está habilitada en el dispositivo. La entrada de comando está habilitada cuando CS es BAJA y la entrada de comando está inhabilitada cuando CS es ALTA. Cuando CS es alto, el dispositivo mantiene el estado anterior.

CAS (Entrada): CAS junto con RAS y WE constituyen un comando de dispositivo. Para obtener información detallada sobre los comandos del dispositivo, consulte la "Tabla de verdad de los comandos" (se proporcionará a continuación).

RAS (entrada): RAS, CAS y WE juntos constituyen un comando de dispositivo. Para obtener información detallada sobre los comandos del dispositivo, consulte la "Tabla de verdad de los comandos" (se proporcionará a continuación).

WE (Entrada): WE, junto con RAS y CAS, formamos un comando de dispositivo. Para obtener información detallada sobre los comandos del dispositivo, consulte la "Tabla de verdad de los comandos" (se proporcionará a continuación).

LDQM, UDQM (entrada): LDQM y UDQM controlan el byte bajo y el byte alto del búfer de E / S. En el modo de lectura, LDQM y UDQM controlan el búfer de salida. Cuando LDQM o UDQM es LOW, el byte de búfer correspondiente está habilitado y cuando HIGH, está inhabilitado. Cuando LDQM / UDQM es alto, la salida entra en un estado de alta impedancia. Esta función corresponde a OE en DRAM convencional. En el modo de escritura, LDQM y UDQM controlan el búfer de entrada. Cuando LDQM o UDQM es LOW, el byte de búfer correspondiente está habilitado y los datos se pueden escribir en el dispositivo. Cuando LDQM o UDQM es alto, los datos de entrada están protegidos y no se pueden escribir en el dispositivo.

VDDQ (pow): fuente de alimentación de búfer de salida.

GNDQ (pow): Tierra de búfer de salida.

VDD (pow): la fuente de alimentación interna del dispositivo.

GND (pow): la tierra interna del dispositivo.

La siguiente tabla es la tabla de verdad de comandos y operaciones DQM:

Los principales comandos de SDRAM controlados por CS / RAS / CAD / WE son: PRECARGA, ACTIVO, AUTO_REFRESH, LEER, ESCRIBIR, Sin operación, Conjunto de registro de modo.

Supongo que te gusta

Origin blog.csdn.net/qq_33231534/article/details/105174235
Recomendado
Clasificación