Write the VHDL code to perform an IEEE 754 32-bit floating point add and test it.

Simplifications you may use include:

- Input numbers are normalized.
- No overflow or underflow or denormalization will occur. (In part, this implies your input test numbers should always have different exponents.
- No rounding is necessary (either use truncation or round toward zero).
- Use VHDL add, subtract, shift and other operators as needed.
- You are creating a
*behavioral*model!

As a reminder, normalized IEEE floating point numbers have the following format:

- The MSB is the sign bit, S.
- The next 8 bits are the exponent, E, with a bias of 127.
- The remaining 23 bits are the fractional bits of the mantissa, M.
- The resulting number is -1
^{S}* 2^{E-127}* 1.M, where 1.M = 1 + M*2^{-23}

The algorithm for floating point addition is to find the number with the larger exponent, shift the other number to align the mantissas, and perform the operation. Given our simplifications, the resulting exponent will always equal the larger of the operand exponents.

The following instructions assume you will use the machine cadence.gl.umbc.edu to do your work. Instructions for use of the cadence VHDL compiler and simulator can be found at www.csee.umbc.edu/help/VHDL/. Note that (until they're updated) these instructions are for two csee machines for which we no longer have valid cadence licenses. The directions should still work, but you must use cadence.gl.umbc.edu instead of the cs or csee machines mentioned, and use this cs411.tar file rather than the one linked on that page. You may use another machine if you have access to the compiler and simulator there (including using your own machine with one of the free simulators, instructions for one on the help/VHDL page), but if you go that route, be sure to factor in the time to get it working.

- Make sure you can compile and run ctest1 from the cs411.tar
file found in the help/VHDL page.
**Turn in your ctest1.out**. - Get fp_add_test.vhdl and modify
the Makefile and .run script to use it.
**Turn in an fp_add_unmodified.out for the unmodified fp_add_test.vhdl**. - Modify fp_add_test.vhdl to fill in the architecture behavior of
fp_add. Choose some reasonable test data for "a" and "b" in the test
bench.
**Turn in your new fp_add_test.vhdl, fp_add_test.run, and fp_add_test.out**

You will need to copy any file you are submitting to the gl systems to perform the electronic submit. The submit program does allow you to submit multiple files. Submit all required files (and if appropriate a separate file for the extra credit problem, 3.24) to HW4.