DE10243598A1 - Verfahren und Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen - Google Patents

Verfahren und Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen

Info

Publication number
DE10243598A1
DE10243598A1 DE10243598A DE10243598A DE10243598A1 DE 10243598 A1 DE10243598 A1 DE 10243598A1 DE 10243598 A DE10243598 A DE 10243598A DE 10243598 A DE10243598 A DE 10243598A DE 10243598 A1 DE10243598 A1 DE 10243598A1
Authority
DE
Germany
Prior art keywords
variables
variable
terms
formula
reduced
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.)
Ceased
Application number
DE10243598A
Other languages
English (en)
Inventor
Raik Brinkmann
Reinhard Enders
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.)
Onespin Solutions GmbH
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10243598A priority Critical patent/DE10243598A1/de
Publication of DE10243598A1 publication Critical patent/DE10243598A1/de
Ceased 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
    • G06F30/3323Design 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)
  • Devices For Executing Special Programs (AREA)

Abstract

Zur funktionalen Verifikation von integrierten Schaltungen durch Bounded-Model-Checking (BMC) wird vorgeschlagen, in dem vorzugsweise auf der RTL-Ebene vorliegenden BMC-Problem (17) nach symmetrischen Variablen zu suchen, um bei Auffinden einer symmetrischen Variablen diese in einer dem BMC-Problem (17) entsprechenden all-quantifizierten Formel, welche für eine zu verifizierende integrierte Schaltung definiert worden ist, zu eliminieren, um somit ein reduziertes BMC-Problem (7) zu erhalten. Dieses reduzierte BMC-Problem (7) kann in ein entsprechendes GL-BMC-Problem (9) auf der GL-Ebene umgesetzt und von einem Booleschen Beweiser (10) gelöst werden, um die Allgemeingültigkeit der Formel bzw. der reduzierten Formel zu überprüfen. Auf diese Weise können Eigenschaften von Schaltungen, insbesondere reguläre Schaltungsstrukturen, verifiziert werden, welche mit bisher bekannten Methoden nicht behandelt werden konnten, da große Teile des Suchraums des BMC-Problems automatisch abgeschnitten werden, um die Komplexität des BMC-Problems zu redzuzieren.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren sowie eine entsprechend ausgestaltete Vorrichtung zur formalen funktionalen Verifikation von integrierten Schaltungen, insbesondere zur Verifikation von integrierten Schaltungen mit regulären Schaltungsstrukturen, wie beispielsweise Speichern, Bus-Systemen, Multiplexern oder Arbitern. Des Weiteren betrifft die vorliegende Erfindung insbesondere ein Verfahren sowie eine entsprechend ausgestaltete Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen unter Anwendung von so genanntem Bounded-Model-Checking (BMC).
  • Trotz jüngster Fortschritte in der Verifikationstechnologie ist die funktionale Verifikation von digitalen Schaltungen, insbesondere von großen regulären digitalen Schaltungen, wie beispielsweise Speichern, ein schweres und oft unlösbares Problem.
  • Moderne integrierte Schaltungen (Hardware Designs) sind hochintegrierte Systeme, die gewöhnlich verschiedene Instanzen von sog. Building-Blocks enthalten. Viele dieser Building- Blocks oder deren Integration bilden reguläre Strukturen, z. B. Speicher, Bus-Systeme, Multiplexer und Arbiter. Diese Strukturen sind tendenziell sehr groß. Da sie in sicherheits- und unternehmenskritischen Anwendungen, wie Kommunikations-, Automatisierungs- und Medizintechnik, eingesetzt werden, ist die Sicherstellung ihrer funktionalen Korrektheit unabdingbar. Zusätzlich ist die Korrektur von erst in der Anwendung gefundenen Fehlern sehr aufwendig und teuer.
  • Formale funktionale Verifikation ist eine Schlüsseltechnologie zur Qualitätssicherung in modernen Hardware-Entwicklungsprozessen. Für einen effektiven industriellen Einsatz ist eine volle Automatisierung des Verifikationsprozesses notwendig. Model-Checking wurde benutzt, um temporale (zeitbehaftete) Spezifikationen für Hardware-Designs zu verifizieren. Allerdings war es wegen des sog. State-Space-Explosion-Problems für den praktischen Einsatz nur bedingt tauglich. Symbolisches Model-Checking (SMC) und Bounded-Model-Checking (BMC) versuchen dieses Problem zu bewältigen.
  • Gerade BMC ist in der Halbleiter-Industrie für die funktionale Verifikation populär geworden. Beim BMC wird eine temporale Spezifikation für ein Hardware-Design verifiziert, bei der die Zeitachse auf ein endliches Zeitintervall eingeschränkt ist.
  • Ein BMC Problem kann als logisches Erfüllbarkeits-Problem (Boolean Satisfiability (SAT) Problem) formuliert werden, und macht es somit Logikbeweisern wie Boolean-Constraint-Solvern zugänglich. Jüngste Fortschritte in der SAT-Beweisertechnologie machen BMC sogar noch interessanter.
  • Fig. 6 zeigt einen herkömmlichen Standard-BMC-Arbeitsablauf (Standard BMC Flow). Aus einer als Modell dienenden RTL-Beschreibung einer zu verifizierenden integrierten Schaltung (vgl. Bezugszeichen 3) wird mittels Synthese von einer GL- Syntheseeinrichtung 13 ein GL-Design (Gate-Level) der integrierten Schaltung erzeugt (vgl. Bezugszeichen 14). Aus dem GL-Design und einer vorgegebenen temporalen Eigenschaft 4 wird von einer Einrichtung 15 (BMC-Frontend) eine Term- Repräsentation eines BMC-Problems (vgl. Bezugszeichen 16) generiert. Diese wird in eine propositionale Formel übersetzt, die dann durch einen Booleschen Beweiser 10 (Boolean Solver) auf Allgemeingültigkeit untersucht wird. Von dem Boolschen Beweiser 10 wird somit entschieden, ob die vorgegebene temporale Eigenschaft gilt, d. h. allgemeingültig (true) ist (vgl. Bezugszeichen 12). Ist hingegen diese temporale Eigenschaft nicht allgemeingültig, wird von dem Boolschen Beweiser 10 ein Gegenbeispiel (Counter Example) 11 generiert, welches zur Fehlersuche verwendet werden kann.
  • Allerdings stellen einige Klassen von integrierten Schaltungen diese Technologie immer noch vor schwere und manchmal unlösbare Komplexitätsprobleme. Eine dieser Klassen ist die der regulären Schaltungen, welche sehr große reguläre Schaltungsstrukturen aufweisen. Reguläre Schaltungen können Millionen Instanzen von ähnlichen Schaltungsblöcken, wie Speicherzellen, Bus-Systemen, Multiplexern oder Arbitern, und somit eine entsprechend große Anzahl von Zustandsvariablen enthalten. So weist beispielsweise selbst ein kleiner Speicher mit 8 Adresseingängen und 16 Dateneingängen mindestens 2128 Zustände auf. Derartige Hardware-Designs führen oft zu sehr großen Suchräumen für Boolsche Beweiser (SAT-Beweiser), was die BMC- Technologie unbrauchbar macht.
  • Der vorliegenden Erfindung liegt die Aufgabe zu Grunde, ein Verfahren sowie eine Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen durch Model-Checking (MC) bereitzustellen, womit auch Eigenschaften von integrierten Schaltungen, insbesondere von integrierten Schaltungen mit regulären Schaltungsstrukturen, verifiziert werden können, welche bisher nicht behandelt werden konnten.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Vorrichtung mit den Merkmalen des Anspruchs 20 gelöst. Darüber hinaus wird ein Computerprogramm-Produkt mit den Merkmalen des Anspruchs 22 und ein elektronisch lesbares Speichermedium mit den Merkmalen des Anspruchs 23 zum Einsatz in einem Computersystem vorgeschlagen, wobei beim Einsatz in dem Computersystem das erfindungsgemäße Verfahren ausgeführt wird. Die Unteransprüche definieren jeweils bevorzugte und vorteilhafte Ausführungsformen der vorliegenden Erfindung.
  • Mit der vorliegenden Erfindung wird ein neuer Ansatz vorgeschlagen, um große Teile des Suchraums eines MC-Problems (Model-Checking) durch Strukturausnutzung automatisch abzuschneiden. Insbesondere werden Regularitäten in einer zu verifizierenden integrierten Schaltung ausgenutzt, um das zu lösende MC-Problem zu vereinfachen. Das MC-Problem entspricht einer all-quantifizierten Formel mit Variablen, welche ausgewählt sind aus den Eingängen, Zuständen und Ausgängen einer die zu verifizierenden integrierten Schaltung beschreibenden Zustandsmaschine, wobei das MC-Problem darin besteht, die Formel auf ihre Allgemeingültigkeit zu prüfen. Dabei wird erfindungsgemäß geprüft, ob das MC-Problem symmetrisch in wenigstens einer der Variablen ist, wobei bei Auffinden einer symmetrischen Variablen diese in der Formel eliminiert wird, um somit ein der reduzierten Formel entsprechendes reduziertes MC-Problem zu erhalten, welches anstelle des ursprünglichen MC-Problems gelöst wird.
  • Die vorliegende Erfindung ist besonders vorteilhaft auf Bounded-Model-Checking (BMC) anwendbar, d. h. bei dem zu lösenden Problem handelt es sich um ein BMC-Problem. Die vorliegende Erfindung ist jedoch nicht auf diesen bevorzugten Anwendungsbereich beschränkt, sondern kann generell auf alle Model- Checking-Technologien, zur Lösung von all-quantifizierten Formeln, d. h. Formeln mit Variablen mit endlich vielen Werten, angewendet werden. Dazu zählen u. a. aussagenlogische Formeln, wie GL-BMC-Probleme, oder auch RTL-BMC-Probleme mit zu aussagenlogischen Formeln äquivalenten Formeln etc. Dennoch wird die vorliegende Erfindung nachfolgend anhand der bevorzugten Anwendung der BMC-Technologie beschrieben, wobei jedoch im Prinzip immer dann, wenn von einem BMC-Problem die Rede ist, ein MC-Problem in allgemeinster Form gemeint ist.
  • Mit Hilfe der vorliegenden Erfindung, welche insbesondere vollautomatisch computergestützt realisiert wird, kann das zu lösende BMC-Problem durch (aussagenlogische) BV-Terme (BV = Bit Vector), d. h. Boolesche Bildmengen, die über BV- Variablen aufgebaut sind, repräsentiert werden. Ist ein BV- Term invariant unter allen Belegungen einer BV-Variablen, wird Symmetrie bejaht, und die entsprechende Variable kann eliminiert werden. Ist ein BV-Term für einige Belegungen invariant, so wird partielle Symmetrie bejaht. In diesem Fall bilden die Belegungen Äquivalenzklassen, und die entsprechende Variable kann unter Bildung eines Unterproblems für jede Equivalenzklasse eliminiert werden.
  • Die Repräsentation des ursprünglichen BMC-Problems durch aussagenlogische BV-Terme oder Instanzen-Terme entspricht einer Unterteilung des BMC-Problems in Unterprobleme, welche aufeinander abgebildet werden, wobei eine Prüfung auf Äquivalenz nach Umbenennung der Variablen durchgeführt wird.
  • Insbesondere kann geprüft werden, ob eine BV-Variable partiell symmetrisch ist, d. h. ob einige Werte einer Variablen eines MC-Problems symmetrisch bezüglich dieser Variablen sind, wobei bei Auffinden symmetrischer Werte für jede Äquivalenzklasse der partiellen Symmetrie die Variable in der Formel eliminiert wird, um somit reduzierte Instanzen des MC- Problems zu erhalten, und wobei die reduzierten MC-Probleme gelöst werden, um die Allgemeingültigkeit der Formel zu überprüfen.
  • Für die Äquivalenzprüfung können verschiedene exakte und approximative Verfahren eingesetzt werden, wobei ein besonders vorteilhaftes Verfahren auf Isomorphismen bzw. Automorphismen von gefärbten Termgraphen basiert. Dabei wird für jeden Instanzen-Term ein derartiger Termgraph generiert, wobei vorzugsweise vor der Generation der Termgraphen die entsprechenden Terme normalisiert werden.
  • Für jeden möglichen Wert einer zu eliminierenden Variablen wird ein Instanzen-Term generiert, wobei die für jede Variable generierten Instanzen-Terme vorzugsweise simultan verarbeitet werden, um Äquivalenzen festzustellen. Bei Feststellen einer Äquivalenz wird einer dieser Instanzen-Terme für die reduzierte Formel ausgewählt, welche dann wie gewöhnlich in ein GL-BMC-Problem überführt und gelöst werden kann.
  • Im Rahmen der vorliegenden Erfindung wird somit die ursprüngliche all-quantifizierte Formel, welche dem BMC-Problem zu Grunde liegt, durch Variablenelimination verkleinert (und nicht etwa das Modell oder das Design verändert). Symmetrien in der Termstruktur werden vorzugsweise syntaktisch gefunden, wobei jedoch auch semantische Methoden denkbar sind. Das Verfahren ist vorzugsweise vollautomatisch und in einem RTL-BMC- Tool integriert, d. h. die Elimination erfolgt noch auf der RTL-Ebene, wobei das reduzierte RTL-BMC-Problem, d. h. erst nach der Variablenelimination, in ein entsprechendes reduziertes GL-BMC-Problem überführt und gelöst wird. Zur Realisierung der vorliegenden Erfindung muss ein bereits vorhandener herkömmlicher Boolescher Beweiser nicht verändert oder angepasst werden.
  • Die vorliegende Erfindung wird nachfolgend näher unter Bezugnahme auf die beigefügte Zeichnung anhand eines bevorzugten Ausführungsbeispiels näher erläutert.
  • Fig. 1 zeigt einen RTL-BMC-Arbeitsablauf (RTL-BMC-Flow) bzw. eine entsprechend eingerichtete computergestützte Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung,
  • Fig. 2A und Fig. 2B zeigen beispielhaft die Darstellung eines Hardware-Designs bzw. eines Speichers,
  • Fig. 3 zeigt beispielhaft die Darstellung von Termgraphen für den in Fig. 2B gezeigten Speicher,
  • Fig. 4 zeigt beispielhaft gefärbte ungerichtete Termgraphen für den in Fig. 2B gezeigten Speicher,
  • Fig. 5 zeigt eine Darstellung zur Verdeutlichung eines bevorzugt angewendeten Eliminationsalgorithmus der vorliegenden Erfindung, und
  • Fig. 6 zeigt einen herkömmlichen BMC-Arbeitsablauf bzw. eine entsprechend eingerichtete computergestützte Vorrichtung gemäß dem Stand der Technik zur funktionalen Verifikation von integrierten Schaltungen.
  • In RTL-Modellen zeigt sich Struktur in den funktionalen Einheiten und Datentypen. Der Standard-BMC-Ansatz (vgl. Fig. 6) zerstört diese Strukturen, da er das Problem in eine Bit- Level-Repräsentation ausflacht. Dabei geht die syntaktische Korrelation zwischen den Bits verloren. Wenn ein RTL-basierter BMC-Ansatz verwendet wird, kann diese Struktur erhalten werden und schlägt sich in der Struktur der Terme, durch die ein BMC dann repräsentiert wird, nieder. In dem erfindungsgemäßen RTL-BMC-Flow wird eine Term-Repräsentation eines BMC- Problems auf RTL erzeugt, bevor die Struktur durch GL-Synthese zerstört wird, wie dies in Fig. 1 skizziert ist und nachfolgend näher erläutert wird.
  • Hardware-Designs (HW-Designs) werden heute für gewöhnlich durch wiederholte Benutzung von Building-Blocks konstruiert. Oft können diese Blöcke uniform behandelt werden. Als Beispiel seien hier die Zellen eines Speichers, Teilnehmer an einem Kommunikationsnetzwerk oder auf Buszuteilung wartende Arbiter-Klienten genannt. Wenn sich diese Uniformität in der internen Struktur des HW-Designs niederschlägt, spricht man von regulären Schaltungen. Diese bilden eine große und bedeutende Klasse von HW-Designs.
  • Typischerweise werden HW-Designs aus einem Register-Transfer- Level(RTL)-Modell generiert. RTL ist ein Abstraktionsniveau, bei dem HW-Beschreibungssprachen wie VHDL oder Verilog zur Modellierung benutzt werden. Funktionen arbeiten hier auf Bitvektoren, d. h. Vektoren von Booleschen Variablen, die auch Register genannt werden. RTL-Modelle werden durch einen Prozess, der Synthese genannt wird, in Gate-Level (GL) übersetzt. Dabei ist der Gate-Level ein niedrigeres Abstraktionsniveau im HW-Design, bei denen Funktionen und Variablen von Booleschen Elementen, Gates, repräsentiert werden. Designs sind im vorliegenden Zusammenhang im Wesentlichen Zustandsmaschinen (State-Machines), die aus Modellen (GL oder RTL) erzeugt werden.
  • Generell können HW-Designs als Zustandsmaschinen mit Eingängen i, Zustandsvariablen (Latches) s und Ausgängen o angesehen werden. Die Ausgänge eines Designs zur Zeit t und Zustände zur Zeit t + 1 werden von den Eingängen und Zuständen zur Zeit t bestimmt, d. h.

    o(t) = O(i(t), s(t)) und s(t + 1) = S(i(t), s(t)) (1)
  • Ein Beispiel für ein HW-Design ist in Fig. 2A gezeigt. Eingänge, Ausgänge und Latches können Bitvektoren oder Bits sein. Je nach Herkunft (RTL oder GL) eines Designs werden Funktionen durch Bitvektor oder Boolesche Funktionen repräsentiert. Im Allgemeinen sind O und S Relationen, wobei jedoch im vorliegenden Fall im Wesentlichen der funktionale Fall betrachtet wird.
  • Als Beispiel für ein reguläres Design wird hier ein einfacher Speicher betrachtet. (Es wird als laufendes Beispiel im Folgenden immer wieder benutzt werden.) Der Speicher habe die folgenden Eingänge: Adresse a, Eingabedaten di, Schreib-Lese- Modus-Auswahl rw, Chip-Selektor cs und Reset rs. Der Ausgang sei do für Ausgangsdaten. Die Eingänge, außer rs seien nur aktiv, wenn cs = 1. Falls rs = 1 werde der Inhalt des Speichers gelöscht. Wenn cs = 1, rs = 0 und rw = 1, werden die Eingangsdaten di an der Adresse a gespeichert. Sind cs = 1, rs = 0 und rw = 0, wird der Inhalt des Speichers bei Adresse a am Ausgang do ausgegeben. Die Eingänge rs, cs und rw sind Bitvektoren der Breite 1, wogegen a, di und do Bitvektoren sind, die jeweils die Breiten wa, wd und wd haben (ein Bitvektor (fester Länge) ist ein Vektor von Bits). Der Speicher sei als Feld m organisiert. Wobei das Feld m ein Vektor mit 2wa Bitvektorelementen ist, die jeweils die Breite wd haben. Die 2wd Elemente können uniform behandelt werden, da sie keine direkte Beziehung zueinander haben und ihre Anordnung irrelevant ist.
  • Ein Beispiel für einen derartigen Speicher ist in Fig. 2B dargestellt.
  • Um Eigenschaften zu spezifizieren, wird eine Eigenschaftssprache benutzt. Die hier benutzte Eigenschaftssprache ist im Wesentlichen Aussagenlogik, wobei einzelne Ausdrücke mit Zeitattributen (Zeitpunkten) behaftet sein können. Die Zeitpunkte sind auf ein endliches Intervall beschränkt. Deshalb nennt man solche Eigenschaften Bounded-Temporal-Properties.
  • Formal ist eine Bounded-Temporal-Property P eine Relation über Eingänge, Zustandsvariablen und Ausgänge über ein endliches Zeitintervall der Länge n + 1, wie folgt:

    p = P(i(t), . . ., i(t + n), s(t), . . ., s(t + n), o(t), . . ., o(t + n)) (2)
  • Ein Design kann in eine Property hinein substituiert werden unter Benutzung der Relation aus Gl. 1. Somit wird die Property eingeschränkt und dadurch zur Property des entsprechenden Designs gemacht. So kann Gl. 2 wie folgt umgeschrieben werden:

    ≙ = ≙(i(t), . . ., i(t + n), s(t)) (3)
  • Wenn i(t), . . ., i(t + n), s(t) als freie Variablen betrachtet werden, dann ist die Frage, ob ≙ in Gl. 3 allgemeingültig ist, ein sog. Bounded-Model-Checking(BMC)-Problem. Im Wesentlichen ist ein BMC-Problem also eine aussagenlogische Formel, und alle vorkommenden Variablen sind implizit all-quantifiziert. Somit kann ein BMC-Problem als aussagenlogischer Term der folgenden Form repräsentiert werden:

    ∀x0∀x1 . . .∀xn : ƒ(x0, . . ., xn) (4)
  • (Dabei ist ƒ allgemeingültig, genau dann wenn ƒ(x0, . . ., xn) = 1 für alle möglichen Belegungen der Variablen x0, . . ., xn mit 0 oder 1 gilt.) Im vorliegenden Ausführungsbeispiel werden Eigenschaften und BMC-Probleme als aussagenlogische BV-Terme repräsentiert, d. h. Funktionen mit Boolescher Bildmenge, die über BV-Variablen aufgebaut sind (diese Darstellung ist aber nicht zwingend). Die Variablen xi sind Bitvektoren, und ihr Wertebereich ist durch ihre Breite bestimmt. Wenn xi die Breite w hat, dann ist der Wertebereich {0[w],1[w], . . ., (2w - 1)[w]}.
  • Die "Write"-Funktion für den oben genannten Speicher ist formal wie folgt:

    (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐ di(t) = m(t + 1)[a(t)] (5)
  • Dann kann das RTL-BMC-Problem durch folgende Gleichung repräsentiert werden:

    ∀rs(t)∀cs(t)∀rw(t)∀di(t)∀m(t)∀a(t): rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1 ⇐ di(t) =
    (ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ a(t) = 0 ∧ rw(t) = 1, di(t), m(t)[0])))
    ⊗ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ a(t) = 1 ∧ rw(t) = 1, di(t), m(t)[1])))
    ⊗ . . . (6)
    ⊗ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ a(t) = 255 ∧ rw(t) = 1, di(t), m(t)[255])))[a(t)]
  • Die Wertebereiche von rs(t), cs(t) und rw(t) sind Boolesch, die von m(t) und a(t) umfassen 28.16 und 28 Elemente. Diese Eigenschaft hat eine reguläre Struktur, weil sie dann und nur dann gilt, wenn dies für jede Speicherzelle so ist.
  • Es wird nachfolgend gezeigt, dass Gl. 6 allgemeingültig ist genau dann, wenn die folgende, viel kleinere BV-Formel allgemeingültig ist:

    ∀rs(t)∀cs(t)∀rw(t)∀di(t)∀m(t)[0]: (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, di(t), m(t)[0]))) = di(t) (7)
  • Diese BV-Formel kann dann wie gewöhnlich in ein GL-BMC- Problem überführt und gelöst werden.
  • Die intuitive Vorstellung von Symmetrie ist die folgende: eine Funktion ƒ ist symmetrisch in den Variablen x und y, wenn sie invariant nach Austausch von x und y ist. Es ist z. B. die folgende Funktion ƒ symmetrisch in x und y:

    ƒ: {0,1} × {0,1} → {0,1}
    ƒ(x,y) ↦ x ∧ y
  • Im Gegensatz dazu betrachten wir symmetrische Werte. Zwei Werte c0 und c1 für eine Variable x sind symmetrische Werte für x in einer Funktion ƒ, die von x abhängt, genau dann, wenn ƒ invariant unter Belegung von x mit c0 und c1 ist. Es sind zum Beispiel die Werte 0 und 1 symmetrisch für x in der folgenden Funktion ƒ.

    ƒ: {0,1} × {0,1} → {0,1}
    ƒ(x,y) ↦ (x ∧ ¬y) ∨ (¬x ∧ ¬y)
  • Eine Variable heißt nun symmetrisch, wenn alle ihre Werte symmetrisch sind. Diese Vorstellung von Symmetrie lässt sich auf Terme und all-quantifizierte Formeln und insbesondere auf BMC-Probleme und RTL-BMC-Probleme, übertragen. (Ist t ein Term und ist x eine Variable, die in t vorkommt, dann heißen zwei Werte c0 und c1 symmetrisch, wenn t invariant unter der Belegung von x mit c0 und c1 ist. Sind alle Werte für x symmetrisch, dann wird x eine symmetrische Variable genannt.) Sind a: (x0 ↦ a1, x1 ↦ a2, . . ., xw-1 ↦ aw-1) und b: (x0 ↦ b0, x1 ↦ x1 ↦ b1, . . ., xw-1 ↦ bw-1)
    zwei Belegungen für Boolesche Variablen x0, . . ., xw-1 eines GL- BMC-Problems, wie das in Gl. 3, dann heißen a und b symmetrisch für x0, . . ., xw-1. Ist eine aussagenlogische Formel (BMC- Problem) invariant für alle möglichen Belegungen von x0, . . ., xw-1, dann ist sie symmetrisch in x0, . . ., xw-1. Sind wenigstens zwei Belegungen symmetrisch, ist sie partiell symmetrisch in diesen Variablen.
  • Es gilt insbesondere: ein GL-BMC-Problem, wie das in Gl. 3, ist symmetrisch in Booleschen Variablen, z. B. x0, . . ., xw, wenn ƒ invariant unter einer Permutation π von diesen Variablen ist. Eine Belegung a : xi → ci von einer Variablen durch einen Wert aus ihrem Wertebereich heißt Instanzierung dieser Variable. Eine Permutation von Variablen agiert auf den Indizes dieser Variablen, und somit auf Belegungen A, d. h. wenn (a : xi → ci), (b : xj → cj) ∈ A und πxi = xj = xj, πxj = xi dann gilt πa : xi → cj und πb : xj → ci. Dies ist eine semantische Sicht auf Symmetrie, die besagt, dass eine Funktion symmetrisch ist, wenn sie invariant unter Permutation von Belegungen ist, d. h. ƒ(. . ., ci, . . ., cj, . . .) = ƒ(. . ., cj, . . ., ci, . . .).
  • Zwei BV-Werte (a0a1 . . . aw-1) und (b0b1 . . . bw-1) heißen symmetrisch für eine BV-Variable x[w] in einem BV-Term g, wenn g invariant unter der Belegung von x[w] mit (a0a1 . . . aw-1) und (b0b1 . . . bw-1) ist. Ein BV-Term g heißt symmetrisch in einer BV-Variable x[w], wenn alle Werte für x[w] in g symmetrisch sind. Sind wenigstens zwei Werte symmetrisch, heißt er partiell symmetrisch. (Dies ist äquivalent zur Symmetrie von ƒ in der Booleschen Variablen x0, . . ., xw-1, da diese zu einem Vektor gruppiert werden können.)
  • Demzufolge ist ein BV-Term g(. . ., x[w], . . .) symmetrisch in einer BV- Variable x[w], wenn er invariant unter Permutation der Bit- Komponenten x0, ..., xw-1 ist. BV-Terme sind oft symmetrisch, wenn sie BMC-Probleme von regulären Designs repräsentieren. Zum Beispiel ist der Term in Gl. 6 symmetrisch in a(t), da die Übergangsfunktionen jeder Speicherzelle die gleiche Struktur haben, d. h. Gl. 6 ist invariant unter allen Belegungen der Bits von a(t).
  • Im Rahmen der vorliegenden Erfindung wird versucht, Symmetrie von BMC-Problemen auf syntaktische Weise, d. h. in ihrer BV- Term-Repräsentation, zu finden und auszunutzen.
  • BV-Terme sind über Funktionssymbole und Variablen, wie sie auf RTL verwendet werden, wie gewöhnlich aufgebaut. Funktionssymbole und Variablen haben einen Typ. In diesem Kontext ist der Typ eines BV-Terms seine Breite, wobei Terme der Breite 1 Boolesch heißen. Zwei BV-Terme t1 und t2 sind EV- äquivalent (t1 ~ EV t2, was später formaler definiert wird), wenn sie gleich sind nach Umbenennung von Variablen und syntaktischen Transformationen, die sich mit der Semantik der Funktionssymbole vertragen.
  • Gilt für zwei (atomare) BV-Formeln ƒ1 und ƒ2 (Terme mit Booleschem Typ über Bitvektoren) mit freien Variablen x[w χ] und mit ƒ1 ~ EV ƒ2, dann wissen wir: für jede Belegung a1, für die ƒ1(a1) zu 0 auswertet, gibt es eine Belegung a2, für die ƒ2(a2) ebenfalls zu 0 auswertet, und umgekehrt. D. h. ƒ1(x) ist allgemeingültig genau dann, wenn ƒ2(x) allgemeingültig ist, oder einfach:

    ∀xƒ1(x) ⇔ ∀xƒ2(x) (8)
  • Für endliche Wertebereiche ist eine universell quantifizierte Formel ƒ(x[w],y) äquivalent zur Konjunktion ihrer endlichen Instanzierungen, wenn der Wertebereich von x die endliche Menge {c0, . . ., cw-1} ist und y einige weitere (BV-)Variablen sind. Dann gilt:

    ∀x∀yƒ(x,y) ⇔ ∀yƒ(c0,y) ∧ ∀yƒ(c1,y) ∧ . . . ∧, ∀yƒ(cn,y) (9)
  • Kann gezeigt werden, dass ƒ(c0,y) ~ EV ƒ(c1,y) gilt, dann ist ∀yƒ(c0,y) ∧ ∀yƒ(c1,y) äquivalent zu ∀yƒ(c0,y). Die Terme ƒ(ci,y) sind Instanzen des Terms ƒ(x,y). Man beachte, dass Instanzen im Allgemeinen noch Variablen, hier y, enthalten.
  • Sind alle Terme ƒ(ci,y) EV-äquivalent, dann kann geschlossen werden:

    ∀x∀yƒ(x,y) ⇔ ∀yƒ(c0,y) (10)
  • Somit wurde die Variable x eliminiert. Der Term ƒ(x,y) ist symmetrisch in x.
  • Für das Speicherbeispiel, das RTL-BMC-Problem aus Gl. 6, ist die Term-Instanz für a(t) = 0 die folgende:

    rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1 ⇐ di(t) =
    (ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ 0 = 0 ∧ rw(t) = 1, di(t), m(t)[0])))
    ⊗ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ 0 = 1 ∧ rw(t) = 1, di(t), m(t)[1])))
    ⊗ . . . (11)
    ⊗ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ 0 = 255 ∧ rw(t) = 1, di(t), m(t)[255]))))[0]
  • Unterterme von Instanzen werden ausgewertet (evaluiert), wenn sie Grundterme sind, d. h. wenn sie keine Variablen mehr enthalten, z. B. 0 = 1 → 1. Da a(t) mit 0 instanziert wurde, können die Index-Zugriffe [a(t)] und Gleichungen wie a(t) = 0 ausgewertet werden. Dies wird auch Konstanten-Propagierung genannt und erzeugt:

    (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, di(t), m(t)[0]))) = di(t) (12)
  • Die anderen Instanzen für a(t) = 1, a(t) = 2, . . ., a(t) = 255 werden analog gebildet. Um Gl. 10 zur Anwendung zu bringen, muss gezeigt werden, dass all diese Instanzen äquivalent sind.
  • Formal ist EV-Äquivalenz wie folgt definiert: Sei Σ eine getypte Signatur, d. h. eine Menge von Funktionssymbolen, und sei V eine endliche (oder abzählbar unendliche Menge) von getypten Variablen-Symbolen, dann bezeichnet TΣ(V) die Menge der Σ-Terme über V. Sei E ⊆ TΣ(V) × TΣ(V) eine Menge von Σ-Gleichungen. Dann induziert E eine Äquivalenzrelation ~E auf Termen. Permutation von Variablen des gleichen Typs induzieren eine weitere Äquivalenzrelation ~V, auf Termen. Die Terme s und t heißen EV-äquivalent (s~EV t), wenn es eine (den Typ respektierende) Permutation ρ ∈ Sym(V) gibt, mit s' = σ(ρ(t)), so dass s ~E s' ~V t. Man beachte, dass π Variablen aus V permutieren kann und nicht auf die in t vorkommenden eingeschränkt ist.
  • Der Einfachheit halber sei jetzt E auf die Beschreibung von Kommutativität eingeschränkt. D. h. für ein binäres Funktionssymbol "∘" hat eine Gleichung z. B. die Form x ∘y = y ∘x. Nachfolgend werden nur noch Modelle betrachtet, in denen E gilt.
  • Der Term t1: rw(t) = 1 ∧ cs(t) = 1, ein Unterterm von 10, ist beispielsweise EV-äquivalent zu t2: cs(t) = 1 ∧ 1 = rw(t), da ∧ und = kommutativ sind (hier wird = als binäre Funktion mit Booleschem Wertebereich betrachtet). Jedoch ist auch der Term t3: 1 = x ∧ y = 1 EV-äquivalent zu t1 und t2.
  • Wie nachfolgend gezeigt wird, können Termographen G(s) und G(t) konstruiert werden, so dass wenn G(s) und G(t) isomorph sind gilt: s ~EV t.
  • Terme werden intuitiv durch Termgraphen repräsentiert, wobei Termgraphen gerichtete azyklische Graphen sind (im folgenden werden nur vollkollabierte Termgraphen, d. h. Termgraphen unter maximaler Nutzung von gleichen Untergraphen, betrachtet). Termgraphen (TGen) von t1 und t2 sind in Fig. 3 abgebildet.
  • Die Knoten in den TGen sind zusammen mit ihrem Rang und der Arität der Ausgangskanten dargestellt.
  • Zum Finden von EV-Äquivalenzen wird eine Kombination von Termgraph-Rewriting (Normalisierung) und Finden von Automorphismen von gefärbten ungerichteten Graphen benutzt. Die Normalisierung hängt stark von der verwendeten (BV-)Logik ab und wird hier nicht behandelt. Der Graph-Automorphismen- Algorithmus ist unabhängig von der verwendeten Logik.
  • Um EV-Äquivalenzen zu erkennen, werden vollkollabierte TGen von Termen in gefärbte ungerichtete Graphen (CUGs) übersetzt, so dass die Isomorphismen der CUGs EV-Äquivalenz von Termen implizieren (siehe Fig. 4). Für einen Term und seinen TG wird die folgende Übersetzung benutzt:
    Als einfaches Beispiel betrachte man den Term (a + b) < c. Sein Termgraph ist in Fig. 3 zu sehen. Knoten im CUG korrespondieren mit Knoten im TG oder sind zusätzliche Aritätsknoten (hier 0 und 1). Jeder Knoten im TG hat einen korrespondierenden Knoten im CUG.
  • Blattknoten (Rang 0) des TG korrespondieren zu Variablen- Knoten oder Konstanten des Terms. Im CUG sind die Variablen entsprechenden Knoten gemäß Typ und Rang gefärbt, wohingegen für Konstanten gemäß deren Wert gefärbt wird, so dass verschiedene Werte zu verschiedenen Farben korrespondieren. CUG- Knoten, die zu TG-Knoten mit einem Rang > 0 gehören, werden nach Rang, Funktionssymbol und Typ gefärbt. Aritätsknoten werden für nicht-kommutative Funktionssymbole eingeführt, um ungewollte Symmetrien auszuschließen. Sie werden dann entsprechend Rang und Typ des Funktionssymbols und ihrer Arität gefärbt.
  • Die Färbung ist so gewählt, das zwei Knoten genau dann gleich gefärbt sind, wenn auch ihre Attribute gleich sind. Z. B. sind a, b und c Variablen-Knoten vom selben Typ. Deshalb haben sie auch die gleiche Farbe. Die Knoten + und < haben weder denselben Rang, noch das gleiche Funktionssymbol, und werden deshalb verschieden gefärbt. Da < nicht kommutativ ist, ist eine Symmetrie zwischen den Argumentknoten unerwünscht und wird durch Aritätsknoten 0 und 1 ausgeschlossen. Automorphismen eines (zusammenhängenden) CUG sind dann Symmetrien eines Terms, und Isomorphismen zwischen CUGs implizieren EV-Äquivalenz von Termen. Der CUG in diesem Beispiel hat einen Automorphismus, der a und b vertauscht.
  • Um die Äquivalenzbeziehung zwischen einigen Termen ti zu finden, werden alle ihre CUGs Gi als ein Graph G betrachtet. Die Isomorphismen zwischen den Graphen Gi sind dann Automorphismen von A. Generatoren der Automorphismengruppe auf G können mit Graphautomorphismenalgorithmen gefunden werden. Die Einschränkung der Automorphismen von G auf die Knoten der Graphen Gi, die zu den Wurzeln der Termgraphen gehören, definiert EV-Äquivalenzklassen auf den Termen ti. Deshalb kann die EV-Äquivalenz von Termen ti für alle Terme simultan ermittelt werden. Es hat sich als effektiv erwiesen, die Terme zu normalisieren, bevor die CUGs generiert werden, um mehr Isomorphismen zu entdecken, und somit mehr Terme gleichen Äquivalenzklassen zuzuordnen.
  • Ein BV-Term wird aus einem RTL-Design und einer Eigenschaft generiert, um ein BMC-Problem zu repräsentieren. Einige Variablen werden heuristisch oder durch den Benutzer zur Elimination ausgewählt. Ein Instanzen-Term wird für jeden möglichen Wert einer zu eliminierenden Variablen erzeugt. Äquivalenz der Instanzterme wird für eine der Variablen über den oben beschriebenen Ansatz gezeigt. Dabei werden alle Instanzen simultan behandelt. Aus jeder so entstehenden Äquivalenzklasse von Termen wird ein Repräsentant ausgewählt. Neue Instanzen werden für die nächste Variable für jeden Repräsentanten erzeugt, und der Vorgang wird wiederholt, bis keine Variablen mehr zur Eliminierung vorgesehen sind. Die verbleibenden Instanzen (Repräsentanten) werden in GL-BMC-Probleme übersetzt und wie gewöhnlich auf Allgemeingültigkeit untersucht. Sollte eine Instanz nicht allgemeingültig sein, wird ein Gegenbeispiel für das Gesamtproblem generiert (das ist einfach: das Gegenbeispiel für die Instanz muss nur durch die Variablenbelegung aus der Eliminierung ergänzt werden). In diesem Fall müssen die anderen verbleibenden Instanzen nicht mehr untersucht werden. Ansonsten, wenn alle Instanzen allgemeingültig sind, ist auch das ursprüngliche BMC-Problem allgemeingültig. Die Prozedur kann also mehrere Variablen eliminieren. Man beachte, dass die verbleibenden Instanzen in der Regel immer noch Variablen enthalten.
  • Fig. 5 verdeutlicht den zuvor beschriebenen Eliminationsalgorithmus.
  • Im Beispiel wurde die Variable a(t) zur Eliminierung vorgesehen. Die generierten Instanzen sind (nach Konstantenpropagierung)

    t0: (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, di(t), m(t)[0]))) = di(t)
    t1: (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐
    ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, di(t), m(t)[1]))) = di(t)
    . . . (13)
    t255: (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐
    ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, di(t), m(t)[255]))) = di(t)
  • Werden m(t)[0], . . ., m(t)[255] als freie Variablen aufgefasst, sind alle CGUs isomorph. Hier sind t1 und t2 nach der Variablenumbenennung m(t)[1] durch m(t)[0] und umgekehrt äquivalent. Das bedeutet, dass nur eine Instanz auf Allgemeingültigkeit untersucht werden muss, was die Problemgröße signifikant verringert, von 2155 auf 243 mögliche Variablenbelegungen.
  • Die Äquivalenz der Terme kann in diesem Beispiel leicht durch Ansehen der Terme gefunden werden, wobei allerdings nach automatischen Methoden gesucht wird. Generell kann die Äquivalenz von Termen nicht durch menschliche Inspektion der Termstruktur gefunden werden. Um zu sehen, dass dies nicht trivial ist, wird das Speicherbeispiel erweitert, indem spezielle Daten ƒ darin gespeichert werden.
  • Das neue Design habe zusätzliche Eingänge d0, d1, d2, jeder mit der Breite 16. Der Dateneingang des Speichers wird mit den zu speichernden Daten verbunden, d. h. di(t) = ƒ(a(t), d0(t), d1(t), d2(t). Dabei soll ~i Äquivalenz modulo i bedeuten und ∧ bitweise Konjunktion von zwei BVen. Die Spezifikation sei wie folgt:

    ∀rs(t)∀cs(t)∀rw(t)∀d0(t)∀d1(t)∀d2(t)∀d3(t)∀m(t)∀a(t):
    (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐
    m(t + 1)[a(t)] = ite(a(t) ~2 0, d0(t), d1(t) ∧ ite(a(t) ~3 0, d0(t), ite(a(t) ~3 1, d1(t), d2(t))) (14)
  • Es sei die Implementierung der Transitionsfunktion von m(t + 1) im neuen Beispiel wie folgt:

    m(t + 1) = (ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ a(t) = 0 ∧ rw(t) = 1, ƒ, m(t)[0])))
    ⊗ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ a(t) = 1 ∧ rw(t) = 1, ƒ, m(t)[1])))
    ⊗ . . . (15)
    ⊗ ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ a(t) = 255 ∧ rw(t) = 1, ƒ, m(t)[255]))))
    d0(t + 1) = ite(rs(t) = 1,0, ite(cs(t) = 1 ∧ rw(t) = 0, m(t)[a],0))
    ƒ = ite(a(t) ~3 0, d0(t), ite(a(t) ~2 1, d1(t), d2(t))) ∧ ite(a(t) ~2 0, d0(t), d1(t))
  • Man beachte, dass ƒ hier nur eine Zwischenvariable ist, die etwas Schreibarbeit spart. Man beachte außerdem, dass die Implementierung von ƒ nicht genau der Spezifikation entspricht. Wie zuvor wird a(t) zur Eliminierung gewählt. Die ersten drei Instanzen für a(t) = {0, . . ., 2} sind dann:

    t0: (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐
    d0(t) ∧ d0(t) = ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, d0(t) ∧ d0(t), m(t)[0])))
    t1: (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐
    d1(t) ∧ d1(t) = ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, d1(t) ∧ d1(t), m(t)[1])))
    t2: (rs(t) = 0 ∧ cs(t) = 1 ∧ rw(t) = 1) ⇐
    d0(t) ∧ d2(t) = ite(rs(t) = 1,0, (ite(cs(t) = 1 ∧ rw(t) = 1, d2(t) ∧ d0(t), m(t)[2]))) (16)
  • Es ist nicht mehr offensichtlich, wie die Äquivalenzklassen für die 256 Terme sind, was die Isomorphismen sind und ob die Eigenschaft gilt. In diesem Beispiel gibt es 2 Äquivalenzklassen, eine für die die d-Variablen mit dem gleichen Namen und eine, bei der sie verschieden sind. Die Eigenschaft gilt.
  • Wird allerdings ƒ umgeschrieben als

    ƒ = ite(a(t) ~3 0, d0(t), ite(a(t) ~2 1, d1(t), d0(t))) ∧ ite(a(t) ~2 0, d0(t), d1(t)),

    dann bekommt man 3 Äquivalenzklassen, wobei 2 davon allgemeingültig sind, und eine nicht. Stellt man sich nun typische Instanzen mit 3000 bis 50 000 Graphknoten vor, wird die Komplexität der Äquivalenzprüfung offensichtlich.
  • BMC ist NP-vollständig. Die Komplexitätsklasse des Iso-/Automorphismenproblems von Graphen ist nicht genau bekannt, aber wird zwischen P und NP vermutet. Für beschränkte Aritäten wurde gezeigt, dass es in P liegt. Praktisch können Automorphismen von CUGs z. B. durch Algorithmen gefunden werden, die in Breandan D. McKay, "Practical Graph Isomorphism", Congressus Numerantium, Vol. 30, Seiten 45-87, 1981 beschrieben sind. Die BMC-Probleme für Instanzen sind in der Regel viel kleiner als das Gesamtproblem, wie im Beispiel zu sehen ist. Somit kann der Suchraum für den SAT-Beweiser drastisch reduziert und das BMC-Problem effizienter gelöst werden. Man beachte, dass es in der Regel nicht möglich ist, das EV- Äquivalenzproblem für Terme durch reines Umsortieren der Argumente von kommutativen Operatoren zu lösen, weil die Terme über verschiedenen Variablen konstruiert sein können (wie im Beispiel).
  • Der zuvor beschriebene erfindungsgemäße RTL-BMC-Arbeitsablauf ist wie beschrieben schematisch in Fig. 1 dargestellt. Dabei wird davon ausgegangen, dass dieser RTL-BMC-Arbeitsablauf in einem Computersystem oder einer Datenverarbeitungsanlage 1 implementiert und in Form eines entsprechenden Computerprogramms auf einem Datenträger 2 (z. B. einer Diskette, CD-ROM oder Festplatte) gespeichert ist und in das Computersystem 1 geladen wird. Selbstverständlich ist auch grundsätzlich eine hardwaremäßige Realisierung dieses RTL-BMC-Arbeitsablaufs denkbar.
  • Eine RTL-Beschreibung (RTL-Design) 3 einer zu verifizierenden integrierten Schaltung wird zusammen mit einer vorgegebenen temporalen Eigenschaft 4 einer Einrichtung bzw. einem Modul (RTL-BMC-Frontend) 5 zugeführt, um daraus eine Term-Repräsentation eines RTL-BMC-Problems 17 zu generieren. Eine Einrichtung bzw. ein Modul 6 dient der Erkennung von Symmetrien in dem RTL-BMC-Problem 17 und der Eliminierung von symmetrischen Variablen in dem RTL-BMC-Problem 17 durch Anwendung der zuvor beschriebenen Äquivalenzdetektion sowie des obigen Eliminationsalgorithmus, um somit ein durch die eliminierten Variablen reduziertes RTL-BMC-Problem 7 zu erzeugen. Eine Einrichtung bzw. ein Modul 8 setzt dieses durch GL-Codierung in ein entsprechendes GL-BMC-Problem 9 um, welches wiederum einem Booleschen Beweiser (Boolean Solver) 10 zugeführt wird. Der Boolesche Beweiser 10 prüft die diesem GL-BMC-Problem entsprechende propositionale Formel auf Allgemeingültigkeit und erzeugt eine entsprechende Ausgabe 12, falls die entsprechende temporale Eigenschaft allgemeingültig ist. Ist dies hingegen nicht der Fall, wird von dem Booleschen Beweiser 10 ein Gegenbeispiel (Counter Example) 11 generiert, welches zur Fehlersuche verwendet werden kann.

