VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks

Anfang   zurück   weiter   Ende
Autor Beitrag
xGCFx
Stammgast


Beiträge: 33

New PostErstellt: 23.01.06, 01:38     Betreff: Re: flankengesteuertes D-Flip-Flop in VHDL! Notfall!!!!! Antwort mit Zitat  

Braun Oral-B Professional Care 1000 ...
Mhm, ich glaube, ich habe das mit dem init-Signal jetzt verstanden, wie es gemeint ist. Also wenn init ne steigende Flanke hat, soll es setzen, bei ner fallenden rücksetzen. Dann kommt man auf folgenden Code :

library IEEE;
use ieee.std_logic_1164.all;

entity D_FF is
port(clk: in std_logic;
init: in std_logic;
d: in std_logic;
q: out std_logic);
end D_FF;

architecture Verhalten of D_FF is

begin

process(clk, init)
begin
if clk'event and clk = '1' then
q <= d after 10 ns;
end if;
if init'event and init = '1' then
q <= '1' after 10 ns;
end if;
if init'event and init = '0' then
q <= '0' after 10 ns;
end if;
end process;

end Verhalten;

ABER: Vorsicht, sowas lässt sich höchstens simulieren, die Synthese bricht mit Fehlermeldung ab. Aber ich denke, es geht nur um Simulation, wenn ich das richtig verstanden habe.

Folgende Beschreibung hat (fast) das gleiche Verhalten und lässt sich anstandslos in Hardware giessen (Schnittstellenbeschreibung bleibt wie oben):

architecture Verhalten of D_FF is

signal init_alt: std_logic;

begin

process(clk, init, init_alt)
begin
if init = '1' and init_alt = '0' then
q <= '1' after 10 ns;
elsif init = '0' and init_alt = '1' then
q <= '0' after 10 ns;
elsif clk'event and clk = '1' then
q <= d after 10 ns;
init_alt <= init;
end if;
end process;

end Verhalten;

Hier wird das init-Signal immer um 1 Takt verzögert in ein internes Signal init_alt geschrieben. Damit kann man dann auf steigende Flanke (init = 1 & init_alt = 0) und fallende Flanke (init = 0 und init_alt = 1) detektieren.


Grüße


[editiert: 23.01.06, 01:51 von xGCFx]
nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Sortierung ändern:  
Anfang   zurück   weiter   Ende
Seite 668 von 895
Gehe zu:   
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj