8. Remote processing
The SiliconCompiler project supports a remote processing model that leverages the cloud to provide access to:
Pre-configured tool installations.
Warehouse scale elastic compute.
NDA encumbered IPs, PDKs, and EDA tools.
For command line compilation, remote processing is turned on with the ‘-remote’ option. Results from a remote compilation should be identical to results from a local compilation.
echo "module flipflop (input clk, d, output reg out); \
always @ (posedge clk) out <= d; endmodule"> flipflop.v
sc flipflop.v -remote
Remote processing is also supported from the Python interface when the ‘remote’ parameter is set to ‘True’.
chip.set('remote', True)
For security reasons, only a subset of the full Schema parameters is currently supported. Values for disallowed keypaths will be silently dropped by the server. In addition, note that the load_target() function will be re-run on the server, to ensure targets are set up with their default configurations. The following table documents the list of supported remote parameters and any associated restrictions.
Keypath |
Restrictions |
---|---|
|
Must only contain alphanumeric characters or underscores |
|
Must only contain alphanumeric characters or underscores |
|
Must only contain alphanumeric characters or underscores |
|
Only allowed for fpgaflow |
|
Must be one of |
|
Allowed if key isn’t the name of a built-in PDK standard cell library |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |
|
None |