Hardware vs Software Programming


Have you ever programmed? Do you think it is difficult to grasp ?? Hated the whole experience ?? Made you hate computers all together and technology … software programming … well you haven’t experienced hardware programming and they use the term “programming” loosely.

In software, statements are executed sequentially, one step into the code at a time. Then there was a need to do things in parallel, two or more threads at the same time. Still it is fairly easy to follow the execution of the code.

Hardware programming, where sequential way of thinking is like being delusional and unrealistic, most things run in parallel. Time in hardware makes no sense, you can not simply instruct a hardware device by saying ohhh wait for 1 ns, this is where the clock comes in, which is actually an interrupt at regular intervals to give a sense of time, ooohh wait did I say 1 ns aka 1 GHz, are you wishfully thinking that your system functions at 1 GHz!!! Back down to 100 MHz.

Assigning two values to the same output, in software the latest change is the one that counts even if it was not intended, in hardware both values can be taken in and the result is rubbish, high impedance!

If you started off with software programming, it is tricky to switch to hardware mode. Big chunk of components all running and functioning at the same time.

Don’t you love loops and function recursions … forget about those … everything needs to be decided by run time …

Delays from input to output are very crucial.

Integers can not express inputs and outputs, hexadecimal representations rule!

Changes to software programs are possible. In hardware, that means physical components. Everything has to be clear and set from the beginning.

If you ever hated software programming, you’d appreciate its smoothness and operation once you get your hands into hardware programming.

One thing in common though, when there is an error, don’t blame the complier or the editor and call it stupid :P If something stops and freezes, most probably it is a silly mistake from your end, like having 31 bit value instead of 32, common mistakes with all the 0′s and 1′s. Out of bound errors, trying to access memory locations that aren’t in the array which halts the simulation.

Things are most of the times what they seem :D Well 60% of the time :P Happy Programming ;)

  1. #1 by Marzouq on February 14, 2010 - 1:47 PM

    I did software programming and hardware programming and I HATED hardware programming except for robotics class because at the end you would see the result of your work.. But with software you can have it run in the backround and you know when its executing correctly or not!

  2. #2 by Nosayba on February 14, 2010 - 5:36 PM

    Bloggy is that similar to what we did back in the Computer Architecture, Digital, and Microprocessors projects?

    It sounds interesting though ; ) Brain squeezing!! How are your projects going along btw??

  3. #3 by Bloggylife on February 14, 2010 - 7:34 PM

    Marzouq, I did AI but it wasn’t truly hardware. I agree programming robotics are FUN :)

    Nosayba, I don’t remember what we did back then :P Wasn’t just simulation, we didn’t have an actual hardware board to download the design did we? And only gates, I remember the black blocks we used to stick in a white board and connect the wires, high voltage for 1 low voltage for 0 :P

    Read more link

    Projects are fine so far … a couple of crazy professors this course though :P

(will not be published)