Logo
stable

User Guide

  • 1. Introduction
    • 1.1. Motivation
    • 1.2. Our Approach
    • 1.3. Authors
  • 2. Installation
    • 2.1. Installing Python
      • 2.1.1. Ubuntu (>=18.04)
      • 2.1.2. RHEL (>=RHEL 7)
      • 2.1.3. macOS (>=10.15)
      • 2.1.4. Windows (>= Windows 10)
    • 2.2. Installing SiliconCompiler
      • 2.2.1. Install from pypi.org
      • 2.2.2. Offline Install (Linux only)
      • 2.2.3. Install from GitHub Repo (Linux/MacOS)
    • 2.3. External Tools
  • 3. Quickstart guide
    • 3.1. Remote Run
      • 3.1.1. Public Cloud Access
      • 3.1.2. Remote Run Results
    • 3.2. Local Run
      • 3.2.1. View Design
    • 3.3. What Next?
  • 4. Glossary
  • 5. Data model
  • 6. Programming model
    • 6.1. Object Creation
    • 6.2. Setup
    • 6.3. Run
    • 6.4. Inspection
  • 7. Execution model
  • 8. Remote processing
    • 8.1. Configuring a Different Remote Server
      • 8.1.1. Public Server
      • 8.1.2. Private Server
    • 8.2. Troubleshooting
  • 9. Tools
    • 9.1. setup(chip)
    • 9.2. parse_version(stdout)
    • 9.3. normalize_version(version)
    • 9.4. pre_process(chip)
    • 9.5. post_process(chip)
    • 9.6. runtime_options(chip)
    • 9.7. make_docs()
    • 9.8. run(chip)
    • 9.9. TCL interface
    • 9.10. Tool and Task Modules
  • 10. PDKs
    • 10.1. setup(chip)
    • 10.2. make_docs()
    • 10.3. PDK Modules
  • 11. Flows
    • 11.1. setup(chip)
    • 11.2. make_docs()
    • 11.3. Flow Modules
  • 12. Targets
  • 13. Metrics
  • 14. Records
  • 15. Libraries
    • 15.1. Library Modules
  • 16. Packages
  • 17. FAQ
    • 17.1. How do I…
  • 18. Licenses
    • 18.1. Software License
    • 18.2. Documentation License
    • 18.3. Dependency Licenses

Tutorials

  • 1. Contributing modules
  • 2. Parallel Programming
  • 3. Python-based frontends
  • 4. Chisel frontend
  • 5. C HLS frontend
  • 6. Bluespec frontend
  • 7. Building Your Own SoC
    • 7.1. Download PicoRV32 Verilog Code
    • 7.2. Build the PicoRV32 Core using SiliconCompiler
    • 7.3. Adding an SRAM block
    • 7.4. Extending your design
  • 8. Slurm setup
    • 8.1. Initial Slurm Configuration
      • 8.1.1. User and Group Configuration
      • 8.1.2. Slurm Daemon Installation
      • 8.1.3. Slurm Configuration Files
        • 8.1.3.1. cgroup.conf
        • 8.1.3.2. cgroup_allowed_devices.conf
        • 8.1.3.3. slurm.conf
      • 8.1.4. Slurm Startup
      • 8.1.5. Running SiliconCompiler on a Cluster

Reference Manual

  • 1. Schema
    • 1.1. Keywords
    • 1.2. Parameter Fields
      • 1.2.1. arg
        • 1.2.1.1. index
        • 1.2.1.2. step
      • 1.2.2. asic
        • 1.2.2.1. cells
        • 1.2.2.2. delaymodel
        • 1.2.2.3. libarch
        • 1.2.2.4. logiclib
        • 1.2.2.5. macrolib
        • 1.2.2.6. site
      • 1.2.3. checklist
        • 1.2.3.1. criteria
        • 1.2.3.2. dataformat
        • 1.2.3.3. description
        • 1.2.3.4. ok
        • 1.2.3.5. rationale
        • 1.2.3.6. report
        • 1.2.3.7. requirement
        • 1.2.3.8. task
        • 1.2.3.9. waiver
      • 1.2.4. constraint
        • 1.2.4.1. aspectratio
        • 1.2.4.2. component
        • 1.2.4.3. corearea
        • 1.2.4.4. coremargin
        • 1.2.4.5. density
        • 1.2.4.6. net
        • 1.2.4.7. outline
        • 1.2.4.8. pin
        • 1.2.4.9. timing
      • 1.2.5. datasheet
        • 1.2.5.1. feature
        • 1.2.5.2. footprint
        • 1.2.5.3. limits
        • 1.2.5.4. pin
      • 1.2.6. design
      • 1.2.7. flowgraph
        • 1.2.7.1. args
        • 1.2.7.2. goal
        • 1.2.7.3. input
        • 1.2.7.4. select
        • 1.2.7.5. status
        • 1.2.7.6. task
        • 1.2.7.7. timeout
        • 1.2.7.8. tool
        • 1.2.7.9. valid
        • 1.2.7.10. weight
      • 1.2.8. fpga
        • 1.2.8.1. arch
        • 1.2.8.2. board
        • 1.2.8.3. flash
        • 1.2.8.4. partname
        • 1.2.8.5. program
        • 1.2.8.6. vendor
      • 1.2.9. input
      • 1.2.10. metric
        • 1.2.10.1. averagepower
        • 1.2.10.2. brams
        • 1.2.10.3. buffers
        • 1.2.10.4. cellarea
        • 1.2.10.5. cells
        • 1.2.10.6. coverage
        • 1.2.10.7. dozepower
        • 1.2.10.8. drvs
        • 1.2.10.9. dsps
        • 1.2.10.10. errors
        • 1.2.10.11. exetime
        • 1.2.10.12. fmax
        • 1.2.10.13. holdpaths
        • 1.2.10.14. holdslack
        • 1.2.10.15. holdtns
        • 1.2.10.16. holdwns
        • 1.2.10.17. idlepower
        • 1.2.10.18. irdrop
        • 1.2.10.19. leakagepower
        • 1.2.10.20. luts
        • 1.2.10.21. macros
        • 1.2.10.22. memory
        • 1.2.10.23. nets
        • 1.2.10.24. overflow
        • 1.2.10.25. peakpower
        • 1.2.10.26. pins
        • 1.2.10.27. registers
        • 1.2.10.28. security
        • 1.2.10.29. setuppaths
        • 1.2.10.30. setupslack
        • 1.2.10.31. setuptns
        • 1.2.10.32. setupwns
        • 1.2.10.33. sleeppower
        • 1.2.10.34. tasktime
        • 1.2.10.35. totalarea
        • 1.2.10.36. totaltime
        • 1.2.10.37. transistors
        • 1.2.10.38. unconstrained
        • 1.2.10.39. utilization
        • 1.2.10.40. vias
        • 1.2.10.41. warnings
        • 1.2.10.42. wirelength
      • 1.2.11. option
        • 1.2.11.1. autoinstall
        • 1.2.11.2. breakpoint
        • 1.2.11.3. builddir
        • 1.2.11.4. cfg
        • 1.2.11.5. clean
        • 1.2.11.6. cmdfile
        • 1.2.11.7. continue
        • 1.2.11.8. copyall
        • 1.2.11.9. credentials
        • 1.2.11.10. define
        • 1.2.11.11. dir
        • 1.2.11.12. entrypoint
        • 1.2.11.13. env
        • 1.2.11.14. file
        • 1.2.11.15. flow
        • 1.2.11.16. flowcontinue
        • 1.2.11.17. frontend
        • 1.2.11.18. hash
        • 1.2.11.19. idir
        • 1.2.11.20. indexlist
        • 1.2.11.21. jobincr
        • 1.2.11.22. jobinput
        • 1.2.11.23. jobname
        • 1.2.11.24. libext
        • 1.2.11.25. loglevel
        • 1.2.11.26. metricoff
        • 1.2.11.27. mode
        • 1.2.11.28. nice
        • 1.2.11.29. nodisplay
        • 1.2.11.30. novercheck
        • 1.2.11.31. optmode
        • 1.2.11.32. param
        • 1.2.11.33. pdk
        • 1.2.11.34. quiet
        • 1.2.11.35. registry
        • 1.2.11.36. relax
        • 1.2.11.37. remote
        • 1.2.11.38. resume
        • 1.2.11.39. scheduler
        • 1.2.11.40. scpath
        • 1.2.11.41. show
        • 1.2.11.42. showtool
        • 1.2.11.43. skipall
        • 1.2.11.44. skipcheck
        • 1.2.11.45. skipstep
        • 1.2.11.46. stackup
        • 1.2.11.47. steplist
        • 1.2.11.48. strict
        • 1.2.11.49. target
        • 1.2.11.50. timeout
        • 1.2.11.51. trace
        • 1.2.11.52. track
        • 1.2.11.53. uselambda
        • 1.2.11.54. var
        • 1.2.11.55. vlib
        • 1.2.11.56. ydir
      • 1.2.12. output
      • 1.2.13. package
        • 1.2.13.1. author
        • 1.2.13.2. dependency
        • 1.2.13.3. depgraph
        • 1.2.13.4. description
        • 1.2.13.5. doc
        • 1.2.13.6. homepage
        • 1.2.13.7. keyword
        • 1.2.13.8. license
        • 1.2.13.9. licensefile
        • 1.2.13.10. location
        • 1.2.13.11. name
        • 1.2.13.12. organization
        • 1.2.13.13. publickey
        • 1.2.13.14. repo
        • 1.2.13.15. target
        • 1.2.13.16. version
      • 1.2.14. pdk
        • 1.2.14.1. aprtech
        • 1.2.14.2. d0
        • 1.2.14.3. density
        • 1.2.14.4. devmodel
        • 1.2.14.5. directory
        • 1.2.14.6. display
        • 1.2.14.7. doc
        • 1.2.14.8. drc
        • 1.2.14.9. edgemargin
        • 1.2.14.10. erc
        • 1.2.14.11. file
        • 1.2.14.12. fill
        • 1.2.14.13. foundry
        • 1.2.14.14. hscribe
        • 1.2.14.15. lambda
        • 1.2.14.16. layermap
        • 1.2.14.17. lvs
        • 1.2.14.18. maxlayer
        • 1.2.14.19. minlayer
        • 1.2.14.20. node
        • 1.2.14.21. panelsize
        • 1.2.14.22. pexmodel
        • 1.2.14.23. stackup
        • 1.2.14.24. thickness
        • 1.2.14.25. unitcost
        • 1.2.14.26. var
        • 1.2.14.27. version
        • 1.2.14.28. vscribe
        • 1.2.14.29. wafersize
      • 1.2.15. record
        • 1.2.15.1. arch
        • 1.2.15.2. distro
        • 1.2.15.3. endtime
        • 1.2.15.4. ipaddr
        • 1.2.15.5. kernelversion
        • 1.2.15.6. macaddr
        • 1.2.15.7. machine
        • 1.2.15.8. osversion
        • 1.2.15.9. platform
        • 1.2.15.10. publickey
        • 1.2.15.11. region
        • 1.2.15.12. scversion
        • 1.2.15.13. starttime
        • 1.2.15.14. toolargs
        • 1.2.15.15. toolpath
        • 1.2.15.16. toolversion
        • 1.2.15.17. userid
      • 1.2.16. schemaversion
      • 1.2.17. tool
        • 1.2.17.1. exe
        • 1.2.17.2. format
        • 1.2.17.3. licenseserver
        • 1.2.17.4. path
        • 1.2.17.5. task
        • 1.2.17.6. vendor
        • 1.2.17.7. version
        • 1.2.17.8. vswitch
      • 1.2.18. unit
        • 1.2.18.1. capacitance
        • 1.2.18.2. current
        • 1.2.18.3. energy
        • 1.2.18.4. inductance
        • 1.2.18.5. length
        • 1.2.18.6. mass
        • 1.2.18.7. power
        • 1.2.18.8. resistance
        • 1.2.18.9. temperature
        • 1.2.18.10. time
        • 1.2.18.11. voltage
    • 1.3. Nested keypaths
      • 1.3.1. history
      • 1.3.2. library
  • 2. Core API
    • Chip
      • Chip.add()
      • Chip.allkeys()
      • Chip.archive()
      • Chip.audit_manifest()
      • Chip.calc_area()
      • Chip.calc_dpw()
      • Chip.calc_yield()
      • Chip.check_checklist()
      • Chip.check_filepaths()
      • Chip.check_logfile()
      • Chip.check_manifest()
      • Chip.clock()
      • Chip.create_cmdline()
      • Chip.design
      • Chip.edge()
      • Chip.error()
      • Chip.find_files()
      • Chip.find_function()
      • Chip.find_result()
      • Chip.get()
      • Chip.getdict()
      • Chip.getkeys()
      • Chip.graph()
      • Chip.grep()
      • Chip.hash_files()
      • Chip.help()
      • Chip.input()
      • Chip.join()
      • Chip.list_steps()
      • Chip.load_target()
      • Chip.maximum()
      • Chip.minimum()
      • Chip.mux()
      • Chip.node()
      • Chip.nop()
      • Chip.output()
      • Chip.pipe()
      • Chip.read_file()
      • Chip.read_manifest()
      • Chip.run()
      • Chip.set()
      • Chip.show()
      • Chip.summary()
      • Chip.top()
      • Chip.unset()
      • Chip.update()
      • Chip.use()
      • Chip.valid()
      • Chip.verify()
      • Chip.write_depgraph()
      • Chip.write_flowgraph()
      • Chip.write_manifest()
    • SiliconCompilerError
    • Checklist
    • Flow
    • Library
    • PDK
  • 3. Server API
    • 3.1. remote_run
    • 3.2. check_user
    • 3.3. delete_job
    • 3.4. get_results/{job_hash}.tar.gz
    • 3.5. check_progress
  • 4. Leflib API
    • parse()
  • 5. CLI apps
    • 5.1. sc
    • 5.2. sc-configure
    • 5.3. sc-ping
    • 5.4. sc-run
    • 5.5. sc-show
    • 5.6. sup
  • 6. Flows directory
    • 6.1. asicflow
      • 6.1.1. Configuration
        • 6.1.1.1. asicflow
    • 6.2. asictopflow
      • 6.2.1. Configuration
        • 6.2.1.1. asictopflow
    • 6.3. dvflow
      • 6.3.1. Configuration
        • 6.3.1.1. dvflow
    • 6.4. fpgaflow
      • 6.4.1. Configuration
        • 6.4.1.1. fpgaflow
    • 6.5. lintflow
      • 6.5.1. Configuration
        • 6.5.1.1. lintflow
    • 6.6. showflow
      • 6.6.1. Configuration
        • 6.6.1.1. showflow
    • 6.7. signoffflow
      • 6.7.1. Configuration
        • 6.7.1.1. signoffflow
  • 7. Tools directory
    • 7.1. bambu
      • 7.1.1. import
        • 7.1.1.1. Configuration
    • 7.2. bluespec
      • 7.2.1. import
        • 7.2.1.1. Configuration
    • 7.3. chisel
      • 7.3.1. import
        • 7.3.1.1. Configuration
    • 7.4. genfasm
      • 7.4.1. bitstream
        • 7.4.1.1. Configuration
    • 7.5. ghdl
      • 7.5.1. import
        • 7.5.1.1. Configuration
    • 7.6. icarus
      • 7.6.1. compile
        • 7.6.1.1. Configuration
    • 7.7. icepack
      • 7.7.1. bitstream
        • 7.7.1.1. Configuration
    • 7.8. klayout
      • 7.8.1. export
        • 7.8.1.1. Configuration
        • 7.8.1.2. Variables
      • 7.8.2. screenshot
        • 7.8.2.1. Configuration
        • 7.8.2.2. Variables
      • 7.8.3. show
        • 7.8.3.1. Configuration
        • 7.8.3.2. Variables
    • 7.9. magic
      • 7.9.1. drc
        • 7.9.1.1. Configuration
      • 7.9.2. extspice
        • 7.9.2.1. Configuration
    • 7.10. netgen
      • 7.10.1. lvs
        • 7.10.1.1. Configuration
    • 7.11. nextpnr
      • 7.11.1. apr
        • 7.11.1.1. Configuration
    • 7.12. openfpgaloader
    • 7.13. openroad
      • 7.13.1. cts
        • 7.13.1.1. Configuration
        • 7.13.1.2. Variables
        • 7.13.1.3. Files
      • 7.13.2. dfm
        • 7.13.2.1. Configuration
        • 7.13.2.2. Variables
        • 7.13.2.3. Files
      • 7.13.3. export
        • 7.13.3.1. Configuration
        • 7.13.3.2. Variables
        • 7.13.3.3. Files
      • 7.13.4. floorplan
        • 7.13.4.1. Configuration
        • 7.13.4.2. Variables
        • 7.13.4.3. Files
      • 7.13.5. physyn
        • 7.13.5.1. Configuration
        • 7.13.5.2. Variables
        • 7.13.5.3. Files
      • 7.13.6. place
        • 7.13.6.1. Configuration
        • 7.13.6.2. Variables
        • 7.13.6.3. Files
      • 7.13.7. route
        • 7.13.7.1. Configuration
        • 7.13.7.2. Variables
        • 7.13.7.3. Files
      • 7.13.8. screenshot
        • 7.13.8.1. Configuration
        • 7.13.8.2. Variables
        • 7.13.8.3. Files
      • 7.13.9. show
        • 7.13.9.1. Configuration
        • 7.13.9.2. Variables
        • 7.13.9.3. Files
    • 7.14. surelog
      • 7.14.1. import
        • 7.14.1.1. Configuration
    • 7.15. sv2v
      • 7.15.1. convert
        • 7.15.1.1. Configuration
    • 7.16. verilator
      • 7.16.1. compile
        • 7.16.1.1. Configuration
      • 7.16.2. import
        • 7.16.2.1. Configuration
      • 7.16.3. lint
        • 7.16.3.1. Configuration
    • 7.17. vivado
    • 7.18. vpr
      • 7.18.1. apr
        • 7.18.1.1. Configuration
    • 7.19. xyce
    • 7.20. yosys
      • 7.20.1. lec
        • 7.20.1.1. Configuration
        • 7.20.1.2. Variables
      • 7.20.2. syn_asic
        • 7.20.2.1. Configuration
        • 7.20.2.2. Variables
      • 7.20.3. syn_fpga
        • 7.20.3.1. Configuration
  • 8. PDK directory
    • 8.1. asap7
      • 8.1.1. Configuration
        • 8.1.1.1. pdk, asap7
    • 8.2. freepdk45
      • 8.2.1. Configuration
        • 8.2.1.1. pdk, freepdk45
    • 8.3. skywater130
      • 8.3.1. Configuration
        • 8.3.1.1. pdk, skywater130
  • 9. Libraries directory
    • 9.1. asap7sc7p5t
      • 9.1.1. asap7sc7p5t_rvt
        • 9.1.1.1. asic
        • 9.1.1.2. output, typical
        • 9.1.1.3. output, fast
        • 9.1.1.4. output, slow
        • 9.1.1.5. output, 10M
        • 9.1.1.6. option
      • 9.1.2. asap7sc7p5t_lvt
        • 9.1.2.1. asic
        • 9.1.2.2. output, typical
        • 9.1.2.3. output, fast
        • 9.1.2.4. output, slow
        • 9.1.2.5. output, 10M
        • 9.1.2.6. option
      • 9.1.3. asap7sc7p5t_slvt
        • 9.1.3.1. asic
        • 9.1.3.2. output, typical
        • 9.1.3.3. output, fast
        • 9.1.3.4. output, slow
        • 9.1.3.5. output, 10M
        • 9.1.3.6. option
    • 9.2. nangate45
      • 9.2.1. nangate45
        • 9.2.1.1. asic
        • 9.2.1.2. output, typical
        • 9.2.1.3. output, 10M
        • 9.2.1.4. option
    • 9.3. sky130hd
      • 9.3.1. sky130hd
        • 9.3.1.1. asic
        • 9.3.1.2. output, slow
        • 9.3.1.3. output, typical
        • 9.3.1.4. output, fast
        • 9.3.1.5. output, 5M1LI
        • 9.3.1.6. option
    • 9.4. sky130io
      • 9.4.1. sky130io
        • 9.4.1.1. asic, cells
        • 9.4.1.2. output, slow
        • 9.4.1.3. output, typical
        • 9.4.1.4. output, fast
        • 9.4.1.5. output, 5M1LI
        • 9.4.1.6. option
  • 10. Targets directory
    • 10.1. asap7_demo
      • 10.1.1. Flows
      • 10.1.2. PDK
      • 10.1.3. Libraries
      • 10.1.4. Configuration
    • 10.2. asic_demo
      • 10.2.1. Flows
      • 10.2.2. PDK
      • 10.2.3. Libraries
      • 10.2.4. Checklists
      • 10.2.5. Configuration
    • 10.3. fpgaflow_demo
      • 10.3.1. Flows
      • 10.3.2. Configuration
    • 10.4. freepdk45_demo
      • 10.4.1. Flows
      • 10.4.2. PDK
      • 10.4.3. Libraries
      • 10.4.4. Configuration
    • 10.5. skywater130_demo
      • 10.5.1. Flows
      • 10.5.2. PDK
      • 10.5.3. Libraries
      • 10.5.4. Checklists
      • 10.5.5. Configuration
  • 11. Checklists directory
    • 11.1. oh_tapeout
      • 11.1.1. Configuration
        • 11.1.1.1. drc_clean
        • 11.1.1.2. lvs_clean
        • 11.1.1.3. setup_time
        • 11.1.1.4. errors_warnings
        • 11.1.1.5. spec

Resources

  • 1. Design Glossary
    • 1.1. Architecture
    • 1.2. Design
    • 1.3. Manufacturing
    • 1.4. Packaging
    • 1.5. Test
SiliconCompiler
  • Search


© Copyright 2020-2023, Zero ASIC. Revision 3ba17585.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: stable
Versions
latest
stable
noah-examples-cleanup
Downloads
pdf
On Read the Docs
Project Home
Builds