WS2002/03 PROJEKT WÜRFEL von Vincent Bootz, Christoph Beigel, Matthias Ackermann
Übersicht Übersicht 1. Spezifikation 2. Designflow 3. Architektur 4. Zufallszahlen mit LFSR 5. Synchronisationsschaltung 6. Syntheseergebnisse (Würfel) 2
1. Spezifikation System: 1. Spezifikation - Synchrones Design - Aktivierung durch einen Taster - Zusätzlich Reset - Takt 1 MHz - Zielsystem Xilinx Virtex 1000E 3
Funktion: 1. Spezifikation - Würfelstandanzeige wie echter Würfel - Würfelvorgang hör- und sichtbar - Anzeige quasi zufällig - Ausrollen in verschiedenen Geschwindigkeiten - Ausrollen auch bei kurzem Tastendruck - Dauer Tastendruck bestimmt Länge Ausrollen - Ergebnis durch Tonfolgen signalisieren 4
2. Designflow Projekt Würfel 5 2. Designflow
Architektur entwerfen und Module spezifizieren Testbench 2. Designflow VHDL Code erstellen (rtl) Simulation des VHDL Codes mit ModelSim Synthese des VHDL Codes mit Design_Analyzer Netzliste sdf- File Netzliste mit sdf- File Simulieren Boundary Scan einfügen Strukturaler Test (ATPG) Scan Path einfügen Strukturaler Test (ATPG) (Funktionaler Test) Konzept Testplatine erstellen VHDL Code auf Virtex 1000E laden 6
3. Architektur Taster res_n clk Virtex 1000 E key sync int_res_n int_key run_out_contr Nachlaufkontrolle speed_gen Anzeige Frequ. 20 bis 0 Hertz speed_trigger pre_ready count_impuls timing_gen Generation von Timing- Signalen pulse_int_key_wait dice_count LFSR pulse_10ms ready score sound_gen Sound Auswertung und Sound Generierung display_contr Anzeige Steuerung fin sound_out disp_out 7
3. Architektur sound_gen 3. Architektur count_impuls pulse_10ms ready pulse_10ms score int_key m_sound_roll roll_on m_sound_score sound_low sound_high fin s_roll_on s_sound_low s_sound_high m_freq_gen sound_out fin 8
4. Zufallszahlen 4. Zufallszahlen Was ist Zufall Mit dem Computer nicht realisierbar Zwei Methoden für die Erzeugung von Pseudo-Zufallszahlen ilineare Kongruenz iadditive Kongruenz -> LFSR 9
LFSR Linear Feed-Back Shift Register =ˆ 5 0 1 0 1 G u ( ) = u 4 + u + 1 10 4. Zufallszahlen
Zustand 1 - Initialisierung =ˆ 5 0 1 0 1 1 1 0 11 4. Zufallszahlen ( LFSR Beispiel)
Zustand 2 (einen Takt später) =ˆ 11 1 0 1 1 1 0 1 12 4. Zufallszahlen ( LFSR Beispiel)
Zustand 3 (nach einem weiteren Takt) =ˆ 6 0 1 1 0 0 0 0 13 4. Zufallszahlen ( LFSR Beispiel)
4. Zufallszahlen Zusammenfassung LFSR Kryptographisch nicht sicher Einfach zu Implementieren Findet oft Anwendung (CRC-Check) 14
5. Synchronisationsschaltung 5. Synchronisationsschaltung asyn. Signale sync_1 Q Q sync_2 key2 key_1 int_key key2 key2_1 int_key2 res_n Q Q int_res_n syn. Signale Ein asynchrones Signal wird mit der obigen Schaltung einsynchronisiert (bei dieser Schaltung erfolgt auch gleich eine Invertierung der asynchronen Eingangssignale durch den Abgriff an Q NICHT, außerdem wird der RESET-Eingang durchgeschleift). 15
Warum dieser Aufwand? 5. Synchronisationsschaltung iidealer Schalter ischaltflanken unendlich steil irealer Schalter iprellen (mech. Schwingen der Schaltkontakte) ioxidation von Kontaktflächen (Lichtbogen Schaltzeit-Beeinflussung) iasynchrones Verhalten des Benutzers Einschalten Pegel log 1 UNKONW log 0 Ausschalten Setup- und Hold-Time Violations, die die Funktion gefährden! 16
Wie funktioniert also die Synchronisation? 5. Synchronisationsschaltung A SYN D1 Q D-FF Q1 CLK A SYN CLK Q1 Q2 t SETUP t HOLD D2 Q D-FF Q2 Dn D-FF Qn Delay-Wahrscheinlichkeit nimmt ab Q 17
6. Syntheseergebnisse (Würfel) 6. Synthese Ergebnisse (Würfel) Im folgenden wollen wir kurz auf Erkenntnisse bei der Synthese eingehen. Wir haben das Würfeldesign mehrmals synthetisiert, mit verschiedenen Testarchitekturen und Pads. LEISTUNG Leistung in µw, (Net Switching Power) Normal (das REINE Design) 421.110 Normal aber ungrouped 464.937 Normal mit Pads 436.041 Scan Path mit Pads 891.273 Boundary Scan mit Pads 491.332 Boundary Scan und Scan Path mit Pads 972.835 Teststrukturen, welche das Design umgeben, haben einen großen Anteil an der gesamten Leistungsaufnahme. 18
AREA Projekt Würfel Non Net Total Cell Combinational Combinational Interconnect Area Normal 1216.739 1178.110 4002.861 6397.712 6. Synthese Ergebnisse (Würfel) Normal aber ungrouped 1203.500 1178.100 4763.850 7145.474 Normal mit Pads 2319.770 1178.110 4046.029 7543.909 Scan Path mit Pads 2555.920 1470.150 4730.668 8756.738 Boundary Scan mit Pads 2940.450 1514.020 4993.598 9448.068 Boundary Scan und Scan Path mit Pads 3199.710 1841.42 5773.076 10814.21 TIMING MAX-PATH Clock Skew (data arrival time in ns) in ns Normal 53.74 14.93 Normal aber ungrouped 59.51 20.38 Normal mit Pads 72.10 33.30 Scan Path mit Pads 71.35 33.30 Boundary Scan mit Pads 73.49 34.69 Boundary Scan und Scan Path mit Pads 79.16 34.69 Bei einer Optimierung ist es wichtig alle Design-Parameter imauge zu behalten, um das beste Ergebnis zu erreichen. 19
Rückblick Rückblick 1. Spezifikation 2. Designflow 3. Architektur 4. Zufallszahlen mit LFSR 5. Synchronisationsschaltung 6. Syntheseergebnisse (Würfel) 20
6.1 Scan Path Scan-FlipFlop : 6.1 Scan Path Scan Path : - Scan Path ist ein zusätzlicher (serieller) Weg in einer Digitalschaltung, der zum Zuführen von Testdaten in die Kombinatorik-Blöcke der Schaltung und dem Auslesen dient. 21
Rückblick Rückblick 1. Spezifikation 2. Designflow 3. Architektur 4. Zufallszahlen mit LFSR 5. Synchronisationsschaltung 6. Syntheseergebnisse (Würfel) 22
Projekt Würfel 23
6.2 Boundary Scan Da die Anzahl der Module auf einem Chip (SOC) stetig wächst, ist dies eine Möglichkeit um Interconnects zwischen ICs zu testen. 6.2 Boundary Scan IEEE Std 1194.1 (JTAG) JTAG DEVICE I/O-PINs Scan Path 24
JTAG DEVICE (vergrößert) Projekt Würfel 25 6.2 Boundary Scan
Rückblick Rückblick 1. Spezifikation 2. Designflow 3. Architektur 4. Zufallszahlen mit LFSR 5. Synchronisationsschaltung 6. Syntheseergebnisse (Würfel) 26