Parallel-Prefix Structures for Binary and Modulo
Total Page:16
File Type:pdf, Size:1020Kb
PARALLEL-PREFIX STRUCTURES FOR BINARY AND MODULO f2n − 1; 2n; 2n + 1g ADDERS By JUN CHEN Bachelor of Science in Information and Control Engineering Shanghai Jiao Tong University Shanghai, China 2000 Master of Science in Electrical Engineering Illinois Institute of Technology Chicago, IL, U.S.A. 2004 Submitted to the Faculty of the Graduate College of Oklahoma State University in partial fulfillment of the requirements for the Degree of DOCTOR OF PHILOSOPHY December, 2008 PARALLEL-PREFIX STRUCTURES FOR BINARY AND MODULO f2n − 1; 2n; 2n + 1g ADDERS Dissertation Approved: Dr. James E. Stine Dissertation Advisor Dr. Louis G. Johnson Dr. Sohum Sohoni Dr. Hermann G. W. Burchard Dr. A. Gordon Emslie Dean of the Graduate College ii ACKNOWLEDGMENTS First, I would like to thank my advisor, Dr. James E. Stine, for his continuous efforts on helping me with the work through a Ph.D. degree. His enthusiasm in teaching, positive thinking, along with his strong professional strengths, guided me towards the completion of this degree. My family's support is also greatly appreciated. This work cannot be done without the support from my parents Guangzhao Chen and Shengyuan Chen and sister Yu Chen. I am very proud of being able to work with Ivan, my fellow at VLSI Computer Archi- tecture Group (VCAG). Thanks also go to Johannes Grad, an alumni of Illinois Institute of Technology, who helped me much on EDA tools. Finally, I would like to thank all the committee members, Dr. Johnson, Dr. Sohoni, Dr. Burchard and Dr. Stine. Thank you all for everything you have done to help through. iii TABLE OF CONTENTS Chapter Page 1 Introduction 1 1.1 Motivations . 1 1.2 Carry-Propagate Adders . 2 1.3 Algorithmic Architectures for Parallel-Prefix Binary and Modulo 2n 1 Adders . 3 1.4 Research Contributions . 4 1.5 Dissertation Organized . 5 2 Binary Adder Schemes 6 2.1 Binary Adder Notations and Operations . 6 2.2 Ripple-Carry Adders (RCA) . 9 2.3 Carry-Select Adders (CSEA) . 10 2.4 Carry-Increment Adders (CINA) . 13 2.5 Carry-Skip Adders (CSKA) . 15 2.6 Carry-Lookahead Adders (CLA) . 17 2.6.1 Algorithmic Analysis . 19 2.7 Ling Adders . 20 2.8 NAND/NOR Adders . 23 2.9 Parallel-Prefix Structures . 27 2.10 Carry Save Adders (CSA) . 28 2.11 Summary . 30 iv 3 Building Prefix Structures 31 3.1 Prefix Tree Family . 32 3.2 Prefix Structure Synthesis . 33 3.2.1 Taxonomy . 33 3.2.2 Synthesis Rules . 35 3.2.3 Preparing Prefix Tree . 36 3.2.4 Kogge-Stone Prefix Tree . 40 3.2.5 Knowles Prefix Tree . 43 3.2.6 Brent-Kung Prefix Tree . 48 3.3 Other Prefix Trees . 51 3.3.1 Sklansky Prefix Tree . 51 3.3.2 Ladner-Fischer Prefix Tree . 52 3.3.3 Han-Carlson Prefix Tree . 53 3.3.4 Harris Prefix Tree . 54 3.3.5 Algorithmic Analysis for Prefix Trees . 55 3.4 Parallel-Prefix Ling Structures . 56 3.5 Prefix Tree with Carry-Save Notation . 58 3.5.1 Carry-Save Notation . 58 3.5.2 Carry-Save Notation and Application to Prefix Tree . 60 3.5.3 Adding Binary Carry-Save Numbers . 63 3.5.4 Incorporating Parallel-Prefix Structure with Carry-save Notation . 64 3.6 Summary . 67 4 Modulo 2n 1 Adders 68 4.1 Modulo 2n − 1 Adders . 68 4.1.1 Background . 69 4.1.2 Full Parallel-Prefix Structure . 71 4.1.3 Reduced Parallel-Prefix Structure . 75 v 4.1.4 Parallel-Prefix Ling Structures for Modulo 2n − 1 Adders . 75 4.1.5 Carry-Select Incrementer . 78 4.1.6 Summary . 81 4.2 Modulo 2n + 1 Adders . 82 4.2.1 Background . 82 4.2.2 Reduced Parallel-Prefix Structure . 83 4.2.3 Parallel-Prefix Ling Structures for Modulo 2n + 1 Adders . 85 4.2.4 Full Parallel-Prefix Structure . 85 4.2.5 Carry-Select Incrementer . 91 4.3 Combination of Binary and Modulo 2n 1 Adder . 91 4.4 Summary . 94 5 Results of Parallel-Prefix Structures and Comparisons 95 5.1 Binary Parallel-Prefix Adders . 96 5.2 Modulo 2n − 1 Adders with Prefix Implementation . 98 5.3 Modulo 2n + 1 Adders with Prefix Implementation . 102 5.4 A Combination of Modulo 2n 1 and Binary Adders with Prefix Imple- mentation . 106 5.5 Summary . 113 6 Conclusion 114 6.1 Dissertation Summary . 114 6.2 Future Directions . 116 6.3 In Summary . 118 BIBLIOGRAPHY 119 vi LIST OF FIGURES Figure Page 1.1 Binary Adder Example. 2 2.1 1-bit Half Adder. 7 2.2 1-bit Full Adder. 8 2.3 Ripple-Carry Adder. 9 2.4 Carry-Select Adder. 11 2.5 2-1 Multiplexor. 12 2.6 Carry-Increment Adder. 15 2.7 Carry-Skip Adder. 16 2.8 Reduced Full Adder. 17 2.9 Carry-Lookahead Adder. 19 2.10 NAND Adder Carry Chain. 23 2.11 NOR Adder Carry Chain. 25 2.12 8-bit Parallel-Prefix Structure. 28 2.13 Sklansky Parallel-Prefix Examples. 29 2.14 4-bit Carry-Save Adder. 30 3.1 Cell Definitions. 32 3.2 Valid Prefix Structure Synthesis. 34 3.3 Invalid Prefix Structure Synthesis. 36 3.4 8-bit Empty Prefix Tree. 38 3.5 Build 8-bit Sklansky Prefix Tree: Step 1. 38 3.6 Build 8-bit Sklansky Prefix Tree: Step 2. 39 vii 3.7 Build 8-bit Sklansky Prefix Tree: Step 3. 40 3.8 16-bit Kogge-Stone Prefix Tree. 41 3.9 16-bit Kogge-Stone Prefix Tree with Buffers. 43 3.10 16-bit Knowles [2,1,1,1] Prefix Tree. 44 3.11 16-bit Knowles [4,2,1,1] Prefix Tree. 44 3.12 16-bit Knowles [2,1,1,1] Prefix Tree with Buffers. 47 3.13 16-bit Brent-Kung Prefix Tree. 49 3.14 16-bit Brent Kung Prefix Tree with Buffers. 50 3.15 16-bit Sklansky Prefix Tree. 51 3.16 11-bit Ladner-Fischer Prefix Tree Synthesis. 52 3.17 16-bit Han-Carlson Prefix Tree. 53 3.18 Taxonomy of 16-bit Prefix Tree (Adapted from [1]). 54 3.19 16-bit Harris Prefix Tree. 55 3.20 Cell Definition for Ling's Parallel-Prefix Tree. 56 3.21 8-bit Sklansky Prefix Tree with Ling's Scheme. 57 3.22 n-bit Binary Adder with Carry-Save Notation. 59 3.23 16-bit Sklanksy Prefix Tree with Carry-Save Notation. 61 3.24 8-bit Example of Carry-Save Add. 63 3.25 9-bit Sklansky Parallel-Prefix Adder Comparison. 64 3.26 16-bit Han-Carlson Parallel-Prefix Structure with Carry-Save Notation. 65 3.27 8-bit Parallel-Prefix Adder with Carry-Save Notation. 66 4.1 General Block Diagram Modulo 2n − 1 Adder. 70 4.2 Cell Definitions. 71 4.3 Modulo 2n − 1 Adder with the Full Parallel-Prefix Structure. 72 4.4 Another Way to Look at Modulo 2n −1 Adder with the Full Parallel-Prefix Structure. 72 4.5 Modulo 2n − 1 Adder with the Reduced Parallel-Prefix Structure. 76 4.6 The Reduced Sklansky Parallel-Prefix Tree. 76 viii 4.7 8-bit Sklansky with Ling's Scheme for Modulo 2n − 1 Adders. 77 4.8 Modulo 2n − 1 Adder.