Formale Verifikation von Hardware

Ähnliche Dokumente
Wozu Verifikation? Der Entwurf eines 1 million gate ASIC benötigt ca Mann Tage Quality Assurance benötigt 50% der Zeit/des Geldes

Entwurf und Verifikation digitaler Systeme mit VHDL

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Verifikation. Simulation und formale Methoden

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

Bounded Model Checking mit SystemC

Einführung in die technische Informatik

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

Hardware Praktikum 2008

Praktikum Systementwurf mit VHDL HDL Design Lab

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

5 VHDL Einführung (I)

EHP Einführung Projekt A

12 VHDL Einführung (III)

Computergestützter IC- Entwurf

Prozessorarchitektur SS2017 Rahmenbedingungen zum Praktikum

SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

Übung Hardwareentwurf

Einführung in VHDL (2)

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

Verilog. Modellbildung für Synthese und Verifikation von Bernhard Hoppe. Oldenbourg Verlag München Wien

Laborübung 3. Latches, Flipflops, Counter

Eingebettete Systeme

17 Zähler. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 17-1

ERA-Zentralübung 11. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 11

Entwurf digitaler Systeme mit VHDL-1076

Entwurf und Simulation einfacher Logikelemente

Formal methods for fun and profit VHDL. Ilja Kipermann. Sommersemester Leitung Jun. Prof. Beckert. Universität Koblenz-Landau

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

Entwurf von digitalen Schaltungen und Systemen mit HDLsundFPGAs

Electronic Design Automation (EDA) Verification

Hardware Praktikum 2008

Vorlesung Hardware-Beschreibungssprachen

Digital Design 5 Rechnergestützte Schaltungsentwicklung

Unterprogramme. Komplexes Verhalten kann modular mit Hilfe von Unterprogrammen beschrieben werden Es gibt zwei Arten von Unterprogrammen:

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Verilog Hardware Description Language (HDL)

1 Entwurf und Verhalten einfacher, synchroner Automaten

Rechnergestützter VLSI-Entwurf

Zwischenbericht zum Projekt FPGA-Entwurfssystem

2.5 Verifikation. Verifikation und Test Der Pentium-Bug Das Verifikationsproblem. Verifikationswerkzeuge. Verifikationsstrategie: Close

Test & Diagnose digitaler! Systeme,! Prüffreundlicher Entwurf.!

Laborübung 4. Zustandsautomaten (Finite State Machines)

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

ERA-Zentralübung 12. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 12

Aufgabe 1: Kombinatorische Schaltungen

5.Vorlesung Rechnerorganisation

Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA. State Machines. Marc Reichenbach und Michael Schmidt

ASIC Application-Specific Integrated Circuit

Outline Logik Speicher Synthese Signale/Variablen Packages Generische Designs. Basics. Marc Reichenbach

FPGA. Field Programmable Gate Array

Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister

Electronic Design Automation (EDA) Systementwurf

D.5 Versuchsreihe 5: Arithmetisch-Logische Einheit

Einführung in VHDL. Dipl.-Ing. Franz Wolf

Name: DT2 Klausur

Übung 3: VHDL Darstellungen (Blockdiagramme)

1.1 VHDL-Beschreibung

Grundlagen der Technischen Informatik. 13. Übung

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

5. Aufgabenblatt mit Lösungsvorschlag

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Semestralklausur Einführung in Computer Microsystems

2.2 Register-Transfer-Synthese

ASIC. Application-Specific Integrated Circuit. Technische Informatik K. Slotala

Zeitlogik. Hardware Verifikation. Zeitlogik und Verifikation. Helmut Veith,

Basics. Marc Reichenbach und Michael Schmidt 05/11. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg

Example Ptolemy Model of Comp.: Synchronous Reactive

SPKC. Inhalte der Vorlesung. Signalprozessoren und Kommunikationscontroller. Prof. Dr.-Ing. Peter Schulz. Signalprozessoren

Übungsblatt 8 Lösungen:

Übungsblatt 1 Einführung in die Xilinx Vivado FPGA Design Plattform Abgabefrist: Mittwoch , 10:00 Uhr

Hardware Praktikum 2008

Echtzeitbildverarbeitung mit FPGAs. Feith Sensor to Image GmbH, Schongau Matthias Schaffland

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

Basics. Marc Reichenbach und Michael Schmidt 05/11. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Entwurf digitaler Schaltungen Groÿe Übung 3 Simulation mit ghdl

Test und Diagnose digitaler Systeme, prüffreundlicher Entwurf

Übungsblatt 6. Implementierung einer Befehlspipeline

Vorlesung Modellierung und Simulation heterogener Systeme

Formale Verifikation von Software. 10. Juli 2013

Carry Lookahead Adder

Grundlagen der Technischen Informatik

Übungsblatt 1. Einführung in die Xilinx Vivado FPGA Design Plattform

Integrierte Schaltungen

An Overview of the Signal Clock Calculus

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping

Entwurfsverfahren digitaler Schaltungen

FPGA-Entwurf mit VHDL. Serie 3

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2010/2011

FPGA vs. Mikrocontroller. Agenda

Systembeschreibungssprachen

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

Übungsblatt 5 Entwurf eines Mehrzyklen-Datenpfads Abgabefrist: Mittwoch , 10:00 Uhr

Transkript:

Formale Verifikation von Hardware Wolfgang Günther Infineon AG CL DAT TDM VM guenther@informatik.uni-freiburg.de, wolfgang.guenther@infineon.com Dr. Wolfgang Günther Einleitung - 2 Inhalt der Vorlesung Der Entwurfsprozess Verifikation Binary Decision Diagrams Datenstruktur und Algorithmen SAT-Solver Kombinatorische Verifikation Sequentielle Verifikation Algorithmen CTL Dr. Wolfgang Günther Einleitung - 3 Vorbemerkungen Zielrichtung der Vorlesung: Breites Wissen im Gebiet der formalen Verifikation neuere Entwicklungen bis (fast) zum aktuellen Stand der Forschung Übungen Scheinvergabe Dr. Wolfgang Günther Einleitung - 4 Literatur G. Hachtel und F. Somenzi: Logic Synthesis and Verification Algorithms. Kluwer Academic Publishers, 1996. R. Drechsler und B. Becker: Graphenbasierte Funktionsdarstellung. B.G. Teubner, 1998. T. Kropf: Introduction to Formal Hardware Verification. Springer-Verlag, 1999. K.L. McMillan: Symbolic Model Checking. Kluwer Academic Publishers, 1993.

Dr. Wolfgang Günther Einleitung - 5 Klassifikation von integrierten Schaltungen Dr. Wolfgang Günther Einleitung - 6 Field Programmable Gate Arrays Mikroprozessoren universell einsetzbar, durch Software programmierbar Produktion in großen Stückzahlen ASICs = Application Specific Integrated Circuits anwendungsspezifische integrierte Schaltungen ganz spezielle Anwendungen, kleine Stückzahlen FPGAs = Field-Programmable Gate Arrays Bestehen aus (z.t. programmierbaren) Logikblöcken und programmierbaren Verbindungen Programmierung der Hardware beim Anwender Dr. Wolfgang Günther Einleitung - 7 Entwurfskosten Kostenfaktoren Dr. Wolfgang Günther Einleitung - 8 Der Entwurfsprozess Spezifikation des Verhaltens Kosten, um ausgehend von einer Spezifikation die Fertigungsdaten für die Schaltung zu bekommen Besonders kritisch bei kleinen Stückzahlen Senkung der Kosten: Automatisierung Fertigungskosten Kosten, die bei der Fertigung gemäß der Fertigungsdaten entstehen (Maskenherstellungskosten, etc.) Auch beeinflusst durch Ausbeute (Prozentsatz der funktionsfähigen Chips eines Fertigungsprozesses) Behavioral Synthesis Tool RTL Beschreibung Logiksynthese Netzliste, technologieunabhängig Handentwurf RTL: Register Transfer Level

