Comment apprendre le HDL

24

J'ai un cours de design numérique au cours de ce semestre et j'adore ça. Maintenant, je sais que la plupart des travaux sur les systèmes embarqués et la conception numérique sont d'abord effectués sur des simulateurs informatiques, puis mis en œuvre à l'aide de matériels. Je me demandais donc comment faire pour apprendre le HDL. J'ai quelques questions

  1. Quelle? Je ne sais pas quelles sont les normes, mais j'aimerais savoir ce qui est simple à prendre. Je comprends que la plupart des HDL sont conçus pour être utilisés avec des FPGA, je ne sais pas quoi.
  2. Comment? Dois-je suivre un manuel avec des exemples indépendants ou dois-je entreprendre un projet comme la mise en œuvre d'un petit système (peut être quelque chose comme le contrôle des feux de circulation).
  3. Où? Où puis-je obtenir les ressources?
Rick_2047
la source
1
Pouvez-vous clarifier ce que vous voulez de votre HDL? La plupart des HDL sont conçus pour être utilisés avec des FPGA car c'est pour cela que la plupart des gens ont besoin d'un FPGA. En général, un simulateur (travaillant à partir d'un schéma graphique) est utilisé pour la conception de circuits non FPGA et non ASIC. Souhaitez-vous construire: (1) des circuits numériques discrets, c'est-à-dire des composants 74XX, (2) des circuits analogiques, c'est-à-dire des régulateurs de commutation, des antennes / émetteurs-récepteurs RF, des circuits d'amplificateurs opérationnels génériques ou (3) des circuits analogiques à signaux mixtes, c'est-à-dire des interfaces entre les signaux numériques et analogiques.
Kevin Vermeer
Je pense que je veux apprendre le HDL pour décrire le matériel. C'est 1, 2 et 3. Aussi dans celui-ci, je veux que ce soit non spécifique au FPGA parce que je n'ai pas l'accès ou les finances pour les obtenir.
Rick_2047
Je pense que je veux apprendre le HDL pour décrire le matériel. C'est 1, 2 et 3. Aussi dans celui-ci, je veux que ce soit non spécifique au FPGA parce que je n'ai pas l'accès ou les finances pour les obtenir. Je pense principalement que je veux utiliser le HDL pour simuler ce que je pense. Un de mes projets majeurs cette année est de créer mon propre ordinateur. Je pense que j'utiliserai 74xx pour cela. C'est pourquoi, pour tester mes théories et circuits, l'idée du HDL est venue.
Rick_2047

Réponses:

8

Pouvez-vous préciser quel HDL vous souhaitez utiliser? Les choix sont essentiellement Verilog ou VHDL, [EDIT], et leurs proches, Verilog-ASM et VHDL-ASM (signal mixte analogique). [/ EDIT] Verilog a une syntaxe de type C, ce qui facilite la lecture si vous avez déjà travaillé avec C, mais cela facilite également le développement de mauvaises habitudes - Vous ne pouvez pas programmer de matériel en C, car il est tout parallèle! Tout comme C, cela suppose que vous savez ce que vous faites et il est facile de se tirer une balle dans le pied. VHDL vous oblige à penser d'une manière totalement différente, ce qui est utile, mais difficile. Il est plus verbeux et plus susceptible de vous avertir si vous faites quelque chose d'étrange. Voir cette discussion Slashdot ou cet article .

EDIT: Les "langages Netlist" ne sont pas quelque chose que j'ai utilisé pour le travail de conception (dans un éditeur de texte), mais je suppose que vous pourriez. SPICE, le format de Cadsoft Eagle et EDIF sont tous des exemples (à des fins très différentes) qui me viennent à l'esprit. Je n'ai utilisé des listes de diffusion que pour vérifier que mon schéma est correct (chaque connexion dans mon schéma Eagle a-t-elle un sens), pour modifier l'abstraction fournie par un simulateur (SPICE, similaire à la façon dont on utilise les instructions ASM en C), ou pour exporter / importer entre différents programmes (EDIF).
Le langage de netlisting Spectre est lié à Verilog-A [nalog] et SPICE, et est conçu pour les travaux de conception et de vérification. MÂTest un langage de modélisation de composants compatible avec Verilog-AMS et VHDL-AMS. La recherche de didacticiels sur ces langues montre que des outils qui ressemblent à des utilitaires de capture schématique sont souvent utilisés, plutôt que de programmer dans le langage de netlisting lui-même.

Je seconderai également le FPGA Xilinx Spartan et une carte de développement Digilent . Cependant, j'irais avec les Basys (60 $) ou Nexys (100 $) si vous n'avez pas besoin de l'Ethernet sur la carte de démarrage (150 $) mentionné par O Engenheiro (Prix avec réduction pour l'éducation). Les Basys et Nexys sont moins chers et donc plus populaires dans les écoles, il y a donc plus de tutoriels et de laboratoires en ligne.

Kevin Vermeer
la source
Je me demandais si l'apprentissage des langues dites "Netlist" serait bénéfique ou plus facile que l'apprentissage de Verilog ou VHDL?
Rick_2047
Dur à dire. Cela dépend de ce que vous voulez faire avec votre langue. Pouvons-nous avoir une meilleure idée de ce que vous voulez faire et du type de langage que vous souhaitez utiliser avant de nous plonger dans le comment et le lieu pour chaque permutation d'une demi-douzaine de langues et d'un grand nombre de cas d'utilisation?
Kevin Vermeer
9

