Forum: FPGA, VHDL & Co. Maximale Clockfrequenz bzw. Sinusfrequenz mit Spartan 3 ?


von Hans-Werner (Gast)


Lesenswert?

Ich möchte auf dem Spartan 3 AN Starterkit eine Frequenzmodulation 
realisieren. Anfangs soll erstmal ein Sinus ausgegeben werden. Hierbei 
bin ich auf die Schlagworte Direct Digital Synthesis und Phased Locked 
Loop gestossen. Bei DDS geht es darum den Sinus mittels Tabellenwerten 
zu erzeugen. Wie ich dies mit PLL mache ist mir noch nicht klar.
Der Core Generator des ISE Webpacks bietet sowohl einen DDS Core als 
auch Cores zur Frequenzverdopplung bzw. Frequenzvervielfachung (DCM). 
Sollte ich den DDS Core verwenden oder liebe eigene Tabellen für den 
Sinus verwenden ?
Mit welcher maximaler Frequenz kann ich einen Sinus auf dem Board 
erzeugen ? Verwende ich eigene Tabellen benötigen ich einen Takt 
möglichst hoher Frequenz. Wie weit kann ich das Clock-Signal 
"hochtreiben" ? Ich habe irgendwo etwas von 300 MHz gelesen die mit dem 
Clock Signal von 50 MHz möglich sind. Stellt sich noch die Frage nach 
dem Eingangsssignal. Ein Audiosignal digitalisieren und auf dem Board 
speichern oder ein Mikrofon anschliessen ? Wie kriege ich ein Mikro an 
den AD-Wandler angeschlossen ?

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


Lesenswert?

> Ich habe irgendwo etwas von 300 MHz gelesen...
> ... Eingangsssignal. Ein Audiosignal digitalisieren ...
Was willst du denn eigentlich machen?
Du wirft mit grenzwertigen 300MHz um dich und willst zu Schluss ein 
Audiosingal verarbeiten... Das passt nicht zusammen :-/
(15kHz zu 300MHz, das sind 4 Zehnerpotenzen Unterschied)

> Frequenzmodulation realisieren. ... erstmal ein Sinus ausgegeben werden.
Welche Frequenz soll das endgültige Signal haben? Was soll moduliert 
werden?

Wenn du einen Sinus in einer Tabelle haben willst, dann initialisiere 
die Tabelle (bzw. das Array) mit einem Sinus. Fertig.

von Hans-Werner (Gast)


Lesenswert?

Vielen Dank für die mathematische Nachhilfe.
Ich wußte bisher nicht was eine Zehnerpotenz ist.
Muss ich mein FH-Diplom doch wegschmeissen.
Es werden bei einer Modulation zwei unterschiedliche Signale verwendet.
Diese müssen nicht zusammen passen wie Stecker und Buchse und dürfen 
sogar unterschiedliche Frequenzen haben. Von 15 KHz habe ich nichts 
geschrieben.
> Was soll moduliert werden ?
Es soll ein Sinusträger mit einem Audiosignal moduliert werden. Als 
Modulationsverfahren soll Frequenzmodulation verwendet werden.
Habe ich mich so schwer verständlich ausgedrückt ?
> Welche Frequenz soll das endgültige Signal haben ?
Im Prinzip irrelevant. Ich wollte nur wissen welches die maximal 
realisierbare (Mit dem Board) Frequenz ist. Zum einen als Takt, zum 
anderen als Sinussignal. Mir steht ein Vector-Signal-Generator und ein 
Spektrum Analysator zur Verfügung. Oszilloskop auch.
> Wenn du einen Sinus in einer Tabelle haben willst, dann initialisiere
die Tabelle (bzw. das Array) mit einem Sinus. Fertig.
Hierzu gibt es verschiedene Ansätze. Manche arbeiten mit einer Tabelle, 
andere mit mehreren Tabellen. Hierzu zwei Arbeiten:
1. A Direct Digital Frequency Synthesizer Prototype for Space 
Applications
   Richard C.Meitzler, Wesley P.Millard
   Johns Hopkins University Applied Physics Laboratory
2. A Novel DDS Architecture using nonlinear ROM Adressing with improved 
Compression Ratio and Quantization Noise
   Malinky Ghosh, Lakshmi S.J. Chimakurthy
   Auburn University, Auburn, AL, USA

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


