Wykład 8. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,
|
|
- Radosław Sowiński
- 5 lat temu
- Przeglądów:
Transkrypt
1 Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Kodowanie stanów automatu Automat wysokiego poziomu Architektura mikroprogramowana Wykład październik 2018 Ogólna architektura współczesnych układów FPGA Technologie pamięci konfiguracji w układach FPGA Procesy i algorytmy stosowane w przebiegu przygotowania konfiguracji programującej układ FPGA Analiza czasowa projektu AGH WFiIS Informatyka Stosowana Języki Opisu Sprzętu 1
2 Kodowanie Syntezatory zawierają kompilator automatu skończonego (FSM Compiler), który: Wyszukuje rejestry ze sprzężeniem zwrotnym sterowane bieżącą wartością rejestru (case lub if testujące bieżącą wartość rejestru), Konwertuje do grafu symbolicznego w celu optymalizacji, Usuwa stany nieosiągalne wraz z ich logiką, Przekodowuje stany. Niektóre syntezatory zawierają narzędzie do automatycznego doboru kodowania (FSM Explorer), które pracując po kompilatorze optymalizując kodowanie. Jest to bardzo czasochłonne. AGH, WFiIS, HDL 2
3 Kodowanie stanów Po uzyskaniu minimalnej tabeli stanów obieramy kodowanie stanów za pomocą stanów przerzutników rejestru stanu automatu. Dla przykładu, układ o trzech stanach ma 24 różne sposoby kodowania na dwóch przerzutnikach gdyż stan S0 może być zakodowany na 4 sposoby, stan S1 na 3 sposoby, stan S2 już tylko na 2 sposoby: = S S S Zamiana kolumn nie zmienia wykorzystanych do realizacji automatu zasobów gdyż wiąże się tylko ze zmianą oznaczeń przerzutników. W tym sensie kodowania 1 i 3, 2 i 4 oraz 5 i 6 są równoważne. Zamiana rzędów wpływa na ilość wykorzystanych do realizacji automatu zasobów. AGH, WFiIS, HDL 3
4 Kodowanie stanów Zanegowanie jednej lub więcej kolumn kodowania nie zmienia wykorzystanych zasobów w przypadku użycia przerzutników symetrycznych J-K, T i S-R. Kodowania 2 i 7 oraz 6 i 19 są równoważne. Dla przerzutnika niesymetrycznego D zanegowanie kolumny wymaga dodania inwertera. AGH, WFiIS, HDL 4
5 Kodowanie stanów Przez negowanie i przestawianie kolumn dowolne kodowanie może być sprowadzone do takiego, w którym pierwszy stan zawiera wyłącznie zera. W ten sposób dla układu o trzech stanach z przerzutnikami symetrycznymi pozostają tylko trzy różne kodowania. Podobnie jest dla czterech stanów. 3 stany 4 stany S S S S Dwa kodowania są równoważne jeśli jedno może być wyprowadzone z drugiego przez przestawianie lub negowanie kolumn. AGH, WFiIS, HDL 5
6 Kodowanie stanów Dwa kodowania są równoważne jeśli jedno może być wyprowadzone z drugiego przez przestawianie lub negowanie kolumn. Liczba stanów Liczba przerzutników Liczba nierównoważnych kodowań Możliwe testowanie wszystkich kodowań Ręczne Komputerowe niemożliwe AGH, WFiIS, HDL 6
7 Kodowanie stanów Ponieważ nie spróbujemy wszystkich kodowań to należy skoncentrować się na tych, które dają jedynki w tabelach funkcji wejść przerzutników w sąsiednich kwadratach tak by można je łatwo pogrupować w wyrażenia. Kody dwóch stanów są sąsiednie wtedy gdy różnią się tylko jednym bitem. 010 i 011 są sąsiednie, 010 i 001 nie są sąsiednie. Użyteczne są następujące wskazówki: Stany, które mają ten sam stan następny dla danego wejścia powinny mieć sąsiednie kody Stany, które są następnymi stanami tego samego stanu powinny mieć sąsiednie kody Stany o tym samym wyjściu dla danego wejścia powinny mieć sąsiednie kody Daje uproszczenie funkcji stanu nstępnego δ Daje uproszczenie funkcji wyjść λ AGH, WFiIS, HDL Slajd do samodzielnego studiowania 7
8 Postępowanie: Wypisz zbiory stanów, które na podstawie wskazówek powinny być sąsiednie. Stosując tabele Karnougha staraj się (metodą prób i błędów) zrealizować możliwie dużo z wymaganych sąsiedztw. Pamiętaj przy tym: Stan początkowy powinien być w zerowym polu tabeli Karnougha. Zwykle upraszcza to układ inicjacji (reset). Jako pierwsze staraj się zrealizować te sąsiedztwa, które są wymagane więcej niż raz. Stany z grupy liczącej trzy lub cztery wymagane sąsiedztwa powinny znaleźć się w grupie czterech sąsiednich pól tabeli Karnougha. Wyższy priorytet mają wymagania sformułowane na podstawie funkcji stanu następnego. Tylko jeśli mamy więcej niż jedną funkcję wyjścia to można rozważyć podwyższenie priorytetu wymagań pochodzących z funkcji wyjść. AGH, WFiIS, HDL Slajd do samodzielnego studiowania 8
9 Układ kombinacyjny Automat wysokiego poziomu Następny stan X Y=0 off X Rejestr stanu stan on1 on2 on3 Y=1 Y=1 Y=1 Wejścia X Wyjścia Y Licznik zmienna X Y=0 Cnt=2 off X Cnt=0 Następna wartość Cnt Y=1 on Cnt=Cnt-1 (Cnt=0) AGH, WFiIS, HDL 9
10 Architektura FSMD Logika stanu mastępnego Następny stan Rejestr stanu stan Scieżka danych zmienna Status Automat skończony ze ścieżką danych AGH, WFiIS, HDL 10
11 Ograniczenia automatu skończonego Wady automatu skończonego: Eksplozja stanów Obsługa wyjątków Brak elastyczności w czasie wykonania Alternatywą jest architektura mikroprogramowana. AGH, WFiIS, HDL 11
12 Eksplozja stanów FSM1 X FSM2 FSM1 FSM2 A1 A 1 h h &!g h B2!h g g B 2!h h & g C2!h &!g C3!g C 3 A2!g!h & g A3 B1!g!h g B3 C1 AGH, WFiIS, HDL 12
13 Obsługa wyjątków exc exc A1 exc exc exc exc exc exc g &!exc B2 h &!g &!exc h &!exc!h &!exc C2 h & g &!exc!h &!g &!exc C3 A2!h & g!g &!exc A3!exc B1!g &!exc!h &!exc g &!exc B3!exc C1 AGH, WFiIS, HDL 13
14 Logika stanu mastępnego Architektura mikroprogramowana FSMD Maszyna mikro-programowana Następny stan Pole skoku Rejestr stanu stan Scieżka danych zmien na Logika Adresu Następnego Rejestr Adresu Pamięci Sterowania CSAR Pamięć Sterowania Mikroinstru kcja Status Status Ścieżka Danych Pole komendy Zastąpienie logiki stanu następnego automatu programowalną pamięcią zwaną pamięcią sterowania. Przechowuje ona mikro-instrukcje i jest adresowana zawartością rejestru adresowego pamięci sterowania CSAR (Control Store Address Register). Następna wartość w tym rejestrze jest określana przez blok logiki adresu następnego w oparciu o: Bieżącą wartość w CSAR, Zawartość bieżącej mikroinstrukcji, Wartości flag określonych przez ścieżkę danych. AGH, WFiIS, HDL 14
15 Architektura mikroprogramowana Pole skoku Logika Adresu Następnego Rejestr Adresu Pamięci Sterowania CSAR Pamięć Sterowania Mikroinstrukcja Status Ścieżka Danych Pole komendy W czasie jednego okresu zegara: rejestr CSAR dostarcza adres do pamięci sterowania, z której pobierana jest mikroinstrukcja. Domyślna wartość CSAR jest wartością inkrementowaną o jeden. ścieżka danych wykonuje operację zakodowaną w komendzie i zwraca status, który jest informacją wejściową dla logiki adresu następnego. logika następnego adresu uaktualnia zawartość rejestru CSAR. AGH, WFiIS, HDL 15
16 Architektura mikroprogramowana Mikroinstrukcja składa się z dwóch części: komendy, która obsługuje aktywność ścieżki danych i adresu względnego (skoku), który jest informacją wejściową dla logiki adresu. Istotnym parametrem czasowym tej architektury jest łączne opóźnienie: pamięci sterowania, logiki adresu następnego i ścieżki danych. AGH, WFiIS, HDL 16
17 Architektura FPGA FPGA jest układem scalonym zaprojektowanym do konfiguracji po wykonaniu. Dwa rodzaje architektury: drzewiasta (tree-based FPGA architecture) bloki logiczne połączone są w klastry, które następnie rekursywnie formują strukturę hierarchiczną. Zajmuje mniejszą powierzchnię. Siatkowa (mesh-based FPGA architecture) - bloki logiczne połączone są poprzez dwuwymiarową siatkę sieci połączeniowej. Zaletą tego rozwiązania jest skalowalność topografii układu. AGH, WFiIS, HDL 17
18 Blok wejściowowyjściowy (I/O Block IOB) Pionowy kanał łączeniowy (Vertical Routing Channel) Konfigurowalny blok logiczny (Configurable Logic Block CLB) Element kluczujący (Switch Box - SB) Element łączący (Connection Box - CB) Poziomy kanał łączeniowy (Horizontal Routing Channel) Siatkowe FPGA składa się z matrycy konfigurowalnych bloków logiki (Configurable Logic Blocks - CLBs), z których każdy składa się z klastra podstawowych elementów logicznych (Basic Logic Elements -BLEs)., które AGH, WFiIS, HDL 18 składają się z pamięci podręcznej (Look-Up Table) i przerzutnika (Flip-Flop).
19 Architektura FPGA Siatkowe FPGA składa się z matrycy konfigurowalnych bloków logiki (Configurable Logic Blocks - CLBs), z których każdy składa się z klastra podstawowych elementów logicznych (Basic Logic Elements -BLEs), które składają się z pamięci podręcznej (Look-Up Table) i przerzutnika (Flip-Flop). Elementy kluczujące (Switch boxes - SB) łączą poziome i pionowe ścieżki sieci połączeniowej. Elementy łączące (Connection Boxes CB) łączą bloki logiczne CLB (bloki wejścia-wyjścia IOB) z sąsiadującymi ścieżkami sieci połączeniowej. Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%. Elastyczność FPGA zależy głównie od jego programowalnej sieci połączeniowej. Dlatego mówi się też o architekturze wyspowej wyspy logiki w morzu zasobów połączeniowych. AGH, WFiIS, HDL 19
20 Podstawowy element logiczny Składa się z: Pamięci podręcznej (Look-Up-Table LUT), Przerzutnika D. Basic Logic Element - BLE Wejścia BLE Pamięć podręczna LUT o k wejściach (LUT-k) zawiera 2 k bitów konfiguracyjnych. 4 wejściowy LUT Może implementować dowolną k-wejściową funkcję logiczną. Multiplekser Wyjście CLB Komórka SRAM (bit konfiguracyjny) Przerzutnik D AGH, WFiIS, HDL 20
21 Podstawowy element logiczny Gdy rośnie liczba wejść LUT-ów to spada liczba LUT-ów wymagana do zmapowania sprzętu gdyż więcej funkcjonalności logicznej może być utworzona w jednym LUT. Wobec tego spadnie liczba potrzebnych połączeń między LUT-ami czyli układ będzie szybszy. Ale powierzchnia LUT-a rośnie wykładniczo z liczbą wejść. 4-wejściowe LUT-y są dobrym kompromisem między szybkością pracy aplikacji i gęstością sieci połączeniowej w układzie FPGA. AGH, WFiIS, HDL 21
22 Konfigurowalny blok logiczny Jeden CLB może zawierać klaster BLE-sów połączonych lokalną siecią połączeniową (local routing network): Wyjścia każdego z wewnętrznych BLE są dostępne dla wejść pozostałych BLE, Liczba wyjść CLB to liczba BLE, Liczba wejść może być równa sumie liczby wejść wszystkich BLE lub mniejsza. AGH, WFiIS, HDL 22
23 Element łączący CB Elementy łączące (Connection Boxes CB) łączą wejścia i wyjścia bloków logicznych CLB (i bloków wejścia-wyjścia IOB) ze ścieżkami sąsiadujących kanałów łączeniowych. Mają dwie istotne właściwości: F c - elastyczność elementu CB jest liczbą ścieżek sąsiedniego kanału, które każdy pin bloku CLB (IOB) może przyłączyć; Topologia czyli wzór rozmieszczenia kluczy na ścieżkach kanału łączeniowego. Szerokość W kanał łączeniowy to liczba ścieżek, z których składa się ten kanał. Ta sama wartość elastyczności F c =2 (W=4) ale dwie różne topologie. Połączenie z A do B : Po lewej nie jest możliwe, Po prawej jest możliwe. F c (in) stopień połączalności wejściowych pinów bloków CLB (IOB) z sąsiednim kanałem połączeniowym F c (out) stopień połączalności wyjściowych pinów bloków CLB (IOB) z sąsiednim kanałem połączeniowym F c (in)/w = 1 oznacza, że wszystkie ścieżki sąsiedniego kanału mogą być połączone do pinów bloku CLB. Tego się nie robi. F c (in) /W = 0,5 oznacza, że tylko 50% ścieżek sąsiedniego kanału może być połączone do pinów bloku CLB. C B C B AGH, WFiIS, HDL 23 C B C B
24 Element kluczujący SB Elementy kluczujące (Switch boxes - SB) umożliwiają łączenie poziomych i pionowych ścieżek sieci połączeniowej. Elastyczność F s, definiuje dla segmentu wchodzącego do bloku SB liczbę innych segmentów, które mogą być połączone do niego. Przy tej samej wartości F s bloki SB mogą mieć bardzo odmienne możliwiści routingowe B B Ta sama wartość elastyczności F s =2 ale dwie różne topologie. Połączenie z A do B : Po lewej nie jest możliwe, Po prawej jest możliwe. A Bloki SB, które umożliwiają tylko połączenia ścieżek o tych samych numerach np. 0-0, 1-1,... nazywamy planarnymi lub podzbiorowymi. Bloki SB, które umożliwiają również połączenia ścieżek o różnych numerach np. 0-3, 1-2,... nazywamy blokami Wilton. Takie bloki SB są szeroko stosowane gdyż dostarczają większej elastyczności dla routingu. A AGH, WFiIS, HDL 24
25 Element kluczujący SB Switch Box dwukierunkowy jednokierunkowy Elemnet kluczujący o elastyczności F s = 3. Wejściowa ścieżka łączy się do 3 innych ścieżek tego samego elementu kluczującego. Ograniczeniem rozwiązania jednokierunkowego jest, że szerokość kanału połączeniowego musi być wielokrotnością dwójki. AGH, WFiIS, HDL 25
26 Element kluczujący SB Podłączenie wyjść CLB Z buforami trójstanowymi Ze sterowaniem z jednego bufora Stosowanie sterowania segmentów za pomocą pojedynczego bufora: Zmniejsza powierzchnię o 25%, Skraca opóźnienia o 9%, Redukuje pojemność połączeń o 37%. Większe układy FPGA dają większe oszczędności. Z punktu widzenia narzędzi projektowych nic to nie zmienia.. AGH, WFiIS, HDL 26
27 Kanały łączeniowe Ścieżka długości 1 Ścieżka długości 2 Ścieżka długości 4 Ścieżka długości 8 Aby zredukować powierzchnię i opóźnienia połączeń ale nie ograniczyć elastyczności ścieżki połączeń są różnych długości. Dłuższe segmenty wymagają mniej kluczy i redukują powierzchnię i opóźnienia, ale spada elastyczność połączeń co redukuje prawdopodobieństwo wykonania poprawnego routingu. AGH, WFiIS, HDL 27
28 Kanały łączeniowe SB SB CB SB SB przełącznik segment ścieżki Zasoby połączeniowe wokół jednego bloku CLB z segmentami ścieżek długości 2 AGH, WFiIS, HDL 28
29 Pamięć konfiguracji FPGA Technologia Programowanie Powierzchnia komórki SRAM Flash Antifuse CMOS Rejestr przesuwny Dwie warstwy polikrzemu FAMOS Nowy polikrzem Lawinowe Bardzo duża Duża Mała Rezystancja 2 kω 2 kω 500 kω Pojemność 50 ff 50 ff 10 ff AGH, WFiIS, HDL 29
30 Technologia SRAM Konfiguracyjna komórka typu SRAM jest zbudowana z dwóch inwerterów połączonych w zamkniętą pętlę i wykonanych w standardowej technologii CMOS. Komórka taka steruje bramkami innych tranzystorów w układzie: włączenie tranzystora wytwarza połączenie, wyłączenie tranzystora przerywa połączenie. Wpisywanie danych konfiguracyjnych Sterowanie tranzystorami tworzącymi połączenia Zaleta: Układ może być programowany już na płycie drukowanej i wielokrotnie reprogramowany w miarę zmieniających się wymagań projektowych i rozwoju oprogramowania. Sprzęt jest dzięki temu rekonfigurowalny w locie. Wada: Konieczne jest podtrzymywanie zasilania aby informacja w SRAM-ie była zachowana. Rozwiązaniem alternatywnym jest ładowanie danych konfiguracyjnych do SRAM-u w momencie włączania zasilania z zewnętrznej pamięci typu PROM. Całkowita powierzchnia komórki konfiguracyjnej SRAM wraz z tranzystorem sterującym ją jest większa niż potrzebna na element programujący anty-bezpieczniki. AGH, WFiIS, HDL 30
31 Technologia antifuse Anty-bezpiecznik w przeciwieństwie do normalnego bezpiecznika utrzymuje obwód otwarty dopóki nie zostanie wymuszony programujący prąd ~5mA. Programmable Low-Impedance Circuit Element (PLICE) firmy Actel jest antybezpiecznikiem wytworzonym pomiędzy warstwami Poly i Diff. Przepływ dużego prądu roztapia cienką warstwę dielektryka umieszczonego między elektrodami z polikrzemu i dyfuzji formując stałe połączenie o średnicy około 20 nm. Domieszki migrując z obu elektrod ustalają wartość rezystancji połączenia. Struktura ViaLink firmy QuickLogic AGH, WFiIS, HDL 31
32 Technologia flash Szeroka klasa pamięci nie-ulotnych NVM (Non-Volatile Memory), których komórka podstawowa bazuje na strukturze tranzystora MOS z dodatkową pływającą bramką pełniącą funkcję magazynu ładunku. Istnieje wiele takich struktur: FAMOS Floating gate Avalanche-injection MOS, SAMOS Staecked gate Avalanche-injection MOS, FLOTOX FLOating gate Thin Oxide, ETOX EPROM Tunnel Oxide (IBM), i wiele ich modyfikacji. Zasada działania polega na zmianie napięcia progowego V th tranzystora MOS poprzez wprowadzenie dodatkowych ładunków do przewodzącej warstwy zwanej pływającą bramką, uwięzionej pomiędzy dwiema warstwami izolatora. Polikrzemowa, przewodząca warstwa gromadząca ładunek pływająca bramka zapis wymazywanie źródło + N FH P substrate CHE + N Bramka sterująca, polikrzem Izolator pomiędzy polikrzemami Cienki, tunelowy tlenek bramkowy dren CHE channel hot electrons FH Fowler-Nordheim tunneling AGH, WFiIS, HDL 32
33 Technologia flash Proces zapisu odbywa się: prądem tunelowym FN (Fowler-Nordheim) z kanału lub z drenu tranzystora do pływającej bramki lub prądem gorących elektronów generowanych w kanale tranzystora w nasyceniu CHE (Channel Hot Electrons) w obszarze zubożenia przy drenie tranzystora. AGH, WFiIS, HDL 33
34 Technologia flash Proces wymazywania odbywa się prądem tunelowym FN (Fowler-Nordheim) do kanału lub do drenu tranzystora od pływającej bramki. Proces tunelowego wymazywania jest bardzo wolny (rzędu ms) więc operacja ta jest wykonywana dużymi blokami stąd pochodzi nazwa tej technologii flash. Inny sposób wymazywania odbywa się prądem źródła: e - w dół oznacza prąd tunelowy FN elektronów wstrzykiwanych z pływającej bramki do żródła lub do kanału, h + w górę oznacza prąd gorących dziur wstrzykiwanych ze złącza źródło-podłoże do pływającej bramki. AGH, WFiIS, HDL 34
35 Model RTL w HDL Przebieg konfiguracji Synteza logiczna Mapowanie technologii Klastrowanie Rozmieszczanie Wyznaczania tras połączeń Generacja strumienia bitowego strumień bitowy 35 AGH, WFiIS, HDL
36 Synteza logiczna Logic synthesis Synteza logiczna : Transformacja opisu RTL w języku opisu sprzętu (VHDL, Verilog) do hierarchicznej sieci logicznej zbudowanej z bramek i przerzutników (netlist). Jest to optymalizacja niezależna od technologii. EDIF (Electronic Design Interchange Format) przemysłowy stanadrd stosowany dla wymiany netlisty między kolejnymi narzędziami. U Xilinxa: NGC = EDIF + NCF NCF - Netlist Constraints File Synteza logiczna dwupoziomowa gdy w wyniku otrzymujemy formę sumy iloczynów SOP Sum Of Product. Realizacja składa się z poziomu bramek AND i poziomu bramek OR. Jest to typowe dla struktur PLD. Synteza logiczna wielopoziomowa złożona procedura oparta na faktoryzacji i dekompozycji. Pod względem zajmowanej powierzchni układy wielopoziomowe są oszczędniejsze. Dlatego to podejście jest stosowane do ASIC i FPGA. AGH, WFiIS, HDL 36
37 Synteza logiczna Dekompozycja funkcji logicznej jest procesem ponownego wyrażenia tej funkcji jako kolekcji nowych funkcji. Przykład: F Przed dekompozycją: 12 literałów i 9 bramek abc abd acd bcd Po dekompozycji: F XY XY Y X c ab d 12 literałów i 9 bramek 8 literałów i 7 bramek Funkcja F jest teraz zależna od innych danych wejściowych. Po dekompozycji: 8 literałów i 7 bramek AGH, WFiIS, HDL 37
38 Synteza logiczna Faktoryzacja funkcji logicznej jest procesem wyprowadzenia postaci mnożnikowej z formy SOP. Przykład: F Po sfaktoryzowaniu: ac F ad ( a bc bd b )( c e d ) e 9 literałów 5 literałów Typowym zagadnieniem optymalizacji jest znalezienie postaci sfaktoryzowanej z minimalną liczbą literałów. Liczba literałów dobrze odpowiada powierzchni przyszłej topografii układu. Przykład: f ac ade adfg adfh adfi adfj bc bde bdfg bdfh bdfi bdfj Po sfaktoryzowaniu: f ( a b )( c d(e f ( g h i j ))) AGH, WFiIS, HDL 38
39 Odbywa się to w dwóch fazach: Mapowanie Mapowanie technologii: Transformacja niezależnej technologicznie sieci logicznej do sieci dostępnych bloków istniejących w technologicznej bibliotece komórek standardowych. W przypadku FPGA blokami tymi są LUT-y i przerzutniki. Algorytmy mapowania wykonują optymalizację ze względu na różne parametry sieci: głębokość, powierzchnię, opóźnienia, moc. Dekompozycja do bloków o liczbie wejść mniejszej lub równej od k (k -bounded gates). Właściwe mapowanie na sieci bloków k -bounded. Sieć logiczna k -bounded to sieć, w której występują elementy o k lub mniej wejściach. Głębokość jest definiowana jako liczba poziomów sieci LUT-ów. Powierzchnia jest definiowana jako liczba LUT-ów w sieci. Technology mapping AGH, WFiIS, HDL 39
40 Mapowanie Sieć boolowska po syntezie Graf skierowany niecykliczny DAG (Directed Acyclic Graph) Wierzchołki grafu reprezentują bramki, przerzutniki, porty wejściowe lub wyjściowe. Krawędzie grafu reprezentują połączenia między dwoma elementami układu. AGH, WFiIS, HDL 40
41 Mapowanie AGH, WFiIS, HDL 41
42 Mapowanie Mapowanie sieci logicznej do sieci zbudowanej z k-wejściowych LUT-ów dla k=3. AGH, WFiIS, HDL 42
43 Wejściowa sieć 5-bounded Wynik dekompozycji i mapowania. Głębokość 3, powierzchnia 5 Wynik równoczesnej dekompozycji i mapowania. Głębokość 2, powierzchnia 3 Można też powiedzieć, że to jest sieć 2-bounded o głębokości 4 Przykład mapowanie sieci typu 5-bounded za pomocą bloków 3-LUT przy użyciu dwóch różnych algorytmów. AGH, WFiIS, HDL 43
44 Mapowanie Szeroko stosowanym algorytmem mapowania technologii jest FlowMap podany w 1994roku [J.Cong, Y.Ding, 1994]. Pierwotnie potrafił podać sieć optymalną ze względu na głębokość. Obecnie potrafi także optymalizować powierzchnię i opóźnienia utrzymując głębokość sieci. Wynikiem mapowania technologii jest sieć IOB-ów, LUT-ów i przerzutników. AGH, WFiIS, HDL 44
45 Klastrowanie Packing Klastrowanie: Grupowanie pamięci podręcznych (LUT) i przerzutników w element logiczny, i Grupowanie różnych elementów logicznych (BLE) w klaster, Mapowanie klastrów na bloki logiczne (CLB). Głównym celem tej optymalizacji jest sklastrowanie pamięci podręcznych, przerzutników i elementów logicznych w taki sposób aby zminimalizować komunikację pomiędzy klastrami. Minimalizuje to zużycie zasobów połączeniowych w FPGA. Wynikiem tej operacji jest sieć bloków logicznych (CLB) i bloków wejścia-wyjścia (IOB). AGH, WFiIS, HDL 45
46 Klastrowanie Packing AGH, WFiIS, HDL 46
47 Klastrowanie Packing Trzy rodziny algorytmów: Top-down podział bloków logicznych przez kolejne podziały sieci lub przez iteracyjne przenoszenie bloków logicznych między częściami. Depth-optimal minimalizacja opóźnień kosztem duplikacji logiki. Bottom-up metody preferowane dla systemów CAD z przeznaczeniem dla FPGA ze względu na ich efektywność obliczeniową i rozsądne opóźnienia czasowe. Jednak metody te rozważają jedynie lokalną informację połączeniową. Dlatego łatwo spełniają wymagania (constraints) narzucone na piny klastrów. Podejście Top-down jest najlepszym rozwiązaniem jednak jest w praktyce nieosiągalne ze względu na złożoność obliczeniową. AGH, WFiIS, HDL 47
48 Rozmieszczanie Rozmieszczanie : Algorytm rozmieszczania określa pozycje instancji bloków logicznych (CLB) i bloków wejścia-wyjścia (IOB) ze sklastrowanej netlisty w matrycy FPGA. Kryterium rozmieszczania jest minimalizacja odległości między blokami aby połączenia wykonywane w fazie routingu były najkrótsze. Dodatkowo algorytm rozmieszczania spełnia także inne wymagania np. minimalizacja gęstości połączeń w FPGA lub maksymalizacja szybkości. W użyciu są trzy rodzaje algorytmów placementu: Placement Bazujące na podziałach (min-cut or partitioning based) właściwe dla architektur hierarchicznych, Analityczne jako funkcję celu stosujące kwadratową funkcję długości połączeń, Schłodzeniowe (annealing) stosujące ideę stopniowego schładzania roztopionego metalu w celu uzyskania wysokiej jakości przedmiotów metalowych. AGH, WFiIS, HDL 48
49 Rozmieszczanie Pseudo kod typowego placera schłodzeniowego: S = RandomPlacement(); T = InitialTemperature(); R limit = InitialR limit ; while ExitCriterion() == false do while InnerLoopCriterion() == false do S new = GenerateViaMove(S, R limit ); ΔC = Cost (S new ) Cost (S); if ΔC<0 then S = S new ; else r = random(0,1) ; if r < exp( -ΔC/T ) then S = S new ; endif endif endw T = UpdateTemperature(); R limit = UpdateR limit (); endw Rozmieszczenie S początkowe polega na przypadkowym przypisaniu bloków logiki Nowe przypisania S new są losowane także przypadkowo Obliczana jest zmiana funkcji celu ΔC dla proponowanego nowego przypisania S new położeń Jeśli ΔC<0 propozycja jest akceptowana Jeśli ΔC>0 propozycja także może być zaakceptowana R limit określa jak blisko siebie muszą znajdować się bloki aby zostały wzięte pod uwagę do zamiany w czasie generacji nowego rozmieszczenia. AGH, WFiIS, HDL 49
50 Rozmieszczanie bounding box węzła o 6 końcówkach bb x (i) Funkcją celu algorytmu (cost function) jest suma półobwodów prostokątnych obwiedni wszystkich węzłów w netliście: C N i 1 q( i) bb ( i) bb N całkowita liczba węzłów w netliście, bb x (i) horyzontalny rozmiar i-tego węzła, bb y (i) wertykalny rozmiar i-tego węzła, q(i) współczynnik korekcyjny. x y ( i) bb y (i) simulated annealing based placement A.Sangiovanni-Vincentelli, 1985 Początkowo instancje są rozmieszczone przypadkowo na powierzchni układu. W kolejnych krokach instancje są poruszane tak aby poprawić jakość rozmieszczenia tzn. obniżyć temperaturę algorytmu. W każdym kroku temperaturowym liczba operacji przemieszczeń jest określona przez parametr zwany liczba iteracji. Parametr ten jest proporcjonalny do liczby instancji w netliście. AGH, WFiIS, HDL 50
51 Rozmieszczanie Placement Prawdopodobieństwo akceptacji ruchu instancji, który zwiększa funkcję celu: C T p e ΔC dodatnia zmiana funkcji celu T parametr zwany temperaturą, który określa prawdopodobieństwo zaakceptowania ruchów, które pogorszą placement. Początkowo, T jest na tyle wysoka, że prawie wszystkie ruchy są akceptowane. Temperatura T jest stopniowo zmniejszana w miarę poprawy rozmieszczenia, w taki sposób, że ostatecznie prawdopodobieństwo zaakceptowania ruchu pogarszającego jest bardzo niskie. Ta zdolność do akceptowania ruchów pogorszających placement, pozwala na wyprowadzenie procedury z lokalnych minimów funkcji celu. AGH, WFiIS, HDL 51
52 Rozmieszczanie Schemat schładzania jest określony przez parametry: Placement Szybkość obniżania temperatury (rate at which temperature is decreased) - UpdateTemperature Kryterium zakończenia schładzania (exit criterion for terminating the anneal) - ExitCriterion Liczba prób nowego rozmieszczenia dla każdego kroku temperaturowego (number of moves attempted at each temperature) InnerLoopCriterion Metoda generacji proponowanych przesunięć (method by which potential moves are generated) - GenerateViaMove S = RandomPlacement(); T = InitialTemperature(); R limit = InitialR limit ; while ExitCriterion() == false do while InnerLoopCriterion() == false do S new = GenerateViaMove(S, R limit ); ΔC = Cost (S new ) Cost (S); if ΔC<0 then S = S new ; else r = random(0,1) ; if r < exp( -ΔC/T ) then S = S new ; endif endif endw T = UpdateTemperature(); R limit = UpdateR limit (); endw Schemat schładzania może być: Stały o stałych raz dobranych parametrach, Adaptacyjny parametry są określane w oparciu o statystykę tworzona w czasie samego schładzania. AGH, WFiIS, HDL 52
53 Rozmieszczanie Schemat Huanga: Efficient General Cooling Schedule for Simulated Annealing, Huang 1986 InitialTemperature Wykonuje serie przesunięć na początkowym przypisaniu i ustawia temperaturę początkową na: T init = 20 σ gdzie: σ odchylenie standardowe wartości funkcji celu dla wykonanej serii przesunięć. UpdateTemperature T old gdzie: Tnew Told e λ = 0,7 σ odchylenie standardowe wartości funkcji celu dla serii przesunięć wykonanej przy T old. InnerLoopCriterion Kryterium to oparte jest o procent generowanych rozmieszczeń, które mają wartości funkcji celu C w pewnym przedziale wokół wartości średniej C mean (dla danego kroku temperaturowego). Ponadto istnieje kilka szczególnych i awaryjnych przypadków. AGH, WFiIS, HDL 53
54 Rozmieszczanie ExitCriterion C max - C min = ΔC max przy T = const Gdzie: C max - maksymalna wartość funkcji celu dla zaakceptowanego rozmieszczenia dla danej temperatury, C min - minimalna wartość funkcji celu dla zaakceptowanego rozmieszczenia dla danej temperatury, ΔC max - maksymalna zmiana wartość funkcji celu jaka wystąpiła przy tej temperaturze. InitialR limit Schemat Lama wykorzystuje ogranicznik zasięgu (range limiter) do sterowania procesem generacji przesunięć. Parametr R limit określa jak blisko siebie muszą znajdować się bloki aby zostały wzięte pod uwagę do zamiany w czasie generacji nowego rozmieszczenia. Początkowo parametr ograniczenia zasięgu jest bardzo duży i zamiany bloków położonych daleko od siebie na układzie są prawdopodobne. W miarę procesu schładzania R limit jest dostosowywany tak aby procent α proponowanych przesunięć, które zostały zaakceptowane utrzymać blisko wartości 44. Jeśli α < 44 to R limit jest obniżane, a jeśli α > 44 to R limit jest zwiększane. UpdateR limit AGH, WFiIS, HDL 54
55 Wyznaczania tras Routing Wyznaczania tras połączeń: Po zakończeniu układania (placed) instancji netlisty należy stworzyć połączenia między nimi wykorzystując dostępne zasoby do wyznaczania tras połączeń. Powszechnie stosowany jest algorytm PathFinder [McMurchie-Ebeling, 1995]. Struktura połączeń jest modelowana za pomocą grafu skierowanego. Wierzchołki tego grafu to segmenty łączeniowe lub porty bloków. Krawędzie tego grafu to połączenia między segmentami i do portów. Na tym grafie stosowany jest algorytm zagęszczeniowy (congestion driven) Dijkstry do znajdowania najkrótszej drogi w grafie. AGH, WFiIS, HDL 55
56 Wyznaczania tras Routing Jedna iteracja routingu jest ukończona gdy wszystkie węzły w netliście są połączone. Jednak mogą istnieć konflikty polegające na tym, że różne węzły (nets) odpowiadają tym samym wierzchołkom grafu (nodes). Współczynnik zagęszczenia jest aktualizowany i wykonywana jest kolejna iteracja routingu. Procedura powtarza się aż: zostanie znalezione rozwiązanie, w którym znikną wszystkie konflikty lub osiągnięta zostanie maksymalna liczba iteracji czyli routing nie uda się. AGH, WFiIS, HDL 56
57 Analiza czasowa Timing analysis Analiza projektu pod względem zależności czasowych, której celem jest ustalenie czy projekt może działać poprawnie przy częstotliwości określonej w specyfikacji bez łamania ograniczeń czasowych (timing violations) obowiązujących na wszystkich elementach projektu. Znaczenie takiej analizy rośnie gdy proces technologiczny ma na tyle małe wymiary elementów, że ścieżki połączeń mają istotne znaczenie dla działania i wydajności całego projektu. D CLK Q Logika kombinacyjn a D CLK Q CLK Q Q t=0 t=t AGH, WFiIS, HDL 57
58 Rodzaje analizy czasowej symulacyjna (dynamiczna) statyczna Timing simulation Static Timing Analysis STA Obserwacja odpowiedzi na wymuszenia (sygnały wejściowe) i na ich podstawie prowadzenie weryfikacji założeń czasowych projektu. Wymaga tworzenia skomplikowanych modułów testowych. Tą metodę w Verilogu ułatwiają funkcje systemowe zwane kontrolami czasowymi (timing checks): $hold, $setup, $period, $skew i inne. Analiza projektu prowadzona jest statycznie i nie zależy od danych podawanych na wejścia. Analizie podlega cały projekt i wymagane sprawdzenia przebiegów czasowych (timing checks) są wykonywane dla wszystkich możliwych ścieżek sygnałowych w projekcie i scenariuszy wykorzystania projektu. Dla celów dynamicznej analizy czasowej w Verilogu są trzy rodzaje modeli opóźnień: Opóźnienie rozproszone (distributed), Opóźnienie zgrubne (lumped), Opóźnienie ścieżek (pin-to-pin). W czasie syntezy i pozostałych procesów implementacji prowadzona jest statyczna analiza czasowa związana z każdym z tych procesów. AGH, WFiIS, HDL 58
59 Statyczna analiza czasowa Timing Analysis Obliczanie opóźnień dla każdej ścieżki projektu w taki sposób aby łatwo ustalić, która ścieżka jest krytyczna tzn. limituje czasowe własności układu. Dwa założenia: Nie dozwolone są kombinacyjne sprzężenia zwrotne, Wszystkie ścieżki sprzężeń zwrotnych są przerwane przez granicę sygnału zegarowego. W STA projekt jest traktowany jak zbiór ścieżek. Każda posiada: punkt początkowy port wejściowy lub wejście zegarowe przerzutnika, i punkt końcowy - port wyjściowy lub wejście danych przerzutnika. W czasie syntezy i pozostałych procesów prowadzona jest statyczna analiza czasowa, której celem jest: Określenie szybkości działania układu po P&R, Oszacowanie luzu czasowego (slack) każdego połączenia źródło-cel stworzonego podczas wyznaczania tras i rozmieszczania i innych procesów projektu; celem jest podjęcie decyzji, które połączenia muszą być wykonane szybkimi ścieżkami, aby uniknąć spowolnienia obwodu. AGH, WFiIS, HDL 59
60 Statyczna analiza czasowa Opóźnienie ścieżki (path delay) suma opóźnień wnoszonych przez wszystkie komórki logiczne i węzły wzdłuż drogi sygnału. Zwykle istnieje wiele dróg przenoszenia sygnału do punktu przeznaczenia. Prawdziwy wybór drogi zależy od stanu wejść innych komórek wzdłuż drogi. Spośród możliwych mamy tę o największym opóźnieniu najdłuższą ścieżkę (max path, late path) i tę o najkrótszym opóźnieniu najkrótszą ścieżkę (min path, early path). Określenia najdłuższa i najkrótsza dotyczą oczywiście łącznego czasu a nie długości węzłów i/lub liczby komórek. Gdy ścieżka biegnie od przerzutnika do przerzutnika to początkowy nazywamy przerzutnikiem uruchamiającym (launch flip-flop), a końcowy przerzutnikiem wychwytującym (capture flip-flop). AGH, WFiIS, HDL 60
61 Statyczna analiza czasowa Rozróżnia się następujące rodzaje ścieżek: Wejściowa (entry input-to-d) zaczyna sią na końcówce wejściowej, a kończy na wejściu danych innego przerzutnika, Pomiędzy stopniami lub przerzutnik-do-przerzutnika (stage - clock-to-d) zaczyna sią na wejściu zegarowym przerzutnika, a kończy na wejściu danych innego przerzutnika, Wyjściowa (exit clock-to-output) zaczyna sią na wejściu zegarowym przerzutnika, a kończy na końcówce wyjściowej, Wejście-wyjście (pad-to-pad port-to-port) zaczyna sią na końcówce wejściowej, a kończy na wyjściowej. pad-to-pad Logika kombinacyjn a Logika kombinacyjn a entry CLK D Q CLK Q stage Logika kombinacyjn a D Q CLK Q Logika kombinacyjn a exit AGH, WFiIS, HDL 61
62 Statyczna analiza czasowa slack time Ścieżka krytyczna to ścieżka z najdłuższym czasem propagacji. Jest to ścieżka kombinacyjna, która ma ujemny lub najmniejszy czas luzu (slack): Czas Luzu = Czas Wymagany Czas przybycia Identyfikacja ścieżki krytycznej: Określa okres zegara systemowego Wskazuje, która część układu powinna być zmieniona aby ulepszyć układ. AGH, WFiIS, HDL 62
63 Generacja strumienia bitowego Bitstream generation Generacja strumienia bitowego : Strumień bitowy (bitstream) netlisty zawiera informację jak zaprogramować bity pamięci SRAM, w FPGA: w LUT-ach (mapowanie, klastrowanie i rozmieszczanie), w CLB (routing lokalny), w blokach SB i CB (routing globalny). Program ładujący przesyła strumień bitowy do FPGA. AGH, WFiIS, HDL 63
napięcie-częstotliwość
Przetwornik napięcie-częstotliwość Czytnik TLD Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie 1 Czytnik TLD RA 94 2 Czytnik TLD RA 94 FOT PIF ZWN PLT PTW Fotopowielacz Przetwornik
Elementy cyfrowe i układy logiczne
Elementy cyfrowe i układy logiczne Wykład 5 Legenda Procedura projektowania Podział układów VLSI 2 1 Procedura projektowania Specyfikacja Napisz, jeśli jeszcze nie istnieje, specyfikację układu. Opracowanie
Liczniki z zastosowaniem
Liczniki z zastosowaniem FPGA i µc Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie 1 Liczniki Rodzaje implementacji: Układy średniej skali integracji MSI Mikrokontroler Układ FPGA
Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek
Programowalne Układy Logiczne Wykład I dr inż. Paweł Russek Literatura www.actel.com www.altera.com www.xilinx.com www.latticesemi.com Field Programmable Gate Arrays J.V. Oldfield, R.C. Dorf Field Programable
Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych
Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych (Na przykładzie projektowania układów sterujacych) Grzegorz Łabiak i Marek Węgrzyn Instytut Informatyki
Temat: Pamięci. Programowalne struktury logiczne.
Temat: Pamięci. Programowalne struktury logiczne. 1. Pamięci są układami służącymi do przechowywania informacji w postaci ciągu słów bitowych. Wykonuje się jako układy o bardzo dużym stopniu scalenia w
Liczniki z zastosowaniem
Liczniki z zastosowaniem FPGA i µc Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie 1 Zliczanie impulsów Źródło impulsów Kondycjonowanie Licznik Wyświetlacz Układ czasowy 2 Liczniki
Układy reprogramowalne i SoC Implementacja w układach FPGA
Układy reprogramowalne i SoC Implementacja w układach FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez
Tranzystor JFET i MOSFET zas. działania
Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej
UKŁADY MIKROPROGRAMOWALNE
UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim
Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA
Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA Ogromną rolę w technice cyfrowej spełniają układy programowalne, często określane nazwą programowalnych modułów logicznych lub krótko hasłem FPLD
Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych
Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo
Sławomir Kulesza. Projektowanie automatów asynchronicznych
Sławomir Kulesza Technika cyfrowa Projektowanie automatów asynchronicznych Wykład dla studentów III roku Informatyki Wersja 3.0, 03/01/2013 Automaty skończone Automat skończony (Finite State Machine FSM)
Elektronika i techniki mikroprocesorowe
Elektronika i techniki mikroprocesorowe Technika cyfrowa ZłoŜone one układy cyfrowe Katedra Energoelektroniki, Napędu Elektrycznego i Robotyki Wydział Elektryczny, ul. Krzywoustego 2 PLAN WYKŁADU idea
Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych
Programowanie Układów Logicznych kod kursu: ETD623 Pamięć w układach programowalnych W6 6.4.26 dr inż. Daniel Kopiec Plan wykładu Pamięć w układach programowalnych Zasada działania, podział pamięci Miara
Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.
Kilka informacji o przerzutnikach Jaki układ elektroniczny nazywa się przerzutnikiem? Przerzutnikiem bistabilnym jest nazywany układ elektroniczny, charakteryzujący się istnieniem dwóch stanów wyróżnionych
Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.
Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów
Różnicowe układy cyfrowe CMOS
1 Różnicowe układy cyfrowe CMOS Różnicowe układy cyfrowe CMOS 2 CVSL (Cascode Voltage Switch Logic) Różne nazwy: CVSL - Cascode Voltage Switch Logic DVSL - Differential Cascode Voltage Switch Logic 1 Cascode
Sławomir Kulesza. Projektowanie automatów synchronicznych
Sławomir Kulesza Technika cyfrowa Projektowanie automatów synchronicznych Wykład dla studentów III roku Informatyki Wersja 2.0, 20/12/2012 Automaty skończone Automat Mealy'ego Funkcja wyjść: Yt = f(st,
Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne
Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...
BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO
Ćwiczenie 11 BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO 11.1 Cel ćwiczenia Celem ćwiczenia jest poznanie rodzajów, budowy i właściwości przerzutników astabilnych, monostabilnych oraz
Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).
Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów
PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE
Paweł Bogumił BRYŁA IV rok Koło Naukowe Techniki Cyfrowej Dr inŝ. Wojciech Mysiński opiekun naukowy PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE Keywords: PAL, PLA, PLD, CPLD, FPGA, programmable device, electronic
Ćw. 7: Układy sekwencyjne
Ćw. 7: Układy sekwencyjne Wstęp Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną następujące układy
Sterowniki Programowalne (SP)
Sterowniki Programowalne (SP) Wybrane aspekty procesu tworzenia oprogramowania dla sterownika PLC Podstawy języka funkcjonalnych schematów blokowych (FBD) Politechnika Gdańska Wydział Elektrotechniki i
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów
Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.
Elementy cyfrowe i układy logiczne Wykład Legenda Kryterium kosztu realizacji Minimalizacja i optymalizacja Optymalizacja układów dwupoziomowych Tablica (mapa) Karnaugh a Metoda Quine a-mccluskey a Złożoność
Automatyzacja i robotyzacja procesów produkcyjnych
Automatyzacja i robotyzacja procesów produkcyjnych Instrukcja laboratoryjna Technika cyfrowa Opracował: mgr inż. Krzysztof Bodzek Cel ćwiczenia. Celem ćwiczenia jest zapoznanie studenta z zapisem liczb
Wstęp do Techniki Cyfrowej... Układy kombinacyjne
Wstęp do Techniki Cyfrowej... Układy kombinacyjne Przypomnienie Stan wejść układu kombinacyjnego jednoznacznie określa stan wyjść. Poszczególne wyjścia określane są przez funkcje boolowskie zmiennych wejściowych.
Wielopoziomowa synteza układów logicznych
Wielopoziomowa synteza układów logicznych Dwupoziomowa synteza sprowadza się do realizacji, w których pierwszy poziom tworzą bramki AND, a drugi bramki OR. Cała struktura układu jest opisana formułą typu:
ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS
inż. Michał HALEŃSKI Wojskowy Instytut Techniczny Uzbrojenia ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH Streszczenie: W artykule przedstawiono budowę oraz zasadę działania układów FPGA oraz
2. PORTY WEJŚCIA/WYJŚCIA (I/O)
2. PORTY WEJŚCIA/WYJŚCIA (I/O) 2.1 WPROWADZENIE Porty I/O mogą pracować w kilku trybach: - przesyłanie cyfrowych danych wejściowych i wyjściowych a także dla wybrane wyprowadzenia: - generacja przerwania
Programowalne układy logiczne
Programowalne układy logiczne Układy synchroniczne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 26 października 2015 Co to jest układ sekwencyjny? W układzie sekwencyjnym,
Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D
AGH Katedra Elektroniki Podstawy Elektroniki dla Elektrotechniki Liczniki synchroniczne na przerzutnikach typu D Ćwiczenie 7 Instrukcja do ćwiczeń symulacyjnych 2016 r. 1 1. Wstęp Celem ćwiczenia jest
Projektowanie Scalonych Systemów Wbudowanych VERILOG
Projektowanie Scalonych Systemów Wbudowanych VERILOG OPIS BEHAWIORALNY proces Proces wątek sterowania lub przetwarzania danych, niezależny w sensie czasu wykonania, ale komunikujący się z innymi procesami.
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
Systemy Czasu Rzeczywistego FPGA
01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 03 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2
Minimalizacja form boolowskich
Sławomir Kulesza Technika cyfrowa Minimalizacja form boolowskich Wykład dla studentów III roku Informatyki Wersja 1.0, 05/10/2010 Minimalizacja form boolowskich Minimalizacja proces przekształcania form
Plan wykładu. Architektura systemów komputerowych. Cezary Bolek
Architektura systemów komputerowych Poziom układów logicznych. Układy sekwencyjne Cezary Bolek Katedra Informatyki Plan wykładu Układy sekwencyjne Synchroniczność, asynchroniczność Zatrzaski Przerzutniki
Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1
Część 3 Układy sekwencyjne Układy sekwencyjne i układy iteracyjne - grafy stanów 18.11.2017 TCiM Wydział EAIiIB Katedra EiASPE 1 Układ cyfrowy - przypomnienie Podstawowe informacje x 1 x 2 Układ cyfrowy
Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0
Synteza liczników synchronicznych Załóżmy, że chcemy zaprojektować licznik synchroniczny o następującej sekwencji: 0 1 2 3 6 5 4 [0 sekwencja jest powtarzana] Ponieważ licznik ma 7 stanów, więc do ich
Logiczne układy bistabilne przerzutniki.
Przerzutniki spełniają rolę elementów pamięciowych: -przy pewnej kombinacji stanów na pewnych wejściach, niezależnie od stanów innych wejść, stany wyjściowe oraz nie ulegają zmianie; -przy innej określonej
Synteza logiczna APSC
Jest to proces tłumaczenia opisu projektu przygotowanego na wysokim poziomie abstrakcji na zoptymalizowaną reprezentację na poziomie bramek logicznych w oparciu o zadaną technologiczną bibliotekę komórek
Organizacja typowego mikroprocesora
Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają
Część 3. Przegląd przyrządów półprzewodnikowych mocy. Łukasz Starzak, Przyrządy i układy mocy, studia niestacjonarne, lato 2018/19 51
Część 3 Przegląd przyrządów półprzewodnikowych mocy Łukasz Starzak, Przyrządy i układy mocy, studia niestacjonarne, lato 2018/19 51 Budowa przyrządów półprzewodnikowych Struktura składa się z warstw Warstwa
Kody splotowe. Zastosowanie
Kody splotowe Zastosowanie Niekiedy potrzeba buforowania fragmentu wiadomości przed zakodowaniem, tak jak to ma miejsce w koderze blokowym, jest przeszkodą, gdyż dane do zakodowania napływają strumieniem.
PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH
II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 5-8 czerwca 005, Z otniki Luba skie PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH
Synteza układów kombinacyjnych
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych Wykład dla studentów III roku Informatyki Wersja 4.0, 23/10/2014 Bramki logiczne Bramki logiczne to podstawowe elementy logiczne realizujące
Bramki logiczne Podstawowe składniki wszystkich układów logicznych
Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości
Programowany układ czasowy
Programowany układ czasowy Zbuduj na płycie testowej ze Spartanem-3A prosty ośmiobitowy układ czasowy pracujący w trzech trybach. Zademonstruj jego działanie na ekranie oscyloskopu. Projekt z Języków Opisu
(12) OPIS PATENTOWY (19) PL (11) (13) B1
RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19) PL (11) 170013 (13) B1 Urząd Patentowy Rzeczypospolitej Polskiej (21) Numer zgłoszenia: 297079 (22) Data zgłoszenia: 17.12.1992 (51) IntCl6: H01L 29/792 (
Układy cyfrowe w technologii CMOS
Projektowanie układów VLSI Układy cyfrowe w technologii MOS ramki bramki podstawowe bramki złożone rysowanie topografii bramka transmisyjna Przerzutniki z bramkami transmisyjnymi z bramkami zwykłymi dr
Układy logiczne układy cyfrowe
Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe
Układy akwizycji danych. Komparatory napięcia Przykłady układów
Układy akwizycji danych Komparatory napięcia Przykłady układów Komparatory napięcia 2 Po co komparator napięcia? 3 Po co komparator napięcia? Układy pomiarowe, automatyki 3 Po co komparator napięcia? Układy
Struktury specjalizowane wykorzystywane w mikrokontrolerach
Struktury specjalizowane wykorzystywane w mikrokontrolerach Przetworniki analogowo-cyfrowe i cyfrowoanalogowe Interfejsy komunikacyjne Zegary czasu rzeczywistego Układy nadzorujące Układy generacji sygnałów
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Instrukcja pomocnicza do laboratorium z przedmiotu Programowalne Struktury
Projektowanie układów FPGA. Żródło*6+.
Projektowanie układów FPGA Żródło*6+. Programowalne układy logiczne W elektronice cyfrowej funkcjonują dwa trendy rozwoju: Specjalizowane układy scalone ASIC (ang. Application Specific Integrated Circuits)
Systemy wbudowane. Układy programowalne
Systemy wbudowane Układy programowalne Układy ASIC Application Specific Integrated Circuits Podstawowy rozdział cyfrowych układów scalonych: Wielkie standardy: standardowe, uniwersalne elementy o strukturze
Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji
WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji mgr inż. Paulina Mazurek Warszawa 2013 1 Wstęp Układ
Ogólny schemat inwertera MOS
Ogólny schemat inwertera MOS Obciążenie V i V o Sterowanie Rodzaje cyfrowych układów scalonych MOS Układy cyfrowe MOS PMOS NMOS MOS BiMOS z obciążeniem zubożanym z obciążeniem wzbogacanym statyczne dynamiczne
Ćw. 8 Bramki logiczne
Ćw. 8 Bramki logiczne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi bramkami logicznymi, poznanie ich rodzajów oraz najwaŝniejszych parametrów opisujących ich własności elektryczne.
LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35
LABORATORIUM TECHNIKA CYFROWA Pamięci Rev.1.35 1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania oraz kontroli pamięci 2. Kolokwium Kolokwium wstępne sprawdzające
Optymalizacja ciągła
Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/
x x
DODTEK II - Inne sposoby realizacji funkcji logicznych W kolejnych podpunktach zaprezentowano sposoby realizacji przykładowej funkcji (tej samej co w instrukcji do ćwiczenia "Synteza układów kombinacyjnych")
Struktura i działanie jednostki centralnej
Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala
Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja
Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja 0.1 29.10.2013 Przypomnienie - podział układów cyfrowych Układy kombinacyjne pozbawione właściwości pamiętania stanów, realizujące
xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy
Testowanie układów kombinacyjnych Przykładowy układ Wykrywanie błędów: 1. Sklejenie z 0 2. Sklejenie z 1 Testem danego uszkodzenia nazywa się takie wzbudzenie funkcji (wektor wejściowy), które daje błędną
Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012
Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel
Krótkie przypomnienie
Krótkie przypomnienie x i ={,} y i ={,} w., p. Bramki logiczne czas propagacji Odpowiedź na wyjściu bramki następuje po pewnym, charakterystycznym dla danego układu czasie od momentu zmiany sygnałów wejściowych.
Architektura komputerów Wykład 2
Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana
SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO
II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 15-18 czerwca 2005, Z otniki Luba skie SNTEZA AUTOMATÓW SKOŃCZONCH Z WKORZSTANIEM METOD KODOWANIA WIELOKROTNEGO Arkadiusz Bukowiec Instytut
Projektowanie układów na schemacie
Projektowanie układów na schemacie Przedstawione poniżej wskazówki mogą być pomocne przy projektowaniu układach na poziomie schematu. Stałe wartości logiczne Aby podłączyć wejście do stałej wartości logicznych
Laboratorium przedmiotu Technika Cyfrowa
Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w
Układy kombinacyjne. cz.2
Układy kombinacyjne cz.2 Układy kombinacyjne 2/26 Kombinacyjne bloki funkcjonalne Kombinacyjne bloki funkcjonalne - dekodery 3/26 Dekodery Są to układy zamieniające wybrany kod binarny (najczęściej NB)
Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami
Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016
mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec
Programowanie Układów Logicznych kod kursu: ETD6203 Analiza czasowa W8 17.04.2019 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec Plan wykładu Zależności czasowe w układach programowalnych Pojęcia
Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych
Politechnika Śląska w Gliwicach Wydział Automatyki Elektroniki i Informatyki Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych Promotor dr inż. Jacek Loska Wojciech Klimeczko
LICZNIKI PODZIAŁ I PARAMETRY
LICZNIKI PODZIAŁ I PARAMETRY Licznik jest układem służącym do zliczania impulsów zerojedynkowych oraz zapamiętywania ich liczby. Zależnie od liczby n przerzutników wchodzących w skład licznika pojemność
Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.
Sterowanie procesami dyskretnymi laboratorium dr inż. Grzegorz Bazydło G.Bazydlo@iee.uz.zgora.pl, staff.uz.zgora.pl/gbazydlo Lista zadań nr 5 Zagadnienia stosowanie skończonych automatów stanów (ang. Finite
Złożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych
.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych.. Przerzutniki synchroniczne Istota działania przerzutników synchronicznych polega na tym, że zmiana stanu wewnętrznego powinna nastąpić
Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości
Stałe - constant Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości późniejszych zmian Deklarowane w ciele architektury Widoczne dla całej architektury architecture
SML3 październik
SML3 październik 2005 24 100_LED8 Moduł zawiera 8 diod LED dołączonych do wejść za pośrednictwem jednego z kilku możliwych typów układów (typowo jest to układ typu 563). Moduł jest wyposażony w dwa złącza
Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS
Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS Język VERLOG w praktyce RUS RUS VERLOG Specyfikacja układów kombinacyjnych RUS RUS Operator warunkowy Conditional_expression?
1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro
1. Cel ćwiczenia Celem ćwiczenia jest zaprojektowanie sterowania układem pozycjonowania z wykorzystaniem sterownika VersaMax Micro oraz silnika krokowego. Do algorytmu pozycjonowania wykorzystać licznik
Podstawy układów mikroelektronicznych
Podstawy układów mikroelektronicznych wykład dla kierunku Technologie Kosmiczne i Satelitarne Część 2. Podstawy działania układów cyfrowych. dr inż. Waldemar Jendernalik Katedra Systemów Mikroelektronicznych,
Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.
Elementy struktur cyfrowych Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Magistrale W układzie bank rejestrów do przechowywania danych. Wybór źródła danych
Projektowanie automatów z użyciem VHDL
Projektowanie automatów z użyciem VHDL struktura automatu i jego modelu w VHDL przerzutnik T jako automat przykłady automatów z wyjściami typu: Moore'a Mealy stanu kodowanie stanów automatu Wykorzystano
b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.
DODATEK: FUNKCJE LOGICZNE CD. 1 FUNKCJE LOGICZNE 1. Tablice Karnaugha Do reprezentacji funkcji boolowskiej n-zmiennych można wykorzystać tablicę prawdy o 2 n wierszach lub np. tablice Karnaugha. Tablica
IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO
IC200UDR002 8 wejść dyskretnych 24 VDC, logika dodatnia/ujemna. Licznik impulsów wysokiej częstotliwości. 6 wyjść przekaźnikowych 2.0 A. Port: RS232. Zasilanie: 24 VDC. Sterownik VersaMax Micro UDR002
Architektura typu Single-Cycle
Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć
Technika cyfrowa Synteza układów kombinacyjnych (I)
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych (I) Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1
dwójkę liczącą Licznikiem Podział liczników:
1. Dwójka licząca Przerzutnik typu D łatwo jest przekształcić w przerzutnik typu T i zrealizować dzielnik modulo 2 - tzw. dwójkę liczącą. W tym celu wystarczy połączyć wyjście zanegowane Q z wejściem D.
LICZNIKI Liczniki scalone serii 749x
LABOATOIUM PODSTAWY ELEKTONIKI LICZNIKI Liczniki scalone serii 749x Cel ćwiczenia Zapoznanie się z budową i zasadą działania liczników synchronicznych i asynchronicznych. Poznanie liczników dodających
Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne
Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Schemat ogólny X Y Układ kombinacyjny S Z Pamięć Zegar Działanie układu Zmiany wartości wektora S możliwe tylko w dyskretnych chwilach czasowych
Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1
Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe Platforma sprzętowa Rajda & Kasperek 2014 Katedra Elektroniki AGH 1 Program wykładu Architektura układów FPGA Rodzina Xilinx Spartan-6
Krótkie wprowadzenie do ModelSim i Quartus2
Krótkie wprowadzenie do ModelSim i Quartus2 wersja 04.2011 1 Plan Oprogramowanie Pliki źródłowe Scenariusze użycia 2 Programy Programy w wersji darmowej do pobrania ze strony www.altera.com ModelSim-Altera
1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.
Ćwiczenie 9 Rejestry przesuwne i liczniki pierścieniowe. Cel. Poznanie właściwości i zasady działania rejestrów przesuwnych.. Poznanie właściwości i zasady działania liczników pierścieniowych. Wprowadzenie.