virtual platform

25 articles

Resistance is futile. You will be simulated!

By Michel Genard Within our blog series, we frequently refer to functional simulation as a requisite to do things that aren't possible in the real world when working on a physical board and a cross development system to develop embedded software. By using simulation, you’re transported to a novel dimension where, because of the control over time, you can become Neo from…

Teaching Networking using Simics

By Jakob Engblom Wind River Education Services provides user training for a variety of topics, including Wind River operating systems and tools, as well as more general topics like networking. Training always includes hands-on labs, which can complicate logistics for training sessions. Shipping boards and configuring networks is time-consuming and error-prone. For that reason, we are looking into using Simics as…

Forcing Rare Bugs to Appear – an Interview with Tingting Yu

By Jakob Engblom One use of Simics that has always been fascinating is to use the power you have over the target to somehow force error conditions in software. The hardware state control inherent in a tool like Simics should be useful to knock a system off of the expected common path and into code less tested, and to reveal…

Getting Code Coverage with LDRA Tools on Simics

By Jakob Engblom A system development tool like Simics is rarely used completely on its own. Simics is usually brought in by companies and development teams who are already using a variety of tools and expect to keep doing so along with Simics. Also, Simics by itself cannot reasonably be expected to solve all problems for all people. Instead, we…

Happy 30, 80186 (and 0b100000, 8051)

By Jakob Engblom  As mentioned in past blog posts on Simics, maintaining old software and developing new software for older hardware is a not-too-uncommon use case for Simics. Case in point: we recently added a couple of new target processors to the Simics model library that most people would probably consider "surprisingly old" hardware. For a long-time embedded programmer like myself,…

Making a Faulty Serial Port

By Jakob Engblom  As noted before, one common use case for Simics is doing fault injection.  Fault injection is typically added to an existing system without changing it, since the goal is to maintain a fundamentally fast simulator when not injecting faults.  There are a range of mechanisms available in Simics to implement fault injection. This blog post will take a…

Simics for Networked Systems: An Interview with RTI

By Jakob Engblom Networked systems is one of the primary application areas for Simics. Simics can run many machines inside a single Simics simulation, and apply all Simics features to the system, not just to a single machine inside the system. This is something that Dan Poirot from Real-Time Innovations, RTI, has made quite extensive use of recently. It is a…

Why Simics Won’t Run Super Mario

By Jakob Engblom Emulating old computer gaming systems is a popular consumer-market application of simulation technology similar to Wind River Simics. There are a large number of emulators out there, emulating everything from old arcade games to the home computers of the 1980's to gaming consoles.  These emulators might seem quite similar to Simics on the surface, but in practice,…

Stop, Think, and Tie Your Shoes Right

By Jakob Engblom I was sent a link to a past TED talk about how to tie your shoes. It is worth watching, and from the discussions I have seen on Facebook around the video, it seems that most people do it the "wrong" way.  I have actually started to try to do it the "right" way, and the result is…

Surfing the Web with Netscape 4

By Jakob Engblom While looking into our old SPARC server targets for our new SPARC legacy offering, I  opened up a Simics demo checkpoint that we have had around for a long time (at least eight years). This demo is an UltraSPARC II running Solaris 9, and it shows how web browsers looked around 2001.  I used real-network to connect the…