No tengo experiencia en lógica programable, uso 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 el 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 del uso de estos lenguajes?
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 hash de criptografía) es casi imposible de hacer 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 conductual porque son demasiado complejos para sintetizarlos a mano y dibujarlos utilizando primitivas lógicas de forma esquemática.
Los CPLD generalmente se usan para la lógica de pegado y menos para el procesamiento, y generalmente 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.
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.
Hay muchas ventajas de un HDL (lenguaje 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 a nivel de puerta de una tecnología elegida, un diseño HDL se entiende más fácilmente que una lista de red a nivel de puerta o una descripción esquemática y HDL reducir los 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 en un nivel de abstracción más alto que incluye características como concurrencia, tiempo, jerarquía, reutilización de componentes, comportamiento de estado, comportamiento síncrono, comportamiento asíncrono, sincronización y paralelismo inherente. .
Surgen problemas durante la síntesis, asignando la descripción del diseño a un proceso específico y la implementación de la puerta. Esto requiere que no pueda usar las características 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 se puede sintetizar es específico de la herramienta.
No puede pasar de una descripción de diseño de comportamiento a una lista de red/diseño. Pero puede estructurar su diseño para que tenga componentes de comportamiento que también tengan un aspecto sintetizable que se pueda comparar entre sí. Comienza con el comportamiento y luego, una vez que funciona, vuelve a escribir para la síntesis (que es un subconjunto). Pasas de lo general a lo específico y construyes bancos de pruebas en el camino.
Una ventaja más es que los HDL obtienen las mismas ventajas que los lenguajes de programación regulares en el sentido de que pueden usarse en sistemas de control de versiones estándar, diferenciarse para examinar cambios, etc.
Además de lo que ya se ha dicho: las representaciones de texto son simplemente mucho más manejables, especialmente en proyectos grandes. Puede (aunque con grandes dificultades) convertir cualquier HDL sintetizable en un esquema, pero es más fácil trabajar con cientos de líneas de texto sin formato que con cientos de elementos esquemáticos.
David
mercado
Stanri
usuario_1818839
mercado
Stanri