Skip to content

How to make a DSP hardware project be on time

Here is an article describing

a fairy tale (sadly) idea of how one would run a project for creating a product

from DSP chips. I’ll have to say it makes a lot of sense but what would

be more interesting is some hard data on anyone that has actually managed to

apply this idea:

This is OK for a simple algorithm, but what if it is even moderately complex?

Then you are dealing with (i) a very complex algorithm and (ii) very complex

assembler all at the same time. This is usually too much for mere mortals (and

even minor deities). The result is long, painful development, failed projects,

late nights, angry spouses, and lots of pizza (well its not all bad I guess).

The trick is to divide and conquer. Make sure we are only hitting one tough

problem at any given time.

One approach I have found very useful is bit

exact porting to assembler.

There are two important steps:

  1. At the fixed point C stage, you test very very carefully. Run batteries

    of tests and simulations. These can be performed on a regular PC in non real

    time, using powerful debuggers. The idea is to verify that:

    (i) The algorithm is OK and

    (ii) The fixed point port works OK.

    In particular (ii) is very tough, so its nice to handle this in a relatively

    benign environment like a PC or


  2. Port each function to real time assembler one by one. Test each function

    against the fixed point C reference. Make sure the functions give IDENTICAL

    output – right down to the last bit. This takes a lot of discipline – near

    enough is NOT good enough.

Read it yourself

Kudos to Joel’s Reddit page for this one.

Be Sociable, Share!