Estoy usando Xilinx Spartan 6 Automotive FPGA. Mi diseño de FPGA tiene una interfaz SPI para un periférico externo.
Desde FPGA hasta el periférico, tengo estas señales relacionadas con SPI:
Del periférico a FPGA:
FPGA muestrea los datos MISO SPI utilizando el borde descendente 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 garantizar que los datos MISO lleguen al primer componente de sincronización (un latch cronometrado por spi clk) sin violar el tiempo de configuración y espera. ¿Qué restricción de tiempo de Xilinx debo usar?
Algunas opciones que estaba buscando son COMPENSACIÓN EN, DESDE/HASTA...
Prefiero OFFSET IN porque relaciona los datos con el reloj, pero no puedo entender cómo especificar un reloj interno (no tengo bucle invertido SPI clk). FROM/TO podría funcionar, pero no es relativo al reloj.
Entiendo que tiene un reloj interno SYS_CLK, que usa para controlar la máquina de estado que genera SPI_CLK.
El flip-flop que genera SPI_CLK debe ubicarse en IOB, para garantizar una temporización determinista entre SYS_CLK y SPI_CLK (puede especificar el retraso máximo requerido para SPI_CLK, utilizando OFFSET OUT).
Luego puede especificar sus restricciones utilizando OFFSET IN (para MOSI) y OFFSET OUT (para MISO) con respecto a SYS_CLK, considerando el retraso entre SYS_CLK y SPI_CLK.
el fotón
salvajewilliam