Latch versus flip-flop: werking en keuzecriteria vergeleken

Beide slaan één bit op, maar ze worden door iets anders in beweging gebracht. Een latch is niveaugevoelig: zolang enable actief is, is hij transparant en geeft hij de ingang direct door aan de uitgang, en zodra enable inactief wordt, houdt hij de waarde vast. Een flip-flop is flankgetriggerd: hij neemt de ingang alleen op het moment van de klokflank over en negeert andere veranderingen. Een flip-flop bestaat uit twee latches die in tegenfase werken.

KenmerkLatchFlip-flop
TriggerNiveaugevoelig. Werkt zolang enable actief isFlankgetriggerd. Werkt alleen op het moment van de stijgende of dalende klokflank
Gedrag van de uitgangVolgt de ingang zolang de latch transparant is en houdt daarna vastVerandert alleen op de klokflank en is voor het overige stabiel
OpbouwEén opslagtrapTwee latches die in tegenfase werken, in serie (master-slave)
Grootte en vermogenKlein en laag vermogenGroter. Ongeveer twee keer zoveel transistors
TiminganalyseComplex. Er is time borrowing over de transparante periodeEenvoudig. Setup- en holdtijd rond de klokflank
Invloed van glitchesGlitches en races komen door terwijl de latch transparant isWijzigingen van de ingang tussen klokflanken hebben geen invloed
Belangrijkste toepassingenSnelle speciale ontwerpen die time borrowing benutten, clock-gating-cellenRegisters, tellers en toestandsmachines in synchroon ontwerp

De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.

Wanneer welke variant?

Latch
Wanneer de voordelen in oppervlak, vermogen en snelheid opwegen tegen de lastigere timinganalyse. Meestal in speciale ontwerpen en krachtige schakelingen.
Flip-flop
Het standaardonderdeel van synchroon ontwerp, omdat de timing eenvoudig en robuust is.
HDL-tip
In Verilog en VHDL ontstaan onbedoelde latches als if of case in combinatorische logica onvolledig is. Dit voorkom je door in alle takken een waarde toe te kennen.

Veelgestelde vragen

Wat is het verschil tussen een latch en een flip-flop in één zin?

Een latch is niveaugevoelig en transparant zolang enable actief is, een flip-flop is flankgetriggerd en neemt de ingang alleen op de klokflank over.

Is een flip-flop opgebouwd uit latches?

Ja. Een master-slave-flip-flop bestaat uit twee latches die in tegenfase in serie staan.

Waarom geven ontwerpers de voorkeur aan flip-flops?

De timinganalyse beperkt zich tot setup- en holdtijd rond één klokflank, en glitches tussen de flanken zijn geen probleem.

Waarom ontstaat er in HDL-code een onbedoelde latch?

Als in een combinatorisch always-blok of proces niet in alle takken aan de uitgang een waarde wordt toegekend (onvolledig if of case), leidt de synthese een latch af die de oude waarde vasthoudt.

Test uw begrip

Welke omschrijving van de werking van een D-latch is juist?

  1. ANeemt de ingang alleen over op het moment van de stijgende klokflank
  2. BGeeft de ingang altijd geïnverteerd uit
  3. CZolang het enable-signaal actief is, wordt de ingang rechtstreeks doorgegeven aan de uitgang, en als het inactief wordt, wordt de waarde vastgehouden
Antwoord en toelichting tonen

Antwoord: C. Zolang het enable-signaal actief is, wordt de ingang rechtstreeks doorgegeven aan de uitgang, en als het inactief wordt, wordt de waarde vastgehouden

Een D-latch is een niveaugestuurd geheugenelement: zolang enable actief is, verschijnt de ingang rechtstreeks op de uitgang (transparant) en wordt de waarde op het moment dat enable inactief wordt vastgehouden. Het heeft minder elementen dan een flip-flop en wordt soms gebruikt om met latch-gebaseerd timingontwerp (time borrowing) sneller te maken, maar omdat signalen tijdens transparantie doorlopen, wordt timinganalyse moeilijker. Een D-flip-flop, die alleen op het moment van de flank overneemt, wordt gemaakt door twee latches in tegenfase te koppelen.

Welke werking van een D-flip-flop is juist?

  1. ADe verandering van de ingang wordt altijd ongewijzigd naar de uitgang doorgegeven
  2. BDe exclusieve OF van twee ingangen wordt uitgevoerd
  3. COp de klokflank wordt de waarde van de D-ingang overgenomen en vastgehouden tot de volgende flank
Antwoord en toelichting tonen

Antwoord: C. Op de klokflank wordt de waarde van de D-ingang overgenomen en vastgehouden tot de volgende flank

Een D-flip-flop neemt op de stijgende (of dalende) klokflank de waarde van de D-ingang over en houdt die vast tot de volgende flank. Omdat alleen het moment van de flank telt, verandert de uitgang niet als de ingang daartussen verandert. Het is de basis van sequentiële circuits zoals CPU-registers, pipelinetrappen en tellers, en intern bestaat het uit twee latches die in master-slave zijn gekoppeld. Voor correct overnemen moeten setup- en hold-tijd worden gerespecteerd.

Welke omschrijving van de setup-tijd van een flip-flop is juist?

  1. ADe minimale tijd waarin de data na de klokflank vastgehouden moet blijven
  2. BDe minimale tijd vóór de klokflank waarin de data-ingang stabiel moet zijn
  3. CDe tijd van het inschakelen van de voeding tot de werking
Antwoord en toelichting tonen

Antwoord: B. De minimale tijd vóór de klokflank waarin de data-ingang stabiel moet zijn

Opdat een flip-flop correct overneemt, moet de data al een bepaalde tijd vóór de klokflank stabiel zijn; dit is de setup-tijd. Als de vertraging van het datapad de klokperiode min de setup-tijd overschrijdt, is er een schending, die kan worden opgelost door de klok te vertragen. De tijd dat data na de flank moet worden vastgehouden, is de hold-tijd, en als een van beide niet wordt gehaald, kan dat leiden tot het overnemen van een foutieve waarde of metastabiliteit.

  1. Hoe heet de toestand waarin een flip-flop, bij ontvangst van een asynchroon signaal waarvan setup- of hold-tijd niet wordt gehaald, een uitgang krijgt die tijdelijk noch 0 noch 1 is?
  2. Welk voordeel van een synchroon circuit, waarin alle flip-flops met een gemeenschappelijke klok werken, is juist?
  3. Welke combinatie van de reden waarom in de bovenstaande beschrijving een latch ontstaat en de tegenmaatregel is juist?

Oefenvragen over Logische schakelingen

Belangrijke termen uitgelegd

Flipflop
Basiselement van een sequentiële schakeling dat 1 bit informatie opslaat. Een D-flipflop neemt de ingang over op de flank van de klok.
Onbedoelde latch (unintended latch)
Situatie waarbij in een beschrijving die een combinatorische schakeling moet zijn, onder een bepaalde voorwaarde geen waarde aan de uitgang wordt toegewezen, waardoor logische synthese een latch maakt die de waarde vasthoudt.

Verwante vergelijkingen