kod kursu: etd008270 w7 17.05w12.pwr.wroc.pl/mikro/pul_verilog/wyklad/w7.pdf1) po narastającym...
TRANSCRIPT
![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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/1.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/2.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/3.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/4.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/5.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/6.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/7.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/8.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/9.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/10.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/11.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/12.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/13.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
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/14.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/15.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/16.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ę
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/17.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) 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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/18.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/19.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/20.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.
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/21.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
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/22.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/23.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/24.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/25.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!)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/26.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/27.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/28.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 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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/29.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/30.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/31.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/32.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/33.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/34.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/35.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/36.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/37.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/38.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/39.jpg)
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 40: 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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/40.jpg)
Metody eliminacji jitteru
http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf 40
![Page 41: 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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/41.jpg)
Metody eliminacji jitter-u
http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf 41
![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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/42.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/43.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/44.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/45.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/46.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/47.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/48.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/49.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/50.jpg)
• 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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/51.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/52.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/53.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/54.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/55.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/56.jpg)
• 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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/57.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/58.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/59.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/60.jpg)
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ł](https://reader030.vdocuments.net/reader030/viewer/2022040402/5e811c5796c058658b31b732/html5/thumbnails/61.jpg)
Dziękuję za uwagę :)