Ist es möglich, 3-nm-Chiphersteller mit 130-nm-Übungen zu trainieren? Was ist mit Übungen mit 20.000 nm?

In Mode und Jugend Elektronik-Lehrbuch der Harrises Es gibt ein Beispiel für eine einfache Zustandsmaschine – “lächelnde Schnecke”. Ich habe mich entschieden, klar zu zeigen, wie Sie eine Schnecke zu Hause mit drei Technologien implementieren können:

  1. Microchips CMOS 4000. Die erste massenproduzierte CMOS-Serie, veröffentlicht 1968. 20 Mikrometer sind 20 Tausend Nanometer. Boomer, also Menschen, die während des Babybooms der 1950er Jahre geboren wurden und Anfang der 1970er Jahre in die Technologie einstiegen, studierten Elektronik auf solchen Mikroschaltungen. Darunter Steve Jobs und Steve Wozniak.

  2. Programmierbare Logikchips Cyclone IV von Altera, jetzt Intel FPGA Cyclone IV. 2009, 60 Nanometer. Ein Intel-Mikroschaltkreis, in dem es überhaupt keinen Prozessor gibt, sondern nur eine Reihe logischer Zellen, zwischen denen Verbindungen programmiert werden können. Es ist als Simulator für zukünftige Mikroprozessordesigner nützlich, da keine Bestellung im Werk aufgegeben werden muss, um eine Schaltung innerhalb des FPGA zu bauen.

  3. ASIC-Technologien der Skywater-Fabrik – dem Führer der amerikanischen Importsubstitution. 2019, 130 Nanometer. Das Unternehmen schreibt auf seiner Website, dass es die einzige reine Halbleiter- und Technologiegießerei im Besitz von US-Investoren ist, die keine ausländischen Investoren hat: “SkyWater ist die einzige reine Halbleiter- und Technologiegießerei im Besitz von US-Investoren.” Daher in ihnen investierte 10 Milliarden Rubel Pentagon.

Bei der Arbeit habe ich auch Zugriff auf die 3-Nanometer-Technologie, aber ich kann sie Ihnen auf Habré nicht zeigen, daher bitte ich Sie, mich beim Wort zu nehmen, dass die „lächelnde Schnecke“ bei 3 Nanometern funktioniert. All dies wird übrigens bei einem Seminar in Bischkek aufgegriffen nächste Woche. So:

Erstens, die Bedingung des Problems in Harris & Harris:

Diagramme von Übergängen zwischen Zuständen zweier Varianten der Zustandsmaschine:

Wenn Sie Karnaugh-Karten mit einem Stift auf Papier zeichnen, können Sie anhand der obigen Diagramme Schaltungen mit UND- und NICHT-Logikelementen und Zustandserhaltung in D-Flip-Flops aufbauen. Für die Schaltung links werden zwei D-Flip-Flops benötigt (zwei Statusbits für drei Zustände – 00, 01, 02), für die Schaltung rechts reicht ein Statusbit:

Jetzt nehmen wir die CMOS-Chips 4081 (4 AND-Elemente), 4069 (6 NOT-Elemente) und 4013 (zwei D-Flip-Flops), stecken sie von unten in das Steckbrett, verbinden die Beine mit Drähten – und fertig ist die Zustandsmaschine. Der Übersichtlichkeit halber fügen wir Glühbirnen und Knöpfe hinzu, an denen wir ein Dutzend Widerstände anbringen, damit nichts durchbrennt und nicht hängt (das ist nicht schwieriger als das Häkeln von Schals).

So sehen die Chips 4081, 4069 und 4013 im Inneren aus:

Das Steckbrett oben ist nicht Teil der Zustandsmaschine. Links ist ein Taktgenerator, rechts ein Schieberegister, rein der Übersichtlichkeit halber, um zu sehen, welche Folgen von Nullen und Einsen wir dem endlichen Automaten zuführen. Das ganze funktioniert so:

Springen Sie jetzt schnell ins 21. Jahrhundert und laden Sie die Quartus Prime Lite Edition 21-1-1-Software von der Intel-Website herunter (und es ist wichtig, Lite herunterzuladen, nicht Pro, es sei denn, Sie geben Intel 5.000 US-Dollar). Zum Fenster oder für Linux. Wenn Sie Quartus zum ersten Mal ausführen, ist es auch wichtig, hier “Run” zu sagen, also die kostenlose Version auszuführen. Andernfalls kann es zu Problemen beim Wechsel von lizenziert zu kostenlos kommen:

