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
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.
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.
"Der Laie staunt, der Fachmann wundert sich, das Ding ist rund, und dreht sich nicht."
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.