Programowalne układy logiczne kod kursu: ETD008270 Układy sekwencyjne W6 10.05.2019 mgr inż. Maciej Rudek
Układy kombinacyjne - przypomnienie Układ kombinacyjny jest to układ dla którego zmiana na wejściu (którymkolwiek) powoduje natychmiastową zmianę na wyjściu. Uściślając wyjście układu kombinacyjnego jest zależne tylko od bieżących stanów na wejściu. Istnieją trzy sposoby opisu układów kombinacyjnych: Przypisania ciągłe Wykorzystanie instrukcji procesu always Za pomocą funkcji i zdań.
Układy sekwencyjne - przypomnienie W układach sekwencyjnych stan na wyjściu układu zależeć będzie od stanu na wejściu oraz od poprzedniego stanu. Najczęściej jest on nazywany stanem wewnętrznym, którego stan został zapamiętany za pomocą zespołu rejestrów pełniących rolę pamięci.
Automaty, maszyna stanów Istnieją dwa formalne modele FSM: wyjście jest tylko funkcją stanu, wyjście opisywane razem ze stanem Moore a Automat Moore a: wyjścia automatu są jedynie funkcją stanu, logika kombinacyjna służy do generowania sygnałów wyjściowych na podstawie stanu automatu, oraz do określenia wejść przerzutników na podstawie stanu automatu i wejść do układu. opóźnienie jednego cyklu zegara między wejściem a wyjściem Y = f(s) 4
Automaty, maszyna stanów Istnieją dwa formalne modele FSM: wyjście jest funkcją wejścia i stanu, wyjście opisywane nad strzałką przejścia Mealy ego Automat Mealy ego: zarówno następny stan jak i wektor wyjść są funkcjami bieżącego stanu automatu oraz wektora wejść; automat Mealy ego synchroniczny wyposażony jest w przerzutniki wyjściowe, automat asynchr. natychmiast reaguje na zmianę sygnałów wejściowych. reaguje natychmiast, możliwość wystąpienia zakłóceń (wyścigi, hazardy) szerokość sygnału na wyjściach zależy od stanów wejściowych Y = f(s, x 0 x n ) 5
Automaty porównanie Istnieją dwa formalne modele FSM: Moore a wyjście jest tylko funkcją stanu, wyjście opisywane razem ze stanem Y = f(s) Mealy ego wyjście jest funkcją wejścia i stanu wyjście opisywane nad strzałką przejścia Y = f(s, x 0 x n ) 6
Automaty, maszyna stanów Automat Mealy a Stan wyjścia zależny od stanu automatu i wejścia Generalnie zawiera tylko parę stanów, mniej niż automat Moore a Wyjścia zmieniają się na zboczach zegara Szybsza reakcja na zmiany na wejściu automatu. Automat Moore'a Stan wyjścia zależny tylko od stanu automatu Zawiera więcej stanów niż automat Mealy a Zmiana stanu wyjścia powodowana jest przez zmianę stanu na wejściu po wykonaniu zadania z logiki automatu Automat Moore a potrzebuje więcej logiki dekodującej co powoduję dłuższą reakcję.
Jak działa automat Dzięki wykorzystaniu zespołu rejestrów np. typu flip-flop możliwe jest przechowywanie bieżącego stanu automatu. Logika kombinacyjna odpowiedzialna jest za wyliczenie kolejnego stanu automatu. A wyjście może być kombinacją sygnałów związanego z konkretnym stanem (automat Moore a) oraz dodatkowo stanem na wejściach (automat Mealy ego).
Automaty, maszyna stanów Układy sekwencyjne nazywane są także automatami skończonymi (Finite State Machnie FSM). Można wyszczególnić takie układy zgodnie z nastepującymi specyfikacjami: 3 procesy każdy z bloków modelowany jest osobno 2 procesy dwa pierwsze bloki są modelowane razem w jednym procesie 1 proces wszystkie bloki można zamodelować jako jeden proces 9
Przykładowy graf przejść Stan bieżący Stan następny Wyjśc ie (Y) X = 0 X = 1 S0 S0 S1 0 S1 S1 S2 1 S2 S2 S3 0 S3 S0 S1 1
Automat w 3-ch procesach
Automat w 3-ch procesach
Automat w 3-ch procesach
Automat w 2-ch procesach
Automat z 1-procesem
Porównanie 3-ch automatów Dwa pierwsze automaty niewiele różnią się w swojej konstrukcji a ich implementacja jest taka sama. W ostatnim przypadku wygnał na wyjściu pojawi się w tym samym momencie do przejście do następnego stanu.
Automat Mealy ego Automat Mealy ego również można zamodelować używając 2. lub 3. procesów. Jednak używając tylko jednego, jest to całkowicie nie możliwe, ze względu na funkcję wyjścia która zależy od stanu i funkcji na wejściu.
Automat Mealy ego Poniżej przedstawiono graf przejść dla automatu Mealy ego. Wskazówka: Podczas implementacji tego rodzaju automatu łatwiej jest wykonać jego opis za pomocą dwóch procesów
Automat Mealy ego Dla tego przykładu została zastosowana definicja parametrów wykorzystując instrukcję localparam. W odróżnieniu do instrukcji parameter, localparam nie może zostać zmieniony z wykorzystaniem instrukcji defparam.
Niejawna specyfikacja automatu W instrukcji always zawarto trzy stany automatu stanu wykonywane w takiej kolejności w jakiej znajdują się w opisie, zgodnie z narastającym zboczem sygnału zegarowego. W pokazanym opisie został zawarty proces w którym następuje nieprzerwany przepływ informacji oraz wykonywanie poszczególnych operacji na nich.
Niejawna specyfikacja automatu Powyższa idea nosi nazwę cycle-accurate specyfication z dokładnością do cyklu zegara lub scheduled behavior zachowania szeregowego. Co ile taktów zegara obliczane jest wyjście dataout? Uwaga: struktura ta jest często nie syntezowalna przez narzędzia XST.
Potok W proponowanym przykładzie przedstawiono trzy stopnie proste automaty sekwencyjne. Co ile taktów zegara obliczane jest wyjście dataout?
23 Interfejsy komunikacyjne - na przykładzie ARM926
24 Interfejsy komunikacyjne - klasyfikacja ogólna
SerDes - Serializer/Deserializer Serializer/Deserializer jest to para połączonych ze sobą bloków w celu uzyskania szybkiej transmisji danych. Najczęściej są odpowiedzialne za konwertowanie danych z transmisji równoległej na szeregową oraz na odwrót. Może być stosowany w wielu różnych aplikacjach w celu minimalizacji ilości połączeń i kosztów oraz mniejszy poziom zakłóceń/szumów elektromagnetycznych.
SerDes - Serializer/Deserializer Na układ SerDes składają się dwa bloki Parallel In Serial Out (PISO) oraz Serial In Parallel Out (SIPO). Można wymienić 4 podstawowe architektury: Z linią zegarową Z wbudowanym zegarem Z kodowaniem 8b/10b Z przeplotem Oraz na 3 typy komunikacji: Simplex Half-Duplex Full-Duplex
Metody transmisji - w interfejsach szeregowych Typ transmisji Full-duplex Half-duplex Synchroniczna SPI, USART I 2 C Asynchroniczna UART, Ethernet CAN, USB, 1-Wire, LIN W transmisji synchronicznej równolegle z ciągiem bitów danych przesyła się sygnał synchronizujący, który określa chwile, w których stan linii danych odpowiada wartościom kolejnych bitów. W transmisji asynchronicznej przesyłane dane nie są związane z żadnym sygnałem synchronizującym, zegarowym. Pomiędzy nadajnikiem a odbiornikiem musi być ustalona częstotliwość przesyłania danych. 27
Sposoby transmisji
Sposoby transmisji - różnicowej http://www.ti.com/lit/ml/snla187/snla187.pdf
Sposoby transmisji - różnicowej Żródło:https://www.maximintegrated.com/en/app-notes/index.mvp/id/4019
Sposoby transmisji - różnicowej http://www.ti.com/lit/ml/snla187/snla187.pdf
SerDes z równoległym zegarem Ten system często stosowany jest w rozwiązaniach magistral typu: PCI, UTOPIA, w ukłądach procesorowych, kontrolnych itp. Przesyłanie danych, wspierane jest przez dodatkowy sygnał zegarowy, podawany równolegle z linią danych. Dzięki temu rozwiązaniu, można przesyłać dane na dużą odległość z dużą prędkością bez obaw o rozsynchronizowanie się transmisji.
Serdes z wewnętrznym zegarem W tym trybie dane są przesyłane tylko po jednej linii, niezbędne jest aby zapewnić odpowiednie warunki w celu odebrania danych: oba zegary nadajnika i odbiornika muszą działać na tych samych częstotliwościach oraz stosując bity synchronizacyjne bit stopu i startu czy dodatkowymi sygnałami kontrolnymi, ramką, synchronizacją, bitami statusu, bitami parzystości (CTR).
Serdes z wewnętrznym zegarem W tym trybie dane są przesyłane tylko po jednej linii, niezbędne jest aby zapewnić odpowiednie warunki w celu odebrania danych: oba zegary nadajnika i odbiornika muszą działać na tych samych częstotliwościach oraz stosując bity synchronizacyjne bit stopu i startu czy dodatkowymi sygnałami kontrolnymi, ramką, synchronizacją, bitami statusu, bitami parzystości (CTR).
Ten sposób przesyłania danych jest wykorzystywany w interfejsach wykorzystujących np.. pakietowanie np.: Ethernet, Fiber Channel, InfiniBand 8b/10b SerDes Przesyłanie 10-bitowej transmisji zostało opracowane przez IBM w latach 80-tych, gwarantując równoległa transmisję danych oraz kodowanie danych w celu zbalansowania ilości 1 do 0. Najdłuższa możliwa sekwencja 0 i 1 nie przekracza 5. Metoda ta jest pomocna podczas ograniczania widma sygnału szeregowego oraz na tłumienie emisji elektromagnetycznej transmitowanego sygnału, pozwalając na monitorowanie łącza komunikacji przez ograniczenie ilości kombinacji w 10-bitowym kodzie.
8b/10b schemat kodowania 7 H 6 G 5 F 4 E 3 D 2 C 1 B 0 A 9 j 8 h 7 g 6 f 5 i 4 e 3 d 2 c 1 b 0 a
Kody konwersji dla 5b/6b i 3b/4b
SerDes przesyłanie sygnału http://www.ti.com/lit/ds/symlink/ds15ba101.pdf
Shift Register - SISO Rejestr przesuwny jest istotnym elementem wykorzystywanym do stworzenia układu transmisji danych. Wykorzystuje w swojej konstrukcji przerzutniki typu D połączonych w taki sposób, że dana jest przesuwana co cykl zegarowy. W tym wypadku co pozytywny takt zegarowy. SISO - rejestr z wyjściem i wejściem szeregowym (rejestr przesuwający) Co jest nie tak w tym układzie?
SIPO - wejście szeregowe, wyjście równoległe Dzięki temu układowi sekwencyjnemu, możliwe jest uzyskanie wyjścia równoległego z wejścia szeregowego. W podanym przykładzie, przesyłanie danych odbywa się na zbocze narastające sygnału CLK, a dane są wystawiane na wyjście w oddzielnym procesie. Co jest nie tak w tym układzie?
PISO - wejście równoległe, wyjście szeregowe
Serial Peripherial Interface - SPI 42 SPI szeregowy interfejs komunikacyjny opracowany przez firmę Motorola: komunikacja dwukierunkowa (full-duplex), synchroniczna transmisja danych, master-slave, Interfejs trójprzewodowy, MOSI, MISO, SCLK MOSI - (ang. Master Output Slave Input) - dane dla układu peryferyjnego MISO - (ang. Master Input Slave Output) - dane z układu peryferyjnego SCLK - (ang. Serial CLocK) - sygnał zegarowy (taktujący) stosowany do transmisji danych pomiędzy układami peryferyjnymi np. przetworniki A/C, C/A, pamięci szeregowe, potencjometry cyfrowe, mikrokontrolery inna nazwa SSI - Synchronous Serial Interface
Serial Peripherial Interface SPI - możliwe połączenia z układami 43 Ogólna budowa interfejsu szeregowej transmisji danych SPI. Interfejs SPI składa się z dwóch rejestrów przesuwnych połączonych w licznik pierścieniowy i generatora sygnału taktującego. MISO wejście danych dla urządzenia master, a wyjściem dla slave, MOSI jest wyjściem dla urządzenia master, a wejściem dla slave. SCLK jest wejściem taktującym dla układu slave oraz wyjściem dla master. Sygnał taktujący jest zawsze generowany przez układ nadrzędny (master) bez względu na to czy dane są przez niego nadawane czy też odbierane. Sygnał taktujący jest nadawany jedynie podczas transmisji.
Serial Peripherial Interface SPI - możliwe połączenia z układami Układy SPI połączone w magistrale liniową Układ nadrzędny (master) wybiera poszczególne układy podrzędne (slave) przez jedną z równoległych linii portu dołączonych do wyprowadzeń CS układów podrzędnych. Urządzenie slave zostanie wybrane, gdy na jego wejście SS zostanie podany określony stan. W czasie transmisji, w celu uniknięcia kolizji, tylko jeden układ podrzędny może być aktywny na liniach interfejsu. 44 Układy SPI połączone w łąńcuchową (daisy chain)
Peryferia port szeregowy RS232 Pin Sygnał Nazwa Kierunek 1 DCD Data Carrier Detect In 2 RXD Receive Data In 3 TXD Transmit Data Out 4 DTR Data Terminal Ready Out 5 GND Ground - 6 DSR Data Set Ready In 7 RTS Request to Send Out 8 CTS Clear to Send In 9 RI Ring Indicator In 45 LPC2368: UART0/2/3 UART1 możliwość budowy modemu
RS232 ramka danych UART Universal Asynchronous Receiver Transmitter, 3,3 V 0 1 2 3 4 5 6 7 P +8 V stan IDLE 8 bitów danych -8 V 46 bit startu 0 bit parzystości Inne typowe szybkości transmisji danych: 110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, bity stopu: 230400, 460800, 921600. 1, 2 lub 1.5
Dziękuję za uwagę :)