¿Cómo aprendo HDL?

Tengo un curso en 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 usando hardware. Así que me preguntaba cómo debo hacer para aprender HDL. tengo pocas preguntas

  1. ¿Qué? No sé cuáles son los estándares, pero me gustaría saber cuál es fácil de aprender. Entiendo que la mayoría de los HDL están diseñados para usarse con FPGA. No sé qué.
  2. ¿Cómo? ¿Debería seguir un libro de texto con ejemplos independientes o debería embarcarme en un proyecto como implementar un sistema pequeño (puede ser algo como el control de semáforos).
  3. ¿Dónde? ¿Dónde conseguiría los recursos?
¿Puedes aclarar lo que quieres de tu HDL? La mayoría de los HDL están diseñados para usarse con FPGA porque para eso es que la mayoría de la gente necesita un FPGA. En general, se utiliza un simulador (que trabaja a partir de un esquema gráfico) para el diseño de circuitos que no son FPGA ni 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 amplificadores operacionales o (3) circuitos analógicos de señal mixta, es decir, interfaces entre señales digitales y analógicas.
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 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. Uno de mis principales planes este año es hacer mi propia computadora. Creo que usaré 74xx para eso. Por eso, para probar mis teorías y circuitos, surgió la idea de HDL.

Respuestas (7)

¿Puedes aclarar qué HDL quieres usar? Las opciones son básicamente Verilog o VHDL, [EDITAR], y sus parientes, Verilog-ASM y VHDL-ASM (señal mixta analógica). [/EDITAR]Verilog tiene una sintaxis similar a C, lo que hace que sea más fácil de aprender si ha trabajado con C antes, pero esto también facilita el desarrollo de malos hábitos: no puede programar hardware en C, porque es todo paralelo! También como C, asume que sabes lo que estás haciendo, y es fácil pegarte un tiro 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 "lenguajes de lista de red" no son algo que haya 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 todos ejemplos (con propósitos muy diferentes) que me vienen a la mente. Solo he usado netlists para verificar que mi esquema sea correcto (¿tiene sentido cada conexión en mi esquema Eagle), para modificar la abstracción proporcionada por un simulador (SPICE, similar a la forma en que se usan las declaraciones ASM en C), o para exportar/importar entre diferentes programas (EDIF).
El lenguaje de netlisting de Spectre 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 sobre estos lenguajes muestra que a menudo se utilizan herramientas que parecen utilidades de captura de esquemas, en lugar de programar en el propio lenguaje de netlisting.

También apoyaré 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 de educación). Los 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.
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 lenguaje quiere usar antes de profundizar en el cómo y dónde para cada permutación de media docena de idiomas y muchos casos de uso?

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

Que estoy haciendo:

Tomé un curso gratuito muy básico de VHDL en la universidad en la que estudié. Jugué con el tablero Spartan 3E .

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

Unos amigos míos me han sugerido estos libros:

  1. Creación rápida de prototipos 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 simulación y síntesis de Xilinx

Yo apoyaría el libro de Hamblen y Furman. Diseñé mi propia pequeña placa Altera Flex 10K10 y pude usar la mayor parte del código del libro con ella. Es un libro de cocina, pero nada peor por eso.
  1. Hay dos lenguajes HDL, son VHDL y Verilog, pregúntale a tu profesor qué lenguaje aprenderás e intenta ver cómo funciona: la sintaxis y cómo podrías hacer módulos sobre esto y hacer una gran revisión sobre TODOS los circuitos digitales.

  2. Antes de hacer cualquier cosa, asegúrese de que realmente sabe todo sobre los circuitos digitales, porque HDL no crea nada nuevo, solo usa estas cosas de una manera diferente. Así que puedes usar uno de los dos libros de arriba, para hacer algunos ejercicios, pregúntale a tu maestro los libros que te recomienda y úsalos o uno de los dos de arriba.

  3. Pregúntale a tu profesor que FPGA usan en las clases, si es Altera, Xilinx, Lattice u otro, si Altera hace la descarga de Quartus Web Edition, si es Xilinx, el ISE Webpack, haz la descarga gratis de uno de estos y intente aprender sobre uno de los softwares y haga algunos de sus ejercicios, simulaciones en uno de ellos.

Tiene razón, alrededor del 90 % del trabajo en HDL está en simuladores, así que aprenda sobre el simulador Modelsim y/o el simulador ISIM en xilinx, sus comandos y cómo hacer bancos de pruebas.

Dos HDL principales. 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/…

donde sea que termine trabajando, tendrá que usar el mismo HDL que ya usan, así que para aumentar las posibilidades de que lo contraten, 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 tan simple.

Upthread alguien mencionó aprender a 'pensar de manera diferente' para VHDL; también debe hacerlo para verilog, parece C pero no lo es. el punto donde puede verlos, y puede simplemente 'ver' los peligros de tiempo en su cabeza, está casi todo el camino allí

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 ciclicity-cdl.sf.net que tiene su propio entorno de simulación, etc. y produce verilog sintetizable. use y aprenda gtkwave para examinar los archivos .vcd generados por los simuladores.

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 logró que funcionara completamente; yo estaba en el otro 70 %). Creo que las cosas en la industria se están alejando en general de Verilog y 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 querrá usar ModelSim y probablemente pueda usar la edición para estudiantes (creo que es gratis; tal vez con restricciones). Por cierto, recomiendan usar Diseño de sistemas digitales con VHDL 2.ª edición como libro de texto.

Aquí hay un kit de desarrollo de FPGA económico 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 kits de herramientas del proveedor están disponibles para su descarga gratuita. Escuché que por el precio de venta de este kit, vale la pena ir y conseguirlo.