Neulich traf ich mich und machte ein kurzes Videointerview von
Kathy Giori, Vice President Operations Arduino USA . Wir haben mit Katie einen neuen Trend besprochen, der die Arduino-Community bereits berührt hat: Da die Programmierung von Mikrocontrollern mit Hilfe von Arduino bereits mehr oder weniger erlernt ist, ist es an der Zeit, den nächsten Schritt zu tun: Schulkindern beizubringen, die Sprache zur Beschreibung von Verilog-Geräten und FPGA / FPGA-Mikroschaltungen, Logikmatrizen, zu verwenden Elemente mit variablen Funktionen. Und um das FPGA-Mastering zu vereinfachen, lohnt es sich, Übungen mit einem geringen Grad an Integrationschips, die in den 1970er Jahren populär waren, als Vorläufer moderner FPGAs wiederzubeleben. All dies wird die Lücke zwischen Physik und Programmierung, diskreten Elementen und Mikrocontrollern, einem Transistor und einem Arduino schließen.
FPGA und Boards können von jedem Hersteller (Xilinx, Altera, Lattice, Digilent, Terasic) verwendet werden. Alles, was ich unten schreibe, ist nicht an ein bestimmtes Unternehmen gebunden.
Svetlana Khutka , eine
Stanford-Lehrerin, nahm an dem Gespräch mit Katya teil, die Katy mit Hilfe begeisterter Lehrer mehrerer Kiewer Universitäten über das
Experiment zum kostenlosen Unterrichten von Schulkindern im Umgang mit FPGA in Kiew erzählte. Danach teilte ich Katie die Pläne für das nächste derartige Experiment an der seit Sowjetzeiten bekannten
Sommerschule junger Programmierer in Nowosibirsk mit und sprach auch mit anderen Genossen aus der Arduino-Gemeinde über die Implementierung von FPGA in zwei Schulen und einem Silicon Valley College.
Das Motherboard mit FPGA, das Katya jetzt empfiehlt und das ich etwas überarbeite, um es an meine Bedürfnisse anzupassen (es wird einen separaten Beitrag dazu geben):

