FPGA, klein, für FIFO

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
shaun
Beiträge: 2401
Registriert: Mo 12. Aug 2013, 20:37

FPGA, klein, für FIFO

Beitrag von shaun »

Tach Jungs,

ich weiss ja, dass für einige hier FPGAs eher täglich Brot sind. Ich habe im Sparsamkeit geübt und alles Mögliche in CPLDs gequetscht und wirbel so nebenher an einem größeren FPGA-Projekt, nun bräuchte ich aber konkret ein eher kleines FPGA, das Ziel ist, u.a. ein historisches 132-Byte-FIFO darin abzubilden.

Ein CPLD ist damit ja eher überfordert, und CPLD + externes RAM wird eher etwas unhandlich, und vor allem nicht günstiger als ein FPGA. Da das FIFO auf der EIngangsseite von einem UART gefüttert werden soll, dachte ich zuerst an einen uC, aber da die Read-Seite des FIFO mit 1MHz gelesen wird, kommt eine Softwarelösung mit einem sinnvoll schnellen uC eher nicht in Frage.

Daher: gesucht wird ein möglichst handlicher FPGA, die 1066 Bits für's FIFO-RAM sollten ja für kaum einen ein Problem sein, den UART würde ich dann natürlich auch gerne darin realisieren. Internes Flash wäre schön, und wenn es da was von Ratiopharm, äh, Xilinx gäbe müsste ich mich nicht so sehr umgewöhnen. Ich habe in Richtung Spartan-3 im 100-beinigen QFP geguckt. Was sagen die Experten?
Benutzeravatar
ferdimh
Beiträge: 9430
Registriert: Fr 16. Aug 2013, 15:19

Re: FPGA, klein, für FIFO

Beitrag von ferdimh »

1MHz Auslesetakt müsste ein STM32 mit Assembelrcode noch problemlos machen, spätestens wenn man einen >100MHz getakteten nimmt...
Das sage ich aber auch, weil in meiner Welt FPGAs irgendwie nie so richtig Platz finden wollten.
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: FPGA, klein, für FIFO

Beitrag von Nicki »

Welchen Bauteilpreis gilt es denn zu unterbieten?
Debugger und STM32F103 liegen leider gerade etwa 80km entfernt, sonst würde ich mal kurz ausprobieren, wie viel die Kiste packt, ich tippe mal auf 5...10MHz bei den üblichen 72MHz Prozessortakt.
shaun
Beiträge: 2401
Registriert: Mo 12. Aug 2013, 20:37

Re: FPGA, klein, für FIFO

Beitrag von shaun »

Ja wäre viellecht eine Option.

Ich habe die Specs vom FIFO nochmal gelesen: Read low-Flanke inkrementiert den Lesepointer und 500ns später steht das Byte bereit. Das wäre also zu erfüllen. Der UART liefert die Daten mit MIDI-Rate, also unter 4000 Bytes/s.
Wenn ich eine Main-Loop nehme, Read-Leitung abfrage, wenn was zu tun -> Pointer hoch, Byte lesen, Byte auf Port. Sonst checken ob Byte am UART anliegt, Schreib-Pointer hoch, Byte schreiben.

Andere Richtung brauche ich auch: wenn Write-Leitung low Byte vom Port lesen und ins UART-Senderegister werfen, fertig.
Auch das müsste in diesem 500ns-Timeframe passieren, Read wie Write kommen von einem Z80-System und demnach nur exklusiv.

Das wären gefühlt 20-30 Zeilen Assembler, schon deshalb sollte es mit einem 72MHz-Prozessor klappen.
Was frisst so ein Tier denn an Saft?
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: FPGA, klein, für FIFO

Beitrag von Nicki »

Um die 40mA, ich gucke sicherheitshalber mal kurz ins Datenblatt...
shaun
Beiträge: 2401
Registriert: Mo 12. Aug 2013, 20:37

Re: FPGA, klein, für FIFO

Beitrag von shaun »

Was für ein Board + (JTAG?-)Adapter soll ich mir zum Selbstspielen beschaffen?
Und welche Software?
Ich will hier jetzt wirklich erstmal ein minimalstes Assemblerprogramm schreiben, wenn einer der Kollegen, die mit dem STM32 erfahren sind, einen Schnipsel eines Assemblerprogrämmchens hätten, das den UART pollt und meinetwegen das empfangene Zeichen invertiert wieder ausgibt oder so wäre mir sicher sehr gedient - das Datenblatt bzw Handbuch ist ja doch recht umfänglich...

40mA sind super, das brauchen der UART und der FIFO sicher jeweils, wenn nicht das 5-fache
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: FPGA, klein, für FIFO

Beitrag von Nicki »

Ich habe mir von denen einen Schwung geholt.
Versand aus D für den doppelten Preis