Claims (23)

1. Verfahren zur funktionalen Verifikation von integrierten Schaltungen durch Model-Checking (MC),
wobei eine zu verifizierende integrierte Schaltung als eine Zustandsmaschine mit Eingängen, Zuständen und Ausgängen beschrieben wird,
wobei ein MC-Problem der zu verifizierenden integrierten Schaltung in Form einer all-quantifizierten Formel mit Variablen, welche aus den Eingängen, Zuständen und Ausgängen der die integrierte Schaltung beschreibenden Zustandsmaschine ausgewählt sind, definiert und gelöst wird, um die Allgemeingültigkeit der all-quantifizierten Formel zu überprüfen,
dadurch gekennzeichnet,
dass geprüft wird, ob das MC-Problem symmetrisch in wenigstens einer der Variablen ist,
dass bei Auffinden einer symmetrischen Variablen diese in der all-quantifizierten Formel eliminiert wird, um somit ein der um die eliminierte Variable reduzierten all-quantifizierten Formel entsprechendes reduziertes MC-Problem zu erhalten, und
dass das reduzierte MC-Problem gelöst wird, um die Allgemeingültigkeit der all-quantifizierten Formel zu überprüfen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass als symmetrische Variablen universell quantifizierte Variablen des MC-Problems eliminiert werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass eine bestimmte Boolesche Variable als symmetrisch erkannt wird, falls das MC-Problem invariant unter Belegung der Booleschen Variable ist.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das MC-Problem durch aussagenlogische BV-Terme repräsentiert wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass geprüft wird, ob eine Symmetrie der BV-Terme in entsprechenden BV-Variablen vorhanden ist, um in diesem Fall die entsprechenden BV-Variablen als symmetrische Variablen zu erkennen und zu eliminieren.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass eine Symmetrie erkannt wird, falls ein BV-Term invariant unter Belegungen von Bitkomponenten einer bestimmten BV- Variablen ist.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
dass geprüft wird, ob eine BV-Variable der allquantifizierten Formel zumindest partiell symmetrisch ist,
dass bei Auffinden einer zumindest partiell symmetrischen BV- Variablen diese BV-Variable in der all-quantifizierten Formel eliminiert wird, um somit reduzierte Instanzen des MC- Problems zu erhalten, und
dass die reduzierten MC-Probleme gelöst werden, um die Allgemeingültigkeit der all-quantifizierten Formel zu überprüfen.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine zu eliminierende Variable manuell oder heuristisch ausgewählt wird.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das MC-Problem dadurch auf Symmetrie geprüft wird, dass das MC-Problem in mehrere Unterprobleme unterteilt und nach Äquivalenzen zwischen den Unterproblemen gesucht wird.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass nach EV-Äquivalenzen zwischen den Unterproblemen gesucht wird.
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass das MC-Problem in Unterprobleme durch Bildung von Instanzen-Terme der Variablen unterteilt wird, wobei die Instanzen-Terme auf Äquivalenz geprüft werden.
12. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Instanzen-Terme durch gefärbte Termgraphen repräsentiert werden, wobei zum Auffinden einer Äquivalenz zwischen den Instanzen-Termen nach Isomorphismen in den gefärbten Termgraphen gesucht wird.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass die Instanzen-Terme vor der Repräsentation durch die gefärbten Termgraphen normalisiert werden.
14. Verfahren nach einem der Ansprüche 11-13, dadurch gekennzeichnet, dass für jeden möglichen Wert einer zu eliminierenden Variablen ein Instanzen-Term gebildet wird.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die für jede Variable gebildeten Instanzen-Terme simultan verarbeitet werden, um eine Äquivalenz festzustellen.
16. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass bei Feststellen einer Äquivalenz einer der Instanzen- Terme der zu eliminierenden Variablen für die reduzierte Formel und das entsprechende reduzierte MC-Problem ausgewählt wird.
17. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das MC-Problem auf der RTL(Register Transfer Level)- Ebene definiert wird und die symmetrischen Variablen auf der RTL-Ebene eliminiert werden, um das reduzierte MC-Problem ebenfalls auf der RTL-Ebene zu erhalten, wobei das reduzierte MC-Problem anschließend von der RTL-Ebene auf die GL(Gate Level)-Ebene überführt und gelöst wird.
18. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die funktionale Verifikation durch Bounded-Model- Checking (BMC) erfolgt, so dass das MC-Problem ein BMC- Problem ist.
19. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren computergestützt durchgeführt wird.
20. Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen durch Model-Checking (MC),
mit einer ersten Einrichtung (5) zur Definition eines MC- Problems (17) für eine zu verifizierende integrierte Schaltung in Form einer all-quantifizierten Formel mit Variablen, welche ausgewählt sind aus Eingängen, Zuständen und Ausgängen einer die integrierte Schaltung beschreibenden Zustandsmaschine, und
mit einer zweiten Einrichtung (10) zur Lösung des MC- Problems, um die Allgemeingültigkeit der dem MC-Problem entsprechenden all-quantifizierten Formel zu überprüfen,
dadurch gekennzeichnet,
dass eine dritte Einrichtung (6) vorgesehen ist, welche derart eingerichtet ist,
dass sie überprüft, ob das MC-Problem (17) symmetrisch in wenigstens einer der Variablen ist, und bei Auffinden einer symmetrischen Variablen diese in der allquantifizierten Formel eliminiert, um somit ein der um die symmetrische Variable reduzierten all-quantifizierten Formel entsprechendes reduziertes MC-Problem (7) zu erhalten, und
dass die zweite Einrichtung (10) derart eingerichtet ist, dass sie das reduzierte MC-Problem (7) löst, um die Allgemeingültigkeit der all-quantifizierten Formel zu überprüfen.
21. Vorrichtung nach Anspruch 20, dadurch gekennzeichnet, dass die Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1-19 ausgestaltet ist.
22. Computerprogramm-Produkt (2) 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-19 ausgeführt wird.
23. Elektronisch lesbarer Datenträger (2) mit auf dem Datenträger gespeicherten elektronisch lesbaren Steuersignalen, welche dergestalt sind, dass bei Verwendung des Datenträgers (2) in einer Datenverarbeitungsanlage (1) das Verfahren nach einem der Ansprüche 1-19 ausgeführt wird.
DE10243598A 2001-09-19 2002-09-19 Verfahren und Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen Ceased DE10243598A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10243598A DE10243598A1 (de) 2001-09-19 2002-09-19 Verfahren und Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10146218 2001-09-19
DE10243598A DE10243598A1 (de) 2001-09-19 2002-09-19 Verfahren und Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen

