Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Giano

Giano is a simulation framework for the full-system simulation of arbitrary computer systems, with special emphasis on the hardware-software co-development of system software and Real-Time embedded applications.

Overview

Giano allows the simultaneous execution of binary code on a simulated microprocessor and of Verilog code on a simulated FPGA, within a single target system capable of interacting in Real-Time with the outside world. The graphical user interface uses Visio to create the interconnection graph of the user-provided simulation modules in PlatformXML, an XML-based configuration description language. Giano's design is guided by the two goals of maximizing the tool's extensibility and to leverage other existing tools to the maximum extent possible. Giano is the first simulator that supports Real-Time Simulation and the symbolic performance analysis of dynamically loaded software. Simulations can be saved and later restored for easier experimentation. Experience with several projects indicates that the tool is effective in reducing the development and maintenance time for system software and for embedded applications. The most visible benefits are a shorter modify-compile-test cycle, better support for performance tuning and improved flaw detection. The latest release has added a checkpoint/restore facility, new modules, and many new full-system examples.

Giano is freely available in source and binary form for non-commercial use. The latest release includes a number of demonstration systems, embedded boards, the eMIPS extensible processor, early product prototypes for SPOT and the Xbox360, a PC running WinCE, and historical systems like the VAX.  This PDF file can help you get started. This 2.0MB PowerPoint file is the basis for a tutorial presented at the RTAS 2007 conference. See the reports below for more information.

Current release:   Version 3.1.

Project Members

  • Alessandro Forin
  • Neil Pittman
  • Haris Javaid

Past Project Members

  • Ping Hang Cheung
  • Behnam Neekzad
  • Nathaniel L. Lynch
  • Weiquin (Ben) Ma

Publications

  1. Cheung, P. H., Forin, A., A C-language binding for PSL, MSR-TR-2006-131, Microsoft Research, WA, September 2006.
  2. Forin, A., Neekzad, B., Lynch, N. L., Giano: The Two-Headed System Simulator, MSR-TR-2006-130, Microsoft Research, WA, September 2006.
  3. Ma, W., Forin, A., Design and Testing of a CPU Emulator, MSR-TR-115, Microsoft Research, WA, August 2009. Revised version to be presented at the 21st IEEE Intl. Symposium on Rapid System Prototyping, Fairfax, VA, June 2010.