luna_soc.gateware.core.usb2.ep_control module
Implementation of a Triple-FIFO endpoint manager.
Equivalent (but not binary-compatbile) implementation of ValentyUSB’s eptri.
For an example, see examples/usb/eptri or TinyUSB’s luna/dcd_eptri.c.
- class luna_soc.gateware.core.usb2.ep_control.Peripheral(*args, src_loc_at=0, **kwargs)[source]
Bases:
ComponentSetup component of our eptri-equivalent interface.
Implements the USB Setup FIFO, which handles SETUP packets on any endpoint.
This interface is similar to an
OutFIFOInterface, but always ACKs packets, and does not allow for any flow control; as a USB device must always be ready to accept control packets. [USB2.0: 8.6.1]Attributes
- interface: EndpointInterface
Our primary interface to the core USB device hardware.
- class Control(*args, src_loc_at=0, **kwargs)[source]
Bases:
RegisterA CSR register.
Parameters
- fields
dictorlistorField Collection of register fields. If
None(default), a dict is populated from Python variable annotations.fieldsis used to create aFieldActionMap,FieldActionArray, orFieldAction, depending on its type (dict, list, or Field).
Interface attributes
- element
Element Interface between this register and a CSR bus primitive.
Attributes
- field
FieldActionMaporFieldActionArrayorFieldAction Collection of field instances.
- f
FieldActionMaporFieldActionArrayorFieldAction Shorthand for
Register.field.
Raises
TypeErrorIf
fieldsis neitherNone, adict, alist, or aField.ValueErrorIf
fieldsis notNoneand at least one variable annotation is aField.ValueErrorIf
element.accessis not readable and at least one field is readable.ValueErrorIf
element.accessis not writable and at least one field is writable.
- address: <amaranth_soc.csr.reg.Field object at 0x751452cdc260>
- fields
- class Data(*args, src_loc_at=0, **kwargs)[source]
Bases:
RegisterA CSR register.
Parameters
- fields
dictorlistorField Collection of register fields. If
None(default), a dict is populated from Python variable annotations.fieldsis used to create aFieldActionMap,FieldActionArray, orFieldAction, depending on its type (dict, list, or Field).
Interface attributes
- element
Element Interface between this register and a CSR bus primitive.
Attributes
- field
FieldActionMaporFieldActionArrayorFieldAction Collection of field instances.
- f
FieldActionMaporFieldActionArrayorFieldAction Shorthand for
Register.field.
Raises
TypeErrorIf
fieldsis neitherNone, adict, alist, or aField.ValueErrorIf
fieldsis notNoneand at least one variable annotation is aField.ValueErrorIf
element.accessis not readable and at least one field is readable.ValueErrorIf
element.accessis not writable and at least one field is writable.
- byte: <amaranth_soc.csr.reg.Field object at 0x751452cdc650>
- fields
- class Reset(*args, src_loc_at=0, **kwargs)[source]
Bases:
RegisterA CSR register.
Parameters
- fields
dictorlistorField Collection of register fields. If
None(default), a dict is populated from Python variable annotations.fieldsis used to create aFieldActionMap,FieldActionArray, orFieldAction, depending on its type (dict, list, or Field).
Interface attributes
- element
Element Interface between this register and a CSR bus primitive.
Attributes
- field
FieldActionMaporFieldActionArrayorFieldAction Collection of field instances.
- f
FieldActionMaporFieldActionArrayorFieldAction Shorthand for
Register.field.
Raises
TypeErrorIf
fieldsis neitherNone, adict, alist, or aField.ValueErrorIf
fieldsis notNoneand at least one variable annotation is aField.ValueErrorIf
element.accessis not readable and at least one field is readable.ValueErrorIf
element.accessis not writable and at least one field is writable.
- fifo: <amaranth_soc.csr.reg.Field object at 0x751452cdc530>
- fields
- class Status(*args, src_loc_at=0, **kwargs)[source]
Bases:
RegisterA CSR register.
Parameters
- fields
dictorlistorField Collection of register fields. If
None(default), a dict is populated from Python variable annotations.fieldsis used to create aFieldActionMap,FieldActionArray, orFieldAction, depending on its type (dict, list, or Field).
Interface attributes
- element
Element Interface between this register and a CSR bus primitive.
Attributes
- field
FieldActionMaporFieldActionArrayorFieldAction Collection of field instances.
- f
FieldActionMaporFieldActionArrayorFieldAction Shorthand for
Register.field.
Raises
TypeErrorIf
fieldsis neitherNone, adict, alist, or aField.ValueErrorIf
fieldsis notNoneand at least one variable annotation is aField.ValueErrorIf
element.accessis not readable and at least one field is readable.ValueErrorIf
element.accessis not writable and at least one field is writable.
- address: <amaranth_soc.csr.reg.Field object at 0x751452cdc2f0>
- epno: <amaranth_soc.csr.reg.Field object at 0x751452cdc3b0>
- have: <amaranth_soc.csr.reg.Field object at 0x751452cdc410>
- fields