View
105
Download
1
Category
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