1. Trang chủ
  2. » Công Nghệ Thông Tin

Digitale Hardware/ Software-Systeme- P15 pdf

20 150 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Ngày đăng: 03/07/2014, 08:20

w