Datorteknik DigitalCircuits bild 1 Combinational circuits Changes at inputs propagate at logic speed...
-
Upload
janet-woodman -
Category
Documents
-
view
215 -
download
1
Transcript of Datorteknik DigitalCircuits bild 1 Combinational circuits Changes at inputs propagate at logic speed...
Datorteknik DigitalCircuits bild 1
Combinational circuits
Changes at inputs propagate at logic speed to outputs
Not clocked
No internal state (memoryless)
Datorteknik DigitalCircuits bild 3
NOT combinational
&
&
S R - latch (has a state)
D Q
D - flip-flop (clocked, no path)
Datorteknik DigitalCircuits bild 4
Combinational logic
1 11
- can be connected into sequences
- can be connected parallel
1
1
11
&
1
Datorteknik DigitalCircuits bild 6
Combinatorial loop
1 111 0 1 0
Impossible!Logical nonsenseElectrical trouble
Datorteknik DigitalCircuits bild 7
Combinational loop
1 11
This is a “combinational loop”
We must never have, or form, a combinational loop
Datorteknik DigitalCircuits bild 9
The edge-triggered flip-flop!
Never a combinational path from in to out
A memory device, holds the value of “Q” until “clocked”
Ignores the value at “in” until “clocked”
D Qin out
Datorteknik DigitalCircuits bild 10
Beginners explanation
Flipflop “samples” its input at the rising edge
Flipflop presents that value at the falling edge
D Q
t
clock 10
A “rising edge” A “falling edge”
Datorteknik DigitalCircuits bild 11
Flip flops in the circuit
We will put flip flops in our circuit(Good for “breaking” combinational loops)
and clock them all with the same clock
D Q
Datorteknik DigitalCircuits bild 12
Example
D Q
t 0 1Assume we have this:
1 0
clock = 0
At this time the D-FF “senses” the “1” at its inputNO PATH!
At this time, it lets that“1” appear at its output
Never combinational path thru!
Datorteknik DigitalCircuits bild 13
Example
1BAD
OKD Q 1 Suppose the flip flop
holds a “1”.Let’s clock this circuit...
Datorteknik DigitalCircuits bild 16
Example
D Q 10 1 0
Already sampled
But output hasn’t changed yet!
Datorteknik DigitalCircuits bild 18
Example
D Q 11 0 1
... the circuit becomesstable again
A very short time later...
Called a logic “delay”(Propagation through the combinational logic)
Datorteknik DigitalCircuits bild 19
Example
D Q 11 0 1
... until the next clockingAnd it stays like that....
Datorteknik DigitalCircuits bild 20
Back to combinational logic
Zero extend box
Sign extend box
Controllable sign/zero extend box
“Tap box” (pick out fields of bits)
Shift left two bits
Datorteknik DigitalCircuits bild 21
Zero extend box
16
16
16
In[0..15]
Out[16..31]
Out[0..15]
16 zeroes !
Datorteknik DigitalCircuits bild 22
Sign extend box
16
16
16
In[0..15]
Out[16..31]
Out[0..15]
In[15] copied16 times
Datorteknik DigitalCircuits bild 23
Controllable zero / sign extend box
16
16
16
In[0..15]
Out[16..31]
Out[0..15]
In[15]&
Control
Datorteknik DigitalCircuits bild 24
Tap box
Contains no logic circuits
Regroup input bits
32
5
5
5
16
6Opcode field
Instruction
Rs field
Rt field
Rd field
Immediate field
Datorteknik DigitalCircuits bild 25
Shift left two bits
32 Out bit [2..31*]
In bit [0..31] Out bit 1
Out bit 0
0
0
* Two bits lost
Datorteknik DigitalCircuits bild 26
Arbitrary logic
Given a truth table:A B C D X Y Z
0 0 0 0 1 1 0
0 1 - 1 0 1 -
- 1 1 0 1 0 1
Digital design.......
Logic
ABCD
XYZ
Datorteknik DigitalCircuits bild 27
So, it’s enough just to have the truth table.....
We have tools to build the “logic box”
“Logic synthesis”
Datorteknik DigitalCircuits bild 28
The multiplexor
Special truth table:
A B Cont Out
0 - 0 0
1 - 0 1
- 0 1 0
- 1 1 1
Easy to generalise to
“A, B, C, D....”
A
B
Cont
Out
Datorteknik DigitalCircuits bild 29
Shifters
Two kinds: logical-- value shifted in is always "0"
arithmetic-- on right shifts, sign extend
msb lsb"0" "0"
msb lsb "0"
Note: these are single bit shifts. A given instruction might request 0 to 32 bits to be shifted!
Datorteknik DigitalCircuits bild 30
Combinational Shifter from MUXes
What comes in the MSBs?
How many levels for 32-bit shifter?
What if we use 4-1 Muxes ?
1 0sel
A B
D
Basic Building Block
8-bit right shifter
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
S2 S1 S0A0A1A2A3A4A5A6A7
R0R1R2R3R4R5R6R7
Datorteknik DigitalCircuits bild 31
General Shift Right Scheme using 16 bit example
If added Right-to-left connections couldsupport Rotate (not in MIPS but found in ISAs)
S 0 (0,1)
S 1(0, 2)
S 3(0, 8)
S 2(0, 4)
Datorteknik DigitalCircuits bild 32
Barrel Shifter
Technology-dependent solutions: 1 transistor per switch:
D3
D2
D1
D0
A2
A1
A0
A3 A2 A1 A0
SR0SR1SR2SR3
Datorteknik DigitalCircuits bild 33
What about adders?
A[0] A[1] .... A[31] B[0] ....... B[31] C[0] C[1] .... C[31]
Impractical to represent by truth table
Exponential in number of input bits
32
32
32
A
BC+
Datorteknik DigitalCircuits bild 34
Adders are special .....
We’ll talk about them later
Also, multipliers
Let’s just assume they exist
Datorteknik DigitalCircuits bild 35
Subtract ?
A - B ?
= A + NOT (B) + 1
Yes, there’s an easier way...
32
32
32
32
32
32
132
A
B
1+
+
Datorteknik DigitalCircuits bild 38
What’s the point of this ?
The ALU is combinational
Must have control signals to choose!
32
32
32ALU
Control points
Datorteknik DigitalCircuits bild 39
32-bit wide inverter ?
1
1
1
1
1
32 32
In bit[31]
In bit[30]
In bit[1]
In bit[0]
Out bit[31]
Out bit[30]
Out bit[1]
Out bit[0]
Easier to draw!
Datorteknik DigitalCircuits bild 40
Same idea :
32 - bit wide multiplexors
32 - bit wide clocked registers, such as the– Program counter
– write back data register
D Q32 32
Clock signalnot drawn