Jetzt können Sie von github herunterladen Paket mit Übungen für das Seminar in Bischkek, entpacken Sie es in ein beliebiges Verzeichnis, suchen Sie die Projektdatei day_3/lab_8_snail_fsm/top.qpf und öffnen Sie sie in Quartus über das Menü “Datei | Projekt öffnen”, das immer mit “Datei | Öffnen” verwechselt wird. Als nächstes müssen Sie auf Compile Design doppelklicken und nach ein paar Minuten sehen Sie Folgendes:

Wenn Sie auf die verschiedenen Menüs klicken, sehen Sie, wie sich der Sprachcode der Verilog-Hardwarebeschreibung in ein Diagramm verwandelt hat und wie Quartus die Zustände der Zustandsmaschine erkannt hat (es hat dem Diagramm einen Reset hinzugefügt, aber das sind Nuancen):

In einem weiteren Menü können Sie sehen, wie die Schaltung auf FPGA / FPGA-Zellen abgebildet wird. Es wird immer noch als Graph dargestellt:

Aber der Graph wird innerhalb des Chips platziert. Die logischen Funktionen der Zellen werden mithilfe von Multiplexern geändert, die mit Bits eines benutzerprogrammierbaren Speichers verbunden sind, daher die Abkürzung FPGA – “Programmable Logic Integrated Circuits” oder FPGA – “User Programmable Gate Arrays”:

Wir gießen es in den Chip auf der Platine und so funktioniert es live:

Kommen wir nun zu festen Mikroschaltungen, die im Werk hergestellt werden. So sieht die Skywater-Fabrik aus:

Die Fabrik gibt Designern die sogenannte ASIC-Standardzellenbibliothek, eine Bibliothek von Zellen, die die Fabrik produzieren, in Reihen auf Silikon bauen und mit Kupferbahnen verbinden kann. Die Grundelemente ähneln funktional dem, was wir im CMOS 4000 gesehen haben: UND-, ODER-, NICHT-Gatter, ihre einfachen Kombinationen, Multiplexer, einfache Addierer, Addierer und verschiedene D-Flip-Flops – mit synchronem oder asynchronem Zurücksetzen, Aktivieren usw.

.

Physikalisch sieht die Zelle aus wie mehrere Siliziumschichten mit Bor- und Phosphorverunreinigungen. Für jede Zelle sind ihre physikalischen Parameter bekannt – Verzögerungen in Pikosekunden unter verschiedenen Bedingungen, Größe, Stromverbrauchsparameter – all dies wird von der Software berücksichtigt, die den Verilog-Code in eine GDSII-Datei umwandelt, die zur Herstellung an die Fabrik gesendet wird Satz Fotomasken zum Drucken von Mikroschaltkreisen.

Skywater hat sich nicht nur mit dem Pentagon für seine strahlungstoleranten Anforderungen zusammengetan, sondern auch mit Google, das junge Genies sponsert, die sich entscheiden, ihre Chips mit einer Reihe von Open-Source-Designtools namens OpenLane zu entwerfen, die vor drei Jahren veröffentlicht wurden. Das Umwandeln des Velirog-Codes in eine Fotomaske mit OpenLane sieht so aus:

Ich habe OpenLane auf einem Lubuntu 22.04 LTS-Rechner installiert nach anweisungen von github.

Zunächst werden die Voraussetzungen festgelegt:

sudo apt install -y build-essential python3 python3-venv python3-pip

Dann Docker ist installiert:

sudo apt-get entfernen docker docker-engine docker.io containerd runc sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
\ $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd .io docker-compose-plugin apt-cache madison docker-ce sudo apt-get install docker-ce=5:20.10.17~3-0~ubuntu-jammy docker-ce-cli=5:20.10.17~3- 0~ubuntu-jammy containerd.io docker-compose-plugin sudo docker run hello-world

Dann müssen Sie sich einer Gruppe hinzufügen, die Docker ausführen kann:

sudo usermod -aG docker $USER

, dann neu einloggen. Jetzt können Sie das OpenLane-Repository klonen:

mkdir -p ~/github cd ~/github Git-Klon https://github.com/The-OpenROAD-Project/OpenLane.git

Alles, die Installation ist abgeschlossen, aber Sie müssen Ihr eigenes Projekt erstellen. Wir kopieren unsere lächelnde schneckenquelle auf veriolog in das Verzeichnis $HOME/github/OpenLane/designs/snail_moore_fsm/src und dann zu $HOME/github/OpenLane/designs/snail_moore_fsm hinzufügen zwei Skripte auf TCL (eines ist üblich, um OpenLane zu steuern, das zweite, um Bibliotheken von SkyWater zu steuern) – und Sie können die Synthese starten.

Aber zuerst müssen Sie Docker ausführen. Das geht so:

cd $HOME/github/OpenLane make mount

Jetzt sehen Sie eine Eingabeaufforderung wie “OpenLane Container (xxxxxxx):/openlane$ “, unter der Sie ein TCL-Skript ausführen können:

