Nuestro team especializado pasados muchos días de investigación y de recopilar de datos, hallamos la respuesta, nuestro deseo es que te sea útil para tu proyecto.
Solución:
La velocidad de un diseño está limitada por varias cosas. Lo más probable es que el mayor sea el retraso de propagación a través de la lógica combinatoria en su diseño, llamado el camino critico. Si usa un FPGA rápido y escribe su HDL con mucho cuidado, probablemente podría alcanzar los 700 MHz en algo como Virtex Ultrascale+. En un FPGA de gama baja, por ejemplo, un Spartan 6, una cifra razonable probablemente sea más como 250 MHz. Esto requiere canalización en todas partes para que tenga la cantidad mínima absoluta de lógica combinatoria entre componentes con estado (minimizar los niveles de lógica), baja distribución (minimizar la carga en elementos lógicos) y sin nidos de ratas congestionados (rutas de enrutamiento eficientes).
La lógica de estructura de diferentes FPGA tendrá diferentes parámetros de temporización. Los FPGA más rápidos y costosos tendrán retrasos más pequeños y, como resultado, pueden lograr frecuencias de reloj más altas con el mismo diseño, o ejecutar un diseño más complejo o un diseño con menos canalización a la misma frecuencia. El rendimiento dentro de un proceso en particular puede ser similar; por ejemplo, Kintex Ultrascale y Virtex Ultrascale se fabrican en el mismo proceso y tienen celdas y demoras de enrutamiento similares. Es imposible decir qué tan rápido será un diseño determinado sin ejecutarlo a través de la cadena de herramientas y mirar los informes de tiempo del static análisis de tiempo.
Al realizar ejecuciones de la cadena de herramientas para determinar la velocidad máxima del reloj, tenga en cuenta que las herramientas están controladas por el tiempo: intentarán cumplir con las restricciones de tiempo especificadas. Si no se especifican restricciones de tiempo, el resultado puede ser muy pobre ya que las herramientas no intentarán optimizar el diseño para la velocidad. En general, las herramientas deberán ejecutarse varias veces con diferentes restricciones de período de reloj para encontrar la frecuencia de reloj máxima alcanzable.
Si puede optimizar su diseño para que la ruta crítica no sea el límite, se encontrará con limitaciones en la generación y distribución del reloj (PLL, DCM, búfer de reloj y redes de reloj global). Estos límites se pueden encontrar en las hojas de datos de las piezas, pero es difícil acercarse a ellos con un diseño no trivial. He ejecutado cosas en un Virtex Ultrascale a 500 MHz, pero esto fue solo un puñado de contadores para proporcionar señales de activación a otros componentes.
Usted sintetiza su diseño en la tecnología de destino (un FPGA particular) y deja que el static Las herramientas de análisis de tiempo le indican cuál es el período de reloj mínimo.
O bien, agrega restricciones al diseño en primer lugar, y luego las herramientas le permitirán saber si se cumplen o no.
La velocidad a la que se ejecutará su CPU se basará en su mayor retraso de flop a flop en su diseño sintetizado. El retraso de flop a flop incluirá clock-to-Q, enrutamiento, lógica/LUT y tiempo de configuración de flop. Estos sumados forman el camino critico de su tiempo, que puede inspeccionar en el informe de tiempo generado por la herramienta de ubicación y ruta.
Existen disciplinas de diseño completas dedicadas a crear arquitecturas que minimicen este retraso para aprovechar al máximo un proceso dado: canalización, ejecución paralela, ejecución especulativa, etc. Es una tarea fascinante y envolvente, exprimir hasta la última gota de rendimiento de un FPGA (o, para el caso, un ASIC).
Dicho esto, los proveedores de FPGA darán diferentes grados de velocidad para sus partes, que corresponden a una tasa máxima de MHz. Por ejemplo, un -2 Xilinx Artix es una parte de ‘250 MHz’ en términos generales, aunque es capaz de velocidades de reloj más altas para diseños altamente canalizados.
Cuando interactúe con la síntesis de FPGA y las herramientas de ubicación y ruta, deberá proporcionar restricciones para su diseño. Estos le indican al flujo de la herramienta el retraso objetivo de flop a flop que está tratando de lograr. En Quartus (Altera) y Vivado (Xilinx), estas restricciones usan una sintaxis llamada SDC, que significa Synopsys Design Constraints. SDC vino inicialmente del mundo ASIC y también ha sido adoptado por la industria FPGA. Conozca SDC: lo ayudará a obtener los resultados que desea.
Altera y Xilinx tienen comunidades en línea para obtener ayuda sobre cómo usar la sintaxis de SDC y muchos otros temas.
Dicho todo esto, si te preocupa la velocidad, deberías considerar una FPGA que tenga una CPU dura. macro en él, como Zynq.
Si guardas algún recelo y capacidad de refinar nuestro división puedes añadir una referencia y con deseo lo analizaremos.