diff --git a/.buildinfo b/.buildinfo index 58d7a4ff..ea16d5d1 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 572a4796fca55178c2141cd91168f371 +config: aaab042a83c1d9292c41875850c3831f tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 91284714..df9b611f 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/gateware/interface/gateware/index.doctree b/.doctrees/gateware/interface/gateware/index.doctree index c55ad1bb..563d485e 100644 Binary files a/.doctrees/gateware/interface/gateware/index.doctree and b/.doctrees/gateware/interface/gateware/index.doctree differ diff --git a/.doctrees/gateware/interface/gateware/phy.doctree b/.doctrees/gateware/interface/gateware/phy.doctree index 9359a3df..deb34162 100644 Binary files a/.doctrees/gateware/interface/gateware/phy.doctree and b/.doctrees/gateware/interface/gateware/phy.doctree differ diff --git a/.doctrees/gateware/interface/gateware/receiver.doctree b/.doctrees/gateware/interface/gateware/receiver.doctree index 770c3ab8..4c0c75e0 100644 Binary files a/.doctrees/gateware/interface/gateware/receiver.doctree and b/.doctrees/gateware/interface/gateware/receiver.doctree differ diff --git a/.doctrees/gateware/interface/gateware/transmitter.doctree b/.doctrees/gateware/interface/gateware/transmitter.doctree index 518c1a69..18dcd6a4 100644 Binary files a/.doctrees/gateware/interface/gateware/transmitter.doctree and b/.doctrees/gateware/interface/gateware/transmitter.doctree differ diff --git a/.doctrees/gateware/interface/pipe.doctree b/.doctrees/gateware/interface/pipe.doctree index 798e9ea1..0b3995e3 100644 Binary files a/.doctrees/gateware/interface/pipe.doctree and b/.doctrees/gateware/interface/pipe.doctree differ diff --git a/.doctrees/gateware/interface/serdes/ecp5.doctree b/.doctrees/gateware/interface/serdes/ecp5.doctree index db068b1a..24436a57 100644 Binary files a/.doctrees/gateware/interface/serdes/ecp5.doctree and b/.doctrees/gateware/interface/serdes/ecp5.doctree differ diff --git a/.doctrees/gateware/interface/serdes/index.doctree b/.doctrees/gateware/interface/serdes/index.doctree index c2217cea..4f2722e2 100644 Binary files a/.doctrees/gateware/interface/serdes/index.doctree and b/.doctrees/gateware/interface/serdes/index.doctree differ diff --git a/.doctrees/gateware/interface/serdes/lfps.doctree b/.doctrees/gateware/interface/serdes/lfps.doctree index 5b4e1284..29daa7bf 100644 Binary files a/.doctrees/gateware/interface/serdes/lfps.doctree and b/.doctrees/gateware/interface/serdes/lfps.doctree differ diff --git a/.doctrees/gateware/interface/serdes/xc7.doctree b/.doctrees/gateware/interface/serdes/xc7.doctree index d22c2d3e..15965939 100644 Binary files a/.doctrees/gateware/interface/serdes/xc7.doctree and b/.doctrees/gateware/interface/serdes/xc7.doctree differ diff --git a/.doctrees/gateware/interface/ulpi.doctree b/.doctrees/gateware/interface/ulpi.doctree index cc82cfd7..3b0877c7 100644 Binary files a/.doctrees/gateware/interface/ulpi.doctree and b/.doctrees/gateware/interface/ulpi.doctree differ diff --git a/.doctrees/gateware/interface/utmi.doctree b/.doctrees/gateware/interface/utmi.doctree index 1cb9d1fc..4712c3b6 100644 Binary files a/.doctrees/gateware/interface/utmi.doctree and b/.doctrees/gateware/interface/utmi.doctree differ diff --git a/.doctrees/gateware/soc/memory.doctree b/.doctrees/gateware/soc/memory.doctree index ff2838a8..b22728e7 100644 Binary files a/.doctrees/gateware/soc/memory.doctree and b/.doctrees/gateware/soc/memory.doctree differ diff --git a/.doctrees/gateware/stream/index.doctree b/.doctrees/gateware/stream/index.doctree index e8f9b2a0..cad13a0b 100644 Binary files a/.doctrees/gateware/stream/index.doctree and b/.doctrees/gateware/stream/index.doctree differ diff --git a/.doctrees/gateware/usb/analyzer.doctree b/.doctrees/gateware/usb/analyzer.doctree index 4e117d3a..7808ac8d 100644 Binary files a/.doctrees/gateware/usb/analyzer.doctree and b/.doctrees/gateware/usb/analyzer.doctree differ diff --git a/.doctrees/gateware/usb/request.doctree b/.doctrees/gateware/usb/request.doctree index a16b0404..7ded72ef 100644 Binary files a/.doctrees/gateware/usb/request.doctree and b/.doctrees/gateware/usb/request.doctree differ diff --git a/.doctrees/gateware/usb/stream.doctree b/.doctrees/gateware/usb/stream.doctree index c6b6ed1c..a75338ee 100644 Binary files a/.doctrees/gateware/usb/stream.doctree and b/.doctrees/gateware/usb/stream.doctree differ diff --git a/.doctrees/gateware/usb/usb2/control.doctree b/.doctrees/gateware/usb/usb2/control.doctree index c570eb75..94d0d4d5 100644 Binary files a/.doctrees/gateware/usb/usb2/control.doctree and b/.doctrees/gateware/usb/usb2/control.doctree differ diff --git a/.doctrees/gateware/usb/usb2/descriptor.doctree b/.doctrees/gateware/usb/usb2/descriptor.doctree index e62279fb..d16ad428 100644 Binary files a/.doctrees/gateware/usb/usb2/descriptor.doctree and b/.doctrees/gateware/usb/usb2/descriptor.doctree differ diff --git a/.doctrees/gateware/usb/usb2/deserializer.doctree b/.doctrees/gateware/usb/usb2/deserializer.doctree index 89bf393a..ff8003b0 100644 Binary files a/.doctrees/gateware/usb/usb2/deserializer.doctree and b/.doctrees/gateware/usb/usb2/deserializer.doctree differ diff --git a/.doctrees/gateware/usb/usb2/device.doctree b/.doctrees/gateware/usb/usb2/device.doctree index da59eb69..cb74e5ee 100644 Binary files a/.doctrees/gateware/usb/usb2/device.doctree and b/.doctrees/gateware/usb/usb2/device.doctree differ diff --git a/.doctrees/gateware/usb/usb2/endpoint.doctree b/.doctrees/gateware/usb/usb2/endpoint.doctree index 5c7c36ff..4e29ce03 100644 Binary files a/.doctrees/gateware/usb/usb2/endpoint.doctree and b/.doctrees/gateware/usb/usb2/endpoint.doctree differ diff --git a/.doctrees/gateware/usb/usb2/endpoints.doctree b/.doctrees/gateware/usb/usb2/endpoints.doctree index a3f22f19..43b71e10 100644 Binary files a/.doctrees/gateware/usb/usb2/endpoints.doctree and b/.doctrees/gateware/usb/usb2/endpoints.doctree differ diff --git a/.doctrees/gateware/usb/usb2/index.doctree b/.doctrees/gateware/usb/usb2/index.doctree index 73b78ee2..4638ee15 100644 Binary files a/.doctrees/gateware/usb/usb2/index.doctree and b/.doctrees/gateware/usb/usb2/index.doctree differ diff --git a/.doctrees/gateware/usb/usb2/packet.doctree b/.doctrees/gateware/usb/usb2/packet.doctree index 5b002d44..c4390e8e 100644 Binary files a/.doctrees/gateware/usb/usb2/packet.doctree and b/.doctrees/gateware/usb/usb2/packet.doctree differ diff --git a/.doctrees/gateware/usb/usb2/request.doctree b/.doctrees/gateware/usb/usb2/request.doctree index 93654f87..a6f22bd3 100644 Binary files a/.doctrees/gateware/usb/usb2/request.doctree and b/.doctrees/gateware/usb/usb2/request.doctree differ diff --git a/.doctrees/gateware/usb/usb2/reset.doctree b/.doctrees/gateware/usb/usb2/reset.doctree index 1cd10591..9df986ed 100644 Binary files a/.doctrees/gateware/usb/usb2/reset.doctree and b/.doctrees/gateware/usb/usb2/reset.doctree differ diff --git a/.doctrees/gateware/usb/usb2/transfer.doctree b/.doctrees/gateware/usb/usb2/transfer.doctree index 25702360..5c0c6808 100644 Binary files a/.doctrees/gateware/usb/usb2/transfer.doctree and b/.doctrees/gateware/usb/usb2/transfer.doctree differ diff --git a/.doctrees/gateware/usb/usb3/application.doctree b/.doctrees/gateware/usb/usb3/application.doctree index 97c6b82d..64923069 100644 Binary files a/.doctrees/gateware/usb/usb3/application.doctree and b/.doctrees/gateware/usb/usb3/application.doctree differ diff --git a/.doctrees/gateware/usb/usb3/device.doctree b/.doctrees/gateware/usb/usb3/device.doctree index b114182e..415ae487 100644 Binary files a/.doctrees/gateware/usb/usb3/device.doctree and b/.doctrees/gateware/usb/usb3/device.doctree differ diff --git a/.doctrees/gateware/usb/usb3/endpoints.doctree b/.doctrees/gateware/usb/usb3/endpoints.doctree index 89649afd..c33abcc9 100644 Binary files a/.doctrees/gateware/usb/usb3/endpoints.doctree and b/.doctrees/gateware/usb/usb3/endpoints.doctree differ diff --git a/.doctrees/gateware/usb/usb3/link.doctree b/.doctrees/gateware/usb/usb3/link.doctree index 7bd9774c..9da978d9 100644 Binary files a/.doctrees/gateware/usb/usb3/link.doctree and b/.doctrees/gateware/usb/usb3/link.doctree differ diff --git a/.doctrees/gateware/usb/usb3/physical.doctree b/.doctrees/gateware/usb/usb3/physical.doctree index 52cb9de6..a4254930 100644 Binary files a/.doctrees/gateware/usb/usb3/physical.doctree and b/.doctrees/gateware/usb/usb3/physical.doctree differ diff --git a/.doctrees/gateware/usb/usb3/protocol.doctree b/.doctrees/gateware/usb/usb3/protocol.doctree index 23982648..57443064 100644 Binary files a/.doctrees/gateware/usb/usb3/protocol.doctree and b/.doctrees/gateware/usb/usb3/protocol.doctree differ diff --git a/.doctrees/gateware/usb/usb3/request.doctree b/.doctrees/gateware/usb/usb3/request.doctree index b045ab70..f63b88d4 100644 Binary files a/.doctrees/gateware/usb/usb3/request.doctree and b/.doctrees/gateware/usb/usb3/request.doctree differ diff --git a/changelog.html b/changelog.html index 636b47d8..e3f9317b 100644 --- a/changelog.html +++ b/changelog.html @@ -44,7 +44,7 @@ SOL
- 0.1.dev1+g21a6792 + 0.1.dev1+gcf4d4c1
@@ -90,6 +90,8 @@
  • ULPI
  • ULPI
  • ULPI
      +
    • UPLIDataRecord
    • +
    • UPLIDirRecord
    • ULPIInterface
    • ULPIRegisterWindow
    • ULPIRxEventDecoder
    • @@ -281,6 +283,8 @@

      Gateware LibraryULPI
    • ULPI
    • ULPI
        +
      • UPLIDataRecord
      • +
      • UPLIDirRecord
      • ULPIInterface
      • ULPIRegisterWindow
      • ULPIRxEventDecoder
      • diff --git a/gateware/interface/gateware/receiver.html b/gateware/interface/gateware/receiver.html index dab129cb..f9b8dbb6 100644 --- a/gateware/interface/gateware/receiver.html +++ b/gateware/interface/gateware/receiver.html @@ -45,7 +45,7 @@ SOL
        - 0.1.dev1+g21a6792 + 0.1.dev1+gcf4d4c1
        @@ -91,6 +91,8 @@
    • ULPI
        +
      • UPLIDataRecord
      • +
      • UPLIDirRecord
      • ULPIInterface
      • ULPIRegisterWindow
      • ULPIRxEventDecoder
      • diff --git a/gateware/interface/gateware/transmitter.html b/gateware/interface/gateware/transmitter.html index 282a4fc3..79162424 100644 --- a/gateware/interface/gateware/transmitter.html +++ b/gateware/interface/gateware/transmitter.html @@ -45,7 +45,7 @@ SOL
        - 0.1.dev1+g21a6792 + 0.1.dev1+gcf4d4c1
        @@ -91,6 +91,8 @@
    • ULPI
    • ULPI
        +
      • UPLIDataRecord
      • +
      • UPLIDirRecord
      • ULPIInterface
      • ULPIRegisterWindow
      • ULPIRxEventDecoder
      • @@ -281,6 +283,8 @@

        InterfaceULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
          +
        • UPLIDataRecord
        • +
        • UPLIDirRecord
        • ULPIInterface
        • ULPIRegisterWindow
        • ULPIRxEventDecoder
        • @@ -274,6 +276,16 @@

          ULPI

          ULPI interfacing hardware.

          +
          +
          +class sol_usb.gateware.interface.ulpi.UPLIDataRecord(layout, *, name: str | None = None, fields=None, src_loc_at: int = 0)
          +
          + +
          +
          +class sol_usb.gateware.interface.ulpi.UPLIDirRecord(layout, *, name: str | None = None, fields=None, src_loc_at: int = 0)
          +
          +
          class sol_usb.gateware.interface.ulpi.ULPIInterface
          diff --git a/gateware/interface/utmi.html b/gateware/interface/utmi.html index ef4ef7f4..b827fd6f 100644 --- a/gateware/interface/utmi.html +++ b/gateware/interface/utmi.html @@ -45,7 +45,7 @@ SOL
          - 0.1.dev1+g21a6792 + 0.1.dev1+gcf4d4c1
          @@ -91,6 +91,8 @@
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
      • ULPI
          +
        • UPLIDataRecord
        • +
        • UPLIDirRecord
        • ULPIInterface
        • ULPIRegisterWindow
        • ULPIRxEventDecoder
        • diff --git a/objects.inv b/objects.inv index 7b50bd85..8bc1adb6 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index 76bbe7aa..c0bd63cd 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -45,7 +45,7 @@ SOL
          - 0.1.dev1+g21a6792 + 0.1.dev1+gcf4d4c1
          @@ -91,6 +91,8 @@
      • ULPI
      • ULPI
          +
        • UPLIDataRecord
        • +
        • UPLIDirRecord
        • ULPIInterface
        • ULPIRegisterWindow
        • ULPIRxEventDecoder
        • diff --git a/searchindex.js b/searchindex.js index e381fcc9..03a66c8f 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changelog", "features", "gateware/index", "gateware/interface/gateware/index", "gateware/interface/gateware/phy", "gateware/interface/gateware/receiver", "gateware/interface/gateware/transmitter", "gateware/interface/index", "gateware/interface/pipe", "gateware/interface/serdes/ecp5", "gateware/interface/serdes/index", "gateware/interface/serdes/lfps", "gateware/interface/serdes/xc7", "gateware/interface/ulpi", "gateware/interface/utmi", "gateware/soc/cpu", "gateware/soc/event", "gateware/soc/index", "gateware/soc/memory", "gateware/soc/peripheral", "gateware/soc/simplesoc", "gateware/soc/uart", "gateware/stream/index", "gateware/usb/analyzer", "gateware/usb/index", "gateware/usb/request", "gateware/usb/stream", "gateware/usb/usb2/control", "gateware/usb/usb2/descriptor", "gateware/usb/usb2/deserializer", "gateware/usb/usb2/device", "gateware/usb/usb2/endpoint", "gateware/usb/usb2/endpoints", "gateware/usb/usb2/index", "gateware/usb/usb2/interfaces", "gateware/usb/usb2/packet", "gateware/usb/usb2/request", "gateware/usb/usb2/reset", "gateware/usb/usb2/transfer", "gateware/usb/usb3/application", "gateware/usb/usb3/device", "gateware/usb/usb3/endpoints", "gateware/usb/usb3/index", "gateware/usb/usb3/link", "gateware/usb/usb3/physical", "gateware/usb/usb3/protocol", "gateware/usb/usb3/request", "getting_started", "hardware/bringup_guide", "hardware/custom", "hardware/index", "index", "install", "intro", "tutorials/index"], "filenames": ["changelog.md", "features.md", "gateware/index.md", "gateware/interface/gateware/index.md", "gateware/interface/gateware/phy.md", "gateware/interface/gateware/receiver.md", "gateware/interface/gateware/transmitter.md", "gateware/interface/index.md", "gateware/interface/pipe.md", "gateware/interface/serdes/ecp5.md", "gateware/interface/serdes/index.md", "gateware/interface/serdes/lfps.md", "gateware/interface/serdes/xc7.md", "gateware/interface/ulpi.md", "gateware/interface/utmi.md", "gateware/soc/cpu.md", "gateware/soc/event.md", "gateware/soc/index.md", "gateware/soc/memory.md", "gateware/soc/peripheral.md", "gateware/soc/simplesoc.md", "gateware/soc/uart.md", "gateware/stream/index.md", "gateware/usb/analyzer.md", "gateware/usb/index.md", "gateware/usb/request.md", "gateware/usb/stream.md", "gateware/usb/usb2/control.md", "gateware/usb/usb2/descriptor.md", "gateware/usb/usb2/deserializer.md", "gateware/usb/usb2/device.md", "gateware/usb/usb2/endpoint.md", "gateware/usb/usb2/endpoints.md", "gateware/usb/usb2/index.md", "gateware/usb/usb2/interfaces.md", "gateware/usb/usb2/packet.md", "gateware/usb/usb2/request.md", "gateware/usb/usb2/reset.md", "gateware/usb/usb2/transfer.md", "gateware/usb/usb3/application.md", "gateware/usb/usb3/device.md", "gateware/usb/usb3/endpoints.md", "gateware/usb/usb3/index.md", "gateware/usb/usb3/link.md", "gateware/usb/usb3/physical.md", "gateware/usb/usb3/protocol.md", "gateware/usb/usb3/request.md", "getting_started.md", "hardware/bringup_guide.md", "hardware/custom.md", "hardware/index.md", "index.md", "install.md", "intro.md", "tutorials/index.md"], "titles": ["Changelog", "Status & Support", "Gateware Library", "Gateware PHY", "Gateware PHY", "Gateware PHY - Receiver", "Gateware PHY - Transmitter", "Interface", "PIPE", "SerDes PHY - ECP5", "SerDes PHY", "SerDes PHY - LFPS", "SerDes PHY - XC7", "ULPI", "UTMI", "CPU", "Event", "SoC", "Memory", "Peripheral", "SimpleSoC", "UART", "Stream", "Analyzer", "USB", "Request", "Stream", "Control", "Descriptor", "Deserializer", "Device", "Endpoint", "Endpoints", "USB2", "Interfaces", "Packet", "Request", "Reset", "Transfer", "Application", "Device", "Endpoints", "USB3", "Link", "Physical", "Protocol", "Request", "Getting Started", "==========================\nSelf-made Hardware Bringup", "SOL On Your Own Hardware", "Hardware", "SOL: USB Gateware Library", "Installation", "Introduction", "Tutorials"], "terms": {"all": [0, 5, 6, 8, 9, 14, 22, 25, 27, 28, 30, 31, 32, 33, 35, 40, 41, 43, 44, 49, 52], "notabl": 0, "thi": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53], "project": [0, 52, 53], "document": [0, 9, 31, 47, 51, 53], "file": [0, 45, 48], "The": [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 52], "format": [0, 33, 48], "i": [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 48, 51, 52, 53], "base": [0, 3, 4, 10, 23, 30, 33, 36, 39, 52, 53], "keep": [0, 6, 25, 26, 30, 32, 43, 44, 45], "adher": 0, "semant": 0, "version": [0, 8, 22, 26, 52], "handler_condit": 0, "usb": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 49, 52, 53], "request": [0, 1, 2, 13, 24, 27, 28, 30, 31, 33, 35, 38, 40, 41, 42, 43, 44, 45], "automat": [0, 8, 27, 30, 31, 32, 33, 38, 41, 44, 45], "construct": 0, "stallonlyrequesthandl": [0, 33, 36, 39], "pcapng": 0, "support": [0, 3, 4, 8, 9, 10, 12, 25, 28, 35, 39, 41, 43, 47], "captur": [0, 22, 23, 25, 35, 43], "applet": [0, 48], "contribut": [0, 1], "md": 0, "dynam": [0, 13, 35], "speed": [0, 1, 3, 4, 5, 11, 13, 26, 30, 31, 32, 33, 35, 36, 37, 44, 53], "select": [0, 3, 4, 9, 13, 26, 37, 43], "analyz": [0, 2, 24], "abil": 0, "from": [0, 1, 3, 4, 5, 8, 13, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 48, 49, 52], "discard": [0, 23, 32, 35, 36, 38, 39, 44], "invalid": [0, 28, 31, 33, 36, 39, 43, 45], "unknown": [0, 35], "data": [0, 2, 3, 4, 5, 6, 8, 9, 13, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 35, 36, 38, 39, 41, 42, 44, 46, 49], "restart": [0, 43], "an": [0, 3, 4, 5, 8, 9, 10, 11, 12, 13, 22, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 39, 40, 43, 44, 45, 48, 49, 52, 53], "rx_invalid": [0, 31, 36, 39, 45], "signal": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 22, 23, 25, 26, 30, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 49], "requesthandlerinterfac": [0, 33, 36, 39], "indic": [0, 3, 4, 5, 6, 8, 13, 22, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 43, 44, 45, 48], "recept": [0, 29, 43], "updat": [0, 13, 25, 32, 35, 43, 46, 48, 52], "rich": [0, 9], "12": [0, 3, 4, 49], "6": [0, 5, 6, 8, 13, 43, 44], "13": [0, 45], "improv": [0, 1], "simplesoc": [0, 2, 17], "bring": [0, 35, 44, 45], "up": [0, 3, 4, 13, 30, 31, 32, 37, 43, 44, 45, 46, 49, 51, 52], "date": [0, 52], "torii": [0, 8, 25, 44, 46, 47, 49, 51, 53], "soc": [0, 2, 18, 53], "lambdasoc": 0, "minimum": [0, 33], "5": [0, 8, 9, 10, 12, 25, 39, 43, 44, 45], "move": [0, 3, 4, 6, 13, 43, 48], "test": [0, 1, 35, 48, 52], "devic": [0, 2, 3, 4, 5, 8, 24, 25, 27, 28, 31, 32, 35, 36, 37, 39, 41, 42, 43, 45, 48, 49, 53], "gatewar": [0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 53], "librari": [0, 1, 33, 53], "variou": [0, 9, 32, 45], "code": [0, 7, 25, 42, 48, 52], "cleanup": 0, "engin": 0, "overflow": [0, 8], "problem": 0, "utmi": [0, 1, 2, 3, 4, 7, 13, 23, 26, 27, 30, 33, 35, 37], "ulpi": [0, 1, 2, 7, 23, 26, 30, 33], "typo": 0, "handl": [0, 8, 13, 25, 27, 28, 31, 33, 35, 36, 37, 39, 41, 43, 44, 45], "primari": 0, "fifo": [0, 35], "issu": [0, 13, 33, 36, 38, 43, 48], "return": [0, 5, 6, 14, 25, 33, 36, 37, 40, 43, 44, 46], "type": [0, 3, 4, 5, 22, 25, 27, 30, 31, 39, 41, 43], "usbpacketid": [0, 33], "byte": [0, 3, 4, 13, 22, 23, 25, 26, 28, 32, 33, 35, 38, 43, 44], "sign": 0, "unsign": 0, "convers": 0, "error": [0, 3, 4, 5, 8, 9, 13, 33, 43], "usb2": [0, 2, 5, 6, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38], "descriptor": [0, 2, 24, 25, 27, 30, 32, 33, 40, 41, 42], "implement": [0, 1, 3, 4, 8, 9, 10, 12, 22, 25, 30, 32, 33, 41, 43, 46, 53], "miss": 0, "shape": 0, "method": [0, 30, 35], "ecp5debugspibridg": 0, "us": [0, 3, 4, 5, 6, 8, 9, 13, 14, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 48, 52, 53], "pin": [0, 13, 33, 49], "object": [0, 13, 22, 25, 30, 33, 40], "thei": [0, 25, 27, 31, 41, 43, 54], "were": 0, "raw": [0, 1, 3, 4, 5, 6, 8, 26, 35, 43, 44, 49], "kwarg": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "toolchain_prepar": 0, "lunaapolloplatform": 0, "preliminari": 0, "annot": 0, "need": [0, 1, 3, 4, 5, 8, 13, 25, 30, 31, 32, 39, 43, 44, 45, 47, 48, 49, 52], "depend": [0, 8, 9, 10, 12, 32, 47, 49, 52], "pure": [0, 3, 4, 25, 46], "git": [0, 48, 52], "url": 0, "allow": [0, 1, 3, 4, 6, 8, 9, 13, 25, 26, 28, 32, 33, 39, 43, 44, 48, 53], "u": [0, 13, 31, 44], "packag": [0, 48, 52], "pypi": [0, 52], "alter": 0, "wai": [0, 37, 48], "wa": [0, 5, 31, 36, 39, 44, 45, 48], "modul": [0, 3, 4, 5, 6, 8, 9, 13, 25, 26, 27, 30, 31, 32, 35, 36, 38, 41, 43, 44, 45], "name": [0, 22, 26, 32, 33, 44, 48, 49], "sol": [0, 1, 23, 26, 30, 31, 33, 40, 47, 48, 53, 54], "sol_usb": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "prevent": [0, 3, 4, 43, 48], "conflict": 0, "some": [0, 8, 11, 22, 44, 48, 49, 53], "fall": [0, 44], "more": [0, 1, 6, 22, 23, 27, 32, 33, 35, 41, 43, 44, 51, 53], "line": [0, 3, 4, 5, 6, 11, 13, 31, 32, 37, 45, 49], "expect": [0, 13, 31, 33, 36, 38, 39, 43, 45], "poetri": 0, "build": [0, 28, 30, 39, 52, 53], "setup": [0, 25, 33, 35, 36, 39, 43, 46], "py": [0, 48], "swap": [0, 25, 26, 43], "out": [0, 1, 6, 11, 22, 25, 26, 32, 33, 35, 38, 39, 43, 44, 51, 53], "tox": 0, "nox": 0, "replac": [0, 43], "old": 0, "amaranth": [0, 51], "hdl": [0, 25], "dep": 0, "python": 0, "protocol": [0, 2, 8, 24, 32, 33, 42, 43, 44], "3rd": 0, "parti": 0, "platform": [0, 8, 25, 49], "definit": [0, 22, 26, 36, 39, 43, 49, 52], "except": [0, 8], "luna": [0, 48, 51], "requir": [0, 5, 8, 11, 25, 31, 33, 37, 43, 44, 45, 46, 49, 52], "txt": 0, "larg": 0, "chunk": [0, 38], "style": [0, 35], "should": [0, 3, 4, 5, 6, 9, 13, 22, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49], "now": [0, 8, 35, 36, 43], "No": [0, 27, 35, 41], "provid": [0, 1, 8, 13, 14, 22, 25, 26, 29, 31, 32, 33, 35, 38, 39, 41, 43, 44, 46, 47, 48, 49, 52, 53], "hold": [0, 25, 28, 37], "over": [0, 8, 35, 44], "demarc": 0, "diverg": 0, "work": [1, 8, 9, 13, 25, 26, 30, 31, 32, 41, 43, 44, 48, 49, 51, 52, 53, 54], "progress": [1, 27, 41, 44, 51, 52, 53], "mani": [1, 5, 31, 32, 44, 45, 48, 49], "its": [1, 23, 30, 31, 33, 35, 36, 37, 39, 43, 44, 45, 47, 48, 52, 53], "featur": [1, 31, 32, 41, 48, 53], "ar": [1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 22, 23, 25, 27, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 48, 49, 52, 54], "usabl": [1, 32, 53], "enough": [1, 5, 6, 23, 43, 44], "inclus": [1, 26], "your": [1, 30, 40, 48, 52, 53], "own": [1, 11, 30, 40, 43, 44, 48, 53], "design": [1, 8, 9, 30, 33, 35, 38, 40, 49, 53], "our": [1, 3, 4, 11, 13, 14, 22, 25, 26, 28, 30, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 49], "feedback": [1, 44], "alwai": [1, 9, 10, 12, 22, 27, 30, 32, 41, 44, 48], "appreci": 1, "commun": [1, 14, 22, 30, 31, 32, 33, 41, 49], "high": [1, 3, 4, 8, 9, 11, 13, 22, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 43, 44, 45, 48, 53], "full": [1, 3, 4, 5, 8, 9, 10, 12, 13, 23, 25, 31, 32, 35, 36, 37, 38, 41, 43, 46, 52, 53], "w": 1, "phy": [1, 2, 7, 8, 13, 22, 23, 30, 37, 43, 44], "complet": [1, 3, 4, 8, 13, 25, 26, 31, 32, 35, 36, 43, 44, 45, 48], "gpio": 1, "resistor": [1, 3, 4, 13, 49], "super": 1, "pipe": [1, 2, 6, 7, 9, 10, 11, 12, 32, 44], "experiment": 1, "serd": [1, 2, 7, 44], "In": [1, 5, 6, 25, 27, 37, 48], "low": [1, 22, 23, 26, 27, 30, 31, 33, 35, 36, 37, 38, 41, 44, 49, 53], "untest": 1, "unsupport": 1, "control": [1, 2, 5, 8, 9, 10, 12, 13, 24, 26, 30, 31, 33, 35, 36, 38, 39, 40, 42, 43, 44, 45, 46, 48, 49], "transfer": [1, 2, 8, 24, 27, 32, 33, 41, 43], "endpoint": [1, 2, 24, 25, 27, 30, 33, 35, 36, 38, 39, 40, 42, 43], "user": [1, 35, 48, 52], "defin": [1, 8, 25, 27, 41], "handler": [1, 25, 27, 30, 36, 39, 40, 41, 46], "cpu": [1, 2, 17, 30], "interfac": [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 22, 23, 24, 26, 27, 30, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 48, 49], "bulk": [1, 32, 41], "IN": [1, 26, 33, 35, 36, 38, 39, 43], "stream": [1, 2, 23, 24, 25, 28, 29, 31, 33, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46], "helper": [1, 7, 52], "interrupt": [1, 22, 32, 41], "plan": [1, 52], "isochron": [1, 33, 45], "analysi": 1, "basic": [1, 30, 43, 47], "partial": 1, "current": [1, 3, 4, 5, 8, 9, 11, 13, 22, 23, 25, 26, 28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 48, 53, 54], "doe": [1, 8, 25, 28, 30, 39, 43, 44], "ani": [1, 8, 22, 27, 30, 32, 36, 38, 39, 40, 41, 43, 45, 46, 48, 52], "oper": [1, 3, 4, 8, 9, 10, 11, 12, 13, 22, 25, 26, 27, 30, 31, 33, 35, 36, 37, 43, 44], "though": 1, "level": [1, 8, 9, 10, 12, 23, 26, 27, 30, 31, 33, 35, 36, 41, 43, 44, 45, 48], "have": [1, 13, 22, 28, 31, 38, 43, 44, 48, 49, 52], "been": [1, 5, 8, 25, 35, 36, 43, 52], "eventu": 1, "prioriti": [1, 22], "welcom": [1, 53], "pipeinterfac": [2, 7, 8], "asyncpipeinterfac": [2, 7, 8], "gearedpipeinterfac": [2, 7, 8], "ulpiinterfac": [2, 7, 13], "ulpiregisterwindow": [2, 7, 13], "ulpirxeventdecod": [2, 7, 13], "ulpicontroltransl": [2, 7, 13], "ulpitransmittransl": [2, 7, 13], "utmitransl": [2, 7, 13, 23, 35], "utmioperatingmod": [2, 7, 14], "utmiterminationselect": [2, 7, 14], "utmitransmitinterfac": [2, 7, 14, 26, 35, 37], "utmiinterfacemultiplex": [2, 7, 14], "utmiinterfac": [2, 7, 14, 23, 35], "receiv": [2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 22, 23, 24, 25, 26, 29, 30, 31, 32, 35, 36, 38, 39, 42, 44, 45, 46, 48, 49], "transmitt": [2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 22, 24, 25, 38, 42, 44, 45], "gatewarephi": [2, 3, 4, 7], "ecp5": [2, 7, 10], "lfp": [2, 7, 8, 10, 42, 43], "xc7": [2, 7, 10], "ecp5serdespip": [2, 7, 9, 10], "xc7gtpserdespip": [2, 7, 10, 12], "xc7gtxserdespip": [2, 7, 10, 12], "event": [2, 13, 17, 30, 33, 35, 43], "memori": [2, 17, 25, 32], "wishboneram": [2, 17, 18], "wishbonerom": [2, 17, 18], "peripher": [2, 17, 53], "uart": [2, 17], "streaminterfac": [2, 22, 23, 26, 32, 38, 39, 43, 46], "stream_eq": [2, 22, 26, 43], "tap": [2, 22], "arbit": 2, "streammultiplex": [2, 22], "streamarbit": [2, 22, 26], "gener": [2, 6, 8, 11, 24, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 39, 41, 43, 44, 45, 53], "constantstreamgener": [2, 22], "streamseri": [2, 22], "usbanalyz": [2, 23, 24], "standard": [2, 8, 9, 10, 12, 13, 14, 22, 24, 26, 27, 30, 40, 41, 42, 44], "window": [2, 13, 24, 33, 35, 52], "usbinstreaminterfac": [2, 24, 25, 26, 28, 31, 35, 38], "usboutstreaminterfac": [2, 24, 26, 31], "usboutstreamboundarydetector": [2, 24, 26], "usbrawsuperspeedstream": [2, 24, 26, 43, 44], "superspeedstreamarbit": [2, 24, 26], "superspeedstreaminterfac": [2, 24, 26, 39, 41, 43, 45], "deseri": [2, 24, 33, 35], "packet": [2, 3, 4, 5, 13, 22, 23, 24, 25, 26, 31, 32, 36, 38, 39, 41, 43, 45], "reset": [2, 5, 8, 9, 13, 24, 30, 35, 38, 43, 44, 49], "conceptu": [2, 24, 31], "compon": [2, 6, 24, 25, 27, 36, 38, 41], "token": [2, 24, 27, 31, 35, 36, 38, 39, 45], "detector": [2, 11, 24, 31, 35, 36, 38, 43], "handshak": [2, 3, 4, 22, 24, 25, 28, 31, 35, 36, 37, 38, 39, 43, 45], "state": [2, 3, 4, 5, 6, 8, 11, 13, 24, 25, 30, 37, 38, 43, 44, 46, 53], "manag": [2, 8, 9, 10, 12, 24, 26, 27, 38, 41, 42, 43, 48], "crc": [2, 24, 27, 31, 35, 36, 39, 42, 45], "unit": [2, 9, 24, 31, 35, 43, 44], "interpacket": [2, 24, 31, 35, 36], "timer": [2, 24, 27, 31, 35, 36, 42], "suspend": [2, 13, 24, 30, 37], "sequenc": [2, 5, 6, 8, 9, 24, 38, 43, 44, 45], "usb3": [2, 8, 9, 10, 24, 25, 26, 39, 40, 41, 43, 44, 45, 46], "applic": [2, 24, 31, 33, 42], "link": [2, 8, 9, 10, 12, 24, 32, 41, 42, 44, 48], "physic": [2, 24, 42, 43], "rxclockdatarecoveri": [3, 5], "rxnrzidecod": [3, 5], "rxpacketdetect": [3, 5], "rxbitstuffremov": [3, 5], "rxshifter": [3, 5], "txshifter": [3, 6], "txnrziencod": [3, 6], "txbitstuff": [3, 6], "compat": [3, 4, 48], "class": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "gateware_phi": [3, 4, 5, 6], "arg": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "src_loc_at": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "int": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "0": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 48, 49, 52], "transceiv": [3, 4, 12, 13, 14, 27, 33, 36, 41, 44], "fpga": [3, 4, 5, 23, 33, 47, 48, 53], "o": [3, 4, 8, 11, 13, 14, 22, 25, 28, 29, 30, 36, 39, 43], "mhz": [3, 4, 9, 10, 12, 49], "which": [3, 4, 8, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 41, 43, 44, 46, 48, 49, 51, 52], "match": [3, 4, 32, 33, 41, 43, 44, 48], "each": [3, 4, 9, 13, 25, 28, 30, 31, 32, 33, 35, 39, 43, 44, 52], "below": [3, 4, 9, 10, 12, 49], "phase": [3, 4, 8, 25, 26, 36], "relat": [3, 4, 43, 45], "48mhz": [3, 4, 5, 6], "e": [3, 4, 8, 25, 27, 32, 39, 43, 46, 48], "g": [3, 4, 25, 32, 39, 43, 46], "divid": [3, 4], "down": [3, 4, 13, 36, 37, 39, 43, 48], "avoid": [3, 4, 13, 25], "explicit": [3, 4, 44], "synchron": [3, 4, 5, 8, 32, 44], "cross": [3, 4], "usb_io": [3, 4, 49], "core": [3, 4, 9, 10, 12, 22, 23, 26, 27, 30, 31, 32, 33, 38, 40, 41, 44, 49], "recoveri": [3, 4, 5, 43, 48, 49], "sampl": [3, 4, 5], "perform": [3, 4, 8, 13, 22, 27, 31, 33, 35, 36, 39, 41, 43, 44, 45, 49], "must": [3, 4, 8, 9, 10, 13, 23, 26, 27, 30, 32, 35, 39, 41, 45, 46, 49, 52], "ivar": [3, 4], "tx_data": [3, 4, 8, 13, 26, 35], "transmit": [3, 4, 6, 8, 9, 10, 12, 13, 14, 22, 25, 26, 28, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46], "valid": [3, 4, 5, 6, 8, 13, 22, 25, 26, 31, 33, 35, 39, 43, 44, 45, 46, 48], "when": [3, 4, 5, 6, 9, 13, 22, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 49], "tx_valid": [3, 4, 13, 26, 35], "assert": [3, 4, 5, 6, 8, 9, 13, 22, 23, 30, 32, 35, 37, 43, 44, 45, 49], "vartyp": [3, 4], "8": [3, 4, 5, 6, 8, 13, 22, 25, 26, 31, 32, 35, 36, 39, 45, 49], "input": [3, 4, 8, 9, 10, 11, 12, 13, 22, 25, 26, 30, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 49], "data_in": [3, 4, 13], "de": [3, 4, 5, 8, 9, 10, 12, 13, 22, 37, 43], "termin": [3, 4, 8, 13, 26, 33, 37, 43], "transmiss": [3, 4, 6, 13, 22, 26, 31, 36, 39, 43, 45], "tx_readi": [3, 4, 13, 26], "readi": [3, 4, 5, 13, 22, 26, 31, 35, 36, 39, 43, 44, 45, 48], "accept": [3, 4, 6, 13, 22, 25, 26, 32, 33, 35, 38, 43, 44, 45], "new": [3, 4, 13, 22, 25, 30, 35, 38, 39, 43, 44, 45, 46, 52, 53], "next": [3, 4, 13, 22, 25, 26, 28, 32, 43, 45, 48, 49, 52], "after": [3, 4, 5, 6, 8, 13, 26, 31, 35, 36, 39, 43, 44], "given": [3, 4, 5, 8, 11, 13, 25, 31, 33, 35, 43, 44, 46], "cycl": [3, 4, 6, 8, 13, 25, 30, 32, 35, 37, 39, 43, 44], "output": [3, 4, 8, 9, 10, 11, 12, 13, 14, 22, 23, 25, 26, 29, 30, 31, 32, 35, 36, 37, 38, 39, 43, 44, 45, 49], "rx_data": [3, 4, 8, 13, 26, 35], "rx_valid": [3, 4, 8, 13, 26, 35], "present": [3, 4, 5, 8, 9, 11, 13, 14, 22, 26, 29, 32, 35, 37, 43, 48, 49], "goe": [3, 4, 13, 35, 43], "singl": [3, 4, 8, 13, 14, 22, 31, 32, 35, 36, 38, 39, 41, 43], "rx_activ": [3, 4, 13, 26], "activ": [3, 4, 8, 13, 14, 22, 30, 31, 35, 36, 38, 39, 45, 49], "host": [3, 4, 13, 25, 30, 31, 32, 33, 35, 36, 38, 41, 43, 45], "onli": [3, 4, 6, 8, 9, 10, 11, 12, 14, 22, 25, 27, 29, 31, 35, 36, 38, 39, 43, 44, 45, 48, 49, 52], "attr": [3, 4, 22, 23, 26, 32, 39, 43, 44, 49], "rx_error": [3, 4, 13], "ha": [3, 4, 5, 8, 13, 14, 22, 23, 25, 28, 30, 31, 35, 36, 43, 44, 52], "occur": [3, 4, 5, 9, 13, 23, 43], "rx_complet": [3, 4, 13, 31, 36, 39, 45], "strobe": [3, 4, 9, 13, 22, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 43, 44, 45], "one": [3, 4, 5, 8, 9, 10, 13, 14, 22, 23, 27, 30, 31, 32, 35, 36, 37, 39, 41, 44, 45, 48], "rx": [3, 4, 5, 9, 11, 13, 30, 31, 35, 36, 39, 43, 44, 45], "line_st": [3, 4, 13, 37], "2": [3, 4, 8, 9, 10, 12, 13, 23, 25, 28, 31, 33, 35, 36, 37, 38, 43, 44, 48], "d": [3, 4, 13, 14, 25, 37, 44, 46, 49], "specif": [3, 4, 8, 13, 25, 33, 43, 44], "valu": [3, 4, 5, 6, 8, 9, 13, 25, 28, 31, 32, 33, 35, 36, 37, 38, 39, 40, 43, 44, 46], "where": [3, 4, 8, 32, 33, 38, 43, 44], "se0": [3, 4, 5, 6], "1": [3, 4, 5, 6, 8, 9, 13, 22, 25, 26, 31, 35, 36, 37, 39, 43, 44, 45, 46, 48, 49], "k": [3, 4, 5, 44], "j": [3, 4, 5, 48], "vbus_valid": [3, 4, 13, 49], "vbu": [3, 4, 8, 13, 37, 49], "iff": [3, 4, 13, 23, 30, 33, 35, 44], "paramet": [3, 4, 5, 6, 8, 13, 22, 23, 25, 26, 27, 29, 30, 32, 33, 35, 38, 39, 40, 41, 43, 44, 46], "contain": [3, 4, 25, 28, 30, 31, 32, 33, 35, 36, 38, 39, 40, 43, 44, 45, 46], "element": [3, 4], "otherwis": [3, 4, 6, 8, 35, 52], "hard": [3, 4], "connect": [3, 4, 8, 9, 10, 12, 13, 14, 18, 22, 26, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 45, 48, 49], "session_end": [3, 4, 13], "xcvr_select": [3, 4, 13, 33], "function": [3, 4, 25, 30, 40, 44, 48, 53], "so": [3, 4, 5, 8, 9, 22, 26, 27, 35, 38, 41, 43, 44], "effect": [3, 4, 8], "ignor": [3, 4, 27, 38, 39, 43, 45], "To": [3, 4, 25, 30, 31, 44, 52], "being": [3, 4, 13, 22, 23, 25, 29, 32, 33, 35, 38, 45, 53], "driven": [3, 4, 8, 13, 39], "0b00": [3, 4], "attempt": [3, 4, 8, 9, 30, 31, 33], "detect": [3, 4, 5, 8, 9, 10, 11, 12, 26, 30, 31, 33, 35, 36, 37, 38, 43, 44, 45, 48, 49], "without": [3, 4, 27, 32, 35, 41, 44, 48], "advers": [3, 4], "affect": [3, 4, 8, 44, 52], "term_select": [3, 4, 13], "": [3, 4, 5, 6, 8, 9, 10, 12, 13, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 36, 37, 39, 41, 43, 44, 45, 48, 49, 52], "pull": [3, 4, 13, 37, 48, 49, 52], "op_mod": [3, 4, 13], "mode": [3, 4, 8, 9, 10, 12, 13, 14, 35, 37, 44, 48], "A": [3, 4, 5, 6, 14, 22, 25, 31, 33, 37, 39, 43, 44, 48], "caus": [3, 4, 5, 6, 32, 48], "normal": [3, 4, 5, 8, 13, 43], "disabl": [3, 4, 13, 37], "bit": [3, 4, 5, 6, 8, 9, 13, 14, 22, 25, 26, 32, 37, 43, 44], "stuf": [3, 4, 5, 6, 37], "dm_pulldown": [3, 4, 13], "pulldown": [3, 4], "param": [3, 4, 5], "io": [3, 4, 5, 49], "record": [3, 4, 13, 22, 25, 35, 36, 39, 43], "drive": [3, 4, 6, 9, 10, 12, 13, 30, 31, 32, 36, 37, 39, 44, 45, 46, 49], "d_p": [3, 4, 49], "d_n": [3, 4, 49], "mandatori": [3, 4, 39], "pullup": [3, 4, 49], "option": [3, 4, 8, 13, 22, 25, 26, 27, 30, 32, 33, 38, 41, 43, 44, 48, 49], "differenti": [5, 26, 43], "pair": [5, 43, 44], "glitch": 5, "recov": [5, 6], "incom": [5, 6, 25, 31, 33, 36, 38], "usb_48": [5, 6], "pass": [5, 6, 27, 30, 31, 35, 36, 39, 43, 44, 45], "via": [5, 6, 9, 27, 32, 33, 35, 41, 48, 52], "constructor": [5, 6], "usbp_raw": 5, "usbn_raw": 5, "member": [5, 6], "flop": [5, 6], "line_state_dj": 5, "dk": [5, 6], "se1": 5, "hot": 5, "encod": [5, 6, 9, 43, 44, 49], "line_state_valid": 5, "repres": [5, 13, 33, 36, 38, 39, 43], "qualifi": [5, 6], "line_state_dk": 5, "line_state_se0": 5, "line_state_se1": 5, "nrzi": [5, 6, 13, 37, 49], "decod": [5, 6, 8, 39], "order": [5, 6, 9, 26, 32, 42, 44, 48], "ensur": [5, 6, 9, 31, 33, 43, 44, 48, 52], "transit": [5, 6, 44], "process": [5, 6, 13, 26, 44], "dj": [5, 6], "them": [5, 6, 13, 33, 35, 43, 44, 45], "It": [5, 6, 25, 35, 43, 44, 51, 52], "also": [5, 6, 27, 41, 43, 47, 52], "pipelin": [5, 6], "through": [5, 6, 9, 10, 11, 12, 44, 48], "unmodifi": [5, 6], "http": [5, 6, 48, 52], "www": [5, 6, 48], "pjrc": [5, 6], "com": [5, 6, 44, 48, 52], "teensi": [5, 6], "beta": [5, 6], "usb20": [5, 6], "pdf": [5, 6], "spec": [5, 6, 13, 25, 30, 35, 44], "7": [5, 6, 8, 12, 31, 35, 36, 39, 43, 45], "en": [5, 6], "wikipedia": [5, 6], "org": [5, 6, 48, 52], "wiki": [5, 6], "non": [5, 6, 8, 13, 22, 30, 31, 45], "zero": [5, 6, 8, 27, 32, 35, 36, 38, 41, 43, 45], "i_valid": [5, 6], "i_dj": 5, "bu": [5, 8, 13, 14, 27, 30, 33, 35, 37, 43, 45, 49, 53], "i_dk": 5, "i_se0": [5, 6], "o_valid": [5, 6], "o_data": [5, 6], "o_se0": 5, "begin": [5, 25, 43, 44], "follow": [5, 8, 25, 26, 35, 43, 48, 49, 52], "kjkjkjkk": 5, "correspond": 5, "00000001": 5, "idl": [5, 8, 13, 22, 23, 25, 42, 44, 48], "condit": [5, 25, 43, 44, 46], "jjjjjjjj": 5, "translat": [5, 13, 26, 27, 33], "seri": [5, 12], "sinc": [5, 35, 43], "inform": [5, 9, 25, 35, 36, 44, 51], "easi": [5, 48, 49], "look": [5, 14, 23, 48, 49], "end": [5, 13, 25, 32, 35, 38, 39, 41, 43, 48], "even": [5, 44], "easier": 5, "two": [5, 8, 13, 26, 31, 32, 33, 43, 44, 48, 53], "we": [5, 9, 11, 13, 22, 25, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 41, 43, 44, 48], "can": [5, 6, 8, 9, 11, 14, 22, 23, 26, 27, 30, 31, 32, 33, 35, 38, 39, 40, 41, 43, 44, 48, 49, 52, 53], "just": [5, 13], "first": [5, 8, 22, 25, 26, 28, 35, 38, 43, 44, 48, 52], "parallel": [5, 6, 35], "bitstuff": [5, 6], "remov": [5, 8, 31, 44, 45], "10": [5, 13, 43], "i_data": [5, 6], "o_pkt_start": 5, "last": [5, 13, 22, 26, 32, 35, 38, 41, 43, 44], "sync": [5, 22, 44], "o_pkt_act": 5, "while": [5, 25, 31, 32, 33, 37, 41, 44, 53], "middl": 5, "o_pkt_end": 5, "long": [5, 6, 38, 43], "would": [5, 6, 8, 9, 32, 38, 41, 44, 48], "lose": [5, 6], "lock": [5, 6, 8, 48], "solv": [5, 6, 22], "bitstuf": [5, 6], "everi": [5, 6, 26, 31, 38, 44], "consecut": [5, 6, 43], "extra": [5, 13, 22], "higher": [5, 22], "layer": [5, 9, 39, 42], "9": [5, 6, 52], "bit_stuf": [5, 6], "o_stal": [5, 6], "stuffer": 5, "avail": [5, 32, 43, 45], "o_error": 5, "instead": [5, 8, 25, 26, 28, 39, 46], "addit": [5, 8, 27, 41, 43, 44], "dure": [5, 9, 13, 32, 39, 44], "never": [5, 22], "happen": [5, 44], "within": [5, 43, 46], "shifter": [5, 6], "respons": [5, 6, 8, 25, 28, 30, 31, 33, 36, 39, 44, 45], "shift": [5, 6, 9, 35, 43, 44], "serial": [5, 6, 8, 22, 43, 44, 48], "know": [5, 33, 35, 43], "how": [5, 27, 32, 41, 49, 51], "12mhz": [5, 49], "width": [5, 6, 8, 9, 10, 12, 22, 32, 49], "number": [5, 13, 25, 26, 27, 30, 31, 32, 33, 35, 36, 39, 41, 43, 45, 48], "o_put": 5, "onc": [5, 13, 14, 22, 25, 32, 39, 43, 45, 48], "regist": [5, 9, 13, 25, 35, 43, 44, 46], "i_en": 6, "stall": [6, 25, 28, 33, 35, 36, 39, 46], "o_empti": 6, "befor": [6, 44, 47, 48], "load": [6, 48], "o_get": 6, "oe": 6, "i_o": 6, "overrid": 6, "o_usbp": 6, "o_usbn": 6, "o_o": 6, "tx": [6, 25, 28, 30, 31, 35, 36, 37, 39, 43, 44, 45], "insert": [6, 32, 41, 44], "delai": [6, 26, 31, 33, 35, 36, 37], "therefor": 6, "bit_strob": 6, "forward": 6, "usb_12": 6, "appli": [6, 22, 25, 31, 36, 39, 43, 45, 46], "backpressur": [6, 22], "hardwar": [8, 13, 14, 27, 30, 31, 33, 40, 41, 43, 44, 45, 52], "pci": 8, "express": [8, 45], "3": [8, 9, 30, 31, 35, 43, 44, 48, 49, 52], "compliant": [8, 37, 44], "For": [8, 25, 27, 32, 38, 41, 43, 46, 51, 52], "architectur": [8, 31, 33, 52], "unless": 8, "note": [8, 9, 25, 31, 35, 43, 44, 48], "descript": [8, 25, 44, 49], "take": [8, 9], "preced": 8, "ones": 8, "here": [8, 43], "direct": [8, 13, 22, 30, 33, 35, 43, 45, 49], "perspect": 8, "describ": [8, 9, 10, 12, 25], "mac": [8, 52], "symbol": [8, 9, 10, 12, 43, 44], "port": [8, 13, 14, 22, 28, 29, 32, 35, 36, 39], "asynchron": [8, 32], "clk": [8, 9, 10, 12, 30, 49], "refer": [8, 9, 10, 12, 31], "clock": [8, 9, 10, 12, 13, 22, 30, 32, 39, 43, 44, 49], "frequenc": [8, 9, 10, 12, 43, 44, 49], "jitter": 8, "relationship": 8, "other": [8, 11, 25, 26, 30, 32, 33, 35, 43, 44, 52], "specifi": [8, 14, 22, 25, 28, 32, 33, 35, 48], "pclk": [8, 9, 10, 12], "rise": 8, "edg": [8, 13, 22, 49, 52], "deriv": 8, "spread": 8, "spectrum": 8, "phy_mod": [8, 9, 10, 12], "rate": [8, 9, 10, 12, 33, 44], "combin": [8, 53], "tx_datak": 8, "15": 8, "second": [8, 32, 41, 43], "rx_datak": 8, "superspe": [8, 9, 10, 12, 26, 39, 44], "chang": [8, 9, 13, 30, 31, 33, 36, 39, 45, 52], "elas_buf_mod": [8, 9, 10, 12], "elast": [8, 9, 10, 12, 44], "buffer": [8, 9, 10, 11, 12, 23, 32, 38, 41, 43, 44], "nomin": [8, 9, 10, 12, 44], "half": [8, 9, 10, 12, 31, 45], "empti": 8, "gt": [8, 9, 10, 12], "whether": [8, 33, 37], "acknowledg": [8, 25, 33, 43, 46], "phy_statu": [8, 44], "power_down": [8, 9, 10, 12], "power": [8, 9, 10, 12, 23, 30, 37, 42, 43, 49], "per": [8, 32, 44], "run": [8, 25, 35, 43, 44, 48, 49, 51, 52], "deassert": 8, "tx_deemph": [8, 9, 10, 12], "emphasi": [8, 9, 10, 12], "db": 8, "tx_margin": [8, 9, 10, 12], "voltag": [8, 9, 10, 12, 13], "mean": [8, 9, 14, 25, 26], "tx_swing": [8, 9, 10, 12], "swing": [8, 9, 10, 12], "tx_detrx_lpbk": [8, 9, 10, 12], "tx_elec_idl": [8, 9, 10, 12], "loop": 8, "back": [8, 23], "go": 8, "electr": [8, 44], "beacon": 8, "These": [8, 9, 10, 12, 27, 32, 35, 41, 43, 52], "until": [8, 9, 28, 35, 38, 39, 43], "tx_complianc": [8, 9, 10, 12], "If": [8, 13, 22, 23, 25, 26, 27, 30, 32, 35, 37, 38, 39, 41, 43, 45, 46, 48, 49], "set": [8, 9, 13, 22, 25, 27, 29, 31, 37, 38, 39, 42, 44, 45, 46, 48, 49, 53], "dispar": 8, "neg": 8, "tx_ones_zero": [8, 9, 10, 12], "altern": 8, "50": 8, "250": [8, 9, 10, 12], "rx_polar": 8, "invert": [8, 43, 49], "rx_eq_train": [8, 9, 10], "bypass": 8, "equal": [8, 9], "train": [8, 9, 43], "rx_termin": 8, "statu": [8, 25, 33, 36, 39, 43, 44], "rx_statu": [8, 44], "four": [8, 44], "possibl": [8, 11, 31, 32, 38], "8b10b": [8, 9, 44], "underflow": 8, "part": [8, 25, 33, 39, 43], "rx_elec_idl": 8, "power_pres": [8, 9, 10, 12], "between": [8, 25, 26, 27, 31, 35, 36, 39, 41, 44, 45], "domain": [8, 11, 22, 26, 30, 32, 39, 43, 44, 49], "typic": [8, 14, 22, 32, 38, 39, 43, 49], "exhaust": 8, "list": [8, 14, 22, 25, 26, 35, 48], "reason": 8, "p2": 8, "p3": 8, "faster": [8, 44], "than": [8, 23, 32, 35, 38, 43, 44], "maximum": [8, 22, 25, 28, 29, 32, 33, 35, 38, 39, 41], "switch": [8, 22, 25, 33], "interfer": 8, "etc": 8, "gear": [8, 26], "adapt": [8, 9, 10, 12, 22, 33, 48], "capabl": [8, 11, 13, 31, 43, 48, 53], "With": [8, 52], "ss": [8, 26, 43], "default": [8, 13, 22, 23, 26, 27, 29, 32, 35, 37, 39, 41, 43, 44], "deepest": 8, "post": [8, 13, 31, 36, 39, 43, 44, 45], "public": 8, "ident": [8, 26], "32": [8, 25, 43, 44], "wide": 8, "rather": [8, 23, 44], "16": [8, 25, 28, 33, 35, 39, 43, 44], "4": [8, 9, 25, 26, 28, 35, 43, 44, 45], "arrai": [8, 22, 29, 44], "125mhz": 8, "pipe_io": 8, "network": 8, "configur": [8, 13, 25, 28, 30, 31, 32, 33, 36, 39, 43, 45, 48, 49], "recommend": [8, 52], "resourc": [8, 31, 45, 49], "handle_clock": [8, 30], "boolean": [8, 25], "true": [8, 13, 25, 27, 30, 33, 35, 36, 38, 43, 44, 46], "you": [8, 23, 30, 47, 48, 49, 52, 53], "clocksign": 8, "tx_clk": 8, "ti": [8, 32, 41], "soft": [9, 12], "backend": [9, 12], "lattic": 9, "serdes_phi": [9, 10, 11, 12], "ecp5serdesconfiginterfac": [9, 10], "client": 9, "sci": 9, "ecp5serdesregistertransl": [9, 10], "convert": [9, 13, 35, 38, 44], "read": [9, 13, 22, 23, 25, 27, 29, 30, 32, 33, 35, 37, 39, 43, 44], "write": [9, 13], "ecp5serdesequalizerinterfac": [9, 10], "ownership": 9, "runtim": 9, "variabl": [9, 11, 22, 23, 25, 26, 27, 30, 31, 32, 35, 37, 38, 39, 41, 43, 44, 45, 48], "enable_equ": 9, "enabl": [9, 13, 38, 43, 44, 49], "equalizer_pol": 9, "pole": 9, "ostensibli": 9, "knee": 9, "linear": [9, 44], "equalizer_level": 9, "gain": 9, "6db": 9, "9db": 9, "12db": 9, "undocu": 9, "mark": 9, "manual": [9, 38], "anywai": 9, "ecp5serdesequ": [9, 10], "ideal": 9, "analog": 9, "howev": [9, 44, 52, 54], "re": [9, 13, 22, 23, 25, 31, 35, 36, 37, 43, 44, 45, 48, 52], "best": [9, 48], "simulacrum": 9, "built": [9, 48, 52, 53], "ll": [9, 22, 23, 27, 31, 32, 35, 36, 39, 41, 43, 48, 49], "do": [9, 26, 43, 48], "measur": 9, "try": [9, 13, 48], "ve": [9, 32, 43, 48], "minim": 9, "train_equ": 9, "held": [9, 25, 26, 30, 37, 38, 44], "spectral": 9, "encoding_error_detect": 9, "time": [9, 13, 22, 26, 30, 31, 32, 33, 35, 36, 38, 39, 43, 44, 45, 52, 53], "encount": 9, "ecp5serdesresetsequenc": [9, 10], "pll": 9, "cdr": 9, "pc": 9, "start": [9, 22, 25, 28, 29, 32, 33, 35, 38, 39, 43, 44, 48, 51], "correctli": [9, 26, 33, 44], "ecp5serd": [9, 10], "abstract": [9, 31, 43, 44, 45], "wrapper": [9, 10, 12], "around": [9, 10, 12], "behavior": [9, 10, 12, 25], "could": [9, 10, 12], "rout": [9, 10, 12, 31, 43], "fabric": [9, 10, 11, 12], "extrefb": [9, 10], "block": [9, 10, 11, 12, 23, 25], "200": [9, 10], "312": [9, 10], "p0": [9, 10, 12], "tbd": [9, 10, 12], "loopback": [9, 10, 12], "extern": [9, 10, 12, 27], "logic": [9, 10, 12, 13, 33, 43, 44, 45, 49], "mai": [9, 10, 12, 22, 30, 31, 32, 48, 52], "necessari": [9, 10, 12, 13, 30, 33, 35, 36, 44], "lfpssquarewavedetector": [10, 11], "lfpssquarewavegener": [10, 11], "gtp": [10, 12], "ibufds_gte2": [10, 12], "gtx": [10, 12], "recogn": [11, 48], "squar": [11, 44], "wave": [11, 44], "pattern": [11, 44], "differ": [11, 44], "band": [11, 44], "make": [11, 26, 43, 48], "access": [11, 25, 31, 45, 52], "directli": [11, 25, 30, 32, 35, 37, 44, 52], "fit": [11, 46], "bare": 11, "vice": 11, "versa": 11, "identifi": [11, 26, 33, 35, 43, 44], "rx_gpio": 11, "retriev": [11, 25], "whenev": [11, 32, 43, 44, 49], "toggl": [11, 31, 35], "xilinx": 12, "xc7_gtp": 12, "xc7_gtx": 12, "ulpi_data_in": 13, "ulpi_data_out": 13, "ulpi_out_en": 13, "busi": 13, "transact": [13, 22, 33, 36, 42], "address": [13, 25, 28, 31, 32, 33, 35, 36, 38, 39, 41, 43, 45, 48], "done": [13, 22, 29, 43, 45, 52], "read_request": 13, "read_data": 13, "relev": [13, 25, 26, 31, 33, 35, 38, 39, 43, 44, 45, 46, 48], "write_request": 13, "write_data": 13, "written": [13, 47], "simpl": [13, 18, 22, 30, 32, 33, 36, 39, 41, 43, 44, 53], "piec": [13, 22, 25, 30, 40, 46], "track": [13, 25, 35, 43, 44], "ulpi_dir": 13, "ulpi_nxt": 13, "throttl": 13, "register_operation_in_progress": 13, "last_rx_command": 13, "rxcmd": 13, "receipt": [13, 26, 36, 39], "host_disconnect": 13, "disconnect": [13, 30], "id_digit": 13, "digit": 13, "id": [13, 25, 33, 35], "session": 13, "rx_start": 13, "rxevent": 13, "rxactiv": 13, "rx_stop": 13, "equival": [13, 22, 27, 35, 38, 43, 46], "bus_idl": 13, "thu": [13, 22, 25, 30, 33, 35, 37, 38, 39, 43, 44, 48, 49], "transciev": [13, 33], "00": 13, "h": [13, 30, 37], "01": 13, "f": [13, 37], "l": [13, 37], "11": [13, 25, 30, 35, 43], "see": [13, 22, 30, 35, 36, 39, 43, 44, 47, 48, 49, 51], "stuff": 13, "place": [13, 25, 43], "id_pullup": 13, "100kr": 13, "dp_pulldown": 13, "15kr": 13, "intend": [13, 14, 31, 32, 33, 43, 44, 48], "chrg_vbu": 13, "gnd": 13, "discharg": 13, "dischrg_vbu": 13, "3v3": [13, 49], "charg": 13, "abov": [13, 25, 43], "sessvalid": 13, "add_composite_regist": 13, "m": [13, 14, 25, 31, 46], "reset_valu": 13, "add": [13, 22, 27, 30, 31, 35, 36, 39, 40, 41, 43, 44, 45, 52], "compos": 13, "multipl": [13, 28, 31, 32, 35, 36, 39, 43, 45], "space": [13, 32], "assum": [13, 14, 22, 35, 43, 44], "initi": [13, 22, 29, 35, 43, 44], "populate_ulpi_regist": 13, "creat": [13, 27, 30, 33, 35, 40, 41, 43, 53], "map": [13, 26], "determin": [13, 25, 28, 37, 39], "nopid": 13, "command": [13, 42, 44, 48, 52], "forc": [13, 37, 43], "abl": [13, 44, 49], "onto": [13, 14, 22, 37, 52], "ulpi_out_req": 13, "nxt": [13, 49], "ulpi_stp": 13, "stp": [13, 49], "simpler": 13, "most": [13, 25, 35, 36, 39, 48, 49, 52], "slew": 13, "diagnost": 13, "last_rxcmd": 13, "content": [13, 23, 25, 28, 35, 39], "recent": [13, 25, 35, 36, 39], "manual_read": 13, "trigger": [13, 25, 30, 35, 43, 45], "manual_writ": 13, "add_extra_regist": 13, "write_address": 13, "write_valu": 13, "default_valu": 13, "none": [13, 22, 26, 27, 48], "vendor": [13, 25], "target": [13, 25, 48, 49, 53], "integ": [13, 22, 33], "constant": [13, 22, 28, 33, 35, 43, 44], "upon": 13, "startup": [13, 44], "enumer": [14, 25, 31, 33, 35, 36, 46], "termselect": 14, "attach": [14, 18, 30, 35, 43, 48], "utmi_bu": 14, "fragment": 14, "usag": 14, "might": [14, 37, 48, 49, 52], "like": [14, 22, 31, 32, 37, 39, 48, 49, 52], "comb": 14, "interface_object": 14, "merg": [14, 22, 43], "collect": [14, 22, 25, 41, 43, 53], "buss": [14, 22], "togeth": [14, 22, 31], "mostli": [14, 35], "simul": 14, "aid": 14, "wishbon": [18, 30, 53], "ram": [18, 23, 25], "rom": [18, 25, 28], "payload_width": [22, 26], "valid_width": [22, 26], "extra_field": [22, 26], "unidirect": 22, "similar": 22, "litex": 22, "instanc": [22, 25, 31, 33], "optim": [22, 26], "interact": [22, 48], "accordingli": [22, 25, 31, 43], "restrict": [22, 26, 35], "subclass": [22, 30, 39], "origin": [22, 52], "payload": [22, 26, 32, 33, 35, 43], "put": [22, 44, 52], "tupl": [22, 25], "flat": 22, "nest": 22, "field": [22, 25, 28, 31, 35, 36, 39, 43, 45], "layout": [22, 43], "cannot": [22, 35, 39, 43, 48], "omit": [22, 26, 49], "hopefulli": 22, "clear": [22, 25, 31, 43, 44], "clearli": 22, "data_flow": 22, "either": [22, 25, 35, 37, 39, 44], "common": [22, 30, 31, 33, 40, 53], "footgun": 22, "introduc": 22, "tap_readi": 22, "fals": [22, 26, 33, 35, 44], "extens": 22, "view": [22, 44], "multiplex": [22, 31, 35, 36, 39, 45], "variant": [22, 23, 26, 32, 33], "schedul": 22, "add_input": 22, "input_interfac": 22, "burst": [22, 38, 41, 43, 44], "drop": [22, 37], "sourc": [22, 43, 44, 48, 53], "stream_typ": [22, 39], "str": [22, 26, 32], "add_stream": 22, "ad": [22, 30, 31, 35, 36, 39, 40, 43, 44, 45, 52], "puls": [22, 25, 28, 29, 30, 31, 32, 35, 36, 37, 39, 43, 45, 46], "finish": [22, 29], "start_posit": [22, 28], "rang": [22, 32, 35, 39, 43, 45], "len": 22, "posit": [22, 25, 28, 44], "max_length": 22, "max_length_width": 22, "length": [22, 25, 29, 32, 35, 36, 38, 39, 41, 43, 45, 46], "sent": [22, 32, 33, 35, 38, 39, 41, 43], "creation": [22, 29], "output_length": 22, "actual": [22, 39, 43, 44, 45], "Will": 22, "lesser": 22, "constant_data": 22, "iter": [22, 25], "data_width": 22, "divis": 22, "string": [22, 28, 33, 39], "belong": [22, 26, 33, 39], "taken": 22, "limit": [22, 33], "total": [22, 32], "data_endian": 22, "littl": [22, 32, 43, 44, 45], "greater": 22, "short": [22, 29, 32, 38, 41, 46], "data_length": [22, 43], "argument": [22, 25, 29], "small": 23, "ringbuff": 23, "instanti": [23, 30], "probabl": 23, "want": [23, 30, 39, 48, 52], "grab": 23, "dram": 23, "forthcom": 23, "conveni": [23, 26, 27, 41], "carri": [23, 26, 31, 32, 35, 36, 38, 39, 41, 43, 45], "stop": [23, 49], "overrun": 23, "store": [23, 32, 33, 41], "intern": [23, 27, 35], "quickli": 23, "utmi_interfac": 23, "mem_depth": 23, "8192": 23, "depth": 23, "local": 23, "controlrequesthandl": [25, 27, 41], "handle_register_write_request": [25, 46], "new_value_sign": [25, 46], "write_strob": [25, 46], "stall_condit": [25, 46], "fill": [25, 45, 46], "meant": [25, 32, 45, 46], "handle_simple_data_request": [25, 46], "get_configur": [25, 46], "get_statu": [25, 46], "share": [25, 31, 33, 36, 39, 43, 45], "setuppacket": [25, 36, 39], "parser": 25, "is_in_request": 25, "recipi": 25, "index": [25, 39], "standardrequesthandl": [25, 27, 30, 41, 46], "devicedescriptorcollect": [25, 27, 30, 40, 41], "max_packet_s": [25, 32, 35, 38, 41], "size": [25, 26, 32, 35, 38, 41, 46], "associ": [25, 28, 35, 38, 39, 43, 45], "blacklist": 25, "avoid_blockram": 25, "windowsrequesthandl": 25, "respond": [25, 28, 31, 32, 35, 36, 39, 41], "maxpackets": [25, 32], "largest": 25, "react": 25, "accord": [25, 32, 43], "microsoft": 25, "main": [25, 43, 52], "thing": [25, 43, 53], "deal": 25, "usb_construct": 25, "emitt": [25, 43], "platformdescriptorcollect": 25, "system": [25, 44, 52, 53], "rest": [25, 47], "machin": [25, 43], "check_get_descriptor_set": 25, "check": [25, 31, 39, 43, 45, 48, 51], "enter": [25, 30, 37, 43], "get_descriptor_set": 25, "dragonboot": 25, "descriptorset": 25, "getdescriptorsethandl": 25, "yet": [25, 43, 44], "deliv": [25, 35], "ack": [25, 33, 35, 36, 39, 45], "flow": [25, 43, 45], "data0": [25, 31, 35], "data1": [25, 31, 35, 38], "correct": [25, 44], "conclud": [25, 31, 45], "elabor": 25, "ep0": 25, "synthes": 25, "dsl": 25, "handlercondit": 25, "under": [25, 52], "gate": 25, "form": [25, 43], "bootload": [25, 48], "group": [25, 31], "seen": [25, 43, 44], "combinatori": 25, "sum": 25, "ast": 25, "0x07": 25, "0x08": 25, "respect": [25, 45], "set_alternate_enum": 25, "latter": [25, 31, 45], "don": [25, 43], "t": [25, 31, 32, 43, 45, 48], "manner": 25, "get": [25, 28, 33, 39, 48, 51, 52], "amount": [25, 28, 32, 39], "startposit": 25, "inout": 25, "generaterom": 25, "align": [25, 28, 42, 43, 45], "boundari": [25, 26, 38, 43, 49], "laid": 25, "offset": [25, 32], "entri": 25, "consist": [25, 26, 28, 33, 44], "0000": [25, 28], "0002": [25, 28], "pad": [25, 28, 44], "highest": 25, "mem": 25, "nearli": 26, "_must_": 26, "easili": [26, 30, 33, 43, 48, 53], "bridge_to": 26, "utmi_tx": 26, "heavili": 26, "simplifi": [26, 43], "streamer": 26, "utmi_rx": 26, "utmireceiveinterfac": 26, "usboutstream": 26, "As": [26, 31, 33, 35], "denot": 26, "inject": [26, 35, 44], "unprocessed_stream": 26, "processed_stream": 26, "produc": [26, 32, 43, 48], "complete_in": 26, "rxcomplet": 26, "complete_out": 26, "invalid_in": 26, "rxinvalid": 26, "invalid_out": 26, "payload_word": 26, "both": [26, 31, 33, 37, 49], "flag": 26, "come": 26, "implicitli": [26, 33], "word": [26, 43, 44, 46], "includ": [26, 30, 33, 35, 40, 43, 44, 48, 52], "endian_swap": 26, "extend": [26, 48], "global": [26, 33], "endian": [26, 32, 44], "usbcontrolendpoint": [27, 33], "bound": [27, 41], "add_request_handl": [27, 41], "popul": [27, 41, 48], "add_standard_request_handl": [27, 41], "endpointinterfac": [27, 30, 31, 32, 40, 45], "monitor": [27, 39, 43, 48], "consid": [27, 35, 39, 43, 53], "endpoint_numb": [27, 32, 39, 41, 43, 45], "almost": [27, 41], "standalon": [27, 35], "bool": [27, 30, 35, 43], "debug": [27, 35, 48], "case": [27, 30, 35, 43, 49, 52], "request_handl": [27, 41], "arbitr": [27, 31, 35, 36, 39, 41, 45], "import": [27, 31, 35, 41], "overlap": [27, 41], "util": [28, 39, 48], "usbdescriptorstreamgener": [28, 33], "special": [28, 35], "getdescriptorhandlerdistribut": [28, 33], "getdescriptor": [28, 39], "languag": [28, 39, 47, 52], "getdescriptorhandlerblock": [28, 33], "generate_rom_cont": 28, "0x0000xxxx": 28, "exampl": [28, 48, 49], "0xffff": 28, "0004": 28, "0006": 28, "0008": 28, "000a": 28, "000c": 28, "000e": 28, "0010": 28, "0012": 28, "streamdeseri": [29, 33], "receiev": 29, "datalength": 29, "maxlength": 29, "maxlengthwidth": 29, "consum": [29, 37, 43, 48], "organ": [30, 40], "usbdevic": [30, 31, 33], "maintain": [30, 33, 43, 44], "custom": [30, 53], "master": 30, "usbdevicecontrol": 30, "yourself": [30, 48], "low_speed_onli": [30, 37], "full_speed_onli": 30, "prohibit": [30, 37], "frame_numb": 30, "frame": [30, 32, 33, 35, 45], "microframe_numb": 30, "microfram": [30, 32], "sof_detect": 30, "sof": [30, 35], "new_fram": [30, 35], "reset_detect": [30, 44], "lower": [30, 43], "tx_activity_l": 30, "led": [30, 48], "rx_activity_l": 30, "add_endpoint": [30, 40], "elaborat": [30, 40], "attribut": [30, 35, 40], "call": [30, 35, 40, 44, 48, 52], "add_control_endpoint": 30, "add_standard_control_endpoint": [30, 40], "separ": [31, 43], "distinct": 31, "often": 31, "tailor": [31, 33], "least": [31, 43], "decid": 31, "term": 31, "overload": 31, "concept": 31, "former": 31, "reduc": [31, 37, 44], "conflat": 31, "phrase": 31, "entir": [31, 38, 45, 52], "talk": 31, "same": [31, 39, 43, 44], "result": [31, 35, 38, 39, 44], "undefin": 31, "undesir": 31, "delin": 31, "across": [31, 33], "accomplish": [31, 48], "won": [31, 45], "structur": [31, 43, 45], "synthesi": [31, 45], "tool": [31, 45, 48, 52], "tokendetectorinterfac": [31, 33, 35, 38], "tokendetector": 31, "notifi": [31, 33], "rx_ready_for_respons": [31, 36], "fail": [31, 39, 43, 45], "rx_pid_toggl": 31, "pid": [31, 33, 35, 38, 48], "tx_pid_toggl": 31, "send": [31, 32, 33, 35, 36, 38, 43, 44, 45], "data2": [31, 35], "datam": 31, "handshakes_in": [31, 36, 38, 39], "handshakeexchangeinterfac": [31, 33, 35, 38], "handshakes_out": [31, 36, 38, 39], "usbspe": [31, 33, 35, 36, 37], "active_address": [31, 45], "address_chang": [31, 36, 39, 45], "new_address": [31, 36, 39, 45], "adopt": [31, 36, 45], "active_config": [31, 36, 45], "config_chang": [31, 36, 39, 45], "new_config": [31, 36, 39, 45], "interpackettimerinterfac": [31, 33, 35], "data_crc": [31, 35, 36], "datacrcinterfac": [31, 33, 35], "usbendpointmultiplex": 31, "add_interfac": [31, 35, 36, 39, 45], "or_join_interface_sign": 31, "signal_for_interfac": 31, "join": 31, "OR": 31, "ing": 31, "usbisochronousinendpoint": 32, "repeatedli": 32, "transport": [32, 43], "video": 32, "audio": 32, "bytes_in_fram": 32, "3073": 32, "zlp": [32, 41], "emit": [32, 33], "three": [32, 43], "latch": [32, 43], "micro": 32, "throughput": 32, "512": 32, "max": [32, 38], "n": [32, 43, 44], "3072": 32, "next_address": 32, "wmaxpackets": [32, 41], "mainli": 32, "poll": [32, 43, 44], "usbsignalinendpoint": 32, "relai": 32, "status_read_complet": 32, "big": 32, "signal_domain": 32, "anyth": 32, "suitabl": [32, 41, 48], "usbstreaminendpoint": 32, "continu": [32, 41], "flush": [32, 38], "pend": 32, "soon": [32, 38], "vari": 32, "doubl": [32, 41], "worth": [32, 41], "usbmultibytestreaminendpoint": 32, "byte_width": 32, "usbstreamoutendpoint": 32, "isn": 32, "nak": [32, 33, 35], "particip": [32, 33], "ping": [32, 35], "buffer_s": 32, "twice": 32, "exclus": 33, "usbtokendetector": [33, 35], "usbhandshakedetector": [33, 35], "usbdatapacketcrc": [33, 35], "usbdatapacketreceiv": [33, 35], "usbdatapacketdeseri": [33, 35], "usbdatapacketgener": [33, 35], "usbhandshakegener": [33, 35], "usbinterpackettim": [33, 35], "usbrequesthandl": [33, 36], "usbsetupdecod": [33, 36], "usbrequesthandlermultiplex": [33, 36], "usbresetsequenc": [33, 37], "usbintransfermanag": [33, 38], "ep": 33, "tri": 33, "flexibl": 33, "model": 33, "basi": [33, 52], "purpos": 33, "One": 33, "friendli": 33, "macrocel": 33, "transpar": 33, "count": [33, 43], "overal": 33, "highlight": 33, "responsibl": 33, "immin": 33, "successfulli": 33, "checksum": 33, "primarili": [33, 44], "nyet": [33, 35], "outgo": 33, "append": 33, "among": 33, "comput": [33, 35, 43], "turnov": 33, "arriv": 33, "detec": 33, "un": 33, "period": [33, 44], "inact": 33, "disengag": 33, "classmethod": [33, 43], "from_byt": 33, "skip_check": 33, "from_int": 33, "from_nam": 33, "represent": 33, "pars": [33, 35, 36, 39, 43], "categori": 33, "usbpidcategori": 33, "is_data": [33, 44], "is_token": 33, "is_handshak": 33, "is_invalid": 33, "encapsul": [33, 43, 44, 45], "packetid": 33, "summar": 33, "summari": 33, "upper": 33, "nibbl": 33, "gatwar": 35, "interpret": [35, 38, 45], "is_detector": 35, "unus": 35, "new_token": 35, "ready_for_respons": 35, "inter": [35, 36], "is_in": 35, "is_out": 35, "is_setup": 35, "is_p": 35, "18": 35, "usual": 35, "tx_allow": 35, "safe": [35, 44], "tx_timeout": 35, "rx_timeout": 35, "subordin": 35, "fulli": [35, 43], "about": [35, 36], "filter_by_address": 35, "filter": 35, "report": [35, 45], "observ": 35, "suppli": 35, "listen": 35, "By": 35, "arbitrari": 35, "initial_valu": [35, 43, 44], "const": [35, 43, 44], "multiplp": 35, "prior": [35, 52], "packet_complet": 35, "crc_mismatch": 35, "prepar": 35, "usboutdatastream": 35, "active_pid": 35, "packet_id": 35, "becom": [35, 39], "simultan": 35, "mismatch": 35, "far": 35, "submodul": [35, 48], "new_packet": [35, 43], "max_packet_length": 35, "create_crc_gener": 35, "excel": 35, "step": [35, 43, 47, 48], "data_pid": [35, 38], "potenti": 35, "mdata": 35, "tie": 35, "msb": 35, "lsb": [35, 38, 44], "subset": 35, "perfect": 35, "issue_ack": 35, "issue_nak": 35, "issue_stal": 35, "enforc": 35, "mandat": 35, "gap": 35, "interpackettim": 35, "data_request": [36, 39], "status_request": [36, 39], "corrupt": [36, 39, 43], "send_zlp": [36, 43], "statement": 36, "requesthandl": [36, 39], "condition": [36, 39], "prevent_high_spe": 37, "act": 37, "bus_busi": 37, "off": [37, 52], "vbus_connect": 37, "perpetu": 37, "linest": 37, "bus_reset": 37, "unaddress": 37, "unconfigur": 37, "longer": [37, 38, 43], "technic": 37, "5ma": 37, "veri": [37, 45], "few": 37, "polit": 37, "consumpt": 37, "current_spe": 37, "knowledg": 37, "operating_mod": 37, "let": 37, "termination_select": 37, "presenc": [37, 48], "chirp": 37, "assist": 38, "Its": [38, 39], "facilit": 38, "serv": 38, "transfer_stream": 38, "desir": 38, "reach": 38, "packet_stream": 38, "broken": 38, "wait": 38, "further": 38, "again": 38, "generate_zlp": 38, "signific": 38, "start_with_data1": 38, "reset_sequ": 38, "perman": 38, "getdescriptorhandl": 39, "tx_length": [39, 45], "At": 39, "header": [39, 42, 45, 48], "superspeedrequesthandlerinterfac": 39, "af": 39, "success": 39, "known": 39, "good": [39, 43, 52], "On": [39, 48, 52], "tx_sequence_numb": [39, 45], "1024": [39, 43, 45], "advanc": [39, 43, 44], "subsequ": 39, "handshakegeneratorinterfac": [39, 45], "accompani": [39, 43], "current_configur": 39, "superspeedsetupdecod": 39, "sink": [39, 43, 44], "question": 39, "packet_good": [39, 43], "packet_bad": [39, 43], "rx_good": 39, "rx_bad": 39, "did": [39, 43], "properli": [39, 43], "header_in": 39, "dataheaderpacket": [39, 43, 45], "superspeedrequesthandlermultiplex": 39, "superspeedrequesthandl": 39, "usbsuperspeeddevic": [40, 42], "usb3controlendpoint": [41, 42], "superspeedendpointinterfac": [41, 45], "superspeedstreaminendpoint": 41, "usb3linklay": [42, 43], "ltssm": 42, "usb3physicallay": [42, 44], "ctc": 42, "scrambl": [42, 43], "usb3protocollay": [42, 45], "timestamp": 42, "manipul": 43, "linkcommanddetector": 43, "descrambl": [43, 44], "command_class": 43, "command_typ": 43, "subtyp": 43, "new_command": 43, "detail": [43, 49, 53], "linkcommandgener": 43, "anoth": 43, "compute_usb_crc5": 43, "protected_bit": 43, "crc5": 43, "five": 43, "protect": 43, "headerpacketcrc": 43, "restor": 43, "data_input": 43, "advance_crc": 43, "datapacketpayloadcrc": 43, "complic": 43, "incomplet": [43, 51, 52], "advance_word": 43, "advance_3b": 43, "advance_2b": 43, "advance_1b": 43, "next_crc_3b": 43, "3b": 43, "next_crc_2b": 43, "2b": 43, "next_crc_1b": 43, "1b": 43, "dpp": 43, "datapacketreceiv": 43, "redund": 43, "section": [43, 47, 48], "well": 43, "expens": 43, "embed": [43, 48], "headerpacket": 43, "new_head": 43, "datapackettransmitt": 43, "orchestr": 43, "data_sink": 43, "thee": 43, "sequence_numb": 43, "get_typ": 43, "dw0": 43, "get_layout": 43, "sub": 43, "headerqueu": [43, 45], "header_typ": 43, "header_eq": 43, "self": 43, "alia": 43, "headerqueuearbit": 43, "queue": 43, "add_produc": 43, "mux": 43, "headerqueuedemultiplex": 43, "add_consum": 43, "distribut": [43, 52], "idlehandshakehandl": 43, "idle_handshake_complet": 43, "idle_detect": 43, "eight": 43, "2r1": [43, 44], "ltssmcontrol": 43, "bringup": 43, "save": 43, "chapter": 43, "link_readi": [43, 45], "in_usb_reset": 43, "warm": 43, "engage_termin": 43, "invert_rx_polar": 43, "counter": 43, "perform_rx_detect": 43, "enable_scrambl": [43, 44], "ss_clock_frequ": 43, "float": [43, 44], "timeout": 43, "loosen_requir": 43, "relax": 43, "varieti": 43, "ordered_set": 43, "tsburstdetector": 43, "fed": 43, "pre": 43, "tsemitt": 43, "n_ordered_set": 43, "config": 43, "ts1": 43, "ts2": 43, "tstransceiv": 43, "rawheaderpacketreceiv": 43, "bad_packet": 43, "expected_sequ": 43, "headerpacketreceiv": 43, "side": [43, 44], "credit": 43, "advertis": [43, 45], "usb_reset": 43, "retry_receiv": 43, "retri": 43, "retry_requir": [43, 45], "link_command_s": 43, "keepalive_requir": 43, "keepal": 43, "packet_receiv": 43, "bad_packet_receiv": 43, "accept_power_st": 43, "lau": 43, "reject_power_st": 43, "lxu": 43, "reject": 43, "acknowledge_power_st": 43, "lpma": 43, "u0": 43, "mainten": 43, "linkmaintenancetim": 43, "integr": [43, 53], "traffic": 43, "ever": 43, "rule": [43, 48], "10u": 43, "stabli": 43, "1m": 43, "link_command_receiv": 43, "link_command_transmit": 43, "schedule_keepal": 43, "transition_to_recoveri": 43, "stabl": [43, 49, 52], "hz": 43, "rawpackettransmitt": 43, "packettransmitt": 43, "partner": [43, 44], "lgo_receiv": 43, "lgo_target": 43, "lgo": 43, "recovery_requir": 43, "lowest": 44, "rxwordalign": 44, "locat": [44, 48, 52], "comma": 44, "static": 44, "word_meets_alignment_criteria": 44, "ctrl": 44, "appear": 44, "rxpacketalign": 44, "remain": [44, 45], "guarante": 44, "properti": 44, "x": 44, "y": 44, "pcie": 44, "namedsymbol": 44, "metadata": 44, "value_const": 44, "repeat": 44, "ctrl_const": 44, "get_word_for_symbol": 44, "target_symbol": 44, "stream_matches_symbol": 44, "include_readi": 44, "evalu": 44, "falsei": 44, "sym3": 44, "sym2": 44, "sym1": 44, "sym0": 44, "stream_word_matches_symbol": 44, "word_numb": 44, "skp": 44, "path": [44, 52], "give": 44, "toler": 44, "compens": 44, "ctcskipremov": 44, "imposs": 44, "precis": 44, "independ": 44, "filler": 44, "slower": 44, "catch": 44, "insid": 44, "help": [44, 48], "leav": 44, "behind": 44, "whose": 44, "those": 44, "leftov": 44, "past": 44, "point": 44, "sometim": 44, "skip_remov": 44, "ctcskipinsert": 44, "skip": 44, "still": [44, 53], "adjust": 44, "can_send_skip": 44, "sending_skip": 44, "charact": 44, "scrambler": 44, "exchang": 44, "Of": 44, "oob": 44, "slow": 44, "10m": 44, "50mhz": 44, "durat": 44, "p": 44, "opposit": 44, "_": 44, "xxxxxxxxxxxxxxxxxxxx": 44, "lfpstransceiv": 44, "lpf": 44, "drive_electrical_idl": 44, "waveform": 44, "send_sign": 44, "signaling_receiv": 44, "send_pol": 44, "cycles_s": 44, "increment": 44, "polling_detect": 44, "phyresetcontrol": 44, "resid": 44, "sync_frequ": 44, "linkpartnerdetector": 44, "light": 44, "mechan": 44, "request_detect": 44, "power_st": 44, "detection_control": 44, "new_result": 44, "partner_pres": 44, "scramblerlfsr": 44, "lfsr": 44, "polynomi": 44, "appendix": 44, "b": 44, "emi": 44, "itself": [44, 48], "dataheaderreceiv": 45, "header_sink": 45, "rx_header": 45, "rx_new_head": 45, "tx_zlp": 45, "tx_endpoint_numb": 45, "tx_direct": 45, "superspeedendpointmultiplex": 45, "lmp": 45, "link_manag": 45, "portcapabilityheaderpacket": 45, "portconfigurationheaderpacket": 45, "portconfigurationresponseheaderpacket": 45, "linkmanagementpackethandl": 45, "header_sourc": 45, "itp": 45, "timestamppacketreceiv": 45, "bus_interval_count": 45, "14": 45, "125u": 45, "interv": 45, "delta": 45, "next_sequ": 45, "send_ack": 45, "handshakereceiverinterfac": 45, "geneartor": 45, "transactionheaderpacket": 45, "ackheaderpacket": 45, "nrdyheaderpacket": 45, "erdyheaderpacket": 45, "stallheaderpacket": 45, "statusheaderpacket": 45, "transactionpacketgener": 45, "transactionpacketreceiv": 45, "tx_stream": 46, "32b": 46, "valid_mask": 46, "4b": 46, "mask": 46, "0b0001": 46, "0b0011": 46, "0b0111": 46, "0b1111": 46, "demonstr": 47, "workflow": 47, "cursori": 47, "overview": 47, "toolchain": [47, 48, 52], "tutori": 47, "introduct": [47, 51], "instal": [47, 48], "guid": [48, 51], "board": [48, 49], "great": 48, "scott": 48, "gadget": 48, "alreadi": [48, 49, 52], "shouldn": 48, "microprocessor": 48, "samd": 48, "microcontrol": 48, "bottom": 48, "programm": 48, "firmwar": 48, "swd": 48, "black": 48, "magic": 48, "probe": 48, "github": [48, 52], "blackspher": 48, "blackmag": 48, "segger": 48, "product": 48, "openocd": 48, "doc": 48, "html": 48, "__": 48, "binari": 48, "cortex": 48, "m0": 48, "processor": 48, "gnu": 48, "arm": 48, "develop": [48, 53], "softwar": [48, 53], "open": 48, "rm": 48, "linux": [48, 52], "maco": [48, 52], "fetch": 48, "someth": 48, "eabi": 48, "gcc": 48, "dfu": 48, "program": 48, "sourceforg": 48, "net": 48, "compil": 48, "apollo": 48, "flash": 48, "procedur": 48, "rvm": 48, "stage": 48, "repositori": 48, "clone": [48, 52], "sh": 48, "greatscottgadget": 48, "invok": 48, "invoc": 48, "modern": 48, "cd": [48, 52], "predat": 48, "r0": 48, "sol_d21": 48, "yield": 48, "elf": 48, "bin": [48, 52], "label": 48, "uc": 48, "imag": 48, "gdb": 48, "nx": 48, "batch": 48, "ex": 48, "remot": 48, "dev": 48, "ttyacm0": 48, "swdp_scan": 48, "kill": 48, "sure": 48, "0x00000000": 48, "blink": 48, "rapidli": 48, "verifi": 48, "show": 48, "congratul": 48, "reversibli": 48, "region": 48, "accident": 48, "overwrit": 48, "choos": 48, "4kib": 48, "8kib": 48, "revis": 48, "board_revision_major": 48, "board_revision_minor": 48, "print": 48, "silkscreen": 48, "r": 48, "major": 48, "minor": 48, "final": 48, "environ": [48, 52], "info": 48, "snip": 48, "root": 48, "python3": [48, 52], "troubleshoot": 48, "weren": 48, "found": 48, "messag": 48, "chanc": 48, "init": 48, "recurs": 48, "doesn": 48, "permiss": 48, "lsusb": 48, "vid": 48, "1d50": 48, "615c": 48, "grant": 48, "udev": 48, "stack": 49, "exact": 49, "rel": 49, "straightforward": 49, "beyond": 49, "60mhz": 49, "60": 49, "subsign": 49, "bidirect": 49, "dir": 49, "rst": 49, "pinsn": 49, "usb3300": 49, "data_sit": 49, "clk_site": 49, "dir_sit": 49, "nxt_site": 49, "stp_site": 49, "reset_sit": 49, "io_typ": 49, "lvcmos33": 49, "48": 49, "tick": 49, "bitrat": 49, "3v": 49, "bank": 49, "5k": 49, "a4": 49, "a2": 49, "d5": 49, "io_standard": 49, "sb_lvcmo": 49, "serious": 51, "fork": 51, "multitool": 51, "instruct": 52, "20": 52, "cpython": 52, "possibli": 52, "pip": 52, "arch": 52, "sudo": 52, "pacman": 52, "incorrect": 52, "debian": 52, "apt": 52, "fedora": 52, "dnf": 52, "homebrew": 52, "brew": 52, "download": 52, "page": 52, "execut": 52, "nightli": 52, "aur": 52, "makepkg": 52, "yai": 52, "archlinux": 52, "sic": 52, "oss": 52, "cad": 52, "suit": 52, "gtkwave": 52, "simpli": 52, "extract": 52, "home": 52, "curl": 52, "loj": 52, "yosyshq": 52, "2022": 52, "04": 52, "26": 52, "x64": 52, "20220426": 52, "tgz": 52, "tar": 52, "xfv": 52, "export": 52, "pwd": 52, "yowasp": 52, "nativ": 52, "intel": 52, "x86_64": 52, "darwin": 52, "bat": 52, "pip3": 52, "upgrad": 52, "api": 52, "bleed": 52, "unstabl": [52, 53], "shrine": 52, "maiden": 52, "heavi": 52, "industri": 52, "made": 52, "directori": 52, "immedi": 52, "ff": 52, "misbehav": 52, "crash": 52, "importerror": 52, "flesh": 53, "much": 53, "technologi": 53, "toolkit": 53, "exist": 53, "chip": 53, "autom": 53, "cover": 53, "remaind": 53, "offici": 54}, "objects": {"sol_usb.gateware": [[7, 0, 0, "-", "interface"], [17, 0, 0, "-", "soc"], [22, 0, 0, "-", "stream"], [24, 0, 0, "-", "usb"]], "sol_usb.gateware.interface": [[3, 0, 0, "-", "gateware_phy"], [8, 0, 0, "-", "pipe"], [10, 0, 0, "-", "serdes_phy"], [13, 0, 0, "-", "ulpi"], [14, 0, 0, "-", "utmi"]], "sol_usb.gateware.interface.gateware_phy": [[3, 1, 1, "", "GatewarePHY"], [4, 0, 0, "-", "phy"], [5, 0, 0, "-", "receiver"], [6, 0, 0, "-", "transmitter"]], "sol_usb.gateware.interface.gateware_phy.phy": [[4, 1, 1, "", "GatewarePHY"]], "sol_usb.gateware.interface.gateware_phy.receiver": [[5, 1, 1, "", "RxBitstuffRemover"], [5, 1, 1, "", "RxClockDataRecovery"], [5, 1, 1, "", "RxNRZIDecoder"], [5, 1, 1, "", "RxPacketDetect"], [5, 1, 1, "", "RxShifter"]], "sol_usb.gateware.interface.gateware_phy.transmitter": [[6, 1, 1, "", "TxBitstuffer"], [6, 1, 1, "", "TxNRZIEncoder"], [6, 1, 1, "", "TxShifter"]], "sol_usb.gateware.interface.pipe": [[8, 1, 1, "", "AsyncPIPEInterface"], [8, 1, 1, "", "GearedPIPEInterface"], [8, 1, 1, "", "PIPEInterface"]], "sol_usb.gateware.interface.serdes_phy": [[10, 1, 1, "", "ECP5SerDesPIPE"], [10, 1, 1, "", "XC7GTPSerDesPIPE"], [10, 1, 1, "", "XC7GTXSerDesPIPE"], [9, 0, 0, "-", "ecp5"], [11, 0, 0, "-", "lfps"], [12, 0, 0, "-", "xc7_gtp"], [12, 0, 0, "-", "xc7_gtx"]], "sol_usb.gateware.interface.serdes_phy.ecp5": [[9, 1, 1, "", "ECP5SerDes"], [9, 1, 1, "", "ECP5SerDesConfigInterface"], [9, 1, 1, "", "ECP5SerDesEqualizer"], [9, 1, 1, "", "ECP5SerDesEqualizerInterface"], [9, 1, 1, "", "ECP5SerDesPIPE"], [9, 1, 1, "", "ECP5SerDesRegisterTranslator"], [9, 1, 1, "", "ECP5SerDesResetSequencer"]], "sol_usb.gateware.interface.serdes_phy.lfps": [[11, 1, 1, "", "LFPSSquareWaveDetector"], [11, 1, 1, "", "LFPSSquareWaveGenerator"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtp": [[12, 1, 1, "", "XC7GTPSerDesPIPE"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtx": [[12, 1, 1, "", "XC7GTXSerDesPIPE"]], "sol_usb.gateware.interface.ulpi": [[13, 1, 1, "", "ULPIControlTranslator"], [13, 1, 1, "", "ULPIInterface"], [13, 1, 1, "", "ULPIRegisterWindow"], [13, 1, 1, "", "ULPIRxEventDecoder"], [13, 1, 1, "", "ULPITransmitTranslator"], [13, 1, 1, "", "UTMITranslator"]], "sol_usb.gateware.interface.ulpi.ULPIControlTranslator": [[13, 2, 1, "", "add_composite_register"], [13, 2, 1, "", "populate_ulpi_registers"]], "sol_usb.gateware.interface.ulpi.UTMITranslator": [[13, 2, 1, "", "add_extra_register"]], "sol_usb.gateware.interface.utmi": [[14, 1, 1, "", "UTMIInterface"], [14, 1, 1, "", "UTMIInterfaceMultiplexer"], [14, 1, 1, "", "UTMIOperatingMode"], [14, 1, 1, "", "UTMITerminationSelect"], [14, 1, 1, "", "UTMITransmitInterface"]], "sol_usb.gateware.interface.utmi.UTMITransmitInterface": [[14, 2, 1, "", "attach"]], "sol_usb.gateware.soc": [[18, 0, 0, "-", "memory"]], "sol_usb.gateware.soc.memory": [[18, 1, 1, "", "WishboneRAM"], [18, 1, 1, "", "WishboneROM"]], "sol_usb.gateware.stream": [[22, 1, 1, "", "StreamInterface"], [22, 0, 0, "-", "arbiter"], [22, 0, 0, "-", "generator"]], "sol_usb.gateware.stream.StreamInterface": [[22, 2, 1, "", "stream_eq"], [22, 2, 1, "", "tap"]], "sol_usb.gateware.stream.arbiter": [[22, 1, 1, "", "StreamArbiter"], [22, 1, 1, "", "StreamMultiplexer"]], "sol_usb.gateware.stream.arbiter.StreamArbiter": [[22, 2, 1, "", "add_stream"]], "sol_usb.gateware.stream.arbiter.StreamMultiplexer": [[22, 2, 1, "", "add_input"]], "sol_usb.gateware.stream.generator": [[22, 1, 1, "", "ConstantStreamGenerator"], [22, 1, 1, "", "StreamSerializer"]], "sol_usb.gateware.usb": [[23, 0, 0, "-", "analyzer"], [26, 0, 0, "-", "stream"], [33, 0, 0, "-", "usb2"], [42, 0, 0, "-", "usb3"]], "sol_usb.gateware.usb.analyzer": [[23, 1, 1, "", "USBAnalyzer"]], "sol_usb.gateware.usb.request": [[25, 0, 0, "-", "control"], [25, 0, 0, "-", "interface"], [25, 0, 0, "-", "standard"], [25, 0, 0, "-", "windows"]], "sol_usb.gateware.usb.request.control": [[25, 1, 1, "", "ControlRequestHandler"]], "sol_usb.gateware.usb.request.control.ControlRequestHandler": [[25, 2, 1, "", "handle_register_write_request"], [25, 2, 1, "", "handle_simple_data_request"]], "sol_usb.gateware.usb.request.interface": [[25, 1, 1, "", "SetupPacket"]], "sol_usb.gateware.usb.request.standard": [[25, 1, 1, "", "StandardRequestHandler"]], "sol_usb.gateware.usb.request.windows": [[25, 1, 1, "", "WindowsRequestHandler"], [25, 0, 0, "-", "descriptorSet"]], "sol_usb.gateware.usb.request.windows.WindowsRequestHandler": [[25, 2, 1, "", "elaborate"], [25, 2, 1, "", "handlerCondition"]], "sol_usb.gateware.usb.request.windows.descriptorSet": [[25, 1, 1, "", "GetDescriptorSetHandler"]], "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler": [[25, 2, 1, "", "elaborate"], [25, 2, 1, "", "generateROM"]], "sol_usb.gateware.usb.stream": [[26, 1, 1, "", "SuperSpeedStreamArbiter"], [26, 1, 1, "", "SuperSpeedStreamInterface"], [26, 1, 1, "", "USBInStreamInterface"], [26, 1, 1, "", "USBOutStreamBoundaryDetector"], [26, 1, 1, "", "USBOutStreamInterface"], [26, 1, 1, "", "USBRawSuperSpeedStream"]], "sol_usb.gateware.usb.stream.USBInStreamInterface": [[26, 2, 1, "", "bridge_to"]], "sol_usb.gateware.usb.stream.USBOutStreamInterface": [[26, 2, 1, "", "bridge_to"], [26, 2, 1, "", "stream_eq"]], "sol_usb.gateware.usb.stream.USBRawSuperSpeedStream": [[26, 2, 1, "", "stream_eq"]], "sol_usb.gateware.usb.usb2": [[33, 1, 1, "", "USBPacketID"], [33, 1, 1, "", "USBSpeed"], [27, 0, 0, "-", "control"], [28, 0, 0, "-", "descriptor"], [29, 0, 0, "-", "deserializer"], [30, 0, 0, "-", "device"], [31, 0, 0, "-", "endpoint"], [32, 0, 0, "-", "endpoints"], [34, 0, 0, "-", "interfaces"], [35, 0, 0, "-", "packet"], [36, 0, 0, "-", "request"], [37, 0, 0, "-", "reset"], [38, 0, 0, "-", "transfer"]], "sol_usb.gateware.usb.usb2.USBPacketID": [[33, 2, 1, "", "byte"], [33, 2, 1, "", "category"], [33, 2, 1, "", "direction"], [33, 2, 1, "", "from_byte"], [33, 2, 1, "", "from_int"], [33, 2, 1, "", "from_name"], [33, 2, 1, "", "is_data"], [33, 2, 1, "", "is_handshake"], [33, 2, 1, "", "is_invalid"], [33, 2, 1, "", "is_token"], [33, 2, 1, "", "parse"], [33, 2, 1, "", "summarize"]], "sol_usb.gateware.usb.usb2.control": [[27, 1, 1, "", "USBControlEndpoint"]], "sol_usb.gateware.usb.usb2.control.USBControlEndpoint": [[27, 2, 1, "", "add_request_handler"], [27, 2, 1, "", "add_standard_request_handlers"]], "sol_usb.gateware.usb.usb2.descriptor": [[28, 1, 1, "", "GetDescriptorHandlerBlock"], [28, 1, 1, "", "GetDescriptorHandlerDistributed"], [28, 1, 1, "", "USBDescriptorStreamGenerator"]], "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerBlock": [[28, 2, 1, "", "generate_rom_content"]], "sol_usb.gateware.usb.usb2.deserializer": [[29, 1, 1, "", "StreamDeserializer"]], "sol_usb.gateware.usb.usb2.device": [[30, 1, 1, "", "USBDevice"]], "sol_usb.gateware.usb.usb2.device.USBDevice": [[30, 2, 1, "", "add_control_endpoint"], [30, 2, 1, "", "add_endpoint"], [30, 2, 1, "", "add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb2.endpoint": [[31, 1, 1, "", "EndpointInterface"], [31, 1, 1, "", "USBEndpointMultiplexer"]], "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer": [[31, 2, 1, "", "add_interface"], [31, 2, 1, "", "or_join_interface_signals"]], "sol_usb.gateware.usb.usb2.endpoints": [[32, 0, 0, "-", "isochronous"], [32, 0, 0, "-", "status"], [32, 0, 0, "-", "stream"]], "sol_usb.gateware.usb.usb2.endpoints.isochronous": [[32, 1, 1, "", "USBIsochronousInEndpoint"]], "sol_usb.gateware.usb.usb2.endpoints.status": [[32, 1, 1, "", "USBSignalInEndpoint"]], "sol_usb.gateware.usb.usb2.endpoints.stream": [[32, 1, 1, "", "USBMultibyteStreamInEndpoint"], [32, 1, 1, "", "USBStreamInEndpoint"], [32, 1, 1, "", "USBStreamOutEndpoint"]], "sol_usb.gateware.usb.usb2.packet": [[35, 1, 1, "", "DataCRCInterface"], [35, 1, 1, "", "HandshakeExchangeInterface"], [35, 1, 1, "", "InterpacketTimerInterface"], [35, 1, 1, "", "TokenDetectorInterface"], [35, 1, 1, "", "USBDataPacketCRC"], [35, 1, 1, "", "USBDataPacketDeserializer"], [35, 1, 1, "", "USBDataPacketGenerator"], [35, 1, 1, "", "USBDataPacketReceiver"], [35, 1, 1, "", "USBHandshakeDetector"], [35, 1, 1, "", "USBHandshakeGenerator"], [35, 1, 1, "", "USBInterpacketTimer"], [35, 1, 1, "", "USBTokenDetector"]], "sol_usb.gateware.usb.usb2.packet.InterpacketTimerInterface": [[35, 2, 1, "", "attach"]], "sol_usb.gateware.usb.usb2.packet.USBDataPacketCRC": [[35, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb2.packet.USBInterpacketTimer": [[35, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb2.request": [[36, 1, 1, "", "RequestHandlerInterface"], [36, 1, 1, "", "StallOnlyRequestHandler"], [36, 1, 1, "", "USBRequestHandler"], [36, 1, 1, "", "USBRequestHandlerMultiplexer"], [36, 1, 1, "", "USBSetupDecoder"]], "sol_usb.gateware.usb.usb2.request.USBRequestHandler": [[36, 2, 1, "", "send_zlp"]], "sol_usb.gateware.usb.usb2.request.USBRequestHandlerMultiplexer": [[36, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb2.reset": [[37, 1, 1, "", "USBResetSequencer"]], "sol_usb.gateware.usb.usb2.transfer": [[38, 1, 1, "", "USBInTransferManager"]], "sol_usb.gateware.usb.usb3": [[39, 0, 0, "-", "application"], [40, 0, 0, "-", "device"], [41, 0, 0, "-", "endpoints"], [43, 0, 0, "-", "link"], [44, 0, 0, "-", "physical"], [45, 0, 0, "-", "protocol"], [46, 0, 0, "-", "request"]], "sol_usb.gateware.usb.usb3.application": [[39, 0, 0, "-", "descriptor"], [39, 0, 0, "-", "request"]], "sol_usb.gateware.usb.usb3.application.descriptor": [[39, 1, 1, "", "GetDescriptorHandler"]], "sol_usb.gateware.usb.usb3.application.request": [[39, 1, 1, "", "StallOnlyRequestHandler"], [39, 1, 1, "", "SuperSpeedRequestHandler"], [39, 1, 1, "", "SuperSpeedRequestHandlerInterface"], [39, 1, 1, "", "SuperSpeedRequestHandlerMultiplexer"], [39, 1, 1, "", "SuperSpeedSetupDecoder"]], "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerMultiplexer": [[39, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb3.device": [[40, 1, 1, "", "USBSuperSpeedDevice"]], "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice": [[40, 2, 1, "", "add_endpoint"], [40, 2, 1, "", "add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb3.endpoints": [[41, 1, 1, "", "USB3ControlEndpoint"], [41, 0, 0, "-", "control"], [41, 0, 0, "-", "stream"]], "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint": [[41, 2, 1, "", "add_request_handler"], [41, 2, 1, "", "add_standard_request_handlers"]], "sol_usb.gateware.usb.usb3.endpoints.control": [[41, 1, 1, "", "USB3ControlEndpoint"]], "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint": [[41, 2, 1, "", "add_request_handler"], [41, 2, 1, "", "add_standard_request_handlers"]], "sol_usb.gateware.usb.usb3.endpoints.stream": [[41, 1, 1, "", "SuperSpeedStreamInEndpoint"]], "sol_usb.gateware.usb.usb3.link": [[43, 1, 1, "", "USB3LinkLayer"], [43, 0, 0, "-", "command"], [43, 0, 0, "-", "crc"], [43, 0, 0, "-", "data"], [43, 0, 0, "-", "header"], [43, 0, 0, "-", "idle"], [43, 0, 0, "-", "layer"], [43, 0, 0, "-", "ltssm"], [43, 0, 0, "-", "ordered_sets"], [43, 0, 0, "-", "receiver"], [43, 0, 0, "-", "timers"], [43, 0, 0, "-", "transmitter"]], "sol_usb.gateware.usb.usb3.link.command": [[43, 1, 1, "", "LinkCommandDetector"], [43, 1, 1, "", "LinkCommandGenerator"]], "sol_usb.gateware.usb.usb3.link.crc": [[43, 1, 1, "", "DataPacketPayloadCRC"], [43, 1, 1, "", "HeaderPacketCRC"], [43, 3, 1, "", "compute_usb_crc5"]], "sol_usb.gateware.usb.usb3.link.data": [[43, 1, 1, "", "DataHeaderPacket"], [43, 1, 1, "", "DataPacketReceiver"], [43, 1, 1, "", "DataPacketTransmitter"]], "sol_usb.gateware.usb.usb3.link.header": [[43, 1, 1, "", "HeaderPacket"], [43, 1, 1, "", "HeaderQueue"], [43, 1, 1, "", "HeaderQueueArbiter"], [43, 1, 1, "", "HeaderQueueDemultiplexer"]], "sol_usb.gateware.usb.usb3.link.header.HeaderPacket": [[43, 2, 1, "", "get_layout"], [43, 2, 1, "", "get_type"]], "sol_usb.gateware.usb.usb3.link.header.HeaderQueue": [[43, 2, 1, "", "get_type"], [43, 2, 1, "", "header_eq"], [43, 2, 1, "", "stream_eq"]], "sol_usb.gateware.usb.usb3.link.header.HeaderQueueArbiter": [[43, 2, 1, "", "add_producer"]], "sol_usb.gateware.usb.usb3.link.header.HeaderQueueDemultiplexer": [[43, 2, 1, "", "add_consumer"]], "sol_usb.gateware.usb.usb3.link.idle": [[43, 1, 1, "", "IdleHandshakeHandler"]], "sol_usb.gateware.usb.usb3.link.layer": [[43, 1, 1, "", "USB3LinkLayer"]], "sol_usb.gateware.usb.usb3.link.ltssm": [[43, 1, 1, "", "LTSSMController"]], "sol_usb.gateware.usb.usb3.link.ordered_sets": [[43, 1, 1, "", "TSBurstDetector"], [43, 1, 1, "", "TSEmitter"], [43, 1, 1, "", "TSTransceiver"]], "sol_usb.gateware.usb.usb3.link.receiver": [[43, 1, 1, "", "HeaderPacketReceiver"], [43, 1, 1, "", "RawHeaderPacketReceiver"]], "sol_usb.gateware.usb.usb3.link.timers": [[43, 1, 1, "", "LinkMaintenanceTimers"]], "sol_usb.gateware.usb.usb3.link.transmitter": [[43, 1, 1, "", "PacketTransmitter"], [43, 1, 1, "", "RawPacketTransmitter"]], "sol_usb.gateware.usb.usb3.physical": [[44, 1, 1, "", "USB3PhysicalLayer"], [44, 0, 0, "-", "alignment"], [44, 0, 0, "-", "coding"], [44, 0, 0, "-", "ctc"], [44, 0, 0, "-", "layer"], [44, 0, 0, "-", "lfps"], [44, 0, 0, "-", "power"], [44, 0, 0, "-", "scrambling"]], "sol_usb.gateware.usb.usb3.physical.alignment": [[44, 1, 1, "", "RxPacketAligner"], [44, 1, 1, "", "RxWordAligner"]], "sol_usb.gateware.usb.usb3.physical.alignment.RxPacketAligner": [[44, 2, 1, "", "word_meets_alignment_criteria"]], "sol_usb.gateware.usb.usb3.physical.alignment.RxWordAligner": [[44, 2, 1, "", "word_meets_alignment_criteria"]], "sol_usb.gateware.usb.usb3.physical.coding": [[44, 3, 1, "", "D"], [44, 3, 1, "", "K"], [44, 1, 1, "", "NamedSymbol"], [44, 3, 1, "", "get_word_for_symbols"], [44, 3, 1, "", "stream_matches_symbols"], [44, 3, 1, "", "stream_word_matches_symbol"]], "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol": [[44, 2, 1, "", "ctrl_const"], [44, 2, 1, "", "value_const"]], "sol_usb.gateware.usb.usb3.physical.ctc": [[44, 1, 1, "", "CTCSkipInserter"], [44, 1, 1, "", "CTCSkipRemover"]], "sol_usb.gateware.usb.usb3.physical.layer": [[44, 1, 1, "", "USB3PhysicalLayer"]], "sol_usb.gateware.usb.usb3.physical.lfps": [[44, 1, 1, "", "LFPSTransceiver"]], "sol_usb.gateware.usb.usb3.physical.power": [[44, 1, 1, "", "LinkPartnerDetector"], [44, 1, 1, "", "PHYResetController"]], "sol_usb.gateware.usb.usb3.physical.scrambling": [[44, 1, 1, "", "Descrambler"], [44, 1, 1, "", "Scrambler"], [44, 1, 1, "", "ScramblerLFSR"]], "sol_usb.gateware.usb.usb3.protocol": [[45, 1, 1, "", "USB3ProtocolLayer"], [45, 0, 0, "-", "data"], [45, 0, 0, "-", "endpoint"], [45, 0, 0, "-", "layer"], [45, 0, 0, "-", "link_management"], [45, 0, 0, "-", "timestamp"], [45, 0, 0, "-", "transaction"]], "sol_usb.gateware.usb.usb3.protocol.data": [[45, 1, 1, "", "DataHeaderReceiver"]], "sol_usb.gateware.usb.usb3.protocol.endpoint": [[45, 1, 1, "", "SuperSpeedEndpointInterface"], [45, 1, 1, "", "SuperSpeedEndpointMultiplexer"]], "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointMultiplexer": [[45, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb3.protocol.layer": [[45, 1, 1, "", "USB3ProtocolLayer"]], "sol_usb.gateware.usb.usb3.protocol.link_management": [[45, 1, 1, "", "LinkManagementPacketHandler"], [45, 1, 1, "", "PortCapabilityHeaderPacket"], [45, 1, 1, "", "PortConfigurationHeaderPacket"], [45, 1, 1, "", "PortConfigurationResponseHeaderPacket"]], "sol_usb.gateware.usb.usb3.protocol.timestamp": [[45, 1, 1, "", "TimestampPacketReceiver"]], "sol_usb.gateware.usb.usb3.protocol.transaction": [[45, 1, 1, "", "ACKHeaderPacket"], [45, 1, 1, "", "ERDYHeaderPacket"], [45, 1, 1, "", "HandshakeGeneratorInterface"], [45, 1, 1, "", "HandshakeReceiverInterface"], [45, 1, 1, "", "NRDYHeaderPacket"], [45, 1, 1, "", "STALLHeaderPacket"], [45, 1, 1, "", "StatusHeaderPacket"], [45, 1, 1, "", "TransactionHeaderPacket"], [45, 1, 1, "", "TransactionPacketGenerator"], [45, 1, 1, "", "TransactionPacketReceiver"]], "sol_usb.gateware.usb.usb3.request": [[46, 0, 0, "-", "standard"]], "sol_usb.gateware.usb.usb3.request.standard": [[46, 1, 1, "", "StandardRequestHandler"]], "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler": [[46, 2, 1, "", "handle_register_write_request"], [46, 2, 1, "", "handle_simple_data_request"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"changelog": 0, "unreleas": 0, "0": 0, "3": 0, "ad": 0, "chang": 0, "deprec": 0, "remov": 0, "fix": 0, "2": 0, "1": 0, "statu": [1, 32], "support": 1, "devic": [1, 30, 33, 40], "mode": 1, "host": 1, "gatewar": [2, 3, 4, 5, 6, 31, 51], "librari": [2, 51], "phy": [3, 4, 5, 6, 9, 10, 11, 12, 49], "clock": [3, 4, 5, 6], "domain": [3, 4, 5, 6], "receiv": [5, 33, 43], "input": [5, 6], "port": [5, 6], "output": [5, 6], "transmitt": [6, 33, 43], "interfac": [7, 25, 31, 34], "pipe": 8, "serd": [9, 10, 11, 12], "ecp5": 9, "lfp": [11, 44], "xc7": 12, "ulpi": [13, 49], "utmi": 14, "cpu": 15, "event": 16, "soc": 17, "memori": [18, 28], "peripher": 19, "simplesoc": 20, "uart": 21, "stream": [22, 26, 32, 41], "arbit": 22, "gener": [22, 33], "analyz": 23, "usb": [24, 51], "request": [25, 36, 39, 46], "control": [25, 27, 41], "standard": [25, 46], "window": 25, "descriptor": [28, 39], "layout": 28, "type": 28, "offset": 28, "number": 28, "entri": 28, "index": 28, "length": 28, "data": [28, 33, 43, 45], "deseri": 29, "return": 30, "valu": 30, "endpoint": [31, 32, 41, 45], "exclus": 31, "isochron": 32, "usb2": 33, "conceptu": 33, "compon": 33, "token": 33, "detector": 33, "handshak": 33, "packet": [33, 35], "state": 33, "manag": [33, 45], "crc": [33, 43], "unit": 33, "interpacket": 33, "timer": [33, 43], "reset": [33, 37], "suspend": 33, "sequenc": 33, "ep": 34, "tri": 34, "transfer": 38, "applic": 39, "usb3": 42, "link": [43, 45], "command": 43, "header": 43, "idl": 43, "layer": [43, 44, 45], "ltssm": 43, "order": 43, "set": 43, "physic": 44, "align": 44, "code": 44, "ctc": 44, "power": 44, "scrambl": 44, "protocol": 45, "timestamp": 45, "transact": 45, "get": 47, "start": 47, "todo": [47, 53, 54], "prerequisit": [47, 48, 52], "self": 48, "made": 48, "hardwar": [48, 49, 50], "bringup": 48, "bring": 48, "up": 48, "process": 48, "build": 48, "upload": 48, "saturn": 48, "v": 48, "sol": [49, 51, 52], "On": 49, "your": 49, "own": 49, "high": 49, "speed": 49, "via": 49, "full": 49, "us": 49, "fpga": 49, "i": 49, "o": 49, "instal": 52, "python": 52, "yosi": 52, "torii": 52, "latest": 52, "releas": 52, "develop": 52, "snapshot": 52, "edit": 52, "introduct": 53, "tutori": 54}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Changelog": [[0, "changelog"]], "Unreleased": [[0, "unreleased"]], "0.3.0": [[0, "id1"]], "Added": [[0, "added"], [0, "id3"]], "Changed": [[0, "changed"], [0, "id4"]], "Deprecated": [[0, "deprecated"]], "Removed": [[0, "removed"], [0, "id5"]], "Fixed": [[0, "fixed"], [0, "id6"]], "0.2.0": [[0, "id2"]], "0.1.0": [[0, "id7"]], "Status & Support": [[1, "status-support"]], "Support for Device Mode": [[1, "support-for-device-mode"]], "Support for Host Mode": [[1, "support-for-host-mode"]], "Gateware Library": [[2, "gateware-library"]], "Gateware PHY": [[3, "gateware-phy"], [4, "module-sol_usb.gateware.interface.gateware_phy.phy"]], "Clock Domains": [[3, "clock-domains"], [4, "clock-domains"]], "Gateware PHY - Receiver": [[5, "module-sol_usb.gateware.interface.gateware_phy.receiver"]], "Clock Domain": [[5, "clock-domain"], [5, "id1"], [5, "id6"], [5, "id9"], [6, "clock-domain"], [6, "id1"]], "Input Ports": [[5, "input-ports"], [5, "id2"], [5, "id4"], [5, "id7"], [6, "input-ports"], [6, "id2"]], "Output Ports": [[5, "output-ports"], [5, "id3"], [5, "id5"], [5, "id8"], [6, "output-ports"], [6, "id3"]], "Gateware PHY - Transmitter": [[6, "module-sol_usb.gateware.interface.gateware_phy.transmitter"]], "Interface": [[7, "interface"], [25, "module-sol_usb.gateware.usb.request.interface"]], "PIPE": [[8, "module-sol_usb.gateware.interface.pipe"]], "SerDes PHY - ECP5": [[9, "module-sol_usb.gateware.interface.serdes_phy.ecp5"]], "SerDes PHY": [[10, "serdes-phy"]], "SerDes PHY - LFPS": [[11, "module-sol_usb.gateware.interface.serdes_phy.lfps"]], "SerDes PHY - XC7": [[12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtp"]], "ULPI": [[13, "module-sol_usb.gateware.interface.ulpi"]], "UTMI": [[14, "module-sol_usb.gateware.interface.utmi"]], "CPU": [[15, "cpu"]], "Event": [[16, "event"]], "SoC": [[17, "soc"]], "Memory": [[18, "module-sol_usb.gateware.soc.memory"]], "Peripheral": [[19, "peripheral"]], "SimpleSoC": [[20, "simplesoc"]], "UART": [[21, "uart"]], "Stream": [[22, "module-sol_usb.gateware.stream"], [26, "module-sol_usb.gateware.usb.stream"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.stream"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.stream"]], "Arbiter": [[22, "module-sol_usb.gateware.stream.arbiter"]], "Generator": [[22, "module-sol_usb.gateware.stream.generator"]], "Analyzer": [[23, "module-sol_usb.gateware.usb.analyzer"]], "USB": [[24, "usb"]], "Request": [[25, "request"], [36, "module-sol_usb.gateware.usb.usb2.request"], [39, "module-sol_usb.gateware.usb.usb3.application.request"], [46, "module-sol_usb.gateware.usb.usb3.request"]], "Control": [[25, "module-sol_usb.gateware.usb.request.control"], [27, "module-sol_usb.gateware.usb.usb2.control"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.control"]], "Standard": [[25, "module-sol_usb.gateware.usb.request.standard"], [46, "module-sol_usb.gateware.usb.usb3.request.standard"]], "Windows": [[25, "module-sol_usb.gateware.usb.request.windows"]], "Descriptor": [[28, "module-sol_usb.gateware.usb.usb2.descriptor"], [39, "module-sol_usb.gateware.usb.usb3.application.descriptor"]], "Memory layout": [[28, "memory-layout"]], "Type offsets and number of entries": [[28, "type-offsets-and-number-of-entries"]], "Index offsets and length of descriptor": [[28, "index-offsets-and-length-of-descriptor"]], "Data": [[28, "data"], [43, "module-sol_usb.gateware.usb.usb3.link.data"], [45, "module-sol_usb.gateware.usb.usb3.protocol.data"]], "Deserializer": [[29, "module-sol_usb.gateware.usb.usb2.deserializer"]], "Device": [[30, "module-sol_usb.gateware.usb.usb2.device"], [40, "module-sol_usb.gateware.usb.usb3.device"]], "Return value": [[30, "return-value"]], "Endpoint": [[31, "endpoint"], [45, "module-sol_usb.gateware.usb.usb3.protocol.endpoint"]], "Gateware Endpoint Interfaces": [[31, "gateware-endpoint-interfaces"]], "Exclusivity": [[31, "exclusivity"]], "Endpoints": [[32, "module-sol_usb.gateware.usb.usb2.endpoints"], [41, "module-sol_usb.gateware.usb.usb3.endpoints"]], "Isochronous": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.isochronous"]], "Status": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.status"]], "USB2": [[33, "usb2"]], "Conceptual Components": [[33, "conceptual-components"]], "Token Detector": [[33, "token-detector"]], "Handshake Detector": [[33, "handshake-detector"]], "Data Packet Receiver": [[33, "data-packet-receiver"]], "Device State Manager": [[33, "device-state-manager"]], "Handshake Generator": [[33, "handshake-generator"]], "Data Packet Transmitter": [[33, "data-packet-transmitter"]], "Data CRC Unit": [[33, "data-crc-unit"]], "Interpacket Timer": [[33, "interpacket-timer"]], "Reset/Suspend Sequencer": [[33, "reset-suspend-sequencer"]], "Interfaces": [[34, "module-sol_usb.gateware.usb.usb2.interfaces"]], "EP-Tri": [[34, "ep-tri"]], "Packet": [[35, "module-sol_usb.gateware.usb.usb2.packet"]], "Reset": [[37, "module-sol_usb.gateware.usb.usb2.reset"]], "Transfer": [[38, "module-sol_usb.gateware.usb.usb2.transfer"]], "Application": [[39, "module-sol_usb.gateware.usb.usb3.application"]], "USB3": [[42, "usb3"]], "Link": [[43, "module-sol_usb.gateware.usb.usb3.link"]], "Command": [[43, "module-sol_usb.gateware.usb.usb3.link.command"]], "CRC": [[43, "module-sol_usb.gateware.usb.usb3.link.crc"]], "Header": [[43, "module-sol_usb.gateware.usb.usb3.link.header"]], "Idle": [[43, "module-sol_usb.gateware.usb.usb3.link.idle"]], "Layer": [[43, "module-sol_usb.gateware.usb.usb3.link.layer"], [44, "module-sol_usb.gateware.usb.usb3.physical.layer"], [45, "module-sol_usb.gateware.usb.usb3.protocol.layer"]], "LTSSM": [[43, "module-sol_usb.gateware.usb.usb3.link.ltssm"]], "Ordered Sets": [[43, "module-sol_usb.gateware.usb.usb3.link.ordered_sets"]], "Receiver": [[43, "module-sol_usb.gateware.usb.usb3.link.receiver"]], "Timers": [[43, "module-sol_usb.gateware.usb.usb3.link.timers"]], "Transmitter": [[43, "module-sol_usb.gateware.usb.usb3.link.transmitter"]], "Physical": [[44, "module-sol_usb.gateware.usb.usb3.physical"]], "Alignment": [[44, "module-sol_usb.gateware.usb.usb3.physical.alignment"]], "Coding": [[44, "module-sol_usb.gateware.usb.usb3.physical.coding"]], "CTC": [[44, "module-sol_usb.gateware.usb.usb3.physical.ctc"]], "LFPS": [[44, "module-sol_usb.gateware.usb.usb3.physical.lfps"]], "Power": [[44, "module-sol_usb.gateware.usb.usb3.physical.power"]], "Scrambling": [[44, "module-sol_usb.gateware.usb.usb3.physical.scrambling"]], "Protocol": [[45, "module-sol_usb.gateware.usb.usb3.protocol"]], "Link Management": [[45, "module-sol_usb.gateware.usb.usb3.protocol.link_management"]], "Timestamp": [[45, "module-sol_usb.gateware.usb.usb3.protocol.timestamp"]], "Transaction": [[45, "module-sol_usb.gateware.usb.usb3.protocol.transaction"]], "Getting Started": [[47, "getting-started"]], "Todo": [[47, "id1"], [53, "id1"], [54, "id1"]], "Prerequisites": [[47, "prerequisites"], [48, "prerequisites"]], "==========================\nSelf-made Hardware Bringup": [[48, "self-made-hardware-bringup"]], "Bring-up Process": [[48, "bring-up-process"]], "Build/upload Saturn-V": [[48, "build-upload-saturn-v"]], "SOL On Your Own Hardware": [[49, "sol-on-your-own-hardware"]], "High-Speed via a ULPI PHY": [[49, "high-speed-via-a-ulpi-phy"]], "Full-Speed using FPGA I/O": [[49, "full-speed-using-fpga-i-o"]], "Hardware": [[50, "hardware"]], "SOL: USB Gateware Library": [[51, "sol-usb-gateware-library"]], "Installation": [[52, "installation"]], "Installing Prerequisites": [[52, "installing-prerequisites"]], "Installing Python": [[52, "installing-python"]], "Installing Yosys": [[52, "installing-yosys"]], "Installing Torii": [[52, "installing-torii"]], "Installing SOL": [[52, "installing-sol"]], "Latest release": [[52, "latest-release"]], "Development snapshot": [[52, "development-snapshot"]], "Editable development snapshot": [[52, "editable-development-snapshot"]], "Introduction": [[53, "introduction"]], "Tutorials": [[54, "tutorials"]]}, "indexentries": {"gatewarephy (class in sol_usb.gateware.interface.gateware_phy)": [[3, "sol_usb.gateware.interface.gateware_phy.GatewarePHY"]], "module": [[3, "module-sol_usb.gateware.interface.gateware_phy"], [4, "module-sol_usb.gateware.interface.gateware_phy.phy"], [5, "module-sol_usb.gateware.interface.gateware_phy.receiver"], [6, "module-sol_usb.gateware.interface.gateware_phy.transmitter"], [7, "module-sol_usb.gateware.interface"], [8, "module-sol_usb.gateware.interface.pipe"], [9, "module-sol_usb.gateware.interface.serdes_phy.ecp5"], [10, "module-sol_usb.gateware.interface.serdes_phy"], [11, "module-sol_usb.gateware.interface.serdes_phy.lfps"], [12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtp"], [12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtx"], [13, "module-sol_usb.gateware.interface.ulpi"], [14, "module-sol_usb.gateware.interface.utmi"], [17, "module-sol_usb.gateware.soc"], [18, "module-sol_usb.gateware.soc.memory"], [22, "module-sol_usb.gateware.stream"], [22, "module-sol_usb.gateware.stream.arbiter"], [22, "module-sol_usb.gateware.stream.generator"], [23, "module-sol_usb.gateware.usb.analyzer"], [24, "module-sol_usb.gateware.usb"], [25, "module-sol_usb.gateware.usb.request.control"], [25, "module-sol_usb.gateware.usb.request.interface"], [25, "module-sol_usb.gateware.usb.request.standard"], [25, "module-sol_usb.gateware.usb.request.windows"], [25, "module-sol_usb.gateware.usb.request.windows.descriptorSet"], [26, "module-sol_usb.gateware.usb.stream"], [27, "module-sol_usb.gateware.usb.usb2.control"], [28, "module-sol_usb.gateware.usb.usb2.descriptor"], [29, "module-sol_usb.gateware.usb.usb2.deserializer"], [30, "module-sol_usb.gateware.usb.usb2.device"], [31, "module-sol_usb.gateware.usb.usb2.endpoint"], [32, "module-sol_usb.gateware.usb.usb2.endpoints"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.isochronous"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.status"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.stream"], [33, "module-sol_usb.gateware.usb.usb2"], [34, "module-sol_usb.gateware.usb.usb2.interfaces"], [35, "module-sol_usb.gateware.usb.usb2.packet"], [36, "module-sol_usb.gateware.usb.usb2.request"], [37, "module-sol_usb.gateware.usb.usb2.reset"], [38, "module-sol_usb.gateware.usb.usb2.transfer"], [39, "module-sol_usb.gateware.usb.usb3.application"], [39, "module-sol_usb.gateware.usb.usb3.application.descriptor"], [39, "module-sol_usb.gateware.usb.usb3.application.request"], [40, "module-sol_usb.gateware.usb.usb3.device"], [41, "module-sol_usb.gateware.usb.usb3.endpoints"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.control"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.stream"], [42, "module-sol_usb.gateware.usb.usb3"], [43, "module-sol_usb.gateware.usb.usb3.link"], [43, "module-sol_usb.gateware.usb.usb3.link.command"], [43, "module-sol_usb.gateware.usb.usb3.link.crc"], [43, "module-sol_usb.gateware.usb.usb3.link.data"], [43, "module-sol_usb.gateware.usb.usb3.link.header"], [43, "module-sol_usb.gateware.usb.usb3.link.idle"], [43, "module-sol_usb.gateware.usb.usb3.link.layer"], [43, "module-sol_usb.gateware.usb.usb3.link.ltssm"], [43, "module-sol_usb.gateware.usb.usb3.link.ordered_sets"], [43, "module-sol_usb.gateware.usb.usb3.link.receiver"], [43, "module-sol_usb.gateware.usb.usb3.link.timers"], [43, "module-sol_usb.gateware.usb.usb3.link.transmitter"], [44, "module-sol_usb.gateware.usb.usb3.physical"], [44, "module-sol_usb.gateware.usb.usb3.physical.alignment"], [44, "module-sol_usb.gateware.usb.usb3.physical.coding"], [44, "module-sol_usb.gateware.usb.usb3.physical.ctc"], [44, "module-sol_usb.gateware.usb.usb3.physical.layer"], [44, "module-sol_usb.gateware.usb.usb3.physical.lfps"], [44, "module-sol_usb.gateware.usb.usb3.physical.power"], [44, "module-sol_usb.gateware.usb.usb3.physical.scrambling"], [45, "module-sol_usb.gateware.usb.usb3.protocol"], [45, "module-sol_usb.gateware.usb.usb3.protocol.data"], [45, "module-sol_usb.gateware.usb.usb3.protocol.endpoint"], [45, "module-sol_usb.gateware.usb.usb3.protocol.layer"], [45, "module-sol_usb.gateware.usb.usb3.protocol.link_management"], [45, "module-sol_usb.gateware.usb.usb3.protocol.timestamp"], [45, "module-sol_usb.gateware.usb.usb3.protocol.transaction"], [46, "module-sol_usb.gateware.usb.usb3.request"], [46, "module-sol_usb.gateware.usb.usb3.request.standard"]], "sol_usb.gateware.interface.gateware_phy": [[3, "module-sol_usb.gateware.interface.gateware_phy"]], "gatewarephy (class in sol_usb.gateware.interface.gateware_phy.phy)": [[4, "sol_usb.gateware.interface.gateware_phy.phy.GatewarePHY"]], "sol_usb.gateware.interface.gateware_phy.phy": [[4, "module-sol_usb.gateware.interface.gateware_phy.phy"]], "rxbitstuffremover (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxBitstuffRemover"]], "rxclockdatarecovery (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxClockDataRecovery"]], "rxnrzidecoder (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxNRZIDecoder"]], "rxpacketdetect (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxPacketDetect"]], "rxshifter (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxShifter"]], "sol_usb.gateware.interface.gateware_phy.receiver": [[5, "module-sol_usb.gateware.interface.gateware_phy.receiver"]], "txbitstuffer (class in sol_usb.gateware.interface.gateware_phy.transmitter)": [[6, "sol_usb.gateware.interface.gateware_phy.transmitter.TxBitstuffer"]], "txnrziencoder (class in sol_usb.gateware.interface.gateware_phy.transmitter)": [[6, "sol_usb.gateware.interface.gateware_phy.transmitter.TxNRZIEncoder"]], "txshifter (class in sol_usb.gateware.interface.gateware_phy.transmitter)": [[6, "sol_usb.gateware.interface.gateware_phy.transmitter.TxShifter"]], "sol_usb.gateware.interface.gateware_phy.transmitter": [[6, "module-sol_usb.gateware.interface.gateware_phy.transmitter"]], "sol_usb.gateware.interface": [[7, "module-sol_usb.gateware.interface"]], "asyncpipeinterface (class in sol_usb.gateware.interface.pipe)": [[8, "sol_usb.gateware.interface.pipe.AsyncPIPEInterface"]], "gearedpipeinterface (class in sol_usb.gateware.interface.pipe)": [[8, "sol_usb.gateware.interface.pipe.GearedPIPEInterface"]], "pipeinterface (class in sol_usb.gateware.interface.pipe)": [[8, "sol_usb.gateware.interface.pipe.PIPEInterface"]], "sol_usb.gateware.interface.pipe": [[8, "module-sol_usb.gateware.interface.pipe"]], "ecp5serdes (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDes"]], "ecp5serdesconfiginterface (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesConfigInterface"]], "ecp5serdesequalizer (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesEqualizer"]], "ecp5serdesequalizerinterface (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesEqualizerInterface"]], "ecp5serdespipe (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesPIPE"]], "ecp5serdesregistertranslator (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesRegisterTranslator"]], "ecp5serdesresetsequencer (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesResetSequencer"]], "sol_usb.gateware.interface.serdes_phy.ecp5": [[9, "module-sol_usb.gateware.interface.serdes_phy.ecp5"]], "ecp5serdespipe (class in sol_usb.gateware.interface.serdes_phy)": [[10, "sol_usb.gateware.interface.serdes_phy.ECP5SerDesPIPE"]], "xc7gtpserdespipe (class in sol_usb.gateware.interface.serdes_phy)": [[10, "sol_usb.gateware.interface.serdes_phy.XC7GTPSerDesPIPE"]], "xc7gtxserdespipe (class in sol_usb.gateware.interface.serdes_phy)": [[10, "sol_usb.gateware.interface.serdes_phy.XC7GTXSerDesPIPE"]], "sol_usb.gateware.interface.serdes_phy": [[10, "module-sol_usb.gateware.interface.serdes_phy"]], "lfpssquarewavedetector (class in sol_usb.gateware.interface.serdes_phy.lfps)": [[11, "sol_usb.gateware.interface.serdes_phy.lfps.LFPSSquareWaveDetector"]], "lfpssquarewavegenerator (class in sol_usb.gateware.interface.serdes_phy.lfps)": [[11, "sol_usb.gateware.interface.serdes_phy.lfps.LFPSSquareWaveGenerator"]], "sol_usb.gateware.interface.serdes_phy.lfps": [[11, "module-sol_usb.gateware.interface.serdes_phy.lfps"]], "xc7gtpserdespipe (class in sol_usb.gateware.interface.serdes_phy.xc7_gtp)": [[12, "sol_usb.gateware.interface.serdes_phy.xc7_gtp.XC7GTPSerDesPIPE"]], "xc7gtxserdespipe (class in sol_usb.gateware.interface.serdes_phy.xc7_gtx)": [[12, "sol_usb.gateware.interface.serdes_phy.xc7_gtx.XC7GTXSerDesPIPE"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtp": [[12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtp"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtx": [[12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtx"]], "ulpicontroltranslator (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIControlTranslator"]], "ulpiinterface (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIInterface"]], "ulpiregisterwindow (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIRegisterWindow"]], "ulpirxeventdecoder (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIRxEventDecoder"]], "ulpitransmittranslator (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPITransmitTranslator"]], "utmitranslator (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.UTMITranslator"]], "add_composite_register() (sol_usb.gateware.interface.ulpi.ulpicontroltranslator method)": [[13, "sol_usb.gateware.interface.ulpi.ULPIControlTranslator.add_composite_register"]], "add_extra_register() (sol_usb.gateware.interface.ulpi.utmitranslator method)": [[13, "sol_usb.gateware.interface.ulpi.UTMITranslator.add_extra_register"]], "populate_ulpi_registers() (sol_usb.gateware.interface.ulpi.ulpicontroltranslator method)": [[13, "sol_usb.gateware.interface.ulpi.ULPIControlTranslator.populate_ulpi_registers"]], "sol_usb.gateware.interface.ulpi": [[13, "module-sol_usb.gateware.interface.ulpi"]], "utmiinterface (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMIInterface"]], "utmiinterfacemultiplexer (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMIInterfaceMultiplexer"]], "utmioperatingmode (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMIOperatingMode"]], "utmiterminationselect (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMITerminationSelect"]], "utmitransmitinterface (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMITransmitInterface"]], "attach() (sol_usb.gateware.interface.utmi.utmitransmitinterface method)": [[14, "sol_usb.gateware.interface.utmi.UTMITransmitInterface.attach"]], "sol_usb.gateware.interface.utmi": [[14, "module-sol_usb.gateware.interface.utmi"]], "sol_usb.gateware.soc": [[17, "module-sol_usb.gateware.soc"]], "wishboneram (class in sol_usb.gateware.soc.memory)": [[18, "sol_usb.gateware.soc.memory.WishboneRAM"]], "wishbonerom (class in sol_usb.gateware.soc.memory)": [[18, "sol_usb.gateware.soc.memory.WishboneROM"]], "sol_usb.gateware.soc.memory": [[18, "module-sol_usb.gateware.soc.memory"]], "constantstreamgenerator (class in sol_usb.gateware.stream.generator)": [[22, "sol_usb.gateware.stream.generator.ConstantStreamGenerator"]], "streamarbiter (class in sol_usb.gateware.stream.arbiter)": [[22, "sol_usb.gateware.stream.arbiter.StreamArbiter"]], "streaminterface (class in sol_usb.gateware.stream)": [[22, "sol_usb.gateware.stream.StreamInterface"]], "streammultiplexer (class in sol_usb.gateware.stream.arbiter)": [[22, "sol_usb.gateware.stream.arbiter.StreamMultiplexer"]], "streamserializer (class in sol_usb.gateware.stream.generator)": [[22, "sol_usb.gateware.stream.generator.StreamSerializer"]], "add_input() (sol_usb.gateware.stream.arbiter.streammultiplexer method)": [[22, "sol_usb.gateware.stream.arbiter.StreamMultiplexer.add_input"]], "add_stream() (sol_usb.gateware.stream.arbiter.streamarbiter method)": [[22, "sol_usb.gateware.stream.arbiter.StreamArbiter.add_stream"]], "sol_usb.gateware.stream": [[22, "module-sol_usb.gateware.stream"]], "sol_usb.gateware.stream.arbiter": [[22, "module-sol_usb.gateware.stream.arbiter"]], "sol_usb.gateware.stream.generator": [[22, "module-sol_usb.gateware.stream.generator"]], "stream_eq() (sol_usb.gateware.stream.streaminterface method)": [[22, "sol_usb.gateware.stream.StreamInterface.stream_eq"]], "tap() (sol_usb.gateware.stream.streaminterface method)": [[22, "sol_usb.gateware.stream.StreamInterface.tap"]], "usbanalyzer (class in sol_usb.gateware.usb.analyzer)": [[23, "sol_usb.gateware.usb.analyzer.USBAnalyzer"]], "sol_usb.gateware.usb.analyzer": [[23, "module-sol_usb.gateware.usb.analyzer"]], "sol_usb.gateware.usb": [[24, "module-sol_usb.gateware.usb"]], "controlrequesthandler (class in sol_usb.gateware.usb.request.control)": [[25, "sol_usb.gateware.usb.request.control.ControlRequestHandler"]], "getdescriptorsethandler (class in sol_usb.gateware.usb.request.windows.descriptorset)": [[25, "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler"]], "setuppacket (class in sol_usb.gateware.usb.request.interface)": [[25, "sol_usb.gateware.usb.request.interface.SetupPacket"]], "standardrequesthandler (class in sol_usb.gateware.usb.request.standard)": [[25, "sol_usb.gateware.usb.request.standard.StandardRequestHandler"]], "windowsrequesthandler (class in sol_usb.gateware.usb.request.windows)": [[25, "sol_usb.gateware.usb.request.windows.WindowsRequestHandler"]], "elaborate() (sol_usb.gateware.usb.request.windows.windowsrequesthandler method)": [[25, "sol_usb.gateware.usb.request.windows.WindowsRequestHandler.elaborate"]], "elaborate() (sol_usb.gateware.usb.request.windows.descriptorset.getdescriptorsethandler method)": [[25, "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler.elaborate"]], "generaterom() (sol_usb.gateware.usb.request.windows.descriptorset.getdescriptorsethandler method)": [[25, "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler.generateROM"]], "handle_register_write_request() (sol_usb.gateware.usb.request.control.controlrequesthandler method)": [[25, "sol_usb.gateware.usb.request.control.ControlRequestHandler.handle_register_write_request"]], "handle_simple_data_request() (sol_usb.gateware.usb.request.control.controlrequesthandler method)": [[25, "sol_usb.gateware.usb.request.control.ControlRequestHandler.handle_simple_data_request"]], "handlercondition() (sol_usb.gateware.usb.request.windows.windowsrequesthandler method)": [[25, "sol_usb.gateware.usb.request.windows.WindowsRequestHandler.handlerCondition"]], "sol_usb.gateware.usb.request.control": [[25, "module-sol_usb.gateware.usb.request.control"]], "sol_usb.gateware.usb.request.interface": [[25, "module-sol_usb.gateware.usb.request.interface"]], "sol_usb.gateware.usb.request.standard": [[25, "module-sol_usb.gateware.usb.request.standard"]], "sol_usb.gateware.usb.request.windows": [[25, "module-sol_usb.gateware.usb.request.windows"]], "sol_usb.gateware.usb.request.windows.descriptorset": [[25, "module-sol_usb.gateware.usb.request.windows.descriptorSet"]], "superspeedstreamarbiter (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.SuperSpeedStreamArbiter"]], "superspeedstreaminterface (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.SuperSpeedStreamInterface"]], "usbinstreaminterface (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBInStreamInterface"]], "usboutstreamboundarydetector (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamBoundaryDetector"]], "usboutstreaminterface (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamInterface"]], "usbrawsuperspeedstream (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBRawSuperSpeedStream"]], "bridge_to() (sol_usb.gateware.usb.stream.usbinstreaminterface method)": [[26, "sol_usb.gateware.usb.stream.USBInStreamInterface.bridge_to"]], "bridge_to() (sol_usb.gateware.usb.stream.usboutstreaminterface method)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamInterface.bridge_to"]], "sol_usb.gateware.usb.stream": [[26, "module-sol_usb.gateware.usb.stream"]], "stream_eq() (sol_usb.gateware.usb.stream.usboutstreaminterface method)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamInterface.stream_eq"]], "stream_eq() (sol_usb.gateware.usb.stream.usbrawsuperspeedstream method)": [[26, "sol_usb.gateware.usb.stream.USBRawSuperSpeedStream.stream_eq"]], "usbcontrolendpoint (class in sol_usb.gateware.usb.usb2.control)": [[27, "sol_usb.gateware.usb.usb2.control.USBControlEndpoint"]], "add_request_handler() (sol_usb.gateware.usb.usb2.control.usbcontrolendpoint method)": [[27, "sol_usb.gateware.usb.usb2.control.USBControlEndpoint.add_request_handler"]], "add_standard_request_handlers() (sol_usb.gateware.usb.usb2.control.usbcontrolendpoint method)": [[27, "sol_usb.gateware.usb.usb2.control.USBControlEndpoint.add_standard_request_handlers"]], "sol_usb.gateware.usb.usb2.control": [[27, "module-sol_usb.gateware.usb.usb2.control"]], "getdescriptorhandlerblock (class in sol_usb.gateware.usb.usb2.descriptor)": [[28, "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerBlock"]], "getdescriptorhandlerdistributed (class in sol_usb.gateware.usb.usb2.descriptor)": [[28, "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerDistributed"]], "usbdescriptorstreamgenerator (class in sol_usb.gateware.usb.usb2.descriptor)": [[28, "sol_usb.gateware.usb.usb2.descriptor.USBDescriptorStreamGenerator"]], "generate_rom_content() (sol_usb.gateware.usb.usb2.descriptor.getdescriptorhandlerblock method)": [[28, "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerBlock.generate_rom_content"]], "sol_usb.gateware.usb.usb2.descriptor": [[28, "module-sol_usb.gateware.usb.usb2.descriptor"]], "streamdeserializer (class in sol_usb.gateware.usb.usb2.deserializer)": [[29, "sol_usb.gateware.usb.usb2.deserializer.StreamDeserializer"]], "sol_usb.gateware.usb.usb2.deserializer": [[29, "module-sol_usb.gateware.usb.usb2.deserializer"]], "usbdevice (class in sol_usb.gateware.usb.usb2.device)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice"]], "add_control_endpoint() (sol_usb.gateware.usb.usb2.device.usbdevice method)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice.add_control_endpoint"]], "add_endpoint() (sol_usb.gateware.usb.usb2.device.usbdevice method)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice.add_endpoint"]], "add_standard_control_endpoint() (sol_usb.gateware.usb.usb2.device.usbdevice method)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice.add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb2.device": [[30, "module-sol_usb.gateware.usb.usb2.device"]], "endpointinterface (class in sol_usb.gateware.usb.usb2.endpoint)": [[31, "sol_usb.gateware.usb.usb2.endpoint.EndpointInterface"]], "usbendpointmultiplexer (class in sol_usb.gateware.usb.usb2.endpoint)": [[31, "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer"]], "add_interface() (sol_usb.gateware.usb.usb2.endpoint.usbendpointmultiplexer method)": [[31, "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer.add_interface"]], "or_join_interface_signals() (sol_usb.gateware.usb.usb2.endpoint.usbendpointmultiplexer method)": [[31, "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer.or_join_interface_signals"]], "sol_usb.gateware.usb.usb2.endpoint": [[31, "module-sol_usb.gateware.usb.usb2.endpoint"]], "usbisochronousinendpoint (class in sol_usb.gateware.usb.usb2.endpoints.isochronous)": [[32, "sol_usb.gateware.usb.usb2.endpoints.isochronous.USBIsochronousInEndpoint"]], "usbmultibytestreaminendpoint (class in sol_usb.gateware.usb.usb2.endpoints.stream)": [[32, "sol_usb.gateware.usb.usb2.endpoints.stream.USBMultibyteStreamInEndpoint"]], "usbsignalinendpoint (class in sol_usb.gateware.usb.usb2.endpoints.status)": [[32, "sol_usb.gateware.usb.usb2.endpoints.status.USBSignalInEndpoint"]], "usbstreaminendpoint (class in sol_usb.gateware.usb.usb2.endpoints.stream)": [[32, "sol_usb.gateware.usb.usb2.endpoints.stream.USBStreamInEndpoint"]], "usbstreamoutendpoint (class in sol_usb.gateware.usb.usb2.endpoints.stream)": [[32, "sol_usb.gateware.usb.usb2.endpoints.stream.USBStreamOutEndpoint"]], "sol_usb.gateware.usb.usb2.endpoints": [[32, "module-sol_usb.gateware.usb.usb2.endpoints"]], "sol_usb.gateware.usb.usb2.endpoints.isochronous": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.isochronous"]], "sol_usb.gateware.usb.usb2.endpoints.status": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.status"]], "sol_usb.gateware.usb.usb2.endpoints.stream": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.stream"]], "usbpacketid (class in sol_usb.gateware.usb.usb2)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID"]], "usbspeed (class in sol_usb.gateware.usb.usb2)": [[33, "sol_usb.gateware.usb.usb2.USBSpeed"]], "byte() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.byte"]], "category() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.category"]], "direction() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.direction"]], "from_byte() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.from_byte"]], "from_int() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.from_int"]], "from_name() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.from_name"]], "is_data() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_data"]], "is_handshake() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_handshake"]], "is_invalid() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_invalid"]], "is_token() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_token"]], "parse() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.parse"]], "sol_usb.gateware.usb.usb2": [[33, "module-sol_usb.gateware.usb.usb2"]], "summarize() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.summarize"]], "sol_usb.gateware.usb.usb2.interfaces": [[34, "module-sol_usb.gateware.usb.usb2.interfaces"]], "datacrcinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.DataCRCInterface"]], "handshakeexchangeinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.HandshakeExchangeInterface"]], "interpackettimerinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.InterpacketTimerInterface"]], "tokendetectorinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.TokenDetectorInterface"]], "usbdatapacketcrc (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketCRC"]], "usbdatapacketdeserializer (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketDeserializer"]], "usbdatapacketgenerator (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketGenerator"]], "usbdatapacketreceiver (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketReceiver"]], "usbhandshakedetector (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBHandshakeDetector"]], "usbhandshakegenerator (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBHandshakeGenerator"]], "usbinterpackettimer (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBInterpacketTimer"]], "usbtokendetector (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBTokenDetector"]], "add_interface() (sol_usb.gateware.usb.usb2.packet.usbdatapacketcrc method)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketCRC.add_interface"]], "add_interface() (sol_usb.gateware.usb.usb2.packet.usbinterpackettimer method)": [[35, "sol_usb.gateware.usb.usb2.packet.USBInterpacketTimer.add_interface"]], "attach() (sol_usb.gateware.usb.usb2.packet.interpackettimerinterface method)": [[35, "sol_usb.gateware.usb.usb2.packet.InterpacketTimerInterface.attach"]], "sol_usb.gateware.usb.usb2.packet": [[35, "module-sol_usb.gateware.usb.usb2.packet"]], "requesthandlerinterface (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.RequestHandlerInterface"]], "stallonlyrequesthandler (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.StallOnlyRequestHandler"]], "usbrequesthandler (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandler"]], "usbrequesthandlermultiplexer (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandlerMultiplexer"]], "usbsetupdecoder (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.USBSetupDecoder"]], "add_interface() (sol_usb.gateware.usb.usb2.request.usbrequesthandlermultiplexer method)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandlerMultiplexer.add_interface"]], "send_zlp() (sol_usb.gateware.usb.usb2.request.usbrequesthandler method)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandler.send_zlp"]], "sol_usb.gateware.usb.usb2.request": [[36, "module-sol_usb.gateware.usb.usb2.request"]], "usbresetsequencer (class in sol_usb.gateware.usb.usb2.reset)": [[37, "sol_usb.gateware.usb.usb2.reset.USBResetSequencer"]], "sol_usb.gateware.usb.usb2.reset": [[37, "module-sol_usb.gateware.usb.usb2.reset"]], "usbintransfermanager (class in sol_usb.gateware.usb.usb2.transfer)": [[38, "sol_usb.gateware.usb.usb2.transfer.USBInTransferManager"]], "sol_usb.gateware.usb.usb2.transfer": [[38, "module-sol_usb.gateware.usb.usb2.transfer"]], "getdescriptorhandler (class in sol_usb.gateware.usb.usb3.application.descriptor)": [[39, "sol_usb.gateware.usb.usb3.application.descriptor.GetDescriptorHandler"]], "stallonlyrequesthandler (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.StallOnlyRequestHandler"]], "superspeedrequesthandler (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandler"]], "superspeedrequesthandlerinterface (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerInterface"]], "superspeedrequesthandlermultiplexer (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerMultiplexer"]], "superspeedsetupdecoder (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedSetupDecoder"]], "add_interface() (sol_usb.gateware.usb.usb3.application.request.superspeedrequesthandlermultiplexer method)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerMultiplexer.add_interface"]], "sol_usb.gateware.usb.usb3.application": [[39, "module-sol_usb.gateware.usb.usb3.application"]], "sol_usb.gateware.usb.usb3.application.descriptor": [[39, "module-sol_usb.gateware.usb.usb3.application.descriptor"]], "sol_usb.gateware.usb.usb3.application.request": [[39, "module-sol_usb.gateware.usb.usb3.application.request"]], "usbsuperspeeddevice (class in sol_usb.gateware.usb.usb3.device)": [[40, "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice"]], "add_endpoint() (sol_usb.gateware.usb.usb3.device.usbsuperspeeddevice method)": [[40, "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice.add_endpoint"]], "add_standard_control_endpoint() (sol_usb.gateware.usb.usb3.device.usbsuperspeeddevice method)": [[40, "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice.add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb3.device": [[40, "module-sol_usb.gateware.usb.usb3.device"]], "superspeedstreaminendpoint (class in sol_usb.gateware.usb.usb3.endpoints.stream)": [[41, "sol_usb.gateware.usb.usb3.endpoints.stream.SuperSpeedStreamInEndpoint"]], "usb3controlendpoint (class in sol_usb.gateware.usb.usb3.endpoints)": [[41, "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint"]], "usb3controlendpoint (class in sol_usb.gateware.usb.usb3.endpoints.control)": [[41, "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint"]], "add_request_handler() (sol_usb.gateware.usb.usb3.endpoints.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint.add_request_handler"]], "add_request_handler() (sol_usb.gateware.usb.usb3.endpoints.control.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint.add_request_handler"]], "add_standard_request_handlers() (sol_usb.gateware.usb.usb3.endpoints.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint.add_standard_request_handlers"]], "add_standard_request_handlers() (sol_usb.gateware.usb.usb3.endpoints.control.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint.add_standard_request_handlers"]], "sol_usb.gateware.usb.usb3.endpoints": [[41, "module-sol_usb.gateware.usb.usb3.endpoints"]], "sol_usb.gateware.usb.usb3.endpoints.control": [[41, "module-sol_usb.gateware.usb.usb3.endpoints.control"]], "sol_usb.gateware.usb.usb3.endpoints.stream": [[41, "module-sol_usb.gateware.usb.usb3.endpoints.stream"]], "sol_usb.gateware.usb.usb3": [[42, "module-sol_usb.gateware.usb.usb3"]], "dataheaderpacket (class in sol_usb.gateware.usb.usb3.link.data)": [[43, "sol_usb.gateware.usb.usb3.link.data.DataHeaderPacket"]], "datapacketpayloadcrc (class in sol_usb.gateware.usb.usb3.link.crc)": [[43, "sol_usb.gateware.usb.usb3.link.crc.DataPacketPayloadCRC"]], "datapacketreceiver (class in sol_usb.gateware.usb.usb3.link.data)": [[43, "sol_usb.gateware.usb.usb3.link.data.DataPacketReceiver"]], "datapackettransmitter (class in sol_usb.gateware.usb.usb3.link.data)": [[43, "sol_usb.gateware.usb.usb3.link.data.DataPacketTransmitter"]], "headerpacket (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderPacket"]], "headerpacketcrc (class in sol_usb.gateware.usb.usb3.link.crc)": [[43, "sol_usb.gateware.usb.usb3.link.crc.HeaderPacketCRC"]], "headerpacketreceiver (class in sol_usb.gateware.usb.usb3.link.receiver)": [[43, "sol_usb.gateware.usb.usb3.link.receiver.HeaderPacketReceiver"]], "headerqueue (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue"]], "headerqueuearbiter (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueArbiter"]], "headerqueuedemultiplexer (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueDemultiplexer"]], "idlehandshakehandler (class in sol_usb.gateware.usb.usb3.link.idle)": [[43, "sol_usb.gateware.usb.usb3.link.idle.IdleHandshakeHandler"]], "ltssmcontroller (class in sol_usb.gateware.usb.usb3.link.ltssm)": [[43, "sol_usb.gateware.usb.usb3.link.ltssm.LTSSMController"]], "linkcommanddetector (class in sol_usb.gateware.usb.usb3.link.command)": [[43, "sol_usb.gateware.usb.usb3.link.command.LinkCommandDetector"]], "linkcommandgenerator (class in sol_usb.gateware.usb.usb3.link.command)": [[43, "sol_usb.gateware.usb.usb3.link.command.LinkCommandGenerator"]], "linkmaintenancetimers (class in sol_usb.gateware.usb.usb3.link.timers)": [[43, "sol_usb.gateware.usb.usb3.link.timers.LinkMaintenanceTimers"]], "packettransmitter (class in sol_usb.gateware.usb.usb3.link.transmitter)": [[43, "sol_usb.gateware.usb.usb3.link.transmitter.PacketTransmitter"]], "rawheaderpacketreceiver (class in sol_usb.gateware.usb.usb3.link.receiver)": [[43, "sol_usb.gateware.usb.usb3.link.receiver.RawHeaderPacketReceiver"]], "rawpackettransmitter (class in sol_usb.gateware.usb.usb3.link.transmitter)": [[43, "sol_usb.gateware.usb.usb3.link.transmitter.RawPacketTransmitter"]], "tsburstdetector (class in sol_usb.gateware.usb.usb3.link.ordered_sets)": [[43, "sol_usb.gateware.usb.usb3.link.ordered_sets.TSBurstDetector"]], "tsemitter (class in sol_usb.gateware.usb.usb3.link.ordered_sets)": [[43, "sol_usb.gateware.usb.usb3.link.ordered_sets.TSEmitter"]], "tstransceiver (class in sol_usb.gateware.usb.usb3.link.ordered_sets)": [[43, "sol_usb.gateware.usb.usb3.link.ordered_sets.TSTransceiver"]], "usb3linklayer (class in sol_usb.gateware.usb.usb3.link)": [[43, "sol_usb.gateware.usb.usb3.link.USB3LinkLayer"]], "usb3linklayer (class in sol_usb.gateware.usb.usb3.link.layer)": [[43, "sol_usb.gateware.usb.usb3.link.layer.USB3LinkLayer"]], "add_consumer() (sol_usb.gateware.usb.usb3.link.header.headerqueuedemultiplexer method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueDemultiplexer.add_consumer"]], "add_producer() (sol_usb.gateware.usb.usb3.link.header.headerqueuearbiter method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueArbiter.add_producer"]], "compute_usb_crc5() (in module sol_usb.gateware.usb.usb3.link.crc)": [[43, "sol_usb.gateware.usb.usb3.link.crc.compute_usb_crc5"]], "get_layout() (sol_usb.gateware.usb.usb3.link.header.headerpacket class method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderPacket.get_layout"]], "get_type() (sol_usb.gateware.usb.usb3.link.header.headerpacket method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderPacket.get_type"]], "get_type() (sol_usb.gateware.usb.usb3.link.header.headerqueue method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue.get_type"]], "header_eq() (sol_usb.gateware.usb.usb3.link.header.headerqueue method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue.header_eq"]], "sol_usb.gateware.usb.usb3.link": [[43, "module-sol_usb.gateware.usb.usb3.link"]], "sol_usb.gateware.usb.usb3.link.command": [[43, "module-sol_usb.gateware.usb.usb3.link.command"]], "sol_usb.gateware.usb.usb3.link.crc": [[43, "module-sol_usb.gateware.usb.usb3.link.crc"]], "sol_usb.gateware.usb.usb3.link.data": [[43, "module-sol_usb.gateware.usb.usb3.link.data"]], "sol_usb.gateware.usb.usb3.link.header": [[43, "module-sol_usb.gateware.usb.usb3.link.header"]], "sol_usb.gateware.usb.usb3.link.idle": [[43, "module-sol_usb.gateware.usb.usb3.link.idle"]], "sol_usb.gateware.usb.usb3.link.layer": [[43, "module-sol_usb.gateware.usb.usb3.link.layer"]], "sol_usb.gateware.usb.usb3.link.ltssm": [[43, "module-sol_usb.gateware.usb.usb3.link.ltssm"]], "sol_usb.gateware.usb.usb3.link.ordered_sets": [[43, "module-sol_usb.gateware.usb.usb3.link.ordered_sets"]], "sol_usb.gateware.usb.usb3.link.receiver": [[43, "module-sol_usb.gateware.usb.usb3.link.receiver"]], "sol_usb.gateware.usb.usb3.link.timers": [[43, "module-sol_usb.gateware.usb.usb3.link.timers"]], "sol_usb.gateware.usb.usb3.link.transmitter": [[43, "module-sol_usb.gateware.usb.usb3.link.transmitter"]], "stream_eq() (sol_usb.gateware.usb.usb3.link.header.headerqueue method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue.stream_eq"]], "ctcskipinserter (class in sol_usb.gateware.usb.usb3.physical.ctc)": [[44, "sol_usb.gateware.usb.usb3.physical.ctc.CTCSkipInserter"]], "ctcskipremover (class in sol_usb.gateware.usb.usb3.physical.ctc)": [[44, "sol_usb.gateware.usb.usb3.physical.ctc.CTCSkipRemover"]], "d() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.D"]], "descrambler (class in sol_usb.gateware.usb.usb3.physical.scrambling)": [[44, "sol_usb.gateware.usb.usb3.physical.scrambling.Descrambler"]], "k() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.K"]], "lfpstransceiver (class in sol_usb.gateware.usb.usb3.physical.lfps)": [[44, "sol_usb.gateware.usb.usb3.physical.lfps.LFPSTransceiver"]], "linkpartnerdetector (class in sol_usb.gateware.usb.usb3.physical.power)": [[44, "sol_usb.gateware.usb.usb3.physical.power.LinkPartnerDetector"]], "namedsymbol (class in sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol"]], "phyresetcontroller (class in sol_usb.gateware.usb.usb3.physical.power)": [[44, "sol_usb.gateware.usb.usb3.physical.power.PHYResetController"]], "rxpacketaligner (class in sol_usb.gateware.usb.usb3.physical.alignment)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxPacketAligner"]], "rxwordaligner (class in sol_usb.gateware.usb.usb3.physical.alignment)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxWordAligner"]], "scrambler (class in sol_usb.gateware.usb.usb3.physical.scrambling)": [[44, "sol_usb.gateware.usb.usb3.physical.scrambling.Scrambler"]], "scramblerlfsr (class in sol_usb.gateware.usb.usb3.physical.scrambling)": [[44, "sol_usb.gateware.usb.usb3.physical.scrambling.ScramblerLFSR"]], "usb3physicallayer (class in sol_usb.gateware.usb.usb3.physical)": [[44, "sol_usb.gateware.usb.usb3.physical.USB3PhysicalLayer"]], "usb3physicallayer (class in sol_usb.gateware.usb.usb3.physical.layer)": [[44, "sol_usb.gateware.usb.usb3.physical.layer.USB3PhysicalLayer"]], "ctrl_const() (sol_usb.gateware.usb.usb3.physical.coding.namedsymbol method)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol.ctrl_const"]], "get_word_for_symbols() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.get_word_for_symbols"]], "sol_usb.gateware.usb.usb3.physical": [[44, "module-sol_usb.gateware.usb.usb3.physical"]], "sol_usb.gateware.usb.usb3.physical.alignment": [[44, "module-sol_usb.gateware.usb.usb3.physical.alignment"]], "sol_usb.gateware.usb.usb3.physical.coding": [[44, "module-sol_usb.gateware.usb.usb3.physical.coding"]], "sol_usb.gateware.usb.usb3.physical.ctc": [[44, "module-sol_usb.gateware.usb.usb3.physical.ctc"]], "sol_usb.gateware.usb.usb3.physical.layer": [[44, "module-sol_usb.gateware.usb.usb3.physical.layer"]], "sol_usb.gateware.usb.usb3.physical.lfps": [[44, "module-sol_usb.gateware.usb.usb3.physical.lfps"]], "sol_usb.gateware.usb.usb3.physical.power": [[44, "module-sol_usb.gateware.usb.usb3.physical.power"]], "sol_usb.gateware.usb.usb3.physical.scrambling": [[44, "module-sol_usb.gateware.usb.usb3.physical.scrambling"]], "stream_matches_symbols() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.stream_matches_symbols"]], "stream_word_matches_symbol() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.stream_word_matches_symbol"]], "value_const() (sol_usb.gateware.usb.usb3.physical.coding.namedsymbol method)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol.value_const"]], "word_meets_alignment_criteria() (sol_usb.gateware.usb.usb3.physical.alignment.rxpacketaligner static method)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxPacketAligner.word_meets_alignment_criteria"]], "word_meets_alignment_criteria() (sol_usb.gateware.usb.usb3.physical.alignment.rxwordaligner static method)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxWordAligner.word_meets_alignment_criteria"]], "ackheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.ACKHeaderPacket"]], "dataheaderreceiver (class in sol_usb.gateware.usb.usb3.protocol.data)": [[45, "sol_usb.gateware.usb.usb3.protocol.data.DataHeaderReceiver"]], "erdyheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.ERDYHeaderPacket"]], "handshakegeneratorinterface (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.HandshakeGeneratorInterface"]], "handshakereceiverinterface (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.HandshakeReceiverInterface"]], "linkmanagementpackethandler (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.LinkManagementPacketHandler"]], "nrdyheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.NRDYHeaderPacket"]], "portcapabilityheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.PortCapabilityHeaderPacket"]], "portconfigurationheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.PortConfigurationHeaderPacket"]], "portconfigurationresponseheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.PortConfigurationResponseHeaderPacket"]], "stallheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.STALLHeaderPacket"]], "statusheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.StatusHeaderPacket"]], "superspeedendpointinterface (class in sol_usb.gateware.usb.usb3.protocol.endpoint)": [[45, "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointInterface"]], "superspeedendpointmultiplexer (class in sol_usb.gateware.usb.usb3.protocol.endpoint)": [[45, "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointMultiplexer"]], "timestamppacketreceiver (class in sol_usb.gateware.usb.usb3.protocol.timestamp)": [[45, "sol_usb.gateware.usb.usb3.protocol.timestamp.TimestampPacketReceiver"]], "transactionheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.TransactionHeaderPacket"]], "transactionpacketgenerator (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.TransactionPacketGenerator"]], "transactionpacketreceiver (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.TransactionPacketReceiver"]], "usb3protocollayer (class in sol_usb.gateware.usb.usb3.protocol)": [[45, "sol_usb.gateware.usb.usb3.protocol.USB3ProtocolLayer"]], "usb3protocollayer (class in sol_usb.gateware.usb.usb3.protocol.layer)": [[45, "sol_usb.gateware.usb.usb3.protocol.layer.USB3ProtocolLayer"]], "add_interface() (sol_usb.gateware.usb.usb3.protocol.endpoint.superspeedendpointmultiplexer method)": [[45, "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointMultiplexer.add_interface"]], "sol_usb.gateware.usb.usb3.protocol": [[45, "module-sol_usb.gateware.usb.usb3.protocol"]], "sol_usb.gateware.usb.usb3.protocol.data": [[45, "module-sol_usb.gateware.usb.usb3.protocol.data"]], "sol_usb.gateware.usb.usb3.protocol.endpoint": [[45, "module-sol_usb.gateware.usb.usb3.protocol.endpoint"]], "sol_usb.gateware.usb.usb3.protocol.layer": [[45, "module-sol_usb.gateware.usb.usb3.protocol.layer"]], "sol_usb.gateware.usb.usb3.protocol.link_management": [[45, "module-sol_usb.gateware.usb.usb3.protocol.link_management"]], "sol_usb.gateware.usb.usb3.protocol.timestamp": [[45, "module-sol_usb.gateware.usb.usb3.protocol.timestamp"]], "sol_usb.gateware.usb.usb3.protocol.transaction": [[45, "module-sol_usb.gateware.usb.usb3.protocol.transaction"]], "standardrequesthandler (class in sol_usb.gateware.usb.usb3.request.standard)": [[46, "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler"]], "handle_register_write_request() (sol_usb.gateware.usb.usb3.request.standard.standardrequesthandler method)": [[46, "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler.handle_register_write_request"]], "handle_simple_data_request() (sol_usb.gateware.usb.usb3.request.standard.standardrequesthandler method)": [[46, "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler.handle_simple_data_request"]], "sol_usb.gateware.usb.usb3.request": [[46, "module-sol_usb.gateware.usb.usb3.request"]], "sol_usb.gateware.usb.usb3.request.standard": [[46, "module-sol_usb.gateware.usb.usb3.request.standard"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["changelog", "features", "gateware/index", "gateware/interface/gateware/index", "gateware/interface/gateware/phy", "gateware/interface/gateware/receiver", "gateware/interface/gateware/transmitter", "gateware/interface/index", "gateware/interface/pipe", "gateware/interface/serdes/ecp5", "gateware/interface/serdes/index", "gateware/interface/serdes/lfps", "gateware/interface/serdes/xc7", "gateware/interface/ulpi", "gateware/interface/utmi", "gateware/soc/cpu", "gateware/soc/event", "gateware/soc/index", "gateware/soc/memory", "gateware/soc/peripheral", "gateware/soc/simplesoc", "gateware/soc/uart", "gateware/stream/index", "gateware/usb/analyzer", "gateware/usb/index", "gateware/usb/request", "gateware/usb/stream", "gateware/usb/usb2/control", "gateware/usb/usb2/descriptor", "gateware/usb/usb2/deserializer", "gateware/usb/usb2/device", "gateware/usb/usb2/endpoint", "gateware/usb/usb2/endpoints", "gateware/usb/usb2/index", "gateware/usb/usb2/interfaces", "gateware/usb/usb2/packet", "gateware/usb/usb2/request", "gateware/usb/usb2/reset", "gateware/usb/usb2/transfer", "gateware/usb/usb3/application", "gateware/usb/usb3/device", "gateware/usb/usb3/endpoints", "gateware/usb/usb3/index", "gateware/usb/usb3/link", "gateware/usb/usb3/physical", "gateware/usb/usb3/protocol", "gateware/usb/usb3/request", "getting_started", "hardware/bringup_guide", "hardware/custom", "hardware/index", "index", "install", "intro", "tutorials/index"], "filenames": ["changelog.md", "features.md", "gateware/index.md", "gateware/interface/gateware/index.md", "gateware/interface/gateware/phy.md", "gateware/interface/gateware/receiver.md", "gateware/interface/gateware/transmitter.md", "gateware/interface/index.md", "gateware/interface/pipe.md", "gateware/interface/serdes/ecp5.md", "gateware/interface/serdes/index.md", "gateware/interface/serdes/lfps.md", "gateware/interface/serdes/xc7.md", "gateware/interface/ulpi.md", "gateware/interface/utmi.md", "gateware/soc/cpu.md", "gateware/soc/event.md", "gateware/soc/index.md", "gateware/soc/memory.md", "gateware/soc/peripheral.md", "gateware/soc/simplesoc.md", "gateware/soc/uart.md", "gateware/stream/index.md", "gateware/usb/analyzer.md", "gateware/usb/index.md", "gateware/usb/request.md", "gateware/usb/stream.md", "gateware/usb/usb2/control.md", "gateware/usb/usb2/descriptor.md", "gateware/usb/usb2/deserializer.md", "gateware/usb/usb2/device.md", "gateware/usb/usb2/endpoint.md", "gateware/usb/usb2/endpoints.md", "gateware/usb/usb2/index.md", "gateware/usb/usb2/interfaces.md", "gateware/usb/usb2/packet.md", "gateware/usb/usb2/request.md", "gateware/usb/usb2/reset.md", "gateware/usb/usb2/transfer.md", "gateware/usb/usb3/application.md", "gateware/usb/usb3/device.md", "gateware/usb/usb3/endpoints.md", "gateware/usb/usb3/index.md", "gateware/usb/usb3/link.md", "gateware/usb/usb3/physical.md", "gateware/usb/usb3/protocol.md", "gateware/usb/usb3/request.md", "getting_started.md", "hardware/bringup_guide.md", "hardware/custom.md", "hardware/index.md", "index.md", "install.md", "intro.md", "tutorials/index.md"], "titles": ["Changelog", "Status & Support", "Gateware Library", "Gateware PHY", "Gateware PHY", "Gateware PHY - Receiver", "Gateware PHY - Transmitter", "Interface", "PIPE", "SerDes PHY - ECP5", "SerDes PHY", "SerDes PHY - LFPS", "SerDes PHY - XC7", "ULPI", "UTMI", "CPU", "Event", "SoC", "Memory", "Peripheral", "SimpleSoC", "UART", "Stream", "Analyzer", "USB", "Request", "Stream", "Control", "Descriptor", "Deserializer", "Device", "Endpoint", "Endpoints", "USB2", "Interfaces", "Packet", "Request", "Reset", "Transfer", "Application", "Device", "Endpoints", "USB3", "Link", "Physical", "Protocol", "Request", "Getting Started", "==========================\nSelf-made Hardware Bringup", "SOL On Your Own Hardware", "Hardware", "SOL: USB Gateware Library", "Installation", "Introduction", "Tutorials"], "terms": {"all": [0, 5, 6, 8, 9, 14, 22, 25, 27, 28, 30, 31, 32, 33, 35, 40, 41, 43, 44, 49, 52], "notabl": 0, "thi": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53], "project": [0, 52, 53], "document": [0, 9, 31, 47, 51, 53], "file": [0, 45, 48], "The": [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 52], "format": [0, 33, 48], "i": [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 48, 51, 52, 53], "base": [0, 3, 4, 10, 23, 30, 33, 36, 39, 52, 53], "keep": [0, 6, 25, 26, 30, 32, 43, 44, 45], "adher": 0, "semant": 0, "version": [0, 8, 22, 26, 52], "handler_condit": 0, "usb": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 49, 52, 53], "request": [0, 1, 2, 13, 24, 27, 28, 30, 31, 33, 35, 38, 40, 41, 42, 43, 44, 45], "automat": [0, 8, 27, 30, 31, 32, 33, 38, 41, 44, 45], "construct": 0, "stallonlyrequesthandl": [0, 33, 36, 39], "pcapng": 0, "support": [0, 3, 4, 8, 9, 10, 12, 25, 28, 35, 39, 41, 43, 47], "captur": [0, 22, 23, 25, 35, 43], "applet": [0, 48], "contribut": [0, 1], "md": 0, "dynam": [0, 13, 35], "speed": [0, 1, 3, 4, 5, 11, 13, 26, 30, 31, 32, 33, 35, 36, 37, 44, 53], "select": [0, 3, 4, 9, 13, 26, 37, 43], "analyz": [0, 2, 24], "abil": 0, "from": [0, 1, 3, 4, 5, 8, 13, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 48, 49, 52], "discard": [0, 23, 32, 35, 36, 38, 39, 44], "invalid": [0, 28, 31, 33, 36, 39, 43, 45], "unknown": [0, 35], "data": [0, 2, 3, 4, 5, 6, 8, 9, 13, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 35, 36, 38, 39, 41, 42, 44, 46, 49], "restart": [0, 43], "an": [0, 3, 4, 5, 8, 9, 10, 11, 12, 13, 22, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 39, 40, 43, 44, 45, 48, 49, 52, 53], "rx_invalid": [0, 31, 36, 39, 45], "signal": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 22, 23, 25, 26, 30, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 49], "requesthandlerinterfac": [0, 33, 36, 39], "indic": [0, 3, 4, 5, 6, 8, 13, 22, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 43, 44, 45, 48], "recept": [0, 29, 43], "updat": [0, 13, 25, 32, 35, 43, 46, 48, 52], "rich": [0, 9], "12": [0, 3, 4, 49], "6": [0, 5, 6, 8, 13, 43, 44], "13": [0, 45], "improv": [0, 1], "simplesoc": [0, 2, 17], "bring": [0, 35, 44, 45], "up": [0, 3, 4, 13, 30, 31, 32, 37, 43, 44, 45, 46, 49, 51, 52], "date": [0, 52], "torii": [0, 8, 25, 44, 46, 47, 49, 51, 53], "soc": [0, 2, 18, 53], "lambdasoc": 0, "minimum": [0, 33], "5": [0, 8, 9, 10, 12, 25, 39, 43, 44, 45], "move": [0, 3, 4, 6, 13, 43, 48], "test": [0, 1, 35, 48, 52], "devic": [0, 2, 3, 4, 5, 8, 24, 25, 27, 28, 31, 32, 35, 36, 37, 39, 41, 42, 43, 45, 48, 49, 53], "gatewar": [0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 53], "librari": [0, 1, 33, 53], "variou": [0, 9, 32, 45], "code": [0, 7, 25, 42, 48, 52], "cleanup": 0, "engin": 0, "overflow": [0, 8], "problem": 0, "utmi": [0, 1, 2, 3, 4, 7, 13, 23, 26, 27, 30, 33, 35, 37], "ulpi": [0, 1, 2, 7, 23, 26, 30, 33], "typo": 0, "handl": [0, 8, 13, 25, 27, 28, 31, 33, 35, 36, 37, 39, 41, 43, 44, 45], "primari": 0, "fifo": [0, 35], "issu": [0, 13, 33, 36, 38, 43, 48], "return": [0, 5, 6, 14, 25, 33, 36, 37, 40, 43, 44, 46], "type": [0, 3, 4, 5, 22, 25, 27, 30, 31, 39, 41, 43], "usbpacketid": [0, 33], "byte": [0, 3, 4, 13, 22, 23, 25, 26, 28, 32, 33, 35, 38, 43, 44], "sign": 0, "unsign": 0, "convers": 0, "error": [0, 3, 4, 5, 8, 9, 13, 33, 43], "usb2": [0, 2, 5, 6, 24, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38], "descriptor": [0, 2, 24, 25, 27, 30, 32, 33, 40, 41, 42], "implement": [0, 1, 3, 4, 8, 9, 10, 12, 22, 25, 30, 32, 33, 41, 43, 46, 53], "miss": 0, "shape": 0, "method": [0, 30, 35], "ecp5debugspibridg": 0, "us": [0, 3, 4, 5, 6, 8, 9, 13, 14, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 48, 52, 53], "pin": [0, 13, 33, 49], "object": [0, 13, 22, 25, 30, 33, 40], "thei": [0, 25, 27, 31, 41, 43, 54], "were": 0, "raw": [0, 1, 3, 4, 5, 6, 8, 26, 35, 43, 44, 49], "kwarg": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "toolchain_prepar": 0, "lunaapolloplatform": 0, "preliminari": 0, "annot": 0, "need": [0, 1, 3, 4, 5, 8, 13, 25, 30, 31, 32, 39, 43, 44, 45, 47, 48, 49, 52], "depend": [0, 8, 9, 10, 12, 32, 47, 49, 52], "pure": [0, 3, 4, 25, 46], "git": [0, 48, 52], "url": 0, "allow": [0, 1, 3, 4, 6, 8, 9, 13, 25, 26, 28, 32, 33, 39, 43, 44, 48, 53], "u": [0, 13, 31, 44], "packag": [0, 48, 52], "pypi": [0, 52], "alter": 0, "wai": [0, 37, 48], "wa": [0, 5, 31, 36, 39, 44, 45, 48], "modul": [0, 3, 4, 5, 6, 8, 9, 13, 25, 26, 27, 30, 31, 32, 35, 36, 38, 41, 43, 44, 45], "name": [0, 13, 22, 26, 32, 33, 44, 48, 49], "sol": [0, 1, 23, 26, 30, 31, 33, 40, 47, 48, 53, 54], "sol_usb": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "prevent": [0, 3, 4, 43, 48], "conflict": 0, "some": [0, 8, 11, 22, 44, 48, 49, 53], "fall": [0, 44], "more": [0, 1, 6, 22, 23, 27, 32, 33, 35, 41, 43, 44, 51, 53], "line": [0, 3, 4, 5, 6, 11, 13, 31, 32, 37, 45, 49], "expect": [0, 13, 31, 33, 36, 38, 39, 43, 45], "poetri": 0, "build": [0, 28, 30, 39, 52, 53], "setup": [0, 25, 33, 35, 36, 39, 43, 46], "py": [0, 48], "swap": [0, 25, 26, 43], "out": [0, 1, 6, 11, 22, 25, 26, 32, 33, 35, 38, 39, 43, 44, 51, 53], "tox": 0, "nox": 0, "replac": [0, 43], "old": 0, "amaranth": [0, 51], "hdl": [0, 25], "dep": 0, "python": 0, "protocol": [0, 2, 8, 24, 32, 33, 42, 43, 44], "3rd": 0, "parti": 0, "platform": [0, 8, 25, 49], "definit": [0, 22, 26, 36, 39, 43, 49, 52], "except": [0, 8], "luna": [0, 48, 51], "requir": [0, 5, 8, 11, 25, 31, 33, 37, 43, 44, 45, 46, 49, 52], "txt": 0, "larg": 0, "chunk": [0, 38], "style": [0, 35], "should": [0, 3, 4, 5, 6, 9, 13, 22, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49], "now": [0, 8, 35, 36, 43], "No": [0, 27, 35, 41], "provid": [0, 1, 8, 13, 14, 22, 25, 26, 29, 31, 32, 33, 35, 38, 39, 41, 43, 44, 46, 47, 48, 49, 52, 53], "hold": [0, 25, 28, 37], "over": [0, 8, 35, 44], "demarc": 0, "diverg": 0, "work": [1, 8, 9, 13, 25, 26, 30, 31, 32, 41, 43, 44, 48, 49, 51, 52, 53, 54], "progress": [1, 27, 41, 44, 51, 52, 53], "mani": [1, 5, 31, 32, 44, 45, 48, 49], "its": [1, 23, 30, 31, 33, 35, 36, 37, 39, 43, 44, 45, 47, 48, 52, 53], "featur": [1, 31, 32, 41, 48, 53], "ar": [1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 22, 23, 25, 27, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 48, 49, 52, 54], "usabl": [1, 32, 53], "enough": [1, 5, 6, 23, 43, 44], "inclus": [1, 26], "your": [1, 30, 40, 48, 52, 53], "own": [1, 11, 30, 40, 43, 44, 48, 53], "design": [1, 8, 9, 30, 33, 35, 38, 40, 49, 53], "our": [1, 3, 4, 11, 13, 14, 22, 25, 26, 28, 30, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 49], "feedback": [1, 44], "alwai": [1, 9, 10, 12, 22, 27, 30, 32, 41, 44, 48], "appreci": 1, "commun": [1, 14, 22, 30, 31, 32, 33, 41, 49], "high": [1, 3, 4, 8, 9, 11, 13, 22, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 43, 44, 45, 48, 53], "full": [1, 3, 4, 5, 8, 9, 10, 12, 13, 23, 25, 31, 32, 35, 36, 37, 38, 41, 43, 46, 52, 53], "w": 1, "phy": [1, 2, 7, 8, 13, 22, 23, 30, 37, 43, 44], "complet": [1, 3, 4, 8, 13, 25, 26, 31, 32, 35, 36, 43, 44, 45, 48], "gpio": 1, "resistor": [1, 3, 4, 13, 49], "super": 1, "pipe": [1, 2, 6, 7, 9, 10, 11, 12, 32, 44], "experiment": 1, "serd": [1, 2, 7, 44], "In": [1, 5, 6, 25, 27, 37, 48], "low": [1, 22, 23, 26, 27, 30, 31, 33, 35, 36, 37, 38, 41, 44, 49, 53], "untest": 1, "unsupport": 1, "control": [1, 2, 5, 8, 9, 10, 12, 13, 24, 26, 30, 31, 33, 35, 36, 38, 39, 40, 42, 43, 44, 45, 46, 48, 49], "transfer": [1, 2, 8, 24, 27, 32, 33, 41, 43], "endpoint": [1, 2, 24, 25, 27, 30, 33, 35, 36, 38, 39, 40, 42, 43], "user": [1, 35, 48, 52], "defin": [1, 8, 25, 27, 41], "handler": [1, 25, 27, 30, 36, 39, 40, 41, 46], "cpu": [1, 2, 17, 30], "interfac": [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 22, 23, 24, 26, 27, 30, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 48, 49], "bulk": [1, 32, 41], "IN": [1, 26, 33, 35, 36, 38, 39, 43], "stream": [1, 2, 23, 24, 25, 28, 29, 31, 33, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46], "helper": [1, 7, 52], "interrupt": [1, 22, 32, 41], "plan": [1, 52], "isochron": [1, 33, 45], "analysi": 1, "basic": [1, 30, 43, 47], "partial": 1, "current": [1, 3, 4, 5, 8, 9, 11, 13, 22, 23, 25, 26, 28, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 48, 53, 54], "doe": [1, 8, 25, 28, 30, 39, 43, 44], "ani": [1, 8, 22, 27, 30, 32, 36, 38, 39, 40, 41, 43, 45, 46, 48, 52], "oper": [1, 3, 4, 8, 9, 10, 11, 12, 13, 22, 25, 26, 27, 30, 31, 33, 35, 36, 37, 43, 44], "though": 1, "level": [1, 8, 9, 10, 12, 23, 26, 27, 30, 31, 33, 35, 36, 41, 43, 44, 45, 48], "have": [1, 13, 22, 28, 31, 38, 43, 44, 48, 49, 52], "been": [1, 5, 8, 25, 35, 36, 43, 52], "eventu": 1, "prioriti": [1, 22], "welcom": [1, 53], "pipeinterfac": [2, 7, 8], "asyncpipeinterfac": [2, 7, 8], "gearedpipeinterfac": [2, 7, 8], "uplidatarecord": [2, 7, 13], "uplidirrecord": [2, 7, 13], "ulpiinterfac": [2, 7, 13], "ulpiregisterwindow": [2, 7, 13], "ulpirxeventdecod": [2, 7, 13], "ulpicontroltransl": [2, 7, 13], "ulpitransmittransl": [2, 7, 13], "utmitransl": [2, 7, 13, 23, 35], "utmioperatingmod": [2, 7, 14], "utmiterminationselect": [2, 7, 14], "utmitransmitinterfac": [2, 7, 14, 26, 35, 37], "utmiinterfacemultiplex": [2, 7, 14], "utmiinterfac": [2, 7, 14, 23, 35], "receiv": [2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 22, 23, 24, 25, 26, 29, 30, 31, 32, 35, 36, 38, 39, 42, 44, 45, 46, 48, 49], "transmitt": [2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 22, 24, 25, 38, 42, 44, 45], "gatewarephi": [2, 3, 4, 7], "ecp5": [2, 7, 10], "lfp": [2, 7, 8, 10, 42, 43], "xc7": [2, 7, 10], "ecp5serdespip": [2, 7, 9, 10], "xc7gtpserdespip": [2, 7, 10, 12], "xc7gtxserdespip": [2, 7, 10, 12], "event": [2, 13, 17, 30, 33, 35, 43], "memori": [2, 17, 25, 32], "wishboneram": [2, 17, 18], "wishbonerom": [2, 17, 18], "peripher": [2, 17, 53], "uart": [2, 17], "streaminterfac": [2, 22, 23, 26, 32, 38, 39, 43, 46], "stream_eq": [2, 22, 26, 43], "tap": [2, 22], "arbit": 2, "streammultiplex": [2, 22], "streamarbit": [2, 22, 26], "gener": [2, 6, 8, 11, 24, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 39, 41, 43, 44, 45, 53], "constantstreamgener": [2, 22], "streamseri": [2, 22], "usbanalyz": [2, 23, 24], "standard": [2, 8, 9, 10, 12, 13, 14, 22, 24, 26, 27, 30, 40, 41, 42, 44], "window": [2, 13, 24, 33, 35, 52], "usbinstreaminterfac": [2, 24, 25, 26, 28, 31, 35, 38], "usboutstreaminterfac": [2, 24, 26, 31], "usboutstreamboundarydetector": [2, 24, 26], "usbrawsuperspeedstream": [2, 24, 26, 43, 44], "superspeedstreamarbit": [2, 24, 26], "superspeedstreaminterfac": [2, 24, 26, 39, 41, 43, 45], "deseri": [2, 24, 33, 35], "packet": [2, 3, 4, 5, 13, 22, 23, 24, 25, 26, 31, 32, 36, 38, 39, 41, 43, 45], "reset": [2, 5, 8, 9, 13, 24, 30, 35, 38, 43, 44, 49], "conceptu": [2, 24, 31], "compon": [2, 6, 24, 25, 27, 36, 38, 41], "token": [2, 24, 27, 31, 35, 36, 38, 39, 45], "detector": [2, 11, 24, 31, 35, 36, 38, 43], "handshak": [2, 3, 4, 22, 24, 25, 28, 31, 35, 36, 37, 38, 39, 43, 45], "state": [2, 3, 4, 5, 6, 8, 11, 13, 24, 25, 30, 37, 38, 43, 44, 46, 53], "manag": [2, 8, 9, 10, 12, 24, 26, 27, 38, 41, 42, 43, 48], "crc": [2, 24, 27, 31, 35, 36, 39, 42, 45], "unit": [2, 9, 24, 31, 35, 43, 44], "interpacket": [2, 24, 31, 35, 36], "timer": [2, 24, 27, 31, 35, 36, 42], "suspend": [2, 13, 24, 30, 37], "sequenc": [2, 5, 6, 8, 9, 24, 38, 43, 44, 45], "usb3": [2, 8, 9, 10, 24, 25, 26, 39, 40, 41, 43, 44, 45, 46], "applic": [2, 24, 31, 33, 42], "link": [2, 8, 9, 10, 12, 24, 32, 41, 42, 44, 48], "physic": [2, 24, 42, 43], "rxclockdatarecoveri": [3, 5], "rxnrzidecod": [3, 5], "rxpacketdetect": [3, 5], "rxbitstuffremov": [3, 5], "rxshifter": [3, 5], "txshifter": [3, 6], "txnrziencod": [3, 6], "txbitstuff": [3, 6], "compat": [3, 4, 48], "class": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "gateware_phi": [3, 4, 5, 6], "arg": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "src_loc_at": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "int": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46], "0": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 48, 49, 52], "transceiv": [3, 4, 12, 13, 14, 27, 33, 36, 41, 44], "fpga": [3, 4, 5, 23, 33, 47, 48, 53], "o": [3, 4, 8, 11, 13, 14, 22, 25, 28, 29, 30, 36, 39, 43], "mhz": [3, 4, 9, 10, 12, 49], "which": [3, 4, 8, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 41, 43, 44, 46, 48, 49, 51, 52], "match": [3, 4, 32, 33, 41, 43, 44, 48], "each": [3, 4, 9, 13, 25, 28, 30, 31, 32, 33, 35, 39, 43, 44, 52], "below": [3, 4, 9, 10, 12, 49], "phase": [3, 4, 8, 25, 26, 36], "relat": [3, 4, 43, 45], "48mhz": [3, 4, 5, 6], "e": [3, 4, 8, 25, 27, 32, 39, 43, 46, 48], "g": [3, 4, 25, 32, 39, 43, 46], "divid": [3, 4], "down": [3, 4, 13, 36, 37, 39, 43, 48], "avoid": [3, 4, 13, 25], "explicit": [3, 4, 44], "synchron": [3, 4, 5, 8, 32, 44], "cross": [3, 4], "usb_io": [3, 4, 49], "core": [3, 4, 9, 10, 12, 22, 23, 26, 27, 30, 31, 32, 33, 38, 40, 41, 44, 49], "recoveri": [3, 4, 5, 43, 48, 49], "sampl": [3, 4, 5], "perform": [3, 4, 8, 13, 22, 27, 31, 33, 35, 36, 39, 41, 43, 44, 45, 49], "must": [3, 4, 8, 9, 10, 13, 23, 26, 27, 30, 32, 35, 39, 41, 45, 46, 49, 52], "ivar": [3, 4], "tx_data": [3, 4, 8, 13, 26, 35], "transmit": [3, 4, 6, 8, 9, 10, 12, 13, 14, 22, 25, 26, 28, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46], "valid": [3, 4, 5, 6, 8, 13, 22, 25, 26, 31, 33, 35, 39, 43, 44, 45, 46, 48], "when": [3, 4, 5, 6, 9, 13, 22, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 49], "tx_valid": [3, 4, 13, 26, 35], "assert": [3, 4, 5, 6, 8, 9, 13, 22, 23, 30, 32, 35, 37, 43, 44, 45, 49], "vartyp": [3, 4], "8": [3, 4, 5, 6, 8, 13, 22, 25, 26, 31, 32, 35, 36, 39, 45, 49], "input": [3, 4, 8, 9, 10, 11, 12, 13, 22, 25, 26, 30, 31, 32, 35, 36, 37, 38, 39, 41, 43, 44, 45, 49], "data_in": [3, 4, 13], "de": [3, 4, 5, 8, 9, 10, 12, 13, 22, 37, 43], "termin": [3, 4, 8, 13, 26, 33, 37, 43], "transmiss": [3, 4, 6, 13, 22, 26, 31, 36, 39, 43, 45], "tx_readi": [3, 4, 13, 26], "readi": [3, 4, 5, 13, 22, 26, 31, 35, 36, 39, 43, 44, 45, 48], "accept": [3, 4, 6, 13, 22, 25, 26, 32, 33, 35, 38, 43, 44, 45], "new": [3, 4, 13, 22, 25, 30, 35, 38, 39, 43, 44, 45, 46, 52, 53], "next": [3, 4, 13, 22, 25, 26, 28, 32, 43, 45, 48, 49, 52], "after": [3, 4, 5, 6, 8, 13, 26, 31, 35, 36, 39, 43, 44], "given": [3, 4, 5, 8, 11, 13, 25, 31, 33, 35, 43, 44, 46], "cycl": [3, 4, 6, 8, 13, 25, 30, 32, 35, 37, 39, 43, 44], "output": [3, 4, 8, 9, 10, 11, 12, 13, 14, 22, 23, 25, 26, 29, 30, 31, 32, 35, 36, 37, 38, 39, 43, 44, 45, 49], "rx_data": [3, 4, 8, 13, 26, 35], "rx_valid": [3, 4, 8, 13, 26, 35], "present": [3, 4, 5, 8, 9, 11, 13, 14, 22, 26, 29, 32, 35, 37, 43, 48, 49], "goe": [3, 4, 13, 35, 43], "singl": [3, 4, 8, 13, 14, 22, 31, 32, 35, 36, 38, 39, 41, 43], "rx_activ": [3, 4, 13, 26], "activ": [3, 4, 8, 13, 14, 22, 30, 31, 35, 36, 38, 39, 45, 49], "host": [3, 4, 13, 25, 30, 31, 32, 33, 35, 36, 38, 41, 43, 45], "onli": [3, 4, 6, 8, 9, 10, 11, 12, 14, 22, 25, 27, 29, 31, 35, 36, 38, 39, 43, 44, 45, 48, 49, 52], "attr": [3, 4, 22, 23, 26, 32, 39, 43, 44, 49], "rx_error": [3, 4, 13], "ha": [3, 4, 5, 8, 13, 14, 22, 23, 25, 28, 30, 31, 35, 36, 43, 44, 52], "occur": [3, 4, 5, 9, 13, 23, 43], "rx_complet": [3, 4, 13, 31, 36, 39, 45], "strobe": [3, 4, 9, 13, 22, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 43, 44, 45], "one": [3, 4, 5, 8, 9, 10, 13, 14, 22, 23, 27, 30, 31, 32, 35, 36, 37, 39, 41, 44, 45, 48], "rx": [3, 4, 5, 9, 11, 13, 30, 31, 35, 36, 39, 43, 44, 45], "line_st": [3, 4, 13, 37], "2": [3, 4, 8, 9, 10, 12, 13, 23, 25, 28, 31, 33, 35, 36, 37, 38, 43, 44, 48], "d": [3, 4, 13, 14, 25, 37, 44, 46, 49], "specif": [3, 4, 8, 13, 25, 33, 43, 44], "valu": [3, 4, 5, 6, 8, 9, 13, 25, 28, 31, 32, 33, 35, 36, 37, 38, 39, 40, 43, 44, 46], "where": [3, 4, 8, 32, 33, 38, 43, 44], "se0": [3, 4, 5, 6], "1": [3, 4, 5, 6, 8, 9, 13, 22, 25, 26, 31, 35, 36, 37, 39, 43, 44, 45, 46, 48, 49], "k": [3, 4, 5, 44], "j": [3, 4, 5, 48], "vbus_valid": [3, 4, 13, 49], "vbu": [3, 4, 8, 13, 37, 49], "iff": [3, 4, 13, 23, 30, 33, 35, 44], "paramet": [3, 4, 5, 6, 8, 13, 22, 23, 25, 26, 27, 29, 30, 32, 33, 35, 38, 39, 40, 41, 43, 44, 46], "contain": [3, 4, 25, 28, 30, 31, 32, 33, 35, 36, 38, 39, 40, 43, 44, 45, 46], "element": [3, 4], "otherwis": [3, 4, 6, 8, 35, 52], "hard": [3, 4], "connect": [3, 4, 8, 9, 10, 12, 13, 14, 18, 22, 26, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 45, 48, 49], "session_end": [3, 4, 13], "xcvr_select": [3, 4, 13, 33], "function": [3, 4, 25, 30, 40, 44, 48, 53], "so": [3, 4, 5, 8, 9, 22, 26, 27, 35, 38, 41, 43, 44], "effect": [3, 4, 8], "ignor": [3, 4, 27, 38, 39, 43, 45], "To": [3, 4, 25, 30, 31, 44, 52], "being": [3, 4, 13, 22, 23, 25, 29, 32, 33, 35, 38, 45, 53], "driven": [3, 4, 8, 13, 39], "0b00": [3, 4], "attempt": [3, 4, 8, 9, 30, 31, 33], "detect": [3, 4, 5, 8, 9, 10, 11, 12, 26, 30, 31, 33, 35, 36, 37, 38, 43, 44, 45, 48, 49], "without": [3, 4, 27, 32, 35, 41, 44, 48], "advers": [3, 4], "affect": [3, 4, 8, 44, 52], "term_select": [3, 4, 13], "": [3, 4, 5, 6, 8, 9, 10, 12, 13, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 36, 37, 39, 41, 43, 44, 45, 48, 49, 52], "pull": [3, 4, 13, 37, 48, 49, 52], "op_mod": [3, 4, 13], "mode": [3, 4, 8, 9, 10, 12, 13, 14, 35, 37, 44, 48], "A": [3, 4, 5, 6, 14, 22, 25, 31, 33, 37, 39, 43, 44, 48], "caus": [3, 4, 5, 6, 32, 48], "normal": [3, 4, 5, 8, 13, 43], "disabl": [3, 4, 13, 37], "bit": [3, 4, 5, 6, 8, 9, 13, 14, 22, 25, 26, 32, 37, 43, 44], "stuf": [3, 4, 5, 6, 37], "dm_pulldown": [3, 4, 13], "pulldown": [3, 4], "param": [3, 4, 5], "io": [3, 4, 5, 49], "record": [3, 4, 13, 22, 25, 35, 36, 39, 43], "drive": [3, 4, 6, 9, 10, 12, 13, 30, 31, 32, 36, 37, 39, 44, 45, 46, 49], "d_p": [3, 4, 49], "d_n": [3, 4, 49], "mandatori": [3, 4, 39], "pullup": [3, 4, 49], "option": [3, 4, 8, 13, 22, 25, 26, 27, 30, 32, 33, 38, 41, 43, 44, 48, 49], "differenti": [5, 26, 43], "pair": [5, 43, 44], "glitch": 5, "recov": [5, 6], "incom": [5, 6, 25, 31, 33, 36, 38], "usb_48": [5, 6], "pass": [5, 6, 27, 30, 31, 35, 36, 39, 43, 44, 45], "via": [5, 6, 9, 27, 32, 33, 35, 41, 48, 52], "constructor": [5, 6], "usbp_raw": 5, "usbn_raw": 5, "member": [5, 6], "flop": [5, 6], "line_state_dj": 5, "dk": [5, 6], "se1": 5, "hot": 5, "encod": [5, 6, 9, 43, 44, 49], "line_state_valid": 5, "repres": [5, 13, 33, 36, 38, 39, 43], "qualifi": [5, 6], "line_state_dk": 5, "line_state_se0": 5, "line_state_se1": 5, "nrzi": [5, 6, 13, 37, 49], "decod": [5, 6, 8, 39], "order": [5, 6, 9, 26, 32, 42, 44, 48], "ensur": [5, 6, 9, 31, 33, 43, 44, 48, 52], "transit": [5, 6, 44], "process": [5, 6, 13, 26, 44], "dj": [5, 6], "them": [5, 6, 13, 33, 35, 43, 44, 45], "It": [5, 6, 25, 35, 43, 44, 51, 52], "also": [5, 6, 27, 41, 43, 47, 52], "pipelin": [5, 6], "through": [5, 6, 9, 10, 11, 12, 44, 48], "unmodifi": [5, 6], "http": [5, 6, 48, 52], "www": [5, 6, 48], "pjrc": [5, 6], "com": [5, 6, 44, 48, 52], "teensi": [5, 6], "beta": [5, 6], "usb20": [5, 6], "pdf": [5, 6], "spec": [5, 6, 13, 25, 30, 35, 44], "7": [5, 6, 8, 12, 31, 35, 36, 39, 43, 45], "en": [5, 6], "wikipedia": [5, 6], "org": [5, 6, 48, 52], "wiki": [5, 6], "non": [5, 6, 8, 13, 22, 30, 31, 45], "zero": [5, 6, 8, 27, 32, 35, 36, 38, 41, 43, 45], "i_valid": [5, 6], "i_dj": 5, "bu": [5, 8, 13, 14, 27, 30, 33, 35, 37, 43, 45, 49, 53], "i_dk": 5, "i_se0": [5, 6], "o_valid": [5, 6], "o_data": [5, 6], "o_se0": 5, "begin": [5, 25, 43, 44], "follow": [5, 8, 25, 26, 35, 43, 48, 49, 52], "kjkjkjkk": 5, "correspond": 5, "00000001": 5, "idl": [5, 8, 13, 22, 23, 25, 42, 44, 48], "condit": [5, 25, 43, 44, 46], "jjjjjjjj": 5, "translat": [5, 13, 26, 27, 33], "seri": [5, 12], "sinc": [5, 35, 43], "inform": [5, 9, 25, 35, 36, 44, 51], "easi": [5, 48, 49], "look": [5, 14, 23, 48, 49], "end": [5, 13, 25, 32, 35, 38, 39, 41, 43, 48], "even": [5, 44], "easier": 5, "two": [5, 8, 13, 26, 31, 32, 33, 43, 44, 48, 53], "we": [5, 9, 11, 13, 22, 25, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 41, 43, 44, 48], "can": [5, 6, 8, 9, 11, 14, 22, 23, 26, 27, 30, 31, 32, 33, 35, 38, 39, 40, 41, 43, 44, 48, 49, 52, 53], "just": [5, 13], "first": [5, 8, 22, 25, 26, 28, 35, 38, 43, 44, 48, 52], "parallel": [5, 6, 35], "bitstuff": [5, 6], "remov": [5, 8, 31, 44, 45], "10": [5, 13, 43], "i_data": [5, 6], "o_pkt_start": 5, "last": [5, 13, 22, 26, 32, 35, 38, 41, 43, 44], "sync": [5, 22, 44], "o_pkt_act": 5, "while": [5, 25, 31, 32, 33, 37, 41, 44, 53], "middl": 5, "o_pkt_end": 5, "long": [5, 6, 38, 43], "would": [5, 6, 8, 9, 32, 38, 41, 44, 48], "lose": [5, 6], "lock": [5, 6, 8, 48], "solv": [5, 6, 22], "bitstuf": [5, 6], "everi": [5, 6, 26, 31, 38, 44], "consecut": [5, 6, 43], "extra": [5, 13, 22], "higher": [5, 22], "layer": [5, 9, 39, 42], "9": [5, 6, 52], "bit_stuf": [5, 6], "o_stal": [5, 6], "stuffer": 5, "avail": [5, 32, 43, 45], "o_error": 5, "instead": [5, 8, 25, 26, 28, 39, 46], "addit": [5, 8, 27, 41, 43, 44], "dure": [5, 9, 13, 32, 39, 44], "never": [5, 22], "happen": [5, 44], "within": [5, 43, 46], "shifter": [5, 6], "respons": [5, 6, 8, 25, 28, 30, 31, 33, 36, 39, 44, 45], "shift": [5, 6, 9, 35, 43, 44], "serial": [5, 6, 8, 22, 43, 44, 48], "know": [5, 33, 35, 43], "how": [5, 27, 32, 41, 49, 51], "12mhz": [5, 49], "width": [5, 6, 8, 9, 10, 12, 22, 32, 49], "number": [5, 13, 25, 26, 27, 30, 31, 32, 33, 35, 36, 39, 41, 43, 45, 48], "o_put": 5, "onc": [5, 13, 14, 22, 25, 32, 39, 43, 45, 48], "regist": [5, 9, 13, 25, 35, 43, 44, 46], "i_en": 6, "stall": [6, 25, 28, 33, 35, 36, 39, 46], "o_empti": 6, "befor": [6, 44, 47, 48], "load": [6, 48], "o_get": 6, "oe": 6, "i_o": 6, "overrid": 6, "o_usbp": 6, "o_usbn": 6, "o_o": 6, "tx": [6, 25, 28, 30, 31, 35, 36, 37, 39, 43, 44, 45], "insert": [6, 32, 41, 44], "delai": [6, 26, 31, 33, 35, 36, 37], "therefor": 6, "bit_strob": 6, "forward": 6, "usb_12": 6, "appli": [6, 22, 25, 31, 36, 39, 43, 45, 46], "backpressur": [6, 22], "hardwar": [8, 13, 14, 27, 30, 31, 33, 40, 41, 43, 44, 45, 52], "pci": 8, "express": [8, 45], "3": [8, 9, 30, 31, 35, 43, 44, 48, 49, 52], "compliant": [8, 37, 44], "For": [8, 25, 27, 32, 38, 41, 43, 46, 51, 52], "architectur": [8, 31, 33, 52], "unless": 8, "note": [8, 9, 25, 31, 35, 43, 44, 48], "descript": [8, 25, 44, 49], "take": [8, 9], "preced": 8, "ones": 8, "here": [8, 43], "direct": [8, 13, 22, 30, 33, 35, 43, 45, 49], "perspect": 8, "describ": [8, 9, 10, 12, 25], "mac": [8, 52], "symbol": [8, 9, 10, 12, 43, 44], "port": [8, 13, 14, 22, 28, 29, 32, 35, 36, 39], "asynchron": [8, 32], "clk": [8, 9, 10, 12, 30, 49], "refer": [8, 9, 10, 12, 31], "clock": [8, 9, 10, 12, 13, 22, 30, 32, 39, 43, 44, 49], "frequenc": [8, 9, 10, 12, 43, 44, 49], "jitter": 8, "relationship": 8, "other": [8, 11, 25, 26, 30, 32, 33, 35, 43, 44, 52], "specifi": [8, 14, 22, 25, 28, 32, 33, 35, 48], "pclk": [8, 9, 10, 12], "rise": 8, "edg": [8, 13, 22, 49, 52], "deriv": 8, "spread": 8, "spectrum": 8, "phy_mod": [8, 9, 10, 12], "rate": [8, 9, 10, 12, 33, 44], "combin": [8, 53], "tx_datak": 8, "15": 8, "second": [8, 32, 41, 43], "rx_datak": 8, "superspe": [8, 9, 10, 12, 26, 39, 44], "chang": [8, 9, 13, 30, 31, 33, 36, 39, 45, 52], "elas_buf_mod": [8, 9, 10, 12], "elast": [8, 9, 10, 12, 44], "buffer": [8, 9, 10, 11, 12, 23, 32, 38, 41, 43, 44], "nomin": [8, 9, 10, 12, 44], "half": [8, 9, 10, 12, 31, 45], "empti": 8, "gt": [8, 9, 10, 12], "whether": [8, 33, 37], "acknowledg": [8, 25, 33, 43, 46], "phy_statu": [8, 44], "power_down": [8, 9, 10, 12], "power": [8, 9, 10, 12, 23, 30, 37, 42, 43, 49], "per": [8, 32, 44], "run": [8, 25, 35, 43, 44, 48, 49, 51, 52], "deassert": 8, "tx_deemph": [8, 9, 10, 12], "emphasi": [8, 9, 10, 12], "db": 8, "tx_margin": [8, 9, 10, 12], "voltag": [8, 9, 10, 12, 13], "mean": [8, 9, 14, 25, 26], "tx_swing": [8, 9, 10, 12], "swing": [8, 9, 10, 12], "tx_detrx_lpbk": [8, 9, 10, 12], "tx_elec_idl": [8, 9, 10, 12], "loop": 8, "back": [8, 23], "go": 8, "electr": [8, 44], "beacon": 8, "These": [8, 9, 10, 12, 27, 32, 35, 41, 43, 52], "until": [8, 9, 28, 35, 38, 39, 43], "tx_complianc": [8, 9, 10, 12], "If": [8, 13, 22, 23, 25, 26, 27, 30, 32, 35, 37, 38, 39, 41, 43, 45, 46, 48, 49], "set": [8, 9, 13, 22, 25, 27, 29, 31, 37, 38, 39, 42, 44, 45, 46, 48, 49, 53], "dispar": 8, "neg": 8, "tx_ones_zero": [8, 9, 10, 12], "altern": 8, "50": 8, "250": [8, 9, 10, 12], "rx_polar": 8, "invert": [8, 43, 49], "rx_eq_train": [8, 9, 10], "bypass": 8, "equal": [8, 9], "train": [8, 9, 43], "rx_termin": 8, "statu": [8, 25, 33, 36, 39, 43, 44], "rx_statu": [8, 44], "four": [8, 44], "possibl": [8, 11, 31, 32, 38], "8b10b": [8, 9, 44], "underflow": 8, "part": [8, 25, 33, 39, 43], "rx_elec_idl": 8, "power_pres": [8, 9, 10, 12], "between": [8, 25, 26, 27, 31, 35, 36, 39, 41, 44, 45], "domain": [8, 11, 22, 26, 30, 32, 39, 43, 44, 49], "typic": [8, 14, 22, 32, 38, 39, 43, 49], "exhaust": 8, "list": [8, 14, 22, 25, 26, 35, 48], "reason": 8, "p2": 8, "p3": 8, "faster": [8, 44], "than": [8, 23, 32, 35, 38, 43, 44], "maximum": [8, 22, 25, 28, 29, 32, 33, 35, 38, 39, 41], "switch": [8, 22, 25, 33], "interfer": 8, "etc": 8, "gear": [8, 26], "adapt": [8, 9, 10, 12, 22, 33, 48], "capabl": [8, 11, 13, 31, 43, 48, 53], "With": [8, 52], "ss": [8, 26, 43], "default": [8, 13, 22, 23, 26, 27, 29, 32, 35, 37, 39, 41, 43, 44], "deepest": 8, "post": [8, 13, 31, 36, 39, 43, 44, 45], "public": 8, "ident": [8, 26], "32": [8, 25, 43, 44], "wide": 8, "rather": [8, 23, 44], "16": [8, 25, 28, 33, 35, 39, 43, 44], "4": [8, 9, 25, 26, 28, 35, 43, 44, 45], "arrai": [8, 22, 29, 44], "125mhz": 8, "pipe_io": 8, "network": 8, "configur": [8, 13, 25, 28, 30, 31, 32, 33, 36, 39, 43, 45, 48, 49], "recommend": [8, 52], "resourc": [8, 31, 45, 49], "handle_clock": [8, 30], "boolean": [8, 25], "true": [8, 13, 25, 27, 30, 33, 35, 36, 38, 43, 44, 46], "you": [8, 23, 30, 47, 48, 49, 52, 53], "clocksign": 8, "tx_clk": 8, "ti": [8, 32, 41], "soft": [9, 12], "backend": [9, 12], "lattic": 9, "serdes_phi": [9, 10, 11, 12], "ecp5serdesconfiginterfac": [9, 10], "client": 9, "sci": 9, "ecp5serdesregistertransl": [9, 10], "convert": [9, 13, 35, 38, 44], "read": [9, 13, 22, 23, 25, 27, 29, 30, 32, 33, 35, 37, 39, 43, 44], "write": [9, 13], "ecp5serdesequalizerinterfac": [9, 10], "ownership": 9, "runtim": 9, "variabl": [9, 11, 22, 23, 25, 26, 27, 30, 31, 32, 35, 37, 38, 39, 41, 43, 44, 45, 48], "enable_equ": 9, "enabl": [9, 13, 38, 43, 44, 49], "equalizer_pol": 9, "pole": 9, "ostensibli": 9, "knee": 9, "linear": [9, 44], "equalizer_level": 9, "gain": 9, "6db": 9, "9db": 9, "12db": 9, "undocu": 9, "mark": 9, "manual": [9, 38], "anywai": 9, "ecp5serdesequ": [9, 10], "ideal": 9, "analog": 9, "howev": [9, 44, 52, 54], "re": [9, 13, 22, 23, 25, 31, 35, 36, 37, 43, 44, 45, 48, 52], "best": [9, 48], "simulacrum": 9, "built": [9, 48, 52, 53], "ll": [9, 22, 23, 27, 31, 32, 35, 36, 39, 41, 43, 48, 49], "do": [9, 26, 43, 48], "measur": 9, "try": [9, 13, 48], "ve": [9, 32, 43, 48], "minim": 9, "train_equ": 9, "held": [9, 25, 26, 30, 37, 38, 44], "spectral": 9, "encoding_error_detect": 9, "time": [9, 13, 22, 26, 30, 31, 32, 33, 35, 36, 38, 39, 43, 44, 45, 52, 53], "encount": 9, "ecp5serdesresetsequenc": [9, 10], "pll": 9, "cdr": 9, "pc": 9, "start": [9, 22, 25, 28, 29, 32, 33, 35, 38, 39, 43, 44, 48, 51], "correctli": [9, 26, 33, 44], "ecp5serd": [9, 10], "abstract": [9, 31, 43, 44, 45], "wrapper": [9, 10, 12], "around": [9, 10, 12], "behavior": [9, 10, 12, 25], "could": [9, 10, 12], "rout": [9, 10, 12, 31, 43], "fabric": [9, 10, 11, 12], "extrefb": [9, 10], "block": [9, 10, 11, 12, 23, 25], "200": [9, 10], "312": [9, 10], "p0": [9, 10, 12], "tbd": [9, 10, 12], "loopback": [9, 10, 12], "extern": [9, 10, 12, 27], "logic": [9, 10, 12, 13, 33, 43, 44, 45, 49], "mai": [9, 10, 12, 22, 30, 31, 32, 48, 52], "necessari": [9, 10, 12, 13, 30, 33, 35, 36, 44], "lfpssquarewavedetector": [10, 11], "lfpssquarewavegener": [10, 11], "gtp": [10, 12], "ibufds_gte2": [10, 12], "gtx": [10, 12], "recogn": [11, 48], "squar": [11, 44], "wave": [11, 44], "pattern": [11, 44], "differ": [11, 44], "band": [11, 44], "make": [11, 26, 43, 48], "access": [11, 25, 31, 45, 52], "directli": [11, 25, 30, 32, 35, 37, 44, 52], "fit": [11, 46], "bare": 11, "vice": 11, "versa": 11, "identifi": [11, 26, 33, 35, 43, 44], "rx_gpio": 11, "retriev": [11, 25], "whenev": [11, 32, 43, 44, 49], "toggl": [11, 31, 35], "xilinx": 12, "xc7_gtp": 12, "xc7_gtx": 12, "layout": [13, 22, 43], "str": [13, 22, 26, 32], "none": [13, 22, 26, 27, 48], "field": [13, 22, 25, 28, 31, 35, 36, 39, 43, 45], "ulpi_data_in": 13, "ulpi_data_out": 13, "ulpi_out_en": 13, "busi": 13, "transact": [13, 22, 33, 36, 42], "address": [13, 25, 28, 31, 32, 33, 35, 36, 38, 39, 41, 43, 45, 48], "done": [13, 22, 29, 43, 45, 52], "read_request": 13, "read_data": 13, "relev": [13, 25, 26, 31, 33, 35, 38, 39, 43, 44, 45, 46, 48], "write_request": 13, "write_data": 13, "written": [13, 47], "simpl": [13, 18, 22, 30, 32, 33, 36, 39, 41, 43, 44, 53], "piec": [13, 22, 25, 30, 40, 46], "track": [13, 25, 35, 43, 44], "ulpi_dir": 13, "ulpi_nxt": 13, "throttl": 13, "register_operation_in_progress": 13, "last_rx_command": 13, "rxcmd": 13, "receipt": [13, 26, 36, 39], "host_disconnect": 13, "disconnect": [13, 30], "id_digit": 13, "digit": 13, "id": [13, 25, 33, 35], "session": 13, "rx_start": 13, "rxevent": 13, "rxactiv": 13, "rx_stop": 13, "equival": [13, 22, 27, 35, 38, 43, 46], "bus_idl": 13, "thu": [13, 22, 25, 30, 33, 35, 37, 38, 39, 43, 44, 48, 49], "transciev": [13, 33], "00": 13, "h": [13, 30, 37], "01": 13, "f": [13, 37], "l": [13, 37], "11": [13, 25, 30, 35, 43], "see": [13, 22, 30, 35, 36, 39, 43, 44, 47, 48, 49, 51], "stuff": 13, "place": [13, 25, 43], "id_pullup": 13, "100kr": 13, "dp_pulldown": 13, "15kr": 13, "intend": [13, 14, 31, 32, 33, 43, 44, 48], "chrg_vbu": 13, "gnd": 13, "discharg": 13, "dischrg_vbu": 13, "3v3": [13, 49], "charg": 13, "abov": [13, 25, 43], "sessvalid": 13, "add_composite_regist": 13, "m": [13, 14, 25, 31, 46], "reset_valu": 13, "add": [13, 22, 27, 30, 31, 35, 36, 39, 40, 41, 43, 44, 45, 52], "compos": 13, "multipl": [13, 28, 31, 32, 35, 36, 39, 43, 45], "space": [13, 32], "assum": [13, 14, 22, 35, 43, 44], "initi": [13, 22, 29, 35, 43, 44], "populate_ulpi_regist": 13, "creat": [13, 27, 30, 33, 35, 40, 41, 43, 53], "map": [13, 26], "determin": [13, 25, 28, 37, 39], "nopid": 13, "command": [13, 42, 44, 48, 52], "forc": [13, 37, 43], "abl": [13, 44, 49], "onto": [13, 14, 22, 37, 52], "ulpi_out_req": 13, "nxt": [13, 49], "ulpi_stp": 13, "stp": [13, 49], "simpler": 13, "most": [13, 25, 35, 36, 39, 48, 49, 52], "slew": 13, "diagnost": 13, "last_rxcmd": 13, "content": [13, 23, 25, 28, 35, 39], "recent": [13, 25, 35, 36, 39], "manual_read": 13, "trigger": [13, 25, 30, 35, 43, 45], "manual_writ": 13, "add_extra_regist": 13, "write_address": 13, "write_valu": 13, "default_valu": 13, "vendor": [13, 25], "target": [13, 25, 48, 49, 53], "integ": [13, 22, 33], "constant": [13, 22, 28, 33, 35, 43, 44], "upon": 13, "startup": [13, 44], "enumer": [14, 25, 31, 33, 35, 36, 46], "termselect": 14, "attach": [14, 18, 30, 35, 43, 48], "utmi_bu": 14, "fragment": 14, "usag": 14, "might": [14, 37, 48, 49, 52], "like": [14, 22, 31, 32, 37, 39, 48, 49, 52], "comb": 14, "interface_object": 14, "merg": [14, 22, 43], "collect": [14, 22, 25, 41, 43, 53], "buss": [14, 22], "togeth": [14, 22, 31], "mostli": [14, 35], "simul": 14, "aid": 14, "wishbon": [18, 30, 53], "ram": [18, 23, 25], "rom": [18, 25, 28], "payload_width": [22, 26], "valid_width": [22, 26], "extra_field": [22, 26], "unidirect": 22, "similar": 22, "litex": 22, "instanc": [22, 25, 31, 33], "optim": [22, 26], "interact": [22, 48], "accordingli": [22, 25, 31, 43], "restrict": [22, 26, 35], "subclass": [22, 30, 39], "origin": [22, 52], "payload": [22, 26, 32, 33, 35, 43], "put": [22, 44, 52], "tupl": [22, 25], "flat": 22, "nest": 22, "cannot": [22, 35, 39, 43, 48], "omit": [22, 26, 49], "hopefulli": 22, "clear": [22, 25, 31, 43, 44], "clearli": 22, "data_flow": 22, "either": [22, 25, 35, 37, 39, 44], "common": [22, 30, 31, 33, 40, 53], "footgun": 22, "introduc": 22, "tap_readi": 22, "fals": [22, 26, 33, 35, 44], "extens": 22, "view": [22, 44], "multiplex": [22, 31, 35, 36, 39, 45], "variant": [22, 23, 26, 32, 33], "schedul": 22, "add_input": 22, "input_interfac": 22, "burst": [22, 38, 41, 43, 44], "drop": [22, 37], "sourc": [22, 43, 44, 48, 53], "stream_typ": [22, 39], "add_stream": 22, "ad": [22, 30, 31, 35, 36, 39, 40, 43, 44, 45, 52], "puls": [22, 25, 28, 29, 30, 31, 32, 35, 36, 37, 39, 43, 45, 46], "finish": [22, 29], "start_posit": [22, 28], "rang": [22, 32, 35, 39, 43, 45], "len": 22, "posit": [22, 25, 28, 44], "max_length": 22, "max_length_width": 22, "length": [22, 25, 29, 32, 35, 36, 38, 39, 41, 43, 45, 46], "sent": [22, 32, 33, 35, 38, 39, 41, 43], "creation": [22, 29], "output_length": 22, "actual": [22, 39, 43, 44, 45], "Will": 22, "lesser": 22, "constant_data": 22, "iter": [22, 25], "data_width": 22, "divis": 22, "string": [22, 28, 33, 39], "belong": [22, 26, 33, 39], "taken": 22, "limit": [22, 33], "total": [22, 32], "data_endian": 22, "littl": [22, 32, 43, 44, 45], "greater": 22, "short": [22, 29, 32, 38, 41, 46], "data_length": [22, 43], "argument": [22, 25, 29], "small": 23, "ringbuff": 23, "instanti": [23, 30], "probabl": 23, "want": [23, 30, 39, 48, 52], "grab": 23, "dram": 23, "forthcom": 23, "conveni": [23, 26, 27, 41], "carri": [23, 26, 31, 32, 35, 36, 38, 39, 41, 43, 45], "stop": [23, 49], "overrun": 23, "store": [23, 32, 33, 41], "intern": [23, 27, 35], "quickli": 23, "utmi_interfac": 23, "mem_depth": 23, "8192": 23, "depth": 23, "local": 23, "controlrequesthandl": [25, 27, 41], "handle_register_write_request": [25, 46], "new_value_sign": [25, 46], "write_strob": [25, 46], "stall_condit": [25, 46], "fill": [25, 45, 46], "meant": [25, 32, 45, 46], "handle_simple_data_request": [25, 46], "get_configur": [25, 46], "get_statu": [25, 46], "share": [25, 31, 33, 36, 39, 43, 45], "setuppacket": [25, 36, 39], "parser": 25, "is_in_request": 25, "recipi": 25, "index": [25, 39], "standardrequesthandl": [25, 27, 30, 41, 46], "devicedescriptorcollect": [25, 27, 30, 40, 41], "max_packet_s": [25, 32, 35, 38, 41], "size": [25, 26, 32, 35, 38, 41, 46], "associ": [25, 28, 35, 38, 39, 43, 45], "blacklist": 25, "avoid_blockram": 25, "windowsrequesthandl": 25, "respond": [25, 28, 31, 32, 35, 36, 39, 41], "maxpackets": [25, 32], "largest": 25, "react": 25, "accord": [25, 32, 43], "microsoft": 25, "main": [25, 43, 52], "thing": [25, 43, 53], "deal": 25, "usb_construct": 25, "emitt": [25, 43], "platformdescriptorcollect": 25, "system": [25, 44, 52, 53], "rest": [25, 47], "machin": [25, 43], "check_get_descriptor_set": 25, "check": [25, 31, 39, 43, 45, 48, 51], "enter": [25, 30, 37, 43], "get_descriptor_set": 25, "dragonboot": 25, "descriptorset": 25, "getdescriptorsethandl": 25, "yet": [25, 43, 44], "deliv": [25, 35], "ack": [25, 33, 35, 36, 39, 45], "flow": [25, 43, 45], "data0": [25, 31, 35], "data1": [25, 31, 35, 38], "correct": [25, 44], "conclud": [25, 31, 45], "elabor": 25, "ep0": 25, "synthes": 25, "dsl": 25, "handlercondit": 25, "under": [25, 52], "gate": 25, "form": [25, 43], "bootload": [25, 48], "group": [25, 31], "seen": [25, 43, 44], "combinatori": 25, "sum": 25, "ast": 25, "0x07": 25, "0x08": 25, "respect": [25, 45], "set_alternate_enum": 25, "latter": [25, 31, 45], "don": [25, 43], "t": [25, 31, 32, 43, 45, 48], "manner": 25, "get": [25, 28, 33, 39, 48, 51, 52], "amount": [25, 28, 32, 39], "startposit": 25, "inout": 25, "generaterom": 25, "align": [25, 28, 42, 43, 45], "boundari": [25, 26, 38, 43, 49], "laid": 25, "offset": [25, 32], "entri": 25, "consist": [25, 26, 28, 33, 44], "0000": [25, 28], "0002": [25, 28], "pad": [25, 28, 44], "highest": 25, "mem": 25, "nearli": 26, "_must_": 26, "easili": [26, 30, 33, 43, 48, 53], "bridge_to": 26, "utmi_tx": 26, "heavili": 26, "simplifi": [26, 43], "streamer": 26, "utmi_rx": 26, "utmireceiveinterfac": 26, "usboutstream": 26, "As": [26, 31, 33, 35], "denot": 26, "inject": [26, 35, 44], "unprocessed_stream": 26, "processed_stream": 26, "produc": [26, 32, 43, 48], "complete_in": 26, "rxcomplet": 26, "complete_out": 26, "invalid_in": 26, "rxinvalid": 26, "invalid_out": 26, "payload_word": 26, "both": [26, 31, 33, 37, 49], "flag": 26, "come": 26, "implicitli": [26, 33], "word": [26, 43, 44, 46], "includ": [26, 30, 33, 35, 40, 43, 44, 48, 52], "endian_swap": 26, "extend": [26, 48], "global": [26, 33], "endian": [26, 32, 44], "usbcontrolendpoint": [27, 33], "bound": [27, 41], "add_request_handl": [27, 41], "popul": [27, 41, 48], "add_standard_request_handl": [27, 41], "endpointinterfac": [27, 30, 31, 32, 40, 45], "monitor": [27, 39, 43, 48], "consid": [27, 35, 39, 43, 53], "endpoint_numb": [27, 32, 39, 41, 43, 45], "almost": [27, 41], "standalon": [27, 35], "bool": [27, 30, 35, 43], "debug": [27, 35, 48], "case": [27, 30, 35, 43, 49, 52], "request_handl": [27, 41], "arbitr": [27, 31, 35, 36, 39, 41, 45], "import": [27, 31, 35, 41], "overlap": [27, 41], "util": [28, 39, 48], "usbdescriptorstreamgener": [28, 33], "special": [28, 35], "getdescriptorhandlerdistribut": [28, 33], "getdescriptor": [28, 39], "languag": [28, 39, 47, 52], "getdescriptorhandlerblock": [28, 33], "generate_rom_cont": 28, "0x0000xxxx": 28, "exampl": [28, 48, 49], "0xffff": 28, "0004": 28, "0006": 28, "0008": 28, "000a": 28, "000c": 28, "000e": 28, "0010": 28, "0012": 28, "streamdeseri": [29, 33], "receiev": 29, "datalength": 29, "maxlength": 29, "maxlengthwidth": 29, "consum": [29, 37, 43, 48], "organ": [30, 40], "usbdevic": [30, 31, 33], "maintain": [30, 33, 43, 44], "custom": [30, 53], "master": 30, "usbdevicecontrol": 30, "yourself": [30, 48], "low_speed_onli": [30, 37], "full_speed_onli": 30, "prohibit": [30, 37], "frame_numb": 30, "frame": [30, 32, 33, 35, 45], "microframe_numb": 30, "microfram": [30, 32], "sof_detect": 30, "sof": [30, 35], "new_fram": [30, 35], "reset_detect": [30, 44], "lower": [30, 43], "tx_activity_l": 30, "led": [30, 48], "rx_activity_l": 30, "add_endpoint": [30, 40], "elaborat": [30, 40], "attribut": [30, 35, 40], "call": [30, 35, 40, 44, 48, 52], "add_control_endpoint": 30, "add_standard_control_endpoint": [30, 40], "separ": [31, 43], "distinct": 31, "often": 31, "tailor": [31, 33], "least": [31, 43], "decid": 31, "term": 31, "overload": 31, "concept": 31, "former": 31, "reduc": [31, 37, 44], "conflat": 31, "phrase": 31, "entir": [31, 38, 45, 52], "talk": 31, "same": [31, 39, 43, 44], "result": [31, 35, 38, 39, 44], "undefin": 31, "undesir": 31, "delin": 31, "across": [31, 33], "accomplish": [31, 48], "won": [31, 45], "structur": [31, 43, 45], "synthesi": [31, 45], "tool": [31, 45, 48, 52], "tokendetectorinterfac": [31, 33, 35, 38], "tokendetector": 31, "notifi": [31, 33], "rx_ready_for_respons": [31, 36], "fail": [31, 39, 43, 45], "rx_pid_toggl": 31, "pid": [31, 33, 35, 38, 48], "tx_pid_toggl": 31, "send": [31, 32, 33, 35, 36, 38, 43, 44, 45], "data2": [31, 35], "datam": 31, "handshakes_in": [31, 36, 38, 39], "handshakeexchangeinterfac": [31, 33, 35, 38], "handshakes_out": [31, 36, 38, 39], "usbspe": [31, 33, 35, 36, 37], "active_address": [31, 45], "address_chang": [31, 36, 39, 45], "new_address": [31, 36, 39, 45], "adopt": [31, 36, 45], "active_config": [31, 36, 45], "config_chang": [31, 36, 39, 45], "new_config": [31, 36, 39, 45], "interpackettimerinterfac": [31, 33, 35], "data_crc": [31, 35, 36], "datacrcinterfac": [31, 33, 35], "usbendpointmultiplex": 31, "add_interfac": [31, 35, 36, 39, 45], "or_join_interface_sign": 31, "signal_for_interfac": 31, "join": 31, "OR": 31, "ing": 31, "usbisochronousinendpoint": 32, "repeatedli": 32, "transport": [32, 43], "video": 32, "audio": 32, "bytes_in_fram": 32, "3073": 32, "zlp": [32, 41], "emit": [32, 33], "three": [32, 43], "latch": [32, 43], "micro": 32, "throughput": 32, "512": 32, "max": [32, 38], "n": [32, 43, 44], "3072": 32, "next_address": 32, "wmaxpackets": [32, 41], "mainli": 32, "poll": [32, 43, 44], "usbsignalinendpoint": 32, "relai": 32, "status_read_complet": 32, "big": 32, "signal_domain": 32, "anyth": 32, "suitabl": [32, 41, 48], "usbstreaminendpoint": 32, "continu": [32, 41], "flush": [32, 38], "pend": 32, "soon": [32, 38], "vari": 32, "doubl": [32, 41], "worth": [32, 41], "usbmultibytestreaminendpoint": 32, "byte_width": 32, "usbstreamoutendpoint": 32, "isn": 32, "nak": [32, 33, 35], "particip": [32, 33], "ping": [32, 35], "buffer_s": 32, "twice": 32, "exclus": 33, "usbtokendetector": [33, 35], "usbhandshakedetector": [33, 35], "usbdatapacketcrc": [33, 35], "usbdatapacketreceiv": [33, 35], "usbdatapacketdeseri": [33, 35], "usbdatapacketgener": [33, 35], "usbhandshakegener": [33, 35], "usbinterpackettim": [33, 35], "usbrequesthandl": [33, 36], "usbsetupdecod": [33, 36], "usbrequesthandlermultiplex": [33, 36], "usbresetsequenc": [33, 37], "usbintransfermanag": [33, 38], "ep": 33, "tri": 33, "flexibl": 33, "model": 33, "basi": [33, 52], "purpos": 33, "One": 33, "friendli": 33, "macrocel": 33, "transpar": 33, "count": [33, 43], "overal": 33, "highlight": 33, "responsibl": 33, "immin": 33, "successfulli": 33, "checksum": 33, "primarili": [33, 44], "nyet": [33, 35], "outgo": 33, "append": 33, "among": 33, "comput": [33, 35, 43], "turnov": 33, "arriv": 33, "detec": 33, "un": 33, "period": [33, 44], "inact": 33, "disengag": 33, "classmethod": [33, 43], "from_byt": 33, "skip_check": 33, "from_int": 33, "from_nam": 33, "represent": 33, "pars": [33, 35, 36, 39, 43], "categori": 33, "usbpidcategori": 33, "is_data": [33, 44], "is_token": 33, "is_handshak": 33, "is_invalid": 33, "encapsul": [33, 43, 44, 45], "packetid": 33, "summar": 33, "summari": 33, "upper": 33, "nibbl": 33, "gatwar": 35, "interpret": [35, 38, 45], "is_detector": 35, "unus": 35, "new_token": 35, "ready_for_respons": 35, "inter": [35, 36], "is_in": 35, "is_out": 35, "is_setup": 35, "is_p": 35, "18": 35, "usual": 35, "tx_allow": 35, "safe": [35, 44], "tx_timeout": 35, "rx_timeout": 35, "subordin": 35, "fulli": [35, 43], "about": [35, 36], "filter_by_address": 35, "filter": 35, "report": [35, 45], "observ": 35, "suppli": 35, "listen": 35, "By": 35, "arbitrari": 35, "initial_valu": [35, 43, 44], "const": [35, 43, 44], "multiplp": 35, "prior": [35, 52], "packet_complet": 35, "crc_mismatch": 35, "prepar": 35, "usboutdatastream": 35, "active_pid": 35, "packet_id": 35, "becom": [35, 39], "simultan": 35, "mismatch": 35, "far": 35, "submodul": [35, 48], "new_packet": [35, 43], "max_packet_length": 35, "create_crc_gener": 35, "excel": 35, "step": [35, 43, 47, 48], "data_pid": [35, 38], "potenti": 35, "mdata": 35, "tie": 35, "msb": 35, "lsb": [35, 38, 44], "subset": 35, "perfect": 35, "issue_ack": 35, "issue_nak": 35, "issue_stal": 35, "enforc": 35, "mandat": 35, "gap": 35, "interpackettim": 35, "data_request": [36, 39], "status_request": [36, 39], "corrupt": [36, 39, 43], "send_zlp": [36, 43], "statement": 36, "requesthandl": [36, 39], "condition": [36, 39], "prevent_high_spe": 37, "act": 37, "bus_busi": 37, "off": [37, 52], "vbus_connect": 37, "perpetu": 37, "linest": 37, "bus_reset": 37, "unaddress": 37, "unconfigur": 37, "longer": [37, 38, 43], "technic": 37, "5ma": 37, "veri": [37, 45], "few": 37, "polit": 37, "consumpt": 37, "current_spe": 37, "knowledg": 37, "operating_mod": 37, "let": 37, "termination_select": 37, "presenc": [37, 48], "chirp": 37, "assist": 38, "Its": [38, 39], "facilit": 38, "serv": 38, "transfer_stream": 38, "desir": 38, "reach": 38, "packet_stream": 38, "broken": 38, "wait": 38, "further": 38, "again": 38, "generate_zlp": 38, "signific": 38, "start_with_data1": 38, "reset_sequ": 38, "perman": 38, "getdescriptorhandl": 39, "tx_length": [39, 45], "At": 39, "header": [39, 42, 45, 48], "superspeedrequesthandlerinterfac": 39, "af": 39, "success": 39, "known": 39, "good": [39, 43, 52], "On": [39, 48, 52], "tx_sequence_numb": [39, 45], "1024": [39, 43, 45], "advanc": [39, 43, 44], "subsequ": 39, "handshakegeneratorinterfac": [39, 45], "accompani": [39, 43], "current_configur": 39, "superspeedsetupdecod": 39, "sink": [39, 43, 44], "question": 39, "packet_good": [39, 43], "packet_bad": [39, 43], "rx_good": 39, "rx_bad": 39, "did": [39, 43], "properli": [39, 43], "header_in": 39, "dataheaderpacket": [39, 43, 45], "superspeedrequesthandlermultiplex": 39, "superspeedrequesthandl": 39, "usbsuperspeeddevic": [40, 42], "usb3controlendpoint": [41, 42], "superspeedendpointinterfac": [41, 45], "superspeedstreaminendpoint": 41, "usb3linklay": [42, 43], "ltssm": 42, "usb3physicallay": [42, 44], "ctc": 42, "scrambl": [42, 43], "usb3protocollay": [42, 45], "timestamp": 42, "manipul": 43, "linkcommanddetector": 43, "descrambl": [43, 44], "command_class": 43, "command_typ": 43, "subtyp": 43, "new_command": 43, "detail": [43, 49, 53], "linkcommandgener": 43, "anoth": 43, "compute_usb_crc5": 43, "protected_bit": 43, "crc5": 43, "five": 43, "protect": 43, "headerpacketcrc": 43, "restor": 43, "data_input": 43, "advance_crc": 43, "datapacketpayloadcrc": 43, "complic": 43, "incomplet": [43, 51, 52], "advance_word": 43, "advance_3b": 43, "advance_2b": 43, "advance_1b": 43, "next_crc_3b": 43, "3b": 43, "next_crc_2b": 43, "2b": 43, "next_crc_1b": 43, "1b": 43, "dpp": 43, "datapacketreceiv": 43, "redund": 43, "section": [43, 47, 48], "well": 43, "expens": 43, "embed": [43, 48], "headerpacket": 43, "new_head": 43, "datapackettransmitt": 43, "orchestr": 43, "data_sink": 43, "thee": 43, "sequence_numb": 43, "get_typ": 43, "dw0": 43, "get_layout": 43, "sub": 43, "headerqueu": [43, 45], "header_typ": 43, "header_eq": 43, "self": 43, "alia": 43, "headerqueuearbit": 43, "queue": 43, "add_produc": 43, "mux": 43, "headerqueuedemultiplex": 43, "add_consum": 43, "distribut": [43, 52], "idlehandshakehandl": 43, "idle_handshake_complet": 43, "idle_detect": 43, "eight": 43, "2r1": [43, 44], "ltssmcontrol": 43, "bringup": 43, "save": 43, "chapter": 43, "link_readi": [43, 45], "in_usb_reset": 43, "warm": 43, "engage_termin": 43, "invert_rx_polar": 43, "counter": 43, "perform_rx_detect": 43, "enable_scrambl": [43, 44], "ss_clock_frequ": 43, "float": [43, 44], "timeout": 43, "loosen_requir": 43, "relax": 43, "varieti": 43, "ordered_set": 43, "tsburstdetector": 43, "fed": 43, "pre": 43, "tsemitt": 43, "n_ordered_set": 43, "config": 43, "ts1": 43, "ts2": 43, "tstransceiv": 43, "rawheaderpacketreceiv": 43, "bad_packet": 43, "expected_sequ": 43, "headerpacketreceiv": 43, "side": [43, 44], "credit": 43, "advertis": [43, 45], "usb_reset": 43, "retry_receiv": 43, "retri": 43, "retry_requir": [43, 45], "link_command_s": 43, "keepalive_requir": 43, "keepal": 43, "packet_receiv": 43, "bad_packet_receiv": 43, "accept_power_st": 43, "lau": 43, "reject_power_st": 43, "lxu": 43, "reject": 43, "acknowledge_power_st": 43, "lpma": 43, "u0": 43, "mainten": 43, "linkmaintenancetim": 43, "integr": [43, 53], "traffic": 43, "ever": 43, "rule": [43, 48], "10u": 43, "stabli": 43, "1m": 43, "link_command_receiv": 43, "link_command_transmit": 43, "schedule_keepal": 43, "transition_to_recoveri": 43, "stabl": [43, 49, 52], "hz": 43, "rawpackettransmitt": 43, "packettransmitt": 43, "partner": [43, 44], "lgo_receiv": 43, "lgo_target": 43, "lgo": 43, "recovery_requir": 43, "lowest": 44, "rxwordalign": 44, "locat": [44, 48, 52], "comma": 44, "static": 44, "word_meets_alignment_criteria": 44, "ctrl": 44, "appear": 44, "rxpacketalign": 44, "remain": [44, 45], "guarante": 44, "properti": 44, "x": 44, "y": 44, "pcie": 44, "namedsymbol": 44, "metadata": 44, "value_const": 44, "repeat": 44, "ctrl_const": 44, "get_word_for_symbol": 44, "target_symbol": 44, "stream_matches_symbol": 44, "include_readi": 44, "evalu": 44, "falsei": 44, "sym3": 44, "sym2": 44, "sym1": 44, "sym0": 44, "stream_word_matches_symbol": 44, "word_numb": 44, "skp": 44, "path": [44, 52], "give": 44, "toler": 44, "compens": 44, "ctcskipremov": 44, "imposs": 44, "precis": 44, "independ": 44, "filler": 44, "slower": 44, "catch": 44, "insid": 44, "help": [44, 48], "leav": 44, "behind": 44, "whose": 44, "those": 44, "leftov": 44, "past": 44, "point": 44, "sometim": 44, "skip_remov": 44, "ctcskipinsert": 44, "skip": 44, "still": [44, 53], "adjust": 44, "can_send_skip": 44, "sending_skip": 44, "charact": 44, "scrambler": 44, "exchang": 44, "Of": 44, "oob": 44, "slow": 44, "10m": 44, "50mhz": 44, "durat": 44, "p": 44, "opposit": 44, "_": 44, "xxxxxxxxxxxxxxxxxxxx": 44, "lfpstransceiv": 44, "lpf": 44, "drive_electrical_idl": 44, "waveform": 44, "send_sign": 44, "signaling_receiv": 44, "send_pol": 44, "cycles_s": 44, "increment": 44, "polling_detect": 44, "phyresetcontrol": 44, "resid": 44, "sync_frequ": 44, "linkpartnerdetector": 44, "light": 44, "mechan": 44, "request_detect": 44, "power_st": 44, "detection_control": 44, "new_result": 44, "partner_pres": 44, "scramblerlfsr": 44, "lfsr": 44, "polynomi": 44, "appendix": 44, "b": 44, "emi": 44, "itself": [44, 48], "dataheaderreceiv": 45, "header_sink": 45, "rx_header": 45, "rx_new_head": 45, "tx_zlp": 45, "tx_endpoint_numb": 45, "tx_direct": 45, "superspeedendpointmultiplex": 45, "lmp": 45, "link_manag": 45, "portcapabilityheaderpacket": 45, "portconfigurationheaderpacket": 45, "portconfigurationresponseheaderpacket": 45, "linkmanagementpackethandl": 45, "header_sourc": 45, "itp": 45, "timestamppacketreceiv": 45, "bus_interval_count": 45, "14": 45, "125u": 45, "interv": 45, "delta": 45, "next_sequ": 45, "send_ack": 45, "handshakereceiverinterfac": 45, "geneartor": 45, "transactionheaderpacket": 45, "ackheaderpacket": 45, "nrdyheaderpacket": 45, "erdyheaderpacket": 45, "stallheaderpacket": 45, "statusheaderpacket": 45, "transactionpacketgener": 45, "transactionpacketreceiv": 45, "tx_stream": 46, "32b": 46, "valid_mask": 46, "4b": 46, "mask": 46, "0b0001": 46, "0b0011": 46, "0b0111": 46, "0b1111": 46, "demonstr": 47, "workflow": 47, "cursori": 47, "overview": 47, "toolchain": [47, 48, 52], "tutori": 47, "introduct": [47, 51], "instal": [47, 48], "guid": [48, 51], "board": [48, 49], "great": 48, "scott": 48, "gadget": 48, "alreadi": [48, 49, 52], "shouldn": 48, "microprocessor": 48, "samd": 48, "microcontrol": 48, "bottom": 48, "programm": 48, "firmwar": 48, "swd": 48, "black": 48, "magic": 48, "probe": 48, "github": [48, 52], "blackspher": 48, "blackmag": 48, "segger": 48, "product": 48, "openocd": 48, "doc": 48, "html": 48, "__": 48, "binari": 48, "cortex": 48, "m0": 48, "processor": 48, "gnu": 48, "arm": 48, "develop": [48, 53], "softwar": [48, 53], "open": 48, "rm": 48, "linux": [48, 52], "maco": [48, 52], "fetch": 48, "someth": 48, "eabi": 48, "gcc": 48, "dfu": 48, "program": 48, "sourceforg": 48, "net": 48, "compil": 48, "apollo": 48, "flash": 48, "procedur": 48, "rvm": 48, "stage": 48, "repositori": 48, "clone": [48, 52], "sh": 48, "greatscottgadget": 48, "invok": 48, "invoc": 48, "modern": 48, "cd": [48, 52], "predat": 48, "r0": 48, "sol_d21": 48, "yield": 48, "elf": 48, "bin": [48, 52], "label": 48, "uc": 48, "imag": 48, "gdb": 48, "nx": 48, "batch": 48, "ex": 48, "remot": 48, "dev": 48, "ttyacm0": 48, "swdp_scan": 48, "kill": 48, "sure": 48, "0x00000000": 48, "blink": 48, "rapidli": 48, "verifi": 48, "show": 48, "congratul": 48, "reversibli": 48, "region": 48, "accident": 48, "overwrit": 48, "choos": 48, "4kib": 48, "8kib": 48, "revis": 48, "board_revision_major": 48, "board_revision_minor": 48, "print": 48, "silkscreen": 48, "r": 48, "major": 48, "minor": 48, "final": 48, "environ": [48, 52], "info": 48, "snip": 48, "root": 48, "python3": [48, 52], "troubleshoot": 48, "weren": 48, "found": 48, "messag": 48, "chanc": 48, "init": 48, "recurs": 48, "doesn": 48, "permiss": 48, "lsusb": 48, "vid": 48, "1d50": 48, "615c": 48, "grant": 48, "udev": 48, "stack": 49, "exact": 49, "rel": 49, "straightforward": 49, "beyond": 49, "60mhz": 49, "60": 49, "subsign": 49, "bidirect": 49, "dir": 49, "rst": 49, "pinsn": 49, "usb3300": 49, "data_sit": 49, "clk_site": 49, "dir_sit": 49, "nxt_site": 49, "stp_site": 49, "reset_sit": 49, "io_typ": 49, "lvcmos33": 49, "48": 49, "tick": 49, "bitrat": 49, "3v": 49, "bank": 49, "5k": 49, "a4": 49, "a2": 49, "d5": 49, "io_standard": 49, "sb_lvcmo": 49, "serious": 51, "fork": 51, "multitool": 51, "instruct": 52, "20": 52, "cpython": 52, "possibli": 52, "pip": 52, "arch": 52, "sudo": 52, "pacman": 52, "incorrect": 52, "debian": 52, "apt": 52, "fedora": 52, "dnf": 52, "homebrew": 52, "brew": 52, "download": 52, "page": 52, "execut": 52, "nightli": 52, "aur": 52, "makepkg": 52, "yai": 52, "archlinux": 52, "sic": 52, "oss": 52, "cad": 52, "suit": 52, "gtkwave": 52, "simpli": 52, "extract": 52, "home": 52, "curl": 52, "loj": 52, "yosyshq": 52, "2022": 52, "04": 52, "26": 52, "x64": 52, "20220426": 52, "tgz": 52, "tar": 52, "xfv": 52, "export": 52, "pwd": 52, "yowasp": 52, "nativ": 52, "intel": 52, "x86_64": 52, "darwin": 52, "bat": 52, "pip3": 52, "upgrad": 52, "api": 52, "bleed": 52, "unstabl": [52, 53], "shrine": 52, "maiden": 52, "heavi": 52, "industri": 52, "made": 52, "directori": 52, "immedi": 52, "ff": 52, "misbehav": 52, "crash": 52, "importerror": 52, "flesh": 53, "much": 53, "technologi": 53, "toolkit": 53, "exist": 53, "chip": 53, "autom": 53, "cover": 53, "remaind": 53, "offici": 54}, "objects": {"sol_usb.gateware": [[7, 0, 0, "-", "interface"], [17, 0, 0, "-", "soc"], [22, 0, 0, "-", "stream"], [24, 0, 0, "-", "usb"]], "sol_usb.gateware.interface": [[3, 0, 0, "-", "gateware_phy"], [8, 0, 0, "-", "pipe"], [10, 0, 0, "-", "serdes_phy"], [13, 0, 0, "-", "ulpi"], [14, 0, 0, "-", "utmi"]], "sol_usb.gateware.interface.gateware_phy": [[3, 1, 1, "", "GatewarePHY"], [4, 0, 0, "-", "phy"], [5, 0, 0, "-", "receiver"], [6, 0, 0, "-", "transmitter"]], "sol_usb.gateware.interface.gateware_phy.phy": [[4, 1, 1, "", "GatewarePHY"]], "sol_usb.gateware.interface.gateware_phy.receiver": [[5, 1, 1, "", "RxBitstuffRemover"], [5, 1, 1, "", "RxClockDataRecovery"], [5, 1, 1, "", "RxNRZIDecoder"], [5, 1, 1, "", "RxPacketDetect"], [5, 1, 1, "", "RxShifter"]], "sol_usb.gateware.interface.gateware_phy.transmitter": [[6, 1, 1, "", "TxBitstuffer"], [6, 1, 1, "", "TxNRZIEncoder"], [6, 1, 1, "", "TxShifter"]], "sol_usb.gateware.interface.pipe": [[8, 1, 1, "", "AsyncPIPEInterface"], [8, 1, 1, "", "GearedPIPEInterface"], [8, 1, 1, "", "PIPEInterface"]], "sol_usb.gateware.interface.serdes_phy": [[10, 1, 1, "", "ECP5SerDesPIPE"], [10, 1, 1, "", "XC7GTPSerDesPIPE"], [10, 1, 1, "", "XC7GTXSerDesPIPE"], [9, 0, 0, "-", "ecp5"], [11, 0, 0, "-", "lfps"], [12, 0, 0, "-", "xc7_gtp"], [12, 0, 0, "-", "xc7_gtx"]], "sol_usb.gateware.interface.serdes_phy.ecp5": [[9, 1, 1, "", "ECP5SerDes"], [9, 1, 1, "", "ECP5SerDesConfigInterface"], [9, 1, 1, "", "ECP5SerDesEqualizer"], [9, 1, 1, "", "ECP5SerDesEqualizerInterface"], [9, 1, 1, "", "ECP5SerDesPIPE"], [9, 1, 1, "", "ECP5SerDesRegisterTranslator"], [9, 1, 1, "", "ECP5SerDesResetSequencer"]], "sol_usb.gateware.interface.serdes_phy.lfps": [[11, 1, 1, "", "LFPSSquareWaveDetector"], [11, 1, 1, "", "LFPSSquareWaveGenerator"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtp": [[12, 1, 1, "", "XC7GTPSerDesPIPE"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtx": [[12, 1, 1, "", "XC7GTXSerDesPIPE"]], "sol_usb.gateware.interface.ulpi": [[13, 1, 1, "", "ULPIControlTranslator"], [13, 1, 1, "", "ULPIInterface"], [13, 1, 1, "", "ULPIRegisterWindow"], [13, 1, 1, "", "ULPIRxEventDecoder"], [13, 1, 1, "", "ULPITransmitTranslator"], [13, 1, 1, "", "UPLIDataRecord"], [13, 1, 1, "", "UPLIDirRecord"], [13, 1, 1, "", "UTMITranslator"]], "sol_usb.gateware.interface.ulpi.ULPIControlTranslator": [[13, 2, 1, "", "add_composite_register"], [13, 2, 1, "", "populate_ulpi_registers"]], "sol_usb.gateware.interface.ulpi.UTMITranslator": [[13, 2, 1, "", "add_extra_register"]], "sol_usb.gateware.interface.utmi": [[14, 1, 1, "", "UTMIInterface"], [14, 1, 1, "", "UTMIInterfaceMultiplexer"], [14, 1, 1, "", "UTMIOperatingMode"], [14, 1, 1, "", "UTMITerminationSelect"], [14, 1, 1, "", "UTMITransmitInterface"]], "sol_usb.gateware.interface.utmi.UTMITransmitInterface": [[14, 2, 1, "", "attach"]], "sol_usb.gateware.soc": [[18, 0, 0, "-", "memory"]], "sol_usb.gateware.soc.memory": [[18, 1, 1, "", "WishboneRAM"], [18, 1, 1, "", "WishboneROM"]], "sol_usb.gateware.stream": [[22, 1, 1, "", "StreamInterface"], [22, 0, 0, "-", "arbiter"], [22, 0, 0, "-", "generator"]], "sol_usb.gateware.stream.StreamInterface": [[22, 2, 1, "", "stream_eq"], [22, 2, 1, "", "tap"]], "sol_usb.gateware.stream.arbiter": [[22, 1, 1, "", "StreamArbiter"], [22, 1, 1, "", "StreamMultiplexer"]], "sol_usb.gateware.stream.arbiter.StreamArbiter": [[22, 2, 1, "", "add_stream"]], "sol_usb.gateware.stream.arbiter.StreamMultiplexer": [[22, 2, 1, "", "add_input"]], "sol_usb.gateware.stream.generator": [[22, 1, 1, "", "ConstantStreamGenerator"], [22, 1, 1, "", "StreamSerializer"]], "sol_usb.gateware.usb": [[23, 0, 0, "-", "analyzer"], [26, 0, 0, "-", "stream"], [33, 0, 0, "-", "usb2"], [42, 0, 0, "-", "usb3"]], "sol_usb.gateware.usb.analyzer": [[23, 1, 1, "", "USBAnalyzer"]], "sol_usb.gateware.usb.request": [[25, 0, 0, "-", "control"], [25, 0, 0, "-", "interface"], [25, 0, 0, "-", "standard"], [25, 0, 0, "-", "windows"]], "sol_usb.gateware.usb.request.control": [[25, 1, 1, "", "ControlRequestHandler"]], "sol_usb.gateware.usb.request.control.ControlRequestHandler": [[25, 2, 1, "", "handle_register_write_request"], [25, 2, 1, "", "handle_simple_data_request"]], "sol_usb.gateware.usb.request.interface": [[25, 1, 1, "", "SetupPacket"]], "sol_usb.gateware.usb.request.standard": [[25, 1, 1, "", "StandardRequestHandler"]], "sol_usb.gateware.usb.request.windows": [[25, 1, 1, "", "WindowsRequestHandler"], [25, 0, 0, "-", "descriptorSet"]], "sol_usb.gateware.usb.request.windows.WindowsRequestHandler": [[25, 2, 1, "", "elaborate"], [25, 2, 1, "", "handlerCondition"]], "sol_usb.gateware.usb.request.windows.descriptorSet": [[25, 1, 1, "", "GetDescriptorSetHandler"]], "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler": [[25, 2, 1, "", "elaborate"], [25, 2, 1, "", "generateROM"]], "sol_usb.gateware.usb.stream": [[26, 1, 1, "", "SuperSpeedStreamArbiter"], [26, 1, 1, "", "SuperSpeedStreamInterface"], [26, 1, 1, "", "USBInStreamInterface"], [26, 1, 1, "", "USBOutStreamBoundaryDetector"], [26, 1, 1, "", "USBOutStreamInterface"], [26, 1, 1, "", "USBRawSuperSpeedStream"]], "sol_usb.gateware.usb.stream.USBInStreamInterface": [[26, 2, 1, "", "bridge_to"]], "sol_usb.gateware.usb.stream.USBOutStreamInterface": [[26, 2, 1, "", "bridge_to"], [26, 2, 1, "", "stream_eq"]], "sol_usb.gateware.usb.stream.USBRawSuperSpeedStream": [[26, 2, 1, "", "stream_eq"]], "sol_usb.gateware.usb.usb2": [[33, 1, 1, "", "USBPacketID"], [33, 1, 1, "", "USBSpeed"], [27, 0, 0, "-", "control"], [28, 0, 0, "-", "descriptor"], [29, 0, 0, "-", "deserializer"], [30, 0, 0, "-", "device"], [31, 0, 0, "-", "endpoint"], [32, 0, 0, "-", "endpoints"], [34, 0, 0, "-", "interfaces"], [35, 0, 0, "-", "packet"], [36, 0, 0, "-", "request"], [37, 0, 0, "-", "reset"], [38, 0, 0, "-", "transfer"]], "sol_usb.gateware.usb.usb2.USBPacketID": [[33, 2, 1, "", "byte"], [33, 2, 1, "", "category"], [33, 2, 1, "", "direction"], [33, 2, 1, "", "from_byte"], [33, 2, 1, "", "from_int"], [33, 2, 1, "", "from_name"], [33, 2, 1, "", "is_data"], [33, 2, 1, "", "is_handshake"], [33, 2, 1, "", "is_invalid"], [33, 2, 1, "", "is_token"], [33, 2, 1, "", "parse"], [33, 2, 1, "", "summarize"]], "sol_usb.gateware.usb.usb2.control": [[27, 1, 1, "", "USBControlEndpoint"]], "sol_usb.gateware.usb.usb2.control.USBControlEndpoint": [[27, 2, 1, "", "add_request_handler"], [27, 2, 1, "", "add_standard_request_handlers"]], "sol_usb.gateware.usb.usb2.descriptor": [[28, 1, 1, "", "GetDescriptorHandlerBlock"], [28, 1, 1, "", "GetDescriptorHandlerDistributed"], [28, 1, 1, "", "USBDescriptorStreamGenerator"]], "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerBlock": [[28, 2, 1, "", "generate_rom_content"]], "sol_usb.gateware.usb.usb2.deserializer": [[29, 1, 1, "", "StreamDeserializer"]], "sol_usb.gateware.usb.usb2.device": [[30, 1, 1, "", "USBDevice"]], "sol_usb.gateware.usb.usb2.device.USBDevice": [[30, 2, 1, "", "add_control_endpoint"], [30, 2, 1, "", "add_endpoint"], [30, 2, 1, "", "add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb2.endpoint": [[31, 1, 1, "", "EndpointInterface"], [31, 1, 1, "", "USBEndpointMultiplexer"]], "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer": [[31, 2, 1, "", "add_interface"], [31, 2, 1, "", "or_join_interface_signals"]], "sol_usb.gateware.usb.usb2.endpoints": [[32, 0, 0, "-", "isochronous"], [32, 0, 0, "-", "status"], [32, 0, 0, "-", "stream"]], "sol_usb.gateware.usb.usb2.endpoints.isochronous": [[32, 1, 1, "", "USBIsochronousInEndpoint"]], "sol_usb.gateware.usb.usb2.endpoints.status": [[32, 1, 1, "", "USBSignalInEndpoint"]], "sol_usb.gateware.usb.usb2.endpoints.stream": [[32, 1, 1, "", "USBMultibyteStreamInEndpoint"], [32, 1, 1, "", "USBStreamInEndpoint"], [32, 1, 1, "", "USBStreamOutEndpoint"]], "sol_usb.gateware.usb.usb2.packet": [[35, 1, 1, "", "DataCRCInterface"], [35, 1, 1, "", "HandshakeExchangeInterface"], [35, 1, 1, "", "InterpacketTimerInterface"], [35, 1, 1, "", "TokenDetectorInterface"], [35, 1, 1, "", "USBDataPacketCRC"], [35, 1, 1, "", "USBDataPacketDeserializer"], [35, 1, 1, "", "USBDataPacketGenerator"], [35, 1, 1, "", "USBDataPacketReceiver"], [35, 1, 1, "", "USBHandshakeDetector"], [35, 1, 1, "", "USBHandshakeGenerator"], [35, 1, 1, "", "USBInterpacketTimer"], [35, 1, 1, "", "USBTokenDetector"]], "sol_usb.gateware.usb.usb2.packet.InterpacketTimerInterface": [[35, 2, 1, "", "attach"]], "sol_usb.gateware.usb.usb2.packet.USBDataPacketCRC": [[35, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb2.packet.USBInterpacketTimer": [[35, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb2.request": [[36, 1, 1, "", "RequestHandlerInterface"], [36, 1, 1, "", "StallOnlyRequestHandler"], [36, 1, 1, "", "USBRequestHandler"], [36, 1, 1, "", "USBRequestHandlerMultiplexer"], [36, 1, 1, "", "USBSetupDecoder"]], "sol_usb.gateware.usb.usb2.request.USBRequestHandler": [[36, 2, 1, "", "send_zlp"]], "sol_usb.gateware.usb.usb2.request.USBRequestHandlerMultiplexer": [[36, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb2.reset": [[37, 1, 1, "", "USBResetSequencer"]], "sol_usb.gateware.usb.usb2.transfer": [[38, 1, 1, "", "USBInTransferManager"]], "sol_usb.gateware.usb.usb3": [[39, 0, 0, "-", "application"], [40, 0, 0, "-", "device"], [41, 0, 0, "-", "endpoints"], [43, 0, 0, "-", "link"], [44, 0, 0, "-", "physical"], [45, 0, 0, "-", "protocol"], [46, 0, 0, "-", "request"]], "sol_usb.gateware.usb.usb3.application": [[39, 0, 0, "-", "descriptor"], [39, 0, 0, "-", "request"]], "sol_usb.gateware.usb.usb3.application.descriptor": [[39, 1, 1, "", "GetDescriptorHandler"]], "sol_usb.gateware.usb.usb3.application.request": [[39, 1, 1, "", "StallOnlyRequestHandler"], [39, 1, 1, "", "SuperSpeedRequestHandler"], [39, 1, 1, "", "SuperSpeedRequestHandlerInterface"], [39, 1, 1, "", "SuperSpeedRequestHandlerMultiplexer"], [39, 1, 1, "", "SuperSpeedSetupDecoder"]], "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerMultiplexer": [[39, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb3.device": [[40, 1, 1, "", "USBSuperSpeedDevice"]], "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice": [[40, 2, 1, "", "add_endpoint"], [40, 2, 1, "", "add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb3.endpoints": [[41, 1, 1, "", "USB3ControlEndpoint"], [41, 0, 0, "-", "control"], [41, 0, 0, "-", "stream"]], "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint": [[41, 2, 1, "", "add_request_handler"], [41, 2, 1, "", "add_standard_request_handlers"]], "sol_usb.gateware.usb.usb3.endpoints.control": [[41, 1, 1, "", "USB3ControlEndpoint"]], "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint": [[41, 2, 1, "", "add_request_handler"], [41, 2, 1, "", "add_standard_request_handlers"]], "sol_usb.gateware.usb.usb3.endpoints.stream": [[41, 1, 1, "", "SuperSpeedStreamInEndpoint"]], "sol_usb.gateware.usb.usb3.link": [[43, 1, 1, "", "USB3LinkLayer"], [43, 0, 0, "-", "command"], [43, 0, 0, "-", "crc"], [43, 0, 0, "-", "data"], [43, 0, 0, "-", "header"], [43, 0, 0, "-", "idle"], [43, 0, 0, "-", "layer"], [43, 0, 0, "-", "ltssm"], [43, 0, 0, "-", "ordered_sets"], [43, 0, 0, "-", "receiver"], [43, 0, 0, "-", "timers"], [43, 0, 0, "-", "transmitter"]], "sol_usb.gateware.usb.usb3.link.command": [[43, 1, 1, "", "LinkCommandDetector"], [43, 1, 1, "", "LinkCommandGenerator"]], "sol_usb.gateware.usb.usb3.link.crc": [[43, 1, 1, "", "DataPacketPayloadCRC"], [43, 1, 1, "", "HeaderPacketCRC"], [43, 3, 1, "", "compute_usb_crc5"]], "sol_usb.gateware.usb.usb3.link.data": [[43, 1, 1, "", "DataHeaderPacket"], [43, 1, 1, "", "DataPacketReceiver"], [43, 1, 1, "", "DataPacketTransmitter"]], "sol_usb.gateware.usb.usb3.link.header": [[43, 1, 1, "", "HeaderPacket"], [43, 1, 1, "", "HeaderQueue"], [43, 1, 1, "", "HeaderQueueArbiter"], [43, 1, 1, "", "HeaderQueueDemultiplexer"]], "sol_usb.gateware.usb.usb3.link.header.HeaderPacket": [[43, 2, 1, "", "get_layout"], [43, 2, 1, "", "get_type"]], "sol_usb.gateware.usb.usb3.link.header.HeaderQueue": [[43, 2, 1, "", "get_type"], [43, 2, 1, "", "header_eq"], [43, 2, 1, "", "stream_eq"]], "sol_usb.gateware.usb.usb3.link.header.HeaderQueueArbiter": [[43, 2, 1, "", "add_producer"]], "sol_usb.gateware.usb.usb3.link.header.HeaderQueueDemultiplexer": [[43, 2, 1, "", "add_consumer"]], "sol_usb.gateware.usb.usb3.link.idle": [[43, 1, 1, "", "IdleHandshakeHandler"]], "sol_usb.gateware.usb.usb3.link.layer": [[43, 1, 1, "", "USB3LinkLayer"]], "sol_usb.gateware.usb.usb3.link.ltssm": [[43, 1, 1, "", "LTSSMController"]], "sol_usb.gateware.usb.usb3.link.ordered_sets": [[43, 1, 1, "", "TSBurstDetector"], [43, 1, 1, "", "TSEmitter"], [43, 1, 1, "", "TSTransceiver"]], "sol_usb.gateware.usb.usb3.link.receiver": [[43, 1, 1, "", "HeaderPacketReceiver"], [43, 1, 1, "", "RawHeaderPacketReceiver"]], "sol_usb.gateware.usb.usb3.link.timers": [[43, 1, 1, "", "LinkMaintenanceTimers"]], "sol_usb.gateware.usb.usb3.link.transmitter": [[43, 1, 1, "", "PacketTransmitter"], [43, 1, 1, "", "RawPacketTransmitter"]], "sol_usb.gateware.usb.usb3.physical": [[44, 1, 1, "", "USB3PhysicalLayer"], [44, 0, 0, "-", "alignment"], [44, 0, 0, "-", "coding"], [44, 0, 0, "-", "ctc"], [44, 0, 0, "-", "layer"], [44, 0, 0, "-", "lfps"], [44, 0, 0, "-", "power"], [44, 0, 0, "-", "scrambling"]], "sol_usb.gateware.usb.usb3.physical.alignment": [[44, 1, 1, "", "RxPacketAligner"], [44, 1, 1, "", "RxWordAligner"]], "sol_usb.gateware.usb.usb3.physical.alignment.RxPacketAligner": [[44, 2, 1, "", "word_meets_alignment_criteria"]], "sol_usb.gateware.usb.usb3.physical.alignment.RxWordAligner": [[44, 2, 1, "", "word_meets_alignment_criteria"]], "sol_usb.gateware.usb.usb3.physical.coding": [[44, 3, 1, "", "D"], [44, 3, 1, "", "K"], [44, 1, 1, "", "NamedSymbol"], [44, 3, 1, "", "get_word_for_symbols"], [44, 3, 1, "", "stream_matches_symbols"], [44, 3, 1, "", "stream_word_matches_symbol"]], "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol": [[44, 2, 1, "", "ctrl_const"], [44, 2, 1, "", "value_const"]], "sol_usb.gateware.usb.usb3.physical.ctc": [[44, 1, 1, "", "CTCSkipInserter"], [44, 1, 1, "", "CTCSkipRemover"]], "sol_usb.gateware.usb.usb3.physical.layer": [[44, 1, 1, "", "USB3PhysicalLayer"]], "sol_usb.gateware.usb.usb3.physical.lfps": [[44, 1, 1, "", "LFPSTransceiver"]], "sol_usb.gateware.usb.usb3.physical.power": [[44, 1, 1, "", "LinkPartnerDetector"], [44, 1, 1, "", "PHYResetController"]], "sol_usb.gateware.usb.usb3.physical.scrambling": [[44, 1, 1, "", "Descrambler"], [44, 1, 1, "", "Scrambler"], [44, 1, 1, "", "ScramblerLFSR"]], "sol_usb.gateware.usb.usb3.protocol": [[45, 1, 1, "", "USB3ProtocolLayer"], [45, 0, 0, "-", "data"], [45, 0, 0, "-", "endpoint"], [45, 0, 0, "-", "layer"], [45, 0, 0, "-", "link_management"], [45, 0, 0, "-", "timestamp"], [45, 0, 0, "-", "transaction"]], "sol_usb.gateware.usb.usb3.protocol.data": [[45, 1, 1, "", "DataHeaderReceiver"]], "sol_usb.gateware.usb.usb3.protocol.endpoint": [[45, 1, 1, "", "SuperSpeedEndpointInterface"], [45, 1, 1, "", "SuperSpeedEndpointMultiplexer"]], "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointMultiplexer": [[45, 2, 1, "", "add_interface"]], "sol_usb.gateware.usb.usb3.protocol.layer": [[45, 1, 1, "", "USB3ProtocolLayer"]], "sol_usb.gateware.usb.usb3.protocol.link_management": [[45, 1, 1, "", "LinkManagementPacketHandler"], [45, 1, 1, "", "PortCapabilityHeaderPacket"], [45, 1, 1, "", "PortConfigurationHeaderPacket"], [45, 1, 1, "", "PortConfigurationResponseHeaderPacket"]], "sol_usb.gateware.usb.usb3.protocol.timestamp": [[45, 1, 1, "", "TimestampPacketReceiver"]], "sol_usb.gateware.usb.usb3.protocol.transaction": [[45, 1, 1, "", "ACKHeaderPacket"], [45, 1, 1, "", "ERDYHeaderPacket"], [45, 1, 1, "", "HandshakeGeneratorInterface"], [45, 1, 1, "", "HandshakeReceiverInterface"], [45, 1, 1, "", "NRDYHeaderPacket"], [45, 1, 1, "", "STALLHeaderPacket"], [45, 1, 1, "", "StatusHeaderPacket"], [45, 1, 1, "", "TransactionHeaderPacket"], [45, 1, 1, "", "TransactionPacketGenerator"], [45, 1, 1, "", "TransactionPacketReceiver"]], "sol_usb.gateware.usb.usb3.request": [[46, 0, 0, "-", "standard"]], "sol_usb.gateware.usb.usb3.request.standard": [[46, 1, 1, "", "StandardRequestHandler"]], "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler": [[46, 2, 1, "", "handle_register_write_request"], [46, 2, 1, "", "handle_simple_data_request"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"changelog": 0, "unreleas": 0, "0": 0, "3": 0, "ad": 0, "chang": 0, "deprec": 0, "remov": 0, "fix": 0, "2": 0, "1": 0, "statu": [1, 32], "support": 1, "devic": [1, 30, 33, 40], "mode": 1, "host": 1, "gatewar": [2, 3, 4, 5, 6, 31, 51], "librari": [2, 51], "phy": [3, 4, 5, 6, 9, 10, 11, 12, 49], "clock": [3, 4, 5, 6], "domain": [3, 4, 5, 6], "receiv": [5, 33, 43], "input": [5, 6], "port": [5, 6], "output": [5, 6], "transmitt": [6, 33, 43], "interfac": [7, 25, 31, 34], "pipe": 8, "serd": [9, 10, 11, 12], "ecp5": 9, "lfp": [11, 44], "xc7": 12, "ulpi": [13, 49], "utmi": 14, "cpu": 15, "event": 16, "soc": 17, "memori": [18, 28], "peripher": 19, "simplesoc": 20, "uart": 21, "stream": [22, 26, 32, 41], "arbit": 22, "gener": [22, 33], "analyz": 23, "usb": [24, 51], "request": [25, 36, 39, 46], "control": [25, 27, 41], "standard": [25, 46], "window": 25, "descriptor": [28, 39], "layout": 28, "type": 28, "offset": 28, "number": 28, "entri": 28, "index": 28, "length": 28, "data": [28, 33, 43, 45], "deseri": 29, "return": 30, "valu": 30, "endpoint": [31, 32, 41, 45], "exclus": 31, "isochron": 32, "usb2": 33, "conceptu": 33, "compon": 33, "token": 33, "detector": 33, "handshak": 33, "packet": [33, 35], "state": 33, "manag": [33, 45], "crc": [33, 43], "unit": 33, "interpacket": 33, "timer": [33, 43], "reset": [33, 37], "suspend": 33, "sequenc": 33, "ep": 34, "tri": 34, "transfer": 38, "applic": 39, "usb3": 42, "link": [43, 45], "command": 43, "header": 43, "idl": 43, "layer": [43, 44, 45], "ltssm": 43, "order": 43, "set": 43, "physic": 44, "align": 44, "code": 44, "ctc": 44, "power": 44, "scrambl": 44, "protocol": 45, "timestamp": 45, "transact": 45, "get": 47, "start": 47, "todo": [47, 53, 54], "prerequisit": [47, 48, 52], "self": 48, "made": 48, "hardwar": [48, 49, 50], "bringup": 48, "bring": 48, "up": 48, "process": 48, "build": 48, "upload": 48, "saturn": 48, "v": 48, "sol": [49, 51, 52], "On": 49, "your": 49, "own": 49, "high": 49, "speed": 49, "via": 49, "full": 49, "us": 49, "fpga": 49, "i": 49, "o": 49, "instal": 52, "python": 52, "yosi": 52, "torii": 52, "latest": 52, "releas": 52, "develop": 52, "snapshot": 52, "edit": 52, "introduct": 53, "tutori": 54}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Changelog": [[0, "changelog"]], "Unreleased": [[0, "unreleased"]], "0.3.0": [[0, "id1"]], "Added": [[0, "added"], [0, "id3"]], "Changed": [[0, "changed"], [0, "id4"]], "Deprecated": [[0, "deprecated"]], "Removed": [[0, "removed"], [0, "id5"]], "Fixed": [[0, "fixed"], [0, "id6"]], "0.2.0": [[0, "id2"]], "0.1.0": [[0, "id7"]], "Status & Support": [[1, "status-support"]], "Support for Device Mode": [[1, "support-for-device-mode"]], "Support for Host Mode": [[1, "support-for-host-mode"]], "Gateware Library": [[2, "gateware-library"]], "Gateware PHY": [[3, "gateware-phy"], [4, "module-sol_usb.gateware.interface.gateware_phy.phy"]], "Clock Domains": [[3, "clock-domains"], [4, "clock-domains"]], "Gateware PHY - Receiver": [[5, "module-sol_usb.gateware.interface.gateware_phy.receiver"]], "Clock Domain": [[5, "clock-domain"], [5, "id1"], [5, "id6"], [5, "id9"], [6, "clock-domain"], [6, "id1"]], "Input Ports": [[5, "input-ports"], [5, "id2"], [5, "id4"], [5, "id7"], [6, "input-ports"], [6, "id2"]], "Output Ports": [[5, "output-ports"], [5, "id3"], [5, "id5"], [5, "id8"], [6, "output-ports"], [6, "id3"]], "Gateware PHY - Transmitter": [[6, "module-sol_usb.gateware.interface.gateware_phy.transmitter"]], "Interface": [[7, "interface"], [25, "module-sol_usb.gateware.usb.request.interface"]], "PIPE": [[8, "module-sol_usb.gateware.interface.pipe"]], "SerDes PHY - ECP5": [[9, "module-sol_usb.gateware.interface.serdes_phy.ecp5"]], "SerDes PHY": [[10, "serdes-phy"]], "SerDes PHY - LFPS": [[11, "module-sol_usb.gateware.interface.serdes_phy.lfps"]], "SerDes PHY - XC7": [[12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtp"]], "ULPI": [[13, "module-sol_usb.gateware.interface.ulpi"]], "UTMI": [[14, "module-sol_usb.gateware.interface.utmi"]], "CPU": [[15, "cpu"]], "Event": [[16, "event"]], "SoC": [[17, "soc"]], "Memory": [[18, "module-sol_usb.gateware.soc.memory"]], "Peripheral": [[19, "peripheral"]], "SimpleSoC": [[20, "simplesoc"]], "UART": [[21, "uart"]], "Stream": [[22, "module-sol_usb.gateware.stream"], [26, "module-sol_usb.gateware.usb.stream"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.stream"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.stream"]], "Arbiter": [[22, "module-sol_usb.gateware.stream.arbiter"]], "Generator": [[22, "module-sol_usb.gateware.stream.generator"]], "Analyzer": [[23, "module-sol_usb.gateware.usb.analyzer"]], "USB": [[24, "usb"]], "Request": [[25, "request"], [36, "module-sol_usb.gateware.usb.usb2.request"], [39, "module-sol_usb.gateware.usb.usb3.application.request"], [46, "module-sol_usb.gateware.usb.usb3.request"]], "Control": [[25, "module-sol_usb.gateware.usb.request.control"], [27, "module-sol_usb.gateware.usb.usb2.control"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.control"]], "Standard": [[25, "module-sol_usb.gateware.usb.request.standard"], [46, "module-sol_usb.gateware.usb.usb3.request.standard"]], "Windows": [[25, "module-sol_usb.gateware.usb.request.windows"]], "Descriptor": [[28, "module-sol_usb.gateware.usb.usb2.descriptor"], [39, "module-sol_usb.gateware.usb.usb3.application.descriptor"]], "Memory layout": [[28, "memory-layout"]], "Type offsets and number of entries": [[28, "type-offsets-and-number-of-entries"]], "Index offsets and length of descriptor": [[28, "index-offsets-and-length-of-descriptor"]], "Data": [[28, "data"], [43, "module-sol_usb.gateware.usb.usb3.link.data"], [45, "module-sol_usb.gateware.usb.usb3.protocol.data"]], "Deserializer": [[29, "module-sol_usb.gateware.usb.usb2.deserializer"]], "Device": [[30, "module-sol_usb.gateware.usb.usb2.device"], [40, "module-sol_usb.gateware.usb.usb3.device"]], "Return value": [[30, "return-value"]], "Endpoint": [[31, "endpoint"], [45, "module-sol_usb.gateware.usb.usb3.protocol.endpoint"]], "Gateware Endpoint Interfaces": [[31, "gateware-endpoint-interfaces"]], "Exclusivity": [[31, "exclusivity"]], "Endpoints": [[32, "module-sol_usb.gateware.usb.usb2.endpoints"], [41, "module-sol_usb.gateware.usb.usb3.endpoints"]], "Isochronous": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.isochronous"]], "Status": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.status"]], "USB2": [[33, "usb2"]], "Conceptual Components": [[33, "conceptual-components"]], "Token Detector": [[33, "token-detector"]], "Handshake Detector": [[33, "handshake-detector"]], "Data Packet Receiver": [[33, "data-packet-receiver"]], "Device State Manager": [[33, "device-state-manager"]], "Handshake Generator": [[33, "handshake-generator"]], "Data Packet Transmitter": [[33, "data-packet-transmitter"]], "Data CRC Unit": [[33, "data-crc-unit"]], "Interpacket Timer": [[33, "interpacket-timer"]], "Reset/Suspend Sequencer": [[33, "reset-suspend-sequencer"]], "Interfaces": [[34, "module-sol_usb.gateware.usb.usb2.interfaces"]], "EP-Tri": [[34, "ep-tri"]], "Packet": [[35, "module-sol_usb.gateware.usb.usb2.packet"]], "Reset": [[37, "module-sol_usb.gateware.usb.usb2.reset"]], "Transfer": [[38, "module-sol_usb.gateware.usb.usb2.transfer"]], "Application": [[39, "module-sol_usb.gateware.usb.usb3.application"]], "USB3": [[42, "usb3"]], "Link": [[43, "module-sol_usb.gateware.usb.usb3.link"]], "Command": [[43, "module-sol_usb.gateware.usb.usb3.link.command"]], "CRC": [[43, "module-sol_usb.gateware.usb.usb3.link.crc"]], "Header": [[43, "module-sol_usb.gateware.usb.usb3.link.header"]], "Idle": [[43, "module-sol_usb.gateware.usb.usb3.link.idle"]], "Layer": [[43, "module-sol_usb.gateware.usb.usb3.link.layer"], [44, "module-sol_usb.gateware.usb.usb3.physical.layer"], [45, "module-sol_usb.gateware.usb.usb3.protocol.layer"]], "LTSSM": [[43, "module-sol_usb.gateware.usb.usb3.link.ltssm"]], "Ordered Sets": [[43, "module-sol_usb.gateware.usb.usb3.link.ordered_sets"]], "Receiver": [[43, "module-sol_usb.gateware.usb.usb3.link.receiver"]], "Timers": [[43, "module-sol_usb.gateware.usb.usb3.link.timers"]], "Transmitter": [[43, "module-sol_usb.gateware.usb.usb3.link.transmitter"]], "Physical": [[44, "module-sol_usb.gateware.usb.usb3.physical"]], "Alignment": [[44, "module-sol_usb.gateware.usb.usb3.physical.alignment"]], "Coding": [[44, "module-sol_usb.gateware.usb.usb3.physical.coding"]], "CTC": [[44, "module-sol_usb.gateware.usb.usb3.physical.ctc"]], "LFPS": [[44, "module-sol_usb.gateware.usb.usb3.physical.lfps"]], "Power": [[44, "module-sol_usb.gateware.usb.usb3.physical.power"]], "Scrambling": [[44, "module-sol_usb.gateware.usb.usb3.physical.scrambling"]], "Protocol": [[45, "module-sol_usb.gateware.usb.usb3.protocol"]], "Link Management": [[45, "module-sol_usb.gateware.usb.usb3.protocol.link_management"]], "Timestamp": [[45, "module-sol_usb.gateware.usb.usb3.protocol.timestamp"]], "Transaction": [[45, "module-sol_usb.gateware.usb.usb3.protocol.transaction"]], "Getting Started": [[47, "getting-started"]], "Todo": [[47, "id1"], [53, "id1"], [54, "id1"]], "Prerequisites": [[47, "prerequisites"], [48, "prerequisites"]], "==========================\nSelf-made Hardware Bringup": [[48, "self-made-hardware-bringup"]], "Bring-up Process": [[48, "bring-up-process"]], "Build/upload Saturn-V": [[48, "build-upload-saturn-v"]], "SOL On Your Own Hardware": [[49, "sol-on-your-own-hardware"]], "High-Speed via a ULPI PHY": [[49, "high-speed-via-a-ulpi-phy"]], "Full-Speed using FPGA I/O": [[49, "full-speed-using-fpga-i-o"]], "Hardware": [[50, "hardware"]], "SOL: USB Gateware Library": [[51, "sol-usb-gateware-library"]], "Installation": [[52, "installation"]], "Installing Prerequisites": [[52, "installing-prerequisites"]], "Installing Python": [[52, "installing-python"]], "Installing Yosys": [[52, "installing-yosys"]], "Installing Torii": [[52, "installing-torii"]], "Installing SOL": [[52, "installing-sol"]], "Latest release": [[52, "latest-release"]], "Development snapshot": [[52, "development-snapshot"]], "Editable development snapshot": [[52, "editable-development-snapshot"]], "Introduction": [[53, "introduction"]], "Tutorials": [[54, "tutorials"]]}, "indexentries": {"gatewarephy (class in sol_usb.gateware.interface.gateware_phy)": [[3, "sol_usb.gateware.interface.gateware_phy.GatewarePHY"]], "module": [[3, "module-sol_usb.gateware.interface.gateware_phy"], [4, "module-sol_usb.gateware.interface.gateware_phy.phy"], [5, "module-sol_usb.gateware.interface.gateware_phy.receiver"], [6, "module-sol_usb.gateware.interface.gateware_phy.transmitter"], [7, "module-sol_usb.gateware.interface"], [8, "module-sol_usb.gateware.interface.pipe"], [9, "module-sol_usb.gateware.interface.serdes_phy.ecp5"], [10, "module-sol_usb.gateware.interface.serdes_phy"], [11, "module-sol_usb.gateware.interface.serdes_phy.lfps"], [12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtp"], [12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtx"], [13, "module-sol_usb.gateware.interface.ulpi"], [14, "module-sol_usb.gateware.interface.utmi"], [17, "module-sol_usb.gateware.soc"], [18, "module-sol_usb.gateware.soc.memory"], [22, "module-sol_usb.gateware.stream"], [22, "module-sol_usb.gateware.stream.arbiter"], [22, "module-sol_usb.gateware.stream.generator"], [23, "module-sol_usb.gateware.usb.analyzer"], [24, "module-sol_usb.gateware.usb"], [25, "module-sol_usb.gateware.usb.request.control"], [25, "module-sol_usb.gateware.usb.request.interface"], [25, "module-sol_usb.gateware.usb.request.standard"], [25, "module-sol_usb.gateware.usb.request.windows"], [25, "module-sol_usb.gateware.usb.request.windows.descriptorSet"], [26, "module-sol_usb.gateware.usb.stream"], [27, "module-sol_usb.gateware.usb.usb2.control"], [28, "module-sol_usb.gateware.usb.usb2.descriptor"], [29, "module-sol_usb.gateware.usb.usb2.deserializer"], [30, "module-sol_usb.gateware.usb.usb2.device"], [31, "module-sol_usb.gateware.usb.usb2.endpoint"], [32, "module-sol_usb.gateware.usb.usb2.endpoints"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.isochronous"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.status"], [32, "module-sol_usb.gateware.usb.usb2.endpoints.stream"], [33, "module-sol_usb.gateware.usb.usb2"], [34, "module-sol_usb.gateware.usb.usb2.interfaces"], [35, "module-sol_usb.gateware.usb.usb2.packet"], [36, "module-sol_usb.gateware.usb.usb2.request"], [37, "module-sol_usb.gateware.usb.usb2.reset"], [38, "module-sol_usb.gateware.usb.usb2.transfer"], [39, "module-sol_usb.gateware.usb.usb3.application"], [39, "module-sol_usb.gateware.usb.usb3.application.descriptor"], [39, "module-sol_usb.gateware.usb.usb3.application.request"], [40, "module-sol_usb.gateware.usb.usb3.device"], [41, "module-sol_usb.gateware.usb.usb3.endpoints"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.control"], [41, "module-sol_usb.gateware.usb.usb3.endpoints.stream"], [42, "module-sol_usb.gateware.usb.usb3"], [43, "module-sol_usb.gateware.usb.usb3.link"], [43, "module-sol_usb.gateware.usb.usb3.link.command"], [43, "module-sol_usb.gateware.usb.usb3.link.crc"], [43, "module-sol_usb.gateware.usb.usb3.link.data"], [43, "module-sol_usb.gateware.usb.usb3.link.header"], [43, "module-sol_usb.gateware.usb.usb3.link.idle"], [43, "module-sol_usb.gateware.usb.usb3.link.layer"], [43, "module-sol_usb.gateware.usb.usb3.link.ltssm"], [43, "module-sol_usb.gateware.usb.usb3.link.ordered_sets"], [43, "module-sol_usb.gateware.usb.usb3.link.receiver"], [43, "module-sol_usb.gateware.usb.usb3.link.timers"], [43, "module-sol_usb.gateware.usb.usb3.link.transmitter"], [44, "module-sol_usb.gateware.usb.usb3.physical"], [44, "module-sol_usb.gateware.usb.usb3.physical.alignment"], [44, "module-sol_usb.gateware.usb.usb3.physical.coding"], [44, "module-sol_usb.gateware.usb.usb3.physical.ctc"], [44, "module-sol_usb.gateware.usb.usb3.physical.layer"], [44, "module-sol_usb.gateware.usb.usb3.physical.lfps"], [44, "module-sol_usb.gateware.usb.usb3.physical.power"], [44, "module-sol_usb.gateware.usb.usb3.physical.scrambling"], [45, "module-sol_usb.gateware.usb.usb3.protocol"], [45, "module-sol_usb.gateware.usb.usb3.protocol.data"], [45, "module-sol_usb.gateware.usb.usb3.protocol.endpoint"], [45, "module-sol_usb.gateware.usb.usb3.protocol.layer"], [45, "module-sol_usb.gateware.usb.usb3.protocol.link_management"], [45, "module-sol_usb.gateware.usb.usb3.protocol.timestamp"], [45, "module-sol_usb.gateware.usb.usb3.protocol.transaction"], [46, "module-sol_usb.gateware.usb.usb3.request"], [46, "module-sol_usb.gateware.usb.usb3.request.standard"]], "sol_usb.gateware.interface.gateware_phy": [[3, "module-sol_usb.gateware.interface.gateware_phy"]], "gatewarephy (class in sol_usb.gateware.interface.gateware_phy.phy)": [[4, "sol_usb.gateware.interface.gateware_phy.phy.GatewarePHY"]], "sol_usb.gateware.interface.gateware_phy.phy": [[4, "module-sol_usb.gateware.interface.gateware_phy.phy"]], "rxbitstuffremover (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxBitstuffRemover"]], "rxclockdatarecovery (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxClockDataRecovery"]], "rxnrzidecoder (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxNRZIDecoder"]], "rxpacketdetect (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxPacketDetect"]], "rxshifter (class in sol_usb.gateware.interface.gateware_phy.receiver)": [[5, "sol_usb.gateware.interface.gateware_phy.receiver.RxShifter"]], "sol_usb.gateware.interface.gateware_phy.receiver": [[5, "module-sol_usb.gateware.interface.gateware_phy.receiver"]], "txbitstuffer (class in sol_usb.gateware.interface.gateware_phy.transmitter)": [[6, "sol_usb.gateware.interface.gateware_phy.transmitter.TxBitstuffer"]], "txnrziencoder (class in sol_usb.gateware.interface.gateware_phy.transmitter)": [[6, "sol_usb.gateware.interface.gateware_phy.transmitter.TxNRZIEncoder"]], "txshifter (class in sol_usb.gateware.interface.gateware_phy.transmitter)": [[6, "sol_usb.gateware.interface.gateware_phy.transmitter.TxShifter"]], "sol_usb.gateware.interface.gateware_phy.transmitter": [[6, "module-sol_usb.gateware.interface.gateware_phy.transmitter"]], "sol_usb.gateware.interface": [[7, "module-sol_usb.gateware.interface"]], "asyncpipeinterface (class in sol_usb.gateware.interface.pipe)": [[8, "sol_usb.gateware.interface.pipe.AsyncPIPEInterface"]], "gearedpipeinterface (class in sol_usb.gateware.interface.pipe)": [[8, "sol_usb.gateware.interface.pipe.GearedPIPEInterface"]], "pipeinterface (class in sol_usb.gateware.interface.pipe)": [[8, "sol_usb.gateware.interface.pipe.PIPEInterface"]], "sol_usb.gateware.interface.pipe": [[8, "module-sol_usb.gateware.interface.pipe"]], "ecp5serdes (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDes"]], "ecp5serdesconfiginterface (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesConfigInterface"]], "ecp5serdesequalizer (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesEqualizer"]], "ecp5serdesequalizerinterface (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesEqualizerInterface"]], "ecp5serdespipe (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesPIPE"]], "ecp5serdesregistertranslator (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesRegisterTranslator"]], "ecp5serdesresetsequencer (class in sol_usb.gateware.interface.serdes_phy.ecp5)": [[9, "sol_usb.gateware.interface.serdes_phy.ecp5.ECP5SerDesResetSequencer"]], "sol_usb.gateware.interface.serdes_phy.ecp5": [[9, "module-sol_usb.gateware.interface.serdes_phy.ecp5"]], "ecp5serdespipe (class in sol_usb.gateware.interface.serdes_phy)": [[10, "sol_usb.gateware.interface.serdes_phy.ECP5SerDesPIPE"]], "xc7gtpserdespipe (class in sol_usb.gateware.interface.serdes_phy)": [[10, "sol_usb.gateware.interface.serdes_phy.XC7GTPSerDesPIPE"]], "xc7gtxserdespipe (class in sol_usb.gateware.interface.serdes_phy)": [[10, "sol_usb.gateware.interface.serdes_phy.XC7GTXSerDesPIPE"]], "sol_usb.gateware.interface.serdes_phy": [[10, "module-sol_usb.gateware.interface.serdes_phy"]], "lfpssquarewavedetector (class in sol_usb.gateware.interface.serdes_phy.lfps)": [[11, "sol_usb.gateware.interface.serdes_phy.lfps.LFPSSquareWaveDetector"]], "lfpssquarewavegenerator (class in sol_usb.gateware.interface.serdes_phy.lfps)": [[11, "sol_usb.gateware.interface.serdes_phy.lfps.LFPSSquareWaveGenerator"]], "sol_usb.gateware.interface.serdes_phy.lfps": [[11, "module-sol_usb.gateware.interface.serdes_phy.lfps"]], "xc7gtpserdespipe (class in sol_usb.gateware.interface.serdes_phy.xc7_gtp)": [[12, "sol_usb.gateware.interface.serdes_phy.xc7_gtp.XC7GTPSerDesPIPE"]], "xc7gtxserdespipe (class in sol_usb.gateware.interface.serdes_phy.xc7_gtx)": [[12, "sol_usb.gateware.interface.serdes_phy.xc7_gtx.XC7GTXSerDesPIPE"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtp": [[12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtp"]], "sol_usb.gateware.interface.serdes_phy.xc7_gtx": [[12, "module-sol_usb.gateware.interface.serdes_phy.xc7_gtx"]], "ulpicontroltranslator (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIControlTranslator"]], "ulpiinterface (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIInterface"]], "ulpiregisterwindow (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIRegisterWindow"]], "ulpirxeventdecoder (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPIRxEventDecoder"]], "ulpitransmittranslator (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.ULPITransmitTranslator"]], "uplidatarecord (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.UPLIDataRecord"]], "uplidirrecord (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.UPLIDirRecord"]], "utmitranslator (class in sol_usb.gateware.interface.ulpi)": [[13, "sol_usb.gateware.interface.ulpi.UTMITranslator"]], "add_composite_register() (sol_usb.gateware.interface.ulpi.ulpicontroltranslator method)": [[13, "sol_usb.gateware.interface.ulpi.ULPIControlTranslator.add_composite_register"]], "add_extra_register() (sol_usb.gateware.interface.ulpi.utmitranslator method)": [[13, "sol_usb.gateware.interface.ulpi.UTMITranslator.add_extra_register"]], "populate_ulpi_registers() (sol_usb.gateware.interface.ulpi.ulpicontroltranslator method)": [[13, "sol_usb.gateware.interface.ulpi.ULPIControlTranslator.populate_ulpi_registers"]], "sol_usb.gateware.interface.ulpi": [[13, "module-sol_usb.gateware.interface.ulpi"]], "utmiinterface (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMIInterface"]], "utmiinterfacemultiplexer (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMIInterfaceMultiplexer"]], "utmioperatingmode (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMIOperatingMode"]], "utmiterminationselect (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMITerminationSelect"]], "utmitransmitinterface (class in sol_usb.gateware.interface.utmi)": [[14, "sol_usb.gateware.interface.utmi.UTMITransmitInterface"]], "attach() (sol_usb.gateware.interface.utmi.utmitransmitinterface method)": [[14, "sol_usb.gateware.interface.utmi.UTMITransmitInterface.attach"]], "sol_usb.gateware.interface.utmi": [[14, "module-sol_usb.gateware.interface.utmi"]], "sol_usb.gateware.soc": [[17, "module-sol_usb.gateware.soc"]], "wishboneram (class in sol_usb.gateware.soc.memory)": [[18, "sol_usb.gateware.soc.memory.WishboneRAM"]], "wishbonerom (class in sol_usb.gateware.soc.memory)": [[18, "sol_usb.gateware.soc.memory.WishboneROM"]], "sol_usb.gateware.soc.memory": [[18, "module-sol_usb.gateware.soc.memory"]], "constantstreamgenerator (class in sol_usb.gateware.stream.generator)": [[22, "sol_usb.gateware.stream.generator.ConstantStreamGenerator"]], "streamarbiter (class in sol_usb.gateware.stream.arbiter)": [[22, "sol_usb.gateware.stream.arbiter.StreamArbiter"]], "streaminterface (class in sol_usb.gateware.stream)": [[22, "sol_usb.gateware.stream.StreamInterface"]], "streammultiplexer (class in sol_usb.gateware.stream.arbiter)": [[22, "sol_usb.gateware.stream.arbiter.StreamMultiplexer"]], "streamserializer (class in sol_usb.gateware.stream.generator)": [[22, "sol_usb.gateware.stream.generator.StreamSerializer"]], "add_input() (sol_usb.gateware.stream.arbiter.streammultiplexer method)": [[22, "sol_usb.gateware.stream.arbiter.StreamMultiplexer.add_input"]], "add_stream() (sol_usb.gateware.stream.arbiter.streamarbiter method)": [[22, "sol_usb.gateware.stream.arbiter.StreamArbiter.add_stream"]], "sol_usb.gateware.stream": [[22, "module-sol_usb.gateware.stream"]], "sol_usb.gateware.stream.arbiter": [[22, "module-sol_usb.gateware.stream.arbiter"]], "sol_usb.gateware.stream.generator": [[22, "module-sol_usb.gateware.stream.generator"]], "stream_eq() (sol_usb.gateware.stream.streaminterface method)": [[22, "sol_usb.gateware.stream.StreamInterface.stream_eq"]], "tap() (sol_usb.gateware.stream.streaminterface method)": [[22, "sol_usb.gateware.stream.StreamInterface.tap"]], "usbanalyzer (class in sol_usb.gateware.usb.analyzer)": [[23, "sol_usb.gateware.usb.analyzer.USBAnalyzer"]], "sol_usb.gateware.usb.analyzer": [[23, "module-sol_usb.gateware.usb.analyzer"]], "sol_usb.gateware.usb": [[24, "module-sol_usb.gateware.usb"]], "controlrequesthandler (class in sol_usb.gateware.usb.request.control)": [[25, "sol_usb.gateware.usb.request.control.ControlRequestHandler"]], "getdescriptorsethandler (class in sol_usb.gateware.usb.request.windows.descriptorset)": [[25, "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler"]], "setuppacket (class in sol_usb.gateware.usb.request.interface)": [[25, "sol_usb.gateware.usb.request.interface.SetupPacket"]], "standardrequesthandler (class in sol_usb.gateware.usb.request.standard)": [[25, "sol_usb.gateware.usb.request.standard.StandardRequestHandler"]], "windowsrequesthandler (class in sol_usb.gateware.usb.request.windows)": [[25, "sol_usb.gateware.usb.request.windows.WindowsRequestHandler"]], "elaborate() (sol_usb.gateware.usb.request.windows.windowsrequesthandler method)": [[25, "sol_usb.gateware.usb.request.windows.WindowsRequestHandler.elaborate"]], "elaborate() (sol_usb.gateware.usb.request.windows.descriptorset.getdescriptorsethandler method)": [[25, "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler.elaborate"]], "generaterom() (sol_usb.gateware.usb.request.windows.descriptorset.getdescriptorsethandler method)": [[25, "sol_usb.gateware.usb.request.windows.descriptorSet.GetDescriptorSetHandler.generateROM"]], "handle_register_write_request() (sol_usb.gateware.usb.request.control.controlrequesthandler method)": [[25, "sol_usb.gateware.usb.request.control.ControlRequestHandler.handle_register_write_request"]], "handle_simple_data_request() (sol_usb.gateware.usb.request.control.controlrequesthandler method)": [[25, "sol_usb.gateware.usb.request.control.ControlRequestHandler.handle_simple_data_request"]], "handlercondition() (sol_usb.gateware.usb.request.windows.windowsrequesthandler method)": [[25, "sol_usb.gateware.usb.request.windows.WindowsRequestHandler.handlerCondition"]], "sol_usb.gateware.usb.request.control": [[25, "module-sol_usb.gateware.usb.request.control"]], "sol_usb.gateware.usb.request.interface": [[25, "module-sol_usb.gateware.usb.request.interface"]], "sol_usb.gateware.usb.request.standard": [[25, "module-sol_usb.gateware.usb.request.standard"]], "sol_usb.gateware.usb.request.windows": [[25, "module-sol_usb.gateware.usb.request.windows"]], "sol_usb.gateware.usb.request.windows.descriptorset": [[25, "module-sol_usb.gateware.usb.request.windows.descriptorSet"]], "superspeedstreamarbiter (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.SuperSpeedStreamArbiter"]], "superspeedstreaminterface (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.SuperSpeedStreamInterface"]], "usbinstreaminterface (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBInStreamInterface"]], "usboutstreamboundarydetector (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamBoundaryDetector"]], "usboutstreaminterface (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamInterface"]], "usbrawsuperspeedstream (class in sol_usb.gateware.usb.stream)": [[26, "sol_usb.gateware.usb.stream.USBRawSuperSpeedStream"]], "bridge_to() (sol_usb.gateware.usb.stream.usbinstreaminterface method)": [[26, "sol_usb.gateware.usb.stream.USBInStreamInterface.bridge_to"]], "bridge_to() (sol_usb.gateware.usb.stream.usboutstreaminterface method)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamInterface.bridge_to"]], "sol_usb.gateware.usb.stream": [[26, "module-sol_usb.gateware.usb.stream"]], "stream_eq() (sol_usb.gateware.usb.stream.usboutstreaminterface method)": [[26, "sol_usb.gateware.usb.stream.USBOutStreamInterface.stream_eq"]], "stream_eq() (sol_usb.gateware.usb.stream.usbrawsuperspeedstream method)": [[26, "sol_usb.gateware.usb.stream.USBRawSuperSpeedStream.stream_eq"]], "usbcontrolendpoint (class in sol_usb.gateware.usb.usb2.control)": [[27, "sol_usb.gateware.usb.usb2.control.USBControlEndpoint"]], "add_request_handler() (sol_usb.gateware.usb.usb2.control.usbcontrolendpoint method)": [[27, "sol_usb.gateware.usb.usb2.control.USBControlEndpoint.add_request_handler"]], "add_standard_request_handlers() (sol_usb.gateware.usb.usb2.control.usbcontrolendpoint method)": [[27, "sol_usb.gateware.usb.usb2.control.USBControlEndpoint.add_standard_request_handlers"]], "sol_usb.gateware.usb.usb2.control": [[27, "module-sol_usb.gateware.usb.usb2.control"]], "getdescriptorhandlerblock (class in sol_usb.gateware.usb.usb2.descriptor)": [[28, "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerBlock"]], "getdescriptorhandlerdistributed (class in sol_usb.gateware.usb.usb2.descriptor)": [[28, "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerDistributed"]], "usbdescriptorstreamgenerator (class in sol_usb.gateware.usb.usb2.descriptor)": [[28, "sol_usb.gateware.usb.usb2.descriptor.USBDescriptorStreamGenerator"]], "generate_rom_content() (sol_usb.gateware.usb.usb2.descriptor.getdescriptorhandlerblock method)": [[28, "sol_usb.gateware.usb.usb2.descriptor.GetDescriptorHandlerBlock.generate_rom_content"]], "sol_usb.gateware.usb.usb2.descriptor": [[28, "module-sol_usb.gateware.usb.usb2.descriptor"]], "streamdeserializer (class in sol_usb.gateware.usb.usb2.deserializer)": [[29, "sol_usb.gateware.usb.usb2.deserializer.StreamDeserializer"]], "sol_usb.gateware.usb.usb2.deserializer": [[29, "module-sol_usb.gateware.usb.usb2.deserializer"]], "usbdevice (class in sol_usb.gateware.usb.usb2.device)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice"]], "add_control_endpoint() (sol_usb.gateware.usb.usb2.device.usbdevice method)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice.add_control_endpoint"]], "add_endpoint() (sol_usb.gateware.usb.usb2.device.usbdevice method)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice.add_endpoint"]], "add_standard_control_endpoint() (sol_usb.gateware.usb.usb2.device.usbdevice method)": [[30, "sol_usb.gateware.usb.usb2.device.USBDevice.add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb2.device": [[30, "module-sol_usb.gateware.usb.usb2.device"]], "endpointinterface (class in sol_usb.gateware.usb.usb2.endpoint)": [[31, "sol_usb.gateware.usb.usb2.endpoint.EndpointInterface"]], "usbendpointmultiplexer (class in sol_usb.gateware.usb.usb2.endpoint)": [[31, "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer"]], "add_interface() (sol_usb.gateware.usb.usb2.endpoint.usbendpointmultiplexer method)": [[31, "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer.add_interface"]], "or_join_interface_signals() (sol_usb.gateware.usb.usb2.endpoint.usbendpointmultiplexer method)": [[31, "sol_usb.gateware.usb.usb2.endpoint.USBEndpointMultiplexer.or_join_interface_signals"]], "sol_usb.gateware.usb.usb2.endpoint": [[31, "module-sol_usb.gateware.usb.usb2.endpoint"]], "usbisochronousinendpoint (class in sol_usb.gateware.usb.usb2.endpoints.isochronous)": [[32, "sol_usb.gateware.usb.usb2.endpoints.isochronous.USBIsochronousInEndpoint"]], "usbmultibytestreaminendpoint (class in sol_usb.gateware.usb.usb2.endpoints.stream)": [[32, "sol_usb.gateware.usb.usb2.endpoints.stream.USBMultibyteStreamInEndpoint"]], "usbsignalinendpoint (class in sol_usb.gateware.usb.usb2.endpoints.status)": [[32, "sol_usb.gateware.usb.usb2.endpoints.status.USBSignalInEndpoint"]], "usbstreaminendpoint (class in sol_usb.gateware.usb.usb2.endpoints.stream)": [[32, "sol_usb.gateware.usb.usb2.endpoints.stream.USBStreamInEndpoint"]], "usbstreamoutendpoint (class in sol_usb.gateware.usb.usb2.endpoints.stream)": [[32, "sol_usb.gateware.usb.usb2.endpoints.stream.USBStreamOutEndpoint"]], "sol_usb.gateware.usb.usb2.endpoints": [[32, "module-sol_usb.gateware.usb.usb2.endpoints"]], "sol_usb.gateware.usb.usb2.endpoints.isochronous": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.isochronous"]], "sol_usb.gateware.usb.usb2.endpoints.status": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.status"]], "sol_usb.gateware.usb.usb2.endpoints.stream": [[32, "module-sol_usb.gateware.usb.usb2.endpoints.stream"]], "usbpacketid (class in sol_usb.gateware.usb.usb2)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID"]], "usbspeed (class in sol_usb.gateware.usb.usb2)": [[33, "sol_usb.gateware.usb.usb2.USBSpeed"]], "byte() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.byte"]], "category() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.category"]], "direction() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.direction"]], "from_byte() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.from_byte"]], "from_int() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.from_int"]], "from_name() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.from_name"]], "is_data() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_data"]], "is_handshake() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_handshake"]], "is_invalid() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_invalid"]], "is_token() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.is_token"]], "parse() (sol_usb.gateware.usb.usb2.usbpacketid class method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.parse"]], "sol_usb.gateware.usb.usb2": [[33, "module-sol_usb.gateware.usb.usb2"]], "summarize() (sol_usb.gateware.usb.usb2.usbpacketid method)": [[33, "sol_usb.gateware.usb.usb2.USBPacketID.summarize"]], "sol_usb.gateware.usb.usb2.interfaces": [[34, "module-sol_usb.gateware.usb.usb2.interfaces"]], "datacrcinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.DataCRCInterface"]], "handshakeexchangeinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.HandshakeExchangeInterface"]], "interpackettimerinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.InterpacketTimerInterface"]], "tokendetectorinterface (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.TokenDetectorInterface"]], "usbdatapacketcrc (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketCRC"]], "usbdatapacketdeserializer (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketDeserializer"]], "usbdatapacketgenerator (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketGenerator"]], "usbdatapacketreceiver (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketReceiver"]], "usbhandshakedetector (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBHandshakeDetector"]], "usbhandshakegenerator (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBHandshakeGenerator"]], "usbinterpackettimer (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBInterpacketTimer"]], "usbtokendetector (class in sol_usb.gateware.usb.usb2.packet)": [[35, "sol_usb.gateware.usb.usb2.packet.USBTokenDetector"]], "add_interface() (sol_usb.gateware.usb.usb2.packet.usbdatapacketcrc method)": [[35, "sol_usb.gateware.usb.usb2.packet.USBDataPacketCRC.add_interface"]], "add_interface() (sol_usb.gateware.usb.usb2.packet.usbinterpackettimer method)": [[35, "sol_usb.gateware.usb.usb2.packet.USBInterpacketTimer.add_interface"]], "attach() (sol_usb.gateware.usb.usb2.packet.interpackettimerinterface method)": [[35, "sol_usb.gateware.usb.usb2.packet.InterpacketTimerInterface.attach"]], "sol_usb.gateware.usb.usb2.packet": [[35, "module-sol_usb.gateware.usb.usb2.packet"]], "requesthandlerinterface (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.RequestHandlerInterface"]], "stallonlyrequesthandler (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.StallOnlyRequestHandler"]], "usbrequesthandler (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandler"]], "usbrequesthandlermultiplexer (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandlerMultiplexer"]], "usbsetupdecoder (class in sol_usb.gateware.usb.usb2.request)": [[36, "sol_usb.gateware.usb.usb2.request.USBSetupDecoder"]], "add_interface() (sol_usb.gateware.usb.usb2.request.usbrequesthandlermultiplexer method)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandlerMultiplexer.add_interface"]], "send_zlp() (sol_usb.gateware.usb.usb2.request.usbrequesthandler method)": [[36, "sol_usb.gateware.usb.usb2.request.USBRequestHandler.send_zlp"]], "sol_usb.gateware.usb.usb2.request": [[36, "module-sol_usb.gateware.usb.usb2.request"]], "usbresetsequencer (class in sol_usb.gateware.usb.usb2.reset)": [[37, "sol_usb.gateware.usb.usb2.reset.USBResetSequencer"]], "sol_usb.gateware.usb.usb2.reset": [[37, "module-sol_usb.gateware.usb.usb2.reset"]], "usbintransfermanager (class in sol_usb.gateware.usb.usb2.transfer)": [[38, "sol_usb.gateware.usb.usb2.transfer.USBInTransferManager"]], "sol_usb.gateware.usb.usb2.transfer": [[38, "module-sol_usb.gateware.usb.usb2.transfer"]], "getdescriptorhandler (class in sol_usb.gateware.usb.usb3.application.descriptor)": [[39, "sol_usb.gateware.usb.usb3.application.descriptor.GetDescriptorHandler"]], "stallonlyrequesthandler (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.StallOnlyRequestHandler"]], "superspeedrequesthandler (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandler"]], "superspeedrequesthandlerinterface (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerInterface"]], "superspeedrequesthandlermultiplexer (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerMultiplexer"]], "superspeedsetupdecoder (class in sol_usb.gateware.usb.usb3.application.request)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedSetupDecoder"]], "add_interface() (sol_usb.gateware.usb.usb3.application.request.superspeedrequesthandlermultiplexer method)": [[39, "sol_usb.gateware.usb.usb3.application.request.SuperSpeedRequestHandlerMultiplexer.add_interface"]], "sol_usb.gateware.usb.usb3.application": [[39, "module-sol_usb.gateware.usb.usb3.application"]], "sol_usb.gateware.usb.usb3.application.descriptor": [[39, "module-sol_usb.gateware.usb.usb3.application.descriptor"]], "sol_usb.gateware.usb.usb3.application.request": [[39, "module-sol_usb.gateware.usb.usb3.application.request"]], "usbsuperspeeddevice (class in sol_usb.gateware.usb.usb3.device)": [[40, "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice"]], "add_endpoint() (sol_usb.gateware.usb.usb3.device.usbsuperspeeddevice method)": [[40, "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice.add_endpoint"]], "add_standard_control_endpoint() (sol_usb.gateware.usb.usb3.device.usbsuperspeeddevice method)": [[40, "sol_usb.gateware.usb.usb3.device.USBSuperSpeedDevice.add_standard_control_endpoint"]], "sol_usb.gateware.usb.usb3.device": [[40, "module-sol_usb.gateware.usb.usb3.device"]], "superspeedstreaminendpoint (class in sol_usb.gateware.usb.usb3.endpoints.stream)": [[41, "sol_usb.gateware.usb.usb3.endpoints.stream.SuperSpeedStreamInEndpoint"]], "usb3controlendpoint (class in sol_usb.gateware.usb.usb3.endpoints)": [[41, "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint"]], "usb3controlendpoint (class in sol_usb.gateware.usb.usb3.endpoints.control)": [[41, "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint"]], "add_request_handler() (sol_usb.gateware.usb.usb3.endpoints.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint.add_request_handler"]], "add_request_handler() (sol_usb.gateware.usb.usb3.endpoints.control.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint.add_request_handler"]], "add_standard_request_handlers() (sol_usb.gateware.usb.usb3.endpoints.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.USB3ControlEndpoint.add_standard_request_handlers"]], "add_standard_request_handlers() (sol_usb.gateware.usb.usb3.endpoints.control.usb3controlendpoint method)": [[41, "sol_usb.gateware.usb.usb3.endpoints.control.USB3ControlEndpoint.add_standard_request_handlers"]], "sol_usb.gateware.usb.usb3.endpoints": [[41, "module-sol_usb.gateware.usb.usb3.endpoints"]], "sol_usb.gateware.usb.usb3.endpoints.control": [[41, "module-sol_usb.gateware.usb.usb3.endpoints.control"]], "sol_usb.gateware.usb.usb3.endpoints.stream": [[41, "module-sol_usb.gateware.usb.usb3.endpoints.stream"]], "sol_usb.gateware.usb.usb3": [[42, "module-sol_usb.gateware.usb.usb3"]], "dataheaderpacket (class in sol_usb.gateware.usb.usb3.link.data)": [[43, "sol_usb.gateware.usb.usb3.link.data.DataHeaderPacket"]], "datapacketpayloadcrc (class in sol_usb.gateware.usb.usb3.link.crc)": [[43, "sol_usb.gateware.usb.usb3.link.crc.DataPacketPayloadCRC"]], "datapacketreceiver (class in sol_usb.gateware.usb.usb3.link.data)": [[43, "sol_usb.gateware.usb.usb3.link.data.DataPacketReceiver"]], "datapackettransmitter (class in sol_usb.gateware.usb.usb3.link.data)": [[43, "sol_usb.gateware.usb.usb3.link.data.DataPacketTransmitter"]], "headerpacket (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderPacket"]], "headerpacketcrc (class in sol_usb.gateware.usb.usb3.link.crc)": [[43, "sol_usb.gateware.usb.usb3.link.crc.HeaderPacketCRC"]], "headerpacketreceiver (class in sol_usb.gateware.usb.usb3.link.receiver)": [[43, "sol_usb.gateware.usb.usb3.link.receiver.HeaderPacketReceiver"]], "headerqueue (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue"]], "headerqueuearbiter (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueArbiter"]], "headerqueuedemultiplexer (class in sol_usb.gateware.usb.usb3.link.header)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueDemultiplexer"]], "idlehandshakehandler (class in sol_usb.gateware.usb.usb3.link.idle)": [[43, "sol_usb.gateware.usb.usb3.link.idle.IdleHandshakeHandler"]], "ltssmcontroller (class in sol_usb.gateware.usb.usb3.link.ltssm)": [[43, "sol_usb.gateware.usb.usb3.link.ltssm.LTSSMController"]], "linkcommanddetector (class in sol_usb.gateware.usb.usb3.link.command)": [[43, "sol_usb.gateware.usb.usb3.link.command.LinkCommandDetector"]], "linkcommandgenerator (class in sol_usb.gateware.usb.usb3.link.command)": [[43, "sol_usb.gateware.usb.usb3.link.command.LinkCommandGenerator"]], "linkmaintenancetimers (class in sol_usb.gateware.usb.usb3.link.timers)": [[43, "sol_usb.gateware.usb.usb3.link.timers.LinkMaintenanceTimers"]], "packettransmitter (class in sol_usb.gateware.usb.usb3.link.transmitter)": [[43, "sol_usb.gateware.usb.usb3.link.transmitter.PacketTransmitter"]], "rawheaderpacketreceiver (class in sol_usb.gateware.usb.usb3.link.receiver)": [[43, "sol_usb.gateware.usb.usb3.link.receiver.RawHeaderPacketReceiver"]], "rawpackettransmitter (class in sol_usb.gateware.usb.usb3.link.transmitter)": [[43, "sol_usb.gateware.usb.usb3.link.transmitter.RawPacketTransmitter"]], "tsburstdetector (class in sol_usb.gateware.usb.usb3.link.ordered_sets)": [[43, "sol_usb.gateware.usb.usb3.link.ordered_sets.TSBurstDetector"]], "tsemitter (class in sol_usb.gateware.usb.usb3.link.ordered_sets)": [[43, "sol_usb.gateware.usb.usb3.link.ordered_sets.TSEmitter"]], "tstransceiver (class in sol_usb.gateware.usb.usb3.link.ordered_sets)": [[43, "sol_usb.gateware.usb.usb3.link.ordered_sets.TSTransceiver"]], "usb3linklayer (class in sol_usb.gateware.usb.usb3.link)": [[43, "sol_usb.gateware.usb.usb3.link.USB3LinkLayer"]], "usb3linklayer (class in sol_usb.gateware.usb.usb3.link.layer)": [[43, "sol_usb.gateware.usb.usb3.link.layer.USB3LinkLayer"]], "add_consumer() (sol_usb.gateware.usb.usb3.link.header.headerqueuedemultiplexer method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueDemultiplexer.add_consumer"]], "add_producer() (sol_usb.gateware.usb.usb3.link.header.headerqueuearbiter method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueueArbiter.add_producer"]], "compute_usb_crc5() (in module sol_usb.gateware.usb.usb3.link.crc)": [[43, "sol_usb.gateware.usb.usb3.link.crc.compute_usb_crc5"]], "get_layout() (sol_usb.gateware.usb.usb3.link.header.headerpacket class method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderPacket.get_layout"]], "get_type() (sol_usb.gateware.usb.usb3.link.header.headerpacket method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderPacket.get_type"]], "get_type() (sol_usb.gateware.usb.usb3.link.header.headerqueue method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue.get_type"]], "header_eq() (sol_usb.gateware.usb.usb3.link.header.headerqueue method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue.header_eq"]], "sol_usb.gateware.usb.usb3.link": [[43, "module-sol_usb.gateware.usb.usb3.link"]], "sol_usb.gateware.usb.usb3.link.command": [[43, "module-sol_usb.gateware.usb.usb3.link.command"]], "sol_usb.gateware.usb.usb3.link.crc": [[43, "module-sol_usb.gateware.usb.usb3.link.crc"]], "sol_usb.gateware.usb.usb3.link.data": [[43, "module-sol_usb.gateware.usb.usb3.link.data"]], "sol_usb.gateware.usb.usb3.link.header": [[43, "module-sol_usb.gateware.usb.usb3.link.header"]], "sol_usb.gateware.usb.usb3.link.idle": [[43, "module-sol_usb.gateware.usb.usb3.link.idle"]], "sol_usb.gateware.usb.usb3.link.layer": [[43, "module-sol_usb.gateware.usb.usb3.link.layer"]], "sol_usb.gateware.usb.usb3.link.ltssm": [[43, "module-sol_usb.gateware.usb.usb3.link.ltssm"]], "sol_usb.gateware.usb.usb3.link.ordered_sets": [[43, "module-sol_usb.gateware.usb.usb3.link.ordered_sets"]], "sol_usb.gateware.usb.usb3.link.receiver": [[43, "module-sol_usb.gateware.usb.usb3.link.receiver"]], "sol_usb.gateware.usb.usb3.link.timers": [[43, "module-sol_usb.gateware.usb.usb3.link.timers"]], "sol_usb.gateware.usb.usb3.link.transmitter": [[43, "module-sol_usb.gateware.usb.usb3.link.transmitter"]], "stream_eq() (sol_usb.gateware.usb.usb3.link.header.headerqueue method)": [[43, "sol_usb.gateware.usb.usb3.link.header.HeaderQueue.stream_eq"]], "ctcskipinserter (class in sol_usb.gateware.usb.usb3.physical.ctc)": [[44, "sol_usb.gateware.usb.usb3.physical.ctc.CTCSkipInserter"]], "ctcskipremover (class in sol_usb.gateware.usb.usb3.physical.ctc)": [[44, "sol_usb.gateware.usb.usb3.physical.ctc.CTCSkipRemover"]], "d() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.D"]], "descrambler (class in sol_usb.gateware.usb.usb3.physical.scrambling)": [[44, "sol_usb.gateware.usb.usb3.physical.scrambling.Descrambler"]], "k() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.K"]], "lfpstransceiver (class in sol_usb.gateware.usb.usb3.physical.lfps)": [[44, "sol_usb.gateware.usb.usb3.physical.lfps.LFPSTransceiver"]], "linkpartnerdetector (class in sol_usb.gateware.usb.usb3.physical.power)": [[44, "sol_usb.gateware.usb.usb3.physical.power.LinkPartnerDetector"]], "namedsymbol (class in sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol"]], "phyresetcontroller (class in sol_usb.gateware.usb.usb3.physical.power)": [[44, "sol_usb.gateware.usb.usb3.physical.power.PHYResetController"]], "rxpacketaligner (class in sol_usb.gateware.usb.usb3.physical.alignment)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxPacketAligner"]], "rxwordaligner (class in sol_usb.gateware.usb.usb3.physical.alignment)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxWordAligner"]], "scrambler (class in sol_usb.gateware.usb.usb3.physical.scrambling)": [[44, "sol_usb.gateware.usb.usb3.physical.scrambling.Scrambler"]], "scramblerlfsr (class in sol_usb.gateware.usb.usb3.physical.scrambling)": [[44, "sol_usb.gateware.usb.usb3.physical.scrambling.ScramblerLFSR"]], "usb3physicallayer (class in sol_usb.gateware.usb.usb3.physical)": [[44, "sol_usb.gateware.usb.usb3.physical.USB3PhysicalLayer"]], "usb3physicallayer (class in sol_usb.gateware.usb.usb3.physical.layer)": [[44, "sol_usb.gateware.usb.usb3.physical.layer.USB3PhysicalLayer"]], "ctrl_const() (sol_usb.gateware.usb.usb3.physical.coding.namedsymbol method)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol.ctrl_const"]], "get_word_for_symbols() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.get_word_for_symbols"]], "sol_usb.gateware.usb.usb3.physical": [[44, "module-sol_usb.gateware.usb.usb3.physical"]], "sol_usb.gateware.usb.usb3.physical.alignment": [[44, "module-sol_usb.gateware.usb.usb3.physical.alignment"]], "sol_usb.gateware.usb.usb3.physical.coding": [[44, "module-sol_usb.gateware.usb.usb3.physical.coding"]], "sol_usb.gateware.usb.usb3.physical.ctc": [[44, "module-sol_usb.gateware.usb.usb3.physical.ctc"]], "sol_usb.gateware.usb.usb3.physical.layer": [[44, "module-sol_usb.gateware.usb.usb3.physical.layer"]], "sol_usb.gateware.usb.usb3.physical.lfps": [[44, "module-sol_usb.gateware.usb.usb3.physical.lfps"]], "sol_usb.gateware.usb.usb3.physical.power": [[44, "module-sol_usb.gateware.usb.usb3.physical.power"]], "sol_usb.gateware.usb.usb3.physical.scrambling": [[44, "module-sol_usb.gateware.usb.usb3.physical.scrambling"]], "stream_matches_symbols() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.stream_matches_symbols"]], "stream_word_matches_symbol() (in module sol_usb.gateware.usb.usb3.physical.coding)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.stream_word_matches_symbol"]], "value_const() (sol_usb.gateware.usb.usb3.physical.coding.namedsymbol method)": [[44, "sol_usb.gateware.usb.usb3.physical.coding.NamedSymbol.value_const"]], "word_meets_alignment_criteria() (sol_usb.gateware.usb.usb3.physical.alignment.rxpacketaligner static method)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxPacketAligner.word_meets_alignment_criteria"]], "word_meets_alignment_criteria() (sol_usb.gateware.usb.usb3.physical.alignment.rxwordaligner static method)": [[44, "sol_usb.gateware.usb.usb3.physical.alignment.RxWordAligner.word_meets_alignment_criteria"]], "ackheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.ACKHeaderPacket"]], "dataheaderreceiver (class in sol_usb.gateware.usb.usb3.protocol.data)": [[45, "sol_usb.gateware.usb.usb3.protocol.data.DataHeaderReceiver"]], "erdyheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.ERDYHeaderPacket"]], "handshakegeneratorinterface (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.HandshakeGeneratorInterface"]], "handshakereceiverinterface (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.HandshakeReceiverInterface"]], "linkmanagementpackethandler (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.LinkManagementPacketHandler"]], "nrdyheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.NRDYHeaderPacket"]], "portcapabilityheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.PortCapabilityHeaderPacket"]], "portconfigurationheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.PortConfigurationHeaderPacket"]], "portconfigurationresponseheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.link_management)": [[45, "sol_usb.gateware.usb.usb3.protocol.link_management.PortConfigurationResponseHeaderPacket"]], "stallheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.STALLHeaderPacket"]], "statusheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.StatusHeaderPacket"]], "superspeedendpointinterface (class in sol_usb.gateware.usb.usb3.protocol.endpoint)": [[45, "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointInterface"]], "superspeedendpointmultiplexer (class in sol_usb.gateware.usb.usb3.protocol.endpoint)": [[45, "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointMultiplexer"]], "timestamppacketreceiver (class in sol_usb.gateware.usb.usb3.protocol.timestamp)": [[45, "sol_usb.gateware.usb.usb3.protocol.timestamp.TimestampPacketReceiver"]], "transactionheaderpacket (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.TransactionHeaderPacket"]], "transactionpacketgenerator (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.TransactionPacketGenerator"]], "transactionpacketreceiver (class in sol_usb.gateware.usb.usb3.protocol.transaction)": [[45, "sol_usb.gateware.usb.usb3.protocol.transaction.TransactionPacketReceiver"]], "usb3protocollayer (class in sol_usb.gateware.usb.usb3.protocol)": [[45, "sol_usb.gateware.usb.usb3.protocol.USB3ProtocolLayer"]], "usb3protocollayer (class in sol_usb.gateware.usb.usb3.protocol.layer)": [[45, "sol_usb.gateware.usb.usb3.protocol.layer.USB3ProtocolLayer"]], "add_interface() (sol_usb.gateware.usb.usb3.protocol.endpoint.superspeedendpointmultiplexer method)": [[45, "sol_usb.gateware.usb.usb3.protocol.endpoint.SuperSpeedEndpointMultiplexer.add_interface"]], "sol_usb.gateware.usb.usb3.protocol": [[45, "module-sol_usb.gateware.usb.usb3.protocol"]], "sol_usb.gateware.usb.usb3.protocol.data": [[45, "module-sol_usb.gateware.usb.usb3.protocol.data"]], "sol_usb.gateware.usb.usb3.protocol.endpoint": [[45, "module-sol_usb.gateware.usb.usb3.protocol.endpoint"]], "sol_usb.gateware.usb.usb3.protocol.layer": [[45, "module-sol_usb.gateware.usb.usb3.protocol.layer"]], "sol_usb.gateware.usb.usb3.protocol.link_management": [[45, "module-sol_usb.gateware.usb.usb3.protocol.link_management"]], "sol_usb.gateware.usb.usb3.protocol.timestamp": [[45, "module-sol_usb.gateware.usb.usb3.protocol.timestamp"]], "sol_usb.gateware.usb.usb3.protocol.transaction": [[45, "module-sol_usb.gateware.usb.usb3.protocol.transaction"]], "standardrequesthandler (class in sol_usb.gateware.usb.usb3.request.standard)": [[46, "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler"]], "handle_register_write_request() (sol_usb.gateware.usb.usb3.request.standard.standardrequesthandler method)": [[46, "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler.handle_register_write_request"]], "handle_simple_data_request() (sol_usb.gateware.usb.usb3.request.standard.standardrequesthandler method)": [[46, "sol_usb.gateware.usb.usb3.request.standard.StandardRequestHandler.handle_simple_data_request"]], "sol_usb.gateware.usb.usb3.request": [[46, "module-sol_usb.gateware.usb.usb3.request"]], "sol_usb.gateware.usb.usb3.request.standard": [[46, "module-sol_usb.gateware.usb.usb3.request.standard"]]}}) \ No newline at end of file diff --git a/tutorials/index.html b/tutorials/index.html index 79984691..7568ca93 100644 --- a/tutorials/index.html +++ b/tutorials/index.html @@ -45,7 +45,7 @@ SOL
          - 0.1.dev1+g21a6792 + 0.1.dev1+gcf4d4c1
          @@ -91,6 +91,8 @@
      • ULPI