Im Folgenden werde ich Informationen über die Ergebnisse des Kiewer Experiments sowie einige Pläne für die Zukunft geben, die von Aktivisten entwickelt werden - Lehrern von Sportschulen und Universitäten in Kiew, Tschernigow, Nowosibirsk, Moskau, Nischni Nowgorod, Samara, St. Petersburg, Almaty und anderen Städten. Während des Kiewer Seminars erreichten die Teilnehmer das Stadium der Erstellung von Zustandsautomaten einer Codesperre und der Integration in einfache Peripheriegeräte (16-Tasten-Tastatur, Lautsprecher). In der Sommerschule in Nowosibirsk werden wir mehr Zeit haben und versuchen, mit den Schülern einen Prozessor zu bauen. In Zukunft ist ein jährlicher Kurs über die Grundlagen der digitalen Elektronik auf FPGA für Sportschulen geplant, der die Schulbildung bereichern kann, da er in den 1980er Jahren durch die Einführung von Programmierelementen bereichert wurde.
Wir werden dies im Detail diskutieren:
1. Warum sollten Schulkinder lernen, wie man Hardware beschreibt und wie man FPGA verwendet? Begründung des Programms.In dem Bild der Welt, das durch die Schulbildung repräsentiert wird, gibt es einen „blinden Fleck“ im Bereich der Prinzipien der Gestaltung digitaler Elektronik zwischen Physik und Programmierung. Die Kurse für Robotik und Arduino schließen diesen blinden Fleck nicht, da es darauf ankommt, fertige Chips zu programmieren. Übungen mit diskreten Elementen und Mikroschaltungen mit geringem Integrationsgrad basieren zwar auf der Einführung der Grundprinzipien, basieren jedoch auf den Technologien der 1960er bis 1970er Jahre und enthalten keine Verbindung zum modernen Design. Ein blinder Fleck kann geschlossen werden, indem Elemente von Hardwarebeschreibungssprachen (NLA) und FPGA-Chips (Programmable Logic Integrated Circuits) eingeführt werden, die für Schulexperimente verfügbar sind - Matrizen rekonfigurierbarer Logikelemente. Auf diese Weise wird das Bild der Welt zu einem integralen Bestandteil und trägt zur Schaffung eines Umfelds für die Entstehung einer großen Anzahl junger Ingenieure bei, die eine Vorstellung von allen Aspekten moderner Mikroschaltungen für Anwendungen wie selbstfahrende Autos haben und sich in Zukunft auf das Design des einen oder anderen Aspekts solcher Geräte spezialisieren können.
Die Einführung von NLA und FPGA in den Lehrplan der Schule ist auch eng mit dem Kurs für Mathematik und Physik an einer Physik- und Mathematikschule verbunden - Boolesche Algebra, arithmetische Schemata und endliche Zustandsmaschinen.
Beachten Sie, dass NLA und FPGAs trotz der oberflächlichen Ähnlichkeit mit der Programmierung andere grundlegende Konzepte verwenden:
Programmierung: sequentielle Ausführung, Auswahlzweige, Schleifen, Variablen, Ausdrücke, Arrays (mit dem Modell eines flach adressierbaren Speichers), Funktionen (basierend auf der Verwendung des Stapels), Rekursion.
Entwurf digitaler Logik: kombinatorisches Logikelement; Erstellen einer kombinatorischen Logik aus diesen Wolkenelementen, einschließlich Auswahlprimitiven unter Verwendung von Multiplexern sowie Blöcken zum Implementieren von arithmetischen Ausdrücken; das Konzept eines Taktsignals zum Synchronisieren von Berechnungen und Wiederholungen, das Konzept eines D-Triggers zum Speichern des aktuellen Zustands zwischen Maßnahmen; Zustandsmaschine; Paralleloperationen, Hierarchie der Module, das Konzept der Pipeline (nicht nur für den Prozessor, sondern auch für arithmetische Einheiten).
2. Der allgemeine Plan solcher Kurse:Abschnitt 1. Verbindung mit der Physik, mit Labor für diskrete Komponenten.
Abschnitt 2. Grundlagen der digitalen Logik und Arithmetik mit Labormikroschaltungen mit geringem Integrationsgrad.
Abschnitt 3. Entwerfen von Schaltkreisen basierend auf der Synthese einer Hardwarebeschreibungssprache mit Laborschaltungen auf Xilinx- oder Altera-FPGAs.
Abschnitt 4. Prozessorarchitektur: Ansicht von Seiten des Programmierers mit einem Labor, das den RISC-Prozessorsimulator auf Befehlsebene verwendet, z. B. MARS MIPS.
Abschnitt 5. Mikroarchitektur: Erstellen eines Prozessors.
Einzelprojekt: Integration eines Sensors oder eines anderen Peripheriegeräts in eine im FPGA implementierte Schaltung.
3. Die Ergebnisse des Kiewer Experiments.Ein detaillierter Text mit den Ergebnissen des Kiewer Experiments wurde von einem Lehrer am Kiewer Polytechnischen Institut, Jewgeni Korotky, verfasst. Ich werde es mit meinen persönlichen Schlussfolgerungen ergänzen. Hintergrund - Beiträge zu Habré und Geektimes -
1 ,
2 ,
3 ,
4 ). In diesen Beiträgen wurden Fragen gestellt. Hier sind die Antworten:
Die Hypothese, dass Schulkinder Verilog verwenden können, wurde bestätigt
Verilog erwies sich auch für eine ausreichende Anzahl von Schulkindern als interessant (einige Kollegen bezweifelten dies vor Kiew und argumentierten, dass Kinder mehr an Projekten wie einem Roboterarm mit einem Mikrocontroller interessiert seien).
Die Idee, dass es vor der Verwendung von Verilog nützlich ist, logische Elemente von Schulkindern und einen D-Trigger auf Mikroschaltungen mit einem geringen Integrationsgrad zu zeigen - nicht nur, dass dies eindeutig bestätigt wurde, sondern auch mehr Rechtfertigung erhielt.
Insgesamt begannen einige Schüler nach einem Tag der Erfahrung mit dem Veril, verständliche Fragen zu stellen - zum Beispiel, wann sie die Blockierung verwenden sollten und wann sie die nicht blockierende Aufgabe verwenden sollten.
Es ist anscheinend unrealistisch, Schulkinder von Null auf Zustandsautomaten zu bringen, die Protokolle wie SPI in einer Woche implementieren, aber auf einen Zustandsautomaten mit Codesperre oder Ampel - wirklich.
Es ist auch unrealistisch, eine Woche für das Design des Prozessors einzubringen, aber wir werden versuchen, dies in zwei Wochen in Nowosibirsk zu tun.
Während des Kiewer Experiments haben wir versucht, sowohl über FPGA- als auch über eingebettete Prozessoren zu sprechen (MediaTek MT7688, das sich in Bezug auf die Leistung irgendwo zwischen Arduino und Intel Galileo oder Rasbery Pye befindet). Dann machten wir einen Hackathon (an der Kiew-Mohyla-Akademie) und beobachteten, wie viele Schulkinder ein FPGA-Projekt für den Hackathon ausgewählt hatten und wie viele ein Projekt mit einem integrierten Prozessor. Es stellte sich heraus - 50 bis 50. Es ist interessant - vor dem Hackathon hatte ich keine Ahnung, wie der Zusammenbruch aussehen würde.
Ich hatte Bedenken, dass Schulkinder durch die Benutzeroberfläche in Xilinx Vivado mit unzähligen Optionen und Oberflächenelementen verwirrt werden könnten. Es stellte sich jedoch heraus, dass es den Schülern egal war - die komplexe Benutzeroberfläche machte ihnen keine Angst.
Die meisten Schüler verwenden Windows. Zusammen mit meinem Kollegen Alexander Belits habe ich die Idee, ein paar Dutzend bootfähige SSD-Laufwerke mit Linux (Ubuntu oder CentOS) auf solche Ereignisse vorzubereiten und sie von Ereignis zu Ereignis zu tragen. Alex hat sogar ein Skript geschrieben, um solche Laufwerke zu klonen. Ubuntu ist freundlicher, aber CentOS wird offizieller von FPGA-Automatisierungstools für das Schaltungsdesign unterstützt, insbesondere von Xilinx Vivado und Altera Quartus. Ist es möglich, während eines Sommercamps gleichzeitig ein Linux-Bildungsprogramm und ein Verilog / FPGA-Bildungsprogramm durchzuführen? Es ist nicht klar, aber es kann versucht werden.
Es stellt sich heraus, dass Xilinx Vivado bei der Konfiguration von Artix-7-FPGAs gnadenlos fehlerhaft ist, wenn Sie billige, schlecht abgeschirmte Micro-USB-Kabel verwenden. Bei einem mystischen Zustrom steckte ich vor meiner Reise nach Kiew ein Dutzend hochwertiger Schnüre in meinen Koffer, was das Seminar rettete.
Ich hatte die Idee, dass die Verwendung von panierbaren FPGA-Modulen (FPGA-Karten, die in Steckbrettplatinen stecken) wie dem Digilent Cmod A7 35T den Schülern den Wechsel von Übungen mit kleinen Integrationschips zu Übungen mit FPGAs erleichtern kann. Ob diese Idee wahr ist, habe ich nicht verstanden. Vielleicht wird die Verwendung größerer Motherboards mit einer Vielzahl von Peripheriegeräten wie dem Terasic DE10-Lite nicht schlechter. Wenn Sie von Mikroschaltungen mit geringem Integrationsgrad (CMOS 4000 oder 74HC) auf FPGA umschalten, müssen Sie die Versorgungsspannung (von 9 V oder 5 V auf 3,3 V) ändern, damit Sie Cmod A7 nicht anstelle von CMOD 4013 in dasselbe Steckbrett stecken können mit Lichtern und Knöpfen und erwarten, dass alles weiter funktioniert.
Ich bestätigte meine Beobachtung, dass es für die Durchführung von kurzfristigen (1 Woche) Bildungsveranstaltungen von entscheidender Bedeutung ist, dass ein Team von Studenten einer örtlichen Universität zur Betreuung von Schulkindern zur Verfügung steht. Im Fall Kiew wurde ein solches Team vom Lehrer des Kiewer Polytechnischen Instituts, Eugene Korotky , bereitgestellt .
Es wurde mehr oder weniger klar, in welchen Fällen und inwieweit es sich lohnt, einen Teil über das Niveau der Transistoren und über die Herstellung von Mikroschaltungen in das Programm solcher Ereignisse aufzunehmen. Dieser Teil wurde von Alexander Barabanov , Associate Professor der Nationalen Universität Kiew, unterrichtet, Übersetzer von Materialien zum Kurs Nanometer ASIC für Studenten. Anscheinend sollte dieses Material vollständig in den jährlichen Kurs für Schulkinder aufgenommen werden, in einem kleinen - in einem zweiwöchigen Kurs im Format eines Sommercamps, aber mit einer Dauer von weniger als einer Woche sollten Sie wahrscheinlich sofort (innerhalb von 1 Stunde nach dem Start) Mikroschaltungen mit einem geringen Integrationsgrad geben. (zum Beispiel CMOS 4000) und erwähnen den Transistor im Vorbeigehen in Form von „ein Transistor ist eine Vorrichtung, bei der Strom von Punkt A nach Punkt B fließt, wenn die Spannung C in C 1 (oder 0) beträgt. Aus Transistoren können logische Elemente UND, ODER, NICHT erstellt werden (siehe Bild). “
Während der Vorlesungen vor einem großen Publikum können den Studenten Schaltkreise gezeigt werden, die auf einem Steckbrett aus Mikroschaltungen mit geringem Integrationsgrad zusammengesetzt sind. Dies ist visuell, weckt Interesse und erfordert auch nicht das Anschließen des Designs an einen Computer - nur mit einer 9-V-Batterie. Ich habe drei dieser für das Verständnis wichtigsten Schaltkreise gezeigt - das XOR-Logikelement, den 4-Bit-Kombinierer-D-Trigger-Addierer mit einer Frequenz in der Größenordnung von 1 Hertz ( d.h. pro Sekunde messen).
Es bleibt die Frage offen, ob es möglich ist, den Studenten die Idee des Pipelining beizubringen, eine der mächtigsten Ideen im Bereich des digitalen Designs und der Organisation des Rechnens im Allgemeinen. Hierzu ist es nicht erforderlich, einen Förderprozessor zu bauen, sondern Sie können eine Förderer-Rechenvorrichtung herstellen . Vielleicht kann dies ganz am Ende des Kurses erwähnt werden, wenn die Kinder genug mit einfachen kombinatorischen und sequentiellen Schaltkreisen und Zustandsmaschinen spielen. Höchstwahrscheinlich wird es für eine sehr kleine Gruppe von Schulkindern interessant sein, aber es ist einen Versuch wert.
Für authentischere Ereignisse können Sie einzelne Projekte und Überprüfungsarbeiten verwenden .
Der Code auf GitHub, der für das Kiewer Ereignis verwendet wurde
4. Informationsquellen für die Entwicklung zukünftiger Materialien.Informationsquellen für Lehrer von Sportschulen, die nach ersten Experimenten mit Schülern in der Ukraine, in Russland und im Silicon Valley wahrscheinlich die meisten detaillierten Materialien entwickeln werden:
Lehrbuch von David Harris und Sarah Harris „Digitale Schaltkreise und Computerarchitektur“, 2. Auflage, russische Übersetzung. Dieses Lehrbuch kann kostenlos heruntergeladen werden, siehe Artikel über Habré darüber - 1 , 2 , 3 . Kürzlich wurde auch eine neue Papierausgabe mit verbessertem Farbdruck veröffentlicht.
Folien für Lehrer, zusätzlich zum Lehrbuch Harris & Harris. Kostenloser Download.
Materialien zum Kurs From NAND to Tetris , der in Israel erstellt und an einigen amerikanischen Universitäten eingeführt wurde. Zur gleichen Zeit, IMHO, sollte der Kurs Ideen und ein Skelett verwenden, aber die Implementierung auf Teilmengen von „erwachsenen“ Designwerkzeugen durchführen, anstatt wie im Kurs künstliche „Kinder“ -Werkzeuge. Wichtige Teile werden kostenlos heruntergeladen.
Charles Petzolds Buch "Code", das viele Konzepte an den Fingern angemessen erklärt und dessen Niveau dem Schulniveau entspricht (die Idee wurde vom Lehrer der Kiewer ORT-Schule Sergey Dziuba vorgeschlagen ). Wiederum lohnt es sich aus meiner Sicht, Ideen und ein Skelett aus dem Buch zu verwenden, aber der größte Teil des Materials sollte durch ein korrekteres ersetzt werden (anstelle von Latches (D-Latch) D-Flip-Flops (D-Flip-Flop) verwenden) und beispielsweise modern anstelle eines Akkumulators -basiertes 6800 und archaisches 8080 verwenden eine Teilmenge der RISC-Architektur.
Kits zum Aufbau von Schaltkreisen auf einem Steckbrett basierend auf diskreten Komponenten und Mikroschaltkreisen mit geringem Integrationsgrad von der amerikanischen Firma ETron Circuit Labs, der russischen Firma Cyberfizika, der ukrainischen Firma Radiomag (ich kann die Unterschiede zwischen diesen Sets in den Kommentaren erklären, wenn Sie interessiert sind).
Materialien von Herstellern von FPGAs (Xilinx, Altera) und Lernkarten mit FPGAs (Digilent, Terasic).
Codebeispiele, Tests und Projektempfehlungen, entwickelt von Anton Moiseev, Yuri Panchul, Eugene Korotkiy, Alexander Barabanov und anderen Ingenieuren und Universitätsprofessoren des Unternehmens für verschiedene Veranstaltungen in Kalifornien, Kasachstan, Russland und der Ukraine.
5. Plan für die zukünftige Ausgabe 1. Das Format des Jahreskurses für 35 akademische Stunden, verteilt auf das akademische Jahr, eine Stunde pro WocheVon der Physik zu diskreten Elementen
Was ist Strom, Spannung und Widerstand. Wie funktioniert das Steckbrett? Übung: Der erste Stromkreis mit Batterie, LED und Widerstand. Warum einen Widerstand an einen Stromkreis mit einer LED anschließen? Widerstandsbeschriftung lesen. Variable Widerstände, Fotowiderstände.
Was ist ein Transistor? Übersicht über Schaltelemente von Relais, Funkröhren, diskreten Transistoren zu Transistoren auf Mikroschaltungen. Übungen mit einem Thyristor (SCR - siliziumgesteuerter Gleichrichter - deutlicher als ein Transistor), bipolaren pnp- und npn-Transistoren.
Prüfung.
Von diskreten Elementen zur kombinatorischen Logik
Boolesche Algebra und Algebra der Logik. Operationen, Ausdrücke, Axiome und Identitäten, einschließlich der Gesetze von de Morgan. Wahrheitstabellen.
Kombinatorische Logikelemente UND, ODER, NICHT, UND-NICHT, ODER-NICHT, EXKLUSIV-ODER (UND, ODER, NICHT, NAND, NOR, XOR). Wie kombinatorische Elemente aus Transistoren aufgebaut sind. Übung: Erstellen Sie AND, NAND oder NOR aus diskreten Elementen.
Logische Elemente in Mikroschaltungen mit geringem Integrationsgrad. Einzelübung: Jeder Schüler erhält einen persönlichen Logikchip der CMOS 4000-Serie mit einer technischen Beschreibung des Herstellers, mit der Aufgabe, eine Wahrheitstabelle zu zeichnen, seine Arbeit zu demonstrieren und die Funktion mündlich zu beschreiben. Chips enthalten logische Elemente AND, OR, XOR, NOR, NAND mit einer unterschiedlichen Anzahl von Eingängen. Was sind Pull-up-Widerstände und warum werden sie benötigt? Fügen Sie der vorherigen Übung Tasten und Pull-up-Widerstände hinzu.
Prüfung.
Binäre Arithmetik und ihre Implementierung
Binärzahlen Konvertieren Sie von binär nach dezimal und umgekehrt. Additions- und Multiplikationsoperationen. Negative Zahlen und zusätzlicher Code.
Die Implementierung eines Halbaddierers und eines Volladdierers unter Verwendung logischer Elemente. Migration Mehrbitaddierer mit sequentiellem Übertrag. Übung auf dem Steckbrett. Erwähnung einer langen Zeitverzögerung und Schemata mit einer optimaleren Verzögerung.
Verwenden eines 4-Bit-Volladdierers CMOD 4008. Aufbau eines 8-Bit-Addierers und eines Subtraktionsschemas. Hausaufgaben für fortgeschrittene Schüler: Lernen und Präsentieren der Implementierung schneller Addierer mit beschleunigtem Gruppentransfer.
Prüfung.
Sequentielle Logik
Aufbau eines Taktgenerators basierend auf Chip 555. Untersuchung der Wirkung von Kondensatoren und Widerständen auf die Frequenz und Dauer von hohen und niedrigen Pegeln.
Da Kondensatoren in der Umreifung 555 enthalten sind, sind möglicherweise zusätzliche Erklärungen erforderlich, was Kondensatoren sind, warum sie in der Umreifung 555 benötigt werden und wie sie gekennzeichnet sind. Eine Hilfsübung mit Lade- und Entladekondensatoren unterschiedlicher Kapazität kann ebenfalls nützlich sein.
Schemata mit einem internen Zustand. Erstellen Sie einen RS-Latch aus NAND-Gates. Untersuchung des Verhaltens eines D-Flip-Flops mit einem CMOS 4013-Chip und einem Taktsignal von 555 mit einer Frequenz von 1 Hz.
Serielle Blöcke - Zähler (CMOS 4029) und Schieberegister (4015). Sieben-Segment-Anzeige und ihr Treiber 4511. Übungen mit diesen Mikroschaltungen.
Prüfung.
Von kleinen integrierten Schaltkreisen zu FPGAs - kombinatorische Logik
Das Konzept des FPGA (Programmable Logic Integrated Circuit) - eine Matrix aus rekonfigurierbaren Logikelementen. Konzept der Verilog-Hardwarebeschreibungssprache, Synthese, Platzierung, Ablaufverfolgung und Konfigurationsverfahren. Übung: Synthese des einfachsten Kombinationsmoduls mit FPGA-Konfiguration auf einem Trainingsboard.
Weiter lernen Verilog. Datentypen, Ausdrücke, Zuordnungen. Always-Blocks und Basisoperatoren. : , .
Verilog. . : . : .
Verilog . / . . : , Verilog. Icarus Verilog GTKWave .
: , ( ).
Verilog
Verilog, D- . : always-. Icarus Verilog.
: D-, . . : .
. . : .
. ( ) c . : , : , .
. , .
.
: , RISC- , MARS MIPS .
- . : , , , . . . — MARS MIPS. .
, , . : . .
. . . : , . .
.
:
Verilog MIPS , , . , , . . .
9.1
6. 2., .
, . . .
. CMOS 4000, , , . AND, OR, XOR, NOR, NAND . , .
2 , .
4- CMOD 4008.
8- 4-.
-a == ~ a + 1
555. .
D- CMOS 4013 555 1 .
“ ” CMOS 4015.
(CMOS 4029) 4511.
( ) — . Verilog, , , . Verilog, , . Always- .
.
, .
Verilog. . Verilog . / . .
: .
, Verilog. Icarus Verilog , GTKWave .
Verilog. Verilog, D- . : always-. Icarus Verilog. .
.
.
.
2 3 .
. . . ( ) c .
“ ”.
.
.
: . - . MARS MIPS .
: , , , . . . .
, , . .
. . . , . .
: .
Verilog MIPS , , . , , . . .
.
Anhang A. Was ist die Verilog-Hardwarebeschreibungssprache und wie bezieht sie sich auf das Design von Mikroschaltungen? Aus einem Beitrag zu Geektimes Microelectronics Scammers . Videobericht von der San Francisco Electronics Design Conference.25 Verilog ( — VHDL), (logic synthesis) , (static timing analysis) , , (place-and-route) .
: , , , , static timing analysis, floorplanning, place-n-route, parasitics extraction .. — GDSII, , . Taiwan Semiconductor Manufacturing Company TSMC.
B. / FPGA, — :
FPGA , , . AND , — .. — FPGA , , ..
- / FPGA — , «» ( -) (), ( ) ().
— FPGA, look-up table (LUT) flip-flop. , , .

