Forum: FPGA, VHDL & Co. Wie viele Logicelemente braucht mein FPGA?


von Günther (Gast)


Lesenswert?

Hallo.

Ich möchte mich mal mit FPGAs beschäftigen,  bisher habe ich nur mit 
Mikrocontroller gespielt. Ich möchte am FPGA gern eine Ethernet oder USB 
Schnittstelle haben, vielleicht als IP-Core. Auf der anderen Seite soll 
ein DAC sein, der ein 10 MHz breites Basisband ausgeben soll. Dieses 
Basisband möchte ich mit GNU Radio generieren und zum FPGA und dann zum 
DAC übertragen.

Meine Frage ist, wieviel Logicelemente wird so eine Implementierung 
brauchen? Ich habe da keine Erfahrungswerte. Reicht schon ein kleiner 
preiswerter EP2C5?  Ich denke mal ein einfacher IQ Modulator (DDS, zwei 
Multiplikationen - 1*mit 90 Grad Phasenversatz und eine Addition) wird 
nur einen kleinen Bruchteil an Logicelementen verbrauchen, die für eine 
Ethernet-Schnittstelle nötig wären.

Reichen schon die insgesamt 4000-5000 LE eines EP5C2 Demoboards aus? Auf 
diesen Kleinst-FPGAs scheinen ja ganze Retro-Spielconsolen mit 
Videosusgang  rein zu passen. Preislich sollte der ein passender FPGA im 
zweistelligen Bereich liegen.

Gruß Günther

von Larry (Gast)


Lesenswert?

Kauf dir einen fertigen FPGA-SDR.
Nur mit "Spielen" wirst du sonst nie fertig.

Selbst die fertigen sind wegen mangelndem Design oft nur
relativ teure Kruecken.


Sieh dir mal den Red Pitaya und den Pluto an.

Und fuer ein bisschen spielen wirst du viel Geld auf den Tisch
legen mussen. Ethernet, USB und schnelle ADCs/DACs sind bei
zweistellig teuren Boards nicht unbedingt vorgesehen.

von Weltbester FPGA-Pongno (Gast)


Lesenswert?

Mal eben einen IP-Core fürs ETH reinwerfen - schon klar. Und das Ganze 
noch in einen EP2C5. Dazu braucht es aber einen Ultra-ZIP-Core, der das 
VHDL super super klein verpackt.

Günther schrieb:
> Ich denke mal ein einfacher IQ Modulator (DDS, zwei
> Multiplikationen - 1*mit 90 Grad Phasenversatz und eine Addition) wird
> nur einen kleinen Bruchteil an Logicelementen verbrauchen, die für eine
> Ethernet-Schnittstelle nötig wären.

Ja, richtig geraten. Ein ETH-Core braucht nämlich einen PHY und einen 
MAC und je nachdem ob es TCP/IP sein soll auch noch einen STACK. Letzter 
bläht das design auf und wird daher von Leuten, die auf Entwicklungszeit 
achten müssen, in einer Software, z.B. einem embedded Linu System 
realisiert. Ersteres also der PHY am besten per Chip-Hardware. Man kann 
es auch als VPHY machen, aber das tun sich nur Masochisten an. Wie auch 
immer muss der PHY und der MAC auch noch konfiguriert und gesteuert 
werden. Auch das tun Viele gerne in SW. Es braucht also noch wenigstens 
einen NIOS-Prozessor.

Wenn du damit heute anfängst, bist zu Weihnachten 2021/22 fertig.

Beitrag #6065308 wurde von einem Moderator gelöscht.
von +++ (Gast)


Lesenswert?

"Der Laie staunt, der Fachmann wundert sich,
das Ding ist rund, und dreht sich nicht."

von Fitzebutze (Gast)


Lesenswert?

Ein Spartan6-LX9 reicht zumindest für sowas aus. Und wenn man weiss, wo 
man die IP-Cores herkriegt, schafft man's auch in vernünftiger Zeit zu 
implementieren.
Und dafür Linux zu nehmen ist Nonsense, man kriegt einen UDP-Stack 
locker im on-Chip BRAM untergebracht. TCP macht auf dem FPGA für die 
Anwendung wenig Sinn.
Mit einem DMA-fähigen Core kommt man da auch an die Bandbreitenlimiten 
der Phy (und ja, den Phy-Chip braucht man definitiv).

Sollte hier noch eine sinnvolle Diskussion ausser nur Getrolle 
rumkommen, liefere ich auch gern mehr Details.

von Günther (Gast)


Lesenswert?

Fitzebutze schrieb:
> Ein Spartan6-LX9 reicht zumindest für sowas aus. Und wenn man weiss, wo
> man die IP-Cores herkriegt, schafft man's auch in vernünftiger Zeit zu
> implementieren.
> Und dafür Linux zu nehmen ist Nonsense, man kriegt einen UDP-Stack
> locker im on-Chip BRAM untergebracht. TCP macht auf dem FPGA für die
> Anwendung wenig Sinn.
> Mit einem DMA-fähigen Core kommt man da auch an die Bandbreitenlimiten
> der Phy (und ja, den Phy-Chip braucht man definitiv).
>
> Sollte hier noch eine sinnvolle Diskussion ausser nur Getrolle
> rumkommen, liefere ich auch gern mehr Details.

Vielen Dank für die erste "wirkliche" Antwort. Bisher hatte ich die 
Sache auf einem STM32F7 mit Ethernet und externen DAC laufen. Dafür 
brauchte man jetzt keine "übermenschlichen" Kräfte um das zu 
realisieren.

Würde also gern die Geschichte deines Projektes als Motivation für meine 
Versuchen nehmen. Die hirnlosen Trolle können wir ja überlesen und 
ignorieren.

Vielen Dank
Günther

von Fitzebutze (Gast)


Lesenswert?

Für den LX9 sieht die Belegung so aus:

Registers 2960 (25%)
LUT 3970 (69%)
RAMB16 30 (93%)

Zur Architektur: Ich nutze einen in VHDL vorliegenden SoC mit einem 
DMA-Core der 'DMA Autobuffering' unterstützt, also einmalig eine 
verkettete Liste von UDP-Paketheadern aufsetzt und dann den Transfer 
anwirft. Die CPU passt dann nur noch nach Versand die Header an.

Du brauchst natürlich den umgekehrten Weg, da du zum FPGA streamen 
willst. Das ist etwas kniffliger, wenn mehrere Pakettypen auf dem 
Netzwerk herumirren, da brauchst du einen Core mit Paketfilter. Der 
frisst noch ein paar LUTs, aber nicht relevant mehr.

Und du musst dich um die Timing-Synchronisation kümmern, damit keine 
Überläufe stattfinden, denn es gibt dann keinen Handshake (kann man 
natürlich implementieren). Das RTP-Protokoll bietet das alles.

Was Mac/Phy angeht, bist du mit dem Core hier gut bedient:

https://github.com/yol/ethernet_mac

Man kann natürlich auch die Cores vom Hersteller verwenden.
Ich bevorzuge da aus Simulationsgründen eher OpenSource.

von Möchtegernprofi (Gast)


Lesenswert?

Am besten ist wohl wirklich der Tipp vom ersten Antwortenden, oder du 
legst dich ins Zeug und lernst schnell und viel, dann kann dein SDR 
aussehen wie hier:
http://websdr.ewi.utwente.nl:8901/

Das Teil ist nur so fett, weil es viel Logik braucht.

Tja, entweder du legst dich ins Zeug und lernst, oder die Miesepeter in 
diesem Thread haben recht, denn machbar ist es. aber andere können sowas 
nichtvorraussagen, nur, daß du anscheinend noch 0Plan hast, aber das 
lässt sich ändern :D

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.