Datapath --- A collection of registers, logic, ports and *lots* of buttons Controlled via a control work Page 304 -- Datapath register file two read and one write port On a single cycle Load into the write Read from the read In this case, the cycle "begins" with the read and ends with write Note -- in some instances it would be appropriate to consider the write and read's to be simultaneous... control buttons for the register file ALU Studied in section 5.5 -- p. 179, 180 (arithmetic extender), and 181 (logic extender) look at 179... When M = 1, LE always passes a_i unchanged AE produces either 1, b_i, b_i', or 0 at b input When M = 0, AE produces 0 LE produces, NOT, AND, EX-OR (though not in 179) or OR look at table on 304 Shifter Studied in section 5.11 (p. 5.23) look at table in 304 First, go through example in book ... P. 305 -- the algorithm control words for the algorithm p. 307 -- the state diagram the state table -- input is output to be a 32 row specification 3 old state + 2 input -> 3 new state p. 308 -- 32 place Karnaugh map for the state table for the state 3 old state + 2 input -> 3 new state + 20 outputs p. 309 -- the implementation of this beast ! consider this I = 0 S = 1 while (1) { I = I + S ; output I ; S = S + 2 ; } How would you implement this.... I --> R1 S --> R2 2 --> R3 I <- 0 S <- I+1 R3 <- S+1 loop: I <- I+S and output I S <- S+R3 goto loop Do the control words! IE WRA RDA-A RDA-B ALUop ShftOp OE 0 R1 0 0 OR Pass 0 I <- 0