luna_soc.gateware.core.spiflash.port module

class luna_soc.gateware.core.spiflash.port.SPIControlPort(data_width)[source]

Bases: Signature

class luna_soc.gateware.core.spiflash.port.SPIControlPortCDC(*args, src_loc_at=0, **kwargs)[source]

Bases: Component

Converts one SPIControlPort between clock domains.

elaborate(platform)[source]
class luna_soc.gateware.core.spiflash.port.SPIControlPortCrossbar(*args, src_loc_at=0, **kwargs)[source]

Bases: Component

Merge multiple SPIControlPorts with a round-robin scheduler.

elaborate(platform)[source]
get_port(index)[source]
class luna_soc.gateware.core.spiflash.port.StreamCore2PHY(data_width)[source]

Bases: Signature

create(*, path=None, src_loc_at=0)[source]

Create an interface object from this signature.

The default Signature.create() implementation consists of one line:

def create(self, *, path=None, src_loc_at=0):
    return PureInterface(self, path=path, src_loc_at=1 + src_loc_at)

This implementation creates an interface object from this signature that serves purely as a container for the attributes corresponding to the signature members, and implements no behavior. Such an implementation is sufficient for signatures created ad-hoc using the :py:`Signature({ ... })` constructor as well as simple signature subclasses.

When defining a Signature subclass that needs to customize the behavior of the created interface objects, override this method with a similar implementation that references the class of your custom interface object:

class CustomSignature(wiring.Signature):
    def create(self, *, path=None, src_loc_at=0):
        return CustomInterface(self, path=path, src_loc_at=1 + src_loc_at)

class CustomInterface(wiring.PureInterface):
    @property
    def my_property(self):
        ...

The :py:`path` and :py:`src_loc_at` arguments are necessary to ensure the generated signals have informative names and accurate source location information.

The custom create() method may take positional or keyword arguments in addition to the two listed above. Such arguments must have a default value, because the SignatureMembers.create() method will call the Signature.create() member without these additional arguments when this signature is a member of another signature.

property data_width
class luna_soc.gateware.core.spiflash.port.StreamCore2PHYInterface(signature, *, path=None, src_loc_at=0)[source]

Bases: PureInterface

property payload

Joint signal with all data.

class luna_soc.gateware.core.spiflash.port.StreamPHY2Core(data_width)[source]

Bases: Signature

create(*, path=None, src_loc_at=0)[source]

Create an interface object from this signature.

The default Signature.create() implementation consists of one line:

def create(self, *, path=None, src_loc_at=0):
    return PureInterface(self, path=path, src_loc_at=1 + src_loc_at)

This implementation creates an interface object from this signature that serves purely as a container for the attributes corresponding to the signature members, and implements no behavior. Such an implementation is sufficient for signatures created ad-hoc using the :py:`Signature({ ... })` constructor as well as simple signature subclasses.

When defining a Signature subclass that needs to customize the behavior of the created interface objects, override this method with a similar implementation that references the class of your custom interface object:

class CustomSignature(wiring.Signature):
    def create(self, *, path=None, src_loc_at=0):
        return CustomInterface(self, path=path, src_loc_at=1 + src_loc_at)

class CustomInterface(wiring.PureInterface):
    @property
    def my_property(self):
        ...

The :py:`path` and :py:`src_loc_at` arguments are necessary to ensure the generated signals have informative names and accurate source location information.

The custom create() method may take positional or keyword arguments in addition to the two listed above. Such arguments must have a default value, because the SignatureMembers.create() method will call the Signature.create() member without these additional arguments when this signature is a member of another signature.

property data_width
class luna_soc.gateware.core.spiflash.port.StreamPHY2CoreInterface(signature, *, path=None, src_loc_at=0)[source]

Bases: PureInterface

property payload

Joint signal with all data.