Logiksimulation - Logic simulation

Bei der Logiksimulation wird Simulationssoftware verwendet , um das Verhalten digitaler Schaltungen und Hardwarebeschreibungssprachen vorherzusagen . Die Simulation kann mit unterschiedlichem Grad an physikalischer Abstraktion durchgeführt werden , z. B. auf Transistorebene , Gate-Ebene , Registerübertragungsebene (RTL), Ebene elektronischer Systeme (ESL) oder Verhaltensebene.

Verwendung bei der Überprüfung

Die Logiksimulation kann als Teil des Verifizierungsprozesses beim Entwerfen von Hardware verwendet werden.

Simulationen haben den Vorteil, dass sie dem Benutzer ein vertrautes Erscheinungsbild bieten, da sie aus derselben Sprache und denselben Symbolen aufgebaut sind, die im Design verwendet werden. Durch die direkte Interaktion des Benutzers mit dem Design ist die Simulation eine natürliche Möglichkeit für den Designer, Feedback zu seinem Design zu erhalten.

Länge der Simulation

Der Aufwand für das Debuggen und anschließende Überprüfen des Designs ist proportional zur Reife des Designs. Das heißt, früh im Leben des Designs werden Fehler und falsches Verhalten normalerweise schnell gefunden. Wenn das Design ausgereift ist, benötigt die Simulation mehr Zeit und Ressourcen, um ausgeführt zu werden, und es wird immer länger dauern, bis Fehler gefunden werden. Dies ist besonders problematisch, wenn Komponenten für moderne Systeme simuliert werden. Jede Komponente, die ihren Status in einem einzelnen Taktzyklus in der Simulation ändert, benötigt mehrere Taktzyklen zur Simulation.

Ein einfacher Ansatz für dieses Problem kann darin bestehen, die Schaltung stattdessen auf einem feldprogrammierbaren Gate-Array zu emulieren . Die formale Verifizierung kann auch als Alternative zur Simulation untersucht werden, obwohl ein formaler Nachweis nicht immer möglich oder zweckmäßig ist.

Ein prospektiver Weg zur Beschleunigung der Logiksimulation ist die Verwendung verteilter und paralleler Berechnungen.

Um die Gründlichkeit einer Simulation beurteilen zu können, gibt es Tools zur Bewertung der Tools für Codeabdeckung , Funktionsabdeckung und Logikabdeckung.

Ereignissimulation versus Zyklussimulation

Durch die Ereignissimulation kann das Design einfache Zeitinformationen enthalten - die Verzögerung, die ein Signal benötigt, um von einem Ort zum anderen zu gelangen. Während der Simulation werden Signaländerungen in Form von Ereignissen verfolgt. Eine Änderung zu einem bestimmten Zeitpunkt löst nach einer bestimmten Verzögerung ein Ereignis aus. Ereignisse werden nach dem Zeitpunkt sortiert, zu dem sie auftreten werden. Wenn alle Ereignisse für eine bestimmte Zeit behandelt wurden, wird die simulierte Zeit auf die Zeit des nächsten geplanten Ereignisses vorverlegt. Wie schnell eine Ereignissimulation ausgeführt wird, hängt von der Anzahl der zu verarbeitenden Ereignisse ab (der Aktivitätsmenge im Modell).

Die Ereignissimulation kann zwar eine Rückmeldung zum Signal-Timing geben, ist jedoch kein Ersatz für die statische Timing-Analyse .

In der Zyklussimulation können keine Verzögerungen angegeben werden. Es wird ein zyklusgenaues Modell verwendet, und jedes Gate wird in jedem Zyklus ausgewertet. Die Zyklus-Simulation läuft daher unabhängig von der Aktivität im Modell mit einer konstanten Geschwindigkeit. Optimierte Implementierungen können die geringe Modellaktivität nutzen, um die Simulation zu beschleunigen, indem die Auswertung von Gates übersprungen wird, deren Eingaben sich nicht geändert haben. Im Vergleich zur Ereignissimulation ist die Zyklussimulation tendenziell schneller, skaliert besser und eignet sich besser für die Hardwarebeschleunigung / -emulation.

Chip-Design-Trends deuten jedoch darauf hin, dass die Ereignissimulation aufgrund der Verringerung des Aktivitätsfaktors in der Schaltung (aufgrund von Techniken wie Clock-Gating und Power-Gating , die immer häufiger eingesetzt werden, um die Verlustleistung zu verringern) an relativer Leistung gewinnt . In diesen Fällen ist die Leistung möglicherweise kein Nachteil mehr gegenüber der Zyklus-Simulation, da die Ereignissimulation nur die erforderlichen Ereignisse simuliert. Die Ereignissimulation hat auch den Vorteil einer größeren Flexibilität und der Handhabung von Konstruktionsmerkmalen, die mit der Zyklus-Simulation schwer zu handhaben sind, wie z. B. asynchrone Logik und nicht entsprechende Uhren. Aufgrund dieser Überlegungen verfügen fast alle kommerziellen Logiksimulatoren über eine ereignisbasierte Fähigkeit, auch wenn sie hauptsächlich auf zyklusbasierten Techniken beruhen.

Siehe auch

Verweise