IT233 Digital Logic

Digital LogicUnit 411 min read

Counters & Registers: Design, Types, Applications & Real-World Use

Unit 4 of Digital Logic explores counters (asynchronous/synchronous, up/down, MOD-N) and registers (shift, parallel, serial-in/out), their internal flip-flop structures, timing diagrams, and practical designs. Learn how to build circuits for counting, data storage, and sequential operations, with ties to Nepalese tech


Core Concepts: What Are Counters and Registers?

1. Definitions

  • Counter: A sequential circuit that counts pulses (clock edges) and stores the count in binary. Used for timing, sequencing, and event counting.
  • Register: A group of flip-flops that stores binary data (e.g., 8-bit register = 8 flip-flops). Used for temporary data holding, shifting, or arithmetic operations.

2. Key Differences

| Feature               | Counter                          | Register                          |
|-----------------------|----------------------------------|-----------------------------------|
| **Primary Use**       | Counting pulses                  | Storing/manipulating data        |
| **Flip-Flop Role**    | Counts input pulses (T or JK)    | Holds static or shifting data     |
| **Clocking**          | Synchronous/asynchronous         | Synchronous (usually)             |
| **Output**            | Binary count (e.g., 000→111)     | Parallel/serial data output      |
| **Example**           | NTC’s electricity meter           | Daraz’s order ID storage         |

1. Counters: Types, Design, and Applications

CLKUP/DOWN
4-bit up/down counter using T flip-flops (UP/DOWN control signal)

A. Asynchronous (Ripple) Counters

  • How it works: Each flip-flop’s output triggers the next flip-flop (no global clock). Faster for low counts but slower for high bits due to propagation delay.
  • Design Example: 3-bit Asynchronous Counter
    flowchart LR
      CLK["Clock Pulse"] --> FF0["FF0 (T flip-flop)"]
      FF0 --> FF1["FF1 (T flip-flop)"]
      FF1 --> FF2["FF2 (T flip-flop)"]
      FF0 -- Q0 -->|"Output"|
      FF1 -- Q1 -->|"Output"|
      FF2 -- Q2 -->|"Output"|
    • Flip-Flop Choice: Use T flip-flops (toggle on clock edge).
    • State Transition:
      | CLK | Q2 Q1 Q0 |
      |-----|----------|
      |  0  |  000     |
      |  1  |  001     |
      |  2  |  010     |
      |  3  |  011     |
      |  4  |  100     |
      | ... | ...      |
      
    • Real-World Tie: NTC’s electricity meter uses a ripple counter to track kilowatt-hours. Each pulse from the meter corresponds to a unit of energy consumed.

B. Synchronous Counters

  • How it works: All flip-flops are clocked simultaneously by a single clock signal. Faster and more reliable for high-bit counters.
  • Design Example: 3-bit Synchronous Binary Counter (JK Flip-Flops)
CLK
3-bit synchronous binary counter with JK flip-flops (simultaneous clocking)
  • Excitation Table for FF1 (JK):
    | Q1 Q0 | J1 K1 |
    |-------|-------|
    |  0 0  |  0  x  |
    |  0 1  |  1  1  |
    |  1 0  |  1  1  |
    |  1 1  |  0  x  |
    
  • Timing Diagram:
    
    
  • Real-World Tie: Pathao’s ride counter uses a synchronous counter to track the number of rides per driver, ensuring accurate billing without delay.

C. MOD-N Counters

  • Definition: Counters that reset after N counts (e.g., MOD-16 = 4-bit counter, MOD-120 = 7-bit).
  • Design Example: MOD-7 Synchronous Counter
    • Use JK flip-flops with asynchronous clear to reset at count 7 (111).
    • State Diagram:
      stateDiagram-v2
        [*] --> 000
        000 --> 001
        001 --> 010
        010 --> 011
        011 --> 100
        100 --> 101
        101 --> 110
        110 --> [*]
    • Real-World Tie: NEPSE’s stock trading cycle resets every 7 trading days (MOD-7) for weekly reporting.

D. Up/Down Counters

  • How it works: Counts up or down based on a control signal (e.g., UP/DOWN).
  • Design Example: MOD-16 Up/Down Counter
    • Use JK flip-flops with control logic for up/down mode.
    • Truth Table for Control:
      | UP/DN | Q3 Q2 Q1 Q0 | Next State |
      |-------|-------------|-------------|
      |   0   |   0000      |   1111      |
      |   0   |   0001      |   0000      |
      |   1   |   1111      |   0000      |
      |   1   |   0111      |   1000      |
      
    • Real-World Tie: Khalti’s transaction counter uses an up/down counter to track pending vs. completed transactions in real time.

2. Registers: Types and Operations

A. Shift Registers

  • Types:
    1. Serial-In/Serial-Out (SISO): Data in/out serially (e.g., 1-bit at a time).
    2. Serial-In/Parallel-Out (SIPO): Data in serially, out in parallel (e.g., loading a byte).
    3. Parallel-In/Serial-Out (PISO): Data in parallel, out serially (e.g., transmitting data).
    4. Parallel-In/Parallel-Out (PIPO): Data in/out in parallel (e.g., RAM).
  • Design Example: 4-bit PISO Shift Register
    flowchart LR
      D0["D0"] --> FF0["FF0 (D)"]
      D1["D1"] --> FF1["FF1 (D)"]
      D2["D2"] --> FF2["FF2 (D)"]
      D3["D3"] --> FF3["FF3 (D)"]
      CLK["Clock"] -->|"to all FFs"| FF0
      FF0 -- Q0 --> FF1
      FF1 -- Q1 --> FF2
      FF2 -- Q2 --> FF3
      FF3 -- Q3 -->|"Serial Out"|
    • Loading Data (1011)₂:
      1. Parallel load: D3=1, D2=0, D1=1, D0=1.
      2. Shift right 4 times to output 1011 serially.
    • Real-World Tie: WhatsApp’s message routing uses shift registers to serialize messages for transmission over networks.

B. Parallel Registers

  • How it works: All bits loaded/stored simultaneously (e.g., 8-bit register = 8 D flip-flops).
  • Design Example: 2-Register Adder
    • Circuit:
Sum0Sum1CarryOutA0A1B0B1
1-bit full adder circuit (expanded to 2-bit register adder in text)
  • Real-World Tie: Bank loan interest calculation uses parallel registers to store principal amounts and compute monthly installments in bulk.

3. Real-World Applications in Nepal

System Component How It Uses Counters/Registers
eSewa Transaction ID generator MOD-N counter for unique IDs (e.g., MOD-1000 for daily IDs).
Daraz Order queue Shift register to prioritize orders (FIFO).
NTC Billing meter Asynchronous counter for kilowatt-hour tracking.
Ncell Call duration timer Synchronous counter for call minutes.
NEPSE Trading day cycle MOD-7 counter for weekly reset.
Digital ClockDisplayMicrocontrollerControl LogicCounter ICCounting CircuitFlip-FlopsBasic Memory
Hierarchy of components in a digital clock (Nepali: डिजिटल घडी)

4. Practical Design Steps

Step 1: Determine Counter/Register Type

  • Counter: Need to count pulses? Choose asynchronous (simple) or synchronous (fast).
  • Register: Need to store/shift data? Choose parallel (fast) or serial (memory-efficient).

Step 2: Choose Flip-Flops

  • T flip-flop: Best for ripple counters.
  • JK flip-flop: Versatile for synchronous counters.
  • D flip-flop: Ideal for registers (simple data holding).

Step 3: Draw the Circuit

  • Use Mermaid for block diagrams or circuit figures for gate-level designs.
  • Example: 4-bit PISO Register:

Step 4: Verify with Timing Diagrams

  • Example: Trace a 3-bit synchronous counter over 4 clock pulses.
    
    

Exam Tip

  1. For Counter Designs:

    • Always specify flip-flop type (T, JK, D) and clocking method (synchronous/asynchronous).
    • Show state transitions (table or diagram) and excitation tables for JK/T flip-flops.
    • Label MOD-N clearly (e.g., "MOD-120" means reset at 120).
  2. For Register Designs:

    • Clearly mark serial vs. parallel data paths.
    • Show data loading/retrieval steps (e.g., "Load 1011 → Shift right 4 times").
    • Use block diagrams for complex registers (e.g., PISO with parallel load).
  3. Common Pitfalls:

    • Forgetting asynchronous clear in MOD-N counters (leads to incorrect reset).
    • Misaligning clock edges in timing diagrams (use rising/falling edge labels).
    • Omitting control signals (e.g., UP/DOWN in up/down counters).
  4. High-Score Tricks:

    • Real-world tie-ins: Relate designs to Nepalese systems (e.g., "This MOD-16 counter is like NTC’s meter").
    • Visuals: Include circuit figures, timing diagrams, and state diagrams (even if not asked, they show depth).
    • Step-by-step traces: For counters, show first 4 states in a table. For registers, show data flow with arrows.

Worked Example: Design a MOD-120 Asynchronous Counter

Solution:

  1. Determine Bits: → 7-bit counter.
  2. Flip-Flop Choice: Use T flip-flops (toggle on clock edge).
  3. Reset Logic: Add asynchronous clear to reset at 1111000.
  4. Circuit:
CLK
7-bit asynchronous MOD-120 counter with reset logic (1111000 → 0000000)
  1. State Transition:
    | Count | Q6 Q5 Q4 Q3 Q2 Q1 Q0 |
    |-------|-----------------------|
    | 119   | 1110111               |
    | 120   | 1111000 → Reset to 000 |
    
  2. Real-World Tie: Nepal’s traffic light controller uses a MOD-120 counter to cycle through 120-second timings for intersections.

Summary Checklist

  • Can you differentiate between asynchronous and synchronous counters?
  • Can you design a 3-bit synchronous counter using JK flip-flops?
  • Can you explain how a shift register loads/stores data (e.g., 1011)₂?
  • Can you apply MOD-N counters to real systems (e.g., NTC, NEPSE)?
  • Can you draw timing diagrams for counters/registers?

Based on the TU BITM syllabus for Digital Logic (IT233), unit 4.

Discussion

Loading…