Spartan 6 pines bidireccionales cómo usar

0

¿Es posible utilizar pines de Spartan-6 bidireccional. (cambiar entre entrada / salida)

La siguiente es la situación: Tengo un ADC y DAC de alta velocidad, pero esto no tiene que funcionar al mismo tiempo. Tanto el ADC como el DAC tienen una línea de habilitación que hace que la entrada (para DAC) y la salida (para ADC) sean de Alta Z.

Ahora pensaba que podría usar las líneas de datos D0 - D11 en este caso tanto para ADC como para DAC, pero no sé cómo puedo cambiar un pin FPGA de entrada a salida con mi código VHDL. ¿Alguien sabe esto o tiene experiencia con esto?

ejemplo Pin 1 de FPGA: alto es habilitar ADC bajo y habilitar DAC

Cuando el pin 1 = alto Los pines FPGA 2 a 14 deben ser entradas, ya que ADC está conectado

Cuando el pin 1 = bajo Los pines FPGA 2 a 14 deben ser salidas, ya que DAC está conectado

Puedo establecer un pin para entrada o salida en el plan por delante de ISE, pero no puede encontrar una opción bi-di o similar.

También si esto es posible, ¿cuánto tiempo le lleva al espartano-6 cambiar de entrada a salida y < & gt ;?

    
pregunta user149421

1 respuesta

3

Casi todos los pines de E / S en casi todos los FPGA / CPLD pueden configurarse como bidireccionales, una entrada o una salida. Sin los pines bidireccionales, no podría implementar buses de datos bidireccionales para chips de memoria como RAM y EPROM de Flash.

El caso general del circuito de búfer de interfaz de pin de E / S dentro de un FPGA es: un búfer de salida que puede ser de triple estado o de conducción; un búfer de entrada.

Cuando configura un pin de E / S como entrada, el control drive / tri-state para el búfer de salida está vinculado a 'siempre tri-state' y solo se usa el búfer de entrada.

Cuando configura un pin de E / S como salida, el control drive / tri-state para el búfer de salida está vinculado a 'drive', el búfer de salida se usa y el búfer de entrada no se usa.

Cuando configura un pin de E / S como bidireccional, se usa todo.

Eche un vistazo al documento UG381 de Xilinx 'Spartan-6 FPGA SelectIO Resources'. Esto explica todo sobre cómo funcionan los pines de E / S. Incluye el diagrama anterior que muestra el controlador de tres estados y el búfer de entrada. Encontrará mucho más texto sobre los controladores de pin FPGA en Internet.

Para implementar esto en VHDL, cree algunas señales internas llamadas 'dataToPins', 'dataFromPins' y 'dataDriveEnable'. Luego, para su bus de datos 'DATA_BUS' puede usar:

DATA_BUS <= dataToPins when (dataDriveEnable = '1') else (others => 'Z'); dataFromPins <= DATA_BUS;

La primera línea implica el controlador de salida de tres estados. Podría usar DATA_BUS como su señal de entrada pero usando la segunda línea y 'dataFromPins' como su señal de entrada destaca a los demás lo que está haciendo.

    
respondido por el TonyM

Lea otras preguntas en las etiquetas