Pregunta

Soy un desarrollador integrado autodidacta. Principalmente uso AVR programados en C y ASM, pero he incursionado en otros sistemas. Estoy buscando pasar a dispositivos más complejos como CPLD y FPGA, pero no tengo idea de por dónde empezar. Entonces mis preguntas y media son:

  1. ¿Prefieres VHDL o Verilog y por qué?
  2. ¿Cuál es una buena manera para que alguien sin experiencia previa en HDL comience a aprender una bestia así?
¿Fue útil?

Solución

Compre un kit de inicio barato de Xilinx o Altera (los dos grandes jugadores de FPGA). Un kit de inicio Xilinx Spartan3 cuesta $ 200.

Personalmente prefiero VHDL. Está fuertemente tipado y tiene características más avanzadas que Verilog. VHDL es más popular en Europa y Verilog está dominando en los Estados Unidos.

Compre un libro (por ejemplo, Peter Ashendens The Designers Guide to VHDL) y comience a simular sus diseños en un simulador gratuito. ModelSim de Mentor Graphis es bueno y hay versiones gratuitas disponibles (con velocidad de simulación paralizada).

Cree un proyecto interesante (mini cpu, gráficos vga, sintetizador) y comience a diseñar. Siempre simule y asegúrese de que su diseño funcione antes de poner su diseño en el hardware ...

Si no tienes experiencia en electrónica digital, compra un libro sobre ese tema también.

Otros consejos

En el pasado, cuando trabajaba en diseño ASIC, estaba en verilog. En muchos casos, como diseñador, no puede elegir: las herramientas de síntesis ASIC para un HDL cuestan una cantidad sustancial de dinero, y las empresas solo compran la cadena de herramientas completa por un & Quot; bendito & Quot; idioma. Mi empleador se había estandarizado en Verilog, así que eso es lo que usamos.

Las herramientas de síntesis FPGA son sustancialmente más baratas, por lo que tiene más libertad como diseñador de FPGA para elegir su idioma y herramientas preferidas.

También hay simuladores de verilog gratuitos disponibles en verilog.net .

Como @kris mencionó, una placa de inicio FPGA también es un buen camino a seguir. Hacer que su código verilog encienda un LED en un tablero es infinitamente más satisfactorio que una forma de onda de simulador en la pantalla.

Consulte también opencores.org : hay algunos artículos y mucho código fuente abierto en ambos Verilog y VHDL de los que puede aprender.

Por lo que puedo decir, VHDL vs Verilog se vuelve tan religioso como Ruby vs Python o Java vs C #. Diferentes personas tienen sus propios favoritos.

Echa un vistazo a este sitio: http://www.fpga4fun.com/

Buenos proyectos simples usando herramientas simples. Utilicé una de estas placas hace unos años para construir un pequeño sistema de visualización VGA para usar como tablón de anuncios.

Al mirar el sitio nuevamente, estoy pensando en obtener una placa Xylo-LM, ya que tiene un procesador ARM, así como SDRAM y un Xilinx Spartan 3e.

Otra placa que usé antes fue la XPort 2 de Charmed Labs. Esto se conecta a un Gameboy Advance que está bien soportado con herramientas de desarrollo de código abierto.

Echa un vistazo: http://www.charmedlabs.com/index.php?option=com_virtuemart&page=shop.browse&category_id=6&Itemid=43

Una cosa adicional en la que pensar es si debe comenzar aprendiendo un HDL, o aprendiendo lógica booleana, mapas de Karnaugh, el teorema de DeMorgan, compuertas, implementando aritmética en compuertas, etc. Es fácil escribir HDL no sintetizable si usted no tiene un modelo mental preciso de cómo se verá el hardware subyacente.

Este libro es la versión Verilog del uno que utilicé en la universidad, y en mi opinión hizo un trabajo bastante bueno. Comienza con el material mencionado anteriormente, así como información básica básica sobre la implementación de puertas a nivel de transistor, luego lo introduce a un HDL y le hace construir bloques de hardware estructural y de comportamiento progresivamente más complejos. Sí, sé que es muy caro, como lo son la mayoría de los libros de texto universitarios, pero esta es una de esas cosas para las que la información que he podido encontrar en línea, al menos, ha sido lamentablemente inadecuada.

Una vez que esté listo para elegir un HDL, le recomiendo Verilog (habiendo aprendido primero el VHDL). Sí, VHDL alguna vez fue mucho más rico en funciones que Verilog, pero las revisiones posteriores del lenguaje (Verilog 2001, Verilog 2005, SystemVerilog, etc.) han seleccionado la mayoría de las características interesantes, y hay un soporte de cadena de herramientas mucho más robusto para Verilog y su variante en estos días, además de ser el idioma dominante en uso en los EE. UU. (En mi experiencia, VHDL solo se usa aquí cuando se trata de bloques heredados extremos y en contextos académicos, en parte debido a las herramientas de soporte mencionadas previamente). Finalmente, una vez que haya aprendido el HDL, tiene un lenguaje de verificación de hardware (HVL) en SystemVerilog con una sintaxis estricta de superconjunto, lo que le ahorra una buena parte de la curva de aprendizaje. No es así para VHDL, que yo sepa.

Altera y Xilinx tienen simuladores integrados en sus conjuntos de herramientas gratuitas. Son versiones limitadas de las muy populares herramientas Mentor ModelSim. Manejarán el tamaño de los diseños que es probable que quepa en & Lt; Tablero de $ 500 (EE. UU.).

Para la opción HDL, Verilog es C como VHDL es ADA. Por lo tanto, es más fácil comenzar con Verilog, pero puede cometer errores más fácilmente. Verifique las advertencias de simulación y compilación para evitar esos problemas.

Verilog es mucho más fácil de aprender y sintaxis más simple. También es un idioma más nuevo. En segundo lugar, la mayoría de la gente usa verilog. VHDL tiene muchos tipos de datos que le dan una curva de aprendizaje. Una vez que conozca verilog, será más fácil cerrar la brecha con VHDL. Ah, y también hay macros en verilog que son muy neet. Inventé un lenguaje con eso. Finalmente, eventualmente podrá hacer un diseño de HW de lenguaje mixto. Comencé con VHDL, luego aprendí verilog y ahora soy pro verilog.

Estaba en el mismo barco que ahora hace un semestre. Mi libro preferido era este , ya que hablaba de FPGA al revisar la lógica digital . También muestra comparaciones lado a lado del código VHDL y Verilog para que, en lugar de elegir uno al que la gente pueda empujar, pueda aprender el que más le guste estilísticamente.

En cuanto a un FPGA en sí, use Xilinx's ISE webpack para hacer su programación (es gratis), y comenzar con FPGA como placa Basys2 FPGA . Es un FPGA muy pequeño que debería comenzar por un pequeño precio, pero tiene la ventaja adicional de que aprende los recursos y la administración de la memoria muy temprano. Puede utilizar Digilent Adept (también gratuito) para facilitar la vida en cargar su " compilado " código para el tablero.

¡Buena suerte!

Antes de sumergirse en Verilog / VHDL o comprar un kit de desarrollo FPGA, recomendaría tomar una clase introductoria sobre diseño digital. Hay buenas OpenCourseWare MIT en línea.

Buena suerte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top