I agree with you, and disagree with @Kynit: the multiplexer is the part marked "buffers" on your schematic. But more on that in a moment: let's walk through the circuit backwards, from the display to the oscillator.
I'm going not going to provide any schematics, and may be a little vague at times - as you're learning, I imagine it's best not to give too much away.
Display
As I understand it, your three 7-segment displays are common-anode, and have the cathodes of each segment wired to the corresponding segment in the other two displays. This implies that if you connect the three anodes to the positive supply and any given cathode to the negative supply (using appropriate current-limiting resistors, of course), then the corresponding segment would light up on all three displays.
This is obviously undesirable, because you want to be able to control each display independently. This is where the digit drivers come in.
Digit Drivers
Instead of directly connecting each of the three anodes to the positive supply, you can use three transistors (one on each display) as a switch to selectively connect a single display at any given time.
To do this, you'd connect each transistor's collector to the positive supply, the emitter to the display's anode via a current-limiting resistor, and use the base as the control input. Applying a positive voltage to the base turns the display on, connecting it to ground turns the display off.
Now you're able to decide which display will display any given digit. That's only half the battle though - you still need a way of taking the nine bits of input and selecting just the three bits corresponding to the display that's currently turned on.
Multiplexer
That's where the multiplexer comes in. Effectively, a multiplexer is just a device that takes multiple input signals and selects which one to output. Here, you want to split the nine-bit input into three three-bit inputs (i.e. digit 0
, digit 1
and digit n-1
on your schematic), then use the multiplexer to place just one of those on the "display bus" at any given time.
You'll need a 3-to-1 multiplexer (you've got three inputs and one output), that is three bits wide (each signal is 3 bits). Fortunately, that's the same as having three parallel one-bit 3-to-1 multiplexers, for which schematics can easily be found online.
For example, bit 0 of digit 0
, bit 0 of digit 1
, and bit 0 of digit n-1
connect to the three inputs of the first multiplexer, and its output becomes bit 0 of your "display bus". Repeat twice more for bit 1 and bit 2.
So how do you decide which output is active at any time? The multiplexer has two extra "select" lines: applying logic 00
to these lines selects the first input, logic 01
the second, and logic 10
the third (with 11
unused). You may find designs with a slightly configuration (e.g. 01
, 10
, 11
instead of 00
, 01
, 10
), but the first configuration is probably most common, and is what I assume in the rest of the discussion.
Great, so you can control which display is active, and which part of the input data it displays. But how to get it to cycle through the digits?
Counter
What you need now is some kind of cyclic counter that first selects display 0, then selects display 1, then display 2, back to display 0, display 1, and so forth.
This is known as a mod-3 counter, as it only has three possible output states: 0, 1, and 2. Digital counters are most easily built using a mod-2n construction, e.g. mod-2, mod-4, mod-8, etc, as this corresponds to a whole number of output bits (e.g. 1-bit, 2-bit and 3-bit respectively). Fortunately it's also easy to convert a mod-4 (i.e. 2-bit) counter with a "reset" input to mod-3 - simply tie the second output bit (which becomes high when the counter reaches 2) to the reset input. This means it will immediately return to 0 on the next cycle, instead of going to 3 first.
Again, schematics for the mod-4 counter can be found easily on the internet.
You can then tie this directly to your multiplexer - when the counter outputs 0 (logic 00
) the input data for the first display is placed on the display bus, output 1 (01
) selects the second display's data, and output 2 selects the third.
Again, this is only half the battle though - you can now cycle through the input data, but you still don't actively control which display is active.
2-to-4 Decoder
To control which display is active, you want to apply a positive signal to each display driver in turn. That is, when the counter outputs 0 (and the multiplexer has placed digit 0
on the display bus), you want the base of the first transistor to go positive, and the other two to go to ground. A similar argument applies for the other two display drivers. This is the purpose of your "select digit" block.
So, you basically want to take that two-bit output from your counter, and use it to select one of three lines depending on the counter value. The circuit that can do this is called a 2-to-4 decoder, which simply has two input lines and four outputs. When the input is 00
, the first output is high and the others are low. When the input is 01
, the second output is high and the others are low. When the input is 10
, the third output is high and the others are low. And when the input is 11
, the fourth output is high and the others are low.
You don't need four outputs, and your counter isn't ever going to output 11
anyway, so just use the first three outputs and connect them to your display drivers (ignoring the fourth output).
Note that your 3-to-1 multiplexer basically contains its own internal 2-to-4 decoder, so if you're implementing all of this in discrete logic you can actually simplify the multiplexer by using the output of the 2-to-4 decoder you're using for the digit selector - that's what seems to be implied on your schematic.
Again, schematics for 2-to-4 decoders are easily found online.
There's still one last thing you need though - some signal to cause the counter to cycle through its values.
Oscillator
Your 555 circuit is your oscillator, which simply produces a clock signal that drives the counter. The astable multivibrator circuit you show is exactly what you need, the only thing you need to figure out is the desired output frequency and duty cycle.
As mentioned by @EM Fields, the duty cycle probably isn't very important here, so a 50/50 cycle is a reasonable default.
For the frequency, you should try to refresh the whole display at least 30 times per second to avoid annoying flickering. Since you need to go through each of the three counter states to update the display once, that means your oscillator should run at at least 90 Hz, but it's worth going considerably faster than that just to be safe. On the other hand, during testing it can be useful to run the oscillator (very) slowly because then you can watch the digits as they change.
Given those values, there are formulas easily available that will tell you what size resistors to use.
A side note
Where the de-multiplexer comes into things (that your professor hinted about) is with the 2-to-4 decoder. As the name suggests, a de-multiplexer does the opposite of a multiplexer, taking a single input and switching it between one of several outputs. As such, the 2-to-4 decoder is basically just a one-bit 1-to-4 de-multiplexer, with its input permanently set at logic 1
. This is why I disagree with @Kynit - what he/she describes as a multiplexer is, if anything, a de-multiplexer, and the actual multiplexer is elsewhere in the circuit.
I hope the above helps! If something doesn't quite add up, let me know and I'll be happy to sort it out.