5 votos

Significado de la simulación de temporización para FPGA

He empezado a preguntarse ¿cuál es la importancia de la simulación de temporización para FPGAs de hoy en día. Fácilmente puedo justificar lo que es la idea detrás de la que, citando a Xilinx materiales:

La realización de un exhaustivo simulación de temporización se asegura de que el diseño final está libre de defectos que pueden pasar por alto fácilmente, tales como los siguientes:

  1. Post-síntesis e implementación de la funcionalidad de los cambios causados por el siguiente: Síntesis de los atributos o las restricciones que pueden causar simulación/implementación de los desajustes, como translate_off/translate_on o full_case/paralelo caso. UNISIM atributos aplicados en la UCF archivo o mediante la síntesis de los atributos Diferencias entre la síntesis de la interpretación del lenguaje en diferentes simuladores

  2. Dual-port-RAM colisiones

  3. Falta o mal aplicada falta de tiempo

  4. La operación de rutas de acceso asincrónico

Howevery, yo no conozco a ningún ingenieros o empresas de mi zona que iba a realizar la temporización de las simulaciones para FPGAs. Simplemente asumen que si la falta de tiempo son correctas y no hay sincronización violaciones después de que el lugar y la ruta, entonces todo está bien.

Puedo entender este enfoque como el tiempo de simulación puede tomar un montón de tiempo para diseños complejos y, para ser honesto, nunca he escuchado o leído ninguna historia que el tiempo de simulación para la FPGA ha ayudado en la fijación de algunos errores que no sería un bug en el nivel funcional del diseño.

Podemos decir que hoy en día la temporización de la verificación de los diseños FPGA se ha reducido a confiar en las salidas de los vendedores de herramienta de cadenas?

4voto

Bilal King Puntos 85

IO el tiempo es de más interés que el de sincronización interno, ya que como dices, las herramientas son "buenas". Habiendo dicho eso, las herramientas son sólo tan buena como sus limitaciones; de forma fiable puede contar con obtener de nuevo los mismos errores que se especifica, así como usted puede de forma fiable contar en volver, post-síntesis/PAR la misma lógica de los errores que usted no descubrir en rtl verificación. Según Wilson, la Investigación de la encuesta que Mentor Graphics encargo, los errores de temporización están en segundo lugar solamente a los errores de la lógica como la causa de la re-tiradas... ASIC o FPGA, no importa, usted acaba de gastar menos dinero y tiempo en volver a girar un FPGA. Es importante recordar que el momento de aplicar las restricciones en el front-end de PAR como una entrada, y se comprueba en la parte final contra el PAR de netlist resultados. Que sólo garantiza que usted consiguió lo que usted especifica.... olvida de una especificación, o sin especificar de otro modo, y es probable que tenga problemas en el hardware (#3). Minimizar los dominios de reloj y la utilización secuencial de las técnicas de diseño son la mejor manera de evitar errores. Evitar transparente pestillos a toda costa (a veces no se puede), y ser diligentes en cruces de dominio del reloj... se puede "IGNORAR" reloj cruces de dominio en el archivo de restricciones si se han garantizado, a través de la revisión del diseño y/o CDC herramientas adecuadas cruce de las técnicas (es decir, Satisfacer Nyquist... ambos son abordadas en el #4 de arriba)

Si usted ha construido agentes (UVM terminología... creo que "BFM" si no están familiarizados con UVM) adecuadamente con el tiempo, normalmente configurado en "OFF" para el funcionamiento de la sim, y encendido "ON" para el post-PAR netlist sim con la anotación, usted puede encontrar IO errores de temporización. Habiendo dicho esto, usted está a instancias de la junta de diseñador para tener siempre la correcta IO limitaciones... el agente al que la interfaz (un DSP, CPU, lo que sea) se han especificaciones para las señales son entregados/recibidos (min y max sesga/tiempo), el trazado tendrá una cierta cantidad de retardo (esperemos que, "insignificante", pero fácil de conseguir en el nivel superior de la TUBERCULOSIS y su ASIC/FPGA IO tendrá que acomodar los números de la junta diseñador le dio a usted. Si usted está "en spec" y el agente de sincronización se implementa correctamente, y va a tener fallas en el IO (tal vez su verificación de la persona que escribió de afirmaciones para la captura de estos errores), y la junta diseñador va a tener que revisar sus tiempos de análisis. El punto es, me prefieren hacerlo en una anotada de simulación, donde usted tiene la visibilidad que necesita, no en el laboratorio, donde tienes que usar ámbitos, etc.

Yo sugeriría que, a menos que usted es responsable de la integración también, que su objetivo es permanecer fuera del laboratorio, y para ello hay que tener una buena verificación de medio ambiente que le permite encontrar la lógica de los errores y, tal vez, los errores de temporización.

Habiendo dicho todo eso, no creo que la mayoría de las personas lo hacen de nuevo-anotado simulaciones hasta que tienen un problema de HW y sospecha de temporización.... es bueno si la TB ya está creada para simular con limitados aleatoria de temporización en base a las especificaciones.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X