Estoy creando un prototipo de una placa que tiene un conector USB, en Spice o cualquier otra tecnología de simulación de circuitos. La placa de producción se conectará a la PC y habrá algún software que se comunique con ella a través de USB. Me gustaría hacer mucho de la creación de prototipos en el software antes de jugar con el espacio físico, por la velocidad.
¿Es/cómo es posible conectar el software a una simulación de la placa? ¿Qué software de simulación hace esto?
En otras palabras, sería genial hacer que la simulación suceda y que actúe como si estuviera conectada a uno de los puertos USB de la computadora (uno real o uno virtual), para que pueda probar la interacción con mi PC. código.
Me temo que la respuesta a su pregunta es que lo más probable es que esto no sea posible.
Si describe su sistema y objetivos con más detalle, alguien puede sugerir una posible alternativa. Algunas dudas y preguntas que me vienen a la mente son (perdón si no entendí bien tu situación):
Está mucho más allá del nivel de complejidad del sistema donde SPICE es una herramienta significativa.
SPICE es un simulador analógico . Puede escalar a unos pocos miles de transistores. Los circuitos integrados que desea simular tienen muchas decenas o cientos de miles de transistores.
Además, SPICE realiza una evaluación escasa cuando puede determinar que está resolviendo el dV/dT con suficiente precisión. Dado que es probable que su micro/otro-complejo-IC-lógico tenga un reloj interno rápido, SPICE tendrá que simular el dispositivo con una precisión considerable, lo que haría que la simulación fuera aún más lenta que los circuitos analógicos simples.
Además, SPICE no es una herramienta en tiempo real. Los modelos simples pueden ejecutarse en ~ - tiempo real. Esto es aceptable para la mayoría de las simulaciones simples, en las que puede establecer correctamente las condiciones iniciales y ejecutar el simulador durante un breve período de tiempo para evaluar su comportamiento.
Si combina los factores anteriores y el hecho de que necesitará muchos cientos de milisegundos de tiempo de simulación para que su MCU se inicie y conecte correctamente, probablemente necesitará varios días en tiempo real (!) para que su simulación incluso ¡enumerar! Además, algo tendrá que implementar correctamente el host USB al que está conectado el dispositivo. No puede simplemente reenviar una conexión USB que se ejecuta a una millonésima (o más) de tiempo real al host y esperar que funcione.
La forma en que simulaciones como la que @Purrell vincula en su respuesta es que tienen modelos simplificados de los diversos dispositivos. La MCU se simula como algo similar a una MCU de núcleo blando VHDL o Verilog, puramente en el dominio digital (nota: esto no es SPICE), y las interfaces se almacenan en la simulación analógica (y eso suponiendo que lo estén haciendo cualquier simulación analógica en absoluto. Creo que es bastante improbable).
Obviamente, esto también está limitado por la precisión de los modelos. Incluso SPICE no es una herramienta perfecta, y cuanto más se abstraiga de la naturaleza real de los dispositivos, es más probable que las imprecisiones de la simulación afecten el resultado simulado.
Realmente, parece que estás pensando demasiado en esto. Incluso los simuladores como SPICE son generalmente mal considerados, ya que tienden a ser muy susceptibles a los casos de esquina y realmente solo valen la pena como una herramienta de verificación de diseño analógico .
Realmente no hay herramientas para este tipo de cosas, ya que serían más o menos inútiles. La profundidad del conocimiento de un dispositivo específico requerido para escribir un modelo utilizable, si no perfecto, de dicho dispositivo haría innecesaria la simulación, y la simulación aún no siempre modelaría perfectamente el hardware real.
La razón por la que no hay mucho interés o productos que hagan lo que quieres es porque es un poco inútil. Hasta que podamos simular todo el chip con una resolución de unos pocos átomos, seguirá siendo inútil fuera de algunas aplicaciones específicas.
Realmente, solo tienes que superarlo y construir el hardware real.
Aquí hay un simulador que lo hace:
http://www.labcenter.com/products/usb.cfm
Afirman ser los únicos que lo hacen, lo cual es desafortunado porque el software es costoso y la interfaz de usuario está fechada en mi opinión, y es una buena idea. Funciona para PIC y AT90, que es lo que estoy haciendo.
Me sorprenden las respuestas negativas. Amigos, es 2013 :). Podemos simular computadoras completas , incluidas sus interfaces USB en el software. Estoy escribiendo esto dentro de una máquina virtual de Windows que se ejecuta en una Macbook Pro. Los USB dentro de la máquina virtual están completamente simulados, en "tiempo real", y se conectan a la máquina host como si fueran locales.
De hecho, además del software Lab Center que funciona a la perfección y simula la interfaz USB, estoy ejecutando una VM porque este software solo se ejecuta en Windows. Entonces, tengo un código en mi máquina host OSX que se conecta a un puerto USB virtual en la máquina VM de Windows, que está conectada a una interfaz USB virtual desde la simulación del circuito. Esa es otra capa de virtualización además de la que me estás diciendo que se supone que no debo poder hacer. ¡Cerveza yo!
chris stratton
Purrell
Anindo Ghosh