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#

Boolean value dictating whether the parameter is required for a run.

scope#

Scope of parameter in schema

switch#

String that specifies the equivalent switch to use in command line interfaces. The switch string must start with a ‘-’ and cannot contain spaces.

shorthelp#

Short help string to be used in cases where brevity matters. Use cases include JSON dictionary dumps and command line interface help functions.

type#

The parameter type. Supported types include Python compatible types (‘int’, ‘float’, ‘str’, ‘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. 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.4. 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.5. 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.6. 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.7. 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.8. 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.9. 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.10. 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.11. 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. Commonly 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 <str>'

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 <str>'

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 <bool>'

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

1.4.4.2.2. 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 the instance. The parameter is required for instances that are not contained within the design netlist (ie. physical only cells).

1.4.4.2.3. placement#

Description

Constraint: component placement

Type

(float,float)

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

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

Example (CLI)

-constraint_component_placement 'i0 (2.0,3.0)'

Example (API)

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

Placement location of a named instance, specified as a (x, y) tuple of floats. The location refers to the distance from the substrate origin to the anchor point of the placed component, defined by the ['datasheet', 'package', <name>, 'anchor'] parameter.

1.4.4.2.4. rotation#

Description

Constraint: component rotation

Type

enum

Per step/index

optional

Allowed Values

  • R0
  • R90
  • R180
  • R270
  • MX
  • MX_R90
  • MX_R180
  • MX_R270
  • MY
  • MY_R90
  • MY_R180
  • MY_R270
  • MZ
  • MZ_R90
  • MZ_R180
  • MZ_R270
  • MZ_MX
  • MZ_MX_R90
  • MZ_MX_R180
  • MZ_MX_R270
  • MZ_MY
  • MZ_MY_R90
  • MZ_MY_R180
  • MZ_MY_R270

Default Value

R0

CLI Switch

  • -constraint_component_rotation 'inst <str>'

Example (CLI)

-constraint_component_rotation 'i0 R90'

Example (API)

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

Placement rotation of the component. Components are always placed such that the lower left corner of the cell is at the anchor point (0,0) after any orientation. The MZ type rotations are for 3D design and typically not supported by 2D layout systems like traditional ASIC tools. For graphical illustrations of the rotation types, see the SiliconCompiler documentation.

  • R0: North orientation (no rotation)

  • R90: West orientation, rotate 90 deg counter clockwise (ccw)

  • R180: South orientation, rotate 180 deg counter ccw

  • R270: East orientation, rotate 180 deg counter ccw

  • MX, MY_R180: Flip on x-axis

  • MX_R90, MY_R270: Flip on x-axis and rotate 90 deg ccw

  • MX_R180, MY: Flip on x-axis and rotate 180 deg ccw

  • MX_R270, MY_R90: Flip on x-axis and rotate 270 deg ccw

  • MZ: Reverse component metal stack

  • MZ_R90: Reverse metal stack and rotate 90 deg ccw

  • MZ_R180: Reverse metal stack and rotate 180 deg ccw

  • MZ_R270: Reverse metal stack and rotate 270 deg ccw

  • MZ_MX, MZ_MY_R180: Reverse metal stack and flip on x-axis

  • MZ_MX_R90, MZ_MY_R270: Reverse metal stack, flip on x-axis, and rotate 90 deg ccw

  • MZ_MX_R180, MZ_MY: Reverse metal stack, flip on x-axis, and rotate 180 deg ccw

  • MZ_MX_R270, MZ_MY_R90: Reverse metal stack, flip on x-axis and rotate 270 deg ccw

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.

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.

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

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)

Per step/index

optional

Unit

um

Default Value

None

CLI Switch

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

Example (CLI)

-constraint_pin_placement 'nreset (2.0,3.0)'

Example (API)

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

Placement location of a named pin, specified as a (x,y) tuple of floats with respect to the lower left corner of the substrate. The location refers to the center of the pin. The ‘placement’ parameter is a goal/intent, not an exact specification. The layout system may adjust sizes to meet competing goals such as manufacturing design rules and grid placement guidelines.

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 ['asic', '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 ['pdk', <pdk>, 'pexmodel', ...].

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. analog#

1.4.5.1.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.1.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.1.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,float,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.1.4. dnl#

Description

Datasheet: analog differential nonlinearity

Type

(float,float,float)

Unit

LSB

Default Value

None

CLI Switch

  • -datasheet_analog_dnl 'name <(float,float,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.1.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,float,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.1.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.1.7. gain#

Description

Datasheet: analog gain

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_gain 'name <(float,float,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.1.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,float,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.1.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,float,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.1.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,float,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.1.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,float,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.1.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,float,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.1.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,float,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.1.14. inl#

Description

Datasheet: analog integral nonlinearity

Type

(float,float,float)

Unit

LSB

Default Value

None

CLI Switch

  • -datasheet_analog_inl 'name <(float,float,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.1.15. noisefigure#

Description

Datasheet: analog rf noise figure

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_noisefigure 'name <(float,float,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.1.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,float,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.1.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,float,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.1.18. phasenoise#

Description

Datasheet: analog phase noise

Type

(float,float,float)

Unit

dBc/Hz

Default Value

None

CLI Switch

  • -datasheet_analog_phasenoise 'name <(float,float,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.1.19. pout#

Description

Datasheet: analog output power

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_pout 'name <(float,float,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.1.20. pout2#

Description

Datasheet: analog 2nd harmonic power

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_pout2 'name <(float,float,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.1.21. pout3#

Description

Datasheet: analog 3rd harmonic power

Type

(float,float,float)

Unit

dBm

Default Value

None

CLI Switch

  • -datasheet_analog_pout3 'name <(float,float,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.1.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,float,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.1.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.1.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,float,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.1.25. s12#

Description

Datasheet: analog rf reverse isolation

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_s12 'name <(float,float,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.1.26. s21#

Description

Datasheet: analog rf gain

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_s21 'name <(float,float,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.1.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,float,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.1.28. samplerate#

Description

Datasheet: analog sample rate

Type

(float,float,float)

Unit

Hz

Default Value

None

CLI Switch

  • -datasheet_analog_samplerate 'name <(float,float,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.1.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,float,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.1.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,float,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.1.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,float,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.1.32. thd#

Description

Datasheet: analog total harmonic distortion

Type

(float,float,float)

Unit

dB

Default Value

None

CLI Switch

  • -datasheet_analog_thd 'name <(float,float,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.1.33. vgainerror#

Description

Datasheet: analog gain error

Type

(float,float,float)

Unit

mV

Default Value

None

CLI Switch

  • -datasheet_analog_vgainerror 'name <(float,float,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.1.34. vofferror#

Description

Datasheet: analog offset error

Type

(float,float,float)

Unit

mV

Default Value

None

CLI Switch

  • -datasheet_analog_vofferror 'name <(float,float,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.2. 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')

Device description entered as free text.

1.4.5.3. doc#

Description

Datasheet: documentation

Type

[file]

Default Value

[]

CLI Switch

  • -datasheet_doc '<file>'

Example (CLI)

-datasheet_doc 'za001.pdf'

Example (API)

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

Datasheet document.

1.4.5.4. features#

Description

Datasheet: features

Type

[str]

Default Value

[]

CLI Switch

  • -datasheet_features '<str>'

Example (CLI)

-datasheet_features 'usb3.0'

Example (API)

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

Device features.

1.4.5.5. fmax#

Description

Datasheet: 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.6. fpga#

1.4.5.6.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.6.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.6.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.6.4. luts#

Description

Datasheet: fpga LUTs

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.6.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.6.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.6.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.6.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.7. grade#

Description

Datasheet: 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.8. io#

1.4.5.8.1. arch#

Description

Datasheet: io standard

Type

enum

Allowed Values

  • spi
  • uart
  • i2c
  • pwm
  • qspi
  • sdio
  • can
  • jtag
  • spdif
  • i2s
  • gpio
  • lvds
  • serdes
  • pio
  • ddr3
  • ddr4
  • ddr5
  • lpddr4
  • lpddr5
  • hbm2
  • hbm3
  • hbm4
  • onfi
  • sram
  • hdmi
  • mipi-csi
  • mipi-dsi
  • slvs
  • sata
  • usb1
  • usb2
  • usb3
  • pcie3
  • pcie4
  • pcie5
  • pcie6
  • cxl
  • 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 'pio spi'

Example (API)

chip.set('datasheet', 'io', 'pio', 'arch', 'spi')

Datasheet: List of IO standard architectures supported by the named IO port.

1.4.5.8.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 IO port basis.

1.4.5.8.3. fmax#

Description

Datasheet: io maximum frequency

Type

float

Unit

MHz

Default Value

None

CLI Switch

  • -datasheet_io_fmax 'name <float>'

Example (CLI)

-datasheet_io_fmax 'name 100'

Example (API)

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

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

1.4.5.8.4. 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 IO port basis.

1.4.5.9. 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.10. 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.11. limit#

1.4.5.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.12. manufacturer#

Description

Datasheet: 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.

1.4.5.13. memory#

1.4.5.13.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 specified on a per memory basis.

1.4.5.13.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 specified on a per memory basis.

1.4.5.13.3. bwrd#

Description

Datasheet: memory maximum read bandwidth

Type

(float,float,float)

Unit

bps

Default Value

None

CLI Switch

  • -datasheet_memory_bwrd 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.4. bwwr#

Description

Datasheet: memory maximum write bandwidth

Type

(float,float,float)

Unit

bps

Default Value

None

CLI Switch

  • -datasheet_memory_bwwr 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.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 specified on a per memory basis.

1.4.5.13.6. erd#

Description

Datasheet: memory read energy

Type

(float,float,float)

Unit

J

Default Value

None

CLI Switch

  • -datasheet_memory_erd 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.7. ewr#

Description

Datasheet: memory write energy

Type

(float,float,float)

Unit

J

Default Value

None

CLI Switch

  • -datasheet_memory_ewr 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.8. fmax#

Description

Datasheet: memory max frequency

Type

(float,float,float)

Unit

Hz

Default Value

None

CLI Switch

  • -datasheet_memory_fmax 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.9. tcl#

Description

Datasheet: memory column address latency

Type

(int,int,int)

Unit

cycles

Default Value

None

CLI Switch

  • -datasheet_memory_tcl 'name <(int,int,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) specified on a per memory basis.

1.4.5.13.10. tcycle#

Description

Datasheet: memory access clock cycle

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_tcycle 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.11. terase#

Description

Datasheet: memory erase time

Type

(float,float,float)

Unit

s

Default Value

None

CLI Switch

  • -datasheet_memory_terase 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.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,int,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) specified on a per memory basis.

1.4.5.13.13. trcd#

Description

Datasheet: memory row address latency

Type

(int,int,int)

Unit

cycles

Default Value

None

CLI Switch

  • -datasheet_memory_trcd 'name <(int,int,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) specified on a per memory basis.

1.4.5.13.14. trd#

Description

Datasheet: memory read clock cycle

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_trd 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.15. trefresh#

Description

Datasheet: memory refresh time

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_trefresh 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.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,int,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) specified on a per memory basis.

1.4.5.13.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,float,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) specified on a per memory basis.

1.4.5.13.18. twr#

Description

Datasheet: memory write clock cycle

Type

(float,float,float)

Unit

ns

Default Value

None

CLI Switch

  • -datasheet_memory_twr 'name <(float,float,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) specified on a per memory basis.

1.4.5.13.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 specified on a per memory basis.

1.4.5.14. 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 operations performed by all on-device processing units.

1.4.5.15. package#

1.4.5.15.1. anchor#

Description

Datasheeet: package anchor

Type

(float,float)

Unit

um

Default Value

(0.0, 0.0)

CLI Switch

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

Example (CLI)

-datasheet_package_anchor 'i0 (3.0,3.0)'

Example (API)

chip.set('datasheet', 'package', 'i0', 'anchor', (3.0, 3.0))

Package anchor point with respect to the lower left corner of the package. When placing a component on a substrate, the placement location specifies the distance from the substrate origin to the anchor point of the placed object.

1.4.5.15.2. drawing#

Description

Datasheet: package drawing

Type

[file]

Default Value

[]

CLI Switch

  • -datasheet_package_drawing 'name <file>'

Example (CLI)

-datasheet_package_drawing 'abcd p484.pdf'

Example (API)

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

Mechanical package outline for documentation purposes. Common file formats include PDF, DOC, SVG, and PNG.

1.4.5.15.3. footprint#

Description

Datasheet: package footprint

Type

str

Default Value

None

CLI Switch

  • -datasheet_package_footprint 'name <str>'

Example (CLI)

-datasheet_package_footprint 'abcd soic8'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'footprint', 'soic8')

Package footprint name. The name of the footprint can be a standard footprint name or a reference designator from a footprint library.

1.4.5.15.4. length#

Description

Datasheet: package length

Type

(float,float,float)

Unit

um

Default Value

None

CLI Switch

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

Example (CLI)

-datasheet_package_length 'abcd (4000, 4000, 4000)'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'length', (4000, 4000, 4000)

Datasheet: package length. Values are tuples of (min, nominal, max).

1.4.5.15.5. pin#
1.4.5.15.5.1. length#

Description

Datasheet: package pin length

Type

(float,float,float)

Unit

um

Default Value

None

CLI Switch

  • -datasheet_package_pin_length 'name pinnumber <(float,float,float)>'

Example (CLI)

-datasheet_package_pin_length 'abcd B1 (200, 250, 300)'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'pin', 'B1', 'length', (200, 250, 300)

Datsheet: length specified on a per package and per pin number basis. Values are tuples of (min, nominal, max).

1.4.5.15.5.2. loc#

Description

Datasheet: package pin location

Type

(float,float)

Unit

um

Default Value

None

CLI Switch

  • -datasheet_package_pin_loc 'name pinnumber <(float,float)>'

Example (CLI)

-datasheet_package_pin_loc 'abcd B1 (500,500)'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'pin', 'B1', 'loc', (500,500)

Datsheet: Package pin location specified as an (x,y) tuple on a per package and per pin number basis. Locations specify the center of the pin with respect to the center of the package.

1.4.5.15.5.3. name#

Description

Datasheet: package pin name

Type

str

Default Value

None

CLI Switch

  • -datasheet_package_pin_name 'name pinnumber <str>'

Example (CLI)

-datasheet_package_pin_name 'abcd B1 clk'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'pin', 'B1', 'name', 'clk')

Datsheet: Package pin name specified on a per package and per pin number basis. The pin number is generally an integer starting at ‘1’ in the case of packages like qfn, qfp and an array index (‘A1’, ‘A2’) in the case of array packages like bgas. The pin name refers to the logical function assigned to the physical pin number (e.g clk, vss, in). Details regarding the logical pin is stored in the ['datasheet', 'pin', ...].

1.4.5.15.5.4. shape#

Description

Datasheet: package pin shape

Type

enum

Allowed Values

  • circle
  • rectangle
  • square
  • octagon

Default Value

None

CLI Switch

  • -datasheet_package_pin_shape 'name pinnumber <str>'

Example (CLI)

-datasheet_package_pin_shape 'abcd B1 circle'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'pin', 'B1', 'shape', 'circle')

Datasheet: package pin shape specified on a per package and per pin number basis.

1.4.5.15.5.5. width#

Description

Datasheet: package pin width

Type

(float,float,float)

Unit

um

Default Value

None

CLI Switch

  • -datasheet_package_pin_width 'name pinnumber <(float,float,float)>'

Example (CLI)

-datasheet_package_pin_width 'abcd B1 (200, 250, 300)'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'pin', 'B1', 'width', (200, 250, 300)

Datsheet: width specified on a per package and per pin number basis. Values are tuples of (min, nominal, max).

1.4.5.15.6. pincount#

Description

Datasheet: package total pincount

Type

int

Default Value

None

CLI Switch

  • -datasheet_package_pincount 'name <int>'

Example (CLI)

-datasheet_package_pincount 'abcd 484'

Example (API)

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

Total number package pins of the named package.

1.4.5.15.7. pitch#

Description

Datasheet: package pitch

Type

(float,float,float)

Unit

um

Default Value

None

CLI Switch

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

Example (CLI)

-datasheet_package_pitch 'abcd (800, 850, 900)'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'pitch', (800, 850, 900)

Datasheet: package pitch. Values are tuples of (min, nominal, max).

1.4.5.15.8. thickness#

Description

Datasheet: package thickness

Type

(float,float,float)

Unit

um

Default Value

None

CLI Switch

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

Example (CLI)

-datasheet_package_thickness 'abcd (900, 1000, 1100)'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'thickness', (900, 1000, 1100)

Datasheet: package thickness. Values are tuples of (min, nominal, max).

1.4.5.15.9. type#

Description

Datasheet: package type

Type

enum

Allowed Values

  • bga
  • lga
  • csp
  • qfn
  • qfp
  • sop
  • die
  • wafer

Default Value

None

CLI Switch

  • -datasheet_package_type 'name <str>'

Example (CLI)

-datasheet_package_type 'abcd bga'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'type', 'bga')

Package type specified on a named package basis.

1.4.5.15.10. width#

Description

Datasheet: package width

Type

(float,float,float)

Unit

um

Default Value

None

CLI Switch

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

Example (CLI)

-datasheet_package_width 'abcd (4000, 4000, 4000)'

Example (API)

chip.set('datasheet', 'package', 'abcd', 'width', (4000, 4000, 4000)

Datasheet: package width. Values are tuples of (min, nominal, max).

1.4.5.16. 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.17. pin#

1.4.5.17.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.17.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.17.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.

1.4.5.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.13. 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.17.14. 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.17.15. 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.17.16. 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.17.17. 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.17.18. 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.17.19. 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.17.20. 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.17.21. 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.17.22. 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.17.23. 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.17.24. 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.17.25. 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.17.26. 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.17.27. 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.17.28. 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.17.29. 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.17.30. 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.17.31. 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.17.32. 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.17.33. 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.17.34. 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.17.35. 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.17.36. 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.17.37. 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.17.38. 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.17.39. 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.17.40. 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.17.41. 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.17.42. 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.17.43. 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.17.44. 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.17.45. 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.17.46. 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.17.47. 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.17.48. 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.17.49. 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.18. proc#

1.4.5.18.1. arch#

Description

Datasheet: processor architecture

Type

str

Default Value

None

CLI Switch

  • -datasheet_proc_arch 'name <str>'

Example (CLI)

-datasheet_proc_arch '0 RV64GC'

Example (API)

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

Processor architecture specified on a per core basis.

1.4.5.18.2. archsize#

Description

Datasheet: processor architecture size

Type

int

Default Value

None

CLI Switch

  • -datasheet_proc_archsize 'name <int>'

Example (CLI)

-datasheet_proc_archsize 'cpu 64'

Example (API)

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

Processor metric: architecture size specified on a per core basis.

1.4.5.18.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 'cpu 4'

Example (API)

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

Processor metric: number of cores specified on a per core basis.

1.4.5.18.4. datatypes#

Description

Datasheet: processor datatypes

Type

[enum]

Allowed Values

  • int4
  • int8
  • int16
  • int32
  • int64
  • int128
  • uint4
  • uint8
  • uint16
  • uint32
  • uint64
  • uint128
  • bfloat16
  • fp16
  • fp32
  • fp64
  • fp128

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 specified on a per core basis.

1.4.5.18.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 'cpu 32'

Example (API)

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

Processor metric: l1 dcache size specified on a per core basis.

1.4.5.18.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 specified on a per core basis.

1.4.5.18.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 'cpu 100'

Example (API)

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

Processor metric: maximum frequency specified on a per core basis.

1.4.5.18.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 'cpu 32'

Example (API)

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

Processor metric: l1 icache size specified on a per core basis.

1.4.5.18.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 'cpu 1024'

Example (API)

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

Processor metric: l2 cache size specified on a per core basis.

1.4.5.18.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 'cpu 1024'

Example (API)

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

Processor metric: l3 cache size specified on a per core basis.

1.4.5.18.11. mults#

Description

Datasheet: processor hard multiplier units

Type

int

Default Value

None

CLI Switch

  • -datasheet_proc_mults 'name <int>'

Example (CLI)

-datasheet_proc_mults 'cpu 100'

Example (API)

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

Processor metric: hard multiplier units specified on a per core basis.

1.4.5.18.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 'cpu 128'

Example (API)

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

Processor metric: local non-volatile memory specified on a per core basis.

1.4.5.18.13. ops#

Description

Datasheet: processor operations per cycle

Type

int

Default Value

None

CLI Switch

  • -datasheet_proc_ops 'name <int>'

Example (CLI)

-datasheet_proc_ops 'cpu 4'

Example (API)

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

Processor metric: operations per cycle specified on a per core basis.

1.4.5.18.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 'cpu 128'

Example (API)

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

Processor metric: local sram specified on a per core basis.

1.4.5.19. qual#

Description

Datasheet: qualification level

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.20. 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.21. series#

Description

Datasheet: 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.22. 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.23. thermal#

1.4.5.23.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.23.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.23.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.23.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.23.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.23.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.24. 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.25. type#

Description

Datasheet: 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')

Device 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. task#

Description

Flowgraph: task selection

Type

str

Default Value

None

CLI Switch

  • -flowgraph_task 'flow step index <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.

1.4.7.5. taskmodule#

Description

Flowgraph: task module

Type

str

Default Value

None

CLI Switch

  • -flowgraph_taskmodule 'flow step index <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.6. tool#

Description

Flowgraph: tool selection

Type

str

Default Value

None

CLI Switch

  • -flowgraph_tool 'flow step index <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.

1.4.7.7. 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. file#

Description

FPGA: file

Type

[file]

Default Value

[]

CLI Switch

  • -fpga_file 'partname key <file>'

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.2. 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.3. 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.4. 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.5. vendor#

Description

FPGA: vendor name

Type

str

Default Value

None

CLI Switch

  • -fpga_vendor 'partname <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 <int>'

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 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 <int>'

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. drcs#

Description

Metric: total drcs

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_drcs 'step index <int>'

Example (CLI)

-metric_drcs 'dfm 0 0'

Example (API)

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

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

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 ['tool', <tool>, '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 <int>'

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. holdskew#

Description

Metric: holdskew

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_holdskew 'step index <float>'

Example (CLI)

-metric_holdskew 'place 0 0.01'

Example (API)

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

Metric tracking the hold clock skew on a per step and index basis.

1.4.10.15. 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.16. 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.17. 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.18. inverters#

Description

Metric: inverters

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_inverters 'step index <int>'

Example (CLI)

-metric_inverters 'place 0 100'

Example (API)

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

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

1.4.10.19. 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.20. 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.21. logicdepth#

Description

Metric: logic depth

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_logicdepth step index <int>

Example (CLI)

-metric_logicdepth 'place 0 8'

Example (API)

chip.set('metric', 'logicdepth', 8, step='place', index=0)

Metric tracking the logic depth of the design. This is determined by the number of logic gates between the start of the critital timing path to the end of the path.

1.4.10.22. 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.23. macroarea#

Description

Metric: macroarea

Type

float

Per step/index

required

Unit

um^2

Default Value

None

CLI Switch

  • -metric_macroarea 'step index <float>'

Example (CLI)

-metric_macroarea 'place 0 100.00'

Example (API)

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

Metric tracking the total macro cell area occupied by the design.

1.4.10.24. macros#

Description

Metric: macros

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_macros 'step index <int>'

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.25. 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.26. nets#

Description

Metric: nets

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_nets 'step index <int>'

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.27. overflow#

Description

Metric: overflow

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_overflow 'step index <int>'

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.28. padcellarea#

Description

Metric: padcellarea

Type

float

Per step/index

required

Unit

um^2

Default Value

None

CLI Switch

  • -metric_padcellarea 'step index <float>'

Example (CLI)

-metric_padcellarea 'place 0 100.00'

Example (API)

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

Metric tracking the total io pad cell area occupied by the design.

1.4.10.29. 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.30. pins#

Description

Metric: pins

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_pins 'step index <int>'

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.31. registers#

Description

Metric: registers

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_registers 'step index <int>'

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.32. 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.33. setuppaths#

Description

Metric: setuppaths

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_setuppaths 'step index <int>'

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.34. setupskew#

Description

Metric: setupskew

Type

float

Per step/index

required

Unit

ns

Default Value

None

CLI Switch

  • -metric_setupskew 'step index <float>'

Example (CLI)

-metric_setupskew 'place 0 0.01'

Example (API)

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

Metric tracking the setup clock skew on a per step and index basis.

1.4.10.35. 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.36. 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.37. 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.38. stdcellarea#

Description

Metric: stdcellarea

Type

float

Per step/index

required

Unit

um^2

Default Value

None

CLI Switch

  • -metric_stdcellarea 'step index <float>'

Example (CLI)

-metric_stdcellarea 'place 0 100.00'

Example (API)

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

Metric tracking the total standard cell area occupied by the design.

1.4.10.39. 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.40. 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.41. 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.42. transistors#

Description

Metric: transistors

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_transistors 'step index <int>'

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.43. 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.44. 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.45. vias#

Description

Metric: vias

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -metric_vias 'step index <int>'

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.46. 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.47. 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. breakpoint#

Description

Option: 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.2. builddir#

Description

Option: 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. This can be used to set an alternate compilation directory path.

1.4.11.3. cachedir#

Description

Option: user cache directory

Type

file

Default Value

None

CLI Switch

  • -cachedir <file>

Example (CLI)

-cachedir /home/user/.sc/cache

Example (API)

chip.set('option', 'cachedir', '/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.4. cfg#

Description

Option: 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 Chip.read_manifest() method.

1.4.11.5. clean#

Description

Option: cleanup previous job

Type

bool

Default Value

False

CLI Switch

  • -clean <bool>

Example (CLI)

-clean

Example (API)

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

Run a job from the start and do not use any of the previous job. If ['option', 'jobincr'] is True, the old job is preserved and a new job number is assigned.

1.4.11.6. continue#

Description

Option: continue-on-error

Type

bool

Per step/index

optional

Default Value

False

CLI Switch

  • -continue <bool>

Example (CLI)

-continue

Example (API)

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

Attempt to continue even when errors are encountered in the SC implementation. The default behavior is to quit executing the flow if a task ends and the errors metric is greater than 0. Note that the flow will always cease executing if the tool returns a nonzero status code.

1.4.11.7. credentials#

Description

Option: 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.8. define#

Description

Option: design pre-processor symbol

Type

[str]

Default Value

[]

CLI Switch

  • -D<str>
  • -define <str>

Example (CLI)

-DCFG_ASIC=1

-define CFG_ASIC=1

Example (API)

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

Symbol definition for source preprocessor.

1.4.11.9. dir#

Description

Option: custom directories

Type

[dir]

Default Value

[]

CLI Switch

  • -dir 'key <dir>'

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.10. entrypoint#

Description

Option: program entry point

Type

str

Per step/index

optional

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.11. env#

Description

Option: 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.12. file#

Description

Option: custom files

Type

[file]

Default Value

[]

CLI Switch

  • -file 'key <file>'

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.13. flow#

Description

Option: 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.14. from#

Description

Option: starting step

Type

[str]

Default Value

[]

CLI Switch

  • -from <str>

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.15. hash#

Description

Option: 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.16. idir#

Description

Option: design search paths

Type

[dir]

Default Value

[]

CLI Switch

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

Example (CLI)

+incdir+./mylib

-I ./mylib

-idir ./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.17. jobincr#

Description

Option: 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.18. jobname#

Description

Option: 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.19. libext#

Description

Option: design file extensions

Type

[str]

Default Value

[]

CLI Switch

  • +libext+<str>
  • -libext <str>

Example (CLI)

+libext+sv

-libext sv

Example (API)

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

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

1.4.11.20. library#

Description

Option: library list

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -library <str>

Example (CLI)

-library lambdalib_asap7

Example (API)

chip.set('option', 'library', 'lambdalib_asap7')

List of soft libraries to be linked in during import.

1.4.11.21. loglevel#

Description

Option: logging level

Type

enum

Per step/index

optional

Allowed Values

  • info
  • warning
  • error
  • critical
  • debug

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.

1.4.11.22. nice#

Description

Option: tool 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.23. nodisplay#

Description

Option: headless execution

Type

bool

Default Value

False

CLI Switch

  • -nodisplay <bool>

Example (CLI)

-nodisplay

Example (API)

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

This flag prevents SiliconCompiler from opening GUI windows such as the final metrics report.

1.4.11.24. novercheck#

Description

Option: 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 ['tool', <tool>, 'version'].

1.4.11.25. optmode#

Description

Option: optimization mode

Type

str

Per step/index

optional

Default Value

O0

CLI Switch

  • -O<str>
  • -optmode <str>

Example (CLI)

-O3

-optmode 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.26. param#

Description

Option: 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.27. pdk#

Description

Option: 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.28. prune#

Description

Option: flowgraph pruning

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.29. quiet#

Description

Option: 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.30. remote#

Description

Option: 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.31. scheduler#

1.4.11.31.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.31.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.31.3. maxnodes#

Description

Option: maximum concurrent nodes

Type

int

Default Value

None

CLI Switch

  • -maxnodes <int>

Example (CLI)

-maxnodes 4

Example (API)

chip.set('option', 'scheduler', 'maxnodes', 4)

Maximum number of concurrent nodes to run in a job. If not set this will default to the number of cpu cores available.

1.4.11.31.4. memory#

Description

Option: scheduler memory constraint

Type

int

Per step/index

optional

Unit

MB

Default Value

None

CLI Switch

  • -memory <int>

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.31.5. 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 ['option', 'scheduler', 'msgevent']. Support for email messages relies on job scheduler daemon support. For more information, see the job scheduler documentation.

1.4.11.31.6. msgevent#

Description

Option: message event trigger

Type

[enum]

Per step/index

optional

Allowed Values

  • all
  • summary
  • begin
  • end
  • timeout
  • fail

Default Value

[]

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 in ['option', 'scheduler', 'msgcontact'] when certain events occur during a task.

  • fail: send an email on failures

  • timeout: send an email on timeouts

  • begin: send an email at the start of a node task

  • end: send an email at the end of a node task

  • summary: send a summary email at the end of the run

  • all: send an email on any event

1.4.11.31.7. name#

Description

Option: scheduler platform

Type

enum

Per step/index

optional

Allowed Values

  • slurm
  • lsf
  • sge
  • docker

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.31.8. 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.31.9. 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.32. stackup#

Description

Option: 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.33. 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.34. timeout#

Description

Option: timeout value

Type

float

Per step/index

optional

Unit

s

Default Value

None

CLI Switch

  • -timeout <float>

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.

1.4.11.35. to#

Description

Option: ending step

Type

[str]

Default Value

[]

CLI Switch

  • -to <str>

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.36. track#

Description

Option: 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.37. var#

Description

Option: 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.38. vlib#

Description

Option: design libraries

Type

[file]

Default Value

[]

CLI Switch

  • -v <file>
  • -vlib <file>

Example (CLI)

-v './mylib.v'

-vlib './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.39. ydir#

Description

Option: design module search paths

Type

[dir]

Default Value

[]

CLI Switch

  • -y <dir>
  • -ydir <dir>

Example (CLI)

-y './mylib'

-ydir './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 ['option', '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 <file>

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 <file>

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 <file>

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 <file>

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 <file>

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 <file>

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 <file>

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 <file>

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

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, and 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. 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.4. dir#

Description

PDK: custom directory

Type

[dir]

Default Value

[]

CLI Switch

  • -pdk_dir 'pdkname tool key stackup <dir>'

Example (CLI)

-pdk_dir 'asap7 xyce rfmodel M10 rftechdir'

Example (API)

chip.set('pdk', 'asap7', 'dir', '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.5. 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.6. doc#

Description

PDK: documentation

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_doc 'pdkname doctype <file>'

Example (CLI)

-pdk_doc 'asap7 reference reference.pdf'

Example (API)

chip.set('pdk', 'asap7', 'doc', 'reference', 'reference.pdf')

Filepath to pdk documentation.

1.4.14.7. drc#

1.4.14.7.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.7.2. waiver#

Description

PDK: DRC waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_drc_waiver 'pdkname 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.8. 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.9. erc#

1.4.14.9.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.9.2. waiver#

Description

PDK: ERC waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_erc_waiver 'pdkname 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.10. file#

Description

PDK: custom 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.11. fill#

1.4.14.11.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.11.2. waiver#

Description

PDK: FILL waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_fill_waiver 'pdkname 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.12. 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.13. 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.14. lvs#

1.4.14.14.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.14.2. waiver#

Description

PDK: LVS waiver files

Type

[file]

Default Value

[]

CLI Switch

  • -pdk_lvs_waiver 'pdkname 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.15. 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.16. 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.17. node#

Description

PDK: process node

Type

float

Unit

nm

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.18. 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.19. 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.20. scribe#

Description

PDK: horizontal scribe line width

Type

(float,float)

Unit

mm

Default Value

None

CLI Switch

  • -pdk_scribe 'pdkname <(float,float)>'

Example (CLI)

-pdk_scribe 'asap7 (0.1,0.1)'

Example (API)

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

Width of the horizontal and vertical scribe line used during die separation. The process is generally completed using a mechanical saw, but can be done through combinations of mechanical saws, lasers, wafer thinning, and chemical etching in more advanced technologies. The value is used to calculate effective dies per wafer and full factory cost.

1.4.14.21. 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.22. 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.23. var#

Description

PDK: custom, 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.24. 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.25. 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, 150, 125, and 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. inputnode#

Description

Record: node inputs

Type

[(str,str)]

Per step/index

required

Default Value

[]

CLI Switch

  • -record_inputnode 'step index <(str,str)>'

Example (CLI)

-record_inputnode 'cts 0 (place,42)'

Example (API)

chip.set('record', 'inputnode', ('place', '42'), step='syn', index='0')

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

1.4.15.5. 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.6. 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.7. 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.8. 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.9. 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.10. 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.11. 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.12. 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.13. 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.14. 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.15. 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.16. status#

Description

Record: node execution status

Type

enum

Per step/index

required

Allowed Values

  • pending
  • queued
  • running
  • success
  • error
  • skipped
  • timeout

Default Value

None

CLI Switch

  • -record_status 'step index <str>'

Example (CLI)

-record_status 'syn 0 success'

Example (API)

chip.set('record', 'status', 'success', step='syn', index='0')

Record tracking for the status of a node.

1.4.15.17. 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.18. toolexitcode#

Description

Record: tool exit code

Type

int

Per step/index

required

Default Value

None

CLI Switch

  • -record_toolexitcode 'step index <int>'

Example (CLI)

-record_toolexitcode 'dfm 0 0'

Example (API)

chip.set('record', 'toolexitcode', 0, step='dfm', index=0)

Record tracking the tool exit code per step and index basis.

1.4.15.19. 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.20. 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.21. 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. schematic#

1.4.16.1. buschar#

Description

Schematic: bus character

Type

str

Default Value

[]

CLI Switch

  • -schematic_buschar <str>

Example (CLI)

-schematic_buschar '[]'

Example (API)

chip.set('schematic', 'buschar', '[]')

Specifies the character used to express bus bits. If the bus character is used as part of a name, it must be escaped with a backslash(‘’).

1.4.16.2. component#

1.4.16.2.1. model#

Description

Schematic: component model

Type

str

Default Value

None

CLI Switch

  • -schematic_component_model 'name <str>'

Example (CLI)

-schematic_component_model 'B0 NAND2X1'

Example (API)

chip.set('schematic', 'component', 'B0, 'model', 'NAND2X1')

Model of a component, specified on a per instance basis.

1.4.16.3. hierchar#

Description

Schematic: hierarchy character

Type

str

Default Value

.

CLI Switch

  • -schematic_hierchar <str>

Example (CLI)

-schematic_hierchar '/'

Example (API)

chip.set('schematic', 'hierchar', '/')

Specifies the character used to express hierarchy. If the hierarchy character is used as part of a name, it must be escaped with a backslash(‘’).

1.4.16.4. net#

1.4.16.4.1. connect#

Description

Schematic: net connection

Type

[str]

Default Value

[]

CLI Switch

  • -schematic_net_connect 'name <str>'

Example (CLI)

-schematic_net_connect 'net0 I42.Z'

Example (API)

chip.set('schematic', 'net', 'net0', 'connect', 'I42.Z')

Component and pin connectivity specified as a list of connection points on a per net basis. The connection point point format is “INSTANCE.PIN”, where “.” is the hierarchy character. Connections without “.PIN” implies the connection is a primary design I/O pin. Specifying “INSTANCE.*” implies that all pins of INSTANCE get connected to the net.

1.4.16.5. pin#

1.4.16.5.1. dir#

Description

Schematic: pin direction

Type

enum

Allowed Values

  • input
  • output
  • inout

Default Value

None

CLI Switch

  • -schematic_pin_dir 'name <str>'

Example (CLI)

-schematic_pin_dir 'A input'

Example (API)

chip.set('schematic', 'pin', 'A', 'dir', 'input')

Direction of pin specified on a per pin basis.

1.4.17. schemaversion#

Description

Schema version number

Type

str

Default Value

0.48.4

CLI Switch

  • -schemaversion <str>

Example (API)

chip.get('schemaversion')

SiliconCompiler schema version number.

1.4.18. tool#

1.4.18.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.18.2. format#

Description

Tool: file format

Type

enum

Allowed Values

  • json
  • tcl
  • yaml

Default Value

None

CLI Switch

  • -tool_format 'tool <str>'

Example (CLI)

-tool_format 'yosys tcl'

Example (API)

chip.set('tool', 'yosys', 'format', 'tcl')

File format for tool manifest handoff.

1.4.18.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.18.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 ['tool', <tool>, 'exe'] is already in the environment search path.

1.4.18.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.18.6. task#

1.4.18.6.1. dir#

Description

Task: custom 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.18.6.2. env#

Description

Task: environment variables

Type

str

Per step/index

optional

Default Value

None

CLI Switch

  • -tool_task_env 'tool task env <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.18.6.3. file#

Description

Task: custom 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.18.6.4. input#

Description

Task: input files

Type

[file]

Per step/index

required

Default Value

[]

CLI Switch

  • -tool_task_input 'tool task <file>'

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.18.6.5. 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.18.6.6. output#

Description

Task: output files

Type

[file]

Per step/index

required

Default Value

[]

CLI Switch

  • -tool_task_output 'tool task <file>'

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.18.6.7. postscript#

Description

Task: post-step script

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_postscript 'tool 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.18.6.8. prescript#

Description

Task: pre-step script

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_prescript 'tool 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.18.6.9. refdir#

Description

Task: script directory

Type

[dir]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_refdir 'tool 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.18.6.10. 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.18.6.11. report#

Description

Task: metric report files

Type

[file]

Per step/index

required

Default Value

[]

CLI Switch

  • -tool_task_report 'tool task metric <file>'

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.18.6.12. require#

Description

Task: parameter requirements

Type

[str]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_require 'tool task <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.18.6.13. script#

Description

Task: entry script

Type

[file]

Per step/index

optional

Default Value

[]

CLI Switch

  • -tool_task_script 'tool task <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.18.6.14. stderr#
1.4.18.6.14.1. destination#

Description

Task: destination for stderr

Type

enum

Per step/index

optional

Allowed Values

  • log
  • output
  • none

Default Value

log

CLI Switch

  • -tool_task_stderr_destination 'tool task <str>'

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.18.6.14.2. suffix#

Description

Task: file suffix for redirected stderr

Type

str

Per step/index

optional

Default Value

log

CLI Switch

  • -tool_task_stderr_suffix 'tool 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.18.6.15. stdout#
1.4.18.6.15.1. destination#

Description

Task: destination for stdout

Type

enum

Per step/index

optional

Allowed Values

  • log
  • output
  • none

Default Value

log

CLI Switch

  • -tool_task_stdout_destination 'tool task <str>'

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.18.6.15.2. suffix#

Description

Task: file suffix for redirected stdout

Type

str

Per step/index

optional

Default Value

log

CLI Switch

  • -tool_task_stdout_suffix 'tool 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.18.6.16. threads#

Description

Task: thread parallelism

Type

int

Per step/index

optional

Default Value

None

CLI Switch

  • -tool_task_threads 'tool 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.18.6.17. 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.18.6.18. 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.18.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.18.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 ['option', 'novercheck'] to True.

1.4.18.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.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')

1.5.3. Journaling#

The schema can support tracking of schema transactions which modify the data in the schema. The transactions are recorded in the schema in cfg[‘__journal__’], which is a list of the transactions since recording began. Each record for the journal contains:

type#

Type of transactions performed, can be one of: set, add, remove, and unset

key#

Keypath that was modified

value#

New value for keypath, in record types which are destructive, this is None

field#

Schema field that was modified, in record types which are destructive, this is None

step#

Step that was modified, in record types which are destructive, this is None

index#

Index that was modified, in record types which are destructive, this is None

To control the journaling:

chip.schema._start_journal()  # To start recording transactions
chip.schema._stop_journal()  # To stop recording transactions and remove all records of transactions
chip.schema._import_journal(other_schema)  # To import and playback transactions, usually used to merge together a node manifest with the main manifest in SiliconCompiler