Inicio Instrumentación Caracterización de la memoria DDR mediante un osciloscopio de señales mixtas

Caracterización de la memoria DDR mediante un osciloscopio de señales mixtas

Introducción

 

Un osciloscopio en tiempo real siempre ha sido una potente herramienta para los diseñadores de memoria de alta velocidad que realizan pruebas de homologación paramétrica o eléctrica, depuración y caracterización de DDR. Con los canales limitados de un osciloscopio en tiempo real, puede resultar difícil disparar en un protocolo DDR y descodificar para separar los datos de lectura y escritura del bus de datos bidireccional. Con 16 canales digitales de alta velocidad adicionales, un osciloscopio de señales mixtas (MSO) permite al diseñador sondear, descodificar y disparar en el bus de comandos DDR para identificar con precisión los ciclos de lectura y escritura. En este artículo se describe cómo puede utilizarse un MSO para la separación de los datos de escritura y lectura para realizar las pruebas, depuración y caracterización completas de los diseños de DDR.

 

¿Por qué utilizar un MSO?

 

Comportamiento de los ciclos de lectura/escritura de DDR

Comencemos analizando el comportamiento de las señales de lectura y escritura de DDR en un número limitado de canales analógicos. Hay maneras de identificar los datos de lectura y escritura en el bus bidireccional analizando el estrobo de datos (DQS) y los datos (DQ).

En la Figura 1 se muestran los datos de lectura y escritura de una DDR3. Como puede observar, los patrones de lectura y escritura preambulares de una DDR3 son claramente distintos. El preámbulo de lectura va del estado Hi-Z (alta impedancia) hacia abajo antes del primer flanco creciente del DQS para señalizar el primer bit de datos de lectura. El preámbulo de escritura va de Hi-Z (alta impedancia) hacia arriba,  para luego bajar antes del primer flanco creciente del DQS para señalizar el primer bit de datos de escritura. Y, por último, la señal DQ de la DDR3 suele estar en estado Hi-Z antes de su transición a datos válidos.

 En la Figura 2 se muestra el comportamiento del estrobo y los datos de la DDR4. Los patrones preambulares de lectura y escritura de la DDR4 son muy similares entre sí. La DDR4 utiliza controladores de drenaje pseudoabiertos en lugar de controladores “push-pull”  como la DDR3 para reducir el consumo de corriente. Aquí la señal DQ muestra un estado alto en lugar del estado Hi-Z de la DDR3 entre ráfagas de datos. Este nivel es ajustable o se puede desactivar y la señal DQ puede tener un aspecto distinto al del ajuste nominal observado aquí.

 

Métodos de separación de lectura/escritura de DDR

Al probar y validar diseños de DDR, uno de los mayores retos a los que debe hacer frente el diseñador es la separación de los datos de lectura y escritura en las líneas bidireccionales. La Figura 3 es una señal DDR2 que, al igual que la DDR4, tiene un preámbulo similar tanto para lectura como para escritura. Con un disparo de flanco sencillo en DQS, los datos de lectura y escritura se solapan. Para realizar medidas eléctricas y de tiempo válidas, los datos de lectura y escritura deben estar separados. Hay varias maneras de separar los ciclos de lectura y escritura.

La más sencilla es utilizando un disparo de identificación de software. Dibujando una zona en un patrón de ráfaga diferenciado de lectura o escritura,  podemos separar los datos de lectura y escritura. En la Figura 3 se muestran los datos de escritura separados. Lo sabemos porque los datos de escritura generalmente están alineados en el centro, mientras que los datos de lectura generalmente están alineados en el flanco.

Otro método para realizar la medida de los datos de lectura o escritura es el software de aplicación de homologación automatizado. Basándose en la relación de DQS y DQ, el software efectuaría automáticamente un análisis informado de la medida de entrada y salida. El método o algoritmo utilizado habitualmente para hacerlo es a través de la alineación de fases de DQS y DQ. El software también podría utilizar el patrón preambular para distinguir los datos de lectura y escritura.

En la DDR3, los patrones preambulares de lectura y escritura son diferentes, por lo que tiene sentido utilizar el patrón preambular para separar los datos de lectura y escritura. Pero para DDR2 y DDR4, que tienen los mismos patrones preambulares y a menudo un comportamiento diferente al de un sistema DDR3, podría provocar que el software identificara erróneamente un ciclo de lectura o escritura si la diferencia de las fases no fuera obvia. En la Figura 4 se muestra un ejemplo de un ciclo de lectura en que algunos datos no están exactamente alineados en el flanco y podrían identificarse erróneamente como un ciclo de escritura.

 

Protocolo de lectura/escritura de DDR

Si bien estos dos métodos de separación de lectura y escritura utilizando únicamente DQS y DQ son maneras de separación válidas y útiles, se prestan a errores en la separación y, en última instancia, a medidas incorrectas. La forma más clara de separar los datos de lectura y escritura sería la descodificación con comandos utilizando la tabla de verdad de comandos DDR disponible en la especificación JEDEC. Antes de que existieran los MSO, este método solo podía lograrse utilizando un analizador lógico o un analizador de protocolos. Este método requiere acceso a por lo menos 5 patillas de comandos, que incluyen CLK, CS, RAS, CAS y WE. Con un MSO, hay 16 canales digitales, además de los 4 canales analógicos estándar. Un MSO puede descodificar los comandos de lectura/escritura y disparar en el comando para ver el comportamiento analógico de las señales DQS y DQ correspondientes a través de los canales analógicos.

Para las tecnologías LPDDR, también hay una tabla de verdad de comandos similar que se puede utilizar para descodificar comandos. Pero en lugar de RAS, CAS y WE, conectaría a CA0, CA1 y CA2. En tecnología LPDDR, la señal de comando y dirección comparten la misma patilla.

 

¿Uso de un MSO para disparar y realizar medidas?

 

Disparo y búsqueda de protocolos

Hay 3 pasos básicos que debería realizar para configurar correctamente el MSO para la descodificación de DDR. En primer lugar, asignar los canales al bus correcto. En segundo lugar, definir los umbrales de tensión, normalmente VREF de la señal. 

Por último, definir señales opcionales para la descodificación adicional. En ocasiones, las señales DDR tienen niveles de VREF diferentes entre los buses de comandos. 

A medida que aumenta la velocidad, esta característica se hace muy habitual. Puede que necesite sondear la señal en un canal analógico para ver cuál es la oscilación de tensión real hasta encontrar el punto de referencia de tensión óptimo. Y puede que haya varios en función de las longitudes del trazo o el sondeo utilizado y otros factores de integridad de la señal.

Los MSO que hay actualmente en el mercado incorporan disparo y descodificación estándar para tecnologías DDR (DDR2/3/4, LPDDR2 y LPDDR3). 

El menú de descodificación de protocolos le permite asignar canales a todos los buses que forman una descodificación de comandos DDR. Hay algunos buses que son obligatorios para una descodificación de comandos; por ejemplo, RAS, CAS, WE y CS. 

Si tiene acceso a señales adicionales, tendrá más opciones de comandos. Por ejemplo, el acceso a CKE le permitiría descodificar los comandos de entrada de apagado y salida de apagado. 

Tenga en cuenta que la capacidad reside en el hardware del MSO y que no hay necesidad de configurar los archivos de símbolo para relacionar los canales con un protocolo de comandos. También hay la opción de descodificar más buses como la dirección.

Finalmente, lo siguiente que querrá hacer con su MSO es disparar en el comando. Tiene la opción de disparar en un solo comando o puede efectuar un disparo de DQS asociado con un comando de lectura/escritura. Esta función de disparo es lo que hace que el MSO sea tan potente para la depuración de DDR.

Lo siguiente a la configuración es el disparo en el DQS asociado a un comando de lectura o escritura. Por ejemplo, si quisiéramos disparar en la primera ráfaga de lectura válida, utilizaríamos esta función de disparo junto con una entrada de cuál es la latencia de lectura. 

La latencia es el número de ciclos de reloj desde el primer comando válido hasta la primera ráfaga válida después del preámbulo. 

A continuación podemos alinear el primer bit de DQS de lectura y hacer que quede libre de jitter para realizar medidas de tiempo o diagrama de ojo.

Medida de diagrama de ojo en DQS/DQ

Ahora que sabemos que disparamos uniformemente en los datos de escritura, vamos a realizar más análisis y a efectuar una medida de ojo en tiempo real. Utilizando la función matemática de sincronismo horizontal, podemos especificar una porción específica de una ráfaga que tengamos interés en medir.Ahora podemos configurar la medida del ojo utilizando el asistente de diagrama de ojo: el reloj es la función 1, el canal con puerta 1 de DQS y los datos serían ahora la función 2, que es la función sincronizada del canal 2, DQ. Ahora se pueden realizar las medidas de altura del ojo, anchura del ojo y máscara.En la Figura 11 se muestra la medida de una máscara de ojo y el despliegue del ojo en un fallo de análisis de la señal. Para hacerlo, configure el diagrama de ojo para que se detenga en caso de fallo. Una vez que se detenga, seleccione el despliegue del ojo. Podemos ver claramente dónde se encuentra el fallo y analizar y dirigir algunas medidas eléctricas y de tiempo específicas en esa forma de onda para determinar la causa raíz.

 

Resumen

 

Con el aumento de las tasas de transferencia de datos, es más importante que nunca analizar y medir con precisión los tiempos de lectura y escritura de datos. Un MSO es una potente herramienta para ayudar a disparar y detectar las señales que se quieren medir y analizar. Estas medidas se pueden realizar de una manera precisa y eficiente.