About

Breaking the Three Laws is dedicated to discussing technically challenging ASIC prototyping problems and sharing solutions.

About the Author

Michael (Mick) Posner joined Synopsys in 1994 and is currently Director of Product Marketing for Synopsys' FPGA-Based Prototyping Solutions. Previously, he has held various product marketing, application consultant and technical marketing manager positions at Synopsys. He holds a Bachelor Degree in Electronic and Computer Engineering from the University of Brighton, England.

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.

Discovery Questions:

What is the goal of the hardware assisted flow?

Are you willing to trade off a little accuracy?

Is the goal verification or validation?

Is near 100% debug visibility required?

Is there a minimum frequency for real world I/O

Is performance needed for firmware/application software development

You know you want Emulation when

Goals are Verification focused

You want a faster model than RTL simulation

You are willing to accept a trade-off between performance and accuracy

The focus is RTL functional Verification just like the goal of RTL simulation

You need close to 100% visibility for RTL functional debug

Only interested in testing low level firmware.

You know you want FPGA-Based Prototyping when

Goals are Validation focused

Must have accuracy at near real time, high performance enabling comprehensive software stack to be executed.

You are doing HW validation, HW/SW integration and software development which mean you need the solution to deliver high performance needed to run the real software.

You can accept focused areas of debug visibility

You want to immerse the design in real world stimuli

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.

This entry was posted on Friday, October 12th, 2012 at 11:22 am and is filed under FPGA-Based Prototyping, Tips and Traps.
You can follow any responses to this entry through the RSS 2.0 feed.
Both comments and pings are currently closed.