Software and System Development using Virtual Platforms

Software and System Development using Virtual Platforms

Full-System Simulation with Wind River Simics

1st Edition - September 15, 2014

Write a review

  • Authors: Daniel Aarno, Jakob Engblom
  • eBook ISBN: 9780128008133
  • Paperback ISBN: 9780128007259

Purchase options

Purchase options
DRM-free (PDF, Mobi, EPub)
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order


Virtual platforms are finding widespread use in both pre- and post-silicon computer software and system development. They reduce time to market, improve system quality, make development more efficient, and enable truly concurrent hardware/software design and bring-up. Virtual platforms increase productivity with unparalleled inspection, configuration, and injection capabilities. In combination with other types of simulators, they provide full-system simulations where computer systems can be tested together with the environment in which they operate. This book is not only about what simulation is and why it is important, it will also cover the methods of building and using simulators for computer-based systems. Inside you’ll find a comprehensive book about simulation best practice and design patterns, using Simics as its base along with real-life examples to get the most out of your Simics implementation. You’ll learn about: Simics architecture, model-driven development, virtual platform modelling, networking, contiguous integration, debugging, reverse execution, simulator integration, workflow optimization, tool automation, and much more.

Key Features

  • Distills decades of experience in using and building virtual platforms to help readers realize the full potential of virtual platform simulation
  • Covers modeling related use-cases including devices, systems, extensions, and fault injection
  • Explains how simulations can influence software development, debugging, system configuration, networking, and more
  • Discusses how to build complete full-system simulation systems from a mix of simulators


Software engineers focused on embedded, distributed and low-level software, and students in these disciplines

Table of Contents

    • Foreword
    • Acknowledgments
    • Chapter 1. Introduction
      • Virtual Platforms
      • Simulation and the System Development Lifecycle
      • Model-Driven Development
      • Book Outline
      • Trademark Information
    • Chapter 2. Simics fundamentals
      • Simics Architecture and Terminology
      • Running Real Software Stacks
      • Interacting with Simics
      • Configurations and the Simics Object Model
      • Components
      • Time in Simics
      • Abstraction Levels
      • Event-Based Simulation
      • Memory Maps
      • Memory Images
      • Checkpointing
      • Determinism and Repeatability
      • Simics Performance Technology
      • Models and Extensions
    • Chapter 3. Develop and debug software on Simics
      • Development Means Testing
      • Agent-Based Debugger
      • Debugging Using Simics
      • Performance Analysis
      • Inspecting the Hardware State
      • Fault-Injection and Boundary Conditions
      • Using Checkpoints
      • Loading Software
      • Continuous Integration
      • Shortcuts in the Software Stack
    • Chapter 4. System configuration in Simics
      • Simics Component System
      • Setup Scripts
      • Automating Target Configuration and Boot
    • Chapter 5. Networking
      • Network Simulation in Simics
      • Simulated Network Nodes
      • Traffic Inspection and Modification
      • Scaling Up the Network Size
      • Connecting the Real World
      • Ethernet Real-Network Variants
      • Programming New Networks
    • Chapter 6. Building virtual platforms
      • The Purpose of the Model
      • Virtual Platforms in Simics
      • Device Modeling Language
      • Reusing Existing Information
      • DML Features
      • Creating Device Models
      • Completing the Device Model
      • Reserved Registers and Missed Accesses
      • Creating Models in Other Languages
    • Chapter 7. DMA: A concrete modeling example
      • DMA Device Description
      • Implementing the Basic DMA Device Model
      • Creating a PCI Express (PCIe) Model
      • Creating a Component for the DMA Model
      • Creating a Device Driver
    • Chapter 8. Simulator extensions
      • Introduction
      • Implementing Extensions
      • Cache and Memory Simulation
      • Fault Injection
    • Chapter 9. Simulator integration
      • Introduction
      • Problems and Solutions
      • Run Control
      • Launching and Embedding
      • Time Management
      • Communications
      • Frontends
      • Running Simics from Other Programs
      • Record–Replay Debugging of Target Software
      • Running on a Simics Target
      • Multiple Simulator APIs
      • Simics Processor API
    • Chapter 10. Intel® architecture bring-up
      • Pre-Silicon Process
      • Early OS Enabling
      • Post-Silicon Process
      • Post-Silicon Case Study: PXE
    • Appendix A. Source code
      • Chapter 6: Counter Device
      • Chapter 7: DMA Device
    • References
    • Index

Product details

  • No. of pages: 366
  • Language: English
  • Copyright: © Morgan Kaufmann 2014
  • Published: September 15, 2014
  • Imprint: Morgan Kaufmann
  • eBook ISBN: 9780128008133
  • Paperback ISBN: 9780128007259

About the Authors

Daniel Aarno

Daniel Aarno
Daniel Aarno has been working with the Simics full system simulation product since 2006. His positions have ranged from software developer, customer project manager (including pre-sales) to engineering manager responsible for the modeling tools and model development in Simics at Intel. He has a number of publications, including journal and conference publications , book chapters and the book, Recognizing Intentions, on robotics and artificial intelligence.

Affiliations and Expertise

Engineering Manager for Simics Framework at Intel.

Jakob Engblom

Jakob Engblom
Jakob Engblom has been working with Simics since 2002, handling outbound marketing, inbound marketing, sales and field engineering, academic program and product management. Currently he is a technical marketing manager for tools at Wind River, planning the future of Simics as an end-user product and blogging about Simics. For the past 15 years, he has have worked with various aspects of programming and simulation tools for embedded systems. He has written and presented on a variety of embedded systems topics since 1997, including popular science, trade press, conference papers, journal papers, and book chapters in a wide variety of outlets.

Affiliations and Expertise

PhD, Product Line Manager for Simics Tools at Wind River

Ratings and Reviews

Write a review

There are currently no reviews for "Software and System Development using Virtual Platforms"