Hey ho, da ich zur Zeit vollkommen verwirrt bin und kein Stück weiter komme stell ich jetz einfach hier meine Frage. Ich muss in meine VHDL Projektarbeit zwei Modelle mit einfliessen lassen. Das Modell auf algorithmischer oder abstrakter Ebene und zum zweiten auf der Register Transfer Ebene. Nun kenne ich folgende Def. dazu: Algorithmische Ebene = Beschreibung durch parallel ablaufende Algorithmen, kein Bezug zur späteren Realisierung, keine Takt- u. Reset-Signale Register Transfer Ebene = detailliertes Datenstrukturmodell mit optimiertem Datenfluß und minimiertem Steuerfluß wird dargestellt, zeitlich parallel ablaufende Aktivitäten werden folgerichtig in ein Zeitraster eingeordnet, d. h. Einführung von Takt und Reset-Signalen Soweit so gut. Nun habe ich hier vor mir einen vollständigen Mealy-Automatengraphen auf Blatt Papier und will diesen mittels beider Modelle umsetzen. Ich komme nur immer wieder zu dem Schluss das ich gedanklich auf Register Transfer Ebene arbeite. Wie soll ich den Ablauf des Automaten auf algorithmischer Ebene darstellen. Auf Registertransferebene würde ich folgendermaßen vorgehen: architecture arch of automat is type state_type is (z0, z1, z2, z3); signal state : state_type; begin process (clk) begin if (clk'event and clk = '1') then case state is when z0 => if ... then ... else state <= z1; end if; when z1 => .......... when z2 => .......... when z3 => .......... end case; end if; end process; end arch; Es kann ja aber nicht das Ziel sein einen Mealy Automaten mittels parallelen Anweisungen darzustellen (wie das das algorithmische Modell vorgibt). Hat jemand von euch einen vernünftigen Ansatz für das abstrakte Modell? mfg bastel
Sebastian Schwabe schrieb: > Das Modell auf algorithmischer oder abstrakter Ebene . . > Nun habe ich hier vor mir einen vollständigen > Mealy-Automatengraphen auf Blatt Papier Dann bist du doch fertig, du hast das ganze auf einer abstrakter Ebene Dargestellt. Algorithmisch bezieht sich vermutlich auch auf sowas wie: a = (b + c) * x / 8.9; in RTL mußt du dieses ggf in mehrere Schritte/Teilprobleme zerlegen (add/mult/div, ausreichende registerbreiten, float darstellung etc...) Ansonsten würde ich auch eine Beschreibung in Funktionaler Manier (wie z.B. in C üblich) als 'Algorithmisch' bezeichnen.
Ok. Ich hätte vlt. dazu schreiben sollen das zu beiden Modellen in ModelSim eine Testbench erstellt werden soll. D.h. ich muss diesen Mealy Automaten irgendwie auf zwei arten darstellen. Und das so das ModelSim damit arbeiten kann. Momentan erstelle ich meine Dateien mittels Quartus und teste diese mit ModelSim. Naja nur das abstrakte Modell bereitet mir regelrechte Kopfschmerzen.
Dein Code für die State-Machine ist aber auf Verhaltensabene beschrieben (wenn mich nicht alles täuscht).
Es ist nicht immer leicht, die beiden Modell-Varianten zu trennen. Ich weiss nicht genau, was deine FSM machen soll, aber falls z.B. die FSM dazu dient, aufgrund eines Start-Signals bestimmte Signale mit definierter Verzögerung auszulösen, dann wäre eine algorithmisches Modell z.B. so ähnlich : process wait for Start = '1'; Read_Enanble <= '1' after 100 ns, '0' after 200 ns Output_Enable <= '1' after 50 ns, '0' after 300 ns; end process; Eine Umsetzung dieses Verhaltens auf RTL ist dann deine FSM, der Takt irgendein Bruchteil von 50 ns, und die States machen das Timing.
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.