Publications (1)

Publication Number Publication Date
DE10243598A1 true DE10243598A1 (de) 2003-04-10

Family

ID=7699578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10243598A Ceased DE10243598A1 (de) 2001-09-19 2002-09-19 Verfahren und Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen

Country Status (1)

Country Link
DE (1) DE10243598A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011077177A1 (de) 2011-06-08 2012-12-13 Universität Bremen Verfahren zur rechnergestützten Analyse von fehlerhaftem Quellcode in einer Hardware-Beschreibungssprache
US8413091B2 (en) 2011-04-22 2013-04-02 International Business Machines Corporation Enhancing redundancy removal with early merging
US8589327B2 (en) 2011-04-22 2013-11-19 International Business Machines Corporation Efficiently determining boolean satisfiability with lazy constraints
CN110852022A (zh) * 2019-10-31 2020-02-28 武汉科技大学 一种基于电路模型的行星轮系同构判定方法、系统和介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8413091B2 (en) 2011-04-22 2013-04-02 International Business Machines Corporation Enhancing redundancy removal with early merging
US8484591B2 (en) 2011-04-22 2013-07-09 International Business Machines Corporation Enhancing redundancy removal with early merging
US8589327B2 (en) 2011-04-22 2013-11-19 International Business Machines Corporation Efficiently determining boolean satisfiability with lazy constraints
US9280626B2 (en) 2011-04-22 2016-03-08 International Business Machines Corporation Efficiently determining Boolean satisfiability with lazy constraints
DE102011077177A1 (de) 2011-06-08 2012-12-13 Universität Bremen Verfahren zur rechnergestützten Analyse von fehlerhaftem Quellcode in einer Hardware-Beschreibungssprache
WO2012168231A1 (de) 2011-06-08 2012-12-13 Universität Bremen Verfahren zur rechnergestützten analyse von fehlerhaftem quellcode in einer hardware-beschreibungssprache
CN110852022A (zh) * 2019-10-31 2020-02-28 武汉科技大学 一种基于电路模型的行星轮系同构判定方法、系统和介质
CN110852022B (zh) * 2019-10-31 2023-05-23 武汉科技大学 一种基于电路模型的行星轮系同构判定方法、系统和介质

