CPE
462
Computer Arithmetic
Computer arithmetic deals with the hardware realization of arithmetic functions to support various computer architectures as well as with arithmetic algorithms for firmware/software implementation. A major thrust of digital computer arithmetic is the design of hardware algorithms and circuits to enhance the speed of various numeric operations. Standard and unconventional number representations. Design of fast two-operand and multi-operand adders. High-speed multiplication and division algorithms. Floating-point numbers, algorithms, and errors. Hardware algorithms for function evaluation.
Prerequisites:
0612368
0612462
(3-0-3)
Credits and Contact Hours
3 credits, 43 hours
Course Instructor Name
Dr. Buthaina Alkazemi, Prof. Imtiaz Ahmad
Textbook
- Computer Arithmetic: Algorithms and Hardware Designs, Behrooz Parham, 2nd Edition, The Oxford University Press
- Reference Texts
- Digital Arithmetic, Milos D. Ercegovac and Thomas Lang, Morgan Kaufmann Publishers.
- Application-Specific Arithmetic: Computing Just Right for the Reconfigurable Computer and the Dark Silicon Era, Florent de Dinechin, Martin Kumm, Springer Publisher
Catalog Description
Computer arithmetic deals with the hardware realization of arithmetic functions to support various computer architectures as well as arithmetic algorithms for firmware/software implementation. A major thrust of digital computer arithmetic is the design of hardware algorithms and circuits to enhance the speed of various numeric operations. Standard and unconventional number representations. Design of fast two-operand and multi-operand adders. High-speed multiplication and division algorithms. Floating-point numbers, algorithms, and errors. Hardware algorithms for function evaluation.
Prerequisite
CpE-368
Specific Goals for the Course
Upon successful completion of this course, students will be able to:
- Recognize the importance of computer arithmetic in different application domains.
- Convert numbers from/to decimal to other radices and compute the encoding efficiency of the number system. (Student outcomes: 1, 2)
- Design and compare different two-operand adder's implementations cost and performance (such as ripple-carry, lookahead-carry, carry-skip and conditional-sum adders etc.). (Student outcomes: 1, 2)
- Design and optimize adders for multi-bit operands. (Student outcomes: 1, 2)
- Compare and contrast the different multiplication algorithms and their implementations. (Student outcomes: 1, 2)
- Understand algorithms for division (digit recurrence, iterative approximations) and their hardware implementations. (Student outcomes: 1, 2)
- Understand algorithms for performing common floating-point operations (such as addition, multiplication and division) and their hardware implementations. (Student outcomes: 1, 2).
- Translate fractional numbers to/from IEEE standard format and apply IEEE rounding modes. (Student outcome: 1)
- Design and simulate an arithmetic algorithm at architectural level and/or gate level in Verilog HDL and/or schematic using CAD tools and estimate the speed and area of the circuit after synthesis. (Student outcomes: 1, 2)
Topics to Be Covered
- Digit representation, number systems and digit encoding.
- Algorithms for two-operand addition (ripple-carry adder, Manchester-carry adder, carry-skip adder, carry-lookahead adder, prefix adder, carry-select and conditional-sum adder).
- Algorithms for multi-operand addition (carry-save, Wallace trees, Dada trees and parallel counters).
- Multiplications algorithms (high-radix, tree and array multipliers).
- Algorithms for division (digit recurrence, iterative approximations).
- Floating-point arithmetic (representation, addition, subtraction, multiplication and division).
- Advanced topics in computer arithmetic (such as residue number system).