¿Por qué Xilinx Translate for Virtex-6 no sabe IOSTANDARD LVDS?

1

Estoy usando varios FPGAs Xilinx y tableros desde Spartan3E hasta KC705 / VC707 y estoy muy familiarizado con los archivos UCF, pero hay una pregunta que me molesta ...

¿Por qué traducir para Virtex-6 no se conoce IOSTANDARD LVDS, pero sí para traducir Series7?

o

¿Debo usar IOSTANDARD LVDS_15 en KC705 para sysclk en lugar de LVDS?

Aquí está el fragmento de código UCF correcto para el SystemClock de una placa KC705:

##  Bank:           33 - VCC=1.5V (VCC1V5_FPGA)
##  Location:       U6 (SIT9102)
##      Vendor:     SiTime
##      Device:     SIT9102AI-243N25E200.0000 - 1 to 220 MHz High Performance Oscillator
##      Frequency:  200 MHz, 50ppm
NET "KC705_SystemClock_200MHz_n"    LOC = "AD11";               ## {IN} U6.5
NET "KC705_SystemClock_200MHz_p"    LOC = "AD12";               ## {IN} U6.4
NET "KC705_SystemClock_200MHz_?"    IOSTANDARD = LVDS;
NET "KC705_SystemClock_200MHz_p"    TNM_NET = "NET_SystemClock_200MHz";

Y aquí hay un fragmento de UCF aceptado para el SystemClock de una placa ML605:

##  Bank:           34 - VCCO=2.5V (VCC2V5)
##  Location:       U11 (SIT9102)
##      Vendor:     SiTime
##      Device:     SiT9102 - 1 to 220 MHz High Performance Oscillator
##      Frequency:  200 MHz, 50ppm
NET "ML605_SystemClock_200MHz_n"    LOC = "H9";                 ## {IN} U11.5
NET "ML605_SystemClock_200MHz_p"    LOC = "J9";                 ## {IN} U11.4
NET "ML605_SystemClock_200MHz_?"    IOSTANDARD = LVDS_25;
NET "ML605_SystemClock_200MHz_p"    TNM_NET = "NET_SystemClock_200MHz";

Normalmente, un estándar de E / S está asociado con un voltaje para que STA pueda calcular los tiempos correctos. Además, observé que muchos relojes diferenciales se alimentaban a los FPGA con acoplamiento de CA (por ejemplo, de ICS844021I para SGMII).

Pero cuando observamos ambos esquemas, no podemos encontrar un acoplamiento de CA para sysclk:
- ML605 Schematic
- Esquema KC705

Normalmente, diría que LVDS debería usarse si AC-acoplado y LVDS_xx deberían usarse si está acoplado a DC. Pero la UCF del KC705 dice lo contrario.

¿Alguien puede explicar cuándo se debe usar LVDS ?

P.S.
1. El fragmento KC705 es de KC705 master-XDC incl. Normas IO
2. El ML605 master-UCF se envía sin estándares de IO

    
pregunta Paebbels

1 respuesta

3

Xilinx ha sido inconsistente con el iostandard de LVDS, ¡no profundizaré en las generaciones anteriores que en Spartan-6!

Primero, el LVDS está basado en la corriente (3.5 mA a 100 ohmios, alrededor de 350 mV de giro) y es eléctricamente el mismo sea cual sea el voltaje del banco.

Spartan-6 admite salidas LVDS de un banco con un VCCO de 3.3 (LVDS_33) o 2.5 (LVDS_25). Dado que Virtex-6 no admite 3.3 bancos, solo tienen LVDS_25 y mantienen la misma nomenclatura que el spartan-6 para evitar el suicidio del diseñador.

Spartan-6 y Virtex-6 usan VCCAUX (3.3 o 2.5 para spartan, 2.5 solo para Virtex) para entrada LVDS y deberían estar disponibles en todos los bancos, independientemente de su VCCO (aunque nunca lo probé, siempre lo puse un banco VCCO a juego).

La salida de LVDS de la Serie 7 requiere que VCCO sea 2.5 en los bancos HR (LVDS_25) o 1.8 en los bancos HP (LVDS). ¿Por qué le dieron el nombre de LVDS en lugar de LVDS_18? Xilinx solo lo sabe. Nuevamente, son lo mismo eléctricamente, pero obviamente el conductor tiene que ser diferente si no tienen el mismo VCCO.

La entrada LVDS de la Serie 7 requiere que VCCO sea 1.8 / 2.5 solo si se usa la terminación interna. Se puede usar otro VCCO para entrada (con algunas restricciones) siempre que haya una terminación externa presente. Supongo que este es el caso de KC705. También supongo que, por consistencia (suspiro), esperan LVDS_25 entradas en bancos de recursos humanos y LVDS en HP.

Entonces, desde la serie 6 tenemos LVDS un VCCO de 1.8, LVDS_25 para 2.5 y LVDS_33 para 3.3. Una vez más, son eléctricamente iguales, solo el controlador difiere y el mecanismo de terminación interna.

    
respondido por el Jonathan Drolet

Lea otras preguntas en las etiquetas