Hallo, ich möchte Daten von einem 65MHz Core zu einem 100MHz Core übertragen. Der laut der Beschreibung vom System Generator, soll das mit Registern und FIFOs gehen. Jedoch bekomme ich grundsätzlich kein Signal an der Empfängerseite. Im Anhang findet Ihr die mdl Files von einem Test. Zur Erklärung der Sender läuft mit 65MHz und der Empfänger mit 100MHz. Ich exportiere jedes dieser Testfiles zur EDK als Eigenen-Core, welche ich dann dort mit dem jeweiligen Takt takte. Muss man eventuell in der EDK noch etwas wegen den "shared Memorys" einstellen ? Oder hat jemand sonst eine Idee wo mein Fehler liegt. Vielen Dank im Voraus amin
Hallo nochmal, ich habe inzwischen noch ein paar Tests gemacht. Zum einen habe ich versucht ob die Übertragung überhaupt funktioniert, wenn sender und empfänger beide auf 100MHz sind. Was leider auch nicht funktionierte. Jedoch funktioniert die Übertragung wenn sender un Empänger auf dem selben Core sind. Zudem habe ich das Full Signal ausgelsen, was auf Senderseite nach kurzer Zeit kommt, aber auf Empfängerseite bleibt der FIFO leer. Sprich wie vermutet, liesst der FIFO auf der Empängerseite den Shared Memory nicht aus. Hat jemand eine Idee woran das liegen könnte ?
Also meine Vermutung ist, dass man in der EDK die Shared Memory Namen der verschiedenen Cores verküpfen muss. Jedoch finde ich grundsätzlich nur Informationen dazu, wie man so ein Shared Memory in C für den MicroBlaze auslesen kann. Kann mir da keiner weiterhelfen, wie ich so einen SharedMemory in der EDK oder SystemGenerator von verschiedenen Cores verknüfen kann ?
Hallo noch mal, ich habe gerade etwas im FAQ von Xilinx gefunden: http://www.xilinx.com/support/answers/24290.htm Und ich beürchte nun fast, das man den die Fifos/Register gar nicht über mehr als einen Core nutzen kann. Eventuell muss ich wohl doch auf dieses Multiple Subsystem umsteigen.
falls jemand später mal das gleiche Problem haben sollte hier mal der aktuelle Stand der Dinge: Bei einer Anfrage an XILINX habe ich den weg über den MicroBlaze als Lösungsansatz bekommen [vgl. sysgen_user.pdf s. 155]. Jedoch kommt das für meinen Fall nicht in Frage, da der MicroBlaze das ganze zu sehr ausbremsen würde. Da ich nunmal kontinuierlich mit 65MHz 32Bit schreiben will und diese dann mit 100MHz auslesen möchte. Da würde der MicroBlaze wohl nicht mitkommen, es sei denn man würde ihn extrem hoch takten.
Hallo, hab mir jetzt einen Woraround für das Problem gebastelt. Eventuell etwas überdimensoniert, aber eine andere sinnvolle Lösung habe ich nicht gesehen. Und zwar habe ich jetzt die Ausgänge des 65MHz Cores direkt mit den Eingängen des 100MHz Cores verbunden. Damit es jedoch nicht zur Fehlabtastung kommt, geht das ganze im 100MHz in ein Dual Port RAM. Am Oszi sieht das ganze genau so aus wie´s sein soll und scheint daher als LÖsung ganz brauchbar zu sein. Wer Lust hat (oder das gleiche Problem hat) kann sich meine mdl Workaround-Testfiles anschauen (siehe Anhang).
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.