Programowalne układy logiczne kod kursu: ETD Szybkość, moc, zasoby W

Podobne dokumenty
mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Układy zegarowe w systemie mikroprocesorowym

Laboratorium przedmiotu Technika Cyfrowa

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Programowalne układy logiczne

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Podstawy elektroniki cz. 2 Wykład 2

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Systemy Czasu Rzeczywistego FPGA

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

UKŁADY CYFROWE. Układ kombinacyjny

Układy reprogramowalne i SoC Implementacja w układach FPGA

Programowalne układy logiczne

Ćw. 7: Układy sekwencyjne

Szkolenia specjalistyczne

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Podstawy układów mikroelektronicznych

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres

Sławomir Kulesza. Projektowanie automatów synchronicznych

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Metody optymalizacji soft-procesorów NIOS

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Elementy cyfrowe i układy logiczne

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Proste układy sekwencyjne

Systemy Czasu Rzeczywistego FPGA

Temat: Pamięci. Programowalne struktury logiczne.

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Cyfrowe układy scalone c.d. funkcje

Projektowanie automatów z użyciem VHDL

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

napięcie-częstotliwość

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Laboratorium Asemblerów, WZEW, AGH WFiIS Tester NMOS ów

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Logiczne układy bistabilne przerzutniki.

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Programowalne układy logiczne

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Język opisu sprzętu VHDL

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

Specyfika projektowania Mariusz Rawski

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Generator przebiegów pomiarowych Ex-GPP2

Katedra Przyrządów Półprzewodnikowych i Optoelektronicznych Laboratorium Przyrządów Półprzewodnikowych. Ćwiczenie 4

Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek

Cyfrowe układy scalone

Projektowanie układów FPGA. Żródło*6+.

Elektronika i techniki mikroprocesorowe

Cyfrowe układy scalone

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Programowalne Układy Cyfrowe Laboratorium

Architektura komputerów Wykład 2

Układy logiczne układy cyfrowe

Układy asynchroniczne

Funkcje logiczne X = A B AND. K.M.Gawrylczyk /55

Cyfrowe układy scalone

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

PAMIĘCI SYNCHRONICZNE

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

Systemy na Chipie. Robert Czerwiński

Układy asynchroniczne

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

ćw. Symulacja układów cyfrowych Data wykonania: Data oddania: Program SPICE - Symulacja działania układów liczników 7490 i 7493

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Układy programowalne. Wykład z ptc część 5

Układy zegarowe w systemie mikroprocesorowym

Transkrypt:

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

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:

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,

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.

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

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.

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)

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.

Ewolucja układów CMOS

Prawo Moore a Prawo Moore a 1965 przewiduje wykładniczy wzrost liczby tranzystorów w układach scalonych co 12 18 miesięcy

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

Pobór prądu w układach

Gęstość prądu i jego skutki In collaboration with Electromigration in Cu metalisation Interconnection density 500 mln/cm2 Current density ~ 10 7 A/cm 2 13 Ehrenfried Zschech, Talk at the WRUT, Nanoscale Functional Materials, Jan. 2012

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

15 Połączenia reprogramowalne i ich wpływ na pobór mocy

Wzrost wydajności FPGA pierwszej generacji: niskie częstotliwości, małe zapotrzebowanie na moc, obudowa nie ma znaczenia. Dzisiejsze układy FPGA: wysokie częstotliwości, znaczne zapotrzebowanie na moc, ograniczenie możliwością odpr. ciepła przez obudowę, P MAX wymagane aktywne monitory temperatury. Moc odprowadzana przez obudowę Niska skala integ. Wysoka skala integracji Realne zapotrzebowanie Częstotliwość (MHz) 16 Wytrzymałość termiczna obudowy: 125 C - standardowy rodzaj (plastik), 150 C - przemysłowy, militarny (ceramika).

Inwerter CMOS I CC = I U + I D f + I C f 17 I U składowa prądu upływu, (rząd wartości: setki na), I D (f) składowa pobierana przy przełączaniu, (rząd wartości: setki µa) I C (f) składowa ładowania obciążenie pojemnościowego (rząd wartości: setki µa)

18 Inwerter CMOS

Energia w układach CMOS t 1 t 1 t 1 E SW = P t dt = U DD u i t dt = U DD u C du t 0 dt t 0 t 0 dt = t 1 t 1 = CU DD du C udu = C t 0 t 0 2 U DD 1 2 CU DD 2 = 1 2 CU DD 2 19 energia pobrana z zasilania energia zmagazynowana energia rozpraszana

Moc pobierana przez układ [mw] Pobór mocy - układy z pamięcią ulotną i nieulotną Moc rozruchowa, SRAM stabilizacja napięcia zas. Moc zależna od częstotliwości Konfiguracja komórek SRAM 20 Czas [ms]

Moc pobierana przez układ [mw] Pobór mocy - układy z pamięcią ulotną i nieulotną rozruch statyczna + dynamiczna statyczna wyłączenie 21 Czas [ms]

Moc pobierana przez układ [mw] Moc dynamiczna a częstotliwość pracy Częstotliwość taktowania [MHz] 22 Test mocy dynamicznej pobieranej przez układy różnych producentów. Obciążenie: 290, 8-bitowych liczników w kodzie Graya

Zarządzanie mocą w układach Xilinx 23 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

24 Poziomy optymalizacji

