Hallo, kann man innerhalb einer CASE ANWEISUNG eine IF ANWEISUNG verwenden, auch mit größeren Konstrukten als im Beispiel erläutert? Müsste ja eigentlich funktionieren, da nach dem Testausdruck eine sequentielle Anweisung folgt ... und if ... ist doch eine, oder? Kann es irgend welche Nachteiel bringen oder gibt es bei solch einem Konstrukt etwas zu beachten? Bin sehr dankbar für Hinweise! Gruß Sebastian
Was spricht dagegen, es zu kompilieren? Wenn es keine Fehlermeldung gibt, scheint es wohl zu klappen. In C geht es auf jeden Fall.
Klar geht das, in jeder Statemachine, die je nach Eingangssignalen in andere Zustände wechselt wird es ja genauso gemacht. Einfach mal probieren
<Was spricht dagegen, es zu kompilieren? Wenn es keine Fehlermeldung <gibt, scheint es wohl zu klappen. In C geht es auf jeden Fall. Rat am Rande: nie eine Programmiersprache wie C oder PASCAL heranziehen, wenn man eine Hardwarebeschreibungssprache verstehen will! Oder gar Hardware so beschreiben, wie man programmieren würde. Für Simulationsmodelle ist das vielleicht noch OK, aber fast nie für synthetisierbaren Code. Beispiel Case, in C wird jeder Casezweig getestet, in VHDL nach dem ersten Test der true werden die folgenden Case zweige nicht abgearbeitet. Deshalb gibt es in C auch das break am ende eines casezweiges. Case in vhdl entspricht dagegen einen if then,elsif then,.. end if. Konstrukt. Die Verschachtelung von If in Case ist korrekt und wird für state machiens genutzt. Man kann auch Case in einem Casezweig schachteln.
Wenn dein Codeschnipsel in einem Process geht, klappt das mit dem Case. Ich habe noch 2 Varianten drangehangen, die erste ist nur nach üblichen Gepflogenheiten unformatiert, die zweite nutzt aus, das bei Signalen die letzte Zuweisung übernohmen wird. Da meistens '0' zugeweisen wird, habe ich das als default vor das case geschrieben. Dann muss nur angegeben werden wann ein anderer Wert, z.B '1' gesetzt werden soll. Je nach synthesetool kann die zweite Variante die kleinere Sein, da nur Set und Reset von FF genutzt wird, in der Ürsprunglichen wird das Tool wohl CE und Logik an Dateneingang nutzen, was in der Regel größer ist.
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.