Files
retroSoC/rtl/ip/usb
maksyuki 5c65fcca27 feat: enhance APU and AXI4 functionality with new tests and updates
- Updated axi4_async_bridge_tb.sv to include unilateral reset handling in the test.
- Enhanced axi4_target_guard_tb.sv with a new task for read beat normalization and additional read tests.
- Introduced hp_axi4_mux3_rr_tb.sv to test round-robin arbitration for multiple AXI4 interfaces.
- Expanded test_apu.py to include tests for APU stream router, DMA, ring scheduler, and integrated DMA/ring/backend functionality.
- Added new test cases for APU-P2 Gateway A round-robin fairness.
- Updated test_clock_reset_domains.py to include APU data crossing.
- Enhanced test_script_tools.py to scope formal filelists for APU and Gateway A.
2026-09-03 13:56:04 +08:00
..

USB 2.0 RTL

This directory owns the self-contained ULPI USB 2.0 dual-role controller RTL, its APB4 ABI in usb2_define.svh, interfaces, link/SIE/transaction blocks, packet store, scheduler, descriptor DMA, and top-level apb4_usb2 wrapper.

Use Common register, CDC, FIFO, ECC, and AXI helpers. Technology-specific packet RAM mapping belongs in rtl/tech/tc_usb2_packet_ram.sv; SoC address, interrupt, AXI, and dedicated-pad integration belongs under rtl/mini/. Register definitions are hand maintained and mirrored by crt/include/retrosoc/hal/usb2_regs.h; do not introduce a register generator.

Validate focused behavior with python3 -m pytest -q tests/test_usb2.py tests/test_usb2_register_parity.py, then run the selected firmware/simulator, RTL quality checks, and the supported PR regression. The design and delivery boundary are defined in docs/ip/usb2.md.