Forum: FPGA, VHDL & Co. "path delay" minimieren


von stef b. (joe_)


Lesenswert?

hallo!

gibt es vom programmierstil her möglichkeiten die verzögerung (Maximum 
combinational path delay) zu verringern? also was ist bei der 
pprogrammierung in vhdl von möglichst schnellen bausteinen zu beachten?

ich weis ein case ist wesentlich schneller abgearbeitet als viele if!
bringen beispielsweise funktionen und prozeduren einen vorteil?

von Klaus (Gast)


Lesenswert?

Schau dir im RTL-Viewver an, was draus gemacht wird. Je mehr 
Logikelemente da hintereinander sitzen, desto langsamer ist der Pfad.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

stef ba schrieb:
> also was ist bei der
> pprogrammierung in vhdl von möglichst schnellen bausteinen zu beachten?
Man muss sich ein Bild davon machen können, was aus der 
VHDL-Beschreibung werden wird. Da hilft nur Erfahrung und das 
"Herumspielen" mit vielen kleinen Projekten (auf meiner Platte finden 
sich da gut 1000 solcher "Bastelprojekte").

> ich weis ein case ist wesentlich schneller abgearbeitet als viele if!
Woher weißt du das? Ich behaupte: wenn das if-elsif Konstrukt genau das 
selbe macht wie das case-Konstrukt, dann ist da kein eklatanter 
Unterschied.

> bringen beispielsweise funktionen und prozeduren einen vorteil?
Nein, nicht wenn sie den selben Funktionsumfang haben.

von stef b. (joe_)


Lesenswert?

> Woher weißt du das? Ich behaupte: wenn das if-elsif Konstrukt genau das
> selbe macht wie das case-Konstrukt, dann ist da kein eklatanter
> Unterschied.

weil bei mehreren if-else-konstrukten jede einzelne auf wahrheit 
überprüft wird ... bei case wird nur das zutreffende when ausgeführt!

schade ... trotzdem danke für die antwort

von user (Gast)


Lesenswert?

stef ba schrieb:
>> Woher weißt du das? Ich behaupte: wenn das if-elsif Konstrukt genau das
>> selbe macht wie das case-Konstrukt, dann ist da kein eklatanter
>> Unterschied.
>
> weil bei mehreren if-else-konstrukten jede einzelne auf wahrheit
> überprüft wird ... bei case wird nur das zutreffende when ausgeführt!
>
> schade ... trotzdem danke für die antwort

Beides wird in parallele hardware umgesetzt uns somit kann da schon das 
gleiche rauskommen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

stef ba schrieb:
> weil bei mehreren if-else-konstrukten jede einzelne auf wahrheit
> überprüft wird ... bei case wird nur das zutreffende when ausgeführt!
Ja, schön aus dem Buch nachgeplappert, aber nie selber ausprobiert... 
:-/

Es ist nämlich einfach so, dass beim if-elsif unterschiedliche 
Eingänge und Kombinationen abgefragt werden können, und deshalb eine 
geschachtelte Logik entstehen kann.

Als kleines Beispiel mal die 4 unterschiedlichen Beschreibungen dort, 
die ALLE das selbe Ergebnis mit dem selben Ressourcenverbrauch bringen:
http://www.quicknet.se/hdc/hdl/educaton/mux4_1/index.htm
Wenn du also gleiche Funktionalität mit verschiedenen Stilen 
beschreibst, kommt trotzdem annähernd gleich Hardware raus.

Evtl. mit kleinen Ausreissern wie die Inverter dort im zweiten Design:
http://www.lothar-miller.de/s9y/archives/52-Kompakte-Flankenerkennung.html

> schade ...
Um was?

> trotzdem danke für die antwort
Bitte, keine Ursache.

von stef b. (joe_)


Lesenswert?

> Ja, schön aus dem Buch nachgeplappert, aber nie selber ausprobiert...
> :-/

natürlich hab ich das nicht erfunden (denn wenn dann hätte ich ja nicht 
fragen müssen), hab ich auch nie behauptet  ... aber ausprobiert! 
Deshhalb wollte ich ja wissen ob es noch mehr solcher weisheiten gibt :)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

stef ba schrieb:
> natürlich hab ich das nicht erfunden  ... aber ausprobiert!
Und was ist dabei mit welcher Beschreibung und welcher Toolchain 
rausgekommen?

> Deshhalb wollte ich ja wissen ob es noch mehr solcher weisheiten gibt :)
Ja, da wäre z.B. die unnötige generelle Verwendung von when others :
http://www.lothar-miller.de/s9y/archives/30-when-others.html

Dann das "Gespenst der Metastabilität" (Zitat frei nach Peter Alfke):
http://www.lothar-miller.de/s9y/archives/62-Testaufbau-Metastabilitaet.html
Und die wahren Hintergründe:
http://www.lothar-miller.de/s9y/archives/64-State-Machine-mit-asynchronem-Eingang.html

Und natürlich der Glaubenskrieg, wie FSM zu schreiben sind:
http://www.lothar-miller.de/s9y/archives/43-Ein-oder-Zwei-Prozess-Schreibweise-fuer-FSM.html

Und, und, und...
Sieh dich einfach mal hier im Forum um.

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.