Hallo zusammen, in meinem Betrieb setzen wir seit einer Weile einen bunten Mischmasch an FPGA-Familien ein und während wir früher mit Altera's Signaltap immer viel Spass hatten - ist das bei Lattice' RevealInserter und auch schon bei Vivado's ILA Cores manchmal schwierig. Während man zumeist (Altera/Efinix) das Design so lassen kann wie es ist und sich einfach die Signale raussucht, die man gerne sehen möchte muss man bei Xilinx mit Signal-Parametern ("Mark as debug") versuchen, das Signal in seiner ursprünglichen Form zu retten (sodass die Optimierung es nicht frisst) und somit fummelt man im Code rum... ==== Die Idee, die wir hatten Könnte man nicht mit einem DualPorted-RAM und ein klein bisschen Logik einen eigenen SignalTap basteln, der die angeschlossenen Signale im Kreis herum schreibt, auf eins der eintreffenden Signale triggert und dann den RAM-Inhalt auf der UART-Schnittstelle raus schiebt...? Auf der PC-Seite könnte man die Daten mit einem halbwegs einfach gestrickten Programm empfangen und im einfachsten Fall .vcd-Dateien erstellen, die man in gtk-Wave anschaut ... oder man visualisiert sie on-the-fly :-) ==== Gibt's das nicht schon - oder noch was besseres? Zumeist ist man (bei einer halbwegs ordentlichen Idee) nicht der erste, dem so etwas einfällt - somit würde ich mich freuen, wenn man mir ein bisschen Kontra geben könnte: * weil's das schon gibt * weil's Blödsinn ist (evtl. hab ich's auch nicht sinnvoll genug erklärt) * weil's bessere Alternativen gibt, mit der Problematik umzugehen
:
Bearbeitet durch User
Roman D. schrieb: > Könnte man nicht mit einem DualPorted-RAM und ein klein bisschen Logik > einen eigenen SignalTap basteln, der die angeschlossenen Signale im > Kreis herum schreibt, auf eins der eintreffenden Signale triggert und > dann den RAM-Inhalt auf der UART-Schnittstelle raus schiebt...? Ja, kann man, Stichwort 'trace buffer'. Den lese ich allerdings typischerweise per JTAG aus (je nach Architektur unter argem Vorbehalt), oder streame alles gleich per UDP an einen Socket, mit socat kann man dann in der Tat recht elegant die Wellenformen in gtkwave reinstreamen, oder man nutzt die sigrok-Tools. Fuer so hartes Debugging ueber Distanz wird dafuer auch gerne ein FPGA-Kaertchen als JTAG-Adapter eingesetzt. UART bindet halt viele Resourcen, ist langsam und braucht on top noch ein Protokoll. Bisher ist mir auch noch keine bessere Loesung ueber den Weg gelaufen. Das Problem ist in der Tat, dass die Hersteller-Tools a la Reveal bei komplexeren Designs mehr Probleme schaffen als loesen, besonders, wenn man einen CPU-Debug-TAP auf Basis der eingebauten Primitiven nutzt. Da man ein Debug-Tool moeglichst nicht auch noch debuggen will, ist man fuer seinen Zweck wohl am besten beraten, eine in der eigenen Testumgebung verifizierbare Loesung zu bauen.
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.