, FPGA:

:

C. ,(system on chip, SoC), IP- (CPU, GPU, DSP) — , . ADAS (advanced driver-assistance systems) .
, , , ( 1980- — 1990- ). (hardware description languages — HDL), (register transfer level — RTL), RTL-to-GDSII, Verilog VHDL , FPGA (field-programmable gate arrays). , -, -. HDL RTL , , , , 1980- .
Neben der Konferenz in Tomsk und dem geplanten nächsten Experiment im Juli und Nowosibirsk, das von der Novosibirsk Summer School of Young Programmers unterstützt wird, gibt es auch einen frühen Plan, ein solches Experiment in Kasachstan zu organisieren (dies ist besonders daran interessiert, dass Venus Zhanalina am Kiewer Seminar teilnimmt ).
Anhang D. Beispiele für einfachen Verilog-Code und die von ihm generierten Schematamodule adder
(
input a,
input b,
input carry_in,
output reg sum,
output reg carry_out
);
reg p, q;
always @*
begin
p = a ^ b;
q = a & b;
sum = p ^ carry_in;
carry_out = q | (p & carry_in);
end
endmodule

module counter
(
input clock,
input resetn,
input load,
input [15:0] load_data,
output reg [15:0] count
);
always @ (posedge clock or negedge resetn)
begin
if (! resetn)
count <= 0;
else if (load)
count <= load_data;
else
count <= count + 1;
end
endmodule
So funktioniert es: Eine
ausführliche Erklärung finden Sie im Text "Einführung in das Design des Chipsatz-Harvers für diejenigen Programmierer, die dies noch nie getan haben . "Wenn Sie Lehrer sind und an der Entwicklung solcher Materialien teilnehmen möchten (dies alles auf freiwilliger Basis, ohne Kommunikation mit einem bestimmten Unternehmen), lassen Sie es mich in den Kommentaren wissen. Interessant ist auch jede Kritik.