Forum: FPGA, VHDL & Co. Mittelwert berechnen in VHDL


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.
von Smile N. (smile_n)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo! Ich habe hier eine schöne Aufgabe, die ich in VHDL machen soll. 
Kann mir jemand einen Tipp geben, wie ich dabei vorgehen soll. Ich weiß 
zwar wie ein Mittelwert berechnet wird, jedoch nicht genau wie es in 
VHDL gemacht wird.

Der IP-Core FILT_IP stellt einen Hardware Beschleuniger dar, der über 
ein AXI4-Lite Slave-Interface Daten einer Größe von insgesamt 256 Bit 
vom Prozessor bekommt, über die der Mittelwert (bezogen auf jeweils 8 
Bit) berechnet und anschließend per Slave-Register zurück gelesen werden 
soll. Der Hardware Beschleuniger arbeitet vollsynchron auf die steigende 
Taktflanke des Clock-Signals getriggert und macht Gebrauch von einem 
low-active Reset Signal, um das Ergebnis zurückzusetzen. 
Vervollständigen Sie das auf der nächsten Seite gegebene VHDL-Gerüst 
gemäß der beschriebenen Funktionalität.

: Bearbeitet durch User
von Achim M. (minifloat)


Bewertung
-1 lesenswert
nicht lesenswert
Wo ist die nächste Seite?
Das Gerüst steht doch bereits da?
mfg mf

von Burkhard K. (buks)


Bewertung
-1 lesenswert
nicht lesenswert
Smile N. schrieb:
> Ich weiß
> zwar wie ein Mittelwert berechnet wird, jedoch nicht genau wie es in
> VHDL gemacht wird.

Die Frage ist erstmal gar nicht, wie Du das in VHDL machst, sondern 
welche Hardware-Blöcke für den Algorithmus gebraucht werden. Das sind 
ganz offenbar:

  * eine Stufe zur Addition
  * eine Div-by-8 Stufe
  * ein Reset

Den Ablauf der einzelnen Schritte steuert man mittels Finite State 
Machine (FSM). Bei der Addition ist noch die benötigte Wortbreite zu 
beachten.

Dann hängt die zu wählende Implementierung noch von der max. zulässigen 
Ausführungsdauer (Anzahl Zyklen) ab. 8 Werte aufaddieren kann man immer 
in 7 aufeinanderfolgenden Einzelschritten - oder deutlich schneller 
mittels "Pipelining". (Wieviel Zeit Dir zur Verfügung steht, sagt Deine 
Anforderung nicht.)

von Weltbester FPGA-Pongo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich frage mich, wo hier die "Beschleunigung" sein soll. Eine derartige 
"IP" per AXI-Slave anzubinden, ist wohl das umständlichste was man 
sich ausdenken kann, um einlaufende Daten zu filtern. Das ist eine 
Massive Bremse. Und so, wie das oben rechts vorgestellt wird, geht das 
schon mal gar nicht. Es würde ein Block benötigt, der linksseitig ein 
AXI-lite-IF hat.

von foobar (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Typische bescheuerte Schulaufgabe.  Die erste Seite ist nichtssagender 
Blah damit es beeindruckend aussieht.  Die zweite Seite mit dem Gerüst, 
was er wirklich machen soll und irgendwo im Text versteckt noch ein paar 
Details.  Ich vermute, er soll einfach 32 Bytes parallel entgegennehmen 
und den Mittelwert davon zurückliefern.  Fertig.  Ob man sowas je 
braucht ...

von Duke Scarring (Gast)


Bewertung
1 lesenswert
nicht lesenswert
foobar schrieb:
> Ob man sowas je
> braucht ...
Ja, um zu zeigen, wie man mit der CPU interagiert.

Das ist wie die Geschichte, wo aus half adder und full addern ein 
größerer Addierer gebaut wird: steht in jedem Digitallehrbuch, aber wird 
in der Realität so nie gebraucht.

Duke

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.

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