Forum: FPGA, VHDL & Co. Microblaze Peripherie debuggen


von Steffen Hausinger (Gast)


Lesenswert?

Hallo zusammen,

ich habe einen PCore an meinen Microblaze angebunden, den ich nun per 
ChipScope debuggen möchte. Dafür habe ich mir über den CoreInserter eine 
ChipScope-Instanz angelegt und möchte nun darin die passenden Signale 
auswählen. Leider findet er aber kein einziges Signal des PCores.

Ich habe versucht, im Source des PCores über das Attribut "keep" die 
Signale zu halten - für den Fall, dass sie wegoptimiert wurden. Ohne 
Erfolg. Was muss ich tun, um mit ChipScope die Signale des PCores messen 
zu können?

Zur Info: Es handelt sich um eine plb-zu-wishbone bridge (plbv46_2_wb), 
die in der Verhaltensanalyse einwandfrei funktioniert. Nach der Synthese 
allerdings nicht mehr. Ich verwende Xilinx ISE 14.4.

Kann mir jemand von Euch weiterhelfen?

Grüße
Steffen

von Marius W. (mw1987)


Lesenswert?

Du kannst auch den Chipscope ILA über den Coregen erzeugen und manuell 
einbinden, wenn das mit dem Core Inserter nicht klappt.

Gruß
Marius

von Steffen Hausinger (Gast)


Lesenswert?

Das werde ich ausprobieren. Aber ich glaube inzwischen, das Problem 
liegt im Zusammenspiel zwischen ISE und EDK.

Alle Softcore Anteile werden ja über die EDK erstellt. Wenn ich jetzt 
ISE öffne, dann erscheinen sie im Projekt einfach als ein Block, nämlich 
"microblaze". Es gibt keine Unter-Instanzen.

Ich vermute, dass das bereits Teil des Problems ist. Alles, was 
innerhalb des microblaze passiert, "sieht" ISE nicht. Möglicherweise, 
weil dieser Teil getrennt gebaut und dann als Black Box eingebunden 
wird.

Das heißt umgekehrt, wenn ich mir in ISE eine ChipScope Instanz 
erstelle, sehe ich sie im Microblaze (EDK) nicht. Ich müsste sie also im 
EDK erzeugen. Diese Möglichkeit gibt es auch, aber nur vorkonfektioniert 
zur Analyse der PLB-Schnittstelle. Damit kann ich nicht in meinen PCore 
schauen.

Ich werds, wie gesagt, heute Abend mal ausprobieren. Aber haben Du oder 
jemand anderes vielleicht noch eine weitere Idee?

von pks (Gast)


Lesenswert?

Der Marius hat eigentlich schon eine Lösung präsentiert. Ich mach das 
sogar immer so, weil ich den Core-Inserter hasse :-)

von Steffen Hausinger (Gast)


Lesenswert?

Okay, das heißt zusammengefasst:

1. In ISE per CoreGen einen ChipScope ICON und ILA generieren.
2. In EDK den PCore die HDL-Source öffnen.
3. Dort die generierten ICON und ILA instanziieren.
4. ICON mit ILA verbinden sowie ILA mit den zu messenden Signalen.

Und die Zusammenarbeit zwischen ISE und EDK funktioniert? Also wenn ich 
in ISE ChipScope generiere, kann ich in EDK darauf zugreifen?

von Marius W. (mw1987)


Lesenswert?

Sollte kein Problem sein. Die Netzlisten werden eh erst später beim 
ngdbuild zusammengefasst.

Gruß
Marius

von Steffen Hausinger (Gast)


Lesenswert?

Gerade ausprobiert, aber leider, leider...

Ich hab genau die Schritte durchgeführt, die ich oben geschrieben habe. 
Das Projekt baut sauber durch. Aber wenn ich ChipScope starte, findet er 
den ILA (den ICON?) nicht. Das heißt, ChipScope öffnet normal, aber 
findet keine Signale ("DataPorts").

Ich habe den Eindruck, dass er meine Änderungen im PCore nicht erkennt. 
Abgespeichert habe ich die HDL Source natürlich. Aber muss ich da sonst 
noch irgendwas manuell aktualisieren/regenerieren o.ä.?!

von Steffen Hausinger (Gast)


Lesenswert?

Aha, er erkennt die Änderung in der Source des PCore tatsächlich nicht 
(hatte probehalber absichtlich einen Syntax-Fehler eingebaut). Erst wenn 
man "Clean All Generated Files" ausführt, klappt es.

Besten Dank an Euch Zwei!! Jetzt komm ich wieder weiter!

Grüße
Steffen

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.