DE69730004T2 - Digitalsystem-Simulation - Google Patents

Digitalsystem-Simulation Download PDF

Info

Publication number
DE69730004T2
DE69730004T2 DE69730004T DE69730004T DE69730004T2 DE 69730004 T2 DE69730004 T2 DE 69730004T2 DE 69730004 T DE69730004 T DE 69730004T DE 69730004 T DE69730004 T DE 69730004T DE 69730004 T2 DE69730004 T2 DE 69730004T2
Authority
DE
Germany
Prior art keywords
event
queue
signal
delta
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69730004T
Other languages
English (en)
Other versions
DE69730004D1 (de
Inventor
James Edward Reddish Rayner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Application granted granted Critical
Publication of DE69730004D1 publication Critical patent/DE69730004D1/de
Publication of DE69730004T2 publication Critical patent/DE69730004T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • Hintergrund der Erfindung
  • Die Erfindung betrifft die Simulation von digitalen Systemen. Insbesondere, aber nicht ausschließlich betrifft die Erfindung simulierende komplexe logische Netzwerke, wie sie in elektronischen Rechnern anzutreffen sind.
  • Herkömmliche Simulatoren verwenden eine Warteschlange zum zeitlichen Planen von Änderungen am Status des simulierten Systems. Wann immer festgestellt wird, dass der Status geändert werden soll, wird eine Aufzeichnung, die den neuen Statuswert enthält, der entsprechenden Position der Warteschlange hinzugefügt. Im Betrieb wird die Warteschlange sequentiell abgetastet, um den Durchlauf der Zeit zu simulieren und, wenn jede Aufzeichnung abgetastet ist, werden die neuen Zustandswerte, die durch diese Aufzeichnung gegeben sind, gesetzt.
  • Die VHDL-Simulationssprache [ANSI/IEEE Standard 1076] verwendet Signale, um Änderungen des Zustands um das Simulationsmodell herum fortzupflanzen. Signale werden als nicht aufgelöste und aufgelöste Signale klassifiziert. Nicht aufgelöste Signale sind solche, die nur eine Antriebsquelle haben, während aufgelöste Signale mehr als eine Antriebsquelle haben. Ein Auflösungs-Prozess wird verwendet, um aufgelöste Signale zu handhaben, damit die Werte aus den unterschiedlichen Quellen aufgelöst werden.
  • Nicht aufgelöste Signale können entweder auf Ereignis basierende oder auf Delta basierende Signale sein. Auf Ereignis basierende Signale können explizite Zeitverzögerungen haben, die ihnen zugeordnet sind. Andererseits repräsentieren Signale auf Delta-Basis Änderungen, die als augenblicklich stattfindend angenommen werden; d. h. dass ihnen keine expliziten Zeitverzögerungen zugeordnet sind. Auf Delta-Basis beruhende Signale werden verwendet, um eine Unabhängigkeit der Reihenfolge für gleichlaufende Prozesse sicher zu stellen und zu gewährleisten, dass Änderungen an dem Signalwert nur dann stattfinden, wenn alle gleichlaufenden bzw. parallelen Prozesse ihre Ausführung für die jeweilige Zeiteinheit abgeschlossen haben. Im Falle eines auf Ereignis basierenden Signal wird eine Aufzeichnung der Warteschlange zu der entsprechenden Zeitposition hinzugefügt, wobei die Zeitverzögerung für dieses Signal berücksichtigt wird. Im Falle eines Delta-Basis-Signals wird eine Aufzeichnung an der Position in der Warteschlange hinzugefügt, die der laufenden Simulationszeit entspricht.
  • Konventionalle VHDL-Simulatoren verwenden ein zentralisiertes Kernel-Programm, um die Arbeitsweise des Simulations-Modells zu steuern. Ein derartiges Kernel-Programm macht ein feststehenden Datenformat erforderlich, mit dem alle Datentypen, die bei der Simulation verwendet werden, konform sein müssen, um Änderungen des Zustands des Modells zu repräsentieren, und es benötigt einen Bereich von verallgemeinerten Routinen zur Handhabung aller dieser Änderungen.
  • Ein Problem besteht dabei darin, dass dann, wenn das simulierte Netzwerk groß und komplex ist, die Simulation sehr langsam verlaufen kann und damit sehr viel Zeit für den Durchlauf benötigt. Auch stellt die Komplexität des Kernel-Programms ein Problem dar, falls es erforderlich ist, einen hohen Leistungspegel aufrecht zu erhalten, während das Kernel-Programm in der Lage sein muss, sich mit jeder Datentype – gleich welcher Form – zu befassen. Jede Einstellung an dem Kernel-Programm wird in bezug auf Leistung kritisch, und manche Datentypen können nicht hinzuaddiert werden, weil die Gefahr besteht, Simulationsleistung zu verlieren.
  • Aufgabe der Erfindung ist, eine Möglichkeit zu schaffen, die Leistung eines Simulationssystems zu verbessern, um die Geschwindigkeit für die Durchführung der Simulation zu erhöhen.
  • Kurzbeschreibung der Erfindung
  • Gemäss der Erfindung weist ein Simulator zum Simulieren eines digitalen Systems ein Simulations-Modell eines digitalen Systems zur Verwendung in einem elektronischen Computer, eine Ereignis – Warteschlange zum zeitlichen Planen von Änderungen bezüglich des Zustandes des Simulations-Modells zu bestimmten Zeiten und eine getrennte Delta – Warteschlange zum zeitlichen Planen von Änderungen bezüglich des Zustands des Simulations-Modells auf, die alle augenblicklich stattfinden sollen.
  • Es wird gezeigt, dass die Verwendung von getrennten Ereignis- und Delta-Warteschlangen auf diese Weise die Möglichkeit schafft, eine Reihe von Optimierungen vorzunehmen, die bei einem herkömmlichen Simulator mit einer einzigen Warteschlange sowohl für Ereignisse als auch für Deltas nicht möglich wäre.
  • Vorzugsweise umfasst das Simulations-Modell eine Anzahl von austauschbaren Teilen, von denen jedes seine eigenen Zustands-Informationen enthält, und für das Managen der eigenen Zustands-Informationen verantwortlich ist. Die Ereignis-Warteschlange und die Delta-Warteschlange enthalten Hinweise auf die Teile des Modells, für die Änderungen des Zustands geplant sind, ohne dass die tatsächlichen Werte dieser Änderungen des Zustands darin enthalten sind.
  • Nachstehend wird gezeigt, dass dies eine Anzahl von weiteren Optimierungen ermöglicht, die bei einem herkömmlichen Simulator mit einem zentralisierten Kernel nicht möglich wären.
  • Kurzbeschreibung der Zeichnungen
  • 1 zeigt ein schematisches Blockschaltbild eines Rechnersystems, in dem ein Simulator nach der Erfindung enthalten ist.
  • 2 zeigt ein schematisches Schaltbild eines Simulations-Modells.
  • 3 stellt ein Flussschaltbild eines hochkarätigen Modells dar, das in dem Simulator verwendet wird.
  • 4 stellt ein Flussschaltbild einer Pop_Deltas () Funktion dar.
  • 5 stellt ein Flussschaltbild einer Pop_Events () Funktion dar.
  • 6 stellt ein Flussschaltbild einer Entry () Funktion dar.
  • 7 stellt ein Flussschaltbild einer Send_Event () Funktion dar.
  • 8 stellt ein Flussschaltbild einer Fire_Event () Funktion dar.
  • 9 zeigt ein schematisches Schaltbild eines Teils des Simulators.
  • Beschreibung einer Ausführungsform der Erfindung
  • Ein Simulator nach der Erfindung wird nachstehend anhand eines Ausführungsbeispieles in Verbindung mit den Zeichnungen beschrieben.
  • Gesamtübersicht des Simulators
  • Nach 1 weist der Simulator einen Allzweck-Rechner 10 auf, der eine Anzahl von Software-Komponenten einschließlich eines Simulations-Modells 11, eines Top-Level-Modells 12, einer Ereignis-Warteschlange 13 und einer Delta-Warteschlange 14 umfasst.
  • Das Simulations-Modell 11 simuliert ein spezifisches logisches Netzwerk. Das Top-Level-Modell 12 ergibt einen Rahmen zum Betreiben des Simulations-Modells und ist von der gleichen Gattung wie eine Reihe von Simulations-Modellen.
  • Die Ereignis- und Delta-Warteschlangen 13, 14 werden zum zeitlichen Ablaufplanen von Änderungen in den Zustand des Modells verwendet. Die Ereignis-Warteschlange plant zeitlich Änderungen, die zu bestimmten Zeiten stattfinden sollen, während die Delta-Warteschlange Änderungen zeitlich plant, von denen angenommen wird, dass sie gleichzeitig stattfinden.
  • Der Simulator verwendet zwei Ausführungsformen von simulierter Zeit: Die Ereignis-Zeit und die Delta-Zeit. Die Ereignis-Zeit wird in Zeiteinheiten, z. B. Nanosekunden gemessen. Die Delta-Zeit stellt einfach eine ganze Zahl dar, die schrittweise jedesmal weiter geschaltet wird, wenn die Delta-Warteschlange verarbeitet wird, d. h. jedes Mal dann, wenn eine pop_Deltas () Funktion (siehe unten) ausgeführt wird.
  • Simulations-Modell
  • 2 zeigt eine vereinfachte Ausführungsform eines Simulations-Modells 11. Das Modell umfasst eine Anzahl von Prozess-Objekten P1–P6 und Signal-Objekten S1–S7, von denen jedes einen veränderbaren Teil des Simulations-Modells darstellt. Jedes Objekt hat einen Zustand, der durch eine oder mehrere Datenstrukturen repräsentiert wird, und ein Verhalten, das durch eine Reihe von Funktionen repräsentiert wird, wie nachstehend beschrieben. Jedes dieser Objekte wird als ein Augenblick einer verallgemeinerten Klasse kreiert. Es wird unterstellt, dass im allgemeinen Simulations-Modelle wesentlich komplexer sind als die in dieser Zeichnung dargestellten, und dass sie wesentlich mehr Objekte einschließen.
  • Die Prozess-Objekte stellen spezifische funktionelle Teile des simulierten logischen Netzwerkes, z. B. VHDL-Prozesse, dar. Die Signal-Objekte stellen Signale zwischen diesen Teilen dar. Ein Prozess-Objekt kann den Status eines oder mehrerer Signal-Objekte ändern. In 2 beispielsweise ändert das Prozess-Objekt P1 den Status des Signal-Objekts S1. Ein Prozess-Objekt kann seinerseits von einem oder mehreren Signal-Objekten abhängig (oder von ihm angetrieben) sein: In 2 beispielsweise wird P2 durch S1 angetrieben. Es ist für ein Prozess-Objekt auch möglich, ein weiteres Prozess-Objekt direkt ohne Zwischenschaltung eines Signal-Objektes anzurufen.
  • Allgemein treiben viele der Signal-Objekte keine Prozess-Objekte an. Diese Signal-Objekte dienen lediglich als Status-Halter zur Speicherung von Status-Werten, anstatt dass sie ein Prozess-Objekt mit einem anderen koppeln. In diesem Beispiel treibt S2, S6 und S7 keine Prozess-Objekte an.
  • Ein Simulations-Modell kann auch andere Arten von Objekten, zusätzlich zu Prozess-Objekten und Signal-Objekten enthalten. Beispielsweise kann das Modell ein kombiniertes Prozess-Signal-Objekt einschließen, das sowohl einen Prozess als auch ein Signal repräsentiert. Dieses kann verwendet werden, um beispielsweise eine Zustands-Maschine oder einen getakteten Prozess zu simulieren.
  • Gespaltene Prozesse
  • Jedes Signal-Objekt kann direkt nur ein Prozess-Objekt maximal antreiben. Wenn von dem Modell verlangt wird, dass ein bestimmtes Signal mehr als einen Prozess antreibt, wird ein gespaltener Prozess zwischen das Signal-Objekt und die abhängigen Prozess-Objekte eingeführt. In 2 beispielsweise ermöglicht der gespaltene Prozess SP1, dass das Signal-Objekt S3 drei unabhängige Prozess-Objekte, nämlich P1, P3 und P4 antreibt. Diese Beschränkung verbessert die Effizienz des Modells, da sie die Notwendigkeit für einen komplexen Code zur Handhabung des Antreibens einer Anzahl von Prozessen vermeidet. Auch reduziert sie die Anzahl von Warteschlangen-Vorgängen, da sie bedeutet, dass nur ein einziger Warteschlangen-Vorgang erforderlich ist, anstatt einer für jedes der abhängigen Prozess-Objekte.
  • Ein gespaltener Prozess kann einfach eine Folge von Anrufen zu den Entry ()-Funktionen eines jeden der abhängigen Prozess-Objekte enthalten. Beispielsweise kann der gespaltene Prozess SP1 in 2 aus Anrufen zu den Entry ()-Funktionen von P1, P3 und P4 bestehen: Ein gespaltener Prozess kann auch bestimmte Verarbeitungsvorgänge durchführen. Beispielsweise kann ein gespaltener Prozess den Wert eines bestimmten Signales, z. B. eines Taktsignales, testen und unterschiedliche Funktionen aufrufen, je nach dem, ob dieses Signal echt oder falsch ist.
  • Prozess-Objekte
  • Ein typisches Prozess-Objekt P hat einen Zustand, der durch eine oder mehrere Daten-Strukturen repräsentiert ist. Diese Daten-Strukturen können interne Status-Daten, z. B. die Variablen des Prozesses darstellen.
  • Ein typisches Prozess-Objekt weist auch zwei Funktion auf:
    Init (): Eine Initialisier-Funktion.
    Entry (): Eine Eintritts-Funktion.
  • Signal-Objekte
  • Ein typisches Signal-Objekt S weist die folgenden Zustandsdaten auf:
    Old_State: Der alte Status des Signal-Objektes.
    New_State: Der neue Status des Signal-Objektes.
    Altered: Ein Kennzeichen, das angibt, ob der Status des Signal-Objektes sich geändert hat oder nicht.
    proc_ptr: Ein Hinweiszeichen auf das Prozess-Objekt (falls gegeben), das durch dieses Signalobjekt angetrieben ist.
  • Zum Beispiel zeigt in 2 das proc_ptr von S1 Punkten auf P2. Wenn das Signal-Objekt kein Prozess-Objekt antreibt, ist dieses Hinweiszeichen Null.
  • Last_delta_time: Der letzte Delta-Zeitwert, für den eine Änderung in dieses Signal-Objekt auf der Delta-Warteschlange disponiert worden ist.
  • Last_event_time: Der letzte Ereignis-Zeitwert, für den eine Änderung in dieses Signal-Objekt auf der Ereignis-Warteschlange disponiert worden ist.
  • Zusätzlich enthält ein typisches Signal-Objekt die folgenden Funktionen:
  • init (): Initialisiert den alten Zustand des Signal-Objekts, entweder auf einen Benutzer spezifizierten Wert oder auf einen Vorgabe-Wert. Die init ()-Funktion initialisiert auch die verschiedenen Kennzeichen im Signal-Objekt, und die letzten Delta- und Ereignis-Zeiten.
  • change_state (): Setzt den alten Statuswert des Signal-Objektes auf den neuen Statuswert.
  • send_event (): Disponiert eine Änderung in den Zustand des Signal-Objektes, indem eine Aufzeichnung an der Delta-Warteschlange oder der Ereignis-Warteschlange platziert wird (je nach dem, ob das Signal-Objekt auf Delta-Basis oder Ereignis-Basis steht).
  • fire_event (): Ruft die Eintritts ()-Funktion des abhängigen Prozesses auf, der mit proc_ptr spezifiziert ist.
  • Resolved signals (d. h. Signale mit mehr als einer Antriebs-Quelle) werden durch Signal-Objekte ähnlich denen für nicht aufgelöste Signale repräsentiert. Die fire_event ()-Funktion jedoch ist im Falle eines aufgelösten Signals komplizierter, da es erforderlich ist, Anrufe nach rückwärts wie auch nach vorwärts durchzuführen, um sicher zu stellen, dass alle Prozess-Objekte, die auf Änderungen des aufgelösten Signals ansprechen, angerufen werden.
  • Ereignis-Warteschlange
  • Die Ereignis-Warteschlange 13 weist eine verkettete Liste von Aufzeichnungen auf, deren jede eine disponierte Änderung des Zustands eines bestimmten Signal-Objektes repräsentiert. Jede Ereignis-Aufzeichnung enthält die folgenden Felder:
  • Reference: Eine Hinweis-Adresse auf ein Signal-Objekt.
  • Event_Zeit: Die Ereignis-Zeit, bei der das betreffende Signal-Objekt auf eine Änderung eines Zustandes disponiert ist. Die Aufzeichnungen in der Ereignis-Warteschlange werden in der Reihenfolge zunehmenden Ereignis_Zeitwertes aufrecht erhalten.
  • Next: Eine Hinweis-Adresse zur nächsten Aufzeichnung in der Ereignis-Warteschlange. Wenn dies die letzte Aufzeichnung in der Warteschlange ist, ist die Hinweis-Adresse Null.
  • Der Ereignis-Warteschlange sind zwei Funktionen zugeordnet:
  • push_event (reference, event_time): Addiert eine neue Ereignis-Aufzeichnung an einer entsprechenden Position in die Ereignis-Warteschlange entsprechend dem Wert der Ereignis-Zeit. Die Parameter (Referenz, Ereignis-Zeit) bestimmen die Referenz- und Ereignis-Zeitfelder der neuen Ereignis-Aufzeichnung.
  • pop_events (): Verarbeitet Aufzeichnungen auf der Ereignis-Warteschlange.
  • Delta-Warteschlange
  • Die Delta-Warteschlange weist eine verkettete Liste von Aufzeichnungen auf, deren jede eine disponierte Änderung des Status eines bestimmten Signal-Objektes repräsentiert. Die Änderungen, die an der Delta-Warteschlange disponiert sind, werden so angesehen, dass sie sofort auftreten, d. h., dass sie keine ihnen zugeordneten expliziten Zeitverzögerungen haben.
  • Jede Aufzeichnung in der Delta-Warteschlange enthält die folgenden Felder:
  • Reference: Eine Hinweis-Adresse auf ein Signal-Objekt.
  • Next: Eine Hinweis-Adresse auf die nächste Aufzeichnung in der Delta-Warteschlange. Wenn dies die letzte Aufzeichnung in der Warteschlange ist, ist die Hinweis-Adresse gleich Null.
  • Der Detal-Warteschlange sind zwei Funktionen zugeordnet:
  • push_delta (reference): Addiert eine neue Delta-Aufzeichnung zu der Delta-Warteschlange. Der Parameter bestimmt das Referenz-Feld der neuen Delta-Aufzeichnung. Die neue Aufzeichnung wird stets dem Ende der Delta-Warteschlange hinzuaddiert.
  • pop_deltas (): Bearbeitet Aufzeichnungen an der Delta-Warteschlange.
  • Hierzu wird bemerkt, dass die Ereignis- und Delta-Warteschlangen nicht die aktuellen Werte der Änderungen des Zustands enthalten; stattdessen halten sie einfach Referenzen auf das Signal-Objekt, dessen Zustand auf die Änderung disponiert ist. Es ist die Ansprechbarkeit der Signal-Objekte, um ihre eigenen Zustandsänderungen in der effektivsten Weise zu handhaben.
  • Top-Level-Modell
  • Nachstehend wird das Top-Level-Modell 12 in Verbindung mit 3 beschrieben.
  • (Schritt 301) Das Top-Level-Modell lädt zuerst das Simulations-Modell und ruft die init ()-Funktion eines jeden Prozesses in dem Modell auf, so dass die gewünschten Datenstrukturen für jeden Prozess vorbereitet werden.
  • (Schritt 302) Das Top-Level-Modell wählt dann die optimale Form der Ereignis- und Delta-Warteschlangen für das Modell und konfiguriert jede Warteschlange in diese optimale Form.
  • Die Auswahl der Form der Ereignis-Warteschlange basiert auf einer Information, die während der Initialisierung erzielt worden ist. Diese Information enthält die Anzahl von auf Event basierenden Signalen in dem Modell, und die geringste Zeitverzögerungs-Einheit, die im Modell verwendet wird, sowie den Bereich von Zeitverzögerungen. Die folgenden Optionen stehen für die Form der Ereignis-Warteschlange zur Verfügung:
    • – Kein-Ereignis-Warteschlange: Dies wird gewählt, wenn das Modell keine auf Ereignis basierenden Signal-Objekte enthält. In diesem Fall ist deshalb kein Ereignis-Warteschlangen-Aufwand vorhanden.
    • – Einzel-Ereignis-Warteschlange: Dies wird gewählt, wenn das Modell nur auf Ereignis basierendes Signal-Objekt enthält und dieses Signal-Objekt nur eine Status-Änderung gleichzeitig hält. Dies ist die schnellste Form der Warteschlange, da kein Einsetzungsvorgang erforderlich ist.
    • – Mehrfach-Ereignis-Warteschlange: Diese Option wird gewählt, wenn das Modell mehr als ein auf Ereignis basierendes Signal-Objekt enthält, oder ein einzelnes, auf Ereignis basierendes Signal-Effekt enthält, das mehr als eine Zustandsänderung enthalten kann und wenn der Bereich der Zeitverzögerungen verhältnismäßig klein ist.
    • – Mehrfach-Ereignis, Viel-Zeit-Basis-Bereich-Warteschlange: Dies stellt die langsamste Form der Warteschlange dar, sie ist jedoch in der Lage, einen verhältnismäßig großen Bereich von Zeitverzögerungen zu handhaben.
  • (Schritt 303) Ein Anfangs-Satz von Delta-Aufzeichnungen wird an der Delta-Warteschlange eingesesetzt.
  • (Schritt 304) Diese Anfangs-Delta-Aufzeichnungen werden dann schnell an die Delta-Warteschlange abgegeben, damit eine Anfangs-Einstellung der Signal-Werte erreicht wird. Dazu wird eine pop_initialisation_deltas ()-Funktion verwendet.
  • (Schritt 305) Jedes Prozess-Objekt wird initialisiert, indem die Eintritts ()-Funktion aufgerufen wird. Dies kann zu weiteren Deltas führen, die erzeugt werden und die bei der nächsten Delta-Zeit in die Delta-Warteschlange eingesetzt werden.
  • (Schritt 306) Die laufende Ereignis-Zeit und die laufende Delta-Zeit werden beide auf Null zurückgesetzt.
  • (Schritte 307309) Das Top-Level-Modell tritt dann in eine Haupt-Warteschlange ein, in der die pop_events ()-Funktion und die pop_deltas ()-Funktion aufgerufen werden. Diese Warteschlange wird fortgesetzt, bis entweder die Ereignis-Warteschlange leer ist oder bis die Simulations-Zeit eine spezifizierte Simulations-Endzeit erreicht hat.
  • Pop_Deltas ()
  • Die pop_deltas ()-Funktion wird nachstehend in Verbindung mit 4 beschrieben.
  • (Schritt 401) Wenn die Delta-Warteschlange leer ist, wird die Funktion zurückgeführt. Andernfalls geht sie auf Schritt 402 über.
  • (Schritt 402) Ein Warteschlangen-Aufzeichnungs-Hinweiszeichen wird auf die erste Aufzeichnung in der Delta-Warteschlange gesetzt.
  • (Schritte 403405) Es wird eine Schleife durchlaufen, in der jede Aufzeichnung in der Delta-Warteschlange nacheinander ausgewählt wird. Für jede dieser Aufzeichnungen wird die Change_State () Funktion des Signal-Objektes, auf die durch diese Aufzeichnung verwiesen wird, aufgerufen. Die Change_State () Funktion aktualisiert den Status des Bezugs-Signal-Objektes durch Einstellung des Old_State-Wertes gleich dem New_State-Wert. Diese Schleife wird wiederholt, bis das Aufzeichnungs-Hinweiszeichen Null wird, wodurch angezeigt wird, dass die letzte Aufzeichnung in der Delta-Warteschlange erreicht worden ist.
  • (Schritt 406) Das Aufzeichnungs-Hinweiszeichen der Warteschlange wird auf die erste Aufzeichnung in der Delta-Warteschlange rückgesetzt.
  • (Schritte 407409) Es wird eine Schleife ausgeführt, in der jede Aufzeichnung in der Delta-Warteschlange der Reihe nach ausgewählt wird. Die ausgewählte Aufzeichnung wird aus der Delta-Warteschlange entfernt und die Fire-Event (Funktion des Signal-Objektes, auf die durch diese Aufzeichnung Bezug genommen wird), wird aufgerufen. Diese Schleife wird wiederholt, bis alle laufenden Aufzeichnungen in der Delta-Warteschlange entfernt worden sind.
  • Die fire_event () Funktion kann dazu führen, dass weitere Delta-Aufzeichnungen vorgenommen und dem Ende der Delta-Warteschlange hinzuaddiert werden. Diese neuen Delta-Aufzeichnungen werden während dieses Durchlaufes der pop_deltas ()-Funktion nicht verarbeitet; sie werden bei der nächsten Delta-Zeit verarbeitet (z. B. während des nächsten Durchlaufes der pop_deltas ()-Funktion).
  • Die pop_initialisation_deltas ()-Funktion ist ähnlich der pop_deltas-Funktion mit der Ausnahme, dass die Schritte 406409 weg gelassen werden. Somit wird in diesem Fall die fire_event-Funktion () nicht aufgerufen, und damit erfolgt kein Fortschreiten von Signalen.
  • Pop_events ()
  • Die pop_events ()-Funktion wird nachstehend in Verbindung mit 5 beschrieben.
  • (Schritt 501) Wenn die Ereignis-Warteschlange leer ist, kehrt die Funktion zurück. Andernfalls geht sie auf Schritt 502 über.
  • (Schritt 502) Eine Prüfung wird durchgeführt, um zu bestimmen, ob der Ereignis-Zeit-Wert der ersten Aufzeichnung auf der Ereignis-Warteschlange nach der (d. h. größer als die) spezifizierten Simulations-Endzeit ist. Ist dies der Fall, kehrt die Funktion zurück.
  • (Schritt 503) Eine Warteschlangen-Aufzeichnungs-Hinweisadresse wird auf eine Stelle auf der ersten Aufzeichnung in der Ereignis-Warteschlange eingestellt und die laufende Ereignis-Zeit wird gleich dem Ereignis-Zeitwert dieser Aufzeichnung eingestellt.
  • (Schritte 504506) Es wird eine Schleife durchlaufen, in der jede Aufzeichnung auf der Ereignis-Warteschlange nacheinander ausgewählt wird. Für jede dieser Aufzeichnungen wird die change-state ()-Funktion des Signal-Objektes, die auf die Aufzeichnung bezogen ist, aufgerufen. Die change-state ()-Funktion aktualisiert den Status des bezogenen Signal-Objektes dadurch, dass der alte Zustandswert gleich dem neuen Zustandswert eingestellt wird. Diese Warteschlange wird wiederholt, bis der Ereignis-Zeitwert der ausgewählten Aufzeichnung größer ist als die laufende Ereignis-Zeit.
  • (Schritt 507) Das Warteschlangen-Aufzeichnungs-Hinweiszeichen wird dann in die erste Aufzeichnung in der Ereignis-Warteschlange rückgesetzt.
  • (Schritte 508510) Es wird eine Schleife ausgeführt, bei der jede Aufzeichnung in der Ereignis-Warteschlange nacheinander ausgewählt wird. Die ausgewählte Aufzeichnung wird aus der Ereignis-Warteschlange entfernt und die fire_event ()-Funktion des Signal-Objektes, die auf diese Aufzeichnung bezogen ist, aufgerufen. Diese Schleife wird wiederholt durchlaufen, bis der event time – Wert der ausgewählten Aufzeichnung größer ist als die laufende Ereignis-Zeit.
  • Eintritts ()-Funktion
  • Jedes Prozess-Objekt hat seine eigene Eintritts-Funktion, die für dieses Prozess-Objekt spezifisch ist. 6 zeigt die Eintritts-Funktion eines typischen Prozess-Objekts.
  • (Schritt 601) Die Funktion liest die Werte des alten Zustandes von beliebigen Eingangs-Signal-Objekten, führt Nutzer-definierte Verarbeitungsvorgänge durch und aktualisiert den Wert des neuen Zustandes von beliebigen Abgabe-Signal-Objekten. Beispielsweise liest in 2 das Prozess-Objekt P2 den Wert des alten Zustands von S1 und aktualisiert den Wert des neuen Zustands von S2. Das Aktualisieren des Wertes des neuen Zustandes setzt das geänderte Kennzeichen des Signal-Objektes auf Echt.
  • Es ist zu erwähnen, dass der alte Zustand des Ausgangs-Signal-Objektes in dieser Stufe nicht aktualisiert wird. Damit benutzen die anderen Prozess-Objekte, die bei der gleichen Delta-Zeit (oder Ereignis-Zeit) gezündet werden, den gleichen Wert des alten Zustandes. Die Werte des alten Zustandes werden solange nicht aktualisiert, bis der nächste Durchlauf der pop_deltas ()- oder pop_events ()-Funktion in der vorbeschriebenen Weise erfolgt.
  • (Schritt 602) Nach Beendigung aller Nutzer-definierten Verarbeitungsvorgänge ruft die Eintritts-Funktion die Sende-Ereignis-Funktion eines jeden Signal-Objektes auf, dessen Zustand er möglicherweise während des Verarbeitens aktualisiert hat.
  • Sende_Ereignis ()
  • 7 zeigt die Sende-Ereignis ()-Funktion eines typischen Signal-Objekts. Es wird in der nachfolgenden Beschreibung angenommen, dass das Signal-Objekt Ereignis-basiert ist.
  • (Schritt 701) Die Funktion prüft zunächst, ob das geänderte Kennzeichen des Signal-Objekts echt ist. Ist dies der Fall, geht die Funktion auf Schritt 702 über, andernfalls kehrt sie zurück.
  • (Schritt 702) Der Schritt des geänderten Kennzeichens für das Signal-Objekt wird auf Falsch rückgesetzt.
  • (Schritt 703) Die Funktion prüft dann, ob der Wert des neuen Zustands des Signal-Objekts gleich dem Wert des alten Zustands ist. Ist dies der Fall, kehrt die Funktion zurück.
  • (Schritt 704) Die Funktion prüft dann, ob eine Änderung auf das Signal-Objekt bereits auf der Ereignis-Warteschlange für die exakt gleiche Zeit wie die Änderung, die gerade verarbeitet wird, disponiert wird. Dieser Schritt schließt das Prüfen mit ein, ob die Ereignis-Zeit (d. h. die Ereignis-Zeit, bei der das Signal disponiert worden ist, eine Änderung vorzunehmen) größer ist als der Wert der letzten Ereignis-Zeit für dieses Signal-Objekt. Ist dies nicht der Fall, ist eine Änderung bereits disponiert worden und es wird keine weitere Aktion durch diese Funktion vorgenommen.
  • (Schritt 705) Geht man davon aus, dass alle vorstehend genannten Prüfungen einwandfrei verlaufen, wird der Wert der letzten Ereignis-Zeit für das Signal-Objekt gleich der Ereignis-Zeit gesetzt. Die Änderung wird dann disponiert, indem push_event (this event_time) aufgerufen wird, wobei „this" ein Hinweiszeichen für dieses Signal-Objekt darstellt. Dies fügt eine neue Aufzeichnung der entsprechenden Position in der Ereignis-Warteschlange hinzu.
  • Es zeigt sich, dass die vorbeschriebenen Tests sicher stellen, dass ein Signal nur in die Warteschlange eingeführt wird, wenn ihre Werte sich geändert haben und wenn eine Änderung für dieses Signal nicht bereits in die Warteschlange eingeführt worden ist. Dies reduziert die Anzahl von Warteschlangen-Vorgängen und hilft damit, die Laufgeschwindigkeit des Modells zu erhöhen.
  • Wie angegeben, geht die vorstehende Beschreibung nach 7 davon aus, dass das Signal-Objekt Ereignis-bezogen ist. Wenn es Delta-bezogen ist, werden die Schritte 704 und 705 durch den Schritt 704a wie folgt ersetzt.
  • (Schritt 704a) Die Änderung wird disponiert, indem push_delta (this) aufgerufen wird, wobei „this" ein Hinweiszeichen auf dieses Signal-Objekt repräsentiert. Dies fügt eine neue Aufzeichnung dem Ende der Delta-Warteschlange hinzu.
  • Fire_event ()
  • 8 zeigt die fire_event ()-Funktion eines typischen Signal-Objekts.
  • (Schritt 801) Die Funktion prüft zuerst, ob das proc_ptr für das Signal-Objekt Null ist. Ist proc_ptr Null, bedeutet dies, dass das Signal-Objekt keine abhängigen Prozess-Objekte aufweist, so dass keine weitere Aktion durch diese Funktion veranlasst wird.
  • (Schritt 802) Unterstellt man, dass proc_ptr von Null verschieden ist, wird die Eintritts-Funktion des abhängigen Prozesses, auf die durch proc_ptr verwiesen wird, aufgerufen.
  • Betriebsweise
  • Die Betriebsweise des Simulators wird in Verbindung mit 9 beschrieben; diese 9 zeigt Prozess-Objekte P1, P2, Signal-Objekt S1 und die Ereignis-Warteschlange. Es wird davon ausgegangen, dass S1 Ereignis-bezogen ist.
  • Wenn die Eintritts-Funktion von P1 läuft, aktualisiert sie den Wert des neuen Zustandes des Ausgangssignals S1. Sie ruft dann die send_event ()-Funktion von S1 auf, nachdem sie eine andere Nutzer-definierte Verarbeitung vorgenommen hat.
  • Die send_event ()-Funktion ruft die push_event ()-Funktion der Ereignis-Warteschlange auf, die bewirkt, dass eine Ereignis-Aufzeichnung der Ereignis-Warteschlange für eine spezifizierte Ereignis-Zeit hinzugefügt wird.
  • Wenn die spezifizierte Ereignis-Zeit erreicht ist, entfernt die pop_events ()-Funktion diese Aufzeichnung aus der Ereignis-Warteschlange und ruft die change-Status-Funktion von S1 auf. Dies bewirkt, dass der alte Zustand von S1 gleich dem neuen Zustand gesetzt wird. Pop_events ruft dann die fire_event ()-Funktion von S1 auf. Diese ruft die Eintritts-Funktion des abhängigen Prozess-Objektes P2 auf.
  • Zusammenfassend ergibt sich, dass erreicht wird, dass ein Signal von P1 nach P2 mit einer spezifizierten Verzögerung kommuniziert wird.
  • Erörterung
  • Ein entscheidendes Merkmal der vorbeschriebenen Simulations-Technik besteht in der Verwendung von getrennten Ereignis- und Delta-Warteschlangen. Die beiden unterschiedlichen Formen der Zeit, Delta-Zeit und Ereignis-Zeit, haben unterschiedliche Formen der Warteschlangen-Aktion wie auch unterschiedliche Optimierungen, so dass die Verwendung von getrennten Ereignis- und Delta-Warteschlangen es wesentlich leichter macht, die Warteschlangen-Aktionen zu optimieren. Beispielsweise kann die Form der Ereignis-Warteschlange in der oben beschriebenen Weise optimiert werden.
  • Ein anderes wichtiges Merkmal der Simulations-Technik besteht darin, dass jeder veränderbare Teil des Simulations-Modells als ein getrenntes Objekt implementiert wird, und jedes Objekt auf die Handhabung der eigenen Zustandsänderungen ansprechen kann. Daraus ergibt sich, dass der Status eines jeden Teils in einem optimalen Format gehalten werden kann, anstatt dass er mit einem Standard-Format benutzt wird, wie dies bei herkömmlichen Simulatoren auf Kernel-Basis erforderlich ist. Darüber hinaus können die Routinen, die zur Änderung des Status eines Modellteils benötigt werden, speziell für diesen Teil ausgelegt werden, anstatt dass sie auf einer verallgemeinerten Routine in einem Kernel abgestellt sind. Dies ermöglicht, dass eine große Anzahl von diskreten Optimierungen den individuellen Modellteilen aufgegeben werden können, so dass die Geschwindigkeit der Simulation erhöht wird.
  • Da jedes Teil der Modell-Steuerungen seinen eigenen Status hat, brauchen die Warteschlangen nicht die tatsächlichen Werte der Änderungen des Status festzuhalten; stattdessen können sie einfach Referenzen zu den Modellteilen halten, deren Zustände so disponiert sind, dass sie sich ändern. Dies vereinfacht die Warteschlangen-Aktionen erheblich, da Werte nicht in einen und aus einem Speicher kopiert werden brauchen, und es können komplexe Datenstrukturen durch ihre eigenen Teile anstatt durch verallgemeinerte Warteschlangen-Routinen behandelt werden. Dies führt zu weiteren Verbesserungen in der Effizienz.
  • Einige mögliche Modifikationen
  • An dem vorbeschriebenen System können zahlreiche Modifikationen vorgenommen werden, ohne dass vom Wesen der Erfindung abgewichen wird. Beispielsweise können die Warteschlangen auf Zeitsteuer-Regelkreisen basieren, wie in der US-Patentschrift 5157 620 beschrieben, statt dass sie als verkettete Listen konstruiert sind.

Claims (7)

  1. Simulator zum Simulieren eines digitalen Systems, der ein Simulations-Modell (11) eines digitalen Systems zur Verwendung in einem elektronischen Computer und eine Ereignis-Warteschlange (13) zum Planen von Änderungen bezüglich des Zustandes des Simulations-Modells zu bestimmten Zeiten aufweist, gekennzeichnet durch eine getrennte Delta-Warteschlange (14) zum Planen von Änderungen bezüglich des Zustandes des Simulations-Modells, die augenblicklich stattfinden sollen.
  2. Simulator nach Anspruch 1, bei dem das Simulations-Modell (11) eine Anzahl von austauschbaren Teilen aufweist, von denen jedes seine eigene Zustandsinformation enthält und für das Managen der eigenen Zustandsinformation verantwortlich ist.
  3. Simulator nach Anspruch 2, bei dem die Ereignis-Warteschlange (13) und die Delta-Warteschlange (14) Hinweise auf die Teile des Modells enthalten, für die Änderungen des Zustandes geplant sind, ohne dass die tatsächlichen Werte dieser Änderungen des Zustandes enthalten sind.
  4. Simulator nach Anspruch 2 oder 3, bei dem die Teile des Modells Prozess-Objekte und Signal-Objekte aufweisen.
  5. Simulator nach Anspruch 4, bei dem jedes der Signal-Objekte direkt mindestens eines der Prozess-Objekte antreibt und mindestens ein geteilter Prozess zwischen einem Signal-Objekt und einer Vielzahl von Prozess-Objekten vorgesehen ist, um zu ermöglichen, dass das Signal-Objekt die Vielzahl von Projekt-Objekten indirekt antreibt.
  6. Simulator nach einem der vorausgehenden Ansprüche, gekennzeichnet durch eine Vorrichtung zum Auswählen einer optimalen Form der Ereignis-Warteschlange 13.
  7. Simulator nach einem der vorausgehenden Ansprüche, gekennzeichnet durch eine Vorrichtung zum Prüfen, dass ein Zustandswert tatsächlich geändert worden ist, und dass diese Zustandsänderung nicht bereits der Ereignis-Warteschlange (13) oder der Delta-Warteschlange (14) hinzugefügt wird, bevor diese Änderung der Ereignis-Warteschlange (13) oder Delta-Warteschlange (14) hinzugefügt wird.
DE69730004T 1997-01-16 1997-11-10 Digitalsystem-Simulation Expired - Lifetime DE69730004T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9700798 1997-01-16
GBGB9700798.3A GB9700798D0 (en) 1997-01-16 1997-01-16 Digital system simulation

Publications (2)

Publication Number Publication Date
DE69730004D1 DE69730004D1 (de) 2004-09-02
DE69730004T2 true DE69730004T2 (de) 2005-07-21

Family

ID=10806051

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69730004T Expired - Lifetime DE69730004T2 (de) 1997-01-16 1997-11-10 Digitalsystem-Simulation

Country Status (5)

Country Link
US (1) US6097885A (de)
EP (1) EP0854429B1 (de)
JP (1) JPH10207918A (de)
DE (1) DE69730004T2 (de)
GB (1) GB9700798D0 (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510405B1 (en) * 1998-12-22 2003-01-21 Unisys Corporation Method and apparatus for selectively displaying signal values generated by a logic simulator
US6745375B1 (en) * 1999-02-18 2004-06-01 Cirrus Logic, Inc. System and method for reducing computational overhead in a sequenced functional verification system
EP1118951A3 (de) * 2000-01-19 2003-03-26 Fujitsu Services Limited Rechnerimplementiertes Simulationssystem und Apparat
US7328195B2 (en) * 2001-11-21 2008-02-05 Ftl Systems, Inc. Semi-automatic generation of behavior models continuous value using iterative probing of a device or existing component model
DE10307408B3 (de) * 2003-02-20 2004-09-02 Radioplan Gmbh Verfahren zur Ablaufsteuerung von sequentiellen objektorientierten Systemsimulationen der Kommunikation in Mobilfunknetzen
US7197445B1 (en) * 2003-03-14 2007-03-27 Xilinx, Inc. Atomic transaction processing for logic simulation
US20050071212A1 (en) * 2003-09-26 2005-03-31 Flockhart Andrew D. Method and apparatus for business time computation in a resource allocation system
US8094804B2 (en) 2003-09-26 2012-01-10 Avaya Inc. Method and apparatus for assessing the status of work waiting for service
US7770175B2 (en) 2003-09-26 2010-08-03 Avaya Inc. Method and apparatus for load balancing work on a network of servers based on the probability of being serviced within a service time goal
US20050097046A1 (en) 2003-10-30 2005-05-05 Singfield Joy S. Wireless electronic check deposit scanning and cashing machine with web-based online account cash management computer application system
US7953859B1 (en) 2004-03-31 2011-05-31 Avaya Inc. Data model of participation in multi-channel and multi-party contacts
US8738412B2 (en) 2004-07-13 2014-05-27 Avaya Inc. Method and apparatus for supporting individualized selection rules for resource allocation
US7949121B1 (en) 2004-09-27 2011-05-24 Avaya Inc. Method and apparatus for the simultaneous delivery of multiple contacts to an agent
US8234141B1 (en) 2004-09-27 2012-07-31 Avaya Inc. Dynamic work assignment strategies based on multiple aspects of agent proficiency
US7702788B2 (en) * 2005-10-25 2010-04-20 International Business Machines Corporation Method and apparatus for performance and policy analysis in distributed computing systems
US8443073B2 (en) * 2006-10-02 2013-05-14 Sap Ag Automated performance prediction for service-oriented architectures
US8799147B1 (en) 2006-10-31 2014-08-05 United Services Automobile Association (Usaa) Systems and methods for remote deposit of negotiable instruments with non-payee institutions
US7876949B1 (en) 2006-10-31 2011-01-25 United Services Automobile Association Systems and methods for remote deposit of checks
US7885451B1 (en) 2006-10-31 2011-02-08 United Services Automobile Association (Usaa) Systems and methods for displaying negotiable instruments derived from various sources
US8351677B1 (en) 2006-10-31 2013-01-08 United Services Automobile Association (Usaa) Systems and methods for remote deposit of checks
US7873200B1 (en) 2006-10-31 2011-01-18 United Services Automobile Association (Usaa) Systems and methods for remote deposit of checks
US8708227B1 (en) 2006-10-31 2014-04-29 United Services Automobile Association (Usaa) Systems and methods for remote deposit of checks
US10380559B1 (en) 2007-03-15 2019-08-13 United Services Automobile Association (Usaa) Systems and methods for check representment prevention
US8959033B1 (en) 2007-03-15 2015-02-17 United Services Automobile Association (Usaa) Systems and methods for verification of remotely deposited checks
US8538124B1 (en) 2007-05-10 2013-09-17 United Services Auto Association (USAA) Systems and methods for real-time validation of check image quality
US8433127B1 (en) 2007-05-10 2013-04-30 United Services Automobile Association (Usaa) Systems and methods for real-time validation of check image quality
US9058512B1 (en) 2007-09-28 2015-06-16 United Services Automobile Association (Usaa) Systems and methods for digital signature detection
US9892454B1 (en) 2007-10-23 2018-02-13 United Services Automobile Association (Usaa) Systems and methods for obtaining an image of a check to be deposited
US9159101B1 (en) 2007-10-23 2015-10-13 United Services Automobile Association (Usaa) Image processing
US8358826B1 (en) 2007-10-23 2013-01-22 United Services Automobile Association (Usaa) Systems and methods for receiving and orienting an image of one or more checks
US9898778B1 (en) 2007-10-23 2018-02-20 United Services Automobile Association (Usaa) Systems and methods for obtaining an image of a check to be deposited
US7996316B1 (en) 2007-10-30 2011-08-09 United Services Automobile Association Systems and methods to modify a negotiable instrument
US7996315B1 (en) 2007-10-30 2011-08-09 United Services Automobile Association (Usaa) Systems and methods to modify a negotiable instrument
US7996314B1 (en) 2007-10-30 2011-08-09 United Services Automobile Association (Usaa) Systems and methods to modify a negotiable instrument
US8046301B1 (en) 2007-10-30 2011-10-25 United Services Automobile Association (Usaa) Systems and methods to modify a negotiable instrument
US8001051B1 (en) 2007-10-30 2011-08-16 United Services Automobile Association (Usaa) Systems and methods to modify a negotiable instrument
US8320657B1 (en) 2007-10-31 2012-11-27 United Services Automobile Association (Usaa) Systems and methods to use a digital camera to remotely deposit a negotiable instrument
US8290237B1 (en) 2007-10-31 2012-10-16 United Services Automobile Association (Usaa) Systems and methods to use a digital camera to remotely deposit a negotiable instrument
US7900822B1 (en) 2007-11-06 2011-03-08 United Services Automobile Association (Usaa) Systems, methods, and apparatus for receiving images of one or more checks
US7896232B1 (en) 2007-11-06 2011-03-01 United Services Automobile Association (Usaa) Systems, methods, and apparatus for receiving images of one or more checks
US10380562B1 (en) 2008-02-07 2019-08-13 United Services Automobile Association (Usaa) Systems and methods for mobile deposit of negotiable instruments
US8351678B1 (en) 2008-06-11 2013-01-08 United Services Automobile Association (Usaa) Duplicate check detection
US8422758B1 (en) 2008-09-02 2013-04-16 United Services Automobile Association (Usaa) Systems and methods of check re-presentment deterrent
US10504185B1 (en) 2008-09-08 2019-12-10 United Services Automobile Association (Usaa) Systems and methods for live video financial deposit
US7885880B1 (en) * 2008-09-30 2011-02-08 United Services Automobile Association (Usaa) Atomic deposit transaction
US7974899B1 (en) 2008-09-30 2011-07-05 United Services Automobile Association (Usaa) Atomic deposit transaction
US8275710B1 (en) 2008-09-30 2012-09-25 United Services Automobile Association (Usaa) Systems and methods for automatic bill pay enrollment
US7962411B1 (en) 2008-09-30 2011-06-14 United Services Automobile Association (Usaa) Atomic deposit transaction
US8391599B1 (en) 2008-10-17 2013-03-05 United Services Automobile Association (Usaa) Systems and methods for adaptive binarization of an image
US7970677B1 (en) 2008-10-24 2011-06-28 United Services Automobile Association (Usaa) Systems and methods for financial deposits by electronic message
US7949587B1 (en) 2008-10-24 2011-05-24 United States Automobile Association (USAA) Systems and methods for financial deposits by electronic message
US8452689B1 (en) 2009-02-18 2013-05-28 United Services Automobile Association (Usaa) Systems and methods of check detection
US10956728B1 (en) 2009-03-04 2021-03-23 United Services Automobile Association (Usaa) Systems and methods of check processing with background removal
US8542921B1 (en) 2009-07-27 2013-09-24 United Services Automobile Association (Usaa) Systems and methods for remote deposit of negotiable instrument using brightness correction
US9779392B1 (en) 2009-08-19 2017-10-03 United Services Automobile Association (Usaa) Apparatuses, methods and systems for a publishing and subscribing platform of depositing negotiable instruments
US8977571B1 (en) 2009-08-21 2015-03-10 United Services Automobile Association (Usaa) Systems and methods for image monitoring of check during mobile deposit
US8699779B1 (en) 2009-08-28 2014-04-15 United Services Automobile Association (Usaa) Systems and methods for alignment of check during mobile deposit
US8306212B2 (en) 2010-02-19 2012-11-06 Avaya Inc. Time-based work assignments in automated contact distribution
US9129340B1 (en) 2010-06-08 2015-09-08 United Services Automobile Association (Usaa) Apparatuses, methods and systems for remote deposit capture with enhanced image detection
US10380565B1 (en) 2012-01-05 2019-08-13 United Services Automobile Association (Usaa) System and method for storefront bank deposits
US10552810B1 (en) 2012-12-19 2020-02-04 United Services Automobile Association (Usaa) System and method for remote deposit of financial instruments
US11138578B1 (en) 2013-09-09 2021-10-05 United Services Automobile Association (Usaa) Systems and methods for remote deposit of currency
US9286514B1 (en) 2013-10-17 2016-03-15 United Services Automobile Association (Usaa) Character count determination for a digital image
US10402790B1 (en) 2015-05-28 2019-09-03 United Services Automobile Association (Usaa) Composing a focused document image from multiple image captures or portions of multiple image captures
US11030752B1 (en) 2018-04-27 2021-06-08 United Services Automobile Association (Usaa) System, computing device, and method for document detection
US11900755B1 (en) 2020-11-30 2024-02-13 United Services Automobile Association (Usaa) System, computing device, and method for document detection and deposit processing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253421A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4787061A (en) * 1986-06-25 1988-11-22 Ikos Systems, Inc. Dual delay mode pipelined logic simulator
US4965743A (en) * 1988-07-14 1990-10-23 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Discrete event simulation tool for analysis of qualitative models of continuous processing system
US5111413A (en) * 1989-03-24 1992-05-05 Vantage Analysis Systems, Inc. Computer-aided engineering
JP2507663B2 (ja) * 1990-04-20 1996-06-12 富士通株式会社 論理シミュレ―ション装置
US5794005A (en) * 1992-01-21 1998-08-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronous parallel emulation and discrete event simulation system with self-contained simulation objects and active event objects
US5701439A (en) * 1992-03-30 1997-12-23 Boeing North American, Inc. Combined discrete-event and continuous model simulation and analysis tool
JPH06194415A (ja) * 1992-09-30 1994-07-15 American Teleph & Telegr Co <Att> 論理回路の試験方法とその装置
JP3150566B2 (ja) * 1995-04-14 2001-03-26 富士通株式会社 有効ブロック抽出装置並びにその方法、及び回路シミュレーション装置
US5805470A (en) * 1996-10-10 1998-09-08 Hewlett-Packard Company Verification of instruction and data fetch resources in a functional model of a speculative out-of order computer system

Also Published As

Publication number Publication date
GB9700798D0 (en) 1997-03-05
EP0854429A3 (de) 2000-07-19
DE69730004D1 (de) 2004-09-02
EP0854429A2 (de) 1998-07-22
EP0854429B1 (de) 2004-07-28
JPH10207918A (ja) 1998-08-07
US6097885A (en) 2000-08-01

Similar Documents

Publication Publication Date Title
DE69730004T2 (de) Digitalsystem-Simulation
DE69033360T2 (de) Simulation von ausgewählten Logik-Schaltungsentwürfen
DE69031758T2 (de) Verfahren zur Organisation von und zum Zugriff auf Produkt beschreibenden Daten in Zusammenhang mit einem technischen Prozess
DE3856079T2 (de) Verfahren für einen Blockdiagramm-Simulator
DE2648229C2 (de)
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE3685711T2 (de) Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen.
DE10255125A1 (de) Dezentralisierte Automatische Testung von Grafischen Benutzerschnittstellen(GUI) von Software
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE3606650A1 (de) Hardware logik-simulator
DE4134419A1 (de) Dynamische entwurfsschnittstelleneinrichtung fuer leistungsfaehigkeit und konfiguration eines computersystems
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
DE69634227T2 (de) Emulationssystem mit emulierten Mehrtaktzyklen pro Emulation-Taktzyklus und Signalweglenkung
DE69717590T2 (de) Prozessteuerung mit bewertung von gespeicherten referenzausdrücken
DE10048941A1 (de) Zeitdiagramm-Compiler und Laufzeitumgebung für die interaktive Erzeugung von ausführbaren Testprogrammen zur Logiküberprüfung
DE102018110018A1 (de) Verfahren zum Bereitstellen eines integrierten Prozesses für die Steuergerätentwicklung und Simulationsvorrichtung für die Steuergerätentwicklung
DE69109703T2 (de) Sequentielle Endlichautomatenschaltung sowie integrierte Schaltung mit einer derartigen Schaltung.
DE1191145B (de) Elektronische Zifferrechenmaschine
DE69426507T2 (de) System und Verfahren zur gleichzeitigen Prozess- und Device-Simulation
EP0838054B1 (de) Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
EP2642359A1 (de) Entwicklungseinrichtung und Verfahren zum Erstellen eines Steuergeräteprogramms
DE69329007T2 (de) Kompilierungsmechanismus für Simulationsmodelle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition