Programmierbare Chip-Design-Programme Altera. Hardware - ALTERA: programmierbare Logikchips (Einführungsmaterial). Altera-Produkte. altera, einer der größten PLS-Entwickler, wurde 1983 als gegründet


(C) Forschung/WolgaSoft Moderne Technologien. ALTERA.(Einführungsmaterial) EINFÜHRUNG In diesem Artikel geht es um ein modernes kleines Wunder, einen kalkulierten Durchbruch in der Welt der digitalen Elektronik – programmierbare Logikchips. Dies ist der Ziegelstein, der in den modernsten Modellen steht ZX-SPECTRUM - GMX und SPRINTER , das ist derselbe Mikroschaltkreis, auf dem man fast alles machen kann – vom Z80X (sagen wir 30 MHz, Maschinenzyklus 1 Takt) bis hin zu allem Pentagon zusammen mit einem 2D-Beschleuniger, GS, Maus und IDE-Controller. Wahrscheinlich träumte jeder Funkamateur bei der Entwicklung eines digitalen Geräts in seinem Herzen – wo man eine Pille gegen alle Krankheiten finden könnte – eine Mikroschaltung, die alles ersetzen würde. Vor allem Ingenieure brauchten solche Geräte, da sie bei der Entwicklung eines seriösen Produkts einen maßgeschneiderten integrierten Schaltkreis „für diese Aufgabe“ entwerfen mussten. Von der Erstellung der Logik bis zum Erscheinen des funktionierenden Produkts vergingen in der Regel mehrere Monate und es wurden enorme Ressourcen aufgewendet. Aber Nachfrage schafft Angebot – es sind semi-kundenspezifische großintegrierte Schaltkreise (LSI) und programmierbare Logikarrays (PLA) erschienen. Die Wissenschaft blieb nicht stehen, die Technologien wurden immer fortschrittlicher und eines Tages wurde die Veröffentlichung eines Pakets „Software“ + „Hardware“ + „Stein“ angekündigt. Die Idee war sehr einfach: Der Entwickler zeichnet ein Diagramm in der Software (überträgt es möglicherweise vom Papier) oder beschreibt die Logik des zukünftigen Produkts mit binären Gleichungen und einfachen Operatoren, dann übersetzt der Compiler das Diagramm in Code und den Code wird von einem Programmierer („Hardware“) zu einem programmierbaren Logikchip („Stein“) zusammengefügt, der sofort in die Platine eingelötet werden kann. Und es fallen keine Kosten für Chip-Entwicklung oder -Tests an. Entwickler digitaler Geräte nahmen das neue Produkt mit großem Jubel an. Heutzutage gibt es viele Hersteller von programmierbarer LSI-Logik (PL) auf dem Markt. Ihre Produkte unterscheiden sich sowohl in der Kapazität und Architektur als auch in der Qualität des Software- und Hardware-Supports, des Service und letztendlich der Kosten. Der klare Spitzenreiter ist heute das Unternehmen Altera Corporation . Es eroberte den Markt nicht nur dank seiner breiten Produktpalette, sondern auch durch den kompetenten Vertrieb seiner Produkte. Beispielsweise ist die Nutzung von Softwareprodukten (Studentenversionen) für Bildungszwecke kostenlos. Für Russland ist es im Allgemeinen nicht wichtig (fast niemand hat jemals das Urheberrecht gesehen), aber im Ausland ist dieses Thema relevant. Darüber hinaus sind die Produkte des Unternehmens buchstäblich auf den heimischen Markt vorgedrungen – so dass wir mittlerweile fast alle auf dem heimischen Markt vertreten sind. VOM WORT ZUM HANDELN VLSI PL von Altera klassifiziert nach folgenden Kriterien: 1) Integrationsgrad (Anzahl der verfügbaren Gatter (2I-NOT-Elemente) und Flip-Flops); 2) Architektur des einfachsten Funktionswandlers (Zelle); 3) Organisation der internen Struktur von VLSI und der Struktur der Verbindungsmatrix von Funktionswandlern (Methode zum Verbinden von Zellen); 4) das Vorhandensein eines internen RAM-Speichers; 5) Technologie zur Herstellung eines programmierbaren Elements (Sicherung, EPROM, EEPROM, FLASH, SRAM) – wie die Schaltung verdrahtet ist. Mit den meisten seiner BIS PL-Unternehmen zusammenarbeiten Altera bietet die Hardwarebeschreibungssprache MAX+plus II an. Das Designautomatisierungssystem MAX+plus II unterstützt sechs Familien von VLSI PL.┌─────────┬──────────────────────┐ │ │ Parameter │ │. ├────────── ┬─────┬─────┤ │Familie│Logik│UPin │Tech │ │ │ Kapazität │ │ │ │ │ │ │ ├─── ──────┼────── ────┼─────┼─────┤ │Classic │ 300-900 │22-64│EPROM│ │MAX5000 │ 600-3750 │24-84│EP ROM│ │MAX7000E │ 600-5000 │ bis zu 164│EEP- │ │MAX9000 │ 6e3-12e3 │bis zu 216│ROM │ │FLEX8000A│ 2500-16e3│bis zu 208│SRAM │ │FLEX10K │ 1e4-1e5 │bis zu 406 │SRAM │ └── ───────┴─ ─────────┴─────┴─────┘Die logische Kapazität ist die Anzahl der verfügbaren 2I-NOT-Elemente, d. h. bis zu 25.000 unserer LA3 passen in den FLEX10K. UPin – Anzahl der Benutzer-Pins. Technik – Technik. Praktische Erklärung für die Tabelle: Nehmen wir an, wir nehmen den totesten FLEX8000A (SRAM-Technologie – d. h. nach dem Einschalten muss der Stromkreis des Geräts in die Lichtmaschine „gegossen“ werden) und hängen ihn mit den Füßen des Benutzers an den Rodimigo-Bus Specky (es werden noch ein paar übrig sein), wir bauen einen einfachen Port-Decoder in großen Mengen und verbinden ihn mit dem Alterina-Eingang. Was bekommen wir? Wir bekommen ein super Gerät!!! Schließlich können Sie jetzt praktisch jedes Schema in einen Altar umsetzen!!! Es könnte alles Mögliche sein, von einer externen Matte. Prozessor (sagen wir, wir stecken eine 16-Bit-Zahl Byte für Byte in einen Port, die zweite Zahl in einen anderen, den Operationscode woanders und lesen dann das Ergebnis), bis hin zu allem, was für den Verstand verständlich ist (wenn man stochert). ein paar freie Beine „wo sollten“ – Sie können Hardware-Füllung und Hardware-Konstruktion von Segmenten, mehrkanalige programmierbare Interrupts (besonders relevant für digitales Audio), neue Prozessorbefehle (wie in"Sprinter" oder zusätzliche Prozessorregister...). Sie können Bibliotheken mit Hardwarefunktionen erstellen, um keine großen zu erfinden, wie es hartnäckige „Programmierer“ immer noch tun, und sie entsprechend der Aufgabe lesen. Die „Firmware“ der Schaltung desselben FLEX8282A („der tödlichste“, siehe oben) wiegt, wenn ich mich recht erinnere, 6 KB. Während der Konfiguration befinden sich alle Benutzerbeine im Z-Zustand und haben keinen Einfluss auf den Betrieb des Systems. Wenn Sie möchten, dass ein Gerät „für die Ewigkeit hält“ und es nicht jedes Mal nach dem Einschalten konfiguriert werden muss, können Sie die MAX-Familie verwenden. Außerdem verfügen einige LSIs der MAX-Familie über einen Schutz gegen „Stromkreislecks“ – ein bisschen Entwicklungsgeheimnis, aber meiner Meinung nach ist die Verwendung dieser Familie aufgrund der Notwendigkeit etwas eingeschränkt (zumindest unter „Heimbedingungen“) Programmierer und eine begrenzte Anzahl von Programmierzyklen.NUN EIN PAAR WORTE ZUR ENTWICKLUNGSUMGEBUNG: HARDWARE-BESCHREIBUNG SPRACHE MAX + PLUS II.Das MAX + plus II-System ist für die folgenden Plattformen geschrieben: PC, MAC, SUN. Weder Speccy Aus irgendeinem Grund war nicht einmal die berüchtigte Freundin auf dieser Liste. Das System ist sehr gut, einfach und mit großen Möglichkeiten. Die Hauptkomponenten sind Grafik- und Texteditoren, ein Compiler, ein Diagrammeditor (auch „Debugger“ genannt), ein Timer sowie ein Layout- und Layout-Editor. Im Grafikeditor wird ein Diagramm des Geräts gezeichnet (sofern eine Grafikaufgabe verwendet wird). Als Elemente des Schemas können Sie die Logik „nach dem bürgerlichen Gast“ verwenden, die gesamte 74. Serie ist vorhanden, und wenn Ihnen die Bezeichnungen des Feindes nicht gefallen, können Sie alles auf unsere Weise zeichnen und zum Laufen bringen. Für die textliche Beschreibung der Hardware wird ein Texteditor verwendet. Die Sprache liegt irgendwo dazwischen dBase, C, Pascal . Es gibt auch fast einen fertigen Befehl zur Beschreibung einer synchronen Finite-State-Maschine wenn und Fall . Der Addierer wird wörtlich beschrieben als C=A+B . Eine Telefon-Chipkarte wird in einer Stunde ohne Anstrengung beschrieben und getestet (siehe unten). Der Compiler prüft den Schaltplan (oder Text) und generiert Firmware für den angegebenen „Baustein“. Weitgehend anpassbare Optimierungsgrenzen für Geschwindigkeit und Lautstärke ermöglichen es Ihnen, die maximale Leistung aus dem Gerät oder den minimal belegten Bereich auf dem Chip herauszuholen. Es gibt eine nützliche Sache, die vom Arzt entworfen wurde. Zeigt an, wo es Rennen und gefährliche Orte gibt und unter welchen Bedingungen sie auftreten. Vergessen Sie nicht, nach dem Einschalten usw. nach der Reset-Taste zu fragen, um das Gerät zu initialisieren. Im Diagrammeditor können Sie den Betrieb des zukünftigen Geräts simulieren: Nehmen wir an, Sie stellen Eingangssignale ein und schauen sich die entsprechenden Ausgänge an. Vergessen Sie nicht, diese auch anzuzeigen. Daher ist es besser, die Schaltung vor dem Zusammenbau im „Max“-Modus laufen zu lassen und zu überprüfen. Allerdings gab es auch einen Fehler – den T-Trigger R.S. , synchronisiert durch die Differenz, obwohl es in der Praxis pflügte. Das Anzeigen von Diagrammen ist sehr komfortabel: Sie können Diagramme anzeigen, indem Sie sie in Gruppen zusammenfassen und ein übersichtliches Zahlensystem (binär, dezimal, hexadezimal) darstellen. Eingabedaten können auch per Code angegeben werden Grau . Sie können auch die internen Zustände der Maschine anzeigen. Der Timer – in Afrika wird er auch als Timer bezeichnet – zeigt Verzögerungen und die maximal mögliche Betriebsfrequenz des Gerätes an. Der Layout- und Layout-Editor wird zum „Hardware“-Entfernen von Rennen (Neuanordnung von Logikzellen) und zum Platzieren benutzerdefinierter Pins verwendet. Preisliste des Händlers Altera Leider habe ich es verloren, daher kann ich aus dem Gedächtnis nur sagen, dass FLEX10K10 ab 20 US-Dollar, FLEX8282A ab 8 US-Dollar und Elemente der MAX-Familie ab 3,3 US-Dollar kosten. Wenn Sie interessiert sind, wo Sie Informationen erhalten können, können Sie bis zum Ende des Artikels scrollen, da weitere Informationen folgen.WEITERE INFORMATIONEN ÜBER FAMILIEN Die Classic-Familie umfasst 3 VLSI-Serien. LSIs dieser Familie ermöglichen den Ersatz eines Geräts mit 10 bis 20 Mikroschaltungen mit mittlerem Integrationsgrad und bieten: * Signalausbreitungsverzögerung von jedem Ein- und Ausgang des LSI von nicht mehr als 10 ns; * stabiler Betrieb bei Frequenzen bis 100 MHz; * Fähigkeit, im Modus mit geringem Stromverbrauch zu arbeiten; * die Möglichkeit, den Entwicklungsgeheimnismodus festzulegen (die Schaltung kann nicht vom Mikruhi zurückgeführt werden). Hinweis: Es sieht so aus, als ob sie bereits eingestellt wurden. Die MAX5000-Familie umfasst 5 VLSI-Serien. LSIs dieser Familie ermöglichen den Ersatz eines Geräts mit bis zu mehreren Dutzend Mikroschaltungen mit einem durchschnittlichen Integrationsgrad und bieten: * eine Verzögerung der Signalausbreitung von jedem Ein- und Ausgang des LSI von nicht mehr als 15 ns; * stabiler Betrieb bei Frequenzen bis 76 MHz; * Möglichkeit, den Geheimhaltungsmodus für die Entwicklung festzulegen; * die Möglichkeit, drei Betriebsarten von Ausgangspuffern zu verwenden: Eingabe, Ausgabe, bidirektional. Die MAX7000-Familie umfasst 7 VLSI-Serien. LSIs dieser Familie ermöglichen den Ersatz eines Geräts mit bis zu Hunderten von Mikroschaltungen mit mittlerem Integrationsgrad und bieten: * Signalausbreitungsverzögerung von jedem Eingang zum Ausgang des LSI nicht mehr als 5 ns; * stabiler Betrieb bei Frequenzen bis 178 MHz; * Fähigkeit, die Geschwindigkeit des Schaltens von Ausgangspuffern zu regulieren; * Möglichkeit, 4 Betriebsarten von Ausgangspuffern zu verwenden: Eingang, Ausgang, bidirektional, offener Kollektor; * die Möglichkeit, einen Modus mit geringem Stromverbrauch sowohl für das gesamte VLSI als Ganzes als auch für die Ausbreitungsschaltungen einzelner Signale einzustellen; * Möglichkeit der Programmierung und Neuprogrammierung nach der Verkabelung auf der Platine; * Möglichkeit, den Geheimhaltungsmodus für die Entwicklung festzulegen; * Arbeiten mit reduzierter (3,3 V) Versorgungsspannung. Hinweis: Einige Serien entsprechen dem PCI-Bus-Standard. Die FLEX8000A-Familie umfasst 7 VLSI-Serien. LSIs dieser Familie ermöglichen den Ersatz eines Geräts, das Dutzende von Platinen belegt, die auf Mikroschaltungen mit mittlerem Integrationsgrad hergestellt sind, und bieten die Fähigkeit: * stabilen Betrieb bei Frequenzen bis zu 294 MHz; * Emulation eines internen Busses mit 3 Zuständen; * mit reduzierter (3,3 V) Versorgungsspannung arbeiten; * Arbeiten in Systemen mit gemischter (3,3 V, 5 V) Versorgungsspannung; * Implementierung einer unbegrenzten Anzahl von Konfigurationszyklen, auch „on the fly“, d. h. ohne die VLSI-Stromversorgung auszuschalten; * Regulierung der Schaltgeschwindigkeit von Ausgangspuffern; * Möglichkeit der Verwendung von 3 Betriebsarten der Ausgangspuffer: Eingang, Ausgang, bidirektional. Hinweis: Alle VLSIs dieser Serie entsprechen dem PCI-Bus-Standard. Die MAX9000-Familie umfasst 4 Chipserien. LSIs dieser Familie ermöglichen den Ersatz eines Geräts, das Dutzende von Platinen belegt, die auf Mikroschaltungen mit mittlerem Integrationsgrad hergestellt sind, und bieten die Fähigkeit: * stabilen Betrieb bei Frequenzen bis zu 125 MHz; * unabhängige Nutzung des logischen Teils und Triggers der Makrozelle; * die Möglichkeit, einen Modus mit geringem Stromverbrauch sowohl für das gesamte VLSI als Ganzes als auch für die Ausbreitungsschaltungen einzelner Signale einzustellen; * Möglichkeit der Programmierung und Neuprogrammierung nach der Verkabelung auf der Platine; * Arbeiten in Systemen mit gemischter (3,3 V, 5 V) Versorgungsspannung; * Regulierung der Schaltgeschwindigkeit von Ausgangspuffern; * Verwendung von 3 Betriebsarten der Ausgangspuffer: Eingang, Ausgang, bidirektional. Hinweis: Einige Serien entsprechen dem PCI-Bus-Standard. Die FLEX10K-Familie umfasst 7 VLSI-Serien. LSIs dieser Familie ermöglichen den Ersatz eines Geräts, das Hunderte von Platinen belegt, die auf Mikroschaltungen mit mittlerem Integrationsgrad hergestellt sind, und bieten die Fähigkeit: * stabilen Betrieb bei Frequenzen bis zu 450 MHz; * On-Chip-Implementierung von statischem Speicher und ROM mit einer Kapazität von bis zu 24 Kbit; * unabhängige Verwendung des logischen Teils und Auslösers jedes logischen Elements; * Emulation eines internen Busses mit 3 Zuständen; * Multiplikation der internen Taktfrequenz; * Arbeiten in Systemen mit gemischter (3,3 V, 5 V) Versorgungsspannung; * Implementierung einer unbegrenzten Anzahl von Konfigurationszyklen, auch „on the fly“, d. h. ohne die VLSI-Stromversorgung auszuschalten; * Regulierung der Schaltgeschwindigkeit von Ausgangspuffern; * Möglichkeit der Verwendung von 4 Betriebsarten der Ausgangspuffer: Eingang, Ausgang, bidirektional, offener Kollektor. Hinweis: Alle VLSIs dieser Serie entsprechen dem PCI-Bus-Standard. Das ist es. Ich möchte nur hinzufügen, dass der Fortschritt nicht stillsteht und es in jeder Serienfamilie weitere gibt. AUFTRITTE WWW.ALTERA.COM - Dort erhalten Sie detailliertere Informationen und elektronische Schlüssel zum Programm MAX + Plus II (unter Vorgabe als Student oder Forscher).EFO-Unternehmen. Email: [email protected] Tel. (812) 247-5340 194021 St. Petersburg, Politekhnicheskaya Str., 21(Hier können Sie die entsprechenden Elemente kaufen).LITERATUR 1. Rezension der ALTERA-Elementbasis (Antonov A.P., Melekhin V.F., Fillipov A.S.; St. Petersburg 1997) 2. Das gleiche Buch (nur scheint es größer zu sein) ist auf dem Compact mit MAX + Plus II im Video.PDF (anscheinend 45 MB), allerdings auf Englisch.

