DE10325513A1 - Verfahren und Vorrichtung zum Erstellen eines Modells einer Schaltung zur formalen Verifikation - Google Patents
Verfahren und Vorrichtung zum Erstellen eines Modells einer Schaltung zur formalen Verifikation Download PDFInfo
- Publication number
- DE10325513A1 DE10325513A1 DE10325513A DE10325513A DE10325513A1 DE 10325513 A1 DE10325513 A1 DE 10325513A1 DE 10325513 A DE10325513 A DE 10325513A DE 10325513 A DE10325513 A DE 10325513A DE 10325513 A1 DE10325513 A1 DE 10325513A1
- Authority
- DE
- Germany
- Prior art keywords
- model
- circuit
- valid
- behavior
- formal verification
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property 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)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
Description
- Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Erstellen eines Modells einer Schaltung zur formalen Verifikation derselben sowie ein entsprechendes Computerprogrammprodukt und einen entsprechenden elektronisch lesbaren Datenträger.
- Entwürfe für Schaltungen wie beispielsweise anwendungsspezifische integrierte Schaltkreise (ASIC, Application Specific Integrated Circuit) müssen intensiv überprüft werden, da die Aufbauzeit der Produktion langwierig und kostspielig ist. Jede Wiederholung, die durch Fehlfunktionen notwendig wird, kostet viel Geld, verzögert die Markteinführung des Produkts und beeinflusst auch andere Designprojekte, da sie die Zeitpläne der Entwicklungsingenieur- und Produkttestteams verzögert. Eine zusätzliche Arbeitsphase für eine Verifikation des Schaltungsentwurfs ist daher in der Entwurfssequenz enthalten, welche etwa 60% bis 80% der gesamten Entwurfszeit für einen neuen ASIC ausmacht.
- Bei der Verifikation konzentriert man sich auf die Überprüfung der korrekten Funktionalität der zu testenden Schaltung. Die Basis dafür ist z. B. eine RTL(Register Transfer Level)-Beschreibung der Schaltung, welche eine maschinenlesbare Repräsentation der Schaltung darstellt. Mit dieser Beschreibung kann eine Verifikation durch Simulation erfolgen. Hierbei ergibt sich jedoch das Problem, dass sich die Geschwindigkeit des fertigen Schaltkreises und der Simulation um einen Faktor 1.000.000 unterscheidet. Daher ist es in diesem Fall unwahrscheinlich, dass Fehler, welche nur sporadisch, z. B. in Abständen von mehreren Stunden, auftreten, detektiert werden.
- Daher wurde nach Verfahren gesucht, welche ein schnelleres und kritischeres Testen der RTL-Beschreibung ermöglichen.
- Hierfür sind formale Verfahren eine Möglichkeit. Dabei wird mit Hilfe mathematischer Verfahren überprüft, ob ein Modell, welches mindestens einen Aspekt der gewünschten Funktionalität der Schaltung beschreibt, mit der Repräsentation des Schaltkreises durch die RTL-Beschreibung vereinbar ist.
- Ein Modell beschreibt einen kausalen Zusammenhang zwischen Eigenschaften über den Werteverlauf von Größen oder Signalen über der Zeit. Es beschreibt Annahmen über die zeitliche Verteilung von Signalwerten und Zusicherungen über weitere Signalwerte und ihre zeitliche Relation zu den Signalwerten der Annahme. Ein Modell ist ein gültiges oder wahres Modell einer Schaltung, wenn der Betrieb der Schaltung nur Werteverläufe produzieren kann, bei denen die Zusicherungen erfüllt sind, wann immer die Annahmen erfüllt sind. Die Gültigkeit eines Modells kann insbesondere mit Algorithmen der formalen Verifikation bewiesen werden. Eine Klasse derartiger Algorithmen heißt „Property Checker" und in diesem Zusammenhang wird ein Modell auch als „Property" bezeichnet. Die Property Checker arbeiten, als ob sie die Schaltung mit jedem möglichen Eingabemuster simulieren und die Gültigkeit des Modells auf jedem möglichen Eingabemuster simulieren und die Gültigkeit des Modells auf jedem dieser Simulationsergebnisse prüfen würden.
- Weitergehende Informationen über formale Verifikation von Schaltkreisen sind beispielsweise in T. Kropf, Introduction to Formal Hardware Verification, Springer Verlag, 1999 oder in J. Bormann, C. Spalinger, Formal Verification for Non-Formalists, IT + TI Informationstechnik und Technische Informatik, 43 (1), 2001 zu finden.
- Ein Problem bei der formalen Verifikation von Schaltkreisen oder Schaltungen wie beispielsweise ASICs bleibt die Erstellung eines Modells, welches die gewünschte Funktionalität beschreibt, d. h. einer formalen Spezifikation. Das Auffinden des richtigen Inhalts eines derartigen Modells ist eine zeit aufwändige Aufgabe und ist derzeit das gravierendste Hindernis für eine schnelle Anwendung bestehender Technologie zur Formalverifikation in großem Maßstab. Bisher werden derartige Modelle gemäß einem manuellen Try-and-Error-Verfahren erstellt. Der Verifikationsingenieur drückt einen Aspekt des Modells unter Benutzung einer formalen Sprache oder ähnlicher technischer Mittel wie Zustandsautomaten aus. Dann überprüft er das Modell und modifiziert es, bis ein gültiges Modell erhalten wird. In dem häufigen Fall eines Scheiterns (das Modell erweist sich als nicht gültig bzw. wahr), analysiert er das Design der Schaltung und entscheidet, ob das Modell geändert werden muss, oder ob ein Fehlverhalten der Schaltung erkannt wurde. Dabei benutzt der Verifikationsingenieur sein Wissen aus der Spezifikation der Schaltung und der HDL(Hardware Description Language)-RTL-Beschreibung.
- Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren bzw. eine Vorrichtung bereitzustellen, wodurch das Erstellen eines derartigen Modells beschleunigt und vereinfacht wird.
- Diese Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1 bzw. eine Vorrichtung nach Anspruch 26. Die Unteransprüche definieren vorteilhafte oder bevorzugte Ausführungsbeispiele des Verfahrens bzw. der Vorrichtung. Zusätzlich wird ein entsprechendes Computerprogrammprodukt nach Anspruch 28 und ein entsprechender elektronisch lesbarer Datenträger nach Anspruch 29 bereitgestellt.
- Erfindungsgemäß wird ein Verfahren zum Erstellen eines Modells einer Schaltung zur formalen Verifikation derselben vorgeschlagen, welches folgende Schritte umfasst:
- a) Bereitstellen eines gültigen ersten Modells, welches ein tatsächliches Verhalten der Schaltung beschreibt,
- b) Verallgemeinern des gültigen ersten Modells durch Modifikation desselben, um ein zweites Modell der Schaltung zu erhalten, wobei das zweite Modell hinsichtlich der Beschreibung der Schaltung einen größeren Abstraktionsgrad als das erste Modell aufweist, und
- c) Überprüfen, ob das zweite Modell ein gültiges Modell der Schaltung ist, wobei das zweite Modell als ein gültiges Modell der Schaltung erkannt wird, falls das zweite Modell ein tatsächliches Verhalten der Schaltung beschreibt und in diesem Fall das zweite Modell als das Modell der Schaltung zur formalen Verifikation derselben bereitgestellt wird.
- Indem ein gültiges erstes Modell bereitgestellt wird, muss zum Erstellen des Modells nicht bei null angefangen werden. Dieses gültige erste Modell kann insbesondere aus einer Simulation des Schaltkreises gewonnen werden. Aus der Simulation wird dabei ein sehr spezielles Modell gewonnen, welches durch das erfindungsgemäße Verfahren verallgemeinert wird. Die Schaltung kann zur Durchführung der Simulation in einer geeigneten Hardwarebeschreibungssprache beschrieben sein.
- Das wahre erste Modell und entsprechend auch das davon abgeleitete zweite Modell der Schaltung kann ein Verhalten der Schaltung über einen bestimmten Zeitraum beschreiben, insbesondere in zeitlich diskreten Schritten. Das erste Modell und auch das zweite Modell kann neben Eingangsgrößen auch Ausgangsgrößen und interne Größen der Schaltung beinhalten. Eigenschaften des Modells wie beispielsweise diese Größen werden dabei bevorzugt in Annahmen, Zusicherungen und irrelevante Eigenschaften klassifiziert. Die Modifikation des gültigen ersten Modells kann dann erfolgen, indem die Klasse mindestens eine dieser Eigenschaften zu mindestens einem Zeitpunkt geändert wird. Alternativ oder zusätzlich kann der bestimmte Zeitraum eingeschränkt werden.
- Die Überprüfung in Schritt c) des erfindungsgemäßen Verfahrens kann insbesondere dadurch geschehen, dass durch eine formale Verifikation die Gültigkeit des zweiten Modells bewiesen oder widerlegt wird.
- Wird das zweite Modell als wahr erkannt, können die Schritte b) und c) mit dem zweiten Modell als neues erstes gültiges Modell wiederholt werden, um ein weiteres Modell der Schaltung zu erhalten. Falls sich hingegen das zweite Modell als ungültig erweist, können die Schritte a) bis c) mit demselben ersten gültigen Modell wiederholt werden, wobei bei Schritt b) eine andere Modifikation des ersten Modells erfolgt. Alternativ oder zusätzlich kann in diesem Fall ein Designfehler der Schaltung vorliegen und somit (automatisch) erkannt werden.
- Das Verfahren kann insbesondere rechnergestützt durchgeführt werden, wobei Schritt c) automatisiert durchgeführt werden kann, während Schritt b) von einem Benutzer vorgenommen werden kann. Zur Unterstützung des Schritts b) können das erste Modell und das zweite Modell insbesondere graphisch dargestellt werden, und die Modifikation des ersten wahren Modells kann mittels einer graphischen Benutzeroberfläche erfolgen.
- Schritt b) kann aber auch zumindest teilweise automatisiert erfolgen.
- Insgesamt wird somit ein leistungsfähiges Verfahren und eine entsprechende Vorrichtung bereitgestellt, wodurch auf einfache und zeitsparende Weise ein Modell einer Schaltung zur formalen Verifikation erstellt werden kann.
- Die Erfindung wird im Folgenden unter Bezugnahme auf die beigefügte Zeichnung anhand bevorzugter Ausführungsbeispiele näher beschrieben. Es zeigen:
-
1 ein Blockdiagramm eines bevorzugten Ausführungsbeispiels einer erfindungsgemäßen Vorrichtung, -
2 ein Flussdiagramm eines bevorzugten Ausführungsbeispiels des erfindungsgemäßen Verfahrens, und -
3A bis3C graphische Darstellungen einzelner Schritte des erfindungsgemäßen Verfahrens. - In
1 ist ein Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung schematisch dargestellt. Dabei wird die Vorrichtung auf einem Computer- oder Rechnersystem1 bereitgestellt. Eine erste Einheit2 dient zum Bereitstellen eines gültigen ersten Modells der Schaltung, welche mittels formaler Verifikation überprüft werden soll. Diese Schaltung kann beispielsweise ein anwendungsspezifischer integrierter Schaltkreis (ASIC) sein. - Dieses gültige Modell kann beispielsweise aus einer Simulation der Schaltung wie in der Beschreibungseinleitung erwähnt stammen und an die erste Einheit
2 wie durch einen Pfeil a angedeutet übergeben werden. Die erste Einheit2 kommuniziert wie durch einen Pfeil b angedeutet mit einer zweiten Einheit3 zum Verallgemeinern des gültigen ersten Modells durch Modifikation desselben. Durch diese Modifikation weist das zweite Modell hinsichtlich der Beschreibung der Schaltung einen größeren Abstraktionsgrad als das erste Modell auf. Die Informationen, wie das gültige erste Modell zu modifizieren ist, kann die zweite Einheit3 von einem Benutzer erhalten, welche über eine Benutzerschnittstelle5 wie durch Pfeil e angedeutet mit der zweiten Einheit3 kommuniziert. Beispielsweise kann der Benutzer entscheiden, eine oder mehrere Eingangsgrößen des gültigen ersten Modells zu entfernen, um das zweite Modell zu erhalten. Zudem kann der Benutzer über die Benutzerschnittstelle5 wie durch Pfeil f angedeutet auch die Bereitstellung des gültigen Modells in der ersten Einheit2 beeinflussen, z. B. durch Auswahl einer Simulation. - Weiterhin ist eine dritte Einheit
4 zum Überprüfen des zweiten Modells vorgesehen, wobei die dritte Einheit4 derart ausgestaltet ist, dass sie das zweite Modell als ein gültiges Modell erkennt, falls das zweite Modell ein tatsächliches Verhalten der Schaltung beschreibt. Die Kommunikation der dritten Einheit4 mit der ersten Einheit2 und der zweiten Einheit3 ist durch Pfeile c bzw. g angedeutet. - Das Ergebnis dieser Überprüfung kann über die Benutzerschnittstelle
5 einem Benutzer mitgeteilt werden, wie durch einen Pfeil d angedeutet ist. - Die Einheiten
2 –5 sind vorzugsweise softwaremäßig nach Installation von einem entsprechenden Datenträger oder Computerprogramm-Produkt mittels entsprechender Softwaremodule realisiert, wobei jedoch selbstverständlich grundsätzlich auch eine hardwaremäßige Realisierung möglich ist. - In
2 ist der Ablauf eines Verfahrens zum Erstellen eines Modells einer Schaltung, wie es beispielsweise mittels der in1 dargestellten Vorrichtung ausgeführt werden kann, in Form eines Flussdiagramms beschrieben. - In Schritt 6 wird dabei das gültige erste Modell der Schaltung bereitgestellt. In Schritt 7 erfolgt das Verallgemeinern des wahren ersten Modells durch Modifikation desselben, um das zweite Modell der Schaltung zu erhalten. In Schritt 8 wird überprüft, ob das zweite Modell ein wahres Modell der Schaltung ist. Dies kann beispielsweise dadurch geschehen, dass durch formale Verifikation geprüft wird, ob das zweite Modell für die untersuchte Schaltung gültig ist. Eine dafür sinnvolle Klasse von Algorithmen werden „Property Checker" genannt, und verarbeiten neben dem Modell eine maschinenlesbare Schaltungsbeschreibung, die z. B. eine RTL-Beschreibung in VHDL oder einer anderen Hardwarebeschreibungssprache sein kann.
- Wenn sich dabei herausstellt, dass das zweite Modell kein gültiges Modell der Schaltung ist, kann, wie durch Pfeil j angedeutet, die Modifikation des ersten wahren Modells wiederholt werden, wobei nun eine andere Modifikation vorgenommen wird. Zudem oder alternativ kann, wie durch Pfeil k dargestellt, zu Schritt 9 übergegangen werden. Dies bedeutet, dass davon ausgegangen wird, dass das Modell die Schaltung wie gewünscht beschreibt, jedoch das Design der Schaltung, also beispielsweise die Beschreibung in der Hardwarebeschreibungssprache, falsch ist und demzufolge ein Fehler gesucht werden muss.
- Stellt sich hingegen heraus, dass das zweite Modell ein gültiges Modell der Schaltung ist, wird das zweite Modell in Schritt 10 als Modell der Schaltung zur formalen Verifikation ausgegeben und beispielsweise abgespeichert. Dies ist durch Pfeil i dargestellt. Zudem oder alternativ kann, wie durch Pfeil h dargestellt, das Verfahren wiederholt werden, wobei das zweite Modell dann als neues gültiges erstes Modell für den nächsten Durchlauf dient. Somit kann das ursprüngliche gültige erste Modell schrittweise modifiziert werden und nach jeder Modifizierung überprüft werden, ob das zweite Modell ein gültiges Modell ist.
- Bei dieser schrittweisen Vorgehensweise ist die Wahrscheinlichkeit, dass in einem einzelnen Schritt ein ungültiges Modell entsteht, gering. Sollte sich herausstellen, dass das jeweilige zweite Modell kein gültiges Modell ist, müssen bei der Ursachensuche nur die letzten Modifikationen berücksichtigt werden.
- In den
3A bis3C wird nun das Erstellen oder Verallgemeinern eines Modells einer Schaltung aus einer Simulation beispielhaft dargestellt, wie es in Schritt 7 durchgeführt werden kann. Dabei wird eine graphische Benutzeroberfläche bereitgestellt, mit der die Modifikation des ersten wahren Modells, welches aus der Simulation erstellt wird, vorgenommen werden kann. - In
3A ist eine einfache Simulation gezeigt, wie sie auf einem Bildschirm des Computersystems dargestellt werden kann. Dabei ist der zeitliche Verlauf von binären Signalen O1, O2, I1, I2 und S1 in zeitdiskreten Schritten 0 bis 20 dargestellt. Dabei stellt der Zeitpunkt t = 0 einen Startzeitpunkt der dargestellten Simulation dar. Die Signale O1 und O2 sind beispielsweise Ausgangsgrößen und sind durch eine durchgezogene Linie dargestellt. Die Signale I1 und I2 repräsentieren Eingangsgrößen und sind durch eine gestrichelte Linie dargestellt, das Signal S1 entspricht einem internen Signal der Schaltung und ist durch eine gepunktete Linie dargestellt. Selbstverständlich können die verschiedenen Signale auch anders, beispielsweise durch verschiedene Farben, unterschieden werden. Die verschiedenen Größen bzw. Signale des Modells werden auch allgemein als Eigenschaften des Modells bezeichnet. - Aus dieser Simulation kann automatisch ein erstes wahres Modell erstellt werden. Wie in der Einleitung erläutert, besteht ein typisches Modell aus Annahmen und Zusicherungen. Um nun das erste gültige Modell zu gewinnen, werden folgende Zuordnungen durchgeführt.
-
- – Der Werteverlauf aller Eingangsgrößen wie I1, I2 wird zur Annahme.
- – Der Werteverlauf aller Ausgangsgrößen wie O1, O2 wird zur Zusicherung.
- – Die Werte von speichernden Größen, d. h. Größen, welche einen bestimmten Wert speichern, zum Zeitpunkt t = 0 werden zur Annahme. Dies ist nötig, um einen definierten Startzustand festzulegen.
- – Die übrigen Werte der speichernden Größen werden zur Zusicherung.
- – Die Werte von internen Größen, welche keine speichernden Größen sind, werden zur Zusicherung.
- – Annahmen und Zusicherungen werden bevorzugt unterschiedlich, z. B. durch unterschiedliche Farben, dargestellt.
- Das so erhaltene Modell sichert für jede Simulation der Schaltung und für jeden beliebigen Zeitpunkt t darin zu, dass wenn der Schaltungszustand zum Zeitpunkt 0 der Annahme über die speichernden Größen entspricht, und wenn die Eingangsgrößen ab dem Zeitpunkt 0 den im Untersuchungsfenster beschriebenen Werteverlauf haben, dass dann die Ausgangs- und internen Größen den zugesicherten Werteverlauf haben. Dieses Modell ist per Konstruktion für die simulierte Schaltung gültig und ist ein Beispiel für ein erstes gültiges Modell entsprechend Schritt 6 in
2 . - Um dieses erste gültige Modell zu verallgemeinern, kann zunächst, wie in
3B gezeigt, ein Zeitfenster11 ausgewählt werden, das Modell wird in diesem Fall auf die Zeitpunkte10 und11 beschränkt. Bevorzugt werden dabei die Werte von speichernden Größen am linken Rand des Fensters11 , d. h. zum Zeitpunkt t = 10, automatisch zu Annahmen. - Da Simulationen häufig viele tausend Zeitschritte umfassen, kann es zweckmäßig sein, die Auswahl eines geeigneten Zeitfensters vor der oben beschriebenen Umwandlung der Simulation in ein erstes wahres Modell durchzuführen.
- Die ausgewählten Zeitpunkte t = 10 und t = 11 werden dann in t = 0 und t = 1 umbenannt. Dabei ist zu bemerken, dass der Ausdruck „t = 0" nicht als absolute Zeitangabe (z. B. in Bezug auf eine Systemzeit der Schaltung), sondern relativ, d. h. als Startzeitpunkt des Zeitfensters
11 bzw. des so gebildeten Modells zu verstehen ist. - Die graphische Repräsentation dieses Schrittes geht von der üblichen graphischen Darstellung einer Simulation durch die Werteverläufe der Schaltungsgrößen aus. Die Signalverläufe außerhalb des für das Untersuchungsfenster ausgewählten Zeitintervalls
11 werden entweder ausgeblendet oder, wie im vorliegenden Beispiel, anders dargestellt. Es ist auch möglich, dass in zwei Fenstern sowohl die Simulation wie in3A als auch das abgeleitete Modell dargestellt werden. - Ein Kriterium, durch das sich der Benutzer bei der Auswahl des Zeitfensters leiten lassen kann, ist der Wunsch, eine Operation der Schaltung d. h. eine Folge sinngemäß zusammengehörender Schritte zu beschreiben, wie etwa die Durchführung einer Transaktion in einem Businterface. Das Zeitfenster wird dann so gewählt, dass mit dem ersten Zeitpunkt die Operation angestoßen wird und sie beim letzten Zeitpunkt abgeschlossen ist. Das Anstoßen der Operation kann dabei durch einen Signalsprung eines Triggersignals erfolgen.
- Zur beispielhaften Durchführung der Modellmodifikationen entsprechend Schritt (b) in
1 wird von einem Modell ausgegangen, in dem Annahmen und Zusicherungen in einem diskreten Zeitraster aufeinanderfolgender Zeitpunkte beschrieben sind, deren erster Zeitpunkt beliebig ist und im Folgenden mit t = 0 bezeichnet wird. Annahme und Zusicherung sollen durch je eine Konjunktion von Forderungen der Form „Zu einem Zeitpunkt t = n hat ein Signal s einen Wert w" gebildet sein. Derartige Konjunktionen werden im Folgenden als atomare Fakten bezeichnet. Das oben beschriebene aus der Simulation abgeleitete Modell erfüllt diese Anforderungen. Die atomaren Fakten werden auf die folgenden Klassen aufgeteilt: - – Annahme, wenn der atomare Fakt Teil der Annahme ist
- – Zusicherung, wenn der atomare Fakt Teil der Zusicherung ist
- – Irrelevant, wenn der Fakt im Modell keine Rolle spielen soll
- Nach dem Aufspalten des Ausgangsmodells in atomare Fakten gibt es zunächst keine irrelevanten Fakten. Die Modellmodifikationen bestehen darin, dass der Benutzer die Klassifikation einzelner atomarer Fakten ändert. Wenn etwa ein atomarer Fakt der Annahme zu einem irrelevanten Fakt abgeändert wird, wird das Modell verallgemeinert, weil die Zusicherung nun für mehr Abläufe der Schaltung gelten soll. Der jeweilige atomare Fakt, also ein Teil der entsprechenden Größe, wird somit gleichsam aus dem Modell entfernt. Das neue Modell kann aber dadurch ungültig werden, was in Schritt 8 von
2 durch eine formale Verifikation des modifizierten Modells überprüft wird. Wenn ein atomarer Fakt der Zusicherung zu einem irrelevanten Fakt abgeändert wird, beschreibt das neue Modell die Schaltungsabläufe weniger präzise. Ein gültiges Modell bleibt dadurch aber gültig. - Graphisch können die atomaren Fakten gemeinsam in einer Matrix angezeigt werden, in deren Zeilen die einzelnen Signale und in deren Spalten die Zeitpunkte abgetragen sind, so dass sich wieder ein Diagramm wie in
3B ergibt. Dabei werden die Klassen der atomaren Fakten graphisch unterschieden, etwa durch unterschiedliche Färbung, oder indem Fakten der Klasse Irrelevant gar nicht dargestellt werden. Die Abänderung der Klasse eines atomaren Fakts führt zur Umfärbung an der entsprechenden Stelle. Signale, für die es nur irrelevante atomare Fakten gibt, spielen in dem Modell keine Rolle und können auch von der Anzeige ganz entfernt werden. - Neben der Abänderung der Klassifikation einzelner atomarer Fakten kann es für den Benutzer hilfreich sein, wenn er Operationen ausführen kann, bei denen die Klassifikation mehre rer atomarer Fakten gleichzeitig abgeändert wird. Eine derartige Operation könnte etwa alle atomaren Fakten eines Signals umklassifizieren, so dass ein Signal beispielweise komplett irrelevant und somit aus dem Modell entfernt wird. Auch sind Operationen zur Verkleinerung des Zeitfensters
11 sinnvoll, bei denen alle atomaren Fakten zu Zeitpunkten außerhalb des neuen Zeit- bzw. Untersuchungsfensters in die Klasse Irrelevant umgeordnet werden. - Dabei ist zu bemerken, dass prinzipiell beliebige Änderungen der Klassifikation vorgenommen werden können. Beispielsweise kann ein atomarer Fakt einer Eingangsgröße eine Zusicherung werden, oder ein atomarer Fakt einer Ausgangsgröße eine Annahme.
- Wenn der Benutzer durch das Modell eine Schaltungsoperation beschreiben möchte, wird er im Allgemeinen alle atomaren Fakten als irrelevant bezeichnen, die mit der Schaltungsoperation nichts zu tun haben, oder die uninteressant sind, weil sie etwa kombinatorisch aus anderen Signalen abgeleitet werden. Er wird Annahmen beibehalten, in denen Aspekte der Funktion von Nachbarschaltungen wiedergegeben werden, die für die untersuchte Operation wichtig sind. Ferner werden Annahmen beibehalten, die einen inhärenten Teil der betrachteten Situation darstellen (beispielsweise die Annahme über die Aktivierung des write-Signals in einem Modell über eine Schreiboperation eines Businterfaces).
- Ausgehend von der Darstellung in
3B kann der Benutzer etwa entscheiden, das Schaltungsverhalten zu beschreiben, das sich einstellt, wenn die Eingangsgröße I1 einen Sprung macht und nach dem Sprung die Eingangsgröße I2 den Wert Null hat. In diesem Fall möge eine Spezifikation der Schaltung beispielsweise nach dem Sprung von I1 feste Werte für die Ausgangsgrößen O1 und O2 vorsehen, die unabhängig von der internen Größe S1 sind. In der Modellmodifikation wird dies darge stellt, indem alle atomaren Fakten von S1 in die Kategorie Irrelevant verschoben werden und folglich das Signal aus der graphischen Darstellung gelöscht wird. Ferner soll das Modell keine Aussagen über die Werte von O1 und O2 vor dem Sprung von I1 machen. Daher verschiebt der Benutzer die entsprechenden atomaren Fakten ebenfalls in die Kategorie „Irrelevant". Wenn irrelevante atomare Fakten nicht dargestellt werden, ergibt sich dann die Darstellung in3C . - Das so erhaltene Modell wird mit formaler Verifikation automatisch auf seine Gültigkeit geprüft.
- Falls sich das modifizierte Modell als ungültig erweist, d. h., falls es sich herausstellt, dass das modifizierte Modell kein tatsächliches Verhalten der Schaltung beschreibt, wird der Einfluss der letzten Modifikation untersucht. Möglicherweise wurde ein Designfehler der Schaltung gefunden. Ansonsten werden die letzten Modifikationen rückgängig gemacht und es wird mit anderen Modifikationen fortgefahren.
- Die oben dargestellte Simulation und die Modifikationsmöglichkeiten sind beispielhaft zu verstehen. Es können auch weitere Eigenschaften des Modells in Betracht gezogen werden, beispielsweise Bezüge zwischen verschiedenen Signalen oder Grenzwerte für Signale. Auch sind Erweiterungen denkbar, bei dem eine Zusicherung nicht zu einem bestimmten Zeitpunkt, sondern in einem Zeitintervall auftreten muss.
- Zudem können symbolische Abhängigkeiten eingeführt werden, beispielsweise, wenn das Modell beinhalten soll, dass ein Signalwert mittels einer bestimmten Funktion aus anderen Signalwerten berechnet werden soll, beispielsweise für das Beispiel aus
3C O1 = I1 + I2. - Derartige Funktionen können beispielsweise von einem Benutzer eingegeben werden. Es ist aber auch denkbar, dass mittels ei ner entsprechenden Software derartige Abhängigkeiten aus einem Code der Schaltung, beispielsweise einem VHDL-Code, extrahiert werden können.
- Weiterhin ist es natürlich möglich, aus einer Simulation verschiedene Modelle zu generieren, beispielsweise durch Auswahl verschiedener Zeitfenster oder anderer Modifikationen. Dazu ist es nötig, dass verschiedene Modifikationen abgespeichert werden können und gleichzeitig die ursprüngliche Simulation bzw. das ursprüngliche wahre Modell erhalten bleibt.
- Umgekehrt können auch mehrere Simulationen zusammengefasst werden, um daraus ein erstes gültiges Modell abzuleiten. Dies kann beispielsweise auch eine weitere Automatisierung mit sich bringen, indem verschiedene Simulationen automatisch verglichen werden und nur die übereinstimmenden Teile für dieses Modell in Betracht gezogen werden. Die Darstellung verschiedener Simulationen oder verschiedener Modelle kann dabei auf einem Bildschirm in verschiedenen Fenstern erfolgen.
- Ein derartiges Verfahren zur Modellerstellung kann bei verschiedenen Szenarien angewendet werden, beispielsweise bei:
- – „Top-Down"-Verifikation, bei der die Modelle vor der Implementierungsphase erstellt werden und überprüft werden, wenn der HDL-Code vorliegt (hierfür würde eine andere Quelle für die wahre Eigenschaft, von der ausgegangen wird, benötigt werden),
- – „Bottom-Up" Verifikation, bei der ein Modell erstellt wird, nachdem der HDL-Code vorliegt und Simulationsergebnisse benutzt werden können (hier dienen die Modelle dazu, den HDL-Code von Fehlern zu befreien).
- – So genanntes „Reverse Engineering", bei dem ein HDL-Code vorliegt, dessen Spezifikation nicht genau bekannt ist. Dann kann dieser Code durch Überprüfen von hypothetischen Modellen analysiert werden.
Claims (29)
- Verfahren zum Erstellen eines Modells einer Schaltung zur formalen Verifikation derselben, wobei das Modell ein Verhalten der Schaltung beschreibt, umfassend die Schritte (a) Bereitstellen eines gültigen ersten Modells, welches ein tatsächliches Verhalten der Schaltung beschreibt, (b) Verallgemeinern des gültigen ersten Modells durch Modifikation desselben, um ein zweites Modell der Schaltung zu erhalten, wobei das zweite Modell hinsichtlich der Beschreibung der Schaltung einen größeren Abstraktionsgrad als das erste Modell aufweist, und (c) Überprüfen, ob das zweite Modell ein gültiges Modell der Schaltung ist, wobei das zweite Modell als ein gültiges Modell der Schaltung erkannt wird, falls das zweite Modell ein tatsächliches Verhalten der Schaltung beschreibt, und in diesem Fall das zweite Modell als das Modell der Schaltung zur formalen Verifikation derselben bereitgestellt wird.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das gültige erste Modell ein Verhalten der Schaltung über einen bestimmten Zeitraum beschreibt.
- Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das gültige erste Modell ein Verhalten der Schaltung in zeitlich diskreten Schritten beschreibt.
- Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass im Schritt (b) zur Modifikation des gültigen ersten Modells der bestimmte Zeitraum eingeschränkt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Eigenschaften (I1, I2, O1, O2, S1) des gültigen ersten Modells in eine Klasse von Annahmen, welche Voraussetzungen für das von dem zweiten Modell beschriebene Verhalten darstellen, in eine Klasse von Zusicherungen, welche ein aus den Annahmen resultierendes Ergebnis des von dem zweiten Modell beschriebenen Verhaltens darstellen, und in eine Kategorie von irrelevanten Eigenschaften, welche für das beschriebene Verhalten irrelevant sind, aufgeteilt sind.
- Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass in Schritt (b) zum Verallgemeinern des wahren ersten Modells die Klasse mindestens einer Eigenschaft (I1, I2, O1, O2, S1) des wahren ersten Modells geändert wird.
- Verfahren nach einem der Ansprüche 2 bis 4 und einem der Ansprüche 5 oder 6, dadurch gekennzeichnet, dass die Eigenschaften (I1, I2, O1, O2, S1) des ersten Modells Speichergrößen umfassen und Werte dieser Speichergrößen zu Beginn des bestimmten Zeitraums als Annahmen klassifiziert werden.
- Verfahren nach Anspruch 2 und einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, dass in Schritt (b) zum Verallgemeinern des wahren ersten Modells die Klasse mindestens einer Eigenschaft (I1, I2, O1, O2, S1) des ersten Modells zu mindestens einem Zeitpunkt umfasst.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Eigenschaften (I1, I2, O1, O2, S1) des gültigen ersten Modells mindestens eine Größe der Gruppe bestehend aus Eingangsgrößen (I1, I2), Ausgangsgrößen (O1, O2) und internen Größen (S1) der Schaltung umfassen.
- Verfahren nach Anspruch 5 und Anspruch 9, dadurch gekennzeichnet, dass die Eingangsgrößen (I1, I2) des ersten Modells als Annahmen und die Ausgangsgrößen (O1, O2) des ersten Modells als Zusicherungen klassifiziert werden.
- Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass im Schritt (b) eine symbolische Abhängigkeit zwischen den Größen (I1, I2, O1, O2, S1) festgelegt wird.
- Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die symbolische Abhängigkeit aus einer Beschreibung der Schaltung automatisch ermittelt wird.
- Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die symbolische Abhängigkeit durch einen Benutzer festgelegt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass im Schritt (c) das zweite Modell als gültiges Modell erkannt wird, wenn eine formale Verifikation des zweiten Modells ergibt, dass es sich um ein gültiges Modell handelt.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das im Schritt (a) bereitgestellte gültige erste Modell durch eine Simulation der Schaltung ermittelt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das im Schritt (a) bereitgestellte gültige erste Modell durch eine Kombination mehrerer Simulationen ermittelt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Schritt (b) durch eine Benutzereingabe gesteuert wird.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine grafische Darstellung des gültigen ersten Modells und/oder des zweiten Modells erfolgt.
- Verfahren nach Anspruch 5 und Anspruch 18, dadurch gekennzeichnet, dass verschiedene Klassen von Eigenschaften (I1, I2, O1, O2, S1) des jeweiligen Modells unterschiedlich dargestellt werden.
- Verfahren nach Anspruch 17 und einem der Ansprüche 18 oder 19, dadurch gekennzeichnet, dass im Schritt (b) die Modifikation des gültigen ersten Modells durch ein grafisches Editieren der grafischen Darstellung des wahren ersten Modells durch eine Benutzereingabe erfolgt.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Schritt (c) automatisiert durchgeführt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren rechnergestützt durchgeführt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass nach Schritt (c) erneut das Verfahren nach einem der Ansprüche 1 bis 22 mit dem zweiten Modell als gültiges erstes Modell durchgeführt wird, falls zuvor im Schritt (c) festgestellt wurde, dass das zweite Modell ein gültiges Modell ist.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass nach Schritt (c) das Verfahren nach einem der Ansprüche 1 bis 23 erneut mit demselben gültigen ersten Modell durchgeführt wird, wobei bei der erneuten Durchführung des Verfahrens im Schritt (b) eine andere Modifikation des wahren ersten Modells vorgenommen wird, falls zuvor im Schritt (c) festgestellt wurde, dass das zweite Modell kein gültiges Modell der Schaltung ist.
- Verfahren zur formalen Verifikation einer Schaltung mittels eines Modells der Schaltung, dadurch gekennzeichnet, dass das Modell durch ein Verfahren nach einem der Ansprüche 1 bis 24 erstellt wird.
- Vorrichtung zum Erstellen eines Modells einer Schaltung zur formalen Verifikation derselben, umfassend eine erste Einrichtung (
2 ) zum Bereitstellen eines gültigen ersten Modells, eine zweite Einrichtung (3 ) zum Verallgemeinern des gültigen ersten Modells durch Modifikation desselben, um ein zweites Modell der Schaltung zu erhalten, wobei das zweite Modell hinsichtlich der Beschreibung der Schaltung einen höheren Abstraktionsgrad als das erste Modell aufweist, und eine dritte Einrichtung (4 ) zum Überprüfen, ob das zweite Modell ein gültiges Modell der Schaltung ist, wobei die dritte Einrichtung derart ausgestaltet ist, dass sie das zweite Mo dell als ein wahres Modell der Schaltung erkennt, falls das zweite Modell ein tatsächliches Verhalten der Schaltung beschreibt, und in diesem Fall das zweite Modell als das Modell der Schaltung zur formalen Verifikation derselben bereitstellt. - Vorrichtung nach Anspruch 26, dadurch gekennzeichnet, dass die Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 25 ausgestaltet ist.
- Computerprogramm-Produkt mit einem Programmcode, welcher derart eingerichtet ist, dass bei Ausführung des Programmcodes in einer Datenverarbeitungsanlage (
1 ) das Verfahren nach einem der Ansprüche 1 bis 25 ausgeführt wird. - Elektronisch lesbarer Datenträger mit auf dem Datenträger gespeicherten elektronisch lesbaren Steuersignalen, welche dergestalt sind, dass bei Verwendung des Datenträgers in einer Datenverarbeitungsanlage (
1 ) das Verfahren nach einem der Ansprüche 1 bis 25 ausgeführt wird.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10325513A DE10325513B8 (de) | 2003-06-05 | 2003-06-05 | Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation |
US10/855,856 US20050010882A1 (en) | 2003-06-05 | 2004-05-27 | Method and device for creating a model of a circuit for the formal verification |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10325513A DE10325513B8 (de) | 2003-06-05 | 2003-06-05 | Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation |
Publications (3)
Publication Number | Publication Date |
---|---|
DE10325513A1 true DE10325513A1 (de) | 2004-12-30 |
DE10325513B4 DE10325513B4 (de) | 2006-04-20 |
DE10325513B8 DE10325513B8 (de) | 2006-08-03 |
Family
ID=33482585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10325513A Expired - Lifetime DE10325513B8 (de) | 2003-06-05 | 2003-06-05 | Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050010882A1 (de) |
DE (1) | DE10325513B8 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1764715B1 (de) * | 2005-09-15 | 2010-11-17 | Onespin Solutions GmbH | Verfahren zur Bestimmung der Güte einer Menge von Eigenschaften, verwendbar zur Verifikation and zur Spezifikation von Schaltungen |
US7458964B2 (en) * | 2006-11-01 | 2008-12-02 | Medical Technologies Of Georgia, Inc. | Catheter movement control device |
US8726205B1 (en) * | 2013-04-15 | 2014-05-13 | Nvidia Corporation | Optimized simulation technique for design verification of an electronic circuit |
US10331829B2 (en) | 2015-12-15 | 2019-06-25 | International Business Machines Corporation | System design using accurate performance models |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0445942A2 (de) * | 1990-03-06 | 1991-09-11 | AT&T Corp. | Analytische Entwicklung und Verifizierung von intensiv steuernden Systemen |
US6275976B1 (en) * | 1996-03-15 | 2001-08-14 | Joseph M. Scandura | Automated method for building and maintaining software including methods for verifying that systems are internally consistent and correct relative to their specifications |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278769A (en) * | 1991-04-12 | 1994-01-11 | Lsi Logic Corporation | Automatic logic model generation from schematic data base |
US5465216A (en) * | 1993-06-02 | 1995-11-07 | Intel Corporation | Automatic design verification |
US5901073A (en) * | 1997-06-06 | 1999-05-04 | Lucent Technologies Inc. | Method for detecting errors in models through restriction |
US6449752B1 (en) * | 1999-09-23 | 2002-09-10 | Jason Raymond Baumgartner | Digital circuit verification with automated specification enumeration |
-
2003
- 2003-06-05 DE DE10325513A patent/DE10325513B8/de not_active Expired - Lifetime
-
2004
- 2004-05-27 US US10/855,856 patent/US20050010882A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0445942A2 (de) * | 1990-03-06 | 1991-09-11 | AT&T Corp. | Analytische Entwicklung und Verifizierung von intensiv steuernden Systemen |
US6275976B1 (en) * | 1996-03-15 | 2001-08-14 | Joseph M. Scandura | Automated method for building and maintaining software including methods for verifying that systems are internally consistent and correct relative to their specifications |
Also Published As
Publication number | Publication date |
---|---|
DE10325513B4 (de) | 2006-04-20 |
DE10325513B8 (de) | 2006-08-03 |
US20050010882A1 (en) | 2005-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60313652T2 (de) | Verfahren und gerät zur kontrolle der umwandlung von programm-kodes | |
DE10143101A1 (de) | Verfahren zur Validierung von Simulationsergebnissen eines Systems sowie darauf aufbauender Äquivalenzvergleich digitaler Schaltungen | |
EP2999998B1 (de) | Methode zur ermittlung eines modells einer ausgangsgrösse eines technischen systems | |
DE102005026040A1 (de) | Parametrierung eines Simulations-Arbeitsmodells | |
DE20321699U1 (de) | Rechner zum Durchführen eines Simulationsverfahrens für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine | |
EP2799983B1 (de) | Flexible Aufteilung der I/O Kanäle einer Hardware Komponente | |
EP2330469B1 (de) | Verfahren und Entwicklungsumgebung zur Erzeugung eines ausführbaren Gesamtsteuerungsprogramms | |
EP3568757B1 (de) | Verfahren zur erzeugung von quellcode | |
WO2021058223A1 (de) | Verfahren zur effizienten, simulativen applikation automatisierter fahrfunktionen | |
EP2439691A1 (de) | Vorrichtung und Verfahren zum maschinellen Erstellen eines Prozessdiagramms | |
WO1998040796A1 (de) | Verfahren zur rechnergestützten fehleranalyse von sensoren und/oder aktoren in einem technischen system | |
DE102019134053A1 (de) | Verfahren zur kontinuierlichen Absicherung im Fahrversuch applizierter automatisierter Fahrfunktionen | |
EP3812949A1 (de) | Konfigurierbarer digitaler zwilling | |
DE10324594A1 (de) | Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung | |
DE10325513A1 (de) | Verfahren und Vorrichtung zum Erstellen eines Modells einer Schaltung zur formalen Verifikation | |
EP3521949A1 (de) | Vorrichtung zum simulieren einer gesteuerten maschine oder anlage sowie verfahren | |
DE69329007T2 (de) | Kompilierungsmechanismus für Simulationsmodelle | |
DE112005002149T5 (de) | Logisches Verifizierungsverfahren, logische Moduldaten, Vorrichtungsdaten und logische Verifizierungsvorrichtung | |
DE102019132624A1 (de) | Verfahren, Vorrichtung, Computerprogramm und computerlesbares Speichermedium zum Erstellen eines Motion Cueing Algorithmus | |
EP3001318A1 (de) | Bestimmung von Signalen für Readback aus FPGA | |
DE102017104049B4 (de) | Verfahren und vorrichtung zum überprüfen der zuverlässigkeit eines chips | |
EP1095321B1 (de) | Verfahren und anordnung zum entwurf einer steuerung für einen gesamtprozess | |
DE69329174T2 (de) | Kompilierungsmechanismus für ein Simulationsmodell | |
EP3491517B1 (de) | Signalflussbasiertes computerprogramm mit direct-feedthrough-schleifen | |
EP1424641B1 (de) | Verfahren und Einrichtung zum ermitteln der minimalen oder maximalen schaltaktivität einer digitalschaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: ONESPIN SOLUTIONS GMBH, 80339 MUENCHEN, DE |
|
8396 | Reprint of erroneous front page | ||
8364 | No opposition during term of opposition | ||
R081 | Change of applicant/patentee |
Owner name: ONESPIN SOLUTIONS GMBH, DE Free format text: FORMER OWNER: ONESPIN SOLUTIONS GMBH, 80339 MUENCHEN, DE |
|
R082 | Change of representative |
Representative=s name: SONNENBERG HARRISON PARTNERSCHAFT MBB, DE Representative=s name: 24IP LAW GROUP SONNENBERG FORTMANN, DE |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017500000 Ipc: G06F0030000000 |
|
R082 | Change of representative |
Representative=s name: MAIER, DANIEL OLIVER, DIPL.-ING. UNIV., DE Representative=s name: SONNENBERG HARRISON PARTNERSCHAFT MBB, DE Representative=s name: SONNENBERG HARRISON PARTNERSCHAFT MBB PATENT- , DE |
|
R082 | Change of representative |
Representative=s name: MAIER, DANIEL OLIVER, DIPL.-ING. UNIV., DE |
|
R081 | Change of applicant/patentee |
Owner name: SIEMENS ELECTRONIC DESIGN AUTOMATION GMBH, DE Free format text: FORMER OWNER: ONESPIN SOLUTIONS GMBH, 80335 MUENCHEN, DE |
|
R071 | Expiry of right |