¿Siempre tiene sentido restringir un puerto de E/S?

Estoy siguiendo un curso en línea de Altera sobre su software analizador de tiempo llamado TimeQuest. En él, recomiendan que, como mínimo , todos los relojes y puertos de E/S estén restringidos.

En mi diseño de FPGA, estoy generando un pin de reloj de salida a un ADC al mezclar varios relojes (algunos generados internamente). Hasta donde yo sé, la forma de restringir los puertos de salida es usar el comando SDC set_output_delay, especificando las restricciones de configuración y retención con respecto a un reloj .

En mi caso, no parece haber ningún reloj significativo en el que basar la set_output_delayrestricción. ¿Cómo se debe restringir mi reloj de salida? ¿Tiene sentido intentar restringir este puerto de salida específico?

Respuestas (1)

Bueno, tiene sentido aplicar restricciones significativas si realmente te importa el tiempo y es importante. Cómo restringirlo depende en gran medida de su diseño. Afortunadamente, Altera tiene toneladas de ejemplos para diferentes casos.

Pero si no le importa en absoluto, la mejor manera de hacerlo es marcar ese camino como un camino falso para que Time Quest sea feliz y el sintetizador no se cuelgue durante horas tratando de enrutar su diseño para cumplir con los requisitos de tiempo que necesita. realmente no tengo Eso lo puedes hacer con set_false_pathcomando. Por ejemplo:

set_false_path -from * -to [get_ports { output_port }]

(donde output_portse asigna el puerto de nivel superior de un módulo a un pin)

Si Time Quest le da un diagnóstico de que no todos los puertos de salida tienen un retraso, es posible que también desee agregar un retraso ficticio, como este:

set_output_delay -clock [get_clocks src_clk] 2 [get_ports { output_port }]

Para un ejemplo más práctico, puede consultar este archivo SDC para este módulo de nivel superior, la ruta hacia led_nel mercado es una ruta falsa allí, ya que prácticamente no me importa el tiempo de mi lógica a los LED.

Espero eso ayude.

En este retardo ficticio, ¿qué reloj especifica si hay varios relojes de origen? Además, ¿cómo elegiste el número 2?
@Randomblue: he especificado una entrada de reloj para la FPGA (in_clk_100), que es la raíz de todos los relojes en ese diseño. Realmente no importa qué reloj especifique, ya que todas las rutas posibles se comercializan como falsas ( -from *). Lo mismo ocurre con 2: no importa, hazlo 3si te gusta más, siempre que no sea 0, la búsqueda del tiempo será feliz.