Programmierbare integrierte Logikschaltkreise von ALTERA und computergestütztes Designsystem MAX+PLUS II

Programmierbare logische integrierte Schaltkreise (FPGAs), oder in der ausländischen Literatur als PLDs (Programmable Logic Devices) bezeichnet, sind semi-kundenspezifische digitale LSIs, die dank ihrer architektonischen und technologischen Merkmale ohne spezielle technische Ausrüstung entwickelt und hergestellt werden können. FPGAs kamen Mitte der 80er Jahre auf den Weltmarkt. Und sie verbreiteten sich sofort und verlagerten den Prozess der Erstellung eines speziellen LSI von der Fabrik auf den Arbeitsplatz des Designers. Der LSI-Entwicklungszyklus wurde auf mehrere Stunden verkürzt und die damit verbundenen Kosten deutlich gesenkt.

Seit Anfang der 90er Jahre. Die größte Nachfrage besteht nach FPGAs mit:

hohe Logikintegration basierend auf CMOS-Technologien;

Geschwindigkeit bis zu 80 -100 MHz und höher;

Möglichkeit der Programmierung (Laden der internen Konfiguration) ohne Programmierer.

All diese Anforderungen erfüllen FPGAs von ALTERA (USA), einem Weltmarktführer im Bereich FPGAs. Derzeit produziert ALTERA sieben Familien von FPGAs verschiedener Architekturen [14].

In Russland sind die bekanntesten FPGAs die Classic-Familie, die seit einiger Zeit von INTEL produziert wird. Die Hauptvorteile dieser Mikroschaltungen sind Einfachheit, niedrige Kosten, einfach zu installierende DIP-Pakete, Mikroenergieverbrauch im statischen Modus und die Fähigkeit, mit inländischen Mitteln (CAD FORS+, Blitz, Sterkh, Forsys-Programmierer) unterstützt zu werden. FPGA EP220 ersetzt alle Mikroschaltungen der Serie 1556 (HP4, HP6, HP8, XL8).

Alle FPGAs werden mithilfe der Ultraviolett-löschbaren CMOS-Technologie (EPROM) hergestellt, die die folgenden Stromverbrauchsparameter bietet:

im statischen Modus - 10-30 µA;

bei einer Frequenz von 1 MHz - 2-8 mA;

mit zunehmender Taktfrequenz - 1 mA/MHz.

Um den Preis bei der Massenproduktion von Produkten um 30-40 % zu senken, werden alle FPGAs auch in Kunststoffgehäusen (DIP und PLCC) mit einmaliger Programmierung hergestellt.

