Skip to content
digiwleeaTools
LearnGlossaryAboutCheat sheetHow a CPU worksToolsOpen the lab →

74HC164: the 8-bit serial-in, parallel-out shift register, live

The 74HC164 is an 8-bit serial-in, parallel-out shift register: on each rising edge of CLK every bit moves one place along from QA toward QH, and QA takes A AND B, the two gated serial inputs. A low on CLR clears all eight outputs at once. The 74LS164 has the same pinout. This live circuit is the whole chip.

TI's datasheet puts it this way: "These 8-bit shift registers feature AND-gated serial inputs and an asynchronous clear (CLR) input. The gated serial (A and B) inputs permit complete control over incoming data; a low at either input inhibits entry of the new data and resets the first flip-flop to the low level at the next clock (CLK) pulse." So tie one of A and B high and use the other as data, or use one as an enable. Unlike the 74HC595, the 164 has no storage register and no 3-state outputs: its outputs change as each bit moves through, which does not matter when the bits pass faster than the eye can see, and that makes it the simpler output expander (the datasheet lists "Output Expander" among its applications). Each stage here is a master-slave D flip-flop with asynchronous clear, the same chain as the 4-bit shift register, eight long, with an AND gate in front for A and B and an inverter for the active-low CLR. The live chip opens with CLR low (all outputs 0) and A = B = 1: set CLR to 1 and turn CLK on and off, and a 1 enters QA and moves along with each rising edge. Before the page is built, a 48-step sequence (clear, shifting with A and B both high or one of them low, a change on A while CLK is high, a clear while CLK is high, and shifting again) is checked on all eight outputs.

Big circuit: pinch, scroll or tap + to zoom in, then drag to move around.

Live circuit: click the inputs to toggle them and watch the outputs update. It runs the real simulator, right here on the page.

Open this circuit in the lab →

What you need

Step by step

  1. Place inputs A, B, CLK and CLR, and probes QA to QH.
  2. Chain eight D flip-flops with clear: each Q drives the next D, and every CLK input comes from CLK.
  3. Feed the first D from A AND B, and every clear from NOT CLR.
  4. Set CLR = 1 and A = B = 1, then pulse CLK: a 1 enters QA. Set A to 0 and pulse again: a 0 follows it in.

74HC164 function table

CLRCLKABQAQB to QH
0XXX00
10XXno changeno change
1rising111shift
1rising0X0shift
1risingX00shift

74HC164 pinout

PinNamePinName
1A14VCC
2B13QH
3QA12QG
4QB11QF
5QC10QE
6QD9CLR (active low)
7GND8CLK

X means the input does not matter; shift means QB takes the old QA, QC the old QB, and so on up to QH. The function table and the 14-pin pinout are from TI's SN74HC164 datasheet (SCLS115G), checked 2026-10-25; TI's SN74LS164 datasheet has the same table and pins. The 74HC164 runs from 2 V to 6 V; the 74LS164 is a 5 V part.

You can also read the full theory in the lesson on shift registers. Prefer to build it yourself from scratch? Open the digiwleea lab and place the gates on the canvas, or start from the logic gate simulator.

Build more parts from gates