./flow.tcl -design snail_moore_fsm

Das Skript wird alle 39 Syntheseschritte ausführen und produzieren Hier ist das Hauptprotokoll. Interessanterweise wird aus dem ursprünglichen Verolog auch ein Verolog synthetisiert, aber nur auf einer niedrigen Ebene, und in jeder Phase werden ihm alle möglichen physikalischen Details hinzugefügt. Ganz am Anfang des Prozesses verwandelt eine OpenLane-Komponente namens Yosys ein Veriolog auf Registerübertragungsebene in ein Veriolog, das einfach Skywater-Bibliothekszellen instanziiert und sie mit Drähten verbindet. Hier ist ein Blick auf diesen synthetisierten Code. Erinnert er dich an etwas? Natürlich sind dies die gleichen UND-, NICHT- und D-Flip-Flops, die wir auf einem Steckbrett mit 50 Jahre alter Technologie gesehen haben. Nur das ist die Technik von 2018, nicht von 1968:

/* Generiert von Yosys 0.12+45 (git sha1 UNKNOWN, gcc 8.3.1 -fPIC -Os) */ module snail_moore_fsm(clk, reset, en, a, y); Draht_00_; Draht_01_; Draht_02_; Draht_03_; Draht_04_; Eingabe a; Eingabe clk; eingeben; Eingang zurücksetzen; Draht\Zustand[2] ; Ausgang y; sky130_fd_sc_hd__nor2_2 _05_ ( .A(zurücksetzen), .B(en), .Y(_03_) ); sky130_fd_sc_hd__or3b_2 _06_ ( .A(zurücksetzen), .B(a), .C_N(de), .X(_04_) ); sky130_fd_sc_hd__a21bo_2 _07_ ( .A1(\state[2] ), .A2(_03_), .B1_N(_04_), .X(_01_) ); sky130_fd_sc_hd__and4b_2 _08_ ( .A_N(zurücksetzen), .B(en), .C(\state[2] ), .D(a), .X(_02_) ); sky130_fd_sc_hd__a21o_2 _09_ ( .A1(y), .A2(_03_), .B1(_02_), .X(_00_) ); sky130_fd_sc_hd__dfxtp_2 _10_ ( .CLK(clk), .D(_00_), .Q(y) ); sky130_fd_sc_hd__dfxtp_2 _11_ ( .CLK(clk), .D(_01_), .Q(\state[2] ) ); Endmodul

Wir können die moderne Inkarnation des alten Magic-Editors aus den 1980er Jahren verwenden, um das Ergebnis auf physischer Ebene zu betrachten. Es sieht so aus: a

Magic läuft vom Docker genau wie Magic &. Als nächstes müssen Sie die .mag-Dateien öffnen, die Sie in Signoff im Verzeichnis RUNS in Ihrem Projekt finden. Sie können auch den neueren Editor klayout ausführen, aber er verwendet ein anderes Datenformat, eine .gds-Datei.

OpenLane erstellt auch für diese Art von Tools Standardberichte über maximale Taktfrequenz, Größe, Stromverbrauch usw. – Ich habe die wichtigsten Berichte gesammelt in der Dateiablage für das Seminar in Bischkek.

Aber bevor eine lächelnde Schnecke synthetisiert werden kann, muss sie auf Timing-Diagrammen simuliert und debuggt werden (das macht ein Chipdesigner auf Registertransferebene einen halben Tag lang zusätzlich zu Rallyes, dem Schreiben von Code und dem Zeichnen von Mikroarchitekturdiagrammen). So sehen die Timing-Diagramme der „lächelnden Schnecke“ im kostenlosen GTKWave-Programm nach der Simulation im kostenlosen Icarus-Verilog-Simulator aus:

Icarus ist jedoch langsam und unterstützt nicht die gesamte SystemVerilog-Sprache. Und GTKWave ist sehr langsam, wenn Sie etwas mehr Signale haben als im Spielzeugbeispiel. Glücklicherweise wird es in Bischkek Siemens EDA (ehemals Mentor Graphics) geben, das über einen Questa-Simulator verfügt. Es hat eine bessere Sprachunterstützung, Geschwindigkeit und Debugging-Funktionen

.

So sieht die „lächelnde Schnecke“ in der Quest aus:

Ich habe bereits über das Seminar in Bischkek geschrieben, aber unten ist sein detaillierter Zeitplan. Es ist noch nicht zu spät, in ein Flugzeug zu steigen und dorthin zu fliegen. Gleichzeitig können Sie mit mir zum Studium der zentralasiatischen Küche gehen:

.

Website für die Registrierung

Bis dann!

Similar Posts

Leave a Reply

Your email address will not be published.