Die Nachteile von FPGAs der klassischen Familie sind der relativ geringe Integrationsgrad und einige architektonische Merkmale: der fehlende Eingang für das Setzen von Triggern auf „1“ (SET), das Blockieren von Kontakten bei der Implementierung interner Speicherelemente.

FPGAs der Familien MAX7000 und FLASHlogic, die über eine Matrixarchitektur verfügen, d. h. enthalten programmierbare Matrizen aus logischen Gattern „AND“, „OR“ und Flip-Flops.

Die MAX7000-Familie besteht aus sieben Chips mit Integrationsstufen von 1.200 bis 10.000 äquivalenten Logikgattern, die 32 (EPM7032) bis 256 (EPM 7256) Flip-Flops enthalten.

Darüber hinaus wird der FPGA EPM7032V hergestellt – ein funktionales Analogon der Mikroschaltung EPM7032 mit einer Versorgungsspannung von 3,3 V.

Die FPGAs der MAX7000-Familie werden mithilfe der elektrisch löschbaren CMOS-Technologie (EEPROM) hergestellt. Sie liefern:

minimale Signallaufzeit vom Eingang zum Ausgang 5 ns;

maximale Taktfrequenz 190 MHz;

bis zu 100 Programmier-/Löschzyklen.

Die FPGAs der MAX7000-Familie verfügen über eine flexible Architektur. Ihre Makrozellen enthalten zwei unabhängige Rückkopplungsleitungen; vom Auslöser und vom Kontakt. Dadurch kann das Flip-Flop als internes Register und der Pin gleichzeitig als Eingangsport genutzt werden. Zusätzliche Ressourcen des FPGA sind Erweiterungsterme – Konjunktoren, deren inverse Ausgänge Rückkopplungsverbindungen mit der Matrix der „AND“-Elemente bilden. Mit Begriffen können Sie Steuersignale (z. B. CLK, SET, RESET) generieren, ohne Makrozellen auszugeben. Durch die Umverteilung der Terme zwischen Makrozellen kann die Anzahl der Eingänge der „OR“-Elemente auf 32 erhöht werden.

Jede Makrozelle verfügt über ein individuelles Turbobit, dessen Programmierung es Ihnen ermöglicht, den Stromverbrauch bei leichtem Leistungsabfall zu senken. Ab 1996 werden alle FPGAs der MAX7000-Familie in der ISP-Variante (im System programmierbar) verfügbar sein. Dadurch können Sie die Schaltung direkt auf der Arbeitsplatine über die 4. Signalschnittstelle, die mit dem Computeranschluss verbunden ist, programmieren und löschen. Die Anwesenheit eines Programmierers wird optional, was die Verwendung von FPGAs erheblich vereinfacht und die Kosten senkt.

Die FPGAs der MAX7000-Familie sind kostengünstig. Beispielsweise beträgt der Preis für den EPM7032-Chip weniger als 7 und für den EPM7128-Chip weniger als 25.

Mit dem Aufkommen der MAX7000-Familie hat der praktische Wert der bisher produzierten FPGAs der MAX5000-Familie deutlich abgenommen, denn Es sind Analoga aller Mikroschaltungen erschienen (z. B. EPM5128 - EPM7128) mit besseren Leistungs- und Stromverbrauchseigenschaften zu niedrigeren Preisen.

MAX+PLUS II ist ein automatisiertes FPGA-Designsystem (Programmable Logic Integrated Circuit), das von der Altera Corporation, einem weltweit führenden Hersteller von FPGAs, entwickelt wurde.

MAX+PLUS II ist ein multifunktionales Softwareprodukt, das dem Designer die Möglichkeit gibt, ein FPGA vollständig zu entwerfen, von der Eingabe der Schaltung, die der Designer auf dem FPGA implementieren möchte, bis hin zur Programmierung des FPGA selbst auf dem Programmiergerät.

MAX+PLUS II bietet folgende Benutzeroptionen:

Eingabe der internen Struktur des FPGA durch grafische Eingabe des Funktionsdiagramms;

Eingabe der internen Struktur des FPGA mithilfe der Hochprogrammiersprache Altera Hardware Description Language (AHDL), die vollständig in die MAX+PLUS II-Shell integriert ist;

Modellierung des FPGA-Betriebs in Form von Zeitdiagrammen;

Wenn Sie einen Programmierer haben, schreiben Sie die entworfene Struktur auf das FPGA usw.

Bei der Beschreibung der internen Struktur eines FPGA mithilfe von AHDL sind mehrere Optionen möglich.

Beschreiben Sie in der ersten Option die Struktur in Grundelementen, d. h. Verwendung einfacher Funktionen wie RS-Trigger, D-Trigger, T-Trigger, JK-Trigger usw.

Bei der zweiten Möglichkeit führen Sie die Beschreibung mithilfe von Primitiven und Megafunktionen durch.

Megafunktionen sind komplexe logische Funktionen wie Zähler, Multiplexer, Decoder, Register usw.

Der Vorteil der ersten Option besteht darin, dass der Übersetzer weniger Zeit damit verbringt, die einfachsten Funktionen der AHDL-Sprache in Maschinencodes umzuwandeln.

Die Nachteile dieser Option sind der große Umfang des Programmtextes und die Notwendigkeit einer detaillierten Beschreibung des Gesamtsystems.

Bei der zweiten Option, bei der Verwendung von Megafunktionen, ist keine detaillierte Beschreibung der Elemente erforderlich, da der Programmierer nur die Parameter einer komplexen logischen Funktion festlegt. Mit der Megafunktion lpm_counter kann beispielsweise ein Zähler beschrieben werden, indem nur der getaktete Eingang und die Breite des Zählers selbst angegeben werden. Dadurch wird der Umfang des Programmtexts erheblich reduziert und Sie können auch die Zeit, die zum Schreiben eines Programms benötigt wird, geringfügig verkürzen.

Der Nachteil besteht darin, dass die Übersetzung des Programms in Maschinencodes mehr Zeit in Anspruch nimmt als bei der ersten Option.

Aber am Ende ist das Ergebnis dasselbe, sodass der Stil, ein Softwareprodukt zu schreiben, ganz vom Designer abhängt.

Beim Debuggen eines geschriebenen Softwareprodukts können Sie mit SIMULATOR MAX+PLUS II das Ergebnis der FPGA-Operation in Form von Zeitdiagrammen detailliert untersuchen. Der Designer kann verschiedene im Programm beschriebene Ausgänge und Zwischenzustände auswählen sowie verschiedene Eingabeaktionen festlegen.

EINFÜHRUNG

Wenn jemand ein funktionierendes Board sieht, stellt er normalerweise immer die gleichen Fragen: - Ist das ein Arduino? - Wie funktioniert es ohne Arduino?

Es ist kein Mikrocontroller, es ist nicht einmal ein Prozessor, es ist ein FPGA. FPGA ist eine programmierbare integrierte Logikschaltung, eine solche Mikroschaltung besteht aus vielen identischen Blöcken oder Makrozellen, die jeder Hersteller anders nennt, also sind es bei Xilinx Slices (Slices) und bei Altera LogicElements (logische Elemente). Diese Blöcke sind relativ einfach, sie können als mehrere logische Elemente fungieren, eine kleine Nachschlagetabelle (LUT) sein, einen vorgefertigten Addierer, Multiplikator, digitalen Signalverarbeitungsblock (DSP) enthalten, im Allgemeinen alles, was der Hersteller im Sinn hat . Der Benutzer kann diese Blöcke nach Belieben anordnen und konfigurieren und so recht komplexe digitale Schaltungen realisieren. Sie können sogar einen Mikrocontroller auf einem FPGA implementieren, indem Sie beispielsweise denselben Arduino oder einen Prozessor Ihrer eigenen Architektur implementieren, z. B. keinen Registerprozessor, sondern einen Stapelprozessor. Sie können sogar Ihren eigenen FPGA auf einem FPGA implementieren.

Unter den verfügbaren preisgünstigen FPGAs können zwei Haupthersteller identifiziert werden: Altera und Xilinx; mit ihren Produkten können Sie Ihre Reise zur Beherrschung dieser Technologien beginnen. Meiner Meinung nach ist es besser, Altera-Chips zu wählen, da deren Designumgebung ständig aktualisiert wird. Wenn Sie sich für einen beliebten Xilinx XC3S500E-Chip entscheiden, müssen Sie sich mit der veralteten ISE 14.7-Umgebung zufrieden geben (obwohl diese auch ihre Vorteile hat). .

In der ausländischen Literatur finden sich Abkürzungen für FPGAs: FPGA und CPLD. CPLD (Complex Programmable Logic Device) – Chips mit einer kleinen Anzahl von Makrozellen, spezialisierten Blöcken und geringem Stromverbrauch. Ein großes Projekt kann für diesen Chiptyp nicht synthetisiert werden, aber sie werden auch in der Praxis verwendet, beispielsweise hat ein seltener Mikrocontroller beispielsweise 300 Beine. Solche Chips werden häufig als Schnittstellensysteme, Präprozessoren und I/O-Erweiterungen verwendet. FPGA (Field-Programmable Gate Array) ist ein feldprogrammierbares Gate-Array (FPGA), das im Vergleich zu CPLD wesentlich leistungsfähigere Chips aufweist, aber mehr Strom verbraucht und deutlich mehr kostet. Um die Kosten für die Chipfläche zu reduzieren, können FPGA-Chips vorgefertigte Funktionen enthalten, wie etwa digitale Signalverarbeitungseinheiten (DSP-Einheiten), eingebettete Prozessoren und eingebetteten Speicher. FPGAs werden häufig zum Testen und Verifizieren von Designs in der sogenannten Pre-Silicon-Validierung verwendet, wodurch Kosten und Zeit vor der Produktfreigabe reduziert werden. FPGA-Chips können nahezu jederzeit umkonfiguriert werden; derzeit wird beispielsweise bei Intel daran gearbeitet, die Architekturen eines herkömmlichen Prozessors und eines FPGA-Chips zu kombinieren. Xilinx verfügt bereits über solche Lösungen – Zynq, aber wir werden vorerst nicht darüber sprechen.

Wir werden über einfachere Dinge sprechen, insbesondere da ich ein Entwicklungskit in die Hände bekommen habe: Cyclone IV 4 FPGA Core Board und Altera USB Blaster Downloader PLD Development Kit für 35 $, gekauft bei AliExpress.

1 Demoboard Cyclone IV 4 FPGA Core Board, Kurzbeschreibung

Reis. 1 - Demozahlung Cyclone IV 4 FPGA-Kernplatine

Auf der Platine (Abb. 1) ist ein EP4CE6E22C8N-Chip verbaut, dessen Eigenschaften:

