Search code examples
vhdlverilogxilinxhdlxilinx-ise

Suggesting Implementation of an Algorithm on FPGA


As a course project, I have to implement an algorithm on FPGA. Currently I'm considering arithmetic algorithms and ideas like implementation of 4 basic operators for floating point numbers come to mind. As I'm new to such topics I'd be thankful if anyone suggests an algorithm which is worthwhile for implementing.


Solution

  • Your question is very vague, and there are infinite algorithms you could implement. Some suggestions with different difficulty level:

    Very easy

    • Audio volume control.
    • Audio echo.

    These are technically not "worthwhile" implementing in hardware, but audio stuff usually makes for impressive live demonstrations. Even if the algorithm is very easy.

    Easy

    • FIR or IIR filters (low pass, high pass, band pass, ...)
    • CRC
    • Checksum

    These algorithms are implemented in hardware all the time. They are very typical examples. Yet still quite easy to implement. If you start out with audio volume control or echo, you can later add filters to make it a little bit more advanced.

    Medium/hard

    • Various encryption algorithms, SHA, AES, ...
    • FFT
    • JPEG compression

    Regarding floating point algorithms: You typically would never use floating point math in an FPGA unless you absolutely have to. All algorithms which are possible to do with fixed point math, should be implemented in fixed point math. You would also never use division in an FPGA, unless you absolutely have to. It is desirable to replace all divisions with multiplications whenever possible.