Hallo an alle, ich kämpfe seit gewisse Zeit mit dem IPexpress FIR Generator 4.1 von Lattice. Ich möchte ein FIR filter entwerfen. Die generierte IP Core habe ich simuliert und alles scheint OK zu sein. Die Synthese lief auch komplett durch - keine Fehler bzw. Timing Probleme. Das Problem ist aber, dass der negative Bereich von dem FIR Ausgang verauscht ist. Ich generiere mir im FPGA intern ein Sinuskurve die ich dann über DAC<->ADC überprüfe. Im Anhang findet man den Filter Eingang bzw. Ausgang sowie die Simulationsergebnis. Ich kann mir einfach nicht erklären woher das Rauschen kommt und wieso im positiven Bereich alles wunderbar ist. Deswegen wollte ich fragen ob jemand schon mal mit dem FIR Generator von Lattice gearbeitet hat. FPGA: Lattice XP2-30 ispLever 7.2.00.41.49.08 Ich bedanke mich im voraus und wünsche euch ein schönes Wochenende. Gruss, Valentin
Hallo, u.U. funktioniert die Ansteuerung deines ADC nicht richtig. Hast du schon mal eine Rampe erzeugt und an den ADC gelegt? Zeige mal den Beginn deiner Störung richtig groß. Lässt den Filter überhaupt die Frequenz der Störung zu? Tom
Hi, danke für den Antwort. Wenn die ADC Ansteuerung nicht richtig funktionieren sollte, dann erwarte ich dass auch den Eingangssignal gestört wird, oder? Der FIR wird mit eine Abtastfrequenz von 384 KHz betrieben. Die Grenzfrequenz liegt bei 96 KHz und davor ist auch ein analoge Filter mit dem gleichen Grenzfrequenz aktiv. Damit sollte nichts gefiltert werden. Leider kann ich eine bessere Auflösung erst am Montag posten, da das ganze Aufbau an mein Arbeitsplatz liegt. Trotzdem vielen dank. Gruss, Valentin
Valko S. schrieb: > Wenn die ADC Ansteuerung nicht richtig funktionieren sollte, dann > erwarte ich dass auch den Eingangssignal gestört wird, oder? Natürlich. Ich meinte die Ansteuerung des DAC. Lege mal eine Rampe auf den DAC und sieh dir das analoge Signal an, dass er erzeugt. Welche Frequenz hat die Störung? Das kann man in deinem Bild nicht sehen. Tom
Hi, erstmal vielen Dank für deine Bemühung. Anbei einige Messungen die ich gerade durchgeführt habe. Die Störung ist mit einem Frequenz von etwa 8KHz. Ich kann mir trotzdem nicht erklären wieso die Störung nur im negativen Bereich auftritt. Ich habe auch eine Rampe am DAC von +- max ausgegeben und da konnte ich keine Abweichung sehen. Ich habe auch dir PAR Ergebnisse untersucht, die angegebenen Multiplizierer werden auch instanziert und die Eingänge sind richtig. Ich kann mich auch schlecht vorstellen, dass der IPexpress von Lattice mist macht. Gruss, Valentin
Wenn es Probleme beim PAR gibt, dann wird das Timing nicht erfüllt. Wenn man doch das Design rein lädt, gibt es nicht reproduzierbare Fehler. Das wird es nicht sein. Die 8 kHz Störfrequenz lässt dein Filter durch, sogar auch noch das dreifache. Dann kann das Signal schon am Eingang des Filter gestört sein. Dann musst du die selbst erzeugte Rampe mal auf den Eingang deines Filter legen. Tom
Hi, also Timing Probleme sind nicht vorhanden. Anbei die Rampe mit und ohne Filter. Man sieht, dass die Rampe gestört wird wenn der FIR aktiv ist. Die Störfrequenz ist die gleiche. Es gibt nichts zwischen den FIR und den DAC. Mal sehen, ich suche weiter... Danke trotzdem. Gruss, Valentin
Bei deinem Filterausgang hätte ich jetzt erwartet, dass sich der Sprung von -FS auf +FS verschleift, dass sieht aber nicht so aus. Tom
Hi, da hast du recht, aber im Hardware wird den Ausgang negiert, deswegen ist die Rampe auch invertiert. Gruss, Valentin
Dein Filter hat eine Grenzfrequenz von 96 kHz, da kann er nicht so einfach einen Sprung durchlassen. Da muss etwas schwingen. Tom
Eine Schwingung kann es nicht sein, da die Spikes nicht equidistant sind. Da die Simulation funktioniert muss es ein Hardwareproblem sein. Ist denn die Setup und Hold Time des DAC eingehalten? Übrigens ist ISPLever 7.2 schon etwas alt. Der XP2 wird von Diamond mit der kostenlosen Version unterstützt. Einziger Nachteil für dich: etwas Einarbeitungszeit da Aldec statt Modelsim als Simulator.
Hi, ich denke auch dass es ein Hardwareproblem ist. Die Simulation läuft einwandfrei. Ich hatte auch den Koeffizientensatz in Verdacht, dann würde aber die Simulation schon schief gehen. Dass ispLever 7.2 verwendet wird hängt mit dem Projekt. Die versuchte Portierung hat erstmal nicht geklappt und deswegen wurde als Entwicklungsumgebung die 7.2 beibehalten. Danke an alle für die Hilfe und die Vorschläge. Gruss, Valentin
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.