VHDL Einführung 2 - cs.fau. · PDF fileOutlineSimulationDesign-Richtlinien VHDL Einführung 2 MarcReichenbachundMichaelSchmidt Informatik 3 / Rechnerarchitektur Universität Erlangen

Embed Size (px)

Citation preview

  • Outline Simulation Design-Richtlinien

    VHDL Einfhrung 2

    Marc Reichenbach und Michael Schmidt

    Informatik 3 / RechnerarchitekturUniversitt Erlangen Nrnberg

    05/12

    1 / 37

  • Outline Simulation Design-Richtlinien

    Gliederung

    Simulation und Testbench

    Design-Richtlinien

    2 / 37

  • Outline Simulation Design-Richtlinien

    Simulation und Testbench

    vor Synthese/Implementierung zunchst Simulation

    syntaktische und funktionale berprfung des VHDL-Codes

    Testbench-Entwurf fr Simulation einer Komponente (freinfache Module/Designs)

    fr komplexere Designs: TCL, Verifikation (SystemVerilog)

    Testbench ist selbst eine VHDL-Datei, mit leerer Schnittstelle

    Stimuli fr zu simulierende Komponente werden in derTestbench erzeugt

    3 / 37

  • Outline Simulation Design-Richtlinien

    Allgemeiner Aufbau einer Testbench

    Unit Under Test

    Testbench

    StimuliGenerierung Auswertung

    4 / 37

  • Outline Simulation Design-Richtlinien

    Allgemeine Syntax-Regeln fr eine Testbench

    en t i t y TEST i send TEST;a r ch i t e c t u r e t e s t b en ch of TEST i s

    component Port end component ;

    s i g n a l ;

    begin:

    port map (< L i s t e de r ang e s c h l o s s e n en S i gna l e >);

    end t e s t b en ch ;

    5 / 37

  • Outline Simulation Design-Richtlinien

    Beispiel: Testbench fr AND2

    en t i t y AND2_tb i send AND2_tb ;a r ch i t e c t u r e t e s t b en ch of AND2_tb i s

    component AND2port ( a : i n std_log ic ;

    b : i n std_log ic ;o : out std_log ic ) ;

    end component ;

    s i g n a l as t im : std_log ic ;s i g n a l bst im : std_log ic ;s i g n a l o : std_log ic ;

    begin

    uut : AND2port map( a => ast im ,

    b => bst im ,o => o ) ;

    6 / 37

  • Outline Simulation Design-Richtlinien

    Beispiel: Testbench fr AND2

    s t i m u l i : processbegin

    as t im

  • Outline Simulation Design-Richtlinien

    Beispiel: Testbench fr AND2

    Ergebnis einer funktionalen Simulation

    wichtig: Zeiten spielen bei funktionaler Simulation keine Rolle

    tatschliche Verzgerungszeiten erst nach Place&Routeverfgbar

    8 / 37

  • Outline Simulation Design-Richtlinien

    Beispiel: Prozess fr Taktgenerierung

    . . .

    s i g n a l c l k : std_log ic ;

    c l k g en : processbegin

    c l k

  • Outline Simulation Design-Richtlinien

    Beispiel: Prozess fr Taktgenerierung

    Erzeugtes Taktsignal:

    10 / 37

  • Outline Simulation Design-Richtlinien

    Synthese Probleme

    Grundproblem VHDL fr Anfnger: nicht die komplette Syntaxist synthetisierbar!

    Strukturbeschreibungen unkritisch

    Datenflussbeschreibung auch unkritisch, bis auf wenigeAusnahmen

    Beispiel fr nicht synthesefhiges Datenfluss-Statement:x

  • Outline Simulation Design-Richtlinien

    Synthese Probleme

    Synthese von Prozessen am kritischsten aber auch amflexibelsten (hchste Abstraktionsstufe)

    Abbildung fr Synthesetools am kompliziertesten,Fehlermeldungen oft schwer nachvollziehbar

    deshalb Handhabung fr Anfnger schwierig: Wie muss eine synthetisierbare Prozessbeschreibung aussehen? Lieber einen einzelnen Prozess verwenden? Oder Funktionalitt in viele kleine Prozesse zerlegen? Welche Konstrukte, wie verwenden? Aufteilung der Funktionalitt in Prozess- und

    Datenflussbeschreibungen? ...

    deshalb nachfolgende Codierungs-Empfehlungen beachten!

    12 / 37

  • Outline Simulation Design-Richtlinien

    RTL (Register-Transfer-Level)

    nach Mglichkeit immer Modellierung auf RTL-Ebene

    clk

    QDKombinatorischeLogik

    CLK

    KombinatorischeLogik

    KombinatorischeLogik

    QD

    CLK

    Trennung von Registern und kombinatorischer Logik erleichtert bersichtlichkeit, untersttzt Synthesewerkzeuge

    (arbeiten auf dieser Ebene)

    Trennung muss nicht unbedingt so strikt erfolgen

    aber prinzipiell sollte zu modellierende Funktionalitt inkombinatorische und sequentielle (taktsynchrone)Schaltungsanteile zerlegt werden

    13 / 37

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    enthalten keine Speicherelemente

    Ausgnge werden bestimmt durch boolesche Verknpfungen(Gatter) der aktuellen Eingnge

    auch als Schaltnetz bezeichnet

    Realisierung durch Datenflussbeschreibungen oderkombinatorische Prozesse

    14 / 37

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Datenflussbeschreibungen

    n e b e n l a e u f i g e Da t e n f l u s s b e s c h r e i b u n goutput1

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Datenflussbeschreibungen

    a r i t hm e t i s c h e Opera t i onen e v t l . z u s a e t z l i c h e B i b l i o t h e k e n b e n o e t i g t !summe

  • Outline Simulation Design-Richtlinien

    Kombinatorische SchaltungenDatenflussbeschreibungen

    bed i ng t e S i gna l z uwe i s ungmuxout

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Datenflussbeschreibungen

    Synthese-Ergebnis fr bedingte und selektive Signalszuweisungfr dieses Beispiel gleich

    ansonsten immer auf Unterschied achten (Priorittsencoder vs.Multiplexer-Struktur)

    18 / 37

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Kombinatorische Prozesse

    enthalten keine Taktabfrage

    alle Signale, von denen im Prozess gelesen wird, mssen in dieSensitivittsliste

    fr alle kombinatorischen Ausgnge muss es Zuweisungen fralle mglichen Prozessdurchlufe geben

    alle Pfade/Verzweigungen im Prozess abdecken (z.B. beiif- oder case-Anweisungen)

    sonst knnen Latches entstehen

    19 / 37

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Kombinatorische Prozesse f e h l e n d e s S i g n a l i n S e n s i t i v i t a e t s l i s t ef a l s c h : process ( i npu t1 )begin

    output1

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Kombinatorische Prozesse

    betrachten Beispiel fr fehlende Abdeckung

    Eingangswert input soll auf einen Ausgang outputdurchgeschalten werden, wenn ein entsprechendes Steuersignalcontrol auf 1 gesetzt ist

    f e h l e n d e Zuweisung f u e r e i n en Zweigf a l s c h : process ( c on t r o l , i n pu t )begin

    i f c o n t r o l = 1 thenoutput

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Kombinatorische Prozesse

    Syntheseergebnis

    Latch wird integriert (mglichst vermeiden, spter mehr dazu) Grund: unklar was output im Falle von control=0 zugewiesenwerden soll

    22 / 37

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Kombinatorische Prozesse Zuweisung i n a l l e n Verzwe igungenr i c h t i g : process ( c on t r o l , i n pu t )begin

    i f c o n t r o l= 1 thenoutput

  • Outline Simulation Design-Richtlinien

    Kombinatorische Schaltungen

    Kombinatorische Prozesse

    Alternative zur Abdeckung aller Flle: Vorinitialisierung

    alle Ausgangssignale am Beginn des Prozesses mitDefault-Wert belegen

    V o r i n i t i a l i s i e r u n gr i c h t i g : process ( c on t r o l , i n pu t )begin

    output

  • Outline Simulation Design-Richtlinien

    Sequentielle Schaltungen

    haben im Gegensatz zu komb. Schaltungen einen internenZustand (Historie)

    enthalten demnach Speicherelemente

    deshalb auch als Schaltwerk bezeichnet

    heute meist Einsatz taktflankengesteuerter D-FlipFlops (DFF)und Register (siehe bersichtsbild RTL)

    Grund: Speicherung von Zustnden zu definierten Zeitpunkten(Taktflanke)

    Realisierung wieder mglich durch Datenflussbeschreibungenoder durch taktsynchrone Prozesse

    25 / 37

  • Outline Simulation Design-Richtlinien

    Sequentielle Schaltungen

    Sequentielle Datenflussbeschreibungen

    durch Taktflankenabfrage in Datenflussbeschreibungen

    Beispiel: Realsierung eines simplen DFFs

    t a k t f l a n k e n g e s t e u e r t e s DFF ( lowh igh F lanke )Dout

  • Outline Simulation Design-Richtlinien

    Sequentielle Schaltungen

    Taktsynchrone Prozesse

    ohne Sensitivittsliste (nicht empfohlen) Prozess muss wait until auf Taktflanke enthalten

    wait u n t i l c l k e ven t and c l k = 1 ;

    Beispiel: wieder simples DFF

    processbegin

    wait u n t i l c l k e ven t and c l k = 1 ;Dout

  • Outline Simulation Design-Richtlinien

    Sequentielle Schaltungen

    Taktsynchrone Prozesse

    mit Sensitivittsliste (empfohlen) nur das Taktsignal und optionales Reset-Signal in

    Sensitivittsliste

    . . .process ( c l k ). . .process ( c l k , r e s e t ). . . .

    28 / 37

  • Outline Simulation Design-Richtlinien

    Sequentielle Schaltungen

    Taktsynchrone Prozesse

    mit Sensitivittsliste (empfohlen) Taktflankenabfrage innerhalb des Prozesses

    lowh igh F lankei f c l k e ven t and c l k = 1 then

    highlow F lankei f c l k e ven t and c l k = 1 then

    lowh igh F lanke ( s t d_ l og i c )i f r i s ing_edge ( c l k ) then

    highlow F lanke ( s t d_ l og i c )i f f a l l i ng_edge ( c l k ) then

    29 / 37

  • Outline Simulation Design-Richtlinien

    Sequentielle Schaltungen

    Taktsynchrone Prozesse

    mit Sensitivittsliste (empfohlen) Beispiel: simples DFF

    process ( c l k )begin

    i f c l k e ven t and c l k = 1 thenDout

  • O