Die Hardwarebeschreibungssprache VHDL. Ablauf Sem. Woche Kalender Woche...

Preview:

Citation preview

Die Hardwarebeschreibungssprache VHDL

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

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

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

Inhalt

Einführung Aufbau einer VHDL Beschreibung

Entity & Architecture Strukturale Modelierung Component Signale Portmap

Erstes Simulationsbeispiel

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

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

Alternatives

Alternatives : System-On-Package

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

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)

Schaltplan einer einfachen Statemachine

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)

Geometrie eines Invertierers

Floor Plan eines ICs

6.4 mm

6.4 mm

Entwurfsebenen

Kann mit VHDL simuliert werden

Kann mit VHDLsynthetisiert werden

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

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

Simulatoren und DebuggerTool=Modelsim

Logische Schaltung unter Test (Device Under Test = DUT)

=1

=1

>1StimulusGenerator

ErwarteteErgebnisse

Testbench

O.K.

&&

&

&G3

G2

G1

Aufbau einer VHDL Beschreibung

Grundbestandteile einer VHDL Beschreibung

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

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;

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

Strukturale Modelierung

Hierarchisches VHDL Design

Top-Level

Peripherals Prozessor

UART

uCCore

RAM

ROMAudio Block

Video BlockParallel

Port

Testbench

Top-Level

Peripherals Prozessor

UART

uCCore

RAM

ROMAudio Block

Video BlockParallel

Port

Testbench

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 ;

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

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

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

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

Erstes Simulationsbeispiel

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

Testbench des RS-FF in VHDL

Q

Qn

S

R

Entity rsff

Delay Statements

Entity/Architektur: test_rsff

dut:rsffs

r

q

qn

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;

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

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

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

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;

edaverzeichnis

simulation source synthese

modelsim scripts

Projekt

.vhdl

.dowork

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

Recommended