Electronic – Are there open free USB designs

designquartus-iispecificationsusbvhdl

I want to learn USB and its hardware interface and start with a trivial design. I found some VHDL in github for the ISP1362 and I wonder if that is a good starting point. I have already used Quartus to design other hardware for FPGA that I can download to the Altera FPGA:s.

Now I want to look and learn how USB and its hardware interface are designed and preferably starting with something basic and general and a specific design from a specific manufacturer (Qualcomm, Motorola, Philips…)

I found a design for ISP1362, would that be a good starting point or could you suggest something better for me to learn the USB design and specification?

My goal is to be able to formally verify the model, design and specification for real hardware, but I need to start with something basic and easy.

Best Answer

The usual place to look is opencores – if you only include FPGA-proven designs you also rule out these that only look good on paper. Your USB functionality is under the "Communication controller" category.

Formally verifying a design is a tough task, and I congratulate you on the choice of first looking into something basic.

I personally am not so sure that formally verifying a USB controller is the only way to go – in the end, both sides of a USB link have to cooperate, and being correct doesn't help you if you still can't work with the (possibly incorrect) other end (I don't even think the USB spec is formally proven).

However, I'd encourage you to look into yosys, whose author held a pretty interesting talk about how to prove designs (rather than just testing it) based on induction.


Since the USB standards are open, you should probably just download and read the specs, too.