Wie lerne ich HDL?

24

Ich habe einen Kurs in Digital Design in diesem Semester und liebe es einfach. Jetzt weiß ich, dass der Großteil der Arbeit im Bereich Embedded System und Digital Design zunächst auf Computersimulatoren erledigt und dann mithilfe von Hardware implementiert wird. Also habe ich mich gefragt, wie ich HDL lernen soll. Ich habe einige Fragen

  1. Was? Ich weiß nicht, was die Standards sind, möchte aber lernen, welche einfach zu erlernen sind. Ich verstehe, dass die meisten HDLs für die Verwendung mit FPGAs entwickelt wurden.
  2. Wie? Soll ich einem Lehrbuch mit unabhängigen Beispielen folgen oder mich auf ein Projekt wie die Implementierung eines kleinen Systems einlassen (kann so etwas wie eine Ampelsteuerung sein).
  3. Woher? Woher würde ich die Ressourcen bekommen?
Rick_2047
quelle
1
Können Sie klarstellen, was Sie von Ihrem HDL erwarten? Die meisten HDLs sind für die Verwendung mit FPGAs konzipiert, da die meisten Benutzer hierfür einen FPGA benötigen. Im Allgemeinen wird ein Simulator (der von einem grafischen Schema aus arbeitet) für Nicht-FPGA- und Nicht-ASIC-Schaltungsentwürfe verwendet. Möchten Sie Folgendes aufbauen: (1) diskrete digitale Schaltkreise, dh 74XX-Komponenten, (2) analoge Schaltkreise, dh Schaltregler, HF-Antennen / -Transceiver, generische Operationsverstärkerschaltungen oder (3) analoge Mixed-Signal-Schaltkreise, dh Schnittstellen zwischen digitalen und analogen Signalen.
Kevin Vermeer
Ich denke, ich möchte HDL lernen, um Hardware zu beschreiben. Das ist 1, 2 und 3. Auch in einem möchte ich, dass es nicht FPGA-spezifisch ist, weil ich nicht den Zugang oder die Finanzen habe, um diese zu erhalten.
Rick_2047
Ich denke, ich möchte HDL lernen, um Hardware zu beschreiben. Das ist 1, 2 und 3. Auch in einem möchte ich, dass es nicht FPGA-spezifisch ist, weil ich nicht den Zugang oder die Finanzen habe, um diese zu erhalten. Ich denke, hauptsächlich möchte ich das HDL verwenden, um zu simulieren, was ich mir ausdenke. Ein wichtiger Plan von mir in diesem Jahr ist es, meinen eigenen Computer zu bauen. Ich denke, ich werde 74xx dafür verwenden. Deshalb kam die Idee von HDL auf, um meine Theorien und Schaltkreise zu testen.
Rick_2047

Antworten:

8

Können Sie klarstellen, welches HDL Sie verwenden möchten? Die Auswahlmöglichkeiten sind im Grunde Verilog oder VHDL, [EDIT] und ihre Verwandten, Verilog-ASM und VHDL-ASM (Analog Mixed-Signal). [/ EDIT] Verilog verfügt über eine C-ähnliche Syntax, die es einfacher macht, C zu erlernen, wenn Sie zuvor mit C gearbeitet haben. Dies erleichtert jedoch auch das Entwickeln von schlechten Gewohnheiten. Sie können Hardware nicht in C programmieren, da dies der Fall ist alle parallel! Ebenso wie bei C wird davon ausgegangen, dass Sie wissen, was Sie tun, und es ist einfach, sich in den Fuß zu schießen. VHDL zwingt Sie dazu, ganz anders zu denken, was hilfreich, aber schwierig ist. Es ist ausführlicher und warnt Sie eher, wenn Sie etwas Seltsames tun. Siehe diese Slashdot-Diskussion oder diesen Artikel .

