• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

4 way multiplexer?

Not open for further replies.


New Member
Just revising for a hardware exam, looking over some past papers and a few questions I can't answer

How can I make a four way multiplexer using three 2 input multiplexers

I thought I would do something like this

A------|1|___| |
B------|_|   |2|___| |
C------------|_|   |3|-------O
D------------------| |
but that leaves me with 3 Selector lines, when really I only want 2...
Can anybody suggest anything?

Also on a side note, I've been asked to "show how four four-way multiplxeres can be used to build a four bit shifer with inputs I3,I2,I1 and I0 and outputs O3,O2,O1 and O0"
Can it be done JUST with four four-way multiplexers.. or do you need to use D-Q flip flops as well.. I always thought any shifter required D-Q flip flops, yet the question doesn't mention them.

Thanks for any help


New Member
Hi Terabyte,

First question see below.

Second question: If you are simulating a shift register with
multiplexers you're dealing with multiplexers, not with shift
registers, no D-ff's. If you would use D-ff's you would already
have a shift register.

If you have problems with this sort of questions you've got
something coming at you ! :D




New Member
Ok thanks very much for the picture, perfect thanks!

But i'm still not clear about the shift register,
I thought a 4 bit shift register with 4 functions to perform required 4 dq flip flops, and each one preceded by 1 of the 4 multiplexers.. with each of those 4 inputs being fed from different points in the circuit (depending on the functionality).
I mean, otherwise where is the common clock?
Sorry I should have mentioned that there were 4 functions required (if it made a difference):

00: No change
01: Artithmetic shift right
10: Shift Left Carry Out
11: Shift Left Carry In

Thanks for any clarification


Implementing a shift depends on whether you are updating storage (registers) or whether you view a shift as a math function.

If you view a shift as a math function, it only requires connecting or renaming.


y[0] = 0
y[1] = x[0]
y[2] = x[1]
y[3] = x[2]

If x[3:0] is 1101, then y[3:0] will be 1010, which is x shifted left by one bit.
Not open for further replies.

Latest threads

EE World Online Articles