Combinational circuits Changes at inputs propagate at logic
Combinational circuits Changes at inputs propagate at logic speed to outputs Not clocked No internal state (memoryless) Datorteknik Digital. Circuits bild 1
Example I I 0 1 O & 1 I 2 O & Datorteknik Digital. Circuits bild 2
NOT combinational & & S R - latch (has a state) D Q D - flip-flop (clocked, no path) Datorteknik Digital. Circuits bild 3
Combinational logic - can be connected into sequences 1 1 1 - can be connected parallel 1 1 & 1 1 1 Datorteknik Digital. Circuits bild 4
Combinatorial loop This is OK: 1 1 1 But what is this? 1 1 1 Datorteknik Digital. Circuits bild 5
Combinationial loop 1 1 0 1 1 1 0 Impossible! Logical nonsense Electrical trouble Datorteknik Digital. Circuits bild 6
Combinational loop This is a “combinational loop” 1 1 1 We must never have, or form, a combinational loop Datorteknik Digital. Circuits bild 7
How is this usually solved? D Q “The edge-triggered flip-flop!” Datorteknik Digital. Circuits bild 8
The edge-triggered flip-flop! in D Q out 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” Datorteknik Digital. Circuits bild 9
Beginners explanation D Q t clock 1 0 A “rising edge” A “falling edge” Flipflop “samples” its input at the rising edge and presents that value on the output. Datorteknik Digital. Circuits bild 10
Flip flops in the circuit D Q We will put flip flops in our circuit (Good for “breaking” combinational loops) and clock them all with the same clock Datorteknik Digital. Circuits bild 11
Timing of a positive edge triggered D flip-flop Setup time, tsetup the time the D input must be stable before the rising edge of the flip-flop. Hold time, thold the time the D input must be stable after the rising edge of the clock D Clk Q t setup t 1, 0 or metastable! hold If the setup or hold time parameters are violated the Q output will be either logic 0, logic 1 or the flip-flop will enter a metastable state, but will eventually become a valid logic level. Datorteknik Digital. Circuits bild 12
Clock to output delay D Clk Q t p. LH(CQ) t p. HL(CQ) t 1, 0 or metastable! hold t setup Clock-to-output delay, tp The delay of a low to high transition and the delay of a high to low transition may be different. Datorteknik Digital. Circuits bild 13
Example BAD 1 OK D Q 1 Suppose the flip flop holds a “ 1”. Let’s clock this circuit. . . Datorteknik Digital. Circuits bild 14
Example 0 D Q 1 1 0 Holding Clock “pulse” one “clock cycle” Datorteknik Digital. Circuits bild 15
Example 0 D Q 1 1 0 Samples the “ 0” Datorteknik Digital. Circuits bild 16
Example 0 D Q 0 1 0 The exact instant that the output changes! Datorteknik Digital. Circuits bild 17
Example 1 A very short time later. . . D Q 0 1 1 . . . the circuit becomes stable again Called a logic “delay” (Propagation through the combinational logic) Datorteknik Digital. Circuits bild 18
Example 1 And it stays like that. . D Q 0 1 1 . . . until the next clocking Datorteknik Digital. Circuits bild 19
Combinational logic in the MIPS Zero extend box Sign extend box Controllable sign/zero extend box “Tap box” (pick out fields of bits) Shift left two bits Datorteknik Digital. Circuits bild 20
Zero extend box 16 zeroes ! In[0. . 15] 16 Out[16. . 31] 16 16 Out[0. . 15] Datorteknik Digital. Circuits bild 21
Sign extend box In[15] copied 16 times In[0. . 15] 16 Out[16. . 31] 16 16 Out[0. . 15] Datorteknik Digital. Circuits bild 22
Controllable zero / sign extend box Control In[0. . 15] 16 In[15] & 16 Out[16. . 31] 16 Out[0. . 15] Datorteknik Digital. Circuits bild 23
Tap box Contains no logic circuits Regroup input bits 6 5 Instruction 32 5 5 16 Opcode field Rs field Rt field Rd field Immediate field Datorteknik Digital. Circuits bild 24
Shift left two bits In bit [0. . 31] Out bit [2. . 31*] 32 0 Out bit 1 0 Out bit 0 * Two bits lost Datorteknik Digital. Circuits bild 25
Arbitrary logic Given a truth table: A 0 0 - B 0 1 1 C 0 1 A B C D D 0 1 0 X 1 0 1 Y 1 1 0 Z 0 1 Logic X Y Z Digital design. . . . Datorteknik Digital. Circuits bild 26
So, it’s enough just to have the truth table. . . We have tools to build the “logic box” “Logic synthesis” Datorteknik Digital. Circuits bild 27
The multiplexor Special truth table: A 0 1 - B Cont - 0 0 1 1 1 Out 0 1 Easy to generalise to “A, B, C, D. . ” A Out B Cont Datorteknik Digital. Circuits bild 28
Shifters Two kinds: logical-- value shifted in is always "0" msb lsb "0" arithmetic-- on right shifts, sign extend msb lsb "0" Note: these are single bit shifts. A given instruction might request 0 to 32 bits to be shifted! Datorteknik Digital. Circuits bild 29
Combinational Shifter from MUXes Basic Building Block sel A B 1 0 D 8 -bit right shifter A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 S 2 S 1 S 0 1 0 1 0 1 0 1 0 1 0 1 0 R 7 R 6 R 5 R 4 R 3 R 2 What comes in the MSBs? How many levels for 32 -bit shifter? What if we use 4 -1 Muxes ? R 1 R 0 Datorteknik Digital. Circuits bild 30
General Shift Right Scheme using 16 bit example S 0 (0, 1) S 1 (0, 2) S 2 (0, 4) S 3 (0, 8) If added Right-to-left connections could support Rotate (not in MIPS but found in ISAs) Datorteknik Digital. Circuits bild 31
Example: 4 bit Logical Right Shifter A 3 A 2 A 1 A 0 ” 0” S 1 If added Right-to-left connections could support Rotate (not in MIPS but found in ISAs) Datorteknik Digital. Circuits bild 32
Example: 4 bit logical Right Shifter II • Shift two bits right A 3 A 2 A 1 A 0 ” 0” S 0 = 0 ” 0” A 3 ” 0” A 2 A 3 A 1 A 2 A 0 S 1 = 1 Datorteknik Digital. Circuits bild 33
Example: 4 bit Right Shifter III A 3 A 2 A 1 A 0 ” 0” S 0 = 0 ” 0” A 3 ” 0” A 2 ” 0” A 3 A 1 A 2 A 0 S 1 = 1 A 3 A 2 If added Right-to-left connections could support Rotate (not in MIPS but found in ISAs) Datorteknik Digital. Circuits bild 34
Barrel Shifter Technology-dependent solutions: 1 transistor per switch: SR 3 SR 2 SR 1 SR 0 D 3 D 2 A 2 D 1 A 1 D 0 A 3 A 2 A 1 A 0 Datorteknik Digital. Circuits bild 35
What about adders? A B 32 32 + 32 C 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 Datorteknik Digital. Circuits bild 36
Adders are special. . . We’ll talk about them later Also, multipliers Let’s just assume they exist Datorteknik Digital. Circuits bild 37
Subtract ? A-B? = A + NOT (B) + 1 A B 32 1 32 32 + 32 32 1 32 + 32 Yes, there’s an easier way. . . Datorteknik Digital. Circuits bild 38
Controllable Add / Sub ? A B Add Subtract Choose Datorteknik Digital. Circuits bild 39
How it’s really done 32 A + 32 32 32 B =1 Carry in Choose Datorteknik Digital. Circuits bild 40
What’s the point of this ? 32 32 ALU 32 Control points The ALU is combinational Must have control signals to choose! Datorteknik Digital. Circuits bild 41
32 -bit wide inverter ? In bit[31] 1 Out bit[31] In bit[30] 1 Out bit[30] In bit[1] 1 Out bit[1] In bit[0] 1 Out bit[0] 32 1 32 Easier to draw! Datorteknik Digital. Circuits bild 42
Same idea : 32 - bit wide multiplexors 32 - bit wide clocked registers, such as the – Program counter – write back data register 32 D Q 32 Clock signal not drawn Datorteknik Digital. Circuits bild 43
Memories ? Register file Instruction memory Data memory We’ll treat these as combinational (not “clocked”) Datorteknik Digital. Circuits bild 44
- Slides: 44