¿Cómo aprendo HDL?


24

Tengo un curso de diseño digital en este semestre y me encanta. Ahora sé que la mayor parte del trabajo en sistemas integrados y diseño digital se realiza primero en simuladores de computadora y luego se implementa utilizando hardware. Entonces me preguntaba cómo debería aprender sobre HDL. Tengo pocas preguntas

  1. ¿Qué? No sé cuáles son los estándares, pero me gustaría aprender cuál es fácil de aprender. Entiendo que la mayoría de los HDL están diseñados para su uso con FPGA. No sé qué.
  2. ¿Cómo? ¿Debo seguir un libro de texto con ejemplos independientes o debería embarcarme en un proyecto como implementar un sistema pequeño (puede ser algo así como el control del semáforo).
  3. ¿Dónde? ¿Dónde obtendría los recursos?

1
¿Puedes aclarar qué es lo que quieres de tu HDL? La mayoría de los HDL están diseñados para usarse con FPGA porque para eso la mayoría de la gente necesita un FPGA. En general, se utiliza un simulador (que funciona a partir de un esquema gráfico) para el diseño de circuitos sin FPGA y sin ASIC. ¿Desea construir: (1) circuitos digitales discretos, es decir, componentes 74XX, (2) circuitos analógicos, es decir, reguladores de conmutación, antenas / transceptores de RF, circuitos genéricos de amplificador operacional, o (3) circuitos analógicos de señal mixta, es decir, interfaz entre señales digitales y analógicas.
Kevin Vermeer

Creo que quiero aprender HDL para describir el hardware. Eso es 1, 2 y 3. También en uno quiero que no sea específico de FPGA porque no tengo el acceso o las finanzas para obtenerlos.
Rick_2047

Creo que quiero aprender HDL para describir el hardware. Eso es 1, 2 y 3. También en uno quiero que no sea específico de FPGA porque no tengo el acceso o las finanzas para obtenerlos. Creo que principalmente quiero usar el HDL para simular lo que pienso. Un gran plan mío este año es hacer mi propia computadora. Creo que usaré 74xx para eso. Es por eso que para probar mis teorías y circuitos surgió la idea de HDL.
Rick_2047

Respuestas:


8

¿Puedes aclarar qué HDL quieres usar? Las opciones son básicamente Verilog o VHDL, [EDIT], y sus parientes, Verilog-ASM y VHDL-ASM (señal mixta analógica). [/ EDIT] Verilog tiene una sintaxis similar a la de C, lo que hace que sea más fácil de aprender si has trabajado con C anteriormente, pero también facilita el desarrollo de malos hábitos: no puedes programar hardware en C, porque es todo paralelo! También como C, supone que sabes lo que estás haciendo, y es fácil dispararte en el pie. VHDL te obliga a pensar de una manera totalmente diferente, lo cual es útil, pero difícil. Es más detallado y es más probable que te advierta si haces algo extraño. Vea esta discusión de Slashdot , o este artículo .

EDITAR: Los "idiomas de Netlist" no son algo que he usado para el trabajo de diseño (en un editor de texto), pero supongo que podría hacerlo. SPICE, el formato de Cadsoft Eagle y EDIF son ejemplos (con propósitos muy diferentes) que vienen a la mente. Solo he usado netlists para verificar que mi esquema es correcto (cada conexión en mi esquema Eagle tiene sentido), para ajustar la abstracción proporcionada por un simulador (SPICE, similar a la forma en que uno usa declaraciones ASM en C), o para exportar / importar entre diferentes programas (EDIF).
El lenguaje de inclusión en la red de Specter está relacionado con Verilog-A [nalog] y SPICE, y está diseñado para trabajos de diseño y verificación. MÁSTILes un lenguaje de modelado de componentes que es compatible con Verilog-AMS y VHDL-AMS. La búsqueda de tutoriales en estos idiomas muestra que a menudo se utilizan herramientas que parecen utilidades de captura esquemática, en lugar de programar en el lenguaje de listas de la red.

También usaré el Xilinx Spartan FPGA y una placa de desarrollo Digilent . Sin embargo, iría con Basys ($ 60) o Nexys ($ 100) si no necesita Ethernet en la placa de inicio ($ 150) mencionada por O Engenheiro (precios con descuento educativo). Basys y Nexys son más baratos y, por lo tanto, más populares en las escuelas, por lo que hay más tutoriales y laboratorios en línea.


Me preguntaba si aprender los llamados lenguajes "Netlist" sería beneficioso o más fácil que aprender Verilog o VHDL.
Rick_2047

