Dave Scott is Principal Architect at Real Intent. He has been at Real Intent for a little over one year and has gotten a lot better at table tennis, besides being apprenticed as R&D on Implied Intent Verification. He was drawn into EDA verification software development more than 20 years ago … More »
A Personal History of Transaction Interfaces to Hardware Emulation: Part 1
January 29th, 2015 by David Scott
A couple of weeks ago I met Dan Hafeman and another friend for beer in Sunnyvale. I’ve worked with Dan twice: first when he was an executive and co-founder of IKOS Systems, and again at the Educational Garden at Full Circle Farm in Sunnyvale, which he now manages.
The discussion we had turned to the best idea he ever had in his career: what we used to call “co-modeling”. It led to IKOS’ largest ever sale in 2000. Because I’m now more plugged into the verification world than he is (though he remains much more in touch with kale and broccoli), I was able to congratulate him that this is now a mainstream verification technique when using emulators.
Co-modeling was what we used to call transaction interfaces to emulators — in other words, using the Accellera standard SCE-MI 2 interface. When it was new, no one quite knew what to call it. The IKOS press release in 2000 called it the “data streaming portal” because that seemed the best way to position it.
Dan says the idea first popped up in 1985 when IKOS had to re-vamp its initial product offering. IKOS had created a product for driving signals into a hardware accelerator. Over time this evolved into the mixed-level interfaces to HDL simulation implemented by the NSIM accelerator, but this was not really the most efficient modeling interface. Accelerators and emulators may be fast, but interfaces to them are not. You want to make a single data transfer count for a lot (i.e., a lot of verification cycles) with a high-level transaction.
When IKOS acquired Virtual Machine Works in 1996 for in-circuit simulation, Dan started to think again about those high-level interfaces. He talked to an IKOS Sales Manager who lined up two customers in ’97: one passed, thinking it too risky; the other took over the meeting in their excitement. They did not want to wait for IKOS, so started to develop something themselves.
I first heard of the idea in 1998. From a software point of view, it was no big deal. But how can you make models that use these transactions? We joined VSIA (the Virtual Socket Interface Alliance) hoping the industry would come up with an answer, but it did not. We launched the project in 1999, and two IKOS R&D staff worked with the customer on the modeling side. The trick was marrying the low-level buffer transfer into and out of the emulator with a high-level modeling language: SystemC.
Shortly after the product release, the dot-com bubble burst in the early 2000’s and, as I recall, we had just the one large customer for “co-modeling”. IKOS got sold, and in-circuit remained by far the dominant use mode of emulation.
In part two, I will share how the rest of the emulation world caught up to Dan’s vision.
2 Responses to “A Personal History of Transaction Interfaces to Hardware Emulation: Part 1”