Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
262,82 KB
Nội dung
6.2 ¨ Aquivalenzpr ¨ ufung arithmetischer Schaltungen 273 Ausg ¨ ange der Schaltwerke gezeigt werden. Hierzu muss zus ¨ atzlich der Fall betrach- tet werden, dass y 1 [2] ¨ aquivalent mit z 1 [2] ist. Die neue Instruktionsqueue ergibt sich zu: Q[3]=(y 1 [t] → z 1 [t]),(s 1 [t] → s 2 [t]) Die Stub-Schaltung ergibt sich durch Bestimmung der Verschmelzungspunkte und ist in Abb. 6.28 zu sehen. ≥ 1 s 1 [1] x 1 [1] x 2 [1] y 1 [1] y 1 [1] ≥ 1 & & y[1] x 1 [2] x 2 [2] z 1 [3] z 2 [3] z 1 [3] y[2]= F y 1 [2] y 1 [2] ≥ 1 & & & z 1 [1] z 2 [2] z 1 [2] = 1 = 1 ≥ 1 Abb. 6.28. Stub-Schaltung f ¨ ur den dritten Zeitschritt [412] Man erkennt, dass die im zweiten und dritten Schritt ermittelte Stub-Schaltung identisch ist. Aus diesem Grund wird durch Abspielen von Q[3] nach Anh ¨ angen des Schaltungsmodells f ¨ ur den vierten Zeitschritt ¨ Aquivalenz erkannt. Da somit der Fixpunkt detektiert ist, und in keinem Zeitschritt der Miter-Ausgang erf ¨ ullbar war, sind die beiden Schaltwerke ¨ aquivalent. 6.2 ¨ Aquivalenzpr ¨ ufung arithmetischer Schaltungen Im Folgenden werden Verfahren f ¨ ur die Architekturebene pr ¨ asentiert, die zur ¨ Aqui- valenzpr ¨ ufung arithmetischer Schaltungen geeignet sind. Diese eignen sich weiterhin auch zur ¨ Aquivalenzpr ¨ ufung zwischen Modellen auf Architektur- und Logikebene. 6.2.1 Implizite ¨ Aquivalenzpr ¨ ufung auf der Architekturebene Auf der Architekturebene (siehe Abb. 6.1 auf Seite 235) ist die Granularit ¨ at der Ope- rationen in der Verhaltensspezifikation oftmals durch arithmetische Funktionen spe- zifiziert. Entsprechend sind die Objekte der Strukturmodelle der Implementierung Addierer, Multiplizierer, ALUs (engl. Arithmetic Logical Units) etc. In der Synthe- se werden die arithmetischen Funktionen auf eine Architektur bestehend aus einem 274 6 Hardware-Verifikation Datenpfad und einem Steuerwerk abgebildet. Ganzzahlige arithmetische Funktionen besitzen die Form f : Z n → Z.F ¨ ur die implizite ¨ Aquivalenzpr ¨ ufung dieser Funktio- nen bedarf es einer geeigneten kanonischen Repr ¨ asentation. Eine m ¨ ogliche kanonische Repr ¨ asentation besteht darin, erweiterte Diagram- me ¨ ahnlich zu ROBDDs zu verwenden. Da bei BDDs allerdings der Definitions- bereich endlich ist, bedarf es einer Einschr ¨ ankung der Menge der (ganzzahligen) arithmetischen Funktionen. Diese Einschr ¨ ankung ist durchaus eine g ¨ ultige Annah- me, da bei Hardware-Implementierungen bereits Datentypen mit festen Wortbreiten (Ganzzahl- oder Festpunkt-Datentypen) verwendet werden, diese also bereits einge- schr ¨ ankt sind. Seien l ∈ Z und u ∈ Z zwei ganze Zahlen mit l < u. Dann beschreibe Z [l,u] ⊂ Z die endliche Menge {l,l + 1, ,u}. Eine Funktion f : Z n [l,u] → Z l ¨ asst sich in einem Entscheidungsdiagramm darstellen, indem jeder Knoten mit einer der n Variablen assoziiert wird und jeder Knoten genau u−l +1 Nachfolger besitzt. Dies bedeutet, dass der Wertebereich Z [l,u] f ¨ ur jede Variable in u − l + 1 Partitionsbl ¨ ocke aufgeteilt wird, d. h. Δ (Z [l,u] )={ Δ l (Z [l,u] ), Δ l+1 (Z [l,u] ), , Δ u (Z [l,u] )} (siehe An- hang B.1). Bei der Traversierung des Diagramms wird dann eine Kante entsprechend der Variablenbelegung ausgew ¨ ahlt. Der Wertebereich der Funktion selbst muss hier- bei nicht beschr ¨ ankt werden, da der endliche Definitionsbereich in einem endlichen Entscheidungsdiagramm resultiert (siehe Abb. 6.29). x 1 l +1 u x 2 lu x 2 lu x 2 lu l Abb. 6.29. Darstellung einer ganzzahligen arithmetischen Funktion mit endlichem Definiti- onsbereich als Entscheidungsdiagramm [272] Eine solche Repr ¨ asentation besitzt allerdings den Nachteil, dass sie sowohl ex- ponentiell in der Anzahl der Variablen als auch der Gr ¨ oße des Definitionsbereichs Z [l,u] wachsen kann [272]. Dies gilt auch, wenn der Definitionsbereich bin ¨ ar codiert wird und ROBDDs zum Einsatz kommen. Viele der f ¨ ur die Hardware-Verifikation auf Architekturebene relevanten Funktionen lassen auf die Klasse der sog. Pseudo- Booleschen Funktionen einschr ¨ anken. Eine Pseudo-Boolesche Funktion ist eine Ab- bildung f : B n → Z, d. h. nur der Wertebereich umfasst die ganzen Zahlen. Eine Belegung ist eine Funktion β , die jeder Variable in f den Wert T oder F zuweist. Wie bei Booleschen Funktionen gibt es auch unterschiedliche Repr ¨ asentationen f ¨ ur Pseudo-Boolesche Funktionen als Entscheidungsdiagramme. F ¨ ur die Verifika- tion sind hierbei wieder kanonische Repr ¨ asentationen besonders wichtig, also Re- pr ¨ asentationen, die vollst ¨ andig und eindeutig sind. Eine offensichtliche Repr ¨ asen- tation Pseudo-Boolescher Funktionen basiert auf der Idee von ROBDDs, wobei zu 6.2 ¨ Aquivalenzpr ¨ ufung arithmetischer Schaltungen 275 beachten ist, dass die Menge der Terminalknoten V T nicht mehr auf die Werte T und F beschr ¨ ankt ist, sondern ganze Zahlen beinhalten kann, d. h. value : V T → Z (siehe Anhang B.1). Eine solche kanonische Repr ¨ asentation Pseudo-Boolescher Funktio- nen, basierend auf der Shannon-Zerlegung, heißt algebraisches Entscheidungsdia- gramm (engl. Algebraic Decision Diagram, ADD) oder engl. Multi-Terminal BDD (MTBDD) [99, 106]. Das folgende Beispiel stammt aus [66]. Beispiel 6.2.1. Gegeben ist die Pseudo-Boolesche Funktion in Tabelle 6.4. Das ent- sprechende MTBDD ist in Abb. 6.30 zu sehen. Wie bei ROBDDs w ¨ ahlt eine Bele- gung β der Variablen einen Pfad im MTBDD vom Quellknoten zu einem Terminal- knoten aus. Die Terminalknoten sind mit den entsprechenden Funktionswerten f ¨ ur die gegebene Belegung beschriftet. Tabelle 6.4. Pseudo-Boolesche Funktion [66] x 1 x 2 f F F 8 F T −12 T F 10 T T −6 x 1 x 2 x 2 8 −610−12 Abb. 6.30. MTBDD der Pseudo-Booleschen Funktion aus Tabelle 6.4 Die Repr ¨ asentation von Funktionen durch MTBDDs hat in der Praxis oftmals den Nachteil, dass diese exponentiell mit der Anzahl der Variablen wachsen. Dies kann dadurch begr ¨ undet werden, dass es aufgrund vieler unterschiedlicher Funktionswer- te h ¨ aufig schwierig ist, die Reduktionsregeln anzuwenden, da die Identifikation iso- morpher Teilgraphen nicht mehr trivial ist. Anstatt eine Funktionstabelle direkt in ein MTBDD abzubilden, stellt sich eine momentenbasierte Zerlegung als vorteilhaft her- aus. Die resultierende Repr ¨ asentation wird als bin ¨ arer Momentengraph (engl. Binary Moment Diagram, BMD) bezeichnet (siehe u. a. [324]). BMDs wurden erstmalig von Bryant und Chen vorgestellt [65, 66]. 276 6 Hardware-Verifikation Zun ¨ achst wird aus der Funktionstabelle der Pseudo-Booleschen Funktion ein li- nearer Ausdruck gebildet: Die Belegung β (x i )=T wird als Literal x i und die Be- legung β (x i )=F wird als Literal (1 − x i ) codiert. Ein Ausdruck f ¨ ur jede Belegung wird durch Multiplikation der entsprechenden Literale gebildet. Dabei wird die Co- dierung der Belegung noch mit dem Funktionswert gewichtet. Anschließend werden alle Ausdr ¨ ucke aufsummiert. Beispiel 6.2.2. Betrachtet wird wiederum die Pseudo-Boolesche Funktion in Tabel- le 6.4. Der lineare Ausdruck nach obiger Konstruktionsvorschrift ergibt sich zu: f (x 1 ,x 2 )=8 ·(1 − x 1 ) ·(1 − x 2 ) −12 · (1 −x 1 ) ·x 2 + 10· x 1 · (1 − x 2 ) −6 · x 1 · x 2 = 8− 20 · x 2 + 2· x 1 + 4· x 2 · x 1 Das zugeh ¨ orige BMD ist in Abb. 6.31 zu sehen. Das BMD ist dabei wie folgt zu interpretieren: Kanten, die den Wert β (x i )=T darstellen und ¨ uber die ein Termi- nalknoten v T ∈ V T erreicht werden kann, zeigen an, dass der Koeffizient value(v T ) von dieser Variablen abh ¨ angt. Andernfalls ist der Koeffizient unabh ¨ angig von dieser Variablen. x 1 x 2 x 2 8 −20 2 4 Abb. 6.31. BMD der Pseudo-Booleschen Funktion aus Tabelle 6.4 Aus mathematischer Sicht basieren MTBDDs auf der Shannon-Zerlegung.Diese lautet f ¨ ur eine Pseudo-Boolesche Funktion f : B n → Z: f =(1 − x i ) · f | x i :=F + x i · f | x i :=T (6.1) Durch Umformung erh ¨ alt man die positive Davio-Zerlegung f ¨ ur eine Pseudo- Boolesche Funktion: f = f | x i :=F + x i · (f | x i :=T − f | x i :=F ) = f | x i :=F + x i · f | ∂ x i (6.2) Hierbei wird f | x i :=F als konstantes Moment und f | ∂ x i als lineares Moment bezeich- net. Damit l ¨ asst sich ein bin ¨ arer Momentengraph formal definieren: Definition 6.2.1 (Bin ¨ arer Momentengraph). Gegeben sei eine Pseudo-Boolesche Funktion f : B n → Z mit den Variablen x 1 , ,x n .Derzugeh ¨ orige bin ¨ are Momen- tengraph (BMD) (V,E) mit Quellknoten v 0 ist ein Entscheidungsdiagramm nach De- finition B.1.1 auf Seite 533 mit folgenden Eigenschaften: 6.2 ¨ Aquivalenzpr ¨ ufung arithmetischer Schaltungen 277 • Der Quellknoten v 0 repr ¨ asentiert die Funktion f , d. h. φ (v 0 )= f. • F ¨ ur jeden Knoten v ∈ V gilt: – Falls v ∈ V T , dann repr ¨ asentiert v die entsprechende konstante Pseudo- Boolesche Funktion value(v),d.h. φ (v)=value(v). – Falls v ∈ V N , dann repr ¨ asentiert v die Funktion φ (v)= φ (child(v, 1)) + x index(v) · φ (child(v, 2)). Ein geordnetes BMD (engl. Ordered BMD, OBMD) besitzt die Eigenschaft, dass auf jedem Pfad vom Quellknoten zu einem Terminalknoten die Variablen in der sel- ben Reihenfolge auftreten. Ein reduziertes OBMD (engl. Reduced OBMD, ROBMD) enth ¨ alt man durch wiederholtes Anwenden der Verschmelzungsregel und der Elimi- nationsregel f ¨ ur OFDDs (siehe Anhang B.3). ROBMDs sind kanonische Repr ¨ asen- tationen f ¨ ur Pseudo-Boolesche Funktionen und somit f ¨ ur die implizite ¨ Aquivalenz- pr ¨ ufung auf Architekturebene geeignet. In [65, 66] stellen Bryant und Chen eine Erweiterung von BMDs um multiplikati- ve Kantengewichte als Erweiterung additiver Kantengewichte vor, wie sie beispiels- weise auch in sog. EVBDDs (engl. Edge Valued Binary Decision Diagrams) zum Einsatz kommen [281]. Als Abgrenzung zu BMDs werden diese Momentengraphen als multiplikative BMDs (engl. multiplicative BMDs, *BMDs) bezeichnet. *BMDs verwenden ganzzahlige Faktoren der konstanten und linearen Momente als Kanten- gewichte, um die Anzahl von Terminalknoten zu verringern und dadurch die Anzahl isomorpher Teilgraphen zu erh ¨ ohen. Das Ergebnis sind kompaktere Repr ¨ asentanten Pseudo-Boolescher Funktionen. F ¨ ur die Interpretation eines *BMD wird das Kantengewicht w e einer eingehen- den Kante e als Faktor f ¨ ur die Interpretation des Knotens v verwendet. Somit gilt f ¨ ur *BMDs: • Der Quellknoten v 0 repr ¨ asentiert die Funktion f ,d.h. φ (w 0 ,v 0 )= f . • F ¨ ur jeden Knoten v ∈ V gilt: – Falls v ∈ V T , dann repr ¨ asentiert v die konstante Pseudo-Boolesche Funktion φ (w e ,v)=w e · value(v). – Falls v ∈V N , dann repr ¨ asentiert v die Funktion φ (w e ,v)=w e ·( φ (w (v,child(v,1)) , child(v, 1)) + x index(v) · φ (w (v,child(v,2)) ,child(v,2))). Das Ergebnis einer Interpretation wird also immer mit dem entsprechenden Kan- tengewicht multipliziert. Weiterhin wird angenommen, dass der Quellknoten v 0 eine eingehende Kante mit Kantengewicht w 0 besitzt. Dies ist notwendig, um kanonische *BMDs zu konstruieren (s. u.). Beispiel 6.2.3. Gegeben ist die Pseudo-Boolesche Funktion f := 8−20 · x 3 +2 · x 2 + 4 · x 2 · x 3 + 12 · x 1 + 24 · x 1 · x 3 + 15 · x 1 · x 2 . Das zugeh ¨ orige ROBMD mit Variablen- ordnung x 1 < x 2 < x 3 ist in Abb. 6.32a) zu sehen. Man sieht, dass das BMD reduziert ist, da es keine isomorphen Teilgraphen enth ¨ alt, und somit die Verschmelzungsregel nicht angewendet werden kann. Weiterhin fehlt der Knoten x 3 im ganz rechten Ast. Dieser besaß eine ausgehende Kante child(v, 2)=F. Somit konnte die Eliminations- regel angewendet werden (siehe Anhang B.3). 278 6 Hardware-Verifikation Das entsprechende geordnete *BMD (O*BMD) mit der selben Variablenordnung ist in Abb. 6.32b) zu sehen. Die Kantengewichte sind als Quadrate auf die Kanten gezeichnet. Kanten ohne Beschriftung haben das Kantengewicht 1. Man sieht, dass dasO*BMDu.a.diem ¨ ogliche Faktorisierung der Terme 2 · x 2 + 4 · x 2 · x 3 und 12 · x 1 +24 · x 1 ·x 3 zu 2 · x 2 ·(1 + 2· x 3 ) bzw. 12·x 1 ·(1 + 2· x 3 ) ausnutzt. Das O*BMD ist allerdings noch nicht reduziert. Hierzu m ¨ ussten die Kantengewichte noch wie unten beschrieben angepasst werden. x 3 8 −20 2 4 x 3 x 2 x 3 x 2 x 1 12 24 15 a) x 3 x 3 x 2 4 5 x 2 2 −5 32 x 1 b) 21 Abb. 6.32. a) BMD und b) entsprechendes *BMD der Pseudo-Booleschen Funktion aus Bei- spiel 6.2.3 [66] Damit O*BMDs eine kanonische Repr ¨ asentation Pseudo-Boolescher Funktionen sind, m ¨ ussen die Kantengewichte einige Einschr ¨ ankungen erf ¨ ullen: 1. Ein *BMD enth ¨ alt h ¨ ochstens zwei Terminalknoten, die mit value(v)=0 und value(v)=1 beschriftet sind. 2. Alle Kantengewichte m ¨ ussen von 0 verschieden sein. 3. Falls eine Kante e =(v,v T ) auf den Terminalknoten v T mit Wert value(v T )=0 zeigt, so muss das zugeh ¨ orige Kantengewicht w e = 1 sein. Falls es sich hierbei um eine F-Kante handelt, d. h. e =(v, child(v,1)) gilt, muss die entsprechende T-Kante (v,child(v,2)) ebenfalls das Kantengewicht 1 besitzen. 4. Alle Kantengewichte von F-Kanten m ¨ ussen nichtnegativ sein. 5. Der gr ¨ oßte gemeinsame Teiler der Kantengewichte ausgehender Kanten eines Nichtterminalknotens muss 1 sein, d. h. gcd(w (v,child(v,1)) ,w (v,child(v,2)) )=1. *BMD-Repr ¨ asentation arithmetischer Komponenten Abbildung 6.33 zeigt das *BMD von drei wichtigen arithmetischen Operationen. Um die Lesbarkeit der graphischen Repr ¨ asentationen zu erh ¨ ohen, wurden bei der 6.2 ¨ Aquivalenzpr ¨ ufung arithmetischer Schaltungen 279 Darstellung mehr als zwei Terminalknoten zugelassen. Abbildung 6.33a) zeigt die *BMD-Repr ¨ asentation einer 3-Bit Ganzzahladdition x + y. Dies kann interpretiert werden, als ob die einzelnen Bin ¨ arstellen gewichtet addiert werden, wobei die i-ten Stellen x i und y i mit 2 i gewichtet sind. Die Multiplikation x · y zweier 3-Bit Zahlen ist in Abb. 6.33b) als *BMD darge- stellt. Die Pseudo-Boolesche Funktion lautet ∑ 2 i:=0 x i · 2 i · ∑ 2 i:=0 y i · 2 i . Schließ- lich zeigt Abb. 6.33c) das *BMD f ¨ ur die Berechnung von 2 x = 2 ∑ 3 i:=0 x i ·2 i . Man kann feststellen, dass die Gr ¨ oße dieses Graphen lediglich linear mit der Anzahl der Varia- blen w ¨ achst. 2 4 12 x 3 x 2 x 1 x 0 4 255 15 3 x 2 y 2 x 1 y 1 x 0 y 0 x 1 x 0 12400 y 0 y 1 y 2 b)a) c) x 2 1 Abb. 6.33. *BMDs von a) Addition, b) Multiplikation und c) 2 x [66] *BMD-Repr ¨ asentation kombinatorischer Schaltungen Neben der Repr ¨ asentation von arithmetischen Operationen k ¨ onnen mit *BMDs eben- falls Boolesche Funktionen repr ¨ asentiert werden. Somit stellen reduzierte O*BMDs (RO*BMDs) eine weitere M ¨ oglichkeit dar, kombinatorische Schaltungen kanonisch zu repr ¨ asentieren. In Abb. 6.34 sind die *BMDs von drei wichtigen Gattern mit vier Eing ¨ angen (x 1 ,x 2 ,x 3 ,x 4 ) dargestellt. Man sieht, dass die Kantengewichte nicht auf die Werte 0 und 1 beschr ¨ ankt sind. Dennoch ist der Wertebereich der implementier- ten Funktionen {0,1} mit der entsprechenden Interpretation als B = {F,T}. Analog zu positiven Davio-Zerlegung existiert ebenfalls eine negative Davio- Zerlegung f ¨ ur Pseudo-Boolesche Funktionen: 280 6 Hardware-Verifikation x 1 x 2 x 2 x 3 x 4 x 3 x 4 x 1 x 2 x 2 x 3 x 4 x 3 x 4 −1 a) b) c) 10 −2 −2 −2 10 −1 −1 x 1 x 2 x 3 x 4 10 Abb. 6.34. *BMD eines a) OR-Gatters, b) AND-Gatters und c) XOR-Gatters mit jeweils vier Eing ¨ angen [66] f = f | x i :=T +(1 − x i ) ·( f | x i :=T − f | x i :=F ) = f | x i :=T +(1 − x i ) · f | ∂ x i (6.3) In [136] stellen Drechsler et al. Kronecker *BMDs (K*BMDs) als Verallgemeine- rung von *BMDs vor. Wie bei KFDDs k ¨ onnen bei K*BMDs f ¨ ur jede Variable der Zerlegungstyp gew ¨ ahlt werden, d. h. entweder Shannon-, positive Davio- oder nega- tive Davio-Zerlegung. Ein Vergleich von Entscheidungsdiagrammen f ¨ ur Boolesche und Pseudo-Boolesche Funktionen findet sich in [134]. 6.2.2 ¨ Aquivalenzpr ¨ ufung zwischen Architektur- und Logikebene Bisher wurde lediglich die ¨ Aquivalenzpr ¨ ufung zweier Schaltungen auf der selben Abstraktionsebene betrachtet. Hierbei wurden implizite Verfahren auf der Logikebe- ne basierend auf ROBDDs oder ROKFDDs diskutiert. Diese lassen sich jedoch nicht gut auf Architekturebene einsetzen, wo sich RO*BMDs als vorteilhaft herausgestellt haben. M ¨ ochte man allerdings ¨ uberpr ¨ ufen, ob eine Implementierung auf Logikebene, also eine Gatternetzliste, ¨ aquivalent zum spezifizierten Verhalten auf Architekturebe- ne ist, bedarf es zus ¨ atzlicher Schritte. Ein erster Ansatz wurde in [65, 66] vorgestellt. Die Idee ist in Abb. 6.35 dargestellt. Die Spezifikation ist durch eine Funktion f 2 : Z 2 → Z gegeben. Hierbei ist da- von auszugehen, dass der Definitionsbereich eingeschr ¨ ankt ist bzw. eingeschr ¨ ankt werden muss, um eine Implementierung in Hardware zu erm ¨ oglichen. Der Einfach- heit halber wird in diesem Beispiel davon ausgegangen, dass alle Definitionsbereiche der Eingangsvariablen und der Wertebereich der Funktion identisch sind. Die r esul- tierende Implementierung als Gatternetzliste implementiert die Boolesche Funktion 6.2 ¨ Aquivalenzpr ¨ ufung arithmetischer Schaltungen 281 enc enc enc Spezifikation Implementierung f 1 f 2 x y f 1 f 2 Abb. 6.35. Schematische Darstellung zur ¨ Aquivalenzpr ¨ ufung einer Spezifikation auf Archi- tekturebene und einer Implementierung auf Logikebene [66] f 1 : B 2n → B n (im Beispiel n = 4). Bei der Hardware-Implementierung wird eine Codierung der Bitvektoren gew ¨ ahlt, die es erlaubt, die Ein- und Ausg ¨ ange als ganze Zahlen aus dem Definitions- und Wertebereich zu interpretieren. Dies erfolgt in den Bl ¨ ocken enc, die eine Funktion enc : B n → Z implementieren. Hieraus ergibt sich, dass die Funktionen f 1 und f 2 Pseudo-Boolesche Funktionen sind. Typische Codierungen sind vorzeichenlose bin ¨ are Darstellung, Vorzeichen-Be- trag-Darstellung und 2er-Komplement-Darstellung.Umeine ¨ Aquivalenzpr ¨ ufung zwischen unterschiedlichen Abstraktionsebenen durchf ¨ uhren zu k ¨ onnen, m ¨ ussen die gew ¨ ahlten Codierungen ber ¨ ucksichtigt werden. Die Darstellung der drei oben ge- nannten Codierungen als *BMD f ¨ ur vier Bin ¨ arstellen ist in Abb. 6.36 dargestellt. 10 4 8 2 x 0 x 1 x 2 x 3 a) 110 4 2 x 0 x 1 x 2 x 3 0 4 2 x 0 x 1 x 2 x 3 −2 b) c) −8 Abb. 6.36. *BMDs der a) vorzeichenlosen bin ¨ aren Darstellung, b) Vorzeichen-Betrag- Darstellung und c) 2er-Komplement-Darstellung [329] 282 6 Hardware-Verifikation Um eine ¨ Aquivalenzpr ¨ ufung ¨ uber Abstraktionsebenen hinweg durchf ¨ uhren zu k ¨ onnen, wird jede Schaltung zun ¨ achst in ihre einzelnen Komponenten zerlegt und jede Komponente gegen ihre Spezifikation gepr ¨ uft. Anschließend wird die kor- rekte Verschaltung der einzelnen Komponenten ¨ uberpr ¨ uft. Dies wird anhand einer Volladdierer-Schaltung demonstriert [329]. Beispiel 6.2.4. Gegeben ist der Volladdierer aus Abb. A.2 auf Seite 527. Zun ¨ achst wird f ¨ ur jeden Ausgang des Volladdierers ein *BMD auf Basis der implementierten Booleschen Funktionen aufgestellt. Der Volladdierer hat die Ausg ¨ ange s 1 f ¨ ur die Summe und c 1 f ¨ ur den ¨ Ubertrag. Die drei Eing ¨ ange sind a 1 , b 1 und c 0 . Die Summe berechnet sich anhand der implementierten Booleschen Funktionen zu: s 1 (a 1 ,b 1 ,c 0 )=a 1 ⊕ b 1 ⊕ c 0 Der ¨ Ubertrag zu: c 1 (a 1 ,b 1 ,c 0 )=(a 1 ∧ b 1 ) ∨((a 1 ⊕ b 1 ) ∧c 0 ) Zur Erstellung der beiden *BMD m ¨ ussen die Booleschen Funktionen in Pseudo- Boolesche Funktionen umgewandelt werden. Hierbei gilt: x 0 ∧ x 1 = x 0 · x 1 , x 0 ∨ x 1 = x 0 + x 1 − x 0 · x 1 sowie x 0 ⊕ x 1 =(x 0 ∧¬x 1 ) ∨(¬x 0 ∧ x 1 ) =(x 0 · (1 − x 1 )) ∨((1 − x 0 ) ·x 1 ) =(x 0 − x 0 · x 1 ) ∨(x 1 − x 0 · x 1 ) =(x 0 − x 0 · x 1 )+(x 1 − x 0 · x 1 ) −(x 0 − x 0 · x 1 ) ·(x 1 − x 0 · x 1 ) = x 0 + x 1 − 2· x 0 · x 1 − (x 0 · x 1 − x 0 · x 1 − x 0 · x 1 + x 0 · x 1 ) = x 0 + x 1 − 2· x 0 · x 1 , wobei x 0 ,x 1 ∈{0, 1}. F ¨ ur die Summen- und ¨ Ubertragsberechnung ergibt sich dann: s 1 (a 1 ,b 1 ,c 0 )=a 1 ⊕ b 1 ⊕ c 0 =(a 1 + b 1 − 2· a 1 · b 1 ) ⊕c 0 =(a 1 + b 1 − 2· a 1 · b 1 )+c 0 − 2· (a 1 + b 1 − 2· a 1 · b 1 ) ·c 0 = a 1 + b 1 + c 0 − 2· a 1 · b 1 − 2· a 1 · c 0 − 2· b 1 · c 0 + 4· a 1 · b 1 · c 0 und c 1 (a 1 ,b 1 ,c 0 )=a 1 · b 1 + a 1 · c 0 + b 1 · c 0 − 2· a 1 · b 1 · c 0 Die resultierenden *BMDs f ¨ ur die Variablenordnung c 0 < b 1 < a 1 sind in Abb. 6.37 zu sehen. [...]... im Allgemeinen auch nicht auf modulare Arithmetik anwenden, wie sie bei Hardware-Implementierungen oder bei der Implementierung 6.3 Formale Verifikation von Prozessoren 291 in Festpunkt-Arithmetik auf digitalen Signalprozessoren auftreten Dies wird an einem Beispiel illustriert [398] Beispiel 6.2.6 Gegeben sind zwei prim¨ re Eingangssignale a und b, wobei a durch a einen Bitvektor der L¨ nge 12 und... Instruction Set Architecture, ISA) als sog Mikroarchitektur Die 292 6 Hardware-Verifikation Mikroarchitektur ist dabei eine Hardware-Beschreibung auf Architekturebene Es handelt sich hierbei also um die Hardware/Software-Schnittstelle des Prozessors Die Instruktionssatzarchitektur kann auch als eine sequentielle Mikroarchitektur des Prozessors betrachtet werden, bei der jede Instruktion in der Reihenfolge . bei der Implementierung 6.3 Formale Verifikation von Prozessoren 291 in Festpunkt-Arithmetik auf digitalen Signalprozessoren auftreten. Dies wird an ei- nem Beispiel illustriert [398]. Beispiel. ist dabei eine Hardware-Beschreibung auf Architekturebene. Es handelt sich hierbei also um die Hardware/Software-Schnittstelle des Prozessors. Die Instruktionssatzarchitektur kann auch als eine