1. Applications of computer arithmetic algorithms
a. general purpose microprocessors
b. cryptography
c. coding
d. digital signal processing
2. Fixed point number systems
a. representation of signed numbers (one's complement, two's
complement, sign-magnitude)
b. integers vs. fractional numbers
c. signed digit representation
d. number system conversions
3. Introduction to logic synthesis with VHDL
a. implementation of combinational logic in VHDL
b. implementation of registers, latches, and counters in VHDL
c. structural modeling in VHDL
d. RTL-level modeling in VHDL
e. CAD tools for the automated logic synthesis
f. functional and timing simulation of digital circuits
4. Fast addition and subtraction in hardware
a. half adders and full adders
b. ripple carry adders/subtractors
c. carry lookahead and block carry lookahead adders
d. carry skip, carry select, and conditional sum adders
e. hybrid adder designs
f. counters
g. multi-operand addition
h. comparison, tradeoffs and optimizations
5. Addition and subtraction of long numbers in software
a. little-endian and big-endian
b. carry propagation in assembler and high-level languages
6. Fast multiplication in hardware
a. sequential Booth multipliers
b. array multipliers
c. tree multipliers
d. pipelined array and tree multipliers
e. multiplication of signed numbers
f. multiplication by a constant
g. squaring
h. multiplier accumulator
7. Fast multiplication of long integers in software
a. iterative paper and pencil algorithm
b. recursive Karatsuba algorithm
c. Shönhage-Strassen algorithm based on the Fast Fourier Transform
d. optimizations for squaring
8. Fast division and modular reduction in hardware
a. sequential division
b. SRT division
c. high-radix division
d. array dividers
e. division by convergence
f. division by reciprocation
g. Montgomery algorithm
9. Fast division and modular reduction of long integers in software
a. classical algorithm
b. Selby-Mitchell algorithm
c. Barret's algorithm
d. Montgomery algorithm
10. Fast exponentiation in hardware and software
a. binary and k-ary methods
b. sliding window
c. addition chains
d. fixed-base methods
e. exponent signed digit recoding
11. Floating point numbers
a. ANSI/IEEE floating-point standard
b. single, double, and extended precision formats
c. errors and exceptions
d. rounding schemes
12. Floating point operations
a. addition and subtraction
b. multiplication
c. division
13. Representations of components in the Galois field GF(2n)
a. polynomial base representation
b. normal base representation
c. dual base representation
14. Fast multiplication in the Galois fields in hardware
a. standard base multipliers
b. dual base multipliers
c. normal base multipliers
d. multiplication by a constant
15. Fast multiplication in the Galois fields in software
16. The residue number system
a. RNS number representation
b. addition, subtraction, multiplication
c. conversions between binary and RNS systems