Forum: FPGA, VHDL & Co. CPLD + SRAM = FIFO?


von pfifi (Gast)


Lesenswert?

Hallo allerseits,

für ein Projekt brauche ich einen FIFO zum Auslesen eines A/D-Wanlders 
(65Mhz). Jedoch habe ich festgestellt, dass die Dinger richtig teuer 
sind und habe mir überlegt alternativ einen etwas langsameren FIFO aus 
CPLD und SRAM zu basteln. Da ich jedoch die Leistung eines CPLD aufgrund 
mangelnder Erfahrung nicht einschätzen kann, wollte ich mal nachfragen, 
ob jemand da etwas empfehlen kann.

Danke im Voraus und beste Grüße

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sag doch mal was zum Thema Datenrate und -breite auf der einen und der 
anderen Seite. Muß parallel gelesen und geschrieben werden?
Falls ja: kannst du die Lese-Seite mit Waitstates verzögern?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Naja ich sag mal so: Das Problem ist meistens eher einen passend 
schnellen SRAM zu finden der mit dem CPLD mithalten kann. Auch ist die 
Frage ob du lesen und schreiben gleichzeitig willst, oder erst FIFO 
vollschreiben und dann lesen.
Und vorallem: Wo ist deine Preisliche Grenze? Wie teuer ist den so ein 
fertiger FIFO? Ein CPLD + SRAM kommt bei 65MHz auch shcon auf gut 20eur

von pfifi (Gast)


Lesenswert?

wow, danke für die schnellen Antworten

also ich habe einen 12-bit ADC mit Parallelausgang. Dieser soll die 
Daten über einen kurzen Zeitraum aufnehmen. Nach Möglichkeit sollten 
schon so 128k x 16 an Daten in den Fifo passen. Erst nach der Aufnahme 
werden die Daten gelesen und weiter verarbeitet. Daher brauch ich schon 
mal keine Dual-Port-Geschichte.

Also ein 8k x 9 FIFO kostet so um die 20€. Also recht teuer für die paar 
Bits. Die Fifos, die ich bräuchte (4Mbit) haben sogar die 100€-Grenze 
gesprengt. Ich würde mich schon freuen, wenn ich den Preis auf unter 50€ 
beschränken könnte. Habe mich bei den SRAMs (4Mbit mit 10ns) ein wenig 
umgeschaut und rechne da mit einem Preis von etwa 10€.

Aber auf was muss ich aber bei dieser Geschichte beim CPLD achten? Hat 
hier jemand ein paar Vorschläge? Am besten von Altera

Danke und Gruß

von Falk B. (falk)


Lesenswert?

@  pfifi (Gast)

>Also ein 8k x 9 FIFO kostet so um die 20€. Also recht teuer für die paar
>Bits. Die Fifos, die ich bräuchte (4Mbit) haben sogar die 100€-Grenze
>gesprengt.

Umsonst ist der Tod.

> Ich würde mich schon freuen, wenn ich den Preis auf unter 50€
>beschränken könnte. Habe mich bei den SRAMs (4Mbit mit 10ns) ein wenig
>umgeschaut und rechne da mit einem Preis von etwa 10€.

Mit deiner nicht vohandenen Erfahrung darfst du das getrost vergessen. 
Und als Einzelstück ist eine Selbstbaulösung 100x teurer als was von der 
Stange, selbst bei 5 EUR Stundensatz. Nimm den 100 EUR FIFO und gut.

MfG
Falk

von pfifi (Gast)


Lesenswert?

@Falk
mit dieser Einstellung würden die Enwickler austerben. Freue mich aber 
auch über konstruktive Vorschläge deiner Seite...

von Sebastian (Gast)


Lesenswert?

Dem Arbeitsaufwand steht immerhin auch die gesammelte Erfahrung 
gegenüber. Sich durch so ein Projekt durchzukämpfen (und ohne 
CPLD-Erfahrung ist das ein Projekt, durch das man sich durchkämpfen 
muß), kann lehrreich sein.

Manch einer rechnet mit 5 Euro Stundensatz. Ein anderer gibt wesentlich 
mehr für Fortbildungskurse aus. Was soll's also?
Nebenbei: Hat der OP gesagt, daß es ein Einzelstück ist? Schon bei einer 
Kleinserie können 100 Euro für ein Bauteil richtig weh tun, wenn man 
nicht gerade bei einer "Geld spielt keine Rolle"-Firma arbeitet.

von Uwe Bonnes (Gast)


Lesenswert?

Ein modernen FPGA mit genuegend Blockram um das Fifi zu realisieren 
duerfte nicht deutlich teuerer werden und einfacher zu handhaben sein.

von pfifi (Gast)


Lesenswert?

Sebastian schrieb:
> Nebenbei: Hat der OP gesagt, daß es ein Einzelstück ist?

