Forum: FPGA, VHDL & Co. FPGA Selektion


von Julian (Gast)


Lesenswert?

Guten Abend,

Ich hoffe sehr mit diesem Anliegen hier richtig zu sein. Ich bin auf der 
Suche nach einem FPGA - vermutlich eher einer FPGA-Wollmilchsau, das ist 
mir bewusst, jedoch probiere ich es trotzdem mal hier im Forum. Ich habe 
mich bereits bei einigen FPGA Herstellern umgesehen,jedoch ist die 
auswahl fast noch ein wenig schlimmer als bei OpAmp's, wenn man nicht 
genau weiss was man möchte. Zusätzlich habe ich keine Kentnisse von 
FPGA's und vorallem nicht von der Menge an (benötigten Logikzellen).

Meine Anforderung ist es, schnelle Pulse zu erkennen und mit einem 
relativ schnellen ADC (bereich 200MSPS) zu digitalisieren. Per 
Comparator wird eine Schwelle detektiert, dann soll losgesamplet werden 
bis der Comparator wieder abfällt.

Optimalerweise soll im FPGA gleich die Spitze ermittelt werden. Da ich 
herausgelesen habe (korrigiert mich sollte ich falsch liegen) das FPGA 
eher ungeeignet für "Anspruchslose Task sowie Kommunikation" sind, 
möchte ich das Ergebniss an einen MCU weitergeben. Der MCU bedient 
einige Nebenaufgaben wie Temperaturmessung (I2C), Schnittstellen 
(USB,RS232), DAC sowie GPIO. Hier möchte ich auf STM32 setzen, da ich 
diese bereits kenne.

Der FPGA hat also folgende Anforderungen zu erfüllen:

- Genügende Taktrate für Auswertung eines 200MSPS ADC inkl. genügend 
Reserve
- Möglichst kleine, angemessene Bauform (kein 144-pin IC für ~20pins)
- Optimalerweise QFP/QFN
- Gutes Preis-Leistungs-Verhältniss
- Einfach Programmierung bzw. verständliche Software welche 
"Anfängerertauglich ist)
- Einfache Versorgung

Das mag natürlich nach einer Wollmilchsau klingen, jedoch sind das in 
etwa meine Anforderungen.

Ich habe bereits mal ins blaue heraus bei Digikey nach den mir bekannten 
möglichen Anforderungen gesucht (Günstig & kleine Bauform) und bin auf 
folgende Typen gestossen:

Lattice ICE5LP1L-SG48TR  2.75$ 1.1k Logikzellen, 64k RAM QFN32
Efinix T8Q144C3  4.45$ 7.3k Logikzellen, 128k RAM QFP-144
XILINX XC3S50AQG100c  8.3$, 1.5k Logikzellen, 184k RAM, LQFP100

Jedoch sagt mir das leider alles nicht wirklich viel.

Aus diesem Grunde wollte ich hier bei euch mal nachfragen, ob mir jemand 
entsprechende Teile empfelen kann oder zumindest eine Schnellauskunft 
geben kann, wieviele Logikzellen etc überhaupt benötigt werden.

Viele Grüsse
Julian

: Verschoben durch Admin
von Forist (Gast)


Lesenswert?

Julian schrieb:
> Ich hoffe sehr mit diesem Anliegen hier richtig zu sein.

Eher nicht. Fragen zu FPGAs wirst du besser im Unterforum
https://www.mikrocontroller.net/forum/fpga-vhdl-cpld los
Dort sind Fragen zur Anwendung von CPLD & FPGA, VHDL, Verilog usw. 
deutlich besser aufgehoben. Für Mikrocontrollern oder digitaler 
Elektronik ist das Thema nicht so wirklich passend.

von Baendiger (Gast)


Lesenswert?

Julian schrieb:
> Ich habe bereits mal ins blaue heraus bei Digikey nach den mir bekannten
> möglichen Anforderungen gesucht (Günstig & kleine Bauform) und bin auf
> folgende Typen gestossen:

Suchst du einen einzelnen FPGA oder ein Eval-Board?

Privat oder kommerziell? Da ist für die Auswahl der Tools wichtig.

Die Anzahl der Logikzellen wird vermutlich gar nicht der wichtige Punkte 
sein sondern die Menge an integriertem RAM (oder gleich externen 
einsetzen)

von Julian (Gast)


Lesenswert?

Grundsätzlich suche ich einen FPGA, wenn aber ein EVAL-Board für den 
selben bzw. ähnlichen FPGA verfügbar ist, wäre das ein toller Bonus.

