Forum: FPGA, VHDL & Co. Xilinx FIR Core Problem


von FIR_noob (Gast)


Lesenswert?

Hallo Zusammen,

ich beginne derzeit VHDL zu lernen. Bei meinem aktuellem Projekt 
verwende ich hier den FIR-Core (version 5.0) von Xilinx auf einem 
Spartan3-200.
Das ganze funktioniert auch eigentlich super. Ich möchte nun aber zur 
Laufzeit neue Koeffizienten in den FPGA laden. Leider funktioniert das 
ganze nicht. In der Simulation arbeitet es einwandfrei (behavior). 
Sobald ich es aber auf meinen FPGA lade passiert schlichtweg garnichts.

Ich habe die Anleitung zum FIR-core so verstanden das ich zuerst einen 
Impuls auf den Ladeeingang geben muss und dann wenn der Schreibeingang 
auf High gezogen wird nacheinander bei der steigenden Flanke von Clk die 
Koeffizienten in den FIR geladen werden.

In den Warnings habe ich auch nichts gefunden was das Problem erklären 
könnte.

Hatte jemand mal ein ähnliches Problem und könnte mir Tipps geben wo ich 
nach dem Problem suchen kann?

Viele Grüße und Danke für die Hilfe

von Duke Scarring (Gast)


Lesenswert?

Wieviele Taps hat Dein Filter? Wie groß ist Dein Design? Wie stark st 
Dein FPGA ausgelastet?

Duke

von FIR_noob (Gast)


Lesenswert?

Hallo,
mein Design besteht hauptsächlich aus zwei FIR-Filter 200. Ordnung.
Dazu kommt ein kleines Interface für die Koeffizientenprogrammierung ein 
ein I2S Interface für einen Audiocodec.
Der Synthesizer sagt zur auslastung:
   Number of BUFGMUXs                        2 out of 8      25%
   Number of DCMs                            1 out of 4      25%
   Number of External IOBs                  12 out of 63     19%
      Number of LOCed IOBs                  12 out of 12    100%

   Number of MULT18X18s                      8 out of 12     66%
   Number of RAMB16s                         8 out of 12     66%
   Number of Slices                       1100 out of 1920   57%
      Number of SLICEMs                    176 out of 960    18%

von Empfehler (Gast)


Lesenswert?

Du musst die Koeffizienten alle nach und nach laden. Tust Du das? Das 
Laden muss enabled sein.

von FIR_noob (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mich nach der Abbildung aus dem Datenblatt gerichtet. In meiner 
Simulation sieht es genauso aus. Ist es deiner Ansicht nach notwendig 
den COEF_LD während des gesamten Vorgangs auf High zu halten?

von Duke Scarring (Gast)


Lesenswert?

FIR_noob schrieb:
> Der Synthesizer sagt zur auslastung:
Ok. Die Zahlen sehen gut aus.

FIR_noob schrieb:
> In meiner
> Simulation sieht es genauso aus.
Kannst Du davon evtl. noch ein Bild machen?

> Ist es deiner Ansicht nach notwendig
> den COEF_LD während des gesamten Vorgangs auf High zu halten?
Nein, ich denke nicht. COEF_LD ist so eine Art Reset für den 
Koeffizientenzähler.

Hast Du Chipscope oder einen Logic-Analyzer? Kannst Du Dir damit mal die 
Signale COEF_WE und RFD anschauen?

Duke

von J. S. (engineer) Benutzerseite


Lesenswert?

Wo ist denn diese Beschreibung her? Ich hoffe, Du machst das nicht genau 
so, wie dort im Datenblatt. Dort ist ja eine Art "stotterndes" 
Einschreiben beschrieben. Diese Lückenbildung ist vollkommen unnötig und 
ich sehe auch nicht, wozu man das nutzen können sollte. Normalerweise 
ist das WE einfach während der gesamten Ladephase an.

von Christian R. (supachris)


Lesenswert?

Das stotternde Einschreiben ist je nach Host Interface ja zwangsweise. 
>Bei uns klappt das am S6 problemlos, einmal das LD Pulsen und dann mit 
WE reinschreiben, bis alle drin sind.
Stimmt denn die Reihenfolge? Dazu gibts ja immer eine reload_order.txt 
Datei.

von FIR_noob (Gast)


Lesenswert?

Hallo,
ich wollte mich noch einmal für die Hilfe und Vorschläge bedanken. 
Nachdem ich mir die Evalversion der großen ISE besorgt hatte konnte ich 
nun mit Chipscope pro den Fehler im Kommandomodul lokalisieren. Aus 
irgendeinem Grund  hat dieses im FPGA nicht so gearbeitet wie in der 
Simulation. Daher konnten auch keine korrekten Programmiersignale an den 
FIR-Filter gesendet werden.

Ich habe nun das entsprechende Modul noch einmal neu programmiert und 
nun funktioniert alles.
viele Grüße

von Christian R. (supachris)


Lesenswert?

FIR_noob schrieb:
> Aus
> irgendeinem Grund  hat dieses im FPGA nicht so gearbeitet wie in der
> Simulation.

Da hast du vielleicht eine Sensitivitätslist nicht vollständig, oder mit 
den Initialwerten stimmt was nicht.

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.