Restricción de sincronización de datos de entrada FPGA de Xilinx

2

Estoy usando Xilinx Spartan 6 Automotive FPGA. Mi diseño FPGA tiene una interfaz SPI para un periférico externo.

Desde FPGA hasta el periférico, tengo estas señales relacionadas con SPI:

  1. spi clk
  2. spi data (mosi): los datos se presentan en el borde descendente del spi clk

Desde el periférico al FPGA:

  1. spi data (miso): los datos se presentan en el flanco ascendente utilizando el spi clk recibido de FPGA

FPGA toma muestras de los datos SPI de MISO utilizando el flanco descendente de SPI CLK; se genera internamente (a través de una máquina de estado).

Ahora, quiero agregar una restricción de tiempo en el pin MISO para asegurar que los datos MISO alcancen el primer componente de sincronización (un pestillo cronometrado por spi clk) sin violar la configuración y el tiempo de espera. ¿Qué restricción de tiempo de Xilinx debo usar?

Algunas de las opciones que estaba considerando son OFFSET IN, FROM / TO ...

Prefiero OFFSET IN porque relaciona los datos con el reloj, pero no puedo entender cómo especificar un reloj interno (no tengo SPI clk loopback). FROM / TO puede funcionar, pero no es relativo al reloj.

    
pregunta wildwildwilliam

1 respuesta

3

Entiendo que tienes un reloj interno SYS_CLK, que usas para conducir la máquina de estado que genera SPI_CLK.

El flip-flop que genera SPI_CLK se debe ubicar en IOB, para asegurar el tiempo determinista entre SYS_CLK y SPI_CLK (puede especificar el retardo máximo requerido para SPI_CLK, usando el OFFSET OUT).

Luego puedes especificar tus restricciones usando OFFSET IN (para MOSI) y OFFSET OUT (para MISO) con respecto a SYS_CLK, considerando el retraso entre SYS_CLK y SPI_CLK.

    
respondido por el wzab

Lea otras preguntas en las etiquetas