Aufrufe
vor 5 Jahren

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Kapitel 4 Weitere Datentypen und zugehörige Packages Elektrotechnik und Informatik Im VHDL-Standard sind nur wenige Datentypen definiert. Darüberhinaus sind die Datentypen des 1076-Standards in der Praxis für die Modellierung, die Simulation und die Synthese von logischen Komponenten nicht ausreichend. Beim Datentyp bit gibt es beispielsweise nur die beiden Logikwerte 0 und 1, d.h. es kann kein hochohmiger Zustand modelliert werden. Für den Datentyp bit gibt es auch keine uninitialisierten Signale oder unbekannte Signalwerte. Auf dem Datentyp integer sind beispielsweise weder logische Funktionen definiert, noch ist es möglich, einzelne Bits zu lesen oder zu überschreiben. Aus diesen u.a. Gründen wurden (außerhalb des VHDL 1076-Standards) weitere Datentypen definiert, die im folgenden erläutert werden. 4.1 Datentyp std_ulogic und abgeleitete Typen Um Hardware realitätsnäher modellieren zu können, als dies mit den Datentypen des VHDL-Standards möglich ist, wurden vom IEEE die Datentypen des Packages std_logic_1164 definiert. Die in diesem Package definierten Datentypen werden standardmäßig in der Industrie verwendet. Für die Verwendung des Packages in VHDL-Modellen muß es durch folgende Anweisungen eingebunden werden: LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; Im Mittelpunkt des Packages std_logic_1164 steht der Datentyp std_ulogic (u steht für „unresolved“), der auf einer 9-wertigen Logik aufbaut. Aus diesem Datentyp werden weitere Datentypen abgeleitet. Der Datentyp std_ulogic ist als Aufzähltungsyp wie folgt deklariert: WEITERE DATENTYPEN 111

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik TYPE std_ulogic IS ( ’U’, -- Uninitialized Die Signalwerte haben folgende Bedeutung: ’X’, -- Forcing Unknown ’0’, -- Forcing 0 ’1’, -- Forcing 1 ’Z’, -- High Impedance ’W’, -- Weak Unknown ’L’, -- Weak 0 ’H’, -- Weak 1 ’-’ -- Don’t care ) ; - Die starken Signalwerte (’0’, ’1’ und ’X’) werden für Technologien gebraucht, die aktiv die Pegel ’High’ und ’Low’ nutzen (z.B. CMOS und BiCMOS). - Schwache Signale (’L’, ’H’ und ’W’) dienen für Technologien mit schwach treibenden Ausgangsstufen (z.B. für NMOS-Logik). - Mit dem Signalwert ’Z’ können Tri-State-Ausgänge modelliert werden. - Der Wert ’U’ kennzeichnet uninitialisierte Signale (Defaultwert). - Der Wert ’-’ dient für die Modellierung von „don’t cares“. Um ein Signal definiert von zwei oder mehr Quellen treiben lassen zu können, muß der resultierende Signalwert für alle möglichen Kombinationen spezifiziert werden. Für die Festlegung der resultierenden Signalwerte wurde eine spezielle Auflösungsfunktion (resolution function) definiert. Signale, auf die diese Funktion angewendet wird, nennt man aufgelöst („resolved“). Der zum Datentyp std_ulogic zugehörige aufgelöste Datentyp ist std_logic. Er ist wie folgt definiert: SUBTYPE std_logic IS resolved std_ulogic; Das Package std_logic_1164 stellt für die skalaren Typen std_ulogic und std_logic auch die zugehörigen unbeschränkten Feldtypen std_ulogic_vector und std_logic_vector sowie weitere Untertypen zur Verfügung: TYPE std_ulogic_vector IS ARRAY (natural RANGE ) OF std_ulogic; TYPE std_logic_vector IS ARRAY (natural RANGE ) OF std_logic; SUBTYPE X01 IS resolved std_ulogic RANGE ’X’ TO ’1’ ; SUBTYPE X01Z IS resolved std_ulogic RANGE ’X’ TO ’Z’ ; SUBTYPE UX01 IS resolved std_ulogic RANGE ’U’ TO ’1’ ; SUBTYPE UX01Z IS resolved std_ulogic RANGE ’U’ TO ’Z’ ; WEITERE DATENTYPEN 112

Verification.pdf
VHDL Kompakt - CES
Schaltungsdesign mit VHDL
VHDL Einführung
VHDL Design Guidelines