Digitaltechnik. Andreas König. Professur Technische Informatik Fakultät Informatik Technische Universität Chemnitz. Wintersemester 2001/2002



Ähnliche Dokumente
Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

13 Programmierbare Speicher- und Logikbausteine

Teil 1: Digitale Logik

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

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Anwenderprogrammierbare

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm

Teil 1: Digitale Logik

1 Anmerkungen zur Entwicklung von GALs mit LOG/iC

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap.

Einführung in. Logische Schaltungen

9 Multiplexer und Code-Umsetzer

VHDL Verhaltensmodellierung

Klausur zur Vorlesung

Programmierbare Logik mit GAL und CPLD

F Programmierbare Logikbausteine

Martin V. Künzli Marcel Meli. Vom Gatter zu VHDL. Eine Einführung in die Digitaltechnik. : iasms!wil5i-8sb*l!f. 3. Auflage. zh aw

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

FAKULTÄT FÜR INFORMATIK

F Programmierbare Logikbausteine

FPGA Field Programmable Gate Array im Unterschied zu anderen PLD-Architekturen.

A.3. A.3 Spezielle Schaltnetze Prof. Dr. Rainer Manthey Informatik II 1

Teil 1: Digitale Logik

Einstellige binäre Addierschaltung (Addierer)

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach

Teil 1: Digitale Logik

Modulare Grafische Programmierung (MGP) von FPGAs

- Strukturentwurf elementarer Rechenwerke - Grund-Flipflop (RS-Flipflop) - Register, Schieberegister, Zähler

Versuch Nr. 8c Digitale Elektronik I

Eine Logikschaltung zur Addition zweier Zahlen

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

Emulation und Rapid Prototyping

EHP Einführung Projekt A

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

Digitalelektronik 4 Vom Transistor zum Bit. Stefan Rothe

Einteilung der Kippschaltungen (Schaltwerke) (=Flipflops)

4D Server v12 64-bit Version BETA VERSION

Künstliches binäres Neuron

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

2004, Thomas Barmetler Automatisierungstechnik - Einstieg. Das EVA-Prinzip

Technische Informatik Basispraktikum Sommersemester 2001

Schaltungen Jörg Roth 197

Schnittstelle DIGI-Zeiterfassung

CPLD Auswahl und Design

Funktionstest Ti2CA Compact

3D Visualisierung von UML Umgebungsmodellen

Grundtypen Flip-Flops

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Praktikum Digitaltechnik

N Bit binäre Zahlen (signed)

Mikrocontroller Grundlagen. Markus Koch April 2011

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1

Das große All-in-All CPLD/FPGA Tutorial

Grundtypen Flip-Flops

Simulink: Einführende Beispiele

KLAUSUR DIGITALTECHNIK SS 00

VHDL Verhaltensmodellierung

Aufgabensammlung. a) Berechnen Sie den Basis- und Kollektorstrom des Transistors T 4. b) Welche Transistoren leiten, welche sperren?

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Neues Modul für individuelle Anlagen. Änderung bei den Postleitzahl-Mutationen

Hardware Programmierbare Logik

Analyse verschiedener HLS-Systeme in Hinblick auf ihren Umgang mit der Hochsprachenabstraktion Speicher. Sascha Kath

Konfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen mit Deutsche Telefon Standard AG

Echtzeit- und Regelungstechnische Aspekte bei der automatischen Transformation von Matlab/Simulink in SPS-basierten Steuerungscode

Grundbegriffe der Informatik

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

10. Elektrische Logiksysteme mit

Codes und Informationsgehalt

Import des Out of Office Status von Exchange in LANDESK Service Desk

Asynchrone Schaltungen

How-to: Webserver NAT. Securepoint Security System Version 2007nx

ROBUSTE STROM-PHASENWINKELMESSUNG FÜR CPS-FREQUENZUMRICHTER MIT... OPTIMIERTEM AUSGANGS-LEISTUNGSFAKTOR

Übungsblatt 8 Lösungen:

16 Latches und Flipflops (Bistabile Kippstufen)

Praktikum Grundlagen der Elektronik

.. für Ihre Business-Lösung

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign"

Zellulare Neuronale Netzwerke

Select & Preprocessing Cluster. SPP Server #1. SPP Server #2. Cluster InterConnection. SPP Server #n

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Algorithmen zur Integer-Multiplikation

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

