en qué orden se ejecuta un programa VHDL en un FPGA

0

Cuando intento programarlo, específicamente con VHDL, estoy tratando de comprender exactamente qué sucede en un FPGA. Sé que todos los procesos externos de código se ejecutan simultáneamente, pero ¿qué ocurre con los procesos en diferentes archivos vhdl en el mismo proyecto? ¿El FPGA solo los ejecuta en el orden en que el diseñador conecta sus componentes en la entidad de nivel superior? ¿O todos se ejecutan simultáneamente y tengo que asegurarme de que se activen en secuencia?

por ejemplo, he escrito tres archivos VHDL diferentes para un RELOJ, UN COMPARADOR y una PANTALLA HEXIDECIMAL. (He omitido algunos archivos por simplicidad) Lo quiero así que cuando el reloj active el comparador, haga su trabajo y luego se muestre el resultado en la pantalla, y los he conectado correctamente.

Entonces, ¿todos los componentes se ejecutarán inmediatamente si enciendo el FPGA sin esperar a que su predecesor haga su trabajo? ¿O esperan hasta que sea su turno / tienen una señal entrando? No estoy seguro de si debo sondear el decimal hexadecimal hasta que vea una señal de entrada (evento de entrada) o si eso sería innecesario.

    
pregunta D.P

2 respuestas

7

Tienes una dificultad conceptual aquí. VHDL no es un programa en el sentido de un programa de computadora, es una DESCRIPCIÓN de cómo se conectan los elementos de hardware. No hay un orden particular. Una vez que "programa" el código VHDL en FPGA, crea enlaces adecuados entre bloques lógicos y los configura.

Una vez que enciende la alimentación y se cargan los bits de configuración en todas las áreas de FPGA, todos los bloques funcionales de FPGA funcionan en paralelo, todas las partes. Si necesita alguna secuencia distintiva de su diseño, debe hacerlo a través de las denominadas MÁQUINAS DE ESTADO FINITO, que aún se ejecutan en paralelo, pero que cambian los estados de flip-flop solo en ciertas condiciones de señal, reloj por reloj, por lo que parece que está esperando algunas señales y ejecuta algo secuencialmente.

    
respondido por el Ale..chenski
0

HDL's conecta cables y puertas.

Si ve un bucle for en un lenguaje de descriptor, solo es una macro para conectar conjuntos de cables.

Las puertas controlan el flujo de información en un nivel de bits, puede elegir AND, OR, NOT y varias combinaciones que se pueden usar para crear sumadores, restadores, multiplicadores y lo que no.

Las puertas introducen un retardo para que los elementos de memoria (d-flip flops, J / K flip flops) y los elementos de memoria se empleen para alinear la información con un reloj para evitar metastabilty (desde el cambio asíncrono) y para almacenar información.

HDL construye las puertas y los elementos de memoria para usted en un nivel alto, (similar a la forma en que los compiladores se emparejan en el ensamblaje), pero este proceso se llama síntesis. El código de alto nivel de HDL se sintetiza por puertas y cables.

Simule el diseño antes de cargarlo en el FPGA para asegurarse de que tiene el diseño correcto. Desarrolle bancos de prueba para probar el diseño antes de sintetizar.

  

¿El FPGA solo los ejecuta en el orden en que el diseñador   conecta sus componentes en la entidad de nivel superior?

El nivel superior de un diseño significa que es el bloque superior en un diseño jerárquico, puede tener subbloques / arquitecturas bajo este bloque. El nivel superior normalmente conecta los puertos de GPIO a su código. El nivel superior es donde conecta un reloj externo a su código (o PLL) y le indica qué puertos deben conectarse a los nombres de sus cables.

  

¿O se ejecutan todos al mismo tiempo y tengo que asegurarme de que están   desencadenado en secuencia?

Usted declara registros y elementos de memoria junto con los relojes, un d flip flop puede contener información de un reloj . El restablecimiento de un conjunto puede mantenerse durante el tiempo que se lo indique.

  

Entonces, todos los componentes se ejecutarán de inmediato. Enciendo el FPGA.   ¿Sin esperar a que su predecesor haga su trabajo?

Algunos FPGA tienen flash que configura las puertas, algunos están fusionados y otros usan diferentes tipos de memoria. Algunos tienen tiempos de inicio instantáneos y otros toman microsegundos.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas