Hallo, ich würde mir gerne die Signale IN meiner Custom-IP per Chipscope anschauen (EDK 14.2). Ich verwende Chipscope erst seit kurzer Zeit (bisher habe immer alles auf Modulebene simuliert --> also mit VHDL Testbench und/oder mit High-Levelmodultests im Microblaze, meistens auf der Console...). Mit der BFM-Simulation stehe ich (noch) etwas auf Kriegsfuß :-) Das Debuggen der AUSGÄNGE meiner Custom-IP funktioniert mit ChipScope bereits sehr gut. Ich kann auch Trigger auf die Schreib- und Lesevorgänge des AXI-Busses setzen. So weiß ich, wann der Microblaze welche Daten an bestimmte Adressen schreibt, oder liest. Nun hätte ich halt gerne überprüft, was mit den geschriebenen Daten in der Custom-IP passiert. Bzw. was dort dann ausgelöst wird. Ist das mit ChipScope möglich? Viele Grüße, Andreas
Klar geht das mit Chipscope. Einfach mit dem Core-Generator ein Chipscope ILA und ICON erzeugen und passend in deinem Modul verdrahten. Gruß Marius
Marius Wensing schrieb: > Klar geht das mit Chipscope. Einfach mit dem Core-Generator ein > Chipscope ILA und ICON erzeugen und passend in deinem Modul verdrahten. > > Gruß > Marius Hallo Marius, vielen Dank für Deine Antwort. Leider habe ich wahrscheinlich den Workflow noch nicht so ganz verstanden. Ich schreibe mal, was ich gemacht habe: 1. Custom Board mit EDK erstellt 2. Für dieses Custom Board eine Custom IP erstellt (z.B. eine blinkende LED, deren Ausgabefrequenz einstellbar ist) 3. Chipscope_icon zum EDK-Projekt hinzugefügt 4. Im EDK Menü "Debug-->Debug Configuration" einen AXI-Monitor und einen ILA-Monitor konfiguriert --> nun kann ich (wie gesagt) den AXI-Bus und auch die I/Os der Custom-IP mit dem Chipscope debuggen Nun möchte ich aber IN die Custom-IP schauen. Ich habe aber (trotz ausführlicher Suche) nicht gefunden, wo/wie ich die Chipscope ILA und ICON für meine Custom-IP erzeugen kann. Muss ich den Chipscope Core inserter nehmen? Für die Custom-IP habe ich mir das ISE-Projekt vom EDK mit erzeugen lassen. Hier habe ich auch mal ein Chipscopeprojekt mit eingefügt. Aber wie passt das dann mit dem EDK zusammen. Ich bin etwas ratlos :-((( Gibt es vielleicht ein Tutorial konkret für das EDK und einer Custom-IP? Ich habe keines gefunden. Die beziehen sich entweder auf PlanAhead (was ich nicht verwende). Oder Auf ein ISE-Projekt (ich habe aber ein EDK-Projekt). Oder es wird nur der z.B. AXI-Bus im EDK-Projekt gedebuggt - so weit bin ich aber auch schon... Es wäre schön, wenn jemand einen kleinen Tip für mich hätte. Danke. Viele Grüße, Andreas
Du kannst in ISE einfach zwei IP-Cores generieren, einmal ILA und einmal ICON. Die bindest du ganz normal dann über Instanziierung IN dein Custum-Core ein, also direkt im Quelltext. Und dann alles erzeugen lassen.
Hallo Christian, danke für Deine Antwort! Ich stehe etwas auf dem Schlauch - oder der Leitung...: Ich habe mit dem Core Generator im ISE den ICON und den ILA Core erstellt und in meiner Custon IP eingebunden. Dort führt "Check Syntax" zu keinem Fehler. Gut. Wenn ich im EDK nun ein "generate Bitstream" ausführe, dann kommt folgende Fehlermeldung:
1 | ERROR:NgdBuild:604 - logical block |
2 | 'jt_timer_0/jt_timer_0/USER_LOGIC_I/mein_jt_modul_timer/i_icon' with type |
3 | 'Chipscope_ICON' could not be resolved. A pin name misspelling can cause |
4 | this, a missing edif or ngc file, case mismatch between the block name and |
5 | the edif or ngc file name, or the misspelling of a type name. Symbol |
6 | 'Chipscope_ICON' is not supported in target 'spartan6'. |
7 | ERROR:NgdBuild:604 - logical block |
8 | 'jt_timer_0/jt_timer_0/USER_LOGIC_I/mein_jt_modul_timer/i_Chipscope_ILA' with |
9 | type 'Chipscope_ILA' could not be resolved. A pin name misspelling can cause |
10 | this, a missing edif or ngc file, case mismatch between the block name and |
11 | the edif or ngc file name, or the misspelling of a type name. Symbol |
12 | 'Chipscope_ILA' is not supported in target 'spartan6'. |
Wie es aussieht muss ich wohl die zu den zwei Chipscope-Cores gehörenden Dateien im PAO-File einbinden UND anschließend die IP neu ins EDK importieren. Ist das wirklich der richtige/einfachste Weg? --> Ich habe viel auf Xilinx zum Thema gelesen. Dort wird (soweit ich das verstehe) beworben, dass man ja "nur" den Chipscope in seine IP einbinden muss - und wenn man Ihn nicht braucht, dann muss man ihn "nur" auskommentieren. Wenn man dies aber an zig Stellen machen muss UND vielleicht sogar noch explizit die IP neu importieren muss, damit das EDK auch ja mitbekommt, dass sich was geändert hat, dann hat Xilinx hier mal wieder NICHT an die Userfreundlichkeit bzw. sinnvolle Nutzbarkeit gedacht. Oder wo ist mein Fehler? Viele Grüße, Andreas
Naja, du musst natürlich im PAO File die ngc Files angeben, also die vor-sythetisierten netzlisten. Die werden ja als Black Box eingebunden. Alternativ gibts ja immer (zumindest bei ISE Projekten) den Weg über den ChipScope Inserter. Ob das bei EDK Projekten auch geht, weiß ich nicht. Bei ISE Projekten geht es ja wirklich mit nur einer Zeile auskommentieren, bzw. über einen Generic noch einfacher. Ich benutze eigentlich immer die direkte Instanziierung, da hab ich mehr Kontrolle. Und ChipScope ist zum Debuggen eigentlich ja eh der allerletzte Notnagel, das sollte man keinesfalls wie einen Debugger im µC ansehen, denn jedes Signal an ChipScope verändert das gesamte Design, schließlich ist ChipScope keine dedizierte Hardware.
Hallo Christian, vielen Dank für Deine Antwort. Ich habe es nun endlich (nach über zwei Tagen!) hinbekommen. Man muss die ngc-Dateien allerdings in die BBD-Datei eintragen. Ich habe dann aber die tollsten Fehlermeldungen von EDK bekommen. Lösung: Alle bereits generierten Dateien löschen (siehe http://forums.xilinx.com/t5/Implementation/NgdBuild-76-translate-error/td-p/118160 ) In meinem Fall musste ich sogar den ICON und ILA Core komplett löschen und wieder neu anlegen. Warum dies so ist, wissen nur die Xilinx-Götter... Manchmal machen mich die Xilinx-Jungs einfach wahnsinnig grrrrr Du hast natürlich Recht: Chipscope soll nicht die standard-Debugmethode meiner Wahl werden. Ich denke aber, dass es schon bequemer ist, den Chipscope-Core zu integrieren, als einen Logic-Analyser mit z.B. 20 Leitungen an der Elektronik anzuschließen. IMMER wird das natürlich nicht vermeidbar sein... Viele Grüße, Andreas
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.