Computer Arithmetic Algorithms Simulator

About This Site


This site was designed and programmed to serve as a helpful aid to students taking a class in computer arithmetic, or practitioners in the field who need to brush up on the techniques used by the various algorithms.

The initial programming and layout was done by Yaron Koren in the summer of 1997.

The floating-point addition/subtraction module (for single precison numbers) was programmed by Nikolaos Denis as a final project in the Spring 1998 Digital Computer Arithmetic course.

The floating-point multiplication/division module (for single precison numbers) was programmed by Zhihong Zeng as a final project in the Spring 1998 Digital Computer Arithmetic course.

The floating-point addition/subtraction and multiplication/division modules were extended to double precision numbers by Erica Asai as a final project in the Spring 1999 Digital Computer Arithmetic course.

The floating-point addition/subtraction module was fixed and a testing applet added by Muhammad Noman Ashraf as a final project in the Fall 2012 Digital Computer Arithmetic course.

The division by reciprocation module was programmed by Praveen Mosalikanti as a final project in the Spring 1998 Digital Computer Arithmetic course.

The CSA/Wallace tree module was programmed by Noosha Nayeri as final project in the Spring 2000 Digital Arithmetic course.

The Overturned Stairs CSA tree module was programmed by Puru Sarva as final project in the Spring 2000 Digital Arithmetic course.

The SRT radix 4 division module was programmed by Zhihong Zeng as a second project in the Spring 1998 Digital Computer Arithmetic course.

The SRT radix 8 division module was programmed by David Jasinski as a final project in the Spring 2002 Digital Computer Arithmetic course.

The ripple-carry, Manchester and carry-look-ahead modules were programmed by Sabyasachi Das as a final project in the Spring 1999 Digital Computer Arithmetic course.

The delay calculation in the carry-look-ahead module was modified by Darren Richards in 2002.

The radix conversion module was programmed by Junnan Wu as a final project in the Spring 1999 Digital Computer Arithmetic course.

The floating-point division by convergence module (for single precison numbers) was programmed by Raigir Kamalaker as a final project in the Spring 1999 Digital Computer Arithmetic course.

The carry-select addition module was programmed by Atul Maheshwari as a final project in the Spring 2000 Digital Computer Arithmetic course.

The SD addition/subtraction module was programmed by William Lichtinger as a final project in the Summer 2000 Digital Computer Arithmetic course.

The Residue addition/subtraction/multiplication module was programmed by Christoph Drews as a final project in the Spring 2002 Digital Computer Arithmetic course.

The Hybrid Adder (Lynch and Swartzlander) module was programmed by Ravinder Rachala as a final project in the Spring 2000 Digital Computer Arithmetic course.

The Generalized Conditional-Sum Adder module was programmed by Arunachalam Ramanathan as a final project in the Spring 2002 Digital Computer Arithmetic course.

The division by convergence module with a lookup table (for the first step) was programmed by Mark Handly as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Ling Adder module was programmed by Darren Richards as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Two's complement array multiplier module was programmed by Craig Tainsky as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Sign-Logarithm module was programmed by Tim Peterson as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Error Analysis module was programmed by Tony Uranga as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Fused Multiplier-Adder module was programmed by Mark Bartel as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Radix-4 square root and the square root by convergence modules were programmed by Lei Liang as a final project in the Spring 2002 Digital Computer Arithmetic course.

The SRT with overlapping stages module was programmed by Ray Yeung as a final project in the Fall 2003 Digital Computer Arithmetic course.

The Montgomery multiplier module was programmed by Serge Zhilyaev as a final project in the Spring 2008 Digital Computer Arithmetic course.

The Hybrid SD Adder module was programmed by Ye Xu as a final project in the Fall 2010 Digital Computer Arithmetic course.

The Prefix Adder module was programmed by Sippakorn Tansutthiwess as a final project in the Fall 2010 Digital Computer Arithmetic course.

The Partial Product Reduction module was programmed by Prasad Shabadi as a final project in the Fall 2010 Digital Computer Arithmetic course.

The Leading zero detector with a testing applet was programmed by Muhammad Noman Ashraf as a final project in the Fall 2012 Digital Computer Arithmetic course.

The Balanced Tree module was programmed by Jianxian Li as a final project in the Fall 2012 Digital Computer Arithmetic course.

The Trigonmetric functions using polynomial approximations module was programmed by Wang Xu as a final project in the Fall 2012 Digital Computer Arithmetic course.

The (4:2) Compressor Tree module was programmed by Xiaobin Liu as a final project in the Fall 2012 Digital Computer Arithmetic course.

The Impact of Process Variation on an Array Multiplier module was programmed by Vikram Suresh as a final project in the Fall 2012 Digital Computer Arithmetic course.

The Multiplication by a Constant module was programmed by Hongbin Jia as a final project in the Fall 2012 Digital Computer Arithmetic course.

Several bugs were discovered by Roger Golliver from Intel, who kindly also provided fixes to these bugs. A bug in a couple of addition algorithms was discovered (and a fix provided) by Marius Padure from Delft University.

Bug reports and comments about problems in the interface are strongly encouraged. Please write to Israel Koren at: koren AT ecs.umass.edu, for all comments and questions.


Last modified December 2012
koren@euler.ecs.umass.edu