Logik - Einführung¶
Logikglieder führen bool'sche Operationen mit binären oder logischen Signalen aus. In SimApp besteht kein Unterschied zwischen einem logischen und einem analogen Signal. Logikelemente können durch Ausgangssignale von analogen Gliedern und umgekehrt angesteuert werden.
Eingangssignale, die kleiner als die logische Schaltschwelle sind, werden als 0 (tief, low, inaktiv,falsch) interpretiert. Im Gegensatz dazu werden Signale, die gleich oder grösser als die logische Schaltschwelle sind, als 1 (hoch, high, aktiv, wahr) interpretiert.
Der Standardwert für logisch 1 ist 1 mit einer Schaltschwelle bei 0.5. Diese Werte können für jedes Glied individuell eingestellt werden. Der logisch 0 Wert dagegen ist unveränderlich immer gleich null.
Rückkopplung mit logischen Gliedern und Bedeutung der Schaltverzögerung
Standardmässig besitzen Logikglieder in SimApp keine Laufzeiten. Wenn sich zum Beispiel bei einem Flip-Flop die Eingangssignale ändern und gleichzeitig der Clockeingang gesetzt wird, ändert der Ausgang noch im gleichen Integrationsschritt. Dadurch werden jedoch Signalrückkopplungen verunmöglicht, was aber in logischen Schaltkreisen durchaus normal ist. Viele Funktionen können ohne Rückkopplung nicht realisiert werden (Beispiel: Set/Reset Flip-Flop mit NAND Gattern).
Im Weiteren werden minimale Signallaufzeiten auch in diversen synchronen Schaltungen, die keine Rückkopplungen besitzen, vorausgesetzt. Beispiel: Bei einem synchronen Zähler der aus einer Kette von JK Flip-Flops aufgebaut wird, haben alle Flip-Flops das gleiche Takt-Eingangssignal. Zur korrekten Funktion der Schaltung ist es nun entscheidend, dass beim Auftreten der positiven Taktflanke der Zustand der Eingangssignale, der unmittelbar vor der Taktflanke geherrscht hat, eingelesen und verarbeitet wird. Wenn jedoch die Ausgänge exakt mit der Taktflanke wechseln, ist dies nicht möglich, da bereits die neuen Zustände berücksichtigt werden.
Um die oben genannten Fälle zu berücksichtigen, haben alle Logikglieder eine Laufzeitverzögerungs-Option. Wenn diese Option eingeschaltet ist, wechselt der Ausgang erst im nachfolgenden Integrationsschritt. Wenn der Integrationsschritt kurz ist (wählbar in den Einstellungen zur Zeitsimulation) und nur wenige Logikglieder hintereinander geschaltet sind, spielt die resultierende Gesamtverzögerung keine Rolle. Aber bei grossen Logikschaltkreisen oder langen Ketten von Logikelementen könnte sich dies zu inakzeptablen Verzögerungen aufsummieren, wenn jedes Glied unnötigerweise mit einer Laufzeitverzögerung behaftet wäre.
Es sollte deshalb folgende Regel beachtet werden:
-
Verzögerungsoption im Allgemeinen nur für ein einziges Glied in einer Signalrückkopplung einschalten.
-
Falls nötig, Integrationsschrittweite um den Faktor 10 reduzieren.