Hallo, hat schon einmal jemand den Cast/Convert bzw reinterpret im Systemgenerator von Xilinx mit Matlab Simulink? Ich habe folgendes problem: Ich möchte einen einfachen Mittelwertfilter bauen, der mir aus 32 Werten den Mittelwert bestimmt und anschließend das Ergebnis ausgibt. Die Werte sind von einer DDS und gehen von >-1 bis < +1. Das Ergebnis soll wieder in diesem Wertebereich liegen. Ich habe dies, wie im Bild 1 zu sehen ist, mit einem Reinterpret und einem Convert gemacht. In der Simulation (Bild 2) ist dies auch Wunderbar. Wenn ich jetzt mit meiner Software jeweils vor und nach dem Filter die Daten auslese, sehen die Daten vor dem Filter sehr gut aus, danach allerdings sehr komisch, als würde sich der Bitvektor häufig überschlagen. (Bild 3 und 4). Hat jemand eine Ahnung was das sein könnte? Ich bin irgendwie ratlos.
kannst du mal erklären wie deine Schaltung den Mittelwert berechnet. Wenn ich ehrlich bin ich seh da keine Mittelwertberechnung. Also was ich da sehe ist eine Art von Trigger aus Counter und Konstante, der Trigger steuert nen Mux der als Eingang den Ausgang vom Addierer und anscheinend deinen Momentanwert des Sinus hat. Obwohl ich das nicht genau sagen,kann weil ich den Takt von dem Register davor nicht kenne. Dann geht der Ausgang vom Mux auf nen Addierer/Sub, wobei noch unklar ist was wann am Ausgang vom Mux liegt. Tja und was macht der Addierer ... den Ausgang vom Mux und den Dateneingang verrechnen, aber wie mit/ohne Takt.. Danach haste noch nen Register was du durch den Trigger taktest, aber was da drin stehen soll keine Ahnung. Erklär mal bitte wie da ein Mittelwert ala Summe i = 0 bis i = n von Ai / n = Mittelwert .. rauskommen soll.
Der Addierer addiert immer den Eingangswert auf den Ausgangswert des Addierers, dies tut er 31x. Beim 32. mal, schaltet das Register durch, so dass das ergebniss aus 32 Werten ausgegeben wird. Gleichzeitig schaltet der Multiplexer den 2. Eingang des Addierers um auf den Z^-1 Wert des Eingangs, So wird er quasi resetet. Da 32 ein 2^n Wert ist, will ich die Divison durch Shiften des Kommas erreichen. Dies soll durch das Reinterpret geschehen.
Ok ist jetzt etwas klarer, d.h. wenn ich das richtig verstanden hab sind alle Register, Mux Adder von einem Takt gespeist?? und so bekommst du es hin das der Adder genau 32 Additionen vor dem Reset durchführt?? Das ist sicher kein asychroner Addierer der rückgekoppelt ist und darum frei läuft??? Zu dem Reinterpret-Modul kann ich dir nix sagen das kenn ich net. Sry
Alles läuft mit dem gleichen Takt. Der Addierer hat eine Latncy von einem Takt. Laut Simulation scheint ja auch alles in Ordnung zu sein.
Warum machst Du denn diesen Convert? Eine einfache Reinterpretation müsste doch reichen (?)
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.