Do your assigned group project. You are expected to produce a written report and an oral presentation.
The first stage of the project is to produce a working design. Then you will explore variations in operand size, and track increase in LE usage and calculation time.
#1 pseuorandom number generator - 4, 8, 16, 32 (...?) #5 adder/subtractor project F = A + B (or A - B) 4, 8, 16, 24, 32, 48, 64, 96, 128 , 256 ... until failure look-at LE usage and timing analysis vs. bit size test examples (using random input) to verify timing compare LPM unit to your behavioral unit (for some sizes) For ONE size (e.g. 32 bit) look at effect of making second operand fixed (constant) #2 multiplier project F = A*B unsigned version signed version (see Quartus templates) (test examples for all four quadrants) (do all the above) #4 divider project _F_ A |B R (remainder) F = B/A is quotient R = B%A is remainder can you do F and R at the same time? LPM can do it at the same. usigned version signed version (do all the above) divide by ten (generating F and R) without using LPM. #3 Multiply and accumulate (same as dot product) F = a1*b1 + a2*b2 + a3*b3; sequential vs. parallel? Is there an LPM? Do for some range of sizes. #7 integer square root do range of sizes #6 linear interpolation A+B*delta where 0 <= delta <= 1 do for variety of sizes integer ln(x) integer exp(x)
Maintained by John Loomis, last updated 25 September 2009