
Vom 2. bis 5. Oktober fand in Nowosibirsk eine Schule zu den Grundlagen der digitalen Schaltung, Architektur und Verwendung von Verilog statt. Der offizielle Name der Veranstaltung: eine Schule fßr Studenten und Doktoranden, die an der Staatlichen Technischen Universität Nowosibirsk im Rahmen der Internationalen Wissenschaftlichen und Technischen Konferenz "Aktuelle Probleme der elektronischen Instrumentierung" APEP-2018 unter der Schirmherrschaft des IEEE abgehalten wird.
Diese Veranstaltung richtete sich in erster Linie an diejenigen, die:
- Lesen Sie das Buch Digitale Schaltung und Computerarchitektur, D. Harris, S. Harris (auch bekannt als H & H oder Harris-i-Harris);
- Er mÜchte sein Wissen in die Praxis umsetzen, versteht jedoch nicht, welche Geräte und Software dafßr benÜtigt werden, und weià nicht, wie er es einsetzen soll.
- ist ein älterer Student oder Doktorand und soll das erworbene Wissen verbreiten (Workshops, Laborarbeiten usw. an der Universität durchfßhren).
Ankßndigung: Eine ähnliche Schule ist vom 6. bis 9. November am Institut fßr Weltraum- und Informationstechnologien der Sibirischen Bundesuniversität (IKIT SFU) geplant. Die Schule wird von Alina Leskovskaya, Doktorandin, Konstrukteurin von AIS IS, benannt nach M.F.Reshetnev, sowie ihren Kollegen Dmitry Vlasov und Boris Dudkin geleitet. Kontakt fßr die Registrierung: leskovskayaav@yandex.ru
Wenn Ihre Position mindestens "Junior FPGA Developer" klingt, werden Sie mit hoher Wahrscheinlichkeit in diesem Beitrag nichts Neues fĂźr sich selbst lernen. FĂźr alle anderen herzlich willkommen bei cat.
Warum ist es notwendig?
Zu einer Zeit (damals an der Universität) hat der Autor dieser Zeilen die Architektur eines Computers ohne Verwendung von Verilog oder VHDL studiert: Sie kommen zu einer Vorlesung, in der eine Blackbox namens âComputerâ auf vielen kleinen Blackboxen angeordnet ist: âProzessorâ, â Speicher âusw. Aber sie bleiben immer noch Black Boxes: Sie kĂśnnen nicht nach innen "klettern", Sie kĂśnnen das Gerät nicht "wechseln". Der Kurs endet, aber Sie haben immer noch das GefĂźhl, mit âmagischen Essenzen einer obskuren inneren Strukturâ zu arbeiten. Im besten Fall kĂśnnen Sie sie konfigurieren (Programm). In meinem Kopf gibt es kein ganzheitliches Bild der digitalen Welt. Es gibt kein Verständnis dafĂźr, wie es im Inneren funktioniert. Dieses Verständnis, das einen guten Ingenieur von "vorbeigegangen" unterscheidet.
Um ein vollständiges Bild zu erhalten, mßssen die untersuchten Geräte geändert und eigene erstellt werden kÜnnen. Und hier kommt Verilog (oder VHDL) zur Rettungs-, Simulationssoftware und kostengßnstigen Debug-Boards mit FPGAs zum Einchecken von Hardware. Ein einfacher Prozessor ( schoolMIPS ) kann an 1-2 Abenden geschrieben werden. Und das ist ßberhaupt keine Raketenwissenschaft, keine Magie.
Angesichts eines ganzheitlichen Bildes der digitalen Welt ist es keineswegs notwendig, Ihr Leben mit der Entwicklung von Mikroschaltungen zu verbinden. Aber ich glaube, dass Leute, die wirklich verstehen, wie die âmagische Leseboxâ funktioniert, keine schrecklich langsamen Programme schreiben werden. Ich werde eine Parallele ziehen: Ein Hammer und ein Bohrer, die in einem Schrank liegen, machen Sie nicht zum Zimmermann. Gleichzeitig kĂśnnen Sie einen Nagel einschlagen, Sie verstehen, warum diese Werkzeuge benĂśtigt werden, in welchen Fällen es sich lohnt, einen Hammer zu verwenden, warum Sie stattdessen kein Mikroskop nehmen sollten und wann Sie einen Fachmann konsultieren sollten.
Schulprogramm
Die Arbeit an der Schule war praxisorientiert. Es ist sehr schwierig, alle in H & H beschriebenen Themen in vier Tage Theorie und Praxis zu integrieren. Daher wurde dieses Ziel nicht gesetzt. Die gesamte Theorie wurde ausschlieĂlich in der fĂźr die Praxis erforderlichen Menge angegeben. Daher war es fĂźr diejenigen, die das Buch noch nicht geĂśffnet hatten, nicht einfach.
Tag 1
⢠Sprache fßr die Hardwarebeschreibung und warum sie benÜtigt wird
⢠Was ist FPGA?
⢠Grundlagen der kombinatorischen Logik
⢠Grundlegende logische Elemente und ihre Beschreibung in Verilog
⢠Testumgebung (Testbench)
⢠ĂberprĂźfen der Funktion der Kombinationsschaltung mit einem Simulator (Icarus Verilog, Modelsim)
⢠Kombinationsschaltungssynthese, Intel Quartus und Xilinx Vivado GUI
⢠Wofßr wird das Kombinationsschema synthetisiert, wenn es auf FPGAs implementiert wird?
⢠Programmieren einer Debug-Karte
⢠ĂberprĂźfung des Projekts auf dem Debugboard
⢠Grundlagen von Makefile und Arbeiten im Nicht-Projektmodus
⢠Multiplexer und Methoden zur Beschreibung in Verilog HDL
⢠Demultiplexer und Methoden zur Beschreibung in Verilog HDL
⢠Fallstudie: Arbeiten mit 7-Segment-Indikatoren
⢠Bedingte Kompilierung in Verilog HDL
Tag 2
⢠Kombinationsschaltungen und Signalausbreitungszeit
⢠Takt- und Reihenschaltungen
⢠Verschiedene Arten von Zuweisungen in Verilog HDL
⢠D-Trigger und seine Implementierung in Verilog in verschiedenen Varianten: asynchrones und synchrones Zurßcksetzen, Schreibberechtigungsport
⢠Wofßr wird die sequentielle Schaltung bei der Implementierung auf Basis von FPGA synthetisiert?
⢠Register und dessen Umsetzung
⢠Zähler und seine Implementierung
⢠Dynamische und statische Disziplin
⢠Metastabilität und Synchronisation
⢠Unerwßnschte Verriegelung, Konsequenzen und MÜglichkeiten zur Vermeidung
⢠Finite-State-Maschinen (Mura und Miles)
⢠Darstellung der Maschine in Form von Ăbergangsdiagrammen
⢠Implementierung der Maschine in Verilog HDL
⢠Allgemeiner Ansatz zum Entwurf komplexer Automaten
⢠Schrittweise Implementierung des Schnittstellenmoduls des Ultraschall-Abstandssensors auf Verilog
Tag 3
⢠Selbstständige Arbeit. Implementierung eines 4x4-Tastaturschnittstellenmoduls fßr FPGA
⢠Selbstständige Arbeit. Implementierung des FPGA-Rechners
Tag 4
⢠Grundlagen des Pipelining
⢠Architektur und Mikroarchitektur
⢠Grundlagen der Entwicklung auf MIPS Assembler
⢠Arbeiten Sie mit dem MARS-Simulator
⢠Entwerfen des einfachsten Einzelzyklus-Prozessors am Beispiel von schoolMIPS
⢠Datenpfad und Steuergerät
⢠Kompilieren Sie das Programm, starten Sie den Prozessor im Simulator und auf der Debug-Karte
⢠Selbstständige Arbeit. Hinzufßgen von Unterstßtzung fßr neue Anweisungen zum Prozessor
Material
Alle Kursmaterialien (Folien, Skripte, Quellen, Literatur) sind online verfßgbar ( Github , zusätzliche Materialien ). Folien werden in einem zweifelhaften Stil gestaltet, wenn viel Text darauf ist, in der Hoffnung, dass dies das Kennenlernen von Offline-Materialien erleichtert.
Praktische und unabhängige Aufgaben wurden hauptsächlich auf Terasic DE10-Lite- Motherboards mit Intel MAX10 FPGA an Bord ausgefßhrt. Wir hatten auch Digilent Nexys 4 DDR , das die Arbeit mit Xilinx Vivado als Beispiel demonstrierte. Mit seltenen Ausnahmen sind die Beispiele so vorbereitet, dass Sie sowohl DE10-Lite als auch Nexys 4 DDR verwenden kÜnnen. Die Entscheidung fßr die Arbeit mit Intel FPGA-Karten hat folgende Grßnde:
- DE10-Lite ist billiger als Nexys 4 DDR, was bedeutet, dass es mehr SchĂźlern zur VerfĂźgung steht, wenn sie zu Hause oder im Rahmen des Lernprozesses weiter experimentieren mĂśchten.
- Dieselben einfachen Projekte, auf denen der Kurs basiert, werden mit Intel Quartus um ein Vielfaches schneller zusammengestellt als mit Xilinx Vivado. Mit all meinen Sympathien fĂźr Vivado hatten wir nur 4 Tage.
Was ist mit dem Video?
Als die Veranstaltung angekßndigt wurde, erhielt ich Anfragen, Rundfunk oder Videoaufzeichnung zu organisieren. Leider passte dies nicht in das von mir gewählte Format der Schulorganisation. Wir hatten keine Vorträge als solche: ein paar Folien, dann ßben. Es gibt Fragen - wir analysieren, einen ständigen Dialog, lustige Witze und sich im Publikum bewegen. Ich entschied mich zwischen der Arbeit vor der Kamera und dem Aufbau eines produktiven Kontakts mit dem Publikum und entschied mich fßr die zweite. Wie dies geschah, mßssen die Schßler selbst beurteilen. Bitte mit Verständnis behandeln.
Ich will auch
Sind Sie ein Lehrer, der daran interessiert ist, den SchĂźlern Wissen zu vermitteln? Oder sind Sie ein SchĂźler, der dieses Wissen erlangen mĂśchte, unabhängig davon, ob die Lehrer es geben oder nicht? In diesem Fall verfĂźgen Sie Ăźber alle Informationen, die fĂźr die unabhängige Entwicklung des Fachs und / oder den Aufbau / die Ănderung des Schulungskurses erforderlich sind, auch wenn Sie nicht an der Veranstaltung teilnehmen konnten:
- Das Buch "Digitale Schaltkreise und Computerarchitektur" ist kostenlos in elektronischer Form erhältlich ( Link ) oder in Papierform erhältlich ( Link ). Es ist leicht zu lesen, trägt als Fiktion. Es hat eine niedrige Einstiegsschwelle - einige spezielle Kenntnisse sind nicht erforderlich, um mit dem Lesen zu beginnen. Kßrzlich wurde eine Erweiterung der ARM-Architektur verÜffentlicht ( Link ).
- FĂźr das Buch stehen Codebeispiele sowie Folien (englische und russische Version) zur VerfĂźgung, mit denen Sie Ihren eigenen Kurs erstellen kĂśnnen ( Link ).
- Preiswerte Debug-Boards: Terasic DE10-Lite ist meiner Meinung nach die beste Wahl in Bezug auf das Preis-Leistungs-Verhältnis, 55 US-Dollar fßr diejenigen, die einen akademischen Status nachgewiesen haben (ohne Lieferung). ZEOWAA- Board - wenn Sie alles sparen mßssen. Die Option funktioniert, es kann jedoch zu Problemen mit der Firmware kommen, da das mit dem Kit gelieferte USB-Kabel von schlechter Qualität ist.
- Materialien der aktuellen Schule ( Github , zusätzliche Materialien ) sowie andere von YuriPanchul organisierte Veranstaltungen ( silicon-russia.com , Folien und vieles mehr ).
Bitte erwarten Sie nicht, dass jemand zu Ihnen kommt und "Gutes" tut. Ihr Wissen, wenn Sie ein Schßler sind, und das Wissen Ihrer Schßler, wenn Sie ein Lehrer sind, hängen zu 99% von Ihren Bemßhungen ab.
Was habe ich fĂźr mich ausgehalten?
- In 4 Tagen kĂśnnen Sie entweder grundlegende Dinge (fĂźr diejenigen, die H & H nicht gelesen haben) oder etwas Fortgeschritteneres (fĂźr diejenigen, die das Buch bereits gelesen haben) setzen. Besser nicht kombinieren.
- FĂźr diejenigen, die das Buch nicht gelesen haben und keine Erfahrung mit FPGAs haben, ist es ratsam, mit der Arbeit mit Mikroschaltungen mit einem geringen Integrationsgrad zu beginnen und erst dann FPGAs zu geben. Das ist sehr wichtig, weil ermĂśglicht es Ihnen, das Gehirn schnell von einem relativ vertrauten Modus der "Programmierung" zum Modus der "Schaltung" umzubauen. Dies wurde bereits von Yuri geschrieben ( Link ). Leider haben wir diese Etappe verpasst.
Danksagung
- Der Initiator der Veranstaltung und der Organisator der NSTU ist Vladimir Makukha.
- Es wäre unmĂśglich gewesen, die Schule in ihrer jetzigen Form zu halten, wenn eine Gruppe von Enthusiasten vor einigen Jahren die Ăbersetzung digitaler Schaltkreise und Computerarchitektur nicht aufgenommen hätte.
- Meine Ankunft in Nowosibirsk wäre ohne die Unterstßtzung von Bildungsinitiativen innerhalb von IVA Technologies nicht mÜglich gewesen .
- Die Leitung einer Schule war eine groĂe Frage, als sich herausstellte, dass die der Universität fĂźr den Kauf von Debug-Boards zugewiesenen Mittel irgendwo in den Tiefen der BĂźrokratie hingen. Boards wurden schlieĂlich "mit der Welt auf einem Faden" gesammelt. Mikhail Shadrin (NSU) verlieh mehrere Nexys 4 DDR. Einige Boards wurden von Doktoranden gekauft, die zum Studium kamen. Mehrere Terasic-Boards wurden von Alexander Romanov (MIEM NRU HSE) vergeben. Aber es gab immer noch nicht genug Bretter. YuriPanchul half, woraufhin Mikhail Shupletsov (Moskauer Staatsuniversität) und ich ihren Kauf schnell organisierten. Und die Jungs von Terasic haben die Lieferung so schnell wie mĂśglich arrangiert.
- Dmitry Vlasov, Anton Kulichkov und Valery Barmin halfen bei der Leitung der Schule - wir haben uns vor einem Jahr in Tomsk getroffen ( Link ) und dieses Jahr haben sie SchĂźlern in Theorie und Praxis geholfen.
- Vielen Dank an die Schßler - ohne Ihren Wunsch, neue Dinge zu lernen und ohne Ihre Beharrlichkeit wären wir nicht erfolgreich gewesen.
Schulbesprechungen
Anna Kazmina
<...> haben wir uns 4 Tage lang so sehr in die FPGA-basierte Entwicklungstechnologie vertieft, dass sich meine Vorstellung, FPGAs in der modernen Welt in der realen Produktion einzusetzen, grundlegend geändert hat. Frßher haben wir im Bildungsprozess FPGAs nur verwendet, um die LÜsung von Problemen zu beschleunigen, aber jetzt haben wir gelernt, wie man Mikrocontroller fßr die Entwicklung von Mikroarchitekturen verwendet. <...> Diese Schule hat mich so sehr interessiert, dass ich vorhabe, mich in diese Richtung zu entwickeln. Weitere solche Veranstaltungen!
Olesya Radchenko
Vielen Dank an das Team, dank dessen eine ähnliche Schule an der NSTU abgehalten wurde. Vielen Dank fßr die Gelegenheit, sich kopfßber in die FPGA-Programmierung zu stßrzen, zu erfahren, wie andere Entwickler mit Quartus, ModelSim, arbeiten und sich beispielsweise mit Vivado vertraut zu machen. Während dieser 4 Tage habe ich mein altes Wissen gefestigt und viele neue Dinge gelernt, zum Beispiel ßber MIPS. <...> Ich kann das erworbene Wissen in meine Arbeit einbringen, die kßrzlich eng mit der FPGA-Programmierung verbunden war
Vladislav Mayer
Vielleicht mĂśchte ich darauf hinweisen, dass Sie aufgrund der begrenzten Zeit genĂźgend Informationen fĂźr das anfängliche Verständnis des Materials bereitgestellt haben. Ich persĂśnlich hatte einige Grundkenntnisse in der Hardware-Programmiersprache. Der Hauptauspuff fĂźr mich ist jedoch eine Ănderung der Programmieraussichten im Allgemeinen. Jetzt betrachte ich bisher vertraute Dinge aus einem anderen Blickwinkel und habe eine Vorstellung davon, wie diese oder jene Module anders implementiert werden kĂśnnen
Anton Yupashevsky
In diesen vier Tagen habe ich die FPGA-Programmierung auf eine vÜllig andere Art und Weise betrachtet, in der Verilog-Hardwarebeschreibungssprache und derzeit unter Verwendung von FPGAs. Die anfänglichen Kenntnisse ßber FPGAs und digitale Schaltkreise habe ich weitere 4 Jahre an der Universität und mit studiert
Es gab jedoch keine Probleme mit den einfachsten kombinatorischen und sequentiellen Schemata
Es wurde immer komplexer und interessanter und am Ende haben wir selbst den Kernel programmiert
MIPS Ein groĂer Vorteil dieser Schule war eine Menge Ăbung.
Mikhail Kireev
Während der Schule âVon der Physik zum Chipâ am APEP-2018 wurden die Dogmen bei der Arbeit mit Verilog umrissen:
Sie mßssen das Harris-Buch beherrschen. In diesem Thema gibt es viele Fallstricke beim Schreiben von Code - absolut identische (aus logischer Sicht) BlÜcke kÜnnen auf unterschiedliche Weise synthetisiert werden. <...> Simulation bietet bei der Entwicklung viel mehr MÜglichkeiten als Synthese - achten Sie mehr auf Wellenform. Bei beruflichen Aktivitäten mßssen Sie mit verschiedenen FPGA-Leitungen verschiedener Hersteller arbeiten. <...> Sparen Sie in Zukunft Zeit (Schreiben von Skripten und Make-Dateien). Aus praktischer Sicht wurde eine Reihe grundlegender sequentieller und kombinatorischer Muster berßcksichtigt; FÜrderband, 4x4-Tastatur, Beispiele fßr Zustandsautomaten, einfachste MIPS-Architektur und andere Aufgaben.
Z.Y. Ich habe von dieser Schule erfahren und mich 12 Stunden vor ihrem Start angemeldet. Ich habe es nicht bereut, an dieser Veranstaltung teilgenommen zu haben, obwohl das Lesen des Harris-Buches die Leistung viel gesteigert hätte.