Logic gate level part 4

advertisement
Logic gate level
Part 4: combinational devices
K-maps & don’t care conditions
• It isn’t always necessary to process all possible
input combinations, since some are never
expected to be present
• Such input combinations are called don’t care
conditions, since we don’t care about the
outputs they’d produce should they ever be
present
K-maps & don’t care conditions
• With don’t care condition present, you can
arbitarily choose either 1 or 0 for output
• Choice of output (1 or 0) for don’t care
conditions can aid in minimization
• Sigma notation for don’t care conditions:
(x,y,z) + d(a,b) where x,y,z,a and b all represent
lines in the function’s truth table
• We represent don’t care conditions in a K-map
with Xs
Example
• K-map for X(a,b,c) = (2,4,6) + d(0,7)
X
1
1
X
1
• With d.c. conditions, since we don’t care, we can
choose to include, or not include, boxes with X
designations in K-maps
 X is “wildcard” condition – can be treated as either 1 or 0
 In K-map above, if minterm 0 is treated as 1 and 7 as 0, get
(0,2,4,6) = c’
Combinational Devices
• Many devices have input line called an enable,
which acts like on/off switch
– if enable is 0, all outputs are 0 regardless of other
inputs
– if enable is 1, output depends on input to function
that specifies device
• AND gate can implement an enable
AND gate as enable
Selective inverter
• Has data line & invert line
– If invert = 1, output is complement of data
– If invert = 0, output is data unchanged
• Implement with XOR gate
Multiplexer
• Device that selects one of several inputs to
route to single output
• Consists of set of data lines & control lines
– control lines determine which data input will be
output
– n control lines can control 2n data lines
8-input multiplexer
Combination of control line
(s0-s2) inputs determines
which of 8 data lines (d0-d7) is
expressed as output value
Implementation of multiplexer
• Each data line ANDed with combination of
control lines
• Result of ANDs is ORed together to get output
• Illustration on next slide shows 4-input version
of this scheme; 8-input version (like previous
example) would involve 8 4-input AND gates
4-input mux implementation
Binary decoder
• Takes input from control lines and sets one of
several output lines to 1, rest to 0
• Output value depends on input value(s)
Binary decoder implementation
Decoder with enable
• When enable line is 1, device operates
normally
• When enable line is 0, all outputs are 0
• Requires extra input to each AND gate
Demultiplexer
• Routes single input value to one of several
output lines
• Really just decoder with enable: input line
connected to enable
Building the CPU
• Control unit: portion of CPU that:
– ensures synchronization of events – i.e. sending &
receiving bits on the bus
– selects next instruction
– stores values in appropriate locations
• Made up of combinational devices
Bus
• Internal bus: common path connecting all registers in
a register machine’s CPU
– each register composed of multiple bits, all of which can
be transferred simultaneously to another register
– bus composed of parallel wires – as many lines as there
are bits in registers
– may also include control lines indicating which registers
should send & receive
– action must be coordinated, as bits from only one register
at a time can be broadcast over bus
– coordination requires timing mechanism
Putting it together
• Parallel AND gates used to connect registers to
bus
• One input line to each gate is data waiting to
be transmitted, second is select signal (CLOCK)
• Date transmitted only if select signal is 1
Example: 2 8-bit registers tied to 8bit bus with select (clock) signal
Strobing
• When select signal is high, each gate allows
signal to flow
– clock (select) ANDed with each bit from registers
– all bits transmitted simultaneously, and received
simultaneously at destination register
Clock
• Source of all select signals; generates pulses at fixed
rate
• Normal state is low (0); transmits 1 at regular interval
• Speed measured in hertz:
– 1 Hz = 1 cycle/second
– 1 MHz = 1,000,000 cycles/second
– 1 cycle ~ 1 step of fetch/execute cycle
• Time interval between pulses measured in fractions
of seconds – for PC, typically nanoseconds (1 s ~
1/1,000,000,000 second)
Arithmetic Logic Unit
• Part of the computer that computes
• All operations performed using combinations
of logic circuits
– logical operations are performed by connecting
operands bit-wise through ganged gates of
appropriate type
– arithmetic operations are also performed logically:
operands connected bit-wise through ganged
gates of appropriate type(s)
Performing arithmetic operations
• Can break down any binary arithmetic operation into
set of operations on pairs of bits
• Each unique pair of bits combines to produce
– result (0 or 1)
– carry (0 or 1) when result is larger than either of the two
operands
• These 2 output bits can be viewed as single 2-bit
number representing result of arithmetic operation
on two 1-bit operands
Performing arithmetic operations
• Example: addition of two operands produces
the results shown in the truth table below:
• Notes on truth table
– First output (Sum) same as XOR
– Second output (Carry) same as AND
Half adder
• A half adder is the logical construction that
implements the truth table on the previous
slide
• Half adders take single bits as input, produce 2
outputs
Full adder
• Addition of two bits accomplishes only half
the task of binary addition, unless we’re
satisfied with working in single-digit numbers
• To complete an addition operation, we must
add the carry to the next (left) bit
• Can construct full adder from half adders;
carry from previous bit sum is ORed with carry
from correct bit
Implementation of full adder from
two half-adders
By chaining together several of these
constructs, we can build adders for multipledigit numbers
Block diagram fo 4-digit adder
Subtraction
A
B
Result
(A-B)
carry
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
• Result column
(difference) can be
expressed as:
ab + a’b’
• Carry column:
a’b
Same device built with NAND gates
Notes on adders
• If last bit in series of half adders produces an
non-zero carry, result will overflow
• An adder constructed from a series of half
adders is called a cascading adder – results
cascade from right to left as previous carries
must be determined before subsequent adds
are performed
Adder as black box
• Control unit delivers data to input registers in
ALU
• Device select signal triggers ALU to perform
addition & send result to result register
• Control unit causes result to be copied to its
destination
Download