Difícil de decir. Depende de lo que quieras hacer con tu idioma. ¿Podemos tener una mejor idea de lo que quiere hacer y qué tipo de idioma quiere usar antes de profundizar en cómo y dónde para cada permutación de media docena de idiomas y muchos casos de uso?
Kevin Vermeer

9

Estoy casi en la misma situación que tú.

Que estoy haciendo:

Había tomado un curso básico muy básico de VHDL en la universidad que había estudiado. Jugué con el tablero Spartan 3E .

Entonces, compré el tablero y comenzaré a jugar.

Unos amigos míos han sugerido estos libros:

  1. Prototipos rápidos de sistemas digitales , James O. Hamblen, Michael D. Furman
  2. Publicaciones de Doone: diseño de chips HDL , Douglas J Smith

Y también ha sugerido este documento:

Guía de diseño de síntesis y simulación Xilinx


1
Secundaría el libro de Hamblen y Furman. Diseñé mi propia placa Altera Flex 10K10 y pude usar la mayor parte del código del libro. Es un libro de cocina, pero nada peor por eso.
Leon Heller

4
  1. Hay dos lenguajes HDL, VHDL y Verilog, pregunte a su profesor qué idioma aprenderá e intente ver cómo funciona: la sintaxis y cómo podría hacer módulos sobre esto y hacer una gran revisión sobre TODOS los circuitos digitales.

  2. Antes de hacer cualquier cosa, haga 1, asegúrese de saber realmente todo sobre los circuitos digitales, porque ese HDL no crea nada nuevo, solo usa estas cosas de una manera diferente. Para que pueda usar uno de los dos libros anteriores, para hacer algunos ejercicios, pídale al maestro los libros que él recomienda y úselos o uno de los dos anteriores.

  3. Pregúntele a su maestro qué FPGA usan en las clases, si es Altera, Xilinx, Lattice u otro, si Altera realiza la descarga de Quartus Web Edition, si Xilinx, ISE Webpack, realiza la descarga gratuita de uno de estos y intente aprender sobre uno de los softwares y haga algunos de sus ejercicios, simulaciones en uno de ellos.

Tienes razón, aproximadamente el 90% del trabajo en HDL se realiza en simuladores, así que aprende sobre el simulador Modelsim y / o el simulador ISIM en xilinx, sus comandos y cómo hacer bancos de pruebas.


Dos grandes HDL. Hay muchos menos populares, como CUPL, MyHDL y Lava. El curso de Diseño Digital en mi universidad mencionó VHDL pero usó CUPL en un laboratorio. Más en wikipedia: en.wikipedia.org/wiki/…
Yann Vernier

3

donde sea que termine trabajando, tendrá que usar el mismo HDL que ya usan, por lo tanto, para aumentar las posibilidades de ser contratado, intente pasar un poco de tiempo con Verilog y VHDL. Solía ​​ser bastante simple: Verilog se usaba en los EE. UU. Y VHDL en Europa; en estos días no es simple.

Una vez que alguien mencionó aprender a "pensar de manera diferente" para VHDL, también debe hacer eso para verilog, parece C pero no lo es, un buen lugar para comenzar es mirar y ver dónde se crean los cables y los flops durante la síntesis, una vez que llegue el punto en el que puede verlos, y simplemente puede 'ver' los peligros de sincronización en su cabeza, está casi todo el camino allí


2

icarus verilog o verilator son lo que recomendaría para aprender o jugar con verilog. ghdl es lo que usaría para jugar con vhdl. Lejos de la corriente principal, pero también recomendaría cyclicity-cdl.sf.net, que tiene su propio entorno sim, etc. y produce un verilog sintetizable. use y aprenda gtkwave para examinar los archivos .vcd generados por los simuladores.


1

Aprendí Verilog en la universidad en un curso. La culminación de ese curso fue la implementación de un procesador MIPS Superscalar de 2 vías (el 30% de la clase lo hizo funcionar por completo; yo estaba en el otro 70%). Creo que, en general, las cosas en la industria se están alejando de Verilog hacia VHDL. Dicho esto, hay muchos tutoriales en línea para ambos idiomas. Aquí hay uno en VHDL y aquí hay uno en Verilog .

Probablemente quieras usar ModelSim y probablemente puedas usar la edición para estudiantes (creo que es gratis; tal vez con restricciones). Por cierto, recomiendan usar el diseño de sistemas digitales usando VHDL 2nd Edition como libro de texto.


1

Aquí hay un kit de desarrollo FPGA barato que puede ser adecuado para usted. Sin embargo, no estoy seguro del nivel de herramientas de código abierto que funcionan con él. Las cadenas de herramientas del proveedor están disponibles para descarga gratuita. He oído que, en el punto de precio, este kit está disponible, vale la pena ir y obtenerlo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.