VHDL - formal.iti.kit.eduformal.iti.kit.edu/.../ko-seminarSS05-vhdl-slides.pdf · VHDL Geschichte...
Transcript of VHDL - formal.iti.kit.eduformal.iti.kit.edu/.../ko-seminarSS05-vhdl-slides.pdf · VHDL Geschichte...
Formal methods for fun and profit
VHDL
Ilja Kipermann
Sommersemester 2005
Leitung Jun. Prof. Beckert
Universität Koblenz-Landau
VHDL Einleitung
Früher: Manuelles Zeichnen von Belichtungsmasken
Heute: Hardwarebeschreibungssprachen
Beschreibung was ein Hardwarebaustein tut nicht wie er es tut.
Anwendungsgebiete:
FPGAs (Field programmable gate arrays) ASICs: (Application Specific Integrated Circuits)
VHDL Geschichte von VHDL
Man benötigte eine Sprache die nicht nur maschinen-, sondern auch menschenlesbar ist.
ende 70er - Anregung durch das U.S. Verteidigungsministerium
1983-85 – Entwicklung der Grundlagen von Intermetrics, IBM and Texas Instruments
1987 – Publikation als IEEE Standard
1993 – Aktualisierter Standard (VHDL 1076-1993)
1999 – Erweiterung um analoge Elemente (VHDL-AMS)
VHDL Was ist VHDL?
- VHDL ist eine Hardwarebeschreibungssprache.
- Beschreibt das Verhalten und die Struktur elektronischer Bausteine.
- Präzise und Komplett definiert im Language Reference Manual (LRM)
- IEEE-Standard und nicht propietär
VHDL Was ist VHDL?
- VHDL ist eine Sprache
- Zum effektiven Einsatz benötigt man eine Sprache geeignete Methodik Satz an Softwarewerkzeugen
- Wichtigste Methoden: Simulation und Synthese
- VHDL komplett simulierbar
- Das LRM definiert eindeutig wie ein Simulator die Sprache verarbeitet
VHDL Konzepte von VHDL
- Zweierlei Arten von Anweisungen bei VHDL: Sequenzielle, Nebenläufige
- Nebenläufige Anweisungen können Parallelität echter Hardware nachbilden
- 3 Wichtige Modellierungsmethodiken: Abstraktion, Modularität, Hierarchie
VHDL Konzepte von VHDL
- Verschiedene Teile des Modells mit verschiedenen Detailstufen
- Nur simulationsrelevante Module nicht so detailliert wie Funktionsrelevante Module
- Es wird zwischen wichtigen und (aktuell) unwichtigen Informationen unterschieden
- Abstraktionsgrad kann im Verlaufe des Entwicklungsprozesses verfeinert werden
Abstraktion
VHDL Konzepte von VHDL
- Erlaubt es große Funktionsblöcke in kleinere abgeschlossene Module zu Unterteilen
- Aus Modulen, die auch Untermodule besitzen können kann ein System aufgebaut werden
- Verschiedene Hierarchieebenen
- Ein oder mehrere Module mit unterschiedlichem Abstraktionsgrad bilden eine Hierarchieebene, die darin enthaltenen Untermodule bilden die Hierarchieebene darunter.
- Teilbeschreibungen aus unteren Ebenen werden als Instanzen an über-geordnete Module weitergegeben
Modularität und Hierarchie
VHDL Abstraktionsebenen
- VHDL legt keinen Beschreibungsstil fest.
- Bottom up, top down, middle out
- Drei verschiedene Abstraktionsebenen
- Verhaltensmodellierung- Register-Transfer-Level (RTL)- Gatterebene
- Hauptunterschied: Timing
VHDL Abstraktionsebenen
1. Informelle Spezifikation
2. Simulierbare formale Beschreibung (Verhaltensmodellierung)
3. Erste Simulation
4. Abstraktionsverfeinerung (RTL)
5. Synthese
6. Einzelne Bausteine zu Gesamtschaltung verbinden ( Gatterebene)
7. Tatsächliche Physik ( ausserhalb VHDL-Blickwinkels)
Entwicklungsprozess
VHDL Abstraktionsebenen
- Satz von Anweisungen für ein bestimmtes Ergebnis
- Simulierbar, Performanz und Funktionalität prüfen
- nicht Synthetisierbar
- berücksichtigt keinen Takt
Verhaltensmodellierung
VHDL Abstraktionsebenen
- Beschreibung des Datenflusses zwischen Registern,in welchen Informationen zwischen einzelnen Zeit-schritten gespeichert werden
- spezifiziert, wie und wo Information gespeichert und während einer Operation weitergeleitet wird
- berücksichtigt explizit den Takt
- alle Operationen getimed um zu bestimmten Taktzyklen ausgeführt zu werden
- keine Delays
- Simulierbar
- Eingabeformat für die Synthese
Register-Transfer-Ebene
VHDL Abstraktionsebenen
- automatisiertes Werkzeug
- schafft aus RTL-Modell eine Schaltungsdarstellung aufGatter-Ebene
- VHDL-Code für bestimmtes Werkzeug zugeschnitten
- manchmal manuelle Synthese zur Flächen-, Energie-oder Taktratenoptimierung. Zeitbedarf und Gewinnabwägen
- Ausgabe: Beschreibung der Schaltungbezüglich tatsächlicher Komponenten unddie logische Struktur zwischen ihnen
Maschinelle Synthese
VHDL Abstraktionsebenen
- Beschreibung vom Netzwerk von Gattern und Registern
- instanzieert über eine Technologiebibliothek, in der techno-logiespezifische Delays enthalten sind
- Beschreibung des Bausteins in seiner Funktionsweisemit Takt und Verzögerungsinformationen
Gatterebene
VHDL Aufbau von VHDL
ENTITY compare IS
PORT( A, B: IN bit_vector(0 TO 7);
EQ: OUT bit);
END compare;
ARCHITECTURE compare1 OF compare IS
BEGIN
EQ <= 1 WHEN (A = B) ELSE 0;
END compare1;
8-bit Komparator- Akzeptiert zwei 8-bit Inputs, vergleicht sie, und
gibt ein 1-bit Ergebniss aus. 1 bei Übereinstimmung0 bei Differenz
- mindestens eine Entity und eine Architecture
- Entity beschreibt die Schaltung von “Ausserhalb”
- Zu jeder Entity eine Architecture
- Architecture beinhaltet tatsächliche Verhaltensbeschreibung
VHDL Aufbau von VHDL
ENTITY compare IS
PORT( A, B: IN bit_vector(0 TO 7);
EQ: OUT bit);
END compare;
ARCHITECTURE compare1 OF compare IS
BEGIN
EQ <= 1 WHEN (A = B) ELSE 0;
END compare1;
ENTITY- Das komplette Interface für die Schaltung
- Namen, Datentypen und Ports
- Alle Informationen um diesen Teil mit anderen zu verbindenoder Input-Stimuli zu entwickeln für eine Simulation
- tatsächliche Funktionsweise nicht enthalten
VHDL Aufbau von VHDL
ENTITY compare IS
PORT( A, B: IN bit_vector(0 TO 7);
EQ: OUT bit);
END compare;
ARCHITECTURE compare1 OF compare IS
BEGIN
EQ <= 1 WHEN (A = B) ELSE 0;
END compare1;
ARCHITECTURE- Name notwendig da mehrere Architectures möglich
- Durch Hierarchien und Unterprogramm-Features istes möglich Komponenten von tieferen Abstraktionsebeneneinzufügen
- Beim Schritt zur nächsten Abstraktionsebene wirdder Code zum RTL level umgeschrieben und erweitert
VHDL Formale Methoden und VHDL
- gängige Praxis auf Korrektheit zu überprüfen: Simulation mit Testbenches mitzufallsgenerierten oder manuellen Eingaben
- Bugs sind sehr teuer
- sicherheitskritische Anwendungen
- Formale Verifikation sehr wichtig
- Aufgrund fehlender Semantik auf Verhaltensebene kaum durchführbar
- Verschiedene Ansätze der formalem Verifikation mit VHDL, jedoch noch eher ein Forschungsgebiet
Simulationswerkzeug
VHDL Formale Methoden und VHDLFormal equivalence checking
- Register-Transfer-Ebene als Referenz
- Synthese zu Gatter-Ebene
- Theoretisch muss ein Synthesewerkzeug logische Äquivalenz garantieren:In der Praxis: Bugs, manuelle Optimierungen
- Idee: Anstatt Äquivalenz einzelner Ausdrücke mit Hilfe der symbolischen Logik Ausdrücke benutzen die eine ganze Bandbreite an Inputs representieren. Äquivalenz gilt dann für alle In- und Outputs.
- Nachteile:
Algorithmen sehr komplex und funktionieren nicht so gut beigrößeren Designs. Design-Segmentierung schwierig.
Eventuell bereits schwerwiegende Bugs auf RTL-Ebene
VHDL Formale Methoden und VHDLModel Checking
- Aus einem System wird durch Abstraktion ein Modell und durch Formalisierung auseiner Spezifikation eine logische Formel gewonnen.
- Modell und Formel an Model Checker übergeben, der überprüft ob das Modell derSpezifikation genügt
- Im Idealfall positives Ergebnis oder Gegenbeispiel, was die Fehlerkorrektur vereinfacht
- Leider nicht möglich direkt an VHDL anzusetzen da das Design als endlicher Automatvorliegen muss.
- Gängigster Ansatz: VHDL in Binery Decision Diagramme übersetzen und darauf dasModel Checking Verfahren anwenden.
- Vorgang sehr komplex und daher Kosten- und Zeitaufwendig
- Gefahr der Fehler bei der Übersetung
VHDL Formale Methoden und VHDLTheroem Proving
- Behauptungen auf der Grundlage von Beweissystemen mit Hilfe von Programmen verifizieren.
- logische Sprache basierend auf der klassischen Logik
- VHDL-Code aufgrund fehlender Semantik nicht geeignet und muss für das Verfahrenumgeschrieben werden.
- Sehr viel manuelle Arbeit
- Gut geeignet um verwendete Algorithmen zu verifizieren, jedoch bislang zu hart und kompliziert für die komplette Verifikation
VHDL Vor- und Nachteile von VHDLVorteile
- Vielseitigkeit
- Programmunabhängigkeit
- Technologieunabhängigkeit
- Modellierungsmöglichkeiten
Nachteile
- Modellierung analoger Systeme
- Komplexität
- Synthese-Sprachumfang
VHDL Alternativen und Asublick
- Verilog
- prinzipiell ähnliche Möglichkeiten
- leichter erlernbar da C-ähnlich
- schnellere Simulation
- nicht so ausgereift und weniger abstrakt
- VHDL Flexibler, aber komplizierter
- VHDL in Europa verbreiteter, Verilog in Nordamerika und Japan
VHDL Alternativen und Asublick
- Neu auf dem Markt: SystemVerilog
- Systemmodellierung und Simulation auf hoher Abstraktionsebene
- erweiterter Verilog-Standard und direkte Verbindung zu C
- Einbindung von VHDL Elementen
- Arbeitsgruppe zur weiterentwicklung von VHDL : VHDL-200X