chipflow_lib.steps

Steps provide an extensible way to modify the chipflow command behavior for a given design

Classes

IOSignature

An Amaranth Signature used to decorate wires that would usually be brought out onto a port on the package.

StepBase

Helper class that provides a standard way to create an ABC using

Package Contents

class chipflow_lib.steps.IOSignature(**kwargs)

Bases: amaranth.lib.wiring.Signature

An Amaranth Signature used to decorate wires that would usually be brought out onto a port on the package. This class is generally not directly used. Instead, you would typically utilize the more specific InputIOSignature, OutputIOSignature, or BidirIOSignature for defining pin interfaces.

Parameters:

kwargs (typing_extensions.Unpack[IOModel])

property direction: amaranth.lib.io.Direction

The direction of the IO port

Return type:

amaranth.lib.io.Direction

property width: int

The width of the IO port, in wires

Return type:

int

property invert: collections.abc.Iterable[bool]

A tuple as wide as the IO port, with a bool for the polarity inversion for each wire

Return type:

collections.abc.Iterable[bool]

property options: IOModelOptions

Options set on the io port at construction

Return type:

IOModelOptions

class chipflow_lib.steps.StepBase(config={})

Bases: abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

build_cli_parser(parser)

Build the cli parser for this step

run_cli(args)

Called when this step’s is used from chipflow command

build(*args)

builds the design