Programowanie Układów Logicznych kod kursu: ETD6203 Analiza czasowa W8 17.04.2019 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec
Plan wykładu Zależności czasowe w układach programowalnych Pojęcia związane z sygnałem Narzędzia optymalizacji czasu i rozmiaru Ograniczenia czasowe SmartXplorer, Plan Ahead Przykładowe pytania - podsumowanie 2
Propagacja sygnałów Dzięki zastosowaniu symulacji czasowej po syntezie możliwe jest określenie opóźnień wynikających z ułożenia elementów, bramek, komponentów wewnątrz układu FPGA.
Propagacja sygnałów Matrycowe rozmieszczenie komórek logicznych CLB wymusza zastosowanie segmentowych połączeń między nimi, niesie to za sobą trudne do przewidzenia i zależne od algorytmów syntezy logicznej parametry czasowe realizowanego projektu. 6 Trasa propagacji sygnału: t PD = t 1 + t 2 + t 3 + t 4 + t 5 + t 6 +
Kilka pojęć związanych z czasem Czas propagacji (ang. propagation delay) Czas reakcji, zadziałania (ang. contamination delay) Czas ustalania (ang. setup time) Czas trzymania (ang. hold time) Jitter 7
Czas propagacji - propagation delay t PD czas potrzebny na zmianę i ustabilizowanie się wartości sygnału wyjściowego pod wpływem zmian sygnału wejściowego 8
Czas reakcji - contamination delay t CD wartość ta wskazuje ilość czasu potrzebnego do zmiany stanu wyjścia cyfrowego zainicjowana zmianę sygnały na wejściu układu 9
Czas ustalania oraz trzymania - setup time t ST, hold time t HT czas stabilizacji danych wejściowych przed pojawieniem się zbocza CLK czas trzymania danych po wystąpieniu zbocza sygnału CLK t DQ 1
Opóźnienie sygnałów - clock skew długie połączenia, bufory na liniach zegarowych, logika komb. na liniach zegarowych 11
Jitter Jitter jest to chwilowe odstępstwo zboczy sygnałów od ich idealnych wartości. Powodem niestabilności sygnału są zazwyczaj: fluktuacje napięć zasilania, zmiany temperatury, obciążenie, zakłócenia zewnętrzne (emitowane przez inne urządzenia), szum drgań termicznych układów elektronicznych itp. Jitter może dotyczyć częstotliwości, amplitudy i fazy danego sygnału. wzorcowy T CLK0 jitter z jitter em okresowo T CLK (n) T CLK (n) T CLK (n+1) 1 J ACC = T CLK (n) nt CLK0
CRYSTAL OSCILLATOR EPSON Q3851CA000055 XG-1000CA 50 MHZ OSCILLATOR, SPXO, XG- 1000CA, 50 MHZ, SMD 13 http://pl.farnell.com/epson/q3851ca000055-xg-1000ca-50-mhz/oscillator-spxo-xg-1000ca-50-mhz/dp/1907482
Widmo sygnału z jitter-em Większa wartości jitter-a powoduje poszerzenie prążka widmowego 14
Metody eliminacji jitter-a - jitter cleaning clock Si5317 Silicon Labs 15 https://www.silabs.com/support%20documents/technicaldocs/si5317.pdf http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf
Metody eliminacji jitteru 16 http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf
Metody eliminacji jitter-u 17 http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf
Przykład minimalny okres sygnału Po jakim czasie na wyjściu zaobserwujemy zmianę stanu? 18 T MIN = t DQ (A) + t PD (LK) + t ST (B) T MIN = 10 ns + 5 ns + 2 ns = 17 ns f = 1/T MIN = 1/17 ns = 58,8 MHz
Przykład minimalny okres sygnału t HT (B) t CD (A) + t CT (LK) 19 1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał pojawia się na wyjściu log. kombinacyjnej 3) w nast. cyklu zeg. sygnał zostaje przepisany na wyj. out
Przykład f MAX = 58,8 MHz T AB = t DQ (A) + t ST (B) = 9 ns + 2 ns = 11 ns T AC = t DQ (A) + t PD (LK) + t ST (C) = 9 ns + 5 ns + 2 ns = 16 ns 20 T BC = t DQ (B) + t PD (LK) + t ST (C) = 10 ns + 5 ns + 2 ns = 17 ns
Ograniczenia czasowe efekty - Timing Constraints Bez globalnych ograniczeń czasowych Z globalnymi ograniczeniami czasowymi 21 Grupowanie optymalizowane pod kątem poprawy czasu wewnątrz struktury logicznej Ocenie czasowej podlegają wszystkie połączenia, CLB zostają rozmieszczone bliżej IOB
22 Plan Ahead - floorplaner
Ograniczenia czasowe 23 W procesie projektowania i syntezy CPLD/FPGA istnieją cztery rodzaje ograniczeń: ograniczenie między połączeniowe, - obejmuje połączenia pomiędzy elementami synchronicznymi, taktowanych globalnym sygnałem zegarowym, ograniczenie przesunięć czasowych od wej. i z wyj., - obejmuje połączenie pomiędzy elementami synchronicznymi z sygnałami z wejścia, oraz synchronicznych elementów wyjściowych, ograniczenia czasowe od PAD-u do PAD-u, - obejmuje połączenia od pad-u do pad-u, ścieżki nie mogą zawierać elementów synchronicznych, ograniczenie od do - obejmuje ograniczania pomiędzy dwoma określonymi grupami sygnałów, grupa może być zdefiniowana lub predefiniowana
Ograniczenia czasowe czas do wejścia czas pomiędzy czas do wyjścia ADATA FLOP1 D Q FLOP2 D Q FLOP3 D Q OUT1 CLK BUS [7..0] BUFG FLOP4 D Q FLOP5 D Q OUT2 CDATA od wejścia do wyjścia (PAD to PAD) 24 http://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf
Punkty końcowe Elementami końcowymi są: - wejścia/wyjścia (I/O pads) - elementy synchroniczne: FFs, Latches, Rams, DSP slices, SRLs, Flip-Flops Zatrzaski RAM DSP48 25 W ich skład nie zalicza się: - LUT, - połączeń, ścieżek oraz elementów asynchronicznych
Analiza wrażliwości czasowej - możliwości Umożliwia przeprowadzenie czterech rozbudowanych analiz czasowych, umożliwiających: osiągnięcie czasów propagacji sygnałów zgodnie z zadanymi ograniczeniami (User Constraints), oszacowania czasów propagacji wybranych ścieżek sygnałów, oszacowanie czasów propagacji wybranych odcinków ścieżek, porównanie czasów dla zadanych przez użytkownika ograniczeń czasowych dot. sygnału zegarowego i czasów opóźnienia sygnałów między wejściem a wyjściem układu 26 http://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf
Tworzenie ograniczeń Tworzenie ograniczeń czasowych jest procesem dwuetapowym, który obejmuje: - tworzenie grup elementów np. elementy synchroniczne przerzutniki, zatrzaski, ram - określenie ograniczeń czasowych dla każdej grupy oraz pomiędzy nimi, Wymagania stawiane projektowi zadawane są w pliku *.ucf: - wymagania czasowe: częstotliwość, opóźnienia sygnałów, - wymagania co do sposobu rozmieszczania komponentów 27
Edytor ograniczeń - Constraints editor, Create Timing Constraints Dostęp z poziomu User Constraints Dwuklik uruchamia edytor ograniczeń 28
Analiza czasowa - wynik analizy, raport ogólny Ograniczenia liczba analizowanych ścieżek, liczba błędów, długość krytycznych połączeń Całkowite opóźnienie w odniesieniu do danych i zegara Analiza zegara Szczegółowy wykaz rodzaj opóźnienia najgorszy przypadek, podsumowanie 29
Optymalizacja czas, rozmiar - Post-Place & Route Static Timing Report Analiza, czy spełnione zostały założone ograniczenia? Design Summary/Reports Place & Route report Założenia odnośnie syg. zegarowego Actual Period 2,025 ns All constraints were met. 30
31 Optymalizacja czas, rozmiar - Failing Constraints
Optymalizacja czas, rozmiar - optymalizacja procesu syntezy XST odpowiednie wykorzystanie możliwości modułu XST pozwala zwiększać wydajność Synthesis Options HDL Options Xilinx Specific Options 32
Optymalizacja czas, rozmiar - optymalizacja procesu syntezy XST Łączenie LUT - LUT Combining korzystanie z zasobów LUT (generatorów funkcji) powiązanie, XST looks for functions that use the same five inputs and tries to pair them Recommended for Virtex-5, Spartan-6, and Virtex-6 architectures Ograniczenie zasobów sterujących - Reduce Control Sets XST będzie korzystał z LUT zamiast przerzutników z CE, synch. SET/RESET, wszystkie FF w obrębie Slice a korzystają z tych samych CE, SET, RESET 33
Optymalizacja czas, rozmiar - optymalizacja procesu syntezy XST Symbol blokady Oznacza tylko tyle, że ustawienia regulowane są przez cel projektu i ustawień strategii, Zmiana wymaga wybór innej strategii Możliwość zmiany właściwości bardziej zaawansowanych 34
Optymalizacja czas, rozmiar - zalecana strategia (1) Korzystaj ze standardowych opcji i planów syntezy, (2) Zezwól na korzystanie z ograniczeń XCF, (3) Zezwól na umieszczanie rejestrów w blokach IOB, zwiększa to szybkość działania wyjść, (4) Redukuj zasoby zoptymalizuj kod, korzystaj z dedykowanych zasobów, (5) Korzystaj z celów i strategii 35
Optymalizacja czas, rozmiar - ISE WebPack Design Goals & Strategies Zaawansowane opcje syntezy i implementacji Opcje definiowalne Zrównoważony poziom optymalizacji Optymalizacja czasowa Redukcja obszaru Ograniczenie czasu działania Optymalizacja zużycia mocy Możliwość edytowania strategii 36
Optymalizacja czas, rozmiar - ISE WebPack SmartXplorer SmartXplorer porównuje wyniki wszystkich iteracji Najlepszy wynik zostaje zapisany w katalogu projektu uzyskane rezultaty są wyświetlane na bieżąco Informacje na temat wszystkich iteracji są natychmiast dostępne w oknie podsumowanie projektu 37
38 Optymalizacja czas, rozmiar - PlanAhead
Optymalizacja czas, rozmiar - technika programowania Proste kroki kodowania zwiększające wydajność kodu: przetwarzanie równoległe, procesy, procesy, procesy operacje współbieżne, optymalizacja maszyn stanów, grupować operacje arytmetyczne, wykorzystanie zasobów wewnętrznych: mnożarki, rejestry przesuwne, LUT RAM, BlkockRAM, DSP, unikać konstrukcji o wysokim poziomie zagnieżdżenia: ograniczać pętle w kodzie. 39 Tworzenie projektów synchronicznych pozwala tworzyć projekty stabilne w pełnym zakresie częstotliwości sygnałów wejściowych.
W ramach podsumowania kompresja 40 http://www.xilinx.com/training/fpga/xst-synthesis-options-video.htm
Literatura dodatkowa Xilinx Timing Constraints User Guide http://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf http://www.xilinx.com/itp/xilinx10/books/docs/timing_constraints_ug/timing_constraints_ug.pdf Constraints Guide http://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pd What are OFFSET Constraints? http://www.xilinx.com/support/documentation/white_papers/wp237.pdf Synthesis and Simulation Design Guide http://www.xilinx.com/itp/xilinx10/books/docs/sim/sim.pdf 41
Przykładowe pytania 1. Pojęcia związane z sygnałem, czasem 2. Czas propagacji dla logiki kombinacyjnej i synchronicznej 3. Jitter jednostki w jakich jest wyrażany 4. Clock skew przyczyny powstawania 5. Co zaliczamy do punktów końcowych logiki programowalnej 6. Optymalizacja zalecana strategia 7. Ograniczenia zadawane przez użytkownika w projekcie 8. Narzędzia oraz poziomy optymalizacji 42