mikrocontroller.net

Forum: FPGA, VHDL & Co. Anzeigen und Manipulation von Variablen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Martin O. (ossi-2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Tobias B. (Firma: www.elpra.de) (ttobsen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Donni D. (donnidonis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Wltbester FPGA-Pongo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ... (?) :-)

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.