MSI Circuits

Minterm=> Multiplication of the terms (ie x.y)
Maxterms => Addition of terms (ie x+y)

Decoder (n*m)

Selects n input and have m output
Represent up to 2^n unique elements
m < =2^n
Output will just high to the binary that is connected to the input.

Internal Wiring



The output of the decoder corresponds to minterms.
We can use the decoder to make a full adder but it might not be efficient.

General scheme
A boolean fun in sum of minterms can be implemented with an or gate to for the sum
Any combi circuits with
m inputs and m outputs can be implemented by 1 decoder (2^n) and m [or gates]

Decoder with enable
Only activate when the enable is high

We supply the enable signal with an and gate. This will ensure that the output will only be true when its high. (1 enable)

Larger Decoders

Can use smaller decoders to build larger decoders.

Key idea: To use the msb as the control signal.
e.g if W needs a 0, we will use a not gate to a 1-enable decoder.

4-16 Decoder
We can use 2 3X8 Decoder with one enable to have this.
We can use a and gate to an extra enable signal to the enable input such that
we can choose when to on/off decoder

Variants
- Zero enable
Enables at 0
- One enable
Enables at 1
- Normal (Active high)
Output high when selected
- Negated (Active Low)
Output low when selected

Standard MSI Decoder



Encoder (2^m to m)

n input, m output
There will always be n = 2^m inputs.

Only one input should be activated at one time.

4 to 2 Encoder

Any cases that have 2 inputs that are activated or all 0, it will be a don't care output.

- Uses only one or gate

8 to 3 encoder

We can use eye power on the tt to decide what the encoder is.

Priority Encoder
Handle dont care situation where if a certain priority input is one, regardless of if the other input is high, it will be selected.
There will be a v bit to show if the output is valid.
The don't care X in the input must be interpret as both 0 and 1


Multiplexer (Data selector)

Has n selection signal to drives the input
2^n inputs
1 output line

Multiple input and route to one.


Applying mux using decoder

- Save fan in

The mux output is the sum of the product of data lines and selection lines

Decoder's input is the selects
The answer is the sum of all the (product with the input of mux and outputs of decoder)
There is no need for an enable.

M to 1 mux
N:M decoder
M AND gates
1 Or gate


Larger Mux
Each output for every mux can be fit into another mux with MSB select selecting the value.

Standard MSI Mux 

Strobe is like an enable


Variant MSI Mux IC

Quadruple 2:1 Mux
Quadruple = 4 sep mux
2:1= 2 to 1 input

Implementing MUX
We can use mux to implement boolean function.
1. Express in sop form
2. Connect n variables to the n selection lines
3. Put a 1 on a data line if its a minterm of the function.
    0 if otherwise

i.e Just plug in the f output into the mux directly

Using a smaller size mux to implement a large function
e.g 8 inputs can use a 4 to 1
Express function in sum of minterms

1. Reserve one variable input as the driver, the rest as selection
2.  Group the tables according to selection
3. Look for patterns
     - look at F and compare with similarities with the driver while in groups of selection

Demultiplexer (n to m)

Have n inputs
Have m = 2 ^s, where s is the number of select input to drive the output
m selection outputs


Demux directs the input data to the output line based on the select
Works like an decoder but it takes what ever D is given
else it will give a 0.
Gives minterm automatically

Applying Demux with a decoder

- Plug in the select in the input of the decoder
- D is plug into E