Introduction¶
While there are numerous USB IP cores available, it is not obvious how to verify their functionality and features. The code usually comes with tests, but the scenarios seldom correspond between the cores, they are primarily device-specific and test low-level core behavior.
USB-test-suite aims to amend that by providing a comprehesive test bench for testing USB IP cores - in Python.
The objective is to test open source IP cores in behavioral simulation for:
- logic signal correctness
- handling of USB protocol
- validation of enumeration procedure
Currently we support USB1.1. Main project repository is located here.
Structure of this document¶
- Quickstart - this section details first steps needed to get the testbench running.
- Project architecture - description of files and concepts used in the project.
- Running the tests - this section describes parameters and targets for running existing tests.
- Supported targets - list of currently supported IP cores.
- Example tests - list of available tests.
- Development - details on how to add new targets and tests.
- cocotb_usb module - description of Python module at the heart of the testbench.
- cocotb_usb module reference