Tag zusammen, hätte mal eine Frage zu folgendem Problem, Übersetzung: Wenn jetzt im ABEL-Code steht, zB.: teiler:=teiler+1; teiler.clk=takt; Das übersetzt, in VHDL, sieht so aus: if rising_edge(takt) then teiler<=teiler+1; end if: IST KLAR!! Jetzt gibts aber ABEL-Programme, in denen nur eine Registerzuweisung erfolgt und sonst nichts! Da ist das Problem: Wie könnte man das in VHDL übersetzen, wenn nur steht: teiler.clk=takt; Weiß da nicht weiter, weiß zwar das teiler taktabhängig gemacht wird, nur wie man das in VHDL übersetzen kann, leider nicht! Und noch etwas: (:=) bedeutet in ABEL, speichernd, gibts so etwas auch für VHDL? Gruß Andi
Sie das ganze och mal ein wenig HW näher. Speichernd bedeutet ein Flip-Flop. nicht speichernd kein Flip-Flop. Somit bedeutet: teiler:=teiler+1 wohl was? Richtig ein oder mehrere Flipflops wo der/die Zustände am D-Eingang die/den Zustand von den Q Ausgängen +1 gesetzt wird. Das hast du ja auch schon in dem VHDL Prozess gemacht. Nun zur eigentlichen Frage. teiler.clk=takt Was hat ein Clock eingang? -> Richtig ein Flip-Flop Somit wird der Clockeingang des oder der FlipFlops Teiler mit dem Signal oder Eingang Takt verbunden. Deshalb ist hier auch kein:= sondern nur =. Ist doch eigentlich ganz einfach. Gruß Max
Danke dir, für die kleine Aufklärung! Habe mit ABEL nur wenig gearbeitet und da nicht intensiv und das ist schon solange her, aber jetzt ists klar! Aber, deine Erklärung klingt recht logisch, Danke! Gruß Andi
Habe bei dieser Sache noch immer einen kleinen Hänger. Die Erklärung, von dir, ist toll aber ich verstehe noch immer nicht ganz, wie ich das in VHDL realisiere! Auszug aus Abel-Datei: eins:=ein; eins.clk=takt; Würde das stimmen? if rising_edge(takt) then eins<=ein; end if;
Danke tobi! Aber was, wenn nur ein Ausdruck steht? -- status = 4Bit Register -- eingang = 1Bit Node z.B.: status.clk=eingang: Das habe ich noch nicht ganz verkraftet oder denke ich zu kompliziert?
Muss man im Zusammenhang mit dem restlichen Code sehen. Das Flip Flop wird ja hier nur mit dem Taktsignal verbunden. Ich würde sagen, da fehlt noch was. signal status : std_logic; process (eingang) is begin if rising_egde(eingang) then -- Hier zuweisung eines Signals an status end if; end process; VHDL ist ein bisschen ander als ABEL. Hier muss man sich schon Gedanken machen was die Synthese aus dem VHDL Code generiert. Meinetwegen schreib dir doch ein Modul D-Flip Flop und Verbinde das Modul in deiner port map mit den Signalen. Dann hast du ein ABEL äquivalent.
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.