Machen Sie einen Schritt in Richtung FPGA



    Hast du auf ein Zeichen gewartet? Da ist er!

    Viele Jahre lang habe ich mich nicht getraut, mit der Programmierung von FPGAs zu beginnen, da dies schwierig, teuer und schmerzhaft ist (wie es mir schien). Aber es ist gut, wenn es Freunde gibt, die Ihnen helfen, den ersten Schritt zu tun. Und jetzt verstehe ich eine Sache nicht - WARUM WARTET ICH SO LANG?

    Jetzt helfe ich Ihnen, den ersten Schritt zu machen!


    Warum brauche ich das?


    Haben Sie es satt, ständig Docks auf Ihrem MK zu lesen oder eine Menge Informationen im Kopf zu behalten? Du hast alles auf asm umgeschrieben, aber die Geschwindigkeit ist immer noch nicht genug. Sie haben zwei externe Geräte an Ihr MK angeschlossen, das dritte angeschlossen, aber es sind keine Unterbrechungen mehr aufgetreten. Die bereits funktionierenden Module haben aufgehört zu funktionieren. Du nimmst ein anderes MK, stärker aus der gleichen Linie, aber wieder Handbücher, Flaggenregister, Bits ... Hölle. Wechseln Sie die Plattform: Sie wechseln zu einem anderen MK und werfen Ihr Wissen über die vorherige Plattform in den Müll. Was auch immer du tust, es ist schwer. Sie finden eine beliebte Plattform, auf der Sie problemlos ein Projekt aus Komponenten erstellen können, die Hardwarebeschränkungen dieses MK jedoch nicht überschreiten können. Irgendwo am Rande des Bewusstseins taucht manchmal der Gedanke auf, dass es definitiv schnell und parallel funktionieren würde „Das ist die Aufgabe



    Willst du endlich frei atmen? Lass uns weitermachen!

    Die Freude an der FPGA-Entwicklung


    Ich hatte einen harten Arbeitstag. Von einem Job bin ich zu einem zweiten gekommen, dann zu einem Sommerhaus, abends zu den Hausaufgaben, dann zu einer Familie, die sich einen Film ansah, und erst um 23 Uhr war ich völlig frei! Zu sagen, dass ich müde war, heißt nichts zu sagen. Aber in diesem Zustand setzte ich mich mit einem festen Ziel an den Laptop: einen Mäandergenerator mit 440 Hz zu bauen. Es vergingen 20 Minuten und ich hörte es bereits im Kopfhörer. Ich habe meinen Ohren nicht geglaubt! Ich habe weitere 15 Minuten gebraucht, um die PWM durchzuführen und die Lautstärke zu ändern. Zu diesem Zeitpunkt hatte ich nur eine Woche lang ein FPGA-Board und zuvor hatte ich nur ein paar Bücher über Verilog durchgesehen.

    An diesem Abend wurde mir klar: HIER! Hier ist die Plattform, auf der ich meine Gedanken schnell und einfach in wirklich funktionierende Hardware verwandeln kann!



    Warum so?


    Ich werde die Vorteile beschreiben, die sich aus dem Studium und der Anwendung von FPGAs ergeben, obwohl sie ohnehin jeder kennt:
    • Universelles Wissen - Wenn Sie das MK-Modell ändern, müssen Sie die Docks lesen. Beim Wechsel des Herstellers MK müssen Sie die Docks lesen. Sie müssen ständig die Docks lesen und eine Menge Informationen im Kopf behalten. Wenn Sie bei der Entwicklung für FPGAs Verilog oder VHDL kennen, können Sie nicht nur FPGAs eines Herstellers programmieren, sondern auch auf einen anderen (Altera, Xilinx) umsteigen. Obwohl es mit der Entwicklung einer anderen Entwicklungsumgebung Momente geben wird, die subtile Hardware betreffen, wird sich das Wesen des Ansatzes zum Entwerfen von Geräten unter HDL nicht ändern.
    • Von der Idee zur Hardware - Wenn Sie bei der Entwicklung eines Projekts ein Mikrometer vermissen, müssen Sie ein anderes auswählen. Grundsätzlich kann man davon ausgehen, ob dieser MK das Projekt bewältigen wird oder nicht. Oder es gibt ein bestimmtes MK, und Sie versuchen, das Projekt dort anzupassen. Meistens nicht. Es erinnert mich an die Herangehensweise meines Großvaters, die aus dem Schuppen eine Treppe macht. Obwohl Sie eine Leiter entwerfen können, kaufen Sie Bretter, die passen ... Von einer Idee zum Eisen und nicht umgekehrt.
    • Einfache Verwendung der Entwürfe eines anderen Benutzers - Sie können das Modul eines anderen Benutzers verwenden und in Ihrem Projekt anwenden. Anhand des Codes können Sie verstehen, wie es funktioniert. Auch wenn es für Xilinx ist, und Sie unter Altera tun. Manchmal funktioniert dies nicht, aber es ist einfacher, als beispielsweise einem c ++ / Qt-Projekt Binärbibliotheken hinzuzufügen
    • Unabhängigkeit blockieren. Blöcke in HDL sind wie reine Funktionen in PL. Nur von den Eingangssignalen abhängig. Das entwickelte und debuggte Modul wird weiterhin korrekt funktionieren, egal wie das Projekt wächst. Nichts von außen wird die Korrektheit seiner Arbeit von innen beeinträchtigen. Wie auch immer, Sie können vergessen, wie es funktioniert - es ist eine Black Box. Außerdem arbeiten die Blöcke parallel .



    Auswahlproblem


    Die Fragen, was zu wählen ist, hören stark auf: Altera / Xilinx, Verilog / VHDL, welches Debugboard zu nehmen ist. Aber das Wichtigste zuerst.

    Hersteller


    Ich habe mich für Altera entschieden . Warum? Nun, wir haben uns mit einem Freund so entschieden, obwohl der Name Xilinx für mich schöner ist. ABER. Wenn Sie jetzt nicht wählen können, dann werde ich es für Sie tun. Du brauchst eine Altera! Warum? Ich weiß nicht. Jetzt ist es wichtiger, einen Schritt zu machen: eine Wahl zu treffen. Ich habe Altera gewählt und es noch nicht bereut.



    Sprache


    Wir nehmen Verilog - weil ... Sie verstehen.


    Debug Board


    Es dauerte die meiste Zeit, um ein Debug-Board auszuwählen. Es ist klar, dass sich die Boards im verbauten FPGA-Chip unterscheiden. Und FPGA-Chips unterscheiden sich voneinander in der Anzahl der Elemente. Es ist jedoch völlig unklar, wie viele für Ihre Testprojekte benötigt werden. Daher habe ich die meiste Zeit damit verbracht, nach FPGA-Projekten aller Art zu suchen, um herauszufinden, wie viel FPGA-Ressourcen sie verbrauchen.

    In der Altera-Familie können wir zu einem vernünftigen Preis Motherboards mit CPLD MAX II für 240, 570 und 1270 Elemente oder ältere FPGA-Chips mit Cyclone 1, 2, 3, 4 mit bis zu 10.000 oder mehr Zellen kaufen. Wie soll man wählen?

    Das Mars-Rover- Projekt, das auf 240 Zellen basiert, führt nur eine große Anzahl von Projekten durch. Ich empfehle dringend, dass Sie sich mit einer ungefähren Vorstellung von der Komplexität von Projekten vertraut machen, die in 240 Zellen passen. Andererseits gibt es Projekte , die für eine Hardwarekopie eines bestimmten PCs vollständig programmierbar sind, einschließlich des Prozessors und der gesamten Logik ( NES , Speccy , Orion , UT-88 usw.). Dafür werden bereits fünf, zehn oder mehr tausend Zellen benötigt. Außerdem enthalten diese Karten zusätzliche externe Geräte.

    Daher würde ich Ihnen raten, zwischen 240 und 10.000 Zellen zu verwenden, wobei je nach den verfügbaren Mitteln eine Aufwärtsbewegung bevorzugt wird. Auf dem Debugboard sind zusätzliche Zellen nicht unheimlich, und wenn sie nicht ausreichen, ist nichts zu tun. Beim Debuggen des Geräts wird dann klar, wie viele Zellen benötigt werden. Es ist billiger, die richtige Menge ohne unnötiges „Body-Kit“ zu kaufen und im fertigen Gerät zu belassen.

    Was MAX zusätzlich zur Anzahl der Zellen wirklich von Cyclones unterscheidet, ist:
    1) Die MAX-Serie verfügt nicht über eine PLL. Jede Debug-Karte verfügt über einen Generator, normalerweise mit 50 MHz. Der Großteil der Projekte wird ausreichen. Die gesamte Synchronisation erfolgt durch Teilen von 50 MHz durch einen bestimmten Wert. Sie können auch einen externen Generator verwenden und auf einen separaten FPGA-Eingang anwenden. Was aber, wenn eine Frequenz über 50 MHz benötigt wird? Ich konnte die Generatoren über 50 MHz nicht sofort finden. Aber hier kommt PLL, das in Cyclones eingebaut ist, gerade zur Rettung. Darauf können Sie die Frequenz beispielsweise mit bis zu 100 MHz multiplizieren.
    2) Die Cyclone-Serie verfügt über integrierte Hardware-Multiplikationsblöcke. Ihre Anzahl hängt vom jeweiligen Modell ab - hier können Sie nur „auf die Anweisungen blicken“, um herauszufinden, wie viel. Wenn Sie vorhaben, einen DSP durchzuführen, sind diese nützlich: Speichern Sie Zellen, erhöhen Sie die Geschwindigkeit. Wenn es andererseits keine Multiplikatoren gibt, können sie synthetisiert werden, aber ein kleines FPGA verfügt möglicherweise nicht über genügend Ressourcen.

    Im Übrigen mein Kriterium „fit / not fit“. Das Debuggen ist offensichtlich mehr als das, was das Board benötigt, wobei das dafür erforderliche Minimum nachgefüllt wird.

    Wie viel geld brauchst du




    Programmierer
    Ich glaube, ich habe keine Zeit, die Programmierer lose einzulöten.

    300 Rubel. Ich habe meine auf ebee genommen , es sieht so aus:


    Debugging Board
    Die Auswahl ist groß , abhängig vom Geldbetrag.

    Das Ausgangsniveau von 350 - 550 Rubel. Dies sind Boards auf dem MAX II ( 240 oder 570 Zellen). Kann zur ersten Einarbeitung und weiteren Integration in Endgeräte geeignet sein. Die Platine verfügt über einen Generator, ein Paar Tasten und ein Paar LEDs. Die verbleibenden 80 Pins liegen in Ihrem Ermessen.


    Netzteil
    muss dabei sein, muss aber nicht immer enthalten sein. Ein Netzteil von 5 Volt und ein Strom von 2A sind erforderlich.

    Mittelstufevon 900 bis 1500 Rubel. Dies sind Cyclone 1, 2, 3, 4 Boards, die sich hauptsächlich in der Anzahl der Zellen unterscheiden.
    So beschriftet :
    EP 2 C 5 T144 - ungefähr 5 k Zellen
    EP 4 CE 6 E22C8N - Cyclone 4 ungefähr 6 k Zellen
    EP 2 C 8 Q208C8N - Cyclone 2 ungefähr 8 k Zellen

    Sie können sehen, dass Cyclone 3 möglicherweise mehr Zellen als Cyclone enthält 4.

    Hier sind ein paar 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


    Advanced Boards . Dies sind Karten, auf denen zusätzliche Module (UTP, USB, AUDIO), Anschlüsse (SD, VGA), Tasten, Schalter, LEDs, Siebensegmentanzeigen usw. installiert sind. Die Basisplatine kann auch eingesetzt werden, und Erweiterungskarten können separat daran angeschlossen werden.

    Ich habe ein solches Kit - Board + Erweiterungsboard:
    Altrea EP4CE10E22 FPGA CORE Board + Geräteboard USB / Sound / Ethernet / SD-Karte / VGA
    2760 Rubel

    Hier ist das Hauptboard . Es verfügt über 2 LEDs, 2 Tasten, 4 Schalter, eine 7-Segment-Anzeige und einen RAM-Chip.


    Erweiterungsplatine. SD-, VGA- und auch USB-Controller (High Speed ​​USB 2.0-Chip: CY7C68013A), AUDIO (Soundkarte bis 96 kHz / 32-Bit-ADC / DAC: WM8731S), UTP (100-M-Ethernet-Schnittstelle: DM9000A) sind aufgelötet:


    Diese Platinen habe gerade eine in die andere gesteckt, aber ich habe sie immer noch in der Schublade. Für mein Handwerk habe ich ein Steckbrett, mit dem ich das mit dem Kit gelieferte Kabel verbinde. Ebenfalls enthalten ist ein 5 Volt Netzteil.

    Weitere Optionen:

    Altera Cyclone NIOS II SOPC FPGA Entwicklungs-Lernboard EP2C8Q208C8N + LCD1602 - 2670 Rubel


    Terasic Altera FPGA DE0-Nano Cyclone IV Entwicklungs- und Ausbildungsboard - 4600 Rubel


    Eine große Auswahl an Alter-Boards und Erweiterungen für das
    Mars Rover-Projekt

    Aber im Allgemeinen würde ich nicht empfehlen, große und teure Debug-Boards zu kaufen. Teure Einkäufe sollten gerechtfertigt sein, aber derzeit ist nicht klar, was am besten funktioniert. Es wird klar, wenn die Praxis beginnt.

    Ich bestellte, wir warten


    Während die Boards laufen, können Sie sich mental und technisch vorbereiten:
    - Installieren Sie Quartus II v.11.1.
    Lesen Sie:
    - Buch: A.K. Polyakov Languages ​​VHDL und Verilog im Design digitaler Geräte 2003
    - www.kit-e.ru/articles/circuit/2008_3_161.php - Kurzkurs HDL
    - Lektionen auf dem Rover über das Veril , Architektur , einfache Stiltipps .
    - VERILOG als Weg des Lebens
    - gute Beispiele (EN)
    - Wie mit FPGA (Xilinx) zu beginnen

    ALLES!


    Wir warten auf interessante Projekte von Ihnen im FPGA!



    PS. Ich wende mich an dich und an "dich" und wende mich als Gleichgesinnte an die Person und nicht an einen Teil der Masse. Wenn der Appell an "Sie" beleidigt ist, entschuldigen Sie mich bitte.

    ACHTUNG! Verilog und FPGAs sind keine Wunderwaffe und ein magisches Werkzeug zur Lösung von Problemen. Sie können nicht in allen Projekten Mikrocontroller ersetzen . Für die Arbeit mit FPGAs ist eine gewisse technische Ausbildung erforderlich. Sie selbst sind für alle Entscheidungen in Ihrem Leben verantwortlich. Der Autor lehnt jede Haftung für mögliche finanzielle und vorübergehende Verluste ab, die sich aus Ihrer Forschung auf dem Gebiet der FPGAs und Verilog ergeben.

    Jetzt auch beliebt: