Entwurf und Verifikation digitaler Systeme mit VHDL und Verifikation digitaler Systeme mit VHDL...

download Entwurf und Verifikation digitaler Systeme mit VHDL  und Verifikation digitaler Systeme mit VHDL Wolfgang Gnther Infineon AG CL DAT DF LD V guenther@ ,

of 35

  • date post

    06-Feb-2018
  • Category

    Documents

  • view

    218
  • download

    0

Embed Size (px)

Transcript of Entwurf und Verifikation digitaler Systeme mit VHDL und Verifikation digitaler Systeme mit VHDL...

  • Entwurf und Verifikation digitaler Systeme

    mit VHDL

    Wolfgang Gnther

    Infineon AG

    CL DAT DF LD V

    guenther@informatik.unifreiburg.de,

    wolfgang.guenther@infineon.com

  • Dr. Wolfgang Gnther Einleitung 2

    Inhalt der Vorlesung

    Der Entwurfsprozess

    Die Sprache VHDL

    Abstraktionsebenen

    Datentypen

    Befehle

    Modellierung von FSMs

    Verifikation digitaler Schaltungen

  • Dr. Wolfgang Gnther Einleitung 3

    Vorbemerkungen

    Zielrichtung der Vorlesung:

    Synthese

    Verifikation

    Beispiele

    Keine vollstndige Beschreibung von VHDL

    Konzentration auf "synthetisierbares" VHDL

  • Dr. Wolfgang Gnther Einleitung 4

    Literatur

    P. J. Ashenden: The Designers Guide to VHDL. Morgan Kaufmann Publishers, 1995.

    D. Perry: VHDL. McGrawHill, 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)

  • Dr. Wolfgang Gnther Einleitung 5

    VHDL

    Very High Speed Integrated CircuitsHardware Description Language

    Beschreibung komplexer elektronischer Systeme

    Austauschbarkeit

    Wiederverwendbarkeit

    Industriestandard

    Beschreibung auf verschiedenen Abstraktionsebenen

  • Dr. Wolfgang Gnther Einleitung 6

    Abstraktionsebenen

    VerhaltenStruktur

    Polygone

    Differentialgleichung Boolesche Gleichung

    Algorithmus RegisterTransfer Sprache

    Stickdiagramme

    Standardzellen

    Floor PlanGeometrie

    Prozessoren, ...

    TransistorenGatter

    RegisterTransfer

    VHDL

  • Dr. Wolfgang Gnther Einleitung 7

    Wichtige Eigenschaften

    Modellierung auf Verhalten und auf Strukturebene

    Modellierung von Gleichzeitigkeit

    Abstrakte Datentypen

    Hochsprachenkonstrukte

    Strenge Typisierung

    Diskrete EventSimulation

  • Dr. Wolfgang Gnther Einleitung 8

    Standards

    Standardisierung 1987 als IEEE 1076

    Erweitert 1993 (IEEE 10761993)

    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

  • Dr. Wolfgang Gnther Einleitung 9

    Der Entwurfsprozess

    RTL Beschreibung

    BehavioralSynthesis Tool Handentwurf

    Logiksynthese

    RTL: RegisterTransfer Level

    Spezifikation des Verhaltens

    Netzliste,technologieunabhngig

  • Dr. Wolfgang Gnther Einleitung 10

    Der Entwurfsprozess (2)

    Technology Mapping

    Physical Design

    Einfgen von Testlogik

    Timing,Power,etc.

    Netzliste,technologieunabhngig

    Netzliste,technologieabhngig

  • Dr. Wolfgang Gnther Einleitung 11

    Formale Verifikation

    RTL Beschreibung

    Logiksynthese

    Property Checking

    Equivalence Checking

    Equivalence Checking

    Technology Mapping

    Physical Design Equivalence Checking

  • Dr. Wolfgang Gnther Einleitung 12

    Bezeichner (identifier)

    Drfen nur aus Buchstaben, Ziffern und Unterstrichen bestehen

    mssen mit einem Buchstaben beginnen

    jedem Unterstrich muss ein anderes Zeichen folgen

    es drfen keine reservierten Worte verwendet werden

    GroKleinschreibung spielt keine Rolle

  • Dr. Wolfgang Gnther Einleitung 13

    Beispiele

    Erlaubt:bus, Bus, BUSbus_7mem_7_reg

    Nicht erlaubt:bus__77mem_mem

  • Dr. Wolfgang Gnther Einleitung 14

    Reservierte Worte VHDLabsaccessafteraliasallandarchitecturearrayassertattributebeginblockbodybufferbuscase

    componentconfigurationconstantdisconnectdowntoelseelsifendentityexitfileforfunctiongenerategenericguarded

    ifininoutislabellibrarylinkageloopmapmodnandnewnextnornotnull

    ofonopenorothersoutpackageportprocedureprocessrangerecordregisterremreportreturn

    selectseveritysignalsubtypethentotransporttypeunitsuntilusevariablewaitwhenwhilewith

    xor

  • Dr. Wolfgang Gnther Einleitung 15

    Reservierte Worte VHDL93groupimpureinertialliteralpostponedpurerejectrol

    VHDL93

    rorsharesslasllsrasrlunaffectedxnor

  • Dr. Wolfgang Gnther Einleitung 16

    Extended Identifiers

    Beginnen und enden mit Backslash (\)

    Drfen dazwischen beliebige Zeichen enthalten

    Sind casesensitiv

    Beispiele:

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

    name \name\ \Name\ \name \

    VHDL93

  • Dr. Wolfgang Gnther Einleitung 17

    Kommentare

    Beginnen mit ,, und enden mit der Zeile

    Beispiel: s

  • Dr. Wolfgang Gnther Einleitung 18

    Beispiel: ANDGatter

    ' Strukturell:

    ' Wertetabelle:

    ca

    b

    b \ a 0 10 0 01 0 1

  • Dr. Wolfgang Gnther Einleitung 19

    Entity fr ein ANDGatter

    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;

  • Dr. Wolfgang Gnther Einleitung 20

    Entity

    Definiert die Schnittstelle nach auen

    Pins knnen seinin Eingang

    out Ausgang

    inout Bidirektional

    ... und andere

    Ausgnge knnen nicht gelesen werden,Eingnge knnen nicht geschrieben werden

  • Dr. Wolfgang Gnther 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 ); Dont care

    Unterschied std_logic vs. std_ulogic: spter

  • Dr. Wolfgang Gnther Einleitung 22

    Architecture

    beschreibt die Funktion des Bausteins mit Hilfe von

    Strukturelementen

    Verhaltensbeschreibung

    Mischformen sind mglich

    Es kann mehrere Architectures fr eine Entity geben

  • Dr. Wolfgang Gnther Einleitung 23

    Implementierung AND

    architecture rtl1 of my_and isbegin c

  • Dr. Wolfgang Gnther 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

  • Dr. Wolfgang Gnther 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

  • Dr. Wolfgang Gnther Einleitung 26

    Operationen auf std_(u)logic

    and

    or

    not

    nand

    nor

    xor

    xnor

  • Dr. Wolfgang Gnther Einleitung 27

    Wertetabelle NOT

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

  • Dr. Wolfgang Gnther Einleitung 28

    Beispiel: Halbaddierer

    Strukturell:

    Wertetabelle:

    couta

    b

    0 10 0 01 0 1

    cout

    sum

    sum 0 10 0 11 1 0

  • Dr. Wolfgang Gnther 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

  • Dr. Wolfgang Gnther 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

  • Dr. Wolfgang Gnther Einleitung 31

    Alternative Implementierung

    architecture rtl of fa issignal tmp : std_logic;begin tmp

  • Dr. Wolfgang Gnther 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

    Initialisierungswert

  • Dr. Wolfgang Gnther Einleitung 33

    Signal Declaration und Synthese

    Initialisierungswerte fr Signale sind nicht synthetisierbar.

    Deshalb sollten alle Signale ber ein ResetSignal initialisiert werden.

  • Dr. Wolfgang Gnther Einleitung 34

    Signal Assignment

    Beispiele:out

  • Dr. Wolfgang Gnther Einleitung 35

    Constant Declaration

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

    Verbessern die Les und Wartbarkeit

    Erhhen die Flexibilitt