¿Cómo se usa VHDL?

3

Soy nuevo en la electrónica / robótica de hobby y estoy tratando de entender el caso de uso para VHDL. La sintaxis es fácil de entender, pero no veo el "bosque a través de los árboles" en algunos elementos.

Por un lado, estoy tratando de determinar exactamente qué componentes de un sistema digital se pueden representar en VHDL. ¿Se puede utilizar para describir el comportamiento de las CPU? MCUs? PCBs? ¿Componentes del sistema en un chip?

Segundo, ¿VHDL compila algo? Ya que describe el comportamiento de hardware , me imagino que la respuesta sería no , pero mi siguiente pregunta es: ¿entonces qué pasa con VHDL? ¿Hay algún tipo de máquina mágica que toma VHDL como entrada y escupe chips & ¿Circuito que refleja con precisión el hardware modelado por el VHDL?

    
pregunta smeeb

2 respuestas

10

VHDL se utiliza en el desarrollo ASIC y FPGA, al igual que Verilog. Casi todo el diseño de chips comerciales se realiza en uno de esos dos.

No hay tanto una máquina mágica como una tubería de grandes y costosas piezas de software. El flujo se ve así:

  • los humanos escriben VHDL, luego simulan en un programa como Modelsim para validar el diseño.
  • esto se convierte en un net de nivel de puerta , que generalmente también está en Verilog pero reemplaza todas las expresiones lógicas por instancias de puertas lógicas (AND / OR / NOT / D-type flipflop). Esto es vagamente similar a un código de máquina de salida de compilador de software.
  • otra ronda de software hace lugar y ruta , asignando esas puertas a ubicaciones en un chip. En este punto, es posible calcular el tiempo y el consumo de energía.
  • los bits adicionales de hardware se sustituyen por elementos que no están hechos de puertas lógicas (memorias, subcomponentes analógicos)
  • Para ASIC, finalmente las puertas se convierten en un tipo de formato de gráficos vectoriales llamado GDSII, que se envía a la fábrica.
respondido por el pjc50
2

Algunas buenas respuestas arriba. Pero VHDL es también un lenguaje de modelado de comportamiento. Se puede utilizar para representar el comportamiento de cualquier sistema digital, el comportamiento arbitrario. De manera efectiva, se divide en dos tipos (todos parte del mismo idioma), declaraciones de comportamiento que describen el comportamiento de un sistema digital (sistema digital completo, componentes: CPU, FPGA, ASICS, CPLD) y partes sintetizables del lenguaje.

Puede describir un sistema completo utilizando VHDL de comportamiento y simularlo. Puede escribir patrones de prueba en VHDL. Puede crear, construir el sistema, probarlo y verificar su comportamiento con sus modelos de comportamiento y datos de prueba. No digo aquí cómo diseñas y construyes el sistema real, le toca al diseñador (ser humano) hacer eso, en este escenario, el VHDL es una representación abstracta del comportamiento. Hay declaraciones de comportamiento (como han indicado otros carteles) que no se pueden sintetizar en la lógica digital en funcionamiento, por lo que una herramienta de síntesis no puede construir automáticamente una implementación de circuito lógico.

La otra forma fundamentalmente importante en que se usa VHDL es en síntesis y para hacer esto, debes restringirte a un subconjunto del lenguaje. Escribir código de comportamiento que luego se sintetiza en compuertas lógicas (u otras funciones lógicas que coinciden con su arquitectura de destino del dispositivo en el que va a colocar el diseño, por ejemplo, FPGA).

Puede describir el comportamiento como una máquina de estados finitos en código escrito textual y hacer que una herramienta de síntesis cree el circuito lógico para usted. (Puede realizar parte de la asignación de estado usted mismo en el código VHDL). Puede escribir sentencias como: A: = B * C + D y la herramienta de síntesis creará un diseño lógico para llevar a cabo la multiplicación y la suma de los enteros representados por B, C, D.

Puede tener modelos de funciones lógicas complejas (microprocesadores completos) y conectar estos componentes juntos en VHDL (y luego simular).

Así que VHDL puede modelar CUALQUIER función lógica, sin importar cuán simple o compleja sea. Microprocesadores, UARTS, sistema en chip. Pero nunca he oído que se use para PCB, no en un sentido analógico. Pero si tiene un diseño de circuito completo que contenga múltiples chips lógicos digitales, incluidas funciones complejas como microprocesadores, entonces sí, VHDL puede modelar todo el lote y puede realizar simulaciones de él. Puede escribir datos de prueba de alto nivel (también en VHDL) y estimular su modelo VHDL de su sistema con él y verificar que todo el diseño hace lo que usted quiere que haga.

    
respondido por el Dean

Lea otras preguntas en las etiquetas