Hallo zusammen, ich arbeite mit Quartus Prime Lite und einem Altera Cyclone IV. Mit diesem empfange ich Daten per SPI Schnittstelle. Jetzt würde ich gerne sehen, welche Daten ich empfangen habe und auch Variablen auf dem FPGA während er läuft ändern können. Ich bräuchte also so eine Art "Seriellen Monitor" wie es ihn zum Beispiel in der Arduino IDE gibt. Ich weiß dass es unter Quartus den In System Memory Content Editor gibt. Ich habe mir zwar die Anleitung von Altera durchgelesen, es allerdings nicht geschafft das mit VHDL umsetzen zu können.. Gibt es eine einfachere Möglichkeit, wie ich mir den Inhalt von Variablen während des Ablaufens des Codes anzeigen lassen und diese während des Ablaufens ändern kann? Danke schon einmal.
Ich habe mir für solche Zwecke eine RS232 Schnittstelle im FPGA realisiert mit der ich dem FPGA Kommandos geben kann (z.B. Werte setzen) und womit ich mir Werte ausgeben lassen kann (z.B. durch bestimmte Kommandos). Hat sich bei vielen Designs bewährt.
Thilo schrieb: > Jetzt würde ich gerne sehen, welche Daten ich empfangen habe und auch > Variablen auf dem FPGA während er läuft ändern können. > Ich bräuchte also so eine Art "Seriellen Monitor" wie es ihn zum > Beispiel in der Arduino IDE gibt. Das Stichwort heißt "internal Logic Analyzer". Bei Xilinx heißt das Chipscope, bei Lattice Reveal und bei Altera anscheinend SignalTap. Hab allerdings nie mit Altera gearbeitet, daher hoffe ich, dass diese Info nicht veraltet ist.
Info ist nicht veraltet. Mit dem SignalTap Logic Analyzer kann man sich an beliebige Signale hängen. Ist auch recht einfach umzusetzen, Clock zum Samplen auswählen, Signale zum Analysieren und fertig. Auch gut ist sich was auf 7Segment anzeigen anzugucken. Was für ein Board hast du denn genau?
Thilo schrieb: > Variablen auf dem FPGA während er läuft ändern können. Du willst Software auf dem FPGA machen. Das geht schief... Stell dir vor, wie du die Anzeige bzw. die Manipulation der Werte in Hardware machen könntest und beschreibe diese Hardware mit der HardwareBESCHREIBUNGssprache VHDL. Mit dieser Denkweise kommst du ans Ziel. Und da kommen dann die angesprochenen Wege mit der Segmentanzeige oder der seriellen Schnitte ins Spiel. Aber prinzipiell wird ein HDL Design zu 90% im Simulator getestet. Nur die hartnäckigen letzten 10% der Fehler brauchen dann den (internen oder externen) Logikanalyzer. Als Tipp: gut 80% der Probleme kommen von nicht korrekt synchronisierten Eingangssignalen oder undefinierten Taktdomänenübergängen...
Thilo schrieb: > Mit diesem empfange ich Daten per SPI Schnittstelle. Nö, du simuliertst eine Schaltung, von der Du annimmst, dass sie eine SPI-Schnittstelle beschreibt, weil - im Besten Fall - das Verhalten des Simulators etwas zeigt, was dem Ablauf eines SPI-Slaves entspricht. Ob das ein wirklicher SPI-Slave ist oder wird, ob er vollständig ist und ob er sich auch bauen lässt, steht auf einem anderen Blatt. Wenn Ich da lese, dass man sich Variablen anzeigen lassen muss, werde Ich hellhörig, denn das, was mit Variablen eigentlich gemacht wird, mündet immer direkt in eine Signalreaktion oder Signalerzeugung. Die sollte sichtbar sein. Ich kann mich persönlich nicht erinnern, jemals Variablenwerte vermisst zu haben. In 20 Jahren FPGA-Entwicklung nicht Möglich, dass wir Alten etwas nicht verstanden haben ... (?) :-)
Wltbester FPGA-Pongo schrieb im Beitrag #5435218: > das, was mit Variablen eigentlich gemacht wird, mündet immer direkt in > eine Signalreaktion oder Signalerzeugung. Die sollte sichtbar sein. Du hast die falsche Vorstellung von "Variable". Hier ist es aus der Sicht von Thilo (der bisher uC programmiert hat) einfach ein Speicherplatz, der einen sich ändernden Wert beinhaltet. Das hat rein gar nichts mit VHDL Variablen oder Signalen zu tun. Es ist eine völlig andere Abstraktionsebene. Für Hardwarebeschreibung eine zu abstrakte Abstraktionsebene... ;-)
:
Bearbeitet durch Moderator
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.