VHDL-Einführung. Universität Hamburg MIN Department Informatik Eingebettete Systeme: VHDL-Einführung

Ähnliche Dokumente
VHDL-Einführung / HDL-Übersicht

Entwurf und Verifikation digitaler Systeme mit VHDL

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

Hardware Praktikum 2008

VHDL Verhaltensmodellierung

Einführung in die technische Informatik

EHP Einführung Projekt A

VHDL Verhaltensmodellierung

Einführung in VHDL (2)

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

Simulation von in VHDL beschriebenen Systemen

Einstellige binäre Addierschaltung (Addierer)

N. Schmiedel, J. Brass, M. Schubert VHDL Formelsammlung FH Regensburg, VHDL Formelsammlung

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

Übersicht. Prof. Dr. B. Lang, HS Osnabrück Konstruktion digitaler Komponenten, 3. Hierarchischer und generischer VHDL-Entwurf - 1 -

Entwurf und Simulation einfacher Logikelemente

Architecture Body Funktionale Beschreibung einer "Design Entity" - * beschreibt die Funktion auf Verhaltens-, Struktur- oder Datenfluss-Ebene

VHDL-Syntax F. Schubert 09/08. Prof. Dr. F. Schubert. Hochschule für Angewandte Wissenschaften Hamburg VHDL-SYNTAX. 09/2008 Sbr

SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

2. Einführung in VHDL

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Übungsblatt 8 Lösungen:

Praktikum Systementwurf mit VHDL HDL Design Lab

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Entwurf digitaler Systeme mit VHDL-1076

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign"

4.Grundsätzliche Programmentwicklungsmethoden

Technische Grundlagen der Informatik Kapitel 3. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

VBA-Programmierung: Zusammenfassung

Einführung in VHDL. Dipl.-Ing. Franz Wolf

3. Prozesse in VHDL 1

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

1 Hardwareentwurf. 1.1 Grundlagen

Tutorium für Fortgeschrittene

Einführung in VHDL. 1 ARCHITECTURE Tauschen OF B e i s p i e l IS. 2 SIGNAL a, b : STD_LOGIC; 4 BEGIN. 5 PROCESS( a, b ) 6 BEGIN.

VHDL-Synthese digitaler Systeme Lösungen zu den Übungsaufgaben

Eine blinkende LED mit Xilinx ISE 13: das Hello World! der Hardware.

Modul 122 VBA Scribt.docx

Gliederung dieser Einführung in VHDL

EXCEL VBA Cheat Sheet

Praktium Systementwurf mit VHDL HDL Design Lab. Lehrstuhl für Entwurfsautomatisierung Technische Universität München

Programmieren I. Kapitel 5. Kontrollfluss

1 Grundlagen von VHDL

8 Zugriffstypen ( Zeiger )

VHDL. D. Neuhäuser, G. Grune (W. Koch) Einleitung. Entity. Architecture. Sequenziell Strukturell. Packages

Aufgaben und Lösungen

Android-Apps Gegenüberstellung Delphi java

Einführung in die Programmierung mit VBA

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Einführung in den HDL- gestützten Schaltungsentwurf Einführung in VHDL

VHDL Syntax V1.0. F. Wolf

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

VHDL Kurzbeschreibung

1. Einleitung. 2. Aufgabenstellung. R. Bartholomä, Prof. F. Kesel, Prof. T. Greiner Fachhochschule Pforzheim, Tiefenbronnerstraße 65, Pforzheim

Welche Informatik-Kenntnisse bringen Sie mit?

Wozu Verifikation? Der Entwurf eines 1 million gate ASIC benötigt ca Mann Tage Quality Assurance benötigt 50% der Zeit/des Geldes

VHDL Kompakt. Andreas Mäder. Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Fachbereich Informatik

Digitales Hardwaredesign mit VHDL und FPGAs

Hardware/Software Co-Design

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Design Compiler. VHDL Kurzbeschreibung und in dem SYNOPSYS

2. Praktische Übung zur Vorlesung Grundlagen der Technischen Informatik. Entwurf eines digitalen Weckers

Klausur zur Vorlesung

Schaltungsdesign mit VHDL. Gunther Lehmann, Bernhard Wunder, Manfred Selz

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Im Innersten besteht jede digitale Hardwareschaltung aus kombinatorischer Logik und speichernden Elementen.

VHDL Simulation. in ORCAD

Einführung in ModelSim

Simulation von Gatternetzlisten VHDL und Mixed-mode

Systembeschreibung und Entwurf

Einführung in Ada. Andreas Krennmair. 14. Mai Zusammenfassung

Hardwarepraktikum WS05/06

6 Systematisches Testen von Programmen

Prozedurale Datenbank- Anwendungsprogrammierung

Teil C Anwendung von VHDL

Erfahrungen mit VHDL-AMS bei der Simulation heterogener Systeme

Zeon PDF Driver Trial

5.2 Endliche Automaten

Informatik I Übung, Woche 40

Formal methods for fun and profit VHDL. Ilja Kipermann. Sommersemester Leitung Jun. Prof. Beckert. Universität Koblenz-Landau

Einführung in VHDL. Begleitmaterial zur Vorlesung Rechnerarchitektur im Wintersemester 2012/13

Praktikum Rechnerarchitektur. Seite 1 Prof. Dr.-Ing. Ulrich Schmidt 2011 Praktikum Rechnerarchitektur

Der Toy Rechner Ein einfacher Mikrorechner

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache

Werkzeuge zur Programmentwicklung

Schritt 1 : Das Projekt erstellen und programmieren des Zählers

Sin-Funktion vgl. Cos-Funktion

Was ist VHDL? V: very high speed integrated circuit HDL hardware description language. mächtige HW-Beschreibungssprache. Wozu hat man VHDL entwickelt?

Objektorientierte Programmierung

6. Iteration (Schleifenanweisungen)

C.3 Funktionen und Prozeduren

Signalzuweisungen können nebenläufig sein oder als sequentielle Anweisungen innerhalb von Prozessen, Funktionen oder Prozeduren stehen.

Übersicht. Prof. Dr. B. Lang, FH Osnabrück Konstruktion digitaler Komponenten, 6 Synthese - 1 -

Theoretische Informatik SS 03 Übung 3

Prozedurale SQL-Erweiterungen

Die Programmiersprache C Eine Einführung

Digitales Hardwaredesign mit

Transkript:

MIN Department Informatik VHDL-Einführung 1

MIN Department Informatik VHDL VHSIC Hardware Description Language Very High Speed Integrated Circuit Entwicklung 1983 vom DoD initiiert 1987 IEEE Standard Überarbeitungen VHDL'93, VHDL'02 Erweiterungen Hardwaremodellierung/Zellbibliotheken Hardwaresynthese mathematische Typen und Funktionen analoge Modelle und Simulation 2

MIN Department Informatik VHDL sequenziell Sequenzielle Programmiersprache (Pascal) Typen, Untertypen, Alias-Deklarationen skalar integer, real, character, boolean, bit, Aufzählung komplex line, string, bit_vector, Array, Record Datei- text, File Zeiger- Access Objekte constant, variable, file Operatoren and, or, nand, nor, xor, xnor =, /=, <, <=, >, >= sll, srl, sla, sra, rol, ror +, -, & +, - *, /, mod, rem **, abs, not 3

MIN Department Informatik VHDL sequenziell Anweisungen Zuweisung :=, <= Verzweigung if, case Schleifen for, while, loop, exit, next Zusicherungen assert, report Sequenzielle Umgebungen Prozesse process Unterprogramme procedure, function (rekursiv) 4

MIN Department Informatik type list_t; type list_pt is access list_t; type list_t is record key : integer; link : list_pt; end record list_t; constant input_id : string := "infile.dat"; file datafile : text; variable dataline : line; variable list_p, temp_p : list_pt := null; procedure readdata is variable keyval : integer; variable rdflag : boolean; begin file_open (datafile, input_id, read_mode); L1: while not endfile(datafile) loop readline(datafile, dataline); L2: loop read(dataline, keyval, rdflag); if rdflag then temp_p := new list_t'(keyval, list_p); list_p := temp_p; else next L1; end if; end loop L2; end loop L1; file_close(datafile); end procedure readdata; 5

MIN Department Informatik VHDL konkurrent Konkurrenter Code (ADA'83) Modelliert die gleichzeitige Aktivität der Hardwareelemente Mehrere Prozesse Prozeduraufrufe Signalzuweisung, bedingt (if), selektiv (case) <= Zusicherung assert Synchronisationsmechanismus für Programmlauf / Simulation Objekt signal Signale verbinden konkurrent arbeitende Teile miteinander Entsprechung in Hardware: Leitung 6

MIN Department Informatik VHDL Simulation Semantik der Simulation im Standard definiert:simulationszyklus konkurrent aktive Codefragmente Prozesse, konkurrente Anweisungen, Hierarchien Signale verbinden diese Codeteile (Prozesse) Signaltreiber: Liste aus Wert-Zeit Paaren S : integer NOW +5 ns +12 ns +20 ns Zeit 2 7 3-28 Wert Simulationsereignis: Werteänderung eines Signals (Re-) Aktivierung eines Prozesses nach Wartezeit 7

MIN Department Informatik Ereignisgesteuerte Simulation Beispiel: Datenpfad opa <= regbank(asel) when opmode=regm else databus; regbank(0) with opcode select alu <= opa + opb when opcadd, opa - opb when opcsub, opa and opb when opcand, regp: process (clk) begin if rising_edge(clk) then alur <= alu; end if; end process regp; regbank(1) MUX opa regbank(15) ALU alu Reg. alur opb clk asel opmode opcode 8

MIN Department Informatik Ereignisgesteuerte Simulation 1. Simulationsereignis Liste aller Ereignisse NOW asel 1 opmode regm opcode opcadd +10 ns clk '1' opa <= regbank(asel) when opmode=regm else databus; regbank(0) with opcode select alu <= opa + opb when opcadd, opa - opb when opcsub, opa and opb when opcand, regp: process (clk) begin if rising_edge(clk) then alur <= alu; end if; end process regp; regbank(1) MUX opa regbank(15) ALU alu Reg. alur opb clk asel opmode opcode 9

MIN Department Informatik Ereignisgesteuerte Simulation 1. Simulationsereignis 2. Prozessaktivierung opa <= regbank(asel) when opmode=regm else databus; regbank(0) with opcode select alu <= opa + opb when opcadd, opa - opb when opcsub, opa and opb when opcand, regp: process (clk) begin if rising_edge(clk) then alur <= alu; end if; end process regp; regbank(1) MUX opa regbank(15) ALU alu Reg. alur opb clk asel opmode opcode 10

MIN Department Informatik Ereignisgesteuerte Simulation 1. Simulationsereignis 2. Prozessaktivierung 3. Aktualisierung der Signaltreiber opa alu NOW +δ 37 16 NOW +δ 25 49 opa <= regbank(asel) when opmode=regm else databus; regbank(0) with opcode select alu <= opa + opb when opcadd, opa - opb when opcsub, opa and opb when opcand, regp: process (clk) begin if rising_edge(clk) then alur <= alu; end if; end process regp; regbank(1) MUX opa regbank(15) ALU alu Reg. alur 12 clk 1 regm opcadd 11

MIN Department Informatik Ereignisgesteuerte Simulation Zeitschritt: +δ Simulationsereignisse Signaltreiber +δ opa 16 alu 49 +10 ns clk '1' alu NOW +δ 49 28 opa <= regbank(asel) when opmode=regm else databus; regbank(0) with opcode select alu <= opa + opb when opcadd, opa - opb when opcsub, opa and opb when opcand, regp: process (clk) begin if rising_edge(clk) then alur <= alu; end if; end process regp; regbank(1) MUX opa regbank(15) ALU alu Reg. alur 12 clk 1 regm opcadd 12

MIN Department Informatik Ereignisgesteuerte Simulation Zeitschritt: +10 ns Simulationsereignisse Signaltreiber +10 ns clk '1' NOW +δ alur 25 28 opa <= regbank(asel) when opmode=regm else databus; regbank(0) with opcode select alu <= opa + opb when opcadd, opa - opb when opcsub, opa and opb when opcand, regp: process (clk) begin if rising_edge(clk) then alur <= alu; end if; end process regp; regbank(1) regbank(15) MUX opa opb ALU 28 alur clk Reg. asel opmode opcode 13

MIN Department Informatik VHDL Simulation Kausalität 1. Simulationsereignis Zyklus n 2. Aktivierung des konkurrenten Codes 3. Signalzuweisungen in der Abarbeitung 4. Erneute Signaländerung Zyklus n+1 Trennung der Zyklen Simulation ist unabhängig von der sequenziellen Abarbeitungsreihenfolge durch den Simulator, auch bei mehreren Events in einem Zyklus, bzw. mehrfachen Codeaktivierungen pro Event! 14

MIN Department Informatik VHDL Simulation Prozesse sind ständig aktiv Endlosschleife Typen: 1. Sensitiv zu Signalen 2. wait-anweisungen bis Prozessende bis wait alu_p: process(a, b, add) begin if add then x <= a+b; else x <= a-b; end if; end process alu_p; producer_p: process begin pready <= false; wait until cready; channel <= pready <= true; wait until not cready; end process producer_p; consumer_p: process begin cready <= true; wait until pready; 15

MIN Department Informatik VHDL Simulation Signalzuweisungen im sequenziellen Kontext sequenzieller Code wird nach Aktivierung bis zum Prozessende/wait abgearbeitet Signalzuweisungen werden (frühestens) im folgenden Simulationszyklus wirksam eigene Zuweisungen sind in dem Prozess nicht sichtbar process if swap = '1' then b <= a; a <= b; end if; process num <= 5; if num > 0 then 16

MIN Department Informatik VHDL Entwurf Entwurfsspezifische Eigenschaften Strukturbeschreibungen / Hierarchie Instanziierung von Teilentwürfen component configuration Schnittstellen entity Versionen und Alternativen architecture configuration zusätzliche Features Bibliotheken library Design- und Code-Reuse package 17

MIN Department Informatik VHDL Entity Entity als zentrale Entwurfseinheit Beschreibung der Schnittstelle black-box mit Parametern generic und Ein- / Ausgängen port entity delayline is generic ( bitwid : integer range 2 to 64 := 16; dellen : integer range 2 to 16 := 16); port ( clk : in std_logic; datain : in signed (bitwid-1 downto 0); dataout : out signed (bitwid-1 downto 0)); end entity delayline; 18

MIN Department Informatik VHDL Architektur Architektur als Implementation einer Entity mehrere Architekturen sind möglich Alternativen lokale Deklarationen konkurrente Anweisungen + Prozesse + Instanzen architecture behavior of delayline is type delarray_t is array (1 to dellen) of signed (bitwid-1 downto 0); signal delarray : delarray_t; begin dataout <= delarray(dellen); reg_p: process (clk) begin if rising_edge(clk) then delarray <= datain & delarray(1 to dellen-1); end if; end process reg_p; end architecture behavior; 19

MIN Department Informatik VHDL strukturell Hierarchie repräsentiert Abstraktion zur funktionalen Gliederung Instanziierung von Komponenten 1. Komponentendeklaration und component 2. Instanziierung in der Architecture 3. Bindung an Paar: Entity+Architecture configuration Komponente als Zwischenstufe mit anderen Bezeichnern und Schnittstellen (Ports und Generics) 20

MIN Department Informatik VHDL strukturell Konfiguration zur Bindung: Komponente Entity+Architecture lokal, innerhalb der Architektur als eigene Entwurfseinheit default -Regeln: identische Bezeichner, Deklarationen Strukturierende Anweisungen Gruppierung block bedingte und/oder wiederholte Ausführung konkurrenten Codes oder Instanziierungen generate 21

MIN Department Informatik architecture structure of delayline is component reg is generic ( width : integer range 2 to 64); port ( clk : in std_logic; din : in signed(width-1 downto 0); dout : out signed(width-1 downto 0)); end component reg; type delreg_t is array (0 to dellen) of signed(bitwid-1 downto 0); signal delreg : delreg_t; begin delreg(0) <= datain; dataout <= delreg(dellen); gen_i: for i in 1 to dellen generate reg_i: reg generic map (width => bitwid) port map (clk, delreg(i-1), delreg(i)); end generate gen_i; end architecture structure; configuration delaylinestr of delayline is for structure for gen_i for all: reg use entity work.reg(behavior); end for; end for; end for; end configuration delaylinestr; 22

MIN Department Informatik VHDL Synthese VHDL deckt Abstraktion von Algorithmen- bis zur Gatterebene ab eine Sprache als Ein- und Ausgabe der Synthese Synthese - allgemein üblich: RT-Ebene Abbildung von Register-Transfer Beschreibungen auf Gatternetzlisten erzeugt neue Architektur, Entity bleibt Simulation System-/Testumgebung als VHDL-Verhaltensmodell Simulation der Netzliste durch Austausch der Architektur 23

MIN Department Informatik VHDL-basierter Entwurfsablauf 24

MIN Department Informatik Y-Diagramm D. Gajski, R. Kuhn 1983: New VLSI Tools 25

MIN Department Informatik Entwurfsmethodik Änderung in der Entwurfsmethodik Struktur Verhalten grafische Eingabe Hardwarebeschreibungssprache Entwurf auf höheren Abstraktionsebenen Automatische Transformationen bis zum Layout Synthese Datenpfad- / Makrozellgenerierung Zellsynthese Platzierung & Verdrahtung 26

MIN Department Informatik Hierarchischer Entwurf Hierarchischer Entwurf top-down 27

MIN Department Informatik Synthesewerkzeuge Einordnung in der Hierarchie Synthesewerkzeuge Hardware-Software CoSynthese? High-Level Synthese Register-Transfer und Logiksynthese 28

MIN Department Informatik Nächster Termin 14.07. praktische Arbeit mit einem VHDL-Simulator F-304 Raumänderung 29