Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation...

35
Entwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V [email protected] , [email protected]

Transcript of Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation...

Page 1: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Entwurf und Verifikation digitaler Systeme

mit VHDL

Wolfgang Günther

Infineon AG

CL DAT DF LD V

[email protected]−freiburg.de,

[email protected]

Page 2: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 2

Inhalt der Vorlesung

Der Entwurfsprozess

Die Sprache VHDL

Abstraktionsebenen

Datentypen

Befehle

Modellierung von FSMs

Verifikation digitaler Schaltungen

Page 3: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 3

Vorbemerkungen

Zielrichtung der Vorlesung:

Synthese

Verifikation

Beispiele

Keine vollständige Beschreibung von VHDL

Konzentration auf "synthetisierbares" VHDL

Page 4: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 4

Literatur

P. J. Ashenden: The Designer’s Guide to VHDL. Morgan Kaufmann Publishers, 1995.

D. Perry: VHDL. McGraw−Hill, 1998.

K. C. Chang: Digital Design and Modeling with VHDL and Synthesis. IEEE Computer Society Press, 1997.

IEEE Standard VHDL Language Reference Manual (schwierig zu lesen)

Page 5: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 5

VHDL

Very High Speed Integrated CircuitsHardware Description Language

Beschreibung komplexer elektronischer Systeme

Austauschbarkeit

Wiederverwendbarkeit

Industriestandard

Beschreibung auf verschiedenen Abstraktionsebenen

Page 6: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 6

Abstraktionsebenen

VerhaltenStruktur

Polygone

Differentialgleichung Boolesche Gleichung

Algorithmus Register−Transfer Sprache

Stickdiagramme

Standardzellen

Floor PlanGeometrie

Prozessoren, ...

TransistorenGatter

Register−Transfer

VHDL

Page 7: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 7

Wichtige Eigenschaften

Modellierung auf Verhalten− und auf Strukturebene

Modellierung von Gleichzeitigkeit

Abstrakte Datentypen

Hochsprachenkonstrukte

Strenge Typisierung

Diskrete Event−Simulation

Page 8: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 8

Standards

Standardisierung 1987 als IEEE 1076

Erweitert 1993 (IEEE 1076−1993)

IEEE 1076.1: Analog Extensions to VHDL

IEEE 1076.2: Mathematical Package

IEEE 1076.3: Synthesis Package

IEEE 1076.4: Timing Methodology (VITAL)

IEEE 1076.5: VHDL Utility Library

Page 9: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 9

Der Entwurfsprozess

RTL Beschreibung

BehavioralSynthesis Tool Handentwurf

Logiksynthese

RTL: RegisterTransfer Level

Spezifikation des Verhaltens

Netzliste,technologieunabhängig

Page 10: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 10

Der Entwurfsprozess (2)

Technology Mapping

Physical Design

Einfügen von Testlogik

Timing,Power,etc.

Netzliste,technologieunabhängig

Netzliste,technologieabhängig

Page 11: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 11

Formale Verifikation

RTL Beschreibung

Logiksynthese

Property Checking

Equivalence Checking

Equivalence Checking

Technology Mapping

Physical Design Equivalence Checking

Page 12: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 12

Bezeichner (identifier)

Dürfen nur aus Buchstaben, Ziffern und Unterstrichen bestehen

müssen mit einem Buchstaben beginnen

jedem Unterstrich muss ein anderes Zeichen folgen

es dürfen keine reservierten Worte verwendet werden

Groß−Kleinschreibung spielt keine Rolle

Page 13: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 13

Beispiele

Erlaubt:bus, Bus, BUSbus_7mem_7_reg

Nicht erlaubt:bus__77mem_mem

Page 14: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 14

Reservierte Worte VHDLabsaccessafteraliasallandarchitecturearrayassertattributebeginblockbodybufferbuscase

componentconfigurationconstantdisconnectdowntoelseelsifendentityexitfileforfunctiongenerategenericguarded

ifininoutislabellibrarylinkageloopmapmodnandnewnextnornotnull

ofonopenorothersoutpackageportprocedureprocessrangerecordregisterremreportreturn

selectseveritysignalsubtypethentotransporttypeunitsuntilusevariablewaitwhenwhilewith

xor

Page 15: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 15

Reservierte Worte VHDL93groupimpureinertialliteralpostponedpurerejectrol

VHDL93

rorsharesslasllsrasrlunaffectedxnor

Page 16: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 16

Extended Identifiers

Beginnen und enden mit Backslash (’\’)

Dürfen dazwischen beliebige Zeichen enthalten

Sind case−sensitiv

Beispiele:

\data bus\ \clock #7\ \start__\

name \name\ \Name\ \name \

VHDL93

Page 17: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 17

Kommentare

Beginnen mit ,,−−’’ und enden mit der Zeile

Beispiel: s <= ’0’; −− Kommentar

Bemerkung: Kommentare können Anweisungen für die Synthese enthalten, etwa−− pragma synthesis_off−− pragma synthesis_on

