USB controller on FPGA: development for HID devices using the example of a keyboard
Practical guide to creating a USB 1.1 controller on FPGA. Module architecture, device initialization, analysis of HID descriptors and keyboard connection. Verilog code examples.