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


von Lukas .. (luki93)


Angehängte Dateien:

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. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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)


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)


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)


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. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
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
Noch kein Account? Hier anmelden.