Before answering the question of the cost of not prototyping let's understand why you should prototype. The prototyping that I am talking about is FPGA prototyping of SoC and ASIC designs before committing the designs to production.
The main advantages of prototyping are:
- Finding errors that aver virtually impossible to find with simulation and emulation techniques.
- Early software development on a prototype of the target system
- Being able to debug the design in the real environment
There are two graphs that point out the advantages of FPGA prototyping. The first is the famous International Business Strategies graph that software is not only the most expensive but the fastest growing SoC development cost. Impacting this cost is important in reducing the overall SoC development cost.
The second graph shows the comparison between the effective clock speeds of the different verification technologies.
A couple of things jump out at me. One is that obvious is that simulation is way too slow to verify system level problems. There is just not enough time to look for all of the system corner cases of 1 GHz system running at 40 Hz (25,000 times slower). Simulating 4 hours of systems operation would take 11.4 years, clearly not practical. Prototyping can run close to actual system speeds so that real system problems can be discovered and eliminated.
We often think about FPGA prototyping as a hardware development tool. It is that, but the big payback is in software development. Since software development is the fastest growing and most expensive SoC development expense, savings here are important. Being able to write your drivers and software on the target platform is far more efficient than using a computer model. The developer has virtually instant feedback if the software is working correctly. Also, software development can start as soon as the prototype is stable, often shaving months off of a SoC development schedule.
The Cost of Not Prototyping
Now, let's answer the initial question: what is the cost of not prototyping. To me the obvious cost is not being able to do an adequate system level test before the chips are back from the foundry. Finding an error at this point is incredibly costly. It could be the difference between the success or failure of a project.
Time to market is everything in this fast moving electronics market. Getting to market early because you were able to start developing your software a couple of months earlier in the much more efficient target environment can also be the difference between the success or failure of a project.
An often overlooked benefit of prototyping is that the marketing people can give the prototypes to the perspective customers to validate that the feature set meets the market requirements. A working prototype is far more powerful than a well written datasheet in conveying the actual product functionality.
So I would sum up that the costs of not prototyping are:
- Inadequate debug resulting in product introduction delays or even completely missing the market
- Getting to market with the wrong functionality
- Getting to market late because of not getting an early start on the software development.