Aufrufe
vor 5 Jahren

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik Die Prozeduren READ und WRITE sind mehrfach überladen, d.h. es können Objekte mit verschiedenen Datentypen innerhalb der Zeilen (line_object_name) gelesen bzw. geschrieben werden. Die möglichen Typen im Package std.textio sind bit, bit_vector, time, integer, boolean, real, character und string. Für Objekte vom Typ std_logic bzw. std_logic_vector muß das Pakkage ieee.std_logic_textio verwendet werden. Hierfür muß es zunächst verfügbar gemacht werden. Für das Lesen und Schreiben von Textfiles existieren zahlreiche Varianten für die o.g. Prozeduren (Details siehe Package). Weiterhin gibt es die Funktion ENDLINE (line_object_name) zur Überprüfung auf erreichtes Zeilenende. Beispiel: Die folgende Testbench (die für eine beliebige kombinatorische Schaltung mit drei Eingängen und einem Ausgang eingesetzt werden kann) validiert ein AND-Gatter mit 3 Eingängen. Die Testbench liest Stimuliwerte, erwartete Antworten und Zeitvorgaben aus einer Datei „stimres“. Bei Abweichungen zwischen den Ist- und Soll-Werten werden Fehlermeldungen in die Datei „errors“ geschrieben. Aufbau der Datei „stimres“: a 0 1 ns b 0 1 ns c 0 1 ns r 0 2 ns a 1 5 ns b 0 5 ns c 0 5 ns r 0 6 ns ... Dargestellt sind zwei Stimuli-Antwort-Paare. Die Zeilen mit den Buchstaben a, b und c am Anfang sind die Zeilen für die Stimulidaten. Die Zeilen mit dem Buchstaben r enthalten die erwarteten Antworten. Die Zeitangaben dienen zur Steuerung der Simulation. Die Zeilen in der Datei „stimres“ haben folgenden Aufbau: 1. Signalname (vom Typ character) 2. Leerzeichen 3. Signalwert (vom Typ std_logic) 4. Leerzeichen 5. Zeitangabe der Zuweisung (vom Typ time) VHDL - SIMULATION 107

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik Testbench für die Simulation eines AND3-Gatters: -------------------------------------------------------------- LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_TEXTIO.ALL; USE STD.TEXTIO.ALL; ENTITY tb_3pin IS END tb_3pin; -------------------------------------------------------------- ARCHITECTURE arch_tb_3pin OF tb_3pin IS SIGNAL a,b,c,r,y: std_logic; COMPONENT mut_socket PORT (a,b,c: IN std_logic; END COMPONENT; y : OUT std_logic); FILE stimres : text OPEN read_mode IS "stimres"; FILE errors : text OPEN write_mode IS "errors"; BEGIN model_under_test: mut_socket PORT MAP (a,b,c,y); ------------------------------------------------------------ -- Stimulis und Antworten aus der Datei stimres lesen ------------------------------------------------------------ read_stimuli_and_responses: PROCESS VARIABLE Zeile : line; VARIABLE read_ok: boolean; VARIABLE Zeit : time; VARIABLE Signalname : character; VARIABLE space : character; VARIABLE data : std_logic; BEGIN WHILE NOT endfile(stimres) LOOP -- Lese Zeile READLINE (stimres, Zeile); VHDL - SIMULATION 108

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