By "I have" I hope you mean you got one someone else made.
I'm sure you can read the spec as well as I can.
Coders are notorious for writing their devices by convention rather than by spec. By this, I mean, if the convention is to boot up, check stuff, busy wait step by step and eventually get around to servicing peripherals, then they code to boot up, check stuff, busy wait, and eventually get around to servicing USB.
For example, see "USB ECN: USB 2.0 Connect Timing"