Schule Ăźber die Grundlagen digitaler Schaltkreise: Nowosibirsk - Ok, Krasnojarsk - machen Sie sich bereit


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.

Source: https://habr.com/ru/post/de427285/


All Articles