Once upon a time semiconductor companies produced a chip, made a data sheet, showed the data sheet to customers, provided samples for customers to try, and followed up to see if the customers wanted to buy the chip.
That was then, this is now. In today's SoC world, semiconductor companies must not only produce chips, they also need to put the chip on a board and develop all of the representative software for the application. Since the chips have multiple processors this means operatings systems, device drivers, software to perform dedicated hardware management functions, applications, and more.
Once this is all done, they need to send the board and all the software to customers to try, and follow up and see if the customers want to buy the chip. This leads to a long list of system verification issues. Welcome to the benefits of integration. If you stay tuned to my blog posts you will learn more about many of them and we can share our ideas and experience.
What role does software play in the hardware verification process at the chip level?
What does the Design Under Verification (DUV) actually consist of? Does it also include software?
How can I control the software running on my chip for verification?
I can see what my hardware does on waveform, how can I see what the software is doing?
I'm running hardware and software together, does this mean I'm doing co-verification?
How do I verify the software that will be delivered to customers?
How do I treat the software, is it part of the reference design? Will customers try to use it in production systems?