luna_soc.gateware.core.spiflash.port module
- class luna_soc.gateware.core.spiflash.port.SPIControlPortCDC(*args, src_loc_at=0, **kwargs)[source]
Bases:
ComponentConverts one SPIControlPort between clock domains.
- class luna_soc.gateware.core.spiflash.port.SPIControlPortCrossbar(*args, src_loc_at=0, **kwargs)[source]
Bases:
ComponentMerge multiple SPIControlPorts with a round-robin scheduler.
- 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
Signaturesubclass 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 theSignatureMembers.create()method will call theSignature.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
Signaturesubclass 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 theSignatureMembers.create()method will call theSignature.create()member without these additional arguments when this signature is a member of another signature.
- property data_width