Forum: FPGA, VHDL & Co. FFT mit Quartus II


von Kostas A. (Gast)


Lesenswert?

Hallo Miteinander,


Wie der Name des Themas schon sagt bräuchte ich hilfe für die 
Realisierung einer FFT in Quartus II, natürlich unter Verwendung der 
MegaCoreFunction.
Der verwendete FPGA ist ein Cyclone III.

Aber erstmal was will ich überhaupt machen.
Ich habe eine Schaltung programmiert welche ein analoges Signal abtastet 
und dann eine bestimme Menge der abgetasten Werte in ein ebenfalls in 
VHDL erstellten RAM einspeichert. So die die A/D Wandlung das 
abspeichern der Werte in den RAM und das ausgeben der werte aus dem RAM 
funktioniert.
Das Ganze soll nun um eine FFT erweitert werden welche dann mit den 
abgespeicherten Werten des RAM gefüttert wird und mir anschließend den 
Frequenzbereich des eingelesenen Singal wiedergeben soll.
Mit dem Userguide von Alterra habe ich mich auch schon 
aussernandergesetzt nur werde ich leider nicht ganz schlau draus.


Erstmal die Parametrierung der FFT:
Die Breite meine Datenwortes ist 16Bit. Und mein RAM ist auf 16384 
Datenwörter(Addressen)begrenzt , ansonsten gibt mir Quartus eine 
Fehlermeldung dass der Speicher nicht auf den FPGA passt.
So Data Precision und Twiddle Precision auf 16Bit ist an sich klar.
So nun zur Transform Lenght. Die FFT fasst ja an sich immer 2 Werte 
zusammen, heisst es also dass ich die Länge nur auf 8K stellen soll oder 
muss es weiterhin 16K bleiben.

Für die Architektur würde ich an sich alles auf Standart lassen und mit 
dem Normalen Streaming arbeiten.

I/O Belegung
Nachdem ich die FFT testweise mal erstellt habe wurde ich von der Anzahl 
der ein und Ausgänge erstmal halb erschlagen. Durch den User Guide von 
Alterra weiss ich nun ca. für was man den jeweiligen Ein - bzw. Ausgang 
braucht.
Meine frage dazu ist muss ich da jetzt noch Zusätzlich eine seperate 
Ansteuerung der FFT (zB. ein Automat) dazuprogrammieren ?
Müssen alle Eingänge überhaupt belegt sein ?
Und ob es an sich auch reichen würde wenn ich mit statischen signalen 
arbeiten würde ?
Oder ein Mix zwischen statischen Signalen und verschiedenen Zuständen?


So und vorerst mal zu meiner letzten Frage.
Im Prinzip verwende ich ja nur reale Werte, in einem anderen Thread habe 
ich gelesen, dass man auch nicht wirklich imaginäre Werte braucht.
Weiss da also jemand bescheid ob ich den Eingang für imaginäre Werte 
einfach offen lassen kann, oder muss da eine Null draufgeben oder was 
anderes, weil bei offenen Eingängen bringt Quartus gerne Fehlermeldungen 
beim kompilieren.
Und inwiefern würde das fehlen des imaginären Eingangs die Ausgabe der 
realen Werte beeinträchtigen, im Blockbild der FFT sind die Ausgänge von 
realen und imaginären Werten auch getrennt.


Ich hoffe man kann mir etwas weiterhelfen weil ich häng da jetzt seit 
ein paar Tagen dran und würde gern weiterkommen.

Vielen Dank schon mal im voraus!

MfG

Kostas A.

von Duke Scarring (Gast)


Lesenswert?

Kostas A. schrieb:
> Meine frage dazu ist muss ich da jetzt noch Zusätzlich eine seperate
> Ansteuerung der FFT (zB. ein Automat) dazuprogrammieren?
Das ist sehr zu empfehlen, da die FFT blockweise arbeitet, aber Dein 
Datenstrom sicher kontinuierlich ist.

> Müssen alle Eingänge überhaupt belegt sein?
Ja. Alle Eingänge müssen belegt sein. Ausgänge kannst Du offen lassen.

> Und ob es an sich auch reichen würde wenn ich mit statischen signalen
> arbeiten würde?
Ja natürlich. Wenn ich einen Eingang nicht verwenden will, lege ich ihn 
auf einen festen Wert (meistens '0').

Duke

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


Lesenswert?

Kostas A. schrieb:
> weil bei offenen Eingängen bringt Quartus gerne Fehlermeldungen
> beim kompilieren.
Das ist gut so. Dir ist bewusst, dass dein Design auf Flipflops aund 
Logikgatter abgebildet wird?
Und eines sollte klar sein: du willst sicher keine offenen Eingänge auf 
deiner Hardware!
Denn die wären extrem empfindlich auf elektrostatische Ladungen und 
würden irgendwei herumfloaten. Und dann beliebig mal 0 oder 1 werden 
(was anderes kennt ein Eingang nämlich nicht.

von Kostas A. (Gast)


Lesenswert?

Hallo,


Danke erstmal für die hilfreichen Antworten.
Nun habe ich schon grob im Kopf wie ich die FFT ansteuern werde
und wie ich nicht gewollte Eingänge "ruhig" Stelle.

Sieht es dann mit dem Eingang für die Imaginären Werte gleich aus? Kann 
ich da auch einfach ne '0' drauf geben ?
Hat es irgendwelche Auswirkungen auf die Transformation meiner realen 
Werte ?

MfG

Kostas A.

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.