SiliconCompiler

raw JSON →
0.37.9 verified Sat May 09 auth: no python

A compiler framework that automates translation from source code to silicon. Current version 0.37.9, with frequent minor releases roughly every 1-2 weeks. Requires Python >= 3.9.

pip install siliconcompiler
error AttributeError: module 'siliconcompiler' has no attribute 'Chip'
cause Incorrect import statement, e.g., `import siliconcompiler` and then `siliconcompiler.Chip()` but Chip is not a module-level attribute.
fix
Use from siliconcompiler import Chip
error ModuleNotFoundError: No module named 'siliconcompiler.schema'
cause Attempting to import Schema from the wrong submodule; Schema is exposed at the top level.
fix
Use from siliconcompiler import Schema
error siliconcompiler.exceptions.SiliconCompilerError: Design object is not set.
cause Forgetting to create a Chip object or not setting a design name.
fix
Instantiate Chip with a design name: chip = Chip('my_design')
breaking In v0.37.0, the schema was changed so that all libraries use design object base class. Existing flows may need updates to library setup code.
fix Review library definitions and ensure they inherit from Chip or use the new base class as documented.
gotcha The `sc-issue` command previously required a `-cfg` argument; in v0.37.8 this requirement was removed.
fix Remove `-cfg` from `sc-issue` calls, or upgrade to >=0.37.8.
deprecated Some older tool tasks (e.g., for older OpenROAD versions) may be deprecated. Check the specific tool version compatibility.
fix Always use the recommended tool version in the SiliconCompiler documentation.
gotcha When setting `option,from`, the flowgraph will ignore the step if it appears in a leg with parallel paths (fixed in v0.37.9).
fix Upgrade to v0.37.9 or later to avoid unexpected flowgraph behavior.

Basic example: create a Chip, set a target, and compile.

from siliconcompiler import Chip

chip = Chip('hello_world')
chip.set('option', 'target', {"name": "freepdk45_demo"})
chip.compile()