Ressourcentyp Kurzbeschreibung Menge
Logikelemente (Les) Die Anzahl der logischen Blöcke – Zellen, das Hauptmerkmal, anhand dessen wir die „Leistung“ von Chips vergleichen können, wird diese Blöcke verwenden 6,272
Eingebetteter Speicher (Kbit) Der eingebaute Speicher ist für uns noch kein wichtiges Merkmal 270
Eingebettete 18x18-Multiplikatoren Eingebaute Hardware-Multiplikatoren, ein sehr wichtiger Parameter in der digitalen Signalverarbeitung, entfalten die volle Leistungsfähigkeit von FPGAs, wenn mehrere Multiplikatoren parallel arbeiten 15
Allzweck-PLLs Phasenregelkreisknoten, noch kein wichtiges Merkmal, vereinfachen die Synchronisierung von Geräten, die mit unterschiedlichen Frequenzen arbeiten 2
Globale Uhrennetzwerke Die Anzahl der Frequenzbereiche ist noch kein wichtiges Merkmal 10
Benutzer-E/A-Banken Die Anzahl der separaten Benutzer-I/O-Bänke ist noch kein wichtiges Merkmal 8
Maximaler Benutzer-I/O Anzahl der benutzerdefinierten I/O-Pins, wir können beliebige Geräte wie Arduino anschließen 91

Der Vorstand besteht aus:

  1. Flash-Speicher – Wenn Strom angelegt wird, wird das FPGA so konfiguriert, dass es im Flash-Speicher implementiert wird. Sie können Ihr Projekt synthetisieren und in diesen Flash schreiben
  2. 25-MHz-Quarz ist ein Referenztaktfrequenzgenerator. Bei dieser Frequenz werden alle unsere Projekte betrieben. Unser FPGA kann bis zu 10 solcher Kanäle unterstützen.
  3. LEDs – 10, Tasten – 2.
  4. I/O-Pins 61 + 2 Masse, 1 nicht verbunden. Sie können eine Vielzahl von Geräten anschließen. DAC-ADC, Beschleunigungsmesser und Gyroskope, Zeichen- und Grafikdisplays, wie Arduino.
  5. Stromversorgung über USB oder extern 5V.

Das Kit enthält außerdem einen JTAG-Programmierer, Altera USB Blaster.

2. Quartus II-Umgebung und unser erstes Projekt

Um mit diesem FPGA arbeiten zu können, müssen wir die offizielle Entwicklungsumgebung herunterladen - Quartus II Web Edition, es ist kostenlos. Wir gehen zur offiziellen Website http://dl.altera.com/15.0/?edition=web. Zum Zeitpunkt des Schreibens ist Version 15.0 die neueste. Wenn sie neuer ist, laden Sie sie herunter.

Wählen:


Reis. 2 - Wählen Sie die erforderlichen Altera-Produkte aus

Und klicken Sie auf die Download-Schaltfläche (Ausgewählte Dateien herunterladen). Danach werden wir aufgefordert, uns zu registrieren, zu registrieren, herunterzuladen und zu installieren.

Lassen Sie uns unser erstes Projekt erstellen.

Starten Sie Quartus, wählen Sie im Hauptmenü Datei -> Assistent für neue Projekte. Das Einführungsfenster wird angezeigt. Klicken Sie auf Weiter. Als nächstes müssen Sie das Verzeichnis für das Projekt und seinen Namen angeben. Das dritte Feld ist der Name des obersten Moduls. Sie werden später sehen, um welchen Namen es sich handelt. Wir wählen den Ordner aus, in dem wir das Projekt speichern möchten, und überlegen uns einen Namen, ich habe test1.


Reis. 3 – Fenster des Assistenten für neue Projekte

Klicken Sie auf Weiter. Wir werden gefragt, ob es sich um ein leeres Projekt oder eine Projektvorlage handelt. Als nächstes leer lassen. Dann werden wir aufgefordert, vorhandene Dateien hinzuzufügen. Wir haben nichts, da wir gerade erst mit unserer Reise beginnen. Klicken Sie auf „Weiter“.

Als nächstes müssen wir unseren Chip auswählen; dies ist jederzeit möglich. Wir wählen wie in der Abbildung Familie – Cyclone IV E, ein bestimmtes Gerät unter „Verfügbare Geräte“ aus und wählen unseren EP4CE6E22C8N-Chip aus, er steht ganz am Anfang. Wenn Sie einen anderen haben, finden Sie Ihren, es ist wichtig. Weiter klicken.


Reis. 4 -

Es erscheint ein Fenster – Design-Tools auswählen, Debuggen, überspringen Sie dies vorerst, klicken Sie auf „Weiter“ und beenden Sie es.


Reis. 5 - Fenster „Assinments-Deice“

Wählen Sie im Fenster den Punkt „Unbenutzte Pins“ aus. Diese Einstellung bestimmt, was mit nicht verbundenen Pins passiert. Dies kann wichtig sein; in Ihrem Projekt werden Sie wahrscheinlich nicht alle Pins verwenden, und diejenigen, die nicht angeschlossen sind, sind möglicherweise tatsächlich mit Masse oder Strom verbunden (naja, Sie wissen nie, wer die Platine verkabelt hat). Wenn Sie eine Eins an einen geerdeten Stift anlegen, brennt dieser durch, daher müssen Sie dies sorgfältig überwachen.

Standardmäßig sind die ungenutzten Pins „Als Eingang tri-stated mit schwachem Pull-up“ (Eingangspins befinden sich im dritten Zustand mit hoher Impedanz und schwachem Power-Pull-up). Sie können „Als Eingang tri-stated“ belassen oder auswählen “. Informationen zum Pull-up-Widerstand finden Sie auf Wikipedia https://ru.wikipedia.org/wiki/Pull-up_resistor. In der Digitaltechnik kann es drei Zustände geben, eine logische Eins ist die Versorgungsspannung oder ein hoher Pegel, eine logische Null ist, wenn der Pin mit Masse verbunden ist oder ein niedriger Pegel und hoher Impedanzzustand. Zustand hoher Impedanz- Dies ist der Fall, wenn ein Pin einen sehr hohen Widerstand hat und praktisch keinen Einfluss auf das Kabel hat, an das er angeschlossen ist. Dieser Zustand ist beispielsweise bei der Organisation von Bussen erforderlich, wenn viele Geräte an ein Kabel angeschlossen sind und inaktive Geräte nicht stören mit Betrieb.


Reis. 6 – Fenster „Geräte- und Pin-Optionen“, Nicht verwendete Pins

Wir verbinden alles im „Aufgabeneditor“


Reis. 7 - „Aufgabeneditor“ aufrufen über das Menü oder Panel

Machen Sie es im erscheinenden Fenster wie ich oder, wenn es absolut richtig ist, gemäß dem Diagramm Ihres Boards.


Reis. 8 – Assinement-Editor

Geben Sie in der Spalte „An“ den Namen des Ein- oder Ausgangs ein. Wählen Sie in der Spalte „Aufgabenname“ die Option „Standort“ aus. In der Spalte „Wert“ steht die Pin-Nummer des Mikroschaltkreises gemäß Platinendiagramm (ich habe Pin-Nummern direkt auf die Platine geschrieben).

Sie müssen auch angeben, was mit den Tasten geschehen soll, die mit einem Bein mit der Masse und mit dem anderen mit dem Eingang des Chips verbunden sind. Wenn Sie auf das Bein drücken, ist der Pegel niedrig, aber ohne Drücken ist es unklar, das Bein des Chips hängt einfach in der Luft, was sehr schlecht ist. Sie müssen den Chip-Eingang entweder über einen Widerstand auf der Platine oder auf elegantere Weise im „Zuweisungseditor“ an die Stromversorgung anschließen. Wählen Sie in der Spalte „Zuweisungsname“ „Schwacher Pull-Up-Widerstand“ für die Tastengruppe* aus (die Gruppe ist durch ein Sternchen gekennzeichnet).


Reis. 9 – Aufgabeneditor

Als nächstes müssen Sie eine Beschreibung des Top-Level-Moduls erstellen, das direkt mit den Chip-Beinen zusammenarbeitet. Klicken Sie im Hauptmenü auf „Neu“ und wählen Sie „Designdateien -> Blockdiagramm/Schaltplandatei“.


Reis. 10 – Dialogfeld „Neue Dateien“.

Wählen Sie im sich öffnenden Fenster das „Pin Tool“ aus und platzieren Sie den Ein- und Ausgang (Eingangs- und Ausgangspins) im Diagramm. Wir benennen den Eingang in Schlüssel, den Ausgang in LED um und verbinden sie mit einem Leiter. Speichern Sie und klicken Sie auf „Kompilierung starten“.


Reis. 11 – Grafisches Beschreibungsfenster, Pin-Tool und Start Compilation hervorgehoben

Nach dem Kompilieren hatten wir Warnungen, die wir vorerst ignorieren, sie beziehen sich auf nicht verbundene Pins, das Fehlen eines Taktsignals und die Beschreibung für den „Timing Analyzer“.

Wir verbinden das Demoboard und den Programmierer, wählen das Tool „Programmer“. Im Fenster sollte „USB-Blaster“ stehen. Wenn nicht, klicken Sie auf „Hardware-Setup“ und versuchen Sie herauszufinden, warum nicht. Höchstwahrscheinlich sind die Treiber nicht installiert. Sehen Sie sich Windows-Geräte an, suchen Sie nach nicht identifizierten Geräten, möglicherweise liegt ein Problem vor mit dem Kabel. Wenn alles in Ordnung ist, klicken Sie auf „Auto Detect“ und wählen Sie unseren Chip aus.


Reis. 12 – Programmierfenster

Doppelklicken Sie auf das Feld „Datei“ und wählen Sie die Datei aus, die auf den FPGA geschrieben werden soll (im Ordner „output_files“ unseres Projekts), aktivieren Sie das Feld „Programmieren/Konfigurieren“ und klicken Sie auf die Schaltfläche „Start“.


Reis. 13 – Programmierfenster, unser Chip ist bereits konfiguriert

Herzlichen Glückwunsch zu Ihrer ersten FPGA-Konfiguration! Diode D1 sollte aufleuchten, wenn Sie Taste 1 drücken, sollte sie erlöschen (da der Knopf das Bein zur Erde schließt), dann werden wir etwas dagegen unternehmen)

