University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences EECS150 Fall 2002 J. Wawrzynek Homework #3 This homework is due on Friday September 20th by 2pm. Homework will be accepted in the EECS150 homework slot in the cabinet to the right of the main door into 125 Cory. Late homework will be penalized by 50%. No late homework will be accepted after the solution is posted. 1. Multi-level logic. a) Consider the following function expressed in two-level and/or form. Using algebraic manipulation, express the function in three-level or/and/or form: F = ac + ad + bc + bd + e b) Now assume that you can only use two-input and and or gates to implement this function. For both the two-level and the three-level forms, determine the cost in transistors, and the delay in terms of “gate delay”. 2. From Mano: Problems 3-1, 3-8, 3-12, 3-13, 3-14, 3-15, 3-23. 3. You are a design engineer at a big automobile manufacturer and are asked to design the engine controller for the company’s new high-efficiency engine. You check around and discover that no appropriate controller already exists anywhere. You are allowed to choose one of the following: ASIC, FPGA, microprocessor. Which one would you choose and why? Discuss the issues and tradeoffs you considered. 4. Read the online Xilinx Data book (check the class website) pages 1-8. You will probably not understand everything in the data book, but do your best. a) Based on Figure 5 for the simplified block diagram of the slice, estimate the number of configuration bits needed to configure the internals of a slice. Remember configuration bits are used to set all internal multplexors and fill in the tables in the LUTS. Ignore the two boxes above the lower LUT. b) How many block SelectRams are needed to implement a memory with 512 32-bit wide words? Alternatively, many distributed SelectRams (each distributed SelectRam is one LUTs) would be needed? 5. Draw a simple diagram that shows how you could construct a 5-LUT from a collection of 4LUTs. Is there a simpler way to do this if you where allowed to use something in addition to 4-LUTs? 6. Given the logic function shown in the circuit below and the configurable logic block (CLB), partition the circuit so that it can be implemented with a collection of CLBs. Try to use as few a number of CLBs as possible. You can extend the table or leave some rows blank. If you add any new signal wires, label the wires. Configurable Logic Block x2 x1 x0 a b c d t1 t9 (configuration bit) s 3-LUT 0 x3 e f g t2 t10 x4 t3 t11 x5 t4 t12 x6 y t5 t13 x7 t6 t14 x8 t7 t15 x9 t8 x10 t16 3-LUT 1 0 FF h 1 7. Given the logic circuit and configurable logic block (CLB) shown below, partition the logic circuit so that it can be implemented with as little a number of CLBs as possible. Indicate your answer by filling in the table: one row per CLB used; write in the name of the signal wire from the logic circuit that corresponds to the CLB input or output; for the configuration bit, s, write in a “0” or “1”. You can leave some rows blank. y x n1 z n3 n5 n2 n4 a b c s h Configurable Logic Block (configuration bit) s a b c 0 3-LUT FF h 1