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?
vhdl
verilog
programmable-logic
Bruno Ferreira
fuente
fuente
Respuestas:
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.
fuente
Un par de aspectos prácticos además de la excelente respuesta de Jay:
* Mi error favorito en Xilinx ISE fue la incapacidad de seleccionar cables verticales.
fuente
 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.
fuente
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.
fuente
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.
fuente