Dr. Wolfgang Günther Einleitung - 9 Der Entwurfsprozess (2) Dr. Wolfgang Günther Einleitung - 10 Software vs. Hardware Netzliste, technologieunabhängig Technology Mapping Netzliste, technologieabhängig Timing, Power, etc. Software Sequentielle Ausführung Prozeduraufrufe Parameterübergabe Hardware Parallele Ausführung Instantiierung von Komponenten Verdrahtung Physical Design Einfügen von Testlogik Datentypen Datentypen in Beschreibung, nicht in Implementierung Dr. Wolfgang Günther Einleitung - 11 VHDL Dr. Wolfgang Günther Einleitung - 12 Abstraktionsebenen Very High Speed Integrated Circuits Hardware Description Language Beschreibung komplexer elektronischer Systeme Austauschbarkeit Wiederverwendbarkeit Industriestandard Beschreibung auf verschiedenen Abstraktionsebenen Struktur Prozessoren,... Register-Transfer Gatter Transistoren VHDL Polygone Verhalten Algorithmus Register-Transfer Sprache Boolesche Gleichung Differentialgleichung Stickdiagramme Standardzellen Floor Plan Geometrie

Dr. Wolfgang Günther Einleitung - 13 VHDL: Wichtige Eigenschaften Dr. Wolfgang Günther Einleitung - 14 Entity Modellierung auf Verhalten- und auf Strukturebene Modellierung von Gleichzeitigkeit Hardware ist inhärent parallel Abstrakte Datentypen Hochsprachenkonstrukte Strenge Typisierung Diskrete Event-Simulation Definiert die Schnittstelle nach außen Pins können sein in out -- Eingang -- Ausgang inout -- Bidirektional... und andere Ausgänge können nicht gelesen werden, Eingänge können nicht geschrieben werden Dr. Wolfgang Günther Einleitung - 15 Architecture Dr. Wolfgang Günther Einleitung - 16 Beispiel: AND-Gatter beschreibt die Funktion des Bausteins mit Hilfe von Strukturelementen Verhaltensbeschreibung Mischformen sind möglich Es kann mehrere Architectures für eine Entity geben entity my_and is port(a, b : in bit; c : out bit); end my_and; architecture rtl of my_and is c <= a and b; end rtl;

Dr. Wolfgang Günther Einleitung - 17 2-Bit-Addierer: Verhalten entity add2 is port(a, b : in integer range 0 to 3; c : out integer range 0 to 6); end add2; architecture behave of add2 is c <= a + b; end behave; a b 2 2 c 3 Dr. Wolfgang Günther Einleitung - 18 2-Bit-Addierer: Register-Transfer-Level entity add2 is port(a, b : in bit_vector(1 downto 0); c : out bit_vector(2 downto 0)); end add2; architecture rtl of add2 is c(0) <= a(0) xor b(0); c(1) <= a(1) xor b(1) xor (a(0) and b(0)); c(2) <= (a(1) and b(1)) or (a(0) and b(0) and (a(1) or b(1))); end rtl; Dr. Wolfgang Günther Einleitung - 19 2-Bit-Addierer: Gatterebene entity add2 is port(a, b : in bit_vector(1 downto 0); c : out bit_vector(2 downto 0)); end add2; architecture net of add2 is signal s1, s2,... : bit; xor1 : xor_gate port map(a => a(0), b => b(0), c => c(0)); xor2 : xor_gate port map(a => a(1), b => b(1), c => s1); and1 : and_gate port map(a => a(0), b => b(0), c => s2); xor3 : xor_gate port map(a => s1, b => s2, c => c(1));... end net; Dr. Wolfgang Günther Einleitung - 20 Sequentielle Anweisungen In VHDL gibt es die Möglichkeit, Anweisungen parallel oder sequentiell auszuführen (concurrent statements, sequential statements) architecture rtl1 of mux is z <= (s and a) or (not s and b); end rtl1; architecture rtl2 of mux is p : process(a, b, s) if (s = '1') then z <= a; else z <= b; end if; end process p; end rtl2;

Dr. Wolfgang Günther Einleitung - 21 Sequential Statements Werden in Prozessen und Sub-Programmen (Funktionen, Prozeduren) verwendet Dienen oft zur Beschreibung von Kontrollstrukturen Es gibt Konstrukte ähnlich wie in Programmiersprachen Die Beschreibung muss nicht notwendigerweise synthetisierbar sein Dr. Wolfgang Günther Einleitung - 22 Flipflop entity dff is port(clk, d : in std_logic; q : out std_logic); end dff; architecture rtl of dff is Synthese darf Sensitivitätsliste p : process(clk) vervollständigen if clk'event and clk = '1' then q <= d; end if; end process; end rtl; Dr. Wolfgang Günther Einleitung - 23 Flipflop mit asynchronem Reset Dr. Wolfgang Günther Einleitung - 24 Formale Verifikation architecture rtl of dff_ar is p : process(clk, reset) if reset = '1' then q <= '0'; elsif clk'event and clk = '1' then q <= d; end if; end process; end rtl; RTL Beschreibung Logiksynthese Technology Mapping Physical Design Property Checking Equivalence Checking Equivalence Checking Equivalence Checking

Dr. Wolfgang Günther Einleitung - 25 Wozu Verifikation? Korrekte, zuverlässige Hardware Einsatz in sicherheitskritischen Anwendungen Frühzeitige Erkennung von Entwurfsfehlern doppelte Fertigungskosten Time-to-market Kosten durch Austauschaktionen Schaden für das Image des Unternehmens Dr. Wolfgang Günther Einleitung - 26 Beispiel: Pentium-Bug 3. 11. 1994: Erste Berichte in der Intel Newsgroup, dass der Pentium-Prozessor einen Fehler in der Gleitkomma-Division hat 4195835 / 3145727 ergab 1,33373906 und nicht 1,33382044 Fehler an der 4. Nachkommastelle Dr. Wolfgang Günther Einleitung - 27 Beispiel: Pentium-Bug (2) 30. 11. 1994: Bericht von Intel Beschreibung Divisionsalgorithmus und Fehler "bei einem normalem Benutzer tritt der Fehler alle 27,000 Jahre auf" kostenloser Austausch "in begründeten Fällen" 12. 12. 1994: IBM-Bericht: Annahme über die Gleichverteilung der Inputzahlen nicht legitim Fehler tritt alle 24 Tage auf Dr. Wolfgang Günther Einleitung - 28 Beispiel: Pentium-Bug (3) 20. 12. 1994: Austausch des Prozessors auch ohne Begründung 475 Mio. US$ zusätzliche Kosten im 4. Quartal 1994 Imageschaden für Intel Fehleranalyse ergab: Fehler in einer Look-Up-Table (ROM) zur Bestimmung der korrekten Quotientenbits intensive Verifikationsbemühungen hätten den Fehler aufgedeckt

Dr. Wolfgang Günther Einleitung - 29 Ursachen von Fehlern Stark wachsende Komplexität der Schaltungen zunehmende Miniaturisierung neue Techniken zur Entwurfsautomatisierung Software zur Entwurfsautomatisierung wird immer komplexer Entwurf entspricht nicht der Spezifikation Spezifikation ist unvollständig oder fehlerhaft Dr. Wolfgang Günther Einleitung - 30 Verifikation vs. Testen Verifikation: Fehler im Entwurf Bei einem Fehler sind alle gefertigten Chips fehlerhaft Thema dieser Vorlesung Testen: Fabrikationsfehler Defekte, die bei der physikalischen Fertigung entstehen (Staubkörner, schlechte Dotierung, etc.) Betriebsfehler: Fehler treten erst im Betrieb auf durch Alterung, Verschleiß, etc. Dr. Wolfgang Günther Einleitung - 31 Formen der Verifikation Dr. Wolfgang Günther Einleitung - 32 Verifikation durch Simulation Black-Box Verifikation Implementierung ist versteckt Verifikation ist implementierungsunabhängig White-Box Verifikation Implementierung ist offen zugänglich Grey-Box Verification Implementierung ist versteckt, aber bekannt Schreiben von "Testbenches" Stimuli Design Under Test (DUT) Vergleichsmodell Vergleich der Ergebnisse

Dr. Wolfgang Günther Einleitung - 33 Simulation (2) Dr. Wolfgang Günther Einleitung - 34 Timing-Diagramm "Testbenches" überprüfen die Funktionalität eines Designs "Testbenches" haben oft eine beachtliche Größe "Testbench" hat mehr Sourcecode als Design Analogie zu Software-Entwurf Modularisierung, Code reuse Simulationszeit ist beträchtlich Dr. Wolfgang Günther Einleitung - 35 Stimulus only Verschiedene Ansätze "Testbench" enthält Stimuli und DUT Ergebnisse müssen im Simulator überprüft werden Full Testbench "Testbench" enthält neben Stimuli und DUT auch die korrekten Ergebnisse und führt einen Vergleich durch Simulator-spezifisch spezielle Simulatorbefehle werden verwendet Dr. Wolfgang Günther Einleitung - 36 Lesen aus Datei Test Generation (1) Kleine, klar strukturierte "Testbench" Datei kann extern erzeugt werden Z.B. durch ein C-Programm Eingabedatei ist recht unflexibel oder schwer verständlich Fehler in der Eingabedatei werden erst während der Simulation gefunden

Dr. Wolfgang Günther Einleitung - 37 Test Generation (2) Verwendung von Verhaltensbeschreibungen Behavioral Model in VHDL Beschreibung des Verhaltens auf einer höheren Abstraktionsebene Simulation des Behavioral Models oft wesentlich effizienter als RTL-Beschreibung Dr. Wolfgang Günther Einleitung - 38 Simulation: Vor- und Nachteile + System kann auf verschiedenen Abstraktionsebenen modelliert werden + Größe des Simulationsmodells wächst linear mit der Systemgröße Geringe Abdeckung Schwierig, "gute" Eingabevektoren zu finden Beispiel: Ein 256 bit RAM Entwurf braucht 10 77 Simulationsläufe 2 256 Dr. Wolfgang Günther Einleitung - 39 Die Simulations-Krise >50% der Entwurfszeit wird für RTL- und Netzlistensimulation verwendet Größere Entwürfe führen zu steigenden Simulationszeiten und gleichzeitig noch geringerer Abdeckung Dr. Wolfgang Günther Einleitung - 40 Angenommen, Systemebene Jedes Modul ist mit einer Wahrscheinlichkeit von 95% korrekt Ein System hat 20 Module Dann ist das Gesamtsystem mit einer Wahrscheinlichkeit von nur 0.95 20 = 36% korrekt Korrektheit der Module ist von hoher Bedeutung

Dr. Wolfgang Günther Einleitung - 41 Andere Verifikationstechniken Property Checking / Model Checking Beweisen von Eigenschaften auf einer Schaltung Formal Linting Ausführen vordefinierter Tests Combinational Equivalence Checking Vergleich der kombinatorischen Logik Timing Analysis Power Estimation Dr. Wolfgang Günther Einleitung - 42 Property Checking Eigenschaften für eine Komponente für alle Eingabevektoren werden bewiesen Äquivalent zu erschöpfender Simulation, aber effizienter Die Eigenschaft muss (meist) auf ein Zeitfenster endlicher Länge beschränkt sein Beispiel: "Schreiben in SDRAM findet mindestens 19 Clock-Zyklen nach dem Lesen aus dem ROM statt" Dr. Wolfgang Günther Einleitung - 43 Property Checking (2) Komponenten mit 100K Gattern können in wenigen Minuten bewiesen werden Oft werden ungewöhnliche Fehler gefunden, die durch Simulation nicht entdeckt werden (Mindestens) Ergänzung zur Simulation Dr. Wolfgang Günther Einleitung - 44 Linting Vergleichbar mit "lint" für C Fehler und fehleranfällige Befehle werden aufgezeigt Nicht passende Typen, Mehrere Treiber für ein Signal, Signale ohne Treiber, etc. Kann nicht unterscheiden zwischen "gewollten" und "ungewollten" Anweisungen

