Aside on Memory

Latches

Flip-Flops

Clocks


Abstract FSM memory


For physical logic gates, we have a timing issue :

The input

&

current state

must be in the same "time frame"


could represent 0100.

It could also represent others, such as 011000.

It all depends on the clock.

Typically we want the signal to be stable when the clock ticks.


A sequential logic circuit is designed with a specific clock rate in mind.

At a different clock rate


Flip-Flops remember the signal value when the clock ticks


By this kind of alignment flip-flops hold the state value between clocks so that combinational logic has time to react.


The clock/flip-flop combo solves all kinds of timing problems, such as ones of differing delay times in the combinational logic:


Construction of Flip-Flops

All physical gates have some switching delay

Generally, smaller delay is better.


Flip-Flops Exploit Delay to achieve memory.

A latch is a primitive form of flip-flop. It "tracks" its inputs, even without a clock.


Latch using Real Gates (i.e. with delay)

"1/2" latch:



Redrawn

Summary


A Clocked Latch allows changes only when the clock is at its high (1) value


A (edge-triggered) Flip-Flop embeds a latch into more complex circuitry so that it only changes with the clock edge.