¿Qué me haría elegir Verilog o VHDL sobre el diseño esquemático en CPLD o FPGA?


13

No tengo absolutamente ninguna experiencia en lógica programable, utilizo principalmente microcontroladores en mis proyectos, pero recientemente necesitaba trabajar con video y el microcontrolador es demasiado lento para lo que necesitaba, así que comencé a jugar con CPLD.

Pude obtener buenos resultados con el CPLD solo usando un diseño esquemático, pero al buscar información sobre los CPLD encontré muchos ejemplos usando VHDL y Verilog. Tengo curiosidad por saber qué podría hacerme querer definir mi dispositivo en uno de estos idiomas. ¿Qué pueden hacer que el diseño esquemático no puede? ¿Se utilizan principalmente para funciones?

Hasta ahora solo he usado CPLD, ¿los diseños de FPGA se benefician más que los CPLD de usar estos idiomas?


1
Probablemente encontrará herramientas de síntesis proporcionadas por el proveedor para Verilog y VHDL para piezas convencionales. Por lo tanto, la elección es puramente de opinión. Te animo a que mires a ambos y decidas cuál prefieres. Xilinx proporciona buenos ejemplos en ambos idiomas, sospecho que otros proveedores también lo hacen.
David

3
Definitivamente debe alejarse de la captura esquemática para el diseño lógico. Al principio se siente más fácil, pero eso es ilusorio. Mis $ 0.02 en idiomas: VHDL es una abominación, use Verilog.
markt

@markt, ¿por qué crees que VHDL es tan malo?
stanri

2
También se podría decir que Verilog es una abominación, use VHDL. VHDL espera que digas exactamente lo que quieres, mientras que Verilog adivina. Pero eso es solo mi £ 0.02.
Brian Drummond

1
@markt, comencé con VHDL, así que en un momento aprecié la gran tipología de la misma. Me obligó a pensar en lo que quería y a crear buenos hábitos cuando comenzaba. Ahora estoy demasiado lejos en el campamento de SystemVerilog para preocuparme demasiado de cualquier manera, honestamente.
stanri

Respuestas:


14

El diseño esquemático solo es útil cuando solo está uniendo algunos módulos listos para usar (contadores, sumadores, memoria, etc.). Pero implementar un algoritmo real (digamos, un algoritmo de cifrado de hashing) es casi imposible sin un HDL (como VHDL o Verilog), ya que no hay forma de describir un sistema a nivel de comportamiento con símbolos esquemáticos.

La mayoría de los proyectos se realizan en HDL de estilo de comportamiento porque son demasiado complejos para sintetizarlos a mano y dibujarlos usando primitivas lógicas esquemáticamente.

Los CPLD generalmente se usan para la lógica del pegamento y menos para el procesamiento, y en general la lógica es fácil de implementar esquemáticamente, por lo que creo que tiene razón cuando sugiere que los diseños basados ​​en FPGA se benefician más del uso de un HDL.


Puedes hacer cosas muy complejas en un sistema esquemático simbólico. Llegaría al extremo de decir que cualquier cosa que se pueda hacer en un HDL podría implementarse en un sistema basado en un esquema, aunque a costa del mantenimiento. Siempre que el conjunto de herramientas pueda definir bloques de símbolos que actúen como un solo símbolo, puede hacer casi cualquier cosa.
Connor Wolf

1
Un buen ejemplo aquí es labview. Es una interfaz de programación simbólica donde las personas han diseñado sistemas masivamente complejos que automatizan fábricas enteras. El resultado final es casi imposible de mantener, pero es posible (nota: no estoy hablando de si es una buena idea, solo la viabilidad básica).
Connor Wolf

"La mayoría de los proyectos se realizan en HDL de estilo conductual ..." no es compatible y, de hecho, NO es cómo funcionan los flujos de diseño.
marcador de posición

@ConnorWolf Tengo que estar en desacuerdo acerca de que el código de Labview es tan imposible de mantener, no es que sea un gran admirador. Hay algunas mejores prácticas que realmente ayudan. Para mí, generalmente es el abandono ante cualquier esperanza de compatibilidad hacia adelante o hacia atrás lo que causa problemas de mantenimiento, en oposición a cualquier cosa inherente al lenguaje G;)
Scott Seidman

4

Un par de aspectos prácticos además de la excelente respuesta de Jay:

  • Loco. Las herramientas esquemáticas tienden a tener errores * que el resto del conjunto de herramientas. Esto posiblemente se deba a la preferencia de Verilog / VHDL sobre los esquemas en la industria y, por lo tanto, los desarrolladores de software prestan menos atención a la entrada esquemática.
  • Velocidad. El esquema debe convertirse primero a un HDL antes de pasarlo a la herramienta de síntesis. Esto puede tener un impacto negativo en los tiempos de construcción. El HDL generado también puede no ser muy legible si necesita inspeccionarlo por algún motivo.
  • Portabilidad. Dependiendo de la cantidad de primitivas específicas del proveedor utilizadas, Verilog y VHDL son más o menos portátiles entre dispositivos. Los esquemas de portabilidad tienen que volver a dibujar todo o confiar en las capacidades de importación / exportación proporcionadas (si corresponde).

* Mi error favorito en Xilinx ISE fue la incapacidad de seleccionar cables verticales.


2

 Hay muchas ventajas de un HDL (Lenguajes de descripción de hardware) como estándar de entrada de diseño.

La descripción de la funcionalidad puede estar en un nivel superior, los diseños basados ​​en HDL se pueden sintetizar en una descripción de nivel de puerta de una tecnología elegida, un diseño HDL se entiende más fácilmente que una lista de red de nivel de puerta o una descripción esquemática y HDL reducir errores debido a la fuerte verificación de tipos.

Los lenguajes de descripción de hardware VHDL y Verilog fueron diseñados para modelar hardware con la intención de modelar a un nivel de abstracción más alto que incluye características como concurrencia, temporización, jerarquía, reutilización de componentes, comportamiento de estado, comportamiento sincrónico, comportamiento asíncrono, sincronización y paralelismo inherente .

Surgen problemas durante la síntesis, mapeando la descripción del diseño a un proceso específico e implementación de puerta. Esto requiere que no pueda usar las funciones de alto nivel de HDL; debe producir "Verilog / VHDL sintetizable"

Entonces tiene HDL para síntesis y HDL para simulación y el subconjunto que es sintetizable es específico de la herramienta.

No puede pasar de una descripción de diseño de comportamiento a una lista / diseño de red. Pero puede estructurar su diseño para que tenga componentes de comportamiento que también tengan un aspecto sintetizable que pueda compararse entre sí. Comienzas con el comportamiento y luego, una vez que está funcionando, reescribes para síntesis (que es un subconjunto). Pasas de lo general a lo específico y construyes bancos de pruebas en el camino.


1

Una ventaja más es que los HDL obtienen las mismas ventajas que los lenguajes de programación normales, ya que pueden usarse en sistemas de control de versiones estándar, diferidos para examinar cambios, etc.


0

Además de lo que ya se ha dicho: la representación de texto es simplemente mucho más manejable, especialmente en proyectos grandes. Puede (aunque con grandes dificultades) convertir cualquier HDL sintetizable en esquemático, pero es más fácil trabajar con cientos de líneas de texto sin formato que con cientos de elementos esquemáticos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.