Experiment
Dream It. Simulate It. Validate It.
Simics makes it easy to experiment with different hardware setups, software applications, and platform configurations to validate assumptions before committing to system design. Test the way your software behaves and scales by varying memory size, core count, processor speed, and number of boards in a network, in any variation of circumstances. And run software setups from various generations on different hardware to ensure that the old works with the new as it should.
Resources: Experiment
Test & Run
Fly What You Test and Test What You Fly
Run your software on the virtual system just as it would run on the physical system, without the limitations of physical systems. With Simics, the software binaries you run on the virtual system are the same you’ll run on the real target—and all developers can run them from the very start. You can also integrate the real software running on a virtual target with hardware-in-the-loop and simulation-in-the-loop setups. Simics can interface to the real world as well as to virtual worlds, allowing software to be tested and run in virtually real setups.
Simics allows software development, QA, and integration to start earlier and progress concurrently. Develop and test individual pieces of the system on the fly, avoiding a risky “big-bang” integration phase at the end. Automate your complete test environment, with unlimited numbers of target systems to run tests in parallel. And run automated nightly builds that test the latest check-ins, with complete reports in the morning.
Simics also allows you to easily test error handling and fault recovery code, using fault injection to affect arbitrary parts of the hardware (and sometimes software) state with perfect precision and with no risk of breaking expensive hardware. With Simics, you can easily test system parts that are otherwise almost impossible to test at all.
Resources: Test & Run
Debug
Groundbreaking Debugging Techniques
Simics makes problem isolation and analysis much more efficient. Debug all your software (including BIOS, drivers, low-level software, and OS-level code) without access to hardware and with perfect control over the virtual target. Start, stop, single-step, and reverse the system to find out exactly where and why it breaks—and email the resulting setup and analysis to colleagues around the globe. With Simics’ determinism you have perfect repeatability—you know that issues found on the virtual target can be repeated any time, anywhere.
Use the scripting and programmability of Simics to automate bug detection. The Simics debugger debugs an entire target system as a unit, including all levels of the software stack and even multiple OS instances and boards. And with Simics’ OS awareness you can debug individual user space applications alongside the OS, hypervisor, and BIOS.
Resources: Debug
Develop
Develop on the Real System—From the Start
Many application developers use substitutes for their software development, debugging, and testing tasks because of bad experiences using target hardware. Since they then use a different toolchain and run their code on a different architecture, many problems do not appear until the code is compiled for the real target and integrated onto the target system. Because this activity occurs late in the development process, problems found at this stage can have huge repercussions on the overall schedule and product reliability. With Simics, application developers can use the real target from the start, with the same toolchain, libraries, operating system API, and operating system behavior. With virtual targets there is no lack of hardware access, no managing of complex configuration and different setups, no flaky hardware not working, and no expensive shipping of hardware.
Use a Simics Quick Start Platform to equip application developers with a target of the right architecture and operating system long before the actual target hardware has been designed, developed, and manufactured.
Resources: Develop
Enable
Empower All Collaborators
Enable your product users with virtual systems in all phases of the product lifecycle. For example, a semiconductor vendor can seed its customers with early access to a new chip, far in advance of prototype silicon. An internal development group can provide platform integrators and application development teams with virtual boards while the real board is being designed. Partner companies working on different parts of a program can share a common system for development. Operations teams in sales, customer satisfaction, partner enablement, and training can get huge boosts by deploying simulated hardware to their teams. Sales can demonstrate new products before they are available to shrink the gap between product release and revenue. And with simulated hardware, training is no longer limited by the expense constraints of physical hardware, making it possible to train more people, faster.
Resources: Enable
Communicate
One Team. One System. Effortless Communication.
Simics makes it possible to consider the system’s hardware, software, current state, and execution history as a single unit that can be copied, communicated, and replicated with ease by anyone on the team, anywhere in the world. With Simics, communication between development, test, integration, support, and sustain teams is effortless.
Simics assets such as device models, target configurations, system setups, automation scripts, checkpoints, traffic recordings, and debug configurations are all designed to be shared between users and teams. Metadata can be added in the form of user-editable comments, documentation strings, or time-stamped notes during the system execution to help the recipient of a setup understand how the current state was created.
Platform development teams can build, configure, and boot complete platform setups and distribute them to all developers so they always have the latest setup. And when a QA team observes test failures, it can use Simics checkpoints and determinism to reliably repeat the failing test cases on the developer’s machine—with cycle-perfect precision and guaranteed success.
Resources: Communicate