zwar handelt es sich um ein Forschungsprojekt und somit "Einzelstücke", 
aber ich hätte gerne, wie du schon erwähnt hast, ein Werkzeug mehr in 
meiner Tasche


Uwe Bonnes schrieb:
> Ein modernen FPGA mit genuegend Blockram um das Fifi zu realisieren
> duerfte nicht deutlich teuerer werden und einfacher zu handhaben sein.

Irgendwie habe ich in Erinnerung, dass nur die dicken FPGAs viel RAM 
haben

von Falk B. (falk)


Lesenswert?

@  pfifi (Gast)

>mit dieser Einstellung würden die Enwickler austerben.

Keine Sekunde. Richtige Entwickler (tm) entwickeln neue Sachen und 
erfinden das Rad nicht jede Mal neu.

> Freue mich aber auch über konstruktive Vorschläge deiner Seite...

Wenn es denn in erster Linie um den Lerneffekt geht, OK, dann kann man 
das mit einem CPLD + SRAM machen. Ich sag mal ein 128 Makrozellenteil 
sollte reichen. Das Design sollte man VOR dem Schaltplan machen, denn 
CPLDs sind nicht ganz so flexibel bei der Pinzuordnung wie FPGAs. Bei 65 
MHz Datentakt = 15ns sollte man auf jeden Fall einen 10 oder gar 7ns 
CPLD nehmen + einen 10ns SRAM. Wenn man nicht zuviel tricksen will, muss 
man hier wohl oder übel mit dem doppelten Takt arbeiten, sprich 130 MHz, 
das ist schon FLOTT!!! Mit etwas mehr Tricks kommt man mit dem 1,5 
fachen Takt arbeiten, sprich 97,5 MHz. Den Datenbus kann man direkt 
zwischen ADC und SRAM verbinden, wenn der ADC seine Ausgänge auf 
Tristate schalten kann. Der CPLD generiert dann nur die Steuersignale.

Naja, und die Grundlagen synchronen Designs beachten, sonst wird es 
unschön und langwierig, siehe VHDL.

MfG
Falk

von Falk B. (falk)


Lesenswert?

@  Uwe Bonnes (Gast)

>Ein modernen FPGA mit genuegend Blockram um das Fifi zu realisieren

Einen Hund wollen wir nicht bauen ;-)

>duerfte nicht deutlich teuerer werden und einfacher zu handhaben sein.

Ein preiswertes FPGA mit 4 Mbit SRAM? Hmmm? Spartan 3 hat max. 550kBit, 
Altera mit Cyclone II max. 1,1 Mbit.

Ein externer SRAM ist hier schon ökonomisch sinnvoll.

MfG
Falk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>  Erst nach der Aufnahme werden die Daten gelesen und weiter verarbeitet.
Dann hast du berechtige Chancen auf Erfolg, weil du ja eigentlich "nur" 
einen Speicher-Umschalter baust.

> Nach Möglichkeit sollten schon so 128k x 16 an Daten in den Fifo passen.
Schnelles SRAM und eine passende FSM dürften das schon hinbekommen. Aber 
du hast bei 65MHz nicht viel Zeit, da könnte im CPLD eine Pufferstufe 
nicht schaden.

Eine Möglichkeit wäre z.B. auch auf eine Busbreite von 24 Bit 
auszuweichen, dann hast du auf dem Speicherinterface nur noch 33MHz.

Eine dritte Möglichkeit ist, das CPLD gar nicht mit den Daten zu 
belasten, sondern nur die Steuerleitungen anzuschliessen und 
umzuschalten, so dass des AD-Wandler direkt ins RAM schreibt.


Aber wenn du bisher nichts mit CPLDs gemacht hast, solltest du eher 
einen relaxten Zeitplan haben...

von pfifi (Gast)


Lesenswert?

Vielen Dank für die Tipps und Ansätze.

Werde wohl bei 130Mhz den CPLD nur als Steuereinheit nutzen und die 
Datenleitungen direkt auf das RAM legen.

von Markus (Gast)


Lesenswert?

> also ich habe einen 12-bit ADC mit Parallelausgang. Dieser soll die
> Daten über einen kurzen Zeitraum aufnehmen. Nach Möglichkeit sollten
> schon so 128k x 16 an Daten in den Fifo passen. Erst nach der Aufnahme
> werden die Daten gelesen und weiter verarbeitet. Daher brauch ich schon
> mal keine Dual-Port-Geschichte.

Für mein Verständnis braucht er kein Fifo ... Ein stinknormales RAM 
sollte es tun ...

Er scheibt nichts davon, dass gelesen und geschrieben gleichzeitig 
werden soll ... Und das heißt, dass er aufnimmt und nach der Aufnahme 
ausliest ...

Warum sollte man dann ein 100EUR-Fifo verwenden???

Grüße,
Markus

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
Noch kein Account? Hier anmelden.