Die arbeiten halt mit SWD statt JTAG, bekommt man aber sowohl mit dem Nachbau des ST-Link (nicht geprüft, sollte aber gehen) als auch dem Ulink2 programmiert.
Mit letzterem war es etwas hakelig, da muss man schon mal Reset auf dem Board drücken, dann den Chip löschen und hoffen dass er sich jetzt programmieren lässt (irgendwann geht es aber doch).
Ich habe allerdings auch nur SWD und SWC angeschlossen, mit verbundener Resetleitung könnte das reibungsärmer funktionieren.
Der originale Ulink2 ist zumindest mir mit abgefuckten +600€ zu teuer gewesen, mein Nachbau der bei einem China-Devboard dabei war tuts auch.
Versand aus UK
Versand aus China

Hol dir den Ulink wenn du noch mehr in der ARM-Welt vorhast, zusammen mit µVision (mit CooCox bin ich noch nicht so richtig warm geworden) bekommst du dann fast jeden ARM-µC den es gibt programmiert.

Ich hatte mir auch mal von diesem Board ein paar Exemplare gekauft:
http://www.ebay.de/itm/ARM-Cortex-M3-ST ... Swv0tVUNWk
War sehr zickig beim Programmieren, das lag aber vielleicht auch daran dass ich es im Kampf um jedes µA Standbystrom heftig lobotomiert habe.

Assembler mag ich nicht, ich habe mir bisher mit den Schnipseln von hier beholfen.
shaun
Beiträge: 2401
Registriert: Mo 12. Aug 2013, 20:37

Re: FPGA, klein, für FIFO

Beitrag von shaun »

Was spricht gegen den ST/Link-V2 den es bei Farnell für gefühlte 20 Euro gibt? Kann der dann nur mit ST-ARMs?
Wäre mir glaube ich egal, ich würde mich für die nächsten Projekte bei Gefallen dann eben auf ST festlegen, die Controller sind ja recht preiswert und in vielen Varianten erhältlich.
shaun
Beiträge: 2401
Registriert: Mo 12. Aug 2013, 20:37

Re: FPGA, klein, für FIFO

Beitrag von shaun »

So, hab mir jetzt den Ulink-Clone und das Board aus dem ersten Link bestellt. Schaun wir mal ... :)
Benutzeravatar
Easyrider
Beiträge: 203
Registriert: Do 20. Feb 2014, 21:44

Re: FPGA, klein, für FIFO

Beitrag von Easyrider »

S(c)haun wir mal ...
:-)

Als ich den Titel von Fred gelesen hab dachte ich sofort an xc3s50... ist aber als 100-Beiner wahrscheinlich doch voll overkill
shaun
Beiträge: 2401
Registriert: Mo 12. Aug 2013, 20:37

Re: FPGA, klein, für FIFO

Beitrag von shaun »

Overkill wäre mir egal. Problem ist halt, ein UART den man schwer bekommt und einen FIFO den man quasi gar nicht mehr bekommt (absolute Restmengen bei den Brokern) zu ersetzen. Ob ich da einen 32bit-uC mit 72MHz nehme und 50 Byte Assemblercode in das 64k-Flash lade oder einen 50k-FPGA verwende tut sich da nicht viel ;)
Jannyboy
Beiträge: 1419
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: FPGA, klein, für FIFO

Beitrag von Jannyboy »

Also dass sollte man doch auch nen 8-Bit PIC mit zwei Hardwareschnittellen lösen können.
shaun
Beiträge: 2401
Registriert: Mo 12. Aug 2013, 20:37

Re: FPGA, klein, für FIFO

Beitrag von shaun »

Unterschätz es nicht. Wenn read low wird, MUSS binnen 500ns ein valides Datum anliegen. Dabei muss der UART noch gepollt werden, Schreibzugriffe zum Senden müssen ebenfalls binnen 500ns beantwortet sein und die beiden Zeiger für den FIFO wollen auch behandelt werden. Man darf da nicht zwischen einer mittleren Verarbeitungsdauer und der garantierten Verarbeitszeit vermischen. In einem anderen Projekt habe ich DDR3-RAM mit einem Takt von knapp über 1GHz. Eine Read-Anforderungen für ein einzelnes Byte (oder derer 2 bzw 4, das ist dann egal) kann aber trotzdem 45ns dauern.
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: FPGA, klein, für FIFO

Beitrag von Nicki »

Jannyboy hat geschrieben:Also dass sollte man doch auch nen 8-Bit PIC mit zwei Hardwareschnittellen lösen können.
Schon der fummligen Debuggerei wegen habe zumindest ich keinen Bock mehr auf diesen Kleinkram, man spart auch nicht viel dabei.
Antworten