¿Existen diseños USB abiertos y gratuitos?

Quiero aprender USB y su interfaz de hardware y comenzar con un diseño trivial. Encontré algo de VHDL en github para ISP1362 y me pregunto si ese es un buen punto de partida. Ya he usado Quartus para diseñar otro hardware para FPGA que puedo descargar a los FPGA de Altera.

Ahora quiero ver y aprender como se diseña el USB y su interfaz de hardware y preferiblemente comenzando con algo básico y general y un diseño específico de un fabricante específico (Qualcomm, Motorola, Philips...)

Encontré un diseño para ISP1362, ¿sería ese un buen punto de partida o podría sugerirme algo mejor para aprender el diseño y las especificaciones de USB?

Mi objetivo es poder verificar formalmente el modelo, el diseño y las especificaciones del hardware real, pero necesito comenzar con algo básico y fácil.

¿Qué "algunos VHDL en github"? Te preguntas si es un buen punto de partida, pero no estás dando ningún enlace al objeto. ¿Cómo se supone que te ayudaremos entonces? ¿En serio?
@AliChen Agregué el enlace que también es el primer resultado en Google si la frase se busca en Google. Gracias por la ayuda.

Respuestas (2)

El lugar habitual para buscar son los núcleos abiertos: si solo incluye diseños probados en FPGA, también descarta aquellos que solo se ven bien en el papel. Su funcionalidad USB se encuentra en la categoría "Controlador de comunicación".

Verificar formalmente un diseño es una tarea difícil, y lo felicito por la elección de buscar primero algo básico.

Personalmente, no estoy tan seguro de que verificar formalmente un controlador USB sea la única forma de hacerlo: al final, ambos lados de un enlace USB deben cooperar, y ser correcto no lo ayuda si aún no puede trabajar con el (posiblemente incorrecto) otro extremo (ni siquiera creo que la especificación USB esté probada formalmente).

Sin embargo, lo animo a que consulte yosys , cuyo autor realizó una charla bastante interesante sobre cómo probar diseños (en lugar de solo probarlos) basados ​​en la inducción.


Dado que los estándares USB están abiertos, probablemente también debería descargar y leer las especificaciones.

Mi experiencia con el diseño del núcleo USB indica que la complejidad del marco USB necesita al menos 10 años-hombre de diseñadores RTL/VHDL experimentados para lograr la lógica del USB del lado del dispositivo, con un entorno de banco de prueba de verificación de protocolo y un modelo de bus. Y mucho más para el lado del HOST. Si puede permitirse el lujo de comprar IP, por ejemplo, DesignWare de Synopsis ($ 20k- $ 100k +), dedique al menos un año para aprender si comienza sin experiencia en USB.

El punto de partida son definitivamente las especificaciones USB, complementadas (o precedidas) por clases populistas (interpretaciones y libros) de MindShare . Hay algunos otros tutoriales/introducciones en línea, pero no todos son buenos para aprender desde un nuevo comienzo.

Es bueno saber que la especificación y el diseño son complicados. Trataré de entender los conceptos básicos primero.