cómo entender los esquemas RTL de xilinx [cerrado]

1

Estoy aprendiendo diseño de lógica digital con FPGA, y estoy usando el Xilinx Spartan6 FPGA. Puedo simular con éxito mi diseño correctamente, pero el diseño no funciona correctamente cuando lo descargo en mi FPGA.

Por esta razón, estoy tratando de entender cómo se sintetiza realmente mi diseño para entender qué errores / suposiciones estoy cometiendo. Sin embargo, tengo algunos problemas para comprender los esquemas generados por el Visor RTL

  • ¿Qué hace cada componente? (Los sencillos como Mmux y Madd son fáciles de entender, pero algunos como LDE no lo son). ¿Hay una guía que explique lo que realmente hacen todos los componentes (intenté buscar en Google, pero no pude encontrar uno)?
  • ¿Hay alguna guía definitiva en algún lugar que explique cómo leer e interpretar exactamente estos esquemas?
  • ¿Qué significan los nombres de los componentes? (es decir, tengo un multiplexor llamado Mmux_n00341, ¿por qué Mmux? ¿por qué n00341? ...)

Además, ¿es el mirar el esquema RTL la mejor forma de entender lo que sucede durante la síntesis?

    
pregunta ironstein

2 respuestas

2
  1. Ayúdate con Guía de bibliotecas de Xilinx . LDE es un "Cierre de datos transparente con habilitación de puerta" descrito en la página 681.

  2. Esto es demasiado amplio para responder.

  3. Nada. Creo que literalmente significa "Número de multiplexor 341". El sintetizador no puede proporcionarle nombres descriptivos: ¿cómo se supone que sepa para qué sirve este mux en su diseño?

respondido por el Dmitry Grigoryev
2

Dmitry Grigoryev ya se encargó , pero hay algunas cosas que quiero agregar, y desde entonces No puedo comentar ...

Primero, asegúrese de que también esté realizando una simulación completa, incluidos los tiempos, no solo una lógica. Menciona un pestillo en su pregunta, asegúrese de que realmente lo quiera en su diseño, ya que puede ser una fuente de problemas que no verá en una simulación lógica.

Sobre las preguntas:

  1. El sintetizador tiende a aplastar la lógica, que termina siendo implementada como una LUT, inicializada para realizar una determinada función. Incluso cuando puede acceder a dicha inicialización, puede ser difícil entender completamente lo que está sucediendo, ya que dependiendo del diseño puede estar implementando una función bastante inesperada. En cualquier caso, puede compararlo con la simulación, especialmente en los registros.
  2. No hay una guía universal, pero como con todo, aprenderás con la práctica.
  3. Los nombres no tienen ningún significado especial y son generados por la herramienta de acuerdo con algún algoritmo interno, para el cual no puedo proporcionar ningún detalle, pero al final es solo una forma de que la herramienta asigne un nombre a los componentes.

Y, por supuesto, los esquemas pueden ser útiles para encontrar problemas en el diseño. Hay dos tipos de diagramas RTL: pre y post síntesis. La síntesis previa es más fácil de leer, ya que muestra las funciones lógicas que aún no se asignaron a la lógica en el FPGA, y es útil para rastrear el flujo de datos lógicos.

La síntesis posterior muestra los componentes ya asignados, y me ha resultado muy útil detectar, por ejemplo, la lógica no conectada (que el sintetizador elimina). Por supuesto, también puedes seguir las señales.

    
respondido por el Ironil

Lea otras preguntas en las etiquetas