Latch mit CPLD

Gast #389153
Lesenswert?
• ▲
▼
Hallo! Ich versuche zur Zeit mir ein Latch mit dem XC9572XL von Xilinx
aufzubauen. Den Quelltext habe ich hier definiert. Fällt jemanden dabei
irgendwas auf, was nicht in Ordnung ist?
Das Ale soll bei der negativen Flanke, die Anweisung ausführen!
Danke schon mal vorab!

AB       : out    STD_LOGIC_VECTOR (7 downto 0)
DB   : inout  STD_LOGIC_VECTOR (7 downto 0)
ALE    : in      STD_LOGIC;

process (ALE)
begin
if (ALE'event and ALE ='0') then
AB(7 downto 0) <= DB(7 downto 0);
end if;
end process;
#389156
Lesenswert?
• ▲
▼
Wenn bei Dir ein "Latch" ein D-FF ist, ist Deine
Beschreibung ok.

Unter einem "Latch" versteht man aber manchmal
(normalerweise?) auch ein zustandsgesteuertes FF (nicht
ein flankengesteuertes FF wie oben bschrieben). Diese Art
der Latche ist nicht immer einfach zu behandeln, man
versucht sie zu vermeiden wenn möglich.

Wie gesagt, als Register, das aus (flankengesteuerten)
FFs (oder D-FFs) besteht, ist Deine Beschreibung ok.

Gruss,

Alex
Gast #389157
Lesenswert?
• ▲
▼
Ok! Danke für die Bestätigung!
Allerdings habe ich trotzdem noch Probleme.
Die Eingangssignale kommen am Ausgang ( Adress- und Datenbus ) leider
nicht heraus.
Falls ich die PORTS einmal 1:1 durchschalte ist das System wiederrum in
Ordnung.
Hast Du vielleicht noch ne Idee, woran das liegen könnte?
Gast #389159
Lesenswert?
• ▲
▼
wenn du
1
process (ALE)              
2
begin                 
3
  if (ALE'event and ALE ='0') then        
4
    AB(7 downto 0) <= DB(7 downto 0);        
5
  end if;
6
end process;

schreibst, dann bekommst du ein flankengesteuertes DFF.
Dieses legt den Eingang nur bei jede fallende Flanke an den Ausgang.

...wenn du aber
1
process (ALE)              
2
begin                 
3
  if ALE ='0' then        
4
    AB(7 downto 0) <= DB(7 downto 0);        
5
  end if;
6
end process;

schreibst, dann bekommst du ein zustandsgesteuertes Latch.
Dieses legt den Eingang an den Ausgang, wenn ALE = 0 ist, das heißt, es
wirkt transparent, weil jede Veränderung vom Eingang bei ALE=0 direkt
auf den Ausgang wirkt.

Nun kommt es drauf an, welches Verhalten von dir gewünscht ist. Latches
versucht man (eigentlich) zu vermeiden, weil sie oft nicht dem
entsprechen was man will und weil sie nicht wirklich einem synchronen
Entwurfsstil entsprechen.
Gast #389160
Lesenswert?
• ▲
▼
@T.M
Danke für Deinen Beitrag. Ich möchte gerne ein flankengesteuertes DFF
haben. Genau so habe ich es auch programmiert!
Die Eingangssignale liegen 100% an.
Nur der Ausgang streikt. Habe auch schon die Timming Diagramme
kontrolliert...alles im grünen Bereich !

Hat die Sofware von Xilinx eventuell nen Problem ?
Habe sonst keine Ahnung wie ich mein Problem in den Griff bekommen
sollte.....und bin für jede Hilfe dankbar !

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren