kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym...

61
Programowalne układy logiczne kod kursu: ETD008270 Szybkość, moc, zasoby W7 – 17.05.2019 mgr inż. Maciej Rudek

Transcript of kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym...

Page 1: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Programowalne układy logiczne

kod kursu: ETD008270

Szybkość, moc, zasoby

W7 – 17.05.2019

mgr inż. Maciej Rudek

Page 2: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Dobre rady

Techniki kodowania RTL:

- Czy dane wejście nie jest sterowane przez więcej niż

jedno źródło:

- Omijanie konstrukcji powodujących powstawanie

zatrzasków:

- Wykorzystanie instrukcji nieblokujących powoduje

aktualizację po zakończeniu bloku always, a dla

blokujących od razu:

Page 3: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Dobre rady

• Funkcje – wykorzystywane dla układów kombinacyjnych i

są replikowane gdy są wykorzystywane w różnych

częściach kodu

• Zadania – chętniej wykorzystywane dla zdarzeń

czasowych w szczególności dla symulacji (narzędzia

syntezy powinny zdarzenia czasowe pominąć)

• Zatrzaski typu -Latch

– Zajmują mało miejsca, konsumują mało mocy, potrzebują więcej

czasu na ustabilizowanie się

• Przerzutniki typu Flip-Flop

– Potrzebują więcej miejsca, mają większe zapotrzebowanie na

pobór mocy,

Page 4: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Dobre rady

• Konstrukcja if-else – powoduje wykonanie konstrukcji,

która jest priorytetowa podczas dekodowania

• Konstrukcja Case – jest prosta w odczycie, może zostać

zaimplementowana jako równoległa lub z dekodowaniem

priorytetowym. Dobrym zwyczajem jest wykorzystanie

wszystkich możliwych kombinacji lub zastosowanie

dyrektywy default na końcu konstrukcji.

• Pomiędzy porównaniem „==„ oraz „===„ operatorów, ten

pierwszy jest syntezowalny a ten drugi już nie.

Page 5: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Dobre rady

• W automatach stanu Moore’a, stan na wyjściu zależy

tylko od obecnego stanu a w Mealy’ego także od wejścia.

Oba są tak samo często stosowane.

• Kodowanie Binarne, z gorącą jedynka i Grey’a:

– Binarne – wymagana jest mniejsza ilość przerzutników typu flip-

flop dla wielu przejść,

– Z gorącą jedynką (one-hot) – ilość przerzutników flip-flop będzie

taka sama jak ilość stanów

– Kodowanie Grey’a – popularnie wykorzystywany dla różnych

dwóch różnych domen zegara.

Page 6: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Ogólne praktyki kodowania

• Wypisać wszystkie wyjścia istotnych bloków

• Unikać wielokrotnych ścieżek komunikacyjnych pomiędzy

hierarchicznie ustawionymi modułami, którymi

informacja będzie wracać do tego samego bloku z

hierarchii

• Podzielić projekt ze względu na realizowane zadania,

funkcjonalność i reakcje na zbocze zegara

• Unikać modyfikowania modułów które są zaprojektowane

dla konkretnego urządzenia/technologii/

• Wykorzystuj parametry i zapisuj je u góry funkcji/bloku

• Unikaj wewnętrznie tworzonych zegarów oraz logiki

która będzie je łączyć w głównych modułach.

Page 7: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Ogólne praktyki kodowania

• Unikanie stanów meta-stabilnych: w takim przypadku

najlepiej, dla logiki asynchronicznej zastosować

obserwacje stanu wejściowego względem sygnału

zegarowego (np. wewnętrznego) i przekazywanie zmian

tego sygnału za pomocą dwóch przerzutników Flip-Flop.

Wówczas dana która jest „złapana” będzie stanem

stabilnym

• Pomiędzy dwoma układami logicznymi taktowanymi

różnym sygnałem zegarowym należy zastosować dwie

kolejki FIFO z kodowaniem Grey’a (licznika)

Page 8: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Popularne błędy

• Tworzenie modułów z wejściami ale bez wyjść,

• Wykonywanie zatrzasków nawet dla konstrukcji

if-else,

• Łączenie wyjść układów logiki kombinatoryjnej z

ich wejściami powodując powstawanie

zapętlonych sygnałów, które są kłopotliwe

podczas testowania,

• Brak wyszczególnionych wszystkich sygnałów w

liście wrażliwościowej np. dla multiplekserów.

Page 9: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Ewolucja układów CMOS

Page 10: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Prawo Moore’a

Prawo Moore’a

1965 –

przewiduje

wykładniczy

wzrost liczby

tranzystorów w

układach

scalonych co 12

– 18 miesięcy

Page 11: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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,

11

Page 12: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Pobór prądu w układach

Page 13: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

13

Page 14: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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:

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. 14

Page 15: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Połączenia reprogramowalne i ich wpływ na

pobór mocy

15

Page 16: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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ę

16

Page 17: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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) 17

Page 18: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Inwerter CMOS

18

Page 19: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Energia w układach CMOS

𝑬𝑺𝑾 = 𝑷 𝒕 𝒅𝒕 =𝒕𝟏

𝒕𝟎

𝑼𝑫𝑫 − 𝒖 ∙ 𝒊 𝒕 𝒅𝒕 = 𝑼𝑫𝑫 − 𝒖 ∙ 𝑪𝒅𝒖

𝒅𝒕𝒅𝒕 =

𝒕𝟏

𝒕𝟎

𝒕𝟏

𝒕𝟎

= 𝑪𝑼𝑫𝑫 𝒅𝒖 −𝒕𝟏

𝒕𝟎

𝑪 𝒖𝒅𝒖 = 𝑪𝒕𝟏

𝒕𝟎

𝑼𝑫𝑫𝟐 −

𝟏

𝟐𝑪𝑼𝑫𝑫

𝟐 =𝟏

𝟐𝑪𝑼𝑫𝑫

𝟐

energia pobrana z zasilania energia zmagazynowana energia rozpraszana 19

Page 20: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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.

20

Page 21: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

21

Page 22: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Moc dynamiczna a częstotliwość pracy M

oc 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 22

Page 23: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Zarządzanie mocą w układach Xilinx

• 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

23

Page 24: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Poziomy optymalizacji

24

Page 25: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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!)

25

Page 26: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Optymalizacja poboru mocy

• 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).

26

Page 27: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Clock Gating

Bramkowanie całej domeny zegarowej

możliwe jest po przez użycie

komponentu BUFGCE

27

Page 28: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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 28

Page 29: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Szybkość w układach a zasoby

Page 30: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Propagacja sygnałów

3

0

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.

Trasa propagacji sygnału: tPD = t1 + t2 + t3 + t4 + t5 + t6 + …

Page 31: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

3

1

Page 32: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Czas propagacji - propagation delay tPD

• czas potrzebny na zmianę i ustabilizowanie się wartości

sygnału wyjściowego pod wpływem zmian sygnału

wejściowego

3

2

Page 33: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Czas reakcji - contamination delay tCD

• wartość ta wskazuje ilość czasu potrzebnego do zmiany

stanu wyjścia cyfrowego zainicjowana zmianę sygnały na

wejściu układu

3

3

Page 34: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Czas ustalania oraz trzymania - setup time tST, hold time tHT

czas stabilizacji danych

wejściowych przed

pojawieniem się zbocza CLK

czas trzymania danych po

wystąpieniu zbocza sygnału CLK

tDQ

3

4

Page 35: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Opóźnienie sygnałów - clock skew

• długie połączenia,

• bufory na liniach zegarowych,

• logika komb. na liniach zegarowych

35

Page 36: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

jitter

z jitter –em

„okresowo”

JACC = TCLK(n) – nTCLK0

TCLK0

TCLK(n) TCLK(n) TCLK(n+1)

3

6

Page 37: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

CRYSTAL OSCILLATOR

EPSON Q3851CA000055 XG-1000CA 50 MHZ OSCILLATOR, SPXO, XG-

1000CA, 50 MHZ, SMD

http://pl.farnell.com/epson/q3851ca000055-xg-1000ca-50-mhz/oscillator-spxo-xg-1000ca-50-mhz/dp/1907482 37

Page 38: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Widmo sygnału z jitter-em

Większa wartości jitter-a powoduje poszerzenie

prążka widmowego

38

Page 39: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Metody eliminacji jitter-a - jitter cleaning clock Si5317 Silicon Labs

https://www.silabs.com/Support%20Documents/TechnicalDocs/Si5317.pdf

http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf 39

Page 42: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Przykład – minimalny okres sygnału

TMIN = tDQ(A) + tPD(LK) + tST(B)

TMIN = 10 ns + 5 ns + 2 ns = 17 ns

f = 1/TMIN = 1/17 ns = 58,8 MHz 42

Po jakim czasie na

wyjściu zaobserwujemy

zmianę stanu ?

Page 43: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Przykład – minimalny okres sygnału

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

tHT(B) tCD(A) + tCT(LK)

43

Page 44: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Przykład

TAB = tDQ(A) + tST(B) = 9 ns + 2 ns = 11 ns

TAC = tDQ(A) + tPD(LK) + tST(C) = 9 ns + 5 ns + 2 ns = 16 ns

TBC = tDQ(B) + tPD(LK) + tST(C) = 10 ns + 5 ns + 2 ns = 17 ns

fMAX = 58,8 MHz

44

Page 45: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Bez globalnych

ograniczeń czasowych

Z globalnymi

ograniczeniami czasowymi

Grupowanie optymalizowane pod

kątem poprawy czasu wewnątrz

struktury logicznej

Ocenie czasowej podlegają

wszystkie połączenia, CLB zostają

rozmieszczone bliżej IOB

Ograniczenia czasowe – efekty - Timing Constraints

45

Page 46: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Plan Ahead - floorplaner

46

Page 47: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Ograniczenia czasowe

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

47

Page 48: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Ograniczenia czasowe

Q

FLOP1

D Q FLOP3

D

BUFG

CLK

ADATA

OUT2

OUT1

Q

FLOP5

D Q

FLOP4

D BUS [7..0]

CDATA

Q

FLOP2

D

od wejścia do wyjścia (PAD to PAD)

48

czas do wejścia czas do wyjścia czas pomiędzy

http://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf

Page 49: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Punkty końcowe …

Elementami końcowymi są:

- wejścia/wyjścia – (I/O pads)

- elementy synchroniczne:

• FFs, Latches, Rams, DSP slices, SRLs, …

W ich skład nie zalicza się:

- LUT,

- połączeń, ścieżek oraz elementów asynchronicznych

Flip-Flops Zatrzaski RAM DSP48

49

Page 50: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

• Analiza, czy spełnione zostały założone ograniczenia …?

52

Optymalizacja czas, rozmiar - Post-Place & Route Static Timing Report

Design Summary/Reports

Place & Route report

Założenia odnośnie

syg. zegarowego

Actual Period

2,025 ns

All constraints were met.

Page 51: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Optymalizacja czas, rozmiar - Failing Constraints

53

Page 52: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

54

Page 53: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

55

Page 54: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

56

Page 55: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

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

57

Page 56: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

• 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

58

Optymalizacja czas, rozmiar - ISE WebPack Design Goals & Strategies

Page 57: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

61

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.

Tworzenie projektów synchronicznych pozwala tworzyć projekty stabilne

w pełnym zakresie częstotliwości sygnałów wejściowych.

Page 58: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

W ramach podsumowania… kompresja

62 http://www.xilinx.com/training/fpga/xst-synthesis-options-video.htm

Page 59: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Procesor DSP – logika FPGA

• Stała nieelastyczna architektura

- typowo 1 - 8 jednostki MAC

- stała szerokość danych

• Przetwarzanie sekwencyjne ogranicza

przepustowość

- współdzielone w czasie jednostki MAC,

- duże częstotliwości taktowania stawiają

duże wyzwania projektantom systemów.

• Możliwość realizacji setek

przekształceń MAC w obrębie

jednego układu FPGA

• Przetwarzanie równoległe

umożliwia dużą przepustowość

Procesor DSP Zrównoleglone przetwarzanie w FPGA

63

Page 60: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Miary wydajności

MIPS - Million Instructions Per Second

(Liczba milionów operacji wykonywanych w ciągu sekundy),

MMAC - Million Multiply Accumulate Operations Per Second

(Liczba milionów operacji typu "pomnóż i dodaj"),

MSPS - Mega-Samples Per Second

(Liczba milionów próbek na sekundę),

Dla układów FPGA nie podaje się wydajności w MIPS. Jej zdefiniowanie dla FPGA

jako całości jest niemożliwe, gdyż zależy ściśle od danego projektu.

Wydajność MMAC może zostać zwiększona dzięki wykorzystaniu zasobów

logicznych oraz rejestrów układu FPGA.

64

Page 61: kod kursu: ETD008270 W7 17.05w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W7.pdf1) po narastającym zboczu CLK i czasie 10 ns sygnał z wej. D trafi na wejście x, 2) po czasie 5 ns sygnał

Dziękuję za uwagę :)