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.
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?