59
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

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, –

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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)

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, –

9

VGA (ang. Video Graphics Array)

- 640x480@60Hz

obramowanie

obszar wygaszania

Obszar aktywny

Oś pozioma (horizontal)

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, –

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, –

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, –

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, –

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, –

• 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, –

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, –

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, –

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, –

• 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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

• 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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

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, –

• 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, –

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, –

• 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, –

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, –

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, –

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, –

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, –

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, –

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, –

Dziękuję za uwagę

59