{"id":13512370,"url":"https://github.com/firesim/firesim","last_synced_at":"2025-03-30T22:32:37.999Z","repository":{"id":37819860,"uuid":"133268556","full_name":"firesim/firesim","owner":"firesim","description":"FireSim: Fast and Effortless FPGA-accelerated Hardware Simulation with On-Prem and Cloud Flexibility","archived":false,"fork":false,"pushed_at":"2024-04-13T00:44:30.000Z","size":61071,"stargazers_count":812,"open_issues_count":228,"forks_count":215,"subscribers_count":52,"default_branch":"main","last_synced_at":"2024-04-13T11:13:17.613Z","etag":null,"topics":["boom","cloud","datacenter","firesim","fpga","hardware","on-prem","risc-v","rocket-chip","simulation"],"latest_commit_sha":null,"homepage":"https://fires.im","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firesim.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-05-13T19:39:17.000Z","updated_at":"2024-04-14T22:40:51.224Z","dependencies_parsed_at":"2024-01-29T00:20:27.442Z","dependency_job_id":"88eabf78-ac65-485d-9ed1-f56aca42b3b0","html_url":"https://github.com/firesim/firesim","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesim%2Ffiresim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesim%2Ffiresim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesim%2Ffiresim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesim%2Ffiresim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firesim","download_url":"https://codeload.github.com/firesim/firesim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246390874,"owners_count":20769476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boom","cloud","datacenter","firesim","fpga","hardware","on-prem","risc-v","rocket-chip","simulation"],"created_at":"2024-08-01T03:01:47.197Z","updated_at":"2025-03-30T22:32:32.983Z","avatar_url":"https://github.com/firesim.png","language":"Scala","readme":"# FireSim: Fast and Effortless FPGA-accelerated Hardware Simulation with On-Prem and Cloud Flexibility\n\n![FireSim Documentation Status](https://readthedocs.org/projects/firesim/badge/)\n![Github Actions Status](https://github.com/firesim/firesim/actions/workflows/firesim-run-tests.yml/badge.svg)\n\n| We held the First FireSim and Chipyard User/Developer Workshop at ASPLOS 2023 on March 26, 2023! This workshop featured a full-day of talks from users and developers in the FireSim and Chipyard community. YouTube videos of the talks are available on the [2023 Workshop Page](https://fires.im/workshop-2023/)! |\n|--------|\n\n## Contents\n\n1. [Using FireSim](#using-firesim)\n2. [What is FireSim?](#what-is-firesim)\n3. [What can I simulate with FireSim?](#what-can-i-simulate-with-firesim)\n4. [Need help?](#need-help)\n5. [Contributing](#contributing)\n6. [Publications](#publications)\n\n## Using FireSim\n\nTo get started with FireSim, you can find our extensive documentation and getting-started guide at\n[docs.fires.im](https://docs.fires.im). The FireSim codebase is open-source at\n[github.com/firesim/firesim](https://github.com/firesim/firesim) and we welcome pull requests and issues.\nYou can also get help from the FireSim user community on our [User Forum](https://groups.google.com/forum/#!forum/firesim). \nAdditionally, we frequently run tutorials at various conferences\nand events; for overview purposes, you can find the most recent slide decks at [fires.im/tutorial-recent](https://fires.im/tutorial-recent) (you should still follow [docs.fires.im](https://docs.fires.im) for the most up to date getting-started guide).\n\nAnother good overview from a recent event (in video format) can be found [on YouTube](https://www.youtube.com/watch?v=_leRHbe5t6M).\n\n## What is FireSim?\n\nFireSim is an [open-source](https://github.com/firesim/firesim)\nFPGA-accelerated full-system hardware simulation platform that makes\nit easy to validate, profile, and debug RTL hardware implementations\nat 10s to 100s of MHz. FireSim simplifies co-simulating \nASIC RTL with cycle-accurate hardware and software models for other system components (e.g. I/Os). FireSim can productively \nscale from individual SoC simulations hosted on on-prem FPGAs (e.g., a single Xilinx Alveo board attached to a desktop) \nto massive datacenter-scale simulations harnessing hundreds of cloud FPGAs (e.g., on Amazon EC2 F1).\n\n**Who's using and developing FireSim?** FireSim users across academia and industry (at 20+ institutions) have published over 40 papers using FireSim in many areas, including computer architecture, systems, networking, security, scientific computing, circuits, design automation, and more (see the [Publications page](https://fires.im/publications/)). FireSim has also been used in the development of shipping commercial silicon. FireSim was originally developed in the [Electrical Engineering and Computer Sciences\nDepartment][eecs] at the [University of California, Berkeley][berkeley], but now has industrial and academic contributors from all over the world.\n\nYou can learn more about FireSim in the following places:\n\n* **FireSim website**: https://fires.im\n* **FireSim ISCA 2018 Paper**: [Paper PDF](https://sagark.org/assets/pubs/firesim-isca2018.pdf) | [IEEE Xplore](https://ieeexplore.ieee.org/document/8416816) | [ACM DL](https://dl.acm.org/citation.cfm?id=3276543) | [BibTeX](https://sagark.org/assets/pubs/firesim-isca2018.bib.txt) | Selected as one of IEEE Micro’s “Top Picks from Computer Architecture Conferences, 2018”.\n* **FireSim ISCA-50 Retrospective**: [Paper PDF](https://sites.coecis.cornell.edu/isca50retrospective/files/2023/06/Karandikar_2018_FireSim.pdf)\n* **FireSim documentation**: [https://docs.fires.im](https://docs.fires.im)\n* **Scala API Documentation**: [https://fires.im/firesim/latest/api/](https://fires.im/firesim/latest/api/)\n* **LatchUp 2023 Update Talk**: [YouTube](https://www.youtube.com/watch?v=_leRHbe5t6M)\n* **FireSim (+Chipyard) Tutorial**: [https://fires.im/tutorial-recent/](https://fires.im/tutorial-recent/)\n* **ASPLOS 2023 Tutorial Videos**: [YouTube Playlist](https://www.youtube.com/playlist?list=PL-YKJjRMRb9xe1RP4uoM69CRyXZZFy2ta)\n* **Updates/News**: [Changelog](/CHANGELOG.md) | [FireSim Blog](https://fires.im/blog/) | [Twitter](https://twitter.com/firesimproject)\n\n## What can I simulate with FireSim?\n\nFireSim can simulate arbitrary hardware designs written in\n[Chisel](https://chisel.eecs.berkeley.edu) or Verilog.\nWith FireSim, users can write their own RTL (processors, accelerators, etc.) and\nrun it at near-FPGA-prototype speeds on cloud or on-prem FPGAs, while obtaining\nperformance results that match an ASIC implementation of the same design. \nDepending on the hardware design and the simulation scale,\nFireSim simulations run at 10s to 100s of MHz. Users can also integrate\ncustom software models for components that they don't need or want to write as RTL.\nTo help construct a closed and deterministic simulated environment around a design, FireSim includes\nvalidated and high-performance HW/SW models for I/Os like DRAM, Ethernet, Disks, UART, and more.\nThe [User Publications page][userpubs] links to a selection of papers written by FireSim users.\n\nFireSim was originally developed to simulate datacenters by combining\nopen RTL for RISC-V processors with a custom cycle-accurate network simulation.\nBy default, FireSim provides all the RTL and models necessary\nto cycle-exactly simulate from one to thousands of multi-core compute\nnodes, derived directly from silicon-proven and open target-RTL\n([RISC-V][riscv] [Rocket Chip][rocket-chip], [BOOM][boom], and [Chipyard][chipyard]), with an optional\ncycle-accurate network simulation tying them together. FireSim also\nprovides a [Linux distribution](https://github.com/firesim/firemarshal)\nthat is compatible with the RISC-V systems it simulates and\n[automates](https://docs.fires.im/en/latest/Advanced-Usage/Workloads/Defining-Custom-Workloads.html)\nthe process of including new workloads into this Linux distribution.\nThese simulations run fast\nenough to interact with Linux on the simulated system at the command line, [like\na real\ncomputer](https://twitter.com/firesimproject/status/1031267637303508993). Users\ncan even [SSH into simulated systems in\nFireSim](http://docs.fires.im/en/latest/Advanced-Usage/Miscellaneous-Tips.html#experimental-support-for-sshing-into-simulated-nodes-and-accessing-the-internet-from-within-simulations)\nand access the Internet from within them.\n\nHead to the [FireSim Website](https://fires.im) to learn more.\n\n## Need help?\n\n* Join the FireSim Mailing list: https://groups.google.com/forum/#!forum/firesim\n* Post an issue on this repo\n* Follow on Twitter for project updates: [@firesimproject](https://twitter.com/firesimproject)\n\n## Contributing\n\n* See [CONTRIBUTING.md](/CONTRIBUTING.md)\n\n## Publications\n\n### **ISCA 2018**: FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud\n\nYou can learn more about FireSim in our ISCA 2018 paper, which covers the overall FireSim infrastructure and large distributed simulations of networked clusters. This paper was selected as one of **IEEE Micro’s \"Top Picks from Computer Architecture Conferences, 2018\"** and for **\"ISCA@50 25-year Retrospective 1996-2020\"**.\n\n\u003e Sagar Karandikar, Howard Mao, Donggyu Kim, David Biancolin, Alon Amid, Dayeol\nLee, Nathan Pemberton, Emmanuel Amaro, Colin Schmidt, Aditya Chopra, Qijing\nHuang, Kyle Kovacs, Borivoje Nikolic, Randy Katz, Jonathan Bachrach, and Krste\nAsanović. **FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in\nthe Public Cloud**. *In proceedings of the 45th International Symposium\non Computer Architecture (ISCA’18)*, Los Angeles, CA, June 2018.\n\n[Paper PDF](https://sagark.org/assets/pubs/firesim-isca2018.pdf) | [IEEE Xplore](https://ieeexplore.ieee.org/document/8416816) | [ACM DL](https://dl.acm.org/citation.cfm?id=3276543) | [BibTeX](https://sagark.org/assets/pubs/firesim-isca2018.bib.txt)\n\n\n### **FPGA 2019**: FASED: FPGA-Accelerated Simulation and Evaluation of DRAM\n\nOur paper from FPGA 2019 details the DRAM model used in FireSim:\n\n\u003e David Biancolin, Sagar Karandikar, Donggyu Kim, Jack Koenig, Andrew Waterman, Jonathan Bachrach, Krste Asanović, **FASED: FPGA-Accelerated Simulation and Evaluation of DRAM**, *In proceedings of the 27th ACM/SIGDA International Symposium on Field-Programmable Gate Arrays*, Seaside, CA, February 2018.\n\n[Paper PDF](https://people.eecs.berkeley.edu/~biancolin/papers/fased-fpga19.pdf) |\n[ACM DL](https://dl.acm.org/citation.cfm?id=3293894) |\n[BibTeX](https://people.eecs.berkeley.edu/~biancolin/bib/fased-fpga19.bib)\n\n### **IEEE Micro Top Picks of 2018**: FireSim: FPGA-Accelerated, Cycle-Accurate Scale-Out System Simulation in the Public Cloud\n\nThis article discusses several updates since the FireSim ISCA 2018 paper:\n\n\u003e Sagar Karandikar, Howard Mao, Donggyu Kim, David Biancolin, Alon Amid, Dayeol Lee, Nathan Pemberton, Emmanuel Amaro, Colin Schmidt, Aditya Chopra, Qijing Huang, Kyle Kovacs, Borivoje Nikolic, Randy Katz, Jonathan Bachrach, and Krste Asanović. **FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud**. *IEEE Micro, vol. 39, no. 3, pp. 56-65, (Micro Top Picks 2018 Issue)*. May-June 2019.\n\n[Article PDF](https://sagark.org/assets/pubs/firesim-micro-top-picks2018.pdf)\n\n### **ICCAD 2019**: Golden Gate: Bridging The Resource-Efficiency Gap Between ASICs and FPGA Prototypes\n\nOur paper describing FireSim's Compiler, _Golden Gate_:\n\n\u003e Albert Magyar, David T. Biancolin, Jack Koenig, Sanjit Seshia, Jonathan Bachrach, Krste Asanović, **Golden Gate: Bridging The Resource-Efficiency Gap Between ASICs and FPGA Prototypes**, *In proceedings of the 39th International Conference on Computer-Aided Design (ICCAD '19)*, Westminster, CO, November 2019.\n\n[Paper PDF](https://davidbiancolin.github.io/papers/goldengate-iccad19.pdf)\n\n### **ASPLOS 2020**: FirePerf: FPGA-Accelerated Full-System Hardware/Software Performance Profiling and Co-Design\n\nOur paper that discusses system-level profiling features in FireSim:\n\n\u003e Sagar Karandikar, Albert Ou, Alon Amid, Howard Mao, Randy Katz, Borivoje Nikolić, and Krste Asanović, **FirePerf: FPGA-Accelerated Full-System Hardware/Software Performance Profiling and Co-Design**, *In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2020)*, Lausanne, Switzerland, March 2020.\n\n[Paper PDF](https://sagark.org/assets/pubs/fireperf-asplos2020.pdf)\n\n### **IEEE MICRO 2021**: Accessible, FPGA Resource-Optimized Simulation of Multi-Clock Systems in FireSim\n\nIn this special issue, we describe the automated instance-multithreading optimization and support for multiple clock domains in the simulated target.\n\n\u003e David Biancolin, Albert Magyar, Sagar Karandikar, Alon Amid, Borivoje Nikolić, Jonathan  Bachrach, Krste Asanović. **Accessible, FPGA Resource-Optimized Simulation of Multi-Clock Systems in FireSim**. *In IEEE Micro Volume: 41, Issue: 4, July-Aug. 1 2021*\n\n[Article PDF](https://davidbiancolin.github.io/papers/firesim-micro21.pdf)\n\n### **ISCA@50 Retrospective: 1996-2020**: FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud\n\nThis retrospective paper, included in the \"ISCA@50 Retrospective: 1996-2020\" collection, provides an update and retrospective\non FireSim's development and evolution since the original ISCA 2018 paper.\n\n\u003e Sagar Karandikar, Howard Mao, Donggyu Kim, David Biancolin, Alon Amid, Dayeol\nLee, Nathan Pemberton, Emmanuel Amaro, Colin Schmidt, Aditya Chopra, Qijing\nHuang, Kyle Kovacs, Borivoje Nikolic, Randy Katz, Jonathan Bachrach, and Krste\nAsanović. **FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in\nthe Public Cloud**. *In ISCA@50 Retrospective: 1996-2020*, \nEdited by José F. Martínez and Lizy K. John, June 2023.\n\n[Retrospective PDF](https://sites.coecis.cornell.edu/isca50retrospective/files/2023/06/Karandikar_2018_FireSim.pdf)\n\n### **ISCA 2024**: FireAxe: Partitioned FPGA-Accelerated Simulation of Large-Scale RTL Designs\n\nOur paper from ISCA 2024 explains how the FireSim compiler can partition the design across multiple FPGAs to simulate scale-up SoC designs.\n\n\u003e Joonho Whangbo, Edwin Lim, Chengyi Lux Zhang, Kevin Anderson, Abraham Gonzalez, Raghav Gupta, Nivedha Krishnakumar, Sagar Karandikar, Borivoje Nikolić, Yakun Sophia Shao, and Krste Asanović, “FireAxe: Partitioned FPGA-Accelerated Simulation of Large-Scale RTL Designs”, To appear, In Proceedings of the 51th ACM/IEEE International Symposium on Computer Architecture (ISCA 2024), Buenos Aires, Argentina, June 2024.\n\n[FireAxe PDF](https://joonho3020.github.io/assets/ISCA2024-FireAxe.pdf)\n\n\nYou can find other publications, including publications that *use* FireSim on the [FireSim Website](https://fires.im/publications/).\n\n[ucb-bar]: http://bar.eecs.berkeley.edu\n[eecs]: https://eecs.berkeley.edu\n[berkeley]: https://berkeley.edu\n[riscv]: https://riscv.org/\n[rocket-chip]: https://github.com/freechipsproject/rocket-chip\n[boom]: https://github.com/ucb-bar/riscv-boom\n[userpubs]: /publications.md#userpapers\n[chipyard]: https://github.com/ucb-bar/chipyard\n","funding_links":[],"categories":["Scala","Electronics Simulators","Tools"],"sub_categories":["Mesh networks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresim%2Ffiresim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiresim%2Ffiresim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresim%2Ffiresim/lists"}