Moin, rein aus Interesse: 1. Können in einem CPLD (bzw. FPGA) sequenzielle Abläufe, wie z.B. das Initialisieren eines LCD-Displays implementiert werden? 2. Wovon sollte man die Anzahl der benötigten Makrozellen abhängig machen, mir fehlt da jegliche Relation. Bei einem MikroController weiß ich, wenn ich z.B. einen Temperatursensor auslesen und über UART ausgeben will, sind 1k Flash vollkommen ausreichend. Wie muss man sich das bei CPLD's vorstellen? Gruß, André
Hallo, ich kann dir nur zu (1) antworten :) Ja, eine Ansteuerung von Display sollte machbar sein. Ich würde das per FSM lösen. Gruß Lasse
André G. schrieb: > 1. Können in einem CPLD (bzw. FPGA) sequenzielle Abläufe, wie z.B. das > Initialisieren eines LCD-Displays implementiert werden? Ja. Problemlos... Beitrag "Re: EA DOG-M initialisieren" Naja, einige graue Haare kann das einen Anfänger evtl. schon kosten... ;-) > 2. Wovon sollte man die Anzahl der benötigten Makrozellen abhängig > machen, mir fehlt da jegliche Relation. Bei CPLDs gilt: 1 Makrozelle = mächtige Logik + 1FF. Wenn du also einen 16Bit-Zähler basteln willst, brauchst du schon mal 16 Makrozellen. Vor jedem könnte allerdings eine mächtige Logik aufgebaut werden. Bei FPGAs heißt es: klitzekleine Logik + 1 FF Da gibt es FFs im Überfluss. Allerdings müsste eine größere Logik erst mal aus mehreren LUTS zusammenverdrahtet werden. > Wie muss man sich das bei CPLD's vorstellen? Erfahrung und die passende Hardwaredenkweise, die durch Erfahrung entsteht... ;-)
> 1. Können in einem CPLD (bzw. FPGA) sequenzielle Abläufe, wie z.B. das > Initialisieren eines LCD-Displays implementiert werden? Ja, auf verschiedenste Arten. State-Machine, programmierbare State-Machine, dedizierte Softcore-CPU, in eine schon vorhandene Softcore-CPU "mit reingequetscht", ... Welche dieser Möglichkeiten du sinnvollerweise nutzt hängt von den genauen Gegebenheiten ab. > 2. Wovon sollte man die Anzahl der benötigten Makrozellen abhängig > machen, mir fehlt da jegliche Relation. Bei einem MikroController weiß > ich, wenn ich z.B. einen Temperatursensor auslesen und über UART > ausgeben will, sind 1k Flash vollkommen ausreichend. Wie muss man sich > das bei CPLD's vorstellen? Genau wie du es jetzt bei einem uC machst: mit Erfahrung ;)
OT: André G. schrieb: > Bei einem MikroController weiß ich, > wenn ich z.B. einen Temperatursensor auslesen und über UART > ausgeben will, sind 1k Flash vollkommen ausreichend. Da hast du übrigens m.E. aber sehr sehr hoch gegriffen, mit 100 Befehlszeilen müsstest du da locker hinkommen: 10 für die Initialisierung, 5 für die AD-Wandlung, 60 für die Umwandlung und 15 zum Senden über die SIO.... :-/ Und das wären dann selbst bei einem uC mit 2 Bytes/Befehl erst mal 200 Bytes...
Besten Dank, bin ja vollauf begeistert, wie schnell man hier mit Antworten eingedeckt wird ;) Auf jeden Fall hab ich dank Euch ne Menge Ansätze, die mir sicher weiterhelfen werden. Als nächsten Schritt werd ich mir die benötigte HW zurechtstricken und meine Erfahrungen auf dem Gebiet sammeln, denn da muss ich Euch recht geben, Wissen kommt durch Erfahrung... ;) Gruß, André @Lothar Miller: Nicht immer alles so penibel sehen, es war lediglich als spontan daher gesagtes Beispiel angeführt ohne jedwede Wertung oder Vorab-Berechnung. Dennoch stimmt meine Aussage dank Deiner Berechnung weiterhin, 1k Flash reicht ;)
André G. schrieb: > Dennoch stimmt meine Aussage dank Deiner Berechnung weiterhin, > 1k Flash reicht ;) Richtig. Mein Tipp: nimm ein großes FPGA. Dann reicht es auch... ;-) > rein aus Interesse: Falls sich das Interesse verfestig: fang gleich mit FPGAs an. Die EVAL-Boards dafür sind nicht viel teurer als die von CPLDs und sogar Lattice (die mit CPLDs groß geworden sind) nennen ihre kleinen FPGAs verschämt CPLD, um die Hemmschwelle zu senken... ;-)
Lothar Miller schrieb: > sogar > Lattice (die mit CPLDs groß geworden sind) nennen ihre kleinen FPGAs > verschämt CPLD, um die Hemmschwelle zu senken... ;-) Um fair zu sein, Lattice listet die MachXO,MachXO2 in beiden Kategorien (PLD und FPGA). Sie zielen aber ganz klar auf den PLD Markt. Ein weiterer Nachteil von FPGAs gegenüber CPLDs sollte aber nicht vergessen werden: CPLDs sind sofort bereit, FPGAs brauchen eine gewisse Konfigurationszeit, auch die MachXO.
Lothar Miller schrieb: > Richtig. > Mein Tipp: nimm ein großes FPGA. Dann reicht es auch... ;-) ;) Lothar Miller schrieb: > Falls sich das Interesse verfestig: Das Interesse hat sich auf jeden Fall verfestigt, von vorn herein schon, bringt ja für den Job auch ne Menge sich privat damit auseinander zu setzen. Spricht prinzipiell eigentich etwas gegen Xilinx? Hab mir jetzt nur diesen Hersteller angeschaut. Mein Augenmerk viel dabei auf den XC9500XL, gerade wegen der 3,3 Volt Logik. Desweiteren gibts da ja auch für umsonst dieses ISE WebPack. Irgendwelche Einwände? Für den Einsteig brauch ich vorerst kein EVAL-Board, die Schaltung bau ich mir erstmal auf dem BreadBord zurecht. Das ist so ne Philosophie-Geschichte, hat sich für mich bewährt. Und was CPLD oder FPGA angeht, da zieht bei mir das Argument von Lattice User, hab ich schon in diversen Foren gelesen.
André G. schrieb: > Und was CPLD oder FPGA angeht, da zieht bei mir das Argument von Lattice > User, hab ich schon in diversen Foren gelesen. Ich würde das aber nicht überbewerten, bei den meisten Anwendungen dürfte das keine Rolle Spielen. Was macht es denn aus wenn z.B. eine Ampel erst nach eingen msec einsatzbereit ist. Auch würde ich empfehlen, schick das Steckbrett in Rente. Der grösste XC9500XL in einem steckbrettkompatiblen Gehäuse hat gerade mal 72 Macrozellen/Register und 34 I/Os. Da stösst man doch sehr schnell an Grenzen. Kleine FPGA Evalboards kann man schon für einige 10 Euro bekommen, und dann hat man einen FPGA in der Grössenordnung von 5000 LUT/Registern. Das reicht schon für eine ganze Menge.
Lattice User schrieb: > Auch würde ich empfehlen, schick das Steckbrett in Rente. Der grösste > XC9500XL in einem steckbrettkompatiblen Gehäuse hat gerade mal 72 > Macrozellen/Register und 34 I/Os. Da stösst man doch sehr schnell an > Grenzen. Nee, sorry, nix mit Rente, wenn, dann nehm ich schon den 100-Pinner TQFP und bau mir, wie gehabt, den Adapter selbst. Wie gesagt, ich steh nicht so auf EVAL-Boards, ich bau sowas lieber in Eigenregie, da bin ich freier in meinen Entscheidungen.
Lattice User schrieb: > Ein weiterer Nachteil von FPGAs gegenüber CPLDs sollte aber nicht > vergessen werden: CPLDs sind sofort bereit, FPGAs brauchen eine gewisse > Konfigurationszeit, auch die MachXO. Die rechnet sich aber bei diesen FPGAs mit internem Speicher tatsächlich im unteren ms Bereich, da hat jeder uC eine längere Reset-Zeit... Und man darf es nicht verdrängen: sogar Xilinx 9500XL CPLDs sind SRAM-basierte CPLDs, die ihre Konfiguration beim Power-Up aus den Flash-Zellen holen... ;-) Allerdings dauert das nur 200us:
1 | I/Os will be in 3-state with a weak |
2 | pull-up until VCCINT reaches the threshold of the User Operation |
3 | state (approximately 2.5V). When VCCINT reaches this |
4 | point, user registers are initialized (typically within 200 μs) |
Aus Xilinx DS054 XC9500XL High-Performance CPLD Family Data Sheet André G. schrieb: > Wie gesagt, ich steh nicht so auf EVAL-Boards, ich bau sowas lieber > in Eigenregie, da bin ich freier in meinen Entscheidungen. Dann vergiss das aber am besten gleich wieder: > und bau mir, wie gehabt, den Adapter selbst. Lies dir da für die FPGAs auf jeden Fall die Layoutregeln durch und rechne mit den Kosten für eine 4-lagige Platine.... BTW: so ein EVAL-Board kostet dich bestenfalls 10 Euro/Jahr, wenn du es heute kaufst und in 5 Jahren wieder vertickst... ;-) Das bekommst du mit "selber machen" nicht billiger hin. Dafür läuft es sofort auf Anhieb... :-o Oder schnitzt du sogar deine Transistoren selbst wie ehedem Shockley&Co?
André G. schrieb: > Nee, sorry, nix mit Rente, wenn, dann nehm ich schon den 100-Pinner TQFP > und bau mir, wie gehabt, den Adapter selbst. Wie gesagt, ich steh nicht > so auf EVAL-Boards, ich bau sowas lieber in Eigenregie, da bin ich > freier in meinen Entscheidungen. Es gibt auch eine Menge Mini-Boards, die ziemlich viele IO rausführen. Besser kann man es mit einem eigenen "Adapter" dann auch nicht machen. Und billiger schon gar nicht.
Lothar Miller schrieb: > Das bekommst du mit "selber machen" nicht billiger hin. Dafür läuft es > sofort auf Anhieb... :-o > Oder schnitzt du sogar deine Transistoren selbst wie ehedem Shockley&Co? Stefan L. schrieb: > Es gibt auch eine Menge Mini-Boards, die ziemlich viele IO rausführen. > Besser kann man es mit einem eigenen "Adapter" dann auch nicht machen. > Und billiger schon gar nicht. Wie gesagt, ist ein reines Philosophie-Ding, der eine machts so, der andere eben anders. Beim "selber machen" kommt es nicht unbedingt auf billig an. Ich plan grad für mich z.B. meinen mittlerweile 4. eigenen Tauch-Computer, bei den bisher ausgegebenen Kosten für die letzten 3 hätt ich mir ein Ultra-Hyper-Super-Tolles Teil kaufen können, macht mir aber keinen Spaß, weil is ja nicht von mir. Und wenn ich schon mal das Wissen und nötige Technik habe sowas selbst zu entwickeln, und das auch noch "mein Hobby" ist, warum dann kaufen? Ich bin auch der Meinung, das sowas nicht zu einem Streitpunkt werden sollte. Denn genau aus dem Grund gits es solche Foren, wie dieses hier, oder?
Lothar Miller schrieb: > Und man darf es nicht verdrängen: sogar Xilinx 9500XL CPLDs sind > SRAM-basierte CPLDs, die ihre Konfiguration beim Power-Up aus den > Flash-Zellen holen... ;-) > Allerdings dauert das nur 200us: Sachen gibst :-) Die Lattice ispMach4000 sind auf jeden Fall sofort da. Aber wie ich schon vorher geschrieben habe, meisten spielt das wirklich keine Rolle. André G. schrieb: > Nee, sorry, nix mit Rente, wenn, dann nehm ich schon den 100-Pinner TQFP > und bau mir, wie gehabt, den Adapter selbst. Wie gesagt, ich steh nicht > so auf EVAL-Boards, ich bau sowas lieber in Eigenregie, da bin ich > freier in meinen Entscheidungen. Wenn du in der Lage bist ein 4 Lagen Adpaterplatine zu machen warum nicht, 4 Lagen sollten es aber auch bei modernen CPLDs sein. Kleine FPGAs gibt es auch im TQFP 100 und 144. Im TQFP 144 sind bei Lattice 5000-7000 LUT/Register verfügbar. (XP2,MachXO,MachXO2 Familien). Und damit hat du genügend Platz auch eine kleine 8 Bit CPU selbst zu machen, die zudem den FPGA auch noch lange nicht ausreizt. Einem CPLD fehlen für sowas interne RAMs. Meine Empfehlung: Beschränke dich nicht unnötig mit einem CPLD vor allem wenn der Aufwand für einen kleinen FPGA nur wenig höher ist.
Mein Tipp für dich, Lattice User (Gast) schrieb: >>Auch würde ich empfehlen, schick das Steckbrett in Rente. Der grösste >>XC9500XL in einem steckbrettkompatiblen Gehäuse hat gerade mal 72 >>Macrozellen/Register und 34 I/Os. Da stösst man doch sehr schnell an >>Grenzen. Da hat ein ausgefuchster Bayer das Problem erkannt, das man evtl. zuerst mal ausloten möchte was wo reinpasst und evtl. doch mit einem Steckbrett arbeiten möchte. Das Zauberwort heisst GODIL (Good Old DIL) http://www.trenz-electronic.de/de/produkte/fpga-boards/oho-elektronik.html wenns dann im Prototyp funktioniert kannst du immer noch ein Layout machen auf dem du den chip selbst ankoppelst (was bei FPGA je nach Typ aufwendig sein kann) Gruß
FPGASchubser schrieb: > Das Zauberwort heisst GODIL (Good Old DIL) > http://www.trenz-electronic.de/de/produkte/fpga-bo... schöne Sache, besonders der Modename GODIL gefällt mir ;) Lothar Miller schrieb: > Ja. Problemlos... > Beitrag "Re: EA DOG-M initialisieren" > Naja, einige graue Haare kann das einen Anfänger evtl. schon kosten... > ;-) nochmal Danke, der Tip ist Gold wert, der Quelltext allein beantwortet schon ne Menge Fragen, die sicher gekommen wären... Gruß, André
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.