Generación de Formas de Onda de Doble Velocidad de Datos con Generadores/Analizadores de Formas de Onda Digitales de NI

Actualizado el Nov 16, 2023

Ambiente

Hardware

  • Digital Waveform Device

Esta nota de aplicación describe cómo generar formas de onda de velocidad de datos doble con los productos digitales de alta velocidad NI 6541, 6542, 6544, 6545, 6551 y 6552. Para conocer la capacidad nativa de DDR, consulte la familia NI 656x de productos digitales LVDS de alta velocidad (consulte la sección Enlaces relacionados en la parte inferior de la página), o consulte los dispositivos NI 6547 y 6548.

Introducción a DDR

A medida que las velocidades de reloj y las tasas de datos continúan aumentando, los diseñadores de circuitos integrados digitales están creando nuevas formas de maximizar la tasa de datos que se envían dentro y fuera de los dispositivos digitales. Uno de estos métodos se conoce como velocidad de datos doble (DDR). Con los dispositivos de velocidad de datos única (SDR), los datos se bloquean en los bordes ascendente o descendente del reloj de muestra. Un dispositivo DDR bloquea los datos en los flancos ascendente y descendente del reloj de muestra, duplicando efectivamente la velocidad de transferencia de datos sin aumentar la velocidad del reloj. Esta nota de aplicación describe cómo puede generar señales DDR con dispositivos generadores / analizadores de formas de onda digitales de NI, incluso si son dispositivos SDR.

Generando DDR a bajas velocidades

Los dispositivos digitales de alta velocidad de NI, como NI 6551, NI 6552, NI 6541, NI 6542, NI 6544 y NI 6545, pueden generar fácilmente datos DDR siempre que la frecuencia de reloj de muestra deseada no sea más de la mitad del máximo de la frecuencia de muestreo del dispositivo NI. Por ejemplo, si su frecuencia de reloj de muestra es 50 MHz, puede generar 31 canales de datos DDR con un NI 6542. Para crear el reloj DDR de 50 MHz, el NI 6542 usa un reloj de muestra de 100 MHz para generar una señal de reloj de 50 MHz en una de sus líneas de datos.

La Figura 1 muestra cómo los datos DDR pueden alternar en cualquier borde del reloj DDR, pero solo en el borde ascendente del reloj de muestra del dispositivo, que se muestra en negro.

Figura 1. Generación DDR con un segundo reloj


Generando DDR a altas velocidades

La flexibilidad de tiempo de los analizadores / generadores de formas de onda digitales de NI le permite generar datos DDR a velocidades más altas usando un circuito simple en el bloque conector para combinar dos canales de salida digital en un solo canal DDR. Los dispositivos NI 6541, 6542, 6544, 6545, 6551 y 6552 permiten que cada canal cambie en el borde ascendente o descendente del reloj de muestra. Para combinar los dos canales de salida digital, complete los siguientes pasos:

  1. Configure un canal para alternar en el flanco ascendente del reloj de muestra.
  2. Configure el canal adyacente para alternar en el flanco descendente del reloj de muestra.
  3. Envíe estos dos canales a las entradas de una puerta XOR.

La señal resultante de la salida de la puerta XOR puede alternar en ambos bordes del reloj de muestra.

En la Figura 2, el canal 0 está configurado para alternar en el borde ascendente del reloj de muestra y el canal 1 está configurado para alternar en el borde descendente. Cada vez que cualquiera de los dos canales cambia, la salida de la puerta XOR también cambia, creando una señal DDR.

Figura 2. Creando DDR con XOR Logic

Una puerta XOR es perfecta para esta aplicación porque esta sencilla puerta lógica permite que ambas entradas cambien la salida en cualquier momento, independientemente del estado de la otra entrada. Una puerta AND, por ejemplo, no funcionaría en esta situación porque cualquiera de los canales puede "secuestrar" la salida de la puerta; si el canal 0 estuviera bajo durante varios ciclos de reloj, evitaría que el canal 1 cambiara la salida.

Dado que sus datos deben dividirse en dos canales, es necesario algún procesamiento de datos para convertir los datos DDR deseados en dos canales SDR antes de la generación. El procesamiento de datos es simple de entender conceptualmente. Los pasos son los siguientes:

  1. Asigne dos canales para que sean los canales de "flanco ascendente" y "flanco descendente".
  2. Mirando el diagrama de tiempo de la Figura 2, elija la primera muestra para las dos entradas de la puerta XOR, según el estado inicial de la salida DDR. Dado que la salida DDR comienza en un nivel lógico bajo en la figura, este ejemplo utiliza un nivel lógico bajo como estados iniciales para ambos canales.

La Figura 3 muestra las primeras muestras de los canales 0 y 1.

Figura 3. Configuración de las primeras muestras para los canales


3. Después del estado inicial, busque el próximo borde de la salida DDR y observe el borde del reloj en el que ocurrió el borde de salida DDR. Si el borde de salida DDR ocurre en el borde ascendente del reloj de muestra, entonces el canal de "borde ascendente" debería alternar en ese momento. Si el borde se produce en el borde descendente del reloj, el canal del "borde descendente" debería alternar.


La Figura 4 muestra este procedimiento para los dos primeros bordes de la señal DDR deseada.

Figura 4. Creación de bordes para ser utilizados por la puerta XOR


4. Repita este proceso mientras dure la forma de onda.


El resultado de este procesamiento de datos debe producir dos canales que creen la salida DDR deseada cuando se utilizan como entradas a una puerta XOR.

Si bien el concepto detrás del procesamiento es sencillo, su implementación es un poco más complicada y está fuera del alcance de este documento. Se adjunta a este documento un ejemplo de VI de LabVIEW que procesará una forma de onda, dividiendo cada canal en los canales de dos componentes que se usarán como entradas a la puerta XOR. Se incluye una descripción de la operación del VI en la documentación del VI, a la que puede acceder seleccionando File>> VI Properties >>Documentation en el menú de LabVIEW.

Descripción y esquema del circuito

La Figura 5 muestra un esquema del circuito simple que debe construir en el bloque conector para un solo canal DDR. Dado que los dispositivos NI 6541, 6542, 6544, 6545, 6551 y 6552 pueden generar datos a velocidades de hasta 100 MHz, la puerta XOR debe tener un retardo de propagación de menos de 5 ns. NI recomienda el Fairchild NC7SZ86 (www.fairchildsemi.com), que tiene un retardo de propagación de 3 ns (típico) a Vcc = 3,3 V.

Figura 5. Diagrama del circuito XOR

C1 debe colocarse muy cerca de la puerta XOR para ayudar a estabilizar la fuente de alimentación durante las transiciones de datos. El valor recomendado para C1 es 0,1 μF. Si se requieren múltiples canales DDR, el circuito que se muestra arriba se puede repetir para cada canal adicional, incluido un capacitor de 0.1 μF para cada puerta XOR. Se debe agregar otro capacitor a la PCB con un valor recomendado de 10 μF. Este condensador se puede colocar cerca de los rieles de alimentación de entrada en la PCB y ayudará a estabilizar la fuente de alimentación de toda la placa.

Implementación de software

Una vez que haya procesado la forma de onda como se discutió anteriormente, puede programar fácilmente los dispositivos NI 6541, 6542, 6544, 6545, 6551 y 6552 para generar los datos DDR completando los siguientes pasos:

  1. Abra el programa de ejemplo Dynamic Generation. Puede encontrar el ejemplo en LabVIEW yendo al menú Ayuda y seleccionando "Buscar ejemplos". Una vez que se haya abierto el buscador de ejemplos, vaya a Hardware Input and Output >> Modular Instruments >> NI-HSDIO >> Dynamic Generation.
  2. Deberá agregar dos VI al programa.
    1. Agregue la posición de datos de configuración de niHSDIO. Por defecto, cada canal cambia en el flanco ascendente del reloj de muestra. Por lo tanto, cualquier canal que deba alternar en el flanco descendente debe configurarse para hacerlo mediante este VI. En este ejemplo, channel list debe ser 1 y la position debe establecerse en Sample Clock Falling Edge.
    2. También necesitará agregar el VI niHWS Retrieve Waveform para recuperar la forma de onda que creó anteriormente.

La Figura 6 muestra dónde insertar estos dos VI en el ejemplo.

Figura 6. Modificaciones al programa de ejemplo

Una vez que se realizan las modificaciones anteriores, el VI está listo para generar sus señales DDR.