UCR CS220, Fall 2000, Prof. Frank Vahid Homework 2, due Tuesday 11/7/00 at the beginning of lecture Given the following computations: y = ( (((a+b)*e)*f) + (((a+b)+c)+d) ) + (g*h) z = i * j 1. Draw a dataflow graph that directly represents the computations as written, obeying the parentheses fully. 2. Redraw a single dataflow graph that improves the original DFG in two ways. One is to use tree height reduction to reduce the critical path from 5 adds to 4 adds, and the other is to use common subexpression elimination to eliminate redundant computation of a+b. 3. Use list scheduling to schedule the improved DFG in four cycles with minimal resources. Your resource library consists of 1 adder and 1 multiplier, each with 1 cycle delay. 4. Use force-directed scheduling to schedule the improved DFG in four cycles with minimal resources, using the same library. 5. For the better of the two results (if different), bind additions to adders by applying weighted clique partitioning, where the weights represent common sources plus common destinations. 6. For this same result, assign variables to registers using the left-edge algorithm. 7. Draw the final datapath; do not do connection merging.