Hi,
gibt dazu viele Ansichten. Im Endeffekt musst du abschätzen, was deine
Entwicklungszeit wert ist, und welche Peripherie und Interfaces du
brauchst.
Wenn du das noch nicht weisst, würde ich prinzipiell kleckern, und mir
ein Pizzablech mit allem drauf was interessant ist (z.B. Avnet
Firecracker, o.ä.) erwerben.
Weitere Antwort-Fragen:
- Reichen die MMACs? (Assemblersprache ansehen, Zyklen ausrechnen,
Abschätzung machen)
- Welche minimalen Latenzzeiten sind erforderlich?
- Wo müssen die Daten hin?
Generell kannst du schon mal rechnen, dass die Entwicklung mit dem FPGA
kostspieliger wird, da du sehr viel mehr verifizieren (Testbenches..)
musst, denn in den meisten Fällen bist du damit konfrontiert, dass du
deine eigene Logik designst.
An deinem Beispiel kann man soweit festnageln:
- Du kannst auf dem FPGA deine MAC units duplizieren und n-fach parallel
laufen lassen, also Samplerate: 400 / 128 * n MHz FIR-Filtern. n hängt
von der Anzahl Gatter ab (was du halt reinbekommst bei der
Timing-Vorgabe)
- Auf dem Blackfin hast du nur zwei parallele ALUs, also n = 2. Und du
bist in diesem Fall auf 16 bit (1.15 Fixkomma)-Wertebereich beschränkt.
Die andere Frage ist, wie die Daten rein/ und rausmüssen, ob FIFOs
dazukommen, usw.
Wenn die CPU noch einiges anderes machen muss, z.b. Daten per Netzwerk
verschicken, usw. kommen die Latenzzeiten ins Spiel.
Allenfalls musst du für viel Leistung dann auch die Aufgaben auf ein
DSP/FPGA-Gespann aufteilen. Machen wir auch oft so, das ist vom
Entwicklungsaufwand her optimal: "Dumme", simple Sachen ins FPGA, alle
Intelligenz in den Blackfin oder ARM.
Wenn du keine niedrigen Latenzzeiten brauchst, sind ev. die
OMAP-Prozessoren von TI auch interessant, da es fertige Linuxports gibt
(die Boards sind entsprechend populär). Beim Blackfin gibt es "nur"
uClinux (kein virtuelles memory), aber dafür ist er für dedizierte
Standalone-Anwendungen einfacher zu programmieren.
Gruss,
- Strubi