SANDBOXIE konfigurieren

1. Praktische Übung zur Vorlesung Technische Informatik I

Labor Grundlagen der Elektrotechnik

2D to 3D Technologie

Einführung in PHP. (mit Aufgaben)

Einfache Computersteuerung für Modellbahnen

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Transkript:

Andreas König Professur Technische Informatik Fakultät Informatik Technische Universität Chemnitz Wintersemester 2001/2002 Andreas König Folie 9-1 Rekapitulierung zu Kapitel 8 Erweiterung der Betrachtung von kontroll- auf daten-dominierte Verarbeitung Vorstellung relevanter Funktionsblöcke zum Aufbau von Rechenwerken und Datenpfaden Insbesondere Betrachtung grundlegender arithmetischer Funktionseinheiten und deren Besonderheiten: Geschwindigkeit vs. Gatter- und Flächenbedarf Entwurfsfragen für diese sehr regulären Strukturen Steuerung von Rechenabläufen auf den neuen Strukturen Festverdrahtetes und mikroprogrammierbares Steuerwerk Einführung des speicherprogrammierten Rechners (v. Neumann) Grenzen der Beschreibung und Umsetzung von Einheiten und Systemen auf diesem Komplexitätsniveau Andreas König Folie 9-2

Vorlesungsgliederung: 1. Einführung 2. Kodierung und Arithmetik 3. Grundlagen der Booleschen Algebra 4. Entwurf zweistufiger kombinatorischer Logik 5. Zieltechnologien und Technologieanpassung 6. Zeitliches Verhalten kombinatorischer Schaltnetze 7. Entwurf sequentieller Schaltwerke 8. Funktionsblöcke digitaler Rechner und Systeme 9. Entwurf von Systemen der 10. Ausblick Andreas König Folie 9-3 Kapitelgliederung: 9. Entwurf von Systemen der 9.1 Bisheriger Stand 9.2 Komplexe programmierbare Logikbausteine 9.3 Hardwarebeschreibungssprachen 8.4 Synthesemöglichkeiten und Design-Flow Andreas König Folie 9-4

Bisheriger Stand Bislang wurde der Entwurf von Schaltnetzen und werken behandelt, die einige Dutzend Gatter und Speicherglieder umfassten Die Umsetzung wurde über PSPICE mit diskreten Logikbausteinen (74- Familie) vorgenommen (Verdrahtung, Platz, Verlustleistung, Takt!) Reguläre programmierbare Logikbausteine wurden vorgestellt, die eine günstigere Implementierung komplexerer Systeme erlauben Beispiel einer prinzipiellen PLA, die ggf. auch FFs enthalten können: 1 1 1 1 1 1 1 f 1 x 3 x1 x 3 x1 x 3 x 2 = f 1 f 2 f 3 f 4 Andreas König Folie 9-5 Bisheriger Stand Prinzipieller Entwurfsablauf für PLA-Bausteine: Unterer Teil zugeschnitten auf spezifische Umgebung unter Einsatz von ABEL Idee, Konzept, Grobbeschreibung Funktionstabelle; DNF PLA-Auswahl (anhand der I/O-Erfordernis, ggf. Partitionierung in mehrere PLAs) Texteditor; Logikbeschreibung (Header, Vereinbarungen, Testvektoren) Redesign PARSE/Transformation Programmiergerät Eingesetzter PLD-Schaltkreis Zielschaltung Fusemap Simulation (Vergleich mit Testvektoren) Dokumentation/Archivierung Andreas König Folie 9-6 Keine Extraktion (Laufzeiten)

Bisheriger Stand Bislang (sinnvoll) erreichbares Niveau: Verhalten System Algorithmen Struktur Systemspezifikation Register-Transfer Speicher, CPU Algorithmen Logik Subsysteme RT-Beschreibung Funktionsblöcke(ALUs, ) Boolsche Gleichungen Gatter, FlipFlops DGLs Transistoren Maskenebene (Standard)Zellen Floorplan/Makrozellen Cluster/Chip IC-Partitionierung/Chip/Board Geometrie Andreas König Folie 9-7 Bisheriger Stand Der simple Prozessor aus Kapitel 8 hat bereits aufgezeigt, dass das bisherige Spektrum der Beschreibungs-, Entwurfs- und Implementierungsmethoden unzureichend für einen effizienten Entwurf ist Erweiterung der Palette zum Entwurfstil benutzerprogrammierbare Logikbausteine durch komplexe mehrfach programmierbare bzw. rekonfigurierbare Bausteine Effiziente Beschreibung komplexer Digitaler Systeme durch Hardware- Beschreibungssprachen Automatisierung des Entwurfs von der RT-Ebene bzw. durch High-Level- Synthese von der Verhaltensebene Andreas König Folie 9-8

Oberbegriff Programmable Logic Devices (PLD), häufig in Bipolartechnologie realisiert Erweiterung von einmal programmierbaren auf mehrfach programmierbare Bausteine unter Verwendung von EPROM-Technologie (Erasable PLD, EPLD) CMOS-Technologie vorteilhaft bzgl. Verlustleistung, Packungsdichte Wiederverwendbar und voll beim Hersteller testbar Typische Angaben: 300-1800 Gatter, 8-48 FF, 15-30ns Delay [Seifart 98] EPLDs bestehen aus einer Anzahl identischer Makrozellen: programmierbare Matrix von UND-Gattern ein ODER-Gatter hoher Eingangszahl, dass aus dem UND-Feld angesteuert wird Ein E/A-Steuerblock (Architektursteuerblock) aus (EP 300/301): (flankengetriggertem) D-FF programmierbaren Mux Andreas König Folie 9-9 Komplexe programmierbare Logikbausteine Vereinfachtes Blockschaltbild einer Makrozelle des EPLDs EP300/301 (nach [Seifart 98]) Clock OE Produktterme 1 DQ I/O 1 11 2 4 5 6 7 8 9 19 18 17 16 15 14 13 Rückkopplungspfade der anderen 7 Makrozellen Andreas König Folie 9-10

Prinzipielle Innenschaltung des EPLDs EP300: 20 19 18 17 16 15 14 13 12 11 Vcc 1 DQ Gnd 1 2 3 4 5 6 7 8 9 10 Andreas König Folie 9-11 Komplexe programmierbare Logikbausteine Weiterer Entwicklungsschritt: EEPROM Technologie für EPLDs Vorteil: Schnelleres, einfacheres Löschen, preiswerteres Gehäuse; Variante sogar im Zielsystem durch Zusatzpins programmierbar (ispgal) GAL (Generic Logic Array) von Lattice mit UND-Feld und Makrozelle Output-Logic-Macro-Cell (OLMC) eines GALs (16V8/20V8): PT Mux CLK OE zu Nachbarstufe Gnd Vcc TS Mux UND- Array 1 =1 DQ Out Mux I/O Rückführung Feedback Mux Andreas König Folie 9-12 von Nachbarstufe

Komplexe programmierbare Logikanordnungen (CPLDs): Anfang der 90er wurden immer größere Schaltungen auf PLDs entworfen Einzelne der verfügbaren Bausteine genügten nicht mehr zum Entwurf Partitionierung stellte das sonst gute und vorhersagbare Zeitverhalten in Frage Die bisherige UND-ODER-Struktur erlaubt keine gemeinsame Nutzung sowie Expansion von Produkttermen Aufbau aus PAL-Blöcken und Verbindungsstruktur (MACH von AMD): Inputs/Outputs PAL Block PAL Block PAL Block Switch Matrix PAL Block PAL Block PAL Block Inputs/Outputs Andreas König Folie 9-13 Komplexe programmierbare Logikbausteine Aufbau des MACH 120 von AMD (nach [Seiffart 98]): 12 In/Out 12 In/Out 4 dedicated Inputs I/O-Cells I/O-Cells PAL-Block PAL-Block 12 In/Out 12 Macrocells 52x54 AND Logic Array and Logic Allocator 52x54 AND Logic Array and Logic Allocator 12 26 26 Switch Matrix 26 12 52x54 AND Logic Array and Logic Allocator 12 Macrocells I/O-Cells 52x54 AND Logic Array and Logic Allocator 12 In/Out 12 Macrocells 12 Macrocells I/O-Cells 12 12 4 PAL-Block 4 4 PAL-Block 4 Andreas König Folie 9-14 12ns Delay (EEPROM) 4 Clock Inputs/ 4 dedicated Inputs

Feldprogrammierbare Gate Arrays (FPGAs) Actel FPGAs mit Antifuse-Technologie: Logik Module I/O-Buffers, Programming and Test Logic I/O-Buffers, Programming and Test Logic I/O-Buffers, Programming and Test Logic I/O-Buffers, Programming and Test Logic Zusätzliche vertikale Verdrahtungskanäle Verdrahtungskanäle (hor.) Andreas König Folie 9-15 Komplexe programmierbare Logikbausteine Logik-Modul als Grundbaustein der Actel-FPGAs: SOA S 0 S 1 R 0 D 0 D 1 D 2 D 3 2:1 Mux 2:1 Mux 1 2:1 Mux Y 0 1 2:1 Mux 2:1 Mux 1 2:1 Mux Y SOB Beliebige kombinatorische Logik generierbar S Ebenso sequentielle Logik, z.b. einfaches RS-Latch Andreas König Folie 9-16

Actel-FPGA Verbindungsstruktur: Logik Module Horizontale Tracks Antifuse (stellt Verbindung her!) Vertikale Tracks Andreas König Folie 9-17 Komplexe programmierbare Logikbausteine In der Actel-FPGA Verbindungsstruktur geht jeder Übergang von einer horizontalen zu einer vertikalen Spur über eine Antifuse Damit verbunden sind resistive und kapazitive Belastung Kritische Pfade durch Zellplatzierung und Verdrahtung mit möglichst wenig Antifuse-Übergängen belasten Erkennbar hängt die Laufzeit in der Logik von vorgenommener Platzierung und Verdrahtung ab Reine Logiksimulation ist jetzt zur Verhaltenseinschätzung nicht mehr ausreichend (Rückgewinnung/Extraktion; Timing-Simulation) Die Actel-Bausteine sind nur einmal programmierbar Andreas König Folie 9-18

Andere FPGA-Familie mit reversibler Programmierung durch RAM- Speicherung der Verbindungsstruktur: Xilinx Logic-Cell-Arrays (LCAs) RAM-Organisation als Schieberegister: Download von externem ROM Prinzipielle Architektur: IOB IOB IOB IOB IOB IOB Wiring channels IOB Andreas König Folie 9-19 Komplexe programmierbare Logikbausteine Architektur des Xilinx-I/O-Blocks (XC3020): Programme Controlled Options OUT INV TS INV OUTPUT SOURCE SLEW RATE PASSIVE PULLUP Vcc Enable Output =1 Out Direct In =1 DQ R Output Buffer PAD Registered In Q D R TTL or CMOS Input Buffer Clocks Global Reset Andreas König Folie 9-20

Architektur des Xilinx-Configurable-Logic-Blocks (, XC3020): Reset DIN A B C D E Q 1 F Combinational Function Generator G Q 2 DRD Q CE DRD Q CE X Y Clock Clock Enable Andreas König Folie 9-21 Komplexe programmierbare Logikbausteine Funktionsweise des Xilinx-Configurable-Logic-Blocks Sogenanntes Personality RAM erlaubt die Konfiguration des CFG im : Eine Boolesche Funktion aus fünf Variablen kann mit folgenden Eingänge berechnet werden: A; B/Q 1 /Q 2 ; C/Q 1 /Q 2 ; D; E. F und G haben den selben Ausgangswert. 5-bit ungerade Parität: F = A B C D E Zwei unabhängige Funktionen in vier Variablen können für F und G berechnet werden: A; B/Q 1 /Q 2 ; C/Q 1 /Q 2 ; D/E. Beispiel: 2-bit Komparator: (GT) (EQ) F = AC AB DB CD G = ABCD ABCD ABCD ABCD Weiterhin können eingeschränkt bestimmte Funktionen von mehr als fünf Variablen repräsentiert werden. Die Variable E dient zur Auswahl von Ausgangswerten zweier Funktionen jeweils aus: A; B/Q 1 /Q 2 ; C/Q 1 /Q 2 ; D (s. Folgefolien) Andreas König Folie 9-22

Veranschaulichung möglicher Konfigurationen des CFG im : A B C D E Q 1 Funktion von 5 Variablen F G Q 2 A B C D E Q 1 Funktion von 4 Variablen F A B C D E Q 1 Funktion von 4 Variablen G Q 2 Q 2 Andreas König Folie 9-23 Komplexe programmierbare Logikbausteine Veranschaulichung möglicher Konfigurationen des CFG im (II): A B C Q 1 Funktion von 4 Variablen D Q 2 E F A B C Q 1 Funktion von 4 Variablen G D Q 2 Andreas König Folie 9-24

Zusammenschaltung von s zur Implementierung umfangreicherer Logik Beispiel: Majoritätsfunktion (Gibt eine 1 aus, falls die Hälfte oder mehr der n Eingangsbits gleich 1 sind): Majoritätsfunktion (n=5) Majoritätsfunktion (n=7) 9-bit Parity-Funktion Mehrstufige Logik! Andreas König Folie 9-25 Komplexe programmierbare Logikbausteine Addiererrealisierungen mit s: A 3 B 3 A 2 B 2 A 1 B 1 A 0 B 0 C in 4 Delays C out C 3 S 3 C 2 S 2 C 1 S 1 C 0 S 0 A 3 B 3 A 2 B 2 A 1 B 1 A 0 B 0 C out S 3 S 2 C 2 S 1 S 0 2 Delays 6 s Kosten Generell Trade-Off: Resourcen vs. Delay Andreas König Folie 9-26

Verbindungsstruktur in Xilinx-LCA-Bausteinen Bei der Abbildung einer gewünschten (minimierten) Booleschen Funktion auf ein LCA muss der Entwurf zunächst im Sinne einer Technologieanpassung auf eine minimale Zahl von s abgebildet werden Ist aus einem Schaltplan (oder anderer Beschreibung) heraus dieser Schritt erfolgt, so müssen die Blöcke platziert und verdrahtet werden Für LCAs bedeutet diese eine Zuordnung physischer Array-Positionen zu logischen -Funktionen Die erforderliche Verknüpfung der platzierten s muss durch die Verbindungsstruktur erreichbar sein Es existieren in der Xilinx-Architektur drei Verbindungstypen: Direkte (kurze) Verbindungen zwischen s/iobs General-Purpose-Verbindungen für mittlere und längere Verbindungen Long-Lines für sehr lange Verbindungen bei zeitkritischen Signale Der Vorgang PlaceRoute ist durch die dahinterstehenden NP-vollständigen Optimierungsvorgänge sehr zeitraubend (Typisch: Simulated-Annealing) Andreas König Folie 9-27 Komplexe programmierbare Logikbausteine Prinzipdarstellung der Verbindungsstruktur in Xilinx-LCA-Bausteinen: Vertical Long-Lines Global Long-Line DI B CE A C 0 K E D R X Y DI B CE A C 0 K E D R X Y Anbindung Grundzelle FF Horizontal Long-Lines Switch Matrix Horizontal Long-Lines DI B CE A C 1 K E D R X Y DI B CE A C 1 K E D R X Y Andreas König Folie 9-28

Neuere Bausteine der Virtex-Reihe von Xilinx bieten bis zu 8 Millionen Gatteräquivalente Damit sind komplexere ASICs und Prozessoren implementierbar Synthese aus HDL-Beschreibung: Rapid-Prototyping Einschränkungen der Verbindungsstrukturen sind durch die Entwurfswerkzeuge für den Anwender typisch transparent Mit verbesserten Synthesewerkzeugen spielen maßgeschneiderte Anwendungssysteme, z.b. für die Bildverarbeitung eine wachsende Rolle Die sinkende Dauer einer Rekonfiguration der FPGAs lässt eine schritthaltende Veränderung der Konfiguration im Betrieb zu Die hier gegebene Darstellung zeigt nur grobe Prinzipien auf; Für konkrete Bausteine und deren Anwendung sind die Handbücher der Hersteller sowie die on-line verfügbare Information zu konsultieren Gute Zusammenfassung: [Seiffart 98] [Katz 94] Häufig ist Entwurfssoftware (Simulator, Synthesetool) über die Bausteinhersteller verfügbar, ggf. frei aber mit funktionalen oder zeitlichen Einschränkungen Andreas König Folie 9-29 Hardwarebeschreibungssprachen Die wachsende Komplexität Digitaler Systeme und die fortschreitende Entwurfsautomatisierung erforderte rechnergerechte, effiziente Beschreibung Gegenüber graphischer Schaltplaneingabe und Netzlisten haben Hardware- Beschreibungssprachen (Hardware-Description-Languages, HDL) hier eine Schlüsselstellung zur Spezifikation, Simulation und Synthese erlangt Diese ähneln höheren Programmiersprachen, die ergänzt werden um Sprachkonstrukte zur Formulierung hardware-spezifischer Eigenschaften (z.b. parallele Beschaltung von Komponenten) Vergleichbare Ansatzpunkte, z.b. Wiederverwendbarkeit (IP-Gedanke) Integration von HW/SW-Entwicklung (HW/SW-Codesign) Eine Fülle von Sprachdefinitionen für verschiedene Aufgaben: EDIF (Electronic-Design-Interchange-Format) Austausch von Designdaten zwischen Entwerfer/Hersteller ABEL (Advanced Boolean Expression Language) Beschreibung Boolescher Funktionen zur Programmierung von PALs Verilog, VHDL und SystemC: HDLs zur Beschreibung komplexer Systeme (ASICs/Prozessoren) auf verschiedenen Abstraktionsniveaus (Synthese) Andreas König Folie 9-30

Hardwarebeschreibungssprachen VHDL (Very-High-Speed-Integrated-Circuit-HDL) (z.b. [Smith 01]) Standardisierte HDL: IEEE Standard VHDL Language Reference Manual (IEEE std. 1076-1993) Hier kann nur das grobe Prinzip des Einsatzes von HDLs am Beispiel von VHDL erläutert werden Anwendung und Umgang mit VHDL sind Gegenstand eigener (Fach-) Veranstaltungen, z.b. für den Entwurf Eingebetteter Systeme VHDL erlaubt die hierarchische Beschreibung digitaler Schaltungen und Systeme unter Verwendung dreier prinzipieller Beschreibungsformen: Strukturbeschreibung Prozedurale Beschreibung Datenflußbeschreibung Eine Schaltungskomponente wird durch ihre Schnittstelle (entity) und ihre interne Organisation (architecture) beschrieben Die architecture kann in einer der drei Beschreibungsformen oder einer Mischform ausgeführt werden (Ziel: Simulation oder Synthese?) Andreas König Folie 9-31 Hardwarebeschreibungssprachen Eine Strukturbeschreibung unter Nutzung einer physikalisch unterlegten Bibliothek erlaubt die Umsetzung der VHDL-Beschreibung in einen Schaltkreis (Maskensatz oder Feldprogrammierung) Beispiel einer Strukturbeschreibung für ein Äquivalenzfunktion: x 1 x 2 y x 1 x 2 y Schaltung Symbol entity Aequivalenz is port (x1, x2: in Bit; y: out Bit); end Aequivalenz Schnittstellenbeschreibung Andreas König Folie 9-32

Hardwarebeschreibungssprachen VHDL- Strukturbeschreibung der Äquivalenzfunktion: architecture Strukturbeschreibung of Aequivalenz is component Inv port (a: in Bit; c: out Bit); end component; component Nand2 (a,b: in Bit; c: out Bit); end component; signal x3, x4, x5, x6: Bit; begin g1: Inv port map (x1, x3); g2: Inv port map (x2, x4); g3: Nand2 port map (x1, x2, x5); g4: Nand2 port map (x3, x4, x6); g5: Nand2 port map (x5, x6, y); end Strukturbeschreibung; Andreas König Folie 9-33 Hardwarebeschreibungssprachen VHDL- Verhaltensbeschreibung der Äquivalenzfunktion: architecture Verhaltensbeschreibung of Aequivalenz is begin y <= x1 xnor x2 after 5ns; end Verhaltensbeschreibung; Verhaltensbeschreibung abstrahiert von Struktur, entweder nur simulierbar oder High-Level-Synthese erforderlich Beispiel eines 4:1 Mux: entity VierZuEinsMux is port (d0, d1, d2, d3: in Bit; s: in Integer Range 0 to 3; output: out Bit); end VierZuEinsMux; Andreas König Folie 9-34

Hardwarebeschreibungssprachen Fortsetzung des Beispiel eines 4:1 Mux: entity VierZuEinsMux is port (d0, d1, d2, d3: in Bit; s: in Integer Range 0 to 3; output: out Bit); end VierZuEinsMux; architecture Verhaltensbeschreibung of VierZuEinsMux is begin with s select -- erzeugt 4:1 Mux output <= d0 when 0, d1 when 1, d2 when 2 d3 when 3; end Verhaltensbeschreibung; Andreas König Folie 9-35 Hardwarebeschreibungssprachen Implementierung eines 8-bit synchronen Auf/Abzählers in VHDL: entity UpDownCounter is port (d: in Integer Range 0 to 255; clk, ld, up_down: in Bit; q: out Integer Range 0 to 255); end UpDownCounter; architecture a of UpDownCounter is begin process (clk) variable cnt: Integer Range 0 to 255; variable direction: Integer; begin if (up_down = 1 ) then direction := 1; else direction :=-1; end if; if (clk Event and clk= 1 ) then if ld= 0 then cnt := d; else cnt := cnt +direction; end if; end if; q <= cnt; end process; end a; Andreas König Folie 9-36

Hardwarebeschreibungssprachen Möglichkeit der Beschreibung einer FSM (2 Zustände) [Altera 96]: entity architecture a of FSM2 is entityfsm2 is is type state_type is (s0, s1); signal state : state_type; end endfsm2; begin process (clk) begin if (reset = 1 ) then state <= s0; elsif (clk Event and clk= 1 ) then case state is when s0 => state <= s1; when s1 => if (input = 1 ) state <= s0; else state <= s1; end if; end case; end if; end process; output <= 1 when state = s1 else 0 ; end a; port port (clk, (clk, input, input, reset reset :: in in Bit; Bit; output: output: out outbit); Andreas König Folie 9-37 reset=1 S0 0 1 - S1 1 0 Hardwarebeschreibungssprachen Vorteile einer HDL sollten erkennbar geworden sein Jedoch: Algorithmen und Systeme, z.b. zur Signalverarbeitung, werden typisch in einer Hochsprache wie C/C++ auf programmierbaren GP- Prozessoren oder DSPs entwickelt Umsetzung erfordert Erlernen der HDL bzw. Kooperation zwischen HDL- Designer und Algorithmenentwickler Fehleranfälliger, langsamer und teurer Prozess Testumgebung muss ebenfalls angepasst werden Jede Änderung hat entsprechende Konsequenzen (Aufwand/Kosten/Fehler) Gegenwärtige Entwicklung: Nutzung der Sprache C/C++ mit hardwarebezogenen Erweiterungen als HDL und zur Integration der Arbeitsschritte SystemC hat in kürzester Zeit eine rasante Entwicklung genommen und große industrielle Akzeptanz gefunden Frei verfügbare Entwicklungsumgebung auf Basis normaler C-Compiler Kommerzielle Umgebung von Synopsis mit Synthesewerkzeugen Andreas König Folie 9-38

Synthesemöglichkeiten und Design-Flow Ein Entwurfssystem erlaubt die Umsetzung aus einer Spezifikation, z.b. HDL, in eine physikalische Implementierung Beispiel Entwurfssystem Synario (nach [Seiffart 98]): Project Navigator State CAD VHDL ABEL-HDL SCM Waveform-Editor VHDL-Simulation Verilog-Siumlation Synario Entry Waveform-Viewer Synario Simulate Verilog-XL Functional Simulation Post-Route Simulation Process Design - Link, Compile, Optimize - PlaceRoute, Fit Design Zielsysteme: PLD, CPLD, FPGA Andreas König Folie 9-39 Synthesemöglichkeiten und Design-Flow Im Prinzip war das Zusammenwirken von ESPRESSO und PSPICE bereits ein einfaches Entwurfssystem (mit manuellen Arbeitsschritten) Logikbeschreibung wurde minimiert und die resultierende Ausgangsform in ein Gatternetz verfügbarer Gatter (Technologieanpassung) umgesetzt Stimuli wurden über spezielle Symbole in den Schaltplan zur Simulation eingespeist (z.b. Ansteuerung der Zähler) Die Simulation erfolgte mit Verzögerungsmodellen der Gatter (typ.), ohne Berücksichtigung von Verdrahtung (PlaceRoute auf PCB-Ebene) Zeitdiagramme gaben als Waveform-Display das Ergebnis graphisch aus Synopsis, Cadence, Mentor u.a. liefern entsprechende Werkzeuge für den Entwurf Digitaler Systeme Andreas König Folie 9-40

Synthesemöglichkeiten und Design-Flow Synthese aus HDL Verhaltensbeschreibung Der gezeigte Ablauf sollte nun nachvollziehbar sein Beispiel: Dekoder Automatische Generierung des physik. Designs Andreas König Folie 9-41