Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf ·...
Transcript of Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf ·...
![Page 1: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/1.jpg)
kod kursu: ETD6203
__ Wrocław
Programowanie
Układów Logicznych – PUL
Wykład 7
DR INŻ. MACIEJ RUDEK
DR INŻ. DANIEL KOPIEC
VGA, Pobór mocy w układach programowalnych
![Page 2: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/2.jpg)
Plan wykładu
2
• 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
![Page 3: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/3.jpg)
VGA (Video Graphics Array)
3
![Page 4: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/4.jpg)
Typowe rozdzielczości wyświetlaczy
4 źródło:https://commons.wikimedia.org/wiki/Main_Page
Tym się zajmiemy
![Page 5: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/5.jpg)
VGA – sposób połączenia
5
• Red, Green, Blue – poziom akceptowalnego napięcia: do 0,7 V
• Synchronization vertical, horizontal – synchronizacja pionowa, pozioma, impulsy
cyfrowe,
• VGA standard zdefiniowany przez VESA®
75 Ω
FPGA, CPLD
LVTTL 3,3 V 0,717 V
![Page 6: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/6.jpg)
Jednostka projektowa bloku VGA
6
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;
![Page 7: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/7.jpg)
VGA – „cyfrowe” mieszanie barw
7
W układzie prototypowym
Spartan 3E Starter Board
możliwe jest uzyskanie
tylko 8 kolorów pixela.
„Analogowe – cyfrowe”
mieszanie barw
![Page 8: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/8.jpg)
8
VGA – zasad działania
Powierzchnia ekranu
640 pikseli wyświetlanych w czasie ruchu wiązki
podczas powrotu wiązki
dane nie są odświeżane
• Skanowanie rastrowe XY w standardzie VGA
Oś pozioma (horizontal)
Oś
pio
no
wa (v
ertic
al)
![Page 9: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/9.jpg)
9
VGA (ang. Video Graphics Array)
- 640x480@60Hz
obramowanie
obszar wygaszania
Obszar aktywny
Oś pozioma (horizontal)
Oś
pio
no
wa (v
ertic
al)
640
480
Dane RGB
Dane R
GB
![Page 10: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/10.jpg)
Standard 640x480@60Hz
640x480@60Hz
10
Dane RGB
![Page 11: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/11.jpg)
11
Rozdzielczość a częstotliwość pracy
![Page 12: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/12.jpg)
Synchronizacja pozioma
hs_out
vs_out
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;
Synchronizacja pionowa
Licznik linii i pikseli
![Page 13: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/13.jpg)
Definiowanie zawartości ekranu - definicja cyfry „3”
13 640 144 784
515
35
linie
pixele
480
0, 639 0, 0
479, 0 479, 639
HOR
VE
R
vs 160
vs 192
hs 192 hs 320 hs 288
vs 256
vs 288
vs 128
vs 224
vs 160
vs 256
![Page 14: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/14.jpg)
• 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';
Zawartości ekranu - definicja cyfry „3”
14
![Page 15: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/15.jpg)
Klawiatura matrycowa 4x4
0 1 0 0 Wektor testujący GND
0
0
0
1
![Page 16: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/16.jpg)
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
A Twój telefon komórkowy jaką ma baterię ? Ile zużywa mocy ? Dlaczego ? … 16
![Page 17: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/17.jpg)
Rynek układów programowalnych
17
![Page 18: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/18.jpg)
• 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.
• 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.
Złote zasady
18
![Page 19: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/19.jpg)
Liczba tranzystorów
19
Liczba tranzystorów
1000000
100000
10000
1000
10
100
1
1975 1980 1985 1990 1995 2000 2005 2010
8086
80286 i386
i486 Pentium®
Pentium® Pro
1 Miliard tranzystorów
Source: Intel
Projected
Pentium® II Pentium® III
19
![Page 20: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/20.jpg)
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,
CMOS – cięgle dominuje…
20
![Page 21: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/21.jpg)
Gęstość prądu i jego skutki
•Electromigration in Cu metalisation
Ehrenfried Zschech, Talk at the WRUT, Nanoscale Functional Materials, Jan. 2012
Interconnection density 500 mln/cm2
Current density ~ 107 A/cm2
In collaboration with
21
![Page 22: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/22.jpg)
Wpływ technologii
Zmniejszenie wymiarów geometrycznych kanału w tranzystorach,
niesie ze sobą niebezpieczeństwo zwiększenia mocy statycznej
22
![Page 23: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/23.jpg)
Oceniając pobór mocy przez układ programowalne należy uwzględnić pięć różnych czynników:
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.
Pobór mocy w układach program.
23
![Page 24: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/24.jpg)
Prognozowany czas pracy
i stan działania układu programowalnego – bilans mocy
24
![Page 25: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/25.jpg)
Połączenia reprogramowalne i ich wpływ na pobór mocy
25
![Page 26: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/26.jpg)
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ę,
– wymagane aktywne monitory temperatury.
Wytrzymałość termiczna obudowy:
125° C - standardowy rodzaj (plastik),
150° C - przemysłowy, militarny (ceramika).
Częstotliwość (MHz)
PM
AX
Realne zapotrzebowanie
Wysoka skala
integracji
Niska
skala
integ.
Moc odprowadzana przez obudowę
26
![Page 27: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/27.jpg)
Inwerter CMOS
𝐼𝐶𝐶 = 𝐼𝑈 + 𝐼𝐷 𝑓 + 𝐼𝐶 𝑓
IU – składowa prądu upływu, (rząd wartości: setki nA),
ID(f) – składowa pobierana przy przełączaniu, (rząd wartości: setki µA)
IC(f) – składowa ładowania obciążenie pojemnościowego (rząd wartości: setki µA) 27
![Page 28: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/28.jpg)
Inwerter CMOS
28
![Page 29: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/29.jpg)
Energia w układach CMOS
𝑬𝑺𝑾 = 𝑷 𝒕 𝒅𝒕 =𝒕𝟏
𝒕𝟎
𝑼𝑫𝑫 − 𝒖 ∙ 𝒊 𝒕 𝒅𝒕 = 𝑼𝑫𝑫 − 𝒖 ∙ 𝑪𝒅𝒖
𝒅𝒕𝒅𝒕 =
𝒕𝟏
𝒕𝟎
𝒕𝟏
𝒕𝟎
= 𝑪𝑼𝑫𝑫 𝒅𝒖 −𝒕𝟏
𝒕𝟎
𝑪 𝒖𝒅𝒖 = 𝑪𝒕𝟏
𝒕𝟎
𝑼𝑫𝑫𝟐 −
𝟏
𝟐𝑪𝑼𝑫𝑫
𝟐 =𝟏
𝟐𝑪𝑼𝑫𝑫
𝟐
energia pobrana z zasilania energia zmagazynowana energia rozpraszana 29
![Page 30: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/30.jpg)
Składowe mocy w układach progr.
Składowa dynamiczna:
- przeładowanie pojemości
Składowa statyczna:
𝑃𝑆 = 𝑈𝐷𝐷 ∙ 𝐼
𝑃𝑃 = 𝐼 ∙ 𝑈𝐷𝐷 ∙𝑡𝑟 + 𝑡𝑓
2∙ 𝑓
- równoczesne przewodzenie obu tranzystorów
• 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 30
𝑃𝐷 = 𝛼 ∙ 𝑈𝐷𝐷2 ∙ 𝐶𝐿 ∙ 𝑓
![Page 31: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/31.jpg)
Przetwarzanie równoległe:
• mniejsza aktywność przełączeń bramek,
• mniejsza częstotliwość zegara systemowego
Tendencje w minimalizacji mocy
𝑃 ~ 𝑈2, 𝑓, 𝐶, 𝐴 𝑓 ~ 1/𝐶
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 31
![Page 32: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/32.jpg)
Pobór mocy
- układy z pamięcią ulotną i nieulotną
Mo
c p
ob
iera
na
prz
ez u
kła
d [
mW
]
Czas [ms]
Moc rozruchowa,
SRAM
Konfiguracja
komórek SRAM
Moc zależna od
częstotliwości
stabilizacja
napięcia zas.
32
![Page 33: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/33.jpg)
Pobór mocy
- układy z pamięcią ulotną i nieulotną
Mo
c p
ob
iera
na
prz
ez u
kła
d [
mW
]
Czas [ms]
rozruch statyczna + dynamiczna statyczna wyłączenie
33
![Page 34: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/34.jpg)
Moc dynamiczna a częstotliwość pracy
Mo
c p
ob
iera
na p
rzez u
kła
d [
mW
]
Częstotliwość taktowania [MHz]
Test mocy dynamicznej pobieranej przez układy różnych producentów.
Obciążenie: 290, 8-bitowych liczników w kodzie Graya 34
![Page 35: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/35.jpg)
Pobór mocy - FPGA
Piedra, Antonio & Braeken, An & Touhafi, Abdellah. (2012). Sensor Systems Based on FPGAs and Their Applications: A
Survey. Sensors (Basel, Switzerland). 12. 12235-64. 10.3390/s120912235.
![Page 36: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/36.jpg)
Pobór mocy - FPGA
https://www.eetimes.com/xilinx-7-series-fpgas-user-guide-lite/
Spartan 3 – 90 nm
Spartan 6 – 45 nm
Artix-7 – 28 nm
![Page 37: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/37.jpg)
• 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
Zarządzanie mocą w układach Xilinx
37
![Page 38: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/38.jpg)
Xilinx Power Estimator (XPE)
http://www.xilinx.com/products/design_tools/logic_design/xpe.htm
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,
38
![Page 39: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/39.jpg)
Xilinx Power Estimator (XPE)
https://www.xilinx.com/products/technology/power/xpe.html
https://www.xilinx.com/products/technology/power.html 39
![Page 40: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/40.jpg)
Xilinx Power Estimator (XPE)
https://www.xilinx.com/support/documentation-navigation/design-hubs/dh0008-
vivado-power-estimation-and-optimization-hub.html 40
![Page 41: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/41.jpg)
XPower Analyzer
Dostęp z poziomu ISE …
41
![Page 42: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/42.jpg)
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.
XPower Analyzer oblicza łączną średnią wartość zużycia energii i generuje szczegółowy raport
XPower Analyzer
ISE Webpack
42
![Page 43: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/43.jpg)
XPower Analyzer
ISE Webpack
43
![Page 44: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/44.jpg)
XPower Analyzer
ISE Webpack
Raport – plik tekstowy: • rozszerzenie .pwr,
• moc całkowita,
• pobór prądu,
• zużyte zasoby,
• odprowadzanie ciepła,
• temperatura złącz
Korzyści: • panowanie nad budżetem
mocy,
• wskazanie najbardziej
energochłonnych części
układu,
• odpowiednie
dostosowanie środowiska
zewnętrznego 44
![Page 45: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/45.jpg)
Raport poboru mocy
Vivado
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug907-vivado-power-analysis-optimization.pdf
![Page 46: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/46.jpg)
Raport poboru mocy
Vivado
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug907-vivado-power-analysis-optimization.pdf
![Page 47: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/47.jpg)
Raport poboru mocy
Vivado
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug907-vivado-power-analysis-optimization.pdf
![Page 48: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/48.jpg)
Poziomy optymalizacji
48
![Page 49: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/49.jpg)
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!)
49 https://www.xilinx.com/support/documentation-navigation/design-hubs/dh0008-vivado-power-estimation-and-optimization-hub.html
![Page 50: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/50.jpg)
• 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
50
![Page 51: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/51.jpg)
CMT - clock management tiles – Układ zarzadzania sygnałem zegarowym, zlokalizowany blisko wejść I/O, wykorzystywany do:
• synteza częstotliwości zegara,
• pełni funkcję prostowania i kształtowania CLK
• usuwanie jitter’ów
CMT zawiera: jeden moduł mieszający sygnał zegarowy (MMCM - mixed-mode clock manager), i jedną pętlę synchronizacji fazy (PLL - phase-locked loop).
UWAGA: Każdy region zegarowy obejmuje 25 CLB w górę i 25 CLB w dół od głównej linii (HROW) oraz poziomo po obu stronach urządzenia.
Sygnały zegarowe
Przypomnienie
![Page 52: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/52.jpg)
• moc jest rozpraszana nawet wtedy, gdy nie zmienia się stan wyjścia przerzutnik
• pobór mocy w danym układzie scalonym jest tym większy, im większa jest aktywność przełączeń sygnałów interfejsu
Optymalizacja poboru mocy
52
![Page 53: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/53.jpg)
Wybrane bufory połączeniowe:
• BUFG – standardowy bufor zegarowy
• BUFH – obsługują 12 globalnych linii taktowania
• BUFR – 4 linie regionalne
• BUFIO – 4 linii dla bloków I/O
• BUFGMUX – multiplekser sygnału CLK
• BUFGCE – włączanie i wyłączanie sygnału CLK
Zasoby – sygnał zegarowy
Przypomnienie
![Page 54: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/54.jpg)
Zasoby – sygnał zegarowy
![Page 55: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/55.jpg)
Clock Gating
Bramkowanie całej domeny zegarowej
możliwe jest po przez użycie
komponentu BUFGCE
55
![Page 56: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/56.jpg)
Clock Gating a pamięć RAM
http://www.xilinx.com/support/documentation/white_papers/wp370_Intelligent_Clock_Gating.pdf 56
![Page 57: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/57.jpg)
Bramkowanie CLK
• sygnał „GATED_CLK” aktywny tylko
wtedy, gdy „E” synchronizowany jest z
zegarem „CLK”
• bramkowanie zegara, niebezpieczeństwo
powstania „szpilek”
http://www.xilinx.com/support/documentation/white_papers/wp370_Intelligent_Clock_Gating.pdf 57
![Page 58: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/58.jpg)
Integer vs bit
58
• Typ integer i tak zostanie zmapowany podczas syntezy do bit_vector, std_logic,
• Bit_vector, std_logic nie mają interpretacji liczbowej
![Page 59: Programowanie Układów Logicznych – PUL Wykład 7w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W7_v1.pdf · 2020. 5. 27. · • FPGA pierwszej generacji: – niskie częstotliwości, –](https://reader036.fdocument.pub/reader036/viewer/2022070220/61331ea0dfd10f4dd73ae1fd/html5/thumbnails/59.jpg)
Dziękuję za uwagę
59