Programowanie Układów Logicznych kod kursu: ETD6203 VGA, Pobór mocy w układach programowalnych W7 11.04.2018 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec
Plan wykładu Obsługa interfejsu graficznego VGA Klawiatura matrycowa zasada działania Pobór mocy w układach programowalnych Kodowanie a pobór mocy Clock Gating Przykładowe pytania - podsumowanie 2
4 VGA (Video Graphics Array) - Spartan 3E Starter Board
Typowe rozdzielczości wyświetlaczy Tym się zajmiemy 5 źródło:https://commons.wikimedia.org/wiki/main_page
VGA sposób połączenia - na przykładzie Spartan 3E Starter Board FPGA, CPLD 0,717 V LVTTL 3,3 V 75 Ω Red, Green, Blue poziom akceptowalnego napięcia: do 0,7 V Synchronization vertical, horizontal synchronizacja pionowa, pozioma, impulsy cyfrowe, 6 VGA standard zdefiniowany przez VESA
Jednostka projektowa bloku VGA entity VGA is port( reset : in STD_LOGIC; --reset asynchroniczny clk50_in : in std_logic; --zegar główny pin C9 50 MHz red : out std_logic; --sygnał wysycenia koloru czerwonego green : out std_logic; --sygnał wysycenia koloru zielonego blue : out std_logic; --sygnał wysycenia koloru niebieskiego hs_out : out std_logic; --sygnał synchronizacji poziomej vs_out : out std_logic); --sygnał synchronizacji pionowej end VGA; NET "reset" LOC = N17; NET "reset" IOSTANDARD = LVTTL; NET "clk50_in" LOC = C9; NET "clk50_in" IOSTANDARD = LVTTL; NET "blue" LOC = G15; NET "blue" IOSTANDARD = LVTTL; NET "green" LOC = H15; NET "green" IOSTANDARD = LVTTL; NET "red" LOC = H14; NET "red" IOSTANDARD = LVTTL; NET "hs_out" LOC = F15; NET "hs_out" IOSTANDARD = LVTTL; NET "hs_out" SLEW = FAST; NET "vs_out" LOC = F14; NET "vs_out" IOSTANDARD = LVTTL; NET "vs_out" SLEW = FAST; 7
VGA cyfrowe mieszanie barw Analogowe cyfrowe mieszanie barw W układzie prototypowym Spartan 3E Starter Board możliwe jest uzyskanie tylko 8 kolorów pixela. 8
VGA zasad działania Oś pozioma (horizontal) 640 pikseli wyświetlanych w czasie ruchu wiązki Oś pionowa (vertical) podczas powrotu wiązki dane nie są odświeżane Powierzchnia ekranu 9 Skanowanie rastrowe XY w standardzie VGA
Dane RGB 480 VGA (ang. Video Graphics Array) - 640x480@60Hz Oś pozioma (horizontal) obszar wygaszania obramowanie Oś pionowa (vertical) Obszar aktywny Dane RGB 10 640
Standard 640x480@60Hz Dane RGB 640x480@60Hz 11
12 Rozdzielczość a częstotliwość pracy
hs_out vs_out Synchronizacja pozioma Synchronizacja pionowa Licznik linii i pikseli synchhor: process (hs) begin if (hs >= "0000000000" )and (hs <= "0001100000" ) then hs_out <= '0'; -- jezeli 0 i 96 else hs_out <= '1'; end if; end process synchhor; synchvert: process (vs) begin if ((vs > "0000000000" ) and (vs < "0000000011" )) then vs_out <= '0'; -- jezeli 0 i 3 else vs_out <= '1'; end if; end process synchvert; zliczanie: process (clk_25mhz, reset) begin if (reset='1') then hs <= (others => '0'); vs <= (others => '0'); elsif (clk_25mhz'event and clk_25mhz = '1') then if (hs = "1100011111") then -- jeżeli 799 linii zeruj hs <= "0000000000"; -- licznik impulsów synchronizacji poziomej else hs <= hs + "0000000001" ; end if; if (vs >= "1000001100" and hs >= "1100011111") then vs <= "0000000000"; -- jeżeli 524 i 799 elsif hs="1100011111" then vs <= vs + "0000000001"; end if; end if; end process zliczanie;
VER 480 linie Definiowanie zawartości ekranu - definicja cyfry 3 hs 192 hs 320 hs 288 0, 0 0, 639 515 vs 128 vs 160 vs 192 vs 224 vs 256 vs 288 vs 160 vs 256 479, 0 479, 639 35 HOR 14 144 pixele 640 784
Zawartości ekranu - definicja cyfry 3 15 if vs > "0010000000" and vs < "0010100000" and hs > "0011000000" and hs < "0101000000" then if vs > 128" and vs < 160" and hs > 192" and hs < 320" then red <= '1'; blue <= '0'; green <= '1'; elsif vs > "0011000000" and vs < "0011100000" and hs > "0011000000" and hs < "0101000000" then elsif vs > 192" and vs < 224" and hs > 192" and hs < 320" then red <= '1'; blue <= '0'; green <= '1'; elsif vs > "0100000000" and vs < "0100100000" and hs > "0011000000" and hs < "0101000000" then elsif vs > 256" and vs < 288" and hs > 192" and hs < 320" then red <= '1'; blue <= '0'; green <= '1'; elsif vs >= "0010100000" and vs <= "0100000000" and hs > "0100100000" and hs < "0101000000" then elsif vs > 160" and vs < 256" and hs > 288" and hs < 320" then red <= '1'; blue <= '0'; green <= '0';
Klawiatura matrycowa 4x4 0 0 0 1 GND Wektor testujący 0 1 0 0
ipod nano Bateria: Li-ion, 3,7 V, 333 mah, => 1,2 Wh przez godzinę można zasilać urządzenie o mocy 1,2 W, konstrukcja oraz obudowa ipod nano jest w stanie odprowadzić 5 W mocy, jeżeli ipod pobiera 5W to: 1,2 Wh / 5W = 15 minut Realny czas pracy urządzenia to: 14 godzin odtwarzania muzyki, => 85 mw 4 godziny w trybie slide show => 300 mw 17 A Twój telefon komórkowy jaką ma baterię? Ile zużywa mocy? Dlaczego?
18 Rynek układów programowalnych
Złote zasady Minimalizacja poboru mocy to proces znajdowania kompromisu pomiędzy tym, ile energii pobiera układ cyfrowy a tym, jaką zapewnia wydajność przetwarzania. W wielu aplikacjach konieczne jest jednoczesne zapewnienie dużej wydajności i niskiego poboru mocy, co prowadzi do sprzeczności i konieczności szukania kompromisu. Zredukowanie wartości prądu pobieranego przez urządzenie ze źródła zasilania, jakim jest akumulator, pozwala na wydłużenie czasu pracy pomiędzy ładowniami. 19 Przekroczenie rozsądnego budżetu mocy może skutkować krótkim czasem życia układu zasilanego bateryjnie, a także, poprzez wzrost temperatury, prowadzić do wydłużenia czasów propagacji przez bramki i w efekcie do zawodnej pracy układu.
Liczba tranzystorów Liczba tranzystorów 1000000 1 Miliard tranzystorów 20 100000 10000 1000 100 10 8086 i486 Pentium i386 80286 Pentium III Pentium II Pentium Pro Source: Intel 1 1975 1980 1985 1990 1995 2000 2005 2010 Projected
CMOS cięgle dominuje Obecnie najpowszechniejszą technologią produkcji układów scalonych jest technologia CMOS (Complementary Metal- Oxide-Semiconductor) zapewnia mały pobór prądu w stanie statycznym, moc rozpraszana jest proporcjonalna do częstotliwości i kwadratu napięcia zasilania, szybkość działania wzrasta ze wzrostem napięcia zasilania i spadkiem temperatury, tranzystory MOS mają izolowaną bramkę stanowią obciążenie pojemnościowe, 21
Gęstość prądu i jego skutki In collaboration with Electromigration in Cu metalisation Interconnection density 500 mln/cm2 Current density ~ 10 7 A/cm 2 22 Ehrenfried Zschech, Talk at the WRUT, Nanoscale Functional Materials, Jan. 2012
Wpływ technologii 23 Zmniejszenie wymiarów geometrycznych kanału w tranzystorach, niesie ze sobą niebezpieczeństwo zwiększenia mocy statycznej
Pobór mocy w układach program. Oceniając pobór mocy przez układ programowalne należy uwzględnić pięć różnych czynników: 24 1. Moc rozruchu ilość mocy pobieranej przez urządzenia podczas włączania zasilania, 2. Konfiguracja moc zużywana podczas ładowania danych do FPGA (dotyczy urządzeń, w których bitstream ładowany jest do SRAM z FLASH), 3. Moc statyczna moc zużywana gdy układ jest zasilany ale nie aktywny, 4. Moc dynamiczna ilość mocy zużywana podczas pracy układu, 5. Moc w trybie uśpienia moc w trybie uśpienia lub trybie niskiego poboru mocy.
25 Prognozowany czas pracy i stan działania układu programowalnego bilans mocy
26 Połączenia reprogramowalne i ich wpływ na pobór mocy
Wzrost wydajności FPGA pierwszej generacji: niskie częstotliwości, małe zapotrzebowanie na moc, obudowa nie ma znaczenia. Dzisiejsze układy FPGA: wysokie częstotliwości, znaczne zapotrzebowanie na moc, ograniczenie możliwością odpr. ciepła przez obudowę, P MAX wymagane aktywne monitory temperatury. Moc odprowadzana przez obudowę Niska skala integ. Wysoka skala integracji Realne zapotrzebowanie Częstotliwość (MHz) 27 Wytrzymałość termiczna obudowy: 125 C - standardowy rodzaj (plastik), 150 C - przemysłowy, militarny (ceramika).
Inwerter CMOS I CC = I U + I D f + I C f 28 I U składowa prądu upływu, (rząd wartości: setki na), I D (f) składowa pobierana przy przełączaniu, (rząd wartości: setki µa) I C (f) składowa ładowania obciążenie pojemnościowego (rząd wartości: setki µa)
29 Inwerter CMOS
Energia w układach CMOS t 1 t 1 t 1 E SW = P t dt = U DD u i t dt = U DD u C du t 0 dt t 0 t 0 dt = t 1 t 1 = CU DD du C udu = C t 0 t 0 2 U DD 1 2 CU DD 2 = 1 2 CU DD 2 30 energia pobrana z zasilania energia zmagazynowana energia rozpraszana
Składowe mocy w układach progr. Składowa statyczna: Składowa dynamiczna: - przeładowanie pojemości P S = U DD I P D = α U 2 DD C L f - równoczesne przewodzenie obu tranzystorów 31 P P = I U DD t r + t f 2 z punktu widzenia poboru mocy korzystne jest więc, by sygnały wejściowe miały jak najkrótsze czasy narastania i opadania, łączny pobór mocy jest sumą mocy określonych wymienionymi wzorami, dominująca jest jednak moc związana z ładowaniem i rozładowaniem pojemności f
Tendencje w minimalizacji mocy P ~ U 2, f, C, A f ~ 1/C Przetwarzanie równoległe: mniejsza aktywność przełączeń bramek, mniejsza częstotliwość zegara systemowego 32 Minimalizacja na poziomie logicznym: wybór właściwych IP-corów, sterowanie częstotliwością w poszczególnych blokach systemu, minimalizacja długości połączeń w układzie
Moc pobierana przez układ [mw] Pobór mocy - układy z pamięcią ulotną i nieulotną Moc rozruchowa, SRAM stabilizacja napięcia zas. Moc zależna od częstotliwości Konfiguracja komórek SRAM 33 Czas [ms]
Moc pobierana przez układ [mw] Pobór mocy - układy z pamięcią ulotną i nieulotną rozruch statyczna + dynamiczna statyczna wyłączenie 34 Czas [ms]
Moc pobierana przez układ [mw] Moc dynamiczna a częstotliwość pracy Częstotliwość taktowania [MHz] 35 Test mocy dynamicznej pobieranej przez układy różnych producentów. Obciążenie: 290, 8-bitowych liczników w kodzie Graya
Zarządzanie mocą w układach Xilinx 36 Xilinx Power Estimator faza koncepcyjna arkusza kalkulacyjny opracowany przez inżynierów Xilinx na potrzeby szacowania zużycia mocy w zależności od wykorzystanych zasobów XPower Analyzer faza projektowa analiza poboru mocy po implementacji i trasowaniu połączeń w zasobach sprzętowych, wykorzystywana jest wiedza nt. zasobów sprzętowych układu, narzędzie do szacowania Plan Ahead - optymalizacja dystrybucja zasilania na poziomie RTL, projektant określa warunki pracy urządzenia, właściwości I/O Programowa optymalizacja użytych zasobów ograniczanie zasobów, ilości pinów I/O, zmniejszenie ilości użytych BlockRAM, minimalizowanie aktywnych portów BlockRAM, grupowanie sygnałów zegarowych, reorganizacja układów synchronicznych (flip-flops), ogranicznie pionowych oraz poziomych traktów połączeniowych umożliwia odłączenie części układu, grupowanie powiązanej ze sobą logiki kombinacyjnej, sekwencyjnej
Xilinx Power Estimator (XPE) Specyfikacja projektowa czyli bilans mocy, odprowadzania ciepła powinien być realizowany na początku cyklu projektowania produktu (układu). XPE pozwala na oszacowanie: zużycia mocy, energii, temperatury, 37 http://www.xilinx.com/products/design_tools/logic_design/xpe.htm
Xilinx Power Estimator (XPE) http://www.xilinx.com/products/design_to ols/logic_design/xpe.htm 38
XPower Analyzer Dostęp z poziomu ISE 39
XPower Analyzer Narzędzie do szacowania: Zużycia mocy Temperatury złącza Bierze pod uwagę: częstotliwość pracy układu, liczbę aktywnych połączeń pojemność obciążenia, napięcia zasilania, temperaturę otoczenia. 40 XPower Analyzer oblicza łączną średnią wartość zużycia energii i generuje szczegółowy raport
41 XPower Analyzer
XPower Analyzer - raport szczegółowy Raport plik tekstowy: rozszerzenie.pwr, moc całkowita, pobór prądu, zużyte zasoby, odprowadzanie ciepła, temperatura złącz 42 Korzyści: panowanie nad budżetem mocy, wskazanie najbardziej energochłonnych części układu, odpowiednie dostosowanie środowiska zewnętrznego
43 Poziomy optymalizacji
Zarządzanie mocą - dokumentacja, materiały, dodatki Command Line Tools User Guide: XPower chapter Help Software Manuals Command Line Tools User Guide Online help from the XPower GUI Xilinx Power Solutions Web Page - www.support.xilinx.com Technology Solutions Power Solutions - Get the XPower Estimator spreadsheets for all Xilinx devices - 7 Steps to Worst Case Power Estimation, WP353 - Spartan-6 Power Management User Guide, UG394 - Power Consumption at 40 and 45 nm, 298 Application Notes: Help Xilinx on the Web Xilinx Application Notes - Application Note XAPP158: Powering Xilinx FPGAs Xilinx Education Services courses www.xilinx.com/training - Xilinx tools and architecture courses - Hardware description language courses - Basic FPGA architecture and other topics (free Videos!) 44
Optymalizacja poboru mocy 45 Bramkowanie zasilania (ang. power gating), Całkowite wyłączenie napięcia zasilania w czasowo niewykorzystywanym bloku lub zmniejszenie jego wartości, to jedne z najskuteczniejszych metod ograniczenia zarówno mocy dynamicznej, jaki i statycznej. Takie rozwiązanie jest jednak najbardziej naturalne w układach ASIC, natomiast bardzo trudne do realizacji w układzie programowalnym FPGA Skalowanie napięcia (ang. voltage scaling) polega na dostosowywaniu poziomu napięcia do aktualnego stanu układu Bramkowanie oraz skalowanie sygnału zegarowego (ang. clock gating, dynamic frequency scaling) efektywną metodą redukcji mocy jest technika polegająca na wyłączaniu sygnału zegarowego lub zmniejszaniu jego częstotliwości w modułach, które nie są w danym momencie wykorzystywane. Techniki takie jak bramkowanie zegara oraz skalowanie częstotliwości, są stosunkowo łatwe do realizacji w układach reprogramowalnych. Można je realizować, stosując odpowiedni opis układu na poziomie RTL (ang. Register Transfer Level).
Optymalizacja poboru mocy moc jest rozpraszana nawet wtedy, gdy nie zmienia się stan wyjścia przerzutnika pobór mocy w danym układzie scalonym jest tym większy, im większa jest aktywność przełączeń sygnałów interfejsu 46
Clock Gating Bramkowanie całej domeny zegarowej możliwe jest po przez użycie komponentu BUFGCE 47
Clock Gating a pamięć RAM 48 http://www.xilinx.com/support/documentation/white_papers/wp370_intelligent_clock_gating.pdf
Bramkowanie CLK sygnał GATED_CLK aktywny tylko wtedy, gdy E synchronizowany jest z zegarem CLK 49 bramkowanie zegara, niebezpieczeństwo powstania szpilek http://www.xilinx.com/support/documentation/white_papers/wp370_intelligent_clock_gating.pdf
Integer vs bit Typ integer i tak zostanie zmapowany podczas syntezy do bit_vector, std_logic, Bit_vector, std_logic nie mają interpretacji liczbowej 50
Przykładowe pytania 1. Wymień czynniki brane pod uwagę przy ocenie ukł. progr. 2. Zasada działania interfejsu VGA 3. Rodzaje mocy rozpraszanej przez układy programowalne 4. Zalety i wady technologii CMOS 5. Narzędzie Xilinx do zarządzania mocą 6. Poziomy optymalizacji główne cele 7. Wady wynikające z bramkowania sygnału zegarowego 51