Forum: FPGA, VHDL & Co. Vhdl Anfänger Code Analyse


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 Lukas .. (luki93)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo :)

Bin eigentlich totaler Neuanfänger in VHDL.
Im Studium haben wir nun unsere erste Übung bekommen. Ich habe soweit 
die Aufgaben erledigt und kontrolliert. Es funktioniert alles wie es 
soll.

Nun bin ich mir leider etwas unsicher ob ich meine Aufgabe auch 
"richtig" in VHDL umgesetzt habe.

Es wäre toll wenn jemand ganz kurz über die Files fliegt und mir 
eventuelle Anfängerfehler berichtet.

Im Bsp1 File : HW1Bsp1
Muss eine Funktion BinToInt umgesetzt werden.
Also ein 8 Bit Vector sollte in eine Integer Zahl mit bzw. ohne 
Vorzeichen (2er Komplement) gewandelt werden.

Im Bsp2 File : HW1Bsp2
Mussten die Bitshiftfunktionen aus der Standart lib nachgebaut werden.

Im Bsp3 File : HW1Bsp3
Geht es um einen 4 Bit Vector zu 7 Segment Decoder.
Eine Funktion sollte mittels Array die Bitcodierung für das 7 Segment 
ausgeben und die zweite Mittels Switch case.


Wäre sehr dankbar wenn mir jemand ein kurzes Feedback geben kann!!
Danke !!

Mfg
Luki

: Bearbeitet durch User
von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Lukas .. schrieb:
> Wäre sehr dankbar wenn mir jemand ein kurzes Feedback geben kann!!
Ja, was soll man da sagen, der Code tut ja offenbar soweit. Der ganze 
VHDL-Konstrukt ist halt wieder akademisch aufgebläht. Aber da kann man 
nichts machen, die Aufgaben fordern und fördern das ja.

Ein "normaler" Mensch würde z.B. für den 7-Segmentwandler einfach ein 
RAM definieren, das einen 7-Bit std_logic_vector zurückliefert, in dem 
die Bits einfach abcdefg angeordnet sind. Dann kann man den ganzen Laden 
mit einem Blick auf Korrektheit kontrollieren.

Und das ganze in Funktionen zu verpacken, das ist auch so ein etwas 
ungeläufiger Ansatz. Da sind eigentlich Komponenten der richtige 
Ansatz...

von Lukas .. (luki93)


Bewertung
0 lesenswert
nicht lesenswert
Danke für dein Feedback :)

Ja das dachte ich mir dass dies etwas akademisch orientiert ist. Ich 
denke aber dass es hier noch darum geht mit der Syntax und der Umgebung 
klar zu kommen.

Mal sehen wie es weiter geht in der Zukunft. ;-)

Danke !

von ~Mercedes~ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Lothar meinte:

> Ein "normaler" Mensch würde z.B. für den 7-Segmentwandler einfach ein
> RAM definieren, das einen 7-Bit std_logic_vector zurückliefert, in dem
> die Bits einfach abcdefg angeordnet sind. Dann kann man den ganzen Laden
> mit einem Blick auf Korrektheit kontrollieren.

Lothar, weißt Du zufällig, wieviel Gatter
Lucas Design gegenüber Deinem verbraucht?
Oh, wenn ich Laura's Sorgen sehe und mal hier
reinschnüffele, wird mir schlecht, wie
umständlich vhdl ist.

Ich dachte eigendlich ein kleiner Eprom und 7 Treiber
reichen für ne Anzeige! ;-O

mfg

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
~Mercedes~ schrieb:
> wieviel Gatter
> Lucas Design gegenüber Deinem verbraucht?
Vermutlich wird sich das nicht wesentlich unterscheiden.
Die Größe (und 'Umständlichkeit') der Beschreibung korrelieren nicht 
zwangsweise mit der resultierenden Gatter- bzw. Designgröße.

> Oh, wenn ich Laura's Sorgen sehe und mal hier
> reinschnüffele, wird mir schlecht, wie
> umständlich vhdl ist.
Das täuscht. Erfahrungsgemäß dauert es eine Weile, bis man der 
Geschwäzigkeit von VHDL etwas abgewinnen kann.

Duke

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
~Mercedes~ schrieb:
> Lothar, weißt Du zufällig, wieviel Gatter Lucas Design gegenüber Deinem
> verbraucht?
Wenn der Synthesizer schlau ist, dann braucht es letztlich gleich viel 
Ressourcen, denn die Funktion ist ja die selbe.

> Oh, wenn ich Laura's Sorgen sehe und mal hier reinschnüffele, wird mir
> schlecht, wie umständlich vhdl ist.
Das übliche Lamento...

VHDL ist nicht per se "umständlich". Es ist nur dann umständlich, wenn 
man umständliche Datentypen verwendet. Im Prinzip ist es nur 
"sorgfältig". Es gibt kaum implizite Vorgänge (Convertierungen, 
Kürzung von Vektoren, Verlängern von Vektoren, Anpassen von 
Zahlenbereichen...), alles steht direkt im Quellcode.

Das Problem mit beiden Sprachen ist, dass die Allermeisten vorher 
"programmiert" haben und dank der ähnlichen Syntaxelemente (for, if 
then, ...) meinen, weiterhin "programmieren" zu können.

~Mercedes~ schrieb:
> Ich dachte eigendlich ein kleiner Eprom und 7 Treiber reichen für ne
> Anzeige! ;-O
Mag sein, aber das hier ist eine überaus akademische Aufgabe. Das 
Unschöne daran ist, dass die Lernenden meinen, sie müssten das danach 
immer so unheimlich umständlich und generisch aufsetzen. In der Praxis 
ist das aber meist nicht so, dort gibt es meist sehr spezielle Probleme, 
die dann auch spezielle Lösungen erfodern. Da tut man sich mit Generika 
dann schwer...

Dort findest du, wie man diese "Umwandlung" von Integer in 7 Segmente im 
echten Leben schreibt:
http://www.lothar-miller.de/s9y/archives/88-VHDL-vs.-Verilog-am-Beispiel-einer-Stoppuhr.html
Es ist nur eine einzige Codezeile, die mit ein paar Zeilenumbrüchen 
lesbar dargestellt wird...

: 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]
  • [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.