If you can't read please download the document
Upload
dinhthuan
View
237
Download
0
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