Je suis presque dans la même situation que toi.

Qu'est-ce que je fais:

J'avais suivi un cours gratuit de base de VHDL dans le collège que j'avais étudié. J'avais joué avec le plateau Spartan 3E .

J'ai donc acheté la planche et je vais commencer à jouer.

Un de mes amis a suggéré ces livres:

  1. Prototypage rapide de systèmes numériques , James O. Hamblen, Michael D. Furman
  2. Publications Doone - Conception de puces HDL , Douglas J Smith

Et il a également suggéré ce document:

Guide de conception de synthèse et de simulation Xilinx

Daniel Grillo
la source
1
J'appuierais le livre Hamblen et Furman. J'ai conçu ma propre petite carte Altera Flex 10K10 et j'ai pu utiliser la plupart du code du livre avec. C'est un livre de cuisine, mais rien de pire pour ça.
Leon Heller
4
  1. Il existe deux langages HDL, ils sont VHDL et Verilog, demandez à votre professeur quelle langue allez-vous apprendre et essayer de voir comment cela fonctionne: la syntaxe et comment pourriez-vous faire des modules à ce sujet et faire une grande revue de TOUS les circuits numériques.

  2. Avant de faire quoi que ce soit, assurez-vous que vous savez vraiment tout sur les circuits numériques, parce que le HDL ne crée rien de nouveau, vous n'utilisez ces choses que d'une manière différente. Vous pouvez donc utiliser l'un des deux livres ci-dessus, pour faire quelques exercices, demandez à votre professeur les livres qu'il recommande et utilisez-les ou l'un des deux ci-dessus.

  3. Demandez à votre professeur quel FPGA utilise-t-il dans les classes, si c'est Altera, Xilinx, Lattice ou autre, si Altera fait le téléchargement de Quartus Web Edition, si Xilinx, le ISE Webpack, faites le téléchargement gratuit de l'un d'eux et essayez d'en apprendre plus sur l'un des logiciels et de faire certains de vos exercices, des simulations sur l'un d'entre eux.

Vous avez raison, environ 90% du travail sur HDL sont sur des simulateurs, alors découvrez le simulateur Modelsim, et / ou le simulateur ISIM sur xilinx, leurs commandes et comment faire des bancs d'essai.

Zork
la source
Deux HDL majeurs. Il y en a beaucoup moins populaires, comme CUPL, MyHDL et Lava. Le cours de conception numérique de mon université a mentionné le VHDL mais a utilisé CUPL dans un laboratoire. Plus sur wikipedia: en.wikipedia.org/wiki/…
Yann Vernier
3

partout où vous finirez par travailler, vous devrez utiliser le même HDL qu'ils utilisent déjà - donc pour augmenter les chances d'être embauché, essayez de passer un peu de temps avec Verilog et VHDL. Auparavant, c'était assez simple: Verilog était utilisé aux États-Unis et VHDL en Europe - de nos jours, ce n'est pas simple.

Une personne a mentionné avoir appris à `` penser différemment '' pour VHDL - vous devez aussi le faire pour Verilog, il ressemble à C mais ce n'est pas le cas - un bon point de départ est de regarder et de voir où les fils et les flops sont créés pendant la synthèse - une fois que vous atteignez le point où vous pouvez les voir, et pouvez simplement «voir» les risques de synchronisation dans votre tête, vous êtes la plupart du chemin

Taniwha
la source
2

icarus verilog ou verilator sont ce que je recommanderais pour apprendre ou jouer avec verilog. ghdl est ce que j'utiliserais pour jouer avec vhdl. Loin du grand public mais je recommanderais également cyclicity-cdl.sf.net qui a son propre environnement de simulation, etc. et produit un verilog synthétisable. utilisez et apprenez gtkwave pour examiner les fichiers .vcd générés par les simulateurs.

old_timer
la source
1

J'ai appris Verilog au collège dans un cours. Le point culminant de ce cours a été la mise en œuvre d'un processeur MIPS Superscalar à 2 voies (30% de la classe l'ont complètement fonctionné; j'étais dans les 70% restants). Je pense que les choses dans l'industrie s'éloignent globalement de Verilog et se tournent vers VHDL. Cela étant dit, il existe de nombreux didacticiels en ligne pour les deux langues. En voici un sur VHDL et en voici un sur Verilog .

Vous allez probablement vouloir utiliser ModelSim et vous pouvez probablement utiliser l'édition étudiante (je pense que c'est gratuit; peut-être avec des restrictions). Soit dit en passant, ils recommandent d'utiliser la conception de systèmes numériques en utilisant VHDL 2nd Edition comme manuel.

vicatcu
la source
1

Voici un kit de développement FPGA bon marché qui peut vous convenir. Cependant, je ne suis pas sûr du niveau des outils Open source qui fonctionnent avec. Les chaînes de trousse à outils du vendeur sont disponibles en téléchargement gratuit. J'ai entendu dire qu'au point de prix, ce kit est disponible, cela vaut la peine d'y aller.

Sushrut J Mair
la source