sequential circuits

Complete

Summary

Characteristic tables

  • SR flip-flop
Action
00No change
010Reset
101Set
11Invalid
  • D flip-flop
Action
00Reset
11Set
  • JK flip-flop
Action
00No change
010Reset
101Set
11Toggle
  • T flip-flop
Action
0No change
1Toggle

Excitation tables

  • SR flip-flop
000X
0110
1001
11X0
  • D flip-flop
000
011
100
111
  • JK flip-flop
000X
011X
10X1
11X0
  • T flip-flop
000
011
101
110

Sinks

  • once the circuit enters this state
  • it never moves out

Self-correcting

  • if the circuit enters any unused (invalid) state
  • it is able to transit to a valid state after a finite number of transitions

Concept

Types of sequential circuits

  • synchronous: outputs change at a specific time
  • asynchronous: outputs can change at any time

Stable states

  • bistable - 2 stable states
  • monostable - 1 stable state
  • astable - no stable states

Bistable logic devices

  • latches -> pulse-triggered
  • flip-flops -> edge-triggered, rising or falling edge

flip-flops are just latches but triggered slightly differently

SR latch

  • set and reset
  • store current state otherwise
  • has an invalid condition

sr_nor_latch.png

an active-low SR latch would have the NOR gates replaced with NAND

Action
00No change
010Reset
101Set
11Invalid

the characteristic table shows the next state, based on the inputs and current state

Gated SR latch

  • SR latch with enable pin
  • only changes if the enable pin is high

gated_sr_latch.png

Gated D latch

  • change to if enabled
  • removes the impossible condition
Action
100Reset
111Set
0XNo change

JK flip-flop

  • uses the impossible condition as a toggle
Action
00No change
010Reset
101Set
11Toggle

T flip-flop

  • JK flip-flop without individual set and reset pins
Action
0No change
1Toggle

Asynchronous inputs

  • PRE and CLR to immediately set and reset

Application

State diagram

000110110/01/00/11/00/11/00/11/0

a 4 state circuit requires 2 flip-flops, for extra unused states, fill with don’t care terms

Circuit analysis
sr_practice.png

0001101110010101

Constructing a sequential circuit

000110110/11/00/01/00/11/00/01/1

Extra

Tikz template for state diagrams

latex
\usepackage{tikz}
\usetikzlibrary{calc}
% https://tex.stackexchange.com/questions/354199/how-to-make-an-arrow-from-a-node-to-itself-have-a-nice-arc
\def\loopsize{6mm}
\newcommand\round[5][-]%
{
  \draw[#1]
    ($ (#2.#3) + {cos(#3)}*(0,{0.71*(\loopsize/2)}) - {sin(#3)}*({0.71*(\loopsize/2)},0) $)
    arc (180+#3-45:180+#3-45-270:\loopsize/2)
    node[midway, #4] {#5};
}
\tikzstyle{vertex}=[draw,circle,minimum size=18pt,inner sep=0pt,node distance=4cm]
\begin{document}
\begin{tikzpicture}[auto,thick]

  \node[vertex] (a) {00};
  \node[vertex,right of=a] (b) {01};
  \node[vertex,below of=a] (c) {10};
  \node[vertex,right of=c] (d) {11};

  \round[->]{a}{135}{}{0/0};  
  \draw[->, bend left=15] (a) to node[midway] {1/0} (b);
  
  \draw[->, bend left=15] (b) to node[midway] {0/1} (a);
  \draw[->, bend left=15] (b) to node[midway] {1/0} (d);

  \draw[->, bend left=15] (c) to node[midway] {0/1} (a);
  \round[->]{c}{-135}{}{1/0};  

  \draw[->, bend left=15] (d) to node[midway] {0/1} (a);
  \draw[->, bend left=15] (d) to node[midway] {1/0} (c);
\end{tikzpicture}
\end{document}