ebook img

Technology Mapping for Lookup-Table Based Field-Programmable Gate Arrays PDF

183 Pages·2002·0.75 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Technology Mapping for Lookup-Table Based Field-Programmable Gate Arrays

Technology Mapping for Lookup(cid:0)Table Based Field(cid:0)Programmable Gate Arrays by Robert J(cid:0) Francis A thesis submitted in conformity with the requirements for the degree of Doctor of Philosophy Graduate Department of Electrical Engineering Computer Group University of Toronto Toronto(cid:0)Ontario Canada (cid:0)cRobert J(cid:1) Francis (cid:2)(cid:3)(cid:3)(cid:4) Abstract Field Programmable Gate Arrays (cid:0)FPGAs(cid:1) provide a new approach to Applica(cid:2) tion Speci(cid:3)c Integrated Circuit (cid:0)ASIC(cid:1) implementationthat features both large scale integration and user programmability(cid:4) The logic capacity of these devices is large enough to make automated synthesis essential for the e(cid:5)cient design of FPGA cir(cid:2) cuits(cid:4) This thesis focuses on the class of FPGAs that use lookup tables (cid:0)LUTs(cid:1) to implementcombinationallogic(cid:4) A K(cid:2)input lookup table is a digital memorythat can implement any Boolean function of K variables(cid:4) Lookup table circuits present new challenges for logic synthesis(cid:6) particularly technology mapping(cid:6) which is the phase of logic synthesis directly concerned with the selection of the circuit elements to imple(cid:2) ment the (cid:3)nal circuit(cid:4) Conventional library(cid:2)based technology mapping has di(cid:5)culty with lookup table circuits because each lookup table can implement a large number of di(cid:7)erent functions(cid:4) This thesis presents two new technology mapping algorithms that construct cir(cid:2) cuits of K(cid:2)input lookup tables from networks of ANDs(cid:6) ORs and NOTs(cid:4) The (cid:3)rst algorithm(cid:6) referred to as the area algorithm(cid:6) minimizes the number of LUTs in the (cid:3)nal circuit(cid:6) and the second algorithm(cid:6) referred to as the delay algorithm(cid:6) minimizes the number of levels of LUTs(cid:4) The key feature of both algorithms is the application of bin packing to the decomposition of nodes in the original network(cid:4) The original network is (cid:3)rst partitioned into a forest of trees(cid:6) each of which is mapped separately(cid:4) For each tree(cid:6) the circuitconstructed by the area algorithmis shown to be an optimal tree of LUTs for values of K (cid:0) (cid:8) and the circuit constructed by the delay algorithm is an optimal tree of LUTs for values of K (cid:0) (cid:9)(cid:4) Both algorithms also include op(cid:2) timizations that exploit reconvergent paths(cid:6) and the replication of logic at fanout nodes to further optimize the (cid:3)nal circuit(cid:4) The algorithms described in this thesis are implemented in a software program called Chortle and experimentalresults for a set of benchmark networks demonstrate the e(cid:7)ectiveness of the algorithms(cid:4) i Acknowledgements First and foremost(cid:6) I would like to thank Dr(cid:4) Jonathan Rose and Dr(cid:4) Zvonko Vranesic(cid:4) This thesis could not have been completed without their advice and guid(cid:2) ance(cid:4) I owe a unique debt to Jonathan for introducing me to the new and exciting world of FPGAs(cid:4) I would also like to thank Dr(cid:4) David Lewis for encouraging me to return to graduate school(cid:4) Rejoining the communityof students in the Sandford Flemingand Pratt labs has been one of the greatest rewards of the last (cid:3)ve years(cid:4) I thank you all for providing inspiration and friendship(cid:4) I can only begin to express mygratitude to Ming(cid:2)Wen Wu for her constant under(cid:2) standing and encouragement(cid:4) Thank you Ming(cid:4) Iwould also liketo thank myparents and Ann(cid:6) Jyrki(cid:6) Bill(cid:6) and Cathy(cid:6) for their wholehearted support(cid:6) and Emily(cid:6) Laura(cid:6) Naomi(cid:6) and Gillian(cid:4) for the joy and wonder that helped me keep it all in perspective(cid:4) A special thanks goes to Ya(cid:2)Ya for sharing her strength and warmth when she herself faced adversity(cid:4) Finally(cid:6) I would like to thank the Natural Sciences and Engineering Research Council(cid:6) the Information Technology Research Centre(cid:6) the University of Toronto(cid:6) and my parents for the (cid:3)nancial support that permitted me to pursue a full(cid:2)time degree(cid:4) This thesis is dedicated to the memory of Gladys Clara Adams(cid:4) ii Contents (cid:0) Introduction (cid:0) (cid:1) Background (cid:2) (cid:10)(cid:4)(cid:11) Logic Optimization (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:12) (cid:10)(cid:4)(cid:10) Technology Mapping (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13) (cid:10)(cid:4)(cid:10)(cid:4)(cid:11) Rule(cid:2)based Technology Mapping (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13) (cid:10)(cid:4)(cid:10)(cid:4)(cid:10) Library(cid:2)based Technology Mapping (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:11) (cid:10)(cid:4)(cid:10)(cid:4)(cid:14) Cell Generator Technology Mapping (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:14) (cid:10)(cid:4)(cid:14) Lookup Table Technology Mapping (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:8) (cid:10)(cid:4)(cid:14)(cid:4)(cid:11) Xilinx (cid:14)(cid:15)(cid:15)(cid:15) CLBs (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:9) (cid:10)(cid:4)(cid:14)(cid:4)(cid:10) Mis(cid:2)pga (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:9) (cid:10)(cid:4)(cid:14)(cid:4)(cid:14) Asyl (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:13) (cid:10)(cid:4)(cid:14)(cid:4)(cid:16) Hydra (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:10)(cid:15) (cid:10)(cid:4)(cid:14)(cid:4)(cid:8) Xmap (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:10)(cid:11) (cid:10)(cid:4)(cid:14)(cid:4)(cid:9) VISMAP (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:10)(cid:14) (cid:10)(cid:4)(cid:14)(cid:4)(cid:12) DAG(cid:2)Map (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:10)(cid:16) (cid:10)(cid:4)(cid:16) Summary (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:10)(cid:8) (cid:3) The Area Algorithm (cid:1)(cid:2) (cid:14)(cid:4)(cid:11) Mapping Each Tree (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:10)(cid:13) (cid:14)(cid:4)(cid:11)(cid:4)(cid:11) Constructing the Decomposition Tree (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:14)(cid:14) (cid:14)(cid:4)(cid:11)(cid:4)(cid:10) Optimality(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:14)(cid:9) (cid:14)(cid:4)(cid:10) Exploiting Reconvergent Fanout (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:14)(cid:17) iii (cid:14)(cid:4)(cid:14) Replication of Logic at Fanout Nodes (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:16)(cid:14) (cid:14)(cid:4)(cid:16) Summary (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:16)(cid:12) (cid:4) The Delay Algorithm (cid:4)(cid:5) (cid:16)(cid:4)(cid:11) Mapping Each Tree (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:15) (cid:16)(cid:4)(cid:11)(cid:4)(cid:11) Constructing the Decomposition Tree (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:10) (cid:16)(cid:4)(cid:11)(cid:4)(cid:10) Optimality(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:8) (cid:16)(cid:4)(cid:10) Exploiting Reconvergent Paths (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:9) (cid:16)(cid:4)(cid:14) Replication of Logic at Fanout Nodes (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:9) (cid:16)(cid:4)(cid:16) Reducing the Area Penalty (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:12) (cid:16)(cid:4)(cid:16)(cid:4)(cid:11) Avoiding Unnecessary Replication (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:17) (cid:16)(cid:4)(cid:16)(cid:4)(cid:10) Merging LUTs into their Fanout LUTs (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:8)(cid:13) (cid:16)(cid:4)(cid:16)(cid:4)(cid:14) Mapping for Area on Non(cid:2)Critical Paths (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:9)(cid:15) (cid:16)(cid:4)(cid:8) Summary (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:9)(cid:10) (cid:6) Area Optimality (cid:2)(cid:3) (cid:8)(cid:4)(cid:11) Outline for Proof of Lemma (cid:8)(cid:4)(cid:10) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:9)(cid:16) (cid:8)(cid:4)(cid:11)(cid:4)(cid:11) Notation for the Circuit A (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:9)(cid:8) (cid:8)(cid:4)(cid:11)(cid:4)(cid:10) Transforming the Circuit B (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:9)(cid:9) (cid:8)(cid:4)(cid:11)(cid:4)(cid:14) Proof of Lemma (cid:8)(cid:4)(cid:10) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:12)(cid:15) (cid:8)(cid:4)(cid:10) Circuits with Fanout (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:12)(cid:14) (cid:8)(cid:4)(cid:14) Summary (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:12)(cid:14) (cid:2) Delay Optimality (cid:7)(cid:6) (cid:9)(cid:4)(cid:11) Outline for Proof of Lemma (cid:9)(cid:4)(cid:10) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:12)(cid:9) (cid:9)(cid:4)(cid:11)(cid:4)(cid:11) Notation for the Circuit A (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:12)(cid:12) (cid:9)(cid:4)(cid:11)(cid:4)(cid:10) Transforming the Circuit B (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:12)(cid:13) (cid:9)(cid:4)(cid:11)(cid:4)(cid:14) Proof of Lemma (cid:9)(cid:4)(cid:14) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:17)(cid:10) (cid:9)(cid:4)(cid:11)(cid:4)(cid:16) Proof of Lemma (cid:9)(cid:4)(cid:10) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:17)(cid:14) (cid:9)(cid:4)(cid:10) Summary (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:17)(cid:14) iv (cid:7) Experimental Evaluation (cid:5)(cid:4) (cid:12)(cid:4)(cid:11) Results for the Area Algorithm (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:17)(cid:16) (cid:12)(cid:4)(cid:11)(cid:4)(cid:11) Circuits of (cid:8)(cid:2)input LUTs (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:17)(cid:16) (cid:12)(cid:4)(cid:11)(cid:4)(cid:10) Circuits of Xilinx (cid:14)(cid:15)(cid:15)(cid:15) CLBs (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:17)(cid:17) (cid:12)(cid:4)(cid:11)(cid:4)(cid:14) Chortle vs(cid:4) Mis(cid:2)pga (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13)(cid:14) (cid:12)(cid:4)(cid:11)(cid:4)(cid:16) Chortle vs(cid:4) Xmap (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13)(cid:8) (cid:12)(cid:4)(cid:11)(cid:4)(cid:8) Chortle vs(cid:4) Hydra(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13)(cid:8) (cid:12)(cid:4)(cid:11)(cid:4)(cid:9) Chortle vs(cid:4) VISMAP (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13)(cid:17) (cid:12)(cid:4)(cid:10) Results for the Delay Algorithm (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13)(cid:13) (cid:12)(cid:4)(cid:10)(cid:4)(cid:11) Circuits of (cid:8)(cid:2)input LUTs (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:13)(cid:13) (cid:12)(cid:4)(cid:10)(cid:4)(cid:10) Reducing the Area Penalty (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:15)(cid:14) (cid:12)(cid:4)(cid:10)(cid:4)(cid:14) Chortle vs(cid:4) Mis(cid:2)pga (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:15)(cid:12) (cid:12)(cid:4)(cid:10)(cid:4)(cid:16) Chortle vs(cid:4) DAG(cid:2)Map (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:15)(cid:17) (cid:12)(cid:4)(cid:14) Summary (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:15)(cid:13) (cid:5) Conclusions (cid:0)(cid:0)(cid:0) (cid:17)(cid:4)(cid:11) Future Work (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:11)(cid:10) A Optimality of the First Fit Decreasing Algorithm (cid:0)(cid:0)(cid:4) A(cid:4)(cid:11) Bin Packing (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:11)(cid:16) A(cid:4)(cid:10) Outline of Proof (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:11)(cid:9) A(cid:4)(cid:14) Notation (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:11)(cid:17) A(cid:4)(cid:16) Deriving a Complete Set of Cases (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:10)(cid:11) A(cid:4)(cid:16)(cid:4)(cid:11) Eliminating Holes Greater than H (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:10)(cid:11) A(cid:4)(cid:8) How to Prove a Case (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:10)(cid:16) A(cid:4)(cid:8)(cid:4)(cid:11) An Example (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:10)(cid:8) A(cid:4)(cid:8)(cid:4)(cid:10) The General Case (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:10)(cid:17) A(cid:4)(cid:8)(cid:4)(cid:14) Finding the Required Linear Combination (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:14)(cid:15) A(cid:4)(cid:9) Reducing the Number of Cases (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:14)(cid:11) A(cid:4)(cid:12) Presentation of the Cases (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:14)(cid:10) A(cid:4)(cid:17) K (cid:18) (cid:10) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:14)(cid:14) v A(cid:4)(cid:13) K (cid:18) (cid:14) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:14)(cid:9) A(cid:4)(cid:11)(cid:15) K (cid:18) (cid:16) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:16)(cid:15) A(cid:4)(cid:11)(cid:11) K (cid:18) (cid:8) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:16)(cid:12) A(cid:4)(cid:11)(cid:10) K (cid:18) (cid:9) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:9)(cid:11) A(cid:4)(cid:11)(cid:14) Counter Examples (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:12)(cid:11) A(cid:4)(cid:11)(cid:16) Summary (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:11)(cid:12)(cid:11) Bibliography (cid:0)(cid:7)(cid:1) vi Chapter (cid:0) Introduction Field(cid:2)Programmable Gate Arrays (cid:0)FPGAs(cid:1) provide a new approach to Application Speci(cid:3)c Integrated Circuit (cid:0)ASIC(cid:1) implementation that features both large scale integration and user programmability(cid:4) An FPGA consists of a regular array of logic blocks that implementcombinational and sequential logic functions and a user(cid:2) programmable routing network that provides connections between the logic blocks(cid:4) In conventional ASIC implementation technologies(cid:6) such as Mask Programmed Gate Arrays and Standard Cells(cid:6) the connections between logic blocks are implementedby metalizationat a fabricationfacility(cid:4) Inan FPGA theconnectionsare implementedin the (cid:3)eld using the user(cid:2)programmable routing network(cid:4) This reduces manufacturing turn(cid:2)around times from weeks to minutes and reduces prototype costs from tens of thousands of dollars to hundreds of dollars (cid:19)Rose(cid:13)(cid:15)(cid:20)(cid:4) There are(cid:6) however(cid:6) density and performance penalties associated with user(cid:2) programmable routing(cid:4) The programmable connections(cid:6) which consist of metal wire segmentsconnectedby programmableswitches(cid:6)occupygreater area and incurgreater delay than simple metal wires(cid:4) To reduce the density penalty(cid:6) FPGA architectures employ highly functional logic blocks(cid:6) such as lookup tables(cid:6) that reduce the total number of logic blocks and hence the number of programmable connections needed to implementa given application(cid:4) These complex logic blocks also reduce the perfor(cid:2) mancepenaltyby reducingthe numberof logicblocks and programmableconnections on the critical paths in the circuit(cid:4) (cid:11) The high functionality of FPGA logic blocks presents new challenges for logic synthesis(cid:4) This thesis focuses on new approaches to technology mapping for FPGAs that use lookup tables to implement combinational logic(cid:4) A K(cid:2)input lookup table (cid:0)LUT(cid:1) is a digital memory that can implement any Boolean function of K variables(cid:4) K The K inputs are used to address a (cid:10) by (cid:11)(cid:2)bit memorythat stores the truth table of the Boolean function(cid:4) Lookup table(cid:2)based FPGAs account for a signi(cid:3)cant portion of the commercial FPGA market (cid:19)Rohl(cid:13)(cid:11)(cid:20) and recent studies on FPGA logic block architectures have suggested that lookup tables are an area(cid:2)e(cid:5)cient method of im(cid:2) plementing combinational functions (cid:19)Rose(cid:17)(cid:13)(cid:20)(cid:6) (cid:19)Rose(cid:13)(cid:15)(cid:20)(cid:6) (cid:19)Koul(cid:13)(cid:10)(cid:20) and that the delays of LUT(cid:2)based FPGAs are at least comparable to the delays of FPGAs using other types of logic blocks (cid:19)Sing(cid:13)(cid:11)(cid:20)(cid:6) (cid:19)Sing(cid:13)(cid:10)(cid:20)(cid:4) ThelevelofintegrationavailableinFPGAsislargeenough to makemanualcircuit design impracticaland thereforeautomated logic synthesisis essential for the e(cid:5)cient designofFPGAcircuits(cid:4) Inaddition(cid:6)thedevelopmentofFPGAarchitecturesrequires e(cid:7)ective logic synthesis to evaluate the bene(cid:3)ts of alternative logic blocks(cid:4) Logic synthesis(cid:6) in general(cid:6) takes a functional description of the desired circuit(cid:6) and using the set of circuitelementsavailable in the ASIC implementationtechnology(cid:6) produces an optimized circuit(cid:4) For an FPGA the set of available circuit elements consists of the array of logic blocks(cid:4) Technology mapping is the logic synthesis task that is directly concerned with selecting the circuit elements used to implement the optimized circuit(cid:4) Previous approaches to technology mapping have focused on using circuit elements from a limited set of simple gates(cid:4) However(cid:6) such approaches are inappropriate for complex logic blocks where each logic block can implement a large number of functions(cid:4) A K (cid:0) K(cid:2)input lookup table can implement(cid:10) di(cid:7)erent functions(cid:4) For values of K greater than(cid:14)thenumberofdi(cid:7)erentfunctionsbecomestoo largeforconventionaltechnology mapping(cid:4) Therefore(cid:6) new approaches to technology mapping are required for LUT(cid:2) based FPGAs(cid:4) This thesis presents two technology mapping algorithms that are among the ear(cid:2) liest work speci(cid:3)cally addressing technology mapping for LUT circuits(cid:4) Both of these (cid:10) a(cid:1) Boolean network b(cid:1) Lookup table circuit Figure (cid:11)(cid:4)(cid:11)(cid:21) Network and Circuit algorithms implement a Boolean network as a circuit of K(cid:2)input LUTs(cid:4) For exam(cid:2) ple(cid:6) consider the network shown in Figure (cid:11)(cid:4)(cid:11)a(cid:4) This network can be implemented by the circuit of (cid:8)(cid:2)input lookup tables shown in Figure (cid:11)(cid:4)(cid:11)b(cid:4) In this (cid:3)gure(cid:6) dotted boundaries indicate the function implemented by each lookup table(cid:4) Theoriginalmotivationforthisthesiswasan architecturalinvestigationintoLUT(cid:2) based FPGA architectures(cid:19)Rose(cid:17)(cid:13)(cid:20)(cid:6) (cid:19)Rose(cid:13)(cid:15)(cid:20)(cid:4) To support this investigation(cid:6)a simple (cid:1) LUT technology mapping program called chortle was developed(cid:4) This program used a greedy algorithm to decompose large functions into smaller functions and pack these into K(cid:2)input LUTs(cid:4) Experience with chortle lead to the development of a more e(cid:7)ective program called Chortle(cid:0)x (cid:19)Fran(cid:13)(cid:15)(cid:20)(cid:4) The key feature of this program was the decomposition of nodes in the network to reduce the number of LUTs in the (cid:3)nal circuit(cid:4) The network was (cid:3)rst partitioned into a forest of trees and dynamic (cid:0) This program was based on the parsing and data structures of the Tortle (cid:5)Lewi(cid:3)(cid:2)(cid:6) functional simulator(cid:0) and used a chewing action to decompose functions too large to (cid:7)t into a single LUT(cid:0) hence the name chortle(cid:1) (cid:14)

Description:
This thesis focuses on the class of FPGAs that use lookup tables (LUTs) to with lookup table circuits because each lookup table can implement a large number.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.