VHDL Einführung 1
Transcription
VHDL Einführung 1
Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen VHDL Einführung 1 Marc Reichenbach und Michael Schmidt Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/12 1 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Gliederung Überblick zu VHDL Vergleich VHDL/Verilog Designflow Aufbau einer VHDL-Beschreibung Architektur-Beschreibungen Signale vs. Variablen 2 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Überblick zu VHDL • grafische Schaltplaneingabe auf Logikelementebene kritisch • starker Anstieg der Entwurfskomplexität • "Time to market" • deswegen Hardwarebeschreibung durch Hochsprachen • Vorteil: einheitliche Beschreibung für Simulation und Synthese • etablierte Modellierungssprachen: • Verilog (amerik. Markt) • VHDL (europ. Markt) • mittlerweile steigender Anteil von SystemC, SystemVerilog (für Systemmodellierung und Systemverifikation) 3 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Überblick zu VHDL • VHDL unter IEEE-Norm 1076 in 1987, 1993, 2000, 2002 und 2008 standardisiert • synthesefähiger Anteil unter 1076.6 standardisiert !! • VHDL ist eine Modellierungssprache, keine Programmiersprache • Kleinschreibung üblich (aber Unterschiede in der Literatur!) 4 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Überblick zu VHDL • Kommentare werden in VHDL mit “ − −“ erstellt (seit 2008 Blockkommentar möglich) • vollständige VHDL-Anweisungen mit “; “ abgeschlossen • Signalzuweisungen erfolgen mit “ <= “ Operator • Variablenzuweisungen erfolgen mit “ := “ Operator • einzelne Signalwerte mit einzelnen Anführungeszeichen (0 00 ) • Vektoren mit doppelten Anführungszeichen (”0001”) 5 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Vergleich VHDL/Verilog [1] • gleichwertige Modellierung von Hardware-Komponenten • allerdings leicht versetzte Abdeckung über den Verhaltensebenen 6 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Vergleich VHDL/Verilog [1] • VHDL: Vielzahl von Datentypen (sprach- und benutzerdefiniert) • Verilog: nur sehr einfache sprachdefinierte Datentypen • Verilog: kein Konzept für Packages (für wiederverwendete Datentypen, Funktionen) oder Bibliotheken → interpretierende Sprache • Verilog ist für Beginner einfacher zu erlernen 7 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Vergleich VHDL/Verilog [1] • VHDL erscheint zunächst komplizierter (stark typisiert, mehrere Modellierungswege) → jedoch mächtig für fortgeschrittene Benutzer • VHDL: mehr Konstrukte für High-Level Modellierungen • Verilog: Möglichkeit auch Basiszellen (ASIC, FPGA) zu modellieren (in VHDL über VITAL Standard) • Verilog: Explizite Unterscheidung zwischen Registern und Verbindungen • VHDL ist an ADA angelehnt, Verilog stärker an C 8 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Designflow • Wie kommt man vom HDL Code zur tatsächlichen Hardware (FPGA, ASIC)? • Designflow beschreibt Abbildungsschritte • oft Unterschiede in Abhängigkeit von der verwendeten Tool-Chain 9 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Vereinfachter Allgemeiner Designflow VHDL-Code Constraints Schaltplan Testbench Funktionale Simulation Synthese Translation Floorplanning, Layout Implementierung Map Place & Route Timing Analyse, DRC Checks Konfigurationsdatei Tapeout FPGA ASIC Zeitbehaftete Simulation 10 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Synthese • auch Logik-Synthese genannt • Übersetzung des HDL Codes in architektur-spezifische Netzliste • Netzliste auf Register-Transfer Ebene (RTL) Kombinatorische Logik D CLK Q Kombinatorische Logik D Q Kombinatorische Logik CLK clk 11 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Implementierung • Abbildung der Netzliste auf Zieltechnologie • Bibliothekselemente einer ASIC-Bibliothek • Bibliothekselemente eines FPGA-Devices • Abschätzung von Zeitinformationen für zeitbehaftete Simulation • SDF (Standard Delay Format) 12 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Prinzipieller Aufbau einer VHDL-Beschreibung −− B i b l i o t h e k e n e i n b i n d e n l i b r a r y <Name>; −− z . B . B i b l i o t h e k s n a m e o d e r WORK−V e r z . use <Name>.[<Name>. . . . ] ( < B e z e i c h n e r >| a l l ) ; −− S c h n i t t s t e l l e d e r Komponente d e f i n i e r e n e n t i t y <E n t i t y n a m e > i s [ g e n e r i c (< D e k l a r a t i o n von P a r a m e t e r n > ) ; ] p o r t (< D e k l a r a t i o n d e r Ein− und Ausgaenge >); [< E n t i t y d e k l a r a t i o n e n > ; ] end <E n t i t y n a m e >; −− F u n k t i o n a l e s V e r h a l t e n d e r Komponente b e s c h r e i b e n a r c h i t e c t u r e <A r c h i t e k t u r n a m e > o f <E n t i t y n a m e > i s [< A r c h i t e k t u r d e k l a r a t i o n e n > ; ] begin {<VHDL−Anweisungen >;} end <A r c h i t e k t u r n a m e >; 13 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Prinzipieller Aufbau einer VHDL-Beschreibung −− o p t i o n a l d i e K o n f i g u r a t i o n f e s t l e g e n −− w i c h t i g b e i m e h r e r e n A r c h i t e k t u r b e s c h r e i b u n g e n −− zu e i n e r E n t i t y c o n f i g u r a t i o n <K o n f i g u r a t i o n s n a m e > o f <E n t i t y n a m e > i s f o r <A r c h i t e k t u r n a m e > { f o r <Komponente> <B i n d u n g s a n w e i s u n g e n >; end f o r ; } end f o r ; end [ c o n f i g u r a t i o n ] [< K o n f i g u r a t i o n s n a m e > ] ; 14 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Beispiel einer VHDL-Beschreibung −− e i n f a c h e s B e i s p i e l : AND−G a t t e r m i t 2 E i n g a e n g e n l i b r a r y ieee ; use i e e e . std_logic_1164 . a l l ; −− f u e r D a t e n t y p STD_LOGIC , s p a e t e r mehr . . . −− S c h n i t t s t e l l e e i n e s AND2−G a t t e r s e n t i t y AND2 i s port ( a : in std_logic ; b : in std_logic ; o : out s t d _ l o g i c ) ; end AND2 ; −− F u n k t i o n a l e s V e r h a l t e n d e s G a t t e r s a r c h i t e c t u r e b e h a v i o r o f AND2 i s begin o <= a and b ; end b e h a v i o r ; 15 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen use • für Einbinden von Bibliothekselementen oder eigene Paketen • es kann jeder Name eines Paketes oder einer Bibliothek sichtbar gemacht werden • Wichtig: Bibliotheken vor JEDER entity einbinden! • mit Hilfe von all, werden alle Sub-Elemente sichtbar • Vorsicht mit all: auf Abhängigkeiten achten!!! 16 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen use −− a l l e E l e m e n t e d e s P a k e t e s s t d _ l o g i c _ 1 1 6 4 a u s −− d e r B i b l i o t h e k i e e e , z . B . D a t e n t y p s t d _ l o g i c l i b r a r y ieee ; use i e e e . std_logic_1164 . a l l ; −− a l l e E l e m e n t e d e s P a k e t e s own_package use work . own_package . a l l ; 17 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen entity • Schnittstelle eines VHDL-Funktionsblockes nach außen (vergleichbar mit PINs eines IC-Gehäuses) −− S c h n i t t s t e l l e d e r Komponente d e f i n i e r e n e n t i t y <E n t i t y n a m e > i s [ g e n e r i c (< D e k l a r a t i o n von P a r a m e t e r n > ) ; ] p o r t (< D e k l a r a t i o n d e r Ein− und Ausgaenge >); [< E n t i t y d e k l a r a t i o n e n > ; ] end <E n t i t y n a m e >; • generic: zur Festlegung generischer Parameter für die Komponente (z.B. einen Parameter für die Busbreite) 18 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen entity • Deklaration der Anschlüsse erfolgt über port-Anweisung • Datentyp und Richtung der Ports (in, out, inout, buffer, linkage) muss festgelegt werden • Anschlüsse werden mit Signalen verbunden, für • Kommunikation nach außen (z.B. anderen Komponenten) • Kommunikation innerhalb der Komponente • WICHTIG: Variablen sind keine Signale! (später mehr) 19 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen architecture • beschreibt das Verhalten eines VHDL-Moduls zu einer Entity • verschiedene Möglichkeiten der Beschreibung (Unterschiede in Literatur) • Strukturbeschreibung → Istanziierung und Verbindung von Komponenten • Verhaltensbeschreibung • Prozessbeschreibung → Funktionalitätsbeschreibung mit Prozessen • Datenflussbeschreibung → parallele Signalzuweisungen von booleschen Gleichungen 20 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Strukturbeschreibung • Verwendung von bereits vorhandenen VHDL-Modulen oder Bibliothekselementen • zuerst Deklaration der Komponenten-Schnittstelle • danach Instanziierung der Komponente im architecture-body component <E n t i t y n a m e > [ g e n e r i c (< P a r a m e t e r −D e k l a r a t i o n e n >); ] p o r t ( I /O−D e k l a r a t i o n e n ) ; end component ; 21 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Strukturbeschreibung <I n s t a n z b e z e i c h n e r >: <E n t i t y n a m e > [ g e n e r i c map (< P a r a m e t e r −Z u w e i s u n g e n >) ] p o r t map (< P o r t z u w e i s u n g e n >); • jede Instanz erhält eine Bezeichnung zur Referenzierung • port map: Verknüpfung der Instanz mit der Schnittstelle der Hauptkomponente und/oder internen Signalen • generic map (optional): Übergabe von Parametern an die Instanz (später mehr dazu, z.B. bei der Verwendung interner FPGA-Komponenten) 22 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Strukturbeschreibung −− AND−G a t t e r m i t 3 E i n g a e n g e n m i t H i l f e von 2 x AND2 l i b r a r y ieee ; use i e e e . std_logic_1164 . a l l ; −− S c h n i t t s t e l l e d e s AND3−G a t t e r s e n t i t y and3 i s port ( a : in std_logic ; b : in std_logic ; c : in std_logic ; o : out s t d _ l o g i c ) ; end and3 ; a r c h i t e c t u r e b e h a v i o r o f and3 i s component AND2 i s port ( a : in std_logic ; b : in std_logic ; o : out s t d _ l o g i c ) ; end component ; 23 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Strukturbeschreibung s i g n a l out_zw : s t d _ l o g i c ; begin −− 1 . I n s t a n z u1 d e s AND2−G a t t e r s und P o r t Mapping u1 : AND2 p o r t map( a, b, out_zw ) ; −− 2 . I n s t a n z u1 d e s AND2−G a t t e r s und P o r t Mapping u2 : AND2 p o r t map( c, out_zw , o); end b e h a v i o r ; 24 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Strukturbeschreibung • resultiernde Schaltung der AND3-Komponente 25 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Datenflussbeschreibung • Spezialfall der Verhaltensbeschreibung, in der Literatur oft nicht explizit definiert/unterschieden • Modellierung des Datenflusses über kombinatorische logische Funktionen ohne Prozesse • alle Signalzuweisungen einer Datenflussbeschreibung verhalten sich nebenläufig 26 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Datenflussbeschreibung e n t i t y RSFF i s port ( s , r : in std_logic ; q , nq : out s t d _ l o g i c ) ; end RSFF ; a r c h i t e c t u r e d a t a f l o w o f RSFF i s −− Z w i s c h e n s i g n a l e e i n f u e g e n ( A u s g a e n g e q , nq n i c h t l e s b a r ) s i g n a l nq_zw : s t d _ l o g i c ; s i g n a l q_zw : s t d _ l o g i c ; begin q_zw <= r nor nq_zw ; nq_zw <= s nor q_zw ; q <= q_zw ; nq <= nq_zw ; end d a t a f l o w ; 27 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Datenflussbeschreibung • Synthese-Ergebnis der Datenflussbeschreibung • Problem dieser Schaltung? 28 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Prozessbeschreibung • Beschreibung des Verhaltens mit Hilfe von Prozessen • Prozesse ermöglichen die Modellierung sequentieller Anweisungen (Verzweigungen, Schleifen, usw.) • Allgemeine Prozess-Beschreibung: [< P r o z e s s n a m e > : ] p r o c e s s [ ( S e n s i t i v i t a e t s l i s t e ) ] <D e k l a r a t i o n e n > begin {< S e q u e n t i e l l e Anweisungen >} end p r o c e s s [< P r o z e s s n a m e > ] ; 29 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Prozessbeschreibung • Prozess muss Sensitivitätsliste enthalten oder wait-Anweisungen • Sensitivitätsliste • Signale durch Kommata getrennt • Signale der Liste → starten Prozessbearbeitung durch Simulator → aktivieren die durch Prozess abgebildete HW • und zwar wenn eines der Signal sich ändert (”Event”) • ohne Sensitivitätsliste (wait-Anweisungen) • nicht synthesefähig (z.B. für Simulation) w a i t f o r 20 n s ; • synthesefähig w a i t u n t i l c l k = ’1 ’ and c l k ’ e v e n t ; 30 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Prozessbeschreibung • für synthesefähige Prozesse werden Prozesse mit Sensitivitätsliste empfohlen (REICHARDT) • ABER: wait-Anweisungen vorallem sinnvoll für einfache Testbenches (keine Synthesefähigkeit benötigt) • Verwendung eines Prozessnamens ist optional • Deklarationsteil kann eigene Datentypen, Konstanten oder Variablen enthalten • funktionales Verhalten wird zwischen begin und end process; definiert 31 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Prozessbeschreibung • mehrere Prozesse innerhalb einer architecture verhalten sich nebenläufig • im Simulator werden sequentiellen Anweisungen nacheinander abgearbeitet (wie in einer Programmiersprache) • Abarbeitung im Simulator in “unendlich“ kleiner Zeit • ein Synthesewerkzeug versucht diese seq. Anweisungen auf Hardwarefunktionselemente abzubilden 32 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Prozessbeschreibung • in Prozessen sind unbedingte Signalzuweisungen erlaubt, selektive und bedingte Zuweisungen hingegen nicht (dort z.B. mit if then else arbeiten!) • wichtig: Aktualisierung der Signalzuweisungen immer erst am Prozessende!!! • Problem: während Prozessausführung nicht auf aktuelle Werte zugreifbar → dafür gibt es Variablen 33 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Architektur-Beschreibungsformen in der Praxis • Mischung der verschiedenen Beschreibungsformen • Strukturbeschreibung für Modul- und Hierarchiebildung • Funktionalität über Verhaltens- und Datenflussbeschreibung • die Strukturbeschreibung ermöglicht u.a. auch das Einbinden sogenannter Hard-Macros im FPGA (Multiplizierer, BRAM,...) 34 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Signale, Variablen und Konstanten • Unterscheidung für VHDL-Beginner oft schwierig • Signale kann man prinzipiell als Verbindungen ansehen • für externe und interne Anbindung von Komponenten, Funktionsblöcken • Ports einer Entity werden auch wie Signale behandelt • Signale müssen eindeutigen Namen und Typen innerhalb eines VHDL-Moduls haben 35 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Signale, Variablen und Konstanten • Definition von Signalen erfolgt im Architektur-Deklarationsteil ... architecture ... −− e i n f a c h e s S i g n a l s i g n a l a : b i t ; −− 0 o d e r 1 s i g n a l b : s t d _ l o g i c ; −− N e u n w e r t i g e L o g i k ( e m p f o h l e n ! ) −− S i g n a l v e k t o r e n s i g n a l c : s t d _ l o g i c _ v e c t o r ( 7 downto 0 ) ; s i g n a l d : s t d _ l o g i c _ v e c t o r ( 0 to 1 5 ) ; −− I n i t i a l i s i e r u n g ( n i c h t e m p f o h l e n ! ) −− n u r S i m u l a t i o n , NICHT SYNTHETISIERBAR ! s i g n a l e : s t d _ l o g i c := ’ 0 ’ ; begin ... 36 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Signale, Variablen und Konstanten • Signalzuweisung über “<=“ Operator • Unbedingte Signalzuweisung: ... s i g n a l a : std_logic ; s i g n a l b : s t d _ l o g i c _ v e c t o r ( 1 5 downto 0 ) ; ... begin −− B e i s p i e l e u n b e d i n g t e S i g n a l z u w e i s u n g e n a <= b ( 6 ) ; a <= ’ 1 ’ ; b <= " 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 " ; 37 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Signale, Variablen und Konstanten • Bedingte Signalzuweisung: [< B e z e i c h n e r > : ] <S i g n a l n a m e > <= <L o g i s c h e r _ A u s d r u c k _ 1 > when <Bedingung_1> e l s e [ <L o g i s c h e r _ A u s d r u c k _ 2 > when <Bedingung_2> e l s e ] −− . . . <l o g i s c h e r _ A u s d r u c k _ n >; −− B e i s p i e l : o u t p u t <= a when c o n t r o l = ’ 0 ’ e l s e b when c o n t r o l = ’ 1 ’ e l s e ’0 ’; • führt zu Prioritäts-Encoder (Verschachtelung von Gattern) • vergleichbar mit if then else - Konstrukt 38 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Signale, Variablen und Konstanten • Selektive Signalzuweisung: [ Bezeichner : ] w i t h <S i g n a l k o m b i n a t i o n > s e l e c t <S i g n a l n a m e > <= <L o g i s c h e r _ A u s d r u c k _ 1 > when <S i g n a l w e r t _ 1 >, [< L o g i s c h e r _ A u s d r u c k _ 2 > when <S i g n a l w e r t _ 2 >] , −− . . . [< L o g i s c h e r _ A u s d r u c k _ n > when o t h e r s ] ; −− B e i s p i e l : M u l t i p l e x e r , S i g n a l e x und y , e i n S t e u e r s i g n a l z −− und d e r Ausgang o u t p u t vom Typ s t d _ l o g i c g e g e b e n MUX2 : w i t h z s e l e c t o u t p u t <= x when ’ 0 ’ , y when ’ 1 ’ , ’ 0 ’ when o t h e r s ; • Auswahl aus einer Reihe gleichberechtigter Möglichkeiten (Multiplexerstruktur) 39 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Signale, Variablen und Konstanten • Konstanten und Variablen bestehen aus Name, Type und optional einem Initialwert • Konstanten z.B. für generische Parameter in Packages • Variablen werden normalerweise im Prozess-Deklarationsteil definiert • Ausnahme: shared variable (von mehreren Prozessen benutzbar) • Variablen-Zuweisung mit “:=“ Operator c o n s t a n t r e g i s t e r w i d t h : i n t e g e r := 3 2 ; c o n s t a n t P I : r e a l := 3 , 1 4 1 5 9 2 6 5 ; v a r i a b l e n ,m: i n t e g e r := 3 2 ; 40 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Datentypen std_logic und std_ulogic • für HW-Entwurf sind Elemente ’0’ und ’1’ des Datentyps BIT nur unzureichend • keine Möglichkeit Signale auf hochohmig zu legen (z.B. wichtig für Busse, wie beispielsweise I 2 C ) • für ASIC-Entwurf ist auch eine Unterscheidung in schwache und starke Signale notwendig • aus diesem Grund gibt es den Datentyp std_logic (9-wertige Logik) • ursprünglich in VHDL nicht vorgesehen, deshalb die Bibliothek ieee.std_logic_1164 einbinden 41 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Datentypen std_logic und std_ulogic • Werte: • ’U’: nicht initialisiert (im Simulator) • ’X’: undefiniert (Simulator erkennt Buskonflikt) • ’0’: starke logische ’0’ • ’1’: starke logische ’1’ • ’Z’: hochohmig (Tri-State Ausgang) • ’W’: schwach unbekannt (Buskonflikt zw. ’L’ und ’H’) • ’L’: schwache logische ’0’ • ’H’: schwache logische ’1’ • ’-’: Don’t Care (Zustand bedeutungslos, für Minimierung verwendbar) 42 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Datentypen std_logic und std_ulogic • bei std_logic können mehrere Treiber für ein Signal existieren (z.B. wichtig für bidirektionale Busse mit mehreren Sendern) • Auflösungsfunktion entscheidet, welches Signal sich durchsetzt (ist in IEEE 1164 als Tabelle gespeichert) • Datentyp std_ulogic (u für unresolved): Signale dürfen nur in einem Prozess, bzw. einer nebenläufigen Anweisungen eine Wertzuweisung erfahren • std_ulogic ist weniger flexibel, dadurch aber Erkennung versehentlicher Mehrfachzuweisungen (Fehlermeldung im Simulator) 43 / 44 Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen Literatur Bücher • VHDL-Synthese, Jürgen Reichardt, Bernd Schwarz, 5. Auflage, Oldenbourg Wissenschaftsverlag GmbH, 2009, ISBN 978-3-486-58987-0 • The Designer’s Guide to VHDL, P.J. Ashenden, 3. Auflage, Morgan Kaufmann Publisher, 2008, ISBN 978-0-12-088785-9 Paper • [1] VHDL & Verilog Compared & Contrasted - Plus Modeled Example Written in VHDL, Verilog and C, Douglas J. Smith, 33rd Design Automation Conference, Las Vegas, 1996 44 / 44