Hallo,
durch Mitlesen bin ich auf den Geschmack gekommen und würde mich auch
gerne in FPGA und Co einarbeiten.
Folgende Varianten haben mein Interesse geweckt:
1)
http://www.cesys.biz/epages/61591539.sf/de_DE/?ObjectPath=/Shops/61591539/Products/C1050-4107
2)
http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_47&products_id=182
3)
http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_114_119&products_id=578
Ich weiß, die sind nicht nur preislich völlig unterschiedlich - deshalb
meine Fragen dazu:
An Themen interessiert mich v.a. komplexe Motorsteuerungen, der
Audiobereich aber auch (flotte) Datenerfassung und -übertragung in
Richtung PC, weshalb ich besonders mit (2) wegen GBit-Ethernet
liebäugle.
Wie sieht das von den FPGA-Chips aus? Sind die vergleichbar?
Und wie sieht das bei 1 und 3 mit der Geschwindigkeit aus? Läßt sich da
später noch Gas geben, oder ist dann ein neues Board fällig?
Wie sieht das bei flotten Zusatzkarten aus (so über 50Mhz auf den
Leitungen) - welcher Variante würdet ihr den Vorzug geben?
Unter der Vorausetzung, dass ich nicht unterwegs schlapp mache, welches
Board hat die besten Karten, mich langfristig - vielleicht sogar bei
neuen Anforderungen - zufrieden zu stellen?
Nummer 3 wäre meine Wahl.
> der Audiobereich
Das ist für ein FPGA schnarchlangsam...
> komplexe Motorsteuerungen, aber auch (flotte) Datenerfassung und> -übertragung in Richtung PC, weshalb ich besonders mit (2)> wegen GBit-Ethernet liebäugle.
Du hast gute Chancen, die Latte gleich nach dem Anlauf zu reißen :-o
Hallo Lothar,
erstmal herzlichen Dank für Deine Antwort!
> Nummer 3 wäre meine Wahl.
Könntest Du mir die Wahl bitte etwas erläutern? Die ganzen IO-Teile wie
LCD, Taster, Segmentanzeigen etc. habe ich schon bei mir rumfahren. Das
wäre mir z.B. nicht wichtig.
>> der Audiobereich> Das ist für ein FPGA schnarchlangsam...
auch wenn ich in Richtung digitale Filter, bzw. Equalizer denke?
> Du hast gute Chancen, die Latte gleich nach dem Anlauf zu reißen :-o
Interpretiere ich das richtig, dass Du meinst, ich würde mir zuviel
zumuten?
Kann durchaus sein - mal sehen. Aber man muss sich ja Ziele stecken. Ne
LED zum blinken bringen ist ja nicht wirklich spannend.
Fantasie habe ich reichlich - manchmal fehlt einfach der richtige
Ansatz.
Wie sieht es denn bei Nummer 3 aus?
Kann man bei dem Board noch GBit-Ethernet nachrüsten?
Wenn ja, wie aufwändig wäre das? - Habe hier noch nicht viele Beiträge
dazu gefunden.
Also, ich bin zwar auch wirklich ein Tiefstapler, aber ich hab auch mit
dem Einstieg begonnen einfach um beruflich nicht ganz den Anschluss zu
verlieren und in dem Bereich auch etwas Ahnung zu bekommen.
Aber SO problemlos wie man zuerst meint ist das gar nicht finde ich.
Meine Visionen sind allerdings von meinen Kentnissen noch meilenweit weg
- leider. ich kann allerdings auch noch nciht auf Harware zugreifen.
Anhand meiner Posts kann man sicher ersehen, daß ich mich mit Syntax und
Denkweise schwer tue... :-(
Bin übrigens nicht unerfahren in embedded Entwicklung mit Assembler und
c.
Benut wenn du loslegst doch einfach meinen Code Snippe thread damit der
informativ wird.
Viel Glück und Spaß
>>> der Audiobereich>> Das ist für ein FPGA schnarchlangsam...> auch wenn ich in Richtung digitale Filter, bzw. Equalizer denke?
Ja, auch dann... ;-)
> Die ganzen IO-Teile wie LCD, Taster, Segmentanzeigen etc. habe ich schon> bei mir rumfahren. Das wäre mir z.B. nicht wichtig.
Es ist einfach schöner (und damit frustbefreiter), wenn am Anfang alles
hübsch auf einer Platine ist und sicher funktioniert (weil richtig
angeschlossen). Das spart gleich mal eine durchgemachte Nacht ;-)
>> Du hast gute Chancen, die Latte gleich nach dem Anlauf zu reißen :-o> Interpretiere ich das richtig, dass Du meinst, ich würde mir zuviel> zumuten?
ACK
> Wie sieht es denn bei Nummer 3 aus?> Kann man bei dem Board noch GBit-Ethernet nachrüsten?
Du kannst dir (wenn du dann soweit bist) einfach ein aktuelles Board
mit dieser Schnittstelle kaufen. Eval-Boards verlieren kaum an Wert ;-)
Öhm - ich hätte da mal ne ganz dumme Frage:
Funktionieren die Schnittstellen wie USB und Ethernet über externe HW,
oder müssen die im FPGA erst synthetisiert werden?
> Funktionieren die Schnittstellen wie USB und Ethernet über externe HW,
Normalerweise ja.
Ein USB-Device gibts bei opencores, das geht also auch im FPGA:
Beitrag "USB-Device von opencores"Beitrag "USB Device an FPGA oder mc"
Aber oft ist es billiger, einen externen USB-Chip zu verwenden ;-)
> oder müssen die im FPGA erst synthetisiert werden?
Teile davon können im FPGA synthetisiert werden. Wobei beim Netzwerk
der Phy in der Regel immer als Hardware angeschlossen ist.
OK, ich seh schon, warum Du das mit der Latte geschrieben hast :)
Ein Punkt ist mir noch nicht ganz klar:
Ein FPGA (von Ausnahmen abgesehen) lädt ja sein Programm bei jedem Start
neu. Ich gehe mal davon aus, dass der Programmlader hart implementiert
ist, sonst würde ja nix funktionieren.
Kann ich mir ansonsten den FPGA wie einen großen CPLD vorstellen, oder
muss ich irgendwelche Seiteneffekte berücksichtigen (beim VHDL-proggen,
bzw. beim Malen mit den Designer)?
In meiner Vorstellung ist so ein Cio-Chip ein blackbox-FSM, der nur das
tut, was ich ihm synthetisch beigebracht habe. Ist die Vorstellung
halbwegs brauchbar, oder ziemlich daneben?
> Ich gehe mal davon aus, dass der Programmlader hart implementiert> ist, sonst würde ja nix funktionieren.
Es gibt verschiedene Modi, bei einigen davon ist das FPGA Master und
lädt sich seine Konfiguration aus einem angeschlossenem Speicher.
> Kann ich mir ansonsten den FPGA wie einen großen CPLD vorstellen
Naja, CPLD heißt Complex Programmable Logic Device. So könnte man sagen,
auch ein FPGA ist eine komplexe programmierbare Logikeinheit.
Aber unter CPLD hat sich quasi die Weiterentwicklung von PALs/GALs
manifestiert. Man hat hier mächtige Produktterme, die aufwendige
kombinatorische/logische Funktionen abbilden können. Aber man hat leider
nur wenige FFs, um etwas zu speichern. Die Verdrahtung zwischen diesen
Einheiten ist fest, es werden "nur" die Logikfunktionen abgebildet.
FPGAs dagegen haben viele FFs und jedesmal ein kleines Häppchen
Kombinatorik davor. Das meiste (und das eigentliche Know-How) ist die
Verdrahtung dieser Einheiten.
> oder muss ich irgendwelche Seiteneffekte berücksichtigen> (beim VHDL-proggen, bzw. beim Malen mit den Designer)?
In erster Näherung: Nein.
Aber um die einzelnen Komponenten ideal ausnützen zu können,
unterscheiden sich meine CPLD-Beschreibungen (oft deutlich) von den
FPGA-Beschreibungen.
> In meiner Vorstellung ist so ein Cio-Chip ein blackbox-FSM, der nur das> tut, was ich ihm synthetisch beigebracht habe.Du selber beschreibst diese Black-Box. Ein FPGA hat nur
Speicherelemente (FFs), Kombinatorik (LUTs) und Verdrahtung (Routing).
Hallo Lothar,
Danke für Deine Ausführungen. Habe also doch schon etwas verstanden :)
>> oder muss ich irgendwelche Seiteneffekte berücksichtigen>> (beim VHDL-proggen, bzw. beim Malen mit den Designer)?> In erster Näherung: Nein.> Aber um die einzelnen Komponenten ideal ausnützen zu können,> unterscheiden sich meine CPLD-Beschreibungen (oft deutlich) von den> FPGA-Beschreibungen.
Hm, liegt das daran, dass die Produktterme im FPGA nicht so mächtig
sind, oder woran liegt das?
Könntest Du mal ein Beispiel nennen?
- Nur so als Anhaltspunkt, in Welche Richtung man denken sollte (falls
das möglich ist zu beschreiben).
> Hm, liegt das daran, dass die Produktterme im FPGA nicht so mächtig> sind, oder woran liegt das?
Ein FPGA hat LUTs.
Die im Spartan 3 von Xilinx hat 4 Eingänge. Mit diesem Logikelement kann
also jede Kombinatorik mit bis zu 4 Variablen ('0' und '1') abgebildet
werden, also z.B. ein 4-fach UND, ein 4-fach OR, NOR, NAND...
Wenn jetzt ein 5. Eingang nötig wird, braucht man schon 2 solcher LUTs.
Na schön, könnte man sagen. ist doch nicht so schlimm. Aber hinter jeder
LUT hängt auch ein FlipFlop, das nur über die LUT angefahren werden
kann. Und wenn ich jetzt eine LUT für den 5. Eingang brauche, dann kann
ich das FF dahinter nicht mehr nutzen.
Spartan 6 hat z.B. als großen Fortschritt 6-Input LUTs.
> Ein FPGA hat LUTs.> Die im Spartan 3 von Xilinx hat 4 Eingänge. Mit diesem Logikelement kann> also jede Kombinatorik mit bis zu 4 Variablen ('0' und '1') abgebildet> werden, also z.B. ein 4-fach UND, ein 4-fach OR, NOR, NAND...> Wenn jetzt ein 5. Eingang nötig wird, braucht man schon 2 solcher LUTs.
Puh - ich glaube ich spüre, was Du meinst.
Habe gerade nochmal einen Blick ins DB geworfen - dort ist es erwähnt,
aber nur in einem Diagram. Wenn man's weiß, ist's leicht zu finden,
ansonsten überliest man es doch schnell.
Was mir dabei aufgefallen ist:
Es wird gewechselt zwischen der Schreibweise A[4..1] und A[3..0]
- ist das völlig Banane, ob man bei 0 oder 1 anfängt, oder hat das
Seiteneffekte?
Wenn das mit den LUTs so begrenzt ist, macht es dann Sinn, in VHDL einen
Switch auszucoden, anstatt Logikoperatoren einzusetzen, oder macht der
Synthetisierer da wieder das gleiche draus?
Bei der Gelegenheit möchte ich Dir auch einmal für Deine sehr
informative HP danken! Habe schon viel davon gelernt!
Dann habe ich noch ne Frage zur Peripherie-Anbindung. Nachdem ich
gelesen habe, dass man mit der Lötpad-Technik locker bis 500 MHz packen
kann, habe ich Mut bekommen, es auch mit eigenen (Addon-)Platinen zu
versuchen.
Im DB steht ja, dass der Spartan die differentiellen Eingänge selbst
terminiert hat. Dem entnehme ich, dass man sich das im PCB-Layout
zumindest für die Seite sparen kann.
Wenn ich jetzt einen anderen Chip habe, der sehr schnelle serielle Daten
erzeugt und nur single-ended Pins (bei z.B. einem TQFP) hat, wie kann
ich sinnvollerweise auf differentielle Signale/Leitungen kommen, ohne
einen Sender zu produzieren?
> Es wird gewechselt zwischen der Schreibweise A[4..1] und A[3..0]> - ist das völlig Banane, ob man bei 0 oder 1 anfängt, oder hat das> Seiteneffekte?
In Verbindung mit den LUTs habe ich nur A4..A1 gefunden...
DPRAM ist was anderes ;-)
> Wenn das mit den LUTs so begrenzt ist, macht es dann Sinn, in VHDL einen> Switch auszucoden, anstatt Logikoperatoren einzusetzen, oder macht der> Synthetisierer da wieder das gleiche draus?
Das kommt darauf an...
Sieh dir mal nur das eine Beispiel mit dem vertauschten AND an:
http://www.lothar-miller.de/s9y/archives/52-Kompakte-Flankenerkennung.html
Genau die selbe Beschreibung, aber andere Synthese :-o
Allerdings ist das in der Praxis nicht weiter schlimm, denn um an das FF
zu kommen, muß sowieso über irgendwelche MUX gefahren werden. Ob da noch
ein Invertrer drin ist, tut normalerweise nichts zur Sache.
Ich nehme die Beschreibung, die besser zu lesen ist. Kombinatorik wird
üblicherweise Concurrent beschrieben, getaktete Vorgänge im Prozess.
Allerdings ist die Hemmschwelle, won diesen Vorgaben abzuweichen, nicht
allzu hoch angesetzt.