Zarządzanie mocą - dokumentacja, materiały, dodatki Command Line Tools User Guide: XPower chapter Help Software Manuals Command Line Tools User Guide Online help from the XPower GUI Xilinx Power Solutions Web Page - www.support.xilinx.com Technology Solutions Power Solutions - Get the XPower Estimator spreadsheets for all Xilinx devices - 7 Steps to Worst Case Power Estimation, WP353 - Spartan-6 Power Management User Guide, UG394 - Power Consumption at 40 and 45 nm, 298 Application Notes: Help Xilinx on the Web Xilinx Application Notes - Application Note XAPP158: Powering Xilinx FPGAs Xilinx Education Services courses www.xilinx.com/training - Xilinx tools and architecture courses - Hardware description language courses - Basic FPGA architecture and other topics (free Videos!) 25

Optymalizacja poboru mocy 26 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).

Clock Gating Bramkowanie całej domeny zegarowej możliwe jest po przez użycie komponentu BUFGCE 27

Bramkowanie CLK sygnał GATED_CLK aktywny tylko wtedy, gdy E synchronizowany jest z zegarem CLK 28 bramkowanie zegara, niebezpieczeństwo powstania szpilek http://www.xilinx.com/support/documentation/white_papers/wp370_intelligent_clock_gating.pdf

Szybkość w układach a zasoby

Propagacja sygnałów 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. 3 Trasa propagacji sygnału: t PD = t 1 + t 2 + t 3 + t 4 + t 5 + t 6 +

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

Czas propagacji - propagation delay t PD czas potrzebny na zmianę i ustabilizowanie się wartości sygnału wyjściowego pod wpływem zmian sygnału wejściowego 3

Czas reakcji - contamination delay t CD wartość ta wskazuje ilość czasu potrzebnego do zmiany stanu wyjścia cyfrowego zainicjowana zmianę sygnały na wejściu układu 3

Czas ustalania oraz trzymania - setup time t ST, hold time t HT czas stabilizacji danych wejściowych przed pojawieniem się zbocza CLK czas trzymania danych po wystąpieniu zbocza sygnału CLK t DQ 3

Opóźnienie sygnałów - clock skew długie połączenia, bufory na liniach zegarowych, logika komb. na liniach zegarowych 35

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 T CLK0 jitter z jitter em okresowo T CLK (n) T CLK (n) T CLK (n+1) 3 J ACC = T CLK (n) nt CLK0

CRYSTAL OSCILLATOR EPSON Q3851CA000055 XG-1000CA 50 MHZ OSCILLATOR, SPXO, XG- 1000CA, 50 MHZ, SMD 37 http://pl.farnell.com/epson/q3851ca000055-xg-1000ca-50-mhz/oscillator-spxo-xg-1000ca-50-mhz/dp/1907482

Widmo sygnału z jitter-em Większa wartości jitter-a powoduje poszerzenie prążka widmowego 38

Metody eliminacji jitter-a - jitter cleaning clock Si5317 Silicon Labs 39 https://www.silabs.com/support%20documents/technicaldocs/si5317.pdf http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf

Metody eliminacji jitteru 40 http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf

Metody eliminacji jitter-u 41 http://www.xilinx.com/support/documentation/application_notes/xapp462.pdf

Przykład minimalny okres sygnału Po jakim czasie na wyjściu zaobserwujemy zmianę stanu? 42 T MIN = t DQ (A) + t PD (LK) + t ST (B) T MIN = 10 ns + 5 ns + 2 ns = 17 ns f = 1/T MIN = 1/17 ns = 58,8 MHz

Przykład minimalny okres sygnału t HT (B) t CD (A) + t CT (LK) 43 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

Przykład f MAX = 58,8 MHz T AB = t DQ (A) + t ST (B) = 9 ns + 2 ns = 11 ns T AC = t DQ (A) + t PD (LK) + t ST (C) = 9 ns + 5 ns + 2 ns = 16 ns 44 T BC = t DQ (B) + t PD (LK) + t ST (C) = 10 ns + 5 ns + 2 ns = 17 ns

Ograniczenia czasowe efekty - Timing Constraints Bez globalnych ograniczeń czasowych Z globalnymi ograniczeniami czasowymi 45 Grupowanie optymalizowane pod kątem poprawy czasu wewnątrz struktury logicznej Ocenie czasowej podlegają wszystkie połączenia, CLB zostają rozmieszczone bliżej IOB

46 Plan Ahead - floorplaner

Ograniczenia czasowe 47 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

Ograniczenia czasowe czas do wejścia czas pomiędzy czas do wyjścia ADATA FLOP1 D Q FLOP2 D Q FLOP3 D Q OUT1 CLK BUS [7..0] BUFG FLOP4 D Q FLOP5 D Q OUT2 CDATA od wejścia do wyjścia (PAD to PAD) 48 http://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf

Punkty końcowe Elementami końcowymi są: - wejścia/wyjścia (I/O pads) - elementy synchroniczne: FFs, Latches, Rams, DSP slices, SRLs, Flip-Flops Zatrzaski RAM DSP48 49 W ich skład nie zalicza się: - LUT, - połączeń, ścieżek oraz elementów asynchronicznych

Optymalizacja czas, rozmiar - Post-Place & Route Static Timing Report Analiza, czy spełnione zostały założone ograniczenia? Design Summary/Reports Place & Route report Założenia odnośnie syg. zegarowego Actual Period 2,025 ns All constraints were met. 52

53 Optymalizacja czas, rozmiar - Failing Constraints

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

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

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

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

Optymalizacja czas, rozmiar - ISE WebPack Design Goals & Strategies 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 - 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. 61 Tworzenie projektów synchronicznych pozwala tworzyć projekty stabilne w pełnym zakresie częstotliwości sygnałów wejściowych.

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

Procesor DSP logika FPGA Procesor DSP Zrównoleglone przetwarzanie w FPGA 63 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ść

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ę), 64 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.

Dziękuję za uwagę :)