Ich würde mich gerne mit der FPGA Beschreibung mittels VHDL
beschäftigen, welche FPGAs sind denn nach aktuellem Stand für den
Hobbyisten geeignet, ohne gleich Unsummen für die Toolchain investieren
zu müssen?
Ich würde mal klein anfangen, XC9500 oder MaxII CPLD, ist
übersichtlicher und einfacher zu wechseln, wenn kaputt.
Ansosten kann man eigentlich alle FPGAs nutzen, mit ein wenig Suchen
findet man diverse "zurechtgepatchte" Altera/Xilinx IDEs, die alle FPGAs
synthetisieren ;-)
René F. schrieb:> Ich würde mich gerne mit der FPGA Beschreibung mittels VHDL> beschäftigen, welche FPGAs sind denn nach aktuellem Stand für den> Hobbyisten geeignet, ohne gleich Unsummen für die Toolchain investieren> zu müssen?
Oder: DIGIL 410-328 bei reichelt, wenns lieber Xilinx sein soll
Die kleinen FPGAs der großen Hersteller lassen sich mit den originalen
Toolchains kostenfrei nutzen. Ist zwar nicht offen, aber kostenfrei plus
Telemetrie.
Rote T. schrieb:> XC9500 oder MaxII CPLDRote T. schrieb:> "zurechtgepatchte" Altera/Xilinx IDEs
Und was ist da jetzt der Vorteil? Man verwendet steinalte Hardware und
obsolete Software? Der Anfänger muss dann also erstmal umlernen wenn
wenn er nach den ersten Gehversuchen weitermachen will. Ne, aktuelle
FPGAs gibt es in sehr günstig und mit Programmieradapter gleich dabei.
Max10, Spartan7 würde ich empfehlen. Beim Max1000 ist man mit grob 30€
dabei und hat aktuelle Hard- und Software.
Gustl B. schrieb:> Und was ist da jetzt der Vorteil?
Man bekommt die Boards mit TQFP Chip für 5-10$ auf ebay/ali etc, haben
5V tolerate I/O und für vielerlei Kleinkram reicht ein XC9572 oder
EPM240, falls ein bisschen grösser. Und man kann das Board grad ins
Projekt einbauen, wenn man fertig ist, da billig und ohne sonstige
Komponenten.
So ein fetter Spartan7 ist für das meiste völlig überdimensioniert, kann
keine 5V und ist BGA, wenn man den beim basteln abschiesst, braucht man
erstmal Reflowofen zum wechseln. Ausserdem sind die mit 20$ ca. 10x
teurerer als die CPLDs.
Mit älteren CPLDs möchte ich mich nicht beschäftigen, ob 5V tolerant
oder kein BGA spielt für mich auch keine Rolle, für meine Projekte lasse
ich gerne eine Leiterplatte fertigen, aber abgesehen von BGAs, gibt es
moderne FPGAs auch im QFP Gehäuse mit exposed Pad.
MAX1000 schaut gut aus, Quartus Prime Lite unterstützt den auch, gibt es
irgendwas wichtiges zu sagen über die Lite Version? (Showstopper, wie
Größenlimits fürs Design oder Ähnliches?)
Rote T. schrieb:> da billig und ohne sonstige Komponenten.
Und genau das ist wie ich finde ein Nachteil für Einsteiger. Typische
Einsteigerprojekte sind sowas wie UART, Lauflichter, irgendwas mit
Taster, selber mal SPI machen, Daten erfassen und ausreichen, vielleicht
VGA, ...
Und genau da bieten diese typischen FPGA Boards recht viel. Sogar das
kleine MAX1000 hat einen ADC mit dabei, mehrere LEDs, Taster,
Beschleunigungssensor (der hat auch einen Temperatursensor eingebaut),
USB für JTAG und UART, ...
Was kann man damit für Projekte machen?
- Lauflicht
- Wasserwaage mit Beschleunigungssensor und LEDs
- Signalerfassung mit ADC und Ausgabe über UART.
- Kleinen Logicanalyzer mit Ausgabe über UART.
- VGA mit ein paar Widerständen und den freien FPGA IOs.
- Oszi/LA mit ADC/FPGA IOs und VGA.
- ...
Und das alles mit einem < 30€ Board und gratis Software auf aktuellem
Stand.
Mit teureren Boards wie so einem Nexys4 ist da nochmal deutlich mehr
möglich. Das hat noch ein Microphon drauf, schnelles RAM, Ethernet,
echtes VGA*, und PMOD Anschlüsse wodurch man das recht preiswert um
viele Funktionen erweitern kann.
(*Warum schreibe ich hier so viel von VGA? Weil man mit einem VGA
Ausgang wunderbar einen Signalgenerator bauen kann. Mit 3 Kanälen und
einer doch recht hohen Abtastrate. Das ist quasi ein DAC, zwar mit
geringem Maximalpegel, aber für manche Basteleien doch recht hilfreich.)
René F. schrieb:> gibt es> irgendwas wichtiges zu sagen über die Lite Version? (Showstopper, wie> Größenlimits fürs Design oder Ähnliches?)
Naja, klar ein beliebig großes Design passt da nicht ins FPGA. Aber
sonst sehe ich da keine Probleme. Das FPGA ist locker groß genug für
sehr viele Anfängerprojekte. Wie das mit einer SoftCPU aussieht weiß ich
nicht, ich habe mein Zeug nur in HDL beschrieben und keine CPU
eingebaut.
Hier Beitrag "Re: FPGA IoT Maker Board"
ist mein Projekt das Beschleunigungssensor und die LEDs nutzt um eine
Wasserwaage darzustellen. Kann man noch optimieren, war damals ein
Schnellschuss.
> Das FPGA ist locker groß genug für sehr viele Anfängerprojekte.> Wie das mit einer SoftCPU aussieht weiß ich> nicht, ich habe mein Zeug nur in HDL beschrieben und keine CPU> eingebaut.
Das Trenzboard hat nur sehr wenige IOs. Da nuetzt dann die neu
verfuegbare Version mit einem 10M16 (16 kLE) auch nichts.
In der Richtung viel besser: BeMicro Max 10.
Mit einem Full-featured-NIOS2 ist man dann bei 97 % fuer einen 10M08.
Darin ist dann aber die komplette Unterstuetzung der auf dem Board
vorhandenen Peripherie (BeMicro Max 10) enthalten.
Neuere Versionen (z.B. 15.1) von Quartus 2 sind merkbar langsamer
als die aelteren 11.1SP2, 13.0 oder 13.1.
Die Version 20.3 habe zwar schon hier:
72,872,611,840 Quartus-pro-20.3.0.158-windows-complete.tar
aber noch nicht installiert.
Ich rate dir daher zu einem Board mit einem Cyclone 4.
Wenn verfuegbar nimm gleich einen groesseren, also
EP4CE10, EP4CE15 oder EP4CE22.
Der geringe Aufpreis lohnt sich.
Fuer den MAX10 sehe ich keine wesentlichen Vorteile.
Larry schrieb:> In der Richtung viel besser: BeMicro Max 10.
Kannte ich nicht, sieht ganz nett aus. Eine Frage hab ich dazu: Da ist
ja so ein USB-Blaster mit dabei, mit FT240 und Max V. Kann man den auch
als USB UART verwenden so wie bei Xilinx den FT2232HJTAG/UART?
> Kann man den auch> als USB UART verwenden so wie bei Xilinx den FT2232HJTAG/UART?
Nein. Ich kenne auch keinen Altera/Intel/Klon-USB-Blaster,
der einen seriellen Kanal separat bereitstellt.
Es gibt aber den JTAG-UART. Der ist aber Teil des JTAG-Konzepts.
Rote T. schrieb:> Spartan7 ist für das meiste völlig überdimensioniert, kann keine 5V
5V?
Diese "Hochspannung" kann eh' kein halbwegs aktueller Baustein mehr.
Und wenn ich heute µC neu lerne, dann fange ich auch nicht beim 8049
an...
m2m schrieb:> Lattice FPGAs sind für den Einstieg ganz nett
Die sind auch für später ganz nett, denn mit einem MachXO2/03 kann ich
ein komplettes 3,3V-Stand-Alone-System ohne externen Oszillator bauen.
Und wenn man sich mal dran gewöhnt hat, ist das echt schnuckelig.
So, der Arbeitskollege hat mir heute das Board mitgebracht, ein China
USB Blaster ist auch dabei, es handelt sich aber anscheinend nicht genau
um das gleiche Modell wie im Link, statt der USB-seriell Schnittstelle
befindet sich ein RS232 Anschluss mit MAX232 drauf, sonst konnte ich
jetzt keinen Unterschied feststellen.
Gibt es eine Literaturempfehlung? Kann auch gerne digital sein.
René F. schrieb:> Gibt es eine Literaturempfehlung? Kann auch gerne digital sein.
Naja, du hast LEDs, du hast Taster, du hast 7-Segment-Anzeigen, ... das
kannst du doch alles schön gemütlich Schritt für Schritt in Betrieb
nehmen.
Erstmal einfach nur eine LED mit einem Taster verbinden. Dann mal eine
Logikverknüpfung zwischen mehrere Taster/Schalter und LEDs. Dann das
erste mal was mit Zuständen aber noch ohne Takt. Dann was mit Takt, ein
Zähler, ein Lauflicht, also was mit Zustandsautomat, ...
Und wenn du schon dabei bist:
Mach zu diesen ersten Gehversuchen auch gleich immer eine Simulation mit
Testbench. Einfach damit du dir das angewöhnst und das auch lernst. Denn
es ist so: Wenn es in der Simulation funktioniert, dann funktioniert das
auch sehr wahrscheinlich korrekt in Hardware. Anders herum kann man das
nicht so sicher sagen. Also wenn du zwar mit dem Auge beobachten kannst,
dass es in Hardware funktioniert, dann kann das auch nur so aussehen als
funktioniere das korrekt. Man kann eben nicht perfekt mit hoher
Zeitauflösung beobachten.
René F. schrieb:> So, der Arbeitskollege hat mir heute das Board mitgebracht, ein China> USB Blaster ist auch dabei, es handelt sich aber anscheinend nicht genau> um das gleiche Modell wie im Link, statt der USB-seriell Schnittstelle> befindet sich ein RS232 Anschluss mit MAX232 drauf, sonst konnte ich> jetzt keinen Unterschied feststellen.
Ist auch ein Datenblatt und Pinzuordnung dabei? Steht auf dem Board das
genaue Modell? Du brauchst bei echtem RS232 noch eine echte RS232
Schnittstelle oder du nimmst einen USB-UART und verbindest den mit einem
Pin auf dem Board.
Gustl B. schrieb:> Mach zu diesen ersten Gehversuchen auch gleich immer eine> Simulation mit Testbench. Einfach damit du dir das angewöhnst> und das auch lernst.
Dem stimme ich zu. Ich habe am Anfang nicht verstanden, warum ich,
nachdem ich eine 'komplizierte' Hardwarebeschreibung erstellt habe,
nochmal etwas nur für die Simulation schreiben soll.
Das gehört aber eben zumindest in naher Zukunft noch dazu.
Dussel schrieb:> Ich habe am Anfang nicht verstanden, warum ich,> nachdem ich eine 'komplizierte' Hardwarebeschreibung erstellt habe,> nochmal etwas nur für die Simulation schreiben soll.
Ging mir auch so. Viele Anfängerprojekte kann man noch über LEDs oder
dann mit dem Oszi/LA debuggen. Aber wenn man gleich lernt wie man
Testbenches verwendet, dann spart man irre viel Zeit und macht es gleich
richtig.
Und so Testbenches für einfache Dinge wie ein Lauflicht sind sehr
übersichtlich. Oft reicht da ein Takt aus.
Dussel schrieb:> Ich habe am Anfang nicht verstanden, warum ich, nachdem ich eine> 'komplizierte' Hardwarebeschreibung erstellt habe, nochmal etwas nur für> die Simulation schreiben soll.
Die Simulation ist der Debugger für Abläufe und Funktionalität. Wer ohne
Debugger auskommt, der braucht auch keinen Simulator.
Gustl B. schrieb:> Erstmal einfach nur eine LED mit einem Taster verbinden.
Oder den Ausgang alternativ einfach nur hart auf '1' und im nächsten
Durchlauf hart auf '0'. Denn dafür brauche ich nur einen
funktionierenden Ausgang.
Und wenn ich weiß, dass mein Ausgang tut, dann würde ich die LED mit dem
Taster ansteuern
> Dann das erste mal was mit Zuständen aber noch ohne Takt.
Das würde ich weglassen, das ist eine Sackgasse, denn das gibt
Latches... ;-)
Ich würde gleich mal die LED zum Blinken bringen. Dafür brauche ich
einen Takt.
Und diese blinkende LED debugge ich schon vorher mit dem Simulator. Oder
spätestens dann, wenn sie tatsächlich blinkt.
Und dann habe ich alles in Betrieb genommen, was ich vorerst brauche:
Eingänge, Takt und Ausgänge.
Lothar M. schrieb:> Das würde ich weglassen, das ist eine Sackgasse, denn das gibt> Latches... ;-)
Naja, es gibt ja auch Prozesse ohne Takt. Ich verwende die
nicht/ungerne, weil ich am liebsten alles getaktet habe, aber vielleicht
sollte man das trotzdem mal gesehen haben. Weiß ich nicht.
Lothar M. schrieb:> Dussel schrieb:>> Ich habe am Anfang nicht verstanden, warum ich, nachdem ich eine>> 'komplizierte' Hardwarebeschreibung erstellt habe, nochmal etwas nur für>> die Simulation schreiben soll.> Die Simulation ist der Debugger für Abläufe und Funktionalität. Wer ohne> Debugger auskommt, der braucht auch keinen Simulator.
Erklärst du mir das? ;-)
Was aber nicht bedeutet, dass man keinen Debugger mehr braucht, wenn man
einen Simulator hat. :-(
Dussel schrieb:>> Die Simulation ist der Debugger für Abläufe und Funktionalität. Wer ohne>> Debugger auskommt, der braucht auch keinen Simulator.> Erklärst du mir das? ;-)
Ich schreibe es nochmal mit mehr Worten:
Die Simulation ist in der FPGA-Entwicklung wie der Debugger in der
Softwareentwicklung. Wer seine Software ohne Debugger schreiben kann,
der braucht für die Hardware auch keinen Simulator.
Wobei jetzt dann sicher ein Arduinist um die Ecke kommt und sagt: ich
und alle meine Leidensgenossen entwickeln unsere Software ohne Debugger!
;-)
René F. schrieb:> Gibt es eine Literaturempfehlung? Kann auch gerne digital sein.
Dies war eher auf VHDL als mein Board bezogen.
Gustl B. schrieb:> Ist auch ein Datenblatt und Pinzuordnung dabei? Steht auf dem Board das> genaue Modell?
Der Kollege hat mir einen Stick mit der Boarddokumentation mitgegeben,
darin sind scheinbar auch Beispiele enthalten. Ein Foto befindet sich im
Anhang, ich denke ich werde mich am Wochenende mal damit beschäftigen.
René F. schrieb:> Dies war eher auf VHDL als mein Board bezogen.
Ich habe keine Empfehlung, sorry. Fang an mit ganz einfachen Dingen und
lerne weiter. Die Suche hier im Forum, die Seite von Lothar sind gute
Hilfen.
René F. schrieb:> Der Kollege hat mir einen Stick mit der Boarddokumentation mitgegeben,> darin sind scheinbar auch Beispiele enthalten. Ein Foto befindet sich im> Anhang, ich denke ich werde mich am Wochenende mal damit beschäftigen.
Wunderbar, ja das ist für den Anfang gut geeignet. Viel Spaß und Erfolg,
unterschätze die Lernkurve nicht, vergiss alles was du von normalen
Programmiersprachen kennst (kein Scherz) und trau dich hier zu Fragen.
Man lernt durch Fehler und scheitert empor (-:
Eine Kurze Einführung:
"VHDL by Example" von Blaine Readler. Hat einen sehr entspannten
Schreibstil. Ist ein 100 Seiten Büchlein.
"FPGA Prototyping by VHDL Example" Pong P. Chu.
Ist zwar für XILINX Spartan-3, aber geht genauso für Intel.
Ca 480 Seiten Klopper.
Das sind meine beiden Anfänger-Bücher.
Digital McLogic Design
Bryan J. Mealy & James T. Mealy
findet sich zahlreich im Netz.
Ansonsten als Studienobjekt sehr zu empfehlen sind
der NEO430 und NEORV32 von Herrn Dipl.-Ing. Nolting.
Mindestens der NEO430 passt auch in kleinere FPGAs.
Z.B. Cyclone 1 EP1C3.
Allgemeine Kenntnisse der Digitaltechnik schaden natuerlich
ueberhaupt nicht.
Sonstige Programmiererfahrung am besten in den Rundordner und
Viel Spass!
Nick M. schrieb:> "FPGA Prototyping by VHDL Example" Pong P. Chu.> Ist zwar für XILINX Spartan-3, aber geht genauso für Intel.> Ca 480 Seiten Klopper.
Allein der Stil ist fraglich. Denn ein Buch, das extra für den S3
geschrieben ist, darf eigentlich keine asynchronen Resets verwenden.
Siehe dazu die Posts im
Beitrag "Re: Suche VHDL Buch"> Das sind meine beiden Anfänger-Bücher.
Reichardt&Schwarz "VHDL-Synthese" brachte mir die richtige Denkweise.
Das Buch hat zwar auch Schwächen, aber es wird anhand des
RTL-Schaltplans immer wieder gezeigt, was der Synthesizer aus einer
Beschreibung macht.
Und dann muss natürlich auch Peter Ashenden mit "Designers Guide to
VHDL" erwähnt werden (wobei gilt: "FPGA" ist nur eine kleine Teilmenge
von "VHDL").
Last but nor least muss der Userguide vom Synthesizer immer zur Hand
sein. Dort drin steht, welchen kleinen Teil von VHDL der überhaupt in
Hardware umsetzen kann. Und auch, wie das dann hingeschrieben werden
muss, dass er es versteht.
Lothar M. schrieb:> aber es wird anhand des> RTL-Schaltplans immer wieder gezeigt, was der Synthesizer aus einer> Beschreibung macht.
Ich schau mir die generierten RTL danach an und stell dann fest, dass
ein Fehler in meinem Verilog sein muss. :-)
Ich schau mir deine Buchtips gerne an, wenn es sie in einer
Verilog-Version gibt.
Nick M. schrieb:> Ich schau mir deine Buchtips gerne an, wenn es sie in einer> Verilog-Version gibt.Verilog ist neu hier, deshalb war meine Antwort eher für den TO gedacht,
denn
René F. schrieb:>>> Ich würde mich gerne mit der FPGA Beschreibung mittels VHDL beschäftigen
Lothar M. schrieb:> Verilog ist neu hier, deshalb war meine Antwort eher für den TO gedacht,> denn
Das war mir schon klar. Daher hab ich vorher nachgesehen, ob es die
Bücher auch in VHDL gibt.