chipflow_lib.platforms

This module defines the functionality you use in you code to target the ChipFlow platform

Classes

PinSignature

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

Functions

OutputPinSignature(width, **kwargs)

This creates an Amaranth Signature which is then used to decorate package output signals

InputPinSignature(width, **kwargs)

This creates an Amaranth Signature which is then used to decorate package input signals

BidirPinSignature(width, **kwargs)

This creates an Amaranth Signature which is then used to decorate package bi-directional signals

Package Contents

class chipflow_lib.platforms.PinSignature(direction, width=1, all_have_oe=False, init=None)

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 InputPinSignature, OutputPinSignature, or BidirPinSignature for defining pin interfaces.

Parameters:
  • direction (amaranth.lib.io.Direction) – Input, Output or Bidir

  • width (int) – width of port, default is 1

  • all_have_oe (bool) – controls whether each output wire associated with an individual wire or single Output Enable signal will used for entire port, the default value is False, indicating that each output wire will have its own dedicated Output Enable signal.

  • init – a const-castable object for the initial values of the port

property direction: amaranth.lib.io.Direction

The direction of the IO port

Return type:

amaranth.lib.io.Direction

width()

The width of the IO port, in wires

Return type:

int

options()

Options set on the io port at construction

Valid options are:

“all_have_oe”: For a bidirectional port, each wire can have it’s direction dynamically controlled seperately, so each wire also has a corresponding Output Enable wire. “init”: the initial value that this io port will have at power-up and reset.

Return type:

dict

annotations(*args)

Annotate an interface object.

Subclasses of Signature may override this method to provide annotations for a corresponding interface object. The default implementation provides none.

See amaranth.lib.meta for details.

Returns:

tuple()

Return type:

iterable of Annotation

chipflow_lib.platforms.OutputPinSignature(width, **kwargs)

This creates an Amaranth Signature which is then used to decorate package output signals intended for connection to the physical pads of the integrated circuit package.

Parameters:
  • width (int) – specifies the number of individual output wires within this port, each of which will correspond to a separate physical pad on the integrated circuit package.

  • init – a const-castable object for the initial values of the port

chipflow_lib.platforms.InputPinSignature(width, **kwargs)

This creates an Amaranth Signature which is then used to decorate package input signals intended for connection to the physical pads of the integrated circuit package.

Parameters:
  • width (int) – specifies the number of individual input wires within this port, each of which will correspond to a separate physical pad on the integrated circuit package.

  • init – a const-castable object for the initial values of the port

chipflow_lib.platforms.BidirPinSignature(width, **kwargs)

This creates an Amaranth Signature which is then used to decorate package bi-directional signals intended for connection to the physical pads of the integrated circuit package.

Parameters:
  • width (int) – specifies the number of individual input/output wires within this port. Each pair of input/output wires will correspond to a separate physical pad on the integrated circuit package.

  • all_have_oe (bool, optional) – controls whether each output wire associated with an individual output enable wire or single Output Enable signal will be used for entire port, the default value is False, indicating that each output wire will have its own dedicated Output Enable signal.

  • init – a const-castable object for the initial values of the port