Vorlesung Hardware-Beschreibungssprachen Dr.-Ing. S. Arlt Fakultät EI Fachbereich Elektronische Schaltungen und Systeme S. Arlt TUI/EI/ESS HBS 0-1
Vorlesung Hardware-Beschreibungssprachen Kapitel 1 : Einführung S. Arlt TUI/EI/ESS HBS 1-1
Motivation Lücke zwischen Integrationsdichte und Design Steigende Komplexität 1970 Intel CPU 4004 4 Bit, 10µm, 600mm 2, 0, 74MHz, 2, 25k Transistoren 1997 Intel CPU Pentium 2 32 Bit, 0, 35µm, 203mm 2, 300MHz, 7.500k Transistoren 2005 Intel CPU Pentium 4 6xx 64 Bit, 0, 09µm, 135mm 2, 3587, 8MHz, 169.000k Transistoren Abstraktion, Generik Time to Market Intellectual Properties (IP) & Reuse S. Arlt TUI/EI/ESS HBS 1-2
Was ist eine HDL? Modellierungssprachen für die Simulation und Implementierung elektronischer Schaltungen Dokumentationsmittel speziell auf höherem Abstraktionsniveau Übliche HDLs: VHDL, ABEL, Verilog, Altera-HDL, UDL/I Unterschiede zu Hochsprachen wie C, C++, Pascal: Beschreibung von Parallelität strukturelle Beschreibung (Entwurf des Steuer- und Datenflusses) Existenz entsprechender Datentypen für die Modellierung von Signalvektoren und Signalpegeln S. Arlt TUI/EI/ESS HBS 1-3
Anwendungen Spezifikation Verifikation, Modellierung Simulation Synthese Dokumentation S. Arlt TUI/EI/ESS HBS 1-4
Historie VHDL VHSIC Very High Speed Integrated Circuits - Programm des DoD VHDL- Hardware Description Language 1981 erste Anforderungen 1983-1985 VHDL-Entwicklung von Intermetrics, IBM, TI 1987 IEEE Standard 1076-1987 VHDL-87 1991 IEEE Standard 1164 (neunwertige Logik) 1993 IEEE Standard 1076-1993 VHDL-93 1995 IEEE Standards 1076.3 1076.4 S. Arlt TUI/EI/ESS HBS 1-5
Historie Verilog 1985 Verilog- Spache und Simulator von Gateway Automation entwickelt 1985-1989 wachsende Zunahme der Verwendung von Verilog bei ASIC- Herstellern 1989 Verilog wird von Cadence übernommen 1990 Formulierung von Open Verilog International (OVI) 1995 IEEE Standard 1364 S. Arlt TUI/EI/ESS HBS 1-6
Kurzvergleich VHDL bietet mehr lexikalische Elemente (erweiterte Typdefinitionen, Variablen) Vorteile von Verilog liegen bei der Simulation von Netzlisten mit Timingmodellen, ist an C angeleht, keine strenge Typprüfung Die Favorisierung einer Sprache ist bei den heute verfügbaren Simulationsund Synthesewerkzeugen nicht mehr notwendig Europa: ca. 90% Nutzung von VHDL USA: ca.50% Nutzung von VHDL Verilog oft effizienter als VHDL S. Arlt TUI/EI/ESS HBS 1-7
Vorlesung Hardware-Beschreibungssprachen Kapitel 2 : Entwurfsmethodik S. Arlt TUI/EI/ESS HBS 2-1
Systematisierung des Entwurfs Systemebene Verhalten Systemspezifikationen Algorithmen Register-Transfer (RT) Boole`sche Gleichungen algorithmische Ebene funktionale Ebene Logikebene elektr. Ebene Struktur Prozessoren, Speicher Subsysteme Module (ALUs, MUXs, Register) Gatter, Flipflops Differentialgleichungen Transistoren Synthese Struktur Analyse Polygone Abstraktion Subzellen Extraktion Generierung Floorplan Detaillierung Cluster Partitionierung in ICs Geometrie Geometrie Y-Diagramm nach Gajski-Kuhn S. Arlt TUI/EI/ESS HBS 2-2
Entwurfsablauf text VHDL Entry graphic waveform functional simulation VHDL synthesis libraries testbench netlist simulation netlist place & route program data detailed timing simulation netlist timing annotation FPGA fabrication process ASIC VHDL Design Flow S. Arlt TUI/EI/ESS HBS 2-3
Vorlesung Hardware-Beschreibungssprachen Kapitel 3 : Aufbau eines VHDL Modells S. Arlt TUI/EI/ESS HBS 3-1
Grundstruktur eines VHDL Modells Desing Entity Entity Declaration Design Architecture Body S. Arlt TUI/EI/ESS HBS 3-2
Syntax library <library name>[, <library name n>] ; use<library name > [. < package name>]. > all/element name>; entity <entity name> is [generic( < parameter declaration > ); ] port( < input/output declaration > ); [<entity declaration>; ] end[entity] < entity name>; architecture <architecture name> of <entity name> is [<architecture declaration>; ] begin <V HDL statements>; end[architecture] < architecture name>; configuration <configuration name> of <identifier name> is <conf iguration statements> end[conf iguration][<conf iguration name>]; S. Arlt TUI/EI/ESS HBS 3-3
Vorlesung Hardware-Beschreibungssprachen Kapitel 4 : VHDL Sprachelemente S. Arlt TUI/EI/ESS HBS 4-1
VHDL Sprachaufbau Grundzeichenvorrat lexikalische Elemente Sprachkonstrukte Design Einheiten VHDL Modell VHDL-87 7-Bit Zeichensatz VHDL-93 8-Bit ASCII Zeichensatz S. Arlt TUI/EI/ESS HBS 4-2
Lexikalische Elemente = Wörter, lat. Lexeme Kommentare Bezeichner (identifier) Literale Reservierte Wörter S. Arlt TUI/EI/ESS HBS 4-3
Literale Literal= (lat. litera) = Buchstabe Literale sind von einer Programmiersprache definierte Zeichenfolgen zur Darstellung der Werten von Basistypen Abstract Decimal (-Mantisse-Exponent) Based (Basis-Mantisse-Exponent) Integer/Real Character String Bit String S. Arlt TUI/EI/ESS HBS 4-4
Beispiel - Bussysteme 1, 0, Z, X Logik 1, 0, Z, X +V R CC H, 0 Tri State Treiber CMOS Realisierung Open Collector Treiber S. Arlt TUI/EI/ESS HBS 4-5
std ulogic type std ulogic is ( U -- uninitialized X -- forcing unknown, starker unbekannter Wert 0 -- forcing 0 1 -- forcing 1 Z -- high impedanz W -- weak unknown L -- weak 0 H -- weak 1 - ); -- don t care S. Arlt TUI/EI/ESS HBS 4-6
Resolution Function U X 0 1 Z W L H - U U U 0 U U U 0 U U X U X 0 X X X 0 X X 0 0 0 0 0 0 0 0 0 0 1 U X 0 1 X X 0 1 X Z U X 0 X X X 0 X X W U X 0 X X X 0 X X L 0 0 0 0 0 0 0 0 0 H U X 0 1 X X 0 1 X - U X 0 X X X 0 X X S. Arlt TUI/EI/ESS HBS 4-7
Synthese mit std logic und std ulogic library ieee; use ieee.std_logic_1164.all; entity stdlog is port(en1, en2, data1, data2 : in std_logic; data_bus : out std_logic); end stdlog; architecture rtl of stdlog is begin data_bus <= data1 when en1 = 1 else Z ; data_bus <= data2 when en2 = 1 else Z ; end rtl; library ieee; use ieee.std_logic_1164.all; entity stdulog is port(en1, en2, data1, data2 : in std_ulogic; data_bus : out std_ulogic); end stdulog; architecture rtl of stdulog is begin data_bus <= data1 when en1 = 1 else Z ; data_bus <= data2 when en2 = 1 else Z ; end rtl; en1 data1 en2 data2 data_bus Beispiel: en1 = 1 ; data1 = 0 ; en2 = 0 ; 0 Z data_bus = 0 Fehler!! S. Arlt TUI/EI/ESS HBS 4-8
Slice Names vec4 3 2 1 0 vec8 7 6 5 4 3 2 1 0 vec4 <= vec8(5 downto 2); S. Arlt TUI/EI/ESS HBS 4-9
VHDL Shift Operationen S. Arlt TUI/EI/ESS HBS 4-10
Nachbildung einer Shift Operation X 7 6 5 4 3 2 1 0 Y 7 6 5 4 3 2 1 0 0 0 S. Arlt TUI/EI/ESS HBS 4-11
Bedingte Signalzuweisung Resultierender Multiplexer: a c b 00 01 10 11 2 addr q S. Arlt TUI/EI/ESS HBS 4-12
Verzögerungsmodelle 0 10 20 30 40 50 60 70 80 [ns] a b c d 12 ns S. Arlt TUI/EI/ESS HBS 4-13
Simulationsergebnis clk num 0 1 2 3 4 5 sum 0 2 3 4 5 6 vec_q0 0 2 3 4 5 vec_q1 0 2 3 4 5 6 t clk num 0 1 2 3 4 5 sum 0 1 2 3 4 5 vec_q0 0 1 2 3 4 vec_q1 0 1 2 3 4 t S. Arlt TUI/EI/ESS HBS 4-14
Vorlesung Hardware-Beschreibungssprachen Kapitel 5 : Entwurfsbeispiele S. Arlt TUI/EI/ESS HBS 5-1
Johnson Zähler Q 0 Q 1 Q 2 Q 3 D Q D Q D Q D Q CLK S. Arlt TUI/EI/ESS HBS 5-2
Transparent Latch en d & & q & & q S. Arlt TUI/EI/ESS HBS 5-3
Schieberegister ld_val(4:0) 0 D Q D Q D Q D Q D Q ser_out clk ld_shift 0 1 2 3 4 S. Arlt TUI/EI/ESS HBS 5-4
7-Segment-Anzeige f e a g d b c +V cc 7 7 S. Arlt TUI/EI/ESS HBS 5-5