Question: Is it Emulation or FPGA-Based Prototyping that I need for my project?
Answer: You need both !!
I often get asked the difference between Emulation and FPGA-Based Prototyping. These are complementary technologies with the focus of Emulation being verification and the focus of FPGA-based prototyping being validation. This translates to emulation being used earlier in the design cycle as part of the verification by simulation design cycle. Of course Hybrid Prototyping, connecting Virtual with FPGA-Based Prototypes, enables the FPGA-based prototype to be used earlier in the design cycle but that’s solving a different problem. Hybrid Prototyping is focused on enabling earlier development of hardware aware software. Emulation is complementary to prototyping as each technology is solving a different problem; in fact many of our customers utilize both emulation and prototyping in their SoC development process today. As mentioned before, Emulation systems focus on SoC verification, whereas FPGA-prototypes focus on validation tasks such as hardware validation and hw/sw integration and extend to software development and debug.
Design verification means confirmation by examination and provision of objective evidence that specified requirements have been fulfilled. So basically does the design meet the functional requirements outlined in the designs functional spec.
Design validation means establishing by objective evidence that device (product) specifications conform to user needs and intended use(s). So basically does the design meet user requirements and usage models which are usually defined in the marketing requirements document? For example:- it’s supposed to seamlessly USB ports, does it actually do that. (yes you designed in a USB controller and PHY but in the real world can you physically plug in the cable and interoperate with the third party USB port)
While you really want to have both of these technologies enabling you to deliver the highest quality hardware and software products, sometimes financially you cannot afford both. This is when you need to decide which of these technologies to buy. To make that decision you need to answer the question as to what is the highest priority problem you are trying to solve is. The points below may help you work that out.
You know you want Emulation when
You know you want FPGA-Based Prototyping when
As you can see the two technologies are complementary as they are solving different problems. This is why you need to use both to ensure highest productivity and product quality. Anyway, that’s my view of Emulation and FPGA-Based Prototyping in a nut shell. Does your view differ? If yes, post me a comment and we can chat about it.