Lesenswert?

> Vielen Dank für die mathematische Nachhilfe.
De nada.

>> Ein Audiosignal digitalisieren ...
> Von 15 KHz habe ich nichts geschrieben.
Hmm... In welchem Bereich spielen sich deine Audiofrequenzen ab?

> Habe ich mich so schwer verständlich ausgedrückt ?
Kann sein...
Lies deinen OP mal durch und sag mir wie ich hätte erkennen sollen, dass 
das Audiosignal aufmoduliert wird?

> Ich wollte nur wissen welches die maximal realisierbare Frequenz ist.
> Zum einen als Takt, ...
Aus dem Datenblatt: der DCM-Ausgang kann bis 350 MHz (Speedgrade -5). 
Das BRAM kann maximal 320 MHz (Speedgrade -5). Um diese Frequenzen zu 
erreichen und bis zum Ausgangspin des FPGAs durchzuhalten, wirst du aber 
einiges an Feintuning am Design vornehmen müssen. Realistisch schätze 
ich 250 MHz als Taktfrequenz-Obergrenze ein.

>... zum anderen als Sinussignal.
Wie tief willst du modulieren (Frequenzhub)?
Wie viele Bits deines Audio-Signals sollen übertragen werden?

BTW:
> Muss ich mein FH-Diplom doch wegschmeissen.
> Wie kriege ich ein Mikro an den AD-Wandler angeschlossen ?
Was hast du studiert?

von Kurt Georg (Gast)


Lesenswert?

@Hans-Werner

Um einen Sinus auszugeben, brauchst du einen D/A-Wandler. Du hast sowas 
auf deinem Board drauf. Versuche, aus dem Datenblatt des D/A-Wandlers 
die maximale Samplerate herauszubekommen. Brauchbar ist dein D/A-Wandler 
dann für Frequenzen unterhalb der halben Samplerate. Am Ende der 
Signalkette ist aber ein (analoges) Tiefpassfilter vonnöten, damit dein 
Sinus nicht mehr so eckig aussieht, wie er aus dem D/A-Wandler 
herauskommt.

Dann brauchst du innerhalb des FPGAs etwas, das dir deinen Sinus 
erzeugt. Dazu kannst du einen DDS-Core verwenden, den du nur noch 
parametrisieren musst. Des weiteren ist noch ein Modul nötig, das die 
Ausgangswerte des DDS-Cores regelmäßig (Samplerate) an den D/A-Wandler 
verschickt.

Das limitierende Element ist der D/A-Wandler auf deinem Board. Falls du 
einen schnelleren (parallelen) D/A-Wandler anschliesst, besteht die 
Limitierung in der maximalelen Taktfrequenz, die das Synthesetool aus 
deiner zu synthetisierenden Schaltung (Signalverarbeitungskette) 
berechnet. Diese Frequenz entspräche dann wieder der Samplerate, wobei 
die Nutzfrequenz maximal halb so hoch sein kann, besser weniger. Ich 
habe so ohne besondere Maßnahmen in verschiedenen Versuchen 100 ... 150 
MHz erreicht, was für mich ausreichte.

von Kurt Georg (Gast)


Lesenswert?

Nachtrag: Die 100 ... 150 MHz bezogen sich auf die Samplerate.

von Hans-Werner (Gast)


Lesenswert?

Danke !

250 MHz als maximale Taktfrequenz ist schon eine interessante Aussage.
Habe mal Technische Informatik an der FH studiert.
FPGAs waren damals noch nicht Teil des Studiums bzw. vor mehr als 20 
Jahren auch noch nicht so verbreitet.

von Hans-Werner (Gast)


Lesenswert?

Hallo Georg,

das alte Nyquist Kriterium ist bekannt.
Soweit ist alles klar.
Habe es bisher jedoch versäumt mir die DA-Wandler anzuschauen.
Mal schauen wie schnell die sind.

von Kurt Georg (Gast)


Lesenswert?

Ich schätze mal, dass die maximale Samplerate des D/A-Wandlers so bei 1 
MHz ... 10 MHz liegen wird. Das erscheint mir bei der seriellen 
Ansteuerung naheliegend. Wenn du es schaffst, den Wandler mit einem 
Sinus anzusteuern, wirst du einiges dazugelernt haben.

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.