Ich prototypiere ein Board mit einem USB-Anschluss in Spice oder einer anderen Schaltungssimulationstechnologie. Die Produktionsplatine wird an den PC angeschlossen und es wird eine Software geben, die über USB mit ihr kommuniziert. Ich würde gerne einen Großteil des Prototypings in Software machen, bevor ich mit Meat-Space herumspiele, wegen der Geschwindigkeit.
Ist es / wie ist es möglich, die Software mit einer Simulation des Boards zu verbinden? Welche Simulationssoftware macht das?
Mit anderen Worten, es wäre cool, die Simulation zum Laufen zu bringen und sie sich so verhalten zu lassen, als wäre sie an einen der USB-Ports des Computers angeschlossen (ein echter oder ein virtueller), damit ich die Interaktion mit meiner PC-Seite testen kann Code.
Ich fürchte, die Antwort auf Ihre Frage lautet, dass dies höchstwahrscheinlich nicht möglich ist.
Wenn Sie Ihr System und Ihre Ziele genauer beschreiben, kann jemand eine mögliche Alternative vorschlagen. Ein paar Zweifel und Fragen, die mir in den Sinn kommen, sind (sorry, wenn ich Ihre Situation völlig falsch verstanden habe):
Sie befinden sich weit jenseits der Ebene der Systemkomplexität, bei der SPICE ein sinnvolles Werkzeug ist.
SPICE ist ein analoger Simulator . Es kann auf einige tausend Transistoren skaliert werden. Die ICs, die Sie simulieren möchten, enthalten viele Zehn- oder Hunderttausende von Transistoren.
Außerdem führt SPICE eine spärliche Auswertung durch, wenn es bestimmen kann, dass es das dV / dT mit ausreichender Genauigkeit auflöst. Da Ihr Mikro-/anderer komplexer Logik-IC wahrscheinlich einen schnellen internen Takt haben wird, muss SPICE das Gerät mit beträchtlicher Präzision simulieren, was die Simulation noch langsamer machen würde als einfache analoge Schaltungen.
Außerdem ist SPICE kein Echtzeit-Tool. Einfache Modelle können bei ~ laufen - Echtzeit. Dies ist für die meisten einfachen Simulationen akzeptabel, bei denen Sie die Anfangsbedingungen richtig festlegen und die Simulation für kurze Zeit ausführen können, um ihr Verhalten zu bewerten.
Wenn Sie die oben genannten Faktoren und die Tatsache kombinieren, dass Sie viele hundert Millisekunden In-Simulationszeit benötigen, damit Ihre MCU ordnungsgemäß startet und sich verbindet, benötigen Sie wahrscheinlich mehrere Echtzeittage (!) bis Ihre Simulation ausgeglichen ist aufzählen! Außerdem muss etwas den USB-Host, an den das Gerät angeschlossen ist, richtig implementieren. Sie können eine USB-Verbindung, die mit einem Millionstel (oder mehr) Echtzeit läuft, nicht einfach an den Host weiterleiten und erwarten, dass sie funktioniert.
Simulationen wie die, die @Purrell in seiner Antwort verlinkt, sind vereinfachte Modelle der verschiedenen Geräte. Die MCU wird als etwas nach Art einer VHDL- oder Verilog-Softcore-MCU simuliert, rein im digitalen Bereich (Hinweis: Dies ist kein SPICE), und die Schnittstellen werden in die analoge Simulation gepuffert (und das vorausgesetzt, sie tun dies). überhaupt keine analoge Simulation. Ich halte das für ziemlich unwahrscheinlich).
Offensichtlich wird dies auch durch die Genauigkeit der Modelle eingeschränkt. Selbst SPICE ist kein perfektes Werkzeug, und je weiter Sie von der tatsächlichen Natur der Geräte abstrahieren, desto wahrscheinlicher ist es, dass Ungenauigkeiten der Simulation Ihr simuliertes Ergebnis beeinflussen.
Wirklich, es scheint, als überdenkst du das. Auch Simulatoren wie SPICE werden allgemein eher schlecht bewertet, da sie sehr anfällig für Corner-Cases sind und sich eigentlich nur als analoges Design- Verifikationstool lohnen .
Es gibt wirklich keine Tools für so etwas, da sie mehr oder weniger nutzlos wären. Die Tiefe des Wissens über ein spezifisches Gerät, das erforderlich ist, um ein brauchbares, wenn nicht perfektes Modell des besagten Geräts zu schreiben, würde die Simulation überflüssig machen, und die Simulation würde immer noch nicht immer perfekt die reale Hardware modellieren.
Der Grund dafür, dass es nicht viel Interesse oder Produkte gibt, die das tun, was Sie wollen, ist, dass es irgendwie nutzlos ist. Bis wir den gesamten Chip mit einer Auflösung von wenigen Atomen simulieren können, bleibt er außerhalb einiger weniger spezifischer Anwendungen nutzlos.
Wirklich, Sie müssen nur darüber hinwegkommen und die eigentliche Hardware bauen.
Hier ist ein Simulator, der es tut:
http://www.labcenter.com/products/usb.cfm
Sie behaupten, die einzigen zu sein, die dies tun, was bedauerlich ist, da die Software teuer und die Benutzeroberfläche meines Erachtens veraltet ist, und es eine so nette Idee ist. Es funktioniert für PICs und AT90s, was ich vorhabe.
Ich bin überrascht von den No-you-can't-Antworten. Leute - es ist 2013 :) . Wir können ganze Computer simulieren , einschließlich ihrer USB-Schnittstellen in Software. Ich schreibe dies in einer Windows-VM, die auf einem Macbook Pro ausgeführt wird. Die USBs innerhalb der VM werden vollständig „in Echtzeit“ simuliert und verbinden sich mit dem Hostcomputer, als wären sie lokal.
Tatsächlich führe ich zusätzlich zu der wunderbar funktionierenden Lab Center-Software und der Simulation der USB-Schnittstelle eine VM aus, da diese Software nur unter Windows ausgeführt wird. Ich habe also Code auf meinem Host-OSX-Rechner, der eine Verbindung zu einem virtuellen USB-Port auf dem VM-Windows-Rechner herstellt, der mit einer virtuellen USB-Schnittstelle von der Schaltungssimulation verbunden ist. Das ist eine ganz andere Ebene der Virtualisierung, zusätzlich zu der, von der Sie mir sagen, dass ich nicht dazu in der Lage sein sollte. Bier mich!
Chris Stratton
Purrell
Anindo Ghosh