Hallo Leute, ich habe wiedermal ein Problem bei dem ich nicht weiterkomme. Vorab sei gesagt das ich keinen Code posten kann (der ist zum einen zu groß, zum zweiten unkommentiert und zum dritten hätte wahrscheinlich eh keiner Zeit und Lust sich durch 30 Dateien zu klicken). Ich bin (wiedermal oder immernoch) dabei mir meinen Audio-Prozessor zu basteln. Ich bin mittlerweile in der Lage Audio-Signale einzulesen und auszugeben (I2S) und zu verarbeiten. Dazu habe ich mir eine 32x32-Bit MAC Einheit programmiert welche ihre ablauf-informationen aus einem Block-Ram nimmt. Das ganze wird über ein SPI-Interface angesteuert. Der SPI-Datenstrom wird über einen Dispatcher (Mux) an mehrere Bausteine gegeben (der Audio-Prozessor ist einer dieser Bausteine). Es funktioniert alles hervorragend. Mein Problem ist nun folgendes : Sobald ich änderungen am Audio-prozessor mache (z.b. das ich die Ablaufsteuerung, sprich das BlockRAM, anschließe um es von einem uC aus zu programmieren) läuft nichts mehr. Verwende ich beispielsweise einen einfachen DCM als Takt-teiler, läuft der Kern zwar noch, gibt aber nur müll raus (das Audio-Signal verzerrt). Weiterhin habe ich folgende kuriosität : Unter ISE 6.2 lässt sich alles synthetisieren und implementieren. Unter ISE 8.2 schafft der das nicht mehr. Es bleiben immer 2 "leitungen" übrig die nicht geroutet werden können. Ich vermute das ich mir irgendwo in meinem Design was "einfange", bzw. irgendwo einen kleinen Fehler gemacht habe (ich denke dabei noch nichtmal an den audio-prozessor sondern eher an den SPI-Dispatcher) der das ganze System Amok laufen lässt. Das Amok laufen geht sogar soweit das Teile die nichts mit dem Prozessor zu tun haben (z.b. noch eine komponente um die 7-Segement Anzeige des Spartan 3 Boards am laufen zu bringen) sich gar nicht mehr ansprechen lassen. Mir ist klar das mir keiner sagen kann : "Schau mal in Zeile 33 der Datei blablabla ...", aber woran kann es liegen das ein Design welches läuft, durch eine Änderung, die zudem auch NICHT die Synchronität des Designs verletzt, sich auf das gesamte System auswirkt ? Ich bin mir ziemlich sicher das ALLE signale die ich verwende mehrfach eingeclockt sind (3 FF pro signal, und ich habe nur 4 Signale die eingeclockt werden müssen : SPI_CLK, SPI_CS, I2S_BCLK, I2S_LRCLK, die restlichen Signale übernehme ich wenn meine externen Clocks stabil sind). Vielleicht werde ich doch noch den Code posten (zumal es für das Audio-Projekt hier ist, welches ja immer noch "brach" liegt), aber ich möchte ehrlich gesagt erstmal weiterkommen. Gruß Rene
Da bleibt einen nur, Designs teilweise abzuschalten, um die Rückwirkungen zu testen. In einem gesunden Design sollte sowieso jedes größere Modul einen Testport haben, mit dem man es konfigurieren kann, um zum Beispiel Standardaten auszugeben oder eine Standardprodzeudrur / Ablauf zu fahren. Es müsste sich dann eigenlich rasch finden lassen, ob irgendwo was an falsch übernommenen Takten, fehl laufenden oder angehaltenen state machines bzw logischen Ablaufproblemen exisitert.
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.