Knowledge

Carry-select adder

Source 📝

728: 760: 744: 651:. Adding two n-bit numbers with a carry-select adder is done with two adders (therefore two ripple-carry adders), in order to perform the calculation twice, one time with the assumption of the carry-in being zero and the other assuming it will be one. After the two results are calculated, the correct sum, as well as the correct carry-out, is then selected with the multiplexer once the correct carry-in is known. 446: 733:
Above is the basic building block of a carry-select adder, where the block size is 4. Two 4-bit ripple-carry adders are multiplexed together, where the resulting carry and sum bits are selected by the carry-in. Since one ripple-carry adder assumes a carry-in of 0, and the other assumes a carry-in of
765:
A 16-bit carry-select adder with variable size can be similarly created. Here we show an adder with block sizes of 2-2-3-4-5, this is the special type of Variable-sized carry select adder, called as square root carry select adder. This break-up is ideal when the full-adder delay is equal to the MUX
749:
A 16-bit carry-select adder with a uniform block size of 4 can be created with three of these blocks and a 4-bit ripple-carry adder. Since carry-in is known at the beginning of computation, a carry select block is not needed for the first four bits. The delay of this adder will be four full adder
969:
V. G. Oklobdzija and E. R. Barnes, "Some Optimal Schemes For ALU Implementation In VLSI Technology", Proceedings of the 7th Symposium on Computer Arithmetic ARITH-7, pp. 2-8. Reprinted in Computer Arithmetic, E. E. Swartzlander, (editor), Vol. II, pp. 137-142,
684:. When variable, the block size should have a delay, from addition inputs A and B to the carry out, equal to that of the multiplexer chain leading into it, so that the carry out is calculated just in time. The 717:
delay is derived from uniform sizing, where the ideal number of full-adder elements per block is equal to the square root of the number of bits being added, since that will yield an equal number of MUX delays.
782:-bit inputs that are themselves built as conditional-sum adder. The bottom level of the tree consists of pairs of 2-bit adders (1 half adder and 3 full adders) plus 2 single-bit multiplexers. 766:
delay, which is unlikely. The total delay is two full adder delays, and four mux delays. We try to make the delay through the two carry chains and the delay of the previous stage carry equal.
427: 682: 715: 633: 832: 900: 867: 580: 420: 600: 981:
V. G. Oklobdzija and E. R. Barnes, "On Implementing Addition in VLSI Technology", IEEE Journal of Parallel and Distributed Computing, No. 5, pp. 716-728, 1988.
413: 654:
The number of bits in each carry select block can be uniform, or variable. The optimal delay occurs when variable size of the blocks is applied
914:
structure to generate the MUX inputs, thus gaining even greater performance as a parallel prefix adder while potentially reducing area.
463: 232: 337: 529: 510: 482: 467: 778:
is a recursive structure based on the carry-select adder. In the conditional sum adder, the MUX level chooses between two
1009: 489: 78: 367: 940: 991: 496: 362: 657: 478: 390: 331: 227: 456: 395: 918: 138: 968: 911: 400: 128: 734:
1, selecting which adder had the correct assumption via the actual carry-in yields the desired result.
176: 133: 980: 727: 759: 687: 605: 260: 547: 385: 108: 73: 68: 644: 265: 123: 992:
Conditional-Sum Addition Logic. Sklansky J. IRE Transaction on Electronic Computer. 1960. p.226.
743: 503: 796: 308: 303: 298: 293: 288: 283: 222: 872: 837: 602:-bit numbers. The carry-select adder is simple but rather fast, having a gate level depth of 313: 242: 158: 148: 553: 204: 199: 58: 585: 1003: 53: 237: 648: 445: 194: 143: 118: 113: 63: 17: 932: 786: 789:
of the intermediate carry outputs. The fan out can be as high as
439: 910:
The carry-select adder design can be complemented with a
875: 840: 799: 690: 660: 608: 588: 556: 785:
The conditional sum adder suffers from a very large
470:. Unsourced material may be challenged and removed. 894: 861: 826: 709: 676: 627: 594: 574: 643:The carry-select adder generally consists of 550:, which is a logic element that computes the 421: 8: 671: 661: 677:{\displaystyle \lfloor {\sqrt {n}}\rfloor } 428: 414: 96: 26: 880: 874: 849: 845: 839: 808: 804: 798: 697: 689: 664: 659: 615: 607: 587: 555: 530:Learn how and when to remove this message 961: 383: 360: 329: 281: 258: 220: 192: 174: 106: 94: 51: 34: 906:Combining with other adder structures 7: 546:is a particular way to implement an 468:adding citations to reliable sources 25: 933:"Advanced Arithmetic Techniques" 758: 742: 726: 444: 233:Booth's multiplication algorithm 943:from the original on 2018-07-03 750:delays, plus three MUX delays. 455:needs additional citations for 710:{\displaystyle O({\sqrt {n}})} 704: 694: 628:{\displaystyle O({\sqrt {n}})} 622: 612: 569: 557: 1: 834:drives all multiplexers from 338:Multiply–accumulate operation 79:Signed number representations 931:Savard, John J. G. (2018) . 368:Category:Computer arithmetic 917:An example is shown in the 1026: 363:Category:Binary arithmetic 827:{\displaystyle c_{n/2-1}} 793:on the last level, where 35:Arithmetic logic circuits 332:Kochanski multiplication 228:Multiplication algorithm 895:{\displaystyle s_{n-1}} 862:{\displaystyle s_{n/2}} 74:Two's complement number 69:Ones' complement number 896: 863: 828: 711: 678: 629: 596: 576: 912:carry-lookahead adder 897: 864: 829: 776:conditional sum adder 770:Conditional sum adder 712: 679: 630: 597: 577: 575:{\displaystyle (n+1)} 401:Mechanical calculator 129:Carry-lookahead adder 1010:Adders (electronics) 873: 838: 797: 754:Variable-sized adder 722:Basic building block 688: 658: 606: 586: 554: 479:"Carry-select adder" 464:improve this article 171:Adder–subtractor (±) 738:Uniform-sized adder 645:ripple-carry adders 30:Part of a series on 892: 859: 824: 707: 674: 625: 592: 572: 544:carry-select adder 542:In electronics, a 334:(exponentiation) 266:Division algorithm 154:Carry-select adder 124:Ripple-carry adder 919:Kogge–Stone adder 702: 669: 620: 595:{\displaystyle n} 540: 539: 532: 514: 438: 437: 346: 345: 284:Bitwise operation 223:Binary multiplier 139:Kogge–Stone adder 16:(Redirected from 1017: 994: 989: 983: 978: 972: 966: 951: 949: 948: 901: 899: 898: 893: 891: 890: 868: 866: 865: 860: 858: 857: 853: 833: 831: 830: 825: 823: 822: 812: 762: 746: 730: 716: 714: 713: 708: 703: 698: 683: 681: 680: 675: 670: 665: 634: 632: 631: 626: 621: 616: 601: 599: 598: 593: 582:-bit sum of two 581: 579: 578: 573: 535: 528: 524: 521: 515: 513: 472: 448: 440: 430: 423: 416: 314:Bit manipulation 243:Dadda multiplier 177:Adder–subtractor 159:Carry-skip adder 149:Carry-save adder 134:Brent–Kung adder 97: 40:Quick navigation 27: 21: 1025: 1024: 1020: 1019: 1018: 1016: 1015: 1014: 1000: 999: 998: 997: 990: 986: 979: 975: 967: 963: 958: 946: 944: 930: 927: 925:Further reading 908: 876: 871: 870: 841: 836: 835: 800: 795: 794: 772: 756: 740: 724: 686: 685: 656: 655: 641: 604: 603: 584: 583: 552: 551: 536: 525: 519: 516: 473: 471: 461: 449: 434: 405: 382: 381: 372: 359: 358: 349: 342: 328: 327: 318: 280: 279: 270: 257: 256: 247: 219: 218: 209: 205:Half subtractor 200:Full subtractor 191: 190: 181: 173: 172: 163: 105: 104: 93: 92: 83: 59:Boolean algebra 50: 49: 23: 22: 15: 12: 11: 5: 1023: 1021: 1013: 1012: 1002: 1001: 996: 995: 984: 973: 960: 959: 957: 954: 953: 952: 926: 923: 907: 904: 889: 886: 883: 879: 856: 852: 848: 844: 821: 818: 815: 811: 807: 803: 771: 768: 755: 752: 739: 736: 723: 720: 706: 701: 696: 693: 673: 668: 663: 640: 637: 624: 619: 614: 611: 591: 571: 568: 565: 562: 559: 538: 537: 452: 450: 443: 436: 435: 433: 432: 425: 418: 410: 407: 406: 404: 403: 398: 393: 388: 379: 378: 377: 374: 373: 371: 370: 365: 356: 355: 354: 351: 350: 348: 347: 344: 343: 341: 340: 335: 325: 324: 323: 320: 319: 317: 316: 311: 306: 301: 296: 291: 286: 277: 276: 275: 272: 271: 269: 268: 263: 261:Binary Divider 254: 253: 252: 249: 248: 246: 245: 240: 235: 230: 225: 217:Multiplier (×) 216: 215: 214: 211: 210: 208: 207: 202: 197: 189:Subtractor (−) 188: 187: 186: 183: 182: 180: 179: 170: 169: 168: 165: 164: 162: 161: 156: 151: 146: 141: 136: 131: 126: 121: 116: 111: 102: 101: 100: 90: 89: 88: 85: 84: 82: 81: 76: 71: 66: 61: 56: 47: 46: 45: 42: 41: 37: 36: 32: 31: 24: 18:Sklansky adder 14: 13: 10: 9: 6: 4: 3: 2: 1022: 1011: 1008: 1007: 1005: 993: 988: 985: 982: 977: 974: 971: 965: 962: 955: 942: 938: 934: 929: 928: 924: 922: 920: 915: 913: 905: 903: 887: 884: 881: 877: 854: 850: 846: 842: 819: 816: 813: 809: 805: 801: 792: 788: 783: 781: 777: 769: 767: 763: 761: 753: 751: 747: 745: 737: 735: 731: 729: 721: 719: 699: 691: 666: 652: 650: 646: 638: 636: 617: 609: 589: 566: 563: 560: 549: 545: 534: 531: 523: 520:December 2009 512: 509: 505: 502: 498: 495: 491: 488: 484: 481: â€“  480: 476: 475:Find sources: 469: 465: 459: 458: 453:This article 451: 447: 442: 441: 431: 426: 424: 419: 417: 412: 411: 409: 408: 402: 399: 397: 394: 392: 389: 387: 384: 376: 375: 369: 366: 364: 361: 353: 352: 339: 336: 333: 330: 322: 321: 315: 312: 310: 307: 305: 302: 300: 297: 295: 292: 290: 287: 285: 282: 274: 273: 267: 264: 262: 259: 251: 250: 244: 241: 239: 236: 234: 231: 229: 226: 224: 221: 213: 212: 206: 203: 201: 198: 196: 193: 185: 184: 178: 175: 167: 166: 160: 157: 155: 152: 150: 147: 145: 142: 140: 137: 135: 132: 130: 127: 125: 122: 120: 117: 115: 112: 110: 107: 99: 98: 95: 87: 86: 80: 77: 75: 72: 70: 67: 65: 62: 60: 57: 55: 54:Binary number 52: 44: 43: 39: 38: 33: 29: 28: 19: 987: 976: 964: 945:. Retrieved 936: 916: 909: 790: 784: 779: 775: 773: 764: 757: 748: 741: 732: 725: 653: 642: 639:Construction 543: 541: 526: 517: 507: 500: 493: 486: 474: 462:Please help 457:verification 454: 238:Wallace tree 153: 649:multiplexer 278:Bitwise ops 255:Divider (Ă·) 956:References 947:2018-07-16 490:newspapers 357:Categories 309:Bit shifts 195:Subtractor 144:Ling adder 119:Full adder 114:Half adder 91:Components 64:Logic gate 937:quadibloc 921:article. 885:− 817:− 672:⌋ 662:⌊ 103:Adder (+) 1004:Category 941:Archived 380:See also 326:See also 787:fan-out 504:scholar 647:and a 506:  499:  492:  485:  477:  48:Theory 970:1985. 548:adder 511:JSTOR 497:books 109:Adder 483:news 869:to 791:n/2 780:n/2 466:by 396:AGU 391:GPU 386:FPU 304:XOR 294:AND 289:NOT 1006:: 939:. 935:. 902:. 774:A 635:. 299:OR 950:. 888:1 882:n 878:s 855:2 851:/ 847:n 843:s 820:1 814:2 810:/ 806:n 802:c 705:) 700:n 695:( 692:O 667:n 623:) 618:n 613:( 610:O 590:n 570:) 567:1 564:+ 561:n 558:( 533:) 527:( 522:) 518:( 508:· 501:· 494:· 487:· 460:. 429:e 422:t 415:v 20:)

Index

Sklansky adder
Binary number
Boolean algebra
Logic gate
Ones' complement number
Two's complement number
Signed number representations
Adder
Half adder
Full adder
Ripple-carry adder
Carry-lookahead adder
Brent–Kung adder
Kogge–Stone adder
Ling adder
Carry-save adder
Carry-select adder
Carry-skip adder
Adder–subtractor
Subtractor
Full subtractor
Half subtractor
Binary multiplier
Multiplication algorithm
Booth's multiplication algorithm
Wallace tree
Dadda multiplier
Binary Divider
Division algorithm
Bitwise operation

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