Der Einsatz ist nur privat/open source gedacht.

Bezüglich Ram mache ich mir die folgenden Gedanken:

200MSPS / 14bit ADC  ergibt 14bit per 5ns.
Da die Pulse max. 12us lang sind, bedeutet das maximum 2,4k Samples, 
also rund 34k an Daten pro Event, welche nach dem "versenden" direkt 
wieder gelöscht werden dürfen.

von Gustl B. (-gb-)


Lesenswert?

Julian schrieb:
> Meine Anforderung ist es, schnelle Pulse zu erkennen und mit einem
> relativ schnellen ADC (bereich 200MSPS) zu digitalisieren. Per
> Comparator wird eine Schwelle detektiert, dann soll losgesamplet werden
> bis der Comparator wieder abfällt.

Was sind das denn für Impulse?

Und je nach ADC geht das vielleicht nicht. Schnelle ADCs haben oft eine 
Pipeline, sprich wenn du jetzt anfängst zu sampeln, dann bekommst du 
erst mehrere Takte später dein erstes valides Ergebnis. Ich würde also 
dauerhaft sampeln.
Aber es gibt auch mehrere andere Möglichkeiten wie eine 
Peakhalteschaltung. Die gehaltene Spannung kannst du dann gemütlich 
abtasten. Das geht aber nur wenn die Impulse nicht zu schnell 
ancheinander reinkommen.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Dein FPGA haengt massgeblich vom ADC Typ ab und welche IO du dann genau 
brauchst. Die 200 MSPS sind mit modernen und gaengigen Typen kein 
Problem. Bei einem 14 bit ADC brauchst du aber schonmal eine 
Schnittstelle die 2.8 Gbps schafft. Das ist dann schonmal ne Hausnummer 
und da grenzt sich dann langsam auch die Auswahl ein. ;-)

Hast du schon einen ADC in Aussicht oder kennst zumindest die 
Schnittstelle zum ADC?

von Christoph Z. (christophz)


Lesenswert?

Julian schrieb:
> Das mag natürlich nach einer Wollmilchsau klingen, jedoch sind das in
> etwa meine Anforderungen.

Das ist weit weg von der Wollmilchsau :-) Du suchst nach einem sehr 
minimalistischen FPGA (was OK ist für deine Anforderungen) und deine 
Auswahl bestätigt das ja auch z. B. im Preis.

Julian schrieb:
> Lattice ICE5LP1L-SG48TR  2.75$ 1.1k Logikzellen, 64k RAM QFN32
> Efinix T8Q144C3  4.45$ 7.3k Logikzellen, 128k RAM QFP-144
> XILINX XC3S50AQG100c  8.3$, 1.5k Logikzellen, 184k RAM, LQFP100

Bestätigt was ich so aus dem Kopf heraus gewusst hätte. Ausser Lattice 
macht keiner der bekannteren Hersteller FPGAs in solch kleinen Gehäusen. 
Efinix ist ziemlich neu, würde mich mal interessieren ob hier im Forum 
schon jemand Erfahrung damit hat. Lattice liefert ordentliche Arbeit ab, 
gibt hier im Forum auch diverse Anwender.

Den Xilinx XC3s50 kannst du wieder streichen, der ist schon soo alt, das 
ich den sicher nicht in ein neues Design einplanen würde.

Julian schrieb:
> einige Nebenaufgaben wie Temperaturmessung (I2C), Schnittstellen
> (USB,RS232), DAC sowie GPIO. Hier möchte ich auf STM32 setzen, da ich
> diese bereits kenne.

Macht Sinn. Jeder Baustein für das, was er gut kann und bestehendes 
Wissen nutzen.
Zusätzlich: Gerade bei Open Hardware Projekten besteht so wenigstens 
Chance, dass andere Personen bei der Mikrocontroller Software mithelfen. 
Open Source FPGA Projekte bestehen sehr oft nur aus dem Maintainer.

Tobias B. schrieb:
> Dein FPGA haengt massgeblich vom ADC Typ ab und welche IO du dann genau
> brauchst.

Aber wie Tobias schreibt, das ADC Interface ist entscheidend. Je nach 
dem wirst du so auch ADC und FPGA zusammen auswählen, damit das 
Gesamtkonzept am Günstigsten ist.

Julian schrieb:
> Schnellauskunft
> geben kann, wieviele Logikzellen etc überhaupt benötigt werden.

Da sich der übliche Entwicklungsablauf von Embedded Software und FPGAs 
doch recht stark unterscheidet, tendieren FPGA Entwickler dazu, ihre 
kritischen Funktionen zuerst zu Entwickeln und in der Simulation zu 
debuggen. Danach wird mit den entsprechenden FPGA Herstellertools 
geschaut, wie viele Ressourcen gebraucht werden und ob die geforderte 
Taktfrequenz erreicht werden kann und so die passende FPGA Familie 
ausgewählt (oder nochmals die Architektur überarbeitet).

von Fitzebutze (Gast)


Lesenswert?

Julian schrieb:
> Optimalerweise soll im FPGA gleich die Spitze ermittelt werden. Da ich
> herausgelesen habe (korrigiert mich sollte ich falsch liegen) das FPGA
> eher ungeeignet für "Anspruchslose Task sowie Kommunikation" sind,
> möchte ich das Ergebniss an einen MCU weitergeben.

Wieso ungeeignet? Du kannst dem Design noch einen uC-Softcore spendieren 
und den auf deine Zwecke (Peripherie) so anpassen, dass er alle 'doofen' 
Aufgaben macht, wie Daten aufs Ethernet rausschaufeln, etc.
Etwas, wo man mit reiner HDL eine Menge Zeit verbrät und Fehler sucht.
Dazu kommt immer der Knackpunkt: Wie kriege ich die Daten weg. Ethernet 
und DMA ist schneller entwickelt als eine puffernde Lösung mit 
Memorycontroller.
Wenn du schnelle ADC-Sachen machen willst, fällt der ICE40 aber eher 
raus. Würde eher MachXO2 oder Spartan6-LX9 nehmen (den kriegt man auch 
schon ab 2 USD beim Chinesen). Oder gleich ein Community-Brettle mit 
ECP5 und yosys, wo du nicht dauernd nerviges Gehampel mit Lizenzcodes 
hast, die auslaufen.

von Julian (Gast)


Lesenswert?

Bei den Signalen handelt es sich sich um Pulsen von einem 
Sikion-Fotovervielfacher (SiPM), ähnlich einer Standart 
Fotovervielfacherröhre nur sind diese etwas kürzer.

Es gibt ein fertiges Modul der Firma Amptek (DP5) Dort wird auch per 
FPGA gesampelt und dann an einen 8051 MCU weitergegeben. Auf dem Board 
ist ein grosser IC zu sehen, was stark nach eine FPGA aussieht, 
natürlich ist der undokumentiert. Der Analogteil ist jedoch sehr gut 
Dokumentiert (Schema verfügbar) und kann daher nachgebaut werden.


Ich hätte jetz nach einem Paralellen ADC gesucht, da dieser ja am 
wenigsten "Datenstrom" produziert. Bei einem Seriellen muss die 
Taktfrequenz ja aum ein weites höhers ein als der ADC.

Beispielsweise der AD9262 wäre für mich jetz interessant (16bit, 
160MSPS)

von Gustl B. (gustl_b)


Lesenswert?

Bei dem ADC ist es aber nix mit einmal Abtasten nach einem Trigger. Das 
dauert viele Takte bis aus dem ein brauchbares Ergebnis rauskommt. Da 
würde ich die ganze Zeit abtasten.
Das parallele Interface ist gut, da kann man auch alte langsamere FPGAs 
anschließen und braucht keine SerDes.
Der sollte klar sein, dass der ADC nur eine geringe Analogbandbreite 
hat. Jedenfalls nicht die halbe Abtastrate. Sonst würde ich den Ad9650 
empfehlen. Aber der kostet viel und fällt unter die Exportkontrolle bei 
den schnelleren Modellen.

: Bearbeitet durch User
von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Julian schrieb:
> Ich hätte jetz nach einem Paralellen ADC gesucht, da dieser ja am
> wenigsten "Datenstrom" produziert. Bei einem Seriellen muss die
> Taktfrequenz ja aum ein weites höhers ein als der ADC.
>
> Beispielsweise der AD9262 wäre für mich jetz interessant (16bit,
> 160MSPS)

Damit bleibt deine riesige Auswahl, riesig. Das bekommt so ziemlich 
jeder FPGA ohne grosse Muehe hin. Und das Konzpt mit dem separaten STM32 
ist wie Christoph schon schrieb, voellig in Ordnung.

Jetzt haengt es noch davon ab was mit den ADC Daten passieren soll. 
Werden die RAW irgendwo ausgegeben (z.B. zum STM32 gesendet) oder musst 
du die sogar vorher irgendwie bearbeiten weil der STM32 nicht genug 
Rechenpower hat? Was waere hier die Schnittstelle zwischen FPGA und 
STM32?

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.