Analyzer
Low-level USB analyzer gateware.
- class sol_usb.gateware.usb.analyzer.USBAnalyzer(*args, src_loc_at: int = 0, **kwargs)
Core USB analyzer; backed by a small ringbuffer in FPGA block RAM.
If you’re looking to instantiate a full analyzer, you’ll probably want to grab one of the DRAM-based ringbuffer variants (which are currently forthcoming).
If you’re looking to use this with a ULPI PHY, rather than the FPGA-convenient UTMI interface, grab the UTMITranslator from sol.gateware.interface.ulpi.
- Variables:
stream (StreamInterface(), output stream) – Stream that carries USB analyzer data.
idle (Signal(), output) – Asserted iff the analyzer is not currently receiving data.
stopped (Signal(), output) – Asserted iff the analyzer is stopped and not capturing packets.
overrun (Signal(), output) – Asserted iff the analyzer has received more data than it can store in its internal buffer. Occurs if :attr:
stream
is not being read quickly enough.capturing (Signal(), output) – Asserted iff the analyzer is currently capturing a packet.
discarding (Signal(), output) – Asserted iff the analyzer is discarding the contents of its internal buffer.
- Parameters:
utmi_interface (UTMIInterface()) – The UTMI interface that carries the data to be analyzed.
mem_depth (int, default = 8192) – The depth of the analyzer’s local ringbuffer, in bytes. Must be a power of 2.