half adderfull adderhalf subtractorfull subtractor2:1 multiplexer4:1 multiplexerXOR gate from NAND gates2-to-4 decoderSR latchD flip-flopJK flip-flopT flip-flop4-bit shift register4-bit ripple carry adderD latch1-to-4 demultiplexer4-bit magnitude comparator4-bit ring counter4-bit Johnson counter4-to-2 priority encoder4-bit synchronous counter3-to-8 decoder8-to-1 multiplexer4-bit carry lookahead adderhalf adder from NAND gates2-bit comparatorBCD to 7-segment decoder4-bit up/down counterdecade counter2-bit multiplier4-bit ALU4-bit array multiplierNOT, AND, OR and NOR from NANDNOT, OR, AND and XOR from NORfull adder from NAND gatesSR latch from NAND gatesparity generator and checker4-bit adder/subtractorBCD adder4-bit universal shift registermod-6 counter4-bit ripple counterbinary to Gray code converterhalf adder from NOR gatesfull adder from NOR gates4-bit register with parallel load1011 sequence detectorbinary to BCD converterD flip-flop from NAND gates1-bit ALUCMOS inverterCMOS NAND gateCMOS NOR gatePISO shift registerSR flip-flop from NAND gatesBCD to excess-3 code converterHamming (7,4) code encoder and correctortraffic light controller4-bit barrel shifterCMOS AND gateCMOS OR gateCMOS XOR gate1-bit magnitude comparatorhalf subtractor from NAND gatesfull subtractor from NAND gates8-to-3 encoderGray to binary converter4-to-16 decoderfull adder using 4:1 multiplexersedge detectorserial adder4-bit carry-select adder4-bit Kogge-Stone adder4-bit carry-skip adder4x4 Wallace tree multiplier8-bit adderfrequency divider (by 2, 4 and 3)switch debouncer (SR latch)3-bit Gray code counterMealy machine (1011 detector)master-slave JK flip-flop (NAND)half subtractor from NOR gates1-to-8 demultiplexerexcess-3 to BCD code convertervending machine FSM4-bit carry-save adder3-bit synchronous counter (JK)CMOS transmission gatetri-state buffer (CMOS)2-to-1 mux from transmission gatesmod-5 counterflip-flop conversion (JK to D)8-bit ALUdecimal to BCD encoderBCD to decimal decoder4-to-1 mux from 2-to-1 muxesXOR gate from NOR gates4-bit LFSR74LS138 decoderBCD subtractor74181 ALUCMOS AOI gate (AOI21)D latch vs D flip-flop74LS47 BCD to 7-segment decoder74HC595 shift register7400 quad NAND gate chip7402 quad NOR gate chip7404 hex inverter chip7408 quad AND gate chip7432 quad OR gate chip7486 quad XOR gate chip7474 dual D flip-flop74HC165 shift registerCD4017 decade counter74LS283 4-bit adder74LS90 decade counter74HC161 4-bit counter74HC151 8-to-1 multiplexer74HC157 quad 2-to-1 multiplexer74HC139 dual 2-to-4 decoderCD4511 BCD to 7-segment decoder7492 divide-by-12 counter7493 4-bit binary counter74HC244 octal bufferRace-around condition (JK latch)74HC373 octal latch74HC374 octal D flip-flopTurnstile state machine1-to-2 demultiplexerhalf adder using 2:1 multiplexersregister file (4 x 4-bit)digital PWM generatorCD4013 dual D flip-flop74LS76 dual JK flip-flop7410 triple 3-input NAND chip7411 triple 3-input AND chip7420 dual 4-input NAND chipCD4011 quad 2-input NAND chipCD4001 quad 2-input NOR chipCD4081 quad 2-input AND chipCD4069 hex inverter chip

Each of these is one step from a transistor to a working CPU. Build every gate from CMOS transistors and work all the way up in the free digiwleea lab, with the free theory reference alongside.

Open the 74HC164 8-bit shift register in the lab →

Frequently asked

What does the 74HC164 do?

It is an 8-bit serial-in, parallel-out shift register. Each rising clock edge shifts the eight outputs one place from QA toward QH and loads A AND B into QA. A low on CLR clears all outputs at once, without the clock.

What is the difference between the 74HC164 and the 74HC595?

The 74HC595 adds an 8-bit storage register with its own clock and 3-state outputs, so its outputs change all at once and can be disabled. The 74HC164's outputs follow the shifting directly, and it has two AND-gated serial inputs and an active-low clear.

What are the A and B inputs of the 74HC164?

Two serial data inputs combined by an AND gate: the bit shifted into QA is A AND B. Tie one high and send data on the other, or use one as an enable, since a low on either shifts in a 0.

How do you chain two 74HC164 chips?

Connect QH of the first chip to A and B (or to A, with B tied high) of the second, and share CLK and CLR. The pair then shifts 16 bits.