Für die meisten Funkamateure und Designer, die an ihren eigenen Entwicklungen beteiligt sind, sind digitale Mikroschaltungen seit langem bekannt und beherrschen sie. Viele Leute entwerfen ihre Designs schon seit geraumer Zeit auf Mikrocontrollern, da dadurch die Abmessungen deutlich reduziert und die Funktionalität der Geräte verbessert wird. Das einzige Problem ist, dass nicht alles auf Basis eines Controllers aufgebaut werden kann. Hochgeschwindigkeitsgeräte, die eine sofortige Reaktion auf sich ändernde Eingangssignale erfordern, können nicht auf einem Mikrocontroller aufgebaut werden, da dieser die schrittweise (Pipeline-)Verarbeitung von Befehlen organisiert, wodurch eine Entscheidung über die Ausgabe eines bestimmten Signals getroffen wird. Daher ist es neben Mikrocontrollern notwendig, konventionelle Logik zu verwenden, manchmal mit einer angemessenen Anzahl von Paketen. Die Folge davon ist eine große Anzahl externer Verbindungen, Designkomplexität und große Abmessungen von Leiterplatten, große Längen von Verbindungsleitern, Schwierigkeiten beim Bau von Geräten mit hohen Taktfrequenzen und geringe Zuverlässigkeit. Die Lösung dieses Problems ist die Verwendung programmierbarer logischer integrierter Schaltkreise (FPGAs), bei denen es sich um eine Ansammlung einer bestimmten Anzahl funktionaler Grundelemente handelt, die keine festen elektrischen Verbindungen untereinander haben, wodurch Sie eine nahezu beliebige Konfiguration festlegen können um eine bestimmte elektronische Schaltung zu erstellen. In der ersten Phase waren FPGAs Mikroschaltungen mit abgesicherten Jumpern wie K556RT4-RT5 und anderen. Es war möglich, einige Funktionen darauf zu erstellen, aber es war nicht möglich, eine kleine Schaltung mit Zählern und Triggern zu füllen.

Die Phasen des Entwurfs von Geräten, die auf einfacher Logik basieren, sind schlecht automatisiert und im Fehlerfall ist es notwendig, die Platine zu modifizieren, um zusätzliche Elemente einzuführen. Das Studium des MAX+plus II BASELINE-Softwarepakets und des FPGA von Altera wird nicht nur die Schaltung vereinfachen, sondern auch viele Fallstricke vermeiden. Diese Software kann auch beim Entwurf von Schaltungen für die 155-Serie und ihre Analoga verwendet werden. Zum Programmieren (Herstellen von Verbindungen) in PLD (sowie

CPLD) Es kommen EPROM-, EEPROM- und FLASH-Technologien zum Einsatz. Für Funkamateure sind FLASH-Mikroschaltungen von größtem Interesse, da sie es ermöglichen, den Kristall etwa 100 Mal neu zu programmieren und nach dem Entfernen der Versorgungsspannung die durch die Programmierung festgelegte Struktur beizubehalten.

In diesem Artikel werden die Fragen der schrittweisen Entwicklung von Schaltungen auf Basis von FPGAs von Altera – EPM3064A als günstigste Variante – erörtert. Es ist in einem 44-Pin-PLCC-Gehäuse untergebracht. Die Mikroschaltung verfügt über eine gemischte Stromversorgung und eine Multispannungs-Eingangs-/Ausgangsschnittstelle (I/O). Die Versorgungsspannung des logischen Kerns beträgt 3,3 Volt, Ein-/Ausgabeelemente – 5; 3,3; und 2,5 Volt. Maximale Taktfrequenz 227,3 MHz je nach Modifikation. Durch Setzen der Konfigurationsbits ist es möglich, die Neigung der Kanten zu steuern ( SchlugRate) Ein-/Ausgangssignale. Es gibt auch eine Implementierung von Open-Drain-Ausgängen durch Setzen des Bits ( OffenAbfluss). Es besteht die Möglichkeit, einen Energiesparmodus einzustellen, der den Stromverbrauch um mehr als 50 % reduziert. Es ist auch möglich, das Datenschutzbit zu setzen ( Sicherheitbisschen), wodurch Sie die interne Konfiguration des Chips nicht kopieren können. Diese Mikroschaltung verfügt über 4 Blöcke logischer Matrizen und 64 Makrozellen. Programmierbare Makrozellen-Trigger verfügen über individuelle Takteingänge ( Uhr), Synchronisierungsberechtigungen ( Uhraktivieren), zurücksetzen ( klar) und Voreinstellungen ( voreingestellt). Jede Makrozelle kann als programmierbare Matrix betrachtet werden UND und feste Matrix ODER. Am Matrixausgang ODER Ein Register mit konfigurierbarer Steuerschaltung ist im Lieferumfang enthalten. Die Registersteuerschaltung stellt unabhängig programmierbare Takt-, Taktfreigabe-, Reset- und Voreinstellungssignale bereit. Nach Angaben des Autors können 10-15 Gehäuse der Serie 155 in diese Mikroschaltung gesteckt werden (EPM3256-Mikroschaltungen mit 16 Logikmatrixblöcken und 158 Pins sind zum Verkauf erhältlich).

Die EPM3064A-Architektur umfasst die folgenden Elemente: Logikblöcke ( LABORs). Makrozellen ( Makrozellen). Logikexpander, gemeinsam genutzt ( Teilbar) und parallel ( Parallel). Programmierbare Verbindungsmatrix ( PIA). I/O-Steuereinheiten ( ICH/ÖKontrolleBlöcke). Der Chip verfügt über vier spezialisierte Eingänge ( gewidmetStift), die als allgemeine Eingänge oder schnelle globale Steuereingänge verwendet werden können (Synchronisation - Uhr, Nullstellung klar und zwei Ausgabeerlaubnissignale - aktivieren), für jede Makrozelle und jeden I/O-Pin. Das Blockdiagramm ist in Abb.1 dargestellt.

Abb. 1

Die Kernarchitektur des EPM 3064A ist logische Blöcke, bestehend aus 16 Makrozellen. Logikblöcke werden über eine programmierbare Verbindungsmatrix miteinander verbunden ( PIA). Jedem logischen Block werden folgende Signale zugeführt: 36 Signale von PIA, als Logikeingänge verwendet. Globale Steuersignale. Direkte Schaltkreise von Eingangspuffern zu Registern sorgen für hohe Leistung. Mehr über den funktionellen Aufbau und das Funktionsprinzip der Mikroschaltung erfahren Sie in.

FIGUR 2

Um den Chip zu programmieren, müssen Sie ein spezielles Download-Kabel herstellen ByteBlasterMV Abb. 2. Damit können Sie die FPGA-Konfiguration sowohl in der Projekttestphase als auch während des Betriebs schnell und effizient ändern. Die Umprogrammierung kann direkt im System erfolgen. Während der Programmierung werden die Pins der Mikroschaltung in den dritten Zustand versetzt, um Konflikte mit dem System zu vermeiden. Der Widerstandswert der internen Pull-up-Widerstände beträgt 50 kOhm.

Dieses Download-Kabel kann zum Programmieren von Mikroschaltungen der Serien MAX 3000A, MAX 7000, MAX 9000 und vielen anderen verwendet werden. Weitere Informationen finden Sie unter. Das Download-Kabeldiagramm ist in Abb. 3 dargestellt. Der Anschluss X1 wird direkt oder über ein Verlängerungskabel an den Parallelanschluss des Computers angeschlossen und sollte eine Länge von 1,5 Metern nicht überschreiten. Die Stromversorgung des Programmiergeräts erfolgt direkt über die Schaltkreise des zu entwickelnden Geräts. Für den normalen Betrieb des Programmiergeräts müssen Sie den Treiber installieren ByteBlasterMV was weiter unten beschrieben wird. Es empfiehlt sich, den Original-D 1-Chip zu verwenden, da dieser im Versorgungsspannungsbereich von 2,5 bis 5 Volt betrieben werden kann (im Extremfall kann er durch 1564AP5 ersetzt werden). Alle Widerstände sind vom Typ MLT 0,125. Der Kondensator C1 ist aus Keramik.

FIGUR 3

Leiterplatte Abb. 4. aus einseitigem Material gefertigt vereiteln Glasfaser 1,5 mm dick und 52 x 43 mm groß.

FIGUR 4

Um ein Projekt in der Umgebung des MAX+PLUS II-Systems von ALTERA zu erstellen, müssen Sie Fig5 aus dem Internet herunterladen und installieren. frei weiterverbreitbare Datei baseline10_1.exe Den Link zur Seite finden Sie in . Nachdem Sie das Programm installiert haben, um die volle Funktionalität zu erhalten, müssen Sie auf die Altera-Website gehen und eine Lizenzdatei erwerben. Wählen Sie auf dieser Seite den Link aus MAX+PLUS II-Software für Studenten und Universitäten. Wählen Sie auf der nächsten Seite den Link aus Version 10.2, 10.1,oder 9.23 und drücken Sie die Taste weitermachen . Geben Sie auf der nächsten Seite des Fensters Ihre Festplattenregistrierungsnummer ein. Drücken Sie dazu in Windows die Taste Dann fangen Sie an Programme, Standard, Kommandozeile, und geben Sie den Befehl ein dir Und eingeben.

Abb. 5

In der zweiten Zeile wird die 8-stellige Seriennummer der Festplatte gedruckt. Das muss eingegeben werden. Drücken Sie anschließend die Taste weitermachen und füllen Sie das Formular auf der nächsten Seite aus. Wenn Sie mit dem Ausfüllen des Formulars fertig sind, klicken Sie auf die Schaltfläche weitermachen. Die Lizenzdatei wird Ihnen per Post zugesandt. Erstellen Sie einen Ordner c:\mp2student\ und legen Sie die Ihnen zugesandte Datei dort ab lizenz.dat. Um die Lizenzdatei zu installieren, führen Sie Folgendes aus: MAX+plusII 10.1 GRUNDLINIE Klicken Sie dann auf die Registerkarte Optionen Und LizenzAufstellen Klicken Sie im angezeigten Fenster auf die Schaltfläche Durchsuche, und geben Sie den Pfad zur Lizenzdatei an. Drück den Knopf OK. Danach sind alle Anwendungen verfügbar. Anschließend müssen Sie die Programmiertreiberdatei installieren. Drücken Sie dazu die Taste START Dann Einrichtung, Bedienfeld, GeräteinstallationWeiter dann der Knopf DAh, das Gerät ist bereits verbunden und ein Knopf Weiter. Im nächsten Fenster auswählen Ein neues Gerät hinzufügen Und DGasse. Installieren Sie den Knopf Aus der Liste ausgewählte Geräte manuell installieren Und DGasse. Wählen Sie aus der Liste aus Klang, Video- und Spielgeräte Und DGasse. Drücken Sie den Knopf Uvon der Festplatte installieren, dann Taste Rezension. Den Weg festlegen C:\maxplus2\Drivers\win2000 Wenn Sie Windows XP installiert haben, klicken Sie auf OK. Wählen Sie aus der Liste aus Altera ByteBlaster, Taste Weiter Und Bereit.

