.. Copyright 2022 Max Planck Institute for Software Systems, and National University of Singapore .. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: .. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. .. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. .. image:: simbricks-text-horizontal.svg :width: 600 | | SimBricks ========= ---- **Website**: :website:`\ ` **Source Code**: :simbricks-repo-plain:`\ ` **Slack**: :slack:`\ ` ---- About ################################### SimBricks is a platform for creating and simulating virtual prototypes of modern heterogeneous computer systems and enables meaningful end-to-end evaluations of such systems in simlation. To create virtual prototypes of complete computer systems, rather than individual components, SimBricks modularly combines and connects battle-tested simulators for different components: machines (e.g. QEMU, gem5, Simics), hardware components (e.g. Verilator, Tofino, FEMU SSD), and networks (e.g. ns-3, OMNeT++). SimBricks simulations run unmodified full-system stacks, including applications, operating systems such as Linux, and hardware RTL. SimBricks **does not** replace existing simulators for individual components, but instead enables users to connect together multiple existing simulators, even from different vendors and never designed to interoperate, into a complete system. Key Features: * **Easy:** Easily create and execute virtual representations of your system through simple Python. * **Fast:** Efficient synchronization mechanisms in SimBricks enable fast simulation execution. * **Full-System:** Create full-system virtual prototypes with all components you would find in the real world using SimBricks. * **Extensible:** Easily integrate your component simulators. * **Scalable:** Create large-scale virtual prototypes with thousands of components. To easily get started with using SimBricks check out our :ref:`chap-quickstart` guide. .. include:: use-cases.rst .. include:: supported-sims.rst Learn more about SimBricks ###################################################################### .. toctree:: :numbered: :maxdepth: 2 :caption: Contents: quickstart/index learn/index setup_and_compile/index reference/index