Designs

 

Home
Our Designs

Classification of Storage Elements

Storage elements commonly used for the synchronization and data storage in pipelines and other applications are transparent latches and flip-flops. 

Latch

Latch is a level-sensitive element with following functional behavior: when control signal (clock) is at the active level, the latch is transparent, i.e. the output follows any transition at the input, Figure 1. When the clock is at the inactive level, the latch is opaque, i.e. it holds the output state. The transition of the clock signal from the active level to the inactive level is referred to as latching edge, since the state of the output cannot be changed after this edge. Similarly, we define the releasing edge of the clock as the transition of the clock signal from the inactive level to the active level. Depending on the values of the active and inactive level of the control signal, a latch can be high-level transparent (when active level is logical high) or low-level transparent (when active level is logical low).

The common configurations that use transparent latches are pulsed latches and master-slave latches. Pulsed latch (PL) is a latch configuration in which a short pulse, produced after one edge of the clock, is used as a clock input to the latch, Figure 2. In this arrangement, the latch is transparent only during a short time after the active clock edge, while it is opaque otherwise, regardless of the timing waveform of the clock. In other words, the latch behaves as an edge-triggered storage element (see flip-flop below).

Figure 1. High-level transparent latch and timing diagrams

Figure 2. Pulsed latch and timing diagrams

Master-slave latch (MS latch) is a particular arrangement of transparent latches in which two latches are connected in series and clocked with two independent clocks phases, Figure 3. The input data D is captured at the latching edge of the master clock and released to output Q at the releasing edge of the slave clock. The timing parameters and the behavior of the master-slave latch depend on the timing between master and slave clock phases, as it will be shown later.

Most common implementation of master-slave latch consists of two serially connected identical latches transparent on opposite levels of the input clock (complementary clock phases). In this way, a master-slave latch behaves as an edge-triggered storage element (see flip-flop below). If the master latch is transparent on the high level of the clock, and the slave latch is transparent on the low level of the clock, resulting MS latch is “falling-edge triggered”, otherwise it is “rising-edge triggered”.

Figure 3. Master-slave latch: a) general configuration, b) connected as positive-edge triggered storage element, c) timing diagrams for circuit in b)

Flip-Flop

Flip-flop is an edge-sensitive element with following behavior: the output captures the value of the input either after the low-to-high transition of the clock, or after the high-to-low transition of the clock; otherwise, the flip-flop is non-transparent, i.e. it holds the captured value at the output. The transition of the clock that causes the change of the output is referred to as capturing edge of the clock. Depending on which clock edge is capturing, a flip-flop can be rising-edge triggered, Figure 5, or falling-edge triggered.

Figure 4. Positive edge-triggered flip-flop: a) function, b) structure, c) timing diagrams

Structurally, a flip-flop consists of two functional stages (Figure 4b, [Oklobdzija2003]):

·        Pulse generator, producing a pulse synchronous to the active clock edge, depending on the input value to be captured.

bulletSet-reset latch that captures the pulse created by the pulse generator. This latch changes its state to high if the “set” input is active, and to low if the “reset” input is active; the latch keeps the captured value otherwise.

As opposed to the operation of a pulsed latch, the pulse created by the pulse generator of a flip-flop contains all information about new data to be captured, and the second-stage latch is used only to create a static output. Such pulse need not have determined short width, and it can be chosen to facilitate the design of both pulse generator and the latch.

Dual-Edge Triggered Storage Element

Dual-edge triggered storage element is an edge-sensitive element that captures the value of the input after both low-to-high and high-to-low clock transitions. Otherwise, the storage element is non-transparent, i.e. it holds the captured value at the output.

Figure 5. Dual-edge-triggered storage elements: a) function, b) pulsed latch, c) flip-flop, d) latch-MUX

A dual-edge triggered storage element can be classified as [Nedovic2002a, Oklobdzija2003]:

bulletPulsed latch (Figure 5b), which consists of a clock pulse generator and a transparent latch. The clock pulse generator creates a short pulse after both clock edges, used as the clock input to the transparent latch.
bulletFlip-flop (Figure 5c), which consists of the same building blocks as single-edge triggered flip-flops. The pulse generator is active on both edges, or it combines the outputs of two pulse generators active at the opposite clock edges.
bulletLatch-MUX structure (LM, Figure 5d), which consists of two latches, connected in parallel and transparent on opposite levels of the clock, and a multiplexor that selects the output of the non-transparent latch at any time. Latch-MUX is a dual-edge triggered counterpart of the master-slave latch clocked with the complementary clock phases.

Basic Timing Characterization of Storage Elements

A latch is characterized by the following parameters:

bulletSet-up time - maximum allowed data arrival with respect to the latching clock edge in order to correctly capture it
bulletHold time - minimum allowed data arrival after the latching clock edge in order to correctly capture the previous value
bulletPropagation time - delay between the releasing clock edge and the latch output switching to the new value
bulletData-to-output delay - delay between the data arrival and the output switching to the new value, assuming that the latch is in the transparent mode

Following are the basic timing parameters of a flip-flop:

bulletSet-up time - maximum allowed data arrival with respect to the capturing clock edge in order to correctly capture it
bulletHold time - minimum allowed data arrival after the capturing clock edge in order to correctly capture the previous value
bulletPropagation time (clock-to-output delay) - delay between the capturing clock edge and the flip-flop output switching to the new value

Dual-edge triggered storage elements apply all parameters defined for the single-edge triggered storage elements to the both clock edges. It is a custom practice that the worse of the parameters for the two edges is used as the only timing parameter. As the timing parameters for both clock edges should always be taken into account.

 

Home | Introduction | Basics | Designs | Results | References

 Copyright Advanced Computer Systems Engineering Lab, 2003.
For problems or questions regarding this web contact acsel@ece.ucdavis.edu.
Last updated: 07/28/04.

There have been visitors