Flow-Spec Reference

File Root Elements

Each flow.yaml file either defines a package or a package fragment. Each package is defined by the content in its root flow.yaml file and that in any fragment files that are specified in the root package file or its fragments.

package:
    name: proj1

    # ...

    fragments:
    - src/rtl/flow.yaml
    - src/verif

Each package fragment element specifies either a directory or a file. If a file is specified, then that file is loaded. It is expected that the content will be a DV-Flow package fragment. If a directory is specified, then a top-down search is performed for flow.dv files in the subdirectory tree.

The structure of a package fragment file is nearly identical to a package definition. For example:

fragment:
    tasks:
    - name: rtl
      type: std.FileSet
      params:
        include: "*.sv"

Remember that all fragments referenced by a given package contribute to the same package namespace. It would be illegal for another flow file to also define a task named rtl.

PackageDef

type

object

properties

  • name

Name

Name of the package

type

string

  • type

Type

type

array

items

PackageSpec

  • tasks

Tasks

List of tasks defined in the package

type

array

items

TaskDef

  • imports

Imports

List of packages to import

type

array

items

anyOf

type

string

PackageImportSpec

  • overrides

Overrides

Overrides for packages and parameters

type

object

additionalProperties

type

string

  • fragments

Fragments

List of fragments to include

type

array

items

type

string

  • types

Types

type

array

items

TypeDef

  • uses

Uses

Name of the package to use as a base

type

string

default

null

  • with

With

Package parameters

type

object

additionalProperties

anyOf

type

string

type

array

items

ParamDef

  • configs

Configs

List of package configurations

type

array

items

#/defs/ConfigDef

  • srcinfo

default

null

#/defs/SrcInfo

Task Definition

RundirE

type

string

enum

unique, inherit

PackageSpec

type

object

properties

  • name

Name

type

string

  • params

Params

type

object

additionalProperties

True

  • _fullname

Fullname

type

string

default

null

TaskDef

Holds definition information (ie the YAML view) for a task

type

object

properties

  • name

Task Name

The name of the task

default

null

anyOf

type

string

type

null

  • override

Overide Name

The name of the task to override

default

null

anyOf

type

string

type

null

  • uses

Base type

Task from which this task is derived

type

string

default

null

  • body

Body

Sub-tasks

type

array

items

TaskDef

  • iff

Task enable condition

Condition that must be true for this task to run

default

null

anyOf

type

string

type

boolean

  • pytask

Pytask

Python-based implementation (deprecated)

type

string

default

null

  • run

Run

Shell-based implementation

type

string

default

null

  • shell

Shell

Shell to use for shell-based implementation

type

string

default

bash

  • strategy

default

null

StrategyDef

  • desc

Task description

Short description of the task’s purpose

type

string

default

  • doc

Task documentation

Full documentation of the task

type

string

default

  • needs

Needs

List of tasks that this task depends on

type

array

items

type

string

  • with

With

Parameters for the task

type

object

additionalProperties

anyOf

type

string

type

array

items

type

boolean

ParamDef

  • rundir

Specifies handling of this tasks’s run directory

default

unique

RundirE

  • passthrough

Passthrough

Specifies whether this task should pass its inputs to its output

default

null

anyOf

#/defs/PassthroughE

type

array

items

type

null

  • consumes

Consumes

Specifies matching patterns for parameter sets that this task consumes

default

null

anyOf

#/defs/ConsumesE

type

array

items

type

null

  • srcinfo

default

null

#/defs/SrcInfo

PackageImportSpec

type

object

properties

  • from

From

type

string

default

null

  • as

As

type

string

default

null

TypeDef

type

object

properties

  • name

Name

type

string

  • uses

Uses

type

string

default

null

  • doc

Doc

type

string

default

null

  • with

With

type

object

additionalProperties

anyOf

type

string

ParamDef

  • srcinfo

default

null

#/defs/SrcInfo

StrategyDef

type

object

properties

  • chain

Chain

default

null

anyOf

type

boolean

type

null

  • generate

default

null

anyOf

#/defs/GenerateSpec

type

null

  • matrix

Matrix

Matrix of parameter values to explore

default

null

anyOf

type

object

additionalProperties

type

array

items

type

null

ListType

type

object

properties

  • item

Item

anyOf

type

string

MapType

type

object

properties

  • key

Key

anyOf

type

string

  • val

Val

anyOf

type

string

ComplexType

type

object

properties

  • list

default

null

anyOf

ListType

type

null

  • map

default

null

anyOf

MapType

type

null

ParamDef

type

object

properties

  • doc

Doc

type

string

default

null

  • type

Type

default

null

anyOf

type

string

ComplexType

  • value

Value

default

null

anyOf

type

null

  • append

Append

default

null

anyOf

type

null

  • prepend

Prepend

default

null

anyOf

type

null

  • path-append

Path-Append

default

null

anyOf

type

null

  • path-prepend

Path-Prepend

default

null

anyOf

type

null

  • srcinfo

Srcinfo

default

null

anyOf

type

string

type

null