Home > technical > HW And SW ICs


Because software-intensive system development labor costs are so high, the holy grail of cost reduction is “reusability” at all levels of the stack; reusable requirements, reusable architectures, reusable designs, reusable source code. If you can compose a system from a set of pre-built components instead of writing them (over and over again) from scratch, then you’ll own a huge competitive advantage over your rivals who reinvent the wheel over and over again.

One of the beefs I’ve heard over the years is “why can’t you software weenies be like the hardware guys“. They mastered “reusability” via integrated circuits (IC) a looong time ago.

One difference between a hardware IC and a software IC is that the number of input/output (IO) pins on a physical chip is FIXED. Because of the malleability and ephemeral nature of software, the number of IO “pins” is in constant flux – usually increasing over time as the software is created.

Even when a software IC is considered “finished and ready for reuse” (LOL), unlike a hardware IC, the documentation on how to use the dang thing is almost always lacking and users have to pour through 1000s of lines of code to figure out if and how they can integrate the contraption into their own quagmire.

Alas, the software guys can master “reusability” like the hardware guys, but the discipline and time required to do so just isn’t there. With the increasing size of software systems being built today, the likelihood of software guys and their managers overcoming the discipline-time double whammy can be summarized as “not very“.

  1. PNeumiller
    February 2, 2012 at 9:21 am

    The “real” truth is that discrete small pinned ICs are seldom used today — except on the periphery of projects. The world has migrated to FPGAs and PLDs and these are all just as full of messy software (including soft core processors and RTOs) as any software created by “software” weenies. In fact, there is a branch of engineering known as software hardware co-design, and many of Mentor Graphics most sophisticated tools embrace this paradigm. No, I’m not shilling for Mentor, but I do like their products!

    I would argue that everybody is in the software quagmire boat these days as digital development has become software with VHDL, SystemC, Verilog and even C/C++ and Simulink/Matlab direct to hardware.

    • February 2, 2012 at 4:34 pm

      I agree that SW is everywhere. However, the basic tenet that “any piece of HW has a fixed number pins” is true – a phyiscal limitation that pure software isn’t constrained by. No?

  2. PNeumiller
    February 2, 2012 at 4:43 pm

    FPGA’s have 100s of pins that are each “configurable”. So pins are soft too or maybe I should say firm, since they can’t change to much once they are soldered to the board!!!

    • February 2, 2012 at 4:47 pm

      In the “old” days, both the number and functions of the pins were fixed. Today, the number is fixed/finite, but the behavior is programmable by SW – as you pointed out. Again, the main point was that the number of pins is fixed and unchangeable once a HW “package” is manifest as atoms. Unlike SW where more “pins” can be added in seconds.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: