Hallo, Kurz vorweg, ich programmiere seit 30+ Jahren in C, C++ und Assembler, habe TTL 74'er Schaltungen entwickelt, habe also mehr als Basiswissen. Mein neustes Projekt soll nun den Sprung in die Welt der CPLDs besiegeln. Darum möchte ich bitten, dass jemand mal über meine Annahmen schaut und mir den richtige Chip empfiehlt. Danke! Ein kleines Board soll den internen Bus eines Apple Newton PDA(*) (CMOS Level, drei serielle Busse) mit einem ESP8266 Modul (3.3V) und einem FTDI USB Wandler möglichst flexibel verbinden. Das ESP wird so programmiert, dass es sich dem Newton gegenüber wie ein Hayes Modem verhält, gegenüber der Welt aber wie eine moderne Internetverbindung. Die Aufgabe für den CPLD ist also nicht sehr komplex, sondern soll: - von CMOS auf 3.3V TTL umsetzen und zurück - per TriState den Bus frei halten, wenn der Newton das verlangt - die Modemleitungen bedienen und den ESP entlasten - jeden der drei seriellen ports mit jeweils dem ESP oder dem FTDI verbinden - Ruhestromverbrauch sollte sich auf ein Minimum senken lassen können Ich glaube, dass so ein Board in der Komplexität niedrig genug ist, um in Ruhe Verilog(?) und alles andere über CPLDs zu lernen. Klappt das so? Ist das ein guter Einstieg? Ist der MAX 3000A der richtige Chip? (*): der Apple Newton MessagePad ist ein PDA, ein "SmartPhone" von 1994. Er kann zwar grundsätzlich in ein WLan Netzwerk einloggen, beherrscht aber kein WPA2. Die Schaltung soll die heute noch ganz prima funktionierenden Geräte wieder mit der Aussenwelt verbinden.
Matthias M. schrieb: > Ich glaube, dass so ein Board in der Komplexität niedrig genug ist, um > in Ruhe Verilog(?) und alles andere über CPLDs zu lernen. > Klappt das so? Hört sich nach einer Strategie an. Allein die Sache mit Verilog würde ich angesichts der Tatsache, dass du hier in Europa für VHDL leichter einen Helfer findest, nochmal überdenken. > Ist der MAX 3000A der richtige Chip? Der kann immerhin eine deiner Hauptanforderungen: 5V IO-Spannung. Und den Rest kann der auch. Da ist ja nichts Aufwändiges dabei... > Ist das ein guter Einstieg? Ich würde nicht mit irgendwas Produktivem beginnen. Mach zuerst die einfachen Spielereien: LED, Lauflicht, SIO, VGA usw... Dann hast du genug Wissen, um mit deinem Projekt so loszulegen, dass was Brauchbares dabei herauskommt.
:
Bearbeitet durch Moderator
Matthias M. schrieb: > Klappt das so? > > Ist das ein guter Einstieg? > > Ist der MAX 3000A der richtige Chip? Das klingt für mich nach einer ehr guten Strategie. Gut wäre es wenn du noch einen kleinen Logicanalyzer oder ein scope dabei hast. Verilog ist IMHO auch in Europe die bessere Wahl für den Einstieg insbesonders für gestandene Elektroniker da man 74-Logik geradliniger beschreiben kann als im VHDL-behaviroul style. Wenn das läuft kannst du das dann in VHDL umsetzen, die Tools unterstützen i.d.R. eh beides.
Blitzmieze schrieb: > Verilog ist IMHO auch in Europe die bessere Wahl für den Einstieg > insbesonders für gestandene Elektroniker da man 74-Logik geradliniger > beschreiben kann als im VHDL-behaviroul style. So hat man seine Ansichten. VHDL ist nicht per Definition "geschwätzig" und "umständlich", es wird nur gerne an den Schulen so gelehrt. Ich kann mit VHDL natürlich auch kompakt Logik beschreiben... Siehe dazu das da: http://www.lothar-miller.de/s9y/archives/88-VHDL-vs.-Verilog-am-Beispiel-einer-Stoppuhr.html Und den darin verlinkten Beitrag "Frage zur Lernkurve VHDL vs. Verilog"
Toll, danke für die super schnellen Antworten. Ein Mixed Mode Scope ist vorhanden (die Zeit die man damit spart ist gar nicht in Gold aufzuwiegen). Ob nun Verilog oder VHDL werde ich nach ein paar Tutorials in diesen Sprachen entscheiden. Ich vermute mal, ich werde schnell merken, welche mir besser liegt. Die Entwicklerumgebung kann ja beides gleichermassen. Was mich umgehauen hat ist der unglaublich niedrige Preis der MAX 3000A: für 1.60 Euro sogar in der Apotheke als Einzelstück, da muss man wirklich nicht lange überlegen. Nochamls danke, - Matthias
Matthias M. schrieb: > Ob nun Verilog oder VHDL werde ich nach ein paar Tutorials in diesen > Sprachen entscheiden. Ein Tipp: fang frühzeitig mit der Simulation an. Der Simulator ist der Debugger des FPGAs. Im Simluator findest du strukturelle und systematische Fehler. Mit dem Oszi findest du dann Umsetzungsprobleme oder Timingprobleme. Aber wehe, dein Design liefe nicht mal in der Verhaltenssimulation (und du weißt das nicht) und du hast zusätzlich noch ein Timingproblem: du suchst dich an solchen überlagerten Fehlern dumm und tappig... Dort geht es ganz von vorn los und dann kommt noch eine Testbench dazu: http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html
:
Bearbeitet durch Moderator
Guter Tip mit der Simulation. Timing hat in diesem Projekt noch keine Priorität. 19,2 kHz benötigt ja noch keine doppelt geschirmte Koax Kabel. Ich bestelle dann gleich mal ein Experimentierboard ;-)
Zwischenmeldung: Nochmals Danke für die Hilfe soweit. Ich habe die Chips bekommen, Breakout-Platinen, und den USB Blaster. Quartus 13.0sp1 liess sich erträglich gut unter Parallels auf dem Mac installieren. Der Blaster meldet sich. Auch das erste Verilog Programm habe ich nach etwas Hickhack programmiert bekommen. Morgen werde ich dann mal einen Chip auflöten und programmieren. Bei dem Gedanken an meine früheren TTL-Gräber kommt mir das grauen. Wo kann ich am sinnvollsten Fragen zu Verilog stellen? Hier im Forum? In einem neuen Thread? Oder lieber in einem ganz anderen Forum? Ich habe eine recht gute Idee, was meine Schaltung können muss, habe aber noch viele Fragen.
Matthias M. schrieb: > Auch das erste Verilog Programm [..] Seufz. Aber vielleicht findest du ja doch noch zu VHDL ;) Matthias M. schrieb: > Wo kann ich am sinnvollsten Fragen zu Verilog stellen? Hier im Forum? In > einem neuen Thread? Oder lieber in einem ganz anderen Forum? Hier in diesem Forum :) Idealerweise in neuen Threads oder ganz kleine Sachen kannst auch hier noch reindrücken
Matthias M. schrieb: > Wo kann ich am sinnvollsten Fragen zu Verilog stellen? Hier im Forum? > In einem neuen Thread? Oder lieber in einem ganz anderen Forum? Natürlich kannst du Fragen zu Verilog auch hier stellen (probieren kostet nichts). Aber weil Verilog eher ausserhalb Europas verbreitet ist, wirst du evtl. in englischsprachigen/amerikanischen Foren leichter Unterstützung finden. Nachdem du sowieso mit Quartus arbeitest, empfiehlt sich das Altera Forum: http://alteraforums.com/forum/forumdisplay.php?f=70 Und dann noch: http://www.edaboard.com/group128.html http://www.edaboard.com/forum30.html > In einem neuen Thread? Ein Thread pro "Problem". Und natürlich ist es evtl. sinnvoll, einen "alten" Thread im neu zu beginnenden Thread zu verlinken, wenn dort bereits etwas Ahnliches diskutiert wurde.
DANKE! Ich habe den ersten Chip heute programmiert bekommen. Es war alles am Ende relativ einfach. Und was soll ich Euch sagen: das ist ja wohl MEGAGEIL! Die Schaltung, die ich im Kopf hatte war zwar simpel, aber hat auf Anhieb genau so funktioniert wie geplant. Und jetzt kann ich die Hardware noch erweitern, ohne nochmal den Lötkolben in die Hand zu nehmen! Tausend Dank für Eure Starthilfe! Als nächstes werde ich das selbe Problem noch einmal in VHDL lösen, um beide Sprachen sinnvoll vergleichen zu können. Danach geht's dann in die Tiefe. - Matthias
Matthias M. schrieb: > Als nächstes werde ich das selbe Problem noch einmal in VHDL lösen, um > beide Sprachen sinnvoll vergleichen zu können. Tu das. Und lass dich nicht vom akademisch geschwätzigen Beschreibungsstil aus Büchern und Tutorials in die Irre führen... Siehe http://www.lothar-miller.de/s9y/archives/88-VHDL-vs.-Verilog-am-Beispiel-einer-Stoppuhr.html Und fang auch gleich mit Testbenches und Simulationen an: http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html Oder kurz: der Simulator ist der Debugger der Hardware...
:
Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.