Dr. Wolfgang Günther Einleitung - 45 Formal Linting Vordefinierte Eigenschaften werden formal überprüft Werden automatisiert aus der RTL-Beschreibung extrahiert Beispiele: Arrayzugriffe außerhalb der Grenzen Werte außerhalb des gültigen Bereichs 'X' Zuweisungen Dr. Wolfgang Günther Einleitung - 46 Combinational Equivalence Checking (CEC) Äquivalenzvergleich zweier Schaltungen kombinatorisch: Flipflops werden aufgebrochen und zu zusätzlichen Ein- und Ausgängen inputs1 FF1 outputs1 inputs2 FF2 outputs2 Dr. Wolfgang Günther Einleitung - 47 Equivalence Checking (cont.) Dr. Wolfgang Günther Einleitung - 48 Equivalence Checking (cont.) CEC kann verwendet werden für Vergleich RTL gegen RTL Nach Umschreiben des RTL, etwa in eine andere Sprache Vergleich RTL gegen Netzliste Nach der Synthese, Logik-Optimierung, usw. Vergleich Netzliste gegen Netzliste Austausch der Bibliothek, Routing, clock tree insertion, usw. CEC kann nicht verwendet werden, wenn sich die Kodierung der Zustände ändert oder vom Synthese-Tool (beliebig) festgelegt wurde wenn sich die Zahl der erreichbaren Zustände ändert nicht alle Abstraktionsebenen werden unterstützt C/C++, Transistor-Ebene

Dr. Wolfgang Günther Einleitung - 49 Einsatz von CEC Dr. Wolfgang Günther Einleitung - 50 Timing Analysis CEC kann komplette ASICs vergleichen > 5 Millionen Gatter Im Gegensatz zu Property Checking ist wenig Wissen über die Schaltung notwendig Abschätzung des Delays auf dem langsamsten Pfad Kann auf verschiedenen Abstraktionsebenen durchgeführt werden Je nach Abstraktionsebene gibt es unterschiedlich genaue "Timing-Modelle" Kapazitive Lasten der Gatter können erst nach dem Technology Mapping bestimmt werden Verzögerungen der Leitungsbahnen können erst nach dem Routing berechnet werden Dr. Wolfgang Günther Einleitung - 51 Power Estimation Verschiedene Fragestellungen: Energieverbrauch insgesamt Wie lange hält die Batterie / Wie viel Wärme entsteht? Leistung maximal Maximalleistung der Batterie? Energieverbrauch lokal Gibt es Teile des Chips, die besonders warm werden? Dr. Wolfgang Günther Einleitung - 52 Beispiel: Formale Verifikation bei Infineon CVE (Circuit Verification Environment) Umfang von CVE: VHDL-Compiler (vhdl2gates) Verilog-Compiler (verilog2gates, verilogrtl2gates) Equivalence Checker (gatecomp) Property Checker (gateprop)... und weitere Programme

Dr. Wolfgang Günther Einleitung - 53 CVE: Equivalence Checking Dr. Wolfgang Günther Einleitung - 54 CVE: VHDL/Verilog Compiler VHDL RTL Verilog Netzliste Übersetzen von VHDL/Verilog in eine Netzliste (Logiksynthese) RTL vhdl2gates GAT GAT verilog2gates Bibliothek Einfache Grundgatter vhdl2gates Constraints, etc. nein gatecomp Äquivalent? nein Fehler? ja ja fertig Eigenschaften: Logik braucht nicht optimiert zu werden Sollte Simulations-Semantik folgen Warnungen bei "problematischen" Anweisungen GAT Dr. Wolfgang Günther Einleitung - 55 CVE: GateComp Matching gatecomp Finden von korrespondierenden Ein-/Ausgängen und von Zustandsbits der beiden Schaltungen Äquivalent? Namen werden durch Synthese zum Teil verändert Namen sind oft nicht eindeutig Verschiedene Verfahren sind implementiert Vergleich von Ausgängen und Übergangsfunktionen GAT GAT Dr. Wolfgang Günther Einleitung - 56 CVE: GateComp (2) Methoden zum Vergleich der Funktionen: Binary Decision Diagrams (BDDs) SAT (Erfüllbarkeit von Formeln in konjunktiver Normalform) Test-Pattern Generation (ATPG) Finden von äquivalenten Punkten in den beiden Schaltungen Inhalt dieser Vorlesung

Dr. Wolfgang Günther Einleitung - 57 Black Boxing Bestimmte Teile sollen von der Verifikation ausgeschlossen werden Speicher komplexe Arithmetik unvollständige Implementierung Dr. Wolfgang Günther Einleitung - 58 Auswirkung: Eingänge Black Boxing (2) Eingänge der "Black Box" werden zu Ausgängen Ausgänge der "Black Box" werden zu Eingängen Eingänge Ausgänge Eingänge Ausgänge Ausgänge Dr. Wolfgang Günther Einleitung - 59 CVE: Property Checking Dr. Wolfgang Günther Einleitung - 60 Eigenschaften VHDL RTL vhdl2gates GAT Property Constraints Beschreiben eine Spezifikation Ein System kann durch mehrere Eigenschaften beschrieben werden (Übersichtlichkeit) Randbedingungen müssen berücksichtigt werden gateprop Vollständige Beschreibung ist wünschenswert Wahr? nein ja fertig Eingänge Ausgänge Diagnose

Dr. Wolfgang Günther Einleitung - 61 Eigenschaften eines Flipflops Dr. Wolfgang Günther Einleitung - 62 Eigenschaften eines Arbiters Der Wert von d steht einen Takt später am Ausgang q Randbedingung: d und clk schalten nicht gleichzeitig Randbedingungen: auf einen Grant folgt genau ein free ohne Grant kein free Resource d Master 0 clk q Master 1 Master 2 3 3 grant_o free_i Arbiter request_i Dr. Wolfgang Günther Einleitung - 63 Eigenschaften des Arbiters Höchstens ein Grant grant_o(2) + grant_o(1) + grant_o(0) <= 1 Ohne Grant gibt es keinen Request grant_o(0) prev(request_i(0)); Kein Grant solange die Resource beschäftigt ist Jeder Request führt zu einem Grant... Dr. Wolfgang Günther Einleitung - 64 Bemerkungen Eigenschaften können sich auf verschiedene Zeitpunkte beziehen Reset-Verhalten muss oft getrennt bewiesen werden Ein Request führt nicht zu einem Grant, wenn der Reset gezogen wurde Randbedingungen sind getrennt zu beweisen

Dr. Wolfgang Günther Einleitung - 65 Erreichbarkeit Problem: Nicht alle Zustände sind (sequentiell) erreichbar signal s : integer range 0 to 5; s wird durch 3 Bits dargestellt Die Werte 6 und 7 können nicht auftreten Illegal, aber bei fehlerhaften Schaltungen möglich... Je nach Umgebung können auch andere Werte nicht auftreten Etwa, wenn der Wert 4 nie zugewiesen wird Dr. Wolfgang Günther Einleitung - 66 Erreichbarkeit (2) Gegenbeispiele brauchen nicht erreichbar sein Die Schaltungen verhalten sich in nicht erreichbaren Zuständen unterschiedlich (Equivalence Checking) In einem nicht erreichbaren Zustand tritt ein Fehler auf (Property Checking) Eine Erreichbarkeitsanalyse ist schwierig (hohe Komplexität) und deshalb in der Regel bei großen Schaltungen nicht möglich Approximationstechniken