Das MAX+PLUS II-System verfügt über Tools zur komfortablen Projekteingabe, Kompilierung und Fehlerbehebung sowie zur direkten Geräteprogrammierung. Die MAX+PLUS II-Systemsoftware enthält 11 Anwendungen und ein Hauptsteuerungsprogramm. Die verschiedenen Anwendungen, die die Projekterstellung unterstützen, können sofort aktiviert werden, sodass der Benutzer per Mausklick oder Menübefehlen zwischen ihnen wechseln kann. Gleichzeitig kann eine der Hintergrundanwendungen ausgeführt werden, beispielsweise ein Compiler, Simulator, Synchronisationsanalysator und Programmierer.

Die Tabelle enthält eine Beschreibung der Anwendungen.

Tisch

Anwendung Funktion ausgeführt
HierarchieAnzeige Hierarchieübersicht– Zeigt die aktuelle hierarchische Struktur der Dateien in Form eines Baums mit Zweigen an, die Unterprojekte darstellen.
GrafikEditor Grafikeditor– ermöglicht die Entwicklung eines Schaltungslogikprojekts im Format einer echten Anzeige auf dem Bildschirm.
SymbolEditor Charaktereditor– ermöglicht Ihnen, vorhandene Symbole zu bearbeiten und neue zu erstellen.
TextEditor Texteditor– ermöglicht Ihnen das Erstellen und Bearbeiten logischer Design-Textdateien, die in AHDL, VHDL, Verilog HDL geschrieben sind.
WellenformEditor Signaleditor– erfüllt eine Doppelfunktion: ein Werkzeug für die Designentwicklung und ein Werkzeug zum Eingeben von Testvektoren und Beobachten von Testergebnissen.
GebäudeplanEditor Level für LevelPlaner— ermöglicht die grafische Zuordnung von Gerätekontakten und logischen Elementressourcen.
Compiler Compiler— bearbeitet grafische Projekte.
Simulator Simulator– Ermöglicht das Testen logischer Operationen und der internen Synchronisierung der entworfenen logischen Schaltung.
Zeitliche KoordinierungAnalysator Zeitanalysator– analysiert den Betrieb der entworfenen Logikschaltung, nachdem sie vom Compiler synthetisiert und optimiert wurde.
Programmierer Programmierer– ermöglicht Ihnen das Programmieren, Konfigurieren, Verifizieren und Testen von ALTERA-FPGAs.
NachrichtProzessor Nachrichtengenerator– zeigt Fehler-, Warn- und Informationsmeldungen auf dem Bildschirm an.

Erstellen wir ein Arbeitsverzeichnis, in dem wir unser Projekt platzieren C:\ALTERA_WORK\schetchic. Die Schaltung kann in AHDL, VHDL, Verilog HDL (für diejenigen, die lieber programmieren) oder grafisch (eher für Funkamateure geeignet) beschrieben werden. Eine Projektdatei ist eine Grafik-, Text- oder Signaldatei, die mit den Grafik- oder Signaleditoren des MAX+PLUS II-Systems erstellt wurde. Diese Datei enthält die Logik für das MAX+PLUS II-Projekt und wird vom Compiler kompiliert. Der Compiler kann folgende Projektdateien automatisch verarbeiten: grafische Projektdateien ( .gdf); Projekttextdateien in der AHDL-Sprache ( .tdf); Projektsignaldateien ( .wdf); Projektdateien in VHDL-Sprache ( .vhd); Projektdateien in Verilog-Sprache ( .v); OrCAD-Schaltplandateien ( .sch); EDIF-Eingabedateien ( edf); Dateien formatieren XilinxNetzliste (.xnf); Projektdateien Altera (.adf); digitale Maschinendateien ( .smf). Hilfsdateien sind Dateien, die mit dem MAX+PLUS II-Projekt verknüpft sind, aber nicht Teil seines hierarchischen Baums sind. Die meisten dieser Dateien enthalten keine Projektlogik. Einige davon werden automatisch von der MAX+PLUS II-Systemanwendung erstellt, andere vom Benutzer. Beispiele für Supportdateien sind Zuweisungs- und Konfigurationsdateien ( .acf), Symboldateien ( .sym), Berichtsdateien ( .rpt) und Testvektordateien ( .vec).

Klicken Sie also im Hauptmenü auf Datei Dann Neu und wählen Sie das Element aus Grafik Editor Datei Und OK Abb.6. Es öffnet sich ein grafisches Editorfenster. Als nächstes speichern wir unser Projekt unter dem Namen schematisch. gdf zu unserem Katalog C:\ALTERA_WORK\ Klicken Sie dazu auf Datei Dann Speichern Als Und OK. Verknüpfen wir den Dateinamen mit der Projektdatei; klicken Sie dazu im Hauptmenü auf Datei Dann Projekt und weiter Satz Projekt Zu Aktuell Datei Alternativ können Sie auch die Tasten gleichzeitig drücken Strg+ Schicht+ J. Lassen Sie uns den Typ der Mikroschaltung festlegen, der im Projekt verwendet wird. Drücken Sie dazu die Schaltfläche im Hauptmenü Zuordnen Dann Gerät.

Im erscheinenden Fenster, in der Zeile Gerät Familie Wählen Sie eine Serie aus MAX3000 A. Und im Fenster Geräte EPM3064ALC44-4 und OK. Wenn Sie nicht wissen, wie viel Platz Ihr Projekt einnehmen wird, dann Geräte besser installieren AUTO, wählt der Compiler selbst den Typ der Mikroschaltung aus.

ABB. 6

Die Arbeitsbibliothek enthält Elemente verschiedener Typen:

1). Logische Grundelemente (im Ordner c:\maxplus2\max2lib\prim\) wie Elemente wie Und, oder, noch usw. mit unterschiedlicher Anzahl an Eingängen.

2). Analoga der diskreten Logik der 74. Serie sind Analoga der 155. Serie (befindet sich im Ordner c:\maxplus2\max2lib\mf\).

3). Parametrisierte logische Funktionen, mit denen Sie Projekte digitaler Geräte beliebiger Komplexität erstellen können (befindet sich im Ordner c:\maxplus2\max2lib\mega_lpm\).

Erstellen wir ein Verzeichnis, in dem wir unsere eigene Komponentenbibliothek ablegen C:\ALTERA_WORK\Altera_Lib und verbinden Sie es mit dem Projekt. Drücken Sie dazu die Schaltfläche im Hauptmenü Optionen Dann BenutzerBibliotheken und aus dem Fenster VerzeichnisName Lasst uns den Weg betreten c:\altera_work\altera_lib Dann OK. Es gibt zwei Möglichkeiten, ein Symbol auf dem Bildschirm zu platzieren: Klicken Sie dazu mit der rechten Maustaste auf die Stelle, an der wir das Element platzieren möchten, und wählen Sie das Menü im angezeigten Fenster aus Geben Sie Symbo einl im Fenster SymbolName Geben Sie im angezeigten Fenster den Namen des Elements ein und klicken Sie OK. Oder wählen Sie im Fenster die gewünschte Bibliothek aus SymbolBibliotheken Dialogbox EingebenSymbol und doppelklicken Sie mit der linken Maustaste, um es zu öffnen. Wählen Sie dann auf die gleiche Weise das gewünschte Element im Fenster aus SymbolDatei. Wenn das Projekt klein ist und Sie mit allen Elementen in der Bibliothek zufrieden sind, installieren wir auf diese Weise alle notwendigen Elemente und verbinden ihre Pins über Leiter. Dazu gibt es im Grafikeditor auf der linken Seite Symbole. Wenn Sie darauf klicken, können Sie eine gerade Linienverbindung, rechtwinklig platzierte Linien, Sektoren und Kreise erhalten. Wenn die Linie rot hervorgehoben ist, können Sie dies tun Tragen Sie die Verbindungsadresse ein und stellen Sie nicht die Verbindung selbst her. Eingangs- und Ausgangsschaltkreise werden durch Auswahl aus der Elementbibliothek gezeichnet Eingang Und Ausgabe( ggf. weisen wir ihnen einen Namen zu). Geben Sie Folgendes ein, um eine logische Eins und eine Null darzustellen vcc oder gnd. Und wenn Sie ein eigenes Symbol benötigen, müssen Sie ein neues Fenster des Grafikeditors öffnen und ein Diagramm der Komponente Fig7 zeichnen, ihm einen Namen geben und es in der Bibliothek speichern c:\altera_work\altera_lib. Auf die Projektdatei verlinken und durch Anklicken kompilieren Strg+L. Liegen keine Fehler vor, können Sie die Funktion der Schaltung mit einem Simulator überprüfen.

ABB. 7

Dazu öffnen wir Wellenform Editor, Speichern Sie die Datei unter demselben Namen. In der ersten Zeile unten Name: Klicken Sie mit der rechten Maustaste und wählen Sie Menü EingebenKnotenausSNF Klicken Sie im angezeigten Fenster auf die Schaltfläche Aufführen im Fenster VerfügbarKnoten &Gruppen Alle Ein- und Ausgänge unserer Schaltung werden angezeigt. Wir wählen die notwendigen aus (in diesem Fall IN Und AUS) Und Drücken Sie den Knopf => Die ausgewählten Zeichen werden kopiert im rechten Fenster. Klicken OK. Im Editor sehen Sie das Oszillogramm Abb.8. Unter dem Namen Wert Kann Stellen Sie den Ausgangszustand des Eingangssignals ein. Klicken Sie dazu mit der linken Maustaste In der Zeile links werden im Editor die Icons von logisch 1 und 0 angezeigt, durch Anklicken des Icons weisen wir den Eingangsstatus zu. Sie können ein zeitlich veränderliches Signal eingeben oder Z Zustand. Der Endzeitpunkt des Oszillogramms kann über das Menü eingegeben werden Datei Dann EndeZeit. Zeitstempel werden über das Menü eingestellt Optionen Dann Grig Größe.

Um den Zustand des Oszillogramms im Zeitverlauf anzuzeigen, führen Sie Folgendes aus: Simulator Drücken von Tasten Strg+Umschalt+L. Das Oszillogramm ist in Abb.9 zu sehen. Wenn wir mit dem resultierenden Komponentenmodell zufrieden sind, zeichnen wir ein Bild des Symbols. Öffnen Sie dazu den Symboleditor, klicken Sie im Hauptmenü auf Datei Dann Neu und wählen Sie das Element aus SymbolEditor Datei Und OK Abb.6. Durch Klicken mit der linken Maustaste zeichnen wir den Umriss des Symbols, indem wir zunächst links im Symbol das Zeichenwerkzeug auswählen.

Doppelklicken Sie mit der linken Maustaste Öffnen Sie das Menü EingebenPinstub links im Fenster geben wir an Ausgabetyp Eingabe oder Ausgabe ICH/ ÖTyp. Im Fenster VollPinstub Name Geben Sie den Ausgabenamen an (in unserem Fall IN Eingang AUS Ausfahrt). Die Größe aller Linien und Beschriftungen kann durch einen Linksklick auf das zu verschiebende Element geändert und verschoben werden. Die Datei muss unter demselben Namen wie die Grafikeditordatei in unserem Bibliotheksordner gespeichert werden.

Nachdem wir alle Hilfsfenster geschlossen haben, können wir ein Symbol in unsere Projektdatei eingeben.

Betrachten wir die praktische Schaltung eines dreistelligen Zählers mit dynamischer Anzeige Abb.10. Das Netzteil ist auf einem D 2-Chip vom Typ LM 317 aufgebaut und stellt die für D 1 notwendige Spannung bereit.

ABB. 10

Der Ausgangsstrom der Indikatorentladungen kann bei eingeschalteten Indikatoren etwa 80 mA betragen, daher werden die Indikatorentladungen durch die Transistoren VT 1-VT 3 geschaltet. Für das Versuchsmodell wurde eine interne Generatorschaltung ausgewählt, deren externe Schaltungen sind Widerstände R 16, R 18, C 2, aber im Arbeitsschema ist es besser, den Generator extern zu machen. Nach Angaben des Autors funktionieren FPGAs bei kapazitiven Lasten nicht besonders gut. Für den Anschluss an das Programmiergerät ist der Stecker X1 erforderlich.

Betrachten wir die interne Struktur des Projekts Abb.11. Alle Komponenten wurden mit der oben genannten Methode neu erstellt und in einer eigenen Komponentenbibliothek gespeichert.

ABB. 11

Komponenten im Diagramm 0_3r_Kommutator– Hierbei handelt es sich um einen dreistelligen Schalter, der die Anzeigeziffern der Reihe nach umschaltet und außerdem Steuerebenen an Multiplexer ausgibt 0_3 Und_ oder. Multiplexer schalten Dezimalzähler abhängig von der angezeigten Ziffer 0_2 B_10 D_ Schalter Zu binärSiebensegment Decoder 0_ bcd _7 Seg . Die Namen der Komponenten enthalten eine Präposition 0 _ was wir als Element unserer eigenen Bibliothek bezeichnen. Auf dem Diagramm im MAX+PLUS II-Projekt öffnet ein Doppelklick mit der linken Maustaste auf die Komponente den Grafikeditor und wir sehen das Diagramm des Elements. Abbildung 12 zeigt einen Schalter, dessen Schaltkreis aus Standardbibliotheksprimitiven besteht. Name NICHT bedeutet Wechselrichter, DFFD auslösen, UND2 - Element UND mit zwei Eingängen. Abbildung 13 zeigt das interne Diagramm binär Dezimalzähler. Abbildung 14 zeigt einen Multiplexer. Und Reis 15 binärSiebensegment Decoder. Nachfolgend finden Sie eine Liste einiger Megafunktionen der Standardbibliothek.

ABB. 12

ABBILDUNG 13

ABBILDUNG 14

Logikgatter (Tore):

lpm_and – UND-Element

lpm_inv – NICHT-Element (Wechselrichter)

lpm_bustri – Tri-State-Bus

lpm_mux – Multiplexer

lpm_clshift – logische Verschiebung

lpm_or – ODER-Element

lpm_constant – Konstante

lpm_xor – Exklusives ODER-Element

lpm_decode – Decoder

mux – Multiplexer

busmux – Multiplexer

ABBILDUNG 15

Arithmetische Komponenten:

dividieren* – Divisor

lpm_compare – Komparator

lpm_abs – absoluter Wert

lpm_counter – Zähler

lpm_add_sub – Addierer/Subtrahierer

lpm_divide – Divisor

lpm_mult – Multiplikator

Speicherelemente:

altdpram* – Dual-Port-RAM

lpm_latch – Latch-Register

lpm_shiftreg – Schieberegister

dcfifo* – Dual-Clock-FIFO

lpm_ram_dp – Dual-Port-RAM

scfifo* – Einzeltakt-FIFO

lpm_ram_dq – RAM mit separaten Ein- und Ausgabeports

csdpram – Cycle-Shared Dual-Port

lpm_ram_io – RAM mit einem gemeinsamen Ein- und Ausgabeport

lpm_ff – Auslöser

lpm_rom – ROM

lpm_fifo – Single-Clock-FIFO

lpm_dff* – D – Flip-Flop und Schieberegister

lpm_fifo_dc – Dual-Clock-FIFO

lpm_tff* – T-Trigger

Andere Eigenschaften:

clklock – PLL (Phasenregelkreis)

pll – Impulsflankendetektor

ntsc – NTSC-Videosignalgenerator

Nachdem alle Komponenten erstellt, das Gesamtdiagramm des Projekts gezeichnet und alle Verbindungen hergestellt wurden, müssen Sie das Projekt speichern und kompilieren. Wenn keine Fehler vorliegen, müssen Sie gehe zu Wellenform Editor und wie es berücksichtigt wurde Stellen Sie oben sicher, dass das Projekt korrekt funktioniert Abb.16.

ABBILDUNG 16

Die vom Compiler weitergeleitete Schaltung weist die Eingangs- und Ausgangspins automatisch zu Grundriss-Editor durch Drücken der Taste. Im selben Editor können Sie den Zweck der Beine nach Ihren Wünschen ändern. Klicken Sie dazu auf die Schaltfläche und ziehen Sie mit der Maus die Namen der im Fenster angezeigten Pins Nicht zugewiesenKnoten und Pins, zu den entsprechenden FPGA-Pin-Nummern und kompilieren Sie dann das Projekt neu. Danach werden alle Änderungen an der internen Struktur des Projekts, d. h. Wenn ein Befehl, der nicht mit dem Hinzufügen oder Entfernen von Pins zusammenhängt, die Pinbelegung nicht ändert.

Danach verbinden wir die Abb. 10-Schaltung über den Anschluss X1 mit dem Programmiergerät und das Programmiergerät mit dem Computer (wir führen alle diese Vorgänge bei ausgeschaltetem Computer durch) und versorgen die Schaltung mit Strom. Das Fenster öffnen Programmierer und drücken Sie die Taste Programm. Nach dem Laden des Programms wechselt die Schaltung in den Betriebsmodus. Mit dieser Methode können Sie die interne Schaltung des Geräts je nach Aufgabenstellung ändern, ohne die Leiterplatte zu verändern.

Trotz der offensichtlichen Komplexität des Erlernens der MAX+PLUS II-Softwareumgebung können Sie Projekte viel schneller umsetzen, da das Entwerfen und Debuggen am Computer mehr Informationen liefert als das Erstellen einer Schaltung auf einem Steckbrett und die weitere Forschung mit einem Oszilloskop. Wie bereits erwähnt, können die erzielten Ergebnisse erfolgreich bei der Herstellung von Strukturen auf Basis der Serie 155-555 eingesetzt werden.

Haben Sie auf ein Zeichen gewartet? Da ist er!

Viele Jahre lang zögerte ich, mit der Programmierung von FPGAs zu beginnen, weil es schwierig, teuer und schmerzhaft war (wie es mir vorkam). Aber es ist gut, Freunde zu haben, die einem beim ersten Schritt helfen. Und jetzt verstehe ich eines nicht – WARUM HABE ICH SO LANGE GEWARTET?

Jetzt helfe ich auch Ihnen, den ersten Schritt zu machen!

Warum brauche ich es?

Sind Sie es leid, ständig Dokumente auf Ihrem MK zu lesen oder eine Menge Informationen im Kopf zu haben? Du hast alles in ASM umgeschrieben, aber die Geschwindigkeit reicht immer noch nicht aus. Sie haben zwei externe Geräte an Ihren MK angeschlossen, Sie schließen ein drittes an, aber Ihnen sind die Interrupts ausgegangen, die Module, die bereits funktionierten, funktionieren nicht mehr. Man nimmt einen anderen MK, einen leistungsstärkeren aus der gleichen Reihe, aber wieder Handbücher, Flag-Register, Bits ... verdammt. Sie wechseln die Plattform: Sie wechseln zu einem anderen MK und verwerfen Ihr Wissen über die vorherige Plattform. Egal was man tut, es ist schwer. Sie finden eine beliebte Plattform, auf der Sie problemlos ein Projekt aus Komponenten zusammenstellen können, kommen aber trotzdem nicht über die Hardware-Einschränkungen dieses MK hinaus... Irgendwo am Rande Ihres Bewusstseins taucht manchmal der Gedanke auf, dass dies auf einem FPGA der Fall ist würde auf jeden Fall schnell und parallel funktionieren, was ist das „genau das Problem, das bitte gelöst werden muss“, aber ich bin zu alt/dumm/beschäftigt/usw., um das zu können/anzufangen.

Möchten Sie endlich frei durchatmen? Fortfahren!

Die Freude an der Entwicklung auf FPGAs

Ich hatte einen harten Arbeitstag. Von einem Job kam ich zum zweiten Job, dann zur Datscha, abends machte ich Hausaufgaben, Hausaufgaben, dann einen Familienfilm und erst um 23 Uhr war ich völlig frei! Zu sagen, dass ich müde war, bedeutet nichts zu sagen. Aber in diesem Zustand setzte ich mich an den Laptop mit einem festen Ziel: einen 440-Hz-Rechteckwellengenerator zu bauen. Es vergingen 20 Minuten und ich konnte es bereits in meinen Kopfhörern hören. Ich konnte meinen Ohren nicht trauen! Ich brauchte weitere 15 Minuten, um PWM durchzuführen und die Lautstärke zu ändern. Zu diesem Zeitpunkt hatte ich das FPGA-Board erst seit etwa einer Woche und davor hatte ich nur ein paar Bücher über Verilog gelesen.

An diesem Abend wurde mir klar: HIER IST ES! Dies ist die Plattform, auf der ich meine Gedanken schnell und einfach in tatsächlich funktionierende Hardware umsetzen kann!

Warum so?

