That’s a question I’ve asked myself several times in the last couple years but have never got around to answering it, not because I don’t think it belongs but because I don’t have much experience with it.
My opinion: I think emulation belongs in agile hardware development for a few reasons… and I’m choosing to ignore the “faster than simulation” advantage that always comes with emulation. These are better reasons to like emulation:
- It can be used to encourage application level thought
- An emulator is a practical environment for hardware/software co-development
- It provides a platform for connecting real peripherals and test equipment
- Real peripherals and test equipment provide a better “visual” during customer and stakeholder demos
I think the real value of emulation is in these bullets that focus on the application level view of a piece of hardware, the platform it provides for software developers and how a product is used in a real system (or at least real’ish). If I’m right, then I’d like to think the question becomes how do you get to an emulator as soon as possible so you can start realizing this value. I have a feeling this is where agile comes in… incremental development specifically as well as everything it takes for great x-functional teamwork.
I have my thoughts on how teams get started with agile development using agile development using simulation… I’d like to hear how others think it could work with emulation.
neil
Q. Are you an emulation expert that has seen the path of least resistance when it comes to getting product deployed to an emulation platform? What does it look like?
Absolutely agree … emulation matches well with the incremental development required to move from a pure virtual prototype to a complete board … a mandatory move to have correct HW/SW integration and System validation done in time
I saw this applied in several programs and it works well … everything starts with a pure virtual proto … then this is completed/complemented with an HW proto: either FPGA or Emulation, depending on IP/SubSystem/SoC characteristics/constraints/availability … and at the end when the real system is available, validation is finalized on the real chip …
This multiproto approach (Virtual/HW.FPGA/HW.Emulation) makes the process really reliable …