Electronic – Why do embedded systems need to be programmable


According to my understanding, certain types of embedded systems are dedicated to a particular task. Why, then, do engineers not transfer all the burden of processing onto the hardware in the form of Application Specific Integrated Circuits (ASICs)? Surely, this would make the controllers more efficient? This approach should work for all embedded systems that don't need to run application software, right?

Best Answer

In large quantities (millions of copies), ASIC can be cheaper than programmable parts. On the other hand, the development of ASIC silicon costs at least an order of magnitude more than development of FPGA or microcontroller (μC) code. The great thing about software is that - almost by definition - it "enjoys rapid prototyping environment" [1]. Silicon doesn't.

Also consider flexibility. What if one wants to change the behavior of the product in the future? Making another ASIC silicon design would incur another NRE expenditure. Firmware of a programmable part doesn't require changes in silicon.

[1] Rick Dove

edit: related threads
How much does it cost to have a custom ASIC made?
What are the practical uses of ASIC?