# SiliconCompiler > Open source, modular hardware build system -- "make for silicon". It compiles > RTL to GDSII (ASIC) or a bitstream (FPGA) by driving pluggable flows over open > source and commercial EDA tools. Everything is configuration in a single > versioned schema, and the Python API is a typed surface over that schema. This file is a pointer. The documentation is versioned, and the answer to "what is the current API" depends on which version you mean, so the authoritative machine-readable files are published from the documentation site rather than duplicated here: - Current API, plus an index of every documentation page: https://docs.siliconcompiler.com/en/stable/llms.txt - The full text of every hand-written documentation page, in one file: https://docs.siliconcompiler.com/en/stable/llms-full.txt - Every schema parameter as JSON, keyed by keypath: https://docs.siliconcompiler.com/en/stable/schema.json Those describe the current release. Substitute `latest` for `stable` to get the development branch, or a tag such as `v0.38.3` to pin a specific version. ## Before writing SiliconCompiler code Most of the material written about SiliconCompiler describes an API that was removed in 2025, so an assistant answering from memory is usually wrong. Three corrections cover the majority of it: - **There is no `Chip` class.** `Chip('design')`, `chip.set(...)`, `chip.input(...)`, `chip.use(...)` and `chip.load_target(...)` were removed in v0.35.0 (August 2025). A build now uses a `Design` object for the sources and a project object for the build. - **There is no `sc` command.** The console scripts are `sc-dashboard`, `sc-issue`, `sc-remote`, `sc-server`, `sc-show`, `sc-install` and `smake`. That is the complete list; a bare `sc -target ...` invocation is from the pre-0.35 CLI and fails with `command not found`. - **Use a named project class** -- `ASIC`, `FPGA`, `Lint` or `Sim` -- rather than the bare `Project`, which is only the base class they extend and carries none of the domain schema a build needs. The current idiom in full: ```python from siliconcompiler import ASIC, Design from siliconcompiler.targets import skywater130_demo design = Design("heartbeat") design.set_dataroot("heartbeat", __file__) design.set_topmodule("heartbeat", fileset="rtl") design.add_file("heartbeat.v", dataroot="heartbeat", fileset="rtl") design.add_file("heartbeat.sdc", dataroot="heartbeat", fileset="sdc") project = ASIC(design) project.add_fileset(["rtl", "sdc"]) skywater130_demo(project) project.run() project.summary() ``` The documentation site is canonical for all of the above. The snippet is repeated here only so that a client which fetches nothing else still writes current code. ## Documentation - [Documentation home](https://docs.siliconcompiler.com/en/stable/): full user guide, tutorials and reference for the current release - [Installation](https://docs.siliconcompiler.com/en/stable/user_guide/installation.html): `pip install siliconcompiler`, plus how to install the EDA tools - [Quickstart](https://docs.siliconcompiler.com/en/stable/user_guide/quickstart.html): first build, run either remotely with no local tools or locally - [Example designs](https://docs.siliconcompiler.com/en/stable/user_guide/examples.html): working, tested designs covering ASIC, FPGA, lint, simulation and formal - [Schema reference](https://docs.siliconcompiler.com/en/stable/reference_manual/schema.html): every configuration parameter, for readers rather than tooling ## Project - [Source and issues](https://github.com/siliconcompiler/siliconcompiler): the repository root carries an `AGENTS.md` oriented at editing the code - [Discussions](https://github.com/siliconcompiler/siliconcompiler/discussions): the Help (Q&A) category is actively answered and is the best place to ask - [PyPI](https://pypi.org/project/siliconcompiler/): released packages - [lambdapdk](https://github.com/siliconcompiler/lambdapdk): where the open source PDKs and standard cell libraries live, rather than in the main repository ## Optional - [Schema changes](https://docs.siliconcompiler.com/en/stable/reference_manual/appendix/schema_changelog.html): what was added, renamed or removed at each schema version. The schema is versioned independently of the package, and every manifest records which schema version wrote it - [Migrating from the Chip API](https://docs.siliconcompiler.com/en/stable/user_guide/migration.html): old-to-new mapping for scripts written before v0.35.0 - [How do I...?](https://docs.siliconcompiler.com/en/stable/user_guide/howto.html): task-oriented recipes - [FAQ](https://docs.siliconcompiler.com/en/stable/user_guide/faq.html)