Ich werde die Vorteile beschreiben, die das Studium und die Verwendung von FPGAs mit sich bringen, obwohl sie bereits jeder kennt:
  • Universalität des Wissens- Wenn Sie das MK-Modell ändern, müssen Sie die Dokumentation lesen. Wenn Sie den Hersteller des MK wechseln, müssen Sie die Dokumentation lesen. Sie müssen die Dokumente ständig lesen und ständig viele Informationen im Kopf behalten. Wenn Sie bei der Entwicklung auf einem FPGA Verilog oder VHDL beherrschen, können Sie nicht nur jedes FPGA aus der Reihe eines Herstellers programmieren, sondern auf Wunsch auch auf einen anderen (Altera, Xilinx) umsteigen. Auch wenn es Momente geben wird, in denen man eine andere Entwicklungsumgebung und subtile Hardwareprobleme meistern muss, wird sich dadurch das Wesentliche des Ansatzes zum Entwerfen von Geräten in HDL nicht ändern.
  • Von der Idee bis zur Hardware- Wenn Ihnen bei der Entwicklung eines Projekts ein Mikrocontroller fehlt, müssen Sie einen anderen wählen. Grundsätzlich kann man davon ausgehen, ob dieser MK das Projekt bewältigen wird oder nicht. Oder es gibt einen bestimmten MK und Sie versuchen, ein Projekt darin unterzubringen. Am häufigsten ist dies der Fall. Es erinnert mich ein wenig an die Vorgehensweise meines Großvaters, der aus dem, was er im Schuppen hat, eine Leiter baut. Obwohl Sie eine Treppe entwerfen können, kaufen Sie Bretter, die passen... Von der Idee zur Hardware und nicht umgekehrt.
  • Benutzerfreundlichkeit der Entwicklungen anderer Leute- Sie können das Modul einer anderen Person nehmen und es in Ihrem Projekt anwenden. Anhand des Codes können Sie verstehen, wie es funktioniert. Auch wenn es für Xilinx ist und Sie es unter Altera tun. Manchmal klappt das nicht so gut, aber es ist einfacher, als beispielsweise Binärbibliotheken zu einem C++/Qt-Projekt hinzuzufügen
  • Unabhängigkeit blockieren. Blöcke in HDL sind wie reine Funktionen in der Sprache. Verlassen Sie sich nur auf Eingangssignale. Das entwickelte und debuggte Modul funktioniert weiterhin ordnungsgemäß, unabhängig davon, wie das Projekt wächst. Nichts von außen beeinträchtigt die ordnungsgemäße Funktion von innen. Und im Allgemeinen kann man vergessen, wie es funktioniert – es ist eine Blackbox. Außerdem funktionieren die Blöcke parallel.

Problem der Wahl

Es gibt viele Fragen zur Auswahl: Altera/Xilinx, Verilog/VHDL, welches Debug-Board man nehmen soll. Aber das Wichtigste zuerst.

Hersteller

Ich habe gewählt Altera. Warum? Nun, so haben mein Freund und ich uns entschieden, obwohl der Name Xilinx für mich schöner ist. ABER. Wenn Sie sich jetzt nicht entscheiden können, werde ich es für Sie tun. Du brauchst Altera! Warum? Ich weiß nicht. Das Wichtigere ist jetzt, einen Schritt zu tun: eine Wahl zu treffen. Ich habe mich für Altera entschieden und habe es bisher nicht bereut.



Sprache

Lass uns nehmen Verilog - weil… Nun, Sie verstehen.

Entwicklungs-Board

Die Wahl des Entwicklungsboards nahm die meiste Zeit in Anspruch. Es ist klar, dass sich die Platinen durch den verbauten FPGA-Chip unterscheiden. Und FPGA-Chips unterscheiden sich voneinander in der Anzahl der Elemente. Es ist jedoch überhaupt nicht klar, wie viele davon für Ihre Testprojekte benötigt werden. Deshalb habe ich die meiste Zeit damit verbracht, nach allen möglichen FPGA-Projekten zu suchen, um herauszufinden, wie viel sie FPGA-Ressourcen verbrauchen.

In der Altera-Familie können wir für vernünftiges Geld Platinen mit CPLD MAX II mit 240, 570 und 1270 Elementen oder ältere FPGA-Chips wie Cyclone 1, 2, 3, 4 mit bis zu 10.000 oder mehr Zellen kaufen. Wie man wählt?

Selbst auf der Basis von 240 Zellen führt das Mars-Rover-Projekt nur eine riesige Anzahl von Projekten durch. Ich empfehle Ihnen dringend, es zu lesen, um eine ungefähre Vorstellung von der Komplexität von Projekten zu bekommen, die in 240 Zellen passen. Andererseits gibt es Projekte, die vollständig für eine Hardware-Kopie eines bestimmten PCs programmiert sind, einschließlich des Prozessors und der gesamten Logik darum herum (NES, Speccy, Orion, YuT-88 usw.). Dafür sind bereits fünf, zehn oder mehrtausend Zellen erforderlich. Darüber hinaus enthalten diese Boards zusätzliche externe Geräte.

Daher würde ich dazu raten, etwas zwischen 240 und 10.000 Zellen zu nehmen, wobei je nach verfügbaren Mitteln größere Zellen bevorzugt werden. Auf einem Debug-Board sind zusätzliche Zellen keine große Sache, aber wenn nicht genug davon vorhanden sind, können Sie nichts dagegen tun. Wenn das Gerät dann debuggt ist, wird klar, wie viele Zellen benötigt werden. Kaufen Sie die erforderliche Menge, ohne unnötiges „Bodykit“, günstiger und belassen Sie es im fertigen Gerät.

Was MAX neben der Anzahl der Zellen wirklich von Cyclones unterscheidet, ist:
1) Die MAX-Serie verfügt über keine integrierte PLL. Jedes Entwicklungsboard verfügt über einen Oszillator, normalerweise 50 MHz. Dies wird für die meisten Projekte ausreichen. Die gesamte Synchronisierung erfolgt durch Division von 50 MHz durch einen bestimmten Wert. Oder Sie nehmen einen externen Generator und speisen ihn in einen separaten FPGA-Eingang ein. Was ist, wenn Sie eine Frequenz über 50 MHz benötigen? Oszillatoren über 50 MHz konnte ich nicht sofort finden. Aber hier kommt PLL, das in Cyclones integriert ist, zur Rettung. Darauf können Sie die Frequenz beispielsweise auf bis zu 100 MHz vervielfachen.
2) Die Cyclone-Serie verfügt über integrierte Hardware-Multiplikationseinheiten. Ihre Anzahl hängt vom jeweiligen Modell ab – hier können Sie noch „in die Anleitung schauen“, um herauszufinden, wie viel. Wenn Sie vorhaben, eine Art DSP zu verwenden, sind diese praktisch: Sie sparen Zellen und erhöhen die Geschwindigkeit. Wenn andererseits keine Multiplikatoren vorhanden sind, können diese synthetisiert werden, ein kleines FPGA verfügt jedoch möglicherweise nicht über genügend Ressourcen dafür.

Im Übrigen gilt für mich das Kriterium „passend/nicht fit“. Debuggen auf einer Platine, die offensichtlich größer als nötig ist, und anschließendes Füllen mit dem dafür erforderlichen Minimum.

Wie viel Geld wird benötigt?


Programmierer
Ich glaube, dass ich keine Zeit habe, Programmierer in großen Mengen zu löten.

300 Rubel. Ich habe meines bei eBay gekauft, es sieht so aus:

Entwicklungs-Board
Die Auswahl ist groß, je nach Geldbetrag.

Erste Ebene 350 - 550 Rubel. Dabei handelt es sich um Boards auf Basis von MAX II (bzw. Zellen). Kann zur ersten Einarbeitung und weiteren Integration in Endgeräte geeignet sein. Die Platine verfügt über einen Generator, ein paar Tasten, ein paar LEDs und die restlichen 80 Pins stehen Ihnen zur Verfügung.

Netzteil
Es ist ein Muss, aber nicht immer im Lieferumfang enthalten. Sie benötigen ein 5-Volt-Netzteil und einen Strom von 2A.

Durchschnittsniveau von 900 bis 1500 Rubel. Dabei handelt es sich um Cyclone 1, 2, 3, 4 Boards, die sich hauptsächlich in der Anzahl der Zellen unterscheiden.
Sie sind etwa so gekennzeichnet:
E.P. 2 C 5 T144 – Zyklon 2, ca. 5.000 Zellen
E.P. 4 C.E. 6 E22C8N – Zyklon 4 ca. 6.000 Zellen
E.P. 2 C 8 Q208C8N – Zyklon 2 ca. 8.000 Zellen

Möglicherweise stellen Sie fest, dass Zyklon 3 möglicherweise mehr Zellen enthält als Zyklon 4.

Hier sind einige Optionen:

835 Rubel.
ALTERA FPGA CycloneII EP2C5T144 Mindestsystemplatine für Learn Good

880 Rubel
Altera CycloneII EP2C5T144 FPGA Mini Development Learn Core Board E081

1265 Rubel
EP2C8 EP2C8Q208C8N ALTERA Cyclone II FPGA-Evaluierungs-Entwicklungskernplatine

Erweiterte Boards . Hierbei handelt es sich um Platinen, auf denen zusätzliche Module (UTP, USB, AUDIO), Anschlüsse (SD, VGA), Tasten, Schalter, LEDs, Sieben-Segment-Anzeigen usw. installiert sind. Oder es gibt eine Basisplatine, an der Erweiterungsplatinen separat angebracht werden können.

Bei mir funktioniert folgendes Set – Platine + Erweiterungsplatine:
Altrea EP4CE10E22 FPGA CORE Board+ Geräteplatine USB/Sound/Ethernet/SD-Karte/VGA
2760 Rubel

Hier ist die Hauptplatine. Es verfügt über 2 LEDs, 2 Tasten, 4 Schalter, eine Sieben-Segment-Anzeige und einen RAM-Chip.

Erweiterungsplatine. Es enthält SD-, VGA- sowie USB-Controller (High-Speed-USB2.0-Chip: CY7C68013A), AUDIO (Soundkarte bis zu 96 kHz/32-Bit-ADC/DAC: WM8731S), UTP (100M-Ethernet-Schnittstelle: DM9000A):

Diese Bretter werden einfach ineinander gesteckt, aber ich habe es immer noch in einer Schublade. Für meine Bastelarbeiten habe ich ein Steckbrett, das ich mit einem im Kit enthaltenen Kabel anschließe. Ein 5-Volt-Netzteil ist ebenfalls im Lieferumfang enthalten.

Fortsetzung des Themas:
Linux

Viele Menschen mögen das soziale Netzwerk „Photostrana“ nicht wegen seiner Aufdringlichkeit, die sich auch zeigt, wenn der Benutzer sein Konto löschen möchte. Das Netzwerk selbst hat seine Tücken...