www.mikrocontroller.net

Forum: FPGA, VHDL & Co. little/big endian beim FPGA?


Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

In Beispielcode aus dem I-net-Fundus fand ich Speicher, der mal als 
little, mal als big endian ausgelesen werden konnte.

Kann mir bitte jemand erklären, welchen Sinn es macht, dieses in einem 
FPGA tun zu wollen?
Für mich war little endian immer an Intel CPUs (bzw. kompatible) 
gekoppelt. Ethernet ist ja big endian basiert, also welche 
Schnittstellen brauchen noch little endian integers?

Ich dachte bislang, dass es in bitorientierten Architekturen Jacke wie 
Hose is...?!?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> dass es in bitorientierten Architekturen Jacke wie Hose is...?!?
Das gilt nur solange du auf deiner eigenen Plattform bleibst. 
Interessant wird das Thema genau dann, wenn du Daten an einen anderen 
Teilnehmer (uC, PC...) weitergibst.

Aber auch im FPGA kann das Thema in abgewandelter Form auftauchen. Was 
passiert z.B. hier:
   signal xxx : std_logic_vector(7 downto 0);
   signal yyy : std_logic_vector(0 to 7);
   :
   xxx <= "11110000";
   yyy <= xxx;
Welchen Wert hat jetzt das Bit 0 von yyyy?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anfänger schrieb:

> Ich dachte bislang, dass es in bitorientierten Architekturen Jacke wie
> Hose is...?!?

Einzig bei wortorientierten Architekturen ist es Jacke wie Hose. Nur 
wenn zwei aufeinander folgende Speicherworte eine Adressdifferenz von 1 
haben, dann ist endgültig Ruhe an der Front. Sobald man Speicherworte 
irgendwie in Bytes oder gar Bits runterbricht geht der Spuk los.

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Welchen Wert hat jetzt das Bit 0 von yyyy?

Gute Alptraumfrage.  Zuem Glueck hast Du ein Schlupfloch gelassen, das 
die Antwort ganz einfach macht.

yyyy ist nicht definiert, Bit 0 also auch nicht.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> Zuem Glueck hast Du ein Schlupfloch gelassen
Oh, Mann, ein Typo  :-/

Also, die eigentliche Frage lautet:
   signal xxx : std_logic_vector(7 downto 0);
   signal yyy : std_logic_vector(0 to 7);
   :
   xxx <= "00000001";
   yyy <= xxx;
   bit7 <= yyy(7);
   bit6 <= yyy(6);
   bit5 <= yyy(5);
   bit4 <= yyy(4);
   bit3 <= yyy(3);
   bit2 <= yyy(2);
   bit1 <= yyy(1);
   bit0 <= yyy(0);
Welchen Wert hat bit0?
Und welchen Wert bit7?

Und hier die für manche überraschende Antwort:
Nach der Zuweisung
   xxx <= "00000001";
hat xxx den Wert "00000001", also xxx(7) = '0' und xxx(0) = '1'
und nach der Zuweisung
   yyy <= xxx;
hat yyy den Wert "00000001"  also yyy(0) = '0' und yyy(7) = '1'

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.