BEARBEITEN : Die "Netlist-Sprachen" habe ich nicht für die Entwurfsarbeit (in einem Texteditor) verwendet, aber ich nehme an, dass Sie könnten. SPICE, das Format von Cadsoft Eagle und EDIF sind Beispiele (mit sehr unterschiedlichen Zwecken), die mir in den Sinn kommen. Ich habe Netzlisten nur verwendet, um zu überprüfen, ob mein Schaltplan korrekt ist (macht jede Verbindung in meinem Eagle-Schaltplan Sinn), um die Abstraktion zu optimieren, die von einem Simulator (SPICE, ähnlich wie bei der Verwendung von ASM-Anweisungen in C) bereitgestellt wird, oder um Export / Import zwischen verschiedenen Programmen (EDIF).
Die Spectre- Netzlistensprache ist mit Verilog-A [nalog] und SPICE verwandt und wurde für Entwurfs- und Überprüfungsarbeiten entwickelt. MASTist eine Komponentenmodellierungssprache, die mit Verilog-AMS und VHDL-AMS kompatibel ist. Die Suche nach Tutorials für diese Sprachen zeigt, dass häufig Tools verwendet werden, die wie Dienstprogramme für die schematische Erfassung aussehen, anstatt in der Netzlistensprache selbst zu programmieren.

Ich werde auch das Xilinx Spartan FPGA und ein Digilent-Entwicklungsboard unterstützen . Allerdings würde ich mich für Basys (60 US-Dollar) oder Nexys (100 US-Dollar) entscheiden, wenn Sie das von O Engenheiro erwähnte Ethernet auf der Starterkarte (150 US-Dollar) nicht benötigen (Preise mit Bildungsrabatt). Die Basys und Nexys sind billiger und daher in Schulen beliebter, sodass mehr Tutorials und Labs online sind.

Kevin Vermeer
quelle
Ich habe mich gefragt, ob das Erlernen der sogenannten "Netlist" -Sprachen vorteilhafter oder einfacher ist als das Erlernen von Verilog oder VHDL.
Rick_2047
Schwer zu sagen. Es kommt darauf an, was Sie mit Ihrer Sprache anfangen wollen. Können wir eine bessere Vorstellung davon bekommen, was Sie tun möchten und welche Art von Sprache Sie verwenden möchten, bevor wir uns mit dem Wie und Wo für jede Permutation von einem halben Dutzend Sprachen und einer Vielzahl von Anwendungsfällen befassen?
Kevin Vermeer
9

Ich bin fast in der gleichen Situation wie Sie.

Was mache ich:

Ich hatte an dem College, das ich studiert hatte, einen kostenlosen VHDL-Grundkurs belegt. Ich hatte mit dem Spartan 3E-Board gespielt .

Also habe ich das Board gekauft und werde anfangen zu spielen.

Ein Freund von mir hat folgende Bücher vorgeschlagen:

  1. Rapid Prototyping von digitalen Systemen , James O. Hamblen, Michael D. Furman
  2. Doone-Veröffentlichungen - HDL-Chipdesign , Douglas J Smith

Und er hat dieses Dokument auch vorgeschlagen:

Xilinx Synthesis and Simulation Design Guide

Daniel Grillo
quelle
1
Ich würde das Buch von Hamblen und Furman unterstützen. Ich habe mein eigenes kleines Altera Flex 10K10-Board entworfen und konnte den größten Teil des Codes im Buch damit verwenden. Es ist ein Kochbuch, aber umso schlimmer.
Leon Heller
4
  1. Es gibt zwei HDL-Sprachen, VHDL und Verilog. Fragen Sie Ihren Professor, welche Sprache Sie lernen werden, und versuchen Sie herauszufinden, wie sie funktioniert: Die Syntax und wie Sie Module dazu erstellen und einen großen Überblick über ALLE digitalen Schaltungen geben können.

  2. Vergewissern Sie sich, dass Sie wirklich alles über digitale Schaltkreise wissen, 1 bevor Sie etwas tun, da HDL nichts Neues erstellt und Sie diese Dinge nur auf eine andere Art und Weise verwenden. Sie können also eines der beiden oben genannten Bücher verwenden, um einige Übungen zu machen, den Lehrer nach den von ihm empfohlenen Büchern fragen und sie oder eines der beiden oben genannten verwenden.

  3. Fragen Sie Ihren Lehrer, welches FPGA für die Klassen verwendet wird, ob es sich um Altera, Xilinx, Lattice oder ein anderes handelt, ob Altera den Download der Quartus Web Edition vornimmt, ob Xilinx, das ISE-Webpack, einen dieser und einen kostenlosen Download durchführt Versuchen Sie, etwas über eine der Software zu lernen, und machen Sie einige Ihrer Übungen und Simulationen mit einer von ihnen.