Similar Documents

Publication Publication Date Title
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE60017457T2 (de) Verfahren zur isolierung eines fehlers in fehlernachrichten
WO2003021366A1 (de) Verfahren zur validierung von simulationsergebnissen eines systems sowie darauf aufbauender äquivalenzvergleich digitaler schaltungen
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
EP1764715A1 (de) Verfahren zur Bestimmung der Güte einer Menge von Eigenschaften, verwendbar zur Verifikation and zur Spezifikation von Schaltungen
EP2765528A1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
EP2954440A2 (de) Verändern eines signalwerts eines fpga zur laufzeit
DE69838441T2 (de) Verfahren und Anordnung zur Verifizierung logischer Geräte
DE60110811T2 (de) Verfahren zur bereitstellung von bitweisen einschränkungen während einer test-generierung
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
DE10255142B4 (de) Diagnose von Datenpaketübertragungs-Fehlern unter Verwendung von Einschränkungen
DE10333088A1 (de) Verfahren zum Liefern von Zugriff auf die internen Signale eines dynamischen Systemmodells von außerhalb bezüglich der Modellierungsumgebung
DE102021116315A1 (de) Verfahren zum Zusammenführen von Architekturinformationen
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
EP3244326A1 (de) Verfahren zum erstellen einer fpga-netzliste
DE102020124791A1 (de) Verfahren zur Übertragung von Daten von einer ersten Recheneinheit zu einer zweiten Recheneinheit
DE112018002723T5 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
DE10243598A1 (de) Verfahren und Vorrichtung zur funktionalen Verifikation von integrierten Schaltungen
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
DE102018217016A1 (de) Ein-Chip-System und Sicherheitsschaltung mit einem derartigen Ein-Chip-System
EP3044667A1 (de) Verfahren zur verifizierung generierter software sowie verifizierungseinrichtung zum durchführen eines solchen verfahrens
DE102017104049B4 (de) Verfahren und vorrichtung zum überprüfen der zuverlässigkeit eines chips
DE102009019442A1 (de) Testdatengenerator

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: ONESPIN SOLUTIONS GMBH, 80339 MUENCHEN, DE

8131 Rejection