41
Die Hardwarebeschreibungssprache VHDL

Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Embed Size (px)

Citation preview

Page 1: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Die Hardwarebeschreibungssprache VHDL

Page 2: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

AblaufSem.

WocheKalenderWoche

Vorlesung Übungsaufgaben Labor

1 8 VHDL1 – Einfuehrung – Entities, SignaleVHDL2 - Sprachelemente

Uebung1 – Komb/GatterUebung2 – When Else

Laboruebung1 - SimulationProjektbesprechung1-Einfuehrung

2 9 VHDL3 – Sequential Statements Uebung3 - Blockdiagram Laboruebung2 - Abstimmanlage

3 10 VHDL4 – Getaktete Logik (Flip-Flops) Uebung4 – Flip Flops Laboruebung3 - WuerfelProjektbesprechung2 - Blockdiagram

4 11 VHDL5 – Zaehler I + II Uebung5 - Zaehler Laboruebung4 – Flip-Flop und Flankendetector

5 12 VHDL6 – Synthese, Quartus, MAX Architektur Uebung6 - Synthese Laboruebung5 – Zähler für Autobeleuchtung & TB Modelsim

6 13 VHDL7 – FSM I Uebung7 - Automaten Laboruebung6 – Toplevel Generierung, Synthese & Programmierung

7 14 VHDL8 – FSM II Uebung8 - Konzept Laboruebung7 - AutobeleuchtungProjekt Stufe1 – Hierarchie m. Zaehler

8 15 Projektbesprechung3 Projekt Stufe2 – Displaytreiber

9 16 VHDL9 – Variablen und Testbench Coding Style Projekt Stufe3 – Testbench für UART

10 17 Pruefungsvorbereitung Projekt Stufe4 – UART

11 18 Pruefung Projekt Stufe5 – GPS Detector/Display erweitern

12 19 Arbeiten am Projekt Feiertag (Auffahrt)

13 20 Arbeiten am Projekt Arbeiten am Projekt

14 21 Projektdemo Projektdemo

Page 3: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Leistungsnachweise DT2P

Erfahrungsnote die während des Semesters gemacht wird 1/3 Sprache in Projekt & Technik

(Bewertet wird: Präsentation & Dokumentation) 1/3 Schriftliche Prüfung (Thema: VHDL & PLD) 1/3 Technische Lösung des Projektes

Mündliche Assessment Prüfung Zählt doppelt zur Erfahrungsnote

Page 4: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Bewertung des Projektes Features

Note 4 wenn die Uhrzeit angegeben werden kann+ Zusatzpunkte für weitere Features wie Position,

Weltzeit, Wecker etc. Dokumentation

Note 4 wenn korrekt und lesbar+ Sinnvolle und hilfreiche Abbildungen und Tabellen+ Sinnvolle Gliederung, Text gut strukturiert

Testbench Note 4 eine Selbsttestende Testbench pro Teilnehmer

+ Ausführlicher Testplan u. Testbench (viele Fälle abgedeckt)

Code Note 4 wenn alles synchron und keine Latches

+ Namenskonventionen, klarer Prozesssplit+ Kommentare

Page 5: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Inhalt

Einführung Aufbau einer VHDL Beschreibung

Entity & Architecture Strukturale Modelierung Component Signale Portmap

Erstes Simulationsbeispiel

Page 6: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

1959 1965 1970 1975 1980 1985 1990 1995 2000 2005

14

1664

2561k4k

16k64k

256k1M4M

16M64M

256M1G4G

16G

Num

mer

der

Kom

pone

nten

pro

IC

4 Gbit

256kbit

1 Gbit

64 Mbit

4 Mbit

16kbit MOS-DRAM

1-kbit MOS-DRAM

4-bit TTL-counterdual flip-flop

RTL gate

Jahr

Wachstum der Komponenten pro IC

Page 7: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

109

107

105

1988 1996 2004 2012 year

Complexity:logic transistors/chip

design productivitygap

Design productivity:transistors/manmonth

1980

103

103

105

107

Productivity Gap

Page 8: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Alternatives

Page 9: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Alternatives : System-On-Package

Quelle: http://www.spectrum.ieee.org/jun06/3649/2

Page 10: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

CMOS Solid State Technology

Process

State of the Art : CMOS 40nm-45nm (Si)

Development: CMOS 25nm-32nm

Fabrication Cost: e.g. Intel 32nm fab $7B investiment over 2009-2010

Future: new materials (GaAs), light?

Integration (40-45nm Technology)

Memory: embedded DDR2 1GByte (DRAM) 4-64GByte (Flash)

Dig-Logic: ~0.5 billion Transistors core speed 1-3GHz

FPGA: 2.5 billion transistors, 680k-Les,22Mb-Ram

Tendencies

Performance

Low Power

Mixed Analog-Digital single Die

Packaging (System on Chip)

Applications

GP-ICs: Processors

low-end (electronic appliances)

high-end (multimedia/telecom)

Memory / FPGA (with high-speed serial transceiver)

Analog&RF

Sensors: micromechanical and optical

Emerging: solar (photovoltaic applications) lightining (LEDs)

Page 11: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Schaltplan einer einfachen Statemachine

Page 12: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Motivation zur Einführung von Beschreibungssprachen

Zunehmende Komplexität und Integrationsdichte Geringere Strukturgrössen (Transistorgrösse) Anforderungen (Taktraten, Stromverbrauch)

Konkurrenzdruck und Entwicklungszeiten

Gute Dokumentation (sichtbare Algorithmen, Kommentare)

Datenaustausch (Einheitlichkeit des Standards)

Page 13: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Geometrie eines Invertierers

Page 14: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Floor Plan eines ICs

6.4 mm

6.4 mm

Page 15: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Entwurfsebenen

Kann mit VHDL simuliert werden

Kann mit VHDLsynthetisiert werden

Page 16: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Gängige Hardwarebeschreibungsprachen

Einführung VHDL Verilog

1987

vom amerikanischen

Department of

Defense,

IEEE Standard

1984

von der

Halbleiterindustrie

Name steht für: VHSIC Hardware Description LanguageVery High Speed Integrated Circuit

Page 17: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Synthese Werkzeug Tool=Quartus

&&

&

&G3

G2

G1

Q1

Q0

E3

E0E1E2

= Umwandlung einer VHDL Schaltungsbeschreibung auf RTL Ebene in eine Netzliste auf Logikebene

Gatter/Flip-FlopBibliothek

Netzliste

ARCHITECTURE comb OF beisp IS

BEGIN

q0 <= not (e0 and e1);

sig3 <=(e2 and e3) or (e0 and e1);

END comb;

Im Gegensatz zur Simulation kann bei der Synthesenicht der komplete Sprachumfang verarbeitet werden

Hardware Beschreibung

Page 18: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Simulatoren und DebuggerTool=Modelsim

Logische Schaltung unter Test (Device Under Test = DUT)

=1

=1

>1StimulusGenerator

ErwarteteErgebnisse

Testbench

O.K.

&&

&

&G3

G2

G1

Page 19: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Aufbau einer VHDL Beschreibung

Page 20: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Grundbestandteile einer VHDL Beschreibung

Page 21: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Entity(Beschreibung der Ein-Ausgänge eines Funktionsblocks)

Q

Qn

S

R

Entity rsff

ENTITY rsff IS

PORT ( s,r : IN std_logic;

q,qn: OUT std_logic);

END rsff;

Mode: IN¦OUT¦INOUT¦BUFFER

Type: bit¦bit_vector¦std_logic ...

Name der Entity,frei wählbar

Reservierte Worte:Dürfen nicht als frei wählbare Namen verwendet werden

Page 22: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

ArchitectureBeisp: RS - Flip Flop mit NOR Gates

>1 Q

>1S

R

Qn

ARCHITECTURE comb OF rsff IS

BEGIN

q <= not (r or qn);

qn <= not (s or q);

END comb;

Page 23: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Architecture(Beschreibung des Verhaltens eines Blockes)

ARCHITECTURE comb OF rsff IS

BEGIN

q <= not (r or qn);

qn <= not (s or q);

END comb;

Zu jeder Entity gehört immer eine Architektur.Architektur und Entity treten immer als Paar auf.

Name der Entity zu derdie Architektur gehört

Frei wählbarer Nameder Architektur

Inhalt der Architektur

Page 24: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Strukturale Modelierung

Page 25: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Hierarchisches VHDL Design

Top-Level

Peripherals Prozessor

UART

uCCore

RAM

ROMAudio Block

Video BlockParallel

Port

Page 26: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Testbench

Top-Level

Peripherals Prozessor

UART

uCCore

RAM

ROMAudio Block

Video BlockParallel

Port

Testbench

Page 27: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Structurale Modelierung

Entity: doppelrs

AUSGN

AUSGQ

Qn

S

R

Entity: rsff

instance2:rsff

set

reset

Q

Qn

S

R

instance1:rsff

IN1

IN2

ENTITY doppelrs IS

PORT ( in1,in2 : IN std_logic;

ausg,ausgn : OUT std_logic);

END doppelrs ;

Page 28: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Component DeklarationARCHITECTURE struct OF doppelrs IS

COMPONENT rsff

PORT ( s,r : in std_logic; q,qn : out std_logic );

END COMPONENT;

SIGNAL set,reset : std_logic;

BEGIN

Q

Qn

S

R

Entity: rsff

Entity: doppelrs

instance2:rsff

set

reset

Q

Qn

S

R

instance1:rsff

AUSGN

AUSGIN1

IN2

Page 29: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Signale (Drähte)ARCHITECTURE struct OF doppelrs IS

COMPONENT rsff

PORT ( s,r : in std_logic; q,qn : out std_logic );

END COMPONENT;

SIGNAL set,reset : std_logic;

BEGIN

Q

Qn

S

R

Entity: rsff

Entity: doppelrs

instance2:rsff

set

reset

Q

Qn

S

R

instance1:rsff

AUSGN

AUSG

Strichpunkt schliesst Zeile ab

Signal Typ

Signalname, frei wählbar

IN1

IN2

Page 30: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

instance2: rsff

PORT MAP(s => set,r => reset,q => ausg,qn => ausgn);

Port Map (1) („Instantiation“)(hier werden die „Instances“ miteinander verbunden)

Q

Qn

S

R

Entity: rsff

Entity: doppelrs

instance2:rsff

set

reset

Q

Qn

S

R

instance1:rsff

ausgn

ausgIN1

IN2

Signal Name in übergeordneter Hierarchie doppelrs

Port der Component

Component Name, frei wählbar

Page 31: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Port Map(2)instance1: rsff

PORT MAP(s => in1,r => in2,q => set,qn => reset);

istance2: rsff

PORT MAP(s => set,r => reset,q => ausg,qn => ausgn);

Q

Qn

S

R

Entity: rsff

Entity: doppelrs

instance2:rsff

set

reset

Q

Qn

S

R

instance1:rsff

AUSGN

AUSGIN1

IN2

Page 32: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Erstes Simulationsbeispiel

Page 33: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Delay Statement (Für simulation, nicht synthetisierbar)

s <= '1','0' after 10 ns, '1' after 100 ns, '0' after 130 ns;

r <= '1','0' after 15 ns, '1' after 200 ns, '0' after 230 ns;

0 10 100 200 260

Page 34: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Testbench des RS-FF in VHDL

Q

Qn

S

R

Entity rsff

Delay Statements

Entity/Architektur: test_rsff

dut:rsffs

r

q

qn

Page 35: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Entity des RS-FFs

Q

Qn

S

R

Entity rsff

rsff

ENTITY rsff IS PORT ( s,r : in std_logic;

q,qn: out std_logic);END rsff;

Page 36: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Architecture RS-FF

ARCHITECTURE comb OF rsff IS

BEGINq <= not (r or qn);qn <= not (s or q);

END comb;

>1 Q

>1S

R

Qn

Page 37: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Entity der Testbench des RS-FFs

ENTITY test_rsff IS

END test_rsff;

Q

Qn

S

R

Entity rsff

Delay Statements

Entity: test_rsff

dut:rsffs

r

q

qn

Architecture struct of test_rsff

Page 38: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

ARCHITECTURE struct OF test_rsff ISCOMPONENT rsff

PORT ( s,r : in std_logic; q,qn : out std_logic );END COMPONENT;

SIGNAL s,r,q,qn : std_logic;

BEGIN

dut: rsff

PORT MAP(s => s,r => r,q => q,qn => qn);

s <= '1','0' after 10 ns, '1' after 100 ns, '0' after 130 ns, '1' after 300 ns, '0' after 350ns;

r <= '1','0' after 10 ns, '1' after 200 ns, '0' after 230 ns;

END struct;

Architecture der Testbench

Test Vektoren bestehend aus

Delay Statements

Page 39: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Unsere erste Simulation besteht aus 4 Komponenten:

ENTITY rsff IS PORT ( s,r : in std_logic;

q,qn: out std_logic);END rsff;

ENTITY test_rsff IS

END test_rsff;

ARCHITECTURE comb OF rsff IS

BEGINq <= not (r or qn);qn <= not (s or q) ;END comb;

ARCHITECTURE struct OF test_rsff ISCOMPONENT rsffPORT ( s,r : in std_logic; q,qn : out std_logic );END COMPONENT;SIGNAL s,r,q,qn : std_logic ;

BEGINdut: rsff

PORT MAP(s => s,r => r,q => q,qn => qn);

s <= '1','0' after 10 ns, '1' after 100 ns, '0' after 130 ns, '1' after 300 ns, '0' after 350ns;

r <= '1','0' after 10 ns, '1' after 200 ns, '0' after 230 ns;END struct;

Page 40: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

edaverzeichnis

simulation source synthese

modelsim scripts

Projekt

.vhdl

.dowork

Page 41: Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche VorlesungÜbungsaufgabenLabor 18VHDL1 – Einfuehrung – Entities, Signale VHDL2 -

Compile Script (compile.do) für funktionale Simulation

# create work library

vlib work

# compile project files

vcom -2002 -explicit -work work ../../source/flanken.vhd

vcom -2002 -explicit -work work ../../source/tb_flanken.vhd

# run the simulation

vsim -t 1ns -lib work work.tb_flanken

do ../scripts/wave.do

run 1800.0 ns

Startet Simulator

Bildet Workverzeichniss „work“

Compiliert VHDL und legt es im „work“ ab

Lässt Simulator für 1800 ns laufen

Öffnet Waveform Betrachter