Sie haben Recht, etwa 90% der Arbeit in HDL sind Simulatoren. Lernen Sie also den Modelsim-Simulator und / oder den ISIM-Simulator in xilinx kennen, sie befehlen und wie Testbenches ausgeführt werden.

Zork
quelle
Zwei große HDLs. Es gibt viele weniger beliebte wie CUPL, MyHDL und Lava. Der Digital Design Kurs an meiner Universität erwähnte VHDL, verwendete aber CUPL in einem Labor. Mehr auf Wikipedia: en.wikipedia.org/wiki/…
Yann Vernier
3

Überall dort, wo Sie arbeiten, müssen Sie dieselbe HDL verwenden, die sie bereits verwenden. Wenn Sie also die Chance haben, eingestellt zu werden, sollten Sie versuchen, ein wenig Zeit mit Verilog und VHDL zu verbringen. Früher war es ziemlich einfach: Verilog wurde in den USA und VHDL in Europa verwendet - heutzutage ist es kein einfaches.

Upthread Jemand hat erwähnt, dass man für VHDL lernen muss, anders zu denken - das muss man auch für Verilog tun, es sieht aus wie C, aber es ist nicht so - ein guter Anfang ist, nachzusehen, wo Drähte und Flops während der Synthese erzeugt werden - sobald man ankommt An dem Punkt, an dem Sie diese sehen und die Zeitrisiken in Ihrem Kopf „sehen“ können, sind Sie auf dem größten Weg dorthin

Taniwha
quelle
2

icarus verilog oder verilator empfehle ich zum lernen oder spielen mit verilog. ghdl ist das, was ich verwenden würde, um mit vhdl zu spielen. Weit entfernt vom Mainstream, aber ich würde auch cyclicity-cdl.sf.net empfehlen, das eine eigene Sim-Umgebung usw. hat und einen synthetisierbaren Verilog produziert. Verwenden und Erlernen von gtkwave zum Überprüfen der von den Simulatoren generierten VCD-Dateien.

Oldtimer
quelle
1

Ich habe Verilog im College in einem Kurs gelernt. Der Höhepunkt dieses Kurses war die Implementierung eines 2-Wege-Superscalar-MIPS-Prozessors (30% der Klasse haben es vollständig zum Laufen gebracht; ich war in den anderen 70%). Ich denke, die Dinge in der Industrie bewegen sich im Großen und Ganzen weg von Verilog und hin zu VHDL. Davon abgesehen gibt es viele Online-Tutorials für beide Sprachen. Hier ist einer über VHDL und hier ist einer über Verilog .

Sie werden wahrscheinlich ModelSim verwenden wollen und Sie können wahrscheinlich die Student Edition verwenden (ich denke, sie ist kostenlos; möglicherweise mit Einschränkungen). Im Übrigen empfehlen sie, Digital Systems Design Using VHDL 2nd Edition als Lehrbuch zu verwenden.

vicatcu
quelle
1

Hier finden Sie ein günstiges FPGA-Entwicklungskit, das möglicherweise zu Ihnen passt. Ich bin mir jedoch nicht sicher, welche Open Source-Tools damit arbeiten. Die Toolkit-Ketten des Anbieters können kostenlos heruntergeladen werden. Ich habe gehört, dass es sich zum Preis lohnt, dieses Kit zu kaufen.

Sushrut J Mair
quelle