Design of CMOS Flip-Flops (SR, D, JK)
A flip-flop or latch is a circuit with two stable states, used to store state information. It is the basic storage element in sequential logic and a fundamental building block in digital electronics systems, including computers and communication devices.
Flip-flops and latches act as data storage elements for states, pulse counting, and synchronization of variably-timed input signals to a reference clock. Flip-flops can be transparent/opaque (latches) or clocked (synchronous, edge-triggered). Latches are level-sensitive, while flip-flops are edge-sensitive.
In sequential logic, the output depends on current inputs and previous states. Fig.1 shows a sequential circuit combining a combinational block and a memory element.
SR Flip-Flop
The SR latch can be implemented using two NAND gates. The circuit changes state when the Set (S) or Reset (R) input is pulled low. A NAND-based SR latch responds to active-low signals. The truth table and gate-level schematic are shown in Fig.3.
JK Flip-Flop
The JK latch solves the "not allowed" input problem of SR latches by using feedback from outputs to inputs. Fig.7 shows an all-NAND JK latch with active-high inputs. J and K correspond to Set and Reset of an SR latch. If both inputs are 1 during the active clock, the latch toggles its state. Table.1 summarizes the JK flip-flop operation.
D Flip-Flop
The D-latch stores a single logic level and acts as a 1-bit register. It has input D and outputs Q and Q’. It is implemented using a NOR-based SR latch: D connects to S and D’ to R through an inverter. When CLK is high, D is transmitted to Q; when CLK is low, the previous state is retained.
Circuits / Block Diagram using S-Edit
Programming (SPICE Command)
Extract SPICE code using T-Edit.
Graphs (W-Edit)
Simulate schematics and generate waveforms using W-Edit.
Conclusions
The transient response of SR, JK, and D Flip-Flops was studied using CMOS logic. Waveforms were obtained using W-Edit, and SPICE code was extracted using T-Edit. Observed waveforms match theoretical truth tables, validating the designs.