hi!
Ich bin absoluter anfaenger und lese mich grad in das gebiet der
microcontroller ein...
zum glueck hab ich dieses forum entdeckt... echt genial wie ihr hier
alles besprecht..
meine frage lautet aber nun...
was sind latches.. wozu dienen sie genau bzw. was genau machen sie???
ich bedanke mich schonmal im vorraus...
nKK
Hallo
Die deutsche Übersetzung von Latch heisst "Auffangregister". Sowas wird
je nach Kontext etwas anders verstanden: Häufig ist ein Latch ein IC, wo
man Daten (einige Bits) 'reinschaufeln kann, die dann an seinen Ports
präsent bleiben. So eine Schaltung kann auch in einem komplexeren IC
integriert sein und beispielsweise dazu dienen, hereinkommende Daten
zwischenzuspeichern.
In der grundlegenden Digitaltechnik unterscheidet man ferner die
Grundbausteine "Flip-Flop" und "Latch". Beide dienen dazu, ein einzelnes
Byte, das zu einem bestimmten Zeitpunkt am Eingang anliegt, für eine
gewisse Zeit zu speichern. Ein Latch kann seine Daten während der
gesamten High-Periode des Taktsignals ändern, ein Flip-Flop nur bei
steigender oder fallender Taktflanke.
Gruss
Michael
Kann mir (Gelegenheits-CPLD-Programmierer) jemand mal den Satz hier aus
dem verlinkten Artikel etwas genauer erklären?
>In Digitalschaltungen in FPGAs oder CPLDs müssen Latches möglichst>vermieden werden, da sie ungünstigere Eigenschaften bezüglich des>Zeitverhaltens aufweisen als FlipFlops.
@ ARM-Fan (Gast)
>Kann mir (Gelegenheits-CPLD-Programmierer) jemand mal den Satz hier aus>dem verlinkten Artikel etwas genauer erklären?>>In Digitalschaltungen in FPGAs oder CPLDs müssen Latches möglichst>>vermieden werden, da sie ungünstigere Eigenschaften bezüglich des>>Zeitverhaltens aufweisen als FlipFlops.
In Kurzfassung.
Relativ einfach. Stell dir ein normales Schieberegister vor. Mit
FlipFlops fuktioniert das wunderbar. Bei der aktiven Taktflanke
übernehmen alle FlipFlops gleichzeitig die Daten ihres "Vordermanns".
Kurz nach der Taktflanke sind die neuen Daten an den Ausgängen der
FlipFlops. Die Welt ist in Ordnung.
Mit Latches geht das voll daneben. Wenn enable öffnet, wird der Eingang
aller Latches auf den Ausgang geschalten. Die Daten "laufen" einmal
durch das Schieberegister und sind nach ein paar ns im Nirvana
verschwunden. Dumm gelaufen.
Wenn jetzt jemand ankommt und behauptet, dass man das ja auch mit
jeweils invertierten Latches machen kann, dann sage ich. Dann kann mans
auch gleich mit FlipFlops machen, denn die bestehen intern aus zwei
invertiert angesteuerten Latches. ;-)
MFG
Falk
zum trennen von adress und datenleitung.
der µC sendet zuerst die adresse, dann schaltet er einen port um auf
empfangen, da gehen aber die adressleitungen "verloren". dies
kompensiert der Latch, da er sie weiter behält.
nKK wrote:
> Also benutzt man Latches nur als zwischenspeicher?>> wozu braucht man sie dann genau bei adress- und busleitungen?
Um den Zustand eines Busses zu einem exakt definierten Zeitpunkt
festzuhalten und den Bus für andere Dinge freizugeben. Siehe Aufgabe des
Latches zum Extrahieren von A7..A0 beim X-MEM-Interface einiger AVRs
bzw. des 8085-Busses.
Mit Falks Unterscheidung zwischen Latch und FF kann ich mich nicht ganz
anfreunden, das mag für JK-FFs zutreffen, aber nicht allgemeingültig auf
alle Arten von FFs. Denn auch D-, RS- und T- FFs sind nunmal Flipflops.
;-)
Mfg, Blaubär 5406
@ nKK (Gast)
>Also benutzt man Latches nur als zwischenspeicher?
Man benutzt Latches so gut wie gar nicht, auf jeden Fall nicht in neuen
Designs in CPLDs und FPGAs.
MFG
Falk
nKK wrote:
> ich will auch keinen externen ram bentzten... es geht mir nur ums> verstaendniss...>> wie genau das alles ablaeuft
- AD-Bus liefert Adresse (A7...A0)
- ALE aktiviert Latch, Latch übernimmt Adresse 7...0 und legt sie an RAM
- AD-Bus liefert Daten (D7...D0)
- WR oder RD löst Schreib- oder Lesebefehl aus, dabei liefert Latch
A7...0, AD-Bus die Daten, A-Bus die höherwertigen Adressen.
MfG, Blaubär
bei externen RAM.
es gibt einen 16.Bit Adressbus und einen 8.Bit Datenbus. Also braucht
man normalerweise 24 pins für externen RAM.
bloß Pins sind knapp.
also nimmt man die unteren 8.bit des adressbus und packt die auf ein
latch. dann schaltet man den latch so das er die 8.bit sich merkt und
weiterreicht zum RAM. die so "freien" 8 Pins schaltet man um so das sie
Daten empfangen können und sagt den RAM "schicke das Byte von der bei
dir anliegenden adresse". FERTIG.
dies wiederholt man für jedes zu lesende byte.
Wo ist denn eigentlich die Abgrenzung zwischen "Latch als 'Gegenstück'
zum Flipflop" und "Latch als Auffangregister"? Ist es mehr oder weniger
Zufall, dass beide Latch heissen, oder gibt es da einen technischen
Zusammenhang? Wenn ein IC Latch heisst, arbeitet es dann auch als Latch,
d.h. mit Datenerfassung bei Clock = 1?
mr.chip wrote:
> Wo ist denn eigentlich die Abgrenzung zwischen "Latch als 'Gegenstück'> zum Flipflop" und "Latch als Auffangregister"? Ist es mehr oder weniger> Zufall, dass beide Latch heissen, oder gibt es da einen technischen> Zusammenhang? Wenn ein IC Latch heisst, arbeitet es dann auch als Latch,> d.h. mit Datenerfassung bei Clock = 1?
Für mich ist Flipflop der Oberbegriff für bistabile Schalungen, zu den
auch die Latches (Auffangregister) zählen. Mag sein, dass das in diesen
oder jenem Fachgebiet (wie z.B. CPLD und FPGA, mit denen ich mich nicht
beschäftige) durch unsaubere Übersetzung anders gehandhabt wird, aber
allgemein wehre ich mich gegen die Aussage dass ein Flipflop das
Gegenstück zum Latch ist, auch wenn das im Wiki so vermittelt wird.
MfG, Blaubär
@ mr.chip (Gast)
>Wo ist denn eigentlich die Abgrenzung zwischen "Latch als 'Gegenstück'>zum Flipflop" und "Latch als Auffangregister"? Ist es mehr oder weniger
@ Troll Blaubär (blaubeer)
>Für mich ist Flipflop der Oberbegriff für bistabile Schalungen, zu den>auch die Latches (Auffangregister) zählen. Mag sein, dass das in diesen>oder jenem Fachgebiet (wie z.B. CPLD und FPGA, mit denen ich mich nicht>beschäftige) durch unsaubere Übersetzung anders gehandhabt wird, aber
Das ist der Punkt, die Unterscheidung wurde bisweilen recht lasch
gehandhabt, was natürlich bisweilen fatal ist. Seit die FPGA/CPLDs
breitbandig auf dem Vormarsch sind wird das wieder sauber getrennt, vor
allem im englischsprachigen Raum.
>allgemein wehre ich mich gegen die Aussage dass ein Flipflop das>Gegenstück zum Latch ist, auch wenn das im Wiki so vermittelt wird.
Ob es nun das EXAKTE Gegenteil ist sei dahingestellt. Aber es
unterscheidet sich deutlich.
MFG
Falk
Falk, ich unterscheide ja auch zwischen synchronen und asynchronen
Kippstufen (Flipflop bedeutet ja lediglich bistabiler Multivibrator bzw.
Kippstufe). Und bei den synchronen unterscheide ich auch zwischen
taktzustandsgesteuerter und taktflankengesteuerter Datenpbernahme.
Allerdings wehre ich mich dagegen, alles taktzustandsgesteuerte Latch zu
nennen und alles flankengesteuerte Flipflop.
Ich streite (mangels Insiderwissen) ja nicht, dass man das bei
programmierbarer Logik so handhabt, wehre mich aber gegen eine
Verallgemeinerung.
Und wenn Du noch mal den ersten Absatz des ersten Posts liest, wirst Du
feststellen, dass es in diesem Thread nicht um programmierbare Logik
geht, sondern um die Frage eines Mikrocontroller-Anfängers, was ein
Latch (im Zusammenhang mit Mikrocontrollern, vermutlich mit AVRs) ist.
Und in diesem Kontext fällt mir als erstes das ('8085-kompatible)
XMEM-Interface einiger AVRs ein, als zweites die
Lieblingsporterweiterung des Thomas Olly. Und in diesem Zusammenhang ist
ein Latch lediglich ein Auffangregister, das die Daten (je nach
Ausführung des Latches) bei H-Pegel, L-Pegel steigender oder fallender
Flanke übernimmt.
MfG, Blaubär