Page 18: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 18

Beispiel: AND−Gatter

' Strukturell:

' Wertetabelle:

ca

b

b \ a 0 10 0 01 0 1

Page 19: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 19

Entity für ein AND−Gatter

library ieee;use ieee.std_logic_1164.all;

entity my_and is port(a, b : in std_logic; c : out std_logic);end my_and;

Page 20: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 20

Entity

Definiert die Schnittstelle nach außen

Pins können seinin −− Eingang

out −− Ausgang

inout −− Bidirektional

... und andere

Ausgänge können nicht gelesen werden,Eingänge können nicht geschrieben werden

Page 21: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 21

Der Datentyp std_logic

Definiert in ieee.std_logic_1164;

Definition:type std_ulogic is (’U’, −− Uninitialized ’X’, −− Forcing unknown ’0’, −− Forcing zero ’1’, −− Forcing one ’Z’, −− High impedance ’W’, −− Weak unknown ’L’, −− Weak zero ’H’, −− Weak high ’−’); −− Don’t care

Unterschied std_logic vs. std_ulogic: später

Page 22: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 22

Architecture

beschreibt die Funktion des Bausteins mit Hilfe von

Strukturelementen

Verhaltensbeschreibung

Mischformen sind möglich

Es kann mehrere Architectures für eine Entity geben

Page 23: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 23

Implementierung AND

architecture rtl1 of my_and isbegin c <= a and b;end rtl1;

architecture rtl2 of my_and isbegin c <= ’1’ when a = ’1’ and b = ’1’ else ’0’;end rtl2;

Unterschied?

Page 24: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 24

Wertetabelle rtl1

b \ a U X 0 1 Z W L H −U U U 0 U U U 0 U UX U X 0 X X X 0 X X0 0 0 0 0 0 0 0 0 01 U X 0 1 X X 0 1 XZ U X 0 X X X 0 X XW U X 0 X X X 0 X XL 0 0 0 0 0 0 0 0 0H U X 0 1 X X 0 1 X− U X 0 X X X 0 X X

Page 25: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 25

Wertetabelle rtl2

b \ a U X 0 1 Z W L H −U 0 0 0 0 0 0 0 0 0X 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 01 0 0 0 1 0 0 0 0 0Z 0 0 0 0 0 0 0 0 0W 0 0 0 0 0 0 0 0 0L 0 0 0 0 0 0 0 0 0H 0 0 0 0 0 0 0 0 0− 0 0 0 0 0 0 0 0 0

Page 26: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 26

Operationen auf std_(u)logic

and

or

not

nand

nor

xor

xnor

Page 27: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 27

Wertetabelle NOT

inU UX X0 11 0Z XW XL 1H 0− X

Page 28: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 28

Beispiel: Halbaddierer

Strukturell:

Wertetabelle:

couta

b

0 10 0 01 0 1

cout

⊕ sum

sum 0 10 0 11 1 0

Page 29: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 29

Implementierung Halbaddierer

library ieee;use ieee.std_logic_1164.all;

entity ha is port(a, b : in std_logic; sum : out std_logic; cout : out std_logic);end ha;

architecture rtl of ha isbegin sum <= a xor b; cout <= a and b;end rtl;

Page 30: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 30

Implementierung Volladdierer

library ieee;use ieee.std_logic_1164.all;

entity fa is port(a, b, cin : in std_logic; sum, cout : out std_logic);end fa;

architecture rtl_inefficient of fa isbegin sum <= a xor b xor cin; cout <= (a and b) or (a and cin) or

(b and cin);end rtl_inefficient;

Page 31: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 31

Alternative Implementierung

architecture rtl of fa issignal tmp : std_logic;begin tmp <= a xor b; sum <= tmp xor cin; cout <= (a and b) or (tmp and cin);end rtl;

Page 32: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 32

Signal Declaration

Beispiele:signal s : std_logic;signal bus : std_logic_vector(31 downto 0);signal u, v : std_logic := ’0’;

Name desSignals Datentyp Initialisierungs−

wert

Page 33: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 33

Signal Declaration und Synthese

Initialisierungswerte für Signale sind nicht synthetisierbar.

Deshalb sollten alle Signale über ein Reset−Signal initialisiert werden.

Page 34: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 34

Signal Assignment

Beispiele:out <= a and b;out <= a and b after 5ns;out <= ’0’ after 3ns, ’1’ after 5ns;

Verzögerungszeiten sind nicht synthetisierbar!

Ziel derZuweisung

Ausdruckfür Wert

Verzögerungs−zeit

Page 35: Entwurf und Verifikation digitaler Systeme mit VHDL · PDF fileEntwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@ , wolfgang.guenther

Dr. Wolfgang Günther Einleitung − 35

Constant Declaration

Beispiele:constant cu : std_logic := ’U’;constant bus_width : integer := 32;

Verbessern die Les− und Wartbarkeit

Erhöhen die Flexibilität