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?
Schau dir im RTL-Viewver an, was draus gemacht wird. Je mehr Logikelemente da hintereinander sitzen, desto langsamer ist der Pfad.
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.
> 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
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.
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.
> 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 :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.