Solución:
No puedo decirle cuál aprender, pero aquí hay algunos puntos contrastantes (de un usuario muy centrado en VHDL, ¡pero he tratado de ser lo más justo posible!), Que pueden ayudarlo a tomar una decisión basada en sus propias preferencias. en términos de estilo de desarrollo:
Y tenga en cuenta la famosa cita que va en la línea de “Prefiero cualquiera de los dos que no estoy usando actualmente” (lo siento, no puedo recordar quién escribió esto en realidad, ¿posiblemente Janick Bergeron?)
VHDL
- fuertemente tipado
- más detallado
- muy determinista
- sintaxis no similar a C (y mentalidad)
Para empezar, hay muchos errores de compilación, pero la mayoría de las veces funciona como esperabas. Esto puede conducir a una curva de aprendizaje de sentimientos muy pronunciada (junto con la sintaxis desconocida)
Verilog
- débilmente tipado
- mas conciso
- solo determinista si sigues algunas reglas con cuidado
- más sintaxis similar a C (y mentalidad)
Los errores se encuentran más adelante en la simulación: la curva de aprendizaje para “tener ganas de hacer algo” es más superficial, pero dura más (¿si esa es la metáfora correcta?)
También a favor de Verilog es que la verificación de gama alta se está inclinando cada vez más hacia SystemVerilog, que es una gran extensión de Verilog. Pero las herramientas de gama alta también pueden combinar el código de síntesis VHDL con el código de verificación SystemVerilog.
Para otro enfoque completamente: MyHDL: obtiene todo el poder de Python como lenguaje de verificación con un conjunto de extensiones de síntesis a partir de las cuales puede generar VHDL o Verilog.
O Cocotb: todo el poder de Python como lenguaje de verificación, con su código sintetizable aún escrito en cualquier HDL que decidió aprender (es decir, VHDL o Verilog).
SystemC también es una buena opción para HDL. SystemC admite el diseño de nivel de sistema y de nivel de transferencia de registro (RTL). Solo necesita un compilador C ++ para simularlo. Las herramientas de síntesis de alto nivel convertirán el código SystemC en Verilog o VHDL para la síntesis lógica.
Aprendí ambos la misma semana. VHDL es como ADA / Pascal y Verilog es como C. VHDL es más detallado y más doloroso para obtener una compilación, pero una vez que obtiene una compilación, sus posibilidades de éxito son mayores. Al menos eso es lo que encontré. Verilog, como C, está bastante contento de dejarte dispararte en el pie. Algunas industrias como la aeroespacial / gubernamental se inclinan hacia VHDL, otras se inclinan hacia Verilog. El problema que encuentro con ambos son las capacidades del banco de pruebas, y cuando trato de aprender y tratar de pasar de la simulación a la escritura de silicio / FPGA solo código sintetizable es otro nivel de educación.
Hay un idioma que me gusta mucho llamado CDL. Es estrictamente sintetizable, usted escribe sus bancos de prueba de otras formas, genera Verilog sintetizable que puede llevar a otras herramientas. Desafortunadamente, faltan los documentos CDL, espero obtener algunas muestras en el mundo para mostrar cuánto más fácil es usar que Verilog o VHDL, pero no lo he hecho. Viene con su propio entorno de simulación / prueba. Con CDL y GTKWave puede realizar una cantidad considerable de trabajo.
Otra herramienta llamada Verilator es bastante rígida para mantener limpio su Verilog. Es un simulador de Verilog gratuito con una forma muy fácil de adjuntar al sim o crear bancos de prueba en C / C ++. También puede usar Verilog, no lo limita allí. También está Icarus Verilog, que es más grande y más conocido, pero recomendaría Verilator si quieres aprender Verilog. Para VHDL existe GHDL, mi experiencia con él no fue tan buena como Verilator, pero al menos hay una herramienta gratuita para intentar mojarse los pies. Si tiene experiencia en programación de software, es probable que aprenda y disfrute de Verilog más rápido que VHDL.
Definitivamente estoy de acuerdo con Leon, prueba ambos. fpga4fun y otras páginas web tienen buena información y algunas de esas páginas le darán los equivalentes de Verilog y VHDL para el tema que están discutiendo. Encuentro páginas como esas las más útiles para comparar los dos idiomas. Si usar un HDL es algo que desea hacer en su carrera, le recomiendo tener al menos algunas capacidades con ambos, tal vez realmente bueno con uno, pero no sea completamente incapaz de usar el otro.
Se han librado muchas guerras santas por esto. Uno en particular desventaja de Verilog es su comportamiento no determinista. http://www.sigasi.com/content/verilogs-major-flaw