Practica LVDS

Nota: Esta practica fue realizada basada en la plataforma DE0-NANO, en este caso usted usara la plataforma DE2-115 y debera adaptarla a esta

  • En este caso, debe modificar las caracterisiticas de la moemoria SDRAM y en vez de usar una memoria EPCS usara la memoria Flash de la DE2-115.

  • Para esta practica usted debe crear una plantilla con el system builder SIN los GPIOs.

    • Antes de realizar cualquier conexión y cualquier montaje, debemos tener claro el concepto de LVDS(Low Voltage Differential Signaling) el cual es un sistema de transmision estandar (ANSI/TIA/EIA-644-1995) de bajo voltaje que puede funcionar a altas velocidades evitando el ruido y trayendo al diseñador ventajas en costos a la hora de montar comunicaciones digitales que requieran bajo costo para mas información puede consultar los manuales de referencia[1][2][3][4].

    • Lea las ventajas que traer el uso de este tipo de interfaz diferencial http://www.maximintegrated.com/app-notes/index.mvp/id/3570

      • Compatibility with low supply voltages

      • Low power consumption

      • Low interference radiation

      • High interference immunity

      • Simple cabling and termination

    • Debemos saber que la FPGA Cyclone IV de la DE0-NANO cuenta con pines que están diseñados especialmente para transmisiones y recepciones del tipo LVDS, con tal de garantizar los bajos niveles de voltaje y una frecuencia maxima de transmisión, dependiendo del tipo de FPGA estos pines tienen unas condiciones de tiempo que varían dependiendo del tipo de comunicación LVDS que puede ser "True LVDS", "Emulated LVDS 3R", "True mini LVDS" y "Emulated mini LVDS".

      • Con esto existen varias preguntas y son:

      • ¿En mi FPGA cuales pines son "TRUE LVDS" ó "Emulated LVDS 3R" y cual es la diferencia?

          • RTA1: Dependiendo de la FPGA que se use y el tipo empaquetado la Cyclonve IV nos ofrece si o no canales LVDS en este caso la referencia de la DE0-NANO es la "EP4CE22F17C6N" que significa lo siguiente:

              • Ahora la pregunta seria ¿Cuales de estos pines puedo usarlos como "True" o "Emulated"?, la respuesta esta en el mismo manual de referencia[4] de la Cyclone IV donde se dice en la tabla 6-8 que en la FPGA de la DE0-NANO existen 20 pines que pueden ser usados como "TRUE LVDS" y 32 como "Emulated", ademas se indica que los canales "TRUE LVDS" se encuentran en los bancos 1,2,5 y 6 y que cualquiera de los 52 pines puede ser usado como "Emulated LVDS"

            • buscando en la tabla 1-3 del manual de referencia de la Cyclone IV[4] la FPGA de la DE0-NANO si dispone de pines LVDS que pueden ser "True" ó "Emulated" como se ve a continuación, la Cyclone IV de la DE0-NANO ofrece 52 pines de LVDS.

    • RTA2: Primero la diferencia de TRUE LVDS a Emulated LVD 3R es la velocidad de transmisión y recepción en el caso de las FPGAs Cyclone IV(EP4CE22F17C6N) de la DE0-NANO la velocidad en Mbps .

                  • Si se usa "Emulated" tenemos una velocidad de transmisión máxima de 640 Mbps.

                  • Si se usa "TRUE" tenemos una velocidad de transmisión máxima de 840 Mbps.

    • La siguiente pregunta seria ¿cuales de los pines que conecto al mundo exterior utilizando la DE0-NANO pueden ser utilizados como "TRUE o EMULATED LVDS"?

      • RTA: En la siguiente tabla se muestra en detalle cuales pines pueden ser usados como "TRUE LVDS o EMULATED".

        • 16 TRUE LVDS.

        • 30 o 36 EMULATED dependiendo de cuales dejemos de usar como TRUE LVDS.

    • Antes de empezar ha describir hardware, agregue a la plantilla una salidas llamadas "R, G, B y C" sintetice y vaya al PIN PLANNER y asignelas a los siguientes pines

      • R ==> PIN_L15

      • G ==> PIN_K15

      • B ==> PIN_R16

      • C ==> PIN_N15

    • Ahora modifique el "I/O Standard" del pin R a "LVDS" y se dara cuenta que el Pin planner automaticamente agrega otro pin llamado R(n) que es el par diferencial de R.

    • Una vez ha agregado el par diferencial de cada uno de los pines R, G, B y C, abra de nuevo el Pin planner para segurar que ya están agregadas al sistema.

    • Ahora declare una nueva entradas llamadas Rin y Cin deben ser LVDS, siga el mismo proceso que se siguio antes y asigne esta entrada a PIN_C15 y PIN_L15

    • Para comprobar cualquier inquietud sobre la asignación puede descargar la siguiente plantilla que tiene ya asignados los pines LVDS que se utilizaran en esta practica.

    • Una vez que ya sabemos crear entradas y salidas LVDS vamos a realizar una tx y rx utilizando el manual de Altera "AN 479".

      • Revise la pagina 2 del manual y vea cual es el proceso que debe seguir para implementar un sistema LVDS sobre la Cyclone IV.

      • En esta practica vamos a diseñar el siguiente esquema utilizando 2 FPGAs

      • El canal R(un solo canal) debe transmitir 8 bits(contador a 1 hz) de forma serializada utilizando el Megacore "ALTLVDS_TX" utilizando un reloj de 50Mhz y un factor de deserializacion de x8, en la otra FPGA se debe tener como referencia el mismo reloj de transmisión y el Megacore "ALTLVDS_RX" para deserializar los 8 bits y mostrar el conteo en los LEDs

        • Según la documentación de la pagina 4, ¿A que tasa de rateo se estaría enviando la información por el canal?

        • ¿Cuales son las precauciones que se deben seguir al montar una interfaz LVDS?

      • ¿Como utilizo los megacore de altera para enviar datos y recibir? (Pag 8)

      • ¿Por qué se debe utilizar un PLL para mantener el reloj de referencia y no un div frec?

      • Siga los paso del 1 al 8 y verifique que al final de esta practica debera haber diseñado un TX y RX LVDS en donde transmitirá los datos de una FPGA a otra.

      • ¿Que ventajas tiene el uso de LVDS?

      • ¿En la industria que funciona sobre este tipo de TX y RX?

      • ¿Cual es la frecuencia máxima que se puede lograr con este tipo de TX en la DE0-NANO?