Skip to main content

PISO register with 1010 data

Short answer

A 4-bit PISO register loads parallel data 1010 with SH/LD'=0, then shifts bits out LSB first with SH/LD'=1. The serial output sequence is 0,1,0,1 over four clocks. The timing diagram shows the load control and the resulting QD waveform.

Explain the working function of PISO register with timing diagram of 1010 data input.

A PISO register takes a word in parallel (all bits together) and gives it out serially (one bit per clock). The 4-bit version uses four D flip-flops with a SHIFT/LOAD' control and an AND-OR selector at each D input.

Circuit

       PA          PB          PC          PD
       |           |           |           |
    +-----+     +-----+     +-----+     +-----+
 0->| MUX | +-->| MUX | +-->| MUX | +-->| MUX |
    +-----+ |   +-----+ |   +-----+ |   +-----+
       |    |      |    |      |    |      |
    +-----+ |   +-----+ |   +-----+ |   +-----+
    |D  QA|-+   |D  QB|-+   |D  QC|-+   |D  QD|-->
    |>    |     |>    |     |>    |     |>    | Serial
    +-----+     +-----+     +-----+     +-----+  out
 MUX = 2 AND + 1 OR: D = SH.(Q of left FF) + SH'.P
 SH/LD' and CLK are common to all stages.
 One stage (e.g. stage B):
 QA ---------->+-----+
 SH/LD' --+--->| AND |--+
          |    +-----+  |  +----+
          |             +->| OR |--> DB
          |    +-----+  +->|    |
          +NOT>| AND |--+  +----+
 PB ---------->+-----+
 DB = SH.QA + SH'.PB
  • SH/LD' = 0 (load): the lower AND gates are enabled, so DA=PA, DB=PB, DC=PC, DD=PDD_A = P_A,\ D_B = P_B,\ D_C = P_C,\ D_D = P_D. At one clock edge all four bits are stored at the same time.
  • SH/LD' = 1 (shift): the upper AND gates are enabled, so DB=QA, DC=QB, DD=QCD_B = Q_A,\ D_C = Q_B,\ D_D = Q_C (and DA=0D_A = 0). Each clock moves the data one place right and the next bit appears at the serial output QD.

Storing and retrieving 1010

Parallel inputs: PA PB PC PD = 1 0 1 0 (PA = MSB, PD = LSB).

  1. Store (clock 1, SH/LD' = 0): all bits load together: QA QB QC QD = 1010. The LSB (0) is already at the output QD.
  2. Retrieve (clocks 2, 3, 4, SH/LD' = 1): each clock shifts right and a 0 enters QA. QD shows 1, 0, 1 in turn.
  3. Serial output after clocks 1 to 4: 0, 1, 0, 1, i.e. 1010 read LSB first. One clock loads, and n - 1 = 3 more clocks deliver the remaining bits.
CLKSH/LD'QAQBQCQDSerial out
0 (initial)-0000-
1Load10100
2Shift01011
3Shift00100
4Shift00011
5Shift00000

Timing diagram

         1   2   3   4   5
CLK     _|‾|_|‾|_|‾|_|‾|_|‾|
SH/LD'  ___|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|
QA      _|‾‾‾|______________
QB      _____|‾‾‾|__________
QC      _|‾‾‾|___|‾‾‾|______
QD      _____|‾‾‾|___|‾‾‾|__

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 7 questions →