Hallo allerseits, auf 'nem µC hab ich es immer sehr genossen, Debugausgaben per UART zu haben und somit Fehler oder Zustände im Programm ausgeben zu lassen. Diese Möglichkeit hätte ich auch gern auf meinem FPGA Board. Doch nun ist die Frage, wie man da am Besten vorgeht. Ich fang mal mit den Anforderungen an: - das Timing soll durch die Ausgaben möglichst nicht verändert werden, die Ausgabe soll also parallel zum Programmfluss laufen, ohne dass der Programmzyklus um einige Takte verlängert wird - Es reicht, die Ausgabe eine Konstante Anzahl von Zeichen (4 oder 8 Byte) zu beschränken - Debugausgaben sollen von verschiedenen Komponenten ausgegeben werden können. - es sollen nur Daten vom FPGA zum PC gesendet werden. Was ich mir dazu überlegt habe: Es gibt ein UART_TX_Modul mit einem 32-64 bit breiten Datenbus und einem Write_enable als Eingang. Der Datenbus speist einen FIFO, aus dem FIFO werden dann die Daten über die Serielle Schnittstelle rausgesendet. Vor dem TX Modul gibt es noch einen UART_DATENBUS_ARBITER, der von jeder komponennte einen Datenbus und ein Write_enable erhält und diese Eingangsbusse dann zyklisch oder bei Bedarf auf den Ausgangsdatenbus zum UART_TX_MODUL sendet. Das ist eine Möglichkeit, das ganze zu implementieren, aber irgendwie kommt es mir doch komplizierter als notwendig vor. Ist es wirklich notwendig, von jeder Komponente einen 64 bit breiten Datenbus wegzuführen? Im Moment geh ich davon aus, dass ich wohl so ca 10 Komponenten haben werde, die Debugausgaben machen können sollen. Wenn jemand Verbesserungsvorschläge hat, immer her damit. Ach ja, hier noch einmal ein paar infos zur Entwicklungsumgebung: es wird ein Altera Stratix II unter Qartus in VHDL programmiert Vielen Dank und viele Grüße, Start-ING
Signal Tap II oder virtual JTAG. Mehr dazu: http://www.altera.com/support/software/debugging/sof-qts-debugging.html Cheers, Roger
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.