Skip to main content

A compiler framework that automates translation from source code to silicon.

Project description

SiliconCompiler

Python CI Tests Tools CI Tests Daily CI Tests Wheels Lint Documentation Status codecov Downloads

Introduction

SiliconCompiler is a modular hardware build system ("make for silicon"). The project philosophy is to "make the complex possible while keeping the simple simple".

Supported Technologies

Type Supported
Design Languages C, Verilog, SV, VHDL, Chisel, Migen/Amaranth, Bluespec
Simulation Tools Verilator, Icarus, GHDL, Xyce
Synthesis Yosys, Vivado, Synopsys, Cadence
ASIC APR OpenRoad, Synopsys, Cadence
FPGA APR VPR, nextpnr, Vivado
Layout Viewer Klayout, OpenRoad, Cadence, Synopsys
DRC/LVS Magic, Synopsys, Siemens
PDKs sky130, asap7, freepdk45, gf12lp, gf22fdx, intel16

Getting Started

SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and Linux platforms. For working Python 3.8-3.12 environment, just use pip.

python -m pip install --upgrade siliconcompiler

Converting RTL into DRC clean GDS takes less than 10 lines of simple Python code.

import siliconcompiler                             # import python package
chip = siliconcompiler.Chip('heartbeat')           # create chip object
chip.load_target('skywater130_demo')               # load a pre-defined target
chip.input('heartbeat.v')                          # set input sources
chip.clock('clk', period=10)                       # set constraints
chip.set('option','remote', True)                  # enable remote execution
chip.run()                                         # run compilation
chip.summary()                                     # print summary
chip.show()                                        # show layout

Simple designs can be compiled in a single line using the built in command line 'sc' app:

sc -remote -target "asic_demo"

Why SiliconCompiler?

  • Ease-of-use: Programmable with a simple Python API
  • Portability: Powerful dynamic JSON schema supports ASIC and FPGA design and simulation
  • Speed: Flowgraph execution model enables cloud scale execution.
  • Friction-less: Remote execution model enables "zero install" compilation
  • Modularity: Tool abstraction layer makes it easy to add/port new tools to the project.
  • Provenance: Compilation manifests created automatically during execution.
  • Documented: An extensive set of auto-generated high quality reference documents.
  • In-use: Actively used by Zero ASIC for commercial tapeouts at advanced process nodes.

Documentation

The full reference manual and tutorials can be found HERE.

License

Apache License 2.0

How to Cite

If you want to cite our work, please use the following paper:

A. Olofsson, W. Ransohoff, N. Moroze, "Invited: A Distributed Approach to Silicon Compilation", 59th Design Automation Conference (DAC), 10-14 July 2022, San Francisco, CA, USA. Published, 7/2022.

Bibtex:

@inproceedings{10.1145/3489517.3530673,
author = {Olofsson, Andreas and Ransohoff, William and Moroze, Noah},
title = {A Distributed Approach to Silicon Compilation: Invited},
year = {2022},
booktitle = {Proceedings of the 59th ACM/IEEE Design Automation Conference},
pages = {1343–1346},
location = {San Francisco, California}
}

Installation

Complete installation instructions are available in the Installation Guide.

To install the project from source (recommended for developers only).

git clone https://github.com/siliconcompiler/siliconcompiler
cd siliconcompiler
python -m pip install -e .             # Required install step
python -m pip install -e .[docs,test]  # Optional install step for generating docs and running tests

EDA Tool Installation

Installation instructions for all external tools can be found in the External Tools section of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools. See the ./setup directory for a complete set of scripts and ./setup/_tools.json for the currently recommended tool versions.

Contributing

SiliconCompiler is an open-source project and welcomes contributions. To find out how to contribute to the project, see our Contributing Guidelines.

Issues / Bugs

We use GitHub Issues for tracking requests and bugs.

More information

Resources Link
Website https://www.siliconcompiler.com
Documentation https://docs.siliconcompiler.com
Sources https://github.com/siliconcompiler/siliconcompiler
Issues https://github.com/siliconcompiler/siliconcompiler/issues
RFCs https://github.com/siliconcompiler/rfcs
Discussion https://github.com/siliconcompiler/siliconcompiler/discussions

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

siliconcompiler-0.21.6-cp312-cp312-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.12Windows x86-64

siliconcompiler-0.21.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

siliconcompiler-0.21.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

siliconcompiler-0.21.6-cp312-cp312-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

siliconcompiler-0.21.6-cp312-cp312-macosx_10_15_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

siliconcompiler-0.21.6-cp311-cp311-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.11Windows x86-64

siliconcompiler-0.21.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

siliconcompiler-0.21.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

siliconcompiler-0.21.6-cp311-cp311-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

siliconcompiler-0.21.6-cp311-cp311-macosx_10_15_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

siliconcompiler-0.21.6-cp310-cp310-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.10Windows x86-64

siliconcompiler-0.21.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

siliconcompiler-0.21.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

siliconcompiler-0.21.6-cp310-cp310-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

siliconcompiler-0.21.6-cp310-cp310-macosx_10_15_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

siliconcompiler-0.21.6-cp39-cp39-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.9Windows x86-64

siliconcompiler-0.21.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

siliconcompiler-0.21.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

siliconcompiler-0.21.6-cp39-cp39-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

siliconcompiler-0.21.6-cp39-cp39-macosx_10_15_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

siliconcompiler-0.21.6-cp38-cp38-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.8Windows x86-64

siliconcompiler-0.21.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

siliconcompiler-0.21.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

siliconcompiler-0.21.6-cp38-cp38-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

siliconcompiler-0.21.6-cp38-cp38-macosx_10_15_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

File details

Details for the file siliconcompiler-0.21.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 db51946af73d76d83f9278fb7e788ceb8f1954baadfaf568d7a42ce07c72548a
MD5 3b3e501d28507498279cb7a691505649
BLAKE2b-256 4862c0f95b10036dc3eda73fba525ac8b0b93410d5ef0f24d4230596b966ddcd

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 437b8bc64d40b46727f74b3b5bd29d192a32181e382883b225017a7054319950
MD5 833215df23be81c70fb7fe5e75e4303b
BLAKE2b-256 2824cd21a33126a6caf2d2af831beaa95393be69ace1a14a01bfbbe7d4236ad7

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0595bf5ffacaae93f1ff627cb8473d93d67d7b13c646820ec0e8f52bc0527f40
MD5 4e309c0ee76f07e5ac1856cf43083ab4
BLAKE2b-256 c11ae5f4f3df82db8b28e3ae4d96ffff328e8147996abe98d0781b1d4f09c3ee

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6858ab4e4a5e5d07c3a5ac4662af089006f95d13d2440a37da32d6c5e6008d32
MD5 6810e9f35aad53cef441bf6459fb194c
BLAKE2b-256 7be9c5b720b000598a1c8bcaa2a73bd6b5265af4254d6b90f1f4c6c3bcc20878

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 57d5bb67ef07921e6e1aa1d9a2a8a603340e78bac7e20b0d0b8ca8bc6f5ea9a1
MD5 e262f02569f5e29ee01fecf8a7efcc49
BLAKE2b-256 20ae0bd43bbb7b04b118d4f9c444884796d751703f875ca40894797c91317356

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d63f38bbf6b8c72de5078ea4f2d724f21f31ee2362cab6f981b3d73719612a3a
MD5 f8aaebbfc9886613583f183ff25cd306
BLAKE2b-256 cfc463b459d41e024f272868b721cd079f28eb52090276e6b80109cebdc67a03

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb8fd4e2b4270ca0fdf398e0aab62af4efaf5736c173f61b95acf9944a9ced8d
MD5 d57930243e7117888f0e35be2ec8444b
BLAKE2b-256 018774ce2660615789b373eb25a743ebe3a8f9be10b89ba8e40911781de6b51c

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 910c6b5d958c1d9ef550f0c2cf293f008fde68f41cdac2b170094fed4a747a8d
MD5 adaa3d7378f47bc243b61194fe7995d7
BLAKE2b-256 809c1c51a77228600c71a78065dff935eee4986433dcdd196b02c17eb94780e9

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d118962fd5671d355c77a6fdcae0774b06e03e86783329471d5de4e7ac026cfa
MD5 17a0f443a2c8954dde1fc04a5102b463
BLAKE2b-256 38870f404a1a9a7dbe6830e8aa8cd0c8516043c8eff93eed75977c1cc8e74187

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c80ad4b8920e1bed0a35702653a36f4a95916baabbfe07570d245d20239845df
MD5 11a45201f7e9524b7208cfd8c0b4a1b1
BLAKE2b-256 0a30da0e1ccea3ed677b75719d3aa70746ece835509071b5ee3b4ec6118a87a7

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7cf102925fa17ac4c07b9b3e9cf4231982b9b8826a12d55c5e63ff8b065aa8a1
MD5 e6706ea9b0fa888b585ce9c2b56686e2
BLAKE2b-256 b0a26feb8911abce3e48d94e24066a2773996543b249724fe1e16b7a4eeda54d

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d575540a6ac4f2d87087cc542d4bb3e868ea89701f09fe97174d7166e679f950
MD5 1b71a526afc629cbb330106087a157a3
BLAKE2b-256 af64fa0db5850619612424b7aaa5fe8a1b370ead3cdd2d96326b6992ab5d0c3c

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4b82e9cd6a5b4e5ad98d58faf26ab70abd33bf4d73994ad8782a2b651319911a
MD5 ef972c59fbde0091458a11ae74b38c63
BLAKE2b-256 a11a41c099dab507cbece432b975bd15ac4202f858ade3f06917368fe38decad

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 547e2e076cce8ab79780f2f344803a0e7adf7640f4a2e7e9033d18dd3760ded9
MD5 c991b0bae5a988f20d2dd8151b195286
BLAKE2b-256 ee64c4edd9ec6ced8fcdc125e3bc3c129709e7709fe7e8d32e439b8c66724d57

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 868279773ccfa61149759e1b137e523e4337d0004624ccda6625bcde7edb1fc9
MD5 d5a165b8483d66c8bd200341cb5743f5
BLAKE2b-256 e4a89c8691e4e1a9bdb22b94b2d824f5c5cb3423290d9554c1aac212b55ee4c3

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cb2724adac983b40ff074df6ea1c79651d3acd6fc11ea32edf14f9e227c3b796
MD5 bb4b92cd779d910d488baa436b04f9dd
BLAKE2b-256 a8a7f933e3ffde605b3fdd8a527e15b6a4fd50d5564d0079d221f2515fe16bed

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 112fbfe415254f96ec7396ed3e954b1008eb8cf77cc0715040b7eece4c5e8505
MD5 8f4b3ccb98168ce95593093512b36228
BLAKE2b-256 2bb86253e943c0f0a3ecbd20b30394febb33ff2690c69a858d0b0f8779008a9f

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5938ad070b05e6192422e1c709edc6dfbe731c361eae723baa39ba7908c49f8d
MD5 71dbeb1ec48c03ac877051b65cd49be0
BLAKE2b-256 3dc628c482f9809b879d900e38f32f3fa061d23635e7a55d2a3e2eff6a57cecc

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16489fea374ba71989fe8a5fac62600d985d27998a5ad04082c8c29138d525b1
MD5 dda7a75fc580b4008758ddf5f64a97c0
BLAKE2b-256 49daad3407d8c4fd2c1000c59b1d452fc24e742958dcdb0939afda58f70e8927

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 753ea24aabb908f2e0da1369ff12e49592f0d9680138d50d40f2891897ce3f7c
MD5 d7c19eae2a782aa0a66e020528d72523
BLAKE2b-256 820f6cb4d9031075cd310bd82bfdd83b0aee2605054d46ec3b9625c055bbd5ef

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8c9c184cfecc4432338d0dc7230593bcdccbf10b32d9427f43a5179160a2af97
MD5 fcd9df0e5ea30c8bca6c0792611b9579
BLAKE2b-256 c4e35deaa9f489f3457832b6aec24eed9abac3f610c6bcbd8648cde55fc236bb

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a89addd70417a03e7d8416ce68013087bf059047fd7f93b803052ea1f6b1eac
MD5 9e8dab5695de2f77bbafd81f83be35fb
BLAKE2b-256 bd8d168578ecb43cc61b43c875c7a501e509b6feba8f07ebae4337ba7d90175e

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7ad43901974b2f13e8dabf967411d47fb597cb2bb99447244ff58a582ae031fb
MD5 5168e5ce851dba2463d55ecd1dfb42af
BLAKE2b-256 7306bf57f07ec5308daf32fcf00ee7d01b846e382abb4d330e9c70db3a624a72

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18fd4afa9b4dae4d791b062a770f7eca1256566d829ebb7deff90abd78d897c7
MD5 60e66e44946b7c7a9b4cb151295b94ec
BLAKE2b-256 0e93039c5aa745067dd60a00184856efdde0fffbe1d4276311a61ea8fdc752eb

See more details on using hashes here.

File details

Details for the file siliconcompiler-0.21.6-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.21.6-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ef1eacf78180129ce48c3820d053c8db94153fcad659dad23787147c3e0575e1
MD5 b03936475cbedf619a53a6afad1c4fa0
BLAKE2b-256 3a039af30e23cc988e98011671af93ca887070527ff9ac66c5ea2fbde2c42797

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page