¿Cuáles son algunas cosas que se pueden hacer en VHDL pero no en verilog y viceversa?

VHDL y Verilog son bastante similares pero no tienen las mismas características, aunque ciertamente hay una gran superposición.

¿Cuáles son algunas cosas que son más fáciles de hacer en VHDL pero no tan fáciles o incluso imposibles de hacer en Verilog? Sólo quiero entender cómo se comparan.

Me pregunto si uno es tan bueno como el otro, ¿por qué no usar uno de los dos y simplificar el trabajo de los proveedores de EDA que crean herramientas para simular y sintetizar estos HDL y también el trabajo y la vida de muchas otras personas?

Parafraseando su último párrafo: si uno es mejor que el otro, ¿por qué usar el peor? Hay muchos lenguajes de programación, varios HDL, numerosos software para realizar las mismas tareas y es realmente la preferencia del usuario/desarrollador qué usar, considerando diferentes compensaciones.
Encuentro Verilog mucho más fácil de escribir, pero VHDL es muy popular. Realmente es solo una cuestión de gusto; si tiene un TOC grave, use VHDL, si quiere ser productivo, use Verilog. Además, la captura esquemática es una pérdida de tiempo.
@markt La captura esquemática podría ser útil para la interconexión de alto nivel y la demostración del diagrama de bloques para la administración :)
@EugeneSh. Llamada justa :) pero en términos de ingeniería es una pérdida de tiempo.
Hmm, sí, en un entorno profesional, una pérdida de tiempo. En mi programa de maestría, tomando una clase de sistemas digitales por diversión, siempre terminaba nuestras tareas usando captura esquemática más rápido que mis compañeros de clase (que estaban en esa concentración y habían aprendido VHDL) que hacían el trabajo en VHDL. Entonces... yo diría que vaya con lo que funcione para usted, solo asegúrese de que al menos aprenda Verilog o VHDL también.
@markt jeje. Uso VHDL porque prefiero que el diseño de mi hardware sea explícito. No siento lo mismo por el software, aunque lo escribo principalmente en C. El TOC no tiene nada que ver con eso.
Muchas deficiencias de VHDL se abordaron en versiones recientes del estándar. Muchas deficiencias de Verilog se resolvieron mediante la introducción de SystemVerilog. El problema es que, a menudo, solo las versiones antiguas son compatibles con simuladores y sintetizadores, y una se queda con Verilog o VHDL'93.
Respondiendo directamente a su pregunta, ambos son lenguajes bastante terribles. Hay algunos lenguajes nuevos que pueden apestar un poco menos, como Chisel o MyHDL. SystemVerilog probablemente 'ganará', pero es un poco como C++, un desastre inflado.
SystemVerilog está dirigido a la verificación más que al diseño. Sé que SystemC existe para el mismo propósito. En cuanto al diseño, Verilog y VHDL continúan dominando y son razonables para la tarea prevista. No estoy al tanto de ningún recién llegado, por lo que su respuesta me sorprende.

Respuestas (2)

VHDL toma prestado de Ada y está fuertemente tipado en comparación con Verilog. Las cosas simples son más fáciles de hacer en Verilog, pero las cosas complejas son más fáciles de hacer en VHDL. Ambos pueden hacer el trabajo. Verilog le permite usar el preprocesador C, que a veces es agradable en comparación con los genéricos.

Nada es imposible en ninguno de los dos.

* Comienza la respuesta incorrecta *

El Manual de metodología de reutilización tiene una sección sobre el estilo de codificación HDL recomendado y una más específica sobre la traducción de VHDL a verilog. Lo que más recordé es que se deben evitar declaraciones de "generación" al escribir para reutilizarlas porque no tienen equivalencia en verilog.

*Termina respuesta incorrecta*

El usuario TM90 señaló en un comentario a continuación que el bloque de generación existe en Verilog. Mi respuesta es incorrecta.

Consulte IEEE Std 1364-2001, IEEE Standard Verilog® Hardware Description Language, 12.1.3 Creación de instancias generadas. Observe que "No use declaraciones de generación. No hay una construcción equivalente en Verilog" está en el 2002 (actual, 3.ª edición) de The Reuse Methodology Manual, así como en el 2.º (1999).
Definitivamente hay un bloque de generación en Verilog 2001. Ver sutherland-hdl.com/online_verilog_ref_guide/… 9.0 Generar bloques
Una de las cosas que he encontrado es que verilog permite hacer una descripción de nivel más bajo, bajando a los transistores mismos. Esto no es posible usando VHDL.