1. Schema#

1.1. Keywords#

default#

Reserved SiliconCompiler schema key that can be replaced by any legal string.

1.2. Parameter Fields#

copy#

Whether to copy files into build directory, applies to files only

enum#

List of strings containing the set of legal values for this parameter.

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#

String that specifies scenarios, conditions, and modes for which the parameter must return a non-empty value. Valid requirement keywords include ‘all’ and ‘fpga’/’asic’. The ‘all’ keyword specifies that the parameter must always have a non-empty value before running a flow. The ‘fpga’/’asic’ keyword specifies that that the parameter must have a non-empty value when the respective mode is being executed. All Boolean values have a valid True/False default value and a requirement of ‘all’. The vast majority of schema parameters have requirements of None and empty values which can be overridden by the user based on need.

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’, ‘enum’, 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. 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). 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.3. 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".

author#

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.4. Parameters#

1.4.1. arg#

1.4.1.1. index#

Description

ARG: Index argument

Type

str

Default Value

None

CLI Switch

  • -arg_index <str>

Example (CLI)

-arg_index 0

Example (API)

chip.set('arg', 'index', '0')

Dynamic parameter passed in by the SC runtime as an argument to a runtime task. The parameter enables configuration code (usually TCL) to use control flow that depend on the current ‘index’. The parameter is used the run() function and is not intended for external use.

1.4.1.2. step#

Description

ARG: Step argument

Type

str

Default Value

None

CLI Switch

  • -arg_step <str>

Example (CLI)

-arg_step 'route'

Example (API)

chip.set('arg', 'step', 'route')

Dynamic parameter passed in by the SC runtime as an argument to a runtime task. The parameter enables configuration code (usually TCL) to use control flow that depend on the current ‘step’. The parameter is used the run() function and is not intended for external use.

1.4.2. asic#

1.4.2.1. cells#

1.4.2.1.1. antenna#

Description

ASIC: antenna cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_antenna '<str>'

Example (CLI)

-asic_cells_antenna '*eco*'

Example (API)

chip.set('asic', 'cells', 'antenna', '*eco*')

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.

1.4.2.1.2. clkbuf#

Description

ASIC: clkbuf cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_clkbuf '<str>'

Example (CLI)

-asic_cells_clkbuf '*eco*'

Example (API)

chip.set('asic', 'cells', 'clkbuf', '*eco*')

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.

1.4.2.1.3. clkdelay#

Description

ASIC: clkdelay cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_clkdelay '<str>'

Example (CLI)

-asic_cells_clkdelay '*eco*'

Example (API)

chip.set('asic', 'cells', 'clkdelay', '*eco*')

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.

1.4.2.1.4. clkgate#

Description

ASIC: clkgate cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_clkgate '<str>'

Example (CLI)

-asic_cells_clkgate '*eco*'

Example (API)

chip.set('asic', 'cells', 'clkgate', '*eco*')

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.

1.4.2.1.5. clkicg#

Description

ASIC: clkicg cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_clkicg '<str>'

Example (CLI)

-asic_cells_clkicg '*eco*'

Example (API)

chip.set('asic', 'cells', 'clkicg', '*eco*')

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.

1.4.2.1.6. clkinv#

Description

ASIC: clkinv cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_clkinv '<str>'

Example (CLI)

-asic_cells_clkinv '*eco*'

Example (API)

chip.set('asic', 'cells', 'clkinv', '*eco*')

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.

1.4.2.1.7. clklogic#

Description

ASIC: clklogic cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_clklogic '<str>'

Example (CLI)

-asic_cells_clklogic '*eco*'

Example (API)

chip.set('asic', 'cells', 'clklogic', '*eco*')

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.

1.4.2.1.8. decap#

Description

ASIC: decap cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_decap '<str>'

Example (CLI)

-asic_cells_decap '*eco*'

Example (API)

chip.set('asic', 'cells', 'decap', '*eco*')

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.

1.4.2.1.9. delay#

Description

ASIC: delay cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_delay '<str>'

Example (CLI)

-asic_cells_delay '*eco*'

Example (API)

chip.set('asic', 'cells', 'delay', '*eco*')

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.

1.4.2.1.10. dontuse#

Description

ASIC: dontuse cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_dontuse '<str>'

Example (CLI)

-asic_cells_dontuse '*eco*'

Example (API)

chip.set('asic', 'cells', 'dontuse', '*eco*')

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.

1.4.2.1.11. endcap#

Description

ASIC: endcap cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_endcap '<str>'

Example (CLI)

-asic_cells_endcap '*eco*'

Example (API)

chip.set('asic', 'cells', 'endcap', '*eco*')

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.

1.4.2.1.12. filler#

Description

ASIC: filler cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_filler '<str>'

Example (CLI)

-asic_cells_filler '*eco*'

Example (API)

chip.set('asic', 'cells', 'filler', '*eco*')

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.

1.4.2.1.13. hold#

Description

ASIC: hold cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_hold '<str>'

Example (CLI)

-asic_cells_hold '*eco*'

Example (API)

chip.set('asic', 'cells', 'hold', '*eco*')

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.

1.4.2.1.14. tap#

Description

ASIC: tap cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_tap '<str>'

Example (CLI)

-asic_cells_tap '*eco*'

Example (API)

chip.set('asic', 'cells', 'tap', '*eco*')

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.

1.4.2.1.15. tie#

Description

ASIC: tie cell list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_cells_tie '<str>'

Example (CLI)

-asic_cells_tie '*eco*'

Example (API)

chip.set('asic', 'cells', 'tie', '*eco*')

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.

1.4.2.2. delaymodel#

Description

ASIC: delay model

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -asic_delaymodel <str>

Example (CLI)

-asic_delaymodel ccs

Example (API)

chip.set('asic', 'delaymodel', 'ccs')

Delay model to use for the target libs. Supported values are nldm and ccs.

1.4.2.3. libarch#

Description

ASIC: library architecture

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -asic_libarch '<str>'

Example (CLI)

-asic_libarch '12track'

Example (API)

chip.set('asic', 'libarch', '12track')

The library architecture (e.g. library height) used to build the design. For example a PDK with support for 9 and 12 track libraries might have ‘libarchs’ called 9t and 12t.

1.4.2.4. logiclib#

Description

ASIC: logic libraries

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_logiclib <str>

Example (CLI)

-asic_logiclib nangate45

Example (API)

chip.set('asic', 'logiclib', 'nangate45')

List of all selected logic libraries libraries to use for optimization for a given library architecture (9T, 11T, etc).

1.4.2.5. macrolib#

Description

ASIC: macro libraries

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_macrolib <str>

Example (CLI)

-asic_macrolib sram64x1024

Example (API)

chip.set('asic', 'macrolib', 'sram64x1024')

List of macro libraries to be linked in during synthesis and place and route. Macro libraries are used for resolving instances but are not used as targets for logic synthesis.

1.4.2.6. site#

Description

ASIC: Library sites

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -asic_site 'libarch <str>'

Example (CLI)

-asic_site '12track Site_12T'

Example (API)

chip.set('asic', 'site', '12track', 'Site_12T')

Site names for a given library architecture.

1.4.3. checklist#

1.4.3.1. criteria#

Description

Checklist: item criteria

Type

[str]

Default Value

[]

CLI Switch

  • -checklist_criteria 'standard item <float>'

Example (CLI)

-checklist_criteria 'ISO D000 errors==0'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'criteria', 'errors==0')

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’.

1.4.3.2. dataformat#

Description

Checklist: item data format

Type

str

Default Value

None

CLI Switch

  • -checklist_dataformat 'standard item <float>'

Example (CLI)

-checklist_dataformat 'ISO D000 dataformat README'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'dataformat', 'README')

Free text description of the type of data files acceptable as checklist signoff validation.

1.4.3.3. description#

Description

Checklist: item description

Type

str

Default Value

None

CLI Switch

  • -checklist_description 'standard item <str>

Example (CLI)

-checklist_description 'ISO D000 A-DESCRIPTION'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'description', 'A-DESCRIPTION')

A short one line description of the checklist item.

1.4.3.4. ok#

Description

Checklist: item ok

Type

bool

Default Value

False

CLI Switch

  • -checklist_ok 'standard item <str>'

Example (CLI)

-checklist_ok 'ISO D000 true'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'ok', True)

Boolean check mark for the checklist item. A value of True indicates a human has inspected the all item dictionary parameters check out.

1.4.3.5. rationale#

Description

Checklist: item rational

Type

[str]

Default Value

[]

CLI Switch

  • -checklist_rationale 'standard item <str>

Example (CLI)

-checklist_rationale 'ISO D000 reliability'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'rationale', 'reliability')

Rationale for the the checklist item. Rationale should be a unique alphanumeric code used by the standard or a short one line or single word description.

1.4.3.6. report#

Description

Checklist: item report

Type

[file]

Default Value

[]

CLI Switch

  • -checklist_report 'standard item <file>'

Example (CLI)

-checklist_report 'ISO D000 my.rpt'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'report', 'my.rpt')

Filepath to report(s) of specified type documenting the successful validation of the checklist item.

1.4.3.7. requirement#

Description

Checklist: item requirement

Type

str

Default Value

None

CLI Switch

  • -checklist_requirement 'standard item <str>

Example (CLI)

-checklist_requirement 'ISO D000 DOCSTRING'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'requirement', 'DOCSTRING')

A complete requirement description of the checklist item entered as a multi-line string.

1.4.3.8. task#

Description

Checklist: item task

Type

[(str,str,str)]

Default Value

[]

CLI Switch

  • -checklist_task 'standard item <(str,str,str)>'

Example (CLI)

-checklist_task 'ISO D000 (job0,place,0)'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'task', ('job0', 'place', '0'))

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.

1.4.3.9. waiver#

Description

Checklist: item metric waivers

Type

[file]

Default Value

[]

CLI Switch

  • -checklist_waiver 'standard item metric <file>'

Example (CLI)

-checklist_waiver 'ISO D000 bold my.txt'

Example (API)

chip.set('checklist', 'ISO', 'D000', 'waiver', 'hold', 'my.txt')

Filepath to report(s) documenting waivers for the checklist item specified on a per metric basis.

1.4.4. constraint#

1.4.4.1. aspectratio#

Description

Constraint: Layout aspect ratio

Type

float

Per step/index

optional

Default Value

1.0

CLI Switch

  • -constraint_aspectratio <float>

Example (CLI)

-constraint_aspectratio 2.0

Example (API)

chip.set('constraint', 'aspectratio', '2.0')

Height to width ratio of the block for automated floorplanning. Values below 0.1 and above 10 should be avoided as they will likely fail to converge during placement and routing. The ideal aspect ratio for most designs is 1. This value is only used when no diearea or floorplan is supplied.

1.4.4.2. component#

1.4.4.2.1. flip#

Description

Constraint: Component flip option

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -constraint_component_flip 'inst <bool>'

Example (CLI)

-constraint_component_flip 'i0 true'

Example (API)

chip.set('constraint', 'component', 'i0', 'flip', True)

Boolean parameter specifying that the instanced library component should be flipped around the vertical axis before being placed on the substrate. The need to flip a component depends on the component footprint. Most dies have pads facing up and so must be flipped when assembled face down (eg. flip-chip, WCSP).

1.4.4.2.2. halo#

Description

Constraint: Component halo

Type

(float,float)

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

  • -constraint_component_halo 'inst <(float,float)>'

Example (CLI)

-constraint_component_halo 'i0 (1,1)'

Example (API)

chip.set('constraint', 'component', 'i0', 'halo', (1, 1))

Placement keepout halo around the named component, specified as a (horizontal, vertical) tuple represented in microns or lambda units.

1.4.4.2.3. partname#

Description

Constraint: Component part name

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_component_partname 'inst <str>'

Example (CLI)

-constraint_component_partname 'i0 filler_x1'

Example (API)

chip.set('constraint', 'component', 'i0', 'partname', 'filler_x1')

Part name of a named instance. The parameter is required for instances that are not contained within the design netlist (ie. physical only cells).

1.4.4.2.4. placement#

Description

Constraint: Component placement

Type

(float,float,float)

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

  • -constraint_component_placement 'inst <(float,float,float)>'

Example (CLI)

-constraint_component_placement 'i0 (2.0,3.0,0.0)'

Example (API)

chip.set('constraint', 'component', 'i0', 'placement', (2.0, 3.0, 0.0))

Placement location of a named instance, specified as a (x, y, z) tuple of floats. The location refers to the placement of the center/centroid of the component. The ‘placement’ parameter is a goal/intent, not an exact specification. The compiler and layout system may adjust coordinates to meet competing goals such as manufacturing design rules and grid placement guidelines. The ‘z’ coordinate shall be set to 0 for planar systems with only (x, y) coordinates. Discretized systems like PCB stacks, package stacks, and breadboards only allow a reduced set of floating point values (0, 1, 2, 3). The user specifying the placement will need to have some understanding of the type of layout system the component is being placed in (ASIC, SIP, PCB) but should not need to know exact manufacturing specifications.

1.4.4.2.5. rotation#

Description

Constraint: Component rotation

Type

float

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_component_rotation 'inst <float>'

Example (CLI)

-constraint_component_rotation 'i0 90'

Example (API)

chip.set('constraint', 'component', 'i0', 'rotation', '90')

Placement rotation of the component specified in degrees. Rotation goes counter-clockwise for all parts on top and clock-wise for parts on the bottom. In both cases, this is from the perspective of looking at the top of the board. Rotation is specified in degrees. Most gridded layout systems (like ASICs) only allow a finite number of rotation values (0, 90, 180, 270).

1.4.4.3. corearea#

Description

Constraint: Layout core area

Type

[(float,float)]

Per step/index

optional

Unit

um

Default Value

[]

CLI Switch

  • -constraint_corearea <[(float,float)]>

Example (CLI)

-constraint_corearea '(0,0)'

Example (API)

chip.set('constraint', 'corearea', (0, 0))

List of (x, y) points that define the outline of the core area for the physical design. Simple rectangle areas can be defined with two points, one for the lower left corner and one for the upper right corner. All values are specified in microns or lambda units.

1.4.4.4. coremargin#

Description

Constraint: Layout core margin

Type

float

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

  • -constraint_coremargin <float>

Example (CLI)

-constraint_coremargin 1

Example (API)

chip.set('constraint', 'coremargin', '1')

Halo/margin between the outline and core area for fully automated layout sizing and floorplanning, specified in microns or lambda units.

1.4.4.5. density#

Description

Constraint: Layout density

Type

float

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_density <float>

Example (CLI)

-constraint_density 30

Example (API)

chip.set('constraint', 'density', '30')

Target density based on the total design cells area reported after synthesis/elaboration. This number is used when no outline or floorplan is supplied. Any number between 1 and 100 is legal, but values above 50 may fail due to area/congestion issues during automated place and route.

1.4.4.6. net#

1.4.4.6.1. diffpair#

Description

Constraint: Net diffpair

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_net_diffpair 'name <str>'

Example (CLI)

-constraint_net_diffpair 'clkn clkp'

Example (API)

chip.set('constraint', 'net', 'clkn', 'diffpair', 'clkp')

Differential pair signal of the named net (only used for actual differential pairs).

1.4.4.6.2. match#

Description

Constraint: Net matched routing

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -constraint_net_match 'name <str>'

Example (CLI)

-constraint_net_match 'clk1 clk2'

Example (API)

chip.set('constraint', 'net', 'clk1', 'match', 'clk2')

List of nets whose routing should closely matched the named net in terms of length, layer, width, etc. Wildcards (‘*’) can be used for net names.

1.4.4.6.3. maxlayer#

Description

Constraint: Net maximum routing layer

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_net_maxlayer 'name <str>'

Example (CLI)

-constraint_net_maxlayer 'nreset m1'

Example (API)

chip.set('constraint', 'net', 'nreset', 'maxlayer', 'm1')

Maximum metal layer to be used for automated place and route specified on a per net basis. Metal names should either be the PDK specific metal stack name or an integer with ‘1’ being the lowest routing layer. Wildcards (‘*’) can be used for net names.

1.4.4.6.4. maxlength#

Description

Constraint: Net max length

Type

float

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

  • -constraint_net_maxlength 'name <float>'

Example (CLI)

-constraint_net_maxlength 'nreset 1000'

Example (API)

chip.set('constraint', 'net', 'nreset', 'maxlength', '1000')

Maximum total length of a net, specified in microns or lambda units. Wildcards (‘*’) can be used for net names.

1.4.4.6.5. maxresistance#

Description

Constraint: Net max resistance

Type

float

Per step/index

optional

Unit

ohm

Default Value

None

CLI Switch

  • -constraint_net_maxresistance 'name <float>'

Example (CLI)

-constraint_net_maxresistance 'nreset 1'

Example (API)

chip.set('constraint', 'net', 'nreset', 'maxresistance', '1')

Maximum resistance of named net between driver and receiver specified in ohms. Wildcards (‘*’) can be used for net names.

1.4.4.6.6. minlayer#

Description

Constraint: Net minimum routing layer

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_net_minlayer 'name <str>'

Example (CLI)

-constraint_net_minlayer 'nreset m1'

Example (API)

chip.set('constraint', 'net', 'nreset', 'minlayer', 'm1')

Minimum metal layer to be used for automated place and route specified on a per net basis. Metal names should either be the PDK specific metal stack name or an integer with ‘1’ being the lowest routing layer. Wildcards (‘*’) can be used for net names.

1.4.4.6.7. ndr#

Description

Constraint: Net routing rule

Type

(float,float)

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

  • -constraint_net_ndr 'name <(float,float)>'

Example (CLI)

-constraint_net_ndr 'nreset (0.4,0.4)'

Example (API)

chip.set('constraint', 'net', 'nreset', 'ndr', (0.4, 0.4))

Definitions of non-default routing rule specified on a per net basis. Constraints are entered as a (width, space) tuples specified in microns or lambda units. Wildcards (‘*’) can be used for net names.

1.4.4.6.8. shield#

Description

Constraint: Net shielding

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_net_shield 'name <str>'

Example (CLI)

-constraint_net_shield 'clk vss'

Example (API)

chip.set('constraint', 'net', 'clk', 'shield', 'vss')

Specifies that the named net should be shielded by the given signal on both sides of the net.

1.4.4.6.9. sympair#

Description

Constraint: Net sympair

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_net_sympair 'name <str>'

Example (CLI)

-constraint_net_sympair 'netA netB'

Example (API)

chip.set('constraint', 'net', 'netA', 'sympair', 'netB')

Symmetrical pair signal to the named net. The two nets should be routed as reflections around the vertical or horizontal axis to minimize on-chip variability.

1.4.4.7. outline#

Description

Constraint: Layout outline

Type

[(float,float)]

Per step/index

optional

Unit

um

Default Value

[]

CLI Switch

  • -constraint_outline <[(float,float)]>

Example (CLI)

-constraint_outline '(0,0)'

Example (API)

chip.set('constraint', 'outline', (0, 0))

List of (x, y) points that define the outline physical layout physical design. Simple rectangle areas can be defined with two points, one for the lower left corner and one for the upper right corner. All values are specified in microns or lambda units.

1.4.4.8. pin#

1.4.4.8.1. layer#

Description

Constraint: Pin layer

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_pin_layer 'name <str>'

Example (CLI)

-constraint_pin_layer 'nreset m4'

Example (API)

chip.set('constraint', 'pin', 'nreset', 'layer', 'm4')

Pin metal layer specified based on the SC standard layer stack starting with m1 as the lowest routing layer and ending with m<n> as the highest routing layer.

1.4.4.8.2. order#

Description

Constraint: Pin order

Type

int

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_pin_order 'name <int>'

Example (CLI)

-constraint_pin_order 'nreset 1'

Example (API)

chip.set('constraint', 'pin', 'nreset', 'order', 1)

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.

1.4.4.8.3. placement#

Description

Constraint: Pin placement

Type

(float,float,float)

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

  • -constraint_pin_placement 'name <(float,float,float)>'

Example (CLI)

-constraint_pin_placement 'nreset (2.0,3.0,0.0)'

Example (API)

chip.set('constraint', 'pin', 'nreset', 'placement', (2.0, 3.0, 0.0))

Placement location of a named pin, specified as a (x, y, z) tuple of floats. The location refers to the placement of the center of the pin. The ‘placement’ parameter is a goal/intent, not an exact specification. The compiler and layout system may adjust sizes to meet competing goals such as manufacturing design rules and grid placement guidelines. The ‘z’ coordinate shall be set to 0 for planar components with only (x, y) coordinates. Discretized systems like 3D chips with pins on top and bottom may choose to discretize the top and bottom layer as 0, 1 or use absolute coordinates. Values are specified in microns or lambda units.

1.4.4.8.4. side#

Description

Constraint: Pin side

Type

int

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_pin_side 'name <int>'

Example (CLI)

-constraint_pin_side 'nreset 1'

Example (API)

chip.set('constraint', 'pin', 'nreset', 'side', 1)

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.

1.4.4.9. timing#

1.4.4.9.1. check#

Description

Constraint: timing checks

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -constraint_timing_check 'scenario <str>'

Example (CLI)

-constraint_timing_check 'worst setup'

Example (API)

chip.add('constraint', 'timing', 'worst', 'check', 'setup')

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.

1.4.4.9.2. file#

Description

Constraint: SDC files

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -constraint_timing_file 'scenario <file>'

Example (CLI)

-constraint_timing_file 'worst hello.sdc'

Example (API)

chip.set('constraint', 'timing', 'worst', 'file', 'hello.sdc')

List of timing constraint 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.

1.4.4.9.3. libcorner#

Description

Constraint: library corner

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -constraint_timing_libcorner 'scenario <str>'

Example (CLI)

-constraint_timing_libcorner 'worst ttt'

Example (API)

chip.set('constraint', 'timing', 'worst', 'libcorner', 'ttt')

List of characterization corners used to select timing files for all logiclibs and macrolibs.

1.4.4.9.4. mode#

Description

Constraint: operating mode

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_timing_mode 'scenario <str>'

Example (CLI)

-constraint_timing_mode 'worst test'

Example (API)

chip.set('constraint', 'timing', 'worst', 'mode', 'test')

Operating mode for the scenario. Operating mode strings can be values such as test, functional, standby.

1.4.4.9.5. opcond#

Description

Constraint: operating condition

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_timing_opcond 'scenario <str>'

Example (CLI)

-constraint_timing_opcond 'worst typical_1.0'

Example (API)

chip.set('constraint', 'timing', 'worst', 'opcond', 'typical_1.0')

Operating condition applied to the scenario. The value can be used to access specific conditions within the library timing models from the ‘logiclib’ timing models.

1.4.4.9.6. pexcorner#

Description

Constraint: pex corner

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -constraint_timing_pexcorner 'scenario <str>'

Example (CLI)

-constraint_timing_pexcorner 'worst max'

Example (API)

chip.set('constraint', 'timing', 'worst', 'pexcorner', 'max')

Parasitic corner applied to the scenario. The ‘pexcorner’ string must match a corner found in the pdk pexmodel setup.

1.4.4.9.7. temperature#

Description

Constraint: temperature

Type

float

Per step/index

optional

Unit

C

Default Value

None

CLI Switch

  • -constraint_timing_temperature 'scenario <float>'

Example (CLI)

-constraint_timing_temperature 'worst 125'

Example (API)

chip.set('constraint', 'timing', 'worst', 'temperature', '125')

Chip temperature applied to the scenario specified in degrees C.

1.4.4.9.8. voltage#

Description

Constraint: pin voltage level

Type

float

Per step/index

optional

Unit

V

Default Value

None

CLI Switch

  • -constraint_timing_voltage 'scenario <pin> <float>'

Example (CLI)

-constraint_timing_voltage 'worst VDD 0.9'

Example (API)

chip.set('constraint', 'timing', 'worst', 'voltage', 'VDD', '0.9')

Operating voltage applied to a specific pin in the scenario.

1.4.5. datasheet#

1.4.5.1. abstraction#

Description

Datasheet: abstraction level

Type

[enum]

Default Value

[]

CLI Switch

  • -datasheet_abstraction '<str>'

Example (CLI)

-datasheet_abstraction model

Example (API)

chip.set('datasheet', 'abstraction', 'model')

List of device abstraction levels.

1.4.5.2. analog#

1.4.5.2.1. arch#

Description

Datasheet: analog architecture

Type

str

Default Value

None

CLI Switch

  • -datasheet_analog_arch 'name <str>'

Example (CLI)

-datasheet_analog_arch 'adc0 pipelined'

Example (API)

chip.set('datasheet', 'analog', 'adc0', 'arch', 'pipelined')

Analog component architecture.

1.4.5.2.2. channels#

Description

Datasheet: Analog parallel channels

Type

int

Default Value

None

CLI Switch

  • -datasheet_analog_channels 'name <int>'

Example (CLI)

-datasheet_analog_channels 'i0 8'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'channels', 8)

Analog 8.

1.4.5.2.3. cmrr#

Description

Datasheet: Analog common mode rejection ratio

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_cmrr 'name <float>'

Example (CLI)

-datasheet_analog_cmrr 'i0 (70, 80, 90)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'cmrr', (70, 80, 90))

Analog (70, 80, 90).

1.4.5.2.4. dnl#

Description

Datasheet: Analog differential nonlinearity

Type

(float,float,float)

Unit

LSB

Default Value

None

CLI Switch

  • -datasheet_analog_dnl 'name <float>'

Example (CLI)

-datasheet_analog_dnl 'i0 (-1.0, 0.0, 1.0)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'dnl', (-1.0, 0.0, 1.0))

Analog (-1.0, 0.0, 1.0).

1.4.5.2.5. enob#

Description

Datasheet: Analog effective number of bits

Type

(float,float,float)

Unit

bits

Default Value

None

CLI Switch

  • -datasheet_analog_enob 'name <float>'

Example (CLI)

-datasheet_analog_enob 'i0 (8, 9, 10)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'enob', (8, 9, 10))

Analog (8, 9, 10).

1.4.5.2.6. features#

Description

Datasheet: analog features

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_analog_features 'name <str>'

Example (CLI)

-datasheet_analog_features '0 differential input'

Example (API)

chip.set('datasheet','analog','adc0','features', 'differential input')

List of maker specified analog features.

1.4.5.2.7. gain#

Description

Datasheet: Analog gain

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_gain 'name <float>'

Example (CLI)

-datasheet_analog_gain 'i0 (11.4, 11.4, 11.4)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'gain', (11.4, 11.4, 11.4))

Analog (11.4, 11.4, 11.4).

1.4.5.2.8. hd2#

Description

Datasheet: Analog 2nd order harmonic distortion

Type

(float,float,float)

Unit

dBc

Default Value

None

CLI Switch

  • -datasheet_analog_hd2 'name <float>'

Example (CLI)

-datasheet_analog_hd2 'i0 (62, 64, 66)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'hd2', (62, 64, 66))

Analog (62, 64, 66).

1.4.5.2.9. hd3#

Description

Datasheet: Analog 3rd order harmonic distortion

Type

(float,float,float)

Unit

dBc

Default Value

None

CLI Switch

  • -datasheet_analog_hd3 'name <float>'

Example (CLI)

-datasheet_analog_hd3 'i0 (62, 64, 66)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'hd3', (62, 64, 66))

Analog (62, 64, 66).

1.4.5.2.10. hd4#

Description

Datasheet: Analog 4th order harmonic distortion

Type

(float,float,float)

Unit

dBc

Default Value

None

CLI Switch

  • -datasheet_analog_hd4 'name <float>'

Example (CLI)

-datasheet_analog_hd4 'i0 (62, 64, 66)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'hd4', (62, 64, 66))

Analog (62, 64, 66).

1.4.5.2.11. ib1db#

Description

Datasheet: Analog rf in band 1 dB compression point

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_ib1db 'name <float>'

Example (CLI)

-datasheet_analog_ib1db 'i0 (-1, 1, 1)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'ib1db', (-1, 1, 1))

Analog (-1, 1, 1).

1.4.5.2.12. iip3#

Description

Datasheet: Analog rf 3rd order input intercept point

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_iip3 'name <float>'

Example (CLI)

-datasheet_analog_iip3 'i0 (3, 3, 3)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'iip3', (3, 3, 3))

Analog (3, 3, 3).

1.4.5.2.13. imd3#

Description

Datasheet: Analog 3rd order intermodulation distortion

Type

(float,float,float)

Unit

dBc

Default Value

None

CLI Switch

  • -datasheet_analog_imd3 'name <float>'

Example (CLI)

-datasheet_analog_imd3 'i0 (82, 88, 98)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'imd3', (82, 88, 98))

Analog (82, 88, 98).

1.4.5.2.14. inl#

Description

Datasheet: Analog integral nonlinearity

Type

(float,float,float)

Unit

LSB

Default Value

None

CLI Switch

  • -datasheet_analog_inl 'name <float>'

Example (CLI)

-datasheet_analog_inl 'i0 (-7, 0.0, 7)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'inl', (-7, 0.0, 7))

Analog (-7, 0.0, 7).

1.4.5.2.15. noisefigure#

Description

Datasheet: Analog rf noise figure

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_noisefigure 'name <float>'

Example (CLI)

-datasheet_analog_noisefigure 'i0 (4.6, 4.6, 4.6)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'noisefigure', (4.6, 4.6, 4.6))

Analog (4.6, 4.6, 4.6).

1.4.5.2.16. nsd#

Description

Datasheet: Analog noise spectral density

Type

(float,float,float)

Unit

dBFS/Hz

Default Value

None

CLI Switch

  • -datasheet_analog_nsd 'name <float>'

Example (CLI)

-datasheet_analog_nsd 'i0 (-158, -158, -158)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'nsd', (-158, -158, -158))

Analog (-158, -158, -158).

1.4.5.2.17. oob1db#

Description

Datasheet: Analog rf out of band 1 dB compression point

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_oob1db 'name <float>'

Example (CLI)

-datasheet_analog_oob1db 'i0 (3, 3, 3)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'oob1db', (3, 3, 3))

Analog (3, 3, 3).

1.4.5.2.18. phasenoise#

Description

Datasheet: Analog phase noise

Type

(float,float,float)

Unit

dBc/Hz

Default Value

None

CLI Switch

  • -datasheet_analog_phasenoise 'name <float>'

Example (CLI)

-datasheet_analog_phasenoise 'i0 (-158, -158, -158)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'phasenoise', (-158, -158, -158))

Analog (-158, -158, -158).

1.4.5.2.19. pout#

Description

Datasheet: Analog output power

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_pout 'name <float>'

Example (CLI)

-datasheet_analog_pout 'i0 (12.2, 12.2, 12.2)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'pout', (12.2, 12.2, 12.2))

Analog (12.2, 12.2, 12.2).

1.4.5.2.20. pout2#

Description

Datasheet: Analog 2nd harmonic power

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_pout2 'name <float>'

Example (CLI)

-datasheet_analog_pout2 'i0 (-14, -14, -14)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'pout2', (-14, -14, -14))

Analog (-14, -14, -14).

1.4.5.2.21. pout3#

Description

Datasheet: Analog 3rd harmonic power

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_pout3 'name <float>'

Example (CLI)

-datasheet_analog_pout3 'i0 (-28, -28, -28)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'pout3', (-28, -28, -28))

Analog (-28, -28, -28).

1.4.5.2.22. psnr#

Description

Datasheet: Analog power supply noise rejection

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_psnr 'name <float>'

Example (CLI)

-datasheet_analog_psnr 'i0 (61, 61, 61)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'psnr', (61, 61, 61))

Analog (61, 61, 61).

1.4.5.2.23. resolution#

Description

Datasheet: Analog architecture resolution

Type

int

Default Value

None

CLI Switch

  • -datasheet_analog_resolution 'name <int>'

Example (CLI)

-datasheet_analog_resolution 'i0 8'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'resolution', 8)

Analog 8.

1.4.5.2.24. s11#

Description

Datasheet: Analog rf input return loss

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_s11 'name <float>'

Example (CLI)

-datasheet_analog_s11 'i0 (7, 7, 7)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 's11', (7, 7, 7))

Analog (7, 7, 7).

1.4.5.2.25. s12#

Description

Datasheet: Analog rf reverse isolation

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_s12 'name <float>'

Example (CLI)

-datasheet_analog_s12 'i0 (-20, -20, -20)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 's12', (-20, -20, -20))

Analog (-20, -20, -20).

1.4.5.2.26. s21#

Description

Datasheet: Analog rf gain

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_s21 'name <float>'

Example (CLI)

-datasheet_analog_s21 'i0 (10, 11, 12)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 's21', (10, 11, 12))

Analog (10, 11, 12).

1.4.5.2.27. s22#

Description

Datasheet: Analog rf output return loss

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_s22 'name <float>'

Example (CLI)

-datasheet_analog_s22 'i0 (10, 10, 10)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 's22', (10, 10, 10))

Analog (10, 10, 10).

1.4.5.2.28. samplerate#

Description

Datasheet: Analog sample rate

Type

(float,float,float)

Unit

Hz

Default Value

None

CLI Switch

  • -datasheet_analog_samplerate 'name <float>'

Example (CLI)

-datasheet_analog_samplerate 'i0 (1000000000.0, 1000000000.0, 1000000000.0)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'samplerate', (1000000000.0, 1000000000.0, 1000000000.0))

Analog (1000000000.0, 1000000000.0, 1000000000.0).

1.4.5.2.29. sfdr#

Description

Datasheet: Analog spurious-free dynamic range

Type

(float,float,float)

Unit

dBc

Default Value

None

CLI Switch

  • -datasheet_analog_sfdr 'name <float>'

Example (CLI)

-datasheet_analog_sfdr 'i0 (82, 88, 98)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'sfdr', (82, 88, 98))

Analog (82, 88, 98).

1.4.5.2.30. sinad#

Description

Datasheet: Analog signal to noise and distortion ratio

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_sinad 'name <float>'

Example (CLI)

-datasheet_analog_sinad 'i0 (71, 72, 73)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'sinad', (71, 72, 73))

Analog (71, 72, 73).

1.4.5.2.31. snr#

Description

Datasheet: Analog signal to noise ratio

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_snr 'name <float>'

Example (CLI)

-datasheet_analog_snr 'i0 (70, 72, 74)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'snr', (70, 72, 74))

Analog (70, 72, 74).

1.4.5.2.32. thd#

Description

Datasheet: Analog total harmonic distortion

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_thd 'name <float>'

Example (CLI)

-datasheet_analog_thd 'i0 (82, 88, 98)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'thd', (82, 88, 98))

Analog (82, 88, 98).

1.4.5.2.33. vgainerror#

Description

Datasheet: Analog gain error

Type

(float,float,float)

Unit

mV

Default Value

None

CLI Switch

  • -datasheet_analog_vgainerror 'name <float>'

Example (CLI)

-datasheet_analog_vgainerror 'i0 (-1.0, 0.0, 1.0)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'vgainerror', (-1.0, 0.0, 1.0))

Analog (-1.0, 0.0, 1.0).

1.4.5.2.34. vofferror#

Description

Datasheet: Analog offset error

Type

(float,float,float)

Unit

mV

Default Value

None

CLI Switch

  • -datasheet_analog_vofferror 'name <float>'

Example (CLI)

-datasheet_analog_vofferror 'i0 (-1.0, 0.0, 1.0)'

Example (API)

chip.set('datasheet', 'analog', 'abc123', 'vofferror', (-1.0, 0.0, 1.0))

Analog (-1.0, 0.0, 1.0).

1.4.5.3. description#

Description

Datasheet: description

Type

str

Default Value

None

CLI Switch

  • -datasheet_description '<str>'

Example (CLI)

-datasheet_description 'Yet another CPU'

Example (API)

chip.set('datasheet', 'description', 'Yet another CPU')

Free text device description

1.4.5.4. doc#

Description

Datasheet: part documentation

Type

[file]

Default Value

[]

CLI Switch

  • -datasheet_doc '<file>'

Example (CLI)

-datasheet_doc 'za001.pdf'

Example (API)

chip.set('datasheet', 'doc', 'za001.pdf)

Device datasheet document.

1.4.5.5. features#

Description

Datasheet: part features

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_features '<str>'

Example (CLI)

-datasheet_features 'usb3.0'

Example (API)

chip.set('datasheet', 'features', 'usb3.0')

List of manufacturer specified device features

1.4.5.6. fmax#

Description

Datasheet: device maximum frequency

Type

float

Unit

MHz

Default Value

None

CLI Switch

  • -datasheet_fmax '<float>'

Example (CLI)

-datasheet_fmax 100'

Example (API)

chip.set('datasheet', 'fmax', 100')

Device maximum operating frequency.

1.4.5.7. fpga#

1.4.5.7.1. arch#

Description

Datasheet: fpga architecture

Type

str

Default Value

None

CLI Switch

  • -datasheet_fpga_arch 'name <str>'

Example (CLI)

-datasheet_fpga_arch 'i0 openfpga'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'arch', 'openfpga')

FPGA architecture.

1.4.5.7.2. blockram#

Description

Datasheet: fpga block ram

Type

int

Unit

Kb

Default Value

None

CLI Switch

  • -datasheet_fpga_blockram 'name <int>'

Example (CLI)

-datasheet_fpga_blockram 'i0 128'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'blockram', 128)

FPGA 128.

1.4.5.7.3. distram#

Description

Datasheet: fpga distributed ram

Type

int

Unit

Kb

Default Value

None

CLI Switch

  • -datasheet_fpga_distram 'name <int>'

Example (CLI)

-datasheet_fpga_distram 'i0 128'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'distram', 128)

FPGA 128.

1.4.5.7.4. luts#

Description

Datasheet: fpga LUTs (4 input)

Type

int

Default Value

None

CLI Switch

  • -datasheet_fpga_luts 'name <int>'

Example (CLI)

-datasheet_fpga_luts 'i0 32000'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'luts', 32000)

FPGA 32000.

1.4.5.7.5. mults#

Description

Datasheet: fpga multiplier/dsp elements

Type

int

Default Value

None

CLI Switch

  • -datasheet_fpga_mults 'name <int>'

Example (CLI)

-datasheet_fpga_mults 'i0 100'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'mults', 100)

FPGA 100.

1.4.5.7.6. plls#

Description

Datasheet: fpga pll blocks

Type

int

Default Value

None

CLI Switch

  • -datasheet_fpga_plls 'name <int>'

Example (CLI)

-datasheet_fpga_plls 'i0 1'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'plls', 1)

FPGA 1.

1.4.5.7.7. registers#

Description

Datasheet: fpga registers

Type

int

Default Value

None

CLI Switch

  • -datasheet_fpga_registers 'name <int>'

Example (CLI)

-datasheet_fpga_registers 'i0 100'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'registers', 100)

FPGA 100.

1.4.5.7.8. totalram#

Description

Datasheet: fpga total ram

Type

int

Unit

Kb

Default Value

None

CLI Switch

  • -datasheet_fpga_totalram 'name <int>'

Example (CLI)

-datasheet_fpga_totalram 'i0 128'

Example (API)

chip.set('datasheet', 'fpga', 'i0', 'totalram', 128)

FPGA 128.

1.4.5.8. grade#

Description

Datasheet: part manufacturing grade

Type

enum

Allowed Values

  • consumer
  • industrial
  • medical
  • automotive
  • military
  • space

Default Value

None

CLI Switch

  • -datasheet_grade '<str>'

Example (CLI)

-datasheet_grade 'automotive'

Example (API)

chip.set('datasheet', 'grade', 'automotive')

Device end application qualification grade.

1.4.5.9. io#

1.4.5.9.1. arch#

Description

Datasheet: io standard

Type

enum

Allowed Values

  • spi
  • uart
  • i2c
  • pwm
  • qspi
  • sdio
  • can
  • jtag
  • ddr
  • hbm
  • onfi
  • sram
  • hdmi
  • mipi-csi
  • mipi-dsi
  • slvs
  • sata
  • usb
  • pcie
  • cxl
  • spdif
  • i2s
  • gpio
  • lvds
  • serdes
  • pio
  • ethernet
  • rmii
  • rgmii
  • sgmii
  • xaui
  • 10gbase-kr
  • 25gbase-kr
  • xfi
  • cei28g
  • jesd204
  • cpri

Default Value

None

CLI Switch

  • -datasheet_io_arch 'name <str>'

Example (CLI)

-datasheet_io_arch 'mif0 ddr'

Example (API)

chip.set('datasheet', 'io', 'mif0', 'arch', 'ddr')

Datasheet: IO standard architecture specified on a per port basis.

1.4.5.9.2. channels#

Description

Datasheet: io channels

Type

int

Default Value

None

CLI Switch

  • -datasheet_io_channels 'name <int>'

Example (CLI)

-datasheet_io_channels 'name 4'

Example (API)

chip.set('datasheet', 'io', name, 'channels', 4)

Datasheet: IO 4 metrics specified on a per port basis.

1.4.5.9.3. fmax#

Description

Datasheet: io maximum frequency

Type

float

Unit

MHz

Default Value

None

CLI Switch

  • -datasheet_io_fmax 'name <int>'

Example (CLI)

-datasheet_io_fmax 'name 100'

Example (API)

chip.set('datasheet', 'io', name, 'fmax', 100)

Datasheet: IO 100 metrics specified on a per port basis.

1.4.5.9.4. gen#

Description

Datasheet: io generation

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_io_gen 'name <str>'

Example (CLI)

-datasheet_io_gen 'ddr 3'

Example (API)

chip.set('datasheet', 'io', 'ddr', 'gen', '3')

Datasheet: list of IO generations (versions) supported specified on a per port basis.

1.4.5.9.5. width#

Description

Datasheet: io width

Type

int

Default Value

None

CLI Switch

  • -datasheet_io_width 'name <int>'

Example (CLI)

-datasheet_io_width 'name 4'

Example (API)

chip.set('datasheet', 'io', name, 'width', 4)

Datasheet: IO 4 metrics specified on a per port basis.

1.4.5.10. iobw#

Description

Datasheet: total I/O bandwidth

Type

float

Unit

bps

Default Value

None

CLI Switch

  • -datasheet_iobw '<float>'

Example (CLI)

-datasheet_iobw 1e18'

Example (API)

chip.set('datasheet', 'iobw', 1e18)

Device peak off-device bandwidth in bits per second.

1.4.5.11. iocount#

Description

Datasheet: total number of I/Os

Type

int

Default Value

None

CLI Switch

  • -datasheet_iocount '<int>'

Example (CLI)

-datasheet_iocount 100'

Example (API)

chip.set('datasheet', 'iocount', 100)

Device total number of I/Os (not counting supplies).

1.4.5.12. limit#

1.4.5.12.1. seb#

Description

Datasheet: limit single event burnout threshold

Type

(float,float)

Unit

MeV-cm2/mg

Default Value

None

CLI Switch

  • -datasheet_limit_seb '<(float,float)>'

Example (CLI)

-datasheet_limit_seb '(75, 75)'

Example (API)

chip.set('datasheet', 'limit', 'seb', (75, 75)

Limit single event burnout threshold. Values are tuples of (min, max).

1.4.5.12.2. segr#

Description

Datasheet: limit single event gate rupture threshold

Type

(float,float)

Unit

MeV-cm2/mg

Default Value

None

CLI Switch

  • -datasheet_limit_segr '<(float,float)>'

Example (CLI)

-datasheet_limit_segr '(75, 75)'

Example (API)

chip.set('datasheet', 'limit', 'segr', (75, 75)

Limit single event gate rupture threshold. Values are tuples of (min, max).

1.4.5.12.3. sel#

Description

Datasheet: limit single event latchup threshold

Type

(float,float)

Unit

MeV-cm2/mg

Default Value

None

CLI Switch

  • -datasheet_limit_sel '<(float,float)>'

Example (CLI)

-datasheet_limit_sel '(75, 75)'

Example (API)

chip.set('datasheet', 'limit', 'sel', (75, 75)

Limit single event latchup threshold. Values are tuples of (min, max).

1.4.5.12.4. set#

Description

Datasheet: limit single event transient threshold

Type

(float,float)

Unit

MeV-cm2/mg

Default Value

None

CLI Switch

  • -datasheet_limit_set '<(float,float)>'

Example (CLI)

-datasheet_limit_set '(75, 75)'

Example (API)

chip.set('datasheet', 'limit', 'set', (75, 75)

Limit single event transient threshold. Values are tuples of (min, max).

1.4.5.12.5. seu#

Description

Datasheet: limit single event upset threshold

Type

(float,float)

Unit

MeV-cm2/mg

Default Value

None

CLI Switch

  • -datasheet_limit_seu '<(float,float)>'

Example (CLI)

-datasheet_limit_seu '(75, 75)'

Example (API)

chip.set('datasheet', 'limit', 'seu', (75, 75)

Limit single event upset threshold. Values are tuples of (min, max).

1.4.5.12.6. ta#

Description

Datasheet: limit ambient temperature limits

Type

(float,float)

Unit

C

Default Value

None

CLI Switch

  • -datasheet_limit_ta '<(float,float)>'

Example (CLI)

-datasheet_limit_ta '(-40, 125)'

Example (API)

chip.set('datasheet', 'limit', 'ta', (-40, 125)

Limit ambient temperature limits. Values are tuples of (min, max).

1.4.5.12.7. tid#

Description

Datasheet: limit total ionizing dose threshold

Type

(float,float)

Unit

rad

Default Value

None

CLI Switch

  • -datasheet_limit_tid '<(float,float)>'

Example (CLI)

-datasheet_limit_tid '(300000.0, 300000.0)'

Example (API)

chip.set('datasheet', 'limit', 'tid', (300000.0, 300000.0)

Limit total ionizing dose threshold. Values are tuples of (min, max).

1.4.5.12.8. tj#

Description

Datasheet: limit junction temperature limits

Type

(float,float)

Unit

C

Default Value

None

CLI Switch

  • -datasheet_limit_tj '<(float,float)>'

Example (CLI)

-datasheet_limit_tj '(-40, 125)'

Example (API)

chip.set('datasheet', 'limit', 'tj', (-40, 125)

Limit junction temperature limits. Values are tuples of (min, max).

1.4.5.12.9. tsolder#

Description

Datasheet: limit solder temperature limits

Type

(float,float)

Unit

C

Default Value

None

CLI Switch

  • -datasheet_limit_tsolder '<(float,float)>'

Example (CLI)

-datasheet_limit_tsolder '(-40, 125)'

Example (API)

chip.set('datasheet', 'limit', 'tsolder', (-40, 125)

Limit solder temperature limits. Values are tuples of (min, max).

1.4.5.12.10. tstorage#

Description

Datasheet: limit storage temperature limits

Type

(float,float)

Unit

C

Default Value

None

CLI Switch

  • -datasheet_limit_tstorage '<(float,float)>'

Example (CLI)

-datasheet_limit_tstorage '(-40, 125)'

Example (API)

chip.set('datasheet', 'limit', 'tstorage', (-40, 125)

Limit storage temperature limits. Values are tuples of (min, max).

1.4.5.12.11. vcdm#

Description

Datasheet: limit ESD charge device model voltage level

Type

(float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_limit_vcdm '<(float,float)>'

Example (CLI)

-datasheet_limit_vcdm '(150, 150)'

Example (API)

chip.set('datasheet', 'limit', 'vcdm', (150, 150)

Limit ESD charge device model voltage level. Values are tuples of (min, max).

1.4.5.12.12. vhbm#

Description

Datasheet: limit ESD human body model voltage level

Type

(float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_limit_vhbm '<(float,float)>'

Example (CLI)

-datasheet_limit_vhbm '(200, 250)'

Example (API)

chip.set('datasheet', 'limit', 'vhbm', (200, 250)

Limit ESD human body model voltage level. Values are tuples of (min, max).

1.4.5.12.13. vmm#

Description

Datasheet: limit ESD machine model voltage level

Type

(float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_limit_vmm '<(float,float)>'

Example (CLI)

-datasheet_limit_vmm '(125, 125)'

Example (API)

chip.set('datasheet', 'limit', 'vmm', (125, 125)

Limit ESD machine model voltage level. Values are tuples of (min, max).

1.4.5.13. manufacturer#

Description

Datasheet: part manufacturer

Type

str

Default Value

None

CLI Switch

  • -datasheet_manufacturer '<str>'

Example (CLI)

-datasheet_manufacturer 'Acme'

Example (API)

chip.set('datasheet', 'manufacturer', 'Acme')

Device manufacturer/vendor.

1.4.5.14. memory#

1.4.5.14.1. banks#

Description

Datasheet: memory banks

Type

int

Default Value

None

CLI Switch

  • -datasheet_memory_banks 'name <int>'

Example (CLI)

-datasheet_memory_banks 'm0 4'

Example (API)

chip.set('datasheet', 'memory', 'm0', 'banks', 4)

Memory banks.

1.4.5.14.2. bits#

Description

Datasheet: memory total bits

Type

int

Default Value

None

CLI Switch

  • -datasheet_memory_bits 'name <int>'

Example (CLI)

-datasheet_memory_bits 'm0 1024'

Example (API)

chip.set('datasheet', 'memory', 'm0', 'bits', 1024)

Memory total number of bits.

1.4.5.14.3. bwrd#

Description

Datasheet: memory maximum read bandwidth

Type

(float,float,float)

Unit

bps

Default Value

None

CLI Switch

  • -datasheet_memory_bwrd 'name <float>'

Example (CLI)

-datasheet_memory_bwrd 'name (1000000000.0, 1000000000.0, 1000000000.0)'

Example (API)

chip.set('datasheet', 'memory', name, 'bwrd', (1000000000.0, 1000000000.0, 1000000000.0))

Memory (1000000000.0, 1000000000.0, 1000000000.0).

1.4.5.14.4. bwwr#

Description

Datasheet: memory maximum write bandwidth

Type

(float,float,float)

Unit

bps

Default Value

None

CLI Switch

  • -datasheet_memory_bwwr 'name <float>'

Example (CLI)

-datasheet_memory_bwwr 'name (1000000000.0, 1000000000.0, 1000000000.0)'

Example (API)

chip.set('datasheet', 'memory', name, 'bwwr', (1000000000.0, 1000000000.0, 1000000000.0))

Memory (1000000000.0, 1000000000.0, 1000000000.0).

1.4.5.14.5. depth#

Description

Datasheet: memory depth

Type

int

Default Value

None

CLI Switch

  • -datasheet_memory_depth 'name <int>'

Example (CLI)

-datasheet_memory_depth 'm0 128'

Example (API)

chip.set('datasheet', 'memory', 'm0', 'depth', 128)

Memory depth.

1.4.5.14.6. erd#

Description

Datasheet: memory read energy

Type

(float,float,float)

Unit

J

Default Value

None

CLI Switch

  • -datasheet_memory_erd 'name <float>'

Example (CLI)

-datasheet_memory_erd 'name (1e-12, 2e-12, 3e-12)'

Example (API)

chip.set('datasheet', 'memory', name, 'erd', (1e-12, 2e-12, 3e-12))

Memory (1e-12, 2e-12, 3e-12).

1.4.5.14.7. ewr#

Description

Datasheet: memory write energy

Type

(float,float,float)

Unit

J

Default Value

None

CLI Switch

  • -datasheet_memory_ewr 'name <float>'

Example (CLI)

-datasheet_memory_ewr 'name (1e-12, 2e-12, 3e-12)'

Example (API)

chip.set('datasheet', 'memory', name, 'ewr', (1e-12, 2e-12, 3e-12))

Memory (1e-12, 2e-12, 3e-12).

1.4.5.14.8. fmax#

Description

Datasheet: memory max frequency

Type

(float,float,float)

Unit

Hz

Default Value

None

CLI Switch

  • -datasheet_memory_fmax 'name <float>'

Example (CLI)

-datasheet_memory_fmax 'name (1000000000.0, 1000000000.0, 1000000000.0)'

Example (API)

chip.set('datasheet', 'memory', name, 'fmax', (1000000000.0, 1000000000.0, 1000000000.0))

Memory (1000000000.0, 1000000000.0, 1000000000.0).

1.4.5.14.9. tcl#

Description

Datasheet: memory column address latency

Type

(int,int,int)

Unit

cycles

Default Value

None

CLI Switch

  • -datasheet_memory_tcl 'name <int>'

Example (CLI)

-datasheet_memory_tcl 'name (100, 100, 100)'

Example (API)

chip.set('datasheet', 'memory', name, 'tcl', (100, 100, 100))

Memory (100, 100, 100).

1.4.5.14.10. tcycle#

Description

Datasheet: memory access clock cycle

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_tcycle 'name <float>'

Example (CLI)

-datasheet_memory_tcycle 'name (9.0, 10.0, 11.0)'

Example (API)

chip.set('datasheet', 'memory', name, 'tcycle', (9.0, 10.0, 11.0))

Memory (9.0, 10.0, 11.0).

1.4.5.14.11. terase#

Description

Datasheet: memory erase time

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_memory_terase 'name <float>'

Example (CLI)

-datasheet_memory_terase 'name (1e-06, 1e-06, 1e-06)'

Example (API)

chip.set('datasheet', 'memory', name, 'terase', (1e-06, 1e-06, 1e-06))

Memory (1e-06, 1e-06, 1e-06).

1.4.5.14.12. tras#

Description

Datasheet: memory row active time latency

Type

(int,int,int)

Unit

cycles

Default Value

None

CLI Switch

  • -datasheet_memory_tras 'name <int>'

Example (CLI)

-datasheet_memory_tras 'name (100, 100, 100)'

Example (API)

chip.set('datasheet', 'memory', name, 'tras', (100, 100, 100))

Memory (100, 100, 100).

1.4.5.14.13. trcd#

Description

Datasheet: memory row address latency

Type

(int,int,int)

Unit

cycles

Default Value

None

CLI Switch

  • -datasheet_memory_trcd 'name <int>'

Example (CLI)

-datasheet_memory_trcd 'name (100, 100, 100)'

Example (API)

chip.set('datasheet', 'memory', name, 'trcd', (100, 100, 100))

Memory (100, 100, 100).

1.4.5.14.14. trd#

Description

Datasheet: memory read clock cycle

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_trd 'name <float>'

Example (CLI)

-datasheet_memory_trd 'name (0.9, 1, 1.1)'

Example (API)

chip.set('datasheet', 'memory', name, 'trd', (0.9, 1, 1.1))

Memory (0.9, 1, 1.1).

1.4.5.14.15. trefresh#

Description

Datasheet: memory refresh time

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_trefresh 'name <float>'

Example (CLI)

-datasheet_memory_trefresh 'name (99, 100, 101)'

Example (API)

chip.set('datasheet', 'memory', name, 'trefresh', (99, 100, 101))

Memory (99, 100, 101).

1.4.5.14.16. trp#

Description

Datasheet: memory row precharge time latency

Type

(int,int,int)

Unit

cycles

Default Value

None

CLI Switch

  • -datasheet_memory_trp 'name <int>'

Example (CLI)

-datasheet_memory_trp 'name (100, 100, 100)'

Example (API)

chip.set('datasheet', 'memory', name, 'trp', (100, 100, 100))

Memory (100, 100, 100).

1.4.5.14.17. twearout#

Description

Datasheet: memory write/erase wear-out

Type

(float,float,float)

Unit

cycles

Default Value

None

CLI Switch

  • -datasheet_memory_twearout 'name <float>'

Example (CLI)

-datasheet_memory_twearout 'name (100000.0, 1000000.0, 10000000.0)'

Example (API)

chip.set('datasheet', 'memory', name, 'twearout', (100000.0, 1000000.0, 10000000.0))

Memory (100000.0, 1000000.0, 10000000.0).

1.4.5.14.18. twr#

Description

Datasheet: memory write clock cycle

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_twr 'name <float>'

Example (CLI)

-datasheet_memory_twr 'name (0.9, 1, 1.1)'

Example (API)

chip.set('datasheet', 'memory', name, 'twr', (0.9, 1, 1.1))

Memory (0.9, 1, 1.1).

1.4.5.14.19. width#

Description

Datasheet: memory width

Type

int

Default Value

None

CLI Switch

  • -datasheet_memory_width 'name <int>'

Example (CLI)

-datasheet_memory_width 'm0 16'

Example (API)

chip.set('datasheet', 'memory', 'm0', 'width', 16)

Memory width.

1.4.5.15. ops#

Description

Datasheet: total device operations per second

Type

float

Default Value

None

CLI Switch

  • -datasheet_ops '<float>'

Example (CLI)

-datasheet_ops 1e18'

Example (API)

chip.set('datasheet', 'ops', 1e18)

Device peak total operations per second, describing the total mathematical opereations performed by all on-device processing units.

1.4.5.16. package#

1.4.5.16.1. drawing#

Description

Datasheet: package drawing

Type

[file]

Default Value

[]

CLI Switch

  • -datasheet_package_drawing '<file>'

Example (CLI)

-datasheet_package_drawing 'name.pdf'

Example (API)

chip.set('datasheet', 'package', 'drawing', 'p484.pdf')

Datasheet: package drawing

1.4.5.16.2. length#

Description

Datasheet: package length

Type

(float,float,float)

Unit

mm

Default Value

None

CLI Switch

  • -datasheet_package_length '<(float,float,float)>'

Example (CLI)

-datasheet_package_length '(20, 20, 20)'

Example (API)

chip.set('datasheet', 'package', 'length', (20, 20, 20)

Package specification length. Values are tuples of (min, nominal, max).

1.4.5.16.3. name#

Description

Datasheet: package name

Type

str

Default Value

None

CLI Switch

  • -datasheet_package_name '<str>'

Example (CLI)

-datasheet_package_name 'BGA484'

Example (API)

chip.set('datasheet', 'package', 'name', 'BGA484')

Datasheet: package name

1.4.5.16.4. pincount#

Description

Datasheet: package pincount

Type

int

Default Value

None

CLI Switch

  • -datasheet_package_pincount '<int>'

Example (CLI)

-datasheet_package_pincount '484'

Example (API)

chip.set('datasheet', 'package', 'pincount', '484')

Datasheet: package pincount

1.4.5.16.5. pinpitch#

Description

Datasheet: package pitch

Type

(float,float,float)

Unit

mm

Default Value

None

CLI Switch

  • -datasheet_package_pinpitch '<(float,float,float)>'

Example (CLI)

-datasheet_package_pinpitch '(0.8, 0.85, 0.9)'

Example (API)

chip.set('datasheet', 'package', 'pinpitch', (0.8, 0.85, 0.9)

Package specification pitch. Values are tuples of (min, nominal, max).

1.4.5.16.6. thickness#

Description

Datasheet: package thickness

Type

(float,float,float)

Unit

mm

Default Value

None

CLI Switch

  • -datasheet_package_thickness '<(float,float,float)>'

Example (CLI)

-datasheet_package_thickness '(1.0, 1.1, 1.2)'

Example (API)

chip.set('datasheet', 'package', 'thickness', (1.0, 1.1, 1.2)

Package specification thickness. Values are tuples of (min, nominal, max).

1.4.5.16.7. width#

Description

Datasheet: package width

Type

(float,float,float)

Unit

mm

Default Value

None

CLI Switch

  • -datasheet_package_width '<(float,float,float)>'

Example (CLI)

-datasheet_package_width '(20, 20, 20)'

Example (API)

chip.set('datasheet', 'package', 'width', (20, 20, 20)

Package specification width. Values are tuples of (min, nominal, max).

1.4.5.17. partnumber#

Description

Datasheet: part number

Type

str

Default Value

None

CLI Switch

  • -datasheet_partnumber '<str>'

Example (CLI)

-datasheet_partnumber 'PN101'

Example (API)

chip.set('datasheet', 'partnumber', 'PN101')

A unique device identifier.

1.4.5.18. peakpower#

Description

Datasheet: peak power

Type

float

Unit

W

Default Value

None

CLI Switch

  • -datasheet_peakpower '<float>'

Example (CLI)

-datasheet_peakpower 1'

Example (API)

chip.set('datasheet', 'peakpower', 1)

Device total peak power.

1.4.5.19. pin#

1.4.5.19.1. cap#

Description

Datasheet: pin capacitance

Type

(float,float,float)

Unit

F

Default Value

None

CLI Switch

  • -datasheet_pin_cap 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_cap 'sclk global (1e-12, 1.2e-12, 1.5e-12)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'cap', 'global', (1e-12, 1.2e-12, 1.5e-12)

Pin capacitance. Values are tuples of (min, typical, max).

1.4.5.19.2. complement#

Description

Datasheet: pin complement

Type

str

Default Value

None

CLI Switch

  • -datasheet_pin_complement 'name mode <str>'

Example (CLI)

-datasheet_pin_complement 'ina global inb'

Example (API)

chip.set('datasheet', 'pin', 'ina', 'complement', 'global', 'inb')

Pin complement specified on a per mode basis for differential signals.

1.4.5.19.3. dir#

Description

Datasheet: pin direction

Type

enum

Allowed Values

  • input
  • output
  • inout

Default Value

None

CLI Switch

  • -datasheet_pin_dir 'name mode <str>'

Example (CLI)

-datasheet_pin_dir 'clk global input'

Example (API)

chip.set('datasheet', 'pin', 'clk', 'dir', 'global', 'input')

Pin direction specified on a per mode basis. Acceptable pin directions include: input, output, inout.

1.4.5.19.4. ibias#

Description

Datasheet: pin bias current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_ibias 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_ibias 'sclk global (0.001, 0.0012, 0.0015)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'ibias', 'global', (0.001, 0.0012, 0.0015)

Pin bias current. Values are tuples of (min, typical, max).

1.4.5.19.5. iinject#

Description

Datasheet: pin injection current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_iinject 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_iinject 'sclk global (0.001, 0.0012, 0.0015)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'iinject', 'global', (0.001, 0.0012, 0.0015)

Pin injection current. Values are tuples of (min, typical, max).

1.4.5.19.6. ileakage#

Description

Datasheet: pin leakage current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_ileakage 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_ileakage 'sclk global (1e-06, 1.2e-06, 1.5e-06)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'ileakage', 'global', (1e-06, 1.2e-06, 1.5e-06)

Pin leakage current. Values are tuples of (min, typical, max).

1.4.5.19.7. interface#

Description

Datasheet: pin interface map

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_pin_interface 'name mode <str>'

Example (CLI)

-datasheet_pin_interface 'clk0 ddr4 CLKN'

Example (API)

chip.set('datasheet', 'pin', 'clk0', 'interface', 'ddr4', 'CLKN')

Pin mapping to standardized interface names.

1.4.5.19.8. ioffset#

Description

Datasheet: pin offset current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_ioffset 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_ioffset 'sclk global (0.001, 0.0012, 0.0015)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'ioffset', 'global', (0.001, 0.0012, 0.0015)

Pin offset current. Values are tuples of (min, typical, max).

1.4.5.19.9. ioh#

Description

Datasheet: pin output high current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_ioh 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_ioh 'sclk global (0.01, 0.012, 0.015)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'ioh', 'global', (0.01, 0.012, 0.015)

Pin output high current. Values are tuples of (min, typical, max).

1.4.5.19.10. iol#

Description

Datasheet: pin output low current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_iol 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_iol 'sclk global (0.01, 0.012, 0.015)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'iol', 'global', (0.01, 0.012, 0.015)

Pin output low current. Values are tuples of (min, typical, max).

1.4.5.19.11. ishort#

Description

Datasheet: pin short circuit current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_ishort 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_ishort 'sclk global (0.001, 0.0012, 0.0015)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'ishort', 'global', (0.001, 0.0012, 0.0015)

Pin short circuit current. Values are tuples of (min, typical, max).

1.4.5.19.12. isupply#

Description

Datasheet: pin supply current

Type

(float,float,float)

Unit

A

Default Value

None

CLI Switch

  • -datasheet_pin_isupply 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_isupply 'sclk global (0.001, 0.012, 0.015)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'isupply', 'global', (0.001, 0.012, 0.015)

Pin supply current. Values are tuples of (min, typical, max).

1.4.5.19.13. map#

Description

Datasheet: pin map

Type

(float,float)

Unit

um

Default Value

None

CLI Switch

  • -datasheet_pin_map 'name bump <(float,float)>'

Example (CLI)

-datasheet_pin_map 'in0 B4 (100.0, 100.0)'

Example (API)

chip.set('datasheet', 'pin','in0','map','B4',(100.0, 100.0)

Mapping of signal pin to physical package pin name and location. Power and ground signals usually map to multiple pins/bumps/balls. Pin locations specify the (x,y) center of the pin with respect to the centroid of the design/package.

1.4.5.19.14. power#

Description

Datasheet: pin power consumption

Type

(float,float,float)

Unit

W

Default Value

None

CLI Switch

  • -datasheet_pin_power 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_power 'sclk global (1, 2, 3)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'power', 'global', (1, 2, 3)

Pin power consumption. Values are tuples of (min, typical, max).

1.4.5.19.15. rdiff#

Description

Datasheet: pin differential pair resistance

Type

(float,float,float)

Unit

Ohm

Default Value

None

CLI Switch

  • -datasheet_pin_rdiff 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_rdiff 'sclk global (45, 50, 55)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'rdiff', 'global', (45, 50, 55)

Pin differential pair resistance. Values are tuples of (min, typical, max).

1.4.5.19.16. rdown#

Description

Datasheet: pin output pulldown resistance

Type

(float,float,float)

Unit

Ohm

Default Value

None

CLI Switch

  • -datasheet_pin_rdown 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_rdown 'sclk global (1000, 1200, 3000)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'rdown', 'global', (1000, 1200, 3000)

Pin output pulldown resistance. Values are tuples of (min, typical, max).

1.4.5.19.17. resetvalue#

Description

Datasheet: pin reset value

Type

enum

Allowed Values

  • weak1
  • weak0
  • strong0
  • strong1
  • highz

Default Value

None

CLI Switch

  • -datasheet_pin_resetvalue 'name mode <str>'

Example (CLI)

-datasheet_pin_resetvalue 'clk global weak1'

Example (API)

chip.set('datasheet', 'pin', 'clk', 'resetvalue', 'global', 'weak1')

Pin reset value specified on a per mode basis.

1.4.5.19.18. rin#

Description

Datasheet: pin input resistance

Type

(float,float,float)

Unit

Ohm

Default Value

None

CLI Switch

  • -datasheet_pin_rin 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_rin 'sclk global (1000, 1200, 3000)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'rin', 'global', (1000, 1200, 3000)

Pin input resistance. Values are tuples of (min, typical, max).

1.4.5.19.19. rup#

Description

Datasheet: pin output pullup resistance

Type

(float,float,float)

Unit

Ohm

Default Value

None

CLI Switch

  • -datasheet_pin_rup 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_rup 'sclk global (1000, 1200, 3000)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'rup', 'global', (1000, 1200, 3000)

Pin output pullup resistance. Values are tuples of (min, typical, max).

1.4.5.19.20. rweakdown#

Description

Datasheet: pin weak pulldown resistance

Type

(float,float,float)

Unit

Ohm

Default Value

None

CLI Switch

  • -datasheet_pin_rweakdown 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_rweakdown 'sclk global (1000, 1200, 3000)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'rweakdown', 'global', (1000, 1200, 3000)

Pin weak pulldown resistance. Values are tuples of (min, typical, max).

1.4.5.19.21. rweakup#

Description

Datasheet: pin weak pullup resistance

Type

(float,float,float)

Unit

Ohm

Default Value

None

CLI Switch

  • -datasheet_pin_rweakup 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_rweakup 'sclk global (1000, 1200, 3000)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'rweakup', 'global', (1000, 1200, 3000)

Pin weak pullup resistance. Values are tuples of (min, typical, max).

1.4.5.19.22. standard#

Description

Datasheet: pin standard

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_pin_standard 'name mode <str>'

Example (CLI)

-datasheet_pin_standard 'clk def LVCMOS'

Example (API)

chip.set('datasheet', 'pin', 'clk', 'standard', 'def', 'LVCMOS')

Pin electrical signaling standard (LVDS, LVCMOS, TTL, …).

1.4.5.19.23. tdelayf#

Description

Datasheet: pin propagation delay (fall)

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tdelayf 'pin mode relpin <(float,float,float)>'

Example (CLI)

-datasheet_pin_tdelayf 'a glob clock (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'a', 'tdelayf', 'glob', 'ck', (1e-09, 2e-09, 4e-09)

Pin propagation delay (fall) specified on a per pin, mode, and relpin basis. Values are tuples of (min, typical, max).

1.4.5.19.24. tdelayr#

Description

Datasheet: pin propagation delay (rise)

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tdelayr 'pin mode relpin <(float,float,float)>'

Example (CLI)

-datasheet_pin_tdelayr 'a glob clock (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'a', 'tdelayr', 'glob', 'ck', (1e-09, 2e-09, 4e-09)

Pin propagation delay (rise) specified on a per pin, mode, and relpin basis. Values are tuples of (min, typical, max).

1.4.5.19.25. tduty#

Description

Datasheet: pin duty cycle

Type

(float,float,float)

Unit

%

Default Value

None

CLI Switch

  • -datasheet_pin_tduty 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_tduty 'sclk global (45, 50, 55)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'tduty', 'global', (45, 50, 55)

Pin duty cycle. Values are tuples of (min, typical, max).

1.4.5.19.26. tfall#

Description

Datasheet: pin fall transition

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tfall 'pin mode relpin <(float,float,float)>'

Example (CLI)

-datasheet_pin_tfall 'a glob clock (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'a', 'tfall', 'glob', 'ck', (1e-09, 2e-09, 4e-09)

Pin fall transition specified on a per pin, mode, and relpin basis. Values are tuples of (min, typical, max).

1.4.5.19.27. thigh#

Description

Datasheet: pin pulse width high

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_thigh 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_thigh 'sclk global (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'thigh', 'global', (1e-09, 2e-09, 4e-09)

Pin pulse width high. Values are tuples of (min, typical, max).

1.4.5.19.28. thold#

Description

Datasheet: pin hold time

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_thold 'pin mode relpin <(float,float,float)>'

Example (CLI)

-datasheet_pin_thold 'a glob clock (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'a', 'thold', 'glob', 'ck', (1e-09, 2e-09, 4e-09)

Pin hold time specified on a per pin, mode, and relpin basis. Values are tuples of (min, typical, max).

1.4.5.19.29. tjitter#

Description

Datasheet: pin rms jitter

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tjitter 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_tjitter 'sclk global (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'tjitter', 'global', (1e-09, 2e-09, 4e-09)

Pin rms jitter. Values are tuples of (min, typical, max).

1.4.5.19.30. tlow#

Description

Datasheet: pin pulse width low

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tlow 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_tlow 'sclk global (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'tlow', 'global', (1e-09, 2e-09, 4e-09)

Pin pulse width low. Values are tuples of (min, typical, max).

1.4.5.19.31. tperiod#

Description

Datasheet: pin minimum period

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tperiod 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_tperiod 'sclk global (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'tperiod', 'global', (1e-09, 2e-09, 4e-09)

Pin minimum period. Values are tuples of (min, typical, max).

1.4.5.19.32. tpulse#

Description

Datasheet: pin pulse width

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tpulse 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_tpulse 'sclk global (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'tpulse', 'global', (1e-09, 2e-09, 4e-09)

Pin pulse width. Values are tuples of (min, typical, max).

1.4.5.19.33. trise#

Description

Datasheet: pin rise transition

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_trise 'pin mode relpin <(float,float,float)>'

Example (CLI)

-datasheet_pin_trise 'a glob clock (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'a', 'trise', 'glob', 'ck', (1e-09, 2e-09, 4e-09)

Pin rise transition specified on a per pin, mode, and relpin basis. Values are tuples of (min, typical, max).

1.4.5.19.34. tsetup#

Description

Datasheet: pin setup time

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tsetup 'pin mode relpin <(float,float,float)>'

Example (CLI)

-datasheet_pin_tsetup 'a glob clock (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'a', 'tsetup', 'glob', 'ck', (1e-09, 2e-09, 4e-09)

Pin setup time specified on a per pin, mode, and relpin basis. Values are tuples of (min, typical, max).

1.4.5.19.35. tskew#

Description

Datasheet: pin timing skew

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_pin_tskew 'pin mode relpin <(float,float,float)>'

Example (CLI)

-datasheet_pin_tskew 'a glob clock (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'a', 'tskew', 'glob', 'ck', (1e-09, 2e-09, 4e-09)

Pin timing skew specified on a per pin, mode, and relpin basis. Values are tuples of (min, typical, max).

1.4.5.19.36. type#

Description

Datasheet: pin type

Type

enum

Allowed Values

  • digital
  • analog
  • clock
  • supply
  • ground

Default Value

None

CLI Switch

  • -datasheet_pin_type 'name mode <str>'

Example (CLI)

-datasheet_pin_type 'vdd global supply'

Example (API)

chip.set('datasheet', 'pin', 'vdd', 'type', 'global', 'supply')

Pin type specified on a per mode basis.

1.4.5.19.37. vcdm#

Description

Datasheet: pin ESD charge device model voltage level

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vcdm 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vcdm 'sclk global (125, 150, 175)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vcdm', 'global', (125, 150, 175)

Pin ESD charge device model voltage level. Values are tuples of (min, typical, max).

1.4.5.19.38. vcm#

Description

Datasheet: pin common mode voltage

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vcm 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vcm 'sclk global (0.3, 1.2, 1.6)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vcm', 'global', (0.3, 1.2, 1.6)

Pin common mode voltage. Values are tuples of (min, typical, max).

1.4.5.19.39. vdiff#

Description

Datasheet: pin differential voltage

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vdiff 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vdiff 'sclk global (0.2, 0.3, 0.9)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vdiff', 'global', (0.2, 0.3, 0.9)

Pin differential voltage. Values are tuples of (min, typical, max).

1.4.5.19.40. vhbm#

Description

Datasheet: pin ESD human body model voltage level

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vhbm 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vhbm 'sclk global (200, 250, 300)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vhbm', 'global', (200, 250, 300)

Pin ESD human body model voltage level. Values are tuples of (min, typical, max).

1.4.5.19.41. vih#

Description

Datasheet: pin high input voltage level

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vih 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vih 'sclk global (1.4, 1.8, 2.2)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vih', 'global', (1.4, 1.8, 2.2)

Pin high input voltage level. Values are tuples of (min, typical, max).

1.4.5.19.42. vil#

Description

Datasheet: pin low input voltage level

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vil 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vil 'sclk global (-0.2, 0, 1.0)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vil', 'global', (-0.2, 0, 1.0)

Pin low input voltage level. Values are tuples of (min, typical, max).

1.4.5.19.43. vmax#

Description

Datasheet: pin absolute maximum voltage

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vmax 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vmax 'sclk global (0.2, 0.3, 0.9)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vmax', 'global', (0.2, 0.3, 0.9)

Pin absolute maximum voltage. Values are tuples of (min, typical, max).

1.4.5.19.44. vmm#

Description

Datasheet: pin ESD machine model voltage level

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vmm 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vmm 'sclk global (100, 125, 150)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vmm', 'global', (100, 125, 150)

Pin ESD machine model voltage level. Values are tuples of (min, typical, max).

1.4.5.19.45. vnoise#

Description

Datasheet: pin random voltage noise

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vnoise 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vnoise 'sclk global (0, 0.01, 0.1)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vnoise', 'global', (0, 0.01, 0.1)

Pin random voltage noise. Values are tuples of (min, typical, max).

1.4.5.19.46. vnominal#

Description

Datasheet: pin nominal operating voltage

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vnominal 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vnominal 'sclk global (1.72, 1.8, 1.92)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vnominal', 'global', (1.72, 1.8, 1.92)

Pin nominal operating voltage. Values are tuples of (min, typical, max).

1.4.5.19.47. voffset#

Description

Datasheet: pin offset voltage

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_voffset 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_voffset 'sclk global (0.2, 0.3, 0.9)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'voffset', 'global', (0.2, 0.3, 0.9)

Pin offset voltage. Values are tuples of (min, typical, max).

1.4.5.19.48. voh#

Description

Datasheet: pin high output voltage level

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_voh 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_voh 'sclk global (4.6, 4.8, 5.2)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'voh', 'global', (4.6, 4.8, 5.2)

Pin high output voltage level. Values are tuples of (min, typical, max).

1.4.5.19.49. vol#

Description

Datasheet: pin low output voltage level

Type

(float,float,float)

Unit

V

Default Value

None

CLI Switch

  • -datasheet_pin_vol 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vol 'sclk global (-0.2, 0, 0.2)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vol', 'global', (-0.2, 0, 0.2)

Pin low output voltage level. Values are tuples of (min, typical, max).

1.4.5.19.50. vslew#

Description

Datasheet: pin slew rate

Type

(float,float,float)

Unit

V/s

Default Value

None

CLI Switch

  • -datasheet_pin_vslew 'pin mode <(float,float,float)>'

Example (CLI)

-datasheet_pin_vslew 'sclk global (1e-09, 2e-09, 4e-09)'

Example (API)

chip.set('datasheet', 'pin', 'sclk', 'vslew', 'global', (1e-09, 2e-09, 4e-09)

Pin slew rate. Values are tuples of (min, typical, max).

1.4.5.20. proc#

1.4.5.20.1. arch#

Description

Datasheet: processor architecture

Type

str

Default Value

None

CLI Switch

  • -datasheet_proc_arch '0 <str>'

Example (CLI)

-datasheet_proc_arch '0 RV64GC'

Example (API)

chip.set('datasheet', 'proc', name, 'arch', 'openfpga')

Processor architecture.

1.4.5.20.2. archsize#

Description

Datasheet: processor architecture size

Type

int

Default Value

None

CLI Switch

  • -datasheet_proc_archsize 'name <int>'

Example (CLI)

-datasheet_proc_archsize 'name 64'

Example (API)

chip.set('datasheet', 'proc', name, 'archsize', 64)

Processor metric: 64.

1.4.5.20.3. cores#

Description

Datasheet: processor number of cores

Type

int

Default Value

None

CLI Switch

  • -datasheet_proc_cores 'name <int>'

Example (CLI)

-datasheet_proc_cores 'name 4'

Example (API)

chip.set('datasheet', 'proc', name, 'cores', 4)

Processor metric: 4.

1.4.5.20.4. datatypes#

Description

Datasheet: processor datatypes

Type

[enum]

Default Value

[]

CLI Switch

  • -datasheet_proc_datatypes 'name <str>'

Example (CLI)

-datasheet_proc_datatypes '0 int8'

Example (API)

chip.set('datasheet', 'proc', 'cpu', 'datatypes', 'int8')

List of datatypes supported by the processor.

1.4.5.20.5. dcache#

Description

Datasheet: processor l1 dcache size

Type

int

Unit

KB

Default Value

None

CLI Switch

  • -datasheet_proc_dcache 'name <int>'

Example (CLI)

-datasheet_proc_dcache 'name 32'

Example (API)

chip.set('datasheet', 'proc', name, 'dcache', 32)

Processor metric: 32.

1.4.5.20.6. features#

Description

Datasheet: processor features

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_proc_features 'name <str>'

Example (CLI)

-datasheet_proc_features '0 SIMD'

Example (API)

chip.set('datasheet','proc','cpu','features', 'SIMD')

List of maker specified processor features.

1.4.5.20.7. fmax#

Description

Datasheet: processor maximum frequency

Type

int

Unit

MHz

Default Value

None

CLI Switch

  • -datasheet_proc_fmax 'name <int>'

Example (CLI)

-datasheet_proc_fmax 'name 100'

Example (API)

chip.set('datasheet', 'proc', name, 'fmax', 100)

Processor metric: 100.

1.4.5.20.8. icache#

Description

Datasheet: processor l1 icache size

Type

int

Unit

KB

Default Value

None

CLI Switch

  • -datasheet_proc_icache 'name <int>'

Example (CLI)

-datasheet_proc_icache 'name 32'

Example (API)

chip.set('datasheet', 'proc', name, 'icache', 32)

Processor metric: 32.

1.4.5.20.9. l2cache#

Description

Datasheet: processor l2 cache size

Type

int

Unit

KB

Default Value

None

CLI Switch

  • -datasheet_proc_l2cache 'name <int>'

Example (CLI)

-datasheet_proc_l2cache 'name 1024'

Example (API)

chip.set('datasheet', 'proc', name, 'l2cache', 1024)

Processor metric: 1024.

1.4.5.20.10. l3cache#

Description

Datasheet: processor l3 cache size

Type

int

Unit

KB

Default Value

None

CLI Switch

  • -datasheet_proc_l3cache 'name <int>'

Example (CLI)

-datasheet_proc_l3cache 'name 1024'

Example (API)

chip.set('datasheet', 'proc', name, 'l3cache', 1024)

Processor metric: 1024.

1.4.5.20.11. mults#

Description

Datasheet: processor hard multiplier units per core

Type

int

Default Value

None

CLI Switch

  • -datasheet_proc_mults 'name <int>'

Example (CLI)

-datasheet_proc_mults 'name 100'

Example (API)

chip.set('datasheet', 'proc', name, 'mults', 100)

Processor metric: 100.

1.4.5.20.12. nvm#

Description

Datasheet: processor local non-volatile memory

Type

int

Unit

KB

Default Value

None

CLI Switch

  • -datasheet_proc_nvm 'name <int>'

Example (CLI)

-datasheet_proc_nvm 'name 128'

Example (API)

chip.set('datasheet', 'proc', name, 'nvm', 128)

Processor metric: 128.

1.4.5.20.13. ops#

Description

Datasheet: processor operations per cycle per core

Type

int

Default Value

None

CLI Switch

  • -datasheet_proc_ops 'name <int>'

Example (CLI)

-datasheet_proc_ops 'name 4'

Example (API)

chip.set('datasheet', 'proc', name, 'ops', 4)

Processor metric: 4.

1.4.5.20.14. sram#

Description

Datasheet: processor local sram

Type

int

Unit

KB

Default Value

None

CLI Switch

  • -datasheet_proc_sram 'name <int>'

Example (CLI)

-datasheet_proc_sram 'name 128'

Example (API)

chip.set('datasheet', 'proc', name, 'sram', 128)

Processor metric: 128.

1.4.5.21. qual#

Description

Datasheet: qualification

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_qual '<str>'

Example (CLI)

-datasheet_qual 'AEC-Q100'

Example (API)

chip.set('datasheet', 'qual', 'AEC-Q100')

List of qualification standards passed by device.

1.4.5.22. ram#

Description

Datasheet: total device RAM

Type

float

Unit

bits

Default Value

None

CLI Switch

  • -datasheet_ram '<float>'

Example (CLI)

-datasheet_ram 128'

Example (API)

chip.set('datasheet', 'ram', 128)

Device total RAM.

1.4.5.23. series#

Description

Datasheet: device series

Type

str

Default Value

None

CLI Switch

  • -datasheet_series '<str>'

Example (CLI)

-datasheet_series 'ZA0'

Example (API)

chip.set('datasheet', 'series', 'ZA0)

Device series describing a family of devices or a singular device with multiple packages and/or qualification SKUs.

1.4.5.24. status#

Description

Datasheet: product status

Type

enum

Allowed Values

  • preview
  • active
  • deprecated
  • last time buy
  • obsolete

Default Value

None

CLI Switch

  • -datasheet_status '<str>'

Example (CLI)

-datasheet_status 'active'

Example (API)

chip.set('datasheet', 'status', 'active')

Device production status.

1.4.5.25. thermal#

1.4.5.25.1. rja#

Description

Datasheet: thermal junction to ambient resistance

Type

float

Unit

C/W

Default Value

None

CLI Switch

  • -datasheet_thermal_rja '<float>'

Example (CLI)

-datasheet_thermal_rja '30.4'

Example (API)

chip.set('datasheet', 'thermal', 'rja', 30.4)

Device rja.

1.4.5.25.2. rjb#

Description

Datasheet: thermal junction to board resistance

Type

float

Unit

C/W

Default Value

None

CLI Switch

  • -datasheet_thermal_rjb '<float>'

Example (CLI)

-datasheet_thermal_rjb '30.4'

Example (API)

chip.set('datasheet', 'thermal', 'rjb', 30.4)

Device rjb.

1.4.5.25.3. rjcb#

Description

Datasheet: thermal junction to case (bottom) resistance

Type

float

Unit

C/W

Default Value

None

CLI Switch

  • -datasheet_thermal_rjcb '<float>'

Example (CLI)

-datasheet_thermal_rjcb '30.4'

Example (API)

chip.set('datasheet', 'thermal', 'rjcb', 30.4)

Device rjcb.

1.4.5.25.4. rjct#

Description

Datasheet: thermal junction to case (top) resistance

Type

float

Unit

C/W

Default Value

None

CLI Switch

  • -datasheet_thermal_rjct '<float>'

Example (CLI)

-datasheet_thermal_rjct '30.4'

Example (API)

chip.set('datasheet', 'thermal', 'rjct', 30.4)

Device rjct.

1.4.5.25.5. tjb#

Description

Datasheet: thermal junction to bottom model

Type

float

Unit

C/W

Default Value

None

CLI Switch

  • -datasheet_thermal_tjb '<float>'

Example (CLI)

-datasheet_thermal_tjb '30.4'

Example (API)

chip.set('datasheet', 'thermal', 'tjb', 30.4)

Device tjb.

1.4.5.25.6. tjt#

Description

Datasheet: thermal junction to top model

Type

float

Unit

C/W

Default Value

None

CLI Switch

  • -datasheet_thermal_tjt '<float>'

Example (CLI)

-datasheet_thermal_tjt '30.4'

Example (API)

chip.set('datasheet', 'thermal', 'tjt', 30.4)

Device tjt.

1.4.5.26. trl#

Description

Datasheet: technology readiness level

Type

int

Default Value

None

CLI Switch

  • -datasheet_trl '<int>'

Example (CLI)

-datasheet_trl 9

Example (API)

chip.set('datasheet', 'trl', 9)

Technology readiness level (TRL) of device. For more information, see: https://en.wikipedia.org/wiki/Technology_readiness_level

1.4.5.27. type#

Description

Datasheet: part type

Type

enum

Allowed Values

  • digital
  • analog
  • ams
  • passive
  • soc
  • fpga
  • adc
  • dac
  • pmic
  • buck
  • boost
  • ldo
  • sram
  • dram
  • flash
  • rom
  • interface
  • clock
  • amplifier
  • filter
  • mixer
  • modulator
  • lna

Default Value

None

CLI Switch

  • -datasheet_type '<str>'

Example (CLI)

-datasheet_type 'digital'

Example (API)

chip.set('datasheet', 'type', 'digital')

Part type.

1.4.6. design#

Description

Design top module name

Type

str

Default Value

None

CLI Switch

  • -design <str>

Example (CLI)

-design hello_world

Example (API)

chip.set('design', 'hello_world')

Name of the top level module or library. Required for all chip objects.

1.4.7. flowgraph#

1.4.7.1. args#

Description

Flowgraph: setup arguments

Type

[str]

Default Value

[]

CLI Switch

  • -flowgraph_args 'flow step index <str>'

Example (CLI)

-flowgraph_args 'asicflow cts 0 0'

Example (API)

chip.add('flowgraph', 'asicflow', 'cts', '0', 'args', '0')

User specified flowgraph string arguments specified on a per step and per index basis.

1.4.7.2. goal#

Description

Flowgraph: metric goals

Type

float

Default Value

None

CLI Switch

  • -flowgraph_goal 'flow step index metric <float>'

Example (CLI)

-flowgraph_goal 'asicflow cts 0 area_cells 1.0'

Example (API)

chip.set('flowgraph', 'asicflow', 'cts', '0', 'goal', 'errors', 0)

Goals specified on a per step and per metric basis used to determine whether a certain task can be considered when merging multiple tasks at a minimum or maximum node. A task is considered failing if the absolute value of any of its metrics are larger than the goal for that metric, if set.

1.4.7.3. input#

Description

Flowgraph: step input

Type

[(str,str)]

Default Value

[]

CLI Switch

  • -flowgraph_input 'flow step index <(str,str)>'

Example (CLI)

-flowgraph_input 'asicflow cts 0 (place,0)'

Example (API)

chip.set('flowgraph', 'asicflow', 'cts', '0', 'input', ('place', '0'))

A list of inputs for the current step and index, specified as a (step, index) tuple.

1.4.7.4. select#

Description

Flowgraph: task select record

Type

[(str,str)]

Default Value

[]

CLI Switch

  • -flowgraph_select 'flow step index <(str,str)>'

Example (CLI)

-flowgraph_select 'asicflow cts 0 (place,42)'

Example (API)

chip.set('flowgraph', 'asicflow', 'cts', '0', 'select', ('place', '42'))

List of selected inputs for the current step/index specified as (in_step, in_index) tuple.

1.4.7.5. status#

Description

Flowgraph: task status

Type

enum

Allowed Values

  • pending
  • success
  • error

Default Value

None

CLI Switch

  • -flowgraph_status 'flow step index <str>'

Example (CLI)

-flowgraph_status 'asicflow cts 10 success'

Example (API)

chip.set('flowgraph', 'asicflow', 'cts', '10', 'status', 'success')

Parameter that tracks the status of a task. Valid values are:

  • ”success”: task ran successfully

  • ”error”: task failed with an error

An empty value indicates the task has not yet been completed.

1.4.7.6. task#

Description

Flowgraph: task selection

Type

str

Default Value

None

CLI Switch

  • -flowgraph_task 'flow step <str>'

Example (CLI)

-flowgraph_task 'asicflow myplace 0 place'

Example (API)

chip.set('flowgraph', 'asicflow', 'myplace', '0', 'task', 'place')

Name of the tool associated task used for step execution. Builtin task names include: minimum, maximum, join, verify, mux.

1.4.7.7. taskmodule#

Description

Flowgraph: task module

Type

str

Default Value

None

CLI Switch

  • -flowgraph_taskmodule 'flow step <str>'

Example (CLI)

-flowgraph_taskmodule 'asicflow place 0 siliconcompiler.tools.openroad.place'

Example (API)

chip.set('flowgraph', 'asicflow', 'place', '0', 'taskmodule', 'siliconcompiler.tools.openroad.place')

Full python module name of the task module used for task setup and execution.

1.4.7.8. timeout#

Description

Flowgraph: task timeout value

Type

float

Unit

s

Default Value

None

CLI Switch

  • -flowgraph_timeout 'flow step 0 <float>'

Example (CLI)

-flowgraph_timeout 'asicflow cts 0 3600'

Example (API)

chip.set('flowgraph', 'asicflow', 'cts', '0', 'timeout', 3600)

Timeout value in seconds specified on a per step and per index basis. The flowgraph timeout value is compared against the wall time tracked by the SC runtime to determine if an operation should continue. Timeout values help in situations where 1.) an operation is stuck and may never finish. 2.) the operation progress has saturated and continued execution has a negative return on investment.

1.4.7.9. tool#

Description

Flowgraph: tool selection

Type

str

Default Value

None

CLI Switch

  • -flowgraph_tool 'flow step <str>'

Example (CLI)

-flowgraph_tool 'asicflow place 0 openroad'

Example (API)

chip.set('flowgraph', 'asicflow', 'place', '0', 'tool', 'openroad')

Name of the tool name used for task execution. The ‘tool’ parameter is ignored for builtin tasks.

1.4.7.10. weight#

Description

Flowgraph: metric weights

Type

float

Default Value

None

CLI Switch

  • -flowgraph_weight 'flow step index metric <float>'

Example (CLI)

-flowgraph_weight 'asicflow cts 0 area_cells 1.0'

Example (API)

chip.set('flowgraph', 'asicflow', 'cts', '0', 'weight', 'area_cells', 1.0)

Weights specified on a per step and per metric basis used to give effective “goodness” score for a step by calculating the sum all step real metrics results by the corresponding per step weights.

1.4.8. fpga#

1.4.8.1. board#

Description

FPGA: board name

Type

str

Default Value

None

CLI Switch

  • -fpga_board <str>

Example (CLI)

-fpga_board parallella

Example (API)

chip.set('fpga', 'board', 'parallella')

Complete board name used as a device target by the FPGA compilation tool. The board name must be an exact string match to the partname hard coded within the FPGA EDA tool. The parameter is optional and can be used in place of a partname and pin constraints for some tools.

1.4.8.2. file#

Description

FPGA: file

Type

[file]

Default Value

[]

CLI Switch

  • -fpga_file 'partname key <str>'

Example (CLI)

-fpga_file 'fpga64k file archfile my_arch.xml'

Example (API)

chip.set('fpga', 'fpga64k', 'file', 'archfile', 'my_arch.xml')

Specify a file for the FPGA partname.

1.4.8.3. flash#

Description

FPGA: flash enable

Type

bool

Default Value

False

CLI Switch

  • -fpga_flash <bool>

Example (CLI)

-fpga_flash

Example (API)

chip.set('fpga', 'flash', True)

Specifies that the bitstream should be flashed in the board/device. The default is to load the bitstream into volatile memory (SRAM).

1.4.8.4. lutsize#

Description

FPGA: lutsize

Type

int

Default Value

None

CLI Switch

  • -fpga_lutsize 'partname <int>'

Example (CLI)

-fpga_lutsize 'fpga64k 4'

Example (API)

chip.set('fpga', 'fpga64k', 'lutsize', '4')

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.

1.4.8.5. partname#

Description

FPGA: part name

Type

str

Default Value

None

CLI Switch

  • -fpga_partname <str>

Example (CLI)

-fpga_partname fpga64k

Example (API)

chip.set('fpga', 'partname', 'fpga64k')

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.

1.4.8.6. program#

Description

FPGA: program enable

Type

bool

Default Value

False

CLI Switch

  • -fpga_program <bool>

Example (CLI)

-fpga_program

Example (API)

chip.set('fpga', 'program', True)

Specifies that the bitstream should be loaded into an FPGA.

1.4.8.7. var#

Description

FPGA: var

Type

[str]

Default Value

[]

CLI Switch

  • -fpga_var 'partname key <str>'

Example (CLI)

-fpga_var 'fpga64k channelwidth 100'

Example (API)

chip.set('fpga', 'fpga64k', 'var', 'channelwidth', '100')

Specify a variable value for the FPGA partname.

1.4.8.8. vendor#

Description

FPGA: vendor name

Type

str

Default Value

None

CLI Switch

  • -fpga_vendor '<str>'

Example (CLI)

-fpga_vendor 'fpga64k acme'

Example (API)

chip.set('fpga', 'fpga64k', 'vendor', 'acme')

Name of the FPGA vendor for the FPGA partname.

1.4.9. input#

Description

Input: files

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -input 'fileset filetype <file>'

Example (CLI)

-input 'rtl verilog hello_world.v'

Example (API)

chip.set('input', 'rtl', 'verilog', 'hello_world.v')

List of files of type (‘filetype’) grouped as a named set (‘fileset’). The exact names of filetypes and filesets must match the string names used by the tasks called during flowgraph execution. By convention, the fileset names should match the the name of the flowgraph being executed.

1.4.10. metric#

1.4.10.1. averagepower#

Description

Metric: averagepower

Type

float

Per step/index

required

Unit

mw

Default Value

None

CLI Switch

  • -metric_averagepower 'step index <float>'

Example (CLI)

-metric_averagepower 'place 0 0.01'

Example (API)

chip.set('metric', 'averagepower', 0.01, step='place', index=0)

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.

1.4.10.2. brams#

Description

Metric: FPGA BRAM tiles used

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_brams 'step index <int>'

Example (CLI)

-metric_brams 'place 0 100'

Example (API)

chip.set('metric', 'brams', 100, step='place', index=0)

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.

1.4.10.3. buffers#

Description

Metric: buffers

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_buffers 'step index <float>'

Example (CLI)

-metric_buffers 'place 0 100'

Example (API)

chip.set('metric', 'buffers', 50, step='place', index=0)

Metric tracking the total number of buffer and inverter instances in the design on a per step and index basis.

1.4.10.4. cellarea#

Description

Metric: cellarea

Type

float

Per step/index

required

Unit

um^2

Default Value

None

CLI Switch

  • -metric_cellarea 'step index <float>'

Example (CLI)

-metric_cellarea 'place 0 100.00'

Example (API)

chip.set('metric', 'cellarea', 100.00, step='place', index=0)

Metric tracking the total cell area (ignoring fillers) occupied by the design.

1.4.10.5. cells#

Description

Metric: cells

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_cells 'step index <float>'

Example (CLI)

-metric_cells 'place 0 100'

Example (API)

chip.set('metric', 'cells', 50, step='place', index=0)

Metric tracking the total number of cell instances in the design on a per step and index basis.

1.4.10.6. coverage#

Description

Metric: coverage

Type

float

Per step/index

required

Unit

%

Default Value

None

CLI Switch

  • -metric_coverage 'step index <float>'

Example (CLI)

-metric_coverage 'place 0 99.9'

Example (API)

chip.set('metric', 'coverage', 99.9, step='place', index=0)

Metric tracking the test coverage in the design expressed as a percentage with 100 meaning full coverage. The meaning of the metric depends on the task being executed. It can refer to code coverage, feature coverage, stuck at fault coverage.

1.4.10.7. dozepower#

Description

Metric: dozepower

Type

float

Per step/index

required

Unit

mw

Default Value

None

CLI Switch

  • -metric_dozepower 'step index <float>'

Example (CLI)

-metric_dozepower 'place 0 0.01'

Example (API)

chip.set('metric', 'dozepower', 0.01, step='place', index=0)

Metric tracking the power consumed while in low frequency operating mode 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 dozepower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.

1.4.10.8. drvs#

Description

Metric: total drvs

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_drvs 'step index <int>'

Example (CLI)

-metric_drvs 'dfm 0 0'

Example (API)

chip.set('metric', 'drvs', 0, step='dfm', index=0)

Metric tracking the total number of design rule violations on a per step and index basis.

1.4.10.9. dsps#

Description

Metric: FPGA DSP slices used

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_dsps 'step index <int>'

Example (CLI)

-metric_dsps 'place 0 100'

Example (API)

chip.set('metric', 'dsps', 100, step='place', index=0)

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.

1.4.10.10. errors#

Description

Metric: total errors

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_errors 'step index <int>'

Example (CLI)

-metric_errors 'dfm 0 0'

Example (API)

chip.set('metric', 'errors', 0, step='dfm', index=0)

Metric tracking the total number of errors on a per step and index basis.

1.4.10.11. exetime#

Description

Metric: exetime

Type

float

Per step/index

required

Unit

s

Default Value

None

CLI Switch

  • -metric_exetime 'step index <float>'

Example (CLI)

-metric_exetime 'dfm 0 10.0'

Example (API)

chip.set('metric', 'exetime', 10.0, step='dfm', index=0)

Metric tracking time spent by the EDA executable ‘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.

1.4.10.12. fmax#

Description

Metric: fmax

Type

float

Per step/index

required

Unit

Hz

Default Value

None

CLI Switch

  • -metric_fmax 'step index <float>'

Example (CLI)

-metric_fmax 'place 0 100e6'

Example (API)

chip.set('metric', 'fmax', 100e6, step='place', index=0)

Metric tracking the maximum clock frequency on a per step and index basis.

1.4.10.13. holdpaths#

Description

Metric: holdpaths

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_holdpaths 'step index <float>'

Example (CLI)

-metric_holdpaths 'place 0 10'

Example (API)

chip.set('metric', 'holdpaths', 10, step='place', index=0)

Metric tracking the total number of timing paths violating hold constraints.

1.4.10.14. holdslack#

Description

Metric: holdslack

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_holdslack 'step index <float>'

Example (CLI)

-metric_holdslack 'place 0 0.01'

Example (API)

chip.set('metric', 'holdslack', 0.01, step='place', index=0)

Metric tracking the worst hold slack (positive or negative) on a per step and index basis.

1.4.10.15. holdtns#

Description

Metric: holdtns

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_holdtns 'step index <float>'

Example (CLI)

-metric_holdtns 'place 0 0.01'

Example (API)

chip.set('metric', 'holdtns', 0.01, step='place', index=0)

Metric tracking the total negative hold slack (TNS) on a per step and index basis.

1.4.10.16. holdwns#

Description

Metric: holdwns

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_holdwns 'step index <float>'

Example (CLI)

-metric_holdwns 'place 0 0.01'

Example (API)

chip.set('metric', 'holdwns', 0.01, step='place', index=0)

Metric tracking the worst negative hold slack (positive values truncated to zero) on a per step and index basis.

1.4.10.17. idlepower#

Description

Metric: idlepower

Type

float

Per step/index

required

Unit

mw

Default Value

None

CLI Switch

  • -metric_idlepower 'step index <float>'

Example (CLI)

-metric_idlepower 'place 0 0.01'

Example (API)

chip.set('metric', 'idlepower', 0.01, step='place', index=0)

Metric tracking the power while not performing useful work 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 idlepower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.

1.4.10.18. irdrop#

Description

Metric: peak IR drop

Type

float

Per step/index

required

Unit

mv

Default Value

None

CLI Switch

  • -metric_irdrop 'step index <float>'

Example (CLI)

-metric_irdrop 'place 0 0.05'

Example (API)

chip.set('metric', 'irdrop', 0.05, step='place', index=0)

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.

1.4.10.19. leakagepower#

Description

Metric: leakagepower

Type

float

Per step/index

required

Unit

mw

Default Value

None

CLI Switch

  • -metric_leakagepower 'step index <float>'

Example (CLI)

-metric_leakagepower 'place 0 0.01'

Example (API)

chip.set('metric', 'leakagepower', 0.01, step='place', index=0)

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.

1.4.10.20. luts#

Description

Metric: FPGA LUTs used

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_luts 'step index <int>'

Example (CLI)

-metric_luts 'place 0 100'

Example (API)

chip.set('metric', 'luts', 100, step='place', index=0)

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.

1.4.10.21. macros#

Description

Metric: macros

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_macros 'step index <float>'

Example (CLI)

-metric_macros 'place 0 100'

Example (API)

chip.set('metric', 'macros', 50, step='place', index=0)

Metric tracking the total number of macros in the design on a per step and index basis.

1.4.10.22. memory#

Description

Metric: memory

Type

float

Per step/index

required

Unit

B

Default Value

None

CLI Switch

  • -metric_memory 'step index <float>'

Example (CLI)

-metric_memory 'dfm 0 10e9'

Example (API)

chip.set('metric', 'memory', 10e9, step='dfm', index=0)

Metric tracking total peak program memory footprint on a per step and index basis.

1.4.10.23. nets#

Description

Metric: nets

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_nets 'step index <float>'

Example (CLI)

-metric_nets 'place 0 100'

Example (API)

chip.set('metric', 'nets', 50, step='place', index=0)

Metric tracking the total number of nets in the design on a per step and index basis.

1.4.10.24. overflow#

Description

Metric: overflow

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_overflow 'step index <float>'

Example (CLI)

-metric_overflow 'place 0 0'

Example (API)

chip.set('metric', 'overflow', 50, step='place', index=0)

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.

1.4.10.25. peakpower#

Description

Metric: peakpower

Type

float

Per step/index

required

Unit

mw

Default Value

None

CLI Switch

  • -metric_peakpower 'step index <float>'

Example (CLI)

-metric_peakpower 'place 0 0.01'

Example (API)

chip.set('metric', 'peakpower', 0.01, step='place', index=0)

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.

1.4.10.26. pins#

Description

Metric: pins

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_pins 'step index <float>'

Example (CLI)

-metric_pins 'place 0 100'

Example (API)

chip.set('metric', 'pins', 50, step='place', index=0)

Metric tracking the total number of pins in the design on a per step and index basis.

1.4.10.27. registers#

Description

Metric: registers

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_registers 'step index <float>'

Example (CLI)

-metric_registers 'place 0 100'

Example (API)

chip.set('metric', 'registers', 50, step='place', index=0)

Metric tracking the total number of register instances in the design on a per step and index basis.

1.4.10.28. security#

Description

Metric: security

Type

float

Per step/index

required

Unit

%

Default Value

None

CLI Switch

  • -metric_security 'step index <float>'

Example (CLI)

-metric_security 'place 0 100'

Example (API)

chip.set('metric', 'security', 100, step='place', index=0)

Metric tracking the level of security (1/vulnerability) of the design. A completely secure design would have a score of 100. There is no absolute scale for the security metrics (like with power, area, etc) so the metric will be task and tool dependent.

1.4.10.29. setuppaths#

Description

Metric: setuppaths

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_setuppaths 'step index <float>'

Example (CLI)

-metric_setuppaths 'place 0 10'

Example (API)

chip.set('metric', 'setuppaths', 10, step='place', index=0)

Metric tracking the total number of timing paths violating setup constraints.

1.4.10.30. setupslack#

Description

Metric: setupslack

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_setupslack 'step index <float>'

Example (CLI)

-metric_setupslack 'place 0 0.01'

Example (API)

chip.set('metric', 'setupslack', 0.01, step='place', index=0)

Metric tracking the worst setup slack (positive or negative) on a per step and index basis.

1.4.10.31. setuptns#

Description

Metric: setuptns

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_setuptns 'step index <float>'

Example (CLI)

-metric_setuptns 'place 0 0.01'

Example (API)

chip.set('metric', 'setuptns', 0.01, step='place', index=0)

Metric tracking the total negative setup slack (TNS) on a per step and index basis.

1.4.10.32. setupwns#

Description

Metric: setupwns

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_setupwns 'step index <float>'

Example (CLI)

-metric_setupwns 'place 0 0.01'

Example (API)

chip.set('metric', 'setupwns', 0.01, step='place', index=0)

Metric tracking the worst negative setup slack (positive values truncated to zero) on a per step and index basis.

1.4.10.33. sleeppower#

Description

Metric: sleeppower

Type

float

Per step/index

required

Unit

mw

Default Value

None

CLI Switch

  • -metric_sleeppower 'step index <float>'

Example (CLI)

-metric_sleeppower 'place 0 0.01'

Example (API)

chip.set('metric', 'sleeppower', 0.01, step='place', index=0)

Metric tracking the power consumed with some or all power rails gated off 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 sleeppower metric tries to capture the data that would usually be reflected inside a datasheet given the appropriate footnote conditions.

1.4.10.34. tasktime#

Description

Metric: tasktime

Type

float

Per step/index

required

Unit

s

Default Value

None

CLI Switch

  • -metric_tasktime 'step index <float>'

Example (CLI)

-metric_tasktime 'dfm 0 10.0'

Example (API)

chip.set('metric', 'tasktime', 10.0, step='dfm', index=0)

Metric tracking the total amount of time spent on a task from beginning to end, including data transfers and pre/post processing.

1.4.10.35. totalarea#

Description

Metric: totalarea

Type

float

Per step/index

required

Unit

um^2

Default Value

None

CLI Switch

  • -metric_totalarea 'step index <float>'

Example (CLI)

-metric_totalarea 'place 0 100.00'

Example (API)

chip.set('metric', 'totalarea', 100.00, step='place', index=0)

Metric tracking the total physical die area occupied by the design.

1.4.10.36. totaltime#

Description

Metric: totaltime

Type

float

Per step/index

required

Unit

s

Default Value

None

CLI Switch

  • -metric_totaltime 'step index <float>'

Example (CLI)

-metric_totaltime 'dfm 0 10.0'

Example (API)

chip.set('metric', 'totaltime', 10.0, step='dfm', index=0)

Metric tracking the total amount of time spent from the beginning of the run up to and including the current step and index.

1.4.10.37. transistors#

Description

Metric: transistors

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_transistors 'step index <float>'

Example (CLI)

-metric_transistors 'place 0 100'

Example (API)

chip.set('metric', 'transistors', 50, step='place', index=0)

Metric tracking the total number of transistors in the design on a per step and index basis.

1.4.10.38. unconstrained#

Description

Metric: total unconstrained

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_unconstrained 'step index <int>'

Example (CLI)

-metric_unconstrained 'dfm 0 0'

Example (API)

chip.set('metric', 'unconstrained', 0, step='dfm', index=0)

Metric tracking the total number of unconstrained timing paths on a per step and index basis.

1.4.10.39. utilization#

Description

Metric: area utilization

Type

float

Per step/index

required

Unit

%

Default Value

None

CLI Switch

  • -metric_utilization step index <float>

Example (CLI)

-metric_utilization 'place 0 50.00'

Example (API)

chip.set('metric', 'utilization', 50.00, step='place', index=0)

Metric tracking the area utilization of the design calculated as 100 * (cellarea/totalarea).

1.4.10.40. vias#

Description

Metric: vias

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_vias 'step index <float>'

Example (CLI)

-metric_vias 'place 0 100'

Example (API)

chip.set('metric', 'vias', 50, step='place', index=0)

Metric tracking the total number of vias in the design on a per step and index basis.

1.4.10.41. warnings#

Description

Metric: total warnings

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_warnings 'step index <int>'

Example (CLI)

-metric_warnings 'dfm 0 0'

Example (API)

chip.set('metric', 'warnings', 0, step='dfm', index=0)

Metric tracking the total number of warnings on a per step and index basis.

1.4.10.42. wirelength#

Description

Metric: wirelength

Type

float

Per step/index

required

Unit

um

Default Value

None

CLI Switch

  • -metric_wirelength 'step index <float>'

Example (CLI)

-metric_wirelength 'place 0 100.0'

Example (API)

chip.set('metric', 'wirelength', 50.0, step='place', index=0)

Metric tracking the total wirelength of the design on a per step and index basis.

1.4.11. option#

1.4.11.1. autoinstall#

Description

Option: auto install packages

Type

bool

Default Value

False

CLI Switch

  • -autoinstall <bool>

Example (CLI)

-autoinstall true

Example (API)

chip.set('option', 'autoinstall', True)

Enables automatic installation of missing dependencies from the registry.

1.4.11.2. breakpoint#

Description

Breakpoint list

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -breakpoint <bool>

Example (CLI)

-breakpoint true

Example (API)

chip.set('option, 'breakpoint', True)

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.

1.4.11.3. builddir#

Description

Build directory

Type

dir

Default Value

build

CLI Switch

  • -builddir <dir>

Example (CLI)

-builddir ./build_the_future

Example (API)

chip.set('option', 'builddir', './build_the_future')

The default build directory is in the local ‘./build’ where SC was executed. The ‘builddir’ parameter can be used to set an alternate compilation directory path.

1.4.11.4. cache#

Description

User cache directory

Type

file

Default Value

None

CLI Switch

  • -cache <file>

Example (CLI)

-cache /home/user/.sc/cache

Example (API)

chip.set('option', 'cache', '/home/user/.sc/cache')

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.

1.4.11.5. cfg#

Description

Configuration manifest

Type

[file]

Default Value

[]

CLI Switch

  • -cfg <file>

Example (CLI)

-cfg mypdk.json

Example (API)

chip.set('option', 'cfg', 'mypdk.json')

List of filepaths to JSON formatted schema configuration manifests. The files are read in automatically when using the ‘sc’ command line application. In Python programs, JSON manifests can be merged into the current working manifest using the read_manifest() method.

1.4.11.6. clean#

Description

Clean up after run

Type

bool

Default Value

False

CLI Switch

  • -clean <bool>

Example (CLI)

-clean

Example (API)

chip.set('option', 'clean', True)

Clean up all intermediate and non essential files at the end of a task, leaving the following:

1.4.11.7. cmdfile#

Description

Design compilation command file

Type

[file]

Default Value

[]

CLI Switch

  • -f <file>

Example (CLI)

-f design.f

Example (API)

chip.set('option', 'cmdfile', 'design.f')

Read the specified file, and act as if all text inside it was specified as command line parameters. Supported by most verilog simulators including Icarus and Verilator. The format of the file is not strongly standardized. Support for comments and environment variables within the file varies and depends on the tool used. SC simply passes on the filepath to the tool executable.

1.4.11.8. continue#

Description

Implementation continue-on-error

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -continue

Example (CLI)

-continue

Example (API)

chip.set('option', 'continue', True)

Attempt to continue even when errors are encountered in the SC implementation. If errors are encountered, execution will halt before a run.

1.4.11.9. copyall#

Description

Copy all inputs to build directory

Type

bool

Default Value

False

CLI Switch

  • -copyall <bool>

Example (CLI)

-copyall

Example (API)

chip.set('option', 'copyall', True)

Specifies that all used files should be copied into the build directory, overriding the per schema entry copy settings.

1.4.11.10. credentials#

Description

User credentials file

Type

file

Default Value

None

CLI Switch

  • -credentials <file>

Example (CLI)

-credentials /home/user/.sc/credentials

Example (API)

chip.set('option', 'credentials', '/home/user/.sc/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)

1.4.11.11. define#

Description

Design pre-processor symbol

Type

[str]

Default Value

[]

CLI Switch

  • -D<str>

Example (CLI)

-DCFG_ASIC=1

Example (API)

chip.set('option', 'define', 'CFG_ASIC=1')

Symbol definition for source preprocessor.

1.4.11.12. dir#

Description

Custom directories

Type

[dir]

Default Value

[]

CLI Switch

  • -dir 'key <str>'

Example (CLI)

-dir 'openroad_tapcell ./tapcell.tcl'

Example (API)

chip.set('option', 'dir', 'openroad_files', './openroad_support/')

List of named directories specified. Certain tools and reference flows require special parameters, this parameter should only be used for specifying directories that are not directly supported by the schema.

1.4.11.13. entrypoint#

Description

Program entry point

Type

str

Default Value

None

CLI Switch

  • -entrypoint <str>

Example (CLI)

-entrypoint top

Example (API)

chip.set('option', 'entrypoint', 'top')

Alternative entrypoint for compilation and simulation. The default entry point is ‘design’.

1.4.11.14. env#

Description

Environment variables

Type

str

Default Value

None

CLI Switch

  • -env 'key <str>'

Example (CLI)

-env 'PDK_HOME /disk/mypdk'

Example (API)

chip.set('option', 'env', 'PDK_HOME', '/disk/mypdk')

Certain tools and reference flows require global environment variables to be set. These variables can be managed externally or specified through the env variable.

1.4.11.15. file#

Description

Custom files

Type

[file]

Default Value

[]

CLI Switch

  • -file 'key <str>'

Example (CLI)

-file 'openroad_tapcell ./tapcell.tcl'

Example (API)

chip.set('option', 'file', 'openroad_tapcell', './tapcell.tcl')

List of named files specified. Certain tools and reference flows require special parameters, this parameter should only be used for specifying files that are not directly supported by the schema.

1.4.11.16. flow#

Description

Flow target

Type

str

Default Value

None

CLI Switch

  • -flow <str>

Example (CLI)

-flow asicflow

Example (API)

chip.set('option', 'flow', 'asicflow')

Sets the flow for the current run. The flow name must match up with a ‘flow’ in the flowgraph

1.4.11.17. flowcontinue#

Description

Flow continue-on-error

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -flowcontinue

Example (CLI)

-flowcontinue

Example (API)

chip.set('option', 'flowcontinue', True)

Continue executing flow after a tool logs errors. 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.

1.4.11.18. from#

Description

Start flowgraph execution from

Type

[str]

Default Value

[]

CLI Switch

  • -from <step>

Example (CLI)

-from 'import'

Example (API)

chip.set('option', 'from', 'import')

Inclusive list of steps to start execution from. The default is to start at all entry steps in the flow graph.

1.4.11.19. frontend#

Description

Compilation frontend

Type

str

Default Value

verilog

CLI Switch

  • -frontend <frontend>

Example (CLI)

-frontend systemverilog

Example (API)

chip.set('option', 'frontend', 'systemverilog')

Specifies the frontend that flows should use for importing and processing source files. Default option is ‘verilog’, also supports ‘systemverilog’ and ‘chisel’. When using the Python API, this parameter must be configured before calling load_target().

1.4.11.20. hash#

Description

Enable file hashing

Type

bool

Default Value

False

CLI Switch

  • -hash <bool>

Example (CLI)

-hash

Example (API)

chip.set('option', 'hash', True)

Enables hashing of all inputs and outputs during compilation. The hash values are stored in the hashvalue field of the individual parameters.

1.4.11.21. idir#

Description

Design search paths

Type

[dir]

Default Value

[]

CLI Switch

  • +incdir+<dir>
  • -I <dir>

Example (CLI)

+incdir+./mylib

Example (API)

chip.set('option', 'idir', './mylib')

Search paths to look for files included in the design using the `include statement.

1.4.11.22. jobincr#

Description

Autoincrement jobname

Type

bool

Default Value

False

CLI Switch

  • -jobincr <bool>

Example (CLI)

-jobincr

Example (API)

chip.set('option', 'jobincr', True)

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.

1.4.11.23. jobinput#

Description

Input job name

Type

str

Default Value

None

CLI Switch

  • -jobinput 'step index <str>'

Example (CLI)

-jobinput 'cts 0 job0'

Example (API)

chip.set('option', 'jobinput', 'cts, '0', 'job0')

Specifies jobname inputs for the current run() on a per step and per index basis. During execution, the default behavior is to copy inputs from the current job.

1.4.11.24. jobname#

Description

Job name

Type

str

Default Value

job0

CLI Switch

  • -jobname <str>

Example (CLI)

-jobname may1

Example (API)

chip.set('option', 'jobname', 'may1')

Jobname during invocation of run(). The jobname combined with a defined director structure (<dir>/<design>/<jobname>/<step>/<index>) enables multiple levels of transparent job, step, and index introspection.

1.4.11.25. libext#

Description

Design file extensions

Type

[str]

Default Value

[]

CLI Switch

  • +libext+<str>

Example (CLI)

+libext+sv

Example (API)

chip.set('option', 'libext', 'sv')

List of file extensions that should be used for finding modules. For example, if -y is specified as ./lib”, and ‘.v’ is specified as libext then the files ./lib/*.v “, will be searched for module matches.

1.4.11.26. loglevel#

Description

Logging level

Type

enum

Per step/index

optional

Allowed Values

  • NOTSET
  • INFO
  • DEBUG
  • WARNING
  • ERROR
  • CRITICAL

Default Value

INFO

CLI Switch

  • -loglevel <str>

Example (CLI)

-loglevel INFO

Example (API)

chip.set('option', 'loglevel', 'INFO')

Provides explicit control over the level of debug logging printed. Valid entries include INFO, DEBUG, WARNING, ERROR.

1.4.11.27. metricoff#

Description

Metric summary filter

Type

[str]

Default Value

[]

CLI Switch

  • -metricoff '<str>'

Example (CLI)

-metricoff 'wirelength'

Example (API)

chip.set('option', 'metricoff', 'wirelength')

List of metrics to suppress when printing out the run summary.

1.4.11.28. mode#

Description

Compilation mode

Type

enum

Allowed Values

  • asic
  • fpga
  • sim

Default Value

None

CLI Switch

  • -mode <str>

Example (CLI)

-mode asic

Example (API)

chip.set('option', 'mode', 'asic')

Sets the operating mode of the compiler. Valid modes are: asic: RTL to GDS ASIC compilation fpga: RTL to bitstream FPGA compilation sim: simulation to verify design and compilation

1.4.11.29. nice#

Description

Tool execution scheduling priority

Type

int

Per step/index

optional

Default Value

None

CLI Switch

  • -nice <int>

Example (CLI)

-nice 5

Example (API)

chip.set('option', 'nice', 5)

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’.

1.4.11.30. nodisplay#

Description

Headless execution

Type

bool

Default Value

False

CLI Switch

  • -nodisplay <bool>

Example (CLI)

-nodisplay

Example (API)

chip.set('option', 'nodisplay', True)

The ‘-nodisplay’ flag prevents SiliconCompiler from opening GUI windows such as the final metrics report.

1.4.11.31. novercheck#

Description

Disable version checking

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -novercheck <bool>

Example (CLI)

-novercheck

Example (API)

chip.set('option', 'novercheck', True)

Disables strict version checking on all invoked tools if True. The list of supported version numbers is defined in the ‘version’ parameter in the ‘tool’ dictionary for each tool.

1.4.11.32. optmode#

Description

Optimization mode

Type

str

Per step/index

optional

Default Value

O0

CLI Switch

  • -O<str>

Example (CLI)

-O3

Example (API)

chip.set('option', 'optmode', 'O3')

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

1.4.11.33. param#

Description

Design parameter

Type

str

Default Value

None

CLI Switch

  • -param 'name <str>'

Example (CLI)

-param 'N 64'

Example (API)

chip.set('option', 'param', 'N', '64')

Sets a top verilog level design module parameter. The value is limited to basic data literals. The parameter override is passed into tools such as Verilator and Yosys. The parameters support Verilog integer literals (64’h4, 2’b0, 4) and strings. Name of the top level module to compile.

1.4.11.34. pdk#

Description

PDK target

Type

str

Default Value

None

CLI Switch

  • -pdk <str>

Example (CLI)

-pdk freepdk45

Example (API)

chip.set('option', 'pdk', 'freepdk45')

Target PDK used during compilation.

1.4.11.35. prune#

Description

Prune flowgraph branches starting with

Type

[(str,str)]

Default Value

[]

CLI Switch

  • -prune 'node <(str,str)>'

Example (CLI)

-prune (syn,0)

Example (API)

chip.set('option', 'prune', ('syn', '0'))

List of starting nodes for branches to be pruned. The default is to not prune any nodes/branches.

1.4.11.36. quiet#

Description

Quiet execution

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -quiet <bool>

Example (CLI)

-quiet

Example (API)

chip.set('option', 'quiet', True)

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.

1.4.11.37. relax#

Description

Relax design checking

Type

bool

Default Value

False

CLI Switch

  • -relax <bool>

Example (CLI)

-relax

Example (API)

chip.set('option', 'relax', True)

Global option specifying that tools should be lenient and suppress warnings that may or may not indicate real design issues. Extent of leniency is tool/task specific.

1.4.11.38. remote#

Description

Enable remote processing

Type

bool

Default Value

False

CLI Switch

  • -remote <bool>

Example (CLI)

-remote

Example (API)

chip.set('option', 'remote', True)

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.

1.4.11.39. resume#

Description

Resume build

Type

bool

Default Value

False

CLI Switch

  • -resume <bool>

Example (CLI)

-resume

Example (API)

chip.set('option', 'resume', True)

If results exist for current job, then don’t re-run any steps that had at least one index run successfully. Useful for debugging a flow that failed partway through.

1.4.11.40. scheduler#

1.4.11.40.1. cores#

Description

Option: Scheduler core constraint

Type

int

Per step/index

optional

Default Value

None

CLI Switch

  • -cores <int>

Example (CLI)

-cores 48

Example (API)

chip.set('option', 'scheduler', 'cores', '48')

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

1.4.11.40.2. defer#

Description

Option: Scheduler start time

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -defer <str>

Example (CLI)

-defer 16:00

Example (API)

chip.set('option', 'scheduler', 'defer', '16:00')

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.

1.4.11.40.3. memory#

Description

Option: Scheduler memory constraint

Type

int

Per step/index

optional

Unit

MB

Default Value

None

CLI Switch

  • -memory <str>

Example (CLI)

-memory 8000

Example (API)

chip.set('option', 'scheduler', 'memory', '8000')

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

1.4.11.40.4. msgcontact#

Description

Option: Message contact

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -msgcontact <str>

Example (CLI)

-msgcontact 'wile.e.coyote@acme.com'

Example (API)

chip.set('option', 'scheduler', 'msgcontact', 'wiley@acme.com')

List of email addresses to message on a ‘msgevent’. Support for email messages relies on job scheduler daemon support. For more information, see the job scheduler documentation.

1.4.11.40.5. msgevent#

Description

Option: Message event trigger

Type

str

Per step/index

optional

Default Value

NONE

CLI Switch

  • -msgevent <str>

Example (CLI)

-msgevent ALL

Example (API)

chip.set('option', 'scheduler', 'msgevent', 'ALL')

Directs job scheduler to send a message to the user when certain events occur during a task. Supported data types for SLURM include NONE, BEGIN, END, FAIL, ALL, TIME_LIMIT. For a list of supported event types, see the job scheduler documentation. For more information, see the job scheduler documentation.

1.4.11.40.6. name#

Description

Option: Scheduler platform

Type

enum

Per step/index

optional

Allowed Values

  • slurm
  • lsf
  • sge

Default Value

None

CLI Switch

  • -scheduler <str>

Example (CLI)

-scheduler slurm

Example (API)

chip.set('option', 'scheduler', 'name', 'slurm')

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 (‘-dir’) must be located in shared storage which can be accessed by all hosts in the cluster.

1.4.11.40.7. options#

Description

Option: Scheduler arguments

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -scheduler_options <str>

Example (CLI)

-scheduler_options "--pty"

Example (API)

chip.set('option', 'scheduler', 'options', "--pty")

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.

1.4.11.40.8. queue#

Description

Option: Scheduler queue

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -queue <str>

Example (CLI)

-queue nightrun

Example (API)

chip.set('option', 'scheduler', 'queue', 'nightrun')

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

1.4.11.41. show#

Description

Show layout

Type

bool

Default Value

False

CLI Switch

  • -show <bool>

Example (CLI)

-show

Example (API)

chip.set('option', 'show', True)

Specifies that the final hardware layout should be shown after the compilation has been completed. The final layout and tool used to display the layout is flow dependent.

1.4.11.42. showtool#

Description

Select data display tool

Type

str

Default Value

None

CLI Switch

  • -showtool 'filetype <tool>'

Example (CLI)

-showtool 'gds klayout'

Example (API)

chip.set('option', 'showtool', 'gds', 'klayout')

Selects the tool to use by the show function for displaying the specified filetype.

1.4.11.43. skipall#

Description

Skip all tasks

Type

bool

Default Value

False

CLI Switch

  • -skipall <bool>

Example (CLI)

-skipall

Example (API)

chip.set('option', 'skipall', True)

Skips the execution of all tools in run(), enabling a quick check of tool and setup without having to run through each step of a flow to completion.

1.4.11.44. skipcheck#

Description

Skip manifest check

Type

bool

Default Value

False

CLI Switch

  • -skipcheck <bool>

Example (CLI)

-skipcheck

Example (API)

chip.set('option', 'skipcheck', True)

Bypasses the strict runtime manifest check. Can be used for accelerating initial bringup of tool/flow/pdk/libs targets. The flag should not be used for production compilation.

1.4.11.45. stackup#

Description

Stackup target

Type

str

Default Value

None

CLI Switch

  • -stackup <str>

Example (CLI)

-stackup 2MA4MB2MC

Example (API)

chip.set('option', 'stackup', '2MA4MB2MC')

Target stackup used during compilation. The stackup is required parameter for PDKs with multiple metal stackups.

1.4.11.46. strict#

Description

Option: Strict checking

Type

bool

Default Value

False

CLI Switch

  • -strict <bool>

Example (CLI)

-strict true

Example (API)

chip.set('option', 'strict', True)

Enable additional strict checking in the SC Python API. When this parameter is set to True, users must provide step and index keyword arguments when reading from parameters with the pernode field set to ‘optional’.

1.4.11.47. target#

Description

Compilation target

Type

str

Default Value

None

CLI Switch

  • -target <str>

Example (CLI)

-target freepdk45_demo

Example (API)

chip.set('option', 'target', 'freepdk45_demo')

Sets a target module to be used for compilation. The target module must set up all parameters needed. The target module may load multiple flows and libraries.

1.4.11.48. timeout#

Description

Option: Timeout value

Type

float

Unit

s

Default Value

None

CLI Switch

  • -timeout <str>

Example (CLI)

-timeout 3600

Example (API)

chip.set('option', 'timeout', 3600)

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. The timeout value is also used by the jobscheduler to automatically kill jobs.

1.4.11.49. to#

Description

End flowgraph execution with

Type

[str]

Default Value

[]

CLI Switch

  • -to <step>

Example (CLI)

-to 'syn'

Example (API)

chip.set('option', 'to', 'syn')

Inclusive list of steps to end execution with. The default is to go to all exit steps in the flow graph.

1.4.11.50. trace#

Description

Enable debug traces

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -trace <bool>

Example (CLI)

-trace

Example (API)

chip.set('option', 'trace', True)

Enables debug tracing during compilation and/or runtime.

1.4.11.51. track#

Description

Enable provenance tracking

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -track <bool>

Example (CLI)

-track

Example (API)

chip.set('option', 'track', True)

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.

1.4.11.52. uselambda#

Description

Use lambda scaling

Type

bool

Default Value

False

CLI Switch

  • -uselambda <bool>

Example (CLI)

-uselambda true

Example (API)

chip.set('option', 'uselambda', True)

Turns on lambda scaling of all dimensional constraints. (new value = value * [‘pdk’, ‘lambda’]).

1.4.11.53. var#

Description

Custom variables

Type

[str]

Default Value

[]

CLI Switch

  • -var 'key <str>'

Example (CLI)

-var 'openroad_place_density 0.4'

Example (API)

chip.set('option', 'var', 'openroad_place_density', '0.4')

List of key/value strings specified. Certain tools and reference flows require special parameters, this should only be used for specifying variables that are not directly supported by the SiliconCompiler schema.

1.4.11.54. vlib#

Description

Design libraries

Type

[file]

Default Value

[]

CLI Switch

  • -v <file>

Example (CLI)

-v './mylib.v'

Example (API)

chip.set('option', 'vlib', './mylib.v')

List of library files to be read in. Modules found in the libraries are not interpreted as root modules.

1.4.11.55. ydir#

Description

Design module search paths

Type

[dir]

Default Value

[]

CLI Switch

  • -y <dir>

Example (CLI)

-y './mylib'

Example (API)

chip.set('option', 'ydir', './mylib')

Search paths to look for verilog modules found in the the source list. The import engine will look for modules inside files with the specified +libext+ param suffix.

1.4.12. output#

Description

Output: files

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -output 'fileset filetype <file>'

Example (CLI)

-output 'rtl verilog hello_world.v'

Example (API)

chip.set('output', 'rtl', 'verilog', 'hello_world.v')

List of files of type (‘filetype’) grouped as a named set (‘fileset’). The exact names of filetypes and filesets must match the string names used by the tasks called during flowgraph execution. By convention, the fileset names should match the the name of the flowgraph being executed.

1.4.13. package#

1.4.13.1. author#

1.4.13.1.1. email#

Description

Package: author email

Type

str

Default Value

None

CLI Switch

  • -package_author_email 'userid <str>'

Example (CLI)

-package_author_email 'wiley wiley@acme.com'

Example (API)

chip.set('package', 'author', 'wiley', 'email', 'wiley@acme.com')

Package author email provided with full name as key and email as value.

1.4.13.1.2. location#

Description

Package: author location

Type

str

Default Value

None

CLI Switch

  • -package_author_location 'userid <str>'

Example (CLI)

-package_author_location 'wiley wiley@acme.com'

Example (API)

chip.set('package', 'author', 'wiley', 'location', 'wiley@acme.com')

Package author location provided with full name as key and location as value.

1.4.13.1.3. name#

Description

Package: author name

Type

str

Default Value

None

CLI Switch

  • -package_author_name 'userid <str>'

Example (CLI)

-package_author_name 'wiley wiley@acme.com'

Example (API)

chip.set('package', 'author', 'wiley', 'name', 'wiley@acme.com')

Package author name provided with full name as key and name as value.

1.4.13.1.4. organization#

Description

Package: author organization

Type

str

Default Value

None

CLI Switch

  • -package_author_organization 'userid <str>'

Example (CLI)

-package_author_organization 'wiley wiley@acme.com'

Example (API)

chip.set('package', 'author', 'wiley', 'organization', 'wiley@acme.com')

Package author organization provided with full name as key and organization as value.

1.4.13.1.5. publickey#

Description

Package: author publickey

Type

str

Default Value

None

CLI Switch

  • -package_author_publickey 'userid <str>'

Example (CLI)

-package_author_publickey 'wiley wiley@acme.com'

Example (API)

chip.set('package', 'author', 'wiley', 'publickey', 'wiley@acme.com')

Package author publickey provided with full name as key and publickey as value.

1.4.13.1.6. username#

Description

Package: author username

Type

str

Default Value

None

CLI Switch

  • -package_author_username 'userid <str>'

Example (CLI)

-package_author_username 'wiley wiley@acme.com'

Example (API)

chip.set('package', 'author', 'wiley', 'username', 'wiley@acme.com')

Package author username provided with full name as key and username as value.

1.4.13.2. description#

Description

Package: description

Type

str

Default Value

None

CLI Switch

  • -package_description <str>

Example (CLI)

-package_description 'Yet another cpu'

Example (API)

chip.set('package', 'description', 'Yet another cpu')

Package short one line description for package managers and summary reports.

1.4.13.3. doc#

1.4.13.3.1. datasheet#

Description

Package: datasheet document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_datasheet <str>

Example (CLI)

-package_doc_datasheet datasheet.pdf

Example (API)

chip.set('package', 'doc', 'datasheet', 'datasheet.pdf')

Package list of datasheet documents.

1.4.13.3.2. homepage#

Description

Package: documentation homepage

Type

str

Default Value

None

CLI Switch

  • -package_doc_homepage <str>

Example (CLI)

-package_doc_homepage index.html

Example (API)

chip.set('package', 'doc', 'homepage', 'index.html')

Package documentation homepage. Filepath to design docs homepage. Complex designs can can include a long non standard list of documents dependent. A single html entry point can be used to present an organized documentation dashboard to the designer.

1.4.13.3.3. quickstart#

Description

Package: quickstart document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_quickstart <str>

Example (CLI)

-package_doc_quickstart quickstart.pdf

Example (API)

chip.set('package', 'doc', 'quickstart', 'quickstart.pdf')

Package list of quickstart documents.

1.4.13.3.4. reference#

Description

Package: reference document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_reference <str>

Example (CLI)

-package_doc_reference reference.pdf

Example (API)

chip.set('package', 'doc', 'reference', 'reference.pdf')

Package list of reference documents.

1.4.13.3.5. releasenotes#

Description

Package: releasenotes document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_releasenotes <str>

Example (CLI)

-package_doc_releasenotes releasenotes.pdf

Example (API)

chip.set('package', 'doc', 'releasenotes', 'releasenotes.pdf')

Package list of releasenotes documents.

1.4.13.3.6. signoff#

Description

Package: signoff document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_signoff <str>

Example (CLI)

-package_doc_signoff signoff.pdf

Example (API)

chip.set('package', 'doc', 'signoff', 'signoff.pdf')

Package list of signoff documents.

1.4.13.3.7. testplan#

Description

Package: testplan document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_testplan <str>

Example (CLI)

-package_doc_testplan testplan.pdf

Example (API)

chip.set('package', 'doc', 'testplan', 'testplan.pdf')

Package list of testplan documents.

1.4.13.3.8. tutorial#

Description

Package: tutorial document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_tutorial <str>

Example (CLI)

-package_doc_tutorial tutorial.pdf

Example (API)

chip.set('package', 'doc', 'tutorial', 'tutorial.pdf')

Package list of tutorial documents.

1.4.13.3.9. userguide#

Description

Package: userguide document

Type

[file]

Default Value

[]

CLI Switch

  • -package_doc_userguide <str>

Example (CLI)

-package_doc_userguide userguide.pdf

Example (API)

chip.set('package', 'doc', 'userguide', 'userguide.pdf')

Package list of userguide documents.

1.4.13.4. keyword#

Description

Package: keyword

Type

str

Default Value

None

CLI Switch

  • -package_keyword <str>

Example (CLI)

-package_keyword cpu

Example (API)

chip.set('package', 'keyword', 'cpu')

Package keyword(s) used to characterize package.

1.4.13.5. license#

Description

Package: license identifiers

Type

[str]

Default Value

[]

CLI Switch

  • -package_license <str>

Example (CLI)

-package_license 'Apache-2.0'

Example (API)

chip.set('package', 'license', 'Apache-2.0')

Package list of SPDX license identifiers.

1.4.13.6. licensefile#

Description

Package: license files

Type

[file]

Default Value

[]

CLI Switch

  • -package_licensefile <file>

Example (CLI)

-package_licensefile './LICENSE'

Example (API)

chip.set('package', 'licensefile', './LICENSE')

Package list of license files for to be applied in cases when a SPDX identifier is not available. (eg. proprietary licenses).list of SPDX license identifiers.

1.4.13.7. organization#

Description

Package: sponsoring organization

Type

[str]

Default Value

[]

CLI Switch

  • -package_organization <str>

Example (CLI)

-package_organization 'humanity'

Example (API)

chip.set('package', 'organization', 'humanity')

Package sponsoring organization. The field can be left blank if not applicable.

1.4.13.8. source#

1.4.13.8.1. path#

Description

Package data source path

Type

str

Default Value

None

CLI Switch

  • -package_source_path 'source <str>'

Example (CLI)

-package_source_path 'freepdk45_data ssh://git@github.com/siliconcompiler/freepdk45/'

Example (API)

chip.set('package', 'source', 'freepdk45_data', 'path', 'ssh://git@github.com/siliconcompiler/freepdk45/')

Package data source path, allowed paths:

1.4.13.8.2. ref#

Description

Package data source reference

Type

str

Default Value

None

CLI Switch

  • -package_source_ref 'source <str>'

Example (CLI)

-package_source_ref 'freepdk45_data 07ec4aa'

Example (API)

chip.set('package', 'source', 'freepdk45_data', 'ref', '07ec4aa')

Package data source reference

1.4.13.9. version#

Description

Package: version

Type

str

Default Value

None

CLI Switch

  • -package_version <str>

Example (CLI)

-package_version 1.0

Example (API)

chip.set('package', 'version', '1.0')

Package version. Can be a branch, tag, commit hash, or a semver compatible version.

1.4.14. pdk#

1.4.14.1. aprtech#

Description

PDK: APR technology files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_aprtech 'pdkname tool stackup libarch filetype <file>'

Example (CLI)

-pdk_aprtech 'asap7 openroad M10 12t lef tech.lef'

Example (API)

chip.set('pdk', 'asap7', 'aprtech', 'openroad', 'M10', '12t', 'lef', 'tech.lef')

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, em.

1.4.14.2. d0#

Description

PDK: process defect density

Type

float

Default Value

None

CLI Switch

  • -pdk_d0 'pdkname <float>'

Example (CLI)

-pdk_d0 'asap7 0.1'

Example (API)

chip.set('pdk', 'asap7', 'd0', 0.1)

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.

1.4.14.3. density#

Description

PDK: transistor density

Type

float

Default Value

None

CLI Switch

  • -pdk_density 'pdkname <float>'

Example (CLI)

-pdk_density 'asap7 100e6'

Example (API)

chip.set('pdk', 'asap7', 'density', 10e6)

Approximate logic density expressed as # transistors / mm^2 calculated as: 0.6 * (Nand2 Transistor Count) / (Nand2 Cell Area) + 0.4 * (Register Transistor Count) / (Register Cell Area) The value is specified for a fixed standard cell library within a node and will differ depending on the library vendor, library track height and library type. The value can be used to to normalize the effective density reported for the design across different process nodes. The value can be derived from a variety of sources, including the PDK DRM, library LEFs, conference presentations, and public analysis.

1.4.14.4. devmodel#

Description

PDK: device models

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_devmodel 'pdkname tool simtype stackup <file>'

Example (CLI)

-pdk_devmodel 'asap7 xyce spice M10 asap7.sp'

Example (API)

chip.set('pdk', 'asap7', 'devmodel', 'xyce', 'spice', 'M10', 'asap7.sp')

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.

1.4.14.5. directory#

Description

PDK: special directory

Type

[dir]

Default Value

[]

CLI Switch

  • -pdk_directory 'pdkname tool key stackup <file>'

Example (CLI)

-pdk_directory 'asap7 xyce rfmodel M10 rftechdir'

Example (API)

chip.set('pdk', 'asap7', 'directory', 'xyce', 'rfmodel', 'M10', 'rftechdir')

List of named directories specified on a per tool and per stackup basis. The parameter should only be used for specifying files that are not directly supported by the SiliconCompiler PDK schema.

1.4.14.6. display#

Description

PDK: display file

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_display 'pdkname tool stackup <file>'

Example (CLI)

-pdk_display 'asap7 klayout M10 display.lyt'

Example (API)

chip.set('pdk', 'asap7', 'display', 'klayout', 'M10', 'display.cfg')

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.

1.4.14.7. doc#

1.4.14.7.1. datasheet#

Description

PDK: datasheet

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_datasheet 'pdkname <file>'

Example (CLI)

-pdk_doc_datasheet 'asap7 datasheet.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'datasheet', 'datasheet.pdf')

Filepath to datasheet document.

1.4.14.7.2. homepage#

Description

PDK: documentation homepage

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_homepage 'pdkname <file>'

Example (CLI)

-pdk_doc_homepage 'asap7 index.html'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'homepage', 'index.html')

Filepath to PDK docs homepage. Modern PDKs can include tens or hundreds of individual documents. A single html entry point can be used to present an organized documentation dashboard to the designer.

1.4.14.7.3. install#

Description

PDK: install

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_install 'pdkname <file>'

Example (CLI)

-pdk_doc_install 'asap7 install.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'install', 'install.pdf')

Filepath to install document.

1.4.14.7.4. quickstart#

Description

PDK: quickstart

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_quickstart 'pdkname <file>'

Example (CLI)

-pdk_doc_quickstart 'asap7 quickstart.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'quickstart', 'quickstart.pdf')

Filepath to quickstart document.

1.4.14.7.5. reference#

Description

PDK: reference

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_reference 'pdkname <file>'

Example (CLI)

-pdk_doc_reference 'asap7 reference.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'reference', 'reference.pdf')

Filepath to reference document.

1.4.14.7.6. releasenotes#

Description

PDK: releasenotes

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_releasenotes 'pdkname <file>'

Example (CLI)

-pdk_doc_releasenotes 'asap7 releasenotes.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'releasenotes', 'releasenotes.pdf')

Filepath to releasenotes document.

1.4.14.7.7. tutorial#

Description

PDK: tutorial

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_tutorial 'pdkname <file>'

Example (CLI)

-pdk_doc_tutorial 'asap7 tutorial.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'tutorial', 'tutorial.pdf')

Filepath to tutorial document.

1.4.14.7.8. userguide#

Description

PDK: userguide

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc_userguide 'pdkname <file>'

Example (CLI)

-pdk_doc_userguide 'asap7 userguide.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'userguide', 'userguide.pdf')

Filepath to userguide document.

1.4.14.8. drc#

1.4.14.8.1. runset#

Description

PDK: DRC runset files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_drc_runset 'pdkname tool stackup name <file>'

Example (CLI)

-pdk_drc_runset 'asap7 magic M10 basic $PDK/drc.rs'

Example (API)

chip.set('pdk', 'asap7', 'drc', 'runset', 'magic', 'M10', 'basic', '$PDK/drc.rs')

Runset files for DRC task.

1.4.14.8.2. waiver#

Description

PDK: DRC waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_drc_waiver 'tool stackup name <file>'

Example (CLI)

-pdk_drc_waiver 'asap7 magic M10 basic $PDK/drc.txt'

Example (API)

chip.set('pdk', 'asap7', 'drc', 'waiver', 'magic', 'M10', 'basic', '$PDK/drc.txt')

Waiver files for DRC task.

1.4.14.9. edgemargin#

Description

PDK: wafer edge keep-out margin

Type

float

Unit

mm

Default Value

None

CLI Switch

  • -pdk_edgemargin 'pdkname <float>'

Example (CLI)

-pdk_edgemargin 'asap7 1'

Example (API)

chip.set('pdk', 'asap7', 'edgemargin', 1)

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.

1.4.14.10. erc#

1.4.14.10.1. runset#

Description

PDK: ERC runset files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_erc_runset 'pdkname tool stackup name <file>'

Example (CLI)

-pdk_erc_runset 'asap7 magic M10 basic $PDK/erc.rs'

Example (API)

chip.set('pdk', 'asap7', 'erc', 'runset', 'magic', 'M10', 'basic', '$PDK/erc.rs')

Runset files for ERC task.

1.4.14.10.2. waiver#

Description

PDK: ERC waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_erc_waiver 'tool stackup name <file>'

Example (CLI)

-pdk_erc_waiver 'asap7 magic M10 basic $PDK/erc.txt'

Example (API)

chip.set('pdk', 'asap7', 'erc', 'waiver', 'magic', 'M10', 'basic', '$PDK/erc.txt')

Waiver files for ERC task.

1.4.14.11. file#

Description

PDK: special file

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_file 'pdkname tool key stackup <file>'

Example (CLI)

-pdk_file 'asap7 xyce spice M10 asap7.sp'

Example (API)

chip.set('pdk', 'asap7', 'file', 'xyce', 'spice', 'M10', 'asap7.sp')

List of named files specified on a per tool and per stackup basis. The parameter should only be used for specifying files that are not directly supported by the SiliconCompiler PDK schema.

1.4.14.12. fill#

1.4.14.12.1. runset#

Description

PDK: FILL runset files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_fill_runset 'pdkname tool stackup name <file>'

Example (CLI)

-pdk_fill_runset 'asap7 magic M10 basic $PDK/fill.rs'

Example (API)

chip.set('pdk', 'asap7', 'fill', 'runset', 'magic', 'M10', 'basic', '$PDK/fill.rs')

Runset files for FILL task.

1.4.14.12.2. waiver#

Description

PDK: FILL waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_fill_waiver 'tool stackup name <file>'

Example (CLI)

-pdk_fill_waiver 'asap7 magic M10 basic $PDK/fill.txt'

Example (API)

chip.set('pdk', 'asap7', 'fill', 'waiver', 'magic', 'M10', 'basic', '$PDK/fill.txt')

Waiver files for FILL task.

1.4.14.13. foundry#

Description

PDK: foundry name

Type

str

Default Value

None

CLI Switch

  • -pdk_foundry 'pdkname <str>'

Example (CLI)

-pdk_foundry 'asap7 virtual'

Example (API)

chip.set('pdk', 'asap7', 'foundry', 'virtual')

Name of foundry corporation. Examples include intel, gf, tsmc, samsung, skywater, virtual. The ‘virtual’ keyword is reserved for simulated non-manufacturable processes.

1.4.14.14. hscribe#

Description

PDK: horizontal scribe line width

Type

float

Unit

mm

Default Value

None

CLI Switch

  • -pdk_hscribe 'pdkname <float>'

Example (CLI)

-pdk_hscribe 'asap7 0.1'

Example (API)

chip.set('pdk', 'asap7', 'hscribe', 0.1)

Width of the horizontal 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.

1.4.14.15. lambda#

Description

PDK: Lambda value

Type

float

Default Value

1e-06

CLI Switch

  • -pdk_lambda 'pdkname <float>

Example (CLI)

-pdk_lambda 'asap7 1e-06'

Example (API)

chip.set('pdk', 'asap7', 'lambda', 1e-06)

Elementary distance unit used for scaling user specified physical schema parameters such as layout constraints.

1.4.14.16. layermap#

Description

PDK: layer map file

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_layermap 'pdkname tool src dst stackup <file>'

Example (CLI)

-pdk_layermap 'asap7 klayout db gds M10 asap7.map'

Example (API)

chip.set('pdk', 'asap7', 'layermap', 'klayout', 'db', 'gds', 'M10', 'asap7.map')

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’).

1.4.14.17. lvs#

1.4.14.17.1. runset#

Description

PDK: LVS runset files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_lvs_runset 'pdkname tool stackup name <file>'

Example (CLI)

-pdk_lvs_runset 'asap7 magic M10 basic $PDK/lvs.rs'

Example (API)

chip.set('pdk', 'asap7', 'lvs', 'runset', 'magic', 'M10', 'basic', '$PDK/lvs.rs')

Runset files for LVS task.

1.4.14.17.2. waiver#

Description

PDK: LVS waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_lvs_waiver 'tool stackup name <file>'

Example (CLI)

-pdk_lvs_waiver 'asap7 magic M10 basic $PDK/lvs.txt'

Example (API)

chip.set('pdk', 'asap7', 'lvs', 'waiver', 'magic', 'M10', 'basic', '$PDK/lvs.txt')

Waiver files for LVS task.

1.4.14.18. maxlayer#

Description

PDK: maximum routing layer

Type

str

Default Value

None

CLI Switch

  • -pdk_maxlayer 'pdk stackup <str>'

Example (CLI)

-pdk_maxlayer 'asap7 2MA4MB2MC M8'

Example (API)

chip.set('pdk', 'asap7', 'maxlayer', 'MA4MB2MC', 'M8')

Maximum metal layer to be used for automated place and route specified on a per stackup basis.

1.4.14.19. minlayer#

Description

PDK: minimum routing layer

Type

str

Default Value

None

CLI Switch

  • -pdk_minlayer 'pdk stackup <str>'

Example (CLI)

-pdk_minlayer 'asap7 2MA4MB2MC M2'

Example (API)

chip.set('pdk', 'asap7', 'minlayer', '2MA4MB2MC', 'M2')

Minimum metal layer to be used for automated place and route specified on a per stackup basis.

1.4.14.20. node#

Description

PDK: process node

Type

float

Default Value

None

CLI Switch

  • -pdk_node 'pdkname <float>'

Example (CLI)

-pdk_node 'asap7 130'

Example (API)

chip.set('pdk', 'asap7', 'node', 130)

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.

1.4.14.21. panelsize#

Description

PDK: panel size

Type

[(float,float)]

Unit

mm

Default Value

[]

CLI Switch

  • -pdk_panelsize 'pdkname <(float,float)>'

Example (CLI)

-pdk_panelsize 'asap7 (45.72,60.96)'

Example (API)

chip.set('pdk', 'asap7', 'panelsize', (45.72, 60.96))

List of panel sizes supported in the manufacturing process.

1.4.14.22. pexmodel#

Description

PDK: parasitic TCAD models

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_pexmodel 'pdkname tool stackup corner <file>'

Example (CLI)

-pdk_pexmodel 'asap7 fastcap M10 max wire.mod'

Example (API)

chip.set('pdk', 'asap7', 'pexmodel', 'fastcap', 'M10', 'max', 'wire.mod')

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’.

1.4.14.23. stackup#

Description

PDK: metal stackups

Type

[str]

Default Value

[]

CLI Switch

  • -pdk_stackup 'pdkname <str>'

Example (CLI)

-pdk_stackup 'asap7 2MA4MB2MC'

Example (API)

chip.add('pdk', 'asap7', 'stackup', '2MA4MB2MC')

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.

1.4.14.24. thickness#

Description

PDK: unit thickness

Type

float

Unit

mm

Default Value

None

CLI Switch

  • -pdk_thickness 'pdkname stackup <float>'

Example (CLI)

-pdk_thickness 'asap7 2MA4MB2MC 1.57'

Example (API)

chip.set('pdk', 'asap7', 'thickness', '2MA4MB2MC', 1.57)

Thickness of a manufactured unit specified on a per stackup.

1.4.14.25. unitcost#

Description

PDK: unit cost

Type

float

Unit

USD

Default Value

None

CLI Switch

  • -pdk_unitcost 'pdkname <float>'

Example (CLI)

-pdk_unitcost 'asap7 10000'

Example (API)

chip.set('pdk', 'asap7', 'unitcost', 10000)

Raw cost per unit shipped by the factory, not accounting for yield loss.

1.4.14.26. var#

Description

PDK: special variable

Type

[str]

Default Value

[]

CLI Switch

  • -pdk_var 'pdkname tool stackup key <str>'

Example (CLI)

-pdk_var 'asap7 xyce modeltype M10 bsim4'

Example (API)

chip.set('pdk', 'asap7', 'var', 'xyce', 'modeltype', 'M10', 'bsim4')

List of key/value strings specified on a per tool and per stackup basis. The parameter should only be used for specifying variables that are not directly supported by the SiliconCompiler PDK schema.

1.4.14.27. version#

Description

PDK: version

Type

str

Default Value

None

CLI Switch

  • -pdk_version 'pdkname <str>'

Example (CLI)

-pdk_version 'asap7 1.0'

Example (API)

chip.set('pdk', 'asap7', 'version', '1.0')

Alphanumeric string specifying the version of the PDK. Verification of correct PDK and IP versions is a hard ASIC tapeout require in all commercial foundries. The version number can be used for design manifest tracking and tapeout checklists.

1.4.14.28. vscribe#

Description

PDK: vertical scribe line width

Type

float

Unit

mm

Default Value

None

CLI Switch

  • -pdk_vscribe 'pdkname <float>'

Example (CLI)

-pdk_vscribe 'asap7 0.1'

Example (API)

chip.set('pdk', 'asap7', 'vscribe', 0.1)

Width of the 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.

1.4.14.29. wafersize#

Description

PDK: wafer size

Type

float

Unit

mm

Default Value

None

CLI Switch

  • -pdk_wafersize 'pdkname <float>'

Example (CLI)

-pdk_wafersize 'asap7 300'

Example (API)

chip.set('pdk', 'asap7', 'wafersize', 300)

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, 100, 125, 100 are common. The value is used to calculate dies per wafer and full factory chip costs.

1.4.15. record#

1.4.15.1. arch#

Description

Record: hardware architecture

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_arch 'step index <str>'

Example (CLI)

-record_arch 'dfm 0 x86_64'

Example (API)

chip.set('record', 'arch', 'x86_64', step='dfm', index=0)

Record tracking the hardware architecture per step and index basis. (x86_64, rv64imafdc)

1.4.15.2. distro#

Description

Record: distro name

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_distro 'step index <str>'

Example (CLI)

-record_distro 'dfm 0 ubuntu'

Example (API)

chip.set('record', 'distro', 'ubuntu', step='dfm', index=0)

Record tracking the distro name per step and index basis. (ubuntu, redhat, centos)

1.4.15.3. endtime#

Description

Record: end time

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_endtime 'step index <str>'

Example (CLI)

-record_endtime 'dfm 0 2021-09-06 12:20:20'

Example (API)

chip.set('record', 'endtime', '2021-09-06 12:20:20', step='dfm', index=0)

Record tracking the end time per step and index basis. Time is reported in the ISO 8601 format YYYY-MM-DD HR:MIN:SEC

1.4.15.4. ipaddr#

Description

Record: IP address

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_ipaddr 'step index <str>'

Example (CLI)

-record_ipaddr 'dfm 0 <addr>'

Example (API)

chip.set('record', 'ipaddr', '<addr>', step='dfm', index=0)

Record tracking the IP address per step and index basis.

1.4.15.5. kernelversion#

Description

Record: O/S kernel version

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_kernelversion 'step index <str>'

Example (CLI)

-record_kernelversion 'dfm 0 5.11.0-34-generic'

Example (API)

chip.set('record', 'kernelversion', '5.11.0-34-generic', step='dfm', index=0)

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.

1.4.15.6. macaddr#

Description

Record: MAC address

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_macaddr 'step index <str>'

Example (CLI)

-record_macaddr 'dfm 0 <addr>'

Example (API)

chip.set('record', 'macaddr', '<addr>', step='dfm', index=0)

Record tracking the MAC address per step and index basis.

1.4.15.7. machine#

Description

Record: machine name

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_machine 'step index <str>'

Example (CLI)

-record_machine 'dfm 0 carbon'

Example (API)

chip.set('record', 'machine', 'carbon', step='dfm', index=0)

Record tracking the machine name per step and index basis. (myhost, localhost, …

1.4.15.8. osversion#

Description

Record: O/S version

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_osversion 'step index <str>'

Example (CLI)

-record_osversion 'dfm 0 20.04.1-Ubuntu'

Example (API)

chip.set('record', 'osversion', '20.04.1-Ubuntu', step='dfm', index=0)

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.

1.4.15.9. platform#

Description

Record: platform name

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_platform 'step index <str>'

Example (CLI)

-record_platform 'dfm 0 linux'

Example (API)

chip.set('record', 'platform', 'linux', step='dfm', index=0)

Record tracking the platform name per step and index basis. (linux, windows, freebsd)

1.4.15.10. publickey#

Description

Record: public key

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_publickey 'step index <str>'

Example (CLI)

-record_publickey 'dfm 0 <key>'

Example (API)

chip.set('record', 'publickey', '<key>', step='dfm', index=0)

Record tracking the public key per step and index basis.

1.4.15.11. region#

Description

Record: cloud region

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_region 'step index <str>'

Example (CLI)

-record_region 'dfm 0 US Gov Boston'

Example (API)

chip.set('record', 'region', 'US Gov Boston', step='dfm', index=0)

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

1.4.15.12. remoteid#

Description

Record: remote job ID

Type

str

Default Value

None

CLI Switch

  • -record_remoteid 'step index <str>'

Example (CLI)

-record_remoteid '0123456789abcdeffedcba9876543210'

Example (API)

chip.set('record', 'remoteid', '0123456789abcdeffedcba9876543210')

Record tracking the job ID for a remote run.

1.4.15.13. scversion#

Description

Record: software version

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_scversion 'step index <str>'

Example (CLI)

-record_scversion 'dfm 0 1.0'

Example (API)

chip.set('record', 'scversion', '1.0', step='dfm', index=0)

Record tracking the software version per step and index basis. Version number for the SiliconCompiler software.

1.4.15.14. starttime#

Description

Record: start time

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_starttime 'step index <str>'

Example (CLI)

-record_starttime 'dfm 0 2021-09-06 12:20:20'

Example (API)

chip.set('record', 'starttime', '2021-09-06 12:20:20', step='dfm', index=0)

Record tracking the start time per step and index basis. Time is reported in the ISO 8601 format YYYY-MM-DD HR:MIN:SEC

1.4.15.15. toolargs#

Description

Record: tool CLI arguments

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_toolargs 'step index <str>'

Example (CLI)

-record_toolargs 'dfm 0 -I include/ foo.v'

Example (API)

chip.set('record', 'toolargs', '-I include/ foo.v', step='dfm', index=0)

Record tracking the tool CLI arguments per step and index basis. Arguments passed to tool via CLI.

1.4.15.16. toolpath#

Description

Record: tool path

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_toolpath 'step index <str>'

Example (CLI)

-record_toolpath 'dfm 0 /usr/bin/openroad'

Example (API)

chip.set('record', 'toolpath', '/usr/bin/openroad', step='dfm', index=0)

Record tracking the tool path per step and index basis. Full path to tool executable used to run this task.

1.4.15.17. toolversion#

Description

Record: tool version

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_toolversion 'step index <str>'

Example (CLI)

-record_toolversion 'dfm 0 1.0'

Example (API)

chip.set('record', 'toolversion', '1.0', step='dfm', index=0)

Record tracking the tool version per step and index basis. The tool version captured corresponds to the ‘tool’ parameter within the ‘tool’ dictionary.

1.4.15.18. userid#

Description

Record: userid

Type

str

Per step/index

required

Default Value

None

CLI Switch

  • -record_userid 'step index <str>'

Example (CLI)

-record_userid 'dfm 0 wiley'

Example (API)

chip.set('record', 'userid', 'wiley', step='dfm', index=0)

Record tracking the userid per step and index basis.

1.4.16. schemaversion#

Description

Schema version number

Type

str

Default Value

0.40.0

CLI Switch

  • -schemaversion <str>

Example (API)

chip.get('schemaversion')

SiliconCompiler schema version number.

1.4.17. tool#

1.4.17.1. exe#

Description

Tool: executable name

Type

str

Default Value

None

CLI Switch

  • -tool_exe 'tool <str>'

Example (CLI)

-tool_exe 'openroad openroad'

Example (API)

chip.set('tool', 'openroad', 'exe', 'openroad')

Tool executable name.

1.4.17.2. format#

Description

Tool: file format

Type

enum

Allowed Values

  • json
  • tcl
  • yaml

Default Value

None

CLI Switch

  • -tool_format 'tool <file>'

Example (CLI)

-tool_format 'yosys tcl'

Example (API)

chip.set('tool', 'yosys', 'format', 'tcl')

File format for tool manifest handoff.

1.4.17.3. licenseserver#

Description

Tool: license servers

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_licenseserver 'name key <str>'

Example (CLI)

-tool_licenseserver 'atask ACME_LICENSE 1700@server'

Example (API)

chip.set('tool', 'acme', 'licenseserver', 'ACME_LICENSE', '1700@server')

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 each server by a ‘colon’. The named license variable are read at runtime (run()) and the environment variables are set.

1.4.17.4. path#

Description

Tool: executable path

Type

dir

Per step/index

optional

Default Value

None

CLI Switch

  • -tool_path 'tool <dir>'

Example (CLI)

-tool_path 'openroad /usr/local/bin'

Example (API)

chip.set('tool', 'openroad', 'path', '/usr/local/bin')

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 ‘exe’ is already in the environment search path.

1.4.17.5. sbom#

Description

Tool: software BOM

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_sbom 'tool version <file>'

Example (CLI)

-tool_sbom 'yosys 1.0.1 ys_sbom.json'

Example (API)

chip.set('tool', 'yosys', 'sbom', '1.0', 'ys_sbom.json')

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.

1.4.17.6. task#

1.4.17.6.1. continue#

Description

Task: continue option

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -tool_task_continue 'tool task <bool>'

Example (CLI)

-tool_task_continue 'verilator lint true'

Example (API)

chip.set('tool', 'verilator', 'task', 'lint', 'continue', True)

Directs flow to continue even if errors are encountered during task. The default behavior is for SC to exit on error.

1.4.17.6.2. dir#

Description

Task: setup directories

Type

[dir]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_dir 'tool task key <dir>'

Example (CLI)

-tool_task_dir 'verilator compile cincludes include'

Example (API)

chip.set('tool', 'verilator', 'task', 'compile', 'dir', 'cincludes', 'include')

Paths to user supplied directories mapped to keys. Keys must match what’s expected by the task/reference script consuming the directory.

1.4.17.6.3. env#

Description

Task: environment variables

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -tool_task_env 'tool task step index name <str>'

Example (CLI)

-tool_task_env 'openroad cts MYVAR 42'

Example (API)

chip.set('tool', 'openroad', 'task', 'cts', 'env', 'MYVAR', '42')

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.

1.4.17.6.4. file#

Description

Task: setup files

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_file 'tool task key <file>'

Example (CLI)

-tool_task_file 'openroad floorplan macroplace macroplace.tcl'

Example (API)

chip.set('tool', 'openroad', 'task', 'floorplan', 'file', 'macroplace', 'macroplace.tcl')

Paths to user supplied files mapped to keys. Keys and filetypes must match what’s expected by the task/reference script consuming the file.

1.4.17.6.5. input#

Description

Task: inputs

Type

[file]

Per step/index

required

Default Value

[]

CLI Switch

  • -tool_task_input 'tool task step index <str>'

Example (CLI)

-tool_task_input 'openroad place place 0 oh_add.def'

Example (API)

chip.set('tool', 'openroad', 'task', 'place', 'input', 'oh_add.def', step='place', index='0')

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’, step, index, ‘input’]. All files must be available for flow to continue. If a file is missing, the program exists on an error.

1.4.17.6.6. keep#

Description

Task: files to keep

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_keep 'task <str>'

Example (CLI)

-tool_task_keep 'surelog import slp_all'

Example (API)

chip.set('tool', 'surelog', 'task', 'import', 'keep', 'slpp_all')

Names of additional files and directories in the work directory that should be kept when ['option', 'clean'] is true.

1.4.17.6.7. option#

Description

Task: executable options

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_option 'tool task <str>'

Example (CLI)

-tool_task_option 'openroad cts -no_init'

Example (API)

chip.set('tool', 'openroad', 'task', 'cts', 'option', '-no_init')

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.

1.4.17.6.8. output#

Description

Task: outputs

Type

[file]

Per step/index

required

Default Value

[]

CLI Switch

  • -tool_task_output 'tool task step index <str>'

Example (CLI)

-tool_task_output 'openroad place place 0 oh_add.def'

Example (API)

chip.set('tool', 'openroad', 'task', 'place', 'output', 'oh_add.def', step='place', index='0')

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.

1.4.17.6.9. postscript#

Description

Task: post-step script

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_postscript 'task <file>'

Example (CLI)

-tool_task_postscript 'yosys syn syn_post.tcl'

Example (API)

chip.set('tool', 'yosys', 'task', 'syn_asic', 'postscript', 'syn_post.tcl')

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.

1.4.17.6.10. prescript#

Description

Task: pre-step script

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_prescript 'task <file>'

Example (CLI)

-tool_task_prescript 'yosys syn syn_pre.tcl'

Example (API)

chip.set('tool', 'yosys', 'task', 'syn_asic', 'prescript', 'syn_pre.tcl')

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.

1.4.17.6.11. refdir#

Description

Task: script directory

Type

[dir]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_refdir 'task <dir>'

Example (CLI)

-tool_task_refdir 'yosys syn ./myref'

Example (API)

chip.set('tool', 'yosys', 'task', 'syn_asic', 'refdir', './myref')

Path to directories containing reference flow scripts, specified on a per step and index basis.

1.4.17.6.12. regex#

Description

Task: regex filter

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_regex 'tool task suffix <str>'

Example (CLI)

-tool_task_regex 'openroad place errors "-v ERROR"'

Example (API)

chip.set('tool', 'openroad', 'task', 'place', 'regex', 'errors', '-v ERROR')

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:

chip.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.

1.4.17.6.13. report#

Description

Task: reports

Type

[file]

Per step/index

required

Default Value

[]

CLI Switch

  • -tool_task_report 'task metric step index <str>'

Example (CLI)

-tool_task_report 'openroad place holdtns place 0 place.log'

Example (API)

chip.set('tool', 'openroad', 'task', 'place', 'report', 'holdtns', 'place.log', step='place', index='0')

List of report files associated with a specific ‘metric’. The file path specified is relative to the run directory of the current task.

1.4.17.6.14. require#

Description

Task: parameter requirements

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_require 'task step index <str>'

Example (CLI)

-tool_task_require 'openroad cts design'

Example (API)

chip.set('tool', 'openroad', 'task', 'cts', 'require', 'design')

List of keypaths to required task parameters. The list is used by check_manifest() to verify that all parameters have been set up before step execution begins.

1.4.17.6.15. script#

Description

Task: entry script

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_script 'task step index <file>'

Example (CLI)

-tool_task_script 'yosys syn syn.tcl'

Example (API)

chip.set('tool', 'yosys', 'task', 'syn_asic', 'script', 'syn.tcl')

Path to the entry script called by the executable specified on a per task and per step basis.

1.4.17.6.16. stderr#
1.4.17.6.16.1. destination#

Description

Task: Destination for stderr

Type

str

Per step/index

optional

Default Value

log

CLI Switch

  • -tool_task_stderr_destination 'task [log|output|none]'

Example (CLI)

-tool_task_stderr_destination 'ghdl import log'

Example (API)

chip.set('tool', ghdl', 'task', 'import', 'stderr', 'destination', 'log')

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>

1.4.17.6.16.2. suffix#

Description

Task: File suffix for redirected stderr

Type

str

Per step/index

optional

Default Value

log

CLI Switch

  • -tool_task_stderr_suffix 'task <str>'

Example (CLI)

-tool_task_stderr_suffix 'ghdl import log'

Example (API)

chip.set('tool', 'ghdl', 'task', 'import', 'stderr', 'suffix', 'log')

Specifies the file extension for the content redirected from stderr.

1.4.17.6.17. stdout#
1.4.17.6.17.1. destination#

Description

Task: Destination for stdout

Type

str

Per step/index

optional

Default Value

log

CLI Switch

  • -tool_task_stdout_destination 'task [log|output|none]'

Example (CLI)

-tool_task_stdout_destination 'ghdl import log'

Example (API)

chip.set('tool', 'ghdl', 'task', 'import', 'stdout', 'destination', 'log')

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>

1.4.17.6.17.2. suffix#

Description

Task: File suffix for redirected stdout

Type

str

Per step/index

optional

Default Value

log

CLI Switch

  • -tool_task_stdout_suffix 'task <str>'

Example (CLI)

-tool_task_stdout_suffix 'ghdl import log'

Example (API)

chip.set('tool', ghdl', 'task', 'import', 'stdout', 'suffix', 'log')

Specifies the file extension for the content redirected from stdout.

1.4.17.6.18. threads#

Description

Task: thread parallelism

Type

int

Per step/index

optional

Default Value

None

CLI Switch

  • -tool_task_threads 'task <int>'

Example (CLI)

-tool_task_threads 'magic drc 64'

Example (API)

chip.set('tool', 'magic', 'task', 'drc', 'threads', '64')

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.

1.4.17.6.19. var#

Description

Task: script variables

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_var 'tool task key <str>'

Example (CLI)

-tool_task_var 'openroad cts myvar 42'

Example (API)

chip.set('tool', 'openroad', 'task', 'cts', 'var', 'myvar', '42')

Task script variables specified as key value pairs. Variable names and value types must match the name and type of task and reference script consuming the variable.

1.4.17.6.20. warningoff#

Description

Task: warning filter

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_warningoff 'tool task <str>'

Example (CLI)

-tool_task_warningoff 'verilator lint COMBDLY'

Example (API)

chip.set('tool', 'verilator', 'task', 'lint', 'warningoff', 'COMBDLY')

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.

1.4.17.7. vendor#

Description

Tool: vendor

Type

str

Default Value

None

CLI Switch

  • -tool_vendor 'tool <str>'

Example (CLI)

-tool_vendor 'yosys yosys'

Example (API)

chip.set('tool', 'yosys', 'vendor', 'yosys')

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.

1.4.17.8. version#

Description

Tool: version

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_version 'tool <str>'

Example (CLI)

-tool_version 'openroad >=v2.0'

Example (API)

chip.set('tool', 'openroad', 'version', '>=v2.0')

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 ‘novercheck’ to True.

1.4.17.9. vswitch#

Description

Tool: executable version switch

Type

[str]

Default Value

[]

CLI Switch

  • -tool_vswitch 'tool <str>'

Example (CLI)

-tool_vswitch 'openroad -version'

Example (API)

chip.set('tool', 'openroad', 'vswitch', '-version')

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.

1.4.18. unit#

1.4.18.1. capacitance#

Description

Unit: capacitance

Type

str

Default Value

pf

CLI Switch

  • -unit_capacitance '<str>'

Example (CLI)

-unit_capacitance 'pf'

Example (API)

chip.set('unit', 'capacitance', pf)

Units used for capacitance when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.2. current#

Description

Unit: current

Type

str

Default Value

mA

CLI Switch

  • -unit_current '<str>'

Example (CLI)

-unit_current 'mA'

Example (API)

chip.set('unit', 'current', mA)

Units used for current when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.3. energy#

Description

Unit: energy

Type

str

Default Value

pj

CLI Switch

  • -unit_energy '<str>'

Example (CLI)

-unit_energy 'pj'

Example (API)

chip.set('unit', 'energy', pj)

Units used for energy when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.4. inductance#

Description

Unit: inductance

Type

str

Default Value

nh

CLI Switch

  • -unit_inductance '<str>'

Example (CLI)

-unit_inductance 'nh'

Example (API)

chip.set('unit', 'inductance', nh)

Units used for inductance when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.5. length#

Description

Unit: length

Type

str

Default Value

um

CLI Switch

  • -unit_length '<str>'

Example (CLI)

-unit_length 'um'

Example (API)

chip.set('unit', 'length', um)

Units used for length when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.6. mass#

Description

Unit: mass

Type

str

Default Value

g

CLI Switch

  • -unit_mass '<str>'

Example (CLI)

-unit_mass 'g'

Example (API)

chip.set('unit', 'mass', g)

Units used for mass when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.7. power#

Description

Unit: power

Type

str

Default Value

mw

CLI Switch

  • -unit_power '<str>'

Example (CLI)

-unit_power 'mw'

Example (API)

chip.set('unit', 'power', mw)

Units used for power when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.8. resistance#

Description

Unit: resistance

Type

str

Default Value

ohm

CLI Switch

  • -unit_resistance '<str>'

Example (CLI)

-unit_resistance 'ohm'

Example (API)

chip.set('unit', 'resistance', ohm)

Units used for resistance when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.9. temperature#

Description

Unit: temperature

Type

str

Default Value

C

CLI Switch

  • -unit_temperature '<str>'

Example (CLI)

-unit_temperature 'C'

Example (API)

chip.set('unit', 'temperature', C)

Units used for temperature when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.10. time#

Description

Unit: time

Type

str

Default Value

ns

CLI Switch

  • -unit_time '<str>'

Example (CLI)

-unit_time 'ns'

Example (API)

chip.set('unit', 'time', ns)

Units used for time when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.4.18.11. voltage#

Description

Unit: voltage

Type

str

Default Value

mv

CLI Switch

  • -unit_voltage '<str>'

Example (CLI)

-unit_voltage 'mv'

Example (API)

chip.set('unit', 'voltage', mv)

Units used for voltage when not explicitly specified. Units are case insensitive (ie. pF == pf).

1.5. Nested Schemas#

The SC schema has two special top-level categories that store nested subsets of the schema rather than unique parameters.

1.5.1. history#

The “history” prefix stores configuration from past runs, indexed by jobname. Values are stored automatically at the end of run(), and only parameters tagged with the ‘job’ scope are stored. This can be used to go back and inspect the results of old runs. As a shortcut for accessing these stored values, most of the schema access functions support an optional job keyword arg. For example, the following line returns the number of errors from a synthesis step run as part of a job called “job0”:

chip.get('metric', 'error', job='job0', step='syn', index='0')

1.5.2. library#

The “library” prefix stores the schema parameters of library chip objects that have been imported into the current chip object, keyed by library name. These values are accessed directly using the schema access functions. For example, the following line returns the path to a LEF file associated with a library called “mylib”:

chip.find_files('library', 'mylib', 'output', stackup, 'lef')