Wednesday, November 22, 2006

SystemC/qemu - Three Worlds Collide

Way back in February, I wrote about a really cool hardware description language called SystemC. It is essentially a C++ library that allows a programmer to model hardware concepts and included a run-time that simulates the hardware. This is one of the reasons I love C++, you can use templates and overloads and inlines to bring the abstraction layer up a few notches, essentially defining a new language, without having to build a new compiler. And it usually optimizes out to something very fast.

I've also been following the development of qemu, a processor emulator that runs on multiple targets and has extensibility to add emulation of peripherals as well. And, if you have a fast machine, you can almost get the same performance as the real hardware. The best thing I see about qemu is that it really lowers the barrier of entry for people who want to try out embedded development without having to spend real money on real hardware. And it is much easier to carry around to trade shows :).

Well, if you have two very cool simulation/emulation environments, wouldn't it make sense to combine them? Of course, and that's what a group from the Universitat Autonoma de Barcelona have done. They have implemented a bridge that appears on the qemu PCI bus for drivers to access and passes signals back and forth to the SystemC design. It's a great idea and really opens the door wider for hardware/software co-design.

2 comments:

  1. Hey,

    Your Blog rocks!! Just wanted to share something with ya… one blogger to another…
    There is this amazing site that I came across where u can make money by sharing information…check it out here’s the link http://www.myndnet.com/login.jsp?referral=alpa83&channel=al192

    The coolest part is…every time ur information gets sold u get paid for it!!
    I signed it for it.. very cool stuff… u can also mail me at barot.alpa@gmail.com

    Cheers!
    Alpa

    ReplyDelete
  2. Hi Doug ,

    Can you provide a complete location for the qemu and systemC files that I can download for the run.

    Regards,
    Chetan

    ReplyDelete