1. Schema#
1.1. Parameter Fields#
- copy#
Whether to copy files into build directory, applies to files only
- example#
List of two strings, the first string containing an example for specifying the parameter using a command line switch, and a second string for setting the value using the core Python API. The examples can be pruned/filtered before the schema is dumped into a JSON file.
- hashalgo#
Hashing algorithm used to calculate filehash value.
- help#
Complete parameter help doc string. The help string serves as ground truth for describing the parameter functionality and should be used for long help descriptions in command line interface programs and for automated schema document generation. The long help can be pruned/filtered before the schema is dumped into a JSON file.
- lock#
Boolean value dictating whether the parameter can be modified by the set/get/add core API methods. A value of True specifiers that the parameter is locked and cannot be modified. Attempts to write to to a locked parameter shall result in an exception/error that blocks compilation progress.
- node#
Dictionary containing fields whose values may vary on a per-step/index basis. Sub-fields are described in Per-node Parameter Fields
- notes#
User entered ‘notes’/’disclaimers’ about value being set.
- pernode#
Enables/disables setting of value on a per node basis. Allowed values are ‘never’, ‘option’, or ‘required’.
- require#
Boolean value dictating whether the parameter is required for a run.
- scope#
Scope of parameter in schema
- switch#
String that specifies the equivalent switch to use in command line interfaces. The switch string must start with a ‘-’ and cannot contain spaces.
- shorthelp#
Short help string to be used in cases where brevity matters. Use cases include JSON dictionary dumps and command line interface help functions.
- type#
The parameter type. Supported types include Python compatible types (‘int’, ‘float’, ‘str’, and ‘bool’) and two custom file types (‘file’ and ‘dir’). The ‘file’ and ‘dir’ type specify that the parameter is a ‘regular’ file or directory as described by Posix. Enums can be specified using the < and > (eg. <input,output> specifies an enum that has the possible values of input and output.) All types can be specified as a Python compatible list type by enclosing the type value in brackets. (ie. [str] specifies that the parameter is a list of strings). Types can also be specified as tuples, using the Python-like parentheses syntax (eg. [(float,float)] specifies a list of 2-float tuples). Additionally types can also be specified as sets, using the Python-like curly brackets syntax (eg. {str} specifies a set of strings). Input arguments and return values of the set/get/add core methods are encoded as native Python types. When exporting the manifest to JSON, values are converted to the equivalent JSON type. Most types have a straightforward mapping, but note that values of “None” get mapped to “null”, and both tuples and lists get mapped to arrays. Tuple-type parameters have their values normalized back into tuple form when a JSON manifest is read in.
- unit#
Implied unit for parameter value.
1.2. Per-node Parameter Fields#
The following fields are specified inside the node dictionary on a per-step/index basis.
Default values for each field are stored under the special keys "default", "default", and global values are specified under the special keys "global", "global".
File author. The author string records the person/entity that authored/created each item in the list of files within ‘value’ parameter field. The ‘author’ field can be used to validate the provenance of the data used for compilation.
- date#
String containing the data stamp of each item in the list of files within ‘value’ parameter field. The ‘date’ field can be used to validate the provenance of the data used for compilation.
- filehash#
Calculated file hash value for each file in the ‘value’ field of the parameter.
- signature#
String recording a unique machine calculated string for each item in the list of files within ‘value’ parameter field. The ‘signature’ field can be used to validate the provenance of the data used for compilation.
- value#
Parameter value
1.3. Project Parameters#
1.3.1. Project#
The Project class is the core object in SiliconCompiler, representing a complete hardware design project. It manages design parameters, libraries, flowgraphs, metrics, and provides methods for compilation, data collection, and reporting.
File: project.py
Class Project
1.3.1.1. arg#
1.3.1.1.1. index#
Description |
ARG: index argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.1.2. step#
Description |
ARG: step argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2. checklist#
Class Checklist
Class Criteria
1.3.1.2.1. criteria#
Simple list of signoff criteria for checklist item which must all be met for signoff. Each signoff criteria consists of a metric, a relational operator, and a value in the form ‘metric op value’.
Description |
Checklist: item criteria |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.2. dataformat#
Free text description of the type of data files acceptable as checklist signoff validation.
Description |
Checklist: item data format |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.3. description#
A short one line description of the checklist item.
Description |
Checklist: item description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.4. ok#
Boolean check mark for the checklist item. A value of True indicates a human has inspected the all item dictionary parameters and verified they check out.
Description |
Checklist: item ok |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.5. rationale#
Rationale for the checklist item. Rationale should be a unique alphanumeric code used by the standard or a short one line or single word description.
Description |
Checklist: item rationale |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.6. report#
Filepath to report(s) of specified type documenting the successful validation of the checklist item.
Description |
Checklist: item report |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.7. requirement#
A complete requirement description of the checklist item entered as a multi-line string.
Description |
Checklist: item requirement |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.8. task#
Flowgraph job and task used to verify the checklist item. The parameter should be left empty for manual and for tool flows that bypass the SC infrastructure.
Description |
Checklist: item task |
Type |
[(str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.2.9. waiver#
Filepath to report(s) documenting waivers for the checklist item specified on a per metric basis.
Description |
Checklist: item metric waivers |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.3. flowgraph#
Class Flowgraph
Class FlowgraphNodeSchema
1.3.1.3.1. args#
User-specified arguments passed to the task’s setup() method. This allows for customizing a specific node’s behavior without affecting other nodes running the same task.
Description |
Flowgraph: Node-specific arguments |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.3.2. goal#
Goals specified on a per-node and per-metric basis used to determine whether a task run is considered successful. A task run may be considered failing if the absolute value of any of its reported metrics is larger than the goal for that metric (if set). This is often used for metrics like ‘errors’ or ‘setupwns’ where the goal is 0.
Description |
Flowgraph: Metric goals |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.3.3. input#
A list of inputs for this flowgraph node, where each input is specified as a (step, index) tuple. This defines the dependencies of this node.
Description |
Flowgraph: Node inputs |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.3.4. task#
Name of the task (e.g., ‘place’, ‘syn’, ‘join’) associated with the node’s tool.
Description |
Flowgraph: Task selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.3.5. taskmodule#
Full Python module path and class name of the task, formatted as ‘<full.module.path>/<ClassName>’. This is used to import and instantiate the correct Task class for setup and execution.
Description |
Flowgraph: Task module |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.3.6. tool#
Name of the tool (e.g., ‘openroad’, ‘yosys’, ‘builtin’) that this node will execute.
Description |
Flowgraph: Tool selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.3.7. weight#
Weights specified on a per-node and per-metric basis, used by optimization tasks (like ‘minimum’) to calculate a “goodness” score for a run. The score is typically a weighted sum of metric results.
Description |
Flowgraph: Metric weights |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
0.0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.4. history#
1.3.1.5. library#
Class _ProjectLibrary
1.3.1.6. metric#
Class MetricSchema
1.3.1.6.1. errors#
Metric tracking the total number of errors on a per step and index basis.
Description |
Metric: total errors |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.6.2. exetime#
Metric tracking time spent by the EDA executable
[tool,<tool>,task,<task>,exe] on a
per step and index basis. It does not include the SiliconCompiler
runtime overhead or time waiting for I/O operations and
inter-processor communication to complete.
Description |
Metric: exetime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.6.3. memory#
Metric tracking total peak program memory footprint on a per step and index basis.
Description |
Metric: memory |
Type |
float |
Scope |
job |
Unit |
B |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.6.4. tasktime#
Metric tracking the total amount of time spent on a task from beginning to end, including data transfers and pre/post processing.
Description |
Metric: tasktime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.6.5. totaltime#
Metric tracking the total amount of time spent from the beginning of the run up to and including the current step and index.
Description |
Metric: totaltime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.6.6. warnings#
Metric tracking the total number of warnings on a per step and index basis.
Description |
Metric: total warnings |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7. option#
Class OptionSchema
1.3.1.7.1. alias#
List of filesets to alias during a run. When an alias is specific it will be used instead of the source fileset. It is useful when you want to substitute a fileset from one library with a fileset from another, without changing the original design’s code. For example, you might use it to swap in a different version of an IP block or a specific test environment.
Description |
Option: Fileset alias mapping |
Type |
[(str,str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.1.7.2. autoissue#
Enables automatic generation of testcases if the specific node fails
Description |
Option: Enables automatic generation of testcases |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.1.7.3. breakpoint#
Set a breakpoint on specific steps. If the step is a TCL based tool, then the breakpoints stops the flow inside the EDA tool. If the step is a command line tool, then the flow drops into a Python interpreter.
Description |
Option: breakpoint list |
Type |
bool |
Scope |
job |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.4. builddir#
The default build directory is in the local ‘./build’ where SC was executed. This can be used to set an alternate compilation directory path.
Description |
Option: build directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
build |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.5. cachedir#
Filepath to cache used for package data sources. If the cache parameter is empty, “.sc/cache” directory in the user’s home directory will be used.
Description |
Option: user cache directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.6. clean#
Run a job from the start and do not use any of the previous job. If
[option,jobincr]is True, the old job is preserved and a new job number is assigned.
Description |
Option: cleanup previous job |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.7. continue#
Attempt to continue even when errors are encountered in the SC implementation. The default behavior is to quit executing the flow if a task ends and the errors metric is greater than 0. Note that the flow will always cease executing if the tool returns a nonzero status code.
Description |
Option: continue-on-error |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.8. credentials#
Filepath to credentials used for remote processing. If the credentials parameter is empty, the remote processing client program tries to access the “.sc/credentials” file in the user’s home directory. The file supports the following fields:
address=<server address> port=<server port> (optional) username=<user id> (optional) password=<password / key used for authentication> (optional)
Description |
Option: user credentials file |
Type |
file |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.9. design#
Name of the top level library
Description |
Option: Design library name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.10. env#
Certain tools and reference flows require global environment variables to be set. These variables can be managed externally or specified through the env variable.
Description |
Option: environment variables |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.1.7.11. fileset#
List of filesets to use from the selected design library
Description |
Option: Selected design filesets |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.1.7.12. flow#
Sets the flow for the current run. The flow name must match up with a ‘flow’ in the flowgraph
Description |
Option: flow target |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.13. from#
Inclusive list of steps to start execution from. The default is to start at all entry steps in the flow graph.
Description |
Option: starting step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.14. hash#
Enables hashing of all inputs and outputs during compilation. The hash values are stored in the hashvalue field of the individual parameters.
Description |
Option: file hashing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.15. jobincr#
Forces an auto-update of the jobname parameter if a directory matching the jobname is found in the build directory. If the jobname does not include a trailing digit, then the number ‘1’ is added to the jobname before updating the jobname parameter.
Description |
Option: autoincrement jobname |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.16. jobname#
Jobname during invocation of
Project.run(). The jobname combined with a defined director structure (<dir>/<design>/<jobname>/<step>/<index>) enables multiple levels of transparent job, step, and index introspection.
Description |
Option: job name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
job0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.17. nice#
Sets the type of execution priority of each individual flowgraph steps. If the parameter is undefined, nice will not be used. For more information see Unix ‘nice’.
Description |
Option: tool scheduling priority |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.18. nodashboard#
Disables the dashboard during execution
Description |
Option: Disables the dashboard |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.1.7.19. nodisplay#
This flag prevents SiliconCompiler from opening GUI windows.
Description |
Option: headless execution |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.20. novercheck#
Disables strict version checking on all invoked tools if True. The list of supported version numbers is defined in the
[tool,<tool>,task,<task>,version].
Description |
Option: disable version checking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.21. optmode#
The compiler has modes to prioritize run time and ppa. Modes include.
(O0) = Exploration mode for debugging setup (O1) = Higher effort and better PPA than O0 (O2) = Higher effort and better PPA than O1 (O3) = Signoff quality. Better PPA and higher run times than O2 (O4-O98) = Reserved (compiler/target dependent) (O99) = Experimental highest possible effort, may be unstable
Description |
Option: optimization mode |
Type |
int |
Scope |
global |
Default Value |
0 |
CLI Switch |
|
Example (CLI) |
-optmode 3 |
Example (API) |
|
1.3.1.7.22. prune#
List of starting nodes for branches to be pruned. The default is to not prune any nodes/branches.
Description |
Option: flowgraph pruning |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.23. quiet#
The -quiet option forces all steps to print to a log file. This can be useful with Modern EDA tools which print significant content to the screen.
Description |
Option: quiet execution |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.24. remote#
Sends job for remote processing if set to true. The remote option requires a credentials file to be placed in the home directory. Fore more information, see the credentials parameter.
Description |
Option: enable remote processing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25. scheduler#
Class SchedulerSchema
1.3.1.7.25.1. cores#
Specifies the number CPU cores required to run the job. For the slurm scheduler, this translates to the ‘-c’ switch. For more information, see the job scheduler documentation
Description |
Option: Scheduler core constraint |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.2. defer#
Defer initiation of job until the specified time. The parameter is pass through string for remote job scheduler such as slurm. For more information about the exact format specification, see the job scheduler documentation. Examples of valid slurm specific values include: now+1hour, 16:00, 010-01-20T12:34:00. For more information, see the job scheduler documentation.
Description |
Option: scheduler start time |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.3. maxnodes#
Maximum number of concurrent nodes to run in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum concurrent nodes |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.4. maxthreads#
Maximum number of threads for each task in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum number of threads to assign a task |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.1.7.25.5. memory#
Specifies the amount of memory required to run the job, specified in MB. For the slurm scheduler, this translates to the ‘–mem’ switch. For more information, see the job scheduler documentation
Description |
Option: scheduler memory constraint |
Type |
int |
Scope |
global |
Unit |
MB |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.6. msgcontact#
List of email addresses to message on a
[option,scheduler,msgevent]. Support for email messages relies on job scheduler daemon support. For more information, see the job scheduler documentation.
Description |
Option: message contact |
Type |
{str} |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.7. msgevent#
Directs job scheduler to send a message to the user in
[option,scheduler,msgcontact]when certain events occur during a task.
fail: send an email on failures
timeout: send an email on timeouts
begin: send an email at the start of a node task
end: send an email at the end of a node task
summary: send a summary email at the end of the run
all: send an email on any event
Description |
Option: message event trigger |
Type |
[enum] |
Allowed values |
|
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.8. name#
Sets the type of job scheduler to be used for each individual flowgraph steps. If the parameter is undefined, the steps are executed on the same machine that the SC was launched on. If ‘slurm’ is used, the host running the ‘sc’ command must be running a ‘slurmctld’ daemon managing a Slurm cluster. Additionally, the build directory (
[option,builddir]) must be located in shared storage which can be accessed by all hosts in the cluster.
Description |
Option: scheduler platform |
Type |
enum |
Allowed values |
|
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.9. options#
Advanced/export options passed through unchanged to the job scheduler as-is. (The user specified options must be compatible with the rest of the scheduler parameters entered.(memory etc). For more information, see the job scheduler documentation.
Description |
Option: scheduler arguments |
Type |
[str] |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.25.10. queue#
Send the job to the specified queue. With slurm, this translates to ‘partition’. The queue name must match the name of an existing job scheduler queue. For more information, see the job scheduler documentation
Description |
Option: scheduler queue |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.26. timeout#
Timeout value in seconds. The timeout value is compared against the wall time tracked by the SC runtime to determine if an operation should continue.
Description |
Option: timeout value |
Type |
float |
Scope |
global |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.27. to#
Inclusive list of steps to end execution with. The default is to go to all exit steps in the flow graph.
Description |
Option: ending step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.7.28. track#
Turns on tracking of all ‘record’ parameters during each task, otherwise only tool and runtime information will be recorded. Tracking will result in potentially sensitive data being recorded in the manifest so only turn on this feature if you have control of the final manifest.
Description |
Option: enable provenance tracking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8. record#
Class RecordSchema
1.3.1.8.1. arch#
Record tracking the hardware architecture per step and index basis. (x86_64, rv64imafdc)
Description |
Record: hardware architecture |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.2. distro#
Record tracking the distro name per step and index basis. (ubuntu, redhat, centos)
Description |
Record: distro name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.3. endtime#
Record tracking the end time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: end time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.4. inputnode#
List of selected inputs for the current step/index specified as (in_step, in_index) tuple.
Description |
Record: node inputs |
Type |
[(str,str)] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.5. ipaddr#
Record tracking the IP address per step and index basis.
Description |
Record: IP address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.6. kernelversion#
Record tracking the O/S kernel version per step and index basis. Used for platforms that support a distinction between os kernels and os distributions.
Description |
Record: O/S kernel version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.7. macaddr#
Record tracking the MAC address per step and index basis.
Description |
Record: MAC address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.8. machine#
Record tracking the machine name per step and index basis. (myhost, localhost, …
Description |
Record: machine name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.9. osversion#
Record tracking the O/S version per step and index basis. Since there is not standard version system for operating systems, extracting information from is platform dependent. For Linux based operating systems, the ‘osversion’ is the version of the distro.
Description |
Record: O/S version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.10. platform#
Record tracking the platform name per step and index basis. (linux, windows, freebsd)
Description |
Record: platform name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.11. publickey#
Record tracking the public key per step and index basis.
Description |
Record: public key |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.12. pythonpackage#
Record tracking for the python packages installed.
Description |
Record: python packages |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.13. pythonversion#
Record tracking the Python version per step and index basis. Version of python used to run this task.
Description |
Record: Python version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.14. region#
Record tracking the cloud region per step and index basis. Recommended naming methodology:
local: node is the local machine
onprem: node in on-premises IT infrastructure
public: generic public cloud
govcloud: generic US government cloud
<region>: cloud and entity specific region string name
Description |
Record: cloud region |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.15. remoteid#
Record tracking the job ID for a remote run.
Description |
Record: remote job ID |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.16. scversion#
Record tracking the software version per step and index basis. Version number for the SiliconCompiler software.
Description |
Record: software version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.17. starttime#
Record tracking the start time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: start time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.18. status#
Record tracking for the status of a node.
Description |
Record: node execution status |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.19. toolargs#
Record tracking the tool CLI arguments per step and index basis. Arguments passed to tool via CLI.
Description |
Record: tool CLI arguments |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.20. toolexitcode#
Record tracking the tool exit code per step and index basis.
Description |
Record: tool exit code |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.21. toolpath#
Record tracking the tool path per step and index basis. Full path to tool executable used to run this task.
Description |
Record: tool path |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.22. toolversion#
Record tracking the tool version per step and index basis. The tool version captured corresponds to the ‘tool’ parameter within the ‘tool’ dictionary.
Description |
Record: tool version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.8.23. userid#
Record tracking the userid per step and index basis.
Description |
Record: userid |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.9. schemaversion#
Description |
Schema version number |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
0.54.0 |
Example (API) |
|
1.3.1.10. tool#
1.3.1.10.1. task#
Class Task
1.3.1.10.1.1. dataroot#
1.3.1.10.1.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.1.10.1.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.1.10.1.2. env#
Environment variables to set for individual tasks. Keys and values should be set in accordance with the task’s documentation. Most tasks do not require extra environment variables to function.
Description |
Task: environment variables |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.3. exe#
Tool executable name.
Description |
Tool: executable name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.4. format#
File format for tool manifest handoff.
Description |
Tool: file format |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.5. input#
List of data files to be copied from previous flowgraph steps ‘output’
directory. The list of steps to copy files from is defined by the
list defined by the dictionary key [flowgraph,<flow>,<step>,<index>,input].
All files must be available for flow to continue. If a file
is missing, the program exists on an error.
Description |
Task: input files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.6. licenseserver#
Defines a set of tool-specific environment variables used by the executable
that depend on license key servers to control access. For multiple servers,
separate servers with a colon. The named license variables are read at
runtime (Task.run()) and the environment variables are set.
Description |
Tool: license servers |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.7. option#
List of command line options for the task executable, specified on a per task and per step basis. Options must not include spaces. For multiple argument options, each option is a separate list element.
Description |
Task: executable options |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.8. output#
List of data files written to the ‘output’ directory of the tool/task/step/index used in the keypath. All files must be available for flow to continue. If a file is missing, the program exists on an error.
Description |
Task: output files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.9. path#
File system path to tool executable. The path is prepended to the
system PATH environment variable for batch and interactive runs. The
path parameter can be left blank if the [tool,<tool>,task,<task>,exe] is
already in the environment search path.
Description |
Tool: executable path |
Type |
dir |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.10. postscript#
Path to a user supplied script to execute after the main execution stage of the step but before the design is saved. Exact entry point depends on the step and main script being executed. An example of a postscript entry point would be immediately after global placement.
Description |
Task: post-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.11. prescript#
Path to a user supplied script to execute after reading in the design but before the main execution stage of the step. Exact entry point depends on the step and main script being executed. An example of a prescript entry point would be immediately before global placement.
Description |
Task: pre-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.12. refdir#
Path to directories containing reference flow scripts, specified on a per step and index basis.
Description |
Task: script directory |
Type |
[dir] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.13. regex#
A list of piped together grep commands. Each entry represents a set
of command line arguments for grep including the regex pattern to
match. Starting with the first list entry, each grep output is piped
into the following grep command in the list. Supported grep options
include -v and -e. Patterns starting with “-” should be
directly preceded by the -e option. The following example
illustrates the concept.
UNIX grep:
$ grep WARNING place.log | grep -v "bbox" > place.warnings
SiliconCompiler:
task.set('task', 'openroad', 'regex', 'place', '0', 'warnings',
["WARNING", "-v bbox"])
The “errors” and “warnings” suffixes are special cases. When set,
the number of matches found for these regexes will be added to the
errors and warnings metrics for the task, respectively. This will
also cause the logfile to be added to the [tool,<tool>,task,<task>,report,...] parameter for those metrics, if not already present.
Description |
Task: regex filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.14. report#
List of report files associated with a specific ‘metric’. The file path specified is relative to the run directory of the current task.
Description |
Task: metric report files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.15. require#
List of keypaths to required task parameters. The list is used
by Project.check_manifest() to verify that all parameters have been set up
before step execution begins.
Description |
Task: parameter requirements |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.16. sbom#
Paths to software bill of material (SBOM) document file of the tool specified on a per version basis. The SBOM includes critical package information about the tool including the list of included components, licenses, and copyright. The SBOM file is generally provided as in a a standardized open data format such as SPDX.
Description |
Tool: software BOM |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.17. script#
Path to the entry script called by the executable specified on a per task and per step basis.
Description |
Task: entry script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.18. stderr#
1.3.1.10.1.18.1. destination#
Defines where to direct the output generated over stderr. Supported options are: none: the stream generated to STDERR is ignored log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>
Description |
Task: destination for stderr |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.18.2. suffix#
Specifies the file extension for the content redirected from stderr.
Description |
Task: file suffix for redirected stderr |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.19. stdout#
1.3.1.10.1.19.1. destination#
Defines where to direct the output generated over stdout. Supported options are: none: the stream generated to STDOUT is ignored. log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>.
Description |
Task: destination for stdout |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.19.2. suffix#
Specifies the file extension for the content redirected from stdout.
Description |
Task: file suffix for redirected stdout |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.20. threads#
Thread parallelism to use for execution specified on a per task and per step basis. If not specified, SC queries the operating system and sets the threads based on the maximum thread count supported by the hardware.
Description |
Task: thread parallelism |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.21. vendor#
Name of the tool vendor. Parameter can be used to set vendor specific technology variables in the PDK and libraries. For open source projects, the project name should be used in place of vendor.
Description |
Tool: vendor |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.22. version#
List of acceptable versions of the tool executable to be used. Each
entry in this list must be a version specifier as described by Python
PEP-440.
During task execution, the tool is called with the ‘vswitch’ to
check the runtime executable version. If the version of the system
executable is not allowed by any of the specifiers in ‘version’,
then the job is halted pre-execution. For backwards compatibility,
entries that do not conform to the standard will be interpreted as a
version with an ‘==’ specifier. This check can be disabled by
setting [option,novercheck] to True.
Description |
Tool: version |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.23. vswitch#
Command line switch to use with executable used to print out
the version number. Common switches include -v, -version,
--version. Some tools may require extra flags to run in batch mode.
Description |
Tool: executable version switch |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.1.10.1.24. warningoff#
A list of tool warnings for which printing should be suppressed. Generally this is done on a per design basis after review has determined that warning can be safely ignored The code for turning off warnings can be found in the specific task reference manual.
Description |
Task: warning filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2. ASIC#
The ASIC class extends the base Project class to provide specialized functionality and schema parameters for Application-Specific Integrated Circuit (ASIC) design flows.
It includes specific constraints (timing, component, pin, area) and ASIC-related options such as PDK selection, main logic library, additional ASIC libraries, delay models, and routing layer limits.
File: asic.py
Class ASIC
1.3.2.1. arg#
1.3.2.1.1. index#
Description |
ARG: index argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.1.2. step#
Description |
ARG: step argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.2. asic#
1.3.2.2.1. asiclib#
List of all selected logic libraries to use for optimization for a given library architecture (9T, 11T, etc).
Description |
ASIC: logic libraries |
Type |
{str} |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.2.2.2. delaymodel#
Delay model to use for the target libs. Commonly supported values are nldm and ccs.
Description |
ASIC: delay model |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.2.3. mainlib#
Main logic library to use during the run
Description |
ASIC: main logic library |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.2.4. maxlayer#
Maximum metal layer to be used for automated place and route
Description |
ASIC: maximum routing layer |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.2.5. minlayer#
Minimum metal layer to be used for automated place and route
Description |
ASIC: Minimum routing layer |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.2.6. pdk#
Target PDK used during compilation.
Description |
ASIC: PDK target |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.3. checklist#
Class Checklist
Class Criteria
1.3.2.3.1. criteria#
Simple list of signoff criteria for checklist item which must all be met for signoff. Each signoff criteria consists of a metric, a relational operator, and a value in the form ‘metric op value’.
Description |
Checklist: item criteria |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.2. dataformat#
Free text description of the type of data files acceptable as checklist signoff validation.
Description |
Checklist: item data format |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.3. description#
A short one line description of the checklist item.
Description |
Checklist: item description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.4. ok#
Boolean check mark for the checklist item. A value of True indicates a human has inspected the all item dictionary parameters and verified they check out.
Description |
Checklist: item ok |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.5. rationale#
Rationale for the checklist item. Rationale should be a unique alphanumeric code used by the standard or a short one line or single word description.
Description |
Checklist: item rationale |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.6. report#
Filepath to report(s) of specified type documenting the successful validation of the checklist item.
Description |
Checklist: item report |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.7. requirement#
A complete requirement description of the checklist item entered as a multi-line string.
Description |
Checklist: item requirement |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.8. task#
Flowgraph job and task used to verify the checklist item. The parameter should be left empty for manual and for tool flows that bypass the SC infrastructure.
Description |
Checklist: item task |
Type |
[(str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.3.9. waiver#
Filepath to report(s) documenting waivers for the checklist item specified on a per metric basis.
Description |
Checklist: item metric waivers |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.4. constraint#
Class ASICConstraint
1.3.2.4.1. area#
Class ASICAreaConstraint
1.3.2.4.1.1. aspectratio#
Description |
Constraint: layout aspect ratio |
Type |
float |
Scope |
global |
Default Value |
1.0 |
CLI Switch |
|
Example (API) |
|
1.3.2.4.1.2. corearea#
Description |
Constraint: layout core area |
Type |
[(float,float)] |
Scope |
global |
Unit |
um |
Default Value |
[] |
CLI Switch |
|
Example (API) |
|
1.3.2.4.1.3. coremargin#
Description |
Constraint: layout core margin |
Type |
float |
Scope |
global |
Unit |
um |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.2.4.1.4. density#
Description |
Constraint: layout density |
Type |
float |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.2.4.1.5. diearea#
Description |
Constraint: die area outline |
Type |
[(float,float)] |
Scope |
global |
Unit |
um |
Default Value |
[] |
CLI Switch |
|
Example (API) |
|
1.3.2.4.2. component#
Class ASICComponentConstraints
Class ASICComponentConstraint
1.3.2.4.2.1. halo#
Description |
Constraint: component halo |
Type |
(float,float) |
Scope |
global |
Unit |
um |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.4.2.2. partname#
Description |
Constraint: component part name |
Type |
str |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.4.2.3. placement#
Description |
Constraint: component placement |
Type |
(float,float) |
Scope |
global |
Unit |
um |
Default Value |
None |
Example (API) |
|
1.3.2.4.2.4. rotation#
Description |
Constraint: component rotation |
Type |
enum |
Allowed values |
|
Scope |
global |
Default Value |
R0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.4.3. pin#
Class ASICPinConstraints
Class ASICPinConstraint
1.3.2.4.3.1. layer#
Pin metal layer constraint specified on a per pin basis. Metal names should either be the PDK specific metal stack name or an integer with ‘1’ being the lowest routing layer.
Description |
Constraint: pin layer |
Type |
str |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.4.3.2. length#
Pin length constraint. Package pin length refers to the length of the electrical pins extending out from (or into) a component. This parameter represents goal/intent, not an exact specification. The layout system may adjust dimensions to meet competing goals such as manufacturing design rules and grid placement guidelines.
Description |
Constraint: pin length |
Type |
float |
Scope |
global |
Unit |
um |
Default Value |
None |
Example (API) |
|
1.3.2.4.3.3. order#
The relative position of the named pin in a vector of pins on the side specified by the ‘side’ option. Pin order counting is done clockwise. If multiple pins on the same side have the same order number, the actual order is at the discretion of the tool.
Description |
Constraint: pin order |
Type |
int |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.4.3.4. placement#
Placement location of a named pin, specified as a (x,y) tuple of floats with respect to the lower left corner of the substrate. The location refers to the center of the pin. The ‘placement’ parameter is a goal/intent, not an exact specification. The layout system may adjust sizes to meet competing goals such as manufacturing design rules and grid placement guidelines.
Description |
Constraint: pin placement |
Type |
(float,float) |
Scope |
global |
Unit |
um |
Default Value |
None |
Example (API) |
|
1.3.2.4.3.5. shape#
Pin shape constraint specified on a per pin basis. In 3D design systems, the pin shape represents the cross section of the pin in the direction orthogonal to the signal flow direction. The ‘pill’ (aka stadium) shape, is rectangle with semicircles at a pair of opposite sides. The other pin shapes represent common geometric shape definitions.
Description |
Constraint: pin shape |
Type |
enum |
Allowed values |
|
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.4.3.6. side#
Side of block where the named pin should be placed. Sides are enumerated as integers with ‘1’ being the lower left side, with the side index incremented on right turn in a clock wise fashion. In case of conflict between ‘lower’ and ‘left’, ‘left’ has precedence. The side option and order option are orthogonal to the placement option.
Description |
Constraint: pin side |
Type |
int |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.4.3.7. width#
Pin width constraint. Package pin width is the lateral (side-to-side) thickness of a pin on a physical component. This parameter represents goal/intent, not an exact specification. The layout system may adjust dimensions to meet competing goals such as manufacturing design rules and grid placement guidelines.
Description |
Constraint: pin width |
Type |
float |
Scope |
global |
Unit |
um |
Default Value |
None |
Example (API) |
|
1.3.2.4.4. timing#
Class ASICTimingConstraintSchema
1.3.2.4.4.1. mode#
Class TimingModeSchema
1.3.2.4.4.1.1. sdcfileset#
- List of timing constraint sets files to use for the scenario. The
values are combined with any constraints specified by the design ‘constraint’ parameter. If no constraints are found, a default constraint file is used based on the clock definitions.
Description |
Constraint: SDC files |
Type |
[(str,str)] |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (API) |
|
1.3.2.4.4.2. scenario#
Class ASICTimingScenarioSchema
1.3.2.4.4.2.1. check#
List of checks for to perform for the scenario. The checks must align with the capabilities of the EDA tools and flow being used. Checks generally include objectives like meeting setup and hold goals and minimize power. Standard check names include setup, hold, power, noise, reliability.
Description |
Constraint: timing checks |
Type |
[enum] |
Allowed values |
|
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (API) |
|
1.3.2.4.4.2.2. libcorner#
- List of characterization corners used to select
timing files for all logiclibs and macrolibs.
Description |
Constraint: library corner |
Type |
{str} |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (API) |
|
1.3.2.4.4.2.3. mode#
- Operating mode for the scenario. Operating mode strings
can be values such as test, functional, standby.
Description |
Constraint: operating mode |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.2.4.4.2.4. opcond#
- Operating condition applied to the scenario. The value
can be used to access specific conditions within the library timing models from the
[asic,asiclib]timing models.
Description |
Constraint: operating condition |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.2.4.4.2.5. pexcorner#
- Parasitic corner applied to the scenario. The
’pexcorner’ string must match a corner found in
[pdk,pexmodelfileset,...].
Description |
Constraint: pex corner |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.2.4.4.2.6. temperature#
Chip temperature applied to the scenario specified in degrees C.
Description |
Constraint: temperature |
Type |
float |
Scope |
global |
Unit |
C |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.2.4.4.2.7. voltage#
Operating voltage applied to a specific pin in the scenario.
Description |
Constraint: pin voltage level |
Type |
float |
Scope |
global |
Unit |
V |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.2.5. flowgraph#
Class Flowgraph
Class FlowgraphNodeSchema
1.3.2.5.1. args#
User-specified arguments passed to the task’s setup() method. This allows for customizing a specific node’s behavior without affecting other nodes running the same task.
Description |
Flowgraph: Node-specific arguments |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.5.2. goal#
Goals specified on a per-node and per-metric basis used to determine whether a task run is considered successful. A task run may be considered failing if the absolute value of any of its reported metrics is larger than the goal for that metric (if set). This is often used for metrics like ‘errors’ or ‘setupwns’ where the goal is 0.
Description |
Flowgraph: Metric goals |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.5.3. input#
A list of inputs for this flowgraph node, where each input is specified as a (step, index) tuple. This defines the dependencies of this node.
Description |
Flowgraph: Node inputs |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.5.4. task#
Name of the task (e.g., ‘place’, ‘syn’, ‘join’) associated with the node’s tool.
Description |
Flowgraph: Task selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.5.5. taskmodule#
Full Python module path and class name of the task, formatted as ‘<full.module.path>/<ClassName>’. This is used to import and instantiate the correct Task class for setup and execution.
Description |
Flowgraph: Task module |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.5.6. tool#
Name of the tool (e.g., ‘openroad’, ‘yosys’, ‘builtin’) that this node will execute.
Description |
Flowgraph: Tool selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.5.7. weight#
Weights specified on a per-node and per-metric basis, used by optimization tasks (like ‘minimum’) to calculate a “goodness” score for a run. The score is typically a weighted sum of metric results.
Description |
Flowgraph: Metric weights |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
0.0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.6. history#
1.3.2.7. library#
Class _ProjectLibrary
1.3.2.8. metric#
Class ASICMetricsSchema
1.3.2.8.1. averagepower#
Metric tracking the average workload power of the design specified on a per step and index basis. Power metric depend heavily on the method being used for extraction: dynamic vs static, workload specification (vcd vs saif), power models, process/voltage/temperature. The power averagepower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.
Description |
Metric: averagepower |
Type |
float |
Scope |
job |
Unit |
mw |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.2. buffers#
Metric tracking the total number of buffer instances in the design on a per step and index basis.
Description |
Metric: buffers |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.3. cellarea#
Metric tracking the total cell area (ignoring fillers) occupied by the design.
Description |
Metric: cellarea |
Type |
float |
Scope |
job |
Unit |
um^2 |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.4. cells#
Metric tracking the total number of cell instances in the design on a per step and index basis.
Description |
Metric: cells |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.5. drcs#
Metric tracking the total number of physical design rule violations on a per step and index basis.
Description |
Metric: total drcs |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.6. drvs#
Metric tracking the total number of design rule violations on a per step and index basis.
Description |
Metric: total drvs |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.7. errors#
Metric tracking the total number of errors on a per step and index basis.
Description |
Metric: total errors |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.8. exetime#
Metric tracking time spent by the EDA executable
[tool,<tool>,task,<task>,exe] on a
per step and index basis. It does not include the SiliconCompiler
runtime overhead or time waiting for I/O operations and
inter-processor communication to complete.
Description |
Metric: exetime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.9. fmax#
Metric tracking the maximum clock frequency on a per step and index basis.
Description |
Metric: fmax |
Type |
float |
Scope |
job |
Unit |
Hz |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.10. holdpaths#
Metric tracking the total number of timing paths violating hold constraints.
Description |
Metric: holdpaths |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.11. holdskew#
Metric tracking the hold clock skew on a per step and index basis.
Description |
Metric: holdskew |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.12. holdslack#
Metric tracking the worst hold slack (positive or negative) on a per step and index basis.
Description |
Metric: holdslack |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.13. holdtns#
Metric tracking the total negative hold slack (TNS) on a per step and index basis.
Description |
Metric: holdtns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.14. holdwns#
Metric tracking the worst negative hold slack (positive values truncated to zero) on a per step and index basis.
Description |
Metric: holdwns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.15. inverters#
Metric tracking the total number of inverter instances in the design on a per step and index basis.
Description |
Metric: inverters |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.16. irdrop#
Metric tracking the peak IR drop in the design based on extracted power and ground rail parasitics, library power models, and switching activity. The switching activity calculated on a per node basis is taken from one of three possible sources, in order of priority: VCD file, SAIF file, ‘activityfactor’ parameter.
Description |
Metric: peak IR drop |
Type |
float |
Scope |
job |
Unit |
mv |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.17. leakagepower#
Metric tracking the leakage power with rails active but without any dynamic switching activity of the design specified on a per step and index basis. Power metric depend heavily on the method being used for extraction: dynamic vs static, workload specification (vcd vs saif), power models, process/voltage/temperature. The power leakagepower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.
Description |
Metric: leakagepower |
Type |
float |
Scope |
job |
Unit |
mw |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.18. logicdepth#
Metric tracking the logic depth of the design. This is determined by the number of logic gates between the start of the critital timing path to the end of the path.
Description |
Metric: logic depth |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.19. macroarea#
Metric tracking the total macro cell area occupied by the design.
Description |
Metric: macroarea |
Type |
float |
Scope |
job |
Unit |
um^2 |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.20. macros#
Metric tracking the total number of macros in the design on a per step and index basis.
Description |
Metric: macros |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.21. memory#
Metric tracking total peak program memory footprint on a per step and index basis.
Description |
Metric: memory |
Type |
float |
Scope |
job |
Unit |
B |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.22. nets#
Metric tracking the total number of nets in the design on a per step and index basis.
Description |
Metric: nets |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.23. overflow#
Metric tracking the total number of overflow tracks for the routing on per step and index basis. Any non-zero number suggests an over congested design. To analyze where the congestion is occurring inspect the router log files for detailed per metal overflow reporting and open up the design to find routing hotspots.
Description |
Metric: overflow |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.24. padcellarea#
Metric tracking the total io pad cell area occupied by the design.
Description |
Metric: padcellarea |
Type |
float |
Scope |
job |
Unit |
um^2 |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.25. peakpower#
Metric tracking the worst case total peak power of the design specified on a per step and index basis. Power metric depend heavily on the method being used for extraction: dynamic vs static, workload specification (vcd vs saif), power models, process/voltage/temperature. The power peakpower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.
Description |
Metric: peakpower |
Type |
float |
Scope |
job |
Unit |
mw |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.26. pins#
Metric tracking the total number of pins in the design on a per step and index basis.
Description |
Metric: pins |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.27. registers#
Metric tracking the total number of register instances in the design on a per step and index basis.
Description |
Metric: registers |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.28. setuppaths#
Metric tracking the total number of timing paths violating setup constraints.
Description |
Metric: setuppaths |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.29. setupskew#
Metric tracking the setup clock skew on a per step and index basis.
Description |
Metric: setupskew |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.30. setupslack#
Metric tracking the worst setup slack (positive or negative) on a per step and index basis.
Description |
Metric: setupslack |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.31. setuptns#
Metric tracking the total negative setup slack (TNS) on a per step and index basis.
Description |
Metric: setuptns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.32. setupwns#
Metric tracking the worst negative setup slack (positive values truncated to zero) on a per step and index basis.
Description |
Metric: setupwns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.33. stdcellarea#
Metric tracking the total standard cell area occupied by the design.
Description |
Metric: stdcellarea |
Type |
float |
Scope |
job |
Unit |
um^2 |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.34. tasktime#
Metric tracking the total amount of time spent on a task from beginning to end, including data transfers and pre/post processing.
Description |
Metric: tasktime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.35. totalarea#
Metric tracking the total physical die area occupied by the design.
Description |
Metric: totalarea |
Type |
float |
Scope |
job |
Unit |
um^2 |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.36. totaltime#
Metric tracking the total amount of time spent from the beginning of the run up to and including the current step and index.
Description |
Metric: totaltime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.37. transistors#
Metric tracking the total number of transistors in the design on a per step and index basis.
Description |
Metric: transistors |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.38. unconstrained#
Metric tracking the total number of unconstrained timing paths on a per step and index basis.
Description |
Metric: total unconstrained |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.39. utilization#
Metric tracking the area utilization of the design calculated as 100 * (cellarea/totalarea).
Description |
Metric: area utilization |
Type |
float |
Scope |
job |
Unit |
% |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.40. vias#
Metric tracking the total number of vias in the design on a per step and index basis.
Description |
Metric: vias |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.41. warnings#
Metric tracking the total number of warnings on a per step and index basis.
Description |
Metric: total warnings |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.8.42. wirelength#
Metric tracking the total wirelength of the design on a per step and index basis.
Description |
Metric: wirelength |
Type |
float |
Scope |
job |
Unit |
um |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9. option#
Class OptionSchema
1.3.2.9.1. alias#
List of filesets to alias during a run. When an alias is specific it will be used instead of the source fileset. It is useful when you want to substitute a fileset from one library with a fileset from another, without changing the original design’s code. For example, you might use it to swap in a different version of an IP block or a specific test environment.
Description |
Option: Fileset alias mapping |
Type |
[(str,str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.2.9.2. autoissue#
Enables automatic generation of testcases if the specific node fails
Description |
Option: Enables automatic generation of testcases |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.2.9.3. breakpoint#
Set a breakpoint on specific steps. If the step is a TCL based tool, then the breakpoints stops the flow inside the EDA tool. If the step is a command line tool, then the flow drops into a Python interpreter.
Description |
Option: breakpoint list |
Type |
bool |
Scope |
job |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.4. builddir#
The default build directory is in the local ‘./build’ where SC was executed. This can be used to set an alternate compilation directory path.
Description |
Option: build directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
build |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.5. cachedir#
Filepath to cache used for package data sources. If the cache parameter is empty, “.sc/cache” directory in the user’s home directory will be used.
Description |
Option: user cache directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.6. clean#
Run a job from the start and do not use any of the previous job. If
[option,jobincr]is True, the old job is preserved and a new job number is assigned.
Description |
Option: cleanup previous job |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.7. continue#
Attempt to continue even when errors are encountered in the SC implementation. The default behavior is to quit executing the flow if a task ends and the errors metric is greater than 0. Note that the flow will always cease executing if the tool returns a nonzero status code.
Description |
Option: continue-on-error |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.8. credentials#
Filepath to credentials used for remote processing. If the credentials parameter is empty, the remote processing client program tries to access the “.sc/credentials” file in the user’s home directory. The file supports the following fields:
address=<server address> port=<server port> (optional) username=<user id> (optional) password=<password / key used for authentication> (optional)
Description |
Option: user credentials file |
Type |
file |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.9. design#
Name of the top level library
Description |
Option: Design library name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.10. env#
Certain tools and reference flows require global environment variables to be set. These variables can be managed externally or specified through the env variable.
Description |
Option: environment variables |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.9.11. fileset#
List of filesets to use from the selected design library
Description |
Option: Selected design filesets |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.2.9.12. flow#
Sets the flow for the current run. The flow name must match up with a ‘flow’ in the flowgraph
Description |
Option: flow target |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.13. from#
Inclusive list of steps to start execution from. The default is to start at all entry steps in the flow graph.
Description |
Option: starting step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.14. hash#
Enables hashing of all inputs and outputs during compilation. The hash values are stored in the hashvalue field of the individual parameters.
Description |
Option: file hashing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.15. jobincr#
Forces an auto-update of the jobname parameter if a directory matching the jobname is found in the build directory. If the jobname does not include a trailing digit, then the number ‘1’ is added to the jobname before updating the jobname parameter.
Description |
Option: autoincrement jobname |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.16. jobname#
Jobname during invocation of
Project.run(). The jobname combined with a defined director structure (<dir>/<design>/<jobname>/<step>/<index>) enables multiple levels of transparent job, step, and index introspection.
Description |
Option: job name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
job0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.17. nice#
Sets the type of execution priority of each individual flowgraph steps. If the parameter is undefined, nice will not be used. For more information see Unix ‘nice’.
Description |
Option: tool scheduling priority |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.18. nodashboard#
Disables the dashboard during execution
Description |
Option: Disables the dashboard |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.2.9.19. nodisplay#
This flag prevents SiliconCompiler from opening GUI windows.
Description |
Option: headless execution |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.20. novercheck#
Disables strict version checking on all invoked tools if True. The list of supported version numbers is defined in the
[tool,<tool>,task,<task>,version].
Description |
Option: disable version checking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.21. optmode#
The compiler has modes to prioritize run time and ppa. Modes include.
(O0) = Exploration mode for debugging setup (O1) = Higher effort and better PPA than O0 (O2) = Higher effort and better PPA than O1 (O3) = Signoff quality. Better PPA and higher run times than O2 (O4-O98) = Reserved (compiler/target dependent) (O99) = Experimental highest possible effort, may be unstable
Description |
Option: optimization mode |
Type |
int |
Scope |
global |
Default Value |
0 |
CLI Switch |
|
Example (CLI) |
-optmode 3 |
Example (API) |
|
1.3.2.9.22. prune#
List of starting nodes for branches to be pruned. The default is to not prune any nodes/branches.
Description |
Option: flowgraph pruning |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.23. quiet#
The -quiet option forces all steps to print to a log file. This can be useful with Modern EDA tools which print significant content to the screen.
Description |
Option: quiet execution |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.24. remote#
Sends job for remote processing if set to true. The remote option requires a credentials file to be placed in the home directory. Fore more information, see the credentials parameter.
Description |
Option: enable remote processing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25. scheduler#
Class SchedulerSchema
1.3.2.9.25.1. cores#
Specifies the number CPU cores required to run the job. For the slurm scheduler, this translates to the ‘-c’ switch. For more information, see the job scheduler documentation
Description |
Option: Scheduler core constraint |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.2. defer#
Defer initiation of job until the specified time. The parameter is pass through string for remote job scheduler such as slurm. For more information about the exact format specification, see the job scheduler documentation. Examples of valid slurm specific values include: now+1hour, 16:00, 010-01-20T12:34:00. For more information, see the job scheduler documentation.
Description |
Option: scheduler start time |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.3. maxnodes#
Maximum number of concurrent nodes to run in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum concurrent nodes |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.4. maxthreads#
Maximum number of threads for each task in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum number of threads to assign a task |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.9.25.5. memory#
Specifies the amount of memory required to run the job, specified in MB. For the slurm scheduler, this translates to the ‘–mem’ switch. For more information, see the job scheduler documentation
Description |
Option: scheduler memory constraint |
Type |
int |
Scope |
global |
Unit |
MB |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.6. msgcontact#
List of email addresses to message on a
[option,scheduler,msgevent]. Support for email messages relies on job scheduler daemon support. For more information, see the job scheduler documentation.
Description |
Option: message contact |
Type |
{str} |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.7. msgevent#
Directs job scheduler to send a message to the user in
[option,scheduler,msgcontact]when certain events occur during a task.
fail: send an email on failures
timeout: send an email on timeouts
begin: send an email at the start of a node task
end: send an email at the end of a node task
summary: send a summary email at the end of the run
all: send an email on any event
Description |
Option: message event trigger |
Type |
[enum] |
Allowed values |
|
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.8. name#
Sets the type of job scheduler to be used for each individual flowgraph steps. If the parameter is undefined, the steps are executed on the same machine that the SC was launched on. If ‘slurm’ is used, the host running the ‘sc’ command must be running a ‘slurmctld’ daemon managing a Slurm cluster. Additionally, the build directory (
[option,builddir]) must be located in shared storage which can be accessed by all hosts in the cluster.
Description |
Option: scheduler platform |
Type |
enum |
Allowed values |
|
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.9. options#
Advanced/export options passed through unchanged to the job scheduler as-is. (The user specified options must be compatible with the rest of the scheduler parameters entered.(memory etc). For more information, see the job scheduler documentation.
Description |
Option: scheduler arguments |
Type |
[str] |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.25.10. queue#
Send the job to the specified queue. With slurm, this translates to ‘partition’. The queue name must match the name of an existing job scheduler queue. For more information, see the job scheduler documentation
Description |
Option: scheduler queue |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.26. timeout#
Timeout value in seconds. The timeout value is compared against the wall time tracked by the SC runtime to determine if an operation should continue.
Description |
Option: timeout value |
Type |
float |
Scope |
global |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.27. to#
Inclusive list of steps to end execution with. The default is to go to all exit steps in the flow graph.
Description |
Option: ending step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.9.28. track#
Turns on tracking of all ‘record’ parameters during each task, otherwise only tool and runtime information will be recorded. Tracking will result in potentially sensitive data being recorded in the manifest so only turn on this feature if you have control of the final manifest.
Description |
Option: enable provenance tracking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10. record#
Class RecordSchema
1.3.2.10.1. arch#
Record tracking the hardware architecture per step and index basis. (x86_64, rv64imafdc)
Description |
Record: hardware architecture |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.2. distro#
Record tracking the distro name per step and index basis. (ubuntu, redhat, centos)
Description |
Record: distro name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.3. endtime#
Record tracking the end time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: end time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.4. inputnode#
List of selected inputs for the current step/index specified as (in_step, in_index) tuple.
Description |
Record: node inputs |
Type |
[(str,str)] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.5. ipaddr#
Record tracking the IP address per step and index basis.
Description |
Record: IP address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.6. kernelversion#
Record tracking the O/S kernel version per step and index basis. Used for platforms that support a distinction between os kernels and os distributions.
Description |
Record: O/S kernel version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.7. macaddr#
Record tracking the MAC address per step and index basis.
Description |
Record: MAC address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.8. machine#
Record tracking the machine name per step and index basis. (myhost, localhost, …
Description |
Record: machine name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.9. osversion#
Record tracking the O/S version per step and index basis. Since there is not standard version system for operating systems, extracting information from is platform dependent. For Linux based operating systems, the ‘osversion’ is the version of the distro.
Description |
Record: O/S version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.10. platform#
Record tracking the platform name per step and index basis. (linux, windows, freebsd)
Description |
Record: platform name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.11. publickey#
Record tracking the public key per step and index basis.
Description |
Record: public key |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.12. pythonpackage#
Record tracking for the python packages installed.
Description |
Record: python packages |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.13. pythonversion#
Record tracking the Python version per step and index basis. Version of python used to run this task.
Description |
Record: Python version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.14. region#
Record tracking the cloud region per step and index basis. Recommended naming methodology:
local: node is the local machine
onprem: node in on-premises IT infrastructure
public: generic public cloud
govcloud: generic US government cloud
<region>: cloud and entity specific region string name
Description |
Record: cloud region |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.15. remoteid#
Record tracking the job ID for a remote run.
Description |
Record: remote job ID |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.16. scversion#
Record tracking the software version per step and index basis. Version number for the SiliconCompiler software.
Description |
Record: software version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.17. starttime#
Record tracking the start time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: start time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.18. status#
Record tracking for the status of a node.
Description |
Record: node execution status |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.19. toolargs#
Record tracking the tool CLI arguments per step and index basis. Arguments passed to tool via CLI.
Description |
Record: tool CLI arguments |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.20. toolexitcode#
Record tracking the tool exit code per step and index basis.
Description |
Record: tool exit code |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.21. toolpath#
Record tracking the tool path per step and index basis. Full path to tool executable used to run this task.
Description |
Record: tool path |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.22. toolversion#
Record tracking the tool version per step and index basis. The tool version captured corresponds to the ‘tool’ parameter within the ‘tool’ dictionary.
Description |
Record: tool version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.10.23. userid#
Record tracking the userid per step and index basis.
Description |
Record: userid |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.11. schemaversion#
Description |
Schema version number |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
0.54.0 |
Example (API) |
|
1.3.2.12. tool#
1.3.2.12.1. task#
Class Task
1.3.2.12.1.1. dataroot#
1.3.2.12.1.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.12.1.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.2.12.1.2. env#
Environment variables to set for individual tasks. Keys and values should be set in accordance with the task’s documentation. Most tasks do not require extra environment variables to function.
Description |
Task: environment variables |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.3. exe#
Tool executable name.
Description |
Tool: executable name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.4. format#
File format for tool manifest handoff.
Description |
Tool: file format |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.5. input#
List of data files to be copied from previous flowgraph steps ‘output’
directory. The list of steps to copy files from is defined by the
list defined by the dictionary key [flowgraph,<flow>,<step>,<index>,input].
All files must be available for flow to continue. If a file
is missing, the program exists on an error.
Description |
Task: input files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.6. licenseserver#
Defines a set of tool-specific environment variables used by the executable
that depend on license key servers to control access. For multiple servers,
separate servers with a colon. The named license variables are read at
runtime (Task.run()) and the environment variables are set.
Description |
Tool: license servers |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.7. option#
List of command line options for the task executable, specified on a per task and per step basis. Options must not include spaces. For multiple argument options, each option is a separate list element.
Description |
Task: executable options |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.8. output#
List of data files written to the ‘output’ directory of the tool/task/step/index used in the keypath. All files must be available for flow to continue. If a file is missing, the program exists on an error.
Description |
Task: output files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.9. path#
File system path to tool executable. The path is prepended to the
system PATH environment variable for batch and interactive runs. The
path parameter can be left blank if the [tool,<tool>,task,<task>,exe] is
already in the environment search path.
Description |
Tool: executable path |
Type |
dir |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.10. postscript#
Path to a user supplied script to execute after the main execution stage of the step but before the design is saved. Exact entry point depends on the step and main script being executed. An example of a postscript entry point would be immediately after global placement.
Description |
Task: post-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.11. prescript#
Path to a user supplied script to execute after reading in the design but before the main execution stage of the step. Exact entry point depends on the step and main script being executed. An example of a prescript entry point would be immediately before global placement.
Description |
Task: pre-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.12. refdir#
Path to directories containing reference flow scripts, specified on a per step and index basis.
Description |
Task: script directory |
Type |
[dir] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.13. regex#
A list of piped together grep commands. Each entry represents a set
of command line arguments for grep including the regex pattern to
match. Starting with the first list entry, each grep output is piped
into the following grep command in the list. Supported grep options
include -v and -e. Patterns starting with “-” should be
directly preceded by the -e option. The following example
illustrates the concept.
UNIX grep:
$ grep WARNING place.log | grep -v "bbox" > place.warnings
SiliconCompiler:
task.set('task', 'openroad', 'regex', 'place', '0', 'warnings',
["WARNING", "-v bbox"])
The “errors” and “warnings” suffixes are special cases. When set,
the number of matches found for these regexes will be added to the
errors and warnings metrics for the task, respectively. This will
also cause the logfile to be added to the [tool,<tool>,task,<task>,report,...] parameter for those metrics, if not already present.
Description |
Task: regex filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.14. report#
List of report files associated with a specific ‘metric’. The file path specified is relative to the run directory of the current task.
Description |
Task: metric report files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.15. require#
List of keypaths to required task parameters. The list is used
by Project.check_manifest() to verify that all parameters have been set up
before step execution begins.
Description |
Task: parameter requirements |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.16. sbom#
Paths to software bill of material (SBOM) document file of the tool specified on a per version basis. The SBOM includes critical package information about the tool including the list of included components, licenses, and copyright. The SBOM file is generally provided as in a a standardized open data format such as SPDX.
Description |
Tool: software BOM |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.17. script#
Path to the entry script called by the executable specified on a per task and per step basis.
Description |
Task: entry script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.18. stderr#
1.3.2.12.1.18.1. destination#
Defines where to direct the output generated over stderr. Supported options are: none: the stream generated to STDERR is ignored log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>
Description |
Task: destination for stderr |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.18.2. suffix#
Specifies the file extension for the content redirected from stderr.
Description |
Task: file suffix for redirected stderr |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.19. stdout#
1.3.2.12.1.19.1. destination#
Defines where to direct the output generated over stdout. Supported options are: none: the stream generated to STDOUT is ignored. log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>.
Description |
Task: destination for stdout |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.19.2. suffix#
Specifies the file extension for the content redirected from stdout.
Description |
Task: file suffix for redirected stdout |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.20. threads#
Thread parallelism to use for execution specified on a per task and per step basis. If not specified, SC queries the operating system and sets the threads based on the maximum thread count supported by the hardware.
Description |
Task: thread parallelism |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.21. vendor#
Name of the tool vendor. Parameter can be used to set vendor specific technology variables in the PDK and libraries. For open source projects, the project name should be used in place of vendor.
Description |
Tool: vendor |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.22. version#
List of acceptable versions of the tool executable to be used. Each
entry in this list must be a version specifier as described by Python
PEP-440.
During task execution, the tool is called with the ‘vswitch’ to
check the runtime executable version. If the version of the system
executable is not allowed by any of the specifiers in ‘version’,
then the job is halted pre-execution. For backwards compatibility,
entries that do not conform to the standard will be interpreted as a
version with an ‘==’ specifier. This check can be disabled by
setting [option,novercheck] to True.
Description |
Tool: version |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.23. vswitch#
Command line switch to use with executable used to print out
the version number. Common switches include -v, -version,
--version. Some tools may require extra flags to run in batch mode.
Description |
Tool: executable version switch |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.2.12.1.24. warningoff#
A list of tool warnings for which printing should be suppressed. Generally this is done on a per design basis after review has determined that warning can be safely ignored The code for turning off warnings can be found in the specific task reference manual.
Description |
Task: warning filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3. FPGA#
A class for managing FPGA projects, inheriting from the base Project class.
This class extends the base project with FPGA-specific schema for constraints, metrics, and device selection. It provides methods to configure and validate
an FPGA design project.
File: fpga.py
Class FPGA
1.3.3.1. arg#
1.3.3.1.1. index#
Description |
ARG: index argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.1.2. step#
Description |
ARG: step argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2. checklist#
Class Checklist
Class Criteria
1.3.3.2.1. criteria#
Simple list of signoff criteria for checklist item which must all be met for signoff. Each signoff criteria consists of a metric, a relational operator, and a value in the form ‘metric op value’.
Description |
Checklist: item criteria |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.2. dataformat#
Free text description of the type of data files acceptable as checklist signoff validation.
Description |
Checklist: item data format |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.3. description#
A short one line description of the checklist item.
Description |
Checklist: item description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.4. ok#
Boolean check mark for the checklist item. A value of True indicates a human has inspected the all item dictionary parameters and verified they check out.
Description |
Checklist: item ok |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.5. rationale#
Rationale for the checklist item. Rationale should be a unique alphanumeric code used by the standard or a short one line or single word description.
Description |
Checklist: item rationale |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.6. report#
Filepath to report(s) of specified type documenting the successful validation of the checklist item.
Description |
Checklist: item report |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.7. requirement#
A complete requirement description of the checklist item entered as a multi-line string.
Description |
Checklist: item requirement |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.8. task#
Flowgraph job and task used to verify the checklist item. The parameter should be left empty for manual and for tool flows that bypass the SC infrastructure.
Description |
Checklist: item task |
Type |
[(str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.2.9. waiver#
Filepath to report(s) documenting waivers for the checklist item specified on a per metric basis.
Description |
Checklist: item metric waivers |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.3. constraint#
Class FPGAConstraint
1.3.3.3.1. component#
Class FPGAComponentConstraints
1.3.3.3.2. pin#
Class FPGAPinConstraints
1.3.3.3.3. timing#
Class FPGATimingConstraintSchema
1.3.3.3.3.1. mode#
Class TimingModeSchema
1.3.3.3.3.1.1. sdcfileset#
- List of timing constraint sets files to use for the scenario. The
values are combined with any constraints specified by the design ‘constraint’ parameter. If no constraints are found, a default constraint file is used based on the clock definitions.
Description |
Constraint: SDC files |
Type |
[(str,str)] |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (API) |
|
1.3.3.3.3.2. scenario#
Class FPGATimingScenarioSchema
1.3.3.3.3.2.1. mode#
- Operating mode for the scenario. Operating mode strings
can be values such as test, functional, standby.
Description |
Constraint: operating mode |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (API) |
|
1.3.3.4. flowgraph#
Class Flowgraph
Class FlowgraphNodeSchema
1.3.3.4.1. args#
User-specified arguments passed to the task’s setup() method. This allows for customizing a specific node’s behavior without affecting other nodes running the same task.
Description |
Flowgraph: Node-specific arguments |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.4.2. goal#
Goals specified on a per-node and per-metric basis used to determine whether a task run is considered successful. A task run may be considered failing if the absolute value of any of its reported metrics is larger than the goal for that metric (if set). This is often used for metrics like ‘errors’ or ‘setupwns’ where the goal is 0.
Description |
Flowgraph: Metric goals |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.4.3. input#
A list of inputs for this flowgraph node, where each input is specified as a (step, index) tuple. This defines the dependencies of this node.
Description |
Flowgraph: Node inputs |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.4.4. task#
Name of the task (e.g., ‘place’, ‘syn’, ‘join’) associated with the node’s tool.
Description |
Flowgraph: Task selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.4.5. taskmodule#
Full Python module path and class name of the task, formatted as ‘<full.module.path>/<ClassName>’. This is used to import and instantiate the correct Task class for setup and execution.
Description |
Flowgraph: Task module |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.4.6. tool#
Name of the tool (e.g., ‘openroad’, ‘yosys’, ‘builtin’) that this node will execute.
Description |
Flowgraph: Tool selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.4.7. weight#
Weights specified on a per-node and per-metric basis, used by optimization tasks (like ‘minimum’) to calculate a “goodness” score for a run. The score is typically a weighted sum of metric results.
Description |
Flowgraph: Metric weights |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
0.0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.5. fpga#
1.3.3.5.1. device#
Description |
None |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
1.3.3.6. history#
1.3.3.7. library#
Class _ProjectLibrary
1.3.3.8. metric#
Class FPGAMetricsSchema
1.3.3.8.1. averagepower#
Metric tracking the average workload power of the design specified on a per step and index basis. Power metric depend heavily on the method being used for extraction: dynamic vs static, workload specification (vcd vs saif), power models, process/voltage/temperature. The power averagepower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.
Description |
Metric: averagepower |
Type |
float |
Scope |
job |
Unit |
mw |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.2. brams#
Metric tracking the total FPGA BRAM tiles used used by the design as reported by the implementation tool. There is no standardized definition for this metric across vendors, so metric comparisons can generally only be done between runs on identical tools and device families.
Description |
Metric: FPGA BRAM tiles used |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.3. cells#
Metric tracking the total number of cell instances in the design on a per step and index basis.
Description |
Metric: cells |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.4. dsps#
Metric tracking the total FPGA DSP slices used used by the design as reported by the implementation tool. There is no standardized definition for this metric across vendors, so metric comparisons can generally only be done between runs on identical tools and device families.
Description |
Metric: FPGA DSP slices used |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.5. errors#
Metric tracking the total number of errors on a per step and index basis.
Description |
Metric: total errors |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.6. exetime#
Metric tracking time spent by the EDA executable
[tool,<tool>,task,<task>,exe] on a
per step and index basis. It does not include the SiliconCompiler
runtime overhead or time waiting for I/O operations and
inter-processor communication to complete.
Description |
Metric: exetime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.7. fmax#
Metric tracking the maximum clock frequency on a per step and index basis.
Description |
Metric: fmax |
Type |
float |
Scope |
job |
Unit |
Hz |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.8. holdpaths#
Metric tracking the total number of timing paths violating hold constraints.
Description |
Metric: holdpaths |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.9. holdskew#
Metric tracking the hold clock skew on a per step and index basis.
Description |
Metric: holdskew |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.10. holdslack#
Metric tracking the worst hold slack (positive or negative) on a per step and index basis.
Description |
Metric: holdslack |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.11. holdtns#
Metric tracking the total negative hold slack (TNS) on a per step and index basis.
Description |
Metric: holdtns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.12. holdwns#
Metric tracking the worst negative hold slack (positive values truncated to zero) on a per step and index basis.
Description |
Metric: holdwns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.13. leakagepower#
Metric tracking the leakage power with rails active but without any dynamic switching activity of the design specified on a per step and index basis. Power metric depend heavily on the method being used for extraction: dynamic vs static, workload specification (vcd vs saif), power models, process/voltage/temperature. The power leakagepower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.
Description |
Metric: leakagepower |
Type |
float |
Scope |
job |
Unit |
mw |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.14. logicdepth#
Metric tracking the logic depth of the design. This is determined by the number of logic gates between the start of the critital timing path to the end of the path.
Description |
Metric: logic depth |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.15. luts#
Metric tracking the total FPGA LUTs used used by the design as reported by the implementation tool. There is no standardized definition for this metric across vendors, so metric comparisons can generally only be done between runs on identical tools and device families.
Description |
Metric: FPGA LUTs used |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.16. macros#
Metric tracking the total number of macros in the design on a per step and index basis.
Description |
Metric: macros |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.17. memory#
Metric tracking total peak program memory footprint on a per step and index basis.
Description |
Metric: memory |
Type |
float |
Scope |
job |
Unit |
B |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.18. nets#
Metric tracking the total number of nets in the design on a per step and index basis.
Description |
Metric: nets |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.19. overflow#
Metric tracking the total number of overflow tracks for the routing on per step and index basis. Any non-zero number suggests an over congested design. To analyze where the congestion is occurring inspect the router log files for detailed per metal overflow reporting and open up the design to find routing hotspots.
Description |
Metric: overflow |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.20. peakpower#
Metric tracking the worst case total peak power of the design specified on a per step and index basis. Power metric depend heavily on the method being used for extraction: dynamic vs static, workload specification (vcd vs saif), power models, process/voltage/temperature. The power peakpower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.
Description |
Metric: peakpower |
Type |
float |
Scope |
job |
Unit |
mw |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.21. pins#
Metric tracking the total number of pins in the design on a per step and index basis.
Description |
Metric: pins |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.22. registers#
Metric tracking the total number of register instances in the design on a per step and index basis.
Description |
Metric: registers |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.23. setuppaths#
Metric tracking the total number of timing paths violating setup constraints.
Description |
Metric: setuppaths |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.24. setupskew#
Metric tracking the setup clock skew on a per step and index basis.
Description |
Metric: setupskew |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.25. setupslack#
Metric tracking the worst setup slack (positive or negative) on a per step and index basis.
Description |
Metric: setupslack |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.26. setuptns#
Metric tracking the total negative setup slack (TNS) on a per step and index basis.
Description |
Metric: setuptns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.27. setupwns#
Metric tracking the worst negative setup slack (positive values truncated to zero) on a per step and index basis.
Description |
Metric: setupwns |
Type |
float |
Scope |
job |
Unit |
ns |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.28. tasktime#
Metric tracking the total amount of time spent on a task from beginning to end, including data transfers and pre/post processing.
Description |
Metric: tasktime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.29. totaltime#
Metric tracking the total amount of time spent from the beginning of the run up to and including the current step and index.
Description |
Metric: totaltime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.30. unconstrained#
Metric tracking the total number of unconstrained timing paths on a per step and index basis.
Description |
Metric: total unconstrained |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.31. utilization#
Metric tracking the area utilization of the design calculated as 100 * (cellarea/totalarea).
Description |
Metric: area utilization |
Type |
float |
Scope |
job |
Unit |
% |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.32. warnings#
Metric tracking the total number of warnings on a per step and index basis.
Description |
Metric: total warnings |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.8.33. wirelength#
Metric tracking the total wirelength of the design on a per step and index basis.
Description |
Metric: wirelength |
Type |
float |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9. option#
Class OptionSchema
1.3.3.9.1. alias#
List of filesets to alias during a run. When an alias is specific it will be used instead of the source fileset. It is useful when you want to substitute a fileset from one library with a fileset from another, without changing the original design’s code. For example, you might use it to swap in a different version of an IP block or a specific test environment.
Description |
Option: Fileset alias mapping |
Type |
[(str,str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.3.9.2. autoissue#
Enables automatic generation of testcases if the specific node fails
Description |
Option: Enables automatic generation of testcases |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.3.9.3. breakpoint#
Set a breakpoint on specific steps. If the step is a TCL based tool, then the breakpoints stops the flow inside the EDA tool. If the step is a command line tool, then the flow drops into a Python interpreter.
Description |
Option: breakpoint list |
Type |
bool |
Scope |
job |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.4. builddir#
The default build directory is in the local ‘./build’ where SC was executed. This can be used to set an alternate compilation directory path.
Description |
Option: build directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
build |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.5. cachedir#
Filepath to cache used for package data sources. If the cache parameter is empty, “.sc/cache” directory in the user’s home directory will be used.
Description |
Option: user cache directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.6. clean#
Run a job from the start and do not use any of the previous job. If
[option,jobincr]is True, the old job is preserved and a new job number is assigned.
Description |
Option: cleanup previous job |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.7. continue#
Attempt to continue even when errors are encountered in the SC implementation. The default behavior is to quit executing the flow if a task ends and the errors metric is greater than 0. Note that the flow will always cease executing if the tool returns a nonzero status code.
Description |
Option: continue-on-error |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.8. credentials#
Filepath to credentials used for remote processing. If the credentials parameter is empty, the remote processing client program tries to access the “.sc/credentials” file in the user’s home directory. The file supports the following fields:
address=<server address> port=<server port> (optional) username=<user id> (optional) password=<password / key used for authentication> (optional)
Description |
Option: user credentials file |
Type |
file |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.9. design#
Name of the top level library
Description |
Option: Design library name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.10. env#
Certain tools and reference flows require global environment variables to be set. These variables can be managed externally or specified through the env variable.
Description |
Option: environment variables |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.3.9.11. fileset#
List of filesets to use from the selected design library
Description |
Option: Selected design filesets |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.3.9.12. flow#
Sets the flow for the current run. The flow name must match up with a ‘flow’ in the flowgraph
Description |
Option: flow target |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.13. from#
Inclusive list of steps to start execution from. The default is to start at all entry steps in the flow graph.
Description |
Option: starting step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.14. hash#
Enables hashing of all inputs and outputs during compilation. The hash values are stored in the hashvalue field of the individual parameters.
Description |
Option: file hashing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.15. jobincr#
Forces an auto-update of the jobname parameter if a directory matching the jobname is found in the build directory. If the jobname does not include a trailing digit, then the number ‘1’ is added to the jobname before updating the jobname parameter.
Description |
Option: autoincrement jobname |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.16. jobname#
Jobname during invocation of
Project.run(). The jobname combined with a defined director structure (<dir>/<design>/<jobname>/<step>/<index>) enables multiple levels of transparent job, step, and index introspection.
Description |
Option: job name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
job0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.17. nice#
Sets the type of execution priority of each individual flowgraph steps. If the parameter is undefined, nice will not be used. For more information see Unix ‘nice’.
Description |
Option: tool scheduling priority |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.18. nodashboard#
Disables the dashboard during execution
Description |
Option: Disables the dashboard |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.3.9.19. nodisplay#
This flag prevents SiliconCompiler from opening GUI windows.
Description |
Option: headless execution |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.20. novercheck#
Disables strict version checking on all invoked tools if True. The list of supported version numbers is defined in the
[tool,<tool>,task,<task>,version].
Description |
Option: disable version checking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.21. optmode#
The compiler has modes to prioritize run time and ppa. Modes include.
(O0) = Exploration mode for debugging setup (O1) = Higher effort and better PPA than O0 (O2) = Higher effort and better PPA than O1 (O3) = Signoff quality. Better PPA and higher run times than O2 (O4-O98) = Reserved (compiler/target dependent) (O99) = Experimental highest possible effort, may be unstable
Description |
Option: optimization mode |
Type |
int |
Scope |
global |
Default Value |
0 |
CLI Switch |
|
Example (CLI) |
-optmode 3 |
Example (API) |
|
1.3.3.9.22. prune#
List of starting nodes for branches to be pruned. The default is to not prune any nodes/branches.
Description |
Option: flowgraph pruning |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.23. quiet#
The -quiet option forces all steps to print to a log file. This can be useful with Modern EDA tools which print significant content to the screen.
Description |
Option: quiet execution |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.24. remote#
Sends job for remote processing if set to true. The remote option requires a credentials file to be placed in the home directory. Fore more information, see the credentials parameter.
Description |
Option: enable remote processing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25. scheduler#
Class SchedulerSchema
1.3.3.9.25.1. cores#
Specifies the number CPU cores required to run the job. For the slurm scheduler, this translates to the ‘-c’ switch. For more information, see the job scheduler documentation
Description |
Option: Scheduler core constraint |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.2. defer#
Defer initiation of job until the specified time. The parameter is pass through string for remote job scheduler such as slurm. For more information about the exact format specification, see the job scheduler documentation. Examples of valid slurm specific values include: now+1hour, 16:00, 010-01-20T12:34:00. For more information, see the job scheduler documentation.
Description |
Option: scheduler start time |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.3. maxnodes#
Maximum number of concurrent nodes to run in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum concurrent nodes |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.4. maxthreads#
Maximum number of threads for each task in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum number of threads to assign a task |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.3.9.25.5. memory#
Specifies the amount of memory required to run the job, specified in MB. For the slurm scheduler, this translates to the ‘–mem’ switch. For more information, see the job scheduler documentation
Description |
Option: scheduler memory constraint |
Type |
int |
Scope |
global |
Unit |
MB |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.6. msgcontact#
List of email addresses to message on a
[option,scheduler,msgevent]. Support for email messages relies on job scheduler daemon support. For more information, see the job scheduler documentation.
Description |
Option: message contact |
Type |
{str} |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.7. msgevent#
Directs job scheduler to send a message to the user in
[option,scheduler,msgcontact]when certain events occur during a task.
fail: send an email on failures
timeout: send an email on timeouts
begin: send an email at the start of a node task
end: send an email at the end of a node task
summary: send a summary email at the end of the run
all: send an email on any event
Description |
Option: message event trigger |
Type |
[enum] |
Allowed values |
|
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.8. name#
Sets the type of job scheduler to be used for each individual flowgraph steps. If the parameter is undefined, the steps are executed on the same machine that the SC was launched on. If ‘slurm’ is used, the host running the ‘sc’ command must be running a ‘slurmctld’ daemon managing a Slurm cluster. Additionally, the build directory (
[option,builddir]) must be located in shared storage which can be accessed by all hosts in the cluster.
Description |
Option: scheduler platform |
Type |
enum |
Allowed values |
|
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.9. options#
Advanced/export options passed through unchanged to the job scheduler as-is. (The user specified options must be compatible with the rest of the scheduler parameters entered.(memory etc). For more information, see the job scheduler documentation.
Description |
Option: scheduler arguments |
Type |
[str] |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.25.10. queue#
Send the job to the specified queue. With slurm, this translates to ‘partition’. The queue name must match the name of an existing job scheduler queue. For more information, see the job scheduler documentation
Description |
Option: scheduler queue |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.26. timeout#
Timeout value in seconds. The timeout value is compared against the wall time tracked by the SC runtime to determine if an operation should continue.
Description |
Option: timeout value |
Type |
float |
Scope |
global |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.27. to#
Inclusive list of steps to end execution with. The default is to go to all exit steps in the flow graph.
Description |
Option: ending step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.9.28. track#
Turns on tracking of all ‘record’ parameters during each task, otherwise only tool and runtime information will be recorded. Tracking will result in potentially sensitive data being recorded in the manifest so only turn on this feature if you have control of the final manifest.
Description |
Option: enable provenance tracking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10. record#
Class RecordSchema
1.3.3.10.1. arch#
Record tracking the hardware architecture per step and index basis. (x86_64, rv64imafdc)
Description |
Record: hardware architecture |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.2. distro#
Record tracking the distro name per step and index basis. (ubuntu, redhat, centos)
Description |
Record: distro name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.3. endtime#
Record tracking the end time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: end time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.4. inputnode#
List of selected inputs for the current step/index specified as (in_step, in_index) tuple.
Description |
Record: node inputs |
Type |
[(str,str)] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.5. ipaddr#
Record tracking the IP address per step and index basis.
Description |
Record: IP address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.6. kernelversion#
Record tracking the O/S kernel version per step and index basis. Used for platforms that support a distinction between os kernels and os distributions.
Description |
Record: O/S kernel version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.7. macaddr#
Record tracking the MAC address per step and index basis.
Description |
Record: MAC address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.8. machine#
Record tracking the machine name per step and index basis. (myhost, localhost, …
Description |
Record: machine name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.9. osversion#
Record tracking the O/S version per step and index basis. Since there is not standard version system for operating systems, extracting information from is platform dependent. For Linux based operating systems, the ‘osversion’ is the version of the distro.
Description |
Record: O/S version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.10. platform#
Record tracking the platform name per step and index basis. (linux, windows, freebsd)
Description |
Record: platform name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.11. publickey#
Record tracking the public key per step and index basis.
Description |
Record: public key |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.12. pythonpackage#
Record tracking for the python packages installed.
Description |
Record: python packages |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.13. pythonversion#
Record tracking the Python version per step and index basis. Version of python used to run this task.
Description |
Record: Python version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.14. region#
Record tracking the cloud region per step and index basis. Recommended naming methodology:
local: node is the local machine
onprem: node in on-premises IT infrastructure
public: generic public cloud
govcloud: generic US government cloud
<region>: cloud and entity specific region string name
Description |
Record: cloud region |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.15. remoteid#
Record tracking the job ID for a remote run.
Description |
Record: remote job ID |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.16. scversion#
Record tracking the software version per step and index basis. Version number for the SiliconCompiler software.
Description |
Record: software version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.17. starttime#
Record tracking the start time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: start time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.18. status#
Record tracking for the status of a node.
Description |
Record: node execution status |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.19. toolargs#
Record tracking the tool CLI arguments per step and index basis. Arguments passed to tool via CLI.
Description |
Record: tool CLI arguments |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.20. toolexitcode#
Record tracking the tool exit code per step and index basis.
Description |
Record: tool exit code |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.21. toolpath#
Record tracking the tool path per step and index basis. Full path to tool executable used to run this task.
Description |
Record: tool path |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.22. toolversion#
Record tracking the tool version per step and index basis. The tool version captured corresponds to the ‘tool’ parameter within the ‘tool’ dictionary.
Description |
Record: tool version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.10.23. userid#
Record tracking the userid per step and index basis.
Description |
Record: userid |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.11. schemaversion#
Description |
Schema version number |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
0.54.0 |
Example (API) |
|
1.3.3.12. tool#
1.3.3.12.1. task#
Class Task
1.3.3.12.1.1. dataroot#
1.3.3.12.1.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.3.12.1.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.3.12.1.2. env#
Environment variables to set for individual tasks. Keys and values should be set in accordance with the task’s documentation. Most tasks do not require extra environment variables to function.
Description |
Task: environment variables |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.3. exe#
Tool executable name.
Description |
Tool: executable name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.4. format#
File format for tool manifest handoff.
Description |
Tool: file format |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.5. input#
List of data files to be copied from previous flowgraph steps ‘output’
directory. The list of steps to copy files from is defined by the
list defined by the dictionary key [flowgraph,<flow>,<step>,<index>,input].
All files must be available for flow to continue. If a file
is missing, the program exists on an error.
Description |
Task: input files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.6. licenseserver#
Defines a set of tool-specific environment variables used by the executable
that depend on license key servers to control access. For multiple servers,
separate servers with a colon. The named license variables are read at
runtime (Task.run()) and the environment variables are set.
Description |
Tool: license servers |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.7. option#
List of command line options for the task executable, specified on a per task and per step basis. Options must not include spaces. For multiple argument options, each option is a separate list element.
Description |
Task: executable options |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.8. output#
List of data files written to the ‘output’ directory of the tool/task/step/index used in the keypath. All files must be available for flow to continue. If a file is missing, the program exists on an error.
Description |
Task: output files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.9. path#
File system path to tool executable. The path is prepended to the
system PATH environment variable for batch and interactive runs. The
path parameter can be left blank if the [tool,<tool>,task,<task>,exe] is
already in the environment search path.
Description |
Tool: executable path |
Type |
dir |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.10. postscript#
Path to a user supplied script to execute after the main execution stage of the step but before the design is saved. Exact entry point depends on the step and main script being executed. An example of a postscript entry point would be immediately after global placement.
Description |
Task: post-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.11. prescript#
Path to a user supplied script to execute after reading in the design but before the main execution stage of the step. Exact entry point depends on the step and main script being executed. An example of a prescript entry point would be immediately before global placement.
Description |
Task: pre-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.12. refdir#
Path to directories containing reference flow scripts, specified on a per step and index basis.
Description |
Task: script directory |
Type |
[dir] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.13. regex#
A list of piped together grep commands. Each entry represents a set
of command line arguments for grep including the regex pattern to
match. Starting with the first list entry, each grep output is piped
into the following grep command in the list. Supported grep options
include -v and -e. Patterns starting with “-” should be
directly preceded by the -e option. The following example
illustrates the concept.
UNIX grep:
$ grep WARNING place.log | grep -v "bbox" > place.warnings
SiliconCompiler:
task.set('task', 'openroad', 'regex', 'place', '0', 'warnings',
["WARNING", "-v bbox"])
The “errors” and “warnings” suffixes are special cases. When set,
the number of matches found for these regexes will be added to the
errors and warnings metrics for the task, respectively. This will
also cause the logfile to be added to the [tool,<tool>,task,<task>,report,...] parameter for those metrics, if not already present.
Description |
Task: regex filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.14. report#
List of report files associated with a specific ‘metric’. The file path specified is relative to the run directory of the current task.
Description |
Task: metric report files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.15. require#
List of keypaths to required task parameters. The list is used
by Project.check_manifest() to verify that all parameters have been set up
before step execution begins.
Description |
Task: parameter requirements |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.16. sbom#
Paths to software bill of material (SBOM) document file of the tool specified on a per version basis. The SBOM includes critical package information about the tool including the list of included components, licenses, and copyright. The SBOM file is generally provided as in a a standardized open data format such as SPDX.
Description |
Tool: software BOM |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.17. script#
Path to the entry script called by the executable specified on a per task and per step basis.
Description |
Task: entry script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.18. stderr#
1.3.3.12.1.18.1. destination#
Defines where to direct the output generated over stderr. Supported options are: none: the stream generated to STDERR is ignored log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>
Description |
Task: destination for stderr |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.18.2. suffix#
Specifies the file extension for the content redirected from stderr.
Description |
Task: file suffix for redirected stderr |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.19. stdout#
1.3.3.12.1.19.1. destination#
Defines where to direct the output generated over stdout. Supported options are: none: the stream generated to STDOUT is ignored. log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>.
Description |
Task: destination for stdout |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.19.2. suffix#
Specifies the file extension for the content redirected from stdout.
Description |
Task: file suffix for redirected stdout |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.20. threads#
Thread parallelism to use for execution specified on a per task and per step basis. If not specified, SC queries the operating system and sets the threads based on the maximum thread count supported by the hardware.
Description |
Task: thread parallelism |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.21. vendor#
Name of the tool vendor. Parameter can be used to set vendor specific technology variables in the PDK and libraries. For open source projects, the project name should be used in place of vendor.
Description |
Tool: vendor |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.22. version#
List of acceptable versions of the tool executable to be used. Each
entry in this list must be a version specifier as described by Python
PEP-440.
During task execution, the tool is called with the ‘vswitch’ to
check the runtime executable version. If the version of the system
executable is not allowed by any of the specifiers in ‘version’,
then the job is halted pre-execution. For backwards compatibility,
entries that do not conform to the standard will be interpreted as a
version with an ‘==’ specifier. This check can be disabled by
setting [option,novercheck] to True.
Description |
Tool: version |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.23. vswitch#
Command line switch to use with executable used to print out
the version number. Common switches include -v, -version,
--version. Some tools may require extra flags to run in batch mode.
Description |
Tool: executable version switch |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.3.12.1.24. warningoff#
A list of tool warnings for which printing should be suppressed. Generally this is done on a per design basis after review has determined that warning can be safely ignored The code for turning off warnings can be found in the specific task reference manual.
Description |
Task: warning filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4. Lint#
A specialized Project class tailored for linting tasks.
This class can be extended with linting-specific schema parameters, methods, and flows.
File: project.py
Class Lint
1.3.4.1. arg#
1.3.4.1.1. index#
Description |
ARG: index argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.1.2. step#
Description |
ARG: step argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2. checklist#
Class Checklist
Class Criteria
1.3.4.2.1. criteria#
Simple list of signoff criteria for checklist item which must all be met for signoff. Each signoff criteria consists of a metric, a relational operator, and a value in the form ‘metric op value’.
Description |
Checklist: item criteria |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.2. dataformat#
Free text description of the type of data files acceptable as checklist signoff validation.
Description |
Checklist: item data format |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.3. description#
A short one line description of the checklist item.
Description |
Checklist: item description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.4. ok#
Boolean check mark for the checklist item. A value of True indicates a human has inspected the all item dictionary parameters and verified they check out.
Description |
Checklist: item ok |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.5. rationale#
Rationale for the checklist item. Rationale should be a unique alphanumeric code used by the standard or a short one line or single word description.
Description |
Checklist: item rationale |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.6. report#
Filepath to report(s) of specified type documenting the successful validation of the checklist item.
Description |
Checklist: item report |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.7. requirement#
A complete requirement description of the checklist item entered as a multi-line string.
Description |
Checklist: item requirement |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.8. task#
Flowgraph job and task used to verify the checklist item. The parameter should be left empty for manual and for tool flows that bypass the SC infrastructure.
Description |
Checklist: item task |
Type |
[(str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.2.9. waiver#
Filepath to report(s) documenting waivers for the checklist item specified on a per metric basis.
Description |
Checklist: item metric waivers |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.3. flowgraph#
Class Flowgraph
Class FlowgraphNodeSchema
1.3.4.3.1. args#
User-specified arguments passed to the task’s setup() method. This allows for customizing a specific node’s behavior without affecting other nodes running the same task.
Description |
Flowgraph: Node-specific arguments |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.3.2. goal#
Goals specified on a per-node and per-metric basis used to determine whether a task run is considered successful. A task run may be considered failing if the absolute value of any of its reported metrics is larger than the goal for that metric (if set). This is often used for metrics like ‘errors’ or ‘setupwns’ where the goal is 0.
Description |
Flowgraph: Metric goals |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.3.3. input#
A list of inputs for this flowgraph node, where each input is specified as a (step, index) tuple. This defines the dependencies of this node.
Description |
Flowgraph: Node inputs |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.3.4. task#
Name of the task (e.g., ‘place’, ‘syn’, ‘join’) associated with the node’s tool.
Description |
Flowgraph: Task selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.3.5. taskmodule#
Full Python module path and class name of the task, formatted as ‘<full.module.path>/<ClassName>’. This is used to import and instantiate the correct Task class for setup and execution.
Description |
Flowgraph: Task module |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.3.6. tool#
Name of the tool (e.g., ‘openroad’, ‘yosys’, ‘builtin’) that this node will execute.
Description |
Flowgraph: Tool selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.3.7. weight#
Weights specified on a per-node and per-metric basis, used by optimization tasks (like ‘minimum’) to calculate a “goodness” score for a run. The score is typically a weighted sum of metric results.
Description |
Flowgraph: Metric weights |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
0.0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.4. history#
1.3.4.5. library#
Class _ProjectLibrary
1.3.4.6. metric#
Class MetricSchema
1.3.4.6.1. errors#
Metric tracking the total number of errors on a per step and index basis.
Description |
Metric: total errors |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.6.2. exetime#
Metric tracking time spent by the EDA executable
[tool,<tool>,task,<task>,exe] on a
per step and index basis. It does not include the SiliconCompiler
runtime overhead or time waiting for I/O operations and
inter-processor communication to complete.
Description |
Metric: exetime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.6.3. memory#
Metric tracking total peak program memory footprint on a per step and index basis.
Description |
Metric: memory |
Type |
float |
Scope |
job |
Unit |
B |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.6.4. tasktime#
Metric tracking the total amount of time spent on a task from beginning to end, including data transfers and pre/post processing.
Description |
Metric: tasktime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.6.5. totaltime#
Metric tracking the total amount of time spent from the beginning of the run up to and including the current step and index.
Description |
Metric: totaltime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.6.6. warnings#
Metric tracking the total number of warnings on a per step and index basis.
Description |
Metric: total warnings |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7. option#
Class OptionSchema
1.3.4.7.1. alias#
List of filesets to alias during a run. When an alias is specific it will be used instead of the source fileset. It is useful when you want to substitute a fileset from one library with a fileset from another, without changing the original design’s code. For example, you might use it to swap in a different version of an IP block or a specific test environment.
Description |
Option: Fileset alias mapping |
Type |
[(str,str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.4.7.2. autoissue#
Enables automatic generation of testcases if the specific node fails
Description |
Option: Enables automatic generation of testcases |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.4.7.3. breakpoint#
Set a breakpoint on specific steps. If the step is a TCL based tool, then the breakpoints stops the flow inside the EDA tool. If the step is a command line tool, then the flow drops into a Python interpreter.
Description |
Option: breakpoint list |
Type |
bool |
Scope |
job |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.4. builddir#
The default build directory is in the local ‘./build’ where SC was executed. This can be used to set an alternate compilation directory path.
Description |
Option: build directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
build |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.5. cachedir#
Filepath to cache used for package data sources. If the cache parameter is empty, “.sc/cache” directory in the user’s home directory will be used.
Description |
Option: user cache directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.6. clean#
Run a job from the start and do not use any of the previous job. If
[option,jobincr]is True, the old job is preserved and a new job number is assigned.
Description |
Option: cleanup previous job |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.7. continue#
Attempt to continue even when errors are encountered in the SC implementation. The default behavior is to quit executing the flow if a task ends and the errors metric is greater than 0. Note that the flow will always cease executing if the tool returns a nonzero status code.
Description |
Option: continue-on-error |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.8. credentials#
Filepath to credentials used for remote processing. If the credentials parameter is empty, the remote processing client program tries to access the “.sc/credentials” file in the user’s home directory. The file supports the following fields:
address=<server address> port=<server port> (optional) username=<user id> (optional) password=<password / key used for authentication> (optional)
Description |
Option: user credentials file |
Type |
file |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.9. design#
Name of the top level library
Description |
Option: Design library name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.10. env#
Certain tools and reference flows require global environment variables to be set. These variables can be managed externally or specified through the env variable.
Description |
Option: environment variables |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.4.7.11. fileset#
List of filesets to use from the selected design library
Description |
Option: Selected design filesets |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.4.7.12. flow#
Sets the flow for the current run. The flow name must match up with a ‘flow’ in the flowgraph
Description |
Option: flow target |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.13. from#
Inclusive list of steps to start execution from. The default is to start at all entry steps in the flow graph.
Description |
Option: starting step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.14. hash#
Enables hashing of all inputs and outputs during compilation. The hash values are stored in the hashvalue field of the individual parameters.
Description |
Option: file hashing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.15. jobincr#
Forces an auto-update of the jobname parameter if a directory matching the jobname is found in the build directory. If the jobname does not include a trailing digit, then the number ‘1’ is added to the jobname before updating the jobname parameter.
Description |
Option: autoincrement jobname |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.16. jobname#
Jobname during invocation of
Project.run(). The jobname combined with a defined director structure (<dir>/<design>/<jobname>/<step>/<index>) enables multiple levels of transparent job, step, and index introspection.
Description |
Option: job name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
job0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.17. nice#
Sets the type of execution priority of each individual flowgraph steps. If the parameter is undefined, nice will not be used. For more information see Unix ‘nice’.
Description |
Option: tool scheduling priority |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.18. nodashboard#
Disables the dashboard during execution
Description |
Option: Disables the dashboard |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.4.7.19. nodisplay#
This flag prevents SiliconCompiler from opening GUI windows.
Description |
Option: headless execution |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.20. novercheck#
Disables strict version checking on all invoked tools if True. The list of supported version numbers is defined in the
[tool,<tool>,task,<task>,version].
Description |
Option: disable version checking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.21. optmode#
The compiler has modes to prioritize run time and ppa. Modes include.
(O0) = Exploration mode for debugging setup (O1) = Higher effort and better PPA than O0 (O2) = Higher effort and better PPA than O1 (O3) = Signoff quality. Better PPA and higher run times than O2 (O4-O98) = Reserved (compiler/target dependent) (O99) = Experimental highest possible effort, may be unstable
Description |
Option: optimization mode |
Type |
int |
Scope |
global |
Default Value |
0 |
CLI Switch |
|
Example (CLI) |
-optmode 3 |
Example (API) |
|
1.3.4.7.22. prune#
List of starting nodes for branches to be pruned. The default is to not prune any nodes/branches.
Description |
Option: flowgraph pruning |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.23. quiet#
The -quiet option forces all steps to print to a log file. This can be useful with Modern EDA tools which print significant content to the screen.
Description |
Option: quiet execution |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.24. remote#
Sends job for remote processing if set to true. The remote option requires a credentials file to be placed in the home directory. Fore more information, see the credentials parameter.
Description |
Option: enable remote processing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25. scheduler#
Class SchedulerSchema
1.3.4.7.25.1. cores#
Specifies the number CPU cores required to run the job. For the slurm scheduler, this translates to the ‘-c’ switch. For more information, see the job scheduler documentation
Description |
Option: Scheduler core constraint |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.2. defer#
Defer initiation of job until the specified time. The parameter is pass through string for remote job scheduler such as slurm. For more information about the exact format specification, see the job scheduler documentation. Examples of valid slurm specific values include: now+1hour, 16:00, 010-01-20T12:34:00. For more information, see the job scheduler documentation.
Description |
Option: scheduler start time |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.3. maxnodes#
Maximum number of concurrent nodes to run in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum concurrent nodes |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.4. maxthreads#
Maximum number of threads for each task in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum number of threads to assign a task |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.4.7.25.5. memory#
Specifies the amount of memory required to run the job, specified in MB. For the slurm scheduler, this translates to the ‘–mem’ switch. For more information, see the job scheduler documentation
Description |
Option: scheduler memory constraint |
Type |
int |
Scope |
global |
Unit |
MB |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.6. msgcontact#
List of email addresses to message on a
[option,scheduler,msgevent]. Support for email messages relies on job scheduler daemon support. For more information, see the job scheduler documentation.
Description |
Option: message contact |
Type |
{str} |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.7. msgevent#
Directs job scheduler to send a message to the user in
[option,scheduler,msgcontact]when certain events occur during a task.
fail: send an email on failures
timeout: send an email on timeouts
begin: send an email at the start of a node task
end: send an email at the end of a node task
summary: send a summary email at the end of the run
all: send an email on any event
Description |
Option: message event trigger |
Type |
[enum] |
Allowed values |
|
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.8. name#
Sets the type of job scheduler to be used for each individual flowgraph steps. If the parameter is undefined, the steps are executed on the same machine that the SC was launched on. If ‘slurm’ is used, the host running the ‘sc’ command must be running a ‘slurmctld’ daemon managing a Slurm cluster. Additionally, the build directory (
[option,builddir]) must be located in shared storage which can be accessed by all hosts in the cluster.
Description |
Option: scheduler platform |
Type |
enum |
Allowed values |
|
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.9. options#
Advanced/export options passed through unchanged to the job scheduler as-is. (The user specified options must be compatible with the rest of the scheduler parameters entered.(memory etc). For more information, see the job scheduler documentation.
Description |
Option: scheduler arguments |
Type |
[str] |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.25.10. queue#
Send the job to the specified queue. With slurm, this translates to ‘partition’. The queue name must match the name of an existing job scheduler queue. For more information, see the job scheduler documentation
Description |
Option: scheduler queue |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.26. timeout#
Timeout value in seconds. The timeout value is compared against the wall time tracked by the SC runtime to determine if an operation should continue.
Description |
Option: timeout value |
Type |
float |
Scope |
global |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.27. to#
Inclusive list of steps to end execution with. The default is to go to all exit steps in the flow graph.
Description |
Option: ending step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.7.28. track#
Turns on tracking of all ‘record’ parameters during each task, otherwise only tool and runtime information will be recorded. Tracking will result in potentially sensitive data being recorded in the manifest so only turn on this feature if you have control of the final manifest.
Description |
Option: enable provenance tracking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8. record#
Class RecordSchema
1.3.4.8.1. arch#
Record tracking the hardware architecture per step and index basis. (x86_64, rv64imafdc)
Description |
Record: hardware architecture |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.2. distro#
Record tracking the distro name per step and index basis. (ubuntu, redhat, centos)
Description |
Record: distro name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.3. endtime#
Record tracking the end time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: end time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.4. inputnode#
List of selected inputs for the current step/index specified as (in_step, in_index) tuple.
Description |
Record: node inputs |
Type |
[(str,str)] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.5. ipaddr#
Record tracking the IP address per step and index basis.
Description |
Record: IP address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.6. kernelversion#
Record tracking the O/S kernel version per step and index basis. Used for platforms that support a distinction between os kernels and os distributions.
Description |
Record: O/S kernel version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.7. macaddr#
Record tracking the MAC address per step and index basis.
Description |
Record: MAC address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.8. machine#
Record tracking the machine name per step and index basis. (myhost, localhost, …
Description |
Record: machine name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.9. osversion#
Record tracking the O/S version per step and index basis. Since there is not standard version system for operating systems, extracting information from is platform dependent. For Linux based operating systems, the ‘osversion’ is the version of the distro.
Description |
Record: O/S version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.10. platform#
Record tracking the platform name per step and index basis. (linux, windows, freebsd)
Description |
Record: platform name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.11. publickey#
Record tracking the public key per step and index basis.
Description |
Record: public key |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.12. pythonpackage#
Record tracking for the python packages installed.
Description |
Record: python packages |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.13. pythonversion#
Record tracking the Python version per step and index basis. Version of python used to run this task.
Description |
Record: Python version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.14. region#
Record tracking the cloud region per step and index basis. Recommended naming methodology:
local: node is the local machine
onprem: node in on-premises IT infrastructure
public: generic public cloud
govcloud: generic US government cloud
<region>: cloud and entity specific region string name
Description |
Record: cloud region |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.15. remoteid#
Record tracking the job ID for a remote run.
Description |
Record: remote job ID |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.16. scversion#
Record tracking the software version per step and index basis. Version number for the SiliconCompiler software.
Description |
Record: software version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.17. starttime#
Record tracking the start time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: start time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.18. status#
Record tracking for the status of a node.
Description |
Record: node execution status |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.19. toolargs#
Record tracking the tool CLI arguments per step and index basis. Arguments passed to tool via CLI.
Description |
Record: tool CLI arguments |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.20. toolexitcode#
Record tracking the tool exit code per step and index basis.
Description |
Record: tool exit code |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.21. toolpath#
Record tracking the tool path per step and index basis. Full path to tool executable used to run this task.
Description |
Record: tool path |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.22. toolversion#
Record tracking the tool version per step and index basis. The tool version captured corresponds to the ‘tool’ parameter within the ‘tool’ dictionary.
Description |
Record: tool version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.8.23. userid#
Record tracking the userid per step and index basis.
Description |
Record: userid |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.9. schemaversion#
Description |
Schema version number |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
0.54.0 |
Example (API) |
|
1.3.4.10. tool#
1.3.4.10.1. task#
Class Task
1.3.4.10.1.1. dataroot#
1.3.4.10.1.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.4.10.1.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.4.10.1.2. env#
Environment variables to set for individual tasks. Keys and values should be set in accordance with the task’s documentation. Most tasks do not require extra environment variables to function.
Description |
Task: environment variables |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.3. exe#
Tool executable name.
Description |
Tool: executable name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.4. format#
File format for tool manifest handoff.
Description |
Tool: file format |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.5. input#
List of data files to be copied from previous flowgraph steps ‘output’
directory. The list of steps to copy files from is defined by the
list defined by the dictionary key [flowgraph,<flow>,<step>,<index>,input].
All files must be available for flow to continue. If a file
is missing, the program exists on an error.
Description |
Task: input files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.6. licenseserver#
Defines a set of tool-specific environment variables used by the executable
that depend on license key servers to control access. For multiple servers,
separate servers with a colon. The named license variables are read at
runtime (Task.run()) and the environment variables are set.
Description |
Tool: license servers |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.7. option#
List of command line options for the task executable, specified on a per task and per step basis. Options must not include spaces. For multiple argument options, each option is a separate list element.
Description |
Task: executable options |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.8. output#
List of data files written to the ‘output’ directory of the tool/task/step/index used in the keypath. All files must be available for flow to continue. If a file is missing, the program exists on an error.
Description |
Task: output files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.9. path#
File system path to tool executable. The path is prepended to the
system PATH environment variable for batch and interactive runs. The
path parameter can be left blank if the [tool,<tool>,task,<task>,exe] is
already in the environment search path.
Description |
Tool: executable path |
Type |
dir |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.10. postscript#
Path to a user supplied script to execute after the main execution stage of the step but before the design is saved. Exact entry point depends on the step and main script being executed. An example of a postscript entry point would be immediately after global placement.
Description |
Task: post-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.11. prescript#
Path to a user supplied script to execute after reading in the design but before the main execution stage of the step. Exact entry point depends on the step and main script being executed. An example of a prescript entry point would be immediately before global placement.
Description |
Task: pre-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.12. refdir#
Path to directories containing reference flow scripts, specified on a per step and index basis.
Description |
Task: script directory |
Type |
[dir] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.13. regex#
A list of piped together grep commands. Each entry represents a set
of command line arguments for grep including the regex pattern to
match. Starting with the first list entry, each grep output is piped
into the following grep command in the list. Supported grep options
include -v and -e. Patterns starting with “-” should be
directly preceded by the -e option. The following example
illustrates the concept.
UNIX grep:
$ grep WARNING place.log | grep -v "bbox" > place.warnings
SiliconCompiler:
task.set('task', 'openroad', 'regex', 'place', '0', 'warnings',
["WARNING", "-v bbox"])
The “errors” and “warnings” suffixes are special cases. When set,
the number of matches found for these regexes will be added to the
errors and warnings metrics for the task, respectively. This will
also cause the logfile to be added to the [tool,<tool>,task,<task>,report,...] parameter for those metrics, if not already present.
Description |
Task: regex filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.14. report#
List of report files associated with a specific ‘metric’. The file path specified is relative to the run directory of the current task.
Description |
Task: metric report files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.15. require#
List of keypaths to required task parameters. The list is used
by Project.check_manifest() to verify that all parameters have been set up
before step execution begins.
Description |
Task: parameter requirements |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.16. sbom#
Paths to software bill of material (SBOM) document file of the tool specified on a per version basis. The SBOM includes critical package information about the tool including the list of included components, licenses, and copyright. The SBOM file is generally provided as in a a standardized open data format such as SPDX.
Description |
Tool: software BOM |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.17. script#
Path to the entry script called by the executable specified on a per task and per step basis.
Description |
Task: entry script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.18. stderr#
1.3.4.10.1.18.1. destination#
Defines where to direct the output generated over stderr. Supported options are: none: the stream generated to STDERR is ignored log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>
Description |
Task: destination for stderr |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.18.2. suffix#
Specifies the file extension for the content redirected from stderr.
Description |
Task: file suffix for redirected stderr |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.19. stdout#
1.3.4.10.1.19.1. destination#
Defines where to direct the output generated over stdout. Supported options are: none: the stream generated to STDOUT is ignored. log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>.
Description |
Task: destination for stdout |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.19.2. suffix#
Specifies the file extension for the content redirected from stdout.
Description |
Task: file suffix for redirected stdout |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.20. threads#
Thread parallelism to use for execution specified on a per task and per step basis. If not specified, SC queries the operating system and sets the threads based on the maximum thread count supported by the hardware.
Description |
Task: thread parallelism |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.21. vendor#
Name of the tool vendor. Parameter can be used to set vendor specific technology variables in the PDK and libraries. For open source projects, the project name should be used in place of vendor.
Description |
Tool: vendor |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.22. version#
List of acceptable versions of the tool executable to be used. Each
entry in this list must be a version specifier as described by Python
PEP-440.
During task execution, the tool is called with the ‘vswitch’ to
check the runtime executable version. If the version of the system
executable is not allowed by any of the specifiers in ‘version’,
then the job is halted pre-execution. For backwards compatibility,
entries that do not conform to the standard will be interpreted as a
version with an ‘==’ specifier. This check can be disabled by
setting [option,novercheck] to True.
Description |
Tool: version |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.23. vswitch#
Command line switch to use with executable used to print out
the version number. Common switches include -v, -version,
--version. Some tools may require extra flags to run in batch mode.
Description |
Tool: executable version switch |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.4.10.1.24. warningoff#
A list of tool warnings for which printing should be suppressed. Generally this is done on a per design basis after review has determined that warning can be safely ignored The code for turning off warnings can be found in the specific task reference manual.
Description |
Task: warning filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5. Sim#
A specialized Project class tailored for simulation tasks.
This class can be extended with simulation-specific schema parameters, methods, and flows.
File: project.py
Class Sim
1.3.5.1. arg#
1.3.5.1.1. index#
Description |
ARG: index argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.1.2. step#
Description |
ARG: step argument |
Type |
str |
Per step/index |
never |
Scope |
scratch |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2. checklist#
Class Checklist
Class Criteria
1.3.5.2.1. criteria#
Simple list of signoff criteria for checklist item which must all be met for signoff. Each signoff criteria consists of a metric, a relational operator, and a value in the form ‘metric op value’.
Description |
Checklist: item criteria |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.2. dataformat#
Free text description of the type of data files acceptable as checklist signoff validation.
Description |
Checklist: item data format |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.3. description#
A short one line description of the checklist item.
Description |
Checklist: item description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.4. ok#
Boolean check mark for the checklist item. A value of True indicates a human has inspected the all item dictionary parameters and verified they check out.
Description |
Checklist: item ok |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.5. rationale#
Rationale for the checklist item. Rationale should be a unique alphanumeric code used by the standard or a short one line or single word description.
Description |
Checklist: item rationale |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.6. report#
Filepath to report(s) of specified type documenting the successful validation of the checklist item.
Description |
Checklist: item report |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.7. requirement#
A complete requirement description of the checklist item entered as a multi-line string.
Description |
Checklist: item requirement |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.8. task#
Flowgraph job and task used to verify the checklist item. The parameter should be left empty for manual and for tool flows that bypass the SC infrastructure.
Description |
Checklist: item task |
Type |
[(str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.2.9. waiver#
Filepath to report(s) documenting waivers for the checklist item specified on a per metric basis.
Description |
Checklist: item metric waivers |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.3. flowgraph#
Class Flowgraph
Class FlowgraphNodeSchema
1.3.5.3.1. args#
User-specified arguments passed to the task’s setup() method. This allows for customizing a specific node’s behavior without affecting other nodes running the same task.
Description |
Flowgraph: Node-specific arguments |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.3.2. goal#
Goals specified on a per-node and per-metric basis used to determine whether a task run is considered successful. A task run may be considered failing if the absolute value of any of its reported metrics is larger than the goal for that metric (if set). This is often used for metrics like ‘errors’ or ‘setupwns’ where the goal is 0.
Description |
Flowgraph: Metric goals |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.3.3. input#
A list of inputs for this flowgraph node, where each input is specified as a (step, index) tuple. This defines the dependencies of this node.
Description |
Flowgraph: Node inputs |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.3.4. task#
Name of the task (e.g., ‘place’, ‘syn’, ‘join’) associated with the node’s tool.
Description |
Flowgraph: Task selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.3.5. taskmodule#
Full Python module path and class name of the task, formatted as ‘<full.module.path>/<ClassName>’. This is used to import and instantiate the correct Task class for setup and execution.
Description |
Flowgraph: Task module |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.3.6. tool#
Name of the tool (e.g., ‘openroad’, ‘yosys’, ‘builtin’) that this node will execute.
Description |
Flowgraph: Tool selection |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.3.7. weight#
Weights specified on a per-node and per-metric basis, used by optimization tasks (like ‘minimum’) to calculate a “goodness” score for a run. The score is typically a weighted sum of metric results.
Description |
Flowgraph: Metric weights |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
0.0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.4. history#
1.3.5.5. library#
Class _ProjectLibrary
1.3.5.6. metric#
Class MetricSchema
1.3.5.6.1. errors#
Metric tracking the total number of errors on a per step and index basis.
Description |
Metric: total errors |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.6.2. exetime#
Metric tracking time spent by the EDA executable
[tool,<tool>,task,<task>,exe] on a
per step and index basis. It does not include the SiliconCompiler
runtime overhead or time waiting for I/O operations and
inter-processor communication to complete.
Description |
Metric: exetime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.6.3. memory#
Metric tracking total peak program memory footprint on a per step and index basis.
Description |
Metric: memory |
Type |
float |
Scope |
job |
Unit |
B |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.6.4. tasktime#
Metric tracking the total amount of time spent on a task from beginning to end, including data transfers and pre/post processing.
Description |
Metric: tasktime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.6.5. totaltime#
Metric tracking the total amount of time spent from the beginning of the run up to and including the current step and index.
Description |
Metric: totaltime |
Type |
float |
Scope |
job |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.6.6. warnings#
Metric tracking the total number of warnings on a per step and index basis.
Description |
Metric: total warnings |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7. option#
Class OptionSchema
1.3.5.7.1. alias#
List of filesets to alias during a run. When an alias is specific it will be used instead of the source fileset. It is useful when you want to substitute a fileset from one library with a fileset from another, without changing the original design’s code. For example, you might use it to swap in a different version of an IP block or a specific test environment.
Description |
Option: Fileset alias mapping |
Type |
[(str,str,str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.5.7.2. autoissue#
Enables automatic generation of testcases if the specific node fails
Description |
Option: Enables automatic generation of testcases |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.5.7.3. breakpoint#
Set a breakpoint on specific steps. If the step is a TCL based tool, then the breakpoints stops the flow inside the EDA tool. If the step is a command line tool, then the flow drops into a Python interpreter.
Description |
Option: breakpoint list |
Type |
bool |
Scope |
job |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.4. builddir#
The default build directory is in the local ‘./build’ where SC was executed. This can be used to set an alternate compilation directory path.
Description |
Option: build directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
build |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.5. cachedir#
Filepath to cache used for package data sources. If the cache parameter is empty, “.sc/cache” directory in the user’s home directory will be used.
Description |
Option: user cache directory |
Type |
dir |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.6. clean#
Run a job from the start and do not use any of the previous job. If
[option,jobincr]is True, the old job is preserved and a new job number is assigned.
Description |
Option: cleanup previous job |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.7. continue#
Attempt to continue even when errors are encountered in the SC implementation. The default behavior is to quit executing the flow if a task ends and the errors metric is greater than 0. Note that the flow will always cease executing if the tool returns a nonzero status code.
Description |
Option: continue-on-error |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.8. credentials#
Filepath to credentials used for remote processing. If the credentials parameter is empty, the remote processing client program tries to access the “.sc/credentials” file in the user’s home directory. The file supports the following fields:
address=<server address> port=<server port> (optional) username=<user id> (optional) password=<password / key used for authentication> (optional)
Description |
Option: user credentials file |
Type |
file |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.9. design#
Name of the top level library
Description |
Option: Design library name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.10. env#
Certain tools and reference flows require global environment variables to be set. These variables can be managed externally or specified through the env variable.
Description |
Option: environment variables |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.5.7.11. fileset#
List of filesets to use from the selected design library
Description |
Option: Selected design filesets |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.3.5.7.12. flow#
Sets the flow for the current run. The flow name must match up with a ‘flow’ in the flowgraph
Description |
Option: flow target |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.13. from#
Inclusive list of steps to start execution from. The default is to start at all entry steps in the flow graph.
Description |
Option: starting step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.14. hash#
Enables hashing of all inputs and outputs during compilation. The hash values are stored in the hashvalue field of the individual parameters.
Description |
Option: file hashing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.15. jobincr#
Forces an auto-update of the jobname parameter if a directory matching the jobname is found in the build directory. If the jobname does not include a trailing digit, then the number ‘1’ is added to the jobname before updating the jobname parameter.
Description |
Option: autoincrement jobname |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.16. jobname#
Jobname during invocation of
Project.run(). The jobname combined with a defined director structure (<dir>/<design>/<jobname>/<step>/<index>) enables multiple levels of transparent job, step, and index introspection.
Description |
Option: job name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
job0 |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.17. nice#
Sets the type of execution priority of each individual flowgraph steps. If the parameter is undefined, nice will not be used. For more information see Unix ‘nice’.
Description |
Option: tool scheduling priority |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.18. nodashboard#
Disables the dashboard during execution
Description |
Option: Disables the dashboard |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (API) |
|
1.3.5.7.19. nodisplay#
This flag prevents SiliconCompiler from opening GUI windows.
Description |
Option: headless execution |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.20. novercheck#
Disables strict version checking on all invoked tools if True. The list of supported version numbers is defined in the
[tool,<tool>,task,<task>,version].
Description |
Option: disable version checking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.21. optmode#
The compiler has modes to prioritize run time and ppa. Modes include.
(O0) = Exploration mode for debugging setup (O1) = Higher effort and better PPA than O0 (O2) = Higher effort and better PPA than O1 (O3) = Signoff quality. Better PPA and higher run times than O2 (O4-O98) = Reserved (compiler/target dependent) (O99) = Experimental highest possible effort, may be unstable
Description |
Option: optimization mode |
Type |
int |
Scope |
global |
Default Value |
0 |
CLI Switch |
|
Example (CLI) |
-optmode 3 |
Example (API) |
|
1.3.5.7.22. prune#
List of starting nodes for branches to be pruned. The default is to not prune any nodes/branches.
Description |
Option: flowgraph pruning |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.23. quiet#
The -quiet option forces all steps to print to a log file. This can be useful with Modern EDA tools which print significant content to the screen.
Description |
Option: quiet execution |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.24. remote#
Sends job for remote processing if set to true. The remote option requires a credentials file to be placed in the home directory. Fore more information, see the credentials parameter.
Description |
Option: enable remote processing |
Type |
bool |
Per step/index |
never |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25. scheduler#
Class SchedulerSchema
1.3.5.7.25.1. cores#
Specifies the number CPU cores required to run the job. For the slurm scheduler, this translates to the ‘-c’ switch. For more information, see the job scheduler documentation
Description |
Option: Scheduler core constraint |
Type |
int |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.2. defer#
Defer initiation of job until the specified time. The parameter is pass through string for remote job scheduler such as slurm. For more information about the exact format specification, see the job scheduler documentation. Examples of valid slurm specific values include: now+1hour, 16:00, 010-01-20T12:34:00. For more information, see the job scheduler documentation.
Description |
Option: scheduler start time |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.3. maxnodes#
Maximum number of concurrent nodes to run in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum concurrent nodes |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.4. maxthreads#
Maximum number of threads for each task in a job. If not set this will default to the number of cpu cores available.
Description |
Option: maximum number of threads to assign a task |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.5.7.25.5. memory#
Specifies the amount of memory required to run the job, specified in MB. For the slurm scheduler, this translates to the ‘–mem’ switch. For more information, see the job scheduler documentation
Description |
Option: scheduler memory constraint |
Type |
int |
Scope |
global |
Unit |
MB |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.6. msgcontact#
List of email addresses to message on a
[option,scheduler,msgevent]. Support for email messages relies on job scheduler daemon support. For more information, see the job scheduler documentation.
Description |
Option: message contact |
Type |
{str} |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.7. msgevent#
Directs job scheduler to send a message to the user in
[option,scheduler,msgcontact]when certain events occur during a task.
fail: send an email on failures
timeout: send an email on timeouts
begin: send an email at the start of a node task
end: send an email at the end of a node task
summary: send a summary email at the end of the run
all: send an email on any event
Description |
Option: message event trigger |
Type |
[enum] |
Allowed values |
|
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.8. name#
Sets the type of job scheduler to be used for each individual flowgraph steps. If the parameter is undefined, the steps are executed on the same machine that the SC was launched on. If ‘slurm’ is used, the host running the ‘sc’ command must be running a ‘slurmctld’ daemon managing a Slurm cluster. Additionally, the build directory (
[option,builddir]) must be located in shared storage which can be accessed by all hosts in the cluster.
Description |
Option: scheduler platform |
Type |
enum |
Allowed values |
|
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.9. options#
Advanced/export options passed through unchanged to the job scheduler as-is. (The user specified options must be compatible with the rest of the scheduler parameters entered.(memory etc). For more information, see the job scheduler documentation.
Description |
Option: scheduler arguments |
Type |
[str] |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.25.10. queue#
Send the job to the specified queue. With slurm, this translates to ‘partition’. The queue name must match the name of an existing job scheduler queue. For more information, see the job scheduler documentation
Description |
Option: scheduler queue |
Type |
str |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.26. timeout#
Timeout value in seconds. The timeout value is compared against the wall time tracked by the SC runtime to determine if an operation should continue.
Description |
Option: timeout value |
Type |
float |
Scope |
global |
Unit |
s |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.27. to#
Inclusive list of steps to end execution with. The default is to go to all exit steps in the flow graph.
Description |
Option: ending step |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.7.28. track#
Turns on tracking of all ‘record’ parameters during each task, otherwise only tool and runtime information will be recorded. Tracking will result in potentially sensitive data being recorded in the manifest so only turn on this feature if you have control of the final manifest.
Description |
Option: enable provenance tracking |
Type |
bool |
Scope |
global |
Default Value |
False |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8. record#
Class RecordSchema
1.3.5.8.1. arch#
Record tracking the hardware architecture per step and index basis. (x86_64, rv64imafdc)
Description |
Record: hardware architecture |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.2. distro#
Record tracking the distro name per step and index basis. (ubuntu, redhat, centos)
Description |
Record: distro name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.3. endtime#
Record tracking the end time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: end time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.4. inputnode#
List of selected inputs for the current step/index specified as (in_step, in_index) tuple.
Description |
Record: node inputs |
Type |
[(str,str)] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.5. ipaddr#
Record tracking the IP address per step and index basis.
Description |
Record: IP address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.6. kernelversion#
Record tracking the O/S kernel version per step and index basis. Used for platforms that support a distinction between os kernels and os distributions.
Description |
Record: O/S kernel version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.7. macaddr#
Record tracking the MAC address per step and index basis.
Description |
Record: MAC address |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.8. machine#
Record tracking the machine name per step and index basis. (myhost, localhost, …
Description |
Record: machine name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.9. osversion#
Record tracking the O/S version per step and index basis. Since there is not standard version system for operating systems, extracting information from is platform dependent. For Linux based operating systems, the ‘osversion’ is the version of the distro.
Description |
Record: O/S version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.10. platform#
Record tracking the platform name per step and index basis. (linux, windows, freebsd)
Description |
Record: platform name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.11. publickey#
Record tracking the public key per step and index basis.
Description |
Record: public key |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.12. pythonpackage#
Record tracking for the python packages installed.
Description |
Record: python packages |
Type |
[str] |
Per step/index |
never |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.13. pythonversion#
Record tracking the Python version per step and index basis. Version of python used to run this task.
Description |
Record: Python version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.14. region#
Record tracking the cloud region per step and index basis. Recommended naming methodology:
local: node is the local machine
onprem: node in on-premises IT infrastructure
public: generic public cloud
govcloud: generic US government cloud
<region>: cloud and entity specific region string name
Description |
Record: cloud region |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.15. remoteid#
Record tracking the job ID for a remote run.
Description |
Record: remote job ID |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.16. scversion#
Record tracking the software version per step and index basis. Version number for the SiliconCompiler software.
Description |
Record: software version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.17. starttime#
Record tracking the start time per step and index basis. Time is recorded with the format YYYY-MM-DD HR:MIN:SEC.MICROSEC for UTC
Description |
Record: start time |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.18. status#
Record tracking for the status of a node.
Description |
Record: node execution status |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.19. toolargs#
Record tracking the tool CLI arguments per step and index basis. Arguments passed to tool via CLI.
Description |
Record: tool CLI arguments |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.20. toolexitcode#
Record tracking the tool exit code per step and index basis.
Description |
Record: tool exit code |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.21. toolpath#
Record tracking the tool path per step and index basis. Full path to tool executable used to run this task.
Description |
Record: tool path |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.22. toolversion#
Record tracking the tool version per step and index basis. The tool version captured corresponds to the ‘tool’ parameter within the ‘tool’ dictionary.
Description |
Record: tool version |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.8.23. userid#
Record tracking the userid per step and index basis.
Description |
Record: userid |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.9. schemaversion#
Description |
Schema version number |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
0.54.0 |
Example (API) |
|
1.3.5.10. tool#
1.3.5.10.1. task#
Class Task
1.3.5.10.1.1. dataroot#
1.3.5.10.1.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.5.10.1.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.3.5.10.1.2. env#
Environment variables to set for individual tasks. Keys and values should be set in accordance with the task’s documentation. Most tasks do not require extra environment variables to function.
Description |
Task: environment variables |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.3. exe#
Tool executable name.
Description |
Tool: executable name |
Type |
str |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.4. format#
File format for tool manifest handoff.
Description |
Tool: file format |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.5. input#
List of data files to be copied from previous flowgraph steps ‘output’
directory. The list of steps to copy files from is defined by the
list defined by the dictionary key [flowgraph,<flow>,<step>,<index>,input].
All files must be available for flow to continue. If a file
is missing, the program exists on an error.
Description |
Task: input files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.6. licenseserver#
Defines a set of tool-specific environment variables used by the executable
that depend on license key servers to control access. For multiple servers,
separate servers with a colon. The named license variables are read at
runtime (Task.run()) and the environment variables are set.
Description |
Tool: license servers |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.7. option#
List of command line options for the task executable, specified on a per task and per step basis. Options must not include spaces. For multiple argument options, each option is a separate list element.
Description |
Task: executable options |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.8. output#
List of data files written to the ‘output’ directory of the tool/task/step/index used in the keypath. All files must be available for flow to continue. If a file is missing, the program exists on an error.
Description |
Task: output files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.9. path#
File system path to tool executable. The path is prepended to the
system PATH environment variable for batch and interactive runs. The
path parameter can be left blank if the [tool,<tool>,task,<task>,exe] is
already in the environment search path.
Description |
Tool: executable path |
Type |
dir |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.10. postscript#
Path to a user supplied script to execute after the main execution stage of the step but before the design is saved. Exact entry point depends on the step and main script being executed. An example of a postscript entry point would be immediately after global placement.
Description |
Task: post-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.11. prescript#
Path to a user supplied script to execute after reading in the design but before the main execution stage of the step. Exact entry point depends on the step and main script being executed. An example of a prescript entry point would be immediately before global placement.
Description |
Task: pre-step script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.12. refdir#
Path to directories containing reference flow scripts, specified on a per step and index basis.
Description |
Task: script directory |
Type |
[dir] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.13. regex#
A list of piped together grep commands. Each entry represents a set
of command line arguments for grep including the regex pattern to
match. Starting with the first list entry, each grep output is piped
into the following grep command in the list. Supported grep options
include -v and -e. Patterns starting with “-” should be
directly preceded by the -e option. The following example
illustrates the concept.
UNIX grep:
$ grep WARNING place.log | grep -v "bbox" > place.warnings
SiliconCompiler:
task.set('task', 'openroad', 'regex', 'place', '0', 'warnings',
["WARNING", "-v bbox"])
The “errors” and “warnings” suffixes are special cases. When set,
the number of matches found for these regexes will be added to the
errors and warnings metrics for the task, respectively. This will
also cause the logfile to be added to the [tool,<tool>,task,<task>,report,...] parameter for those metrics, if not already present.
Description |
Task: regex filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.14. report#
List of report files associated with a specific ‘metric’. The file path specified is relative to the run directory of the current task.
Description |
Task: metric report files |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.15. require#
List of keypaths to required task parameters. The list is used
by Project.check_manifest() to verify that all parameters have been set up
before step execution begins.
Description |
Task: parameter requirements |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.16. sbom#
Paths to software bill of material (SBOM) document file of the tool specified on a per version basis. The SBOM includes critical package information about the tool including the list of included components, licenses, and copyright. The SBOM file is generally provided as in a a standardized open data format such as SPDX.
Description |
Tool: software BOM |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.17. script#
Path to the entry script called by the executable specified on a per task and per step basis.
Description |
Task: entry script |
Type |
[file] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.18. stderr#
1.3.5.10.1.18.1. destination#
Defines where to direct the output generated over stderr. Supported options are: none: the stream generated to STDERR is ignored log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>
Description |
Task: destination for stderr |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.18.2. suffix#
Specifies the file extension for the content redirected from stderr.
Description |
Task: file suffix for redirected stderr |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.19. stdout#
1.3.5.10.1.19.1. destination#
Defines where to direct the output generated over stdout. Supported options are: none: the stream generated to STDOUT is ignored. log: the generated stream is stored in <step>.<suffix>; if not in quiet mode, it is additionally dumped to the display. output: the generated stream is stored in outputs/<design>.<suffix>.
Description |
Task: destination for stdout |
Type |
enum |
Allowed values |
|
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.19.2. suffix#
Specifies the file extension for the content redirected from stdout.
Description |
Task: file suffix for redirected stdout |
Type |
str |
Scope |
job |
Default Value |
log |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.20. threads#
Thread parallelism to use for execution specified on a per task and per step basis. If not specified, SC queries the operating system and sets the threads based on the maximum thread count supported by the hardware.
Description |
Task: thread parallelism |
Type |
int |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.21. vendor#
Name of the tool vendor. Parameter can be used to set vendor specific technology variables in the PDK and libraries. For open source projects, the project name should be used in place of vendor.
Description |
Tool: vendor |
Type |
str |
Per step/index |
never |
Scope |
job |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.22. version#
List of acceptable versions of the tool executable to be used. Each
entry in this list must be a version specifier as described by Python
PEP-440.
During task execution, the tool is called with the ‘vswitch’ to
check the runtime executable version. If the version of the system
executable is not allowed by any of the specifiers in ‘version’,
then the job is halted pre-execution. For backwards compatibility,
entries that do not conform to the standard will be interpreted as a
version with an ‘==’ specifier. This check can be disabled by
setting [option,novercheck] to True.
Description |
Tool: version |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.23. vswitch#
Command line switch to use with executable used to print out
the version number. Common switches include -v, -version,
--version. Some tools may require extra flags to run in batch mode.
Description |
Tool: executable version switch |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.3.5.10.1.24. warningoff#
A list of tool warnings for which printing should be suppressed. Generally this is done on a per design basis after review has determined that warning can be safely ignored The code for turning off warnings can be found in the specific task reference manual.
Description |
Task: warning filter |
Type |
[str] |
Scope |
job |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4. Library Parameters#
1.4.1. General#
1.4.1.1. Design#
Schema for a ‘design’.
This class inherits from
DependencySchema and
FileSetSchema, adds
parameters and methods specific to describing a design, such as its top module,
source filesets, and compilation settings.
File: design.py
Class Design
1.4.1.1.1. dataroot#
1.4.1.1.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.1.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.1.2. deps#
List of named object dependencies included via add_dep().
Description |
List of object dependencies |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
1.4.1.1.3. fileset#
Class FileSetSchema
1.4.1.1.3.1. define#
Defines macros at compile time for design languages that support preprocessing, such as Verilog, C, and C++. The macro format is is MACRONAME[=value], where [=value] is optional.
Description |
Preprocessor macro definitions |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.1.1.3.2. depfileset#
Sets the mapping for dependency filesets.
Description |
Design dependency fileset |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.1.1.3.3. file#
List of files grouped as a named set (‘fileset’). The exact names of filetypes and filesets must match the names used in tasks called during flowgraph execution. The files are processed in the order specified by the ordered file list.
Description |
Fileset files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
schema.set('fileset', 'testbench', 'file', 'verilog', 'tb.v') |
1.4.1.1.3.4. idir#
Include paths specify directories to scan for header files during compilation. If multiple paths are provided, they are searched in the order given.
Description |
Include file search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
design.set('fileset', 'testbench', 'idir', '/testbench') |
1.4.1.1.3.5. lib#
Specifies libraries to use during compilation. The compiler searches for
library in the compiler standard library paths and in the
paths specified by [fileset,<fileset>,libdir] parameter.
Description |
Design libraries to include |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.1.1.3.6. libdir#
Specifies directories to scan for libraries provided with the
[fileset,<fileset>,lib] parameter. If multiple paths are provided,
they are searched based on the order of the libdir list.
Description |
Library search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.1.1.3.7. param#
Sets a named parameter to a string value. The value is limited to basic data literals. The types of parameters and values supported is tightly coupled to tools being used. For example, in Verilog only integer literals (64’h4, 2’b0, 4) and strings are supported.
Description |
Design parameters |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.1.3.8. topmodule#
Name of top module specified on a per fileset basis.
Description |
Top module name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
design.set('fileset', 'testbench', 'topmodule', 'tb') |
1.4.1.1.3.9. undefine#
Undefines a macro that may have been previously defined via the compiler, options, or header files.
Description |
Preprocessor macro undefine |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.1.1.4. package#
Class PackageSchema
1.4.1.1.4.2. description#
Package short one line description for package managers and summary reports.
Description |
Package: description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3. doc#
1.4.1.1.4.3.1. datasheet#
Package list of datasheet documents.
Description |
Package: datasheet document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3.2. quickstart#
Package list of quickstart documents.
Description |
Package: quickstart document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3.3. reference#
Package list of reference documents.
Description |
Package: reference document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3.4. releasenotes#
Package list of releasenotes documents.
Description |
Package: releasenotes document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3.5. signoff#
Package list of signoff documents.
Description |
Package: signoff document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3.6. testplan#
Package list of testplan documents.
Description |
Package: testplan document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3.7. tutorial#
Package list of tutorial documents.
Description |
Package: tutorial document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.3.8. userguide#
Package list of userguide documents.
Description |
Package: userguide document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.4. license#
Package list of SPDX license identifiers.
Description |
Package: license identifiers |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.5. licensefile#
Package list of license files for to be applied in cases when a SPDX identifier is not available. (eg. proprietary licenses).
Description |
Package: license files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.6. vendor#
Package vendor.
Description |
Package: vendor |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.1.4.7. version#
Package version. Can be a branch, tag, commit hash, or a semver compatible version.
Description |
Package: version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.1.2. Schematic#
Basic schematic entry class for designing systems with real physical components.
File: schematic.py
Class Schematic
1.4.1.2.1. schematic#
1.4.1.2.1.1. buschar#
Specifies the character used to express bus bits. If the bus character is used as part of a name, it must be escaped with a backslash(‘’).
Description |
Schematic bus character |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.2.1.2. component#
1.4.1.2.1.2.1. connection#
Net connections specified on a per instance and per instance-pin basis. Pin and net names must include the appropriate bit index in cases of pin or net vectors. Bit index optional for scalar nets and pins.
Description |
Component pin connections |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
schematic.set('schematic','component','i0','connection', 'CLK', 'clk_in') |
1.4.1.2.1.2.2. partname#
Partname (cellname) of a component (instance) specified on a per instance basis.
Description |
Component part name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.2.1.3. hierchar#
Specifies the character used to express hierarchy. If the hierarchy character is used as part of a name, it must be escaped with a backslash(‘’).
Description |
Schematic hierarchy character |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.2.1.4. net#
1.4.1.2.1.4.1. bitrange#
Net vector bit range specified as (max,min) tuple.
Description |
Net bit range |
Type |
(int,int) |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.2.1.5. part#
1.4.1.2.1.5.1. pin#
1.4.1.2.1.5.1.1. bitrange#
Part pin vector size, specified as a (max,min) tuple. A range of (0,0) indicates a scalar single bit pin.
Description |
Library part pin bitrange |
Type |
(int,int) |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.2.1.6. pin#
1.4.1.2.1.6.1. bitrange#
Pin vector size, specified as a (max,min) tuple. A range of (0,0) indicates a scalar single bit pin.
Description |
Pin bitrange |
Type |
(int,int) |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.1.2.1.6.2. direction#
Direction of pin specified on a per pin basis.
Description |
Pin direction |
Type |
enum |
Allowed values |
|
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2. ASIC Specific#
1.4.2.1. StdCellLibrary#
A class for managing standard cell library schemas.
File: library.py
Class StdCellLibrary
1.4.2.1.1. asic#
1.4.2.1.1.1. aprfileset#
Map between filesets and automated place and route tool files.
Description |
ASIC: map of filesets to APR files |
Type |
{str} |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2. cells#
1.4.2.1.1.2.1. antenna#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: antenna cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.2. clkbuf#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: clkbuf cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.3. clkgate#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: clkgate cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.4. clklogic#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: clklogic cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.5. decap#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: decap cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.6. dontuse#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: dontuse cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.7. endcap#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: endcap cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.8. filler#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: filler cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.9. hold#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: hold cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.10. physicalonly#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: physicalonly cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.11. tap#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: tap cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.2.12. tie#
List of cells grouped by a property that can be accessed directly by the designer and tools. The example below shows how all cells containing the string ‘eco’ could be marked as dont use for the tool.
Description |
ASIC: tie cell list |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.3. libcornerfileset#
Map between filesets and timing corners.
Description |
ASIC: map of filesets to timing corners |
Type |
{str} |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.4. pdk#
Description |
ASIC: |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2.1.1.5. pexcornerfileset#
Map between filesets and pex corners.
Description |
ASIC: map of filesets to pex corners |
Type |
{str} |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.6. site#
Site names for a given library architecture.
Description |
ASIC: library sites |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.1.7. stackup#
Set of supported stackups
Description |
ASIC: |
Type |
{str} |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.2. dataroot#
1.4.2.1.2.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2.1.2.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2.1.3. deps#
List of named object dependencies included via add_dep().
Description |
List of object dependencies |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
1.4.2.1.4. fileset#
Class FileSetSchema
1.4.2.1.4.1. define#
Defines macros at compile time for design languages that support preprocessing, such as Verilog, C, and C++. The macro format is is MACRONAME[=value], where [=value] is optional.
Description |
Preprocessor macro definitions |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.4.2. depfileset#
Sets the mapping for dependency filesets.
Description |
Design dependency fileset |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.4.3. file#
List of files grouped as a named set (‘fileset’). The exact names of filetypes and filesets must match the names used in tasks called during flowgraph execution. The files are processed in the order specified by the ordered file list.
Description |
Fileset files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
schema.set('fileset', 'testbench', 'file', 'verilog', 'tb.v') |
1.4.2.1.4.4. idir#
Include paths specify directories to scan for header files during compilation. If multiple paths are provided, they are searched in the order given.
Description |
Include file search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
design.set('fileset', 'testbench', 'idir', '/testbench') |
1.4.2.1.4.5. lib#
Specifies libraries to use during compilation. The compiler searches for
library in the compiler standard library paths and in the
paths specified by [fileset,<fileset>,libdir] parameter.
Description |
Design libraries to include |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.4.6. libdir#
Specifies directories to scan for libraries provided with the
[fileset,<fileset>,lib] parameter. If multiple paths are provided,
they are searched based on the order of the libdir list.
Description |
Library search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.4.7. param#
Sets a named parameter to a string value. The value is limited to basic data literals. The types of parameters and values supported is tightly coupled to tools being used. For example, in Verilog only integer literals (64’h4, 2’b0, 4) and strings are supported.
Description |
Design parameters |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2.1.4.8. topmodule#
Name of top module specified on a per fileset basis.
Description |
Top module name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
design.set('fileset', 'testbench', 'topmodule', 'tb') |
1.4.2.1.4.9. undefine#
Undefines a macro that may have been previously defined via the compiler, options, or header files.
Description |
Preprocessor macro undefine |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.1.5. package#
Class PackageSchema
1.4.2.1.5.2. description#
Package short one line description for package managers and summary reports.
Description |
Package: description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3. doc#
1.4.2.1.5.3.1. datasheet#
Package list of datasheet documents.
Description |
Package: datasheet document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3.2. quickstart#
Package list of quickstart documents.
Description |
Package: quickstart document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3.3. reference#
Package list of reference documents.
Description |
Package: reference document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3.4. releasenotes#
Package list of releasenotes documents.
Description |
Package: releasenotes document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3.5. signoff#
Package list of signoff documents.
Description |
Package: signoff document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3.6. testplan#
Package list of testplan documents.
Description |
Package: testplan document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3.7. tutorial#
Package list of tutorial documents.
Description |
Package: tutorial document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.3.8. userguide#
Package list of userguide documents.
Description |
Package: userguide document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.4. license#
Package list of SPDX license identifiers.
Description |
Package: license identifiers |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.5. licensefile#
Package list of license files for to be applied in cases when a SPDX identifier is not available. (eg. proprietary licenses).
Description |
Package: license files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.6. vendor#
Package vendor.
Description |
Package: vendor |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.1.5.7. version#
Package version. Can be a branch, tag, commit hash, or a semver compatible version.
Description |
Package: version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2. PDK#
A schema for managing and validating Process Design Kit (PDK) configurations.
This class defines the structured parameters that constitute a PDK, such as foundry information, process node, metal stackups, and various technology files required for different EDA tools. It extends the ToolLibrarySchema to provide a standardized way of describing and accessing PDK data within the SiliconCompiler framework.
File: pdk.py
Class PDK
1.4.2.2.1. dataroot#
1.4.2.2.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2.2.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2.2.2. deps#
List of named object dependencies included via add_dep().
Description |
List of object dependencies |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
1.4.2.2.3. fileset#
Class FileSetSchema
1.4.2.2.3.1. define#
Defines macros at compile time for design languages that support preprocessing, such as Verilog, C, and C++. The macro format is is MACRONAME[=value], where [=value] is optional.
Description |
Preprocessor macro definitions |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.2.3.2. depfileset#
Sets the mapping for dependency filesets.
Description |
Design dependency fileset |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.2.3.3. file#
List of files grouped as a named set (‘fileset’). The exact names of filetypes and filesets must match the names used in tasks called during flowgraph execution. The files are processed in the order specified by the ordered file list.
Description |
Fileset files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
schema.set('fileset', 'testbench', 'file', 'verilog', 'tb.v') |
1.4.2.2.3.4. idir#
Include paths specify directories to scan for header files during compilation. If multiple paths are provided, they are searched in the order given.
Description |
Include file search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
design.set('fileset', 'testbench', 'idir', '/testbench') |
1.4.2.2.3.5. lib#
Specifies libraries to use during compilation. The compiler searches for
library in the compiler standard library paths and in the
paths specified by [fileset,<fileset>,libdir] parameter.
Description |
Design libraries to include |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.2.3.6. libdir#
Specifies directories to scan for libraries provided with the
[fileset,<fileset>,lib] parameter. If multiple paths are provided,
they are searched based on the order of the libdir list.
Description |
Library search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.2.3.7. param#
Sets a named parameter to a string value. The value is limited to basic data literals. The types of parameters and values supported is tightly coupled to tools being used. For example, in Verilog only integer literals (64’h4, 2’b0, 4) and strings are supported.
Description |
Design parameters |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.2.2.3.8. topmodule#
Name of top module specified on a per fileset basis.
Description |
Top module name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
design.set('fileset', 'testbench', 'topmodule', 'tb') |
1.4.2.2.3.9. undefine#
Undefines a macro that may have been previously defined via the compiler, options, or header files.
Description |
Preprocessor macro undefine |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.2.2.4. package#
Class PackageSchema
1.4.2.2.4.2. description#
Package short one line description for package managers and summary reports.
Description |
Package: description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3. doc#
1.4.2.2.4.3.1. datasheet#
Package list of datasheet documents.
Description |
Package: datasheet document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3.2. quickstart#
Package list of quickstart documents.
Description |
Package: quickstart document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3.3. reference#
Package list of reference documents.
Description |
Package: reference document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3.4. releasenotes#
Package list of releasenotes documents.
Description |
Package: releasenotes document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3.5. signoff#
Package list of signoff documents.
Description |
Package: signoff document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3.6. testplan#
Package list of testplan documents.
Description |
Package: testplan document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3.7. tutorial#
Package list of tutorial documents.
Description |
Package: tutorial document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.3.8. userguide#
Package list of userguide documents.
Description |
Package: userguide document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.4. license#
Package list of SPDX license identifiers.
Description |
Package: license identifiers |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.5. licensefile#
Package list of license files for to be applied in cases when a SPDX identifier is not available. (eg. proprietary licenses).
Description |
Package: license files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.6. vendor#
Package vendor.
Description |
Package: vendor |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.4.7. version#
Package version. Can be a branch, tag, commit hash, or a semver compatible version.
Description |
Package: version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5. pdk#
1.4.2.2.5.1. aprtechfileset#
Technology file containing setup information needed to enable DRC clean APR for the specified stackup, libarch, and format. The ‘libarch’ specifies the library architecture (e.g. library height). For example a PDK with support for 9 and 12 track libraries might have ‘libarchs’ called 9t and 12t. The standard filetype for specifying place and route design rules for a process node is through a ‘lef’ format technology file. The ‘filetype’ used in the aprtech is used by the tool specific APR TCL scripts to set up the technology parameters. Some tools may require additional files beyond the tech.lef file. Examples of extra file types include antenna, tracks, tapcell, viarules, and em.
Description |
PDK: APR technology files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.2. d0#
Process defect density (d0) expressed as random defects per cm^2. The value is used to calculate yield losses as a function of area, which in turn affects the chip full factory costs. Two yield models are supported: Poisson (default), and Murphy. The Poisson based yield is calculated as dy = exp(-area * d0/100). The Murphy based yield is calculated as dy = ((1-exp(-area * d0/100))/(area * d0/100))^2.
Description |
PDK: process defect density |
Type |
float |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.3. devmodelfileset#
List of filepaths to PDK device models for different simulation purposes and for different tools. Examples of device model types include spice, aging, electromigration, radiation. An example of a ‘spice’ tool is xyce. Device models are specified on a per metal stack basis. Process nodes with a single device model across all stacks will have a unique parameter record per metal stack pointing to the same device model file. Device types and tools are dynamic entries that depend on the tool setup and device technology. Pseudo-standardized device types include spice, em (electromigration), and aging.
Description |
PDK: device models |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.4. displayfileset#
Display configuration files describing colors and pattern schemes for all layers in the PDK. The display configuration file is entered on a stackup and tool basis.
Description |
PDK: display file |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.5. drc#
1.4.2.2.5.5.1. runsetfileset#
Runset files for DRC task.
Description |
PDK: DRC runset files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.5.2. waiverfileset#
Waiver files for DRC task.
Description |
PDK: DRC waiver files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.6. edgemargin#
Keep-out distance/margin from the edge inwards. The edge is prone to chipping and need special treatment that preclude placement of designs in this area. The edge value is used to calculate effective units per wafer/panel and full factory cost.
Description |
PDK: wafer edge keep-out margin |
Type |
float |
Per step/index |
never |
Scope |
global |
Unit |
mm |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.7. erc#
1.4.2.2.5.7.1. runsetfileset#
Runset files for ERC task.
Description |
PDK: ERC runset files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.7.2. waiverfileset#
Waiver files for ERC task.
Description |
PDK: ERC waiver files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.8. fill#
1.4.2.2.5.8.1. runsetfileset#
Runset files for FILL task.
Description |
PDK: FILL runset files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.8.2. waiverfileset#
Waiver files for FILL task.
Description |
PDK: FILL waiver files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.9. foundry#
Name of foundry corporation. Examples include intel, gf, tsmc, samsung, skywater, virtual. The ‘virtual’ keyword is reserved for simulated non-manufacturable processes.
Description |
PDK: foundry name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.10. layermapfileset#
Files describing input/output mapping for streaming layout data from one format to another. A foundry PDK will include an official layer list for all user entered and generated layers supported in the GDS accepted by the foundry for processing, but there is no standardized layer definition format that can be read and written by all EDA tools. To ensure mask layer matching, key/value type mapping files are needed to convert EDA databases to/from GDS and to convert between different types of EDA databases. Layer maps are specified on a per metal stackup basis. The ‘src’ and ‘dst’ can be names of SC supported tools or file formats (like ‘gds’).
Description |
PDK: layer map file |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.11. lvs#
1.4.2.2.5.11.1. runsetfileset#
Runset files for LVS task.
Description |
PDK: LVS runset files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.11.2. waiverfileset#
Waiver files for LVS task.
Description |
PDK: LVS waiver files |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.12. maxlayer#
Maximum metal layer to be used for automated place and route specified on a per stackup basis.
Description |
PDK: maximum routing layer |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.13. minlayer#
Minimum metal layer to be used for automated place and route specified on a per stackup basis.
Description |
PDK: minimum routing layer |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.14. node#
Approximate relative minimum dimension of the process target specified in nanometers. The parameter is required for flows and tools that leverage the value to drive technology dependent synthesis and APR optimization. Node examples include 180, 130, 90, 65, 45, 32, 22 14, 10, 7, 5, 3.
Description |
PDK: process node |
Type |
float |
Per step/index |
never |
Scope |
global |
Unit |
nm |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.15. pexmodelfileset#
List of filepaths to PDK wire TCAD models used during automated synthesis, APR, and signoff verification. Pexmodels are specified on a per metal stack basis. Corner values depend on the process being used, but typically include nomenclature such as min, max, nominal. For exact names, refer to the DRM. Pexmodels are generally not standardized and specified on a per tool basis. An example of pexmodel type is ‘fastcap’.
Description |
PDK: parasitic TCAD models |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.16. scribe#
Width of the horizontal and vertical scribe line used during die separation. The process is generally completed using a mechanical saw, but can be done through combinations of mechanical saws, lasers, wafer thinning, and chemical etching in more advanced technologies. The value is used to calculate effective dies per wafer and full factory cost.
Description |
PDK: horizontal scribe line width |
Type |
(float,float) |
Per step/index |
never |
Scope |
global |
Unit |
mm |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.17. stackup#
List of all metal stackups offered in the process node. Older process nodes may only offer a single metal stackup, while advanced nodes offer a large but finite list of metal stacks with varying combinations of metal line pitches and thicknesses. Stackup naming is unique to a foundry, but is generally a long string or code. For example, a 10 metal stackup with two 1x wide, four 2x wide, and 4x wide metals, might be identified as 2MA4MB2MC, where MA, MB, and MC denote wiring layers with different properties (thickness, width, space). Each stackup will come with its own set of routing technology files and parasitic models specified in the pdk_pexmodel and pdk_aprtech parameters.
Description |
PDK: metal stackups |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.18. unitcost#
Raw cost per unit shipped by the factory, not accounting for yield loss.
Description |
PDK: unit cost |
Type |
float |
Per step/index |
never |
Scope |
global |
Unit |
USD |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.2.2.5.19. wafersize#
Wafer diameter used in wafer based manufacturing process. The standard diameter for leading edge manufacturing is 300mm. For older process technologies and specialty fabs, smaller diameters such as 200, 150, 125, and 100 are common. The value is used to calculate dies per wafer and full factory chip costs.
Description |
PDK: wafer size |
Type |
float |
Per step/index |
never |
Scope |
global |
Unit |
mm |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3. FPGA Specific#
1.4.3.1. FPGADevice#
A schema for configuring FPGA-related parameters.
This class extends ToolLibrarySchema to provide a structured way to define and access FPGA-specific settings like part name and LUT size.
File: fpga.py
Class FPGADevice
1.4.3.1.1. dataroot#
1.4.3.1.1.1. path#
Data directory path, this points the location where the data can be retrieved or accessed. Allowed roots:
/path/on/network/drivefile:///path/on/network/drivegit+https://github.com/xyz/xyzgit://github.com/xyz/xyzgit+ssh://github.com/xyz/xyzssh://github.com/xyz/xyzhttps://github.com/xyz/xyz/archivehttps://zeroasic.com/xyz.tar.gzgithub://siliconcompiler/lambdapdk/v1.0/asap7.tar.gzpython://siliconcompiler
Description |
Data directory path |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.3.1.1.2. tag#
Data directory reference tag. The meaning of the this tag depends on the context of the path. For git, this can be a tag, branch, or commit id. For https this is the version of the file that will be downloaded.
Description |
Data directory reference tag/version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.3.1.2. deps#
List of named object dependencies included via add_dep().
Description |
List of object dependencies |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
1.4.3.1.3. fileset#
Class FileSetSchema
1.4.3.1.3.1. define#
Defines macros at compile time for design languages that support preprocessing, such as Verilog, C, and C++. The macro format is is MACRONAME[=value], where [=value] is optional.
Description |
Preprocessor macro definitions |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.3.1.3.2. depfileset#
Sets the mapping for dependency filesets.
Description |
Design dependency fileset |
Type |
[(str,str)] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.3.1.3.3. file#
List of files grouped as a named set (‘fileset’). The exact names of filetypes and filesets must match the names used in tasks called during flowgraph execution. The files are processed in the order specified by the ordered file list.
Description |
Fileset files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
schema.set('fileset', 'testbench', 'file', 'verilog', 'tb.v') |
1.4.3.1.3.4. idir#
Include paths specify directories to scan for header files during compilation. If multiple paths are provided, they are searched in the order given.
Description |
Include file search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
design.set('fileset', 'testbench', 'idir', '/testbench') |
1.4.3.1.3.5. lib#
Specifies libraries to use during compilation. The compiler searches for
library in the compiler standard library paths and in the
paths specified by [fileset,<fileset>,libdir] parameter.
Description |
Design libraries to include |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.3.1.3.6. libdir#
Specifies directories to scan for libraries provided with the
[fileset,<fileset>,lib] parameter. If multiple paths are provided,
they are searched based on the order of the libdir list.
Description |
Library search paths |
Type |
[dir] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.3.1.3.7. param#
Sets a named parameter to a string value. The value is limited to basic data literals. The types of parameters and values supported is tightly coupled to tools being used. For example, in Verilog only integer literals (64’h4, 2’b0, 4) and strings are supported.
Description |
Design parameters |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
|
1.4.3.1.3.8. topmodule#
Name of top module specified on a per fileset basis.
Description |
Top module name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
Example (API) |
design.set('fileset', 'testbench', 'topmodule', 'tb') |
1.4.3.1.3.9. undefine#
Undefines a macro that may have been previously defined via the compiler, options, or header files.
Description |
Preprocessor macro undefine |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
Example (API) |
|
1.4.3.1.4. fpga#
1.4.3.1.4.1. lutsize#
Specify the number of inputs in each lookup table (LUT) for the FPGA partname. For architectures with fracturable LUTs, this is the number of inputs of the unfractured LUT.
Description |
FPGA: lutsize |
Type |
int |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.4.2. partname#
Complete part name used as a device target by the FPGA compilation tool. The part name must be an exact string match to the partname hard coded within the FPGA EDA tool.
Description |
FPGA: part name |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5. package#
Class PackageSchema
1.4.3.1.5.2. description#
Package short one line description for package managers and summary reports.
Description |
Package: description |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3. doc#
1.4.3.1.5.3.1. datasheet#
Package list of datasheet documents.
Description |
Package: datasheet document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3.2. quickstart#
Package list of quickstart documents.
Description |
Package: quickstart document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3.3. reference#
Package list of reference documents.
Description |
Package: reference document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3.4. releasenotes#
Package list of releasenotes documents.
Description |
Package: releasenotes document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3.5. signoff#
Package list of signoff documents.
Description |
Package: signoff document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3.6. testplan#
Package list of testplan documents.
Description |
Package: testplan document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3.7. tutorial#
Package list of tutorial documents.
Description |
Package: tutorial document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.3.8. userguide#
Package list of userguide documents.
Description |
Package: userguide document |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.4. license#
Package list of SPDX license identifiers.
Description |
Package: license identifiers |
Type |
[str] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.5. licensefile#
Package list of license files for to be applied in cases when a SPDX identifier is not available. (eg. proprietary licenses).
Description |
Package: license files |
Type |
[file] |
Per step/index |
never |
Scope |
global |
Default Value |
[] |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.6. vendor#
Package vendor.
Description |
Package: vendor |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.4.3.1.5.7. version#
Package version. Can be a branch, tag, commit hash, or a semver compatible version.
Description |
Package: version |
Type |
str |
Per step/index |
never |
Scope |
global |
Default Value |
None |
CLI Switch |
|
Example (CLI) |
|
Example (API) |
|
1.5. meta data#
The schema can record the class type of a section in the schema., this is recorded in cfg['__meta__'].
The cfg['__meta__'] contains two keys, sctype and class , which represent the type of the section and exact python class respectively.
If no cfg['__meta__'] is found, the section is assumed to be a regular schema class.
1.6. Journaling#
The schema can support tracking of schema transactions which modify the data in the schema.
The transactions are recorded in the schema in cfg['__journal__'], which is a list of the transactions since recording began.
Each record for the journal contains:
- type
Type of transactions performed, can be one of: set, add, remove, and unset
- key
Keypath that was modified
- value
New value for keypath, in record types which are destructive, this is None
- field
Schema field that was modified, in record types which are destructive, this is None
- step
Step that was modified, in record types which are destructive, this is None
- index
Index that was modified, in record types which are destructive, this is None