It seems to me that the driver in the hardware vs. software debate is cost . Prior to going to silicon, a manager somewhere has to hand over a heap-load of cash to pay for the next spin. Better get it right the first time. Contrast that with the up-front cost of a firmware release (hey, they're paying me anyway, why not spend that time creating a release) and you've got your answer.
We can see the middle ground in FPGA design — the cost to change a reprogrammable array is somewhere in between the hardware and firmware cost, and engineers see defect rates somewhere in-between hardware spins and firmware — FPGA designs are mostly right, but some defects usually pop up during hw/sw integration.
Lets face it; a large number of tools exist to help firmware designers, but we either refuse to buy them or don't spend the up-front time to use them correctly. If the cost of firmware defects can be accurately tracked and reported to management, the smart manager will look for a way to reduce that cost, and firmware-testing